summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/web/content/changelog/0.3.0.md67
-rw-r--r--apps/web/next.config.ts4
-rw-r--r--apps/web/package.json14
-rw-r--r--apps/web/postcss.config.mjs7
-rw-r--r--apps/web/public/flags/ad.svg150
-rw-r--r--apps/web/public/flags/ae.svg6
-rw-r--r--apps/web/public/flags/af.svg81
-rw-r--r--apps/web/public/flags/ag.svg14
-rw-r--r--apps/web/public/flags/ai.svg29
-rw-r--r--apps/web/public/flags/al.svg5
-rw-r--r--apps/web/public/flags/am.svg5
-rw-r--r--apps/web/public/flags/ao.svg13
-rw-r--r--apps/web/public/flags/aq.svg5
-rw-r--r--apps/web/public/flags/ar.svg32
-rw-r--r--apps/web/public/flags/arab.svg109
-rw-r--r--apps/web/public/flags/as.svg72
-rw-r--r--apps/web/public/flags/asean.svg13
-rw-r--r--apps/web/public/flags/at.svg4
-rw-r--r--apps/web/public/flags/au.svg8
-rw-r--r--apps/web/public/flags/aw.svg186
-rw-r--r--apps/web/public/flags/ax.svg18
-rw-r--r--apps/web/public/flags/az.svg8
-rw-r--r--apps/web/public/flags/ba.svg12
-rw-r--r--apps/web/public/flags/bb.svg6
-rw-r--r--apps/web/public/flags/bd.svg4
-rw-r--r--apps/web/public/flags/be.svg7
-rw-r--r--apps/web/public/flags/bf.svg7
-rw-r--r--apps/web/public/flags/bg.svg5
-rw-r--r--apps/web/public/flags/bh.svg4
-rw-r--r--apps/web/public/flags/bi.svg15
-rw-r--r--apps/web/public/flags/bj.svg14
-rw-r--r--apps/web/public/flags/bl.svg5
-rw-r--r--apps/web/public/flags/bm.svg97
-rw-r--r--apps/web/public/flags/bn.svg36
-rw-r--r--apps/web/public/flags/bo.svg673
-rw-r--r--apps/web/public/flags/bq.svg5
-rw-r--r--apps/web/public/flags/br.svg45
-rw-r--r--apps/web/public/flags/bs.svg13
-rw-r--r--apps/web/public/flags/bt.svg89
-rw-r--r--apps/web/public/flags/bv.svg13
-rw-r--r--apps/web/public/flags/bw.svg7
-rw-r--r--apps/web/public/flags/by.svg18
-rw-r--r--apps/web/public/flags/bz.svg145
-rw-r--r--apps/web/public/flags/ca.svg4
-rw-r--r--apps/web/public/flags/cc.svg19
-rw-r--r--apps/web/public/flags/cd.svg5
-rw-r--r--apps/web/public/flags/cefta.svg13
-rw-r--r--apps/web/public/flags/cf.svg15
-rw-r--r--apps/web/public/flags/cg.svg12
-rw-r--r--apps/web/public/flags/ch.svg9
-rw-r--r--apps/web/public/flags/ci.svg7
-rw-r--r--apps/web/public/flags/ck.svg9
-rw-r--r--apps/web/public/flags/cl.svg13
-rw-r--r--apps/web/public/flags/cm.svg15
-rw-r--r--apps/web/public/flags/cn.svg11
-rw-r--r--apps/web/public/flags/co.svg7
-rw-r--r--apps/web/public/flags/cp.svg7
-rw-r--r--apps/web/public/flags/cr.svg7
-rw-r--r--apps/web/public/flags/cu.svg13
-rw-r--r--apps/web/public/flags/cv.svg13
-rw-r--r--apps/web/public/flags/cw.svg14
-rw-r--r--apps/web/public/flags/cx.svg15
-rw-r--r--apps/web/public/flags/cy.svg6
-rw-r--r--apps/web/public/flags/cz.svg5
-rw-r--r--apps/web/public/flags/de.svg5
-rw-r--r--apps/web/public/flags/dg.svg130
-rw-r--r--apps/web/public/flags/dj.svg13
-rw-r--r--apps/web/public/flags/dk.svg5
-rw-r--r--apps/web/public/flags/dm.svg152
-rw-r--r--apps/web/public/flags/do.svg121
-rw-r--r--apps/web/public/flags/dz.svg5
-rw-r--r--apps/web/public/flags/eac.svg48
-rw-r--r--apps/web/public/flags/ec.svg138
-rw-r--r--apps/web/public/flags/ee.svg5
-rw-r--r--apps/web/public/flags/eg.svg38
-rw-r--r--apps/web/public/flags/eh.svg16
-rw-r--r--apps/web/public/flags/er.svg8
-rw-r--r--apps/web/public/flags/es-ct.svg4
-rw-r--r--apps/web/public/flags/es-ga.svg187
-rw-r--r--apps/web/public/flags/es-pv.svg5
-rw-r--r--apps/web/public/flags/es.svg544
-rw-r--r--apps/web/public/flags/et.svg14
-rw-r--r--apps/web/public/flags/eu.svg28
-rw-r--r--apps/web/public/flags/fi.svg5
-rw-r--r--apps/web/public/flags/fj.svg120
-rw-r--r--apps/web/public/flags/fk.svg90
-rw-r--r--apps/web/public/flags/fm.svg11
-rw-r--r--apps/web/public/flags/fo.svg12
-rw-r--r--apps/web/public/flags/fr.svg5
-rw-r--r--apps/web/public/flags/ga.svg7
-rw-r--r--apps/web/public/flags/gb-eng.svg5
-rw-r--r--apps/web/public/flags/gb-nir.svg132
-rw-r--r--apps/web/public/flags/gb-sct.svg4
-rw-r--r--apps/web/public/flags/gb-wls.svg9
-rw-r--r--apps/web/public/flags/gb.svg7
-rw-r--r--apps/web/public/flags/gd.svg27
-rw-r--r--apps/web/public/flags/ge.svg6
-rw-r--r--apps/web/public/flags/gf.svg5
-rw-r--r--apps/web/public/flags/gg.svg9
-rw-r--r--apps/web/public/flags/gh.svg6
-rw-r--r--apps/web/public/flags/gi.svg32
-rw-r--r--apps/web/public/flags/gl.svg4
-rw-r--r--apps/web/public/flags/gm.svg14
-rw-r--r--apps/web/public/flags/gn.svg7
-rw-r--r--apps/web/public/flags/gp.svg5
-rw-r--r--apps/web/public/flags/gq.svg23
-rw-r--r--apps/web/public/flags/gr.svg16
-rw-r--r--apps/web/public/flags/gs.svg133
-rw-r--r--apps/web/public/flags/gt.svg204
-rw-r--r--apps/web/public/flags/gu.svg19
-rw-r--r--apps/web/public/flags/gw.svg13
-rw-r--r--apps/web/public/flags/gy.svg9
-rw-r--r--apps/web/public/flags/hk.svg8
-rw-r--r--apps/web/public/flags/hm.svg8
-rw-r--r--apps/web/public/flags/hn.svg18
-rw-r--r--apps/web/public/flags/hr.svg58
-rw-r--r--apps/web/public/flags/ht.svg116
-rw-r--r--apps/web/public/flags/hu.svg7
-rw-r--r--apps/web/public/flags/ic.svg7
-rw-r--r--apps/web/public/flags/id.svg4
-rw-r--r--apps/web/public/flags/ie.svg7
-rw-r--r--apps/web/public/flags/il.svg14
-rw-r--r--apps/web/public/flags/im.svg36
-rw-r--r--apps/web/public/flags/in.svg25
-rw-r--r--apps/web/public/flags/io.svg130
-rw-r--r--apps/web/public/flags/iq.svg10
-rw-r--r--apps/web/public/flags/ir.svg219
-rw-r--r--apps/web/public/flags/is.svg12
-rw-r--r--apps/web/public/flags/it.svg7
-rw-r--r--apps/web/public/flags/je.svg62
-rw-r--r--apps/web/public/flags/jm.svg8
-rw-r--r--apps/web/public/flags/jo.svg16
-rw-r--r--apps/web/public/flags/jp.svg11
-rw-r--r--apps/web/public/flags/ke.svg23
-rw-r--r--apps/web/public/flags/kg.svg4
-rw-r--r--apps/web/public/flags/kh.svg61
-rw-r--r--apps/web/public/flags/ki.svg36
-rw-r--r--apps/web/public/flags/km.svg16
-rw-r--r--apps/web/public/flags/kn.svg14
-rw-r--r--apps/web/public/flags/kp.svg15
-rw-r--r--apps/web/public/flags/kr.svg24
-rw-r--r--apps/web/public/flags/kw.svg13
-rw-r--r--apps/web/public/flags/ky.svg103
-rw-r--r--apps/web/public/flags/kz.svg36
-rw-r--r--apps/web/public/flags/la.svg12
-rw-r--r--apps/web/public/flags/lb.svg15
-rw-r--r--apps/web/public/flags/lc.svg8
-rw-r--r--apps/web/public/flags/li.svg43
-rw-r--r--apps/web/public/flags/lk.svg22
-rw-r--r--apps/web/public/flags/lr.svg14
-rw-r--r--apps/web/public/flags/ls.svg8
-rw-r--r--apps/web/public/flags/lt.svg7
-rw-r--r--apps/web/public/flags/lu.svg5
-rw-r--r--apps/web/public/flags/lv.svg6
-rw-r--r--apps/web/public/flags/ly.svg13
-rw-r--r--apps/web/public/flags/ma.svg4
-rw-r--r--apps/web/public/flags/mc.svg6
-rw-r--r--apps/web/public/flags/md.svg70
-rw-r--r--apps/web/public/flags/me.svg116
-rw-r--r--apps/web/public/flags/mf.svg5
-rw-r--r--apps/web/public/flags/mg.svg7
-rw-r--r--apps/web/public/flags/mh.svg7
-rw-r--r--apps/web/public/flags/mk.svg5
-rw-r--r--apps/web/public/flags/ml.svg7
-rw-r--r--apps/web/public/flags/mm.svg12
-rw-r--r--apps/web/public/flags/mn.svg14
-rw-r--r--apps/web/public/flags/mo.svg9
-rw-r--r--apps/web/public/flags/mp.svg86
-rw-r--r--apps/web/public/flags/mq.svg5
-rw-r--r--apps/web/public/flags/mr.svg6
-rw-r--r--apps/web/public/flags/ms.svg29
-rw-r--r--apps/web/public/flags/mt.svg58
-rw-r--r--apps/web/public/flags/mu.svg8
-rw-r--r--apps/web/public/flags/mv.svg6
-rw-r--r--apps/web/public/flags/mw.svg10
-rw-r--r--apps/web/public/flags/mx.svg382
-rw-r--r--apps/web/public/flags/my.svg26
-rw-r--r--apps/web/public/flags/mz.svg21
-rw-r--r--apps/web/public/flags/na.svg16
-rw-r--r--apps/web/public/flags/nc.svg13
-rw-r--r--apps/web/public/flags/ne.svg6
-rw-r--r--apps/web/public/flags/nf.svg9
-rw-r--r--apps/web/public/flags/ng.svg6
-rw-r--r--apps/web/public/flags/ni.svg129
-rw-r--r--apps/web/public/flags/nl.svg5
-rw-r--r--apps/web/public/flags/no.svg7
-rw-r--r--apps/web/public/flags/np.svg13
-rw-r--r--apps/web/public/flags/nr.svg12
-rw-r--r--apps/web/public/flags/nu.svg10
-rw-r--r--apps/web/public/flags/nz.svg36
-rw-r--r--apps/web/public/flags/om.svg115
-rw-r--r--apps/web/public/flags/pa.svg14
-rw-r--r--apps/web/public/flags/pc.svg33
-rw-r--r--apps/web/public/flags/pe.svg4
-rw-r--r--apps/web/public/flags/pf.svg19
-rw-r--r--apps/web/public/flags/pg.svg9
-rw-r--r--apps/web/public/flags/ph.svg6
-rw-r--r--apps/web/public/flags/pk.svg15
-rw-r--r--apps/web/public/flags/pl.svg6
-rw-r--r--apps/web/public/flags/pm.svg5
-rw-r--r--apps/web/public/flags/pn.svg53
-rw-r--r--apps/web/public/flags/pr.svg13
-rw-r--r--apps/web/public/flags/ps.svg6
-rw-r--r--apps/web/public/flags/pt.svg57
-rw-r--r--apps/web/public/flags/pw.svg11
-rw-r--r--apps/web/public/flags/py.svg157
-rw-r--r--apps/web/public/flags/qa.svg4
-rw-r--r--apps/web/public/flags/re.svg5
-rw-r--r--apps/web/public/flags/ro.svg7
-rw-r--r--apps/web/public/flags/rs.svg292
-rw-r--r--apps/web/public/flags/ru.svg5
-rw-r--r--apps/web/public/flags/rw.svg13
-rw-r--r--apps/web/public/flags/sa.svg25
-rw-r--r--apps/web/public/flags/sb.svg13
-rw-r--r--apps/web/public/flags/sc.svg7
-rw-r--r--apps/web/public/flags/sd.svg13
-rw-r--r--apps/web/public/flags/se.svg4
-rw-r--r--apps/web/public/flags/sg.svg13
-rw-r--r--apps/web/public/flags/sh-ac.svg689
-rw-r--r--apps/web/public/flags/sh-hl.svg164
-rw-r--r--apps/web/public/flags/sh-ta.svg76
-rw-r--r--apps/web/public/flags/sh.svg7
-rw-r--r--apps/web/public/flags/si.svg18
-rw-r--r--apps/web/public/flags/sj.svg7
-rw-r--r--apps/web/public/flags/sk.svg9
-rw-r--r--apps/web/public/flags/sl.svg7
-rw-r--r--apps/web/public/flags/sm.svg75
-rw-r--r--apps/web/public/flags/sn.svg8
-rw-r--r--apps/web/public/flags/so.svg11
-rw-r--r--apps/web/public/flags/sr.svg6
-rw-r--r--apps/web/public/flags/ss.svg8
-rw-r--r--apps/web/public/flags/st.svg16
-rw-r--r--apps/web/public/flags/sv.svg593
-rw-r--r--apps/web/public/flags/sx.svg56
-rw-r--r--apps/web/public/flags/sy.svg6
-rw-r--r--apps/web/public/flags/sz.svg34
-rw-r--r--apps/web/public/flags/tc.svg50
-rw-r--r--apps/web/public/flags/td.svg7
-rw-r--r--apps/web/public/flags/tf.svg15
-rw-r--r--apps/web/public/flags/tg.svg14
-rw-r--r--apps/web/public/flags/th.svg7
-rw-r--r--apps/web/public/flags/tj.svg22
-rw-r--r--apps/web/public/flags/tk.svg5
-rw-r--r--apps/web/public/flags/tl.svg13
-rw-r--r--apps/web/public/flags/tm.svg204
-rw-r--r--apps/web/public/flags/tn.svg4
-rw-r--r--apps/web/public/flags/to.svg10
-rw-r--r--apps/web/public/flags/tr.svg8
-rw-r--r--apps/web/public/flags/tt.svg5
-rw-r--r--apps/web/public/flags/tv.svg9
-rw-r--r--apps/web/public/flags/tw.svg34
-rw-r--r--apps/web/public/flags/tz.svg13
-rw-r--r--apps/web/public/flags/ua.svg6
-rw-r--r--apps/web/public/flags/ug.svg30
-rw-r--r--apps/web/public/flags/um.svg9
-rw-r--r--apps/web/public/flags/un.svg16
-rw-r--r--apps/web/public/flags/us.svg9
-rw-r--r--apps/web/public/flags/uy.svg28
-rw-r--r--apps/web/public/flags/uz.svg30
-rw-r--r--apps/web/public/flags/va.svg190
-rw-r--r--apps/web/public/flags/vc.svg8
-rw-r--r--apps/web/public/flags/ve.svg26
-rw-r--r--apps/web/public/flags/vg.svg59
-rw-r--r--apps/web/public/flags/vi.svg28
-rw-r--r--apps/web/public/flags/vn.svg11
-rw-r--r--apps/web/public/flags/vu.svg21
-rw-r--r--apps/web/public/flags/wf.svg5
-rw-r--r--apps/web/public/flags/ws.svg7
-rw-r--r--apps/web/public/flags/xk.svg5
-rw-r--r--apps/web/public/flags/xx.svg4
-rw-r--r--apps/web/public/flags/ye.svg7
-rw-r--r--apps/web/public/flags/yt.svg5
-rw-r--r--apps/web/public/flags/za.svg17
-rw-r--r--apps/web/public/flags/zm.svg27
-rw-r--r--apps/web/public/flags/zw.svg21
-rw-r--r--apps/web/public/shapes/circle.svg2
-rw-r--r--apps/web/public/shapes/diamond.svg2
-rw-r--r--apps/web/public/shapes/hexagon.svg5
-rw-r--r--apps/web/public/shapes/square.svg2
-rw-r--r--apps/web/public/shapes/star.svg5
-rw-r--r--apps/web/public/shapes/triangle.svg2
-rw-r--r--apps/web/src/app/blog/[slug]/page.tsx2
-rw-r--r--apps/web/src/app/blog/page.tsx2
-rw-r--r--apps/web/src/app/globals.css438
-rw-r--r--apps/web/src/app/layout.tsx19
-rw-r--r--apps/web/src/app/privacy/page.tsx121
-rw-r--r--apps/web/src/app/projects/page.tsx20
-rw-r--r--apps/web/src/app/projects/store.ts2
-rw-r--r--apps/web/src/app/terms/page.tsx100
-rw-r--r--apps/web/src/components/editable-timecode.tsx26
-rw-r--r--apps/web/src/components/editor/dialogs/project-info-dialog.tsx2
-rw-r--r--apps/web/src/components/editor/dialogs/shortcuts-dialog.tsx2
-rw-r--r--apps/web/src/components/editor/dialogs/storage-persistence-dialog.tsx41
-rw-r--r--apps/web/src/components/editor/editor-header.tsx7
-rw-r--r--apps/web/src/components/editor/export-button.tsx63
-rw-r--r--apps/web/src/components/editor/mobile-gate.tsx6
-rw-r--r--apps/web/src/components/editor/panels/assets/drag-overlay.tsx2
-rw-r--r--apps/web/src/components/editor/panels/assets/draggable-item.tsx17
-rw-r--r--apps/web/src/components/editor/panels/assets/tabbar.tsx15
-rw-r--r--apps/web/src/components/editor/panels/assets/views/assets.tsx153
-rw-r--r--apps/web/src/components/editor/panels/assets/views/base-panel.tsx (renamed from apps/web/src/components/editor/panels/assets/views/base-view.tsx)11
-rw-r--r--apps/web/src/components/editor/panels/assets/views/captions.tsx141
-rw-r--r--apps/web/src/components/editor/panels/assets/views/effects.tsx15
-rw-r--r--apps/web/src/components/editor/panels/assets/views/settings-legacy.tsx332
-rw-r--r--apps/web/src/components/editor/panels/assets/views/settings.tsx168
-rw-r--r--apps/web/src/components/editor/panels/assets/views/settings/background.tsx227
-rw-r--r--apps/web/src/components/editor/panels/assets/views/settings/index.tsx369
-rw-r--r--apps/web/src/components/editor/panels/assets/views/sounds.tsx2
-rw-r--r--apps/web/src/components/editor/panels/assets/views/stickers.tsx538
-rw-r--r--apps/web/src/components/editor/panels/assets/views/text.tsx12
-rw-r--r--apps/web/src/components/editor/panels/preview/context-menu.tsx39
-rw-r--r--apps/web/src/components/editor/panels/preview/guide-overlay.tsx32
-rw-r--r--apps/web/src/components/editor/panels/preview/guide-popover.tsx100
-rw-r--r--apps/web/src/components/editor/panels/preview/handle-primitives.tsx332
-rw-r--r--apps/web/src/components/editor/panels/preview/index.tsx266
-rw-r--r--apps/web/src/components/editor/panels/preview/layout-guide-overlay.tsx27
-rw-r--r--apps/web/src/components/editor/panels/preview/mask-handles.tsx238
-rw-r--r--apps/web/src/components/editor/panels/preview/preview-interaction-overlay.tsx109
-rw-r--r--apps/web/src/components/editor/panels/preview/preview-viewport.tsx576
-rw-r--r--apps/web/src/components/editor/panels/preview/snap-guides.tsx30
-rw-r--r--apps/web/src/components/editor/panels/preview/text-edit-overlay.tsx149
-rw-r--r--apps/web/src/components/editor/panels/preview/toolbar.tsx169
-rw-r--r--apps/web/src/components/editor/panels/preview/transform-handles.tsx273
-rw-r--r--apps/web/src/components/editor/panels/properties/components/keyframe-toggle.tsx (renamed from apps/web/src/components/editor/panels/properties/keyframe-toggle.tsx)0
-rw-r--r--apps/web/src/components/editor/panels/properties/components/property-param-field.tsx194
-rw-r--r--apps/web/src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts4
-rw-r--r--apps/web/src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts26
-rw-r--r--apps/web/src/components/editor/panels/properties/hooks/use-keyframed-param-property.ts148
-rw-r--r--apps/web/src/components/editor/panels/properties/hooks/use-keyframed-vector-property.ts190
-rw-r--r--apps/web/src/components/editor/panels/properties/index.tsx141
-rw-r--r--apps/web/src/components/editor/panels/properties/registry.tsx303
-rw-r--r--apps/web/src/components/editor/panels/properties/stores/properties-store.ts18
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/audio-tab.tsx109
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/blending-tab.tsx230
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/effects-tab.tsx309
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/graphic-tab.tsx238
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/masks-tab.tsx660
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/speed-tab.tsx137
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/text-tab.tsx762
-rw-r--r--apps/web/src/components/editor/panels/properties/tabs/transform-tab.tsx424
-rw-r--r--apps/web/src/components/editor/panels/timeline/audio-waveform.tsx271
-rw-r--r--apps/web/src/components/editor/panels/timeline/bookmarks.tsx27
-rw-r--r--apps/web/src/components/editor/panels/timeline/drag-line.tsx5
-rw-r--r--apps/web/src/components/editor/panels/timeline/index.tsx885
-rw-r--r--apps/web/src/components/editor/panels/timeline/snap-indicator.tsx10
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-element.tsx470
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-playhead.tsx38
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-ruler.tsx26
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-tick.tsx4
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-toolbar.tsx16
-rw-r--r--apps/web/src/components/editor/panels/timeline/timeline-track.tsx62
-rw-r--r--apps/web/src/components/providers/editor-provider.tsx27
-rw-r--r--apps/web/src/components/section.tsx257
-rw-r--r--apps/web/src/components/ui/button.tsx2
-rw-r--r--apps/web/src/components/ui/color-picker.tsx13
-rw-r--r--apps/web/src/components/ui/context-menu.tsx14
-rw-r--r--apps/web/src/components/ui/dialog.tsx16
-rw-r--r--apps/web/src/components/ui/dropdown-menu.tsx23
-rw-r--r--apps/web/src/components/ui/font-picker.tsx107
-rw-r--r--apps/web/src/components/ui/input-with-back.tsx85
-rw-r--r--apps/web/src/components/ui/input.tsx7
-rw-r--r--apps/web/src/components/ui/number-field.tsx223
-rw-r--r--apps/web/src/components/ui/popover.tsx20
-rw-r--r--apps/web/src/components/ui/select.tsx16
-rw-r--r--apps/web/src/components/ui/sheet.tsx17
-rw-r--r--apps/web/src/components/ui/sonner.tsx2
-rw-r--r--apps/web/src/components/ui/tabs.tsx92
-rw-r--r--apps/web/src/components/ui/tooltip.tsx4
-rw-r--r--apps/web/src/components/ui/use-overlay-open-change.ts78
-rw-r--r--apps/web/src/constants/editor-constants.ts14
-rw-r--r--apps/web/src/constants/export-constants.ts2
-rw-r--r--apps/web/src/constants/font-constants.ts2
-rw-r--r--apps/web/src/constants/guide-constants.ts4
-rw-r--r--apps/web/src/constants/language-constants.ts3
-rw-r--r--apps/web/src/constants/mask-constants.ts4
-rw-r--r--apps/web/src/constants/project-constants.ts10
-rw-r--r--apps/web/src/constants/retime-constants.ts30
-rw-r--r--apps/web/src/constants/sticker-constants.ts4
-rw-r--r--apps/web/src/constants/text-constants.ts42
-rw-r--r--apps/web/src/constants/timeline-constants.ts85
-rw-r--r--apps/web/src/constants/timeline-constants.tsx102
-rw-r--r--apps/web/src/constants/transcription-constants.ts4
-rw-r--r--apps/web/src/core/index.ts7
-rw-r--r--apps/web/src/core/managers/audio-manager.ts352
-rw-r--r--apps/web/src/core/managers/media-manager.ts73
-rw-r--r--apps/web/src/core/managers/playback-manager.ts15
-rw-r--r--apps/web/src/core/managers/project-manager.ts49
-rw-r--r--apps/web/src/core/managers/renderer-manager.ts60
-rw-r--r--apps/web/src/core/managers/scenes-manager.ts6
-rw-r--r--apps/web/src/core/managers/selection-manager.ts9
-rw-r--r--apps/web/src/core/managers/timeline-manager.ts155
-rw-r--r--apps/web/src/data/colors/syntax-ui.tsx2
-rw-r--r--apps/web/src/hooks/actions/use-editor-actions.ts89
-rw-r--r--apps/web/src/hooks/timeline/element/use-element-interaction.ts83
-rw-r--r--apps/web/src/hooks/timeline/element/use-element-resize.ts231
-rw-r--r--apps/web/src/hooks/timeline/element/use-element-selection.ts35
-rw-r--r--apps/web/src/hooks/timeline/element/use-keyframe-drag.ts18
-rw-r--r--apps/web/src/hooks/timeline/element/use-keyframe-selection.ts2
-rw-r--r--apps/web/src/hooks/timeline/use-bookmark-drag.ts2
-rw-r--r--apps/web/src/hooks/timeline/use-initial-scroll-bottom.ts42
-rw-r--r--apps/web/src/hooks/timeline/use-snap-indicator-position.ts14
-rw-r--r--apps/web/src/hooks/timeline/use-timeline-drag-drop.ts223
-rw-r--r--apps/web/src/hooks/timeline/use-timeline-playhead.ts178
-rw-r--r--apps/web/src/hooks/timeline/use-timeline-zoom.ts28
-rw-r--r--apps/web/src/hooks/use-container-size.ts24
-rw-r--r--apps/web/src/hooks/use-editor.ts63
-rw-r--r--apps/web/src/hooks/use-effect-preview.ts47
-rw-r--r--apps/web/src/hooks/use-element-preview.ts38
-rw-r--r--apps/web/src/hooks/use-file-upload.ts12
-rw-r--r--apps/web/src/hooks/use-font-atlas.ts53
-rw-r--r--apps/web/src/hooks/use-keybindings.ts163
-rw-r--r--apps/web/src/hooks/use-mask-handles.ts258
-rw-r--r--apps/web/src/hooks/use-menu-preview.ts26
-rw-r--r--apps/web/src/hooks/use-paste-media.ts81
-rw-r--r--apps/web/src/hooks/use-preview-interaction.ts345
-rw-r--r--apps/web/src/hooks/use-resize-observer.ts26
-rw-r--r--apps/web/src/hooks/use-storage-persistence.ts45
-rw-r--r--apps/web/src/hooks/use-transform-handles.ts455
-rw-r--r--apps/web/src/lib/actions/definitions.ts27
-rw-r--r--apps/web/src/lib/actions/keybinding.ts (renamed from apps/web/src/types/keybinding.ts)2
-rw-r--r--apps/web/src/lib/actions/registry.ts27
-rw-r--r--apps/web/src/lib/actions/types.ts2
-rw-r--r--apps/web/src/lib/animation/__tests__/transform-keyframes.test.ts313
-rw-r--r--apps/web/src/lib/animation/color-channel.ts2
-rw-r--r--apps/web/src/lib/animation/effect-param-channel.ts55
-rw-r--r--apps/web/src/lib/animation/graphic-param-channel.ts79
-rw-r--r--apps/web/src/lib/animation/index.ts32
-rw-r--r--apps/web/src/lib/animation/interpolation.ts71
-rw-r--r--apps/web/src/lib/animation/keyframe-query.ts17
-rw-r--r--apps/web/src/lib/animation/keyframes.ts231
-rw-r--r--apps/web/src/lib/animation/number-channel.ts2
-rw-r--r--apps/web/src/lib/animation/property-groups.ts39
-rw-r--r--apps/web/src/lib/animation/property-registry.ts93
-rw-r--r--apps/web/src/lib/animation/resolve.ts69
-rw-r--r--apps/web/src/lib/animation/target-resolver.ts279
-rw-r--r--apps/web/src/lib/animation/types.ts (renamed from apps/web/src/types/animation.ts)40
-rw-r--r--apps/web/src/lib/animation/vector-channel.ts72
-rw-r--r--apps/web/src/lib/blog/query.ts2
-rw-r--r--apps/web/src/lib/blog/types.ts (renamed from apps/web/src/types/blog.ts)0
-rw-r--r--apps/web/src/lib/cancel-interaction.ts24
-rw-r--r--apps/web/src/lib/commands/__tests__/keyframe-aware-commands.test.ts433
-rw-r--r--apps/web/src/lib/commands/index.ts1
-rw-r--r--apps/web/src/lib/commands/media/add-media-asset.ts34
-rw-r--r--apps/web/src/lib/commands/media/remove-media-asset.ts34
-rw-r--r--apps/web/src/lib/commands/project/update-project-settings.ts2
-rw-r--r--apps/web/src/lib/commands/scene/create-scene.ts2
-rw-r--r--apps/web/src/lib/commands/scene/delete-scene.ts2
-rw-r--r--apps/web/src/lib/commands/scene/move-bookmark.ts2
-rw-r--r--apps/web/src/lib/commands/scene/remove-bookmark.ts2
-rw-r--r--apps/web/src/lib/commands/scene/rename-scene.ts2
-rw-r--r--apps/web/src/lib/commands/scene/toggle-bookmark.ts2
-rw-r--r--apps/web/src/lib/commands/scene/update-bookmark.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/clipboard/paste.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/delete-elements.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/duplicate-elements.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/effects/add-effect.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/effects/remove-effect.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/effects/reorder-effect.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/effects/toggle-effect.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/effects/update-effect-params.ts22
-rw-r--r--apps/web/src/lib/commands/timeline/element/index.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/insert-element.ts20
-rw-r--r--apps/web/src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/keyframes/remove-keyframe.ts45
-rw-r--r--apps/web/src/lib/commands/timeline/element/keyframes/retime-keyframe.ts20
-rw-r--r--apps/web/src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts30
-rw-r--r--apps/web/src/lib/commands/timeline/element/masks/index.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/masks/remove-mask.ts64
-rw-r--r--apps/web/src/lib/commands/timeline/element/masks/toggle-mask-inverted.ts75
-rw-r--r--apps/web/src/lib/commands/timeline/element/move-elements.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/retime/index.ts1
-rw-r--r--apps/web/src/lib/commands/timeline/element/retime/update-element-retime.ts114
-rw-r--r--apps/web/src/lib/commands/timeline/element/split-elements.ts107
-rw-r--r--apps/web/src/lib/commands/timeline/element/toggle-elements-muted.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/toggle-elements-visibility.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-element-duration.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-element-start-time.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-element-trim.ts25
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-element.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/track/add-track.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/track/remove-track.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/track/toggle-track-mute.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/track/toggle-track-visibility.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/tracks-snapshot.ts2
-rw-r--r--apps/web/src/lib/drag-data.ts2
-rw-r--r--apps/web/src/lib/effects/definitions/blur.frag.glsl10
-rw-r--r--apps/web/src/lib/effects/definitions/blur.ts109
-rw-r--r--apps/web/src/lib/effects/definitions/index.ts6
-rw-r--r--apps/web/src/lib/effects/index.ts45
-rw-r--r--apps/web/src/lib/effects/registry.ts33
-rw-r--r--apps/web/src/lib/effects/types.ts42
-rw-r--r--apps/web/src/lib/export.ts33
-rw-r--r--apps/web/src/lib/fonts/google-fonts.ts26
-rw-r--r--apps/web/src/lib/fonts/types.ts (renamed from apps/web/src/types/fonts.ts)0
-rw-r--r--apps/web/src/lib/graphics/definitions/ellipse.ts73
-rw-r--r--apps/web/src/lib/graphics/definitions/index.ts29
-rw-r--r--apps/web/src/lib/graphics/definitions/polygon.ts211
-rw-r--r--apps/web/src/lib/graphics/definitions/rectangle.ts85
-rw-r--r--apps/web/src/lib/graphics/definitions/shared.ts16
-rw-r--r--apps/web/src/lib/graphics/definitions/star.ts109
-rw-r--r--apps/web/src/lib/graphics/index.ts125
-rw-r--r--apps/web/src/lib/graphics/registry.ts10
-rw-r--r--apps/web/src/lib/graphics/stroke.ts102
-rw-r--r--apps/web/src/lib/graphics/types.ts23
-rw-r--r--apps/web/src/lib/guides/definitions/custom.tsx24
-rw-r--r--apps/web/src/lib/guides/definitions/grid.tsx125
-rw-r--r--apps/web/src/lib/guides/definitions/platforms.tsx65
-rw-r--r--apps/web/src/lib/guides/definitions/tiktok-layout.tsx335
-rw-r--r--apps/web/src/lib/guides/index.ts13
-rw-r--r--apps/web/src/lib/guides/registry.tsx28
-rw-r--r--apps/web/src/lib/guides/types.ts20
-rw-r--r--apps/web/src/lib/iconify-api.ts241
-rw-r--r--apps/web/src/lib/masks/__tests__/snap.test.ts235
-rw-r--r--apps/web/src/lib/masks/definitions/box-like.ts270
-rw-r--r--apps/web/src/lib/masks/definitions/ellipse.ts72
-rw-r--r--apps/web/src/lib/masks/definitions/index.ts39
-rw-r--r--apps/web/src/lib/masks/definitions/rectangle.ts94
-rw-r--r--apps/web/src/lib/masks/definitions/split.ts347
-rw-r--r--apps/web/src/lib/masks/geometry.ts112
-rw-r--r--apps/web/src/lib/masks/handle-positions.ts382
-rw-r--r--apps/web/src/lib/masks/index.ts18
-rw-r--r--apps/web/src/lib/masks/param-update.ts59
-rw-r--r--apps/web/src/lib/masks/registry.ts70
-rw-r--r--apps/web/src/lib/masks/shaders/jfa-distance.frag.glsl36
-rw-r--r--apps/web/src/lib/masks/snap.ts335
-rw-r--r--apps/web/src/lib/masks/types.ts115
-rw-r--r--apps/web/src/lib/masks/utils.ts64
-rw-r--r--apps/web/src/lib/media/audio-mastering.ts103
-rw-r--r--apps/web/src/lib/media/audio.ts249
-rw-r--r--apps/web/src/lib/media/media-utils.ts2
-rw-r--r--apps/web/src/lib/media/mediabunny.ts130
-rw-r--r--apps/web/src/lib/media/processing.ts90
-rw-r--r--apps/web/src/lib/media/types.ts (renamed from apps/web/src/types/assets.ts)0
-rw-r--r--apps/web/src/lib/media/upload-toast.ts51
-rw-r--r--apps/web/src/lib/params.ts50
-rw-r--r--apps/web/src/lib/preview/element-bounds.ts259
-rw-r--r--apps/web/src/lib/preview/hit-test.ts54
-rw-r--r--apps/web/src/lib/preview/preview-coords.ts99
-rw-r--r--apps/web/src/lib/preview/preview-snap.ts293
-rw-r--r--apps/web/src/lib/project/types.ts (renamed from apps/web/src/types/project.ts)4
-rw-r--r--apps/web/src/lib/registry.ts40
-rw-r--r--apps/web/src/lib/rendering.ts (renamed from apps/web/src/types/rendering.ts)3
-rw-r--r--apps/web/src/lib/retime/__tests__/resolve.test.ts61
-rw-r--r--apps/web/src/lib/retime/__tests__/split.test.ts31
-rw-r--r--apps/web/src/lib/retime/audio-stretch.ts182
-rw-r--r--apps/web/src/lib/retime/index.ts4
-rw-r--r--apps/web/src/lib/retime/presets.ts12
-rw-r--r--apps/web/src/lib/retime/resolve.ts48
-rw-r--r--apps/web/src/lib/retime/split.ts34
-rw-r--r--apps/web/src/lib/scenes.ts2
-rw-r--r--apps/web/src/lib/selection/constants.ts1
-rw-r--r--apps/web/src/lib/selection/context.tsx52
-rw-r--r--apps/web/src/lib/selection/hit-testing.ts50
-rw-r--r--apps/web/src/lib/selection/hooks/use-box-select.ts170
-rw-r--r--apps/web/src/lib/selection/hooks/use-selection-scope.ts28
-rw-r--r--apps/web/src/lib/selection/index.ts4
-rw-r--r--apps/web/src/lib/selection/scope.ts29
-rw-r--r--apps/web/src/lib/selection/selectable-item.tsx107
-rw-r--r--apps/web/src/lib/selection/selectable-surface.tsx288
-rw-r--r--apps/web/src/lib/selection/selection-box.tsx (renamed from apps/web/src/components/editor/selection-box.tsx)0
-rw-r--r--apps/web/src/lib/selection/state.ts165
-rw-r--r--apps/web/src/lib/selection/types.ts39
-rw-r--r--apps/web/src/lib/shaders/jfa-init.frag.glsl25
-rw-r--r--apps/web/src/lib/shaders/jfa-step.frag.glsl60
-rw-r--r--apps/web/src/lib/sounds/types.ts (renamed from apps/web/src/types/sounds.ts)0
-rw-r--r--apps/web/src/lib/stickers/__tests__/sticker-id.test.ts14
-rw-r--r--apps/web/src/lib/stickers/index.ts230
-rw-r--r--apps/web/src/lib/stickers/providers/countries-data.ts (renamed from apps/web/public/countries.json)57
-rw-r--r--apps/web/src/lib/stickers/providers/emoji.ts119
-rw-r--r--apps/web/src/lib/stickers/providers/flags.ts97
-rw-r--r--apps/web/src/lib/stickers/providers/icons.ts122
-rw-r--r--apps/web/src/lib/stickers/providers/index.ts14
-rw-r--r--apps/web/src/lib/stickers/providers/logos.ts31
-rw-r--r--apps/web/src/lib/stickers/providers/shapes.ts160
-rw-r--r--apps/web/src/lib/stickers/registry.ts33
-rw-r--r--apps/web/src/lib/stickers/resolver.ts8
-rw-r--r--apps/web/src/lib/stickers/types.ts79
-rw-r--r--apps/web/src/lib/text/layout.ts29
-rw-r--r--apps/web/src/lib/text/measure-element.ts132
-rw-r--r--apps/web/src/lib/time.ts6
-rw-r--r--apps/web/src/lib/timeline/audio-constants.ts2
-rw-r--r--apps/web/src/lib/timeline/audio-state.ts100
-rw-r--r--apps/web/src/lib/timeline/bookmarks.ts2
-rw-r--r--apps/web/src/lib/timeline/defaults.ts77
-rw-r--r--apps/web/src/lib/timeline/drag.ts (renamed from apps/web/src/types/drag.ts)12
-rw-r--r--apps/web/src/lib/timeline/drop-utils.ts4
-rw-r--r--apps/web/src/lib/timeline/element-utils.ts241
-rw-r--r--apps/web/src/lib/timeline/index.ts4
-rw-r--r--apps/web/src/lib/timeline/ripple-utils.ts2
-rw-r--r--apps/web/src/lib/timeline/selection-hit-testing.ts133
-rw-r--r--apps/web/src/lib/timeline/snap-utils.ts2
-rw-r--r--apps/web/src/lib/timeline/track-element-update.ts2
-rw-r--r--apps/web/src/lib/timeline/track-utils.ts29
-rw-r--r--apps/web/src/lib/timeline/types.ts (renamed from apps/web/src/types/timeline.ts)90
-rw-r--r--apps/web/src/lib/transcription/caption.ts2
-rw-r--r--apps/web/src/lib/transcription/types.ts (renamed from apps/web/src/types/transcription.ts)2
-rw-r--r--apps/web/src/services/renderer/effect-preview.ts329
-rw-r--r--apps/web/src/services/renderer/mask-feather.ts54
-rw-r--r--apps/web/src/services/renderer/nodes/blur-background-node.ts149
-rw-r--r--apps/web/src/services/renderer/nodes/composite-effect-node.ts77
-rw-r--r--apps/web/src/services/renderer/nodes/effect-layer-node.ts29
-rw-r--r--apps/web/src/services/renderer/nodes/graphic-node.ts92
-rw-r--r--apps/web/src/services/renderer/nodes/image-node.ts4
-rw-r--r--apps/web/src/services/renderer/nodes/sticker-node.ts20
-rw-r--r--apps/web/src/services/renderer/nodes/text-node.ts187
-rw-r--r--apps/web/src/services/renderer/nodes/video-node.ts1
-rw-r--r--apps/web/src/services/renderer/nodes/visual-node.ts225
-rw-r--r--apps/web/src/services/renderer/scene-builder.ts122
-rw-r--r--apps/web/src/services/renderer/scene-exporter.ts2
-rw-r--r--apps/web/src/services/renderer/webgl-effect-renderer.ts73
-rw-r--r--apps/web/src/services/renderer/webgl/jfa.ts194
-rw-r--r--apps/web/src/services/renderer/webgl/webgl-context.ts49
-rw-r--r--apps/web/src/services/renderer/webgl/webgl-effect-renderer.ts35
-rw-r--r--apps/web/src/services/renderer/webgl/webgl-utils.ts (renamed from apps/web/src/services/renderer/webgl-utils.ts)0
-rw-r--r--apps/web/src/services/storage/migrations/__tests__/v15-to-v16.test.ts93
-rw-r--r--apps/web/src/services/storage/migrations/__tests__/v16-to-v17.test.ts132
-rw-r--r--apps/web/src/services/storage/migrations/__tests__/v18-to-v19.test.ts63
-rw-r--r--apps/web/src/services/storage/migrations/index.ts22
-rw-r--r--apps/web/src/services/storage/migrations/transformers/index.ts1
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v0-to-v1.ts13
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts144
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v10-to-v11.ts113
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v11-to-v12.ts196
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v12-to-v13.ts102
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v13-to-v14.ts106
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v14-to-v15.ts67
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v15-to-v16.ts60
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v16-to-v17.ts107
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v17-to-v18.ts105
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v18-to-v19.ts46
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts37
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v9-to-v10.ts21
-rw-r--r--apps/web/src/services/storage/migrations/v10-to-v11.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v11-to-v12.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v12-to-v13.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v13-to-v14.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v14-to-v15.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v15-to-v16.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v16-to-v17.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v17-to-v18.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v18-to-v19.ts16
-rw-r--r--apps/web/src/services/storage/migrations/v9-to-v10.ts16
-rw-r--r--apps/web/src/services/storage/quota.ts145
-rw-r--r--apps/web/src/services/storage/service.ts52
-rw-r--r--apps/web/src/services/storage/types.ts7
-rw-r--r--apps/web/src/services/transcription/service.ts2
-rw-r--r--apps/web/src/services/transcription/worker.ts2
-rw-r--r--apps/web/src/stores/editor-store.ts2
-rw-r--r--apps/web/src/stores/keybindings-store.ts158
-rw-r--r--apps/web/src/stores/keybindings/migrations/index.ts4
-rw-r--r--apps/web/src/stores/keybindings/migrations/v2-to-v3.ts2
-rw-r--r--apps/web/src/stores/keybindings/migrations/v3-to-v4.ts4
-rw-r--r--apps/web/src/stores/keybindings/migrations/v4-to-v5.ts2
-rw-r--r--apps/web/src/stores/keybindings/migrations/v5-to-v6.ts17
-rw-r--r--apps/web/src/stores/preview-store.ts72
-rw-r--r--apps/web/src/stores/sounds-store.ts2
-rw-r--r--apps/web/src/stores/stickers-store.ts177
-rw-r--r--apps/web/src/stores/timeline-store.ts2
-rw-r--r--apps/web/src/types/editor.ts1
-rw-r--r--apps/web/src/types/effects.ts69
-rw-r--r--apps/web/src/types/export.ts31
-rw-r--r--apps/web/src/types/language.ts4
-rw-r--r--apps/web/src/types/soundtouchjs.d.ts14
-rw-r--r--apps/web/src/types/stickers.ts54
-rw-r--r--apps/web/src/types/time.ts1
-rw-r--r--apps/web/src/utils/browser.ts14
-rw-r--r--apps/web/src/utils/math.ts45
-rw-r--r--apps/web/tsconfig.tsbuildinfo2
-rw-r--r--biome.json6
-rw-r--r--bun.lock213
-rw-r--r--docs/effects-renderer.md56
-rw-r--r--legacy/components/properties/audio-properties.tsx (renamed from apps/web/src/components/editor/panels/properties/audio-properties.tsx)0
-rw-r--r--legacy/components/properties/clip-effects-properties.tsx (renamed from apps/web/src/components/editor/panels/properties/clip-effects-properties.tsx)0
-rw-r--r--legacy/components/properties/effect-param-field.tsx (renamed from apps/web/src/components/editor/panels/properties/effect-param-field.tsx)0
-rw-r--r--legacy/components/properties/effect-properties.tsx (renamed from apps/web/src/components/editor/panels/properties/effect-properties.tsx)0
-rw-r--r--legacy/components/properties/keyframe-toggle.tsx32
-rw-r--r--legacy/components/properties/section.tsx (renamed from apps/web/src/components/editor/panels/properties/section.tsx)0
-rw-r--r--legacy/components/properties/text-properties.tsx (renamed from apps/web/src/components/editor/panels/properties/text-properties.tsx)0
-rw-r--r--legacy/components/properties/video-properties.tsx (renamed from apps/web/src/components/editor/panels/properties/video-properties.tsx)0
-rw-r--r--legacy/sections/blending.tsx (renamed from apps/web/src/components/editor/panels/properties/sections/blending.tsx)0
-rw-r--r--legacy/sections/index.tsx (renamed from apps/web/src/components/editor/panels/properties/sections/index.tsx)0
-rw-r--r--legacy/sections/transform.tsx (renamed from apps/web/src/components/editor/panels/properties/sections/transform.tsx)0
-rw-r--r--legacy/timeline/use-selection-box.ts (renamed from apps/web/src/hooks/timeline/use-selection-box.ts)32
-rw-r--r--legacy/use-assets-selection-box.ts198
-rw-r--r--legacy/use-assets-selection.ts209
-rw-r--r--legacy/use-element-registry.ts31
-rw-r--r--legacy/use-reveal-item.ts (renamed from apps/web/src/hooks/use-reveal-item.ts)18
-rw-r--r--package.json3
-rw-r--r--packages/ui/src/icons/ui.tsx144
690 files changed, 35559 insertions, 7278 deletions
diff --git a/apps/web/content/changelog/0.3.0.md b/apps/web/content/changelog/0.3.0.md
index 09c7bfbd..345688fa 100644
--- a/apps/web/content/changelog/0.3.0.md
+++ b/apps/web/content/changelog/0.3.0.md
@@ -12,4 +12,71 @@ changes:
text: "Added a changelog link to the footer."
- type: fixed
text: "Media asset cards in the grid view were larger than their thumbnails, leaving empty space around each item. Cards now size to their content."
+ - type: improved
+ text: "Playback performance is dramatically better. The editor used to slow to a crawl during playback, and audio would stutter when interacting with elements mid-play. Both are fixed. Playback now runs at a consistent 60fps."
+ - type: fixed
+ text: "Project thumbnails now generate correctly even when the timeline is empty. If you set a background color or gradient with no clips, the thumbnail reflects that instead of staying blank."
+ - type: fixed
+ text: "Clicking a selected element no longer keeps the rest of the selection."
+ - type: improved
+ text: "More vertical space between timeline tracks. Selection outlines on adjacent tracks no longer overlap each other."
+ - type: fixed
+ text: "Track labels on the left side of the timeline were misaligned with the tracks on the right."
+ - type: improved
+ text: "Holding Shift or Ctrl while drag-selecting in the timeline now adds to your existing selection instead of replacing it. Matches how Shift/Ctrl+click already worked."
+ - type: improved
+ text: "Timeline track rows now highlight when they contain a selected element, making it easier to see which tracks are active at a glance."
+ - type: fixed
+ text: "Clicking in the empty space below timeline tracks now seeks the playhead."
+ - type: fixed
+ text: "Timeline vertical scroll now works anywhere in the panel, not just over the track labels. The header no longer scrolls with the tracks."
+ - type: new
+ text: "Scale now has separate width and height controls. You can stretch or squash elements independently on each axis."
+ - type: improved
+ text: "System fonts (Arial, Helvetica, Times New Roman, and others) now appear in the font picker alongside Google Fonts."
+ - type: fixed
+ text: "MP4 exports with audio failed on Firefox. The export now completes successfully regardless of browser."
+ - type: improved
+ text: "Your projects can disappear if your disk runs low on space. OpenCut now asks the browser to protect them."
+ - type: fixed
+ text: "Opening the mask or effects panel for one element, then selecting a different element, would keep the wrong panel open and hide the transform handles for the new selection. Each element now remembers its own panel state independently."
+ - type: new
+ text: "Volume control for audio and video elements, both in the properties panel and inline on timeline clips."
+ - type: new
+ text: "Speed control for video and audio clips. Includes a maintain pitch option so audio doesn't chipmunk or deepen when you change the rate."
+ - type: improved
+ text: "Audio waveforms have gotten an upgrade. The old ones were inaccurate, prone to crashing, and not very useful. The new ones are RMS-based, properly scaled, and only render what's visible so they don't slow things down."
+ - type: improved
+ text: "The timeline now opens scrolled to the bottom, so your main video track is visible right away instead of being hidden above the fold."
+ - type: fixed
+ text: "Snap guides didn't show when moving a full-canvas element to the center of the frame."
+ - type: fixed
+ text: "The rotation handle could float above the editor UI when an element was near the top of the canvas. It now clips to the preview area."
+ - type: fixed
+ text: "Images with a blur effect at 0% intensity would disappear completely when a blurred background was also active. Now 0% blur correctly renders the image unchanged."
+ - type: fixed
+ text: "Section titles in the properties panel showed the wrong text color when the section wasn't collapsible. Non-collapsible titles now use the correct muted style."
+ - type: new
+ text: "Masks. Hide or reveal parts of any video or image layer. Choose from split, rectangle, ellipse, star, heart, diamond, text, and custom masks. Adjust position, size, rotation, feather, and stroke in the properties panel, or drag the handles in the preview."
+ - type: improved
+ text: "The settings panel has been redesigned with a cleaner layout and better organization."
+ - type: new
+ text: "Layout guides are back and expanded. TikTok was the only option before. Now includes a grid guide plus TikTok, Instagram Reels, YouTube Shorts, and Snapchat Spotlight."
+ - type: new
+ text: "Canvas backgrounds are back. Set a blur, solid color, or gradient as the canvas background from the new Background tab in the settings panel."
+ - type: fixed
+ text: "Blur looked pixelated at higher intensities instead of producing a real blur. Both the canvas background blur and the blur effect are now fixed."
+ - type: new
+ text: "Custom canvas size. Instead of being locked to a handful of presets, you can now enter any width and height you want."
+ - type: new
+ text: "Preview zoom and panning. Zoom into the canvas to work on fine details, and pan around to navigate when zoomed in."
+ - type: new
+ text: "Stickers panel now has content. Browse and add logos, country flags, and shapes."
+ - type: improved
+ text: "You can now select multiple assets in the assets panel. Useful for deleting several at once."
+ - type: fixed
+ text: "Auto-generated captions were sometimes inaccurate. The underlying issue has been fixed."
+ - type: new
+ text: "You can now import transcript files to generate captions instead of running auto-transcription."
+
---
diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts
index 2f509d2a..334e486e 100644
--- a/apps/web/next.config.ts
+++ b/apps/web/next.config.ts
@@ -51,6 +51,10 @@ const nextConfig: NextConfig = {
protocol: "https",
hostname: "api.unisvg.com",
},
+ {
+ protocol: "https",
+ hostname: "cdn.brandfetch.io",
+ },
],
},
};
diff --git a/apps/web/package.json b/apps/web/package.json
index a00c9671..9c8f229d 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -16,13 +16,9 @@
"db:push:prod": "cross-env NODE_ENV=production drizzle-kit push"
},
"dependencies": {
- "@ffmpeg/core": "^0.12.10",
- "@ffmpeg/ffmpeg": "^0.12.15",
- "@ffmpeg/util": "^0.12.2",
"@hello-pangea/dnd": "^18.0.1",
- "@hookform/resolvers": "^3.9.1",
"@hugeicons/core-free-icons": "^3.1.1",
- "@hugeicons/react": "^1.1.4",
+ "@hugeicons/react": "^1.1.6",
"@huggingface/transformers": "^3.8.1",
"@opencut/env": "workspace:*",
"@opencut/ui": "workspace:*",
@@ -38,15 +34,12 @@
"@types/culori": "^4.0.1",
"@upstash/ratelimit": "^2.0.6",
"@upstash/redis": "^1.35.4",
- "@vercel/analytics": "^1.4.1",
- "aws4fetch": "^1.0.20",
"better-auth": "^1.2.7",
"botid": "^1.4.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.0.0",
"culori": "^4.0.2",
- "dayjs": "^1.11.13",
"drizzle-orm": "^0.44.2",
"embla-carousel-react": "^8.5.1",
"eventemitter3": "^5.0.1",
@@ -67,21 +60,19 @@
"react-hook-form": "^7.54.0",
"react-icons": "^5.4.0",
"react-markdown": "^10.1.0",
- "react-phone-number-input": "^3.4.11",
"react-resizable-panels": "^2.1.7",
"react-window": "^2.2.7",
- "recharts": "^2.14.1",
"rehype-autolink-headings": "^7.1.0",
"rehype-parse": "^9.0.1",
"rehype-sanitize": "^6.0.0",
"rehype-slug": "^6.0.0",
"rehype-stringify": "^10.0.1",
"sonner": "^1.7.1",
+ "soundtouchjs": "^0.3.0",
"tailwind-merge": "^3.5.0",
"tailwindcss-animate": "^1.0.7",
"unified": "^11.0.5",
"use-deep-compare-effect": "^1.8.1",
- "vaul": "^1.1.2",
"wavesurfer.js": "^7.9.8",
"zod": "^3.25.67",
"zustand": "^5.0.2"
@@ -104,7 +95,6 @@
"raw-loader": "^4.0.2",
"sharp": "^0.34.5",
"tailwindcss": "^4.2.1",
- "tsx": "^4.7.1",
"typescript": "^5.8.3"
}
}
diff --git a/apps/web/postcss.config.mjs b/apps/web/postcss.config.mjs
index 6ba14df9..61e36849 100644
--- a/apps/web/postcss.config.mjs
+++ b/apps/web/postcss.config.mjs
@@ -1,8 +1,7 @@
-/** @type {import('postcss-load-config').Config} */
const config = {
- plugins: {
- "@tailwindcss/postcss": {},
- },
+ plugins: {
+ "@tailwindcss/postcss": {},
+ },
};
export default config;
diff --git a/apps/web/public/flags/ad.svg b/apps/web/public/flags/ad.svg
new file mode 100644
index 00000000..199ff198
--- /dev/null
+++ b/apps/web/public/flags/ad.svg
@@ -0,0 +1,150 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ad" viewBox="0 0 640 480">
+ <path fill="#d0103a" d="M0 0h640v480H0z"/>
+ <path fill="#fedf00" d="M0 0h435.2v480H0z"/>
+ <path fill="#0018a8" d="M0 0h204.8v480H0z"/>
+ <path fill="#c7b37f" d="M300.4 136.6c7.7 0 10.9 6.6 18.6 6.6 4.7 0 7.5-1.5 11.7-3.9 2.9-1.6 4.7-2.5 8-2.5 3.4 0 5.5 1 7.3 4 1 1.6 1.8 4.9 1.3 6.7a40 40 0 0 1-2.7 8.3c-.7 1.6-1.3 2.5-1.3 4.2 0 4.1 5.6 5.5 9.4 5.6.8 0 7.7 0 12-4.2-2.3-.1-4.9-2-4.9-4.3 0-2.6 1.8-4.3 4.3-5.1.5-.1 1.3.3 1.7 0 .7-.3.4-1 1-1.4 1.2-1 2-1.6 3.6-1.6q1.3-.1 2.5.7.5.7 1 .8c1.2 0 1.8-.8 3-.8a5 5 0 0 1 2.3.6c.6.3.6 1.5 1.4 1.5.4 0 2.4-.9 3.5-.9 2.2 0 3.4.8 4.8 2.5.4.5.6 1.4 1 1.4a6 6 0 0 1 4.8 3c.3.4.7 1.4 1.1 1.5.6.3 1 .2 1.7.7a6 6 0 0 1 2.8 4.8q-.1 1.2-.5 2.2c-1.8 6.5-6.3 8.6-10.8 14.3-2 2.4-3.5 4.3-3.5 7.4 0 .7 1 2.1 1.3 2.7-.2-1.4.5-3.2 2-3.3a4 4 0 0 1 4 3.6l-.3 1.8a10 10 0 0 1 4-1.4h1.9c3.3 0 7 1.9 9.3 3.8a21 21 0 0 1 7.3 16.8c-.8 5.2-.3 14.8-13.8 18.6 2.5 1 4.2 3 4.2 5.2a4.5 4.5 0 0 1-4.4 4.7 4 4 0 0 1-3.5-1.4c-2.8 2.8-3.3 5.7-3.3 9.7 0 2.4.4 3.8 1.4 6s1.8 3.5 3.7 5.1q1.3-2.4 4-2.6 2.7-.1 3.9 2.2c.2.5 0 .9.3 1.4.3.6.8.7 1.1 1.3.5 1 0 1.8.5 2.7.3.7.9.8 1.2 1.4.4 1 .5 1.6.5 2.7 0 3-2.7 5.2-5.7 5.2-1 0-1.4-.4-2.3-.3 1.7 1.7 3 2.5 4.3 4.5a18 18 0 0 1 3 10.3 22 22 0 0 1-2.8 11.2 20 20 0 0 1-7 8.5 35 35 0 0 1-16 6.4 74 74 0 0 1-11 1.4l-14.1.8c-7.2.4-12.2 1.5-17.3 6.6 2.4 1.7 4 3.5 4 6.4q-.2 4.7-4.7 6.2c-.7.2-1.2 0-1.9.4s-.7 1.3-1.4 1.7a6 6 0 0 1-3.8 1 8 8 0 0 1-6.4-2.5c-2.2 1.8-3 3.4-5.5 4.9-.8.4-1.2 1-2.1 1-1.5 0-2.2-1-3.4-1.8a23 23 0 0 1-4.4-4c-2.3 1.3-3.6 2.4-6.3 2.4a7 7 0 0 1-4-1c-.6-.5-.8-1.2-1.5-1.6s-1.3-.3-2.1-.7c-3-1.3-5-3.5-5-6.8 0-2.9 1.8-4.7 4.4-6-5-5-10-5.8-17-6.2l-14-.8c-4.4-.3-6.8-.7-11-1.4-3.3-.5-5.2-.7-8.2-2.1-10.2-4.8-16.8-11.3-18-22.5-.2-1-.2-1.5-.2-2.5 0-5.8 2.3-9.4 6.4-13.5-1-.3-1.7 0-2.8-.3-2.5-1-4.4-2.7-4.4-5.5q-.1-1.4.5-2.6c.4-.6 1-.7 1.2-1.4.2-1 0-1.6.4-2.5.3-.5.8-.6 1-1.2 1-1.9 2-3.4 4.1-3.4q2.7.1 3.8 2.5c1.8-.8 2.2-2.1 3.2-3.7a16 16 0 0 0 1.4-13.3c-.4-1.5-.6-2.5-1.8-3.7q-1.4 1.4-3.4 1.4c-2.9 0-5-2.5-5-5.3a5 5 0 0 1 3-4.6c-1.6-1.4-3-1.5-4.7-2.6-2.6-1.6-3.5-3.4-5.2-6-1.2-1.6-1.5-2.8-2-4.7a19 19 0 0 1-1-7.8c.6-5 1.5-8 4.6-11.9 1.8-2.3 3-3.7 5.8-4.9 2.3-1 3.7-1.7 6.2-1.7l2 .1a7 7 0 0 1 2.8.8c.4.2 1.1.9 1.1.4s-.3-.8-.3-1.3c0-2 1.5-4 3.6-4 1.5 0 2.1 1.4 2.9 2.7q.6-1 .7-2.3c0-3.4-1.9-5.2-4-7.9-4.7-5.8-10.5-8.5-10.5-16q0-3.2 3-4.9c.5-.3 1.3 0 1.8-.3s.4-1 .7-1.4q.7-.9 1.6-1.6c1-1 2-.6 3.1-1.5q.8-.7 1.2-1.4c1.3-1.6 2.5-2.4 4.6-2.4q1.3-.1 2.5.4l1 .5q.5-.5 1.5-1.1a4 4 0 0 1 2.2-.6c1.1 0 1.8.6 3 .6l.8-.6c1-.7 1.5-1 2.7-1s1.8.3 2.8 1c1 .5 1 1.3 2 1.8l1.5.4c2.6.9 4.5 2.6 4.5 5.3q.1 2.1-1.4 3.5c-.9.7-1.7.6-2.8 1a16 16 0 0 0 11.3 3.5c4.2 0 9.3-1.7 9.3-5.9 0-2-1-3-1.8-4.8a19 19 0 0 1-2.1-8.5c0-2.8.3-4.5 1.9-6.7s3.6-2.9 6.5-2.9"/>
+ <g fill="none" stroke="#703d29">
+ <path stroke-linejoin="round" stroke-width=".7" d="M272.4 159a4 4 0 0 0 2.4 2.4c.8.3 2.7.2 3.8-1.4 1-1.2 1-2.8.6-4a5 5 0 0 0-1.7-2.2z"/>
+ <path stroke-linecap="round" stroke-width=".7" d="M401 236.1c-1.2-2.9-4.3-1.6-4.4 0-.5 3.7 2.7 4.8 5 4.2a4 4 0 0 0 2.5-2q1-1.6.4-3.7l-.8-1.6-1.3-1.2q-1.2-.7-3.4-.6c-5.5 0-10.4 6.5-12 13.4-.6 2.2-1.3 7.3-.3 12a22 22 0 0 0 5.9 11.3 26 26 0 0 0 9.9 5.8 8 8 0 0 0 4 .1c3.2-.7 4.7-3.8 3-7-1.3-2.5-5.3-4-7.2-.6q-.3.5-.4 1.5c0 .9.4 2 1 2.4 1.5.9 3.8.6 3.7-2"/>
+ <path stroke-width=".8" d="M383.8 274a11 11 0 0 1 6.6-3.7q4.4-.4 8.2 2a19 19 0 0 1 10.8 17c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14-7.1 3-18 3.6-25.7 4-10.4.3-20 .7-25.5 7.6"/>
+ <g stroke-width=".7">
+ <path d="M386.4 285.7q-.4-1.5.8-3.3c1.2-1.6 3.7-2.1 6-1a7 7 0 0 1 2.5 2.2l1.1 1.6q1 1.7 1 2.5c2.5 7-1.4 14.5-6.5 17.6-4 2.4-8.7 3.4-14.4 4-2.5.4-4 .3-6.5.5h-16.8c-2.9.3-5 .4-7.6.8q-2.4.3-5.4 1-.9 0-1.8.4l-1.2.3q-5.5 1.6-9.8 4.2-1.3.7-2.5 1.7l-1.3 1.2c-2 2-3.9 4-4.4 6.7v1.6c0 1.8 1.4 4.3 5.4 5m5.5-170c.8 1.4 1.3 2.3.8 3.9q-.9 2.7-3.6 2.8c-4 0-6.3-4.8-4.5-7.8 3.2-5.3 9.3-2.3 15 .3-.3-1.3-.8-1.8-.7-3.5.1-4.2 3.2-6 4.5-10 .7-2.3 1-4.3-.7-6q-2.2-1.8-5.1-.6c-3.8 1.5-8.5 5.9-16.6 6-8.2-.1-12.8-4.5-16.7-6q-3-1.2-5.1.7c-1.7 1.6-1.4 3.6-.7 6 1.3 3.8 4.4 5.7 4.5 10 0 1.6-.4 2-.7 3.4 5.7-2.6 12-5.9 15-.3 1.7 3.2-.5 7.7-4.5 7.7q-2.7 0-3.6-2.7-.5-2.2.8-4"/>
+ <path stroke-linecap="round" d="M314.6 159.9a5 5 0 0 1 2.4 5c-.2 2.5-.8 3.1-2.8 4.5m2.4-3.8q0 2.2-2.3 3.1"/>
+ </g>
+ <path fill="#c7b37f" stroke="none" d="m276.7 153.3.7.5.8.8.5 1 .2.8v1.9l-.2.8-.5.6-.6.6-.9.5-1 .2-1 .2-1-.5-.9-.6-.5-.8-.4-1v-.4z"/>
+ <path stroke-linecap="round" stroke-width=".7" d="M275.2 157.2c-.3-1.7-2.2-2-3-1-1.1 1.5-.3 4 2 4.7a4 4 0 0 0 3.9-1.4c1-1.3.9-2.8.5-4a5 5 0 0 0-1.7-2.2c-2.7-2-7.1-1.6-8.6 2-1.8 4.4 2.2 7.8 6 10.3 4.6 3.2 10 3.8 14 3.8 9.2-.1 16.2-4.5 20.7-7q1.7-.9 2.7.2a2 2 0 0 1-.3 2.7"/>
+ <path stroke-width=".7" d="m248 281.2-2 .7-2 1.6-1 1.3-1.1 2-.5 1.5-.4 1.8-.2 1.4m19-10.1-.1 1.8-.3 1.2-1 2.2-1.3 1.8-1.5 1.2-1.1.5-1.6.4"/>
+ <path stroke-width=".8" d="M319.7 329.1c-.3 1.7-1.9 3.6-5.3 4.2l-.6.2"/>
+ <path stroke-width=".9" d="M404.2 276.2a18 18 0 0 1 5.6 13.5c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14a85 85 0 0 1-25.6 4c-10.3.3-19.8.7-25.4 7.3"/>
+ <path stroke-width=".6" d="M387.5 282.9c.8-1 3.5-2.4 5.8-1.1a6 6 0 0 1 2.3 2"/>
+ <path stroke-width=".9" d="m401.6 273.8 1.4.5a7 7 0 0 0 4 0c2.8-.8 4.6-3.4 3.2-6.9a6 6 0 0 0-1.8-2.1"/>
+ <path stroke-linecap="round" stroke-width=".7" d="M240.3 199.8c-2 1.1-3.3 1.4-4.8 3.1a28 28 0 0 0-2.6 6.8m46-51.7q-.1 2.7-3 3.2"/>
+ <path stroke-width=".6" d="M397.1 192a19 19 0 0 1 18.6 19.8c0 16-9.9 18.5-13.8 19.6"/>
+ <path stroke-width=".7" d="M398.4 192c8.1-.3 16.5 5.7 16.9 20.7.3 11.7-8 17-12 18"/>
+ <path stroke-width=".6" d="m393.8 248.4.1-1.6.6-2.5.7-2 .9-1.6 1-1.3m7.8-3.4v1.5l-.5 1-.7 1.1-.8.6-1.2.5h-1.1l-.8-.1m-14.3-52.8.3-1.7.8-1.6 1-1.5 1.6-2.2 1.4-1.4 2-2.2 2-1.9 1.1-1.3 1.5-1.9 1.4-2 .8-1.7.5-2.2.1-2.7-.2-.8m-12.3 128.2 1.6-.4 1.2-.6.7-.7.5-.8.3-1.2v-.9m-158.2-12.1h2.7l1.6-.6m5-36.5-.2 1.4-.4.6-.4.6-.7.5-.7.3-1 .1h-.6m9.9-15.5-.3 2.1-.5 1-.8 1.2-1.2.9-1.2.6-2.3.5m15.3-39.7-.5 1.3-.5 1-.8 1-1 1-1.2.5-1.1.3-.6-.1m.3-6.2v1"/>
+ <g stroke-width=".6">
+ <path stroke-linecap="round" d="M254.3 224a7 7 0 0 1-2.1 1.4m150.5 44.8.5.2c1.4.8 4.2-.2 3.4-2.4"/>
+ <path d="M397.8 239.6c1 1.3 2.9 1.7 4.4 1.3a4 4 0 0 0 2.5-2q1-1.6.4-3.7l-.9-1.6-1.3-1.5-.4-.2m6.4 34 .1-.7a4 4 0 0 0-1.3-3l-.8-.8m.4.5c0-1.8-1.5-3.2-3.4-3.5m-4.2 2.8-1.3-1a16 16 0 0 1-4.3-10.7c0-4.2 1.6-8.4 3.6-10M341.2 324l1.8-1.6 1.2-1 2.3-1.4 2.2-1 1.6-.5 3-.6 3.6-.6m-29.5 19.4a17 17 0 0 1-7.6 6.1 18 18 0 0 1-7.6-6.1"/>
+ <path stroke-linecap="round" d="M314.4 332.6a10 10 0 0 1-2.2 4.2"/>
+ <path d="m314.7 330.5-.4 2.2M312 337l-1 1-1.7.9-2 .6m-5.6-177.8c.3-.8.5-1.4.5-2.6-.1-4.2-3.2-6.1-4.5-10-.7-2.3-1-4.3.7-6q2.2-2 5-.6c4 1.5 8.6 5.8 16.7 6-8.1-.2-12.8-4.5-16.6-6-2-.8-3.8-1-5.3.5-1.7 1.6-1.2 3.8-.5 6.1 1.3 3.9 4.2 5.8 4.3 10q-.1 1.6-.5 2.6M320 148c8-.4 14.9-5.8 17.1-6.3 2-.4 3-.2 4.5 1.1-1.4-1.3-3-1.2-5-.5-3.8 1.5-8.4 5.8-16.6 6m79.6 112.9a16 16 0 0 1-6.2-12.4c0-4.1 1.7-8.4 3.6-10m-70 97.6c-1.3 2-4.3 5-7.6 6.2a18 18 0 0 1-7.6-6.2"/>
+ <path stroke-linecap="round" d="m306.7 163.7 2.3-1.3c1-.6 2.3-.5 2.9.2s.7 2-.2 2.8"/>
+ <path d="M294.7 169.3c5.5-1.2 10-3.6 13.4-5.5M340.3 328c.5.3.8 1 .8 1l.3.8c.3 1.5-.7 2.4-2 2.6-1.7.2-3-.8-3.5-2M294.4 169c5.5-1.1 10-3.6 13.4-5.5m97.6 106.9c-1 .4-1.6.3-3-.2l-1.8-1a21 21 0 0 1-8.4-9 19 19 0 0 1-1.7-4.6 12 12 0 0 1-.5-3.3 26 26 0 0 1 4.7-15.3c1.1-1.6 2.1-2.5 4.2-2.6m-143.7-39.3a7 7 0 0 1 2.7 5.7c0 3.1-2.6 8.2-9 10a8 8 0 0 1-6.3-.8"/>
+ <path d="M256.3 205.6q1.6 1 1.6 3.3 0 1.6-1.9 3.7a12 12 0 0 1-8.8 4q-3 .1-6-1.7a9 9 0 0 1-3.8-5.4"/>
+ <path d="M256.2 212.3q1.8 1.8 1.7 4.6.1 3.9-3.7 7-.8.8-2 1.5m129.5-22.1v3.5m-.3-4.4v5m.3-15.8v6.6m-.3-8v8.9m-1.9 82a19 19 0 0 1-4.2 5.6 20 20 0 0 1-5.8 4.1 25 25 0 0 1-6.6 2.2 33 33 0 0 1-6.8.9c-2.5 0-3.9 0-6.4-.2s-4-.6-6.7-.8c-2.2-.2-3.4-.4-5.6-.3a28 28 0 0 0-11 1.8c-2.6 1-5.7 3-6.3 3.8a22 22 0 0 0-6.4-3.8 22 22 0 0 0-5.1-1.4c-2.3-.4-3.5-.4-5.8-.4s-3.4.1-5.6.3c-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.4.2a33 33 0 0 1-13.4-3 20 20 0 0 1-6.4-4.8m42.1 53.4 1.8-.2m30.3-2.4 1.8-.1 1.7-.7 1.2-.8 1.7-2 .3-.6.3-1.7v-.8m47-136.7c.7-2.6-.2-5.4-2.8-5.3m-132 46.5a8 8 0 0 1-3.5 4.7m3.6-46.7a7 7 0 0 1-3.6 4c-1.9.8-4 0-5.2-.8"/>
+ <path stroke-linecap="round" d="M243.8 202.4c1.5.8 3.1-.4 2.8-2.4a3 3 0 0 0-2.5-2.2"/>
+ <path d="M250.2 286.6q.3.5.8.8c.7.2 1.2.4 1.9-.5.8-1.1.3-2.8-.5-3.9a5 5 0 0 0-5.8-1q-1.2.6-2.6 2.2l-1.1 1.6q-1 1.7-1.1 2.4c-2 5.9.4 12 4.1 15.7"/>
+ <path stroke-linecap="round" d="m340.2 327.8.7.8.2.9c.3 1.5-.7 2.4-2 2.6-1.6.2-2.8-.8-3.3-2"/>
+ <path d="M389.4 154.8a7.4 7.4 0 0 1 6.3 7c0 4.4-1.5 6-3.8 9.2-2.5 3.4-10.7 9.6-10.7 16.7q-.2 6.4 4.3 8.4c2 1 4.3 0 5.4-1 2.6-2.4 1.5-6.5-1.2-7-3.2-.6-3.9 4.6-.7 4.3m17.9 69a4 4 0 0 0-3.6-3 3.7 3.7 0 0 0-3.7 3.7q0 1.6 1 2.6"/>
+ <path d="M383.9 195.1a7 7 0 0 0-2.7 5.7c0 3.1 2.6 8.2 9 10 2.4.7 4.8.6 6.2-.3m-156-10.3a9 9 0 0 0-4.8 3.5 17 17 0 0 0-2.2 12.7 16 16 0 0 0 2.3 5.6l1 1.2 1.2 1m64 92c4.9 2.1 8.4 3.7 11.4 8.5a10 10 0 0 1 1.2 4.9c0 2.7-1 5.7-3.3 7.6a8 8 0 0 1-6.7 2c-1.9-.2-3.7-1.6-4-2.6M254 224.1c2.7 2.2 3.9 4.2 3.9 7.5a8 8 0 0 1-4 7.5"/>
+ <path stroke-linecap="round" d="M251.5 236.4c4 5.1 6.3 8.1 6.4 14.1.1 5.7-1.7 9.6-5 13.7"/>
+ <path d="M329.8 169.3a4 4 0 0 0 1.5-2.2q.8-2.2-.2-4 1.3 2 .7 4c-.1 1-.8 1.5-1.6 2.3m51.5 86.1v16.2l-.1 2.5-.3 1.7"/>
+ <path d="M381.4 254v19.9l-.5 2.6m.5-43v14.6m.3-13.4v11.8m0-26.8v8.8m-.3-9.9v11m.3-19v3.5m-.3-4.2v5m-1.8 65.2-.4.7a19 19 0 0 1-4.1 5.7 20 20 0 0 1-5.9 4 25 25 0 0 1-6.5 2.2c-2.7.6-4.2.8-6.9.9-2.5 0-3.9 0-6.3-.2-2.7-.2-4.1-.5-6.8-.8-2.2-.2-3.4-.3-5.6-.3s-3.5 0-5.7.4a22 22 0 0 0-5.2 1.4c-2.7 1.1-5.7 3-6.4 3.8-.6-.8-3.7-2.7-6.3-3.8a22 22 0 0 0-5.2-1.4c-2.2-.4-3.5-.4-5.8-.4s-3.4.1-5.6.3c-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.3.2a33 33 0 0 1-13.5-3 20 20 0 0 1-5.8-4.1l-2.5-2.8m-2-3.2a10 10 0 0 1-2.3 7.7c-.8.9-2.6 2.6-5 2.6-3.7 0-4.8-2.5-5-3.2"/>
+ <path d="M255.6 278.9q1 1 1.9 2.5c1 1.8.6 4.8-.1 6.2l-.3.4m-20.3 18q3.3 3.8 10.9 7.1c7.1 3 18.1 3.6 25.7 4 10 .3 19.3.7 25 7m17.3-4a12 12 0 0 1 4 5.5m-7.3 11.5-.7.7a8 8 0 0 1-6.6 2c-2-.2-3.8-1.6-4.3-2.6m-5.4-2.9.3.4a8 8 0 0 0 5.1 2.4m27 0a18 18 0 0 1-7.7 6.1 18 18 0 0 1-7.6-6.1l-.3-.5m15.6.4.7.7a8 8 0 0 0 6.7 2 6 6 0 0 0 4-2.5l.5-.7"/>
+ <path d="m339 336.6-.7 1.2-1.1 1-1.7.7h-1.6"/>
+ <path d="M343 325.3a8 8 0 0 1 2.4 2.9q.4 1 .5 2.3a6 6 0 0 1-1.5 4.2 8 8 0 0 1-5.4 2.4h-.4m.2-.2a7 7 0 0 1-5.2-2.2m63.7-67.9a24 24 0 0 1-4.8-6.4 19 19 0 0 1-1.7-4.5 12 12 0 0 1-.5-3.3 26 26 0 0 1 4.6-15.3c.7-.8 1.4-1.8 2.1-2.2m-1.3-75.9c2.5.2 4.8 3 4.8 5.7 0 3.8-1.3 5.5-4.4 9.3-2.6 3.2-10.6 9-10.3 14.5q.1 1.6 1.1 2.8m-3.2 3.5a7 7 0 0 0 2 1.4 5 5 0 0 0 4.3-.3M369 153a6 6 0 0 1 2.2 2.6c1.8 4.5-2.2 7.9-6 10.4a21 21 0 0 1-8.3 3.3"/>
+ <path d="M364.6 161.6a4 4 0 0 1-3.1-1.5l-.7-1m-15 4.9-1.2-1q-1.7-1.4-.8-4.4c.6-1.9 3.7-7.2 3.8-10.9.2-5.6-2-9-5.3-10.2"/>
+ <path stroke-linecap="round" d="m347.3 146.5-.1 2-.6 2.2-1 3-1 1.9-.8 1.9-.4 1.3-.2 1 .1.9m38 126.3.6.8c.7 1 3.2 3 5.5 3 3.7 0 4.6-2.6 4.7-3.2.5-2.9-.5-3.6-2-4.5 0 0-.8-.4-1.9-.2"/>
+ <path d="M237 274.4a7 7 0 0 1-3.7 0c-2.9-.9-5.2-3.6-4-7m13.4-31.8q.4.5.4 1c.4 3.8-2.8 4.8-5 4.2a6 6 0 0 1-3-2.3 5 5 0 0 1-.7-2.3m22-23.6q.9.7 1.3 1.7m-1.1-8.5q.8.7 1.1 1.3"/>
+ <path stroke-linecap="round" d="M257.9 210.5a9 9 0 0 1-1.6 2.4 12 12 0 0 1-8.8 4q-3 .1-6-1.7a10 10 0 0 1-4-5.6"/>
+ <path d="M255.4 195.3a8 8 0 0 1 2.4 3.4"/>
+ <path stroke-linecap="round" d="M257.8 203.2c-.9 3-3.5 6.6-8.6 7.9-2.4.6-5.6-.2-6.6-1"/>
+ <path d="M240 202.6c.3 2.6 2 4.6 5.4 4.6 4.7.1 7.6-6.7 3.4-11.5"/>
+ <path stroke-linecap="round" d="M229.4 225.5q1 1.3 2.4 2.4a17 17 0 0 0 6 3.3m5.2.5c4.2-.5 6.6-3.7 6-7.3-.3-2.8-2.8-5-4.6-5.1"/>
+ <path d="M249.8 188.1c1.9 0 3 1.6 2.9 3"/>
+ <path stroke-linecap="round" d="M249.4 163a12 12 0 0 0 5 5.9m144.2 31c1.7 2.3.6 7-4 7a5 5 0 0 1-4.5-2.5"/>
+ <path d="M381.7 169.1V185"/>
+ <path stroke-linecap="round" d="M243.8 202.3c1.4 1 3.3-.7 2.5-2.6-.5-1.2-2.2-2.6-4.7-.9-2.8 1.9-2 7.8 3.2 7.9 4.7 0 7.6-6.8 3.4-11.6-4-4.6-11.3-3.6-16 .2A21 21 0 0 0 225 207a23 23 0 0 0 0 9.2 21 21 0 0 0 3 7.5l1.3 1.7c.8.8 1 1.2 2 2a15 15 0 0 0 10.4 3.7c4.6-.2 7.3-3.4 6.8-7.3-.4-3.8-4.2-5.7-6.7-3.9-1.7 1.2-2.3 4.9.7 5.8 1.6.5 3.1-1.7 2-3M374 150.9q4-2.2 6.3 1a10 10 0 0 1 1.6 7.2 9 9 0 0 1-3.5 5.8"/>
+ <path stroke-linecap="round" d="M380.5 152c3.1-2 6.5-1.1 8.3 1.6 1.3 2 1.7 3.6 1.6 6.1a11 11 0 0 1-5.7 9.2"/>
+ <path d="M395 159.2c2.6.2 4.6 2.5 4.6 5.1 0 3.8-1 5.5-4 9.3-2.7 3.3-10.6 9-10.4 14.6 0 2.1 1.8 4 3.3 4.2"/>
+ <path stroke-linecap="round" d="M395.4 202.3c-1.5 1-3.3-.6-2.5-2.4.5-1.2 2.2-2.8 4.7-1.1 2.7 1.9 2 7.8-3.3 7.9-4.7 0-8-6.6-3.4-11.6 4-4.6 11.7-3.7 16.5.1 2 1.6 6.1 6 7 12 1 7 .9 15.6-6.4 21-3 2.1-7 3.1-10.6 3-4.6-.2-7.3-3.5-6.8-7.4.5-3.8 4-5.4 6.7-3.9s2.3 5.4-.7 5.8c-1.7.2-3.1-1.7-2-3"/>
+ <path d="M392.9 199.9c.8-3.5 3.7-3.8 6.2-3.8 6.5.1 11.1 8 11.2 15.5 0 9.5-4 15.2-11 15.5-1.9 0-5-.8-5-3"/>
+ <path stroke-linecap="square" d="M397 198.3c6.9 1.6 9.3 7.8 9.3 13.8 0 4.9-.5 11.6-10 13.9"/>
+ <path d="M408.4 265.3a3.9 3.9 0 1 0-6.3 2.4"/>
+ <path stroke-linecap="round" d="M394.4 259.4c1.4 2 3 4.1 6.3 6m-1.3 10.5c-3.2-2.2-9.5-5-15-2.2a8 8 0 0 0-4.4 4.4 10 10 0 0 0 1.8 9.5c.9 1 2.7 2.6 5 2.7 3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.1-.7-.3-2.8-.2-3.2 1.3q-.3.9.2 2"/>
+ <path stroke-linecap="round" d="M340.5 328.4c1 2.2-.2 3.2-1.6 3.4-2.2.3-3.3-1.4-3.4-3a4.4 4.4 0 0 1 4.3-4.7c2.3 0 4.1 1.5 5 3.5q.5 1 .5 2.4a6 6 0 0 1-1.4 4.1 8 8 0 0 1-5.4 2.5c-4.2.1-7.5-3.8-7.5-7.8 0-7.7 11.4-12 16-13a84 84 0 0 1 17.9-2.4c3.5-.1 6.2 0 10.1-.5 3.5-.3 5.4-.5 9-1.3a27 27 0 0 0 12.6-6.4c2.9-2.7 4.5-4.5 5.9-8.2a17 17 0 0 0-1.3-13.9 14 14 0 0 0-10.3-6.8c-3.7-.5-7 1.1-9 4.8-1 1.8-.6 4.8.1 6.2a6 6 0 0 0 4.8 3c3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.2-.7-.2-2.8-.1-3.2 1.4q-.3.9.2 2"/>
+ <path stroke-linecap="round" d="M337.2 316.2c-4.8 2.1-8.4 3.7-11.4 8.5a10 10 0 0 0-1.2 4.9c0 2.7 1.1 5.7 3.3 7.6a8 8 0 0 0 6.7 2c2-.2 3.7-1.6 4-2.6"/>
+ <path d="M385.1 224.1c-2.3.8-3.9 4.2-3.9 7.5a8 8 0 0 0 4 7.5"/>
+ <path stroke-linecap="round" d="M387.6 236.4c-4 5.1-6.3 8.1-6.4 14.1 0 5.7 1.7 9.6 5.1 13.7"/>
+ <path d="m365.9 152 .3-.5c1.7-2.4 4.7-3.1 6.9-1.5 2.6 2 3.3 5.4 2.6 9q-.9 3.3-4 5.5"/>
+ <path stroke-linecap="round" d="M265.1 150.8q-3.9-1.9-6.3 1a9 9 0 0 0-1.6 7.2c.6 2.7 1.4 3.8 3.5 5.8"/>
+ <path d="M258.6 152a6 6 0 0 0-8.3 1.6 9 9 0 0 0-1.6 6.1c.2 4.2 2.8 7.6 5.8 9.2"/>
+ <path d="M249.7 154.8a7 7 0 0 0-6 6.6c0 4.5 1 6.3 3.5 9.6 2.5 3.4 10.7 9.6 10.7 16.7q.2 6.4-4.3 8.4c-2 1-4.3 0-5.4-1-2.6-2.4-1.5-6.5 1.2-7 3.3-.6 3.9 4.6.7 4.3"/>
+ <path d="M244 159.2c-2.5.2-5 2.3-5 5 0 3.8 1.5 5.6 4.6 9.4 2.6 3.3 10.1 9 9.9 14.5 0 2-1.5 4.6-2.9 4.3"/>
+ <path stroke-linecap="round" d="M238 236.1c1.3-2.9 4.4-1.6 4.6 0 .4 3.7-2.8 4.8-5.1 4.2a4 4 0 0 1-2.5-2 5 5 0 0 1-.4-3.7l.9-1.6 1.2-1.2q1.3-.7 3.4-.6c5.5 0 10.4 6.5 12 13.4.6 2.2 1.3 7.3.3 12a22 22 0 0 1-5.8 11.3 26 26 0 0 1-10 5.8 7 7 0 0 1-3.9.1c-2.8-.9-4.6-3.5-3.2-7 1.2-2.6 5.4-4 7.3-.6q.3.5.4 1.5c0 .9-.4 2-1 2.4-1.4.9-3.7.6-3.6-2"/>
+ <path d="M233.8 270.4c1 .4 1.6.3 2.9-.2l1.8-1c2.6-1.5 5.6-3.8 8.4-9.1a19 19 0 0 0 1.7-4.5q.4-1.6.6-3.3a26 26 0 0 0-4.8-15.3c-1.1-1.6-2-2.5-4.2-2.6m-9.5 31a3.9 3.9 0 1 1 6.3 2.3"/>
+ <path d="M232.2 261.4a4 4 0 0 1 3.7-3 3.7 3.7 0 0 1 3.6 3.7 4 4 0 0 1-1 2.6"/>
+ <path d="M239.4 261.3a16 16 0 0 0 6.2-12.4c0-4.1-1.6-8.4-3.6-10"/>
+ <path stroke-linecap="round" d="M244.7 259.4a17 17 0 0 1-6.3 6"/>
+ <path d="M254.6 273.7q-1.4-3.2-5.8-3.5-4.3-.3-8.2 1.9a19 19 0 0 0-10.8 17 25 25 0 0 0 2 9.5c.9 1.6 3 9 15.3 14a86 86 0 0 0 25.7 3.9c10.4.4 20 .8 25.6 7.6"/>
+ <path stroke-linecap="round" d="M239.7 275.9c3.3-2.2 9.5-5 15.1-2.2a8 8 0 0 1 4.3 4.4 10 10 0 0 1-1.8 9.5c-.9 1-2.7 2.6-5 2.7-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4q.4.9-.2 2"/>
+ <path d="M252.7 285.7q.6-1.6-.8-3.3a5 5 0 0 0-6-1q-1.1.6-2.4 2.2-.7.7-1.2 1.6-1 1.7-1 2.5c-2.5 7 1.5 14.4 6.5 17.6 4.4 2.8 8.8 3.6 14.4 4 2.5.3 4 .3 6.5.5h16.8c3 .3 5.1.4 7.6.8q2.5.3 5.4 1 .9 0 1.8.4l1.2.3q5.5 1.6 9.8 4.2 1.3.7 2.5 1.7l1.3 1.2c2 2 4 4 4.4 6.7v1.6c0 1.8-1.4 4.3-5.3 5"/>
+ <path d="M298.6 328.4c-1 2.2.2 3.2 1.6 3.4 2.2.3 3.3-1.4 3.5-3a4.4 4.4 0 0 0-4.4-4.7 6 6 0 0 0-5 3.5 7 7 0 0 0-.5 2.4 6 6 0 0 0 1.4 4.1 8 8 0 0 0 5.4 2.5c4.2.1 7.5-3.8 7.5-7.8 0-7.7-11.4-12-16-13a84 84 0 0 0-17.9-2.4c-3.5-.1-6.2 0-10.1-.5-3.5-.3-5.4-.5-9-1.3a27 27 0 0 1-12.5-6.4 17 17 0 0 1-4.7-22 14 14 0 0 1 10.3-6.9q5.9-.7 9 4.8c1 1.8.6 4.8-.1 6.2a6 6 0 0 1-4.8 3c-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4q.3.9-.2 2"/>
+ <path stroke-linecap="round" d="m273.3 152-.4-.5c-1.7-2.4-4.7-3.1-6.9-1.5-2.6 2-3.3 5.4-2.5 9a9 9 0 0 0 4 5.5"/>
+ <path d="M366.8 159.6c-4 4.4-8.1 5.8-14.1 6-2 0-5.5-.6-7.6-2.1-1.3-1-2.8-2.6-1.9-5.5.6-1.9 3.7-7.2 3.8-10.9.3-5.6-1.9-8.7-5.3-9.9-6.2-2.2-13 4-17 5.4-2.1.7-3.2.8-5.1.8-2 0-3-.1-5.2-.8-4-1.4-10.7-7.6-17-5.4-3.4 1.2-5.5 4.3-5.3 10 .1 3.6 3.2 9 3.8 10.8 1 2.9-.5 4.5-1.9 5.5-2 1.5-5.7 2.1-7.5 2-6-.1-10.1-1.5-14.1-5.9"/>
+ <path stroke-linecap="round" d="M297.3 314.4c.8.3.2-.2 5.3 2a22 22 0 0 1 11.3 8.9 11 11 0 0 1 .9 7.3"/>
+ <path d="M297.7 336a8 8 0 0 0 3.2.9c4.2.1 7.5-3.8 7.5-7.8 0-2.8-1.5-5.2-3.6-7"/>
+ <path stroke-linecap="round" d="M298.6 328.4c-1 2.3.4 3.5 1.8 3.7 2.2.2 3.4-1.4 3.6-3a5 5 0 0 0-2.2-4.2"/>
+ <path d="M390.1 154.8c3.2 0 6 3.6 6 7.2 0 4.3-2.2 6.9-3.9 8.8q-1.9 2.3-4.4 4.7"/>
+ <path stroke-linecap="round" d="M386.3 151.4a9 9 0 0 1 2.8 2.4c1.3 2 1.7 3.7 1.6 6.2-.2 4.2-3.2 7.1-6 9m-4.7-17.6.6.7c1.9 2.2 2 5.4 1.6 7.2a8 8 0 0 1-3.8 5.4m-5-14.4c2.6 2 3.4 5.4 2.5 9q-1 3.6-4.2 5.2m11.1 41.1c.3 1 .9 1.3 1.5 2a14 14 0 0 0 6.2 3.5q3.7.9 6.3-.9m-163 54q2 .1 3.3 2.3.3.4.4 1.5 0 1.5-1 2.2c-1.5 1-4 .5-4-2"/>
+ <path d="M241.5 231.3c5 1 9.7 6.9 11.2 13.3.6 2.3 1.3 7.3.3 12a22 22 0 0 1-6 11.4l-2.1 1.9-1 .7m-8-12.1c2 0 3.8 1.9 3.8 4a4 4 0 0 1-1 2.6"/>
+ <path d="M234.6 260.7c2.1 0 4.1 2 4.1 4.2a4 4 0 0 1-1.4 3"/>
+ <path stroke-linecap="round" d="M254 239.5a18 18 0 0 1 3.8 7.7m0 8.5a17 17 0 0 1-1.5 4 18 18 0 0 1-3.6 4.7"/>
+ <path d="M254.3 224.3q2.7 2.2 3.5 4.8"/>
+ <path stroke-linecap="round" d="M257.9 219.5a10 10 0 0 1-3.4 4.6m-9.2-17.2 2.2-.6 1.3-1 .8-1.1.7-1.8.3-1.5"/>
+ <path d="m241 199.3-2.5.8a9 9 0 0 0-3.5 3 17 17 0 0 0-2.2 12.7 16 16 0 0 0 2.3 5.6l1 1.4c1.4 1.3 2.6 2 4.6 1.7"/>
+ <path stroke-linecap="round" d="M253 189.8c-.3 1.3-1 2.9-3 2.7"/>
+ <path d="M245.7 198.5c-2-1.9-6-2.4-10.1.2L234 200l-1.4 1.6a18 18 0 0 0-2.4 5c-.7 3-.7 5.6-.6 6.3q0 1.5.3 2.7 1 4.2 2.3 6.2c.9 1.5 3 5 7.7 5.4 1.8.1 4.8-.7 5-3"/>
+ <path stroke-linecap="round" d="M363.8 157c.3-1.6 2.3-1.9 3-1 1.2 1.6.4 4.2-2 4.9a4 4 0 0 1-3.8-1.4c-1-1.3-.9-2.8-.5-4q.4-1.2 1.7-2.2c2.7-2 7.1-1.6 8.6 2 1.8 4.4-2.2 7.8-6 10.3-4.6 3.2-10 3.8-14 3.7-9.2 0-16.1-4.4-20.7-7q-1.7-.7-2.7.3a2 2 0 0 0 .3 2.7"/>
+ <path stroke-linecap="round" d="M365.6 155.5c1 0 1.2.4 1.5.8 1.2 1.5.3 4.1-2 4.9m17.8 51.5c-3.5 3.8-.2 10.3 2.4 11.8.9.7 1.3.3 2 .7"/>
+ <path d="M383.1 205.4q-1.5 1-1.6 3.3a5 5 0 0 0 1.4 4 14 14 0 0 0 9.3 3.7q3 .1 6-1.7a9 9 0 0 0 3.8-5.4m-20.8 61.8-.2 2.5a19 19 0 0 1-2 7 19 19 0 0 1-4.2 5.6 20 20 0 0 1-5.9 4 25 25 0 0 1-6.5 2.3 44 44 0 0 1-13.2.6c-2.7-.2-4.1-.5-6.8-.8-2.2-.1-3.4-.3-5.6-.3a28 28 0 0 0-10.9 1.9c-2.7 1-5.7 3-6.4 3.8-.6-.9-3.7-2.8-6.3-3.8a22 22 0 0 0-5.2-1.5c-2.2-.4-3.5-.4-5.8-.4s-3.4.2-5.6.4c-2.6.2-4 .6-6.7.7-2.5.2-3.9.3-6.3.2a33 33 0 0 1-7-.8 25 25 0 0 1-6.5-2.2 20 20 0 0 1-5.8-4.1 19 19 0 0 1-4.2-5.7 19 19 0 0 1-2-6.9c-.2-1-.2-2.5-.2-2.5V169.3h123.2z"/>
+ </g>
+ <g fill="#c7b37f" stroke="#c7b37f">
+ <path stroke-width=".3" d="M248 285.6a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zM232.5 268q.2-2.1 1.8-2.3c1.6-.2 1.7 1 1.7 2.3q-.2 2-1.7 2.2-1.6-.2-1.8-2.2z"/>
+ <path stroke="none" d="M241.3 223.6q.2-1.7 1.7-1.8 1.6.2 1.7 1.8c.1 1.6-.7 1.8-1.7 1.8s-1.7-.8-1.7-1.8M272 158c0-1 .5-2 1.4-2q1.5 0 1.8 1.6c0 1-.5 2-1.4 2q-1.4 0-1.8-1.6"/>
+ </g>
+ <g stroke="#c7b37f" stroke-linecap="round" stroke-width=".6">
+ <path d="M239.3 234q-.6.1-.8.5-.4.3-.6.9l-.2 1.2m4.7 26.7 1-1 .6-1 .5-1 .7-1.3m-1.3 14-1.5.7-1.1.6-1.3.8-1.2 1m15-37.9-.8-.8-1-.8-.9-.8"/>
+ <path stroke-linecap="butt" d="m254.2 225-1.2.5-1.5.3"/>
+ <path d="m237.4 208.4.5 1.5q.3 1 .9 1.7a8 8 0 0 0 2.6 2.7l1.5.8m-1-5.8 1.3.6a7 7 0 0 0 3 .6l1.8-.1m7.2-40.7-2-1.2q-1.2-.7-2-1.5l-1.1-1.3-.8-1.3m7.5-4.6.6 1.7 1.4 2c1 1 1.7 1.3 2.8 2.2m1.4-6 .7 1.6.8 1.2 1.3 1.3q1 .7 2 1.1"/>
+ </g>
+ <path fill="#703d29" stroke-width=".2" d="M333.3 151.6c0-1.7-1.7-1.8-2.4-1.8-1.8 0-2.3 1.1-4.6 2.3a12 12 0 0 1-6.7 2 12 12 0 0 1-6.7-2c-2.3-1.2-2.7-2.3-4.6-2.3a2.3 2.3 0 0 0-2.2 2.4v.9l.3.2q0-1 .5-1.7a2 2 0 0 1 1.6-.8c1.8 0 2.5 1.2 4.8 2.4 3 1.6 4.2 1.9 6.7 2a12 12 0 0 0 6.8-2c2.3-1.2 3-2.5 4.8-2.5q.9 0 1.3 1v.9l.2.1z"/>
+ </g>
+ <g fill="#703d29">
+ <path d="M264.4 294c.5-.5.9-.3 1-.6q0-.2-.3-.3l-.9-.2-.8-.4h-.5c-.1.4 1 .4.6 1.4l-.8 1.2-2.6 3-.2.1v-4.3l.1-1.8c.2-.4.8 0 .9-.4q0-.2-.3-.3t-1.1-.3l-1-.5h-.6l.1.3q.5.2.5 1v7.4q0 .7.2.7l.4-.3z"/>
+ <path d="M267.5 295.2c.3-1.1 1-.4 1-.8q.1-.2-.2-.3l-1.3-.4-1.2-.4h-.4c-.1.5 1.1.5.8 1.5l-1.7 5.5c-.3 1-1 .6-1.1 1v.1l1.2.4 1.6.5h.3c.2-.4-1.2-.3-.7-1.7zm3.7 1q.3-.7.9-.4 1.6.6 1 2.5c-.2.6-.4 1.2-2 .8q-.6-.1-.6-.5l.7-2.3zm-2.8 5c-.5 1.4-1.2.8-1.3 1.2q0 .2.3.3l1.6.4.8.3h.4c.1-.5-1-.3-.7-1.5l.6-2q0-.6.6-.3.8.1.8.8l.3 2q.1 1.4 1 2 1 .1 1.4-.4l-.2-.2h-.3s-.3 0-.3-.3l-.7-3.6q.1-.2.8-.3a2 2 0 0 0 1-1.3c.1-.5.4-2.2-1.8-2.9l-2.1-.5-1.2-.4h-.3c-.1.5 1.1.4.7 1.7zm8.4 2.5c-.4 1.4-1.4.5-1.5 1q0 .3.3.3l1.5.3 1.4.4q.4.2.6-.1c0-.3-1.3-.3-1-1.8l1.3-5.2q0-.8.6-.5l1 .2c1.1.3.5 1.5 1 1.6q.2-.1.2-.6l.1-1v-.4l-3.3-.7-3.2-.8q-.2 0-.2.2l-.5 1.5q-.2.3 0 .4c.5.1.5-1.5 1.7-1.2l.9.2q.6 0 .4.8zm12.7-3.3c.4-.6.8-.5.9-.7q0-.2-.4-.3h-.9l-.9-.3q-.3-.1-.4.1c-.1.4 1 .2.8 1.3q0 .3-.6 1.3l-2 3.3-.3.2v-.2l-.7-4-.1-1.8c0-.5.7-.2.7-.5q.1-.2-.4-.3l-1.1-.1q-.6 0-1-.3-.4-.1-.6.1l.1.2q.7.2.7.9l1.3 7.3.3.7.4-.3zm.6 6.8q0 .3.2.5l1.7.7c1.4.2 2.6-.7 2.8-2.2.3-1.5-.3-2.1-1.4-2.9-1.3-.9-1.8-1.1-1.7-2q.3-1 1.4-1c1.8.3 1.6 2.6 1.8 2.6q.4 0 .3-.4l.2-1.6v-.4h-.6c-.4 0-.7-.5-1.6-.7q-2-.1-2.5 2-.1 1.6 1.2 2.4c1.6 1.1 2.2 1.4 2 2.4q-.3 1.5-1.7 1.3c-1.2-.2-1.6-1.4-1.8-2.6q0-.3-.2-.3-.2.1-.2.5v1.7zm15.8-4.5c.3-.7.8-.6.8-.9q0-.2-.4-.2h-.9l-.9-.1q-.3 0-.4.2c0 .4 1 0 1 1.1q0 .3-.5 1.4l-1.8 3.5-.1.3-.1-.3-1.1-4-.3-1.6c0-.5.7-.3.7-.6q.1-.2-.4-.2h-1.2l-1-.2q-.4-.1-.6.1l.2.2q.6.2.7.8l2.1 7.1.4.7q.2.1.3-.4z"/>
+ <path d="M307.6 308.5c0 1.2-1 1-1 1.5q0 .2.3.1h2.2l.4-.1c0-.6-1.4.2-1.4-2v-4.2l.1-.1.2.1 5.1 6.3.3.1.2-.3v-6.7c0-1.3 1-1 1-1.3l-.3-.2h-2.3q-.2 0-.2.2c0 .4 1.3.2 1.3 1.3v4l-.1.4-.4-.3-4.2-5.3q-.1-.4-.4-.3h-1.8l-.2.1c0 .6 1.2-.2 1.2 2.1zM318 303c0-1.1.8-.7.8-1.1q.1-.2-.4-.2h-2.6s-.3 0-.3.2c0 .4 1.1 0 1.1 1.2v5.7c0 1.1-.8.8-.8 1.2l.2.2h2.8q.3 0 .3-.2c0-.4-1.2.2-1.2-1.3zm4.5 5.5c0 1.5-1.2 1-1.2 1.4q0 .3.4.2h3q.5 0 .5-.3c0-.3-1.4 0-1.4-1.4V303q-.1-.7.5-.6h1c1.2-.1.8 1.2 1.3 1.2q.2-.1.1-.6l-.1-1q0-.3-.2-.4l-3.3.1h-3.3l-.2.3-.1 1.6.1.4c.5 0 .2-1.6 1.4-1.6h.9q.5-.1.6.6v5.6zm6.3-2.2h-.4l.1-.5.7-2.2v-.2l.2.1 1 2.1.2.4q0 .3-.4.2zm1.8.5c.3 0 .3 0 .8 1l.2.8c0 .7-.7.6-.7 1q0 .2.4 0h1.2l1.3-.1q.4 0 .4-.2c0-.4-.6 0-1-.7l-3.4-7-.3-.4q-.2 0-.3.4L327 309c-.2.7-.8.7-.7 1h2.3q.4 0 .5-.3c.1-.3-1.2 0-1.3-.9l.2-1q.3-1 .6-.8l2.1-.2zm8.3-5c-.1-.8 0-.8 1.2-1 2-.2 1.4 1.3 2 1.2q.2-.1 0-.6l-.1-1.1q0-.2-.3-.2-1.4 0-2.4.3l-2.8.4q-.3 0-.3.2c.1.5 1.3 0 1.4 1l.7 5.5c.2 1.5-.7 1-.6 1.5h.2l1.4-.1 1.2-.1q.5 0 .5-.3c0-.3-1.2.1-1.4-1.2l-.2-1.7q-.2-1 .3-1h.8c1.1-.2 1 1.1 1.3 1q.4-.2.1-.5l-.3-2.1q-.1-.4-.2-.3c-.3 0-.1 1.1-1 1.2l-.7.1q-.6.2-.6-.5zm4 2.8c.4 2.3 2.1 3.7 4.2 3.3 3.4-.7 3.5-3.6 3.2-5.3-.5-2.5-2.3-3.7-4.4-3.3-2.5.5-3.5 2.7-3 5.3m1.1-1c-.3-1.6 0-3.4 1.7-3.7 1.4-.3 3 .8 3.4 3.4.3 2 0 3.6-1.8 4s-3-2-3.3-3.6zm8.3-4.1q0-.9.6-.9 1.6-.2 2.1 1.6c.2.7.3 1.4-1.3 1.8q-.5.1-.8-.2l-.5-2.3zm0 5.7c.4 1.4-.5 1.3-.5 1.6q.2.3.4.1l1.6-.4 1-.2q.3 0 .2-.2c0-.4-1 .3-1.3-1l-.5-2c0-.4-.2-.4.4-.5q.6-.3 1.1.3l1.3 1.6c.5.6 1 1.3 1.8 1.1q.9-.2 1-.9l-.2-.1-.3.1s-.3.1-.4 0l-2.4-2.9.5-.6q.4-.6.2-1.6c-.1-.5-.7-2.1-3-1.6l-2.1.6-1.2.2q-.3 0-.2.2c0 .5 1.1-.2 1.4 1zm8.7-2c.3 1.4-1 1.2-.9 1.6q.1.3.5.2l1.4-.5 1.5-.3q.5.1.4-.4c0-.3-1.3.4-1.7-1l-1.3-5.3q-.2-.7.3-.7l1-.2c1.1-.4 1.1 1 1.5.9s0-.5 0-.7l-.4-1s0-.3-.2-.2l-3.2.9-3.2.7v.3l.1 1.6q0 .4.3.4c.5-.1-.3-1.6 1-1.9l.8-.2q.6-.2.7.5zm5.5-7.3c-.3-1 .6-.9.4-1.3h-.3l-1.4.4-1.2.3s-.3 0-.3.2c.1.4 1.2-.2 1.5.8l1.6 5.6c.2 1-.6 1-.5 1.3q0 .2.2.1l1.1-.3 1.6-.4q.4 0 .3-.3c-.1-.3-1.1.5-1.5-.9zm2.3 2.7c.7 2.3 2.6 3.4 4.7 2.7 3.2-1.1 3-4.1 2.4-5.7-.8-2.4-2.8-3.3-4.8-2.7-2.4.9-3.2 3.2-2.3 5.7m1-1c-.6-1.7-.6-3.5 1.1-4 1.3-.5 3 .4 3.9 2.9.6 1.8.5 3.6-1.2 4.2-1.8.6-3.2-1.5-3.8-3.2zm7.6-5.5q-.2-.9.4-1 1.7-.3 2.4 1.4c.2.6.4 1.3-1.1 1.9q-.6.2-.8 0zm.8 5.6c.6 1.4-.4 1.4-.2 1.7q0 .3.4.1l1.5-.7.9-.2q.3-.1.2-.3c-.2-.4-1 .4-1.4-.8l-.8-1.9q-.4-.5.3-.7.6-.3 1.1.3l1.6 1.4c.5.5 1.1 1.1 2 .8.3-.2.9-.7.7-1l-.2-.1-.2.2h-.5l-2.8-2.5.4-.7a2 2 0 0 0 0-1.6c-.1-.6-1-2-3.1-1.2l-2 .9-1.2.4-.2.2c.2.4 1.1-.4 1.6.8l2 5z"/>
+ </g>
+ <g fill="#fedf00" transform="matrix(.64 0 0 .64 0 16)">
+ <path fill="#d52b1e" d="M412.7 249.3h82.1v82h-82.1z"/>
+ <path id="ad-a" fill="#fff" d="M451.2 313.8s0 3-.8 5.3c-1 2.7-1 2.7-1.9 4a13 13 0 0 1-3.8 4q-3 1.9-6 1.6c-5.4-.4-8-6.4-9.2-11.2-1.3-5.1-5-8-7.5-6q-2 1.7-.3 4.6a9 9 0 0 0 4.1 2.8l-2.9 3.7s-6.3-.8-7.5-7.4c-.5-2.5.7-7.1 4.9-8.5 5.3-1.8 8.6 2 10.3 5.2 2.2 4.4 3.2 12.4 9.4 11.2 3.4-.7 5-5.6 5-7.9l2.4-2.6 3.7 1.2z"/>
+ <use xlink:href="#ad-a" width="100%" height="100%" transform="matrix(-1 0 0 1 907.5 0)"/>
+ <path d="m461.1 279 10.8-11.7s1.6-1.3 1.6-3.4l-2.2.4-.5-1.2-.1-1.1 3-.7V260l.3-1.3-3.2.2.3-1.4.5-1 1.9-.4h1.9c1.8-3.4 9.2-6.4 14.4-1 3.8 4 3 11.2-2 13.2a6 6 0 0 1-6.8-1.1l2-4c2.7 1.7 5-.3 4.8-2.4-.2-2.7-2-4.3-4.3-4.5q-3.5-.1-5 3c-.6 1.3-.3 2.2-.5 3.6-.2 1.5 0 2.3-.5 3.8a9 9 0 0 1-2.4 3.6l-11 12-43 46.4-3.2-3z"/>
+ <path fill="#fff" d="M429.5 283s2.7 13.4 11.9 33.5c4.7-1.7 7.4-2.8 12.4-2.8s7.6 1 12.3 2.8A171 171 0 0 0 478 283l-24.2-31z"/>
+ <path d="m456.1 262.4 16.8 21.7s-2.2 10.5-9 26.3c-2.7-.6-5-1.1-7.8-1.3zm-4.7 0-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3z"/>
+ </g>
+ <g fill="#d52b1e">
+ <path fill="#fedf00" d="M322.3 175.5h52.6V228h-52.6z"/>
+ <path d="M329.7 175.5h7.8V228h-7.8zm15 0h7.8V228h-7.8zm15 0h7.9V228h-7.9z"/>
+ </g>
+ <g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
+ <path fill="#fedf00" stroke="none" d="M264.3 273.5q.1 1.6 1.4 4.3c1 1.5.6 1.4 2.7 3.8a15 15 0 0 0 4 2.9 33 33 0 0 0 15 2.6q4-.2 6.6-.7a71 71 0 0 1 11-.6q2.2 0 4.7.6c3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4z"/>
+ <path stroke-width=".3" d="m270.4 283.1 2.5 1.5 3.4 1.2v-52.2h-5.9zm29.2 2.4v-51.9h-5.8v52.8l5.8-.7zm11.7-51.9h-5.8v52.1l5.8 1zm-23.4 0V287s-3.8.2-5.8 0v-53.4z"/>
+ </g>
+ <g transform="matrix(.64 0 0 .64 0 16)">
+ <path fill="#fedf00" d="M585.5 402.4a21 21 0 0 1-2.2 6.6c-1.5 2.3-1 2.3-4.3 6a26 26 0 0 1-13 7 52 52 0 0 1-16.6 1.6q-6.3-.4-10.3-1c-3.8-.6-6.7-.9-11-1h-6.2a83 83 0 0 0-18.3 4.2V340h82.2v58.5z"/>
+ <g id="ad-b">
+ <path fill="#d52b1e" d="m524.6 347-.6.2-.8.8q-.5.5-1.2.8l-.6.5c-.3.3 0 .6-.3 1q-.1.5-.6 1t-1 1l-1.2 1-.3.1h-.6l-.8.8.3.6.8 1.4q.2.6.5.8.7.3 1.3.1l2 .5 1.5.8q.6.4 1.3.5h1.8v.3l2 1-.1.4q-.2.5-.1.8 1 2.9 1.5 3.2.8.4 1.1 1.5l-.3.3q-1 .8-1.7 1.8c-.7 1.2-1.2 1.2-.3 2.8l1.5 2.4.8 2q.3 1 .3 2l1 .3.7-.6.6-1.2v-1q-.3-.2-.2-.7c0-.4.5-.3.7-.6.3-.5-.4-.8-.7-1.1-.6-.7-1.4-.9-1.6-1.9q-.1-.3.4-.7l2-1.8q.4.2 1 .1l1.3.4h1.6l.1.6c.1 1-.1 3 .2 3.5l.3.6.2.6v2l-.2 1.7q0 .6-.5 1t-1 .7v1l1.1.5 1.3.3.7-.3.1-.6.5-.5.9-.1q.2-.3 0-.8 0-.8-.3-1.6l-.1-2.8q0-.8.2-1.5c.1-1 .4-1.4.6-2.2l.4-2.5a24 24 0 0 0 10.1-.6q1.2 1 2.7 1.6v1q0 .4.2.7l.3.3q.4 0 .7-.2t.2-.7v-.7h1.8v1.1q.2.4.5.4h.6q.3-.4.3-1v-.7l1-.4v.9l-.3.9c-.2.6-.5.8-.8 1.4q-.4.8-1 1.5l-.6.7-.6.9-.9 1c-.7.6-1.2.2-2 .9l-.3 1 1.4.6 1.3.2.4-.2q0-.5.3-.8t.7-.4q.6 0 1-.2.4-.6.7-1.5a13 13 0 0 1 3-3.9l1.7-1.4q.4-.4.5-1l-.2-.6-.2-1c1.5.7 1 .7 1.2 1.4.3.6 0 1 .1 1.7.1.8.5 1.1.5 1.9q0 1.1-.3 2.3 0 1-.5 2a4 4 0 0 1-1.1 1.5l-.6.5-.1 1 1.1.4 1.6.4.4-.3c.2-.7 0-1.7.4-1.7q.6 0 .8-.3v-.7l.7-4.5.4-1.9.4-1.7c.7-2-.2-2.3-1-3.6q-.7-.9-.7-1.5v-5.7l.4-.2c1.2-.7 1.7-.9 2.4-2.5l.3-1.5v-1l-.4-1-.6-.8c-.7-1-1.7-1.1-2.7-1.5-1.5-.5-2.5-.4-4-.5-1.8-.2-2.7-.2-4.4 0-2 0-3.1.4-5.1.7l-4.9.4c-2.3 0-4.4-.5-5.8-.4-2.4.2-2.5.8-6.2 1.1l-3.8.2-2.2-.7c.9-.3 1.1-.5 1.5-1s.2-.7.6-1.1l.7-1-.9-.4h-1l-1.2.3-.8.6-2.2-1.2a9 9 0 0 0-3-.9zm2 11.8"/>
+ <g fill="none" stroke="#fedf00" stroke-linecap="round">
+ <path d="m568.8 359.5-.8.3q-1.2.5-2.6.5c-2.6.2-4.3-1.1-7-.9-1.4.1-2 1.2-3.5 1.6l-1.7.2.5-1s-1.2.3-2 .3l-1.6-.2 1-1-1.3-.2-1-.7 1.7-.3c1.5-.4 2-1.2 3.9-1.4 1.1 0 3 0 7.6.8 3 .5 4.4.2 5.5-.3q1-.5 1.1-1.8 0-1.2-.8-1.8l-1.1-.4"/>
+ <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M524.8 350.6q-.7 0-1.3.3-.6.5-1 1.1.7.3 1.2.3t.8-.5q.4-.5.4-1.2z"/>
+ <path d="m536 363.8 1 2.3c.2.8 0 1.2.2 2v1.6m6.8-7-.3 1.3-1 3.5v.7m-11-4c.9.2.6 3.3 1.9 4"/>
+ <path stroke-linecap="butt" d="m560.1 369.8.4-.3a8 8 0 0 0 2.7-1.8"/>
+ <path d="M552.4 368c3.5-.9 5.9-2.6 7.6-2.9m-4-1.5h.8c1.5-.3 1.7.6 2.7 1.2 1.9 1 2.1 2.3 4.3 3.4l.4.1.8.4"/>
+ <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M517.7 354.5h.7l.8-.2q.4 0 .7.2.2 0 .3.3t.1.5q0 .3-.6.4-.3 0-.5-.3v-.4a1 1 0 0 1-.9 0z"/>
+ </g>
+ <path fill="#0065bd" d="m525.1 364.2-2-.9 1-.5.5-1.3q.1-1 .7-1.4t1.1-.1q.7.1.9.7 0 .8-.3 1.5l-.2 1.4q0 .6.4 1l-2-.4zm-1 1a.6.6 0 1 1 .7.5.6.6 0 0 1-.7-.6zm-1.7-16.6h-.2l-.6-1.2-.3-1.2v-2q0-.5-.2-.9c0-.2-.4-.3-.3-.4h.4q.5 0 1 .4t.6 1l.4 1.5.3.8.5.6-.7.8zm3.6 10.6 2.2 1a9 9 0 0 0 3.5-3.8c.9-1.8 1-2.7 1.4-4.4l-1.8-.5h-.4c-.5 1.8-.7 2.7-1.6 4.2q-1.2 2-2.6 3zm5 18.2.8-1.3 1.4-1.1h.4a9 9 0 0 1-.5 2.8l-.4 1-.5.5c-.5-.8-1.3-1.3-1.3-2zm33 1.8 1.4.6 1.5.9v.5l-1.5.2h-2.3l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9.8-2 1.4.5 1.5 1v.4a9 9 0 0 1-2.7.3l-1-.1-.7-.3c.6-.7.9-1.7 1.5-1.8m-17.4 2.1 1.5.5 1.5 1v.5a9 9 0 0 1-2.8.2h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8m-9-29.8q-1-.6-.6-1.6l.6-.4q.2-.4 0-.8l-.1-1-.2-1q-.1-.8.4-1.6.5-.5.8-.6.2.3 0 .8 0 .6.3 1.2l.7 1.3.4 1.4-.2 1.2-.6.8-.8.4z"/>
+ </g>
+ <use xlink:href="#ad-b" width="100%" height="100%" y="36.6"/>
+ </g>
+ <path fill="none" stroke="#703d29" stroke-width=".5" d="M264.1 175.5h52.6V228h-52.6zm58.2 0h52.6V228h-52.6zm-58 98q.1 1.6 1.4 4.3c1 1.5.6 1.4 2.7 3.8a15 15 0 0 0 4 2.9 33 33 0 0 0 15 2.6q4-.2 6.6-.7a71 71 0 0 1 11-.6q2.2 0 4.7.6c3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4zm110.4 0a13 13 0 0 1-1.4 4.3c-1 1.5-.6 1.4-2.7 3.8a15 15 0 0 1-4 2.9c-1.3.7-2.3 1-4.4 1.6a33 33 0 0 1-10.6 1q-4-.3-6.5-.7l-7.2-.6H334q-2.2 0-4.7.6c-3.5.7-7 2-7 2v-54.8H375v37.5l-.2 2.4z"/>
+</svg>
diff --git a/apps/web/public/flags/ae.svg b/apps/web/public/flags/ae.svg
new file mode 100644
index 00000000..651ac852
--- /dev/null
+++ b/apps/web/public/flags/ae.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ae" viewBox="0 0 640 480">
+ <path fill="#00732f" d="M0 0h640v160H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#000001" d="M0 320h640v160H0z"/>
+ <path fill="red" d="M0 0h220v480H0z"/>
+</svg>
diff --git a/apps/web/public/flags/af.svg b/apps/web/public/flags/af.svg
new file mode 100644
index 00000000..4dbe4556
--- /dev/null
+++ b/apps/web/public/flags/af.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-af" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#000001" d="M0 0h640v480H0z"/>
+ <path fill="#090" d="M426.7 0H640v480H426.7z"/>
+ <path fill="#bf0000" d="M213.3 0h213.4v480H213.3z"/>
+ </g>
+ <g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(1 27.3)scale(1.06346)">
+ <path d="M319.5 225.8h8.3c0 3.2 2 6.6 4.5 8.5h-16c2.5-2.2 3.2-5 3.2-8.5z"/>
+ <path stroke="none" d="m266.7 178.5 4.6 5 57 .2 4.6-5-14.6-.3-7-5h-23l-6.6 5.1z"/>
+ <path d="M290 172.7h19.7c2.6-1.4 3.5-5.9 3.5-8.4 0-7.4-5.3-11-10.5-11.2q-1.4-.1-1.9-1.3c-.5-1.6-.4-2.7-1-2.6-.4 0-.3 1-.7 2.4q-.6 1.3-2 1.6c-6.4.3-10.6 5-10.5 11.1.1 4 .6 6.4 3.4 8.4z"/>
+ <path stroke="none" d="M257.7 242.8H342l-7.5-6.1h-69.4z"/>
+ <path d="m296.4 219.7 1.5 4.6h3.5l-2.8-4.6zm-2 4.6 1 4.6h4l-1.5-4.6zm7 0 2.8 4.6h5.9l-4.6-4.6zm-34.5 10.4c3.1-2.9 5.1-5.3 5.1-8.8h7.6q0 3 1.8 3h7.7v-4.5h-5.6v-24.7c-.2-8.8 10.6-13.8 15-13.8h-26.3v-.8h55.3v.8H301c7.9 0 15.5 7.5 15.6 13.8v7h-1l-.1-6.9c0-6.9-8.7-13.3-15.7-13.1-6 .1-15.4 5.9-15.3 13v2.2l14.3.1-.1 2.5 2.2 1.4 4.5 1.4v3.8l3.2.9v3.7l3.8 1.7v3.8l2.5 1.5-.1 3.9 3.3 2.3h-7.8l4.9 5.5h-7.3l-3.6-5.5h-4.7l2.1 5.4h-5l-1.3-5.4h-6.2v5.8H267zm22.2-15v4.6h5.3l-1-4.6H289z"/>
+ <path fill="none" d="M289.4 211.7h3.3v7.6h-3.3z"/>
+ <path fill="none" d="M284.7 219.8h3.2v-5.6c0-2.4 2.2-4.9 3.2-5 1.2 0 2.9 2.3 3 4.8v5.8h3.4v-14.4h-12.8zm25.6 3.3h4v3.2h-4zm-2.4-5.3h4v3.1h-4zm-3.9-5.4h4v3.1h-4zm-3.3-4.5h4v3.1h-4z"/>
+ <path fill="none" d="m298 219.8 4.2.2 7.3 6.4v-3.8l-2.5-1.8v-3l-3.6-2v-3.3l-3.5-1.2V207l-1.7-1.5z"/>
+ <path d="M315.4 210.3h1v7.1h-1z"/>
+ <g id="af-a">
+ <path d="M257.3 186.5c-1.2-2-2.7 2.8-7.8 6.3-2.3 1.6-4 5.9-4 8.7v5.8c-.1 1.1-1.4 3.8-.5 4.5 2.2 1.6 5.1 5.4 6.4 6.7 1.2 1 2.2-5.3 3-8 1-3 .6-6.7 3.2-9.4 1.8-2 6.4-3.8 6-4.6z"/>
+ <path fill="#bf0000" d="M257 201.9a10 10 0 0 0-1.6-2.6 6 6 0 0 0-2.4-1.8 5 5 0 0 1-2.4-1.5l-.8-1.5v-2l-.3.3c-2.3 1.6-4 5.9-4 8.7v2.3q.2.8.6 1.3l1.1.8 2.7.7a7 7 0 0 1 2.6 2 11 11 0 0 1 1.8 2.6l.2-.8c.8-2.7.7-5.9 2.6-8.5z"/>
+ <path fill="none" d="M249.8 192.4c-.5 3.3 1.4 4.5 3.2 5.1 1.8.7 3.3 2.6 4 4.4m-11.7 1.5c.8 3 2.8 2.6 4.6 3.2s3.7 3 4.5 4.8"/>
+ <path d="m255.6 184.5 1-.6 17.7 29.9-1 .6z"/>
+ <path d="M257.5 183.3a2 2 0 1 1-4 0 2 2 0 1 1 4 0zm15.2-24h7.2v1.6h-7.2zm0 3.1h7.2v13.8h-7.2zm-.4-5h8c.2-2.7-2.5-5.6-4-5.6-1.6.1-4.1 3-4 5.6z"/>
+ <path fill="#bd6b00" stroke="none" d="M292.6 155.8c-1.5.6-2.7 2.3-3.4 4.3s-1 4.3-.6 6.1q.1 1 .5 1.5.3.5.6.5.5 0 .7-.3l.2-.8q-.2-3 .3-5.4a8 8 0 0 1 3-4.4q.4-.3.5-.7l-.3-.7q-.7-.5-1.5-.1m.2.4q.6-.2 1 .1l.1.2-.3.4a8 8 0 0 0-3.1 4.6 17 17 0 0 0-.3 5.6l-.2.6s0 .1-.2 0l-.4-.3-.4-1.2q-.4-2.9.7-6 1.1-2.9 3-4z"/>
+ <path fill="#bd6b00" stroke="none" d="M295.2 157.7q-2.3 1.2-3 4.2a14 14 0 0 0-.3 5.9q.5 2 1.6 2 .5.2.8-.3t.2-1q-.6-2.5-.3-5.1.4-2.6 2.2-4.1.5-.4.5-.8l-.2-.6q-.7-.5-1.5-.2m.2.5q.6-.2 1 0l.1.3-.3.4a7 7 0 0 0-2.4 4.4q-.4 2.8.2 5.2v.8l-.5.1c-.3 0-1-.5-1.2-1.7-.3-1.7-.2-3.9.3-5.7q.8-2.9 2.8-3.8"/>
+ <path d="M272.3 187.4h8v11h-8zm.5 17.4h7.7v2.4h-7.7zm-.2 4.1h8v8.7h-8zm-.6 10.5h8.7v4.9H272zm1.1-16.6h7l1.4-2.4h-9.6zm9.4-8.6.1-6h4.8a17 17 0 0 0-4.9 6z"/>
+ <path fill="none" d="M273.6 196.7c0 1.3 1.5.8 1.5.1v-5.6c0-1 2.4-.8 2.4-.1v6c0 1 1.7.9 1.6 0v-7c0-2.2-5.5-2.1-5.5-.1zm0 13.3h5.7v7h-5.7z"/>
+ <path d="M277.2 213h2v1h-2zm-3.5 0h2v1h-2zm2-3h1.5v3h-1.5zm0 4h1.5v3.1h-1.5zM244 139c.4 5.5-1.4 8.6-4.3 8.1-.8-3 1-5.1 4.3-8.1zm-6.5 12.3c-2.6-1.3-.7-11.5.3-15.8.7 5.5 2 13.3-.3 15.8z"/>
+ <path d="M238.4 151.8c4.4 1.5 8-3.2 9.1-8.7-3.6 5-9.5 5-9 8.7zm-3.3 5.1c-3.4-.9-1.4-11.7-.7-16 .7 4.5 3.1 14.5.7 16zm1.2-.3c.2-3.7 3.9-2.7 6.5-4.7-.5 2-2 5.2-6.5 4.7zm-4.2 5c-3.4-1-1.4-12.6-1.6-17.4 1 4.2 4.2 16.3 1.6 17.4zm1.6-.5c2.8.9 6.5-1 6.8-4.3-2.5 1.7-6.3.4-6.8 4.3z"/>
+ <path d="M229.5 166.7c-3.2.3-1.8-9.6-1.8-18.8 1.2 8.6 4.5 16.5 1.8 18.8z"/>
+ <path d="M230.7 166.3c2.2 1 6.1-.7 7.2-4.4-4 1.7-6.6 0-7.2 4.4zm25.6-22.2c-.6 4.9-2.6 7.7-5.5 7.2-.8-3 1.6-5 5.5-7.2zm-7.8 12.4c4.9.7 6.6-3 10-7.9-4.7 3.4-10.2 4-10 8z"/>
+ <path d="M247 156c-2.6-3.2 0-7.3 2-10.7-.4 5.1 1.3 8-2 10.7zm-1 5.3c-.4-3.2 5-3.9 7.4-5.6-.9 1.8-2 6.7-7.5 5.6z"/>
+ <path d="M244.8 161.3c-3.7-.4-2.2-6.7.5-10.1-1.1 4.8 2 8.1-.5 10.1z"/>
+ <path d="M242 166.6c-4.2-2-1.5-7.2 0-10.3-.6 4.1 2.8 7.2 0 10.2z"/>
+ <path d="M242.8 166c2.2 3 6.5-.8 7.4-5.2-3.7 3.1-6.5 2.6-7.4 5.3zm-9.6 20.3c-.4-4.3 2.8-12 .5-16.2-.3-.6.7-2.1 1.4-1.2 1 1.5 2 5.7 2.5 4.1s.5-4.6 2-5.2c1-.3 2.3-.6 1.9 1-.4 1.4-1.2 3.4-.3 3.5.5 0 2-2 3.3-3 1-.8 2.6.6 1 1.8-4.8 4-9.5 5.9-12.3 15.2zm-8.7 64.5c-.6 0-1.3-.3-.6.6 5.7 7 7.3 9 15.6 8 8.3-1.1 10.3-3.4 16.2-6.7a15 15 0 0 1 11.2-1c1.6.5 2.6.5 1.4-.7s-2.5-2.7-4-3.8a18 18 0 0 0-12.7-2.7c-6 1-11.1 4.9-17.2 6.4a25 25 0 0 1-9.9 0zm47.8 12.5c1 .2 1.7 2.2 2.3.9.8-2.3.2-4-.8-3.9-1.2.3-3.1 3-1.5 3z"/>
+ <path stroke="none" d="M220.6 183q-1.8-2 1-1.9c1.4 0 4.2 1 5.3.1 1-.7.5-3.7 1-5 .2-.9.7-2 2-.2 3.6 5.8 8 12.8 10 19.6 1 3.8 0 9.8-3.4 13.8 0-3.4-1.2-5.7-2.7-8.6-2-3.7-9.1-14-13.2-17.9z"/>
+ <path d="M235.5 213.4c4 0 4.7-5.3 4.7-6.8-2 .4-5.4 3.7-4.7 6.8zm34.5 51.9c2.8.6 2.7-6.2-.2-9.1 1.3 4.4-2 8.4.1 9zm-1.2-.1c.2 3.2-8-.4-10-3 4.8 2.1 9.8.4 10 3zm-3.5-4.6c.3 3.1-7 .3-9.3-2.1 4.9 1.6 9-.5 9.3 2zm1.3.4c2.9.7 2.4-6.4-.4-8.8 1.4 4.7-1.8 8.1.4 8.8zm-3-4.3c2.9.7 1.2-5.4-.9-7.8.4 4.4-1 7.5 1 7.8zm-1.5 0c.3 3.2-5.4.8-7.6-2.3 4.8 1.5 7.3-.3 7.6 2.3zm-1.5-2.5c1.8-1.3-.1-4.8-3.7-4.6.4 2.1 1.6 5.9 3.7 4.6zm14 14.7c.1 3.2-8 1.6-10.6-1.8 5.2 1 10.3-.8 10.5 1.8zm-32.4-5.8c.3 3.2-8.6-.4-10.8-3.4 4.7 1.6 10.5.8 10.8 3.4zm5.4 1.3c1.9-1.3-1.9-4.7-5-5.5.4 2.1 3 6.8 5 5.6zm.6 2.3c.2 2.9-9.5 1.3-12-1.4 8.3 1.5 11.7-1.1 12 1.4z"/>
+ <path d="M252.8 268.6c1 2.7-8.3 2-11.6.5 5.3 0 10.8-2.4 11.6-.5z"/>
+ <path d="M257.1 270.6c1 2.4-7.6 2.4-11.8 1 5.6 0 10.8-3.4 11.8-1zm6.3 1.3c1.6 2.9-7.6 3.1-10.5 1.7 5.2-.7 9.2-4 10.5-1.7zm-10.7-4.9c-2.9 1.8-2.7-3.6-5-7.3 3.6 3.3 7 5.6 5 7.3z"/>
+ <path d="M257.9 269c-2.4 2.1-4.4-5.3-6.6-9.5 3.6 4 8.8 7.7 6.6 9.4zm6.8 2c-2 2.4-8-7-10.2-12 3.3 3.9 11.8 10 10.2 12zm-5.8 7.2c-1 3.6-16.2-3.4-18-7.1 8.8 4.6 18.2 3.6 18 7zm-48.7-73.8c-.4-.5-1.4 0-1.2 1.1.3 1.5 2.5 9.2 6.3 11.8 2.7 2 17 5.1 23.4 6.5q5.3 1 8.9 5.3a94 94 0 0 0-3-9.8c-1.2-3-4.4-6.2-7.8-6.3-6.1-.3-14.1-.8-20-3.3a16 16 0 0 1-6.7-5.3z"/>
+ <path d="M245.5 234.9c2 1.4 4.1-3.7 1.7-8.6-.1 4.7-3.8 6.3-1.7 8.6z"/>
+ <path d="M247.4 239.6c2.7.8 3.5-4 1.8-7.8.3 4.1-4.3 6.6-1.8 7.8z"/>
+ <path d="M249.5 243.4c2.6 1.3 3.5-3.6 1.7-7.1.2 4.5-3.7 5.9-1.7 7z"/>
+ <path d="M248.4 243.7c-1 3-7-2.7-8-5.8 3.7 3.7 8.7 3.2 8 5.7z"/>
+ <path d="M245.7 239c-1.2 3-8.7-5-10.4-8.7 3.7 3.7 11.2 6.5 10.4 8.6z"/>
+ <path d="M244.2 234.3c-1.2 3.5-9.3-5.8-11.7-9.1 4 3.6 12.6 6.6 11.7 9.1zm-.3-3.4c3-.6-.1-3-3.7-6.9-.1 4.1.5 7 3.7 6.9z"/>
+ <path d="M239 228.5c1.3-1.3-1.1-1.9-4.1-5.3-.5 2.3 2.8 6.5 4.2 5.3zm14 15.2c1.6 1 2.6-2.3.7-5.2-.5 3.2-2.1 4-.7 5.2zm-34.2-20.3c-3.3 2-8.6-6-10-9.3 2.9 3.8 10.6 7.2 10 9.3z"/>
+ <path d="M221.7 228c-1.9 2-7.7-3.5-9.7-6.3 3 2.7 10.5 3 9.7 6.3z"/>
+ <path d="M224.8 232.2c-.6 2.8-9-3.5-11-6.5 3.6 3.5 11.6 3.2 11 6.5z"/>
+ <path d="M223.5 235.3c-1.3 2.5-8.2-3.8-9.9-7 4.3 3.6 11 4.5 10 7zM220 223c2.1-2.3 1.2-3.4-.4-7-.8 3.7-2.1 5.2.4 7zm2.9 4.3c4 .2 0-4.6-1-8.7.4 4.6-1 8.3 1 8.7z"/>
+ <path d="M225.4 231.1c2.7-.6 2-4.5-.2-9.2.5 5.1-2.3 8 .2 9.2zm-1 7.7c-1 3-8.8-4-10-6.8 4 3.4 10.7 4.5 10 6.8z"/>
+ <path d="M229.1 243.6c-1.1 3-9.3-3.2-11.8-6.6 4.9 4 12.4 3.6 11.8 6.6z"/>
+ <path d="M233.9 248.5c-1.3 4.3-9.9-2.6-12.4-6 5.4 4.2 13 3 12.4 6zm-8-11c2.3 1.1 3.2-5.4 1.9-10.1 0 5-4.7 8.8-2 10z"/>
+ <path d="M229.8 242.7c2.8.8 2-6.3-.5-11-.3 4.7-2.3 9 .5 11zm5 4.9c3 .1 1-6.1-1.6-9.6.4 4.5-1 9 1.6 9.6zm-5.5 2.6c-1 1.6-3.2-1.3-7-3.5 3.4 1 7.4 2 7 3.5zm-1.8-52.7c3-2.2.7-6.2 0-10-1 3.6-3.4 8.4 0 10zm0 5.3c-4.5-.5-3.8-6.1-4-9.7 1.4 4.9 5 5.7 4 9.8zm.6-.7c3.7-.2 3.5-4.4 3.7-8.6-1.9 3.9-4 4.5-3.7 8.6z"/>
+ <path d="M228 207.3c-3 .3-4.4-2.6-5-7 2.7 4.1 5.1 2.8 5 7zm1-.3c3.7.5 3-3.8 3-7-1.2 3-4.2 4-3 7z"/>
+ <path d="M223.2 205.2c.3 2.8 2.1 7.6 5 6.5 1.1-3.4-2.6-4.1-5-6.5z"/>
+ <path d="M229 212c-1.2-2.4 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 7zm-11.9-29.2c2.3-2.4.3-6.4-.4-10.2-1 3.6-2.5 8.4.4 10.2zm0 4.6c-4 .5-5-7.7-5.5-11.3 1.4 4.9 6 7 5.5 11.4zm.8 0c2.8-1.5 2.2-4.7 3-7-1.8 2.9-3.6 3.3-3 7z"/>
+ <path d="M217 192.8c-4.1.3-6.6-8.8-6.8-12.4 1.3 4.9 7.4 7.5 6.9 12.4zm.9-.2c4-.9 3.5-3.5 2.9-7.6-1.3 4.2-3.5 3.3-2.9 7.6z"/>
+ <path d="M217 198c-4.6.8-4.3-6.6-8-11.9 3.2 4 9 9 8 11.9zm1-.3c3.6.2 4-5.1 3.8-7.3-.9 2.2-5 4.2-3.7 7.4z"/>
+ <path d="M209.8 192.3c1.7 5.7 4.2 11.4 7.2 11 1.5-3.3-2.9-3.7-7.2-11z"/>
+ <path d="M218.1 202.4c-1.2-2.5 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 6.9zm-7.1-3.6c2.5 5.1 3.6 11 7 10.1 1.3-4-3.8-4.8-7-10.1z"/>
+ <path d="M218.7 208c-1.5-2.8 2.7-3.7 3.8-7.4.5 4.8 0 8.3-3.8 7.3zm7.2-34.5c2.4.6 5-2.1 4.1-6.2-2.8.6-4 3.2-4.1 6.2zm-7.9-2.1c.2 1.2 1.7 1.3 1.2-.4a5 5 0 0 1 0-3.4 8 8 0 0 0 0-4.6c-.4-1-1.8-.4-1.2.4s.7 2.8.2 3.7q-.7 2.2-.2 4.3zm22.9 16c-1 1.3-2.9.4-1.4-1.5 1.2-1.5 3-2.8 3-4.4.2-2 1.3-5 2.4-6.1s2.4.4 1.2 1.2c-1.3.8-2.2 4.4-2.1 5.8-.1 2-2 3.5-3.1 5zm-3-2.3c-1 1.4-2.4.5-1.6-1.7.7-1.5.8-3.5 1.6-4.6 1.2-1.7 3-3.1 4.1-4.2 1.2-1 2 0 1 1a27 27 0 0 0-3.3 4c-1.4 2.2-.8 4-1.8 5.5zm-15.7-7.2c-.1 2 1.5 2.4 1.4-.4 0-3-2.2-5.8-1-10.3.8-2.2.8-6.3.4-8.4s-2-.8-1.3.9c.6 2-.1 5.6-.6 7.5-1.5 5.4 1.2 8 1 10.7zm4.3-11c-.2 1.9-1.8 2-1.3-.5q.6-2.9 0-5.3c-.6-2.1-.4-5.7 0-7.2.5-1.6 2-.7 1.4.5a10 10 0 0 0-.3 5.9c.6 2 .5 4.8.2 6.7zM210.9 204c.8.9 2 .3 1-1-1-1-.7-1.2-1.3-2.4-.6-1.4-.5-2.1-1.2-3-.7-1-1.6 0-1 .7.8 1 .6 1.6 1 2.5 1 1.5.7 2.3 1.5 3.2zm20.4 24.6a9 9 0 0 1 4.4 6.7 16 16 0 0 0 2 7.1c-2-.5-3-3.7-3.3-6.8-.3-3.2-2-4.5-3-7zm5.1 5.9c1.7 3.1 4 4.3 4.2 6.6.2 2.7.4 2.8 1.1 5.4-2-.5-2.5-.7-3-4.7-.3-2.8-2.6-4.7-2.3-7.3z"/>
+ <path stroke="none" d="M289 263.3c1 1.8 2 4.5 4 4 0-1.3-2.1-2.3-4-4m3 .6c3.7 1.6 7 1.2 7.5 3.6-3.6.4-5-1-7.6-3.6zm-16.1-12.7a14 14 0 0 1 5 7.7 29 29 0 0 0 3.6 7.8 13 13 0 0 1-5.3-7.4c-.7-3-1.6-5.3-3.3-8zm3.1 0c2.8 2.2 5.4 4.8 6.2 7.9.8 2.9 1.3 5.1 3.2 8-3-1.9-4.1-4.7-5-7.8-.7-3-2.5-5.2-4.4-8zm9.2 7.3a1 1 0 0 1 .7-1.2l2.6-.8c1-.3 1.6.4 1.6.9v2q0 .9-.7.9-1.2 0-2.4.7-1 .5-1.5-.5zm10.6 0q0-1-.6-1.2a5 5 0 0 0-2.4-.4q-1.3 0-1.1.6v2.1c0 .8 0 .8.4 1q1.3-.1 2.5.6.9.4 1.1-.6z"/>
+ </g>
+ <use xlink:href="#af-a" width="100%" height="100%" x="-600" transform="scale(-1 1)"/>
+ <g stroke="none">
+ <path d="M328.5 286.6q-.1 1.8 1 3.1a19 19 0 0 0-13.8 1.1c-1.8.8-4-1-1.9-2.7 3-2.3 9.7-1 14.7-1.5m-57.5 0a7 7 0 0 1-.4 3c4.4-1.7 9.1-.2 13.6 1.6 3 1.3 3.3-1 2.8-1.7a7 7 0 0 0-5-2.9zm3.8-21.7q-2-.7-4 1.4c-4.3 4.2-9.4 8.3-13.5 11.6-1.5 1.3-3 3.7 3.4 6 .3.2 5 2 8 2 1.3 0 1.3 1.8 1 2.3-.5 1-.1 1.4-1.1 2.3-1.1 1 0 2.1 1 1.3 3.6-3.2 9.6-1.1 15.3.7 1.4.4 3.8.3 3.8-1.6s1.5-3.4 2.4-3.5c2.4.4 14 .5 17.5.1 2-.3 2.2 2.9 3.3 4 .8.9 3.7 1.1 5.8.2 4-1.8 10-1.8 12.5 0 1 .7 1.9 0 1.3-.7-.8-1-.7-1.6-1.1-2.4-1-2-.2-2.4.8-2.5 11-1.5 14.6-5.2 11.2-8.3-4.4-3.8-9.2-7.7-13.4-12.2-1.2-1.2-2-1.7-4.3-.7a67 67 0 0 1-25.3 5.9 76 76 0 0 1-24.6-5.8z"/>
+ <path fill="#bd6b00" d="m326.6 265.5-1.6.4c-9 3.2-17.2 5.4-25.7 5.4-8.3 0-17-2.4-24.9-5.6a2 2 0 0 0-1.5 0q-.8.2-1.3.7a116 116 0 0 1-11.8 10.3c-.7.5-.6 1.8.5 2.2 8.3 3 16.4 8.5 39.6 8.3 23.5-.2 31.8-5.6 39.2-8.1q.8-.3 1.3-1l.1-.8-.6-.8c-4.3-3.5-8.8-6.3-11.8-10.4q-.5-.7-1.5-.5zm0 .5q.9 0 1.1.3c3 4.3 7.7 7 11.9 10.5l.4.7v.4q-.3.5-1 .7c-7.6 2.6-15.7 8-39 8.2-23.2.2-31.2-5.3-39.5-8.3-.8-.4-.7-1.2-.4-1.4q6.4-4.9 11.8-10.4l1.1-.6h1.2a68 68 0 0 0 25 5.6c8.7 0 17-2.2 26-5.3l1.5-.4z"/>
+ <path d="M269.7 114.6c0-1.4 2-1.5 1.8.4-.3 2.3 4.5 8.3 4.9 12 .3 2.5-1.5 4.6-3.2 6a7 7 0 0 1-6.8.5c-.9-.8-1.7-3.3-1-4.3.2-.3 1.3 3.7 3.7 3.7 3.3 0 6-2.5 6-4.7.2-3.8-5.3-9.8-5.4-13.6m9.5 9.4c.6-.4 1.4 1.3.8 1.7s-1.5-1.3-.8-1.8zm1.5-3.5c-.3.2-.8 0-.7-.2a12 12 0 0 1 3.6-3.3c.4-.2 1 .4.8.7a11 11 0 0 1-3.7 2.8m12.6-10c.3-.6 2.1-1.3 2.6-1.7.4-.5.6.4.4.7-.3.7-1.9 1.7-2.6 1.8q-.6-.1-.4-.7zm4.3.3a8 8 0 0 1 2.5-3.4c.5-.3 1.3 0 1.1.4a9 9 0 0 1-2.9 3.3c-.3.3-.8 0-.7-.3m-3.7 2.7q-.3.5.1.8 1 .3 2 0c.6-.4.3-2.9-.5-1.6-.6.8-1 .6-1.6.8m-7.3 5.6c-1.3-1 .4-2.4 1.7-1.4 2.7 2-4 9.8-7.6 13.4-.7.7-1.3-1-.4-1.9a34 34 0 0 0 6.7-7.6c.4-.5.7-1.6-.4-2.5m15.3-6.6c.1-1-1.6 0-1.6-1.3 0-.7 1.9-1.2 2.7-.4 1.3 1.4.3 3.7-2 3.9-1.8 0-5 2.7-4.5 3.2.5.7 5.4 1.1 8.3.7 1.8-.3 1.4 1.3-.4 1.5s-3.2 0-4.8.6c-2 .5-2.8 3-3.9 4-.2.2-.8-.8-.6-1.2.8-1.2 2-3 3.4-3.6.8-.3-2.4-.4-3.4-.7-.8-.2-.6-1.3-.3-1.9.4-.8 3.4-3.9 4.7-3.8 1.1 0 2.3-.3 2.4-1m5 .2 1.5-1.8c.3-.3.9 0 .8.8-.1.7-1 1.2-1.5 1.7-.5.3-1-.4-.7-.7zm6.5-2.3c.9 0 1 1.6.2 1.8-.6.2-1-1.7-.2-1.8m-2.1 5c0 1.5.7 1.4 2 1.3s2.4 0 2.4-1.2c0-1.3-.7-2.5-1-1.6-.1.8-.3 2.2-.8 1.6-.4-.5-.2-.6-1 .2-.5.5-.5-.2-.8-.6-.2-.3-.8.2-.8.4zm-9.2 7.2c-.3 1.9 0 4.5.9 4.5 1.2 0 3.6-4 4.8-6.2.7-1.2 1.8-1.4 1.3-.1-.7 1.9-.6 6 0 7.2.4.6 3-.6 3.4-1.5.8-1.7.1-4.8.4-6.7.1-1.2 1.3-1.5 1.2-.3l-.1 7.5c0 1 2.9 2.4 3.3-.6.2-1.8 1.2-3.7 0-5.7-.8-1.3 1.1-1.2 2.1.6.7 1.2-.6 3.2-.5 4.7 0 2.4-1.8 3.8-3.1 3.8-1.2 0-2-1.5-3-1.5s-2.2 1.7-3 1.6c-3.6-.2-1.7-5.3-2.8-5.4-1.2 0-2.5 5-4 4.9-1.4-.2-3-4.2-2.3-5.8.5-1.6 1.5-2 1.4-1m16.9-8c-1.7-1 0-3.7.9-2.8 1.6 2 3.2 6.5 4.4 6.9.7.2.6-3.4 1.1-5 .4-1.3 1.8-.9 1.6.7-.1.5-2 6.4-1.8 6.6a47 47 0 0 1 3.3 7.8c.3 1.2-1.1.4-1.3.2-.9-1.4-2.4-6.5-2.4-6.2l-1.7 7.7c-.2 1-1.7.8-1.3-1 .3-1.4 2.3-8.3 2.2-8.6a17 17 0 0 0-5-6.3"/>
+ <path d="M322 131.2c-.4 0-1.2 1 1.2 1.5 3.1.6 6.6-.5 7.6-3.6 1.3-3.7 2-7.2 2.7-8.5.8-1.5 1.8-1.4 1-3.6-.5-1.7-1.5-1.2-1.7-.3-.5 2.3-2.6 10-3.3 11.3q-1.8 3.8-7.5 3.2"/>
+ <path d="M328.4 119c-.4-.7-1.2 0-1 .7a1 1 0 0 0 1.2 1c.7 0 2.2.1 2.2-1 0-.8-.7-1.5-1.1-.6q-.8 1.1-1.3 0zm.7-3c-.2.2 0 1.1.3 1a7 7 0 0 0 3.3-.8c.2-.2.1-.7-.2-.7-1 0-2.6 0-3.4.5m8.8 2.3c.8-1.2 2.8-1.3 2 .4l-6.3 12.3c-.8 1.4-1.4.7-.8-.4.7-1.4 4.9-12 5.1-12.3"/>
+ <path d="M330.2 133c-.2-.8-1.5-2-1.3.2.2 3.8 5.5 2.6 7 1.3s.3 4.3 2.2 4.9c1 .3 3-1.1 4-2.4 2.7-3.5 4.5-8.6 7-12 1-1.4-.5-2.4-1-1.3-2.4 3.8-5.2 11.6-8.3 13.6-2.5 1.6-1.7-2-1.8-3.2-.1-.8-1.1-2-2.4-.9a6 6 0 0 1-3.7 1.2c-.7 0-1.4 0-1.7-1.4"/>
+ <path d="M339.6 126c0-.3-1.1-.4-1 .7 0 .8 1 1 1.1 1 1.5-1.2-.3-.6-.1-1.8zm-2.3 4.4c-.3 0-.6 1 .2 1.1l3.9-.2c.4 0 .6-.9-.4-.8-1.2 0-2.7-.3-3.7 0zm-62-16.6c.5 0 1.6 1.4 1.5 1.9 0 .2-1.2 0-1.5-.3s-.2-1.6 0-1.6m-5.3 10.4c-1 .6.2 1.7 1 1.2 2.8-1.9 7-3.8 8-7.5.3-1.2 1.4-3.1 2.5-3.5 1-.5 2.6 1.9 3.6 0 .6-1 2.7.7 3.2-.4.6-1.3.3-2 .3-3.4 0-.8-.7-1-1.2.3l-.1 1.6q-.4.4-1 .2c-.2-.2 0-.7-.6-1q-.4-.1-.8.2c-.7 1.3-1 2.5-2.1 1-.9-1-1.4-3.1-2-.3-.2 1-1.7 2.4-2.6 2.4-1.1 0-.8-3-3.2-2.5-1.3.3-1.2 2.7-1 3.5.3 1.3 4 .4 3.7 1.2-.6 2.7-4.4 5.4-7.7 7m-22.7 13.2c-.1.5.5 1.7 1.1 1.8.6 0 1-1.3.8-1.8-.2-.3-1.8-.3-1.9 0m3.3 4.9c-.4-.4-1.6.7-.6 1.5.5.5 2.5 1.1 3 .2.8-1.2-.7-5.5 0-6 .5-.5 2.8 2.8 4 3 2.7.4 2-4.6 5-4.2 1.9.2 2.1-2.2 1.8-3.8-.2-1.5-2.6-3.6-3.7-4.6-1.4-1.2-2.1 1-1.2 1.6 1.2 1 3.3 2.9 3.6 4.1.1.6-1.4 1.8-2 1.5-1.4-.8-2.6-4-3.8-4.7-.4-.2-1.4.3-1 1.3.6 1.1 3 2.7 3.1 3.9.1 1-1 3.2-1.8 3.2s-3-2.7-3.7-4c-.4-.5-1.5-.5-1.7.4a22 22 0 0 0 .5 5.5c.2 1.6-.9 1.7-1.5 1.1m-4-8.6c-.4.4.8 1.2 1 1 .4-.4 2.1-2.3 1.8-3-.3-.6-2.6-2-3-1.3-.7 1.1 2.2 1.7 1.7 2zm4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4m1.2 4c-.2 0-1 .7-.5 1 .8.4 2.9.8 2.4-.7-.3-.9 3.2 0 2.3-2.4a4 4 0 0 0-1.7-1.7c-.4 0-1.5.5-.8.9.5.2 2 1.1 1.5 1.7-.7.6-1.1-.3-1.9-.1-.4 0-.1 1.2-.4 1.5 0 .2-.7-.4-.9-.3zm5.5-9.5a4 4 0 0 0-1.2 2q.1.5.5.5a3 3 0 0 0 1.2-1.9c0-.3-.2-.8-.5-.6m2.8-.3c-.8-1 1-2.6 1.7-.5.5 1.3 5.5 7.9 6.5 10.1.8 1.5 0 2.1-.9 1-2.5-3.2-4.6-7.2-7.3-10.6m5.2.1c.9-1 2.7-3 2.2-4s-1.5-1-1.7-.7c-1 1.3.8 1 .5 1.4q-.8 1.3-1.3 2.6c-.1.3.1.9.3.7m77.8 3.2c-.7-.5.6-3 1.5-2 2.3 2.7 3.4 11.6 4.1 18.3 0 0-1 .9-1 .7 0-3.5-1.5-14.4-4.6-17m-53.1-8.6c-.8-1.8 1.1-2.4 1.4-1.2 1.3 5.8 4.5 10.2 7 14.1.7 1.2 0 2-1.7.8-1.2-.8-2.5-3.9-3-4-1.2-.2-3.8 5-9.1 3.5-1.4-.4-1.3-4.5-1.4-6.3 0-.9 1-1 1 0 0 1.7 0 5.2 2.1 5.4 1.8 0 5.6-2.4 6.4-4.4s-1.9-5.9-2.7-8z"/>
+ <path d="M344.6 138.4c.4-1.2 6.1-10.8 6.9-12.9.4-1 2 1.8.4 3.3-1.4 1.2-5.5 8-6.3 10.4-.4 1-1.4.5-1-.8"/>
+ <path d="M354.3 129.3c1-4 3.6.6 1.3 2.8-3.4 3.4-4.5 9.9-10 10.9-1.4.3-4-.7-4.8-1.3-.3-.2.2-1.6 1.1-.9 1.3 1 4.1 1.3 5.6.1a25 25 0 0 0 6.8-11.6m-57 12.7c-.3.3-1 .3-1.1.7-.3 1.4 0 2.2-.3 3.6s-1.3 1.4-1.2.3c0-1.4 1.3-3.5.4-3.6-.6-.1-1-.9-.4-1.3q1.5-.9 2.4-.4.5.3.2.7"/>
+ <path d="M296.5 140c-1.4 1.4-2.8 1.9-4.1 3.5-.6.6-.5 1.5-.9 2.4-.3.9-1.4 1-1.7.9-.5-.4-.4-2-1-1.2s-.9 2-1.7 2-2-1.5-1.3-1.5c2.3-.3 2.2-2 3-2.2 1-.1 1 1.5 1.7 1.2.4-.2.7-2.1 1.2-2.6 1.5-1.6 2.7-2.4 4.3-3.6.7-.6 1.3.5.5 1.2zm5.3 5c-1.2.2-1 1.7-.6 1.8.5.3 1.4.4 1.7-1.3.2-.7.3 3.5 1.8 1.9 1-1 3.1.2 4-1 .7-.9 1-1.5.4-2.7-.2-.3-1-.2-1 .7s-.5 1.7-1.3 1.6c-.4-.1.2-1.9-.2-2.4h-.7c-.3.4.3 2.2-.6 2.4-1.2.2-.6-1.2-1-1.4-1.7-.8-1.8.2-2.5.3zm9-3c.9-.2.6-.2 2-1.3.5-.4.6.8.5 1.3 0 .7-1 .2-1.3.9-.4.9-.2 3-.4 3.8 0 .4-.8.4-.8 0-.2-1 .1-2 0-3.3 0-.4-.5-1.1 0-1.3zm-5-2.5-.2 2.3c0 .5 1 .2 1 .1 0-.8.2-2 0-2.3q-.5-.3-.8-.1"/>
+ <path d="m299.5 130.2-1.4 5.6-2-3.8v3.9l-4.4-5.2 1.5 5.6-4-3.4 2.2 3.8-7-4.5 4.4 5.2-5.6-2.8 4 3.4-9-3.4 8.7 4.3a29 29 0 0 1 12.6-2.6q7.5.1 12.5 2.6l8.8-4.3-9 3.4 4-3.4-5.5 2.8 4.3-5.2-7 4.5 2.2-3.8-4 3.3 1.5-5.5-4.3 5.2V132l-2 3.8z"/>
+ </g>
+ </g>
+ <path fill="#fff" d="m311.3 295-.3 2.6h-.4l-.1-1.8-.5-1.6-.5-1.3-1-1.4.8-2.2a7 7 0 0 1 1.5 2.4 9 9 0 0 1 .5 3.2m7-4.2q0 1-.5 1.5-.3.5-1.3.7l.4 1.5v2l-.1 1.3h-.4l-.1-1.3-.2-1-.4-1-.7-1.4-1-1.7.6-2 1 1q.4.3 1 .3 1.2 0 1.2-1.3h.4v1.4m6.4 4.8-.5 2.1q-.6 0-.8-.7l-.4-1.3-.1-1.7-1 .2a2 2 0 0 1-1.3-.4 1 1 0 0 1-.5-1q0-1.4.7-2.3.8-1 1.5-1.1.7 0 1 .4l.3.9v2q0 1.3.3 1.9 0 .4.8 1m-2-3.5q0-.9-.8-.8l-.6.1q-.2.1-.2.3 0 .5 1 .5zm8.7 3-.3 2.6q-.8-.5-1.4-2l-1.3-4.1-1.8 5.5-.8.7v-2.5q.9-1 1-1.5l.8-1.7.5-2.7h.4l.9 2.7q.3 1 .9 1.6l1 1.4"/>
+ <path fill="#bf0000" d="M350.8 319.4q.6.6.7 1.2l.4 1.6-.8.1-1-1.5-1.1-1.2-1.7-1.5-2-1.7q-.6-.3-.6-.5l-.3-.8-.2-1.6 2.7 2.2 2.5 2.2zm-9.5-5.8-.2 2H338l.3-2zm8.4 8.9-7.6 2.3-1.3-2 6.5-2-.7-.8-.9-.6a1 1 0 0 1-.4 1l-1 .6a3 3 0 0 1-1.8 0 2 2 0 0 1-1.3-.7 4 4 0 0 1-.7-2.2q0-1.5.9-1.8 1.1-.3 3 .7a8 8 0 0 1 3 2.4zm-5.8-4-.8-.3h-.6l-.5.3v.6l.5.2h.6l.4-.3zm-8-1.6-.5 2-3.2-.3.5-2zm7.5 7.7-1.7.4H340l-1.5-.4q-.5.8-1.5 1.2l-1.6.6-1.2.3-1-2 1.1-.3 1.3-.4.9-.5-1-.5h-.9l-.2.3h-.5q-.8-1.2-.3-2c.5-.8.9-.8 2-1a7 7 0 0 1 2.6-.2q1.2.1 1.5.9.2.3.2.7l-.4 1.2h1.1l1.7-.3zm-8 1.8-1.6.3a3 3 0 0 1-2.2-.4 6 6 0 0 1-1.7-2.6l-.8-2.2a2 2 0 0 0-.8-1l-.9-.5.6-2.1q.9.4 1.4 1l1 1.7.5 1.5 1.1 2.2q.5.4 1 .3l1.7-.2zm-7-7.5-1 1.9-3-.7 1-1.9zm1.8 8.4-7.5.7-.4-2 6.2-.7-.6-.8-1-.6.5-2q1 .6 1.6 1.3.5.8.8 2.1zm-6 1-2.2-.2-1.7-.5-1.3.4h-3.7l-1.2-.3q-.4-.3-.8-1a4 4 0 0 1-1.5 1l-1.7.1h-1.7l.2-2.1h1.7q1.2.1 2.1-.4a2 2 0 0 0 1.3-1.8l.7.1-.1 1.3q0 .4.3.7.4.3 1 .3h1.5q1.5 0 2-.2.9-.2 1-1.1l.1-.4s.3 0 .5-.2l.5-.2v.7l-.3 1.1 2 .5q.1-.3-.1-.7l-.3-.6.1-.3.3-.2 1-.9.5 1v1zm-11.3-8.7-2 1.3-1.3-.9-1.4 1-1.9-1 1.8-1.3 1.5.8 1.5-1 1.8 1m-3 8.2-7.3-1.2.8-2 6.2 1q0-.6-.2-1l-.5-.8 1.6-1.7q.6.8.7 1.6t-.5 2.1zm-6.1-1-1.6-.3q-1.3-.3-1.5-1.2-.3-.9.8-2.8l1.2-2q.4-.7.3-1.2l-.3-.7 2.2-1.6q.4.8.3 1.4 0 .8-.7 1.8l-.8 1.4a6 6 0 0 0-.9 2.2q0 .6.5.7l1.6.4zm-3.8-8-2.5 1.1-1.8-1.7 2.6-1zm-1 6.6-1.6 1.4-1.7.6-2.4-.1-2.8-.7a8 8 0 0 1-3.4-2q-.9-1.2 0-2.2a7 7 0 0 1 2-1.6q1.1-.7 3.8-1.6l.4.5-2.8 1.2q-.8.4-1.3 1t.2 1.6a11 11 0 0 0 6.3 2.2q1.8 0 2.3-.7.4-.4.5-1l.2-1.6 2.5-1.5-.1 1.5a4 4 0 0 1-1 1.6z"/>
+</svg>
diff --git a/apps/web/public/flags/ag.svg b/apps/web/public/flags/ag.svg
new file mode 100644
index 00000000..243c3d8f
--- /dev/null
+++ b/apps/web/public/flags/ag.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ag" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ag-a">
+ <path fill-opacity=".7" d="M-79.7 0H603v512H-79.7z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(74.7)scale(.9375)">
+ <path fill="#fff" d="M-79.7 0H603v512H-79.7z"/>
+ <path fill="#000001" d="M-79.6 0H603v204.8H-79.7z"/>
+ <path fill="#0072c6" d="M21.3 203.2h480v112h-480z"/>
+ <path fill="#ce1126" d="M603 .1V512H261.6L603 0zM-79.7.1V512h341.3L-79.7 0z"/>
+ <path fill="#fcd116" d="M440.4 203.3 364 184l64.9-49-79.7 11.4 41-69.5-70.7 41L332.3 37l-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2L138.5 78l41 69.5-77.4-12.5 63.8 47.8L86 203.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ai.svg b/apps/web/public/flags/ai.svg
new file mode 100644
index 00000000..9c2ea339
--- /dev/null
+++ b/apps/web/public/flags/ai.svg
@@ -0,0 +1,29 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ai" viewBox="0 0 640 480">
+ <defs>
+ <path id="ai-b" fill="#f90" d="M271 87c1.5 3.6 6.5 7.6 7.8 9.6-1.7 2-2 1.8-1.8 5.4 3-3.1 3-3.5 5-3 4.2 4.2.8 13.3-2.8 15.3-3.4 2.1-2.8 0-8 2.6 2.3 2 5.1-.3 7.4.3 1.2 1.5-.6 4.1.4 6.7 2-.2 1.8-4.3 2.2-5.8 1.5-5.4 10.4-9.1 10.8-14.1 1.9-.9 3.7-.3 6 1-1.1-4.6-4.9-4.6-5.9-6-2.4-3.7-4.5-7.8-9.6-9-3.8-.7-3.5.3-6-1.4-1.6-1.2-6.3-3.4-5.5-1.6"/>
+ </defs>
+ <clipPath id="ai-a">
+ <path d="M0 0v120h373.3v120H320zm320 0H160v280H0v-40z"/>
+ </clipPath>
+ <path fill="#012169" d="M0 0h640v480H0z"/>
+ <path stroke="#fff" stroke-width="50" d="m0 0 320 240m0-240L0 240"/>
+ <path stroke="#c8102e" stroke-width="30" d="m0 0 320 240m0-240L0 240" clip-path="url(#ai-a)"/>
+ <path stroke="#fff" stroke-width="75" d="M160 0v280M0 120h373.3"/>
+ <path stroke="#c8102e" stroke-width="50" d="M160 0v280M0 120h373.3"/>
+ <path fill="#012169" d="M0 240h320V0h106.7v320H0z"/>
+ <path fill="#fff" d="M424 191.8c0 90.4 9.7 121.5 29.3 142.5a179 179 0 0 0 35 30 180 180 0 0 0 35-30c19.5-21 29.3-52.1 29.3-142.5-14.2 6.5-22.3 9.7-34 9.5a78 78 0 0 1-30.3-9.5 78 78 0 0 1-30.3 9.5c-11.7.2-19.8-3-34-9.5"/>
+ <g transform="matrix(1.96 0 0 2.002 -40.8 62.9)">
+ <use xlink:href="#ai-b"/>
+ <circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
+ </g>
+ <g transform="matrix(-.916 -1.77 1.733 -.935 563.4 829)">
+ <use xlink:href="#ai-b"/>
+ <circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
+ </g>
+ <g transform="matrix(-1.01 1.716 -1.68 -1.031 925.4 -103.2)">
+ <use xlink:href="#ai-b"/>
+ <circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
+ </g>
+ <path fill="#9cf" d="M440 315.1a78 78 0 0 0 13.3 19.2 179 179 0 0 0 35 30 180 180 0 0 0 35-30 78 78 0 0 0 13.2-19.2z"/>
+ <path fill="#fdc301" d="M421.2 188.2c0 94.2 10.2 126.6 30.6 148.5a187 187 0 0 0 36.5 31.1 186 186 0 0 0 36.4-31.1c20.4-21.9 30.6-54.3 30.6-148.5-14.8 6.8-23.3 10.1-35.5 10-11-.3-22.6-5.7-31.5-10-9 4.3-20.6 9.7-31.5 10-12.3.1-20.7-3.2-35.6-10m4 5c14 6.5 22 9.6 33.5 9.4a76 76 0 0 0 29.6-9.4c8.4 4 19.3 9.2 29.6 9.4 11.5.2 19.4-3 33.4-9.4 0 89-9.6 119.6-28.8 140.2a176 176 0 0 1-34.2 29.4 176 176 0 0 1-34.3-29.4c-19.2-20.6-28.7-51.3-28.7-140.2z"/>
+</svg>
diff --git a/apps/web/public/flags/al.svg b/apps/web/public/flags/al.svg
new file mode 100644
index 00000000..e85d95f0
--- /dev/null
+++ b/apps/web/public/flags/al.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-al" viewBox="0 0 640 480">
+ <path fill="red" d="M0 0h640v480H0z"/>
+ <path id="al-a" fill="#000001" d="M272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8q2-2.9 3.9-3.1 2.5-.3 5.4 1.4a22 22 0 0 1 4.8 4.1c-4.6 1.1-8.2.4-11.8-.2a17 17 0 0 1-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1s7.6-.5 9.8 0c-1.3.8-2.8 2.3-5.8 2.8s-7.5-1.8-10.3-2.4c.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37 37 0 0 1 10.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a274 274 0 0 0-32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50 50 0 0 1-36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18s17 8.2 26.5 8c5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a54 54 0 0 1-21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3s17.8-10.2 24.1-18.5c5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 0 0-1.2 9.3q1.1-4.6 4.9-7c8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8q2.4 7.5 11.3 5.6c7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8q2.3 1.5 3.8 0c6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11s-3.6 5.6-5.7 8.3c-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214L320 139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4s3-.8 4.5-1c-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30 30 0 0 0-13.5-10.2c4.2-3 5-3.2 9.2-6.7a86 86 0 0 1-19.5-3.8 37 37 0 0 0-12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9s-2.3 2.9-6.1 2.9-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8"/>
+ <use xlink:href="#al-a" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
+</svg>
diff --git a/apps/web/public/flags/am.svg b/apps/web/public/flags/am.svg
new file mode 100644
index 00000000..99fa4dc5
--- /dev/null
+++ b/apps/web/public/flags/am.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-am" viewBox="0 0 640 480">
+ <path fill="#d90012" d="M0 0h640v160H0z"/>
+ <path fill="#0033a0" d="M0 160h640v160H0z"/>
+ <path fill="#f2a800" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/ao.svg b/apps/web/public/flags/ao.svg
new file mode 100644
index 00000000..b73b1ec5
--- /dev/null
+++ b/apps/web/public/flags/ao.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ao" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="red" d="M0 0h640v243.6H0z"/>
+ <path fill="#000001" d="M0 236.4h640V480H0z"/>
+ </g>
+ <path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150z"/>
+ <path fill="#ffec00" fill-rule="evenodd" d="m170 330.8 21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9 22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1 17.1-16.9 16.9 17-17 16.9zm-26.2-39.8 22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70 22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3z"/>
+ <path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a8 8 0 0 0 10.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3"/>
+ <path fill="#000001" fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.6 0zm-21.4-13.6a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0m10.9 7a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0"/>
+ <path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 0 1 334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
+ <path fill="#ffec00" fill-rule="evenodd" d="m297.2 305.5 17.8 16-16 17.8-17.8-16z"/>
+ <path fill="none" stroke="#000" stroke-width="3" d="m331.5 348.8-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
+</svg>
diff --git a/apps/web/public/flags/aq.svg b/apps/web/public/flags/aq.svg
new file mode 100644
index 00000000..c7e35362
--- /dev/null
+++ b/apps/web/public/flags/aq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aq" viewBox="0 0 640 480">
+ <path fill="#3a7dce" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M157.7 230.8c-3.5-7.8-3.5-7.8-3.5-15.6-1.8 0-2 .3-3 0-1.1-.3-1.5 7.2-4.8 5.8-.5-.8 2.4-6.2-.7-8.5-1-.7.2-5.2-.2-7.2 0 0-4 2.4-7-5.8-1.5-2.2-3.5 2-3.5 2s.9 2.4-.7 3c-2.2-1.8-3.9-.8-6.7-3.4s.6-5.4-4.8-7.5c3.5-9.8 3.5-7.9 12.2-11.8-5.2-4-5.2-4-8.7-9.8-5.2-2-7-4-12.2-7.8-7-9.9-10.5-29.5-10.5-43.2 4.4-4.6 10.5 15.7 19.2 21.6l12.2 5.9c7 3.9 8.7 7.8 14 11.7l15.6 6c7 5.8 10.5 13.6 15.7 15.6 5.7 0 6.8-3.7 8.6-3.9 10.3-.6 15.5-2 17.5-5.5 2.1-2.8 7 1.6 21-4.3l-1.7-7.9s3.7-3.4 8.7-2c-.1-3.5-.5-13 4.5-17.4-3-3.5 1.8-9 2-10.7-1.4-8.6 1.4-8.7 2-11.3.6-2.5-2.4-1.7-1.6-5.2.9-3.5 6-4.3 6.6-7.2.7-2.9-1.1-14.3-1.3-16.8 9.4-2.8 12.4-11.4 15.7-7.8C264 70 265.8 66 276.3 66c1.4-3.6-3.9-6.7-1.8-7.9 3.5-.5 6.1-.2 10.2 5.7 1.3 2 1.6-2.7 2.9-3.2s4.4-.5 4.9-2.8c.5-2.4 1.2-5.6 3-9.5 1.4-3.2 2.5 1.3 3.8 7.5 7.4.3 24 2.1 31 4.3 5.2 1.5 8.7-1.5 13.7-2.2 3.7 4.2 7.2 1 9.2 10 2.7 4.8 7.3.4 8.3 1.8 5.8 18.1 25.8 5.9 27.4 6.2 2.5 0 5.6 8 7.7 7.9 3.2-.6 2.3-3.1 5.2-2.1-.8 6.8 5.6 14.6 5.6 19.7 0 0 1.5.9 3-.6 1.4-1.6 2.7-5.4 4-5.3 3 .5 22 6 25.8 7.9 1.7 3.5 3.3 5.3 6.8 4.7 2.8 2.1.8 5 2.4 5.1 3.5-2 4.7-4 8.2-2.1 3.5 2 7 5.9 8.7 9.8 0 2-1.8 9.8 0 21.6.9 3.9 9.7 32.3 9.7 35.2 0 4-2.7 6-4.5 9.9 7 5.9 0 15.7-3.5 21.6 26.2 5.9 14 17.6 34.9 11.7-5.2 13.8-3.4 12.7 1.8 26.4-10.4 7.8-.2 10.2-7.1 20-.5.7 4.1 8.6 10.5 8.6-1.7 15.6-7 9.8-5.2 33.3-13.7-.3-8.2 17.6-17.4 15.7.5 11.2 5.2 12.2 3.4 23.5-7 2-7 2-10.4 7.9l-5.2-2c-1.8 9.8-5.3 11.8 0 21.6 0 0-6.8.2-8.8 0-.1 3.4 3 4.3 3.5 7.8-.2 1.4-9.9 7.6-17.4 7.9-2 4.8 5.2 10 4.8 12.4-8.2 1.8-11.8 13-11.8 13s4.2 2 3.5 4c-2.2-1.8-3.5-2-7-2-1.7.5-6 0-10 7.7-4.5 1.6-6.6 1-10 6-1.5-4.7-3.7.1-6.3 2-2.7 1.8-6.2 6.5-6.7 6.3.1-1.4 1.6-6.3 1.6-6.3L399 437c-.7.1-.5-5.7-2.2-5.5s-6.4 7.3-8 7.5-2.1-2.2-3.5-2-4 7.5-5 7.7c-1 .1-5-4.5-8.3-3.8-17.1 6.8-19.9-13.4-22.5-2-3.6-2.2-3-1-6.7.1-2.3.7-2.5-3.4-4.6-3.4-4.1.2-4 4.6-6.2 3.3-1.8-9.2-13-7.6-14-11.5s4.8-4 6.6-6.8c1.4-4-1.5-5.6 4.3-9.4 7.5-5.7 6.8-19.8 4.9-25.3 0 0-5.9-17.7-7-17.7-3.5-1-3.5 6.5-8.6 8.6-10.5 4-29-9.9-32.2-9.9-2.9 0-16.5 3.6-16-4-2 7.4-9.5 1.7-10 1.7-7 0-4.3 6.1-9 5.9-2.1-.8-23.6-2.3-23.6-2.3v4l-26.1-11.8c-10.5-4-5.3-13.7-22.7-7.8v-11.8h-8.7c3.5-23.6 0-11.8-1.8-33.4l-7 2c-7-10.6 9.8-8.6-5.2-15.7 0 0 .3-11.7-3.5-7.8-.7.5 1.8 5.8 1.8 5.8-14-2-17.4-5.8-17.4-21.5 0 0 11.4 1.8 10.4 0-1.6-3-3.7-22-3.4-23.4-.1-2.6 10.7-9 8.6-15.2 1.4-.6 5.3-.7 5.3-.7"/>
+ <path fill="none" stroke="#fff" stroke-linejoin="round" stroke-width="2.5" d="M595.5 297.6q-.9 2 .1 3.6c1.1-1.7.2-2.4 0-3.6zm-476-149.4s-3-.4-2.4 2.3c1-2 2.3-2.2 2.4-2.3zm-.3-6.4c-1.7 0-3.8-.2-3 2.5 1-2.1 3-2.4 3-2.5zm12.7 36.3s2.6-.2 2 2.5c-1-2-2-2.4-2-2.5z" transform="scale(.86021 .96774)"/>
+</svg>
diff --git a/apps/web/public/flags/ar.svg b/apps/web/public/flags/ar.svg
new file mode 100644
index 00000000..c753da10
--- /dev/null
+++ b/apps/web/public/flags/ar.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ar" viewBox="0 0 640 480">
+ <path fill="#74acdf" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <g id="ar-c" transform="translate(-64)scale(.96)">
+ <path id="ar-a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="m396.8 251.3 28.5 62s.5 1.2 1.3.9c.8-.4.3-1.6.3-1.6l-23.7-64m-.7 24.2c-.4 9.4 5.4 14.6 4.7 23s3.8 13.2 5 16.5c1 3.3-1.2 5.2-.3 5.7 1 .5 3-2.1 2.4-6.8s-4.2-6-3.4-16.3-4.2-12.7-3-22"/>
+ <use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
+ <use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(45 400 250)"/>
+ <use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
+ <path id="ar-b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8 19.5 42.6-16.3-43.9"/>
+ <use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
+ <use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(45 400 250)"/>
+ <use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
+ </g>
+ <use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(90 320 240)"/>
+ <use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(180 320 240)"/>
+ <use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(-90 320 240)"/>
+ <circle cx="320" cy="240" r="26.7" fill="#f6b40e" stroke="#85340a" stroke-width="1.4"/>
+ <path id="ar-h" fill="#843511" stroke-width="1" d="M329 234.3c-1.7 0-3.5.8-4.5 2.4 2 1.9 6.6 2 9.7-.2a7 7 0 0 0-5.1-2.2zm0 .4c1.8 0 3.5.8 3.7 1.6-2 2.3-5.3 2-7.4.4q1.6-2 3.8-2z"/>
+ <use xlink:href="#ar-d" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
+ <use xlink:href="#ar-e" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
+ <use xlink:href="#ar-f" width="100%" height="100%" transform="translate(18.1)"/>
+ <use xlink:href="#ar-g" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
+ <path fill="#85340a" d="M316 243.7a1.8 1.8 0 1 0 1.8 2.9 4 4 0 0 0 2.2.6h.2q1 0 2.3-.6.5.7 1.5.7a1.8 1.8 0 0 0 .3-3.6q.8.3.8 1.2a1.2 1.2 0 0 1-2.4 0 3 3 0 0 1-2.6 1.7 3 3 0 0 1-2.5-1.7q-.1 1.1-1.3 1.2-1-.1-1.2-1.2c-.2-1.1.3-1 .8-1.2zm2 5.4c-2.1 0-3 2-4.8 3.1 1-.4 1.8-1.2 3.3-2s2.6.2 3.5.2 2-1 3.5-.2l3.3 2c-1.9-1.2-2.7-3-4.8-3q-.7 0-2 .6z"/>
+ <path fill="#85340a" d="M317.2 251.6q-1.1 0-3.4.6c3.7-.8 4.5.5 6.2.5 1.6 0 2.5-1.3 6.1-.5-4-1.2-4.9-.4-6.1-.4-.8 0-1.4-.3-2.8-.2"/>
+ <path fill="#85340a" d="M314 252.2h-.8c4.3.5 2.3 3 6.8 3s2.5-2.5 6.8-3c-4.5-.4-3.1 2.3-6.8 2.3-3.5 0-2.4-2.3-6-2.3"/>
+ <path fill="#85340a" d="M323.7 258.9a3.7 3.7 0 0 0-7.4 0 3.8 3.8 0 0 1 7.4 0"/>
+ <path id="ar-e" fill="#85340a" stroke-width="1" d="M303.4 234.3c4.7-4.1 10.7-4.8 14-1.7a8 8 0 0 1 1.5 3.4q.6 3.6-2.1 7.5l.8.4q2.4-4.7 1.6-9.4l-.6-2.3c-4.5-3.7-10.7-4-15.2 2z"/>
+ <path id="ar-d" fill="#85340a" stroke-width="1" d="M310.8 233c2.7 0 3.3.6 4.5 1.7 1.2 1 1.9.8 2 1 .3.2 0 .8-.3.6q-.7-.2-2.5-1.6c-1.8-1.4-2.5-1-3.7-1-3.7 0-5.7 3-6.1 2.8-.5-.2 2-3.5 6.1-3.5"/>
+ <use xlink:href="#ar-h" width="100%" height="100%" transform="translate(-18.4)"/>
+ <circle id="ar-f" cx="310.9" cy="236.3" r="1.8" fill="#85340a" stroke-width="1"/>
+ <path id="ar-g" fill="#85340a" stroke-width="1" d="M305.9 237.5c3.5 2.7 7 2.5 9 1.3 2-1.3 2-1.7 1.6-1.7s-.8.4-2.4 1.3c-1.7.8-4.1.8-8.2-.9"/>
+</svg>
diff --git a/apps/web/public/flags/arab.svg b/apps/web/public/flags/arab.svg
new file mode 100644
index 00000000..9ef079f6
--- /dev/null
+++ b/apps/web/public/flags/arab.svg
@@ -0,0 +1,109 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" version="1.0" id="flag-icons-arab" viewBox="0 0 640 480">
+ <path fill="#006233" d="M0 0v480h640V0Z" class="arab-fil0 arab-str0"/>
+ <g fill="#fff" fill-rule="evenodd" stroke="#fff">
+ <path stroke-width=".4" d="M1071.9 2779.7c-25.9 38.9-7.2 64.2 19.5 66 17.6 1.3 54.2-24.9 54.1-55.7l-10-5.6c5.6 15.8-.2 20.8-12.1 31.6-23.5 21.3-71.5 22.8-51.5-36.3z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="M1277.2 2881.7c145.8 4.1 192.2-137 102.2-257.8l-8.9 13.3c5.8 56.3 14.2 111.8 15 169.5-17.6 20.7-43.2 13-48.3-10 .3-31.2-9.9-57.6-22.8-82.8l-7.2 13.3c8.4 20.7 17.5 44 19.4 69.5-41.6 49.9-87.6 60-70.5-5.6-32.9 57.5 16.9 98 73.3 9.5 12.1 60.4 58.9 22.9 61.7 9.9 5.1-39.6 2.5-103.4-7.8-153.8 40.6 70.3 42 121 20.4 154.9-24 37.7-76.2 55.3-126.5 70.1z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="M1359.9 2722.2c-31.2 2.3-47.2-4.1-30.3-27.2 16.7-22.6 32.3-4.6 36.5 25.6 3.9 28.3-54.8 64.4-75.1 64.4-30.7 0-44.9-39.5-16.6-75-36.4 103.6 78.6 43.5 85.5 12.2zm-21.6-24c-3.8-.2-6.6 6.5-4.7 7.8 5.5 3.8 14.2 1.5 15.1-.4 1.9-4.2-5.1-7.2-10.4-7.4z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="M1190.5 2771.1c-30 59-.1 83.4 38.4 76.6 22.4-4.1 50.8-20 67.2-41.7.3-47.8-.4-95.2-4.6-141.5 15-17.9-1.3-17.8-7-37-2.6 11.2-8.9 23.3-2.8 32q6.6 70 6.6 142.2c-30.2 24.3-52.9 33.3-69.1 33.1-33.5-.3-40.7-28.5-28.7-63.7z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="M1251.8 2786.7c-.5-44.5-1.2-95-5.2-126.1 15.6-17.3-.8-17.7-5.9-37.1-3 11-9.6 23-3.8 31.9 2.6 47.6 5.1 95.2 5.6 142.8 3.6-2.3 7.7-3.2 9.3-11.5z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path stroke-width=".4" d="M1135.4 2784.6c-3.8-4.8-6.5-10.2-9.6-14.9-.5-6.7 4-12.9 4.6-16.3 5.1 7.9 8.1 13.9 12.2 17.8m5.4 3.1c7.5 3 16.7 3 25.2 3.2 32.8.6 67.3-4.8 63.6 39.6a66 66 0 0 1-65.2 61.9c-41.7-.4-77.3-46.4-13-131.1 6.2-1 14.3.7 21 1.3 11.5.9 23.3-.2 36.8-11-1.6-27.9-1.6-54.3-5-79.5-5.8-8.9.8-20.8 3.8-31.9 5.1 19.4 21.4 19.8 5.9 37.2 3.7 28 4.1 56.5 4.1 73.5-7.8 11.9-13.9 24.5-36.7 29.3-23.3-3.4-33.8-36-58.1-25.2 6.7-29.4 68.4-36.1 74.6-12.9-4.1 24.2-61.7 14.5-77 92.7-4.7 24.1 20.7 46.3 46.8 44.5 25.5-1.7 52.7-19.4 55.4-49.2 2.1-24.9-33-22-47.7-21.7-21.4.5-34.9-2.8-43-7.5m21.9-53.9c3.8-3.6 17.1-6.1 21.9-.3q-5.5 3.5-10 8.1c-5-2.6-8.3-5.2-11.9-7.8z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="M1194 2650.9a49 49 0 0 1 5.3 21c-2.2 10.4-11.1 20.1-20.3 20.4-5.7.2-12.1-1.4-16.6-10.3-.5-1.1-2.9-3.7-5.2-2.5-10.1 16.6-17.6 23.6-26.7 23.5-18.2-.3-12.8-16.5-29.6-21.5-7-.2-18.5 6.9-24.4 20.8-22.4 63.5-42.8-.2-34.1-29.8 1.3 28.3 8.1 45.1 15.1 44.6 5.1-.5 9.6-12.3 16.1-24.7 5-9.5 17-26.6 29.7-26.6 11.6.3 4.3 21.6 27.5 21.3 11.2-.2 21.5-8.8 31.9-26 2.3-.4 2.9 3.7 3.4 5.1 1.6 5.9 11.8 22.1 25.6 7.3-.7-3.2-.4-8.5-3.9-9.6z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path stroke-width=".4" d="M1266.9 2598.3c-12.3 6.1-21.3.5-26.4-4.9 8.9-1.8 15.8-5 17.8-12-4-9-13.5-12.9-26.9-13-17.9.5-27.1 7.7-28.2 17.6 8.3.3 15.8-2 19 6-14.7 7.2-32 9.8-50.8 9.7-30.8 1.6-35.3-12.3-43.4-24.5-.6-.8-3.3-2.1-4.7-1.9-9.5 0-16.5 33.2-27.2 33.1-10.7-1.4-8.3-21.4-11.4-32.8-2.6 17.9 3.3 84.5 36.4 12.2 1-2.4 2.4-1.7 3.3.3 8.9 20.2 27 27.2 46.5 28.2 16.3.9 37.1-6.2 59.4-18.8 5.9 6.5 10.6 13.9 23 15.3 14.5.7 30-9.8 33.5-22.8 1.8-6.7 2.1-19.9-5-20.1-9.9-.3-17.1 23.7-14.8 45.3.2-.3 1.3-5.4 1.3-5.4m-43.8-28.8c6.5-3 12.8-4.4 17.8 2.2a27 27 0 0 0-8.4 4c-2.8-2.2-6.6-3.3-9.4-6.2zm47.8 14.9c1.6-7.1 2.5-12.8 8.3-16.5 1.2 7.5 1.4 11.7-8.3 16.5zm39 11c-1.9-6.1-3.8-11.4-4.4-18-1.4-13.4 10.1-21 20.5-19.9 10.7 1.1 17.8 5.1 28 8.6 8 2.7 18.8 4.8 29.1 7.7 5.8 2.6 0 9.4-1.5 10.3-25.8 10.1-44.1 26.1-60.5 26.8q-14.6.7-26.4-19c-.5-25.4-1.4-55.2-3.9-73.9 3.8-3.8 4.6-6.6 6.4-9.7 2 24.7 2.8 50.7 3.3 76.9 2.1 4.5 4.7 8.3 9.4 10.2zm16.5 2c-13.8 3.9-12.1-7.8-13.4-15-1.5-8.4-.5-17.9 10.2-15.5 13.9 3.7 26.6 8.6 38.9 13.8z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path stroke-width=".4" d="m1314.3 2621.3 1.9 9.3h1.5l-.6-8.7" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="m1094.2 2718.5 7-7.2 8.1 6.9-7.5 6.7zm17.8-2.4 7.1-7.2 8.1 6.9-7.5 6.7zm-49.5-74.6 7.1-7.2 8.1 6.9-7.5 6.7zm3.2 21.2 7.1-7.2 8 6.9-7.5 6.7zm128.5 35.5 6.5-5.3 6 6.5-6.8 4.8zm-85.8-135.7 4.6-4.7 5.3 4.5-4.9 4.4zm11.7-1.5 4.6-4.8 5.3 4.6-4.9 4.3zm245.6 53.7-4.4 3.7-4.2-4.3 4.6-3.4z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path stroke-width=".4" d="m1158.7 2747.4-.5 7.9 12.6 1.2 10.1-7.6z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ <path d="m1265.2 2599.8 3.7-.8-.4 10.3-2.3.9z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
+ </g>
+ <path fill="#fff" d="M320 326.3c51.6 0 93.6-38.2 93.6-85.2a82 82 0 0 0-32.6-64.4 70 70 0 0 1 19.2 48c0 40.8-35.9 73.9-80.2 73.9s-80.2-33.1-80.2-74c0-18.3 7.2-35.1 19.2-48a82 82 0 0 0-32.6 64.6c0 46.9 42 85.1 93.6 85.1" class="arab-fil2"/>
+ <g fill="#fff" stroke="#000" stroke-width="8">
+ <path d="M-54 1623c-88 44-198 32-291-28-4-2-6 1-2 12 10 29 18 52-12 95-13 19 2 22 24 20 112-11 222-36 275-57zm-2 52c-35 14-95 31-162 43-27 4-26 21 22 27 49 5 112-30 150-61z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M0 1579c12 0 34-5 56-8 41-7 11 56-56 56v21c68 0 139-74 124-107-21-48-79-7-124-7s-103-41-124 7c-15 33 56 107 124 107v-21c-67 0-97-63-56-56 22 3 44 8 56 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M54 1623c88 44 198 32 291-28 4-2 6 1 2 12-10 29-18 52 12 95 13 19-2 22-24 20-112-11-222-36-275-57zm2 52c35 14 94 31 162 43 27 4 26 21-22 27-49 5-112-30-150-61z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M3 1665c2 17 5 54 28 38 31-21 38-37 38-67 0-19-23-47-69-47s-69 28-69 47c0 30 7 46 38 67 23 16 25-21 28-38 1-6 6-4 6 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ </g>
+ <g fill="#fff" stroke="#000" stroke-width="8">
+ <path d="M-29 384c-13-74-122-79-139-91-20-13-17 0-10 20 20 52 88 73 119 79 25 4 33 6 30-8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M4 386c11-76-97-112-110-129-15-18-17-7-10 14 13 45 60 98 88 112 23 12 30 17 32 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M93 430c10-91-78-105-101-134-15-18-16-8-11 13 10 46 54 100 81 117 21 13 30 18 31 4z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M66 410c-91-59-155-26-181-29-25-3-33 13 10 37 53 29 127 25 156 14 30-12 21-18 15-22zm137 40c-28-98-93-82-112-94s-21-9-17 13c8 39 75 82 108 95 12 4 27 10 21-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M190 467c-78-63-139-16-163-23-18-5-10 7-3 12 50 35 112 54 160 32 19-8 20-10 6-21zm169 64c1-62-127-88-154-126-16-23-30-11-22 26 12 48 100 101 148 111 29 6 28-4 28-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M355 542c-81-73-149-49-174-56-25-6-35 9 4 39 48 36 122 43 153 36s23-14 17-19zm145 107c-23-106-96-128-114-148-17-20-35-14-20 34 18 57 77 107 108 119 30 13 28 3 26-5z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M499 663c-59-95-136-92-160-105-23-14-39-2-8 39 36 50 110 78 144 80s28-7 24-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M575 776c34-108-44-148-52-166-9-18-18-18-23 1-22 77 49 152 60 167 11 14 13 7 15-2z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M559 806c-27-121-98-114-114-131-17-17-19-5-16 17 8 59 79 99 111 119 10 6 22 13 19-5zm68 142c49-114-9-191-27-208-18-16-29-23-23 0 8 35-20 125 23 191 14 22 16 43 27 17z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M601 971c11-70-29-134-72-159-25-15-26-11-26 10 2 65 63 119 81 149 17 28 16 7 17 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M590 1153c-36-132 39-208 62-223 22-16 36-22 26 3-15 37 1 140-56 205-18 22-25 45-32 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M598 1124c30-115-35-180-55-193-19-13-31-18-22 3 12 32-1 122 49 178 16 19 22 38 28 12z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M561 1070c-54 58-55 143-31 193 15 29 17 27 31 6 38-61 15-149 17-188 1-37-11-17-17-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M650 1162c0 80-49 145-101 165-30 11-30 8-26-16 14-90 83-123 108-152 24-28 19-5 19 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M464 1400c88-80 41-136 45-188 2-28-9-21-19-11-56 55-59 153-47 191 5 17 13 15 21 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M582 1348c-29 88-106 142-171 145-38 2-37-1-24-27 49-94 136-105 175-129 36-22 23 2 20 11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M343 1513c114-57 91-152 112-176 15-17-3-15-12-9-67 39-121 101-122 167 0 25 2 28 22 18z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M187 1619c144 23 211-86 253-96 22-5 6-14-5-15-96-11-218 34-255 84-15 20-15 24 7 27z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M333 1448c-29 95-137 173-218 179-38 3-38-1-24-26 65-118 178-138 218-168 34-26 27 6 24 15zM29 384c13-74 122-79 139-91 20-13 17 0 10 20-20 52-88 73-119 79-25 4-33 6-30-8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-4 386c-11-76 97-112 110-129 15-18 17-7 10 14-13 45-60 98-88 112-23 12-30 17-32 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-93 430c-10-91 78-105 101-134 15-18 16-8 11 13-10 46-54 100-81 117-21 13-30 18-31 4z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-66 410c91-59 155-26 181-29 25-3 33 13-10 37-53 29-127 25-156 14-30-12-21-18-15-22zm-137 40c28-98 93-82 112-94s21-9 17 13c-8 39-75 82-108 95-12 4-27 10-21-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-190 467c78-63 139-16 163-23 18-5 10 7 3 12-50 35-112 54-160 32-19-8-20-10-6-21zm-169 64c-1-62 127-88 154-126 16-23 30-11 22 26-12 48-100 101-148 111-29 6-28-4-28-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-355 542c81-73 149-49 174-56 25-6 35 9-4 39-48 36-122 43-153 36s-23-14-17-19zm-145 107c23-106 96-128 114-148 17-20 35-14 20 34-18 57-77 107-108 119-30 13-28 3-26-5z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-499 663c59-95 136-92 160-105 23-14 39-2 8 39-36 50-110 78-144 80s-28-7-24-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-575 776c-34-108 44-148 52-166 9-18 18-18 23 1 22 77-49 152-60 167-11 14-13 7-15-2z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-559 806c27-121 98-114 114-131 17-17 19-5 16 17-8 59-79 99-111 119-10 6-22 13-19-5zm-68 142c-49-114 9-191 27-208 18-16 29-23 23 0-8 35 20 125-23 191-14 22-16 43-27 17z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-601 971c-11-70 29-134 72-159 25-15 26-11 26 10-2 65-63 119-81 149-17 28-16 7-17 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-590 1153c36-132-39-208-62-223-22-16-36-22-26 3 15 37-1 140 56 205 18 22 24 45 32 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-598 1124c-30-115 35-180 55-193 19-13 31-18 22 3-12 32 1 122-49 178-16 19-22 38-28 12z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-561 1070c54 58 55 143 31 193-15 29-17 27-31 6-38-61-15-149-17-188-1-37 11-17 17-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-650 1162c0 80 49 145 101 165 30 11 30 8 26-16-14-90-83-123-108-152-24-28-19-5-19 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-464 1400c-88-80-41-136-45-188-2-28 9-21 19-11 56 55 59 153 47 191-5 17-13 15-21 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-582 1348c29 88 106 142 171 145 38 2 37-1 24-27-49-94-136-105-175-129-36-22-23 2-20 11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-343 1513c-114-57-91-152-112-176-15-17 3-15 12-9 67 39 121 101 122 167 0 25-2 28-22 18z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-187 1619c-144 23-211-86-253-96-22-5-6-14 5-15 96-11 218 34 255 84 15 20 15 24-7 27z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ <path d="M-333 1448c29 95 137 173 218 179 38 3 38-1 24-26-65-118-178-138-218-168-34-26-27 6-24 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
+ </g>
+ <path fill="#006233" d="M359.6 128.9c-4.4-3-20.8-1.3-23.9-3.3 5.9 4.5 19 1.3 24 3.3zm39.7 7.6c-3.5-5.7-24.4-9.6-27.5-14.7 5.5 9.8 21.6 8.5 27.5 14.7m-3 6.6c-7.8-6.8-25.8-4-31.3-8 12.7 10.4 19.7 2.3 31.2 8zM351 112.8c4.9 2.4 11 4.7 14 10.3-3.5-4.3-9.8-6-15-9.6q.5-.1 1-.7m77 44c-3.1-6.4-14-13.4-14.9-15.8 3 8.3 12 10.3 14.8 15.8zm2.7 11.3c-9.4-13.4-24.1-12-30-17 4.5 4.9 21.4 8 30 17m21.8 20.7c.7-14.3-11-19.6-11.4-27.7-.3 9.6 12 22.6 11.4 27.7m-5.8 7.7c-2.4-12.4-18.3-13.2-21.1-20.5 0 6.8 18.7 13.9 21 20.5zm13.1-7c8.5 9.4 2.6 23.7 6.1 34.1-4.2-7.7-2.1-26.9-6-34.1zm-13.8 40c12.6 12.5 7.5 26.3 12.6 32.3-6.3-8.3-5.4-24.5-12.6-32.2zm26.3 1.8c-10.9 10.9-4.3 27.3-10 35 6.4-6.6 5.5-27 10-35m-13.7 0c-1.4-12.6-14.3-19.2-15.4-26-1.5 6.8 12.4 17.5 15.4 26m-6.5 30c2 8.8-5.7 27.6-3.3 33.4-5.2-10 4.4-29 3.3-33.3zm16.6 20.1c-5.1 15.6-15.5 14.6-18.7 24 2.3-9 16-17.1 18.7-24m-33.5 7.3c-6.8 10.5-1.2 22.4-6.8 29.9 8-7.5 3.7-21.4 6.8-29.9m16.4 28.6c-8.2 13.9-25.1 12.6-31.9 22.6 6.8-12.6 27.7-14.7 32-22.6zm-29.8-1.7c-14.5 9.2-10 18.8-21.1 29 13.8-10.2 12.7-21.5 21.1-29m-6.8 37.2c-14-.5-34.2 16.2-46.4 14.9 12.2 2.4 34.7-12.6 46.4-15zm-22.7-15c-1 13-37.6 21.4-41.5 30.1 4.4-11.5 36.6-20 41.5-30zm-82.8-240c-4.7-3.7-10.4-6.7-12-10.3 1.2 4.7 5.8 8 10.5 11.3.5-.2 1-.9 1.5-1.1zm-8 3.7c-7.3-3.2-15.7-3-19.5-7.4 2.4 4.4 10.3 6.1 17.1 8.5q1.2-.7 2.4-1zm-21.1 27.3c4.4-3 20.8-1.2 23.9-3.2-5.9 4.5-19 1.3-24 3.2zm-39.7 7.7c3.5-5.7 24.4-9.6 27.5-14.7-5.4 9.8-21.6 8.5-27.5 14.7m3 6.6c7.8-6.8 25.9-4 31.3-8-12.7 10.4-19.7 2.3-31.2 8zm31.3-20c4.4-8.6 17-9.6 20.4-14.8-5 7.7-15.7 9-20.4 14.8m36-7.5c13-5.5 25.7-.8 31.8-3.4-7.5 3.6-25.4 1.9-31.7 3.4zm-98.9 41.2c3-6.4 13.8-13.5 14.8-15.8-3 8.3-12 10.3-14.8 15.8m-2.8 11.3c9.4-13.4 24.1-12 30-17-4.4 4.9-21.3 8-30 17m-21.8 20.7c-.7-14.3 11-19.6 11.5-27.7.2 9.6-12 22.6-11.5 27.7m5.8 7.7c2.4-12.4 18.3-13.2 21.1-20.5 0 6.8-18.7 13.9-21 20.5zm-13.1-7c-8.4 9.4-2.6 23.6-6 34.1 4.1-7.7 2-26.9 6-34.1m13.8 40c-12.6 12.5-7.5 26.3-12.6 32.3 6.3-8.3 5.4-24.5 12.6-32.2zm-26.2 1.8c10.8 10.9 4.2 27.3 9.8 35-6.3-6.6-5.4-27-9.8-35m13.6 0c1.4-12.6 14.3-19.2 15.4-26 1.5 6.8-12.4 17.5-15.4 26m6.5 30c-2 8.8 5.7 27.6 3.3 33.4 5.2-10-4.4-29-3.3-33.3zm-16.6 20.1c5.2 15.6 15.5 14.6 18.8 24-2.4-9-16-17.1-18.8-24m33.5 7.3c6.8 10.5 1.2 22.4 6.8 29.9-8-7.5-3.7-21.4-6.8-29.9m-16.4 28.6c8.2 13.9 25.1 12.6 32 22.6-6.9-12.6-27.8-14.7-32-22.6m29.8-1.7c14.5 9.2 10.1 18.8 21.1 29-13.8-10.2-12.6-21.5-21.1-29m6.8 37.1c14-.4 34.3 16.3 46.4 15-12.1 2.3-34.7-12.6-46.4-15m22.8-15c.9 13.1 37.5 21.4 41.5 30.2-4.5-11.5-36.6-20-41.6-30.1zM301 116c2.8-11.5 17-13.6 18.8-20.5-.7 7.3-17.4 15.4-18.8 20.5m41.5-28.6c-2 8.8-17.3 13.7-19.4 20.3.7-9 16.4-14 19.4-20.3m-12 20.8c7.3-10.7 22.3-8 27.5-14.1-3.8 7.2-22.3 7.4-27.5 14z" class="arab-fil0"/>
+ <path fill="none" stroke="#f7c608" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M429.8 240c0 55.5-49.3 100.4-110.3 100.4-60.9 0-110.3-44.9-110.3-100.3 0-55.5 49.4-100.4 110.3-100.4 61 0 110.3 45 110.3 100.4z"/>
+ <path fill="#f7c608" d="m298 340.5-.5 1.2q-.5 1.3-2.1 1.2l-8-1.9 2.6-7.7 8 1.7q1.5.4 1 1.8l-.2 1m-19-4.8.4-1.2q.5-1.4 2-1l7.8 2.5-2.5 7.7q-4.2-1-7.9-2.3c-.8-.4-1-2-.7-2.9"/>
+ <path fill="#006233" d="m296.4 339.8-.3.9q-.5 1-1.7.8l-6.6-1.6 1.8-5.6c2.4.7 4.9 1.2 6.6 1.5q1.3.4 1 1.4l-.2.7m-15.8-4 .3-1q.4-.8 1.6-.6 2.8 1 6.5 2l-1.8 5.6-6.5-1.9c-.7-.4-1-1.5-.7-2.1"/>
+ <path fill="#f7c608" d="m267.7 330.8-.7 1q-.9 1.2-2.4.7c-2-1.2-4.7-2.5-7-3.9l4.8-6.8 7.1 3.7q1.2.8.5 2l-.6 1m-16.7-9.6.7-1q1-1.2 2.3-.5 2.8 2 6.7 4.4l-4.9 6.8-6.7-4.2c-.7-.7-.4-2.3 0-3"/>
+ <path fill="#006233" d="m266.5 329.7-.6.8q-.6.8-1.9.3c-1.6-1-3.8-2-5.8-3.2l3.5-4.9c2 1.3 4.3 2.4 5.9 3.1q1 .6.5 1.6l-.5.6m-13.8-7.9.5-.8q.7-.8 1.8-.2l5.6 3.6-3.5 4.9q-3.1-1.7-5.6-3.5c-.6-.5-.5-1.7-.1-2.2"/>
+ <path fill="#f7c608" d="m241.8 313.7-1 .8q-1.3.8-2.6 0c-1.5-1.6-3.7-3.5-5.5-5.5l6.7-5.3c2 2.1 4.2 4 5.7 5.4q1 1-.1 2l-.9.8m-13-13.4 1-.9q1.2-.8 2.3.2a73 73 0 0 0 5 6l-6.7 5.2q-2.9-3-5.2-5.8c-.5-.8.3-2.2 1-2.8"/>
+ <path fill="#006233" d="m240.9 312.4-.8.6q-.8.6-1.9-.2l-4.6-4.6 4.9-3.8 4.7 4.5q.7 1 0 1.7l-.7.5m-10.8-11.2.7-.6q1-.6 1.8.2 1.8 2.3 4.3 5l-4.9 3.7-4.3-4.8c-.4-.6.1-1.7.6-2.1"/>
+ <path fill="#f7c608" d="m222.2 290.7-1.3.5q-1.3.4-2.4-.6l-3.6-6.8 8.1-3.3c1.3 2.5 2.7 5 3.8 6.6q.5 1.3-.8 2l-1 .4m-8.4-16.2 1.2-.6q1.5-.4 2.2.8a71 71 0 0 0 3 7l-8 3.3a60 60 0 0 1-3.3-6.8c-.2-1 1-2.1 1.9-2.5"/>
+ <path fill="#006233" d="m221.7 289.2-.9.3q-1 .4-1.8-.6l-3-5.6 5.8-2.4 3.2 5.5q.4 1.2-.5 1.6l-.8.3m-7-13.5 1-.3q1-.4 1.6.6l2.5 5.8-5.7 2.4-2.7-5.7c-.2-.7.6-1.6 1.2-1.9"/>
+ <path fill="#f7c608" d="m210.5 263.5-1.4.2a2 2 0 0 1-2-1.2l-1.5-7.4 8.8-1.1a64 64 0 0 0 1.7 7.3q0 1.4-1.4 1.7l-1.2.2m-3-17.7 1.4-.2q1.5-.1 1.8 1.2.1 3.3.7 7.5l-8.8 1.1-1-7.4c.2-.9 1.7-1.7 2.6-1.8"/>
+ <path fill="#006233" d="m210.5 262-1 .1q-1 .1-1.5-1l-1.1-6.2 6.3-.8 1.3 6.1q.1 1.1-1 1.4l-.8.1m-2.5-14.7 1-.2q1.2 0 1.3 1.1.2 2.8.7 6.2l-6.3.8q-.6-3.1-.8-6.1c0-.7 1.1-1.4 1.8-1.5"/>
+ <path fill="#f7c608" d="m207.7 234.5-1.4-.2q-1.5-.2-1.6-1.7c.3-2 .5-4.8 1-7.4l8.7 1.2a65 65 0 0 0-.7 7.4q-.3 1.4-1.8 1.3l-1.2-.2m2.6-17.7 1.4.1q1.4.4 1.4 1.7a69 69 0 0 0-1.7 7.4l-8.8-1.2q.6-3.8 1.4-7.4c.4-.8 2.1-1.2 3-1"/>
+ <path fill="#006233" d="M208.2 233h-1q-1-.4-1.1-1.5l.8-6.1 6.3.8-.6 6.2q-.2 1.1-1.4 1h-.8m2.1-14.9 1 .2q1.1.2 1 1.4-.7 2.6-1.3 6l-6.3-.7 1.1-6.2c.3-.7 1.5-1 2.2-1"/>
+ <path fill="#f7c608" d="m214 206-1.3-.6q-1.3-.5-1-2c1-2 2-4.6 3.2-6.9l8 3.4a70 70 0 0 0-3 7q-.6 1.1-2 .7l-1.2-.5m8-16.4 1.3.6q1.3.6.8 2l-3.8 6.6-8.1-3.4q1.7-3.6 3.6-6.7c.6-.7 2.4-.7 3.2-.3"/>
+ <path fill="#006233" d="m215 204.7-1-.4c-.6-.2-.8-1-.6-1.6l2.6-5.7 5.8 2.4-2.5 5.8q-.6 1-1.6.6l-.8-.3m6.7-13.6.9.4q1 .4.5 1.6l-3.2 5.5-5.7-2.4q1.4-3.1 3-5.6c.4-.6 1.7-.7 2.3-.4"/>
+ <path fill="#f7c608" d="m228.9 180.2-1.1-.9q-1-.9-.4-2.2c1.6-1.6 3.4-3.9 5.2-5.8l6.8 5.3a72 72 0 0 0-5 6 2 2 0 0 1-2.4 0l-.9-.6m12.8-13.7 1 .8q1.2 1 .2 2.2l-5.7 5.3-6.8-5.3q2.8-3 5.6-5.5c.8-.5 2.5 0 3.2.5"/>
+ <path fill="#006233" d="m230.2 179.2-.8-.6q-.7-.7-.1-1.7l4.3-4.9 4.8 3.8-4.2 5q-.8.8-1.8.2l-.6-.5m10.6-11.4.8.6q.7.7 0 1.6l-4.8 4.6-4.8-3.8q2.3-2.6 4.6-4.6c.7-.5 2-.2 2.4.2"/>
+ <path fill="#f7c608" d="m251 159.2-.7-1q-.7-1.2.4-2.3c2-1.1 4.4-2.8 6.8-4.2l4.8 6.8a78 78 0 0 0-6.7 4.4 2 2 0 0 1-2.2-.4l-.7-1m16.5-9.8.7 1q.8 1.4-.4 2.1-3.3 1.5-7.2 3.7l-4.8-6.8q3.5-2.2 7-3.9c1-.2 2.4.7 2.9 1.4"/>
+ <path fill="#006233" d="m252.7 158.6-.6-.7q-.4-1 .4-1.7l5.7-3.5 3.4 4.8-5.5 3.7q-1.1.6-1.8-.3l-.5-.6m13.7-8.2.6.8q.4.9-.5 1.5l-6 3.1-3.4-4.8 5.8-3.3c.8-.2 1.9.4 2.3.9"/>
+ <path fill="#f7c608" d="m279 144.9-.5-1.3q-.2-1.3 1-2l7.9-2.3 2.5 7.7a83 83 0 0 0-7.8 2.6q-1.4.3-2-1l-.3-1m18.8-5.4.4 1.3q.3 1.3-1 1.8l-8.1 1.7-2.5-7.7a85 85 0 0 1 8-2c.9 0 2 1.3 2.3 2"/>
+ <path fill="#006233" d="m280.6 144.7-.3-1q-.1-.8 1-1.4l6.5-2 1.8 5.6-6.5 2q-1.2.4-1.6-.6l-.3-.7m15.7-4.4.3.9q.3 1-1 1.4-3 .5-6.6 1.4l-1.8-5.5 6.6-1.6c.8-.1 1.6.8 1.8 1.4"/>
+ <path fill="#f7c608" d="M310 138.2v-1.3q.2-1.3 1.7-1.7l8.2-.2v8.1a84 84 0 0 0-8.2.4q-1.6 0-1.6-1.5v-1m19.7-.2v1.2q-.1 1.4-1.7 1.5l-8.2-.4V135q4.3 0 8.2.2c1 .2 1.7 1.7 1.7 2.6"/>
+ <path fill="#006233" d="M311.8 138.5v-1q0-.9 1.3-1.2l6.9-.1v5.8q-4 0-6.9.3-1.2-.1-1.3-1v-.9m16.3-.1v.9q0 1-1.3 1l-6.8-.2v-5.8l6.8.1c.8.2 1.3 1.2 1.3 1.9"/>
+ <path fill="#f7c608" d="m340 139.6.3-1.2q.5-1.2 2.1-1.2l8 1.8-2.5 7.8-8-1.6q-1.4-.5-1.1-1.9l.3-1m19 4.7-.4 1.2q-.5 1.4-2 1l-7.8-2.4 2.5-7.8q4.1 1 7.8 2.3c.8.4 1 2 .8 2.8"/>
+ <path fill="#006233" d="m341.5 140.3.2-.9q.5-1 1.7-.8l6.6 1.5-1.7 5.6-6.7-1.4q-1.1-.4-1-1.4l.3-.7m15.8 4-.3.8q-.4 1-1.6.7l-6.5-2 1.7-5.6q3.5.9 6.6 1.9c.7.3 1 1.5.7 2"/>
+ <path fill="#f7c608" d="m370.2 149.1.7-1q.9-1.2 2.4-.7c2 1.1 4.7 2.4 7.1 3.8l-4.7 6.9a81 81 0 0 0-7.3-3.6q-1.2-.9-.5-2.1l.7-1m16.8 9.5-.8 1a2 2 0 0 1-2.2.5l-6.7-4.3 4.7-6.9q3.7 2 6.8 4.2c.7.6.4 2.2-.1 3"/>
+ <path fill="#006233" d="m371.5 150.2.5-.8q.6-.7 1.9-.4l5.8 3.2-3.4 5-6-3.1q-1-.6-.4-1.6l.4-.7m14 7.9-.6.8q-.6.8-1.8.2l-5.6-3.6 3.4-4.9 5.7 3.4c.6.6.5 1.7.1 2.3"/>
+ <path fill="#f7c608" d="m396.3 166 1-.9q1.2-.8 2.5 0l5.6 5.5-6.6 5.3a75 75 0 0 0-5.8-5.3q-1-1 .1-2l.9-.8m13.2 13.3-1 .9a2 2 0 0 1-2.4-.2 72 72 0 0 0-5-5.9l6.7-5.3 5.2 5.7c.4.8-.3 2.3-1 2.8"/>
+ <path fill="#006233" d="m397.2 167.3.7-.6q.8-.5 2 .1l4.6 4.6-4.8 3.8-4.8-4.5q-.8-.9 0-1.6l.7-.5m11 11-.8.7q-.9.6-1.8-.2l-4.3-4.9 4.8-3.8 4.4 4.7c.4.7-.1 1.8-.6 2.2"/>
+ <path fill="#f7c608" d="m416.1 188.9 1.3-.6q1.4-.4 2.4.7l3.7 6.6-8.1 3.5q-2-4-4-6.6-.5-1.3.9-2l1-.5m8.6 16.2-1.3.5c-.8.4-1.8 0-2.1-.7a71 71 0 0 0-3.1-7l8-3.4 3.3 6.9c.2.9-1 2-1.8 2.4"/>
+ <path fill="#006233" d="m416.6 190.4.9-.4q1-.4 1.8.6l3 5.5-5.8 2.5-3.2-5.5q-.4-1 .5-1.6l.8-.3m7 13.5-.8.3q-1 .4-1.7-.6-1-2.6-2.6-5.8l5.8-2.5 2.8 5.7c.1.8-.7 1.7-1.3 2"/>
+ <path fill="#f7c608" d="m428 215.9 1.4-.2a2 2 0 0 1 2.1 1.2l1.5 7.3-8.8 1.3a65 65 0 0 0-1.7-7.3q-.1-1.4 1.4-1.7l1.1-.2m3.2 17.7-1.4.2q-1.5.1-1.8-1.3l-.8-7.4 8.8-1.3 1 7.5c0 .9-1.6 1.7-2.5 1.8"/>
+ <path fill="#006233" d="m428 217.4 1-.1q1.1 0 1.5 1l1.2 6.1-6.3 1-1.3-6.2q-.2-1.2 1-1.3l.8-.2m2.6 14.7-1 .2q-1.1 0-1.4-1l-.7-6.3 6.3-.9q.7 3.3.9 6.2c0 .7-1.1 1.4-1.8 1.5"/>
+ <path fill="#f7c608" d="m431.1 244.9 1.4.1q1.5.3 1.7 1.8l-.9 7.4-8.8-1.1c.4-2.7.6-5.5.6-7.5.1-.8 1-1.4 1.9-1.2l1.1.1m-2.4 17.8-1.4-.2q-1.5-.2-1.4-1.7 1-3.1 1.6-7.3l8.8 1q-.6 4-1.3 7.4c-.4.9-2.1 1.3-3 1.2"/>
+ <path fill="#006233" d="M430.6 246.4h1q1 .4 1.2 1.5l-.8 6.2-6.3-.8.6-6.2q.1-1.1 1.3-1.1h.9m-2 14.9-1-.1q-1.1-.2-1-1.4.7-2.7 1.2-6.1l6.3.8-1 6c-.3.8-1.6 1.2-2.2 1"/>
+ <path fill="#f7c608" d="m425.1 273.5 1.3.5q1.3.7 1 2l-3 7-8.2-3.3a66 66 0 0 0 3-7q.6-1.2 2-.8l1.2.4m-7.9 16.5-1.2-.5q-1.4-.7-.9-2 1.9-2.8 3.8-6.6l8.1 3.3-3.5 6.7c-.6.7-2.4.7-3.3.3"/>
+ <path fill="#006233" d="m424.2 274.8 1 .3q.7.5.6 1.7l-2.6 5.7-5.9-2.3 2.5-5.8q.6-1 1.6-.8l.8.4m-6.5 13.6-1-.3q-1-.6-.4-1.6l3-5.5 5.9 2.3-3 5.6c-.5.6-1.8.7-2.4.4"/>
+ <path fill="#f7c608" d="m410.5 299.4 1.1.8q1 1 .4 2.3c-1.6 1.6-3.4 3.8-5.2 5.8L400 303c2-2 3.8-4.3 5-6q1-.9 2.3-.1l.9.7m-12.6 13.8-1-.8q-1.2-1-.3-2.1 2.6-2.2 5.7-5.5l6.8 5.3-5.5 5.6c-.8.5-2.5 0-3.2-.6"/>
+ <path fill="#006233" d="m409.2 300.4.8.6q.7.6.1 1.7l-4.3 4.8-4.9-3.7q2.6-2.8 4.2-5 .9-.8 1.8-.2l.6.5m-10.4 11.5-.8-.6q-.8-.7 0-1.7l4.6-4.5 5 3.7q-2.4 2.6-4.7 4.7c-.6.4-1.8.1-2.4-.3"/>
+ <path fill="#f7c608" d="m388.5 320.5.7 1q.7 1.3-.3 2.3l-6.7 4.3-5-6.8a78 78 0 0 0 6.7-4.4 2 2 0 0 1 2.2.4l.7.9m-16.4 10-.7-1q-.8-1.3.4-2.2l7.2-3.7 4.8 6.8-7 4c-.9.2-2.3-.7-2.9-1.4"/>
+ <path fill="#006233" d="m386.9 321.1.5.8q.5.8-.4 1.7l-5.6 3.5-3.5-4.8 5.6-3.7q1-.6 1.7.2l.5.7m-13.6 8.3-.6-.8q-.4-.9.5-1.6l6-3.1 3.4 4.8q-3 1.9-5.8 3.3c-.7.3-1.9-.3-2.2-.8"/>
+ <path fill="#f7c608" d="m360.8 335.1.4 1.2q.3 1.4-1 2l-7.8 2.5-2.6-7.8a75 75 0 0 0 7.7-2.6q1.5-.2 2 1l.4 1m-18.8 5.5-.4-1.3q-.3-1.4 1-1.8 3.6-.6 8-1.8l2.7 7.8-8 2c-1 0-2-1.3-2.3-2"/>
+ <path fill="#006233" d="m359 335.3.4.9q.2 1-1 1.5l-6.4 2-1.9-5.6 6.4-2q1.3-.4 1.7.6l.2.7m-15.6 4.5-.3-.9q-.2-1 1-1.4l6.6-1.5 1.9 5.6-6.6 1.6c-.8 0-1.7-.8-2-1.4"/>
+ <path fill="#f7c608" d="M329.7 342v1.3q-.1 1.4-1.6 1.7c-2.4 0-5.4.3-8.2.3l-.1-8.1a82 82 0 0 0 8.2-.5q1.6 0 1.6 1.5v1m-19.6.4v-1.2q0-1.4 1.6-1.5l8.2.3v8.1l-8.2-.1c-.9-.2-1.6-1.7-1.6-2.6"/>
+ <path fill="#006233" d="M328 341.8v.9q-.1.9-1.4 1.2l-6.8.2v-5.7q4-.1 6.8-.4 1.2 0 1.4 1v.8m-16.4.3v-1q0-.9 1.3-1 3 .3 6.9.2v5.8H313c-.8-.2-1.4-1.3-1.4-1.9"/>
+</svg>
diff --git a/apps/web/public/flags/as.svg b/apps/web/public/flags/as.svg
new file mode 100644
index 00000000..82459dec
--- /dev/null
+++ b/apps/web/public/flags/as.svg
@@ -0,0 +1,72 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-as" viewBox="0 0 640 480">
+ <path fill="#006" d="M0 0h640v480H0Z"/>
+ <path fill="#bd1021" d="m-.6 240 640-240v480Z"/>
+ <path fill="#fff" d="m59.7 240 580-214.3v428.6"/>
+ <path d="M474 270.4c5.1.3 5 5.4 5 5.4l18 .4c2.3-6.3 4.8-5.6 9.2-2.4a33 33 0 0 0 8.7 4.2c1.7-9 14.5-7.2 14.5-7.2 5.6-13 6-12.9 2.7-14.5a11 11 0 0 1-4.6-4.5c-3-3.7-4.6-9.1-5-12.4s-4.2 1.6-5 .6c-.6-1-6.3-.4-6.3-.4 1.4 1.5-3.4.6-3.4.6.5.4 0 1.7 0 1.7-.4-.6-4.1-1.2-4.1-1.2l-1.1 1.6c-2-.8-6-.7-6-.7a20 20 0 0 0-10.9 2.8c-1.6.9-7.4 3.8-12.3 8.5-4.7 4.6-7.4 4-7.4 4-1.4 5.2-12.8 11.5-12.8 11.5-1.8 1.6-7.6 2.4-10.5 0s0-6.9 0-6.9c1.2-2 2.2-1.9 2.3-9 .1-4.7 5-8.5 10-14 6.3-6.8 15-18 15-18 0 3.4 1.8 4 1.8 4 1.7-3.5 4.2-6.3 4.2-6.3q.3.4.5.4l3-3.6c-.5-.3-6 0-11 4.4s-8.4 3-8.4 3c-3.5-1.2-3.8-4-3.8-4-2.5-10.9 7.4-18.7 7.4-18.7-13.4-3.2-3.7-20.3 13-27.5s16.4-10.5 16.4-10.5a13 13 0 0 1 1.8 3c.1 0 1.4-1.9 11-6.1 9.6-4.3 14.2-8 14.2-8 1.2 2.4 1 4 1 4 26.3-9.1 52-30.2 52-30.2.8 1.7.5 4.4.5 4.4 4.2-4 19.7-13.2 19.7-13.2a9 9 0 0 1-4.6 8.2l.8 2.3a360 360 0 0 0 14.4-9.5c4.3 3.7.4 9.8.4 9.8 1.6-.3 2.6-1.6 2.6-1.6 1.2 6.4-5.9 12-5.9 12 1.3 0 3.3-1.3 3.3-1.3-1.3 7-14.4 14.6-14.4 14.6 1.9 1.8 0 4-1.6 5-1.5 1-4.3 3.3-3.4 4.2s6.7-3.2 6.7-3.2c1 2.9-6.5 8.6-6.5 8.6 5.2.7 19.6-5.9 19.6-5.9-1.1 5.6-6.6 10-13.3 12.5s-6.4 3-6.4 3c1.2.8 10.5-1.8 10.5-1.8-2.8 6.2-12.5 10.5-12.5 10.5 2.7 2.3 6.3-.4 10-2.9a58 58 0 0 1 14-6.4c5.3-1.9 9.2-.5 9.2-.5a12 12 0 0 1 8.4.6c8.7.7 9.6 3.9 9.6 3.9 1 .2 1.7.6 4 2.3 2.1 1.6 2 6.6 2 9.2-.2 2.4-.9 2.4-1.3 3q-.5 1.2-.5 2.5c0 1-2.2 6.9-15.7 6.9h-20.3c-1.2 0-2.5.7-2.5.7-5.7 2.8-2.7-2-9.4 3.6s-10.2 4.6-10.2 4.6A90 90 0 0 1 568 221c-4 2.6-3.3 2.3.3 3.8s8.8 0 8.8 0c-3.4 2.3-1 3.4-1 3.4 4.4-2.7 7.2-1.7 7.2-1.7 1.4 3.9-3.8 10-3.8 10 2 .3 5.8 0 5.8 0-1 2.7-4.6 5.6-7.4 6.4-2.7 1-2.3 1.3-1.4 3 .7 1.6.1 3.3.1 3.3-4.8-3.3-5-.4-5-.4-.5 4-.4 9.6-.4 9.6-3.4-1.7-3.5.5-3.5.5-1 3.6-5.1 7.7-5.1 7.7-.2-2.2-2.2-2.8-2.2-2.8-2.2 4.2-6.1 6.7-6.1 6.7-.5 3.5.5 8.6.5 8.6-2.6-.6-3.5-.6-4 0-.3.7.6 1 .6 1l33.4.8c.5 0 2.5.3 2.5 3.8 0 3.7-3 3.9-3 3.9l-36.4-.9s.1 1-1.8 2-1.2-1.1-1.7 3.4-7.8-.4-7.8-.4c-1.2 1.8-4 4-4 4-1.7-5-3.4-6.4-6-2.2s4.8 3.6 4.8 3.6 42.8-6.3 45.1-6.5 4.9-.1 6 3.1-5.3 3.8-5.3 3.8l-44 4.8c-.9 2.6-4.5 2.4-4.5 2.4.3 2.5-2.3 4-3.6 5-1.4.8-5.6.5-5.6.5-5 3.4-7.6.7-7.6.7-3.3 1.4-5.4.8-8.1-.4-2.8-1.2-2.5-4.5-2.5-4.5l-27.8 3a7 7 0 0 0-2.2 1.2c1 1.3-2 4.3-2 4.3.9.5 2.5 2.1 2.7 5.5.2 3.7-4.5 4.3-2.2 7 2.3 2.5 6.7.3 11.5-2s9.5-2 11.5-2 7.8 1.6 11.4 2.8 4.8.4 5-1.4 1.9-2.3 1.9-2.3c-.5 1.8.5 2.6.5 2.6a11 11 0 0 0 3.7-1.3c-.2 1.4-2 2.2-2 2.2-3.4 2.3 1.4 1.5 1.4 1.5a44 44 0 0 1 15.4-1.5 123 123 0 0 1 14.3 5.2c.4-1.2.1-4 .1-4 3 .8 4.2 2.5 4.2 2.5 1.2-1.2.4-3.4.4-3.4 9.7 5.5-2 8-5.1 9s-3 2.3-3 2.3a28 28 0 0 1 6.4-1.3c2.2-.2 1.4 0 6.5-1 5.2-1 7.8 1.2 7.8 1.2-4.3.2-5.5 1.5-5.5 1.5 2.6 1.7 0 3.4 0 3.4-3.8-5-7.2.1-7.2.1a15 15 0 0 1 6.4 1.4l5.4 2.7c3.6 1.6 2.9.6 5.6 1.6 2.8 1 1.7 3.7 1.7 3.7a7 7 0 0 0-3.7-3c-.2 3-3.1 3.5-3.1 3.5 3.6-4-4.1-5.8-7.8-5.7-3.6 0-6.3 2.4-6.3 2.4 7.3 6.9 12.3 4.6 12.3 4.6-.9 2.5-6.9 1.5-6.9 1.5 2.8 2.2 2.5 3.6 2.5 3.6-1.5-1.4-4-.7-9.2-4-5.2-3.5-9.9-2.3-9.9-2.3 5.2 5.3-1.8 8.6-1.8 8.6-2.6 1.6 1 3.5 1 3.5-3.2.6-3.6-2.6-3.6-2.6-1.7-.4-4.2 1.6-4.2 1.6.2-3.2 4.6-1.6 4.6-5 .2-3.5-4-6.2-16.3-4.5s-16-2.2-16-2.2c-1 0-1.2 1-1.2 1 2 2 2.9 2.8 2.6 4.2-.4 1.3.6 1.8.6 1.8-2.3-.2-2.4-2.8-2.4-2.8 0 1.1-.5 1.2-1.3 2.3s0 2.7 0 2.7c-1-.8-2.7-1.8-1-4.3 1.2-1.8-2.7-4.2-2.7-4.2-1.5-1.5-5.6 0-5.6 0a15 15 0 0 1-13.3-3.7c-1 0-2.9-.6-2.9-.6-8.9 4-16.7-4.6-16.7-4.6-6.7 1.3-9.8-2-11.8-5.2a12 12 0 0 0-5.2-5c-2.6-1.6-5.2-6.2-2.6-8.7 2-2.1 1.5-2.6 1.5-2.6-3.5-5.9 6.1-7.7 6.3-9.2.3-2 2.3-3.3 4.5-3.4s2.2 0 3.7-1.4c1.3-1.5 4 .3 4 .3.7-.4 5.5-4.1 9.7-2.2 4.3 1.9 7.9.6 7.9.6 3-.7 28-4 28-4 1.5-2.5 2.7-5.4 9.6-7s12-6 12-6c-1.2-1.2-3.2-1.2-4.2-1.3-1.1 0-3.2-2-3.2-2-1.3.6-2 .3-11 5.8-8.1 5-8.3-4.8-8.3-4.8H479c-.3 3.7-3 5.2-3 5.2l-6.5.3c-3.6-1.8-3.6-8.2-3.6-8.2-19.4.3-30.1 7.2-30.1 7.2-22-11.2-39.2-13.8-39.2-13.8a122 122 0 0 0 40.8-10.2 63 63 0 0 0 28.5 9c.5-5.4 4.1-6.7 4.1-6.7z"/>
+ <path fill="#ffc221" d="M442.3 314.6c-5.5 3.2-4.5 5-4 6s.5 2-1 3.6c-1.5 1.5-1.4 2-1.4 2 .3 5.4 4 6.6 5.7 8 1.4 1 3.6 4.5 3.6 4.5 2.9 4.1 5.9 4.2 8.1 4.2 2.3 0 2-.3 1-1.3l-3.4-2.7a18 18 0 0 1 5.9 4.1c5.6 6.2 10.8 5.4 13.1 5.2s2-1.7 2-1.7l-2.4-.4c-8.5-.8-11-6.4-11-6.4a24 24 0 0 0 15.6 6c2.4-.1 2.3.6 1.7.8l-2.4-.2c-1.1 0-1.1.3-.9.8q.6.5 2.7.4c1.4 0 .3.1 3.8 2.8 3.6 2.8 12.3.5 12.3.5-5.7-1.3-6.4-4-6.4-4-7.7 1-10.8-3.6-10.8-3.6a33 33 0 0 0-5.6-3.5 9 9 0 0 1-5-5.8c1.3 1.8 3.7 3.8 6.7 4.6s3.8 1.2 3.8 1.2a4 4 0 0 1-2.3-.2c-3-1-1.3.3-1.3.3 3.4 2.7 4.3 2.5 4.3 2.5 8.6.9 4.3-2.6 4.3-2.6 6.2 1.5 7.2-.8 7.2-.8 1.3 2.7 6 1.7 6 1.7-6.2 3-1.5 2.1-1.5 2.1 6.3-1.1 7.6.5 7.6.5 1.6 1.5 3.4 1.4 3.4 1.4s1.2 0 3.5.4c2.4.5 6.2 2.5 9.6 2.2 3.5-.5 4 .6 4 .6-.6-.3-2.2-.5-4.8.7-2.7 1.3-7.4 1.6-14.2 0s-7.4-1.3-7.4-1.3a9 9 0 0 1 3.4 4c.3 1.2 1.5 1.2 1.5 1.2.5-1.5 2.5-2.1 2.5-2.1a27 27 0 0 0 5 2.8c.4-.7 0-1.3 0-1.3 2.6 2.5 5.6 1.7 5.6 1.7.8-.5.6-2 .6-2 1 0 1.2.6 2 1.2.7.4 3 .1 3 .1-.8-.4-1.5-1.7-1.5-1.7 3.5-2.3 11-1.3 11-1.3 5.3 1 4.7 4.5 4.7 4.5a10 10 0 0 1 2.5 2.1c.5-1.2 0-2.5 0-2.5 2.6 1.2 3 4 3 4 3-3.2-2.7-6.8-2.7-6.8 2.7-.4 5.7-.2 7.5 0a14 14 0 0 1 6.6 3.1c2.1 1.7 5.9 2.5 5.9 2.5-.1-.7-2.2-2-2.7-2.2s-.6-.9-.6-.9c1.9.4 3.1.2 3.1.2-6.4-4-8.1-5.9-8.1-5.9 2.4.3 3.8-1.2 3.8-1.2-5.1 0-5.4-1.2-5.4-1.2.7.1 3.1.7 6.2.1s7.2 0 7.2 0c-2.2-3.6-10.7-3-13.5-2.8s-3.8-.2-3.8-.2c.4-.2.9-.6 3-.7 2.2 0 4.3.2 6.8-1.6 2.3-1.6 5.7-1 5.7-1-.8-1.6-4.7-2.2-8 0-3.5 2.1-6.5 1.5-6.5 1.5 5.3-.8 6.9-2.7 6.9-2.7-1.6-.4-2.5.1-5.8.8-3.2.6-4-.5-4-.5 3.5-2.1 6-3 6-3-3-.6-5.8-2-5.8-2-3.2 3-5.6 4.6-11.7 1.6-6-3.2-9.2-2.8-9.2-2.8a14 14 0 0 1 14.8.6c4 2.3 5 .4 5 .4-1.2-.7-1-1.5-1-1.5 9.6 4.9 13.8 2 15.9.5s-1-3.4-1-3.4c-.2 3-4 4.6-7.2 3.5-3-1-6-2.4-10.4-4.3s-10-.8-15.1.2c-5.2 1.1-5.9.6-6.4.2s-.7-1.7-3.4-.6c-2.6 1.1-8.8-1.8-12.6-2.7s-10.1-.5-15.5 2.5c-5.4 3.1-8.2 2.3-9.8 1.6-1.6-.8-2.7-2.8-.9-4.6s2-2.3 1.8-5c-.2-2.6-2.8-4.2-2.8-4.2 2.4-2.5 3-3 2.2-4-.8-1.2.4-1.2 1.8-1.8s.8-.7.5-1.5-1.2-.6-1.2-.6c-3.1.1-4.9-.8-4.9-.8-5.2-2.4-10.1 2.3-10.1 2.3-3-2.3-3.7-.7-4.2-.2q-.8.9-3 1c-1.2.2-3.1.7-3.8 1.9 0 0-.6 1 .1 2 0 0 .8 1.2-.6 2.7-1.5 1.5-2 1.8-1.5 3.3q.6 2-.3 3.3s-.7-.7-.5-1.7q.3-1.5 0-2s-1.5 1.4-1.8 2.4c0 0-.6-1.6 1.6-3.7q3.1-2.9 2.4-4c-.4-.6-2 .4-2.3.6z"/>
+ <path d="M448.4 338s-2.7-2-2.4-4.9c.3-2.7.3-3 0-3.7 0 0-.5.3-.4 1.4s-.2 2.1-.3 2.3c0 0-1.3-2.3-2-2.8 0 0 .6-2.4-.2-3.4q-1-1.5-2.4-.8c-1.2.4-2.1 1.5 2 4.8 0 0 1.5 1.3 2.5 3.9s2.8 3 3.1 3.2zm13-7.8s-.1-1.5 1.3-4.3a6 6 0 0 0 .3-5.6c-.3-.8-.6-.5.9-1.7 1.7-1.5-.7-3.4 2.3-6 0 0 1.8-1.6 2.3-2.3 0 0-3 1.6-5.2 2.5-2 .8-9.6 4.6-8 7.1 1.8 2.5 1.6 2.7 1.3 3.8 0 0-4.6-2.5-3-6.4 0 0 .8-1.5 2.7-3.4 1.8-1.6.8.4 4.3-1.7 0 0 2.7-1.6 4.3-3.9 0 0-2 1.2-2.6 1.4 0 0-4 .8-5.8 2.5-1.6 1.7-5.1 4.7-4 8 0 0-4-.4-5-4.7 0 0-7.6 9.4 8.4 13.8 0 0 3 .8 5.6 1z"/>
+ <path fill="#ffc221" d="M531.6 299c6-1 40.4-6.2 43.6-6.5 3.4-.3 4.7-.8 5.9 2 1.3 3-4.8 3.1-4.8 3.1l-41.1 4.7c-2 .2-2.5-.6-2.5-.6l-1.5-2s-.5-.6.4-.8z"/>
+ <path fill="#5a3719" d="M447.3 317.7s-4.4 9.3 13 11.6q-.1-.1.8-2.5c.8-1.5 2.3-4.5.8-6.4s1.2-.9 1.5-3.4c.5-2.5-.2-2.2 1-3.8 0 0-5.4 2-7.6 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3"/>
+ <path d="M464.5 329.2s4.3 3.7 9.4 3.6c5.1-.3 7.4-1.6 8.7-3.6 0 0 1 1.5 1 2.6 0 0 4.4-3.7 12-.5s5.4 2.3 7.1 2.5c0 0-3.3-.5-10.7 2.9-7.7 3.5-27.7 2.3-27.6-7.5z"/>
+ <path fill="#5a3719" d="M457.3 312.6s1.9.3 3.8-1.9c0 0-2.6.5-3.8 2zM442.6 330s-3.6-2.8-1.3-3.4c0 0 1.7-.3 1.3 3.4"/>
+ <path d="M521.2 347.8s2-3.5 7.5-3.5 6.1 2.6 13.1 3c0 0-8.4 2.4-14.2.3-3-1.1-5.8-.2-6.4.2"/>
+ <path fill="#5a3719" d="M466.3 331.7s8.4 5 15.7-.5q.2 0 1.2 2s5.6-5.4 15.5.4c0 0-1.2-.1-5.9 1.8-6.1 2.7-21.4 4.5-26.5-3.8z"/>
+ <path d="M498.3 336.7s8 1 14.7.6c4.1-.2 8.6-1 6.4.4-2.3 1.3-1.1 1.5 8.4.7 9.4-1-.1 1.7 6.4 2.6 0 0-15.9 8-35.9-4.3"/>
+ <path fill="#5a3719" d="M519.2 331.7s4.6-1.7 9 .3c4.3 2 3.6 2.2 6.5 2.5 0 0-2 2.9-6.7.6s-6-2.8-8.8-3.4m5.2 14.3s4.6-2.3 9.6 0c.6.4 2 1 3.3 1.2 0 0-3.8 1.3-7.8 0-1.7-.5-3-.9-5.1-1.2m-22.7-8.2s10.3 1 15.8-.1c0 0-6.4 3 9.7 1.7 0 0 3.5-.4 3 .1-.3.5-.6 1 1.2 1.5 0 0-12 5.4-29.7-3.2"/>
+ <path d="M450.7 329.2s.2.7 2.4 1.7a9 9 0 0 1 4 3.9 6 6 0 0 0 3.5 2.9s-8 1.7-11.6-2.6c0 0-2.7-3 1.6-6"/>
+ <path fill="#5a3719" d="M513.7 347.6s-3.1-.2-7.5-1.7c-4.3-1.5-5.4-.2-7.9-2-2.4-1.9-7.3-.7-8.2-.6-1 .1-3.6 0-.3-2.1 0 0-2.6 0-3.6-1.4 0 0-1.2 1.2-5.6.8 0 0 2 3-6 2.1a10 10 0 0 0 11.1 3c0 .2-.5 2.5 3 3.5 3.8.9 4.5 1.6 6.4 2.3 0 0 .3-1.5-4.6-5 0 0 2.6-.2 6.4.7s12.2 3.1 16.8.4m2 3.7s.8 1.8 3.2 1.4a17 17 0 0 1 10.2.8s.7-3.2-7-3.4c0 0-4.8.2-6.4 1.2m-65.2-21s-3 2.5-.3 5c2.4 2.3 6.2 2.1 8 2 0 0-1-.6-2-2-1-1.5-1-2.5-3-3.4-2.1-.9-2.3-1.1-2.7-1.6m-3-12.6s-4.6 9.3 13 11.6q-.2-.1.7-2.5c.6-1.5 2.1-4.5.8-6.4-1.6-1.9 1.1-.9 1.5-3.4s-.3-2.2 1-3.8c0 0-5.5 2-7.7 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3z"/>
+ <path d="M493.3 339.3s3.7-.6 13 2.9c9.4 3.4 13.3 2.6 14.6 2.5 0 0-5.2 2.8-13.4-.8-7.2-3.2-7.6-2-14.2-4.6"/>
+ <path fill="#ffc221" d="M551.8 337.2s2 0 3.4.5c0 0 .7-.7 2.7-1 0 0-1.3-1.2-6.1.5m-6.4-5.2s2.1 0 2.8-1.2c0 0-1.1-1.3-2.8-2 0 0 .4 1.6 0 3.2m-71.7-23.8s-.5-1 1.8-1.4l31.3-4.5s1.5 0 1.7 1c.3 1.1-.1 1.9-7.2 2.7l-25.6 3.2s-1.9.3-2-1"/>
+ <path fill="#ffc221" d="M502 306.9s0 4.1 4.2 4.7c4 .6 5.5-.2 6.5-2.3.3-.7 1.6-5-.2-5.3q-1.4-.2-2.9.3c-1.4.7-2.7 1.4-2.3 2 1 1.6 1.2 2 1 2-1.2.3-1.8-.6-2-1.2-.3-.8.5-1.2-2.2-.8q-1.9 0-2 .6zm17.5-3.2c2 .3 1.9 4.8-.6 6.9-2.8 2.2-5.4 1.3-5.4 1.3-1.4-.5-1.2-.4-.1-2 1-1.5 1.5-3.6.9-5q-.2-.8 1-1s2-.4 4.2-.2"/>
+ <path fill="#ffc221" d="M521.3 304.1s1.6 2-.4 5.5c0 0-.8 1 1.1.9 1.8-.2 6.1-2.2 5.7-4.8 0 0-.2-.6-1.3-.6s-.2-.5.3-.8c.4 0 1.9-.6-1.9-3 0 0-.6-.6-1.3-.3-.6.2-2.6 1-2.6 2.2q.2.9.4 1z"/>
+ <path fill="#ffc221" d="M525.4 300.9s3 2.1 3 2.8-.3 1.5.5 1.3c.8 0 4-.7 3-2.8q-1-3-3.2-3.4c-1.5-.6-1.9.1-3.2 1.1 0 0-.9.6-.1 1m-16.1 3s.5-1.5-2.2-2.2c0 0 1.1-1 3.4-.4 2.2.4 2 2 2 2.1 0 0-1.8 0-3.2.5m5.8-.4s3-.5 4.5-.4c0 0-1.6-3.3-5.7-2.3 0 0 1.5 1.8 1.2 2.7m5.3-.8s0-1.1 2.6-2.1c0 0-1.2-1.2-3-1-2 0-2.5.7-2.5.7s2.3.8 2.9 2.4m1-3.6s1.7.4 2.7 1.3c0 0 1.5-1.7 2.8-2 0 0-2.5-1.4-5.5.7"/>
+ <path fill="#5a3719" d="M435.8 290.9s7.2-6.2 11.2-5.4 2 .2 6.4-.5 9-1.1 10.8-.9c0 0-5.4-3.8-14.9-3.7 0 0-6.6 2.3-11.3 5.3 0 0-8.9-4.9-18-2 0 0 9.9 3.7 15.8 7.2"/>
+ <path fill="#ffc221" d="m512.2 301.4 1.2-.2s2 2.5.6 2.5c-1.2 0-.8-.3-1-1a2 2 0 0 0-.8-1.3m-9 .2s-.8 1 .6.8c1.7-.3 1.4 0 3.1-1.3 0 0 1.2-1.1 3.2-.4 0 0 1.8.6 3.2-.1 1.4-.8 1.7-.7 2.5-.6s.8.2 1.7-.6c1-.7 2.8-.1 3.9-1s2.5-.2 0-2c0 0-.5-.5-.5-1 0 0 1 .4 1.8 1 .8.8 2 .5 2.2.4 0 0 .2-2.3 2.3-4.3 2.3-2 2.3-2.2 1-2.2s-3.5-.6-4.3 0-7.2 4.8-11 5.5-7.3 1.8-9.7 5.8m-101.3-23.4s11.7 3 14.3 4.2c0 0 .6-1.9-4.7-3.4 0 0 12.9-.4 26.4 5.8 0 0 6.6-5.6 27.7-3.9 0 0 0-1.8.2-3.3 0 0-14.8-.4-28.4-8.7 0 0-12.3 6-35.5 9.3m64.7 5.6c-.7-11.8 3.8-13 3.8-13s2.1 0 4.4.5c0 0-3.6 4.3-2.6 12.8 0 0 .4 1.3-2.7 1.3s-2.9-1.5-2.9-1.5z"/>
+ <path fill="#5a3719" d="M469.8 291.7s-2.3-2.3-2.5-4.9c0 0 0-.6 2.2-.6s2.5-.2 3 1.1 2 4 2.3 4.3z"/>
+ <path fill="#ffc221" d="m474.5 285.7-.2-4.5c.1-6.6 1.2-6 1.7-5.2h2.3s-1.7-7.4-3.7-3a19 19 0 0 0-1.5 10.4q.1 3 .6 4z"/>
+ <path fill="#5a3719" d="M500.2 285.7s4.3.8-2.3 2.3c0 0 .3 8.2 8.2 2.5 0 0 4.7-3 8-4.2 0 0 1.6-.6 1.4-1.8 0 0 .2-1.5-1.5-1.1 0 0-1.4 0-2.3-.3 0 0-1-1.2-1.6-.8-.6.5-2.1.2-.9 1.7 1.2 1.4 1.5 1 2 .6s3.1-1.4.9.7-4.2-1.2-5-1.8zm-22 1h-2s-1 1.6-1.7-1l-.7 1.6s2.3 8.8 4.4-.6"/>
+ <path fill="#ffc221" d="M475.4 276.6s-1 5.8.3 9.2l21.1.5s-.2-4 0-9.7H494s-.5 4.6 0 7.5h-.5s-.4-4 0-7.5H491s-.4 4.3 0 7.5h-.5s-.4-3.7 0-7.5H488s-.5 3.9 0 7.5h-.6s-.5-3.9 0-7.5h-2.7s-.6 3.6 0 7.5h-.5s-.6-3.6 0-7.5h-2.7s-.6 4.2 0 7.5h-.6s-.4-4 .1-7.5h-2.5s-.7 3.5 0 7.5h-.7s-.4-3 .2-7.5zm22.3 10.4s-.5-10.2 1.4-13c2-2.6 2.5-2 5.8 0 3.4 2.2 7.7 4.5 8.5 4.8.6.3 1.6.5 1.6 2.4s.3 2.4-2.6 0a9 9 0 0 0-2.7-1.8c-2.6-.9.6.5 1.5 1.9.8 1 1.5 1-.6 1.5a219 219 0 0 0-12.9 4.2"/>
+ <path d="M505 279.6s-1.5-1.8.5-2.3 2.1 3 2.5 5.1c.3 2.2-2.5-2.1-2.8-2.7zm-2.7 9s-2.3.9-.7 1.6c1.4.7 5.5-2.7 4.2-2.5-1.6.3-3.5 1-3.5 1zm3-3s2-.3 1.6.5c-.3 1-1 .4-1.4.2s-1.6-.7-.1-.8z"/>
+ <path fill="#ffc221" d="M516 282.8s.6 4 4 5c0 0 2 .4 1.5-1.3 0 0-.3-1.5-.6-2-.3-.7-1.6-1-1.8-1.1-.2 0-.3-.5.6-.2 1 .3 1 .4 1-.3s-.6-.4-1.4-.8c-.4-.2 0-.4.3-.3.4 0 1.3.3 1.3-1 0 0 .1-.8-.9-.8-1.1 0-1-.6-.7-.7s1.5.8 1.9-.6-1.6-.5-1.4-1.2c.3-.8 1.7.3 1.7-.5.2-.8 1.3-1.1-.6-1.4-.9-.1 0-.6 1-.4s1.6-1.2 2.3-1.6 4.2-2.6-.6-1.9-6.1 3-6.3 3.5a13 13 0 0 0-1.3 7.6"/>
+ <path fill="#ffc221" d="M527 285.8q1-.1 1.4.5c.8 1.6-1 1-2 2.2s-1 1-2.4.5-2-2.5-2-2.5q0-1 1.2-.6s2.3.2 3.9 0zm-5-.8s0 .4.9.5c.7 0 3 .3 4.5-.1 0 0 .4-.1.2-1 0 0 0-.7-1.2-.4-1.3.2-3 0-3.7-.1q-1-.4-.8 1zm-.2-2.9s-.1 1.3 1.1 1.4c1.3.2 2.9.2 3.5 0 .5 0 1.4-.2 1.5-1 0-.7.2-1.2-1.3-.8s-3.4 0-3.6 0c-.1 0-1.2-.3-1.2.4m.5-2.5s-.3.6-.2 1.2q0 .7 2.5.7c2.5 0 3-.2 3.2-.7.1-.7.5-1.3-.7-1-1.3.1-3 .2-3.6 0q-1-.5-1.2-.2"/>
+ <path fill="#5a3719" d="M582.1 286s0 1 .9 2.2l-45.2-1.3s.6-.4.8-2.2z"/>
+ <path fill="#ffc221" d="M522.7 277.8s-.4 1.1.4 1.4q1.2.4 4 .1s1 0 1.3-1 .3-.4-2.3-.8c0 0-.8-.3 1.5-.3 0 0 1.4 0 1.5-.2.3-.2 2-1.7-.3-1.5-2.3 0-1.1-.5 0-.5s1.6.3 2 0 0-.2-.7-.8-.1-.5.3-.1q.6.6 1.3 0c.7-.6-.4-1.2 0-1 .3 0 .6.8 2 0 1.6-.7 3.5-.3 4 0 .6.5 2.2 1 3.1 0 1-.8-1.1-1.7-.3-1.8 1-.1 1.6.2 1.9-.5.4-.8-1.4-1.4.3-1.8s.2-5-.3-5.5c0 0-1.9 1.1-3.8 4.3-2.1 3.3-3.3 5.2-6 4.2-3.9-1.5-6 .6-6.5 1-1 .6 2 .8.2.9-1.7 0-1.7.2-1.8.4q-.2.4.3.6c.3 0 .9.6-.1.6s-1.8-.3-1.5.9l.6.3c.6 0 .8.8-.3.8q-1 0-.8.3m4.1 11.3s-.7.5.3.6c1.2 0 1.7.3 2.1-.3s1.8-.4.8-1.2-1.6-.3-3.2 1z"/>
+ <path fill="#ffc221" d="M531.5 275.5s3.8-3.5 6.9-1.2c3.2 2.5 3.4 2.8 3.5 2.9 0 0 .4.3-.4 1-.9.8 0 .8.9.3s1 0 1.4.5c.5.5 1.1.8-.3.8h-4.6s-2.1.2-1-.7c1-.9.8-1.9.3-2-.6 0 0 .6-.3 1q-.6.6-1.9.7-2 .3-.2 1c1.1.4-.2.7-.8.7s-3.5.2-.5.6-.3.3 2 1.5c2.4 1.4.6 4.3-.3 4.6 0 0-1 .5.2.4 1.3-.2 2-.3 1 .4-.8.6-2.6 2.9-5 1.2 0 0-1.2-.6.8-.7s-1.6-.5-2.3-1c-.5-.3-3-2.7-1.5-2.5 1.6.4 1-.5.1-.8s-1-1.6 0-1.4 2 .9 3 .8q1.2 0-1.2-.8c-1.7-.6-2.4-.7-2-2 .4-1.5 2.3.5 1.8-.6-.4-1-2-.5-1.2-1.9s1-.8 1.5-.6c.3.1 1 0-.1-.8-.8-.5 0-1.3.2-1.4"/>
+ <path d="M534.2 276.5s0-.5.8-.4c.6 0 .4-.2.6-.4.2 0 1.9.5.3 1-.6.3-1.6.2-1.6-.2z"/>
+ <path fill="#ffc221" d="M537.9 280.5s-1.3.6-.2 2c1 1 1 1.5 1 2.2-.1.8 43.4 1.3 43.4 1.3s0-2.9 1.8-4.5z"/>
+ <path fill="#5a3719" d="M582.8 285.2s.2-2.4 1.6-3.1c.7-.5 1.6-.3 2 1.6.6 2.7-1.7 5.1-2.7 4s-.8-2.5-.8-2.5z"/>
+ <path fill="#7b3c20" d="M532.9 295.4s2.9-2.5 3.4-3.6c0 0 7.8 5.6 7.3.4l.2-2.6s2.9.3 3.3-2l-7.3-.3s-.8-.1-2 1.1c-1 1.2-3.4 2.5-5.5 1.4 0 0-1-.8-1.9 0-1 .5-1 .7-.2 1.5s2.4 2.9 2.7 4zm16.8-15.4-4.3-.2s-1.5-2.2-4.6-4.6c0 0-.9-.4.8-1.8q2.5-2.3 2.3-3.5c0-.6 0-1.7.6-1 .6.8 5 4.9 5.8 3.7q.8-1.6.7-2.1c.2-.4.3-1.5 1-.3s1 .8 1.1 3.8c0 0 0 3 .5 4 0 0-5.6-1.7-3.8 2zm-18.6-9.2s3.3 2 5-.6c1.5-2.5 2.6-2.8 1.4-5.3-1.2-2.3 0-3.4.9-4.4s1.8-.8 1.8-4.6c.2-3.9 2.8-5 4-6.3s4.2-3-.4-3.7c-4.4-.8-13.4-3-15.7-6.5s-3.3-1.5-3.3-1.3-.8 2.7 1.5 7.3 4.2 7.6 6.5 9 4.2 2.3 3 5.4-3 8.6-4.7 11"/>
+ <path fill="#5a3719" d="M543.2 261s.6 8 6.3 10.8c0 0 1.3-3 .8-6.1 0 0 1.9.1 2.4 1 0 0 0-2.3-2.6-3.2-2.7-.7-1.4-6-.4-6.5s.6-1.7 0-2.6-.8-2.3 1.4-1.7 2-.6.5-1.7c-1.3-1.1-1.3-2.5.7-2.5s5-1.9 3.2-2.4c-2-.6-2.5-1.3 0-2 2.7-.8 4-1.7 2-2-2-.2-3.3-.9-1.4-1.2s-.3-2.3-2.5-2.3c-2.3-.2-7 .7-3.3-2.3s-5.4-.8-1.6-2.8-1.3-1.1-2-1.1-.7 0-.4-1-.5-1.6-1.7-.9c-1 .6-1 .6-1-.7 0-1.5-1.3-.4-2.1 0-.9.3-3 1.9-3.9 1-.7-.9-1.2-1.7-3.8-.2s-2 .2-2-.5 1-3.4-2.4-.5-.7-3-3.5-1-3 2.4-3.5 1.5c-.5-1-1-1.7-4 .3-3.1 1.9-.8-1.3-.5-2 .5-.6 1.8-5-.9-1.6 0 0-1.3 2.4-4.2-1.9 0 0-3 4.3-3.9 2.4-.8-2-1.5-2-2.6-.8-1 1.2-.2-.1-.7-1.2s-.7-2.9-5.8.8 1.8 1-2.1 2.7-13.5 7-4.8 5.9c8.7-1.3-4.2 3.3-1.2 4.2 3 .8 2 3.5 13.4.3 11.2-3 9.4-.4 15.2-3 5.8-2.4-1.4.9 6.4.8 7.7-.2 1.3 0 2.8 1.6s8 5.3 14.1 6c6.1.6 7.7-1.7 5.9 1-1.8 2.6-2.4 3.6-3.4 4.6-1 .8-4 3-4 6.6 0 3.7-4.8 4.3-3 8.3l4.1-4z"/>
+ <path fill="#5a3719" d="M553.3 269.9s-1.4-1-1.4-2.8c0 0 1 .2 1.4.8 0 0 3.5-4-.8-5.4-4.1-1.4-2-5.3-.6-5.3s1.7-.3.4-2c-1.2-1.5-1-1.6 1.3-2s2.1-1 1-1.5l-1.9-1.6s6.8-2.9 4.6-4.3 0-1 2-2.3c2-1.4 2.2-1.7 2.5-2.3 0 0-2 .3-3.4 0 0 0 1.7-.9 0-2.3s-2.3-2.6-5-2-1.8-.2-.8-1.3.6-1.7-1.3-2c0 0 .2-1.2 1.7-2.5 0 0-3.7.2-5-.4 0 0 1.6-1 1.6-2.3 0 0-2 .7-4.5.5 0 0 1.5-1.3 1.5-2.4 0 0-4.4 1-6.4 2.5q-.2.2-.8-.6c-.4-.4-.6-1-5.5.6 0 0 .5-2.2 1.7-3s1-2.6-6.5 2.1c0 0-1-.6-1.9-2.9 0 0-1.7 2.3-2.9 3.1 0 0-1 .5-1-1 .2-1.5-.7-.5-1.4 0-.8.4-1.3 1.5-1-1.5s-1-3.6-1-3.6-2.3 3.3-3.7 3.7c0 0-2.5-2.4-3.4-4s-.8-2.2-1.7.6c-.9 2.7-2 3-2 3s-1.5-1.3-1.6-2c0 0-.3.7-.8 1 0 0-1.3-1.5-1.2-3.7 0 0-8.2 4.5-9.2 7.2 0 0-7.7-.5-10.8.1 0 0 .7-2.4 2.7-3.7 0 0-2-.2-2-2.3 0 0 1.6.2 2.6 0s-1.4-3.1 1.1-3.2 4.2 1.2 3-2.2c-1-3.3-.6-3.3-.6-3.3s4.4 2.6 5.1 1.9c.8-.6-.5-2 3.4-1.4s2.8-1.5 4.4-1.7c1.5 0 2.3 1 1.3-6.1s4.8 3.5.9-7.2c0 0-1-3.3-3.3-4.7 0 0-.6 2.3-3.2.3s-7.8-2.8-5.6-4.4 3.2-3.9 2.6-5.2c0 0-2.6 2.6-7 .7-3.6-1.5-4.4 1.3-8 .5 0 0 0-1 3.1-3.4 3-2.3-1.8.8-3.6 1.3s-2.4 0 1.5-3.1c4-3 12-8.5 11-13 0 0 1.8 2.3 6.7.6s8.6-2.3 10-5a23 23 0 0 1 6.4-5.6c1.1-.5 2.4-1 .9 1.5-1.6 2.4-4 6.6-10.8 9.4s-9.5 4.8-10.7 6.3-7.4 4.8-3.3 4.3c4-.7 10.9 0 7.6-1-3.2-.9-6.9.6-3.9-2.1s3.5-3.6 7.9-5.4 9.2-6.1 8.7-1.6-8.6 9.1-10.6 10.6c-2 1.4-1.2 1.2-1.2 1.8s-.4 1.8-1.2 2.3c-.8.6-.5 1.2-.3 2.4.2 1.3-.2 1.8.4 2s1.2.2 1.4 1.1.6 1 1.8 1q1.8-.3 2 .6c0 .7 1.2 1.7 1.3-.4.1-2.2 1-2.5-1.2-1.5s-2.6.6-2.6-.4-.2-.8-1-.9c-1 0-1.3-1.3.3-2.2 1.6-.8 1.6 0 3.6-1.6s2-2 2.3-3c.3-.7-2.9 2.4-4.4 3-1.5.8-1-.5-.8-2.1.3-1.7 4-4 5.7-4s5.6 1 4 3.3c-1.7 2.3-6.4 5.2-4.5 5.4 2.1.2 2.4-.6 3.6.4s0 3.2-.4 4.4a8 8 0 0 1-2.2 2.7s-2.2-3.8-2.1-.8c0 3.1-.5 4.2 0 4.3s2.8 1.7 3.6 1.7-4.1 2.3-2 2.5c2 .1 5.3-1 6.4-3 0 0-4.2-1-5.9-2.6 0 0 4.9-1.2 3.5-5.8 0 0 4.9 1.3 2.7 3.5-2 2.1-3.3 1.8-1.5 2.4q2.8 1 2.7 1.2c-.1.2 1.3.6.5 1.6-.7 1-.7 2.6 0 2.5.5 0 2.6-1 .9-2s1.9-.8.4-1.7c-1.6-1-2-1.1-2.4-1.6-.5-.3 19.7-12.2 9.5-7.8 0 0 2.1-4.6 5.1-4.6s3.2 2.3 1.5 4.2c-1.7 1.7-2.8 4.6-6.7 5.2 0 0 5.6 2.7-1 7.2 0 0-1.5.7-1 1.2s4.5-1.7 5-3a6 6 0 0 1 3-3 38 38 0 0 0 11.2-9.6c2.3-3.9 2.8-4 7.2-7.5s3.6-2.8 4.2-3.6c.5-.9.7-2.3 2.7-3.4s9.8-5.4 12.3-7.2c2.4-1.8 7.4-5 9.6-7.8s8-6.2 9.4-5.6-.2 2.8-3.5 5.4c-3.5 2.5-12 9.3-13.3 10.4a45 45 0 0 1-11.2 6.6c-2.7.3-2.4 1.3-4 3s-5.3 5.4-6.5 6.4-4.3 3-4.4 4.5.5 1.6-1.9 3.8a50 50 0 0 1-11.9 8.1s4.5 1.6 1.8 4.6c-2.6 3-2.5 2.6-2.6 2.8 0 0 6.7-1 2 4.3 0 0-1 1.5 1.1 0 2.3-1.9 1.4-4.1 1-4.5 0 0 3.7-2.3 7.9-2.3q6 .1.2-1.4s2.7-3.2 5-1.6c2.2 1.5 1.4 2.5-.9 3.8-2.4 1.2-5.8 1.7-8.5 3.2 0 0 5 1 7.6-1.1 2.6-2 2.8-1 3-.6.5.4.8 1-.4 2.6s-1.3 1.8-1.2 2.2c0 .4-.1 1.5-2.5 2-2.3.3-3.5 1.3-2.6 2.4.7 1.2.7 4-1.2 3.7-2-.3-1.6-1.9-2.3-2.5-.8-.6-1.9-1.5-5.4.2-3.6 1.9-3.8-.3-3.7-1.5 0 0-2.3 2-4.2.2s-.2-2.6 1-3.5c1-1 5.5-3 2.8-2.5-2.7.3-6.7.4-7.6-1.6-1-2.1 2-1.9 2.4-1.7.5.2 2.3 1.7 2.5-.3 0-2 3-2.3 2-2.6s-2.5.9-2.9 1.3c0 0-2-2.9-5.4-2-3.4 1 1 .7 2 .8.8.2.3 1.8-2.7 4.6s-1.7 1.8.5 1.8 7.9 0 4.6 2.6c-3.2 2.7-4.5 4-6 3.6-1.8-.5 0-1.6.8-2.1s1.2-1.2-.4-.6-2.1.7-3.4-1.5-.8-1.6-.2-3.1 1.8-3 .4-2.5c-1.6.6-1.4.7-1.3-1s-1.7-2.1-1.7-2.1.8 1.7.1 2.8q-1 1.4.4 1.6c1 .4 2 1.3.6 2.3s-1.2.7-.4 1.3c1 .7 2.3 1.3.9 2.7s-.3 1 .4 1c.8 0 2.3.6 2.3 2 0 1.2 0 1.5 2.3.3 2.3-1.3 6.7-1.1 6.7.6s-.6 2.3 1.8.8 3.5 1.4 5.2 0c1.6-1.5 2.6-2.8 4.6-.4s1.3 3-1 4.8 1.1.4 2.9-.5 6.7-1.5 9.5-.2c2.9 1.2 3.7 1 5.8 0 2.1-.8 3.2-1 6.3 1.1 3.3 2.2 5.7 2.6 7.4 2.5 0 0-3.5 1.4-7.5 1.6q-5.8.6-6.7 1.6s2.3 1.5 2.8 3.2c0 0 2.6-.3 3.8.2 0 0-.6 1.9 1 2.9s2.7 1.4 1.5 2.7 1.9.8.1 2.7-2.1 3-2.2 4.5c0 1.6.4 1.8-1.1 2-1.6.1.2 1.9-.5 4-.7 2-5 1.7-4.8 7.2 0 0 1.2-2.7 3.8-5 2.5-2.4 2.6-2.6 2.5-4 0-1.4-.1-1.1 1.2-2.2 1.4-1-.6-2 .8-3.6 1.3-1.5.2-1.2 1.8-2.7 1.5-1.6-1.5-1.7.2-3.3 1.5-1.6-4-3.5-2.3-4.5 1.5-1 4.3-2.4-5-2.3 0 0 2.3-3.6 10-2.9 0 0-2 1.6-2.2 3l1.6.5s-.4 1.1-1.9 2.3c0 0 4.2 2.3 4.9 3.8 0 0-2.6.8-3.3 1.8 0 0 1.2 1.3 1.6 3 0 0-2.9-.4-3.2 1.7s-1.3.7-1.3 2 .1 1.7-.9 2c-1 0-.1 1.1 0 1.8.2.7.6 2.3.4 2.8 0 0-1.5 0-2.1.2 0 0 .4 3-1.3 3.5s1 1-.9 1.3-1.5.5-3.7 4.5c0 0 1.9-1 3.8-2.4 2-1.3-.2-1 3-4 3.3-3.3 2.7-3.5 2.4-5.1-.2-1.6-.3-3 .9-4.5s1.5-3.2 5.7-3c0 0-1.2-2.8-2.7-3.5 0 0 2-1.3 4-1.5 0 0-1.8-2.3-5.6-4.4 0 0 3-2.6 3.9-3.9 0 0-1.5.3-2.7 0 0 0 .6-1.3 3.4-3.1 0 0 1.5 1.4 1.4 2.9 0 0 4.8-2.7 7.5-2.4 0 0 1.4 3.4-5.3 10 0 0 4.2.3 6 0 0 0-1 3.2-6 5-5 2 1 4.2-4.1 3.8s-3.5 1.3-3.4 3.9.3 5.3.2 6c0 0-4-1.3-4 2.6.1 4-2 4.8-2.5 5.1 0 0-1.2-1-3-1.7 0 0-2.5 4.9-6.5 7.7"/>
+ <path fill="#7b3c20" d="M547.4 220.5s1.4-.2 3.8 1.2c2.3 1.5 4.6-1.5 2-2.3s0-1.8 2.4.2c2.4 1.9 3.3.9 4.2.3.8-.7 1.9-1.1.3-2.2s1-.6 2.3.3c1.2.7.7 1.5.6 1.7-.2.2-.3 2.9 2 .5 2.4-2.5 3.7-4.8 3.6-6 0 0 1.3.8 1.5 2.3s2-.8 2.6-1.6 1.6-3 1.5-4.4c0 0 1.6 2.5 4 0s1.4-1 4.2-1.7a18 18 0 0 0 8.5-5.2c2-2.5 2.1-.8 4.6-1.4s7.7-4.2 8.2-6.1.3-3.1-.4-2.4c-.7.6-.4 0-1.5-.6s-2.7.9-2.7.9 1.6 1.2.3 1.7c-1.2.6-2.3 2.3-4.6 1.6s-4.8 2.2-4.8 2.2 2 1.6-.7 2.7c-2.7 1-2.3 1.4-3.9.2 0 0-2.9 3.7-4.6 4.5 0 0-.7 0-1.2-.8 0 0-2 2.1-2.8 2.5 0 0-1.3-1-2.3-1.5 0 0-2.3 2.9-4.2 3.7 0 0-.6-1-1.8-1.7 0 0-.6 3.6-4.6 5.8 0 0 .2-1-1.8-2.3 0 0-5 4.3-6.9 4.7s-.2-.9 0-1.5c.4-.5 1.6-2.3-.8-3s-2 .5-2.5.7-.6-.4-2.2-.2-1.3.9-2 1.2c-.8.2-3.6-.5-3.4 1.4.1 1.8 1.5 3.1-1 4.2-2.5 1 1 .8 4.1.4"/>
+ <path fill="#5a3719" d="M557.5 215.3s.6-2.5-1.5-3.5c0 0 13.2-2.1 3.2-7.2 0 0 11.9-2.3 9-6.1-2.7-3.8-5.4-3-5.8-3s2.5-2.1 3.3-1.8 10.2 3.9 7.8.7c-2.4-3-2.2-2.9-2.6-3.8 0 0 3.1 0 7.9 4.6 0 0 1-1 .9-2.9 0 0 3.3 1 4.4 2 0 0 .6-1.2.3-1.8 0 0 3 1.5 4 3.2 0 0 1.3-1.2 1.5-2.6 0 0 3 1.3 3.7 2.2 0 0 1-1.3.6-3 0 0 4.9 1.3 5.5-1.6 0 0 4.9 1 1.7 2.9-4 2.5-.4-.6-4.6 2.3-3.2 2.3-5 4.9-6.6 4.4-1.1-.5-2.5 2.9-4 1.3-1.5-1.7-1.5-1-2.7.7a25 25 0 0 1-2.8 3.5s-.8-.5-1.6-1.2c0 0-.8 1.6-2 2.8 0 0-1-1.3-2.6-2 0 0-2.3 2.7-3.8 3.7 0 0-1.4-1.4-2.9-1.9 0 0-.2 3.8-3.1 5.7 0 0-.6-1.2-2.6-2 0 0-1.4 2.3-4.6 4.3z"/>
+ <path fill="#5a3719" d="M550.6 209.5s-1.6 1.2-.6 2.5 1.1-.2 2.4-.3c1.3-.2 17.5-3 2.8-7.3 0 0 .7-.6 3.1-.8 2.6-.3 11.8-2.7 7.5-6s-7.9 1.1-4.3-2.8c3-3.1.6-4.6.6-4.6s-8.5 5.6-10.4 6.7c-1.8 1-4.6 3-1.4 4 3.3 1 5.4-3.4 5.7-2.4s-6.4 4.8-5.4 6.4c.9 1.8.7 3.3 2.4 2.9s6 .8 2.5.7c-3.7-.1-5 1-5 1z"/>
+ <path d="M556.4 201.3s-1.5 1.1.5.6 5.9-1.4 5.2-2.4-3.4.2-5.7 1.8"/>
+ <path fill="#7b3c20" d="M582.4 184.5s7.5-.2 10.5 1.9q4.3 3.1 5.5 3.8s-.1 2.8-5 .7c0 0 .4 1.4-.2 2.8 0 0-1.7-1.2-3.8-1.7 0 0-.4 1-1 1.7 0 0-2.1-2.2-4.6-2.9 0 0-.4 1.1-.8 1.6 0 0-2.6-1.6-4.6-1.6 0 0 .4 1.7 0 2.3 0 0-5.4-4.3-10.3-3.8 0 0 2.3 3.5 3.8 5.1 0 0-9.8-.7-8-6 1.5-5.3-.2-4 6.2-4z"/>
+ <path fill="#5a3719" d="M536.3 199.1s-1.1 1 0 1.7c1.1.8 5-2 5.5-2.4s2-.4 0 1.1-3.8 3-5 4.6c0 0 6.4-1.8 10.6-5.4 4.3-3.7-.1-1.3 7-4.8 7.3-3.5 11.1-9.1 7.2-8.5s-7.3 5-10.4 6.7c-3 1.7-4.7 2-4.2 1s2.7-.6 6.9-4c4.1-3.3 3.2-3 3.2-4.2s-1.5-4 4.7-7.4c6.2-3.3 25.6-14.5 27.3-18.5 0 0-5.7.6-13.2 6.1a70 70 0 0 1-13.4 8.8c-2 .8-1.8.2-3.1 1.9a172 172 0 0 1-10.1 9.8c-1.3 1-1.8 1.6-1.9 3.8 0 1-8.4 7.3-11 9.7z"/>
+ <path fill="#5a3719" d="M562 184.3s-1.5.6-3 0c-1.3-.7-.8-3.6 2.5-5.5a50 50 0 0 1 12.6-4.8s-.5 3.8-10.1 7.1c0 0 .6 2-2 3.2"/>
+ <path fill="#aa5323" d="M565.4 181.8s.3 1 0 1.8c0 0 17.9 1.7 27.1-9.2 0 0-12.7 1.2-17.7 4.3 0 0 3.2-4 12.7-7.3s13.4-7.4 14.2-9.7c0 0-12 4.3-17.7 4.3 0 0-1.2 0-2.3.5-1.1.7-8.8 6.2-10.8 7.2 0 0 4.3-.4 5.9-1.8 0 0-3 8-11.4 10z"/>
+ <path fill="#5a3719" d="M531 192s-2.3 1.7-1.3 2.4c1 .9 2.6 1 6-1.9 3.6-3 12.1-10.2 6.8-10.5 0 0-7-.4-6.7 3.8s-4.4 6-4.8 6.2m-15.9-2.5s4.6 2.7 2.8 4.9c0 0 14-11.8 10-14.4-3.8-2.6-6.9 2.3-6 2.7 1 .6 3-.4 2.3.6a77 77 0 0 1-9 6.2zm-3.6-3.8s3 1 3.2 2.3c.1 1.2 9.2-6.4 6.8-9.7-1.1-1.5-6-2-6.4.8-.2 3 4.6-.3 3 1.8-2.2 2.7-5.9 4.4-6.6 4.8m32.6-6.4s-1.9 1.4-.1 2.3c1.8.7 2.8-.6 3.7-1.3s5.3-4 6.2-6 2.5-2.7 4.1-3.7 12.6-6.6 19.5-12.7c6.8-6.1 4-4.5 11-8.4s11.7-7.5 13.2-11.8c0 0-3.3 1-6.2 3l-10.7 6.5c-1.3.5-3 .6-4 1.6s-1 2.3-4.3 5c-3.5 2.9-21 15.3-23.2 17z"/>
+ <path fill="#aa5323" d="M530 183.4s2-1 5.6-.8 17.8-13.6 22-16.3a342 342 0 0 0 18.7-13.8c1.8-1.8 2-3.6 3.6-4.6 1.5-1 3-.9 6.4-2.9s20.3-12 19.3-17.8c0 0-25 15-30.7 19.8a375 375 0 0 1-24.7 17.7c-2.8 1.9-5 5-9.9 8.8-4.7 3.9-9.5 7.2-10.3 10z"/>
+ <path fill="#aa5323" d="M524.8 178s4.6-.4 5.2 1.9c0 0 10-6.8 12.2-9.6s-.8-1.2 4.9-4.9a594 594 0 0 0 27-19.1c2.7-2.3 7.8-5.5 11.9-8.2 4-2.8 19.9-10.6 18.1-17l-14.2 9.5c-2.7 1.8-3.9.8-6.5 2.9s-8.5 6.3-9.5 7.6a161 161 0 0 1-14.4 11c-4.4 3-14.1 8.6-18.9 12.8l-15.8 13.2z"/>
+ <path fill="#aa5323" d="M510.4 176.8s2.3 0 3.1.9c0 0 4.3-3.9 8.9 0 0 0 16.8-11.5 18.5-14.4 1.7-2.8 4.5-2.9 11-7.6 6.6-4.8 10.7-6.9 15-10.2 4.4-3.4 8.1-7.3 11.2-9.3s11-7.2 9.8-11.7c0 0-6.5 3.6-10.6 8.2-4.2 4.6-3.8.7-8.1 4.5a83 83 0 0 1-16.3 11.7c-5.5 2.7-2.2 2.4-6.2 5-3.9 2.5-3.6 2-5 2.5a10 10 0 0 0-5.1 3c-1.6 1.7-5.4 4-9.6 6.5a107 107 0 0 0-16.6 10.9"/>
+ <path fill="#aa5323" d="M515.5 168s-1-1.9.7-3.3 4.6-4.8 5-7 .1-1.9 4.8-3.8a188 188 0 0 0 38.2-21.6c1.8-1.5 6.4-4.6 8.3-6.2 0 0 .8 2.5-1.2 4.2a222 222 0 0 1-21.5 14.9 77 77 0 0 0-9.6 5.5c-1.9 1.6-1.6 2-10.2 6.3-8.5 4.1-9 4.6-8.7 4.9s4.2-1.3 6-2.4 8.8-4.3 11-6a69 69 0 0 1 7-5 296 296 0 0 0 18-11.2c3.5-2.7 4.5-3.5 5.3-3s2 .4.4 2-6.7 6-8.7 7.3-8.1 5-9.8 5.8c-1.7 1-2.4 2.5-3.4 3.2s-3.7 2.7-7 3.5-4 3.3-6.3 4.8c-2.3 1.4-18 10-18.5 10.3 0 0 .9-1 .2-3.2"/>
+ <path fill="#aa5323" d="M570.3 132.4s-.9.8-.4 1.2c.6.6 2.8 2.2 5.6-.6a107 107 0 0 1 12.5-10c2.3-1.5 3.6-2.8 3.5-4.7 0 0-11.4 6-21.2 14.1m15.6-1s1.7-2.9 6-5.7c4.3-2.7 10.8-6.7 11.5-7.6 0 0 1.6 1.7-1.7 3.8l-10.8 7c-.7.7-2 1.6-5 2.5"/>
+ <path fill="#7b3c20" d="M499 163s-4.8 2.6-3.1 4.2c1.7 1.5 4.2 1 5.4.6l3.2-1c.4 0 4.5-1.3 5.6-3.2s3.8-4.2 6-5.8 3-3.2 2.7-4.3zm-28.4 22s3.4-2 8-.7c0 0-.2-1.1-1-1.7 0 0 5.7-1.5 6.9-4s1.5-2 2.5-2.6c1.2-.8 8.7-6.8 7.8-8.1s-1-3.1-1.7-3.7c0 0-1.5 2.1-9 5.7-7.2 3.6-15.4 6.2-21.4 14.2s-5.3 12.6 2 14.7c0 0 5-3.2 17.6-2.1 12.4 1.1 16.6 5.8 17.4 6.6.8.9 3.3 4 .9 9.1 0 0 2.5 1.1 2.6-1.3.3-2.3.4-1.8 1-1.5s1.3.5 1-1.4a18 18 0 0 0-2.3-7.2c-1.1-1.5.2-.8.9-.6s3.3 2.5 1.8-1.5c-1.5-3.8-2-2-2-1.8 0 .3-.4 1.2-3.8-1.4a27 27 0 0 0-8.8-4.4c-2.3-.6-.7-.6.7-1 1.4-.6 3.1-.8 3.8-2.4 0 0-1.4.3-3.8-.6a13 13 0 0 0-11.5 2s1.2-4.5-2.5-4.3c-3.6.3-6.2.2-10 3.2 0 0-.3-4.6 3.4-7s3.2-1 5.2-1.6 2.3-2.7 1.4-3.4c0 0 4.8.9 12.8-5.8 0 0-4.3 5.7-9.5 6.8 0 0-.9 3-5.7 3.7s-4.6 3.4-4.6 4.1z"/>
+ <path fill="#5a3719" d="M457 212.7s2.2-14.1 15.5-15.1c11.4-1 15.1.5 17.4 1.3s8 2.4 5.8 4.2-3.5 1.5-3.5 1.5 2.5-2.9.2-3.3c-2.3-.5-2.4.9-2.7 2-.4 1.3-.5 2.6-1.6 3.6 0 0-1.2-1.4-2.9-.2s-.2 1.2.5 1 1.5-.5 1.3.5-1 2.8-3.8 4.2-2.6 1.3-5.8 1.9c-3.3.5-6.3 1.8-10.5 5.3-4.2 3.6-8.7 2.4-9.6-1.5-.8-3.4-.4-5.4-.4-5.4z"/>
+ <path d="M472 212.2s1.2-2.7-1-4c0 0-6.9 1.2-9-.9 0 0 7.5-.4 12.2-2.3 4.6-1.7 3.3-3 1.7-3.4s-4.6.5-4.9 2c0 0-1-1.6.2-2.6a5 5 0 0 1 4.7-.8c1.7.4 3.1 1.2 8.6-1.6 0 0 3.1.7 3.3 2.8 0 2.2-.3 3-.6 3.3q-.3.8-1.3 1c-.6-.2-1.5-.3-2.3 1.2a9 9 0 0 1-2.6 3.7s1.5-4.6-2.5-5.7c0 0-3.3 2-5.8 2.1 0 0 3.2 3-.8 5.2z"/>
+ <path fill="#5a3719" d="M479.3 203.8s-1.6-1.6.4-1.9c2-.1 4.6 1.4 4.2 2.7-.6 1.2-3 1.1-4.6-.8"/>
+ <path fill="#fff" d="M592.6 181.6s-3.7 1-.2 3.3c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4s-.5 3.5-1.9 5.2.8 2.4 2.6 1.5l4.5-2.2c1.1-.7 3-.6 1.4.3-1.9 1-3.7 1.5-1.4 1.5 2.3.1 16.2.4 19.1-.6s6.8-1.2 7-5c0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2q-2.4 1.8-3 1.3c-.3-.3-.5-.6.7-1.1s1.8 0 2.9-1.5c1-1.6 1-1.4.4-2s-1.8-1-1.2-1.8 1.2-3-1.4-1.7-7.6 4.8-10 5.3c-2.2.5-4 1.2-7.1 1.8s-5 1.4-8.5 3.3c-3.3 1.8-3-1.1-2.5-1.5 0 0 1.3 2.3 4.7-.7 3.4-2.9 2.3-.1 10.6-2.9s6.3-3.1 9.5-4.8 6.4-1.8 4-4c-2.2-2.4-2.4-2.5-5.3 0a35 35 0 0 1-16 6.4s18.8-8 16.9-9.2a21 21 0 0 0-5.3-2.5c-1.3-.3-1.7-.6-4.7.8s-3.5 1.6-4.3 1.7q-1.6-.1-7 2.4c-3.6 1.9-5.5 2.6-8 4 0 0 1.7-3.3 9.1-5.5s11.1-4.2 10.4-4.6-2.7-.8-4-.5c-1.5.3-1-.1-5.6 1.7s-2.6 1.4-6.2 2.2c-3.7.7-5.1 1.5-6.9 2.3 0 0 .8-1 3.1-1.9 1.3-.4-1.3-.9 2.2-1h1a32 32 0 0 0 8.6-3.3c-.7-.1-5.1-.6-9.5 1.6-4.5 2-2.5 1.3-4 1.5-1.6.4-5 2.4-6 3.4-1.1.9-2.7 1.5-2.7 1.5z"/>
+ <path fill="#5a3719" d="M482.7 201.8s1.8.5 2.2 1.8c.5 1.2 1.6-.6 1.6-1.1-.1-.6-1.2-3-3-1.9-2 1.1-1 1.1-.8 1.2"/>
+ <path fill="#7b3c20" d="M477.9 226s3.7-1.8 6.9-1.5c0 0-1.3-4.4.9-3.7 2.1.8 1.5.4 2 .4 0 0 .1-2.9-.5-4 0 0 2.3.5 4.6.5 0 0-2.2-4.1.2-7a7 7 0 0 0 4.2 3.4v-2.3s1.7-.3 3 .4c1.4.8 2.5-7.6-1.5-9.3 0 0-1 1.5-4.7 2.3s-3.7 1.5-5.2 4.3-3 2.9-6.2 5c-3 2-5 6-5 6.4 0 0 1.5 2 1.3 5.1"/>
+ <path fill="#999" d="M603.1 177.8c1.3-.2-1.4-.9 2-1h1a32 32 0 0 0 8.7-3.3c-.7-.1-5.1-.6-9.5 1.5s-2.5 1.4-4 1.7c-1.6.3-5 2.3-6 3.3-1.1.9-2.7 1.5-2.7 1.5s-3.7 1-.2 3.4c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4a7 7 0 0 1-1.9 5.2c-1.3 1.7.8 2.4 2.6 1.5l4.5-2.2c1.1-.7 3-.6 1.3.3-1.8 1-3.6 1.5-1.3 1.5 2.3.1 16.2.4 19.1-.6s6.8-1.2 7-5c0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2-1.5 1.1-2.8 1.7-3 1.3s-.5-.6.7-1.1 1.8 0 2.9-1.5c1-1.6 1-1.4.4-2l-1-.9s-.9-.7-1.9-.1a28 28 0 0 1-7 2.7q-2.2.2-6.5 2.4c-4.3 2.2-8.2 4.6-9 1.7l-2.8 1c-3.4 1.8-3-.7-2.5-1.4 0 0-1.8 2-1.7.2 0-1.8 1.2-1.5 3.3-2.1s5-2 3.8-3-2.7 1-4.2 1.8c-1.4.7-4.3 1.2-4.8-.9s-.4-3.6-4.3-3.8c-4-.2-3.9-2.7-2.8-3.8s2-2.8 5.7-3.5z"/>
+ <path d="M615.6 196.9s6.1-2.8 11.7-4.1c5.7-1.3 1.2.2.3.4-1 .3-9.7 3.2-11.8 4.2-2 1-1.7.2-.2-.4zm1.4 1.3s6.9-2.3 8.2-1.4c1.3 1 .2.6-1.3.8-1.6.1-5.7.8-6.8.8s-.1-.2-.1-.2m11-2.5s1.4-.2 1.5.4c.1.4-.6.5-1.3.4s-1.3-.5-.1-.8z"/>
+ <path fill="#fff" d="M446 255.9s-.3-6.2 2.8-9.2 17.8-18.5 20.1-22.8c0 0 2 1.3 2 3.8 0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-6.6 1-12 5 0 0-.4-.2-.4-1.7 0 0-.3 1.4-1.8 2.7-1.5 1.2-5.1 4-6.5 5.3s-3.8 4-6.6 4c0 0 .6-2.1-1.4-2.8a6 6 0 0 0-6 1.5s-7 .1-9.4.5c0 0 1.6-2.6 3-2.6 1.6 0 7.6 1 8.1-3.2.6-4-3.8-3-2.2-5.4 1.7-2.4 1.3-2.2 1.4-2.6 0 0-1.4.8-2.2 3a11 11 0 0 1-4.2 6 15 15 0 0 0-4.8 5s-1.3 0-2.4.4"/>
+ <path fill="#fff" d="M452.8 252.2s.3-.8 2.3-1.2c2.2-.3 2.3-1.3 2-1.8s-1.5-.4.5-2.8c0 0 .8.3 1.2.8.6.6 2.9 5.5-6 5"/>
+ <path fill="#999" d="M447.9 247.9c0 4 5.3 2.5 5.3 2.5a21 21 0 0 0-3.8 3.6c.4-2-3-2.5-3-2.5a12 12 0 0 1 1.5-3.6m19.3-21.5 1.7-2.5s2 1.3 2 3.8c0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-2 .3-4.6 1.2 0 0-1.9-1.8-7.6-1.5 0 0 4.4-2.6 8-3.4 0 0-1.6-2-4-.1 0 0-4.9-3.3-.8-6.2 0 0-2.8-.5-4.7.8 0 0 0-2.3 2.1-3.3 0 0-5.4-1-6.7 3 0 0-1-1.5-.5-3.4 0 0-3.3 1.9-4.8 4 0 0-.5-4-2.6-5.5M456.8 252q-1.4.3-4 .2-.2-.1 1.3-1s.4.8 2.7.8"/>
+ <path d="M466.6 236.7s2.5 2 3.3 3c0 0 2.3-1.4 3-2.7 0 0 1.9 1.1 2.4 2.8 0 0 1.3-.8 1.5-2 0 0 3 .6 4.2 1.6 0 0 .4-3 0-4.8 0 0 2.1.2 3.4.7 0 0-1.2-2 5-4.5 0 0-4.7 1.1-6.5 3 0 0-2 .2-2.9-.4v4.5s-1.2-.6-3.5-1.1c0 0-.6 1-1 1.2 0 0-1.5-1.2-2.1-2.7 0 0-2.3 2.1-3 3 0 0-2.3-1.6-3.8-1.6"/>
+ <path fill="#ffc221" d="M452.5 267.3s1 .4 3.3-1.4 8.7-5.9 9.2-9.2c.7-3.3-2-3.4-4-2.5-2.2 1-1.3 2.7-1.2 3.4 0 .6.2 2.9-3.3 6z"/>
+ <path fill="#ffc221" d="M451.9 268.3s-5.2-2.2-.6-4.5 6.7-2.9 7.2-4.9c.6-1.9.2-1.5-1.5-.7-1.7.7-8.2 3.8-9.2 1 0 0 2.7 1 6-.6 3.4-1.7 6.2-2.1 4-2.8a37 37 0 0 0-11 .5c-1.4.4-1 .3-1.3 1.6-.2 1.3-1.6 4-2.2 4.7-.5.8-1.8 4 .6 5.5a9 9 0 0 0 8 .2"/>
+ <path d="M449.9 257s-1.3.2-1 .7q.3.6 1 .4c.3 0 1-.2 1.1-.5 0-.3-.8-.7-1.1-.5z"/>
+ <path fill="#fff" d="M451.5 267.1s-2.4-1.1.4-2.6 5.6-3 6-3.6c0 0-1.3 1.9-6.4 6.2"/>
+</svg>
diff --git a/apps/web/public/flags/asean.svg b/apps/web/public/flags/asean.svg
new file mode 100644
index 00000000..189ae020
--- /dev/null
+++ b/apps/web/public/flags/asean.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="flag-icons-asean" viewBox="0 0 640 480">
+ <path fill="#0039a6" d="M0 0h640v480H0z"/>
+ <circle cx="320" cy="240" r="144" fill="#fff"/>
+ <circle cx="320" cy="240" r="137.3" fill="#ed2939"/>
+ <use xlink:href="#asean-a" transform="matrix(-1 0 0 1 640 0)"/>
+ <g id="asean-a" fill="#f9e300">
+ <path d="M357 240c24-14.4 35-43.2 35-72h-11v1c0 9.6-1.5 44.6-27.9 71a106 106 0 0 1 27.9 71v1h11c0-28.8-11.5-57.6-35-72"/>
+ <path d="M377.6 169v-1h-11.5v1.4c0 9.6-2 43.2-20.7 70.6 19.2 27.4 20.7 61 20.7 70.6v1.4h11.5v-1c0-9.6-2.4-44.6-27.8-71a106 106 0 0 0 27.8-71"/>
+ <path d="m341.1 240 1-1a130 130 0 0 0 20.1-69.6V168h-10.5v2c0 10-1.5 42.2-14.4 70a182 182 0 0 1 14.4 70v2h10.5v-1.4c0-9.6-1-39.9-20.1-69.6"/>
+ <path d="M333.4 240a178 178 0 0 0 14.4-72h-11v3.4c0 12-1 41.2-7.2 68.6a336 336 0 0 1 7.2 68.6v3.4h10.6v-2c0-10-1-43.1-13.5-69.5"/>
+ <path d="M325.8 240a331 331 0 0 0 6.7-68.6V168h-10.6v144h10.6v-3.4c0-11.5 0-41.2-6.7-68.1"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/at.svg b/apps/web/public/flags/at.svg
new file mode 100644
index 00000000..9d2775c0
--- /dev/null
+++ b/apps/web/public/flags/at.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-at" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#c8102e" d="M0 0h640v160H0zm0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/au.svg b/apps/web/public/flags/au.svg
new file mode 100644
index 00000000..96e80768
--- /dev/null
+++ b/apps/web/public/flags/au.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 640 480">
+ <path fill="#00008B" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="red" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="red" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+ <path fill="#fff" d="m527 396.7-20.5 2.6 2.2 20.5-14.8-14.4-14.7 14.5 2-20.5-20.5-2.4 17.3-11.2-10.9-17.5 19.6 6.5 6.9-19.5 7.1 19.4 19.5-6.7-10.7 17.6zm-3.7-117.2 2.7-13-9.8-9 13.2-1.5 5.5-12.1 5.5 12.1 13.2 1.5-9.8 9 2.7 13-11.6-6.6zm-104.1-60-20.3 2.2 1.8 20.3-14.4-14.5-14.8 14.1 2.4-20.3-20.2-2.7 17.3-10.8-10.5-17.5 19.3 6.8L387 178l6.7 19.3 19.4-6.3-10.9 17.3 17.1 11.2ZM623 186.7l-20.9 2.7 2.3 20.9-15.1-14.7-15 14.8 2.1-21-20.9-2.4 17.7-11.5-11.1-17.9 20 6.7 7-19.8 7.2 19.8 19.9-6.9-11 18zm-96.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8-15.1 14.4 2.4-20.7-20.7-2.8 17.7-11L467 73.5l19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6zM234 385.7l-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8 38.9-24.8-24-39.4 43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Z"/>
+</svg>
diff --git a/apps/web/public/flags/aw.svg b/apps/web/public/flags/aw.svg
new file mode 100644
index 00000000..413b7c45
--- /dev/null
+++ b/apps/web/public/flags/aw.svg
@@ -0,0 +1,186 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aw" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="aw-a">
+ <path fill-opacity=".7" d="M0 0h288v216H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#aw-a)" transform="scale(2.2222)">
+ <path fill="#39c" d="M0 0v216h324V0z"/>
+ <path fill="#ff0" d="M0 144v12h324v-12zm0 24v12h324v-12z"/>
+ </g>
+ <path fill="#9cc" d="m142.7 28 2.9 3zm-3 6 3 3zm5.9 0 3 3z"/>
+ <path fill="#ccf" d="m139.7 37 3 2.9-3-3m5.9 0 3 3z"/>
+ <path fill="#6cc" d="m136.7 42.8 3 3z"/>
+ <path fill="#c66" d="m142.7 42.8 2.9 3z"/>
+ <path fill="#6cc" d="m148.6 42.8 2.9 3z"/>
+ <path fill="#ccf" d="m136.7 45.8 3 3zm11.9 0 2.9 3z"/>
+ <path fill="#fcc" d="m139.7 48.7 3 3zm5.9 0 3 3z"/>
+ <path fill="#6cc" d="m133.8 51.7 3 3z"/>
+ <path fill="#c00" stroke="#fff" stroke-width="3.7" d="m142.2 34-20.7 78.5L42.8 134l78.4 20.5 21 78.4 20.9-78.4 78.4-21-78.4-20.9-21-78.4z"/>
+ <path fill="#6cc" d="m151.5 51.7 3 3z"/>
+ <path fill="#9cf" d="m133.8 54.6 3 3zm17.7 0 3 3z"/>
+ <path fill="#fcc" d="m136.7 57.6 3 3zm11.9 0 2.9 3z"/>
+ <path fill="#69c" d="m130.8 60.5 3 3z"/>
+ <path fill="#c33" d="m137.7 62.5 1 2zm11.8 0 1 2z"/>
+ <path fill="#69c" d="m154.5 60.5 3 3z"/>
+ <path fill="#9cf" d="m130.8 63.5 3 3zm23.7 0 3 3z"/>
+ <path fill="#fcc" d="m133.8 66.4 3 3zm17.7 0 3 3z"/>
+ <path fill="#69c" d="m127.9 69.4 3 3zm29.5 0 3 3z"/>
+ <path fill="#9cc" d="m127.9 72.3 3 3zm29.5 0 3 3z"/>
+ <path fill="#cff" d="m127.9 75.3 3 3zm29.5 0 3 3z"/>
+ <path fill="#69c" d="m125 78.3 2.9 2.9z"/>
+ <path fill="#fcc" d="m130.8 78.3 3 2.9zm23.7 0 3 3z"/>
+ <path fill="#69c" d="m160.4 78.3 3 2.9z"/>
+ <path fill="#9cc" d="m125 81.2 2.9 3z"/>
+ <path fill="#c33" d="m131.8 83.2 1 2zm23.6 0 1 2z"/>
+ <path fill="#9cc" d="m160.4 81.2 3 3z"/>
+ <path fill="#cff" d="m125 84.2 2.9 3zm35.5 0 3 3z"/>
+ <path fill="#fcc" d="m127.9 87.1 3 3zm29.5 0 3 3z"/>
+ <path fill="#9cc" d="m122 90 3 3z"/>
+ <path fill="#c33" d="m128.9 92 1 2zm29.5 0 1 2z"/>
+ <path fill="#9cc" d="m163.3 90 3 3z"/>
+ <path fill="#ccf" d="m122 93 3 3zm41.3 0 3 3z"/>
+ <path fill="#fcc" d="m125 96 2.9 3zm35.5 0 3 3z"/>
+ <path fill="#9cc" d="m119 99 3 2.9z"/>
+ <path fill="#c33" d="m126 100.9.9 2zm35.4 0 1 2z"/>
+ <path fill="#9cc" d="m166.3 99 3 2.9z"/>
+ <path fill="#ccf" d="m119 101.9 3 3zm47.3 0 3 3z"/>
+ <path fill="#fcc" d="m122 104.8 3 3zm41.3 0 3 3z"/>
+ <path fill="#9cc" d="m116 107.8 3 3z"/>
+ <path fill="#c33" d="m122 107.8 3 3zm41.3 0 3 3z"/>
+ <path fill="#9cc" d="m169.2 107.8 3 3zm-62 3 3 2.9z"/>
+ <path fill="#ccf" d="m110.2 110.7 3 3zm65 0 2.9 3z"/>
+ <path fill="#9cc" d="m178 110.7 3 3zm-79.6 3 3 3z"/>
+ <path fill="#ccf" d="m101.3 113.7 3 3z"/>
+ <path fill="#fcc" d="m113.1 113.7 3 3z"/>
+ <path fill="#c33" d="m116 113.7 3 3zm53.2 0 3 3z"/>
+ <path fill="#fcc" d="m172.2 113.7 3 3z"/>
+ <path fill="#ccf" d="m184 113.7 3 3z"/>
+ <path fill="#9cc" d="m187 113.7 2.9 3z"/>
+ <path fill="#69c" d="m86.6 116.6 3 3z"/>
+ <path fill="#9cc" d="m89.5 116.6 3 3z"/>
+ <path fill="#cff" d="m92.5 116.6 3 3z"/>
+ <path fill="#fcc" d="m104.3 116.6 3 3z"/>
+ <path fill="#c33" d="m109.2 117.6 2 1zm67.9 0 2 1z"/>
+ <path fill="#fcc" d="m181 116.6 3 3z"/>
+ <path fill="#cff" d="m192.8 116.6 3 3z"/>
+ <path fill="#9cc" d="m195.8 116.6 3 3z"/>
+ <path fill="#69c" d="m198.7 116.6 3 3zm-121 3 3 3z"/>
+ <path fill="#9cc" d="m80.7 119.6 3 3z"/>
+ <path fill="#cff" d="m83.6 119.6 3 3z"/>
+ <path fill="#fcc" d="m95.4 119.6 3 3z"/>
+ <path fill="#c33" d="m100.3 120.6 2 1zm85.6 0 2 1z"/>
+ <path fill="#fcc" d="m189.9 119.6 3 3z"/>
+ <path fill="#cff" d="m201.7 119.6 3 3z"/>
+ <path fill="#9cc" d="m204.6 119.6 3 3z"/>
+ <path fill="#69c" d="m207.6 119.6 3 3zm-138.8 3 3 2.9z"/>
+ <path fill="#9cf" d="m71.8 122.5 3 3z"/>
+ <path fill="#fcc" d="m86.6 122.5 3 3z"/>
+ <path fill="#c33" d="m91.5 123.5 2 1zm103.3 0 2 1z"/>
+ <path fill="#fcc" d="m198.7 122.5 3 3z"/>
+ <path fill="#9cf" d="m213.5 122.5 3 3z"/>
+ <path fill="#69c" d="m216.4 122.5 3 3z"/>
+ <path fill="#6cc" d="m60 125.5 3 3z"/>
+ <path fill="#9cf" d="m63 125.5 2.9 3z"/>
+ <path fill="#fcc" d="m74.8 125.5 2.9 3zm135.8 0 2.9 3z"/>
+ <path fill="#9cf" d="m222.3 125.5 3 3z"/>
+ <path fill="#6cc" d="m225.3 125.5 3 3zm-174.2 3 3 2.9z"/>
+ <path fill="#ccf" d="m54 128.4 3 3z"/>
+ <path fill="#fcc" d="m65.9 128.4 3 3z"/>
+ <path fill="#c33" d="m70.8 129.4 2 1zm144.7 0 2 1z"/>
+ <path fill="#fcc" d="m219.4 128.4 3 3z"/>
+ <path fill="#ccf" d="m231.2 128.4 3 3z"/>
+ <path fill="#6cc" d="m234.2 128.4 3 3z"/>
+ <path fill="#9cc" d="m42.3 131.4 3 3z"/>
+ <path fill="#ccf" d="m45.2 131.4 3 3z"/>
+ <path fill="#fcc" d="m57 131.4 3 3zm171.3 0 3 3z"/>
+ <path fill="#ccf" d="m240 131.4 3 3z"/>
+ <path fill="#9cc" d="m243 131.4 3 3zm-206.6 3 3 2.9z"/>
+ <path fill="#c66" d="m51.1 134.3 3 3zm183 0 3 3z"/>
+ <path fill="#9cc" d="m249 134.3 2.9 3zm-206.6 3 3 3z"/>
+ <path fill="#ccf" d="m45.2 137.3 3 3z"/>
+ <path fill="#fcc" d="m57 137.3 3 3zm171.3 0 3 3z"/>
+ <path fill="#ccf" d="m240 137.3 3 3z"/>
+ <path fill="#9cc" d="m243 137.3 3 3z"/>
+ <path fill="#6cc" d="m51.1 140.3 3 2.9z"/>
+ <path fill="#ccf" d="m54 140.3 3 2.9z"/>
+ <path fill="#fcc" d="m65.9 140.3 3 2.9z"/>
+ <path fill="#c33" d="m70.8 141.2 2 1zm144.7 0 2 1z"/>
+ <path fill="#fcc" d="m219.4 140.3 3 2.9z"/>
+ <path fill="#ccf" d="m231.2 140.3 3 2.9z"/>
+ <path fill="#6cc" d="m234.2 140.3 3 2.9zm-174.2 3 3 3z"/>
+ <path fill="#9cf" d="m63 143.2 2.9 3z"/>
+ <path fill="#fcc" d="m74.8 143.2 2.9 3zm135.8 0 2.9 3z"/>
+ <path fill="#9cf" d="m222.3 143.2 3 3z"/>
+ <path fill="#6cc" d="m225.3 143.2 3 3z"/>
+ <path fill="#69c" d="m68.8 146.2 3 2.9z"/>
+ <path fill="#9cf" d="m71.8 146.2 3 2.9z"/>
+ <path fill="#fcc" d="m86.6 146.2 3 2.9z"/>
+ <path fill="#c33" d="m91.5 147.1 2 1zm103.3 0 2 1z"/>
+ <path fill="#fcc" d="m198.7 146.2 3 2.9z"/>
+ <path fill="#9cf" d="m213.5 146.2 3 2.9z"/>
+ <path fill="#69c" d="m216.4 146.2 3 2.9zm-138.7 3 3 3z"/>
+ <path fill="#9cc" d="m80.7 149.1 3 3z"/>
+ <path fill="#cff" d="m83.6 149.1 3 3z"/>
+ <path fill="#fcc" d="m95.4 149.1 3 3z"/>
+ <path fill="#c33" d="m100.3 150 2 1zm85.6 0 2 1z"/>
+ <path fill="#fcc" d="m189.9 149.1 3 3z"/>
+ <path fill="#cff" d="m201.7 149.1 3 3z"/>
+ <path fill="#9cc" d="m204.6 149.1 3 3z"/>
+ <path fill="#69c" d="m207.6 149.1 3 3zm-121 3 2.9 2.9z"/>
+ <path fill="#9cc" d="m89.5 152 3 3z"/>
+ <path fill="#cff" d="m92.5 152 3 3z"/>
+ <path fill="#fcc" d="m104.3 152 3 3z"/>
+ <path fill="#c33" d="m109.2 153 2 1zm67.9 0 2 1z"/>
+ <path fill="#fcc" d="m181 152 3 3z"/>
+ <path fill="#cff" d="m192.8 152 3 3z"/>
+ <path fill="#9cc" d="m195.8 152 3 3z"/>
+ <path fill="#69c" d="m198.7 152 3 3z"/>
+ <path fill="#9cc" d="m98.4 155 3 3z"/>
+ <path fill="#ccf" d="m101.3 155 3 3z"/>
+ <path fill="#fcc" d="m113.1 155 3 3z"/>
+ <path fill="#c33" d="m116 155 3 3zm53.2 0 3 3z"/>
+ <path fill="#fcc" d="m172.2 155 3 3z"/>
+ <path fill="#ccf" d="m184 155 3 3z"/>
+ <path fill="#9cc" d="m187 155 2.9 3zm-79.7 3 3 3z"/>
+ <path fill="#ccf" d="m110.2 158 3 3zm65 0 2.9 3z"/>
+ <path fill="#9cc" d="m178 158 3 3zm-62 3 3 2.9z"/>
+ <path fill="#c33" d="m122 161 3 2.9zm41.3 0 3 3z"/>
+ <path fill="#9cc" d="m169.2 161 3 2.9z"/>
+ <path fill="#fcc" d="m122 163.9 3 3zm41.3 0 3 3z"/>
+ <path fill="#ccf" d="m119 166.8 3 3z"/>
+ <path fill="#c33" d="m126 168.8.9 2zm35.4 0 1 2z"/>
+ <path fill="#ccf" d="m166.3 166.8 3 3z"/>
+ <path fill="#9cc" d="m119 169.8 3 3zm47.3 0 3 3z"/>
+ <path fill="#fcc" d="m125 172.7 2.9 3zm35.5 0 3 3z"/>
+ <path fill="#ccf" d="m122 175.7 3 3z"/>
+ <path fill="#c33" d="m128.9 177.6 1 2zm29.5 0 1 2z"/>
+ <path fill="#ccf" d="m163.3 175.7 3 3z"/>
+ <path fill="#9cc" d="m122 178.6 3 3zm41.3 0 3 3z"/>
+ <path fill="#fcc" d="m127.9 181.6 3 3zm29.5 0 3 3z"/>
+ <path fill="#cff" d="m125 184.5 2.9 3z"/>
+ <path fill="#c33" d="m131.8 186.5 1 2zm23.6 0 1 2z"/>
+ <path fill="#cff" d="m160.4 184.5 3 3z"/>
+ <path fill="#9cc" d="m125 187.5 2.9 3zm35.5 0 3 3z"/>
+ <path fill="#69c" d="m125 190.4 2.9 3z"/>
+ <path fill="#fcc" d="m130.8 190.4 3 3zm23.7 0 3 3z"/>
+ <path fill="#69c" d="m160.4 190.4 3 3z"/>
+ <path fill="#cff" d="m127.9 193.4 3 3zm29.5 0 3 3z"/>
+ <path fill="#9cc" d="m127.9 196.3 3 3zm29.5 0 3 3z"/>
+ <path fill="#69c" d="m127.9 199.3 3 3zm29.5 0 3 3z"/>
+ <path fill="#fcc" d="m133.8 202.2 3 3zm17.7 0 3 3z"/>
+ <path fill="#9cf" d="m130.8 205.2 3 3z"/>
+ <path fill="#c33" d="m137.7 207.2 1 2zm11.8 0 1 2z"/>
+ <path fill="#9cf" d="m154.5 205.2 3 3z"/>
+ <path fill="#69c" d="m130.8 208.2 3 2.9zm23.7 0 3 3z"/>
+ <path fill="#fcc" d="m136.7 211.1 3 3zm11.9 0 2.9 3z"/>
+ <path fill="#9cf" d="m133.8 214 3 3zm17.7 0 3 3z"/>
+ <path fill="#6cc" d="m133.8 217 3 3zm17.7 0 3 3z"/>
+ <path fill="#fcc" d="m139.7 220 3 3zm5.9 0 3 3z"/>
+ <path fill="#ccf" d="m136.7 222.9 3 3zm11.9 0 2.9 3z"/>
+ <path fill="#6cc" d="m136.7 225.9 3 3z"/>
+ <path fill="#c66" d="m142.7 225.9 2.9 3z"/>
+ <path fill="#6cc" d="m148.6 225.9 2.9 3z"/>
+ <path fill="#ccf" d="m139.7 231.8 3 3zm5.9 0 3 3z"/>
+ <path fill="#9cc" d="m139.7 234.7 3 3zm5.9 0 3 3zm-3 6 3 2.9z"/>
+</svg>
diff --git a/apps/web/public/flags/ax.svg b/apps/web/public/flags/ax.svg
new file mode 100644
index 00000000..0584d713
--- /dev/null
+++ b/apps/web/public/flags/ax.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ax" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ax-a">
+ <path fill-opacity=".7" d="M106.3 0h1133.3v850H106.3z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#ax-a)" transform="matrix(.56472 0 0 .56482 -60 -.1)">
+ <path fill="#0053a5" d="M0 0h1300v850H0z"/>
+ <g fill="#ffce00">
+ <path d="M400 0h250v850H400z"/>
+ <path d="M0 300h1300v250H0z"/>
+ </g>
+ <g fill="#d21034">
+ <path d="M475 0h100v850H475z"/>
+ <path d="M0 375h1300v100H0z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/az.svg b/apps/web/public/flags/az.svg
new file mode 100644
index 00000000..35575221
--- /dev/null
+++ b/apps/web/public/flags/az.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-az" viewBox="0 0 640 480">
+ <path fill="#3f9c35" d="M.1 0h640v480H.1z"/>
+ <path fill="#ed2939" d="M.1 0h640v320H.1z"/>
+ <path fill="#00b9e4" d="M.1 0h640v160H.1z"/>
+ <circle cx="304" cy="240" r="72" fill="#fff"/>
+ <circle cx="320" cy="240" r="60" fill="#ed2939"/>
+ <path fill="#fff" d="m384 200 7.7 21.5 20.6-9.8-9.8 20.7L424 240l-21.5 7.7 9.8 20.6-20.6-9.8L384 280l-7.7-21.5-20.6 9.8 9.8-20.6L344 240l21.5-7.7-9.8-20.6 20.6 9.8z"/>
+</svg>
diff --git a/apps/web/public/flags/ba.svg b/apps/web/public/flags/ba.svg
new file mode 100644
index 00000000..93bd9cf9
--- /dev/null
+++ b/apps/web/public/flags/ba.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ba" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ba-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#ba-a)" transform="translate(80)scale(.9375)">
+ <path fill="#009" d="M-85.3 0h682.6v512H-85.3z"/>
+ <path fill="#FC0" d="m56.5 0 511 512.3V.3z"/>
+ <path fill="#FFF" d="M439.9 481.5 412 461.2l-28.6 20.2 10.8-33.2-28.2-20.5h35l10.8-33.2 10.7 33.3h35l-28 20.7zm81.3 10.4-35-.1-10.7-33.3-10.8 33.2h-35l28.2 20.5-10.8 33.2 28.6-20.2 28 20.3-10.5-33zM365.6 384.7l28-20.7-35-.1-10.7-33.2-10.8 33.2-35-.1 28.2 20.5-10.8 33.3 28.6-20.3 28 20.4zm-64.3-64.5 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.2 20.5-10.8 33.2 28.6-20.2 27.9 20.3zm-63.7-63.6 28-20.7h-35L220 202.5l-10.8 33.2h-35l28.2 20.4-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.4-64.3 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9L138 192l-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.6-63.9 27.9-20.7h-35L91.9 74.3 81 107.6H46L74.4 128l-10.9 33.2L92.1 141l27.8 20.4zm-64-64 27.9-20.7h-35L27.9 10.3 17 43.6h-35L10.4 64l-11 33.3L28.1 77l27.8 20.4zm-64-64L9.4-20.3h-35l-10.7-33.3L-47-20.4h-35L-53.7 0l-10.8 33.2L-35.9 13l27.8 20.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bb.svg b/apps/web/public/flags/bb.svg
new file mode 100644
index 00000000..cecd5cc3
--- /dev/null
+++ b/apps/web/public/flags/bb.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bb" viewBox="0 0 640 480">
+ <path fill="#00267f" d="M0 0h640v480H0z"/>
+ <path fill="#ffc726" d="M213.3 0h213.4v480H213.3z"/>
+ <path id="bb-a" fill="#000001" d="M319.8 135.5c-7 19-14 38.6-29.2 53.7 4.7-1.6 13-3 18.2-2.8v79.5l-22.4 3.3c-.8 0-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12 .8 0 9.5 3.6 8.2 1.9a85 85 0 0 0-46.4-24c-1.5-.3-2.4.5-1 2.2 22.4 34.6 41.3 75.5 41.1 124 8.8 0 30-5.2 38.7-5.2v56.1H320l2.5-156.7z"/>
+ <use xlink:href="#bb-a" width="100%" height="100%" transform="matrix(-1 0 0 1 639.5 0)"/>
+</svg>
diff --git a/apps/web/public/flags/bd.svg b/apps/web/public/flags/bd.svg
new file mode 100644
index 00000000..16b794de
--- /dev/null
+++ b/apps/web/public/flags/bd.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bd" viewBox="0 0 640 480">
+ <path fill="#006a4e" d="M0 0h640v480H0z"/>
+ <circle cx="280" cy="240" r="160" fill="#f42a41"/>
+</svg>
diff --git a/apps/web/public/flags/be.svg b/apps/web/public/flags/be.svg
new file mode 100644
index 00000000..ac706a0b
--- /dev/null
+++ b/apps/web/public/flags/be.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-be" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#000001" d="M0 0h213.3v480H0z"/>
+ <path fill="#ffd90c" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bf.svg b/apps/web/public/flags/bf.svg
new file mode 100644
index 00000000..47138225
--- /dev/null
+++ b/apps/web/public/flags/bf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bf" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#de0000" d="M640 479.6H.4V0H640z"/>
+ <path fill="#35a100" d="M639.6 480H0V240.2h639.6z"/>
+ <path fill="#fff300" d="m254.6 276.2-106-72.4h131L320 86.6 360.4 204l131-.1-106 72.4 40.5 117.3-106-72.6L214 393.4"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bg.svg b/apps/web/public/flags/bg.svg
new file mode 100644
index 00000000..af2d0d07
--- /dev/null
+++ b/apps/web/public/flags/bg.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v160H0z"/>
+ <path fill="#00966e" d="M0 160h640v160H0z"/>
+ <path fill="#d62612" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/bh.svg b/apps/web/public/flags/bh.svg
new file mode 100644
index 00000000..7a2ea549
--- /dev/null
+++ b/apps/web/public/flags/bh.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bh" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0"/>
+ <path fill="#ce1126" d="M640 0H96l110.7 48L96 96l110.7 48L96 192l110.7 48L96 288l110.7 48L96 384l110.7 48L96 480h544"/>
+</svg>
diff --git a/apps/web/public/flags/bi.svg b/apps/web/public/flags/bi.svg
new file mode 100644
index 00000000..a4434a95
--- /dev/null
+++ b/apps/web/public/flags/bi.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bi" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="bi-a">
+ <path fill-opacity=".7" d="M-90.5 0H592v512H-90.5z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(84.9)scale(.9375)">
+ <path fill="#18b637" d="m-178 0 428.8 256L-178 512zm857.6 0L250.8 256l428.8 256z"/>
+ <path fill="#cf0921" d="m-178 0 428.8 256L679.6 0zm0 512 428.8-256 428.8 256z"/>
+ <path fill="#fff" d="M679.6 0h-79.9L-178 464.3V512h79.9L679.6 47.7z"/>
+ <path fill="#fff" d="M398.9 256a148 148 0 1 1-296.1 0 148 148 0 0 1 296 0z"/>
+ <path fill="#fff" d="M-178 0v47.7L599.7 512h79.9v-47.7L-98.1 0z"/>
+ <path fill="#cf0921" stroke="#18b637" stroke-width="3.9" d="m280 200.2-19.3.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm-64.6 111.6-19.2.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm130.6 0-19.2.3-10 16.4-10-16.4-19.1-.4 9.3-16.9-9.3-16.8 19.2-.4 10-16.4 10 16.5 19.2.4-9.4 16.8z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bj.svg b/apps/web/public/flags/bj.svg
new file mode 100644
index 00000000..0846724d
--- /dev/null
+++ b/apps/web/public/flags/bj.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bj" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="bj-a">
+ <path fill="gray" d="M67.6-154h666v666h-666z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#bj-a)" transform="matrix(.961 0 0 .7207 -65 111)">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#319400" d="M0-154h333v666H0z"/>
+ <path fill="#ffd600" d="M333-154h666v333H333z"/>
+ <path fill="#de2110" d="M333 179h666v333H333z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bl.svg b/apps/web/public/flags/bl.svg
new file mode 100644
index 00000000..f84cbbae
--- /dev/null
+++ b/apps/web/public/flags/bl.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bl" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/bm.svg b/apps/web/public/flags/bm.svg
new file mode 100644
index 00000000..f43a5ebc
--- /dev/null
+++ b/apps/web/public/flags/bm.svg
@@ -0,0 +1,97 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bm" viewBox="0 0 640 480">
+ <path fill="#cf142b" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M559.7 130.6v161.6c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.4V130.6h172.5z"/>
+ <path fill="#2f8f22" d="M559.7 292.2c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.4c0 0 0-3.5 1.8-5.4 0 0-1 7.1 4.5 12.6 0 0-4.3-7.8 0-15.3 0 0-1.7 9.8 4.4 15.3 0 0-3.3-7.9.4-16.7 0 0-1.8 14.3 4.7 17.3 0 0 1.8-8.4-.8-13.6 0 0 4.5 1.8 4.3 13.8 0 0 1.4-1.8 1.8-10.5 0 0 .2 10 3.5 12.3 0 0 1.2-1-.3-5.5-1.6-4.4.6-6 1-6 0 0-.8 5 3.4 8.8 0 0-1.8-7.9.7-9 0 0-.6 6.7 4.8 8.1 0 0 .3-1.9-.8-4 0 0-1-2.5-.3-4.5 0 0 1.7 6 4 7 0 0-1.4-3.6 0-7 0 0 .2 5 4.7 7.1 0 0-3-4-1.9-8.2l28.7 1.4 15 .7 44.7-3 7.6-6.7s3.1 4.1-1.8 10.8c0 0 4.8-.8 6.3-8.3 0 0 2 4.1-.7 8.8 0 0 5.3-5.4 6-11.3 0 0 2.1 5.8-2.9 12 0 0 4.4-1.6 6.3-8.1 0 0 1.6 4-2.7 9.5 0 0 8.1-4.1 7.9-13 0 0 3.3 4.8-.5 11.6 0 0 4-3.7 4.5-9.3 0 0 2.3 2.5-.2 9.4 0 0 5-4.8 5.8-9.9 0 0 1 4.8-3.2 10.8 0 0 2.9-.8 5.7-6.6 0 0 .7 2.4-1.8 6.6 0 0 2.8-.5 4.6-5.9 0 0 .3 3.2-.5 6 0 0 2.1-1.3 2.6-7.3a9 9 0 0 0 1.2 4.4v.8z"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M515.4 198.7s-3 .6-7-.6c-3.8-1.2-5.3-.7-6.5 0 0 0 1.5-3.1-2.3-5.6 0 0 1.2 3.2-.5 4.6 0 0-.7.7-1.6-.3 0 0-1.3-1.5-2.8-2.4 0 0 3.3-1.2 2.7-4.5s-2.4-3.6-3.3-4.1a6 6 0 0 0 0 2.4s-3.5-2 1.2-4.7 4-4.4 3.1-5.8a13 13 0 0 0-3.5-3.6s1 1.6.7 2.9c-.1 1.2-2.4 2-2-.1.5-2.4 0-2 0-4.3 0 0 4.2 1.4 6-2.8 0 0 1.6-4.3-3.8-6.4 0 0 1.3 1.8.7 3 0 0-1.2 2.2-2.5.6s-2.2-2.2-2.1-4.2c0 0 4.9.7 3.6-4.7 0 0-.9 3.6-7.2-1.2 0 0 4.2-4.2 2.5-7.6 0 0-.5-1.5-4.9-.7 0 0 3.8-2.4 2.3-4.5 0 0-.9-1.3-4.6.4 0 0 1.5-2.3-2.1-5 0 0-2.4 1.2-3.6 2.4 0 0-2.4-3-4-4.3 0 0-2.8 1.1-3.5 4.3 0 0-1.3-1.5-4.3-2.4 0 0-1.4 2.8.5 5 0 0-1.4 0-4-1.1 0 0-2.8-1.2-2.3 1.1.3 2.4.6 3 1.2 4.2 0 0-6.5-1.5-6.2 2a9 9 0 0 0 3 6.2s-3.5 4.8-6.6 1.2c0 0-1.2 1.2 1.2 4.2 0 0 2.4 2.5.3 4.2 0 0-2.5 2-3.7-2 0 0-4.1 4.1.8 7.2 0 0 3 1.8 6.3-1 0 0-1 8-4 6.4 0 0-1.9-1.2 1.4-2.9 0 0-4.8-.6-5.5 4 0 0-.6 3.5 3.5 5 0 0 3.1 1.2 0 3.6 0 0-2.5 1.7-.9 4.4 0 0 1.8 2.8-2.9 3.2 0 0-2.4 0-3.3-.4 0 0-1 2-.4 4 0 0-2.3-1.7-7.5.2-5.2 2-4.9.6-5.2 1.2l-1.6 2.4s2.8 3.6 2.9 3.3l-.6 4 1.4.6 10.8-4.8 11-5.7 8.9.4 5.6 1.3 7.2.6 5.4-2.8h7.6l8.4 4.2 9.5 5.7 5 1 3.9-.3v-7.8z"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M428.2 207.7s4.2 2.2 6-.3c0 0 2.2-4.4-2.8-6 0 0 2.8-3.2-.2-6.2 0 0-1.6-1.6-4.2-.5 0 0-1.2-2.3-3.7-2.2 0 0-2.4 0-3 2.5 0 0-3.2-1.2-4.9.6 0 0-3 3.2 1.1 5.8l2.9.3 2.8-1.4 3.3.9s-.9 3.2 2.7 6.5z"/>
+ <path fill="#64b4d1" stroke="#000" stroke-width="1.2" d="M521.6 200.1a7 7 0 0 1 6.9 3.8c2.6 6.2-3 9.6-3 9.6.4 1.3.5 3.2.5 3.2 7.8 1 6.4 9.8 6.4 9.8l-2.6-2.2c-4.5-1.8-9.3 2.2-12.6 8.6-3.4 6.6-1.8 9.5-1.2 17.3.6 7.7 13 12.4 13 12.4l-9.7 25c-3.8 10-12 5.9-14.3 3.7-2.3-2-2.9-.8-4 0-1.1 1 5.3 6-6.5 10.8-11.7 4.7-13.7 8.3-15.7 9.5s-10 .5-10.8-.6c-1-1-.4-1-3.5-2.9-3-1.7-8.2-3.5-13.8-6.2s-5.4-6.2-5.3-6.9c0-.7 1.9-6.5-4.7-1.9-6.5 4.7-12.1-2.2-12.1-2.2-1.2-1.7-6.8-16.4-6.8-16.4a92 92 0 0 0-4.3-12s-.4.8 4.5-2c4.8-2.7 7-7.3 8.7-11.9s0-12.5-.6-14c-.6-1.6-4.2-8.9-8.7-10.4-4.4-1.6-7.5 2.4-7.5 2.4s-1.3-9 6.6-10c0 0 0-1.8.4-3.1 0 0-5.6-3.4-3-9.6 0 0 1.8-4.3 6.8-3.8l-1.1 2.4s-1.2 12.6 17.2 4.2c18.5-8.6 18-10.2 28.7-4.8l7.6-.1s11-5.3 14.7-3c3.5 2.3 16.3 9.4 16.3 9.4s12.4 4.7 14.9-4z"/>
+ <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M465.8 255s-.6-3.9-1.2-6.4c0 0-1.5-3.9 1-6.8l2.8-3.3s1.8-2.4 4-2.7c0 0 2.3 0 2.4-.5.3-.5 2.8-4.5 8.6 0 0 0 1.8-3 4.8-3.6 0 0 3-.8 4.5 1.4 0 0 3.5-2.6 6.4 1.7 0 0 4.1-2.4 7.2 2.3 0 0 4-2 6.4 2.1 2.5 4.3 2 6 2 6l2 6.8 6.5 8-15.2 5.8h-7l-13.7 3.6-24.3 1.9-6.7-8 9.6-8.3z"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M445.3 295.5s-3.6.1-5.5 1.2c-1.8.8-3.3 1.8-5.4 3.2 0 0-1 1.3-5.2.5 0 0-7.2-1.7-7.2 4 0 0-8.8.6-5.2 8.3 0 0 2.3 6 7.3 1.8 0 0-3.2 4.5 3 6.3 0 0 4.4 1.2 5.8-3.5 0 0 .7-1.8-1-4 0 0 2.1-.4 3.6-2.7 0 0-4.6 5.8.5 8 0 0 6.3 1.5 6.6-5 0 0-.6-3.2 2-4.3 0 0 5-1.2 7-6.6 0 0-7-3.9-6.3-7.2zM430.6 238s-5.6-2.5-8.4 0c0 0-3.5-2.2-7.5 0 0 0-3.7 2.4-6.3 5.2 0 0-1.8 1.5-1.2 6.4 0 0 1 3.5.5 5.1 0 0-1.2-.2-3.7 2.8 0 0-3.1 3.5-6 .3 0 0 1 4.6 6.1 3.8 0 0-2.5 2-.3 7 0 0 1.6 3.6-1 8.2 0 0 4.5-1.8 4.4-7.2 0 0-.5-3.6 1-6 0 0-1.5 2.2 1.6 7.1 0 0 2.4 3.6.5 7.2 0 0 4.4-1.6 4-7s-3-3.2-1.4-8.2c0 0 .5 2.6 1.8 4a7 7 0 0 1 2.4 7s2.6-3.4 2-6.8a13 13 0 0 0-1.3-4.4l8.4-4.8 4.3-7.5z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M417.8 259.5s-3.5-.2-4-3m-6.1-1.8s1.2 0 2.4 1.2c0 0 .7 1.2 1.9 1"/>
+ <path d="M423 249.2s-1.8 0-3-.8c0 0-.9-.7-1.5.4 0 0-1 1.6.8 2.3 0 0 2.2 1.2-1.2 3.4 0 0 4-1.6 2.4-3.6 0 0-1.8-1.2-1.2-1.7 0 0 .2-.4 1 0 .6.6 2 .4 2.7 0"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m477.6 259 2.1-.6-14-48h-.4z"/>
+ <path d="M431.2 312.3s-3.2-1.9-6 .3c0 0 .4-1.2 2.4-1.7 0 0 1.2-3.2 4.3-2.9 0 0-1.3 1.6-3 2.8 0 0 1.8.2 2.4 1.5z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M419.7 319.8s-5.2-3.2-2.3-8.7c0 0 .8-1.5 2.3-1.2 0 0 3.3 1 .8 5.5 0 0-1.4 2.9-.8 4.5zm10.5 5.3s-7.4-3.4-5.1-9.2c0 0 .7-2 2.4-1.8 0 0 2.8.2 2.3 4 0 0-.9 3.6.4 7z"/>
+ <path d="M428.7 303.6s-2.3 1.7-3.1 2.8c0 0-1-1.2-2.2-1.8 0 0 1.5-.3 2.2.3 0 0 1.2-1 3-1.3z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M435.2 323.6s6-1.4 4.8-7.5c0 0-.6-2.6-3-2.2 0 0-3 .8-1 4.6 0 0 1.1 2.6-.8 5.1z"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="m461.6 196.7 5.7 1.9s5.4 2.3 12.3 0l5.2-2-3.5 5.4v2.9l2.1 3.2s-1.3.6-5.4-2c0 0-4.4-3.4-9.6 0 0 0-3 2-5.4 2l3.5-3.8-1.3-3.5-3.6-4.3z"/>
+ <path fill="#fff" d="M437.5 316.5s.2-.4 0-.5l-.5.2s-.6 1 0 2.4c0 0 .5.9.3 1.8v.4s.3-.1.3-.4c0 0 .4-.8-.2-1.8 0 0-.6-1.4.1-2.1"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M518 207.7s-4.2 2.2-6-.3c0 0-2.1-4.4 2.9-6 0 0-2.8-3.2.1-6.2 0 0 1.6-1.6 4.2-.5 0 0 1.2-2.3 3.7-2.2 0 0 2.4 0 3 2.5 0 0 3.3-1.2 5 .6 0 0 2.8 3.2-1.2 5.8l-2.9.3-2.9-1.4-3 .9s.8 3.2-3 6.5z"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M484.8 204.4s0 .8-.8 1c0 0-1 .3-1.5-.9v-.3c0-.5-.3-2 1.4-3.3 0 0 2.6-2.1 7.6.5a192 192 0 0 0 14.8 7.5s3.1 1.6 7.9 1.8c0 0 6.5.5 9.3-4.1 0 0 2.1-3.5 0-5.8 0 0-.9-1-2.3-.8a3 3 0 0 0-1.8 1.2s-1 1.4.1 2.5c0 0 1.6 1 2.2-1 0 .2.5 1.7-.4 2.9 0 0-4 6-14.9-.1l-14.3-8.1s-7.1-3.7-11.6 2.1c0 0-3.4 4.8 1.1 7.9 0 0 3.4 2 5.4-1.2 0 0 1.8-3.1-1-4.4 0 0-2.4-1.2-3.3 1.2-1 2.4 1.8 3 2 1.3 0 0 0-.4.3 0z"/>
+ <path fill="#e4cb5e" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M428 229.2v-9c0-.8 0-1.2 1.2-2.2 1-.8 2.1-2.3 3.7 1.7 0 0 3.2-3.5 4.2-4 0 0 2-1.5 3.3.7 0 0 1.6-2.6 3-3.2 0 0 3.2-2 3.3 4.2l2.5-2.4s2-1.5 4.2.7c0 0 3.5 3.6 4 4.6 0 0 .8 1 1 2.7 0 0 0 2 1 3 0 0 1.1 1 2.2 1.2 0 0 2.5.1 3.6 2.6 0 0 .3-.5 1.6 11.2v21.5l-14.4 17.1-23.1-6.6-9.2-3.9-2.2-6.6 9-5.9 4.8-13-1.5-9.3-2.2-5.2z"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m491.6 240.4 1.2-1.5 2.5-2s4 10.4 4.2 12.7v3.2s6 1.6 7.2 10.7l-5 9.2-7.8-4.4-2.3-1.5z"/>
+ <path fill="#fff" d="M418.3 312.4s.2-.3 0-.6l-.5.4s-1.5 1.7-.2 4.4c0 0 0 .4.3.2 0 0 .3 0 0-.3 0 0-1.1-2.4.4-4z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M441.7 310.6s.1-.8-.4-1.6q-.2 0-.2-1.5m5.6-90.1s0 2.3.7 4c.6 1.6 2.9 4.5 3 5.9"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M501 295.5s3.6.1 5.5 1.2c2 .8 3.4 1.8 5.5 3.2 0 0 1 1.3 5.2.5 0 0 7.2-1.7 7.2 4 0 0 8.7.6 5.2 8.3 0 0-2.4 6-7.4 1.8 0 0 3.2 4.5-3 6.3 0 0-4.4 1.2-5.7-3.5 0 0-.8-1.8 1-4 0 0-2.1-.4-3.5-2.7 0 0 4.5 5.8-.5 8 0 0-6.3 1.5-6.7-5 0 0 .5-3.2-2-4.3 0 0-5-1.2-7.2-6.6 0 0 7.2-3.9 6.5-7.2z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m443.8 227.4 6 47.8m-4.5-47.9 6.6 44.6m-5.5-44.8 7.8 44.2"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m458.6 267.5 2.2-.7-14-48h-.5z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m450.7 225.3 14.1 35.5m-15-35 13.6 37"/>
+ <path fill="#fff" d="M427.6 321.6s-1.7-1.5-1.4-4.3c0 0 0-.6-.3-.7 0 0-.3-.1-.3.6 0 0-.5 2.9 1.5 4.5q0 .2.4.2v-.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m451.5 224.8 14.3 32.4m-18.3-30.4 9 43.7"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M520 259c-6.3-3.6-7.7-11.4-7.7-11.4a25 25 0 0 1 1.6-14.3c4-8.6 11.1-10.3 11.1-10.3s-6.9 4.8-8.8 11.2c0 0-1.4 5.5-.6 10.7.8 5.5.5 4.1 1.8 8.3l2.6 6z"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m492.7 238.7-26.6 8.5-1.4 12c-6.3 9.1-19.2 10.7-19.2 10.7l10 10.7 19 4 10.2-7.8 9.2-8.4c-1-4.5-.5-11.2-.5-11.2 0-1.2.5-3.8.5-3.8s-1.5-10.7-1.2-14.5z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M465 256.2s17.6-5.5 28-10m-36.4 20s22-4 37.3-12.8l5.6-3.8"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m499.5 252.8-6 4.4s-24.5 11.2-43.2 11.6m43.1-3.6S474.6 275 464 275"/>
+ <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M515.8 238s5.6-2.5 8.4 0c0 0 3.6-2.2 7.6 0 0 0 3.6 2.4 6.2 5.2 0 0 1.8 1.5 1.2 6.4 0 0-1 3.5-.3 5.1 0 0 1.1-.2 3.5 2.8 0 0 3.3 3.5 6 .3 0 0-.8 4.6-6 3.8 0 0 2.4 2 .3 7 0 0-1.6 3.6 1 8.2 0 0-4.6-1.8-4.4-7.2 0 0 .4-3.6-1-6 0 0 1.4 2.2-1.7 7.1 0 0-2.4 3.6-.4 7.2 0 0-4.5-1.6-4-7 .3-5.4 3-3.2 1.3-8.2 0 0-.4 2.6-1.7 4a7 7 0 0 0-2.4 7s-2.6-3.4-2-6.8c.6-3.5 1.2-4.4 1.2-4.4l-8.3-4.8-4.2-7.5z"/>
+ <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M420.6 268.4s.8-3.7 4.3-2.4c0 0 1.2-6 7.7-6.2s6.8 6.4 6.8 6.8c0 0 2-2.8 5.1-2.5 0 0 5.5-.3 3.6 8.5l1 1.2s4.1-9.9 12.7-7.4c0 0 8.4 2.6 3 10.7 0 0 4.2 5.5 7.6 5 3.6-.5 6.7-1.6 10.2-7.8 3.6-6.2 11.7-7.2 13.7-6.8 2 .3 3.7 1.8 4 3.2 0 0 4.3-14.3 19.8-12.2l6.2 3.3 2.4 1-3.6 10-8.4 19.2-6.6 2-6.8-3.9-2.4 1.2v5.9l-9 6.4-6.2 2.5-6.8 4.8-1.7 4.2s-3.7-1.7-8 0l-1.4-3.6-4-3.7-15.6-7.4-2.7-9-2.9-1.3-3.2 3.6-4.5.6-7-4.8-7.4-21z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M488.2 198s-6-.2-5.7 6"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M527 263.3c-10.2-3.2-13-14.3-13-14.3a26 26 0 0 1 1.2-15.5c4.8-11 12.7-11 12.7-11a4 4 0 0 1 4.5 3.2c.4 2.4-1.3 3.3-1.3 3.3-2.7 1.5-4.5-.5-4.5-.5-1.2-1.6-.3-2.9-.3-2.9.7-1 2-.4 2-.4 1.3.2 1 1.6 1 1.6s.4-1.6-1.2-1.8c0 0-3.2-.7-6.8 3.8 0 0-4.7 6.1-4.7 14.1 0 0-.6 14.8 14.7 18.6 0 0-1.6 2.4-4.6 11.1 0 0-3.3 11.2-6.4 17.3 0 0-4.3 8.6-13.9 5.1 0 0-5.6-2.5-5.6-6.5 0 0-.3-3.8 3-4 0 0 3.3-.3 3.3 2.5 0 0 0 3-3.5 2.4 0 0-1.2-.3-1.1-1.5 0 0 .2-1.2 1.8-.6 1.5.6 0 0 0-.1 0 0-.6-.3-1.2 0 0 0-.6 0-.6 1q-.2.2.7 1.1l1.7.2s1 2 3 2.7a8 8 0 0 0 7.1-1.2 11 11 0 0 0 3-4.3 113 113 0 0 0 5.2-13.5s1.8-5.7 3.4-8.7z"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M498 291.4s2-.2 2 1.5c0 0-.1 2.4-3.2 1.9 0 0-3-.6-2-4 0 0 .8-2.3 3.6-2 0 0 2.8 0 4 3.8 0 0 1 3.3-.7 6-1.8 3-6.2 5-8.4 6 0 0-8.7 3.3-11.3 5.3 0 0-4 2.9-2.2 5.6 0 0 .7 1.1 1.7 1.1 0 0 1.2 0 1.3-1.2 0 0 0 .7-.7 1 0 0-.8.4-1.7-.3 0 0-1-1-.2-2.4 0 0 1-1.6 3.6-.6 0 0 2 1.1 1.2 3.3 0 0-.9 2.1-3.4 2 0 0-1.9 0-3.2-1.2-2-2.1-2-6-.2-8 0 0 1.5-2.1 4.7-3.6l9-3.5q4-1.5 6.4-4.1s1.3-1.4 1.8-4c0 0 .4-2-.8-2.4l-1.2-.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M498.2 291.4s2.1-.4 3.5 2.2c0 0 .7 1.5.8 2.5m.7-9s-2.1.3-1 3.4c1.1 2.9 3 3.7 3.5 4.2"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M461.6 204.4s0 .8 1 1c0 0 .8.2 1.3-.9v-.3c0-.5.3-2-1.2-3.3 0 0-2.8-2.1-7.8.5 0 0-4 2-6.7 3.6 0 0-7.1 3.8-8 4 0 0-3.2 1.6-8 1.8 0 0-6.5.5-9.2-4.1 0 0-2.2-3.5 0-5.8 0 0 .8-1 2.2-.8q.9 0 1.8 1.2s1 1.4-.1 2.5c0 0-1.6 1-2.2-1 0 .2-.3 1.6.5 3 0 0 4 5.9 14.8-.3l14.3-8s7.2-3.7 11.6 2c0 0 3.4 4.8-1 8 0 0-3.3 2-5.5-1.2 0 0-1.6-3 1-4.4 0 0 2.4-1.2 3.5 1.2 1 2.4-2 3-2.2 1.3 0 0 0-.4-.1 0zm-35.2 54.7c6.3-3.5 7.8-11.5 7.8-11.5 1.4-8-1.7-14.3-1.7-14.3-4-8.6-11-10.3-11-10.3s6.8 4.8 8.7 11.2c0 0 1.6 5.5.6 10.7-.8 5.5-.5 4.1-1.8 8.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M458.4 198s6-.2 5.6 6"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M419.3 263.3c10.3-3.2 13-14.3 13-14.3a26 26 0 0 0-1.1-15.5c-4.8-11-12.7-11-12.7-11a4 4 0 0 0-4.5 3.2c-.3 2.4 1.3 3.3 1.3 3.3 2.8 1.5 4.6-.5 4.6-.5 1.1-1.6.2-2.9.2-2.9-.7-1-2-.4-2-.4-1.2.2-1 1.6-1 1.6s-.3-1.6 1.2-1.8c0 0 3.2-.7 6.8 3.8 0 0 4.8 6.1 4.8 14.1 0 0 .6 14.8-14.8 18.6 0 0 1.7 2.4 4.6 11.1 0 0 3.4 11.2 6.6 17.3 0 0 4.2 8.6 13.7 5.1 0 0 5.6-2.5 5.6-6.5 0 0 .4-3.8-3-4 0 0-3.3-.3-3.3 2.5 0 0 0 3 3.6 2.4 0 0 1.2-.3 1-1.5 0 0-.2-1.2-1.7-.6-1.6.6 0 0 0-.1 0 0 .5-.3 1.1 0 0 0 .6 0 .6 1q.2.2-.7 1.1l-1.5.2s-1 2-3.2 2.7a8 8 0 0 1-7-1.2 11 11 0 0 1-3-4.3 114 114 0 0 1-5.3-13.5s-1.8-5.7-3.2-8.7l-.6-1.2z"/>
+ <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M448.5 291.4s-2-.2-2 1.5c0 0 0 2.4 3.2 1.9 0 0 3-.6 1.9-4 0 0-.7-2.3-3.6-2 0 0-2.7 0-4 3.8 0 0-.9 3.3.8 6 1.8 3 6.2 5 8.3 6 0 0 8.7 3.3 11.4 5.3 0 0 3.9 2.9 2.1 5.6 0 0-.6 1.1-1.7 1.1 0 0-1.2 0-1.3-1.2 0 0 0 .7.7 1 0 0 .9.4 1.7-.3 0 0 1-1 .2-2.4 0 0-1-1.6-3.4-.6 0 0-2.2 1.1-1.2 3.3 0 0 .7 2.1 3.2 2 0 0 2 0 3.2-1.2 2-2.1 2-6 .4-8 0 0-1.7-2.1-4.8-3.6-1.9-.6-5.5-2.1-9-3.5q-4.1-1.5-6.5-4.1s-1.3-1.4-1.8-4c0 0-.3-2 .9-2.4l1.2-.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M448.2 291.4s-2.1-.4-3.4 2.2c0 0-.7 1.5-.9 2.5m-.7-9s2.2.3 1.1 3.4c-1.2 2.9-3 3.7-3.6 4.2m27.4-91.1s5.2-3.3 10.4.3m-39.7 31.3s.7-3-2.6-8c0 0-2.2-4.7-3.2-7.5m7.4-3.3 2.3 6.6 3 6.8"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M441.2 238.3s2 2.1 1.8 5.6m-8.1-7.9s2.1 1 1.9 6.8c0 0-.1 4 3 6.2m-5.3 1.4s6.7-.7 7.2 3.5c0 0 0 4 2.4 4.3 0 0 3.3.3 4 3.6m-11.4-6.8s1.2 1.7 2.4 2.6m6.2-7s1.6 2.7 2 4.1m5.3-35s1.6 2.1 3.1 3m3.1 9.6s3.4 1.6 3 10c0 0-.6 5 .9 7.7"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m443.1 226.6.4.8s6 .3 9.1-3.8l-.3-.8s-5.3-.3-9 3.8z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M464.7 258.5s20.6-6 28.6-9.6"/>
+ <path fill="#784421" stroke="#000" stroke-width="1.2" d="m462.5 220.5-.2-.6 10.1-4 .3.8z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m463.4 220.1 6.8 33.3m-5.6-33.6 7.7 33m-6.4-33.6 8.4 32.9m-5-34.1 11.5 24.6m-10-25 12.3 24.2M471.8 217l13.4 24.3m-15.5 12.4 5.2-1.6m-9.1-1.6s15.2-4.5 27-9.2M465.4 252s19.5-5 27.2-8.8m-21.2 24.6 1 3.3 2.8-1-1-3.1m5-1.3 1 3 2.8-.9-1-3m-16-17.6-.2-4.2 25.5-7.7 1.3 3.6m-16 .8 1.3 3.8m7.6-6.4 1.6 3.6m.5-4.3 1.6 3.3m.4-4 1.6 3.6m0-4 2.8-1.6 1.2 3.1m-2.6-2.3 1.4 3.3"/>
+ <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M429.5 283.1s-5-5.1 0-10c0 0-5.5-2.6-4.6-7m13.6 21s-5.3.7-3.7-9.4c0 0-2.2 4-2.9 6a5 5 0 0 0 2 5.4c.9.6 5.5 1.8 7-1.2m-8.3-16.2s-2.1 1.9-.6 5.4m2.8-5s.2 3.5 2 5.4m-.5-6.7s0 4 2.9 6.6m-1.5-8s0 4.5 3.4 7.4m13.5-.7s1.6-3.9 5.2-3.6c0 0-1.7.8-1.7 2.5 0 0-.2 3 2.9 3.2 0 0 2.5.4 3.8-1"/>
+ <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M463.1 293.1s-8.9-4.2-8-10.1c0 0 .4-3.6 4-5.4m-2 3.8s-.8 2.5 1 4.3m1.1-6s-1.2 2.8.7 4.8m1.5-6.3s-1.4 2.4.2 4.5m-8.4 11s4.8 4.3 8.6 4.3m-10.1-2.9s4.5 3.6 7.4 4.2m-9-3.2s5.5 4.9 9 5.2m13.7 4.6s-5.5 3-1.2 6.2m-2.4-9.4 9-4.6m-6.7 6.2s9-5.5 11.7-6.7m-7 7.2s7.7-5.2 11.9-7.5m-6.8 7.1s5.3-4 10.5-7.1m1.7-5.1s-2.6-3.9-11.2 0c0 0 3.3-2.9 9.5-5.2m8.5-16.3s.8 3.1 0 5"/>
+ <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M486.5 285.7s1.8-2.6 6.3-4c0 0 1.2 3 4.8 2.5 0 0 5.2-1.1 3.6-7 0 0-1.1-4.2-7.2-4.7m18.1-7.3s6.1 1.2 6 6.1c0 0 .6 7.6-7.4 9m6.6-12s1.6-3.7 5.5-5.2m-4.6-2.2s1.7 2.8 2.8 3.1m-3.6-1s1.5 2.1 2 2.5m-2.6-.5 1.5 1.6M485 235.8s1.2-2 4.3-1.2m12.1 15.8s2-7.8 8.5-5m-2.6-.6s.6-3.6-1-5.5m-3.6 5.2s.9 1.5.1 2.7"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M516.2 325s7.4-3.3 5.1-9.1c0 0-.7-2-2.4-1.8 0 0-2.8.1-2.3 4 0 0 1 3.8-.5 7z"/>
+ <path fill="#fff" d="M518.8 321.6s1.7-1.5 1.5-4.3c0 0-.2-.6 0-.7 0 0 .4-.1.4.6 0 0 .5 2.9-1.4 4.5q0 .2-.4.2-.2 0 0-.3z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M526.7 319.8s5.2-3.2 2.4-8.7c0 0-.9-1.5-2.4-1.2 0 0-3.2 1-.7 5.5 0 0 1.2 2.9.7 4.5z"/>
+ <path fill="#fff" d="M528 312.4s-.2-.3 0-.6l.4.4s1.5 1.7.3 4.4c0 0-.1.4-.5.2v-.3s1.2-2.4-.2-4z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M511 323.6s-5.8-1.4-4.7-7.5c0 0 .6-2.6 3.1-2.2 0 0 3 .8 1 4.6 0 0-1.1 2.6.7 5.1z"/>
+ <path fill="#fff" d="M508.8 316.5v-.5s.4 0 .5.2c0 0 .6 1 .1 2.4 0 0-.5.9-.2 1.8l-.3.4-.2-.4s-.3-.8.2-1.8c0 0 .6-1.4 0-2.1z"/>
+ <path d="M515.2 312.3s3.4-1.9 6 .3c0 0-.2-1.2-2.4-1.7 0 0-1-3.2-4.2-2.9 0 0 1.2 1.6 3 2.8 0 0-1.8.2-2.4 1.5m2.4-8.7s2.4 1.7 3.2 2.8c0 0 .9-1.2 2-1.8 0 0-1.2-.3-2 .3 0 0-1.1-1-3-1.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M504.8 310.6s-.3-.8.3-1.6c0 0 .4-.6.2-1.5m23.4-48s3.5-.2 4-3m6-1.8s-1.2 0-2.2 1.2c0 0-.9 1.2-2 1"/>
+ <path d="M523.6 249.2s1.8 0 2.7-.8c0 0 1.1-.7 1.7.4 0 0 1 1.6-.8 2.3 0 0-2.2 1.2 1.3 3.4 0 0-4.2-1.6-2.4-3.6 0 0 1.8-1.2 1-1.7 0 0-.2-.4-.9 0-.7.6-2.1.4-2.6 0"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M526 205.6s.8-1.2.5-4.4 2.6-3.7 3.6-2.8c0 0 1.2 1 0 3.1a8 8 0 0 1-4.1 4.1z"/>
+ <path fill="#fff" d="M527 203s1.2-1.1.6-3.6l.2-.2h.3s.6 2.8-.6 4.2c0 0-.2.3-.5 0z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M525.1 204.4s0-1.4-2.3-3.6c-2.4-2.4-.5-4.4 1-4.4 0 0 1.3 0 2 2.3a8 8 0 0 1-.7 5.7z"/>
+ <path fill="#fff" d="M524.8 201.4s0-1.6-2.2-3.3v-.4h.4s2.3 1.8 2.3 3.8q0 .2-.3.3-.1.1-.2-.4"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M522 203.3s-.7-1-3.5-2.1c-2.9-1-2.2-3.5-1-4 0 0 1.3-.5 2.6 1.1a8 8 0 0 1 1.8 5z"/>
+ <path fill="#fff" d="M520.6 201.3s-.6-1.4-3.2-2.1l-.2-.3.3-.1s2.9.6 3.7 2.4l-.1.3s-.3 0-.4-.2z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M523.7 204.4s-1.3.5-4.4-1-4.4 1.1-3.8 2.3c0 0 .5 1.6 2.8 1.2a8 8 0 0 0 5.4-2.4z"/>
+ <path fill="#fff" d="M516.6 205.4s1.4 1 3.9 0h.3s0 .2-.2.3c0 0-2.6 1.2-4.4.1v-.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M519.3 194.7s1.4.8 1.2 2.5"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M526 195s.6 1.9 0 3"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M420.2 205.6s-.8-1.2-.5-4.4c.4-3.4-2.5-3.7-3.5-2.8 0 0-1.2 1-.2 3.1a8 8 0 0 0 4.2 4.1z"/>
+ <path fill="#fff" d="M419.1 203s-1-1.1-.6-3.6v-.2h-.4s-.5 2.8.7 4.2c0 0 .2.3.3 0z"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M421.2 204.4s0-1.4 2.4-3.6c2.3-2.4.4-4.4-1-4.4 0 0-1.6 0-2 2.3a8 8 0 0 0 .6 5.7z"/>
+ <path fill="#fff" d="M421.5 201.4s0-1.6 2-3.3c0 0 .3-.3 0-.4h-.2s-2.4 1.8-2.4 3.8q-.1.2.4.3.1.1.2-.4"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M424.3 203.3s.6-1 3.5-2.1c2.8-1 2-3.5.9-4 0 0-1.2-.5-2.6 1.1a8 8 0 0 0-1.8 5z"/>
+ <path fill="#fff" d="M425.6 201.3s.6-1.4 3.2-2.1l.2-.3-.2-.1s-2.9.6-3.7 2.4v.3s.4 0 .5-.2"/>
+ <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M422.5 204.4s1.4.5 4.4-1 4.4 1.1 4 2.3c0 0-.7 1.6-3 1.2a8 8 0 0 1-5.4-2.4z"/>
+ <path fill="#fff" d="M429.6 205.4s-1.3 1-3.9 0h-.2v.3s2.8 1.2 4.5.1q.2 0 0-.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M427 194.7s-1.5.8-1.2 2.5"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M420.2 195s-.6 1.9 0 3"/>
+ <path d="M486.7 177.6s1 2.7.6 5.2c-.3 2.4.2 2.9 1 3.4.7.3 2.4-.4 2.5-2.2 0 0 2 3.8-1.8 6.3 0 0-2.7 1.7-5-.4-.8-.9-1.2-3-.7-5 0 0 .6-2.7-.5-5.5 0 0 1.6 1.6 1.2 4.9 0 0-.8 6 3.6 5.6 0 0 3 0 3-3.6 0 0-1.1 1.2-2.4.8a2.4 2.4 0 0 1-1.8-2.8c.1-1.6.6-4.3.3-6.7M482 187s-.4 4.8-4.6 5.9c0 0 .6-.9-.3-3.3 0 0-1-1.2-1-3.3 0 0-1.2 1 .3 3.8 1 1.7 0 3.6-.1 3.7-.4.1 6.9-1 5.6-6.7zm-5.6-4.5s-1.1-1.2-1.2-3.8c0-2.7-.5-3.4-.9-3.6 0 0 .5 2.3.4 3.6a7 7 0 0 0 .4 3s-2.4.3-3.9-3c-1.3-3.3-2.7-3-3.4-3 0 0 .8.1 2.4 3 1.6 3 2.1 3.7 6.2 3.7zm-10.8-7s1.2 3.2 1.4 4.8c0 0-3.1-1-4-3.5 0 0-3.2 1-2 4.7 0 0-2.9-1-4.2-3.2 0 0 1.6 1.2 3.1 1.7 0 0-.2-3.1 3.6-4.2 0 0 .6 2.7 2.6 3.3zm5-5.4s1.2 1.5 3.4 1.5a4 4 0 0 0 3.2-1.5s-.1 2.6-3.2 2.7c0 0-3.3 0-3.3-2.7zm-13.4 18.5 2 1.9s1.2 1.2 2-.3c0 0 1.3-2.4 2.9-2.2 0 0-1.2.7-2.4 3 0 0-.2.7-1.2.8-.5 0-1 .2-1.8-.7q-.2 0-1.5-2.4zm16.7-29.4c-3.2 0-.5 2.4-.5 2.4 0 4-3.1 5.4-5.3 4.2s-.4-4-.4-4-2.4 1.5-1 3.9c1.6 2.4 5.7 1.2 7.2-.9 1.5 2.2 5.7 3.3 7.1.9 1.7-2.4-.8-4-.8-4s1.8 2.9-.5 4c-2.1 1.3-5.4 0-5.2-4 0 0 2.7-2.5-.5-2.5zm2-4.4s1.2 2 1 5c0 0 .9-3-1-4.9zm-10 4.7s-.3-2.2-2.4-2.4c0 0 1.9 1.3 2.4 2.4m16 0s.3-2.2 2.5-2.4c0 0-1.8 1.3-2.4 2.4zm-19.2 3.2s1.6.5 2.6-.7zm-5.4-13.1s1.9-.1 3.8 2.7c0 0-1.9 1-2.4 1.6 0 0 0-1 1-1.7 0 0-.4-1.4-2.4-2.5zm32 0s-2-.1-3.9 2.7c0 0 2 1 2.4 1.6 0 0 0-1-1-1.7 0 0 .4-1.4 2.5-2.5zm-14.7 2.2s1.7.5 3.8-.7c0 0 2.6-1.4 4.3 0 0 0-1.4-.7-4.3.7 0 0-2.7 1.6-3.8 0"/>
+ <path fill="#fff" d="M476.4 153.6s1.4-2.5 6-2c0 0-1.3 3.6-6 2"/>
+ <ellipse cx="479.4" cy="152.8" fill="#784421" rx=".8" ry="1.1"/>
+ <ellipse cx="479.4" cy="152.8" rx=".5" ry=".7"/>
+ <path d="M466.8 148.1s2.8.3 4.6 1.2c0 0 1.8 1.2 3.8-.3 0 0 2.2-1.4 3.7-3.1 0 0-3.5 2.3-4.8 2.7 0 0-1.2-1-1.5-2.3 0 0 0-1 2-2.7 0 0-2.5.8-3 2.9a7 7 0 0 0 1.4 2.3s-.4.3-1.6-.6c0 0-2.8-.8-4.6 0zm7.2 17c-2.4 2.1 0 1.9 0 1.9s2.4.2 0-2zm-1.4-13.2s-1.8.5-4-.7c0 0-2.6-1.4-4.3 0 0 0 1.5-.7 4.3.7 0 0 2.9 1.6 4 0"/>
+ <path fill="#fff" d="M470.8 153.6s-1.5-2.5-6-2c0 0 1.2 3.6 6 2"/>
+ <ellipse cx="467.7" cy="152.8" fill="#784421" rx=".8" ry="1.1"/>
+ <ellipse cx="467.7" cy="152.8" rx=".5" ry=".7"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M560 130.6v161.6c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.2V130.6z"/>
+ <path fill="#006" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/bn.svg b/apps/web/public/flags/bn.svg
new file mode 100644
index 00000000..f544c25e
--- /dev/null
+++ b/apps/web/public/flags/bn.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bn" viewBox="0 0 640 480">
+ <path fill="#f7e017" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 33.3v213.4l640 100V233.3z"/>
+ <path fill="#000001" d="M0 146.7v100l640 200v-100z"/>
+ <g fill="#cf1126" transform="translate(-160)scale(.66667)">
+ <path d="M695.7 569.7a117 117 0 0 1-49.4-17.2c-2.4-1.6-4.6-3-5-3s-.6 1.9-.6 4.1c0 6.4-2.6 9.6-9 11.3-6.2 1.6-15.6-1.6-23.2-8a68 68 0 0 0-24.7-13.5 40 40 0 0 0-28 3.6 9 9 0 0 1-2.8 1.3c-1.1 0-1-6.9.2-9 1.5-3 5.1-5.8 9.4-7.3 2.2-.8 4-1.8 4-2.3s-.8-2-1.7-3.6q-4.3-7.9 3.4-13.9c5.2-4 14-4.6 21.7-1.7l4 1.4c1 0 .4-1.5-2.4-5.6-3.2-4.7-3.9-7-3.5-12.7a15 15 0 0 1 13.5-13.5c5.8-.4 9.4 1.6 18 9.7a144 144 0 0 0 86 41.6c8.3 1 24.8.5 34.5-1a156 156 0 0 0 81.8-40.8c6.4-6 9.4-7.6 14.7-7.6 4.5 0 7.7 1.4 11 5 3 3.3 4 6.4 3.6 11.5-.2 3.2-.7 4.7-2.6 7.9-2.8 4.5-2.3 5 3.2 2.8 7.6-3 16.9-1.6 21.9 3.2 4.4 4.2 4.8 8.4 1.4 14-1.3 2.1-2.3 4-2.3 4.4 0 .6 1 .8 5.5 1.6 6 1 9.5 5.4 9.5 12.2 0 2-.3 3.7-.6 3.7s-2.6-.9-5-1.9c-7-2.9-11-3.6-19.2-3.5-6.2 0-8.3.3-12.6 1.7a58 58 0 0 0-19.5 11.5c-6.4 5.7-10.4 7.5-16.6 7.4q-8.7 0-11.8-5c-1.1-1.8-1.3-2.8-1-6.8.2-2.6.1-4.7 0-4.7-.3 0-2.5 1.4-5 3.1A81 81 0 0 1 778 560a182 182 0 0 1-82.3 9.7"/>
+ <path d="M706.3 525.2a136 136 0 0 1-97.9-55.7c-24.4-33.2-32-77.1-24.6-117.2 4-18.3 12-36.6 25.5-49.6a115 115 0 0 0-8.7 74.3c9 49.8 51 91.9 101.3 99.2 20 5.7 40.5-.4 59.5-6.5 42-14.8 74-54.6 77.8-99.1 3.3-24-.3-49.1-11.2-71 6.2 3.3 14 16.2 18.6 24.8 16 31 16.7 68.1 7.3 101.2-12.8 42.1-45 79-87.5 92.4a166 166 0 0 1-60 7.2z"/>
+ <g id="bn-a">
+ <path d="M512 469.9c-2.5-.4-5.3 2.1-4.3 4.7 1.8 2.6 5 4 7.8 5.2a54 54 0 0 0 23.2 3.6 50 50 0 0 0 17-3c3-1 6.8-2 8-5.4 1.3-2.1-1-4.3-3.1-3.9-3 .7-6 2-9 2.9a58 58 0 0 1-20.3 2 54 54 0 0 1-14.4-4.2c-1.6-.7-3.1-1.7-4.9-1.9"/>
+ <path d="M514.8 459.5c-2.5-.4-4.7 2.6-3.7 5 2 2.8 5.3 4.3 8.4 5.6a42 42 0 0 0 17 2.9h1.5a38 38 0 0 0 14.4-2.8c2.7-1.1 6.1-2.2 7.3-5.2.9-1.7.2-4.1-2-4.3-1.8 0-3.5 1.2-5.3 1.7a44 44 0 0 1-20.6 3.2c-4.4-.5-8.5-2.1-12.5-4-1.5-.7-2.8-1.8-4.5-2z"/>
+ <path d="M518.3 449.6c-2.2-.3-3.7 2.2-3.3 4.1.3 1.8 1.8 3 3.1 4a30 30 0 0 0 18.6 5.3h1.6a28 28 0 0 0 12-2.8c2.5-1 5.4-2.3 6.3-5.2.4-1.3.6-3.2-.9-4-1.6-.8-3.1.5-4.5 1a34 34 0 0 1-15.5 3.9 27 27 0 0 1-13.1-4c-1.5-.7-2.7-2-4.3-2.3"/>
+ <path d="M481.5 302.7c-3.2 3.3-.7 9.3-1 13.5 1.8 13.2 3.9 26.5 8.8 39 6 12 18.8 18.5 26.5 29.2 2.8 5.1 1.8 11.3 2.4 17q.5 23 0 46c7 3.6 14.5 7 22.5 5.7 4.7-1.1 13.5-1.8 14.5-6.5l-1-79.5c-2.7-8.1-11-12.3-17.1-17.5a156 156 0 0 1-14.2-16.1c-2.6-4.5-12.9-6-9.2 1.6 2.2 6.7 7.7 11.6 9.1 18.6.3 3.9 5 11 1 13.2a25 25 0 0 0-10.7-10c-4.4-3.3-11.7-4.7-13.3-10.5a43 43 0 0 0-11-22c1.5-7.4 0-16.7-6.4-21.5z"/>
+ <path d="M491.4 304.2c-3 .5-2.8 4.2-1.5 6.2a27 27 0 0 1 1.1 13.4 44 44 0 0 1 10.6 21.7c0 3 3.2 4 5.3 5.5 4.9 3.1 10.3 5.4 14.7 9.3.9 1 1.6 2 1 0-.7-2.6-1-5.4-3-7.3-2.8-3-6.2-5.6-10.2-6.4-.3-4.2-2.3-8-4.1-11.6-2-3.5-4.1-7.2-7.5-9.4 0-6.1 0-12.5-2.6-18.2-.8-1.4-2-3.1-3.8-3.2"/>
+ <path d="M499.7 306.6c-2 .6-1.6 3.2-1 4.7a54 54 0 0 1 1 13.2c3.9 3 6.2 7.4 8.4 11.6q2.2 4.2 3.1 8.9c3.1 1 5.8 3 8.2 5-1-2.8-3-5-4.5-7.7s-3-5.6-3.7-8.7c-3-3.1-4.6-7.6-4-12 .2-4.7-1.3-9.6-4.5-13.2-.8-.8-1.8-1.7-3-1.8"/>
+ <path d="M509.2 308c-1.2.2-1.8 1.2-2.4 2.1-.3.9.8 1.8 1 2.8a22 22 0 0 1 1.4 10.4q0 3.9 2 7a4 4 0 0 1 3.5-2.8c.5 0 1.4.2 1-.7q-.4-7.3-2.8-14a10 10 0 0 0-2.8-4.5q-.4-.4-1-.3z"/>
+ </g>
+ <use xlink:href="#bn-a" width="100%" height="100%" transform="matrix(-1 0 0 1 1440 0)"/>
+ <path d="M715.7 476a36 36 0 0 1-29.9-24c.3-2.2 3 1.2 4.3 1.5a19 19 0 0 0 8 2.6c3.5 1.5 5.7 5 9.1 6.9 1.6 1.2 7.2 3.6 6.1-.3-1.3-2-2.2-4.6-1-7 1.8-4.1 4.7-7.7 7.7-11.2 2.1-.7 3.6 3.6 5.1 5 2.1 3.3 4.7 7.3 3.4 11.3-1.2 1.5-2 6 1.3 4.6 4-1.8 7.3-4.8 10.6-7.6 3-2 6.7-2.1 9.7-4 1.5-.3 4.4-3.1 5-1.6a45 45 0 0 1-7.4 12.3 32 32 0 0 1-18.8 10.9q-6.6 1.2-13.2.6"/>
+ <path d="M731.5 460.2q.4-4-1.7-8-3.3-6.2-8-11.9c-2.8-1.6-4.3 3.7-6.1 5.2-2.9 4.3-6.5 8.7-6.7 14-1.6 2.5-4.6-2-5.9-3.5a19 19 0 0 1-4-12 51 51 0 0 1 3.6-20.6c2-5.6 5.1-11 4.8-17 .2-4.7-.7-9.7-4.4-12.8-3.6-2.8 2.3-3.4 4.1-2 3.2.3 4.9 5.5 7.8 4.2 1.1-2.7 1.4-6 3.8-8.1 2.3-3.2 4.7 1.3 5.5 3.5 1.7 1.8 0 6.5 2.6 6.6 3.2-2.3 5.5-6 9.6-6.9 1.7-1 4.5 0 2.3 1.8-3 2.9-5.6 6.4-6.2 10.7-.9 5.3.4 10.7 2.7 15.4 4.5 9.4 8 20 5.7 30.5-1 4.6-4.2 8.6-8 11.3-.5.3-1.3.3-1.5-.4"/>
+ <path d="M726.7 389.6a21 21 0 0 0-5.6-7c-2.4 0-3.9 3-5.5 4.6-1.1 2.1-2.5 5.6-5.3 2.9-4.5-2.6-5.2-8.3-5.2-13-.3-7.6 2.8-14.7 5.5-21.6 1.7-4.3 1.3-9.2.2-13.6-1.3-5-5.4-8.6-8.5-12.6.2-1.5 4.2-.7 5.7-.4 3.4.9 5.4 3.8 7.9 6 1.8-.6 1-4.2 1.9-5.9 0-2.4 3.2-5.5 4.5-2.1 2 2.2 0 6.5 2.5 7.8 2.4-.9 3.6-3.5 5.8-4.7a8 8 0 0 1 7.8-.5c.9 2.2-2.6 4-3.6 6a20 20 0 0 0-3.8 18c1.4 5 3.8 9.5 4.7 14.5a40 40 0 0 1-.5 17.2c-.9 3.4-3.8 5.6-6.8 7q-1-1.1-1.7-2.6"/>
+ <path d="M711.6 326.9c-3.4-2.5-4.5-4.8-4.5-9.5 0-2.3.5-3.6 2-5.8q3.6-4.7-1.3-3.3-7.8 2.3-8-4.3c0-2.2.4-3.1 3.3-6.7q3.6-4.1 2.8-4.8-.6-.7-9 7.8a124 124 0 0 1-11.4 10.6c-9.8 6.6-19.2 7.6-23.5 2.5-2.2-2.6-2.1-4 .4-5.6a27 27 0 0 0 4.4-3.7 86 86 0 0 1 16.1-11.6q5.5-2.9 2.1-3c-3 0-12.5 6.2-19.8 12.8-2.1 2-5.2 4.2-6.8 5a25 25 0 0 1-13.9 1c-2.2-.7-6.3-4.5-6.3-5.9 0-.3 1-1.1 2-1.8a30 30 0 0 0 4.6-3.2c5.8-5 16.8-10.3 25.5-12.2 2.8-.5 1.7-2-1.4-1.8a56 56 0 0 0-25 11.7c-8.3 6.9-20.8 6.2-24.8-1.3-.7-1.3-1.2-2.5-1-2.7a93 93 0 0 0 20.4-7.8 52 52 0 0 1 18.1-6.5c2.8-.5 3-1.9.3-2.2-3.6-.4-9 1.4-18.5 6-12.3 6.1-15.8 7.2-22.2 6.8-6-.4-9.3-1.9-14-6.4-3.2-3-7.6-10.5-6.8-11.4a64 64 0 0 0 15.8 1.3c8.3 0 10.6-.2 15-1.5a84 84 0 0 0 24-12.1 58 58 0 0 1 36.8-13.6c12.4 0 20.2 2.8 27.2 9.9 2.4 2.4 4.4 3.9 4.7 3.6s.6-4.5.7-9.3c0 0 3.7-.4 4.5.7 0 7.7 0 8.4 1.2 8.4q1.2-.1 2-2c1-2.5 5-6 9.2-8.2 9-4.5 24.7-4.7 37.3-.3a62 62 0 0 1 16.7 9.5 90 90 0 0 0 24 12c6.8 2 19 2.5 25.1 1l5.4-1c2.3 0-1.6 7.6-6.2 12.1-8.4 8.2-19.3 8.1-34.6-.1-9.6-5.2-21-8-21-5.2q0 1 1.5 1 5 0 18.7 6.5a54 54 0 0 0 18.3 6.5q3.5 0 .2 4.7-3.5 5-11.7 5c-5.3 0-8.3-1.1-13-5-8-6.6-27.6-14-26.9-10q.2 1 3.2 1.5a56 56 0 0 1 23.1 11l5.9 4.3c1.1.6 1.1.8.2 2.5-1.4 2.8-5.2 4.9-9.2 5.3q-7.6 1-14.5-5c-10-8.3-19.3-14.3-22.3-14.3q-3.7.1 3 3.7a80 80 0 0 1 15.8 11c2 1.9 4.3 3.7 5 4.1 1.9 1 1.8 2.4-.2 5s-5.4 3.8-9.7 3.3c-8.6-.9-15.4-5-26-16a71 71 0 0 0-8.2-7.8q-2 .2 2.2 5c3.4 3.7 4 5.8 2.7 9-1.1 2.6-3 3.3-6.8 2.2q-6-1.5-2 3.1c3.8 4.9 3.3 10.7-1.5 14.8a12 12 0 0 1-3.4 2.3q-.8-.1-2.3-2.4-4.3-6.9-8.7 0l-2 3z"/>
+ <path d="m726.7 233-5.2 4-4.6-3.4v27.8h9.8z"/>
+ <path d="M694.9 204.3a88 88 0 0 1-9 32.3l11.1-10.3 7.7 9.2 8.4-9.4 8.5 8 8.2-8.3 8.5 10 7.4-8.2 12.6 9c-4.6-10-10.7-18.6-10-32.8-12.1 9-41 10.6-53.4.4z"/>
+ <path d="M717 197.6q-7-.2-13.4 1a20 20 0 0 0-7.8 3c.3 8.6 41 12.1 51.9.2a20 20 0 0 0-8.2-3.3c-4-.8-8.6-.8-12.9-1v7.1H717z"/>
+ <path d="M724.9 154h-6.3v49.4h6.4z"/>
+ <path d="m724.9 155.2-2.4 23.7 24.3 11.9-12.3-16.5 16.8-5.5zm-2.7-6.1c-3.7 0-6.4 1.4-6.4 3s2.7 3 6.4 3 6.4-1.4 6.4-3-2.7-3-6.4-3"/>
+ </g>
+ <g fill="#f7e017">
+ <path d="M314 375.9q3.8-1.1 5.3-5.6c.5-1.6.9-3.2.8-3.6-.2-1-1.4-1-2.6.1-.9.7-1 1.1-.8 2.6.7 3.7-.7 4.7-7.7 5.4-.7 0-2.8 0-4.5-.3q-5.1-.6-3.4 1l2.1.9c1.9.5 8.8.2 10.8-.5m14.7-.6c.4-.4 1.7-1 3-1.5q2.4-.6 3.3-2.2c2.1-3 1.7-5.7-1.3-9.3-1.7-2-2.4-1.9-3.7.3-1.2 1.8-1.1 2 .5 2.4q1.4.4 2.1 1.6 2.7 4.8-1.4 5c-2.4 0-3 .4-3.7 2l-.6 1.9c0 .6 1 .5 1.8-.2m-4.8-3.5c.4-1.3.6-3.5.5-8a33 33 0 0 0-.3-6.4c-.4-.4-2.3.8-2.6 1.7a3 3 0 0 0 .5 2.1c.6 1.2.7 2.4.5 7q-.5 8.9 1.4 3.6"/>
+ <path d="m312.6 369 .7-5c.1-1.7.5-3.8.7-4.7q1-3.5-1.8-1.6l-1.3 1 .2 3.3c.3 3-.2 8.5-.9 10.7q-.3.9.9-.5c.6-.7 1.3-2.2 1.5-3.3zm-10 1.6c2.4-2 2.1-5.6 2.7-8.4 0-1.9 1.2-4.1.4-5.8-2.3.4-3.7 2.6-2.5 4.7 0 2.5 0 5.2-1.3 7.4-1 1.5-4.4 1.1-4.2-1 .8-3-2.9-1.5-4.3-.7-1.1.8-3.5.9-2.6-1-.6-2.7-3.9-1-5.7-1-1.7 0-.1-3.5-2.6-3-4.5-.3-9.5.1-13.5-2.6-2.3-1.1-2-3.9-.7-5.7 1.4-2.4 1.8-5.5 4-7.4 2.3-2.1-2-1.2-3-.5-2.2 1.2-.2 4.3-2 6-1 1.8-2.4 4.2-4.8 3.9-3.5-.7-5.5-4-8-6-2.2-.5-1 3.4.2 4.2a22 22 0 0 0 7.4 3.6c2.6-.5 2.7 3 5 3.5 4 2 8.6 2.5 13.1 2.8 1.8.1.8 3.3 3.1 2.6 1.3.4 4.3-.5 4.4 1-2 2.4 1.9 2.3 3.3 2 1.9-.4 4.2-1 4.7 1.4 1.5 1.7 4.3 1.4 6.2.5z"/>
+ <path d="M262.8 350.4a24 24 0 0 0 2.4-4.2 16 16 0 0 1 2-3.6q1.6-2-1.4-1.6-1.4.2-1.5 1.5a23 23 0 0 1-2.5 7c-1.7 2.5-1.7 2.6-1 2.6q.6-.2 2-1.7m-25-15.7c-1.9 0-2 1.2-.2 1.8q1.4.4 2.3 2.3c1.7 3.5 2.8 4.2 7.5 4.6l3 .2.2 1.9q.1 1.7.5 1.8l2.6-1c2.2-1.2 4.3-3.8 4.3-5.5 0-1-1.8-2.2-3.4-2.2-.7 0-2 .6-3.1 1.4-3.4 2.4-7 2-9-1.2q-2.3-4-4.7-4zm16.3 6.5q1.3 0 .6 2a.9.9 0 0 1-1.7 0c-.4-1 .1-2 1-2zm126.5-4c-1.3 0-1.6.2-2.4 1.4-1.3 1.9-1.4 6-.2 7.4.7.9.8.9 2.3.2 2.2-.9 2.6-.8 2.5.3 0 3-4.2 8.7-8.6 11.7a10 10 0 0 0-2.4 2c-.3.8 1.3.7 3.3-.4a21 21 0 0 0 7.9-8c1.1-2.3 1.3-3 1.5-7 0-3.8 0-5-.6-6.2-.8-1.4-1-1.5-2.8-1.5h-.5zm.1 2.5c1 0 1 .2 1.2 1.6q.1 1.4-.7 2.3c-.8.7-1 .7-1.6-.4-1-1.6-.4-3.5 1.1-3.5m-20.2 28.5c3.9-2 6.2-4.1 7.6-7.2l1.3-3.1c0-.6-1.9-1.5-3-1.5s-1.4-.8-1-3c.5-2.1 0-4.8-1-4.8q-.7.1-1.3 1.1c-.6 1-.7 1.4-.2 2.7q1 3-1.7 4.9-1.3 1-1.3 2l.1 1 2.1-1 2-1.2 1.1 1q1.1.8 1.2 1.7c0 2.4-6.8 6.4-11.4 6.8-2.5.2-3 0-3.8-.8q-1-1-.7-2l.5-2.6q.5-3-2 .6c-1.2 2-1.6 4.1-.9 5.2.6 1 4.4 1.8 7.2 1.6q2.5 0 5.2-1.4m26-14.5c2.4-2.5 3.5-5.5 3.5-10v-3.5l2-1c2.7-1.2 5.2-3.7 5.2-5.1q0-2.1-1.8.2c-.9 1.1-2 1.8-6 3.7-1 .4-1.1.7-1.4 5-.2 5-1 6.8-3.7 10.2-1.7 2-1.8 2.4-.6 2.4.5 0 1.8-.9 2.8-2zm-26.7-2.8c.2-.7-1.2-1.2-1.7-.6q-.5.4-.2.9c.4.6 1.6.4 1.9-.3m36.8-9.5c.3-.8-1.1-1.3-1.7-.7q-.4.5-.1 1c.4.6 1.6.4 1.8-.3m-44.3-25.9q-1.4 1-2.1 2.3c-.5.3-.1.6.1 1 1.7 1.7 2.4 4.2 3.2 6.5.8 2.7 1.8 5.6 1 8.4-.3 1-1.2 2.1-2.4 1.8-2-.1-4-.7-6-.7-1.9.1-3.3 1.8-5.1 1.6-1.2 0-1.2-2.4-2.2-1.7-.6 1.3-.3 2.7-.4 4q.5.3 1.1.2h3.7c.2 1.2.2 2.7 1 3.7q2 .4 4-.5c1.2-.6 1.4-2.1 1.8-3.3.4-1.3 2-1 3-1.5a6 6 0 0 0 4-5.7c-.2-3.9-1.6-7.4-2.8-11l-1.5-4.9zm-6 21.8c1.3 0 1.9 1.6 1.6 2.7-.5 1.5-2.4.6-2.7-.5-.7-1-.3-2.3 1-2.2z"/>
+ <path d="M296 324.8q-1 0-2 .7c-3.5 2.5-4.5 5.4-2 6.6q2.6 1.1-1.5 3.2c-4 2-7.5 1.7-14.2-1q-2.3-1-1.7 1c.4 1.5 1.8 2.3 5.1 3 3.6 1 8 .7 10.8-.5a14 14 0 0 0 4.3-3.4l2.2-2.3 2.5.3c3.1.4 3.2.4 3.2 1.9 0 1.2 0 1.2 2.9 1.5l4.7.2q1.9 0 2.4.9c.6.7.9.8 5.6.4 4.4-.4 5.2-.4 7.2.3q2.3.6 4.1.5c3.4-.4 8-3.1 8.7-5.1 0-.3 1.3-.7 2.7-1q5-1.1.4-1.8a23 23 0 0 1-4.6-1.1 12 12 0 0 0-3.5-.9c-1.7 0-3.3 1-3.3 2.2 0 .7.2.8 2.3.6 1.8-.2 2.4-.1 3.4.7q1.1.9 1 1.3c-.5.8-4.5 2.6-6.2 2.9a5 5 0 0 1-3-.5c-1.6-.8-3.8-.9-4.3-.2q-.3.4-1.3-.5l-1-1-2.4 1q-3.4 1.6-3.3-.2c0-.5-.7-.6-4.2-.3-3.9.2-4.3.1-5-.7q-1-.9-.2-1.7c.4-.8.4-1 0-1.5q-.4-.6-2.5 0c-3.9 1-5 .5-5-2.5q-.2-3-2.3-3m-1 2.8q.3 0 .7.4.5.6.3 1.3c-.3.9-2 .9-2.3 0q-.3-.8.5-1.3z"/>
+ <path d="M288 330.4c2.4-1.5 2.4-1.4 2.7-5.5.2-3 .2-3.2-.6-3.2q-1.8 0-1.8 3.7c0 1.6-.2 2.3-1 3-2 2-6.8 1.1-7.5-1.3q-.3-1 1.1-3c2.1-3 1.7-3.8-1-1.5-1.7 1.6-2 1.6-1.7.3q.4-2-1.8-1.4-1.1.2-1.3 1.6-.3 1.2-1.3 1.5c-1.2.3-3.2-.8-3.2-1.8 0-.7 3-4.4 6.9-8.4 1.4-1.5 2.6-3 2.6-3.1q-.2-.4-1.7-.4-2 0-1.8.8c0 .4-1.9 3-4.3 5.7-5 5.6-5.4 6.7-3 8.2a6 6 0 0 0 6.6-.2l1.6-1.1v2c0 2.5.5 3.5 2.5 4.5a8 8 0 0 0 8-.4m104.4-34.6c-1.8 1.1-.4 3.4 0 5-.8 2-3.5 2.6-5.5 3-2.8.5-4.8 2.8-5.8 5.3-.6 1.6-2 4-3.5 1.6-1.3-1.3-3.7-2.4-5.2-.8-1.2 1.1-1.5 2.7-2 4.2-.7-1.1-1-2.8-2.4-3.2-2.4.3-1.5 3.3-.4 4.5 1 1.5 2 3.3 1 5-1 2-4 3.4-5.7 1.7-1.6-.9-.5-4-2.2-4.2-.8.6-.8 3.9-2.1 2.1-1-1.5-.4-3.6-1.6-4.9-1.3.2-2.4 2.5-2 3.7 1.8 2.4 2.6 5.4 3.3 8.3.4 1.2-.1 3.5 1 4 .7-1.9 0-4 .6-5.9 1.8-.2 3.7.6 5.5.2 2.7-.3 4.7-2.6 5.6-4.9q.3-2.7-.1-5.4c2 .4 4.2.4 6.2 1 1 1.5-.3 3.7-.6 5.3-1 3.4-3.7 5.8-6.2 8-1.1.7-1.2 2.4.3 1.5a15 15 0 0 0 7.5-8c1.1-2.6.2-5.5 1-8.1 1-2 3.5-1.6 5.4-1.6s3.5-2.3 2.9-4.2c-.6-2.2 1.7-3.2 3.2-4 2.1-1 3.7-3.1 3.5-5.5 0-1.3 0-3.6-1.7-3.7m-7.3 12.5c2.2.6-.4 4.8-1.6 2.1-.4-1 .5-2.1 1.6-2.1m-10.3 3c2.9-.1 1.8 4-.6 2.2-1.3-.7-.9-2.2.6-2.2M270 327.6q0-.6-.6-.7c-.7 0-1.2.7-.9 1.3.4.7 1.3.3 1.5-.6m34-3.6q0-1-.8-.8c-1.1.2-1.3 1.7-.1 1.7q.9 0 .9-1zm-42-20.4c-1.3-.3-2.2.9-2.7 2q-1.4 2.8-4 4.3-2 .4-3.9-.8c-1.3-.7-1-2.3-1.6-3.4-1-.8-2.7.3-2.6 1.5-.1 1.6 1.3 2.5 2.6 3.1 1 .7 2.6 1 3 2.3 0 1.1.4 2.4 1.7 2 1.5 0 2 1.8 1.3 2.9a6 6 0 0 0-.7 4c.7.7 1.4-1 2-1.4l1-1.4q4 .4 8 .4c2 0 3.5-1.2 4.7-2.6 1.8-1.8 3.2-3.9 5.1-5.4 1.4-.4.7-3-.8-2.2-1.3.5-1.7 2-2.6 2.9a31 31 0 0 1-5 5.2c-1.5.6-3.1.3-4.6 0-.6-.5 1.2-1 1.5-1.6q1.4-1.1 2.3-2.7c-.5-1-1.9-1-2.9-1-2.4.2-4.3 2.3-6.8 2.5-1.9 0-.9-2 0-2.7q2.5-3 5.1-5.7c.5-.6 2.3-1.2 1.2-2q-.6-.2-1.3-.2m1.2 10c1.3.7-.8 1.8-1.6 1.7-1.1.3-1.2-.8-.2-1q.9-.6 1.8-.7m-3.8 2.6c.7 0 2.2.7.8 1.1-1 .8-2-.8-.8-1.1"/>
+ <path d="M289.4 317.8c0-1-1.6-.8-1.8.2q-.3.8.8.6 1-.1 1-.8m74.7-6.6c.2-.9-1-1.5-1.7-.8s0 1.9.8 1.7q.6-.1 1-.9zM248 302.1c1.1-1 1.2-1.1.7-3.3-.8-3.1-.7-3.5.5-3.8 1.5-.3 5.3 1.7 6 3.3.8 1.3.7 1.4-.4 2.4-1.2 1.1-1.2 2.4 0 2.4 1 0 3.7-2.6 3.7-3.5 0-1.3-3-4.4-5.4-5.5a11 11 0 0 0-4.6-1c-3.1 0-3.5.7-2.7 4.2q1.4 6.4-3.7 1.6a10 10 0 0 1-3.5-8.6q0-6 5.1-6.6 3.5-.6 0-1.2c-3.6-.6-6.6 1.8-7.7 6-1.3 4.7 1.6 10.4 6.7 13.3 2.7 1.5 3.7 1.6 5.3.3m139.2-5.2q.5-.5.5-1.4.1-1.3 1.1-2.4 1-1.4 1-1.8c0-.8-1.3-.8-2.3 0q-1.8 1.4-2 0l1.2-.9q2.4-1.1.4-2.1c-1.7-.8-3.5.6-3.6 3-.1 1.6 0 1.8 1.2 2.5s1.3 1 1.1 2q-.3 2.6 1.4 1.1m13-1.4q1.6-1.6 1.8-2.2t1.9-2c2.8-2 3.5-4 2.2-7.3-.5-1.3-2-3-5.5-6a26 26 0 0 0-5.4-4.4c-.9 0-.7 3.4.2 3.7 1.7.6 2.8 1.3 5.4 3.7 3.2 2.8 4.6 5.5 3.8 7-.7 1.4-1.7 1-4.5-2a14 14 0 0 0-3.2-2.9q-.5.1-.5 1.4-.1 1.4 2 3.5c2.3 2.6 2.5 4.1.7 5.5l-1.4 1a33 33 0 0 0-9-10q-.5 0-.5 1.4c0 1.3.2 1.7 1.2 2.2a38 38 0 0 1 7 7l1.8 2zm6-16.8c-.5-1.2-8.4-9.4-9.3-9.4q-.6 0-.4 1.8c0 1.6.3 1.8 1.4 2.1a20 20 0 0 1 4.6 3.7 17 17 0 0 0 3.7 3zm-47.8 92.6a1.2 1 0 1 1-2.3 0 1.2 1 0 1 1 2.3 0m4.2-1.4a1.2 1 0 1 1-2.4 0 1.2 1 0 1 1 2.4 0"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bo.svg b/apps/web/public/flags/bo.svg
new file mode 100644
index 00000000..7658e3f6
--- /dev/null
+++ b/apps/web/public/flags/bo.svg
@@ -0,0 +1,673 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bo" viewBox="0 0 640 480">
+ <path fill="#007934" d="M0 0h640v480H0z"/>
+ <path fill="#ffe000" d="M0 0h640v320H0z"/>
+ <path fill="#d52b1e" d="M0 0h640v160H0z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m368.6 210.7-98 97.9-1.3-1 98-97.8 1.3 1z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M374.7 204.5c-.4.7-1.4 2.5-1 3.8l-2-1.5q.7 1.4-.1 1.8c-.3.4-1.4.3-2.1.2q1 .7 2.4 1h2c-.7.3-2.2.8-3.3 1-.5.1-1.6.2-2 0-.6.5-1.9-.4-1.3-1q-.4-.5-.4-1.4-.1-1.2.7-3l.5 1.7q.4.8 1.1 1.4-.5-.8.1-1.8.9-.7 2-.2l-1.9-1.3c.8 0 3.3-1 4.1-1.5l4.9-3.8z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m387 222.8-125.7 70.9-.9-1.2 125.7-71 1 1.3z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M394.9 218.3c-.6.6-2.2 2-2.2 3.4l-1.4-2q.2 1.4-.7 1.7c-.4.4-1.4 0-2-.3a5 5 0 0 0 2 1.5l1.7.6c-.6.1-2.3.3-3.4.2-.5 0-1.5-.2-1.9-.6-.7.4-1.6-.8-1-1.2l.2-1.4q.3-1.2 1.6-2.8v1.8q.1.7.5 1.6-.2-1 .7-1.7 1-.5 2 .3l-1.4-1.7c.8.1 3.5-.2 4.4-.5l6-2.5c-1.7 1-4.6 3-5.1 3.6z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m376.3 217.5-113 85.2-1-1.1 112.9-85.2 1.1 1z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M383.4 212.1c-.5.6-1.8 2.3-1.6 3.6L380 214q.4 1.4-.4 1.7c-.4.4-1.5.2-2.1 0q.9.8 2.2 1.2l1.9.3c-.7.3-2.3.6-3.4.6-.5 0-1.6 0-2-.3-.6.5-1.7-.6-1.1-1.1q-.2-.5-.1-1.4a6 6 0 0 1 1.1-3l.2 1.8q.3.8.9 1.6-.4-.9.4-1.8 1-.5 2 0l-1.6-1.5c.7 0 3.3-.6 4.2-1s3.8-2 5.5-3.1c-1.4 1.2-4 3.5-4.4 4z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m271.4 210.7 98 97.9 1.3-1-98-97.8-1.3 1z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M265.3 204.5c.4.7 1.4 2.5 1 3.8l2-1.5q-.7 1.4.1 1.8c.3.4 1.4.3 2.1.2q-1 .7-2.4 1h-2c.7.3 2.2.8 3.3 1 .5.1 1.6.2 2 0 .6.5 1.9-.4 1.3-1q.4-.5.4-1.4.1-1.2-.7-3l-.5 1.7q-.4.8-1.1 1.4.5-.8-.1-1.8-.9-.7-2-.2l1.9-1.3c-.8 0-3.3-1-4.1-1.5l-4.9-3.8z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m253 222.8 125.7 70.9c.2-.3.6-1 .9-1.2l-125.7-71-1 1.3z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M245.1 218.3c.6.6 2.2 2 2.2 3.4l1.4-2q-.2 1.4.7 1.7c.4.4 1.4 0 2-.3a5 5 0 0 1-2 1.5l-1.8.6c.7.1 2.3.3 3.4.2.6 0 1.6-.2 2-.6.7.4 1.6-.8 1-1.2l-.2-1.4a6 6 0 0 0-1.6-2.8v1.8q-.1.7-.5 1.6.2-1-.7-1.7-1-.5-2 .3l1.4-1.7a17 17 0 0 1-4.4-.5l-6-2.5c1.7 1 4.6 3 5.1 3.6z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m263.7 217.5 113 85.2 1-1.1-112.9-85.2-1.1 1z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.6 212.1c.5.6 1.8 2.3 1.6 3.6l1.7-1.7q-.4 1.4.4 1.7c.4.4 1.5.2 2.1 0a5 5 0 0 1-2.2 1.2l-1.9.3c.7.3 2.3.6 3.4.6.5 0 1.6 0 2-.3.6.5 1.7-.6 1.1-1.1q.2-.5.1-1.4a6 6 0 0 0-1.1-3l-.2 1.8q-.3.8-.9 1.6.4-.9-.4-1.8-1-.5-2 0l1.6-1.5a15 15 0 0 1-4.2-1c-1-.4-3.8-2-5.5-3.1 1.4 1.2 4 3.5 4.4 4z"/>
+ <path fill="#00e519" stroke="#000" stroke-width=".1" d="M300.1 283.4c4-2.6 15.1-4 16.7-3.6-8 6-16 6.3-16.7 3.7z"/>
+ <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 0 1-16.6 3.6z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 0 1-16.6 3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M300.1 283.4a41 41 0 0 1 16.7-3.6c-8 6-16 6.3-16.7 3.6z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M347.6 220.2 322 272.5c-1.3 1-2.3-.3-2.7-.2-1.5 1.7-3.6 2-4 2.5-1.8 2.4-.8 4.3-.7 4.5 1.3 1.8-1.6 3.5-1.5 4-.6 1-2.7.9-3.1 2l-4.8 9.3c-.6.5-3.7 6.1-3.7 6.1-2 0-10.2-5.2-10.4-5.1 4.6-7.3 15.6-18.5 15.3-19.2 3.1-5.2 8-10.9 10.1-10.8 3-1.6 4.5-5.7 4-6.6 2.2 0 3.5-1.4 3.6-1.5l18.8-37.6c1.6-.5 1.4.1 1.9 1 0 0 1-1.2.9-1.3.9-.4 1.8.2 1.8.6z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2q-1.2-.4-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2q-1.2-.4-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M308.8 272.4c-3 0-4.6 2-2.7 4.7m1.4-2.4c-1 .6-1.7-.3-1.7-.3m15.2-13c-1.5 5.6-4.3 9.3-5 10.4-2 2.2-3.9 7.2-3.5 8.1l-8.1 13.3"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2q6.1 4.9 7.6 5.4c.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2q6.1 4.9 7.6 5.4c.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6l4.8-2.6"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6m-3.5.7q.3.6 1.1.5.9-.4.6-1-.4-.8-1.2-.5t-.5 1zm2.5-3.4q.3.6 1.2.4.8-.3.5-1t-1.2-.5q-.8.4-.5 1z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M345.3 226.1q1.3-.5.8-2l-4.7-1.7s-.6 0-1 .7.1 1.2.1 1.2l4.8 1.8"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M345.3 226.1q1.3-.5.8-2l-4.7-1.7s-.6 0-1 .7.1 1.2.1 1.2l4.8 1.8"/>
+ <path fill="#00e519" stroke="#000" stroke-width=".1" d="M294.5 286c3.9-2.7 15-4.2 16.6-3.8-7.8 6.2-15.8 6.5-16.6 3.9z"/>
+ <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62 62 0 0 1-16.5 3.9z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62 62 0 0 1-16.5 3.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M294.6 286a40 40 0 0 1 16.6-3.9c-7.9 6.2-16 6.6-16.6 4z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m340.7 222-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m340.7 222-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3q2 .2 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1q-1.2-.4-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3q2 .2 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1q-1.2-.4-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M303 275c-3-.2-4.6 2-2.6 4.6m1.3-2.4c-1 .6-1.7-.3-1.7-.3m15-13.3c-1.5 5.7-4.2 9.4-4.7 10.6-2.2 2.2-3.9 7.3-3.5 8.1l-7.8 13.4"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 0 0 7.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 0 0 7.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7l4.7-2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7m-3.6.8q.4.6 1.2.4.8-.4.5-1t-1.2-.5q-.8.4-.5 1zm2.4-3.5q.4.6 1.3.5.8-.4.5-1-.4-.8-1.2-.5t-.6 1z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M338.5 228q1.3-.5.7-2l-4.7-1.6s-.5 0-1 .7.2 1.2.2 1.2l4.8 1.8"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M338.5 228q1.3-.5.7-2l-4.7-1.6s-.5 0-1 .7.2 1.2.2 1.2l4.8 1.8"/>
+ <path fill="#00e519" stroke="#000" stroke-width=".1" d="M340.6 283.3a39 39 0 0 0-16.8-3.7c8 6.1 16.1 6.3 16.8 3.7z"/>
+ <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63 63 0 0 0 16.8 3.6z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63 63 0 0 0 16.8 3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M340.6 283.3c-4.2-3-15.8-4-16.9-3.7 8 6 16.2 6.3 16.9 3.6z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m292.7 219.3 25.7 52.9c1.3 1 2.4-.3 2.7-.2 1.6 1.7 3.7 2.1 4.2 2.5 1.8 2.4.8 4.4.7 4.6-1.4 1.8 1.5 3.5 1.4 4.1.6 1 2.7.8 3.2 2l4.8 9.3c.7.5 3.7 6.2 3.7 6.2 2.1 0 10.3-5.3 10.5-5.2-4.6-7.3-15.7-18.7-15.4-19.4-3.1-5.2-8.1-11-10.2-10.9-3-1.6-4.5-5.7-4-6.6-2.3 0-3.6-1.5-3.7-1.6l-19-37.9c-1.6-.5-1.3.1-1.9 1 0 0-1-1.2-.9-1.3-.9-.5-1.8.2-1.8.5z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1q1.2-.3.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1q1.2-.3.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M331.9 272.1c3 0 4.6 2.1 2.7 4.7m-1.4-2.3c1 .6 1.7-.4 1.7-.4M319.5 261c1.6 5.7 4.4 9.5 5 10.6 2.2 2.2 4 7.3 3.7 8.2l8.1 13.4"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2q-6.1 5-7.7 5.5c-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2q-6.1 5-7.7 5.5c-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7l-4.8-2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7m3.6.6a1 1 0 0 1-1.2.5.7.7 0 0 1-.5-1q.3-.7 1.2-.5.8.4.5 1zm-2.5-3.4q-.4.6-1.3.5-.7-.4-.5-1 .4-.8 1.2-.5t.6 1z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 0 1-.8-2l4.8-1.8s.5.1 1 .7-.2 1.2-.2 1.2l-4.8 1.9"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 0 1-.8-2l4.8-1.8s.5.1 1 .7-.2 1.2-.2 1.2l-4.8 1.9"/>
+ <path fill="#00e519" stroke="#000" stroke-width=".1" d="M345.6 286a38 38 0 0 0-16.6-3.8c7.9 6.2 15.9 6.5 16.6 3.9z"/>
+ <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62 62 0 0 0 16.5 3.9z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62 62 0 0 0 16.5 3.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M345.6 286a40 40 0 0 0-16.6-3.9c7.8 6.2 15.9 6.6 16.6 4z"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m299.5 222 24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m299.5 222 24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3q-2 .2-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1q1.4-.4.8-1.7L288.8 189l9.7 21.1.2.4"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3q-2 .2-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1q1.4-.4.8-1.7L288.8 189l9.7 21.1.2.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M337.2 275c3-.2 4.5 2 2.6 4.6m-1.4-2.4c1 .6 1.8-.3 1.8-.3m-15-13.3c1.4 5.7 4.2 9.4 4.7 10.6 2.1 2.2 3.8 7.3 3.5 8.1l7.8 13.4"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54 54 0 0 1-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54 54 0 0 1-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7l-4.7-2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7m3.6.8a1 1 0 0 1-1.2.4q-.8-.4-.6-1 .4-.7 1.3-.5.7.4.5 1zm-2.5-3.5q-.4.6-1.2.5-.8-.4-.5-1 .4-.8 1.2-.5t.5 1z"/>
+ <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M301.6 228q-1.2-.5-.7-2l4.7-1.6s.6 0 1 .7-.2 1.2-.2 1.2l-4.8 1.8"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M301.6 228q-1.2-.5-.7-2l4.7-1.6s.6 0 1 .7-.2 1.2-.2 1.2l-4.8 1.8"/>
+ <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m315.3 250.7 35.5-38-1.4-.9-35.6 38z"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M349.8 212.2c-1.2-1-3.4-2.2-5-1.8-.5-2.2 2.5-4.4 3.8-4-.3 2.3 3.2 3.8 3.1 3.8z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M352.1 210.4c1 .8 1.4.8 2.8 1.6 1.4.7 3.2-1.1 4.1-1.7 0 0 1 3.4-1.1 5.6-2 2.3-4.6 2.8-6.5 2.1 0 0 2.6-2.5 1.5-3.6-1-1.1-1.4-1.2-2.5-1.9"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M-27.7-406.5h4.1v2.2h-4.1z" transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m308.2 290.3-1 9 1.8-2.2c.3-.6 1.5-2.1 1.8-7.4 0 0-1-2.9-1.4-2.9-.7-.4-1.2 3.5-1.2 3.5zm2.2-20.1-2.7 15.8c0 .5 1.3 1.6 2.1-1.2l1.5-10.5z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m315.9 284.6-1.4-2-.4 3.1s2 1.5 1.7 4.3l.4-.6.2-1s.5-2 .5-3.1z"/>
+ <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M307.3 299.4s3.3-3 3.5-9.7l.4-1.9s0 1.5.8.4c.6-1.5.6-2.8.6-2.8s1.2-1.6 1.6.3l-1.2 9.6-.3 2s-.7-1-1.4.1-1.8 2.7-4 2zm4-25.1-1.5 10.5s1.2.6 1.4 3c.1 1.2.6.6.8.4.2-.8 0-2.3 0-2.3l.6-7.3s-1.2-3.4-1.3-4.3z"/>
+ <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m310.1 298.8-.2 2.6s1 0 1.7-1.2c.8-1.1 1-2.8 1-2.8s-.7-1.1-1.3 0c-.5 1-1.2 1.4-1.2 1.4zm1.8-10.6c.6-1 .8-2.6.7-2.8l-.7.5c.2 1.2 0 2.3 0 2.3z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M315.3 287.1a4 4 0 0 0-1.3-1.5l-1.5 12s-.4 3-2.3 3.7c0 0 1.1 10.3 4.5 7.5.4-.4 1-3.6.9-5.5l-.9-6a27 27 0 0 1 .5-4.7l.6-2.6c.2-.2 0-1.8-.5-2.9z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m316.9 285.3 1 1c.3 0-2.3 19.3-2.3 19.3s0-2-.7-6c-.6-3.2.2-7.5.9-9.6 0 0 .8-.5 1-4.7z"/>
+ <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m312.6 278.8-.7 7.1s1.8-2.4 2.2-.2l.4-3.2s-1.5-2.4-2-3.7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.3 287.8s-.6-6.1-3.6-1.8a10 10 0 0 0 0 3c0 .8.9 1.8 1.2 2.3.7 1 1.3-.2 1.3-.2s.7-1 1-3.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M287.8 237c-.1-3.5-1.2-9.3-1.3-13.3l-12-12.2s-1.4 9.9-5.8 15.5l19 10"/>
+ <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M288.7 237.3c.5-2.4 1-5 1.5-10.2l-7.7-7.6c0 3.2-3.6 8.1-3.9 14"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.3 244.7c1-4.3-1.3-4.8 2-10.8l-7.2-6.8c-1.3 4-2.2 6.6-2 10l6 4.4"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M267.6 270c-1.5-4.2.5-12.7.2-18-.1-3.5 2.5-16.7 2.4-20.6l-14.1-8.8s-.6 14.3-2.3 29.9q-2 12.1-.4 21.5c1.5 8.7 3 12.2 6.5 15.9 6.3 6.5 19.7 2.7 19.7 2.7 11.3-2.3 17.8-9.4 17.8-9.4s-3.7.8-9.6 1.4c-13-.9-18.2 2.4-18.6-11"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="m305.4 278.8.2-.1-5.9 1.9-8 .6c-17.2.4-15-10.3-14.3-27.5.1-6.6 1.4-14.8 1-17.7l-11.5-6.6c-3.8 10.6-2.6 18-3.3 23.5-.4 6-1.7 17.4.2 22.4 2.7 11.6 11.8 11.2 24.2 10.1 6.1-.5 9.4-2 9.4-2l8-4.6"/>
+ <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M305.6 278.5a34 34 0 0 1-6 2.2l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7 .2-10.2 2.6-19.5l7 4v.7c-.5 2-1.5 7-1.5 9.2 0 16 10.1 28.2 23.9 30.3h.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M260 230.6c1 2 8 12.5 12 14.5m-11-7.6c1.3 2 9.8 14 13.6 14.6m-15.5 3.6c2 2.4 4 7 9.7 10m-7 3.3c4 3.7 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.3 24 8.3m-26.7-6.3c1.2 2.6 10.1 17.3 26 11.6"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M277.8 264.8c-1.5-4.3.5-12.7.2-18.1-.1-3.5 1.5-15.5 1.5-19.5l-13.2-9.9s-.6 14.3-2.3 30a84 84 0 0 0-1.5 23.9c1.8 10 6.6 12.8 7.5 13.6 6.7 6 22 5.4 23.5 4.9 10.8-4 15.6-10.8 15.6-10.8s-5.2-.1-11.1.5c-13-1-19.7-.4-20.1-13.8"/>
+ <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M315.6 273.5h.2l-5.9 1.8-8 .6c-17.2.5-15-10.2-14.3-27.5.1-6.5.3-12.4 0-15.3l-10.3-7.6c-3.8 10.7-2.8 16.7-3.5 22.2-.4 5.8-1.7 17.3.2 22.3 2.7 11.7 11.8 11.2 24.2 10.2 6.1-.5 9.4-2.1 9.4-2.1l8-4.6"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M315.9 273.4c-2.4 1.2-6 2.1-6 2.1l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7-.3-7.5 2.2-16.9 3.8 2.5 11.1 8.8 11.1 8.8s-2 2.8-1.5 6.7c0 16 6.4 24 20.2 26.1l1.5-13"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M270.1 225.3c1.2 2 8.1 12.6 12 14.6m-10.8-7.7c1.2 2 9.7 14 13.5 14.7m-15.5 3.6c2 2.3 4 7 9.7 10m-7 3.3c4 3.6 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.2 24 8.3m-26.7-6.4c1.2 2.7 10.1 17.3 26 11.7"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m256.2 224-.7 6q-.2 6.6.1 9.8c0 .2.9 5.5.6 5.8-1 1.1-1.1 1.2-2.2.4-.1-.2.5-5.6.5-6.3l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m256.2 224-.7 6q-.2 6.6.1 9.8l.7 5.8c-1 1.1-1.2 1.6-2.3.7-.1-.2.5-5.9.5-6.6l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5z"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.2-.1 1.4-3.8 1.4-4.5.9-10.8 2.4-17 2.4-17s-.6 3.7.3-.4"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.1-.1 1.4-3.8 1.5-4.5.8-10.8 2.3-17.1 2.3-17.1s-.6 3.8.3-.3zm-.4 17.3s-1 .4-1 .2m0-1.3s.7 0 .8-.2m0-1s-.6.3-.8 0m.8-1.6h-.6m.6-1.5h-.6m.5-2.1s-.3.1-.4-.1m.5-1.7h-.5m-.5 9.5s-.9.2-1-.1m1.1-2s-.9.1-1-.1m1-1.3h-.7m.9-1.5h-.7m.7-1.7h-.5m.7-1.5h-.6m.6-1.7s-.4.3-.4 0m0 9s-.9 0-.9-.3m12.8-19.8-.7 6a63 63 0 0 0 0 9.8c0 .3 1 5.5.7 5.8-1 1.2-1.1 1.3-2.2.4-.1-.1.5-5.5.5-6.3l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m266.4 218.7-.7 6a73 73 0 0 0 .1 9.8l.7 5.8c-1 1.2-1.2 1.6-2.3.7-.1-.1.5-5.8.5-6.6l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6z"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5a127 127 0 0 1 2.4-17l.3-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5.9-10.8 2.4-17 2.4-17zm-.5 17.2s-1 .5-1 .2m0-1.2s.7 0 .8-.3m0-1s-.6.4-.8.1m.7-1.7h-.5m.6-1.5h-.6m.5-2s-.4 0-.4-.2m.5-1.7h-.5m-.5 9.6s-.9.1-1-.2m1.1-1.9s-.9 0-1-.2m1-1.3h-.7m.9-1.4h-.7m.7-1.7-.5-.1m.7-1.4-.6-.1m.6-1.6s-.4.2-.4 0m0 9s-.9 0-.9-.4"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.9c.8.5 1.5.2 2 0 .3-.1-1-3.3-1-4 .5-8.9-.4-14.3-.4-14.3l-.2-.2"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.8c0 .5-.1 0 0 .1.8.5 1.4.2 2 0 .2-.1-1-3.3-1-4 .5-9-.4-14.3-.4-14.3zm-.3 14.6s.9.2 1 0m-.8-1.7s.9.2 1 0m-1-1.2h.9m-.8-1.2h.7m-.5-1.4h.5m-.5-1.3h.5m-.4-1.4s.4.2.4 0m-1 7.4s1 .1 1-.1"/>
+ <path fill="#005000" stroke="#000" stroke-width=".1" d="M306 221.7h.8z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M316.7 256.4s-.3-.2-.4 0l.1.2zm-1 1.1 2.1-.1"/>
+ <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M292.2 284.2c-.2 3-7.4 6.6-12.7.1-5.7-4.5-4.5-11.4 0-12.3l54.7-53.3c2.2-1.2 2.4-2.3 3.5-3.5 2.3 2.5 7 6.8 9.6 9q-2.6 1.9-3.2 3.5z"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M337.8 215c2.6-3.5 12.8 5.8 10 8.7-2.6 2.8-12.4-5-10-8.6z"/>
+ <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347 223c-2 1.4-9.3-4.8-8.1-7.2 2-2.2 10.1 5.7 8 7.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M344 227.9a16 16 0 0 1-9.9-9m-23 44.8a16 16 0 0 1-11.4-11.6m9.1 14.3a16 16 0 0 1-11.4-11.6m-2.1 25.8c-5.8-1.8-10.4-6-12.2-12.1m9.8 14.8a18 18 0 0 1-12.3-12.2"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.4 285q-.4 2-2.1 1.4m13.7-2c-2.1 3.5-4.5 2.4-6.5 2.5"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M276.4 285.2q.2 1.6 1.7 1.6a2 2 0 0 0 1.7-1.6q-.1-1.6-1.7-1.6c-1.6 0-1.7 1-1.7 1.9"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.5 284.9q-.5 2-2 1.3m13.5-1.7c-2.1 3.4-4.5 2.3-6.5 2.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m331.8 290.3 1 9-1.8-2.2c-.3-.6-1.5-2.1-1.8-7.4 0 0 1-2.9 1.4-2.9.7-.4 1.2 3.5 1.2 3.5zm-2.2-20.1 2.7 15.8c0 .5-1.3 1.6-2.1-1.2l-1.5-10.5z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m324.1 284.6 1.4-2 .4 3.1s-2 1.5-1.7 4.3l-.4-.6-.2-1s-.5-2-.5-3.1z"/>
+ <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.8 299.4s-3.4-3-3.6-9.7l-.4-1.9s0 1.5-.8.4c-.6-1.5-.6-2.8-.6-2.8s-1.2-1.6-1.6.3l1.2 9.6.3 2s.7-1 1.4.1 1.8 2.7 4 2zm-4.1-25.1 1.5 10.5s-1.2.6-1.4 3c-.1 1.2-.6.6-.8.4-.2-.8 0-2.3 0-2.3l-.6-7.3s1.2-3.4 1.3-4.3z"/>
+ <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m329.9 298.8.2 2.6s-1 0-1.7-1.2c-.8-1.1-1-2.8-1-2.8s.7-1.1 1.3 0c.5 1 1.2 1.4 1.2 1.4zm-1.8-10.6a6 6 0 0 1-.7-2.8l.7.5c-.2 1.2 0 2.3 0 2.3z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M324.8 287.1a4 4 0 0 1 1.2-1.5l1.5 12s.4 3 2.3 3.7c0 0-1.1 10.3-4.5 7.5-.4-.4-1-3.6-.9-5.5l.9-6a27 27 0 0 0-.5-4.7l-.6-2.6c-.2-.2 0-1.8.5-2.9z"/>
+ <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m323.1 285.3-1 1c-.3 0 2.3 19.3 2.3 19.3s0-2 .7-6c.6-3.2-.2-7.5-.9-9.6 0 0-.8-.5-1-4.7z"/>
+ <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m327.4 278.8.7 7.1s-1.8-2.4-2.2-.2l-.4-3.2s1.5-2.4 2-3.7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.7 287.8s.6-6.1 3.6-1.8c0 0 .2 2.4 0 3 0 .8-.9 1.8-1.2 2.3-.7 1-1.3-.2-1.3-.2s-.7-1-1-3.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M352.2 237c.1-3.5 1.2-9.3 1.3-13.3l12-12.2s1.4 9.9 5.8 15.5l-19 10"/>
+ <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M351.3 237.3c-.5-2.4-1-5-1.5-10.2l7.7-7.6c0 3.2 3.6 8.1 3.9 14"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M344.7 244.7c-1-4.3 1.3-4.8-2-10.8l7.2-6.8c1.3 4 2.2 6.6 2 10l-6 4.4"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M372.4 270c1.5-4.2-.5-12.7-.2-18 .1-3.5-2.5-16.7-2.4-20.6l14.1-8.8s.6 14.3 2.3 29.9q2 12.1.4 21.5c-1.5 8.7-3 12.2-6.5 15.9-6.3 6.5-19.7 2.7-19.7 2.7-11.3-2.3-17.8-9.4-17.8-9.4s3.7.8 9.6 1.4c13-.9 18.2 2.4 18.6-11"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="m334.6 278.8-.2-.1 5.9 1.9 8 .6c17.2.4 15-10.3 14.3-27.5-.1-6.6-1.4-14.8-1-17.7l11.5-6.6c3.8 10.6 2.6 18 3.3 23.5.4 6 1.7 17.4-.2 22.4-2.7 11.6-11.8 11.2-24.2 10.1-6.1-.5-9.4-2-9.4-2l-8-4.6"/>
+ <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M334.4 278.5a34 34 0 0 0 6 2.2l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7-.2-10.2-2.6-19.5l-7 4v.7c.5 2 1.5 7 1.5 9.2 0 16-10.1 28.2-23.9 30.3h-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M380 230.6c-1 2-8 12.5-12 14.5m11-7.6c-1.3 2-9.8 14-13.6 14.6m15.5 3.6c-2 2.4-4 7-9.7 10m7 3.3c-4 3.7-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.3-24 8.3m26.7-6.3c-1.2 2.6-10.1 17.3-26 11.6"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M362.3 264.8c1.4-4.3-.6-12.7-.4-18.1.2-3.5-1.4-15.5-1.4-19.5l13.2-9.9s.6 14.3 2.3 30a84 84 0 0 1 1.5 23.9c-1.8 10-6.6 12.8-7.5 13.6-6.7 6-22 5.4-23.5 4.9-10.8-4-15.6-10.8-15.6-10.8s5.2-.1 11.1.5c13-1 19.7-.4 20.1-13.8"/>
+ <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M324.4 273.5h-.2l5.9 1.8 8 .6c17.2.5 15-10.2 14.3-27.5-.1-6.5-.3-12.4 0-15.3l10.3-7.6c3.8 10.7 2.8 16.7 3.5 22.2.4 5.8 1.7 17.3-.2 22.3-2.7 11.7-11.8 11.2-24.2 10.2-6.1-.5-9.4-2.1-9.4-2.1l-8-4.6"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M324.1 273.4a34 34 0 0 0 6 2.1l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7 .3-7.5-2.2-16.9-3.8 2.5-11.1 8.8-11.1 8.8s2 2.8 1.5 6.7c0 16-6.4 24-20.2 26.1l-1.5-13"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M369.9 225.3c-1.2 2-8.1 12.6-12 14.6m10.8-7.7c-1.2 2-9.7 14-13.5 14.7m15.5 3.6c-2 2.3-4 7-9.7 10m7 3.3c-4 3.6-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.2-24 8.3m26.7-6.4c-1.2 2.7-10.1 17.3-26 11.7"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="m383.8 224 .7 6q.3 6.6-.1 9.8c0 .2-.8 5.5-.6 5.8 1 1.1 1.1 1.2 2.2.4.1-.2-.5-5.6-.5-6.3l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m383.8 224 .7 6q.3 6.6-.1 9.8l-.7 5.8c1 1.1 1.2 1.6 2.3.7.1-.2-.5-5.9-.5-6.6l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5z"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7 0 .2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17-2.4-17s.6 3.7-.3-.4"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7-.1.2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17.1-2.4-17.1s.6 3.8-.3-.3zm.4 17.3s1 .4 1 .2m0-1.3s-.7 0-.8-.2m0-1s.6.3.8 0m-.7-1.6h.5m-.6-1.5h.6m-.5-2.1s.4.1.4-.1m-.5-1.7h.5m.5 9.5s.9.2 1-.1m-1.1-2s.9.1 1-.1m-1-1.3h.7m-.9-1.5h.7m-.7-1.7h.5m-.7-1.5h.6m-.6-1.7s.4.3.4 0m0 9s.9 0 .9-.3"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="m373.6 218.7.7 6a73 73 0 0 1-.1 9.8c0 .3-.8 5.5-.6 5.8 1 1.2 1.1 1.3 2.2.4.1-.1-.5-5.5-.5-6.3l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m373.6 218.7.7 6a73 73 0 0 1-.1 9.8l-.7 5.8c1 1.2 1.2 1.6 2.3.7.1-.1-.5-5.8-.5-6.6l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6z"/>
+ <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5a127 127 0 0 0-2.4-17l-.3-.4"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5-.9-10.8-2.4-17-2.4-17zm.5 17.2s1 .5 1 .2m0-1.2s-.7 0-.8-.3m0-1s.6.4.8.1m-.7-1.7h.5m-.6-1.5h.6m-.5-2s.4 0 .4-.2m-.5-1.7h.5m.5 9.6s.9.1 1-.2m-1.1-1.9s.9 0 1-.2m-1-1.3h.7m-.9-1.4h.7m-.7-1.7.5-.1m-.7-1.4.6-.1m-.6-1.6s.4.2.4 0m0 9s.9 0 .9-.4m-10.5-22s-.5 5.2-.2 8.1c.3 3.5.3 4.5.6 6.6v3.9c-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-8.9.4-14.3.4-14.3l.2-.2"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M365.7 211.3s-.5 5.1-.2 8c.3 3.5.3 4.5.6 6.6v3.8c0 .5.1 0 0 .1-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-9 .4-14.3.4-14.3zm.3 14.6s-.9.2-1 0m.8-1.7s-.9.2-1 0m1-1.2h-.9m.8-1.2h-.7m.5-1.4h-.5m.5-1.3h-.5m.4-1.4s-.4.2-.4 0m1 7.4s-1 .1-1-.1"/>
+ <path fill="#005000" stroke="#000" stroke-width=".1" d="M334 221.7h-.8z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M323.3 256.4s.3-.2.4 0l-.1.2zm1 1.1-2.1-.1"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.7 215.5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5l.2.9c0 .3-.5 1.6-2 2.7a12 12 0 0 1-4.1 1.5z"/>
+ <path fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m291.6 214.7 29.7 38.4 1.4-1.3-30.2-39.1z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2-2.6-1.8-3.5-1.9c-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6 .7 3.2.4 3.9c0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2-2.6-1.8-3.5-1.9c-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6 .7 3.2.4 3.9c0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2c-.4 0-1.7-.6-2.6-.3-.9.4-2.7 1.4-2.4 3m10.4-.3s-1.8.8-3.1 1.7c-.6.3-2.4 2-3.5 3.2-1 1-1.3 2.4-3.5 3.9m9-9-1.4 1q-.9.6-1.2 1.3"/>
+ <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347.8 284.2c.2 3 7.4 6.6 12.7.1 5.7-4.5 4.5-11.4 0-12.3l-54.7-53.3c-2.2-1.2-2.4-2.3-3.5-3.5a133 133 0 0 1-9.6 9 10 10 0 0 1 3.2 3.5z"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M302.2 215c-2.6-3.5-12.8 5.8-10 8.7 2.6 2.8 12.4-5 10-8.6z"/>
+ <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 223c2 1.4 9.3-4.8 8.1-7.2-2-2.2-10.1 5.7-8 7.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M296 227.9a16 16 0 0 0 9.9-9m23 44.8q8.6-2.5 11.4-11.6m-9.1 14.3q8.7-2.6 11.4-11.6m2.1 25.8c5.8-1.8 10.4-6 12.2-12.1m-9.8 14.8a18 18 0 0 0 12.3-12.2"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.6 285q.5 2 2.1 1.4m-13.7-2c2.1 3.5 4.5 2.4 6.5 2.5"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M363.6 285.2q-.2 1.6-1.7 1.6a2 2 0 0 1-1.7-1.6q.1-1.6 1.7-1.6c1.6 0 1.7 1 1.7 1.9"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.5 284.9q.5 2 2 1.3m-13.5-1.7c2.1 3.4 4.5 2.3 6.5 2.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 175.5c1.8 2.9 4.4 8 5.2 12a23 23 0 0 1-7 20.8c-5.2 4.7-13.3 6-16.7 6.8s-5.7 1.8-6.3 2.5q-.1-.7.5-1.6c1.6-.7 4.1-1 7.8-1.8 7.2-1.5 14.8-4.2 19-12.2 5.4-10.3 2.2-18.4-2.5-26.4z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.6 206.2a.4.6 49.9 0 1-.6-.6.4.6 49.9 1 1 .6.6z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205q-1.7.7-3 1l-3.7 1.4c-.8.3-1.6 1.3-1.6 1.3s1.2 1.3 2.6 1.1q1.6-.2 2.3-.7c.6-.3.6-.6 1.4-1.2 1-.7 1.6-2 2-3zm-5.7 1.1q-.6.7-1.6.5l-.2.2q1 .1 2-.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205q-1.7 1.6-4.7 2.8a14 14 0 0 1-5 1l-.2.3c1.4-.1 3.4-.4 5-1.1a15 15 0 0 0 4.9-3zm-2.4 4.6c-2-.1-3 .5-4.8.9s-3.7-.5-4.8 1.1c4.4 2.9 7.6 1 9.6-2z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.2 213.6c-.8-.8-8-3.2-9.2-.5 1.7 2 6.8 2.4 9.2.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m338.5 215.5-2.5-.4c-1-.1-1.3-.3-1.9-.4-1-.1-2.3-1.6-6-.5 1.4 3.4 6.4 4 10.4 1.3zm1.6-1.9c-3.8.8-8.3 0-10.1-1l-.3.2a16 16 0 0 0 10.4.8zm4-4c-2.2 1.5-5.2 2.6-11.4 1.8v.2c8.5.7 9.3-.8 11.4-2z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 215.5c-3 .1-4.7 1.4-10.3-1.3l-1.4-.6-.5.2 1.4.4c7 3 6.8 1.6 10.8 1.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 211.6a.4.6 66.2 1 0 .4.7.4.6 66.2 0 0-.4-.7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M327.1 212.3c-.6.1-.8.9-.8 1.3l-.4.2q.2-1 1.2-1.7z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M346 186.8a.4.6 15.8 1 1-1-.2.4.6 15.8 0 1 1 .2z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M341.6 203.2c-.1-2.1-1.1.8-3.2-3.9-.6-1.4-.6-2.2-1-4.3 1.2 1.8 3 2.3 3.8 3.6s.5 3.5.4 4.6z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M337.5 195.2s1 2.4 2.4 4a8 8 0 0 1 1.8 3.7"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 197.2c1.3 1.7 3 3.8 3 6h.3c-.3-2.8-2-4.1-3-5.6zm10.8 2.7q-1.6 1-2.7 1.4l-1.4.9-1.4.5c-.7.5-2 2-2 2s1.3 1.1 2 1c2.4-.5 3.1-1.4 4.3-2.3 1-.8 1-2.5 1.2-3.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m340.7 204.8-.2.4c1.3-.2 3.5-1.5 5-2.2 1.8-1 3-1.7 3.7-3a9 9 0 0 1-3.9 3c-1.5.7-3.7 2-4.6 1.8zm9.4-9.5q-1.3 1.2-2.4 1.8l-1.3 1.1-1.2.8c-.6.6-1.5 2.2-1.5 2.2s.7.7 1.4.4c2.4-.3 3.1-1.4 4-3.5q.9-1.4 1-2.8z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.5 199.4a.6.4 62 1 0 .8-.3.6.4 62 0 0-.8.3z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m342.5 201.6-.2.3c2.9-1.3 6.6-3.9 7.8-6.5a17 17 0 0 1-7.6 6.2zm8.3-10.7q-1.2 1.3-2.2 2l-1 1.1-1.2.9c-.5.6-1.2 2.2-1.2 2.2s.8.9 1.5.5l2.1-1.6c.5-.4.6-1.4 1.2-2.2q1-1.4.8-2.9z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.7 193.8q-2.1 2.6-4.6 3.8l-.2.4c2.6-1.5 3.7-2.8 4.9-4.1zm1-5.6q-.6 1.4-1.6 2l-.8 1.2-1 .9-.7 2.1s.6.6 1.2.2l1.8-1.6 1-2.2a4 4 0 0 0 .2-2.6zm-4.3-1.1-.5 1.6v-.4q0-.6.4-1.3z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.4 191a13 13 0 0 1-3.8 4v.3c2.2-1.6 3-3 3.8-4.2zm-5.6 10q-.2-.8-.6-1.4.4.7.4 1.6l.1-.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.9 181.3a.4.3 39.5 0 1-.5.5.4.3 39.5 0 1 .5-.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m343.1 182.5-1.2-.8 1.3 1v-.2zm5.6.4c-1.2 2.4-3.9 4-2.8 7.5 2.8 2.6 3-4.5 2.8-7.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.1 177.7c-.5 2.4-2.6 4.4-1.2 7.6 4 1 2-4.3 1.2-7.6z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 174c2 3.7 2.5 5.9.2 8.3 0 0-1.3-1.1-1.6-3.3-.2-1.8 1.2-4 1.4-5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.4 171.8c.5 2.4-1.5 3.5 1.4 6.5 2.1-2.4 1.1-3-1.4-6.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 176c-3.3.3-2-2.6-3-5.3 2 1.5 4.7 2.1 3 5.3zm2.2 4.4c-1-4.4-4-2.6-5.6-4.6.9 2.9 2.1 4.8 5.6 4.6zm1.4 4.1q-4 0-6.2-4.4c2.7 1.2 5.7 1.4 6.2 4.4z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.6 188.3c-1-1.2-1-2-1.5-2.7a9 9 0 0 0-3-3.7c0 3 .4 6.5 4.5 6.4z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M344.2 191.6a20 20 0 0 0-5.6-5.7c1 2.2.6 6.3 5.6 5.7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 196c-5-.1-4.5-4.8-4.5-7l2.8 3.5c.9 1 1.8 2.2 1.7 3.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.1 198.8c-.4-1 0-1.4-1-2.3-1-1-2.8-2.7-3.7-4.6-.1 1.7-.2 4.4 1.2 5.3 1 .7 2 .9 3.5 1.6zm-4.3 7.3c-3.9-3-1.6-5.6-1.2-7.9 1 2.6 3.7 4.8 1.2 7.9zm1.6-29.2c-1.3-2.3-2-3.6-3.7-6 2 2.7 2.8 4.5 3.9 6.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.9 206.8c.1-3-.7-5.7-1.3-8.5.5 3 1.3 6 1 8.8zm4.6-7.4c-.4-1.8-4.1-3-5-7.5.7 4.4 4.5 5.5 4.8 8zm.8-2.5-.1.5c-.6-3-4-4.4-5-8.4 1.5 4.3 4.3 4.9 5.1 7.9zm.7-4.4c-1.7-2.6-4.1-3.6-6.4-6.7 2.1 3 4.8 4.4 6.4 7zm0-3.5q-3-1-6-7.1c1.4 3 3 5.8 6 7.6zm-1-4c-2.1-1.7-5-2.8-7-4.9 1.7 2 5 3.3 7.1 5.2v-.3zm-1.6-4.3c-2.2-1.5-4.4-2-6.2-4.8 1.5 2.8 3.8 3.5 6.3 5zm6.3 2.2c-.8 3.1-1.5 6.3-3.6 8.4v-.4c1-.5 2.5-3.7 3.6-8zm-2.6-5.1c-.1 3.2 0 6.5-1.7 8.3l-.1-.3c1.6-1.4 1.5-5 1.8-8zm-2.2-3.6c.5 2.8.6 5.3-.2 9.5l-.1-.3c.4-2.4 1-5 .3-9.2zm-3.4-2.3c1.1 2.4 2 4.8 1.2 7.4l-.2-.3c.9-2.4-.1-4.7-1-7zm-4.4 31.2c1.4 3.2-.4 5.6-2.5 7-1.6-4.7 1.8-4.2 2.5-7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M336.2 203.1c.2 2-2 4.2-2.6 7.6l-.3.2c1-4 3-5.6 2.9-7.8z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.7 181.2a.3.4 1.9 1 1-.6-.1.3.4 1.9 0 1 .6.1z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.5 183v-1.6h-.2v1.7z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M342.8 180.9a.3.4 2 0 1-.5.2.3.4 2 0 1 .5-.2z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m343.2 182.3-.5-1.1.4 1.4v-.2z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344.7 186.9a.4.3 80.5 1 1-.7 0 .4.3 80.5 0 1 .7 0z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m344.9 188.6-.4-1.4h-.1l.4 1.6v-.2z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.6 187.2a.4.3 57 1 1-.5.5.4.3 57 0 1 .5-.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m344.8 188.6-1.2-1v.1l1.3 1.1z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.4 199.1a.3.4 12.7 1 1-.7-.2.3.4 12.7 0 1 .7.2z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M342.8 200.8q.3-.7.2-1.5l-.4 1.7z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344 199.9a.3.4 50.5 1 0 .5.4.3.4 50.5 1 0-.5-.4z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m342.7 201 1.3-.8v.1l-1.3 1z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M340.7 205a.3.4 40.4 1 1-.4-.6.3.4 40.4 0 1 .4.5z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m339.5 206.2.9-1.3h-.1l-1 1.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M338.8 204.5a.5.6 10 0 0 1 .1.5.6 10 1 0-1 0z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.4 205c-.3.7 0 1 0 1.2l-.1.3q-.4-.5-.1-1.5zm-12.1 9.5q-1-.1-1.3-.8h-.3q.5.9 1.5 1v-.3z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 215.2a.6.4 9.5 0 1 .2-.9.6.4 9.5 1 1-.2.8z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206a5.5 5.5 0 0 1-4 6.4c-.9-4 2.8-4 4-6.3z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206.1a21 21 0 0 1-4.8 7.2h-.5c2.7-2.1 4.2-4.9 5.3-7.2z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.8 213.3a.5.4 9.8 1 1-.4-.7.5.5 9.8 0 1 .4.7z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m326 213.8 1.4-.7h-.1l-1.7.6h.3zm2.5-5c0 1.2-1 2.4-2 3.2s-1 1.2-2.2 1.6c-1.2-2.8 2.8-3.3 4.2-4.8z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.5 208.8c-1.3 2.5-3.5 3.8-4.7 5.4h-.1c1.6-2.2 3-2.7 4.8-5.4z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.4 175.5c-1.7 2.9-4.4 8-5.1 12a23 23 0 0 0 7 20.8c5.2 4.7 13.3 6 16.6 6.8s5.8 1.8 6.4 2.5q.1-.7-.5-1.6c-1.6-.7-4.2-1-7.8-1.8-7.2-1.5-14.9-4.2-19-12.2-5.4-10.3-2.2-18.4 2.5-26.4z"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M314.1 213.6c-.2.4-4 3.7-7.5 3.5-2.5-.2-2.9-.8-2.9-.8s-.2-.7 2-1.1 6.2-2 8.4-1.6z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.8 216.3c2.7.3 5.5-.8 7.7-1.6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.2 208.7a11 11 0 0 1 4.6 3.7c.9 1.5.7 1.9.7 1.9s-.2.3-1.3-1c-1-1.2-3.4-3.3-4-4.6z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M316.5 214.2c-.9-1.7-2.5-3-3.7-4.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 175.8c-.1-.3.3-3.4 2-4.4 1.3-.7 1.8-.5 1.8-.5s.3.3-.5 1.3c-1 1-2.1 3.2-3.3 3.7z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M304 171c-1.4.7-2.3 2.2-3 3.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.4c-.2-.2-1-3-.2-4.7.5-1.3.9-1.4.9-1.4s.3 0 .1 1.3-.2 3.8-.8 4.8z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M300 171.4q-.7 2.1-.6 4.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.5c.2 0 2.7-.8 3.9-2.1q1-1.4.8-1.3c-.2.1-.2-.2-1.1.5-1 .8-3 2-3.6 2.9z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M304 174.1q-1.5 1.7-3.3 2.6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6a10 10 0 0 1-.9-5.2c.3-1.6.6-1.7.6-1.7s.4 0 .4 1.4c0 1.5.3 4.2-.1 5.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M298 172.7c-.5 1.7-.2 3.6 0 5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c-.3-.2-2.3-3-2-5.2 0-1.7.5-2 .5-2s.3-.1.6 1.4c.3 1.6 1.2 4.3.9 5.8z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.7 174.5c-.2 1.8.5 3.7 1 5.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.2 184.1a10 10 0 0 1-2.4-4.7c-.2-1.5 0-1.8 0-1.8s.4-.1.8 1.3 1.6 3.9 1.6 5.2z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M293.9 177.7c.1 1.7 1 3.4 1.5 4.8"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6c.3 0 3.2-.2 4.6-1.7 1-1 1-1.5 1-1.5s-.2-.3-1.4.4c-1.1.8-3.4 1.8-4.2 2.8z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.7 176.5c-1 1.2-2.7 1.9-4 2.5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c.2 0 3.2 0 4.6-1.4 1.1-1 1-1.4 1-1.4s0-.3-1.2.3-3.6 1.5-4.4 2.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M303 178.9q-2 1.5-4.1 2.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.4 184.2c.2 0 3.4-.2 4.9-1.7 1-1.1 1-1.5 1-1.5s-.1-.4-1.4.3c-1.2.8-3.7 1.8-4.5 2.9z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.3 181q-2 1.9-4.3 2.5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 183s-.3-.5-.3-1q.1-.9.2-.8l-.2-.2-.1.9v.3l-.5-.5-.1-.4h-.2l.3.7c.5.4.8 1.1.8 1.1"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 180.3a.5.4 83.5 1 1 .1 1 .5.4 83.5 1 1-.1-1z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 180.3a.4.5 19.3 1 1-.3 1 .4.5 19.3 1 1 .3-1z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m296.7 183 1-.7q.4-.6.3-.7h.2l-.4.8-.2.2.6-.1.4-.2.1.1-.6.4-1.3.3"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 181.6a.4.5 45.6 1 0-.8.8.4.5 45.6 1 0 .8-.8z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 180.8a.4.5 19.8 1 0-.3 1 .4.5 19.8 1 0 .3-1z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 186.9c-.2-.2-2.4-2.6-2.8-4.8-.3-1.6 0-1.9 0-1.9s.3-.1.8 1.3 2 4 2 5.4z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M292.6 180.3c.2 1.8 1.2 3.5 2 4.9"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 186.9c.3 0 3.5-.4 5-2 1-1.3 1-1.7 1-1.7s-.2-.4-1.4.5-3.8 2-4.6 3.2z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 183.2c-1 1.4-2.8 2.2-4.2 3"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 189.6c.3 0 3.5-.9 5-2.6 1.1-1.3 1-1.7 1-1.7s-.1-.2-1.4.7c-1.2 1-3.8 2.5-4.6 3.6z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.2 185.4c-1.1 1.4-3 2.4-4.3 3.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 189.6c-.3 0-3.3-2.2-3.8-4.5-.3-1.7 0-2 0-2s.5-.3 1.2 1.2c.7 1.4 2.5 3.8 2.7 5.3z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M291.3 183.2c.3 1.8 1.5 3.5 2.5 4.8"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 193a11 11 0 0 0 4.6-3.6c.9-1.5.7-1.8.7-1.8s-.2-.3-1.3 1c-1 1.2-3.4 3.1-4 4.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M300.5 187.7q-1.7 2.4-3.8 4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 193.2c-.3 0-3.6-1.7-4.4-4-.7-1.6-.4-2-.4-2s.4-.4 1.3 1 3.1 3.5 3.5 5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M290.3 187.2c.5 1.8 2 3.4 3.2 4.6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s-.4-.5-.5-1v-.9h-.3v.8l.2.4-.6-.4-.3-.5-.2.2.5.6c.6.2 1.1 1 1.1 1"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 189a.6.4 69.4 1 1 .4 1.2.6.4 69.4 1 1-.4-1.1z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.3 188.7a.4.6 5.2 1 1 0 1.2.4.6 5.2 1 1 0-1.2z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s.6-.5.8-1l.2-.8h.3l-.3.8-.1.4.6-.3.4-.4.1.2-.6.5c-.6.1-1.2.7-1.2.7"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 189.4a.4.6 31.5 1 0-.6 1 .4.6 31.5 1 0 .6-1z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 188.9a.4.6 5.7 1 0-.1 1.1.4.6 5.7 1 0 0-1.1z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 196.2a12 12 0 0 1-5.1-4c-1-1.7-.8-2.1-.8-2.1s.2-.3 1.4 1c1.3 1.4 3.8 3.6 4.5 5.1z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M289.5 190.2c1 1.8 2.8 3.3 4.2 4.6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 196.2c.4 0 4-1.9 5-4.4.6-1.8.3-2.3.3-2.3s-.4-.3-1.4 1.2c-1 1.4-3.4 3.8-3.9 5.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M300.9 189.6c-.7 2-2.3 3.7-3.6 5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.6 199.3c.3-.1 3.7-2.3 4.5-4.8.7-1.9.4-2.3.4-2.3s-.4-.3-1.3 1.3c-1 1.5-3.2 4-3.6 5.7z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 192.3c-.7 2-2.2 3.8-3.4 5.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 199.3c-.4 0-4.7-1.3-6.2-3.8-1-2-.9-2.5-.9-2.5s.4-.4 1.8 1c1.5 1.4 4.5 3.5 5.3 5.2z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M289.3 193.1c1.1 2 3.3 3.6 5 4.8"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.1 205.7c.3-.2 2.6-3 2.8-5.6.2-1.8-.2-2-.2-2s-.3-.2-.8 1.4c-.5 1.7-1.8 4.6-1.8 6.2z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.8 198.1c-.1 2-1 4-1.8 5.6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300 205.6c-.5.2-5.4 0-7.7-2.1-1.6-1.6-1.5-2.2-1.5-2.2s.2-.5 2.1.5 5.7 2.3 7 3.8z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M290.9 201.4c1.7 1.7 4.4 2.6 6.5 3.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 203c-.4.1-4.8-1-6.8-3.1-1.6-1.6-1.5-2.1-1.5-2.1s.2-.4 2 .8c1.6 1.2 5 3 6.3 4.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M290 197.9c1.6 1.7 4 3 5.8 4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 203c.4-.2 3.6-2.9 4-5.6.2-2-.2-2.5-.2-2.5s-.5-.2-1.2 1.5c-.7 1.8-2.6 4.7-2.6 6.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.2 195c-.2 2.2-1.5 4.3-2.5 6"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m297.4 201.5-1-.8-.5-.9h-.3l.8 1.2-.8-.1-.5-.3v.2l.7.4c.7 0 1.6.5 1.6.5"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.2 199.8a.7.5 45.9 1 1 1 1 .7.5 45.9 1 1-1-1z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 198.8a.7.5 71.6 1 1 .4 1.3.7.5 71.6 1 1-.4-1.3z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 201.4s.4-.6.4-1.3l-.1-1h.2l.1 1.3.6-.5.2-.6.2.1-.4.8c-.6.5-1 1.4-1 1.4"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.1 198.2a.5.7 8 1 0-.2 1.3.5.7 8 1 0 .2-1.3z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.6 198.1a.7.5 72.2 1 0 .4 1.3.7.5 72.2 1 0-.4-1.3z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M301.8 207.6c-.3.2-4.3 1-6.8-.3-1.8-.9-2-1.4-2-1.4s0-.5 2 0c1.8.4 5.2.7 6.8 1.7z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M293.1 206c2 1 4.4 1.2 6.3 1.4"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M302 207.5c.2-.1 2-2.5 1.9-4.8 0-1.7-.4-2-.4-2s-.3-.2-.6 1.3-1 4-.9 5.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.5 200.8c.2 1.8-.4 3.6-.9 5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.5 210.3c-.3.3-5 1.5-8 .3-2-1-2.1-1.5-2.1-1.5s0-.5 2.2-.1c2.1.3 6.2.4 8 1.3z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.5 209.2c2.2 1 5 1 7.3 1.1"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.8 210.3c.2-.3 1.2-3.8 0-5.6-1-1.4-1.5-1.3-1.5-1.3s-.4 0 0 1.5c.3 1.5.5 4.3 1.5 5.4z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M304.4 203.4c1 1.4 1.1 3.4 1.3 5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.3 208.7s-.5.4-1.2 0q-.9-.6-.8-.7l-.3.2 1 .7.3.2-.9.2-.6-.1v.3h1l1.5-.5"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.5 208.7a.8.5 24.1 1 1 1.4.7.8.5 24.1 1 1-1.4-.7z" overflow="visible" style="marker:none"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 207.2a.8.5 49.9 1 1 1 1.2.8.5 49.9 1 1-1-1.2z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.4 209s.6-.5.2-1.2l-.6-.9.1-.2.7 1 .2.3.2-.9v-.6h.2v1l-.5 1.5"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.7 205.1a.8.5 69.5 1 0 .6 1.5.8.5 69.5 1 0-.6-1.5zm-1.5.8a.8.5 43.7 1 0 1 1 .8.5 43.7 1 0-1-1z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M308.3 211.8c-.3.4-4.2 3-7.4 2.3-2.3-.4-2.6-1-2.6-1s-.1-.6 2-.8c2.2-.1 6-1 8-.5z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M298.4 213.1c2.5.6 5.2 0 7.3-.5"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M310.8 212.6s-.5.7-1.3.5l-1.2-.5-.3.3 1.3.4.5.1-.9.6-.7.1v.3l1.2-.3c.2 0 1.4-1 1.4-1"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M306.6 214a.9.6 5.4 1 1 1.7.2.9.6 5.4 1 1-1.7-.1zm.4-2a.9.6 31.2 1 1 1.5 1 .9.6 31.2 1 1-1.5-1z" overflow="visible" style="marker:none"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.5 212.2c.2-.3.7-4-1-5.6-1.1-1.2-1.7-1-1.7-1s-.5.1.1 1.5 1.4 4.2 2.6 5.1z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M306.8 205.6c1.4 1.2 1.9 3.2 2.3 4.7"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.4 213s.2-.7-.5-1.2q-1-.7-1.1-.6v-.4l1.2.7.4.3c.4.3 0-.8-.2-1l-.4-.7.3-.2.5 1 .2 2"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.7 209a.9.6 42.7 1 0 1.3 1.1.9.6 42.7 1 0-1.3-1.2zm-1.2 1.5a.9.6 17 1 0 1.7.6.9.6 17 1 0-1.7-.6z" overflow="visible" style="marker:none"/>
+ <path fill="#452c25" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
+ <path fill="#452c25" d="M310.6 213.1s-3.4 6-2.5 6 4.5-7.5 4.5-7.5l-1.3.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M310.6 213.1s-3.4 6-2.5 6 4.5-7.5 4.5-7.5l-1.3.2z"/>
+ <path fill="#452c25" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1z"/>
+ <path fill="#452c25" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
+ <path fill="#452c25" d="M313.4 209.5s-4.8 4.9-3.9 5.2 6.2-6.2 6.2-6.2l-1.2-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.4 209.5s-4.8 4.9-3.9 5.2 6.2-6.2 6.2-6.2l-1.2-.1z"/>
+ <path fill="#452c25" d="M313.6 207.7s-4.2 5.4-3.3 5.6 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.6 207.7s-4.2 5.4-3.3 5.6 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
+ <path fill="#452c25" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
+ <path fill="#452c25" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
+ <path fill="#452c25" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9s0-.1 0-.1l-.2-2.9-2 2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9s0-.1 0-.1l-.2-2.9-2 2.7"/>
+ <path fill="#452c25" d="M313.8 210.4s-4.7 4.8-3.9 5.1 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.8 210.4s-4.7 4.8-3.9 5.1 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
+ <path fill="#452c25" d="M314.2 211s-4.7 5-3.9 5.2 6.2-6.2 6.2-6.2h-1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.2 211s-4.7 5-3.9 5.2 6.2-6.2 6.2-6.2h-1.2z"/>
+ <path fill="#452c25" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2z"/>
+ <path fill="#452c25" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
+ <path fill="#452c25" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
+ <path fill="#452c25" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
+ <path fill="#452c25" d="M317.5 207.4s2.8-4.6 0 .9-3.9 4.5-3.9 4.5c-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M317.5 207.4s2.8-4.6 0 .9-3.9 4.5-3.9 4.5c-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M316.5 205.5s-3.5 4.5-3 5.2 3.7-2 4.7-4-1.7-1.4-1.7-1.4"/>
+ <path fill="#e8a30e" d="M352.8 251a32.8 37 0 1 1-65.6 0 32.8 37 0 1 1 65.6 0"/>
+ <path fill="none" stroke="#390" stroke-width=".8" d="M293.7 251c0-17 12-30.2 26.3-30.2s26.3 13.1 26.3 30.3" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
+ <path fill="#007934" stroke="#eee" stroke-width=".1" d="M287.2 253c1 19.5 15.3 35 32.8 35s31.9-15.5 32.8-35z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M352.8 251a32.8 37 0 1 1-65.6 0 32.8 37 0 1 1 65.6 0z"/>
+ <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M314.5 225.4q-.4 2 .7 3.6 1 1.4.9 2.7l-.7.5-5.5-3.7 3.7 5.5-.2.2a5 5 0 0 0-3-.3 5 5 0 0 1-3.7-.8 5 5 0 0 0 3.1 2.1 5 5 0 0 1 2.6 1.3l-.2.8-6.6 1.3 6.6 1.3v.3a5 5 0 0 0-2.4 1.9 5 5 0 0 1-3 2q2 .5 3.6-.7a5 5 0 0 1 2.7-.9l.4.7-3.6 5.6 5.4-3.7.3.2a5 5 0 0 0-.4 3 5 5 0 0 1-.7 3.6 5 5 0 0 0 2-3.1 5 5 0 0 1 1.4-2.5l.8.2 1.3 6.5 1.3-6.5h.3a5 5 0 0 0 1.8 2.3 5 5 0 0 1 2.1 3.1 4 4 0 0 0-.7-3.6 5 5 0 0 1-.9-2.8l.7-.4 5.5 3.7-3.7-5.5.2-.3q1.5.7 3 .4a5 5 0 0 1 3.7.7 5 5 0 0 0-3.1-2 5 5 0 0 1-2.6-1.4l.2-.8 6.6-1.3-6.6-1.2v-.4a5 5 0 0 0 2.4-1.8 5 5 0 0 1 3-2 5 5 0 0 0-3.6.7 5 5 0 0 1-2.7.8l-.4-.7 3.7-5.5-5.5 3.7-.3-.2q.7-1.5.4-3a5 5 0 0 1 .7-3.6 5 5 0 0 0-2 3 5 5 0 0 1-1.4 2.6l-.8-.2-1.3-6.5-1.2 6.5h-.4a5 5 0 0 0-1.8-2.3 5 5 0 0 1-2-3.1z" overflow="visible" style="marker:none"/>
+ <path d="M325.9 236.7c-1.7-1.4-3.8-1.6-4.9-.6q-1.3 1.7.2 3.8l-.3.2a5 5 0 0 1-.3-4.1c1.5-1.3 3.7-1.4 5.2.7"/>
+ <path d="M323.3 236.3c-1 0-1.2.2-1.6.5l-.7.4.1.2q.3 0 .9-.6.6-.4 1.3-.3c1.3 0 2 1 2.1 1s-.7-1.2-2.1-1.2"/>
+ <path d="M325 237.5c-1-1-2.7-1-3.4 0h.2c.8-1 2.5-.6 2.6 0"/>
+ <circle cx="323.1" cy="237.4" r=".6"/>
+ <path d="M321.6 237.6c.7.6 2.2.7 3.3-.1h-.5q-1.2 1-2.5 0"/>
+ <path d="M325 237.8c-1.2 1-2.4.9-3.1.5q-.9-.7-.6-.6l.8.4q.9.5 2.9-.2m-3.5 2a.4.4 0 1 1-.6.5c0 .1-.3.6-.9.6h-.1l.1.2.9-.2a.6.6 0 1 0 .6-1m.9 3c-.7-.5-1-1-1.7-1l-.7.1h-.1l.1.2c.3 0 .7-.3 1.2 0zm-.3 0c-1.4-.5-1.7-.2-2.1-.2h-.1l.1.3c.6 0 .9-.4 2.1-.1"/>
+ <path d="M322.4 243c-1.6-.2-1.1.8-2.4.8h-.1l.1.2c1.6 0 .9-.9 2.4-1m-8.2-6.3c1.6-1.4 3.7-1.6 4.8-.6q1.3 1.7-.2 3.8l.3.2a5 5 0 0 0 .3-4.1c-1.5-1.3-3.7-1.4-5.2.7"/>
+ <path d="M316.7 236.3c1 0 1.2.2 1.6.5l.7.4-.1.2-.9-.6q-.6-.4-1.3-.3c-1.3 0-2 1-2.1 1s.7-1.2 2.1-1.2"/>
+ <path d="M315 237.5c1-1 2.7-1 3.4 0h-.2c-.8-1-2.5-.6-2.6 0"/>
+ <circle cx="-316.9" cy="237.4" r=".6" transform="scale(-1 1)"/>
+ <path d="M318.4 237.6c-.7.6-2.2.7-3.3-.1h.5q1.3 1 2.5 0"/>
+ <path d="M315 237.8c1.2 1 2.4.9 3.1.5q1-.7.6-.6l-.8.4q-.8.4-2.9-.2m3.5 2a.4.4 0 1 0 .6.5c0 .1.3.6.9.6h.1l-.1.2-.9-.2a.6.6 0 1 1-.6-1m-.9 3c.7-.5 1-1 1.7-1l.7.1h.1l-.1.2c-.3 0-.7-.3-1.2 0zm.3 0c1.4-.5 1.7-.2 2.1-.2h.1l-.1.3c-.6 0-.9-.4-2.1-.1"/>
+ <path d="M317.6 243c1.6-.2 1.1.8 2.4.8h.1l-.1.2c-1.6 0-.9-.9-2.4-1"/>
+ <path fill="#007934" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M323.2 258.4q2.5.4 4.7-.3a10 10 0 0 1 4.2-.6c0-.2.5-.3.2-.5l-1.8-.6q-1.4-.8-2.7-2c-.1 0-.6-.3-.6-.5 2.2 3.2 7.5 1.5 12 1.2.4.1 1.5-.2 2.4-.5 1-.4 3.6 0 4.3-.5l-1.3-1c-.6-.8-2.3-.7-3-1.5-1.3-1.5-3.3-1.9-4.9-3q-.6-.3-1.6-.3c-.6-.6 0-.5-5-4.7-4.5-1.8-4.2-3.2-7-4.3-1-.5-1.9-1.4-2.7-1.1a30 30 0 0 0-6.3 3c-1.2.6-2.7 2-3.8 2.8-.2.2-3.4 2.9-7 4.8a115 115 0 0 1-9.2 4.8c8-.4-7.3 2.3 29.1 4.8z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.3 249c2-1 10-5.3 12.4-8.4-.4 0 .6 1 .5 1.4.8 0 .4-1 1-1q.7 0 1.3-.3c.5 0 .2.2.2.4q-1.2 1.7-3.2 2.9l.2.4q.7 0 1.1-.2l.1-.3q.5.3.1.7c-.3.6-1.4.5-1.8 1a6 6 0 0 1-1.5 1.7q.7-.8 1.7-1c1 0 1.3-.7 2.2-.9.9-.1 1.5-.9 2.2-1.4-.3.4-.9.7-.7 1.2l.6.2c-.7.8-2 1.4-2.4 2.4-.4-.2-.7.2-1 .2-.4.1-.3.8-.6 1q-1.7 1.2-2.3 2.7l-1.3.7c-.7.3-4.6 3.4-4.7 3-.3-2.1-4.3 1.6-13.3-1.6m30.6-.1-.2-.2c.1-.3-.5-.4-.5-.7 1 0 1.8 1.2 2.5.5.1-.1-.3-.4.4-.6l-.1-.2h-.8l-.8-.3q-.6-.3 0-.6c1-.1 1.9.5 2.6.2l1.7-.5c.3-.1 1.2 0 .9.2q-.4.2-1 .2-.8.2-1.4.6c.3 0 .2.3.7.2l2-.4v-.5h.3c-.3-.5.6-.2 1-.6l.1.1c-.5.2-.3.5-.4.8q-.2 0-.2.2c.2.2.2-.2.5 0h.6q.6 0 .5-.4-.5-.3-.6-.8l-.1-.1q.8 0 1.1.4t.8.7c.8.2.7-.2.7-.6.7 0 1.6.3 1.4.6q-.2.5-1 .5c-.8 0-.2.3-.4.3q-.7 0-1 .2-.2.4.3.9h1.8q.2-.4.9-.6c.4-.3-.2-.5-.5-.7-.3 0 0-.1 0-.3.3-.3.9 0 1-.2l.1-.8q.4 0 .4.3l.7-.2q.5.1.4.4-.8.3-.7.8c0 .2-.5.3-.3.5q.5.4.5.9.5.5 1.6.3c-.2-.7 1.4-.4 2-.5q.1 0 0-.2-.4-.2-.3-.6l-.1-.1c1 .3 2.8.8 3.6 1.4-1 .2-2.8-.2-3.8 0a15 15 0 0 1-3.7.6l-1.6-.3m-11.3-.7-.4-.1"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M321.2 259.1c2 0 2.2 1.4 3.5.1 1.1.2 2.2-.2 2.2-.3 2.7.6 11.1-.2 10.6-.8-.9-1-2.3-1.4-3.4-2.2l-1.1-.4c-.7-.2-1.5 0-2-.3l-2.6-1.5-1.2-1.4q-1-.5-2-.7-1.2-.7-2.2-1.9l-1.1-.4c-.7-.3-1.2-1.1-1.9-1-1 .2-1.7 1-2.8 1.6-1 .4-1.4 1.1-2.2 1.6-.2.2-2.6 1.8-5.3 2.9l-6.6 2.5s2.4 1.7 8 1.5l3.4 1 1.9-.3z"/>
+ <path fill="#007934" stroke="#000" stroke-width=".1" d="M309.8 254.8c1.2-.6 6-2.9 7.4-4.5-.1 0 .5.5.4.7.5 0 .2-.4.6-.5l.8-.1q.3 0 .1.2-.8.8-2 1.5l.2.2h.7v-.3q.4.2.1.4c-.2.4-.9.3-1.1.6l-1 .9q.5-.4 1.1-.5l1.3-.5q.9-.2 1.4-.8-.4.3-.4.7l.4.1c-.4.4-1.2.7-1.5 1.2l-.6.1-.4.6q-1 .6-1.4 1.4l-.8.4c-.4.2-2.8 1.8-2.8 1.6-.2-1.1-2.6.5-8-1.2"/>
+ <path fill="#00a6de" stroke="#000" stroke-width=".1" d="M320 214.2c-18.1 0-32.8 16.5-32.8 36.9S301.9 288 320 288s32.8-16.5 32.8-37c0-20.3-14.7-36.9-32.8-36.9zm0 8.2c13.2 0 24.7 12.3 24.7 28.7s-11.5 28.6-24.7 28.6-24.7-12.2-24.7-28.6 11.5-28.7 24.7-28.7z" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
+ <path fill="#e8a30e" d="M324.7 266.8q.1.2-.4.3t-.5-.2q0-.2.5-.2.4-.2.4 0z"/>
+ <path fill="#e8a30e" d="m324.8 266.8-.5.2h-.5q0-.2.5-.3h.5zm-2.8 9c.8-2.2 1-3.8-.2-6 2-1.9 3.3-1.2 4.6 0-1.2 2.3-1 4-.2 6a4 4 0 0 1-4.2 0"/>
+ <path fill="#e8a30e" d="M324 268.6v7.7h.1v-7.7z"/>
+ <path fill="#e8a30e" d="M324.4 268.6a45 45 0 0 0-.3 7.7q0-4.2.4-7.6zm.7-2.4c-.4.4-.6.4-.4 1q.5-.4.4-1"/>
+ <path fill="#e8a30e" d="M324.3 266.4c.2.3.6.4.3 1q-.4-.3-.3-1"/>
+ <path fill="#e8a30e" d="M324.3 267c.2.3.5.3.3.9-.3-.3-.4-.3-.4-.8z"/>
+ <path fill="#e8a30e" d="M324.2 267.4q.4.2.3 1c-.4-.4-.3-.4-.3-1"/>
+ <path fill="#e8a30e" d="M324 267.9q.6.1.4 1c-.4-.4-.2-.5-.4-1"/>
+ <path fill="#e8a30e" d="M324 268.4c.2.2.6.3.4 1-.3-.4-.4-.4-.4-1m1.3-1.7q-.5 0-.6.8.6-.3.6-.8"/>
+ <path fill="#e8a30e" d="M325.3 267.1q-.5.1-.7.7c.6-.2.5-.2.7-.7"/>
+ <path fill="#e8a30e" d="M325.2 267.6c-.2.1-.6 0-.7.7.6-.3.6-.2.7-.8z"/>
+ <path fill="#e8a30e" d="M325.2 268.1q-.5-.2-.7.7.4-.1.7-.7"/>
+ <path fill="#e8a30e" d="M325 268.6c-.4.1-.5 0-.6.7.5-.3.4-.2.5-.7zm.2.3c-.7 2.1-.8 4-.7 7.4h.1c0-3.4.1-5.2.8-7.3h-.1zm1.2-2.2c-.4.3-.6.2-.5.8q.5-.1.5-.8"/>
+ <path fill="#e8a30e" d="M325.6 266.8q.5.2.1 1-.4-.4 0-1z"/>
+ <path fill="#e8a30e" d="M325.4 267.4c.3.3.5.3.2.8q-.3-.2-.2-.8"/>
+ <path fill="#e8a30e" d="M325.3 267.7q.3.3.1 1c-.3-.4-.3-.4-.1-1"/>
+ <path fill="#e8a30e" d="M325 268.1q.6.4.3 1c-.4-.4-.2-.5-.3-1"/>
+ <path fill="#e8a30e" d="M324.9 268.6q.5.4.2 1c-.3-.4-.3-.4-.2-1m1.6-1.4c-.2.2-.6 0-.7.7q.6-.1.7-.6z"/>
+ <path fill="#e8a30e" d="M326.4 267.7q-.4-.1-.8.5c.6-.1.6 0 .8-.5"/>
+ <path fill="#e8a30e" d="M326.3 268c-.3.2-.7 0-.9.7.7-.2.6-.2.9-.6z"/>
+ <path fill="#e8a30e" d="M326.1 268.6c-.2 0-.6-.2-.8.5.4 0 .4-.2.8-.5"/>
+ <path fill="#e8a30e" d="M325.8 269q-.4-.1-.7.6c.5-.2.5-.1.7-.6m.1.4c-1 1.9-1.1 3.6-.7 6.8l.2-.1c-.4-3-.2-4.7.6-6.6zm1.6-2.2c-.5.2-.7.2-.7.8q.5-.2.7-.8"/>
+ <path fill="#e8a30e" d="M326.7 267.2c.1.3.4.5 0 1-.3-.5-.2-.5 0-1"/>
+ <path fill="#e8a30e" d="M326.4 267.8q.4.2 0 .8c0-.4-.2-.4 0-.9z"/>
+ <path fill="#e8a30e" d="M326.2 268c.1.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
+ <path fill="#e8a30e" d="M326 268.5c0 .3.4.5 0 1-.3-.5 0-.5 0-1"/>
+ <path fill="#e8a30e" d="M325.7 268.9c.2.3.5.5 0 1q-.2-.4 0-1m1.8-1.1c-.2 0-.6-.1-.8.5.6-.1.5 0 .8-.5"/>
+ <path fill="#e8a30e" d="M327.3 268.2q-.4-.2-.8.4c.6 0 .6 0 .8-.4"/>
+ <path fill="#e8a30e" d="M327.1 268.5q-.4-.1-.8.5c.6 0 .5 0 .8-.5"/>
+ <path fill="#e8a30e" d="M327 269c-.3 0-.7-.3-1 .4.5 0 .5-.1 1-.4m-.5.4q-.4-.1-.7.5c.5-.1.5 0 .7-.5m-3-.7q.3 3.5.4 7.6h.1q.2-4.2-.4-7.6zm-.6-2.6c.4.4.5.4.4 1q-.5-.3-.4-1"/>
+ <path fill="#e8a30e" d="M323.7 266.4q-.6.2-.4 1 .5-.3.4-1"/>
+ <path fill="#e8a30e" d="M323.7 267q-.5.3-.3.8c.2-.3.3-.2.3-.7z"/>
+ <path fill="#e8a30e" d="M323.8 267.4q-.4.1-.3 1c.4-.4.3-.4.3-1"/>
+ <path fill="#e8a30e" d="M324 267.9q-.6.1-.5 1c.5-.4.2-.5.4-1z"/>
+ <path fill="#e8a30e" d="M324 268.4q-.6.1-.4.9.4-.3.4-.9m-1.3-1.8c.2.2.6.2.6.8-.5-.3-.5-.2-.6-.8"/>
+ <path fill="#e8a30e" d="M322.7 267.1q.5 0 .6.7c-.5-.3-.5-.2-.6-.7"/>
+ <path fill="#e8a30e" d="M322.8 267.5c.2.1.6.1.6.8q-.6-.2-.6-.8"/>
+ <path fill="#e8a30e" d="M322.8 268c.2.1.7 0 .7.8q-.4-.2-.7-.7z"/>
+ <path fill="#e8a30e" d="M323 268.5c.3.2.5.1.5.8q-.5-.2-.5-.8m-.2.5-.2.1c.7 2 1 3.9.9 7.2h.1a19 19 0 0 0-.8-7.3m-1.2-2.4c.4.3.5.3.5.8q-.5-.1-.5-.8"/>
+ <path fill="#e8a30e" d="M322.4 266.7q-.5.3-.2 1c.3-.4.3-.4.2-1"/>
+ <path fill="#e8a30e" d="M322.6 267.3q-.6.3-.2.9c.2-.4.3-.4.2-.9"/>
+ <path fill="#e8a30e" d="M322.7 267.6q-.5.4-.1 1c.3-.4.2-.4.1-1"/>
+ <path fill="#e8a30e" d="M323 268.1q-.6.3-.3 1c.4-.5.1-.5.2-1z"/>
+ <path fill="#e8a30e" d="M323 268.6c-.1.2-.5.4-.1 1q.3-.4.2-1zm-1.5-1.5c.2.1.6 0 .7.7-.6-.2-.5-.2-.7-.7"/>
+ <path fill="#e8a30e" d="M321.6 267.6q.4-.1.7.5c-.5-.1-.5 0-.7-.5"/>
+ <path fill="#e8a30e" d="M321.7 268q.5-.1.8.6c-.6-.2-.6-.2-.8-.7z"/>
+ <path fill="#e8a30e" d="M321.9 268.5c.2 0 .6-.2.8.6q-.5 0-.8-.6"/>
+ <path fill="#e8a30e" d="M322.2 269q.4-.1.6.5c-.5-.2-.4-.1-.6-.6zm0 .5h-.2c.9 2 1 3.6.7 6.6h.2c.3-3 .2-4.6-.8-6.6zm-1.7-2.5c.4.3.6.2.6.8q-.5-.1-.6-.8"/>
+ <path fill="#e8a30e" d="M321.3 267c-.1.3-.4.6 0 1 .3-.4.2-.4 0-1"/>
+ <path fill="#e8a30e" d="M321.6 267.6q-.5.3-.1.9c.1-.4.3-.4 0-.9z"/>
+ <path fill="#e8a30e" d="M321.8 268q-.4.2 0 1c.2-.5.2-.5 0-1"/>
+ <path fill="#e8a30e" d="M322 268.4c-.1.3-.4.5 0 1 .3-.5 0-.5 0-1"/>
+ <path fill="#e8a30e" d="M322.3 268.8q-.5.4-.1 1 .3-.4 0-1zm-1.8-1.2q.4-.1.8.5-.7.1-.8-.5"/>
+ <path fill="#e8a30e" d="M320.6 268q.5-.1.9.5c-.6-.1-.6 0-.9-.5"/>
+ <path fill="#e8a30e" d="M320.8 268.4q.5-.1 1 .5c-.7-.1-.7 0-1-.5"/>
+ <path fill="#e8a30e" d="M321 268.9c.3 0 .7-.3 1 .5-.5 0-.5-.3-1-.5"/>
+ <path fill="#e8a30e" d="M321.4 269.3q.4-.1.7.5c-.5-.1-.4 0-.7-.5m2.2-3.2c.3.4.5.4.3 1q-.4-.4-.3-1"/>
+ <path fill="#e8a30e" d="M324.3 266.4q-.4.1-.4 1 .6-.3.4-1"/>
+ <path fill="#e8a30e" d="M324.4 267q-.6.2-.4.8c.2-.3.3-.2.4-.7z"/>
+ <path fill="#e8a30e" d="M324.4 267.4q-.4.1-.4 1c.4-.4.4-.4.4-1"/>
+ <path fill="#e8a30e" d="M324.5 268q-.6 0-.5.8c.5-.3.3-.4.5-.9z"/>
+ <path fill="#e8a30e" d="M324.5 268.4c-.2.2-.6.3-.4.9.3-.3.4-.3.4-.9m-1.2-1.8c.2.2.6.2.6.8-.5-.3-.5-.3-.6-.8"/>
+ <path fill="#e8a30e" d="M323.3 267q.4.1.6.8-.6-.2-.6-.8"/>
+ <path fill="#e8a30e" d="M323.4 267.4c.2.2.6.2.6.9-.5-.4-.5-.3-.6-.9"/>
+ <path fill="#e8a30e" d="M323.4 268c.2.1.7 0 .6.8-.4-.2-.3-.4-.6-.8"/>
+ <path fill="#e8a30e" d="M323.6 268.5c.2.1.4.1.4.8-.4-.4-.4-.3-.4-.8m-.4.3c.5 2.5.7 4.7.6 7.5h.2q.2-3.7-.7-7.5m-1-2.4c.4.4.6.3.5 1q-.5-.4-.5-1"/>
+ <path fill="#e8a30e" d="M323 266.6q-.5.2-.2 1c.3-.4.3-.4.2-1"/>
+ <path fill="#e8a30e" d="M323.1 267.2q-.5.2-.2.8.3-.3.2-.8"/>
+ <path fill="#e8a30e" d="M323.3 267.5q-.5.3-.2 1 .4-.3.2-1"/>
+ <path fill="#e8a30e" d="M323.5 268q-.6.3-.3 1c.4-.4.2-.5.3-1"/>
+ <path fill="#e8a30e" d="M323.6 268.5c-.2.3-.6.4-.3 1q.4-.4.3-1M322 267q.6-.1.8.6c-.6-.2-.6-.1-.8-.6"/>
+ <path fill="#e8a30e" d="M322.1 267.4c.2.1.7 0 .8.6-.6-.2-.6-.1-.8-.6"/>
+ <path fill="#e8a30e" d="M322.3 267.8c.2.1.6 0 .7.7q-.7-.1-.7-.7"/>
+ <path fill="#e8a30e" d="M322.4 268.3c.2 0 .6-.1.8.7-.5-.1-.5-.3-.8-.7"/>
+ <path fill="#e8a30e" d="M322.7 268.8q.4-.1.6.6c-.5-.2-.5-.1-.6-.6m-.8.9q.9 2 .7 3.7l-.3 2.5h.1q1-3.6-.5-6.2"/>
+ <path fill="#e8a30e" d="m322.5 269.2-.1.1c.8 2.1.9 4 .7 7h.1c.2-3 .1-5-.7-7zm-1.4-2.4c.4.3.5.2.5.8q-.5-.1-.5-.8"/>
+ <path fill="#e8a30e" d="M321.8 266.9c-.1.2-.4.4 0 1q.4-.4 0-1"/>
+ <path fill="#e8a30e" d="M322 267.4c-.1.3-.4.4 0 1 .1-.4.2-.4 0-1"/>
+ <path fill="#e8a30e" d="M322.3 267.8c-.2.2-.5.4 0 1 .2-.5.1-.5 0-1"/>
+ <path fill="#e8a30e" d="M322.5 268.2c-.2.3-.5.5 0 1 .2-.5 0-.5 0-1"/>
+ <path fill="#e8a30e" d="M322.7 268.7c-.1.2-.5.5-.1 1q.4-.4.1-1m-1.7-1.3q.4-.1.8.5c-.6-.1-.6 0-.8-.5"/>
+ <path fill="#e8a30e" d="M321.1 267.8q.5-.1.8.5c-.5-.1-.5 0-.8-.5"/>
+ <path fill="#e8a30e" d="M321.3 268.1c.2.1.7 0 .9.6-.6-.1-.6 0-.9-.6"/>
+ <path fill="#e8a30e" d="M321.5 268.7c.2 0 .6-.3.9.5-.5 0-.5-.2-.9-.5"/>
+ <path fill="#e8a30e" d="M321.9 269c.3.1.4 0 .6.6-.4-.1-.4 0-.6-.5zm-2-1.6q.7.1.8.7-.5 0-.7-.7z"/>
+ <path fill="#e8a30e" d="M320.7 267.4c0 .3-.3.5.2 1 .2-.5.1-.5-.2-1"/>
+ <path fill="#e8a30e" d="M321 267.9c0 .3-.3.5.1.9.1-.4.2-.4 0-.9z"/>
+ <path fill="#e8a30e" d="M321.3 268.2c0 .3-.3.5.1 1 .2-.5.2-.5 0-1z"/>
+ <path fill="#e8a30e" d="M321.6 268.6c0 .3-.4.5.1 1 .2-.6 0-.5 0-1z"/>
+ <path fill="#e8a30e" d="M322 269c-.2.3-.5.6 0 1q.2-.4 0-1m-2-1q.4-.2.9.4c-.6 0-.6 0-1-.4z"/>
+ <path fill="#e8a30e" d="M320.2 268.4c.2 0 .6-.2.9.4-.6 0-.6 0-.9-.4"/>
+ <path fill="#e8a30e" d="M320.4 268.7q.5-.2 1 .4c-.6 0-.6 0-1-.4"/>
+ <path fill="#e8a30e" d="M320.7 269.2c.2 0 .6-.3 1 .4-.5 0-.5-.2-1-.4"/>
+ <path fill="#e8a30e" d="M321.1 269.5q.4-.1.8.5c-.5 0-.5 0-.8-.5m3.8-.7a26 26 0 0 0-.7 7.5h.2q-.2-4 .7-7.4zm1-2.3c-.4.3-.5.3-.5.9q.5-.2.5-.9"/>
+ <path fill="#e8a30e" d="M325.1 266.6q.5.4.2 1c-.3-.4-.3-.4-.2-1"/>
+ <path fill="#e8a30e" d="M325 267.3q.6.2.2.8c-.2-.3-.3-.3-.2-.9z"/>
+ <path fill="#e8a30e" d="M324.9 267.6q.5.2.2 1-.5-.4-.2-1"/>
+ <path fill="#e8a30e" d="M324.7 268q.5.4.2 1c-.4-.4-.1-.5-.2-1"/>
+ <path fill="#e8a30e" d="M324.5 268.5c.2.3.6.5.3 1-.3-.4-.3-.4-.3-1m1.6-1.5c-.2.2-.6 0-.7.7q.6-.1.7-.7"/>
+ <path fill="#e8a30e" d="M326 267.5q-.4-.1-.7.6c.5-.2.5-.1.7-.6"/>
+ <path fill="#e8a30e" d="M325.9 267.9q-.5-.1-.8.6c.6-.2.6-.1.8-.6"/>
+ <path fill="#e8a30e" d="M325.7 268.4c-.2 0-.6-.2-.7.6q.4 0 .7-.6"/>
+ <path fill="#e8a30e" d="M325.4 268.8c-.2.1-.4 0-.5.7q.5-.1.5-.7m.2.4c-.9 2.1-1 4.1-.8 7h.2c-.2-3-.1-4.9.7-7zm1.5-2.3c-.5.3-.6.2-.6.8q.4-.1.6-.8"/>
+ <path fill="#e8a30e" d="M326.3 267c.1.2.4.5 0 1-.3-.5-.2-.5 0-1"/>
+ <path fill="#e8a30e" d="M326 267.5q.6.4.1 1c-.1-.5-.2-.5 0-1z"/>
+ <path fill="#e8a30e" d="M325.9 267.8c.1.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
+ <path fill="#e8a30e" d="M325.6 268.3q.5.4.1 1c-.3-.5 0-.5-.1-1"/>
+ <path fill="#e8a30e" d="M325.4 268.7q.5.3.1 1c-.2-.4-.3-.4-.1-1m1.7-1.2c-.2.1-.6 0-.8.5.6 0 .6 0 .8-.5"/>
+ <path fill="#e8a30e" d="M327 268q-.4-.2-.8.4c.6-.1.5 0 .8-.5z"/>
+ <path fill="#e8a30e" d="M326.8 268.3q-.5-.1-.8.5c.6-.1.5 0 .8-.5"/>
+ <path fill="#e8a30e" d="M326.6 268.8c-.2 0-.6-.3-.8.5.4 0 .4-.3.8-.5"/>
+ <path fill="#e8a30e" d="M326.3 269.2q-.5-.1-.7.5.4 0 .6-.5zm0 .5c-1.1 2-1 4-.6 6.3h.2l-.3-2.9a6 6 0 0 1 .8-3.3h-.1zm1.9-2c-.5.1-.7 0-.8.6q.6 0 .8-.7z"/>
+ <path fill="#e8a30e" d="M327.4 267.5c0 .3.3.6-.2 1-.2-.5-.1-.5.2-1"/>
+ <path fill="#e8a30e" d="M327 268q.4.4 0 .9c-.1-.4-.2-.4 0-.9"/>
+ <path fill="#e8a30e" d="M326.8 268.3q.3.4-.1 1c-.2-.5-.2-.5.1-1"/>
+ <path fill="#e8a30e" d="M326.5 268.7c0 .3.4.6-.1 1-.2-.6 0-.5 0-1z"/>
+ <path fill="#e8a30e" d="M326.2 269c.1.4.4.7 0 1-.2-.4-.2-.4 0-1m2-.8c-.3 0-.6-.2-1 .4.6 0 .6 0 1-.4"/>
+ <path fill="#e8a30e" d="M327.9 268.6c-.2 0-.6-.2-.9.3.6 0 .6 0 .9-.3"/>
+ <path fill="#e8a30e" d="M327.7 268.9c-.3 0-.7-.2-1 .4.7 0 .6 0 1-.4"/>
+ <path fill="#e8a30e" d="M327.4 269.4c-.2 0-.6-.4-1 .3q.6 0 1-.3"/>
+ <path fill="#e8a30e" d="M327 269.7q-.4-.2-.8.4.5.1.8-.4m-3.5 2.7h1.1q1.1 0 1.2.4t-1.2.3h-1.1q-1.2 0-1.3-.4c-.1-.4.6-.3 1.3-.3"/>
+ <path fill="#e8a30e" d="m322.7 272.4-.4.6h.4l.4-.6zm.9 0-.4.6h.4l.4-.6zm.9 0-.4.7h.4l.4-.7zm.8 0-.3.7h.4l.3-.6h-.2z"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m316.5 268.8.5 2.7.2.2v1.1l.5 1.6.3.6h.4l.1.2-.2.2h-.6l-.3-.1v-.3h-.2l-.1-.6-.8-1-.2-.5-.3-.3c-.5-1-1-3-1-3m-6.4-1 1.8.4-.5 2.6q-.4 1-.2 1 .2.7 1.1 2.3l.6.4.5.3h.5l.1-.2-.5-.2c0-.3-.5-.8-.5-1.2-.3-.7-.2-.7-.2-1.5l.5-1.6q.4-1 .5-2l-.8-1.7-.5-.7m-1.6-1.1c-2.9 1-1.7 3.5-.9 3.6m9.2-8.1.4-1v-.4l-.7.9"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M319.2 262.4h.4v-.6q-1-.4-1-.7v-.2c0-.2-.8-.3-1-.4l-.4-.2h-.2c-.8 0-1.1.7-1.2 1.2 0 0-.2 2.1-.5 3l-.2.3-.2.2-4.2-.2c-.8 0-1.8.7-1.8.7s-1 .6-1.1 1.6q-.1.5.1 1c1 2.7 1.8 0 2.1.1h.4c.5 0 1.4 1.5 2.7 1.8 4 .9 5-1.2 5-5.8v-.2l.2-.4v-.8l1-.2.2-.1"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m317.3 261 .4-1v-.4l-.9 1m-8.9 7.6.7 1.8q-.1.6-.3.7h-.2l-.2.6v.6c0 .7.4 2.2.4 2.3q.2 0 .3.2v1.2q.1.3.3.3h.6l-.4-.4v-.2q0-.3.3-.5v-.3l-.1-.2-.1-.9v-1.1l.2-.2.1-.2 1-.6.8-1 .2-.5v-.2l-.3-.9-.6-.8m5.9 1.8c-.5.4-1.8.7-1.8 1 0 0 0 1.6-.2 2.2l-.3.6-.2.7-.3 1v.3l.4.3h-.4l-.6-.2V274l-.2-1.4.1-1-.1-3.6m4.7-5.4q.3.4 1.3.1.2.3.6-.2m-.3-.5h.2s.1 0 0 0z"/>
+ <path d="M317.8 261.4q.3.4.6.1-.3-.3-.5-.1z"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M329.1 272.9v2.9c.2.2 1 .2 1.2 0v-17.2h-.9v4.9l-.1.8v3.2q-.2.4 0 .8v.7l-.1.8z"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M329.1 273.6c.3.2 1 .1 1.2 0m-1.2-.7h1.2m-1.2-.8h1.2m-1.1-.7h1.1m-1.1-.8h1.1m-1.1-.8h1.1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-.9-.8h.8m-.8-.8h.8m-.8-.8h.8m-.8-.7h.8m-1 15.5h1.1m-1.2.7h1.2"/>
+ <path fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".1" d="M331.5 257h2.1l-.8-.3h2.2l-1-.5 2.2.1-1-.5c.9 0 1.2 0 2 .2l-.9-.5 2.5-.2a9 9 0 0 0-8 .8l1-1.1h-.7q.5-.6 1.2-1l-.7.1 1.4-1-.9.1 1.6-1.1h-1l2-1.3c-3.3.4-5.1 2.8-5.3 4.8a7 7 0 0 0-6.6-3.6q1.5.5 2.4 1l-1 .1q1.1.3 2 1h-1l1.8.8-.8.1 1.5.8h-.8c1 .4 1.1.6 1.3.7a8 8 0 0 0-7.3 3l2.2-1-.5.8q.9-.6 2-1l-.4.7 1.8-1-.4.8 1.7-.7-.5.7 1-.4a6 6 0 0 0-2.9 5.8l.9-2v1l1-2v1l1-2v1l1.1-1.9v.8l.3-.6.7-.9.2.3q.4.7.5 1.8l.2-.9c.3.7.7 1.8.7 2.4l.2-1c.3.5.6 1.8.7 2.3l.3-.9q.4 1.3.5 2.3c.8-3-.4-4.9-1.8-6.3q.6.2 1.3 1l-.3-.9 1.5 1.4-.2-.8q.9.8 1.5 1.6l-.2-1a6 6 0 0 1 1.3 1.8l-.1-1q1 1 1.3 1.7c0-2.7-3.1-5-6-5.3z"/>
+ <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M330.3 257.1c3.1-.5 7.2 2.3 7.2 5.3l-1.3-1.8.1 1-1.3-1.7.2 1q-.6-.8-1.5-1.6l.2.8-1.5-1.4.3 1q-.8-1-1.3-1.1m-1.8-1.5c-1.9-1.2-5.8-1-8.7 2.3l2.2-.9-.5.8q.9-.6 2-1l-.4.7 1.8-1-.4.8 1.7-.7-.5.7 1-.4"/>
+ <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.7 256.6c-.4-2.2-3-4.8-6.9-4.6q1.5.5 2.4 1l-1 .1q1.1.3 2 1h-1l1.8.8-.8.1 1.5.7-.7.1c1 .4 1 .6 1.2.7m1.5 1c-2.6.8-5.1 3.3-4.7 6.7 0-.4.5-1.5.8-2v1l1-2v1l1-2v1l1.1-1.9v.8l1-1.5m-1.6.2-.5 1.4m-.5-.8-.5 1.9m-.5-1-.5 2"/>
+ <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.9 258.6v-.6" class="bo-fil1 bo-str2"/>
+ <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M332.6 261.3v1.3m-1-3 .1 1.6m-1-2.7.1 1.3m4.8-.4.6 1.2m-2-2.1.8 1.4m-2-1.8.7 1.2m-10.6-.8a5 5 0 0 1 1.7-1.2m-.2 1c.4-.6.6-.9 1.6-1.3m-.2 1q.5-.6 1.7-1.1m-.4 1.2q.7-.6 1.6-1m-3.7-4q1.2 0 2.2.6m-1.2.4q1 0 1.8.4m-1 .4q1 0 2 .6m-1.3.2a4 4 0 0 1 1.7.6m.9.2a9 9 0 0 1 8.5-1.2l-2.4.2q.6.1.8.4h-2q.6 0 1 .4H334l1 .3h-2.2l.8.3q-1.4 0-2 .2m4.8-1.6a6 6 0 0 0-2.2-.4m1 .7a6 6 0 0 0-2.5-.2m1.3.6a7 7 0 0 0-2.5-.2m1.3.7a5 5 0 0 0-2-.1m.8 1q.5.5.8 1.1m-3-3.1c.2-2 2-4.4 5.3-4.8l-2 1.3h1q-.9.4-1.6 1.1h.9l-1.4 1 .7-.1-1.2.9h.7l-1 1.1m2-4q-.8.2-1.6.7m1 .4-1.5.5m.9.4q-.7.2-1.5.7m1 .2a3 3 0 0 0-1.4.8m-.5 2.4-.3 1.1m1.2-2c1.8 1.6 4.1 3.7 3 7.6a6 6 0 0 0-.4-2.2l-.3.9a7 7 0 0 0-.7-2.4l-.2 1-.7-2.4-.2.9q0-1.4-.7-2"/>
+ <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m293.3 233.5 1.3.7.3-.6q.2-.5.1-.6 0-.3-.5-.5t-.7-.2q-.3 0-.5.4l-.2.5q0 .2.2.3m1.6 1 1.7.8h.3l.3-.5.3-.6v-.4l-.2-.2-.3-.2q-1.1-.6-1.7.3l-.4.7m-2.6-.8.6-1.2.6-.7.6-.4h.9q.3.1.4.6.2.3.1.7l1-.6 1 .1q.4.3.6 1t-.4 1.7l-.7 1.3-.3.7-1.4-.9-1.8-1-1.5-.7.3-.6m9-10.8q-1.2 1 .3 2.6.8 1 1.5 1 .6.2 1.3-.3.5-.4.4-1a3 3 0 0 0-.8-1.5q-.8-1-1.4-1.2-.8-.1-1.4.4m3.8-.2q.7 1 .7 2a3 3 0 0 1-1.2 2 3 3 0 0 1-2 .7 2 2 0 0 1-1.8-1 3 3 0 0 1-.7-2q0-1 1-2a3 3 0 0 1 2-.7q1.1 0 2 1m8-2.6.3 1 1.9-.7h.3l.3.7-.5.1-2.4.7-.7.2-.4-1.6-.5-2-.5-1.5.6-.2.7-.2.3 1.6.6 2m9.2-3v-1.6h.8l.7.1-.3 1.7-.2 2-.1 1.6h-.7l-.7-.1.3-1.7.2-2m9.9 5.3 3.1-2.7.4.2.4.2-4.7 3.6-.5-.3.2-2 .4-3.8 1.2.7-.5 4m8.4 4 1.2-1.3.4.6.5.4-1.3 1.1-1.5 1.4-1.1 1.1-.5-.5-.5-.5 1.3-1 1.5-1.4m5 10 1.3-1.4h-2l.7 1.4m-1.1-1.3-2 .1-.1-.3-.2-.4h5.9l.3.6-4 4.3-.2-.7-.3-.6 1.4-1.3-.4-.8-.4-1" font-family="Linux Biolinum" font-size="100" font-weight="700" letter-spacing="60" style="line-height:125%;text-align:center" text-anchor="middle" word-spacing="0"/>
+ <path fill="#e8a30e" stroke="#000" stroke-linecap="square" stroke-linejoin="round" stroke-width=".1" d="m325 280.6-.8 2.2h-2.4l1.9 1.5-.7 2.2 2-1.3 1.8 1.3-.6-2.2 1.8-1.4h-2.3zm9-3.9-.7 2.2H331l1.8 1.5-.7 2.2 2-1.3 1.9 1.3-.7-2.2 1.9-1.4h-2.4zm14.2-25-.8 2.3h-2.3l1.8 1.4-.6 2.3 1.9-1.4 1.9 1.4-.7-2.3 1.9-1.4h-2.4zm-6.7 17.9.7 2.2h2.4l-1.9 1.4.7 2.3-2-1.4-1.9 1.4.7-2.3-1.8-1.4h2.3zm4.7-8.2.8 2.2h2.3l-1.9 1.5.7 2.2-1.9-1.3-2 1.3.8-2.2-1.9-1.4h2.3zm-31.1 19.2.8 2.2h2.3l-1.9 1.5.7 2.2-2-1.3-1.8 1.3.6-2.2-1.8-1.4h2.3zm-9.2-3.9.8 2.2h2.4l-2 1.5.8 2.2-2-1.3-1.9 1.3.7-2.2-1.9-1.4h2.4zm-14-25 .7 2.3h2.3l-1.8 1.4.6 2.3-1.9-1.4-1.9 1.4.7-2.3-1.9-1.4h2.4zm6.6 17.9-.7 2.2h-2.4l1.9 1.4-.7 2.3 2-1.4 1.9 1.4-.7-2.3 1.8-1.4h-2.3zm-4.7-8.2-.8 2.2h-2.3l1.9 1.5-.7 2.2 1.9-1.3 2 1.3-.8-2.2 1.9-1.4h-2.3z"/>
+ <path fill="#e7e7e7" d="M321 248.1v-.5h.1l-.8-.5h-.7l-.8.5v.5h2.3"/>
+ <path fill="#e7e7e7" d="M321 248.1v-.5h.1l-.8-.5v-.7h-.6v.7l-.9.5v.5h2.3zm.3.6v.2h-2.6v-.2z"/>
+ <path fill="#e7e7e7" d="M321.3 248.7v.2h-2.6v-.2zm-2.5 0v-.5h.1v.5-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
+ <path fill="#e7e7e7" d="M318.9 248.7v-.5zv-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
+ <path fill="#e7e7e7" d="M319.4 248.6v-.4h-.4v.4z"/>
+ <path fill="#e7e7e7" d="M319.1 248.3v.2h.2v-.2zm1.8.3v-.4h-.3v.4z"/>
+ <path fill="#e7e7e7" d="M320.7 248.3v.2h.1v-.2zm.2-.3v-.3h-.3v.3z"/>
+ <path fill="#e7e7e7" d="M320.7 247.7v.2h.1v-.2zm-1.3.3v-.3h-.4v.3z"/>
+ <path fill="#e7e7e7" d="M319.1 247.7v.2h.2v-.2zm.8.3v-.3h-.3v.3z"/>
+ <path fill="#e7e7e7" d="M319.7 247.7v.2h.1v-.2zm.7.3v-.3h-.3v.3z"/>
+ <path fill="#e7e7e7" d="M320.1 247.7v.2h.2v-.2zm.4.2v.8h-1v-.8z"/>
+ <path fill="#e7e7e7" d="M320.5 247.9v.8h-1v-.8zm-1 .2h1m-.9.6v-.6m.7.6v-.6m.5-.5-.5-.4h-.6l-.5.4zm-1-.5h.4m-.3-.1h.2zm.1 1h.1zm.3 0h.1"/>
+ <path fill="#e7e7e7" fill-rule="evenodd" d="M319.8 246h.4v.4h-.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M320 245.6v.4m-.2-.2h.4"/>
+ <path fill="#452c25" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9s0-.2 0-.2l-.2-2.8-2 2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9s0-.2 0-.2l-.2-2.8-2 2.7"/>
+ <path fill="#452c25" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
+ <path fill="#452c25" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
+ <path fill="#452c25" d="m356.8 195.6 3.4 1.9s.8.7-1 .3a42 42 0 0 1-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m356.8 195.6 3.4 1.9s.8.7-1 .3a42 42 0 0 1-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1z"/>
+ <path fill="#452c25" d="m358 194.8 3.3 1.9s.8.7-1 .3a45 45 0 0 1-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m358 194.8 3.3 1.9s.8.7-1 .3a45 45 0 0 1-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
+ <path fill="#452c25" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2s-3.6-2-3.6-2l1.6-.3 9.3 3.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2s-3.6-2-3.6-2l1.6-.3 9.3 3.7z"/>
+ <path fill="#452c25" d="m342.6 198.1 1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m342.6 198.1 1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
+ <path fill="#452c25" d="M336.6 199s2.2 2.9 1.7 3.2-3 .2-4.8-2.5c-1.9-2.8 0-.2 0-.2v-4.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M336.6 199s2.2 2.9 1.7 3.2-3 .2-4.8-2.5c-1.9-2.8 0-.2 0-.2v-4.4l3.2 3.8"/>
+ <path fill="#452c25" d="M338.8 197.8s2.1 2.6 1.9 3-3.2.2-5.5-2.5c-2.3-2.6-.3-3.4-.3-3.4l3.9 2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M338.8 197.7s2.1 2.7 1.9 3.1-3.2.2-5.5-2.5c-2.3-2.6-.3-3.4-.3-3.4z"/>
+ <path fill="#452c25" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
+ <path fill="#452c25" d="M353.8 195.4s3.1 2 3.4 2.7-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M353.8 195.4s3.1 2 3.4 2.7-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
+ <path fill="#452c25" d="M344.5 197.2s2.3 1.9 2 2.1-5-.5-8.6-3.3l.4-1.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M344.5 197.2s2.3 1.9 2 2.1-5-.5-8.6-3.3l.4-1.7 6.2 2.8"/>
+ <path fill="#452c25" d="M348.4 197s2.3 1.6 1.8 1.8-2.2 1.6-10.7-3.4l-1-.6 1.3-2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M348.4 197s2.3 1.6 1.8 1.8-2.2 1.6-10.7-3.4l-1-.6 1.3-2z"/>
+ <path fill="#452c25" d="M339.7 192.4s2.8 2.4 2.4 2.8-3.6-.4-5-1.5c-1.5-1-2.6-2.4-2.6-2.4l3-.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M339.7 192.4s2.8 2.4 2.4 2.8-3.6-.4-5-1.5c-1.5-1-2.6-2.4-2.6-2.4l3-.7z"/>
+ <path fill="#452c25" d="m336.4 188.3 5 3s4.1 2.8 3.7 3.1-3.7-.8-6-2c-2.2-1.3-5-4-5-4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m336.4 188.3 5 3s4.1 2.8 3.7 3.1-3.7-.8-6-2c-2.2-1.3-5-4-5-4"/>
+ <path fill="#452c25" d="M333.2 202.4s1 2.4.4 2.6-2-.2-3-2.3c-1.2-2.2 1-1.3 1-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M333.2 202.4s1 2.4.4 2.6-2-.2-3-2.3c-1.2-2.2.7-1.3.7-1.3z"/>
+ <path fill="#452c25" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3z"/>
+ <path fill="#452c25" d="M330.7 190.4s4.8 9.3 4.4 9.8-2.3 0-3.4-2.5-1.9-5.6-1.9-5.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M330.7 190.4s4.8 9.3 4.4 9.8-2.3 0-3.4-2.5-1.9-5.6-1.9-5.6z"/>
+ <path fill="#452c25" d="M336.3 192.8s4 3.3 3.2 3.8q-1.2.8-4.8-2.5c-2.3-2.3 1.6-1.5 1.6-1.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M336.3 192.7s4 3.5 3.2 3.9q-1.4.8-4.8-2.5c-3.4-3.3 1.6-1.4 1.6-1.4z"/>
+ <path fill="#452c25" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
+ <path fill="#452c25" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5l-1.5 1.1"/>
+ <path fill="#452c25" d="M313.8 199.9s-1 3.4 0 4.1 1.9-3.4 2-4.3c0-1-2 .2-2 .2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.8 199.9s-1 3.4 0 4.1 1.9-3.4 2-4.3c0-1-2 .2-2 .2z"/>
+ <path fill="#452c25" d="M314.6 204.3s.2 3.2.8 3.4 1.6-1 1.6-1.8-1-2.8-1-2.8l-1.4 1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.6 204.3s.2 3.2.8 3.4 1.6-1 1.6-1.8-1-2.8-1-2.8l-1.4 1"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M314.6 200.4s-1 3.5 0 4.2 1.9-3.4 2-4.4c0-.9-2 .2-2 .2z"/>
+ <path fill="#452c25" d="M314.7 194.8s-1.6 1.7-1.6 2.6 2.4-1.2 2.6-1.6-1-1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M314.7 194.8s-1.6 1.7-1.6 2.6 2.4-1.2 2.6-1.6-1-1-1-1z"/>
+ <path fill="#452c25" d="M313.6 194s-1.3 2.3-1 3 1.6-.5 2.2-1.4-1.2-1.7-1.2-1.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.6 194s-1.3 2.3-1 3 1.6-.5 2.2-1.4-1.2-1.7-1.2-1.7z"/>
+ <path fill="#452c25" d="M331.5 190.8s2 3.8 1.5 4q-1 .1-2.3-1.9c-.8-1.1.8-2.1.8-2.1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M331.5 190.8s2 3.8 1.5 4q-1 .1-2.3-1.9c-.8-1.1.8-2.1.8-2.1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.6 198.6s.7 3.3 0 3.6c-1.2.5-2-2.3-2-3.4s2-.2 2-.2zm-2.6 5.1s.2 2.5-.2 2.7c-.3.2-1.2.2-2.1-1.8l-.5-1.2 2.3-1.2.5 1.3"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.4 203.2s.2 2.5-.3 2.6c-.5 0-1.9-.8-2.5-2.3-.6-1.8 2.4-1.3 2.4-1.3z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M329 195.3s2.6 6 2.1 6.7c-.8 1.7-3.2-3.5-3.9-5.6-.8-2.2 1.7-1 1.7-1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.7 196.3s3.6 6.5 2.1 6.6c-1.5.2-4.3-4.6-4.7-5.8-.5-1 2.6-.8 2.6-.8z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 197.7s1.8 6.2.6 5.6c-1-.5-2.5-5.2-2.6-6.2s2 .6 2 .6zm6.2-8.8s2.7 4.1 1.8 4.2c-.8.2-4-2.7-4-3.2-.1-.5 2.2-1 2.2-1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M332 189s3.5 4.8 2.4 5c-1 .2-1.1-.5-1.1-.5s-2.8-2.5-3-3.1c-.1-.6 1.6-1.4 1.6-1.4m3.5.1s2.4 2.5 1.8 3.3-4-3.1-4.4-3.6 2.9.2 2.9.2m-6 3.5s3.8 7.5 3 8.2c-.6.8-4.9-5.6-5-6.5-.2-.9 2-1.8 2-1.8"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 193.2s1.5 2.3 1.4 3.6c0 1.2-2.3-1.8-2.5-2.4s1-1.2 1-1.2zm3.1-1.2s1.2 2.4.8 3.1-2-1.4-2.5-2.3 1.7-.8 1.7-.8z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".2" d="M325 194.4s2 2 1.9 3.1-2.8-1.6-3-2c-.3-.6 1.2-1.1 1.2-1.1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M337.2 188.4s2.8 2.5 2.4 3c-.5.3-4.3-2.4-4.9-3-.6-.5 2.5 0 2.5 0z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="m334.8 188.2 2.2 1.9s2 1.3 1.7 1.7-3.6-1.1-4.1-1.8q-.8-1.2-.6-1.4zm7.3.6s8.4 3.4 8 4.2c-.3.8-8.8-2.7-10-3.7-1.4-.9 1.8-.6 1.8-.6"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M342.4 189.8s6.3 3.6 5.5 4-5.2-1-7.5-2.5l-3.3-2.5 2.8-.6zm-15.5 4.4s1.2 2.4.8 3c-.4.8-1.5-.5-2.1-1.4s1.3-1.6 1.3-1.6zm.3 5.4s1 3.5-.1 4.2c-1.1.6-1.8-3.6-1.8-4.5s1.9.3 1.9.3z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M322.3 193.8s3.5-1.5 4.1-1.4c0 0 .8-.2 1.1-.5l1.3-1s-.6-4.3 3.9-3.8l11.5 1.1a45 45 0 0 1 6.5 2l9 3.9 4 2.3c.8.5-.1.1-.1.1s-10.7-5.7-14.5-6.4c-1-.2 0 1 0 1l-3.4-1.3a6 6 0 0 0-2.9-.6 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.3.4-1.6-.2-.5.6s-1.5.3-1.6-.2-1 2.3-1.3 3c-.4.9-1.9.9-2.3 1.4l-1 .9c-.2.1-1.3.8-1.7.8l-2.9.2-.6-1zm4.6 10-.1 3.3c-.2.2-1.8.1-1.8-2.2s.5-2.4.5-2.4l1.5 1.2"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.3 201.4s-.3-1.4-.5-1.6 0-.3 0-.3-.5-1.4-.9-1.6c-.3-.2.1-.4.1-.4s-.6-1-1-1.2c-.4-.3 0-.4 0-.4s-.5-1.2-1.5-1.8c0 0-.7-.7-1.4-.9q-1.2-.4-4.5-.3c-2.2 0-3.2 1.5-3.2 1.5l-.1 1.8.3-.2-.5 2.2c0 .5.5 1.4.5 2.5v1q.2 1.5.8 2.9v.2c.2-.2.5.6.7 1 0 0 0 1 .2.6l.6 1.1c0 .2.5 1.4.5.9 0-.6.4 1.3.4 1.5l.5-.7.2.8h.5l-.2.8s1.2-1 1.3-1.4v-.6l.4-.4.6-1s1.5 1.2 1.7 1.7l.3.7.4-.3.3.8.3-.4.2.6.1.3c.1.1.4.2.8-.6q.8-1.7.6-2c0-.3.3.2.3.2s.6-1 .5-1.6.3-.4.3-.4v-2.2q.2-.4.3-.3l-.2-2.3c-.2-.2.3-.2.3-.2z"/>
+ <path d="M324.3 196.7q.4.1.6.6-.2-.6-.6-.8zm.3 1.2q.7.8.5 1.8v.1q.1-1.1-.5-2zm1.1.7a3 3 0 0 1 .4 1.6q.1-1-.4-1.7m.4 2.5q0 .6-.2 1v.2zm-.4 1.9v.7-.8m.7 0q.3.2.3.6v-.1l-.3-.7zm0-2.6.4.5v-.2l-.5-.5zm-1.4 2v1zm-.7.7v1-1.1z"/>
+ <path fill="#452c25" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
+ <path fill="#452c25" d="M312.6 194.3s-1.6 1.7-1.6 2.6 2.4-1.3 2.6-1.7-1-.9-1-.9"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.6 194.3s-1.6 1.7-1.6 2.6 2.4-1.3 2.6-1.7-1-.9-1-.9z"/>
+ <path fill="#452c25" d="M285 194.5s-3.3 1.7-3.6 2.4 10-1 15.8-5l-2.3-1.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M285 194.5s-3.3 1.7-3.6 2.4 10-1 15.8-5l-2.3-1.4z"/>
+ <path fill="#452c25" d="M289 195.2s-6 2.2-1.7 2.3c0 0 8.7-1.8 13.3-5.4l-1.1-1.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M289 195.1s-6 2.3-1.7 2.4c0 0 8.7-1.8 13.3-5.4l-1.1-1.7z"/>
+ <path fill="#452c25" d="M298 189s-6.5 3.4-5.8 3.7 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M298 189s-6.5 3.4-5.8 3.7 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
+ <path fill="#452c25" d="M295.5 196.3s-2.3 1.9-2 2.1 5-.5 8.6-3.4l-.5-1.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M295.5 196.3s-2.3 1.9-2 2.1 5-.5 8.6-3.4l-.5-1.7-6.2 2.9"/>
+ <path fill="#452c25" d="M291.5 196s-2.2 1.7-1.7 1.8 2.3 1.5 10.6-3.9l1-.6-1.5-2-8.4 4.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M291.5 196s-2.2 1.7-1.7 1.8 2.3 1.5 10.6-3.9l1-.6-1.5-2z"/>
+ <path fill="#452c25" d="M289.8 189.6a66 66 0 0 0-13.9 7.2l17.9-7m11.2 10.6s-1.5 2.3-1.2 2.5 2.1 1.2 4.3-1.7c2-3-2-2.5-2-2.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M305 200.4s-1.5 2.3-1.2 2.5 2.1 1.2 4.3-1.7c2-3-2-2.5-2-2.5z"/>
+ <path fill="#452c25" d="M306.6 202s-1 2.4-.5 2.6 2-.1 3.2-2.2c1.2-2.2-.6-1.1-.6-1.1zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4l-.5-2.5-2.7 1.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M306.6 202s-1 2.4-.5 2.6 2-.1 3.2-2.2c1.2-2.2-.6-1.1-.6-1.1zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4l-.5-2.5-2.7 1.7"/>
+ <path fill="#452c25" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
+ <path fill="#452c25" d="m297.4 197.3-1.4 1.9s.3 1.8 5.1-1.5l4.5-3-2.5-.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m297.3 197.2-1.3 2s.3 1.8 5.1-1.5l4.5-3-2.6-.5z"/>
+ <path fill="#452c25" d="m282.2 194.5-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m282.2 194.5-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
+ <path fill="#452c25" d="M277 196.4s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.2 2 5.3-2 6.5-3.8 0 0 0 0l7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m290.3 192.4 7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.1 2 5.3-2z"/>
+ <path fill="#452c25" d="M308.5 202s-.4 3.4.1 3.5 2-1 2.6-3c.6-2.2-2.4-2-2.4-2l-.4 1.3"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M308.5 202s-.4 3.4.1 3.5 2-1 2.6-3c.6-2.2-2.4-2-2.4-2l-.4 1.3"/>
+ <path fill="#452c25" d="M310.8 203.5s-.3 2.4 0 2.6c.4.3 1.3.4 2.3-1.6s.5-1.3.5-1.3l-2.3-1.2-.5 1.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M310.8 203.4s-.3 2.5 0 2.7c.4.3 1.3.4 2.3-1.6s.5-1.3.5-1.3l-2.3-1.2z"/>
+ <path fill="#452c25" d="M311.4 199s-1.9 4-.8 4 2.5-3 2.7-3.7-1.9-.3-1.9-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M311.4 199s-1.9 4-.8 4 2.5-3 2.7-3.7-1.9-.3-1.9-.3z"/>
+ <path fill="#452c25" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4s-2 .4-2 .4"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4s-2 .4-2 .4z"/>
+ <path fill="#452c25" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.4 198.3s-1 3.2-.4 3.5c1.2.6 2.3-2.2 2.4-3.3.1-1.2-2-.2-2-.2zm-7.9-6.6s-2.8 2.4-2.5 2.7 3.6-.2 5.1-1.3l2.1-1.5-2.5-1.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M303 189.3s-1.8 1.5-1.5 1.9 3.6-1 4.2-1.7.6-1.3.6-1.3z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M304.9 189s-2.5 2.1-1.9 2.9 4-2.6 4.5-3-2.9 0-2.9 0"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="m303.8 188.2-5 2.3s-4.2 2.7-3.8 3 3.7-.6 6-1.7a38 38 0 0 0 5-3.1m-.9 2.1s-5.3 4.7-4.5 5.1c.8.5 4.4-1.4 6.8-3.7"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M305.8 192.4s-3 5-2.7 5.6c.4.5 2.6-1.2 3.7-2.5s2-3.2 2-3.2"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.6 192.8s-3.3 6.1-3 6.6c.4.5 2.4.1 3.5-2.3s1-4 1-4z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.5 193.1s-3.7 7.6-3 8.3 4.8-5.7 5-6.6c.3-1.6-2-1.8-2-1.8m-7.7-4.9s-3.3 1.6-2.7 2c.7.2 3.8-1.2 4.2-1.3s-1.5-.7-1.5-.7z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M302.3 188.6s-2 1.6-1.6 2c.4.5 3.5-1.2 4-1.7.7-.5-2.4-.3-2.4-.3zm4.3.2s-2.8 3.7-2 3.8c.9.2 4.1-2.4 4.2-2.8 0-.5-2.2-1-2.2-1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.8 189.6s-3 3.7-2.1 4 1-.4 1-.4 2.3-2 2.4-2.5-1.2-1.2-1.2-1.2"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.7 190.5s-2.1 3.7-1.6 4 1.5-.8 2.4-1.9-.8-2.1-.8-2.1z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.3 192.2s-1.3 2.3-1 3 1.6-.5 2.2-1.3-1.2-1.7-1.2-1.7zm.5 6.5s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M315.7 194.4s-.9-.3-1.5-.3c0 0-1.9-1.4-3-1.6-1-.1 0-.2 0-.2s-.2-2.4-.5-2.6c0 0-.1-2.5-1.7-2.6s-5.1.1-5.7-.1-2.6-1-6.3 0c-3.8 1-11.2 4.3-11.6 4.4-.4 0 8.5-2 11-3l3.3-.5s-2.8 1.4-.2.8 2 0 2 0-.2.6 1.3.3c1.4-.4 1.4 0 1.4 0s1.7.6 3-.2c0 0 .7 2.3 1.6 2.6 0 0 1 2.2 3.1 2.6l1.2.9 1.2.4 1.3-1"/>
+ <path fill="#452c25" stroke="#000" stroke-width=".1" d="M298.3 188s-8.6 3-8.3 3.9c.4.8 9-2.4 10.3-3.2 1.4-1-2-.7-2-.7"/>
+ <path d="m321.8 194.6.5.2-.3-.3-.7-.3.1.2zM315 201l.3.8v-.2q0-.4-.3-.7zm1.2-6.5.9-.2v-.1l-.9.1zm1.7-.2.8-.1v-.1zm-3 1.5v.2zm-.1 4.6v.7-.1z"/>
+ <path fill="#bd8759" d="M316.6 213.9s-1 .7-1 1l-.2.8s.8-.1.7.3c0 0 .3.2.8-.8q.6-1.5 1.1-1.5.6.2 1 .6.2.4.8.3s-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8q-1-.2-1-.6c.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2q0-.2.6-.2l.1.2.5-.4.1-.1.6-.1"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M316.6 213.9s-1 .7-1 1l-.2.8s.8-.1.7.3c0 0 .3.2.8-.8q.6-1.5 1.1-1.5.6.2 1 .6.2.4.8.3s-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8q-1-.2-1-.6c.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2q0-.2.6-.2l.1.2.5-.4.1-.1.6-.1"/>
+ <path fill="#bd8759" d="M323.1 209.2v2.1q0 .6-.2 1.1t-.7.5c-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2-.3-1 1.5.6q.2.4.5.5c.1 0 0-.5.2-.5h.4s-.4-.8-1-1l-1.2-.6-.3-.9v-2.8l-1-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M323.1 209v2.3q0 .6-.2 1.1t-.7.5c-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2-.3-1s1.4.5 1.5.7l.5.4c.1 0 0-.5.2-.5h.4s-.4-.8-1-1l-1.2-.6-.3-.9v-2.8z"/>
+ <path fill="#dcddde" d="M315 197.3s0-1.3.3-1.4c0 0 .1-1.2 1.7-1 0 0 .5-.9 1.4-.4 0 0 .8-.4 1.3-.2l1 .7s.7-.1 1 .1.2 1.1.2 1.1.8.6.8 1.1v.9s.3.3.2.7q-.2.8-.4 1c-.1 0 0 1-.3 1.3l-.8.5c-.2 0-.6.6-1 .6-.3 0-.8-.5-.8-.7s-.6-.4-.6-.4-1 1.2-1.8 1-1.1-.8-1.2-1l-.3-1s-.8-.4-.7-.9c0-.4.4-1 .4-1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m317.8 212-.2-.1m.6-.9-.3-.1m0 .6h.2m5.5.5.5.2m-.2-.6h-.3m.4-.5h-.5m0 1.8.4.1m-.4.5h.2m-.1 1.6h.3m-5.1-2-.3.1m1-.1q-.2.1-.3.4m-4.5.5.4.3m10-1-.3.3m.7-.1v.2"/>
+ <path fill="#d9c0b9" d="M313.4 215h.6s-.3.7-.2.8-.5-.3-.3-.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M313.4 215h.6s-.3.7-.2.8-.5-.3-.3-.7z"/>
+ <path fill="#d9c0b9" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1z"/>
+ <path fill="#d9c0b9" d="m319.6 214.5-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m319.6 214.5-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
+ <path fill="#d9c0b9" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3z"/>
+ <path fill="#d9c0b9" d="m323.5 215.9.4-.4.4.2-.3 1.2-.2-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m323.5 215.9.4-.4.4.2-.3 1.2-.2-.3z"/>
+ <path fill="#d9c0b9" d="m326 214.8.5 1s.6-.6-.2-1.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m326 214.8.5 1s.6-.6-.2-1.5z"/>
+ <path d="m323.3 195.9.2.2v-.1zm.1 2.2.4.7v-.2l-.4-.7zm-.4-1.6.5.6v-.2zm.5 3.5q0 .5-.2.8v.2q.3-.5.2-1.1zm.5 1v.6zm1.8 3.9.1 1.3-.1-1.5zm-.3.8-.4 1 .4-.8zm-10.3-2.9.7 1.2v-.1zm1.8 0-.5-.4v.2c.2 0 .3.4.5.4zm-1 1.8.5 1v-.2l-.5-1zm1.2.4.5.8v-.1q-.1-.5-.5-.8m0 1.3.2.7v-.1zm1.1.3.1.7v-.9.2m-.5 1q0 .5.3 1v-.2zm.2-4.4.8.3v-.1zm.2 1.2 1 .4-1-.6zm.3 1.2.6.6v-.1zm.4 1.6.2.7-.2-.8zm1-4v.5zm2.3-.9-.2.5v.1l.2-.4zm1 0v.9zm.2 1.6v.7-.8m.7 1.5q0 .5-.5.8v.1q.5-.2.5-.8m-2.4-1.5-.2.4v.1zm.3 1.8-.4.4v.1q.3 0 .4-.3zm-.9 1q-.4-.6-.3-1.3v-.1q-.2.8.3 1.5v-.2m-1-1-.1.5v-.6m2.6 1.3q0 .4-.3.7v.1l.3-.6zm1.7.7-.5.7v.2zm.8.8-.2 1.3v.1zm1-1.6v.5zM315 202l.1 1.3v-.2l-.1-1z"/>
+ <path fill="#fff" d="M318.8 196.3c.7-.6 1.7-1.3 2.7-1v-.2c-1-.2-2 .5-2.7 1.1zm3.5.8c-.8-.5-2-.6-2.7 0 .7-.5 2-.3 2.7.2zm-2.8 1.1q.6 1.5.5 3 .1-1.5-.5-3m-1.1.6v3zm1.5-.7q1.6.4 2.4 1.7v-.1a4 4 0 0 0-2.4-1.7zm-.8 1.3-.2 1.8q.3-.8.2-1.8m1.4-.1a3 3 0 0 1 1.2 2v-.1a3 3 0 0 0-1.2-2m-4.3 1.7q.3-.5.8-.7v-.1q-.6.1-.8.7zm1.4-5q-.2-.9-1-1.2v.1q.8.4 1 1.2zm-.8 0-1.5-.2v.1q.7 0 1.5.3zm1.5 0q.1-.9-.4-1.3.5.4.4 1.2m1.8.7q.8-.3 1.5-.2v-.2l-1.5.2zm.9 1.2a3 3 0 0 1 1.7 1v-.3a3 3 0 0 0-1.7-1zm-3.1 2c-.2.6 0 1.5-.9 1.8v.2c.8-.3.7-1.1.9-1.8z"/>
+ <path fill="#fff" d="M319.5 199q.6 1 .5 2.2v.3q.2-1.4-.5-2.7zm1-.1q1.1.2 1.4 1.4v-.2a2 2 0 0 0-1.4-1.5zm0 1q.3.9.1 1.8v.2c.3-.7 0-1.5 0-2.2v.2m-.4-2.6q1.1-.3 2.2.3v-.3q-1.1-.6-2.2-.2zm-1.4-1.5q.2-.9 1.2-1.3v-.2q-1 .3-1.3 1.3zm-.6.4q-.1-1-.7-1.9v.2q.5.8.6 1.8zm-.6.4a2 2 0 0 0-1-1.4v.3q.8.4 1 1.3zm-1-.3-1.2-.5v.2q.7.1 1.2.5zm2.2 3q.2 1-.2 1.9v.2q.5-1.1.2-2.3z"/>
+ <path fill="#fff" d="M319.4 198.9q.4 1 .4 2a6 6 0 0 0-.4-2.3zm.5-1q1 .4 1.7 1v-.3a4 4 0 0 0-1.7-.9zm-1.7-1.4v-1.7zm-1.2-.4-1.2-.8v.2l1.2.9zm-.2 3.3q-.4.3-.6.8v.2l.6-.7zm.9.5q0 .8-.6 1.2v.2q.6-.6.6-1.3s0-.3 0 0m2.1-3.6c.4-.6 1.3-.7 1.9-.9v-.2c-.6.2-1.5.2-2 .8v.3m-4 0-.5-.3v.2l.4.2v-.2m.1 3-.4.3v.2l.4-.2zm.5.1-.6.6v.2l.6-.6zm1 .3c-.1.6-.8 1.2-.3 1.8v-.2c-.3-.5.2-1 .4-1.4zm.7 0q0 .9-.2 1.7v.2l.2-2m1.9-.6q.6.7 1 1.8v-.2a5 5 0 0 0-1-1.9zm.2-.5q1.1.7 2 1.8v-.2q-.9-1.1-2-1.8z"/>
+ <path fill="#fff" d="M320.5 197.8h.8l.6.5.6.4.3.9v-.2l-.2-.7q-.1-.3-.5-.5l-.7-.4-.9-.2z"/>
+ <path fill="#fff" d="m322.3 199.3.2.6v-.1l-.2-.7zm-2-3.6 1.5-.4v-.3l-1.5.4zm-2 .2q0-.3.3-.7l.4-.8v-.3l-.4.7-.4.9zm-1.7 4.6.1 1.3v-1.2s0-.1 0 0m1 .7q-.3.4-.1 1v-.2zm.8-.5-.2.7v.2zs0-.2 0 0m0-1.5v.4zm-.3.2v.3-.7zm-.5-.2-.1.5v.2l.1-.4zm-.4 0-.8.6v.3l.8-.7zm-.6 0-.5.3v.3q.3 0 .5-.3v-.2m-1-.3-.4.2v.2q.3 0 .4-.2zm2.9 0v.4-.6zm.4-.2.1.6v-.7.1m.3 0v.3h.1l-.1-.6zm.4-.2.4.2v-.2l-.4-.2zm.2-.3.6.3v-.3l-.6-.3zm.5-1h.4v-.2l-.4-.1zm-.3-.6.4-.3v-.3l-.4.4zm-.4-.5.2-.5v-.2zm-.3-.2.4-.8v-.2l-.4.7zm-.9-.8v.9zm-1.3.2.2.3v.6l.1-.5-.3-.6zm-.2.5-.6-.4v.2l.6.5zm.8.2q0-1-.2-1.7v.3q.3.5.2 1.2zm1.2-.7v-.2z"/>
+ <path fill="#fff" d="m317.7 196.3.2-1v-.2l-.2 1zm3.5 2q.5 0 .7.6v-.4q-.2-.5-.7-.6zm-1 2v.7h.1v-1 .3m-.8-.5v1.2s0 .2 0 0v-1.4zm-.4.4-.3 1.2v.3s0 .1 0 0l.3-1.2zm.5.2v1.4-1.6zm-2.6.2v.5q.2-.4 0-.8zm1.2-.8v.4-.8zm.3 0h.1v.2-.2l-.1-.5v.2zm.4-.3.1.3v-.3l-.1-.4v.3m.8-.2.5.6v-.4l-.5-.6zm.5-.8.3.6v-.4l-.3-.5zm-4.3-2-.4-.2v.4l.4.3zm1.3-.5v.2zv-.4.2zm1-1v.8q-.2 0 0 .2v.1l.1-1.2v-.1.2m.2 1.5.5-.7v-.3l-.5.6zm.7 0 .2-.3v-.4l-.2.2v.4m1 .2h-.8v.4h.8zm-.3.9 1 .6v-.4l-1-.6z"/>
+ <path fill="#fff" d="m320 198 .8.5v-.4l-.8-.5v.2zm-2-1.4.1-.5v-.2.6m-2.3-1q.3.5.9.8l.6.7s.1-.4 0-.4l-.6-.6-1-.9v.4m.6 1-.4-.4v.3l.4.5zm-.3 2.5-.3.6v.4l.3-.6zm.3.4-.1.6v.3zv-.2zm1 1.8q.3-1 .2-2v.2q0 .8-.2 1.4zm.6-1.5v.9-1.3.2zm.6-.2q.3.3.2 1v.1q.2-.7-.2-1.5z"/>
+ <path fill="#fff" d="m318.6 199.3.3 1.7v-.3l-.2-1.7v.3m.5-.1.6 1v-.3l-.6-1zm1.1-1q-.1-.2-.5-.1v.3q.3 0 .5.2v-.3"/>
+ <path fill="#fff" d="M319.7 198.1h1.1v-.4h-1c-.1 0 0 .4 0 .4m.6-3q-.4.7-.5 1.3v.3s0 .1 0 0q0-.6.5-1.1zm-1.5.4.2 1v-.4l-.2-1zm-.3.5-.3-.5v.4l.2.5v-.3m-.5.2-1.2-.6v.4l1.2.6s.1-.4 0-.4"/>
+ <path fill="#dba05f" d="m318.5 196.2-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9q0 .4.4.5c.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2q.7-.7.2-1.7c-.3-.6-1.4-.5-1.5-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m318.5 196.2-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9q0 .4.4.5c.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2q.7-.7.2-1.7c-.3-.6-1.4-.5-1.5-.5z"/>
+ <path d="m311.4 198.1.1-.1.1-.2.4-.3h.5-.2.2-.2l-.3.1z"/>
+ <path fill="none" d="m311.3 198 .4-.4.6-.3h.3"/>
+ <path fill="none" d="m312 197.4-.4.3q-.1.3-.3.3m.7-.5h.5m-.6 0h.5"/>
+ <path d="m312.4 197.9-.2.1-.1.1-.3.2-.3.1.4-.2-.4.2.4-.1-.3.1h.1s.3 0 .7-.4"/>
+ <path fill="none" d="m312.3 197.8-.3.2-.3.2-.2.1m.4-.1.2-.2.2-.2m-.4.4-.3.1m.4-.1-.3.1"/>
+ <path fill="#c6262c" d="M312.9 196.5s0-.6-.6-.8l-1.3-.2-.5.2-.6.2-.1.2q-.3.3-.3.6c.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M312.9 196.5s0-.6-.6-.8l-1.3-.2-.5.2-.6.2-.1.2q-.3.3-.3.6c.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5z"/>
+ <path d="M312.2 197.8q0 .2-.3.3h-.3s.1-.4.3-.4z"/>
+ <path fill="#d9c0b9" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5z"/>
+ <path fill="#d9c0b9" d="M308.8 200s.8.2 1.3-.2q.7-.4.7-.1l-.2-.7-1 .5q-.6.1-.8.5"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M308.8 200s.8.2 1.3-.2q.7-.4.7-.1l-.2-.7-1 .5q-.6.1-.8.5z"/>
+ <path fill="#7a2e26" d="M311 199.6h.5v-.1zm-.3-2-.1.2v.1zm.5.2.3-.2v-.1q-.3 0-.3.2zm.5.8.2-.2h-.2zm.4-.2.4-.3v-.1zm-.7-.7q0 .2-.3.4v.1q.2-.1.3-.4m.3 2q.6 0 1-.2h-1zm1.6 0q.6-.5 1-1.3a2 2 0 0 1-1 1v.2m.3-.8q.4-.2.6-.8v-.1l-.6.8zm-.2-2 .7.4v-.1l-.7-.4zm6.3 1q.2-.8-.2-1.4.4.6.2 1.2zm-4.8-.7c.3.2 1 .7.8 1.2.3-.5-.4-1-.8-1.3zm2.1 2 .1-.3v.3"/>
+ <path fill="#5e3f17" d="m317.9 199.2.5-.2m-8.5-.3q-.6.1-1 .7.4-.6 1-.6"/>
+ <path fill="#842116" d="M309.7 197.3q.2 0 .3.2v.1-.3l-.3-.1m.7.4-.1-.6v.5m.6-.5q0-.5-.3-.6v.1q.3.2.3.6zm.5-.1q0-.5-.2-.6v.1l.2.3zm-.8-.7c.4-.2 1.4-.3 1.8.2v-.2c-.4-.4-1.4-.3-1.8 0"/>
+ <path fill="#7a2e26" d="M309.5 198.1v-.5s-.1 0 0 .1zm4.7 1.4.3-.5-.3.3zm.7 0 .1-.3v-.1.3m4.3-2.4v.8zm-.5.5v.7q.2-.4 0-.9zm-.4.3"/>
+ <path fill="#452c25" d="M324.3 210.5v.2l.1.1-.1-.4z"/>
+ <path fill="#dcddde" d="M314.4 195c-1.7 0-3.3-1-3.3-1a3 3 0 0 1-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4q-1.3.2-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a88 88 0 0 1 10.3-3.9 10 10 0 0 1 6.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5h2l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5l1.3-1s-.6-4.5 3.9-4l11.5 1.2a44 44 0 0 1 6.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4l-3.7-1.8-2.6-.9-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 0 0-2.9-.5 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2-1 2.2-1.3 3-2.2.6-2.7 1l-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2l-1.4-.4-3.5-.2a5 5 0 0 0-2.7 1.1"/>
+ <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M314.4 195c-1.7 0-3.3-1-3.3-1a3 3 0 0 1-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4q-1.3.2-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a88 88 0 0 1 10.3-3.9 10 10 0 0 1 6.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5h2l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5l1.3-1s-.6-4.5 3.9-4l11.5 1.2a44 44 0 0 1 6.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4l-3.7-1.8-2.6-.9-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 0 0-2.9-.5 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2-1 2.2-1.3 3-2.2.6-2.7 1l-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2l-1.4-.4c-.5-.2-3.1-.2-3.5-.2a5 5 0 0 0-2.7 1.1"/>
+ <path fill="#452c25" d="M314.6 194.4s-.2.2-.2.5v.2"/>
+ <path fill="#574f4c" d="m323.3 194 .7.5-.1-.1-.7-.6v.1"/>
+</svg>
diff --git a/apps/web/public/flags/bq.svg b/apps/web/public/flags/bq.svg
new file mode 100644
index 00000000..0e6bc76e
--- /dev/null
+++ b/apps/web/public/flags/bq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bq" viewBox="0 0 640 480">
+ <path fill="#21468b" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v320H0z"/>
+ <path fill="#ae1c28" d="M0 0h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/br.svg b/apps/web/public/flags/br.svg
new file mode 100644
index 00000000..719a763c
--- /dev/null
+++ b/apps/web/public/flags/br.svg
@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-br" viewBox="0 0 640 480">
+ <g stroke-width="1pt">
+ <path fill="#229e45" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+ <path fill="#f8e509" fill-rule="evenodd" d="m321.4 436 301.5-195.7L319.6 44 17.1 240.7z"/>
+ <path fill="#2b49a3" fill-rule="evenodd" d="M452.8 240c0 70.3-57.1 127.3-127.6 127.3A127.4 127.4 0 1 1 452.8 240"/>
+ <path fill="#ffffef" fill-rule="evenodd" d="m283.3 316.3-4-2.3-4 2 .9-4.5-3.2-3.4 4.5-.5 2.2-4 1.9 4.2 4.4.8-3.3 3m86 26.3-3.9-2.3-4 2 .8-4.5-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.1m-36.2-30-3.4-2-3.5 1.8.8-3.9-2.8-2.9 4-.4 1.8-3.6 1.6 3.7 3.9.7-3 2.7m87-8.5-3.4-2-3.5 1.8.8-3.9-2.7-2.8 3.9-.4 1.8-3.5 1.6 3.6 3.8.7-2.9 2.6m-87.3-22-4-2.2-4 2 .8-4.6-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.2m-104.6-35-4-2.2-4 2 1-4.6-3.3-3.3 4.6-.5 2-4.1 2 4.2 4.4.8-3.3 3.1m13.3 57.2-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.1-4 2 4.2 4.4.8-3.3 3.1m132-67.3-3.6-2-3.6 1.8.8-4-2.8-3 4-.5 1.9-3.6 1.7 3.8 4 .7-3 2.7m-6.7 38.3-2.7-1.6-2.9 1.4.6-3.2-2.2-2.3 3.2-.4 1.5-2.8 1.3 3 3 .5-2.2 2.2m-142.2 50.4-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2M419 299.8l-2.2-1.1-2.2 1 .5-2.3-1.7-1.6 2.4-.3 1.2-2 1 2 2.5.5-1.9 1.5"/>
+ <path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2"/>
+ <path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m42.3 3-2.6-1.4-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .5-2.3 2.1m-4.8 17-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m87.4-22.2-2.6-1.6-2.8 1.4.6-3-2-2.3 3-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2.1m-25.1 3-2.7-1.5-2.7 1.4.6-3-2-2.3 3-.3 1.4-2.8 1.2 2.9 3 .5-2.2 2.1m-68.8-5.8-1.7-1-1.7.8.4-1.9-1.3-1.4 1.9-.2.8-1.7.8 1.8 1.9.3-1.4 1.3m167.8 45.4-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m-20.8 6-2.2-1.4-2.3 1.2.5-2.6-1.7-1.8 2.5-.3 1.2-2.3 1 2.4 2.5.4-1.9 1.8m10.4 2.3-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.3 1.1-2 1 2 2.3.5-1.7 1.6m29.1-22.8-2-1-2 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2.1 2.1.4-1.6 1.6m-38.8 41.8-2.5-1.4-2.7 1.2.6-2.8-2-2 3-.3 1.3-2.5 1.2 2.6 3 .5-2.3 1.9m.6 14.2-2.4-1.4-2.4 1.3.6-2.8-1.9-2 2.7-.4 1.2-2.5 1.1 2.6 2.7.5-2 2m-19-23.1-1.9-1.2-2 1 .4-2.2-1.5-1.7 2.2-.2 1-2 1 2 2.2.4-1.6 1.6m-17.8 2.3-2-1.2-2 1 .5-2.2-1.6-1.7 2.3-.2 1-2 1 2 2.1.4-1.6 1.6m-30.4-24.6-2-1.1-2 1 .5-2.3-1.6-1.6 2.2-.3 1-2 1 2 2.2.5-1.6 1.5m3.7 57-1.6-.9-1.8.9.4-2-1.3-1.4 1.9-.2.9-1.7.8 1.8 1.9.3-1.4 1.3m-46.2-86.6-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.2-4 1.9 4.2 4.4.8-3.3 3.1"/>
+ <path fill="#fff" fill-rule="evenodd" d="M444.4 285.8a125 125 0 0 0 5.8-19.8c-67.8-59.5-143.3-90-238.7-83.7a125 125 0 0 0-8.5 20.9c113-10.8 196 39.2 241.4 82.6"/>
+ <path fill="#309e3a" d="m414 252.4 2.3 1.3a3 3 0 0 0-.3 2.2 3 3 0 0 0 1.4 1.7q1 .8 2 .7.9 0 1.3-.7l.2-.9-.5-1-1.5-1.8a8 8 0 0 1-1.8-3 4 4 0 0 1 2-4.4 4 4 0 0 1 2.3-.2 7 7 0 0 1 2.6 1.2q2.1 1.5 2.6 3.2a4 4 0 0 1-.6 3.3l-2.4-1.5q.5-1 .2-1.7-.2-.8-1.2-1.4a3 3 0 0 0-1.8-.7 1 1 0 0 0-.9.5q-.3.4-.1 1 .2.8 1.6 2.2t2 2.5a4 4 0 0 1-.3 4.2 4 4 0 0 1-1.9 1.5 4 4 0 0 1-2.4.3q-1.3-.3-2.8-1.3-2.2-1.5-2.7-3.3a5 5 0 0 1 .6-4zm-11.6-7.6 2.5 1.3a3 3 0 0 0-.2 2.2 3 3 0 0 0 1.4 1.6q1.1.8 2 .6.9 0 1.3-.8l.2-.8q0-.5-.5-1l-1.6-1.8q-1.7-1.6-2-2.8a4 4 0 0 1 .4-3.1 4 4 0 0 1 1.6-1.4 4 4 0 0 1 2.2-.3 7 7 0 0 1 2.6 1q2.3 1.5 2.7 3.1a4 4 0 0 1-.4 3.4l-2.5-1.4q.5-1 .2-1.7-.4-1-1.3-1.4a3 3 0 0 0-1.9-.6 1 1 0 0 0-.8.5q-.3.4-.1 1 .3.8 1.7 2.2 1.5 1.5 2 2.4a4 4 0 0 1 0 4.2 4 4 0 0 1-1.8 1.6 4 4 0 0 1-2.4.3 8 8 0 0 1-2.9-1.1 6 6 0 0 1-2.8-3.2 5 5 0 0 1 .4-4m-14.2-3.8 7.3-12 8.8 5.5-1.2 2-6.4-4-1.6 2.7 6 3.7-1.3 2-6-3.7-2 3.3 6.7 4-1.2 2zm-20.7-17 1.1-2 5.4 2.7-2.5 5q-1.2.3-3 .2a9 9 0 0 1-3.3-1 8 8 0 0 1-3-2.6 6 6 0 0 1-1-3.5 9 9 0 0 1 1-3.7 8 8 0 0 1 2.6-3 6 6 0 0 1 3.6-1.1q1.4 0 3.2 1 2.4 1.1 3.1 2.8a5 5 0 0 1 .3 3.5l-2.7-.8a3 3 0 0 0-.2-2q-.4-.9-1.6-1.4a4 4 0 0 0-3.1-.3q-1.5.5-2.6 2.6t-.7 3.8a4 4 0 0 0 2 2.4q.8.5 1.7.5h1.8l.8-1.6zm-90.2-22.3 2-14 4.2.7 1.1 9.8 3.9-9 4.2.6-2 13.8-2.7-.4 1.7-10.9-4.4 10.5-2.7-.4-1.1-11.3-1.6 11zm-14.1-1.7 1.3-14 10.3 1-.2 2.4-7.5-.7-.3 3 7 .7-.3 2.4-7-.7-.3 3.8 7.8.7-.2 2.4z"/>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="M216.5 191.3q0-2.2.7-3.6a7 7 0 0 1 1.4-1.9 5 5 0 0 1 1.8-1.2q1.5-.5 3-.5 3.1.1 5 2a7 7 0 0 1 1.6 5.5q0 3.3-2 5.3a7 7 0 0 1-5 1.7 7 7 0 0 1-4.8-2 7 7 0 0 1-1.7-5.3"/>
+ <path fill="#f7ffff" d="M219.4 191.3q0 2.3 1 3.6t2.8 1.3a4 4 0 0 0 2.8-1.1q1-1.2 1.1-3.7.1-2.4-1-3.6a4 4 0 0 0-2.7-1.3 4 4 0 0 0-2.8 1.2q-1.1 1.2-1.2 3.6"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="m233 198.5.2-14h6q2.2 0 3.2.5 1 .3 1.6 1.3c.6 1 .6 1.4.6 2.3a4 4 0 0 1-1 2.6 5 5 0 0 1-2.7 1.2l1.5 1.2q.6.6 1.5 2.3l1.7 2.8h-3.4l-2-3.2-1.4-2-.9-.6-1.4-.2h-.6v5.8z"/>
+ <path fill="#fff" d="M236 190.5h2q2.1 0 2.6-.2.5-.1.8-.5.4-.6.3-1 0-.9-.4-1.2-.3-.4-1-.6h-2l-2.3-.1z"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="m249 185.2 5.2.3q1.7 0 2.6.3a5 5 0 0 1 2 1.4 6 6 0 0 1 1.2 2.4q.4 1.4.3 3.3a9 9 0 0 1-.5 3q-.6 1.5-1.7 2.4a5 5 0 0 1-2 1q-1 .3-2.5.2l-5.3-.3z"/>
+ <path fill="#fff" d="m251.7 187.7-.5 9.3h3.8q.8 0 1.2-.5.5-.4.8-1.3t.4-2.6l-.1-2.5a3 3 0 0 0-.8-1.4l-1.2-.7-2.3-.3z"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="m317.6 210.2 3.3-13.6 4.4 1 3.2 1q1.1.6 1.6 1.9t.2 2.8q-.3 1.2-1 2a4 4 0 0 1-3 1.4q-1 0-3-.5l-1.7-.5-1.2 5.2z"/>
+ <path fill="#fff" d="m323 199.6-.8 3.8 1.5.4q1.6.4 2.2.3a2 2 0 0 0 1.6-1.5q0-.7-.2-1.3a2 2 0 0 0-1-.9l-1.9-.5-1.3-.3z"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="m330.6 214.1 4.7-13.2 5.5 2q2.2.8 3 1.4.8.7 1 1.8c.2 1.1.2 1.5 0 2.3q-.6 1.5-1.8 2.2-1.2.6-3 .3.6.7 1 1.6l.8 2.7.6 3.1-3.1-1.1-1-3.6-.7-2.4-.6-.8q-.3-.4-1.3-.7l-.5-.2-2 5.6z"/>
+ <path fill="#fff" d="m336 207.4 1.9.7q2 .7 2.5.7t.9-.3q.5-.3.6-.9.3-.6 0-1.2l-.8-.9-2-.7-2-.7-1.2 3.3z"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="M347 213.6a9 9 0 0 1 1.7-3.2l1.8-1.5 2-.7q1.5-.1 3.1.4a7 7 0 0 1 4.2 3.3q1.2 2.4.2 5.7a7 7 0 0 1-3.4 4.5q-2.3 1.3-5.2.4a7 7 0 0 1-4.2-3.3 7 7 0 0 1-.2-5.6"/>
+ <path fill="#fff" d="M349.8 214.4q-.7 2.3 0 3.8c.7 1.5 1.2 1.6 2.3 2q1.5.5 3-.4 1.4-.8 2.1-3.2.8-2.2 0-3.7a4 4 0 0 0-2.2-2 4 4 0 0 0-3 .3q-1.5.8-2.2 3.2"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="m374.3 233.1 6.4-12.4 5.3 2.7a10 10 0 0 1 2.7 1.9q.8.7.8 1.9c0 1.2 0 1.5-.4 2.2a4 4 0 0 1-2 2q-1.5.4-3.1-.2.6 1 .8 1.7.3.9.4 2.8l.2 3.2-3-1.5-.4-3.7-.3-2.5-.5-1-1.2-.7-.5-.3-2.7 5.2z"/>
+ <path fill="#fff" d="m380.5 227.2 1.9 1q1.8 1 2.3 1t1-.2q.4-.2.7-.8t.2-1.2l-.7-1-1.8-1-2-1z"/>
+ </g>
+ <g stroke-opacity=".5">
+ <path fill="#309e3a" d="M426.1 258.7a9 9 0 0 1 2.5-2.6 7 7 0 0 1 2.2-.9 6 6 0 0 1 2.2 0q1.5.3 2.8 1.2a7 7 0 0 1 3 4.4q.4 2.6-1.4 5.5a7 7 0 0 1-4.5 3.3 7 7 0 0 1-5.2-1.1 7 7 0 0 1-3-4.4q-.4-2.7 1.4-5.4"/>
+ <path fill="#fff" d="M428.6 260.3q-1.4 2-1.1 3.6a4 4 0 0 0 1.6 2.5q1.5 1 3 .6t2.9-2.4q1.4-2.1 1.1-3.6t-1.6-2.6c-1.4-1.1-2-.8-3-.5q-1.5.3-3 2.4z"/>
+ </g>
+ <path fill="#309e3a" d="m301.8 204.5 2.3-9.8 7.2 1.7-.3 1.6-5.3-1.2-.5 2.2 4.9 1.1-.4 1.7-4.9-1.2-.6 2.7 5.5 1.3-.4 1.6z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bs.svg b/apps/web/public/flags/bs.svg
new file mode 100644
index 00000000..5cc918e5
--- /dev/null
+++ b/apps/web/public/flags/bs.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bs" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="bs-a">
+ <path fill-opacity=".7" d="M-12 0h640v480H-12z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#bs-a)" transform="translate(12)">
+ <path fill="#fff" d="M968.5 480h-979V1.8h979z"/>
+ <path fill="#ffe900" d="M968.5 344.5h-979V143.3h979z"/>
+ <path fill="#08ced6" d="M968.5 480h-979V320.6h979zm0-318.7h-979V2h979z"/>
+ <path fill="#000001" d="M-11 0c2.3 0 391.8 236.8 391.8 236.8L-12 479.2z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bt.svg b/apps/web/public/flags/bt.svg
new file mode 100644
index 00000000..20aef3a6
--- /dev/null
+++ b/apps/web/public/flags/bt.svg
@@ -0,0 +1,89 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bt" viewBox="0 0 640 480">
+ <path fill="#ffd520" d="M.1 0h640.1v480H.1z"/>
+ <path fill="#ff4e12" d="M.1 480h640.1V0z"/>
+ <g stroke="#000" stroke-width=".5">
+ <g fill="#fff" stroke-width=".4">
+ <path d="M345.4 150c-4-1.3-6.6.7-6.4 5.9 0 5.1 2.8 8 6.8 6.1z"/>
+ <path d="M348.9 140.4c-3.3-2.6-6.4-1.5-8 3.4s.1 8.6 4.5 8z"/>
+ <path d="M354.4 131c-2.8-3-6-2.4-8.4 2.2-2.3 4.6-1.3 8.5 3.2 8.7zm-3.6 45.5c-4.9 1.8-5.4 8.5-2.3 12.6 3 4.1 8.7 4.9 11.8 0z"/>
+ <path d="M345.1 162.3c-4.6-1.5-8.8 4.7-9.5 10.3-.9 7-11 9.4-5.4 20.1 1.2-6.8 5.7-10.6 9.3-10.8s9-1 11.3-5.4zm14.7 27.6c-5.4 1.3-6.2 8.5-2.3 13.6 3.3 4.4 13.7 3.4 13.4-1zm15.3 43.4c.3-4.7-7.2-6.5-10.8-5.6s-10.5-.1-12-4c-1.4 3.1.5 6.5 5.7 8.2 4 1.2 3.9 4 2.7 5.4 3 .5 11.7.5 14.4-4z"/>
+ <path d="M370.9 203.7c-5.3-2.4-8.4 1.2-10.4 4.6-3 5-12.1-1.4-15.2 5.3 4.2-1.8 8.4 2 10.4 3.3 5.7 3.7 16.6 2.6 18.2-6.2z"/>
+ <path d="M374 209.8c-5.3 4-7.4 8.8-7.2 12 .1 3.2 4.6 10.3 9.5 10.7 2.8-5.8 4.3-18-2.3-22.7zm-22 24.9c0-2 2.8-2.7 4.8-2 1.9.6 4.9 2.5 3.8 4.6zM323 224c-.5-2.3 3.2-6.3 8.2-4.1s5.7 6.4 3.6 8.1z"/>
+ <path d="M335.2 228.4c-.4-1.3 3.3-3.9 9.4-2.4 6.2 1.6 7.7 5.6 7.5 8.7zm-12.9-4.3c3.3-2.4 2-7-.9-8.5-5.2-2.6-3.3-9.2-6.7-10.5-3.3-1.3-6.5-3.6-6.7-6-1.6 3.3-.6 6.2 1.7 8.3 2.3 2-1.8 10.4 1.2 12.6zm-69-1.8c-2.7-4.2-9.1-3.5-11.8-.5s-2.3 7.3.2 9.3zm15.5-6.3c-1-5.7-7.9-6.3-11.6-4.9-3.8 1.4-6.3 7.1-3.9 11.2z"/>
+ <path d="M279 215.2c2.5-4.7-2.3-11.8-7.7-12.8-4.5-1-9.8-.9-11.6-5.3-1 3.8 1.8 6.3 5.2 8.5 3.3 2.2-.6 7.8 4.8 11z"/>
+ <path d="M278.6 215.4c-1.2-3.4 1.1-8 5.7-7.6 4.7.3 7.3 3.6 5.3 7.9z"/>
+ <path d="M288.9 215.7c-.7-3.6 2.2-7.8 6.8-6.8s6.6 4.7 4 8.5l-10.8-1.8z"/>
+ <path d="M299 217.3c-.4-3.6 2.7-7.6 7.2-6.4s6.4 5 3.6 8.7l-10.7-2.3zm-77.6 59c-8.7 0-10.8 2-12 11-1.6 11 13.5 12.3 12-11z"/>
+ <path d="M225.2 264.7c-13.2-5-20.4 16-33.6 12.2 4.7 7.5 16.1 0 20.4.8 7.2 1.3 22.8-1.4 13.2-13zm-8.6 28.7c-6.6-3-13.6 7-12.4 11.5 1.7 5.5 16.7 1 12.4-11.5zM186 336.7c3.6 1 8 3 7.2 10s-14 21.1-25.8 22c-11.8.7-16 15-26.3 11 9.6-1.8 9.6-12.6 17-16-5.4-2-8.2 10.3-15.2 10.3s-10.3 11.1-18.8 10.3-9.3 13.5-26.4 13.7c-13 .1-29 15.3-34.9 8.7 12.7-1.8 17.8-8.8 25.3-16.5 12-12.3 25.7-6.8 30.4-17.7a32 32 0 0 1-18.3 5.4c-8-.2-16.6 12.6-25.5 7 5.1-.7 8.5-2.9 13.9-8.6 5.5-5.8 13.7-2 20.1-8 10-9.2 18.7-1.5 28.3-13-2.7-1.4-8.5-.5-13.9 2.4-5.4 2.8-12.3-2-18.5 1.4.7-7.6 15.2-3.3 24.2-8.5 10.2-6 18.6-4.2 26.6-3.5-11.2 0-15.5-10.7-31-7.6-6.7 1.4-12.1-9.3-18.8-3.9.2-4 7.2-7.2 14.4-3.3s10.1-3.4 24.5 5.7c6 3.7 16.1-2.4 22.5 1.6-.8-2.4-4.5-4-8.8-3.6 2.7-5.6 20.2-4.9 27.8.7z"/>
+ <path d="M197.4 328.3c-5.6-4.4-13.5.9-19-1.2 0 3.6 1.9 9 7.8 11.1 1.8-1.3 10-8.4 11.2-9.9z"/>
+ <path d="M206.3 315.8c-8.9-4.5-10.4 6.7-17.4 4.4.3 3.2 2.9 7.2 8.5 8.1z"/>
+ <path d="M211.6 305.6c-13.1-5.1-14.8 7.5-22.5 5 1.8 4.4 12.8 6.8 18.5 5.2zm18-55.2c-3.5-5-10.8-1-12 4.9-1.1 5.8 1.7 13.9 6.6 12z"/>
+ <path d="M238.5 235c-6-1.5-13-.8-12.2 5-2.4 1.1-3 8.7 3.3 10.4z"/>
+ <path d="M242.5 231c-6-7-12.5-6.9-16.2-4-6.9 5.5-13.5 2.4-13.7 7.8 4.1-3.2 7.8.6 11-.5 3.4-1.2 5.9 5.3 15.2 2.6zm-14.3 103.9c.9 1.7 6.4 2.4 9.1-.4 3.6-3.8-.3-14.2-6-15-5.7-.7-6.2 11.8-3.1 15.4z"/>
+ <path d="M221.8 335.1c8 3 11.5-3.7 7.2-8a80 80 0 0 1-7.2 8z"/>
+ <path d="M191.4 346.2c-1.6 4.7-9.6 5.4-18.6 19.8s-17.6 8.4-19.8 18.3c10.8-8.7 19.3-3 25.8-11.6 9.7-13.1 17.8-11.2 21.6-20 5.4-12.7 29-12.4 30.4-32.3-8-1.5-33.3 19.9-39.4 25.8zm203.2-194.7c10.3 3.4 10.5 16.7 22.4 21.1s13 15 22.7 12.4c-9-2.5-8.4-12.9-17.8-15.5-11-3-15.2-19.8-24-22.4m44 74.3c1.8 4.2 1.5 11.5-5 13.4 3.5 2.2 8.7.2 11.5-4.6-4.2 9.4-1.4 17.9 5.3 19.6-3.2-6.6 4-9.7 1.7-14 4.2 1.9 8 7.7 7.8 11.3 5.6-6.2-4-14.5-2.3-20.3zM375 287.6c-6.3-5.5-9 1.5-12-1-3-2.2-6.8-2.5-8.3-.3 5.4.2 2.8 4.4 13.3 5.4-10.5.7-8.6 12.5-15.6 11.9 7.4 7 11.3-6.3 17.4-4.1-1.8.5 2.8 4.7-.4 10.4 5.2-.1 7.3-7.3 8-11zm-139 60.2c-2.2-2-9-2.9-11.5-1.3-2.6 1.5-1.7 2 1.4 2.2s7 5.2.4 5.5c-3.1.1-2 7.6-8.5 8.1 2.6 3.2 10.2 1.1 12.9-2.4-.5 2.9 3.3 5.5 1.8 9 4.7.5 2-9.7 9.5-9.2-3 .4-1.8 7.4 3.6 5.6-3.2 1.5-1.5 5.3 2 4.4-2.2.7-3 3.7.2 5.4 3.1-4.3-.4-19.5-11.7-27.3zm280.6-142.1a17.9 17.9 0 1 0 0-35.7 17.9 17.9 0 0 0 0 35.7z"/>
+ <path d="M423.4 227.2c5.5-5.1 13.7-7.7 19.4-3.8 5.6 3.8 24.4 8.4 33.7 2s13.7-9.8 17.8-9q4.5 6.8 11.4 7.2c1.4 1.6 6.5 2.8 9.3 2.5 4.1 1 9.1-.3 13.1-4.7 6.2 1 12-3.7 14.2-10.7 6.6-.7 7-8 2.8-13-3.8-.7-.9-13.8-14.9-11.2 6 3.6 1.4 10.8 6.3 14.2-3.3 0-7.7 1.4-8.7 6.4 1.3-3.4-.2-5.8-1-6.5 0-3-6.5-10.3-12.7-7.6 4.4 1 2 8 5.2 10.8a8 8 0 0 0-6.2 3.3c-1.7-3-7.6-6-11.2-6.3 0-1-.2-3-.7-4.1-1.6-3.1-3-6.8-2.3-11.5a48 48 0 0 0-7.2 11.4c-4.9-3.4-17 1.5-22.7 2.8s-24.7-1.8-29-6.4a49 49 0 0 0-21-9.8c-11-3.2-11-15.2-23.1-23.5-.3 15 22.4 62.4 27.5 67.5zM297.2 341.1a17.3 17.3 0 1 0 0-34.6 17.3 17.3 0 0 0 0 34.6z"/>
+ <path d="M256 327.8c3.5 4.5 9.4 4.2 11.9 3.9 2 5.4 8.6 5.2 11.4 8.2s12.5 2.7 15.3 1c-2.5-.2-5.9-1.8-9-4.5-4-3.2-2.2-9.8-5.2-12a11 11 0 0 0 2.2-8.6c2.4-1.4 4.2-3.7 4.4-4.9a15 15 0 0 0 9.6-4.1c2.2 2 7.7-.6 10.7 2.8.6-8.5-7.5-13-13-10.1-2.1-1.2-7.9-.4-9 1.1-1.7-.8-6.8 1.8-9 3.5 2.5-1.4 2.9-5.7 1.9-7.2 2.2-1 4.6-3.9 4.9-6 3 .5 7.7-1.6 9.7-1.1-3.3-4.4-8.8-6-14.5-5.5-5.9.3-8.4 4.4-9.2 8.8-3.4 2.1-4.6 9-3.3 11.5-2 0-3.9 1.9-4.6 3a27 27 0 0 0-9.4-2m1.3-7c-1.2-3.4.3-6.4 1.1-9 2-6.8.8-8.6-5.3-7.7a47 47 0 0 0 4.2 16.7z"/>
+ <path d="M248.6 282.3c1.6 1.6 7 2.3 7.6-2.6.7-5.6-1.6-7.8-6.5-5.6-.4 1.3-.8 6.5-1 8.2z"/>
+ <path d="M249.8 273.9c2 .8 6.5 2.5 9-2.3 2-4-.7-7-5-6.8-1 1.2-3 5.3-4 9.1z"/>
+ <path d="M253.6 264.4c.5 1.6 5.8 6.7 9.6 3 3.9-3.7 3.9-9.3-1.9-11.3-1.5.2-6.2 5.6-7.7 8.3z"/>
+ <path d="M261.3 256c1.1 3.3 4.8 8.8 11.5 6.3s3.8-11 .7-12.7a33 33 0 0 0-12.2 6.5z"/>
+ <path d="M273.5 249.6c-.5 2.9 0 10.6 9.2 10.5 9.1-.2 6.6-10.9 4.2-12.4-3.7 0-10 .1-13.4 2z"/>
+ <path d="M287.3 248c-1 2.3-3.3 16.7 14.6 12.7 2.3-.5 8.3-13.8-14.6-12.6z"/>
+ <path d="M297.1 249.4c-1.8 1.8 2.8 16.3 15 13.9 12-2.5 1.9-16.3-15-14z"/>
+ <path d="M307.4 251.6c-2 4 1 15.8 15.9 15.8 13.5 0-.7-15.6-15.9-15.8z"/>
+ <path d="M319.1 255c-1 2.3-2.1 14.8 15.5 15.9 12.7.8 9.6-17.3-15.5-15.9z"/>
+ <path d="M338 260.3c-2.1 3.9-4.4 13.5 14.9 14.3 12.3.5 4.7-14-14.8-14.3z"/>
+ <path d="M354.1 263.3c-2.8 3.8-.7 11.4 6.5 12.8 9 1.8 10.3-6.7 4.1-10.8-6.2-4-10.6-2-10.6-2z"/>
+ <path d="M363 265c-2.1 3.7-.9 12.4 12.8 12.4 2.8 0 13.6-11-12.9-12.3zM257.1 433a20 20 0 1 0 0-40 20 20 0 0 0 0 40z"/>
+ <path d="M404.1 141.7a35 35 0 0 0-5.4 8c-6.7 20 11.2 35 21.6 56.7a63 63 0 0 1-5.6 60.7c-4.4 5.8-3.1 7.5-8.8 13.4-2.2 2.3-4.6 5.2-3.8 13.4 3.6-1.3 8.7 2 9.7 5 2.6-1.4 6.2-.9 7.5.7 4.4-2 8-1 11.9 3 3.3-.4 7 0 10.3 3.7 1.8-3.6 5.4-5 8-4.1-.3-4.7 4.3-8 8.4-6.2a7.6 7.6 0 0 1 9.8-9c4.7-3.6 14-3.9 18.6 1.5-8.3-2.3-8 6.5-15 5.7 1.8 5.1-2.8 8.1-7.4 9.8 3-1.4 6.2-3.1 7.2-1.3 2.6-2.3 7.7-1.4 9-.3 3.4-1 6.7-.2 8.2 3.9 4.7 2.8 7.8 10 4.4 15.4-1-5.6-4.9-5.4-6.4-7.7-3.6 1.3-7.2 1.3-8.3-1-2 2-9 3.9-12 .8-1.2 4.6-5.2 8.5-9.9 8.5 1.3 3.6-2.3 9.7-5.1 12.8 4.4 2.3 3 7.5 2 10.6 6.8 1 1 7 12.7 10.8-5.7 1.8-16.8 0-18.3-7-5.7-.2-9.5-5.9-9.3-11.8-4.4-4.1-5-10 1-14.2-5.1 1.6-8-6.7-15.4-3.3-3.7 1.7-13.5-1.2-13.4-4.6-1.5 2.5-11 1.5-12.2-2.9-3.1 1.7-10.3-1.1-10.2-5.4-4 1.8-9.4-1.4-9.1-5.5-3.8-.5-4.2-3.9-4-6.7-3.3-1.6-2.4-4.8-1-8.6-2.4-2.6-1.4-6.2.4-9.6-2.5-2.6-2-5.6-1.3-9.3-12.3-1-27.8-4-63.3-14.9-53.6-16.5-68 22.2-56.2 46.4 13.7 28-1.5 34 3.1 54.8 5 1 7.5 5.2 7.2 9.6 3 .1 5 2.8 4 8a9 9 0 0 1 7.6 2.3c1.8-3.4 7.8-4.2 10.8-.3 6.7-.5 10.1 5 9.8 11.6a18 18 0 0 1-1.5 19.3c.4-2.7 0-6.5-.1-8.9-.3-4.2-6.2-5.1-5.6-8.6-3 .3-6-1.4-7-3.7a7 7 0 0 1-6.6 1.3c3.4 1.5 6.2 7.7 5.1 11.8 1.8 3.1 1.4 8.8-.7 11.2-1 5-5 6.8-10 4.6 2.9-1.8 3.9-5 3.8-7.7a10 10 0 0 1-2.9-6.3c-5 .8-12-3.5-13.2-5.2a20 20 0 0 0-20 20.1c-.6-4.1-5.8-8.2-5.1-11.7-3.1-9.5 1.3-18.4 13.9-20.2-1.6-3.6 3.8-7.3 1.8-11.4a97 97 0 0 0-14.7-20.1c4.4-7.5 3-17.5.5-23.7-3.7-8.9-7.2-6.7-20.3 7.7-21.4 23.5-50 17-75.2 32.5-6.7 4-13.4 5.6-6.2-1.6s26.2-14.4 38.6-20.6c23.2-11.6 42.8-30.9 50.5-68.5 18.1-88.4 85-59.2 127.2-42.8 39.7 15.5 32.5-19.5 12.4-40.7-24.2-25.3-19.3-45.3-8-61.3 20.3-2.8 59.4 4.3 51.5 11.1z"/>
+ <path d="M475.9 358.8a22 22 0 1 0 0-44.1 22 22 0 0 0 0 44z"/>
+ </g>
+ <g fill="none" stroke-width=".4">
+ <path d="M391.8 142.7c-5 21.7-.8 31.5 6.4 41 14.9 19.7 26.8 64.6 9.8 94"/>
+ <g stroke-linecap="round">
+ <path d="M417.5 252.3c2-.7 6-3.2 6.8-7.4m-5.2-2c.6-3.7 6.4-5.3 6.5-9.3m-6.4-5.2c-.4-3.9 5.8-7.4 4.9-11.2m-8.3-2.7c-.5-2.2 5.2-6.3 3.6-9.8m-7.8-3.8c-1.2-2.4 2.7-5.2 1-7.8m-7.2-3c-.4-1.6 2-5.3.7-7.5m-6.9-5.2c.5-.7 2.6-2.2 1.8-4.1m-6-5.3c.8-.4 3.3-1.2 3-3"/>
+ <path stroke-linejoin="round" d="M266 410.9c-5-1.8-11.5.7-12.8 5.1m3.9 4c.6-4.4 7.3-6.3 9.3-4.3-4.2-2.3-6.3 6-2.5 6.2m34.6-103.8c-3 1.6-4 7.2 0 11.5m4.6-10.2c-2.1 1.8-2 7.2 1.2 8.5-2.7-2 0-5.3 2-5.4 1.9-.1 3.2 2.2.8 4.5m177 5.2c-7.2-2-13 6.4-6.4 13.9-.2-7.2 5-12 11.3-10.7m-3 5a2.7 2.7 0 0 0-2.7 2.7c0 1.4 1.2 2.8 3.2 2.8 1.3 0 2.4-1.5 2.4-2.7m22.6-161c1.2 4.4 7.2 6.3 12 5.2m0-2.8c-3.7.1-6.8-3.4-6.6-6.3 0 2.2 5 3.2 6.6 1.8"/>
+ <path d="M267.9 331.7c-1-2.6 3-5.2 3.2-7.6.1-2.5 4.6-4.4 9.3.2m-2.2-27.4-2.5 1.2m11.4 12.8c-1.1 0-3.4 0-4.6-.9m0 5.8c-.8.5-2.8 1.2-4 1.5m-40.1 76.3c-.2 2.3 2.2 5.7 3.4 6.7m6.6-12.2a10 10 0 0 0-1.3 7.6m20.5 0c-2.3-1.5-.8-5.4-1-8-.3-2.6 2.7-6.7 8.5-3.2M246 381c2.3-.4 4.7-.3 6.3.4m23-7.7a8 8 0 0 0-1.4 4m12.3-4.3c-1.8 0-3.4 1.3-4.2 2.6m-20.8-68.5c2 .7 7.4 4 7.6 7.4m14.3-24.2c-6.3-.1-8.8-6.5-4-6.5m15.3 15.2c-2.4 1-1.3 5.2 2.2 7.3m-17.3 33.1c-1.2-1.6.4-6 4.4-4.7m5 51.7c.3-4 5.2-6.2 7.2-1.8m-25.5 13c-.3-4.3 2-5.7 3.8-6 2-.2 4.7 1.4 6 4.2m-48.1 5c.2-2.6 2.4-5.3 4.7-4.9m231-109.4c-1.7 1.2-2.8 6.7 3.5 7.2M458 296c0 .6.8 1.5 1.3 2m29 8.3c-1.6-1.3-6 4-2 7.7m-39 35.6c-.9-3.7 2.5-4.7 5.8-3.9m-14-22.2c2-1.2 4-2.7 6.4-3.3m-7.4 17.5c0-3 1.6-5.7 3-6.4m8.4-29.1a16 16 0 0 0 2.4 9.2m28.2-9q-3 .7-4.2 2.9m2.1 7.7q1.6-1.3 2.4-2.3m46.3-110.2c0 3.6-4.5 5.6-7.5 3.3m17.3-3.1c2 1.5 8.9 0 7.3-4M528 221.4a11 11 0 0 1-4.9-3m19.1-7.7c-2.3.5-3.9 0-5-.5m-31.6 13.4a17 17 0 0 0 6.5-1.6M502 200.8q-2.5-.3-3.9.8m29.8 5.5a11 11 0 0 1-3 5.2"/>
+ <path stroke-linejoin="round" d="M497.5 212.8c3.2-1.4 7.2 9.5 15 5.7m.6-11.4a11 11 0 0 0-1.8 5.6"/>
+ </g>
+ <path d="M359 190.4c1-.2 2.9-.5 3.3-1.8M226.5 310.3c3.9 2.2 6.6 5.9 5 11.4m172.1-143.2c1.2.8 5.5.8 8 0m3 2.6c0 1.8.5 8.6-3 10m1.3-.8c3.2 1 9.6.6 11.7-5.3m-4.5 5c1.7 2.6 2.2 7.6-2.8 10.3m4-6c3.8 1.2 12.4 1.4 11.5-6m-3 6c2.7 3.5 14 7.8 12.2.3m-22.5 10c4.3 1.1 10.5-1.9 8-9.6m12.3 3.9c.6 3 15 6 13.1-.7m-2.7 3.9c2.7 6.2 17 5.7 12.5-2.6m-2.3 6.5c2.8 3.4 15.5 1.4 10.4-7m-.1 6.8c7.9 6 17-2.5 7-8.7m4.6 6.8c7 5.5 15.5-4.5 9.4-7.3m-64.4 5c2.2.6 6.8.4 7.9-3.6m-1.8 2.7c-.2 5.8 9.6 8 12.1 1.3m-3.3 3.7c1.8 3.9 10.5 5.4 11.9-.1m-1.4 2.6c1.4 3.8 8.9 3.4 11-.6m-2.8 2.6c2.3 5 11.9 5 14-2.3m-1.6 3.2c3.7 2.3 11.7 1.4 11-5.8m-1.5 5.2c5.6 4.5 13.4.1 9.5-7.5m-.3 13.4c3-.5 4.5-6.4 1.4-8m-70 9c6-3.3 7.3-9 3-14.5m2.2 8.9c3.9 2.3 11.2-.2 12.5-5.8m-7.2 6.4c2.2 2.8 2.6 6.3-.3 9.5m2-5.9c6.9-4.2 15.4 3.6 9 8.4m-1-8.8c1.5-.4 4.2-3.2 4.4-6.4m-1.4 9.4c2.9-3 22.2 3 10 9.3m-1-17.4c3.8 1.4 5.7 6.7 0 8.5m5 4.4c4-4.3 17-1.6 12.3 3.8m-3.1-5.5c2.3-7.9 16.1-3 11.6.2m-14.4-8c.4 1.5.5 5.3-2 7.4m13.6-9a6 6 0 0 1-.8 5.3m9.5-5.2c.8 1.4 2 4.1-.8 6.3m-109.4-65.5c.1 7.3 2.7 12.2 12.6 7.6m-9.5 1.1c-5 6.6.6 13.7 10.3 6.6M365 165c6.7 7.2 18.7 2 11-9m8 15.2c-1.2 7.1 4.6 8.5 9.3 5.3m-34.2-10.3c1.2 7.1 8.5 12.7 15.6 8.4m-6.9 1.4c0 10.2 14 11.3 17.3.8m-5 6.4c4.5 9.3 14.3 5.5 17.5-.1m-27.4-14.7c1.8 4.5 5.4 9.5 13.7 5.8m-39.5-8c1.2 3.7 7.9 8.2 15.6 3m-10.8 1.8c-4.2 6 4 11.7 14 2.7m-9.1 4.7c1.6 8.5 5 15.4 17 4.4m-6 4.4c4.4 5.4 11.1 8.7 17.4-.4"/>
+ <path d="M387.3 188.8c-.4 6.5.8 9.7 5.9 9.4 4-.2 7.7-3.3 9.9-6.7m-10.8 6.7c-.2 7.4 5.6 13.2 16.5 5.7m-12 3c-2 5.5 4.1 14.5 16.2 9.9m-41.9-24.6c-.7 7 5.8 11.8 16.4 2.7m-11.2 5.1c.4 5.8 7 12.8 16.6 2.7m-12 4.7c-.7 9.9 8.4 12.7 16.1 5.1M367.2 200c2 .2 3.7-1.6 4.7-3m-.4 10.2c1.8.4 5-1.2 6-3.3m-1.4 15c2 2.3 9 .7 9.9-2.3m-2.2 2.2c3.8 9 14.1 8.7 18.4-1.5m-2 3.6c2 5.3 6.9 8.6 14.9 6.8m-11-1.4c-4.5 7.3 1.4 16 11.5 7.5m-9 3.5c-.5 4.6 3.7 9.9 9.5 10.5m-28.6-24c-1.5 10.4 6 15.4 15.3 9.8m-26.2-4.8c2.4 1.9 6.8 2.1 11 .6m5 6c-2.4 8.8 6.6 15.1 14.3 5.3M380 230.2c.2 4.5 4.5 9.4 12.1 8m21.3 9c-5.2 3.4-6.2 9.6 1 13.6m-13.6-15.4c.2 5.2 2.7 8.2 8.5 8.7m-16.1-11.4c-7.8 7-.2 15.3 9 8.3m-3.6 2.2c-2.6 8.1 7 13 12.2 4.8m-28.2-22c-2.8 8 .8 13.2 7.4 12.7m-17.6-14.3c.4 4.8 4.5 6.5 9.2 5.4m-6.2-.4c-3.5 6.7 1.8 10.3 8.8 7.8m21 15c-1 4.2-.4 7.2 5.9 8.7m-5.4-2.7c-7.6 3.4-8.3 10.8-2.4 15.5m-3.8-23.7a7.6 7.6 0 0 0 1.2 12.3m-35-35.8c-4.3 4.3-.2 16.2 9.5 9.7m15.7 5.3c-6 5-3.3 13.8 6.5 11.4m-16.3-15c-3.1 8.7-.2 11.8 6.8 11.9"/>
+ <path d="M359.3 236.1a8.2 8.2 0 0 0-1.5 12.2c2.3 2.6 6.7 1.4 8-1.9m-17.6-13.8c-5.9 7.6 0 16.6 8.4 14m23.3 8.6c-6 2.1-10.7 7.6-7 12.5 2.3 2.8 11.8 3.2 14.5-7.8M369 248.1c-3.5 5-2.4 9.8 4 12.2m-4.4-2.8c-3.8 2-6.2 4.5-5.3 9m-3.1-16.9c-1.4 6 .3 9.8 4 11.6m-4.1-4.4c-5.8-.4-8.8 2-6.8 7.8m.5-6.4c-5.7-2-6.6-7-4.1-12m-.8 7.6c-6.2.2-9 3.3-9 7.5"/>
+ <path d="M340.5 229.7c-4.5 1.9-6 8-4.3 11.3s7 3.6 10.2 1.4M328 224.9c-4.1 4.6.6 13.7 8 11.5m-18.6-15.1c-3.8 5.4.4 14.4 10.3 11.8m.5 25.1c-1-6.4 5.7-10.6 14-2.3m-4-13a10 10 0 0 0-3.3 8.5m-28-33.2c-4.3 7.2.9 13.8 10 11.2m13.8 6.7c-6 6-4 12.1.5 15.6m-4.4-8.5c-9.1.1-9.6 10.7-2.2 14m-4.7-24.6c-3.8 2.6-5 9.7 1.5 12.5m-1.8 3.4c-3.9-1.8-8.5.4-8.1 4.9m2.3-4.8c-3.5-8.2-13.6-6.8-12.7 1.7m15.5-11.9c-2.1.4-6.5 1.7-8.2 5m.6-14.3a7 7 0 0 0 2.5 11.4M296.7 216c-.8 5.6 1.4 8.3 8.4 7.8m-6-.7c-2.6 6.7 1 9.7 8 9.3m-6.4-1c-4.1 4.9-1.3 10.1 2.7 12.3m-4.6-6.1c-7.4-1-8.5 7.6-6 11.5"/>
+ <path d="M292.9 215.5c-4.5 2-7.1 7.6-4.7 11 2.5 3.5 7.4 2.4 10 .6m-8.4 1c-3.8 5.7-.4 10 3.6 11.6"/>
+ <path d="M275.3 214.8c-3 3.1-1.1 9.4 6 9.6 5.9 0 8.8-5.4 7-9.3m-8 9.3c-2.3 5.1-.8 10.7 8 9.8m3.6 8c-5.3-2.4-12.6 0-9.5 6.5m-.7-15.6c-2.2 3.1-1.5 7.5 1 10.2m-1.4-2c-3.6.7-7.1 2.6-5 8.3m-.5-4.6c-4.6-1.4-10.5 2-7 6.7m-.7-4.5c-4-.7-8.7 3.6-4.9 7.8m-1.5-3.5c-3.6 1-7.9 5-4.1 8.3m22.3-28.5c-5.2 2.3-5.7 8.1-3.3 12.4m-2.2-23c-7.7 3-7.6 13.2 1 16.4m-3.7-2.3c-4.6 2.7-5.5 7.9-2.4 11.2m-5.7-29.2c-3 1-2.8 10.5 5.4 10.3m-13.9-7.1c-6.2 4.1 1.3 14.5 11.3 7m-5.5 2.7c-.9 4.2.3 8.8 7.1 9.4m-6.7-3.8c-4.9 1.8-5.8 11.9 3 12.7m-18.6-21.8c-6.3 5.8 5.2 10.8 9.4 2.4m-18.1 7.2c-3.1 3.8 7.7 13.6 12.5-2.8m1.1-.3q.4 6 7.3 6.5m0 3.7c-7.7 1.2-10.1 10.7-1.6 12.8m-12.5-14c-.3 3.5 3.5 6.5 7.7 5.9m3.9 7.8c-7 1.6-7.9 10.6-1.7 10m-3.2 8.4c-5.8-1.7-6-8.6-.8-11.2"/>
+ <path d="M245.7 267.8c-4.9 3-3 10-.4 11s4.7-.2 5-2.4m-.5 10c.6 3.3-11.9 2-5.5-8.4m0 8.9c-4.2 6.6 2.6 12 6.9 6.3m-6.4 1.6c-1.7 5.3 4.7 9.1 8.8 5M231 245.4c-2.3 4.7 9.3 6.5 10-3.3m-13.2 10.3c-2.3 9.3 15.2 7.4 10.7-4.6m.4 6.2a8.2 8.2 0 0 0 11.6-6.3m-5.3 6.6a10 10 0 0 0 4.7 6.3m-13.1-3.9c-.8 5 4.3 9.2 10 8.8m-9.1-3.9c-2.8 3.9-3.7 11.3 5.2 11.8M224 263c-1.4 4 7 8.1 11.8 1.5m-14.4 8.7c-.7 3 6.8 7 11-5.8m-3.3 6.5c1.8 3.2 7.9 5.8 11.6-.5m-6 3.9c-1.6 4.5 2.7 8.7 7.8 7.5m-17.5-8.5c-1 6.4 6.5 10.1 11 6.8m-15.9-4c-2.2 8.2 8.4 11.3 12.4 5.1m-2.7 2.5c.4 4.6 7.6 8.6 13.2 4.8m-26.1-1c-.5 2.1 8.1 4.2 9.4-3m-4.4 4.9c2 5.2 9 6.5 13 0m-2.3 2.6c1 5 7.2 7.7 12.8 4.3m2.3 2c-1.4 6.5 5.4 11.8 9.6 8.2m-20.6-9.4c-2 7.2 7 11.3 12 7.3m-22.8-11c-.5 6.8 4.8 10.8 10.8 7.8m-22.3-7c-1.8 4.3 7.8 7.9 12.3 4.2m-18.2 7.7c2.5 2.8 11 0 11.7-6.3m-2.3 4.6c3.1 3.6 10.5 5.6 13.4-2.2m-2.6 4c0 5.6 9.8 9.6 13-.6m11.7 2c-1 2.7 1.2 7 5.7 7.5m-13.9-9.2c-.6 3 3.9 7.4 8.7 5.7m.9 1.3c-1.3 3.3-.2 8.1 4.3 8m-3.9-1.8c-3.4 2.8-2 7.9 2.9 8m-4.6-3.2c-4.8 3.2-3.1 10.3 3.2 9.9M239 313c0 7 8.7 8 10.3 1.6m-3.3 4c-1.3 4.2 2 8.2 7.3 7m-6.3 42.8c1.2 1.7 6-1.2 4.7-4s-6.4-1.3-5.8 1.7m4.6-2.9c.6-5.6-6-6.5-7.7-1.6m2.4-2.9c1.7-2.8-4-6.7-6.3-2.5m2-1.7c1.6-4.1-4.8-6-5.3-2.2m-1.5-5.4c.8-2 8-.8 5 3.5m5.5 5.1c2.8-2.6-2-7.8-5-6m24 13.9c-2.2.2-4.5 1.7-2.9 6.5 1.2 3.3 6.1 3.4 6.9 1.5"/>
+ <path d="M260.5 365.9c-2.2-1.5-7 1-4.8 5.6 1.6 3.5 5.8 2 6.4.2m-14 .8c1.2 2 6.6 1 7.6-1m-3.8-5.4c1.2-.8 3.3.2 3.7 1.2m-4-33c-3.8 2.5-1.5 10 4.3 8m-5.6-1.9c-3 2.3-.2 9.6 5.3 6.8m-4.3 0c-2.1 2.1-.1 7.8 5.2 6.7m-6-3.8c-1.2-.5-4.2-.2-5.5 1.8m2.1-28c-2.8 2.8-1.4 8.3 3.8 8.8m-4.8-3c-4 2-4 10 4 10.3m-4.3-1.3c-2.3 1.8-1.2 8.8 4.6 7.9m-2.8-.3c-.8.9-1 3-.2 3.9m-2.3-6.5c-2 0-4.8 1.5-5.5 3.7m-3.7-7.5c.7-2 7.1-2 7.6 4.1m.6-7.2c-.9.2-2.6 1-3 2.8m.2-21.7c-2.7 2.6-4 10.5 4.3 12m-9.9 4.4c0-2.1 5.8-4 7.8-.8M232 322.8c.8 1.6 4.8 3.8 7.2 2m-28-14.6a6.3 6.3 0 0 0 7.2 6.5c4.3-.5 5.2-4.2 3.9-6.7m-3.2 6.9c-2.9 3.4.6 8.3 3.8 6.9m-.6-9.4c1.7-.6 7.2-1.4 8.9 1.2m-26.8-.2c-1.3 2 6.7 3.9 9.4.2m-2.7 1.9c-.3 2.6 1 7 7.6 5.1"/>
+ <path d="M219.8 326.6c1-2.2-3.8-5.8-7.6-1.8s.6 8.5 2.9 7M202.7 318c-2 3.4 5.5 9.5 9.8 3.8"/>
+ <path d="M197.7 323.8c-2.7 2.8.7 7.9 4.7 6.3 4.1-1.5 3.7-5.8 2.7-6.9"/>
+ <path d="M192.5 329c-2.2 2 0 6.6 3 6.6s4.9-2.3 4.3-5.4m5-1.6c-.4 3 4 5 6.9 2.2m0-5.4c.5-.6.2-1.7-.5-2.3m-23.4 9.8c-2.5 2 3 7.6 6.3 2.5m13.1-3.5c-1.6 1.5 1 5.5 3.6 4.3m-12.4-1.5c.4 2.7 5.8 4.8 9.2.6m-6.3 2.1c-.8 1.8.9 4.5 3 4.2m48.3 11.8c-2 3.9 4.4 8.5 9 3.7m-4.4 2.1c-1 2.1.2 5.1 2 6.2m-8-1.7c.4-2 3.2-3.8 5.7-2.9m-9-2.2c.3-1.8 2.6-3.5 4.4-3m147.2-77.4c-9.2.1-5.3 14.8 2.6 11.9m-5.6-1c-1.8 2.9 1.7 7.6 5.6 4.8m-1 .6c-2.8 4.5 6.9 11.4 10.8 4.3m-3.1 2.7c0 4.3 12.5 7 10.7-1.5m-1.2 4.6c3 5 14 5.5 12.9-2m-2.5 5.2c2.3 3.4 13.2 5.4 12.8-1.5m-56.7-40.8c1.5 4 6.8 5.4 12.6 3m-16-.2c3.7 2.3-1.6 12.9-7.1 8.6m7.2-2c4 1.9 8.9.5 10.3-5.2m-2.5 4.4c.4 3 4.7 5.3 10.2 4.1m-20.1-1c5.2 4.4-2.3 13.4-5.7 9.3m7.6-6c2.5 1.8 8.8.8 9.4-4m-2.8 4c.5 3.1 3 4.3 6.4 4.4m-14.4-.1c2.6 3.6 9 4.6 11.9-.1m-2.9 2.7c-.2 3.4 3.6 6.3 7.6 5.5M375 295c3.3 1.7 7-4.7 4.1-9m-.2 15.7c4 .2 4.5-5.8.7-9.2m8.4 14.7c3.4-.8 2.3-8.1-5.8-8.7m16 14.1c3.2-.9.6-9-8.3-8.5m20.5 11.4c2.2-3.4-5-9-11-6m17 10.6c4 1.2 6.8-9.4-5.9-7.7m13.3 7.7c3.5-1 6-7.2-4.2-5.2m12 5.7c3 1.6 4.4-7.5-5-5m-47-23c3.9 2.1 10-.4 9.4-5.3m-1.5 4.2c1.3 2.3.8 6.8-1.7 8m2-2.6c2.6 1 6.1.1 8.2-4m-3.6 4c.7 1.8 1 5.4-.7 7.2m1.3-4.1c2.9 1.6 6.2-.5 7.6-3.5m-1.8 2.6c2 1.3 3.9 7.3.4 9.8m2-2.8c2.4 0 6 0 8.3-3m-1.7 1.7c2.2.6 4.8 4.2 3.9 7.4m.1-1.1c2.5-.3 6.7-2 7.9-5m-1.2 2a7 7 0 0 1 3.2 6.5m0-2.1c2.5-.1 4.7-1.4 5.3-4.1m-.6 1.8c1.8.6 4 2.7 4.1 5.1m-.3-1.5q2.6-.5 4.3-3.2m4.9-.3c2.3 2.3-.8 10-5.6 8.6m-43.9-164.7c-4.7 2.9-18.3 2-11.6-9.2m13 1.6c-9.5 3.8-21-3.5-9-11.3m-3.2-2.6c-7.8 0-13.1 12.6-2.6 17M348.6 138c-2 4 5.3 8.4 10.3 4.4 3.9-3.1 3.6-11.5 1.3-14.7m-15.6 19.8c-2.6 8.5 16.4 9 13.4-4.5m-14.4 17.2c.6 6.4 18.1 4.3 12.5-8.7m2-3.6c1.4 2 5.3 5.3 11.9 4.6m-9-13.5c.6 2.3 4.5 4 9.5 2.3M185.4 334.8c-4.5 3.1 2.4 8.1 4.9 2.6m-8.4-.2c-4.4 3.2 2.4 8.2 4.9 2.7m-8.6-.3c-4.4 3.2 2.4 8.1 5 2.7m-8.8-.5c-4.3 2.3.7 7.8 5 3m-9.2-.9c-4.3 2.3.7 7.8 5 3m16.6-9.6c-.1 3.3 6.1 4.6 8.4-.3m-4.5 3.3c-2 2.5 1.6 5.5 3.5 4.4m-11.8-4.8c-.2 2.8 5.2 4.4 7.8 1.3m-4.9 1.6c-1.7 2.2 1.7 5.3 4 4.4m-10.5-4.8c.2 2.2 3.3 4.7 6.6 3.3m-4.6-.3c-1.3 1.1-.7 3.8 1.1 4.7m-7.8-5c-.5 2 2.9 5.6 6.4 3.3m-5.7-1c-2 1.7-1.8 4.1.8 4.5m-5.8-4.7c-.2 1.4 1.5 3.6 3.7 3.3m-14.7-3.4c-2 1.1 3.2 6.7 6.5 1.5m-11.6.8c-2.6 1.2 3.8 7.4 6.7 1.1m10-1.3c-2 .4-3.3 3.3-1.6 4.5m-5-3.5c-.2 1.2 2.3 3 4.3 2.4m-5.9-1.9c-2 1.2-.9 4.6 1.4 4.1m-8.3-1.8c-1.8 1.3-.5 4 2 3.4m1.3-3.6c0 .7 1.7 1.8 3 1.3m-12.5-2.5c-2.3 1-2.1 6.6 5.5 3.6m-10.6-1.3c-3.2 1.5-2.1 5.8 4.8 1.7m.5.3c-.8.7-1.7 3.5 1.5 2.4m-7.2-1c-1.3 1.1-.5 3.5 2.3 2.6m-9-2.2c-2.3 1.3 2.8 3.1 6.2-.5m-4.6 2.1c-1 1-1 4.1 1.6 3m-8.2-1.7c-1.5 1.1 1 2.7 6 .5m-4 1.1c-1.9 1.5-1.7 3.4 1 2.8m-6.4-2c-2 1.9.9 3.1 4.4 1.6m-4.4.5c-3.4 1.5-1.9 4.4.2 3.3m113.8 6.5c-.8 1.7 1.8 3.1 4.3 2.7 2.3-.3 4.6-2.3 2.8-5m.1 3.4c2.4 1.8 6.5-.3 6.5-3"/>
+ </g>
+ <g fill="#fff" stroke-width=".4">
+ <path d="M396.8 103c-10.3-5-31.7-14.6-37.8-6.9 5.6-2.3 21.8.1 35.2 12.5z"/>
+ <path d="M403 102.5c-11.9-13.9-19-10.8-27.5-15.5-8-4.5-20.8-5.4-23.3 1.7 11.7-5.7 22.5 3 29.2 4.2 9 1.4 14.2 8.5 16.9 11.7l4.7-2zm44.9-1.8c-6.2-14.1-19.4-10.4-25.2-16.4-8.5-8.8-30-17-39-10.9 19.6-1 28 13.5 38.4 18.6 7.5 3.6 15.5 11.3 25.8 8.7z"/>
+ <path d="M424.7 99.2c-10.5-13.1-26.8-24.7-34.2-20.4 9.8.6 12.9 7.4 19.8 11.8 7 4.3 3.9 10.7 14.4 8.6zm-50.2 23.2c-11-4.1-32.7-6.2-42.8 6.4 16.8 2.9 42 1.3 42.8-6.4z"/>
+ <path d="M372.4 127.3c-11-5.2-19.7 2-30.1 1-19.8-2-34-.8-35.8 8.8 11.3-10.2 30.4-1.8 38.1-3.9s36.3-.3 45.3 3.6c-4.6-5.7-11.8-7.2-17.5-9.5zm34.8-29.5c-2.6-8.5-2.4-17.5 10.3-16.9-3.2-4-15-6-17 8.9-14-10.3-29.4-12.1-32.2-3.2 7.2-6.2 18.4-1.7 31.8 13.5a24 24 0 0 1 7.1-2.3z"/>
+ <path d="M387.9 109.5c-8-5.2-18.8-13.5.1-16.9-8-4.3-20-2.4-18.7 12.5-21.6-8.7-37.1-5.8-40.4 2.9-3.6 9.5 9.8 14.8 12.1 8.7-2.4 1-10.8-1.8-6.4-7.2s26.8-1.3 48.1 9.8c6 3 26.3 2.6 5.2-9.8z"/>
+ <path d="M382.2 123.7c-6.1-12.6-26.1-1.2-30.1-13.4-5.6 17.9 28.4 8 30.1 13.4zm127.1 13.6c4.2 2.1 7.8-1.2 1.4-3.7 4.2 2 7.9-1.1 1.5-3.7 4.2 2 7.8-1.1 1.4-3.7-1.7 1.7-4.1 8-4.3 11.1zm2.2-24.2c9.3-9.8-.7-13.1 10.6-23.2 9.3-8.2 1.8-13.7 10.5-20 2.9-2.1 9-6.2 9.6-10.4 3.7 9.3-11.6 10.6-10.6 25.5.7 9.5-5.8 8.7-8.2 24.8-.5 3.3-2.9 10.8-11.9 3.3z"/>
+ <path d="M515.6 117.5c5.2-11 11.1-10.9 14-15.2 5.4-8.3 16.8 1.4 26.5-6-1.7 10.5-14.7 6.8-20.4 13.5s-10.3 9.7-20 7.7z"/>
+ <path d="M517 121.1c9-7.2 15.6-2.4 21.8-6.2 15.7-9.5 22 2 36-2.6-3.6 9-24.4 1.3-33.4 8s-40.7 13.2-24.5.8zm-26.3 51.4c-.2-4.1-4-9.4-9.4-10-5.4-.7-7.8-6.4-11.9-6.6-4.1-.3-6.8-8.5-12.5-8.4-5.6.1-8 7.5 5.3 14.2s28 14.4 28.5 10.8zm-16.8 3.5c-5.6.2-6.4 8.5-11.8 8.7 7.4 4 12.9-1.8 16.7-7L474 176z"/>
+ <path d="M478.6 177c-5 4.1-6.4 12.7.7 15.2-4.2-5.9 7.5-8.5 3.9-14z"/>
+ <path d="M483.4 177.3c-3.8 7.4 6.1 8.3 3.5 14 5.7-1.3 6.6-12 1.4-14.8l-4.9.7z"/>
+ <path d="M445.6 161.3c9.3-.5 17.7 4.5 23.4 12.6 3.6 5.1 15.7 7.2 19.9 3 4-4 1.8-12.8-8.5-10-2.6-4.3-10-2.8-13.7-6.4s-17.5-13.9-21.1.8z"/>
+ <path stroke-linecap="round" d="M480.4 167c-2.5.5-3.3 4.7-1.7 6.9m7-4.4c.7 1.3.2 3.1-.2 4m-25.2-11.8c4.7.2 5.6 3.7 10.8 5"/>
+ <path d="M457.1 150a161 161 0 0 1 37.6 12.3c8.1 4.6 20.7 6 31.6 2.8 11-3 32.2-5.9 31.1 7.8 5.8-6.9-1.5-14.2-16.2-15.5.3-6.7-6.9-12.7-12-8.7 4.7-.7 8.8 8.2-.6 11.8a8.4 8.4 0 0 0-11.7-9.8c4.4 1.3 9 8.8-1 11.6-6.3 1.8-15.4-.5-22.2-4.6s-45-19-36.6-7.8z"/>
+ <path d="M498.6 143.3c-5.1 2.3-1.8 7.7-9.7 10.8-8 3-13.6 10.1-11.8 16.2 5.4-11.9 15-11.3 18.3-16s8.3-11.4 3.2-11z"/>
+ <path d="M500 144c-.2 9.4-7.6 6-4.7 19.2.9 4.1 2.6 10.8-.3 17.5 8.3-6 3-18.7 6.7-23.5 1.8-2.4 4.2-6 5-9-1.9 5.3-1.7 15.4 3.5 18-4.2-10 11.5-18.3.7-30-1.6 3-6.5 8-10.8 7.8zm-26.2-9.4c1.3 2 2.6 6.8 1.4 9.6 2.6-1.6 6.3-5.6 7.5-8.3 5.3.8 7.3 7.3 2.3 10.2 3 0 8.4 0 11.3-3.5-3.6-4-14.8-10.2-22.5-8z"/>
+ <path d="M393.7 116.1a10 10 0 0 0-4.8-2c-7.8-1.6-3.7-8.6 2.9-8.5 14.2-15.5 22.1-3.6 39.4-8.4 6-1.8 10.2-1.3 13.4.2 7.8-5.2 16.8-3.8 23.4 2.3a5 5 0 0 1 3-2.4c6.1-1.7 11 3.4 12.7 10.1 4.7-.8 10.1 1.5 13.7 4.7q7.4-3.8 9.5 0c4.4-2 10-3.4 12.9 3.6s-6.7 4.9-8.3 19.6c-1 9-11 12.6-19 7.2-12.8-8.7-25.3-10-31.5 3-6.1 13.2-11 20.8-26 16.5a16 16 0 0 0-16.7 6.5c-4.4 6-11 .4-19 1 10-1.5 6.1-4 14.9-4.6 8-.5 5.9-8 11-9-20 5.1-19.3-2.4-35.8 2.8 7.2-9.3 18.6-4.1 24.2-9.5-14.9-.3-21.6-10-28.3-6-10.5 6.5-6 24.8-33.5 23.2-13.4-.7-21.9 1-29.8 9 13.9-28.8 32.8-13 42-22.1a68 68 0 0 0 12.3-14.7 6 6 0 0 1 4-3.2c-22.9-7.2-9-18.5 13.4-19.3z"/>
+ <path stroke-linecap="round" d="M506.9 112q.5 1.2.5 3c0 5.6-8.5 5.8-9 14.2-.3 4.4-.8 6.8-3.7 6.3s-5.6-5.1-2.8-10.5"/>
+ <path d="M398 107.7a11 11 0 0 0-6.2-2.1m52.8-8.3c6.8 3 10.1 10 20 10.4 9.6.3 15.5 14.2 31.5 5.1l1.2-.6M468 99.7a13 13 0 0 0-1.4 8.2m-29.8 21c-12 0-15.2 6.1-15.2 12s5.7 13.7 15.7 13.7 15.5-6.2 15.5-12.9-6.2-12.9-16-12.9z"/>
+ <path d="M439 154.3c-.2-3.3-6.3-2.8-6-5.4s3.3-3.6 3.3-7.2 5.4-3.9 7.2-1c1.8 2.8 7.2 8.3 8.4 5.5m-8.4-5.5a10 10 0 0 0-.4 13.1m4.3-8.8c-1 2-1.2 5-.1 6.8"/>
+ <path fill="none" d="M495.5 135.6c9.5.8 11-9.7 4-10.3m-15.7-17.8c-3.2-4.2-10.8-5.6-11 3.2"/>
+ <path d="M472 120.8c-3.2-8-11.5-9.1-15.8-5.1-3.7 3.3-3.8 12 4 13.8 2.8-3.3 8-7.5 11.8-8.7zm-3.5-5c-4.7-4.1-11.5 3.7-5.3 10.8m-83 8.7c3.2-.7 7.7.8 14.7 4 4.3 2.1 17.5 6.5 25.7 2.1-8.5 3.1-15-9.7-21.4-8.2-6.4 1.6-18.2 4-23.1-.8 12 .8 18.5-8.8 32.4-.5a24 24 0 0 0 13.1 3.6c-11.3-13.6-26.2-4.9-27.8-16 6.8 7.4 23.5-1.6 32 12.1m-29.5-10c-1.6-2-1-4-2.6-5.5"/>
+ </g>
+ <path stroke="none" d="M483.8 107.5c-2.8-3-9-.7-7.2 5.4a10 10 0 0 1 7.2-5.5zM466.3 124a21 21 0 0 1 5.7-3.2 12 12 0 0 0-3.8-5.2c-1.5-1-5.7 4.7-1.9 8.3z"/>
+ <path fill="none" stroke-linecap="round" stroke-width=".4" d="M458.7 113.5c-4.6-3.1-8.9-2.8-10.3-.3-3.3 0-6.1 2.4-6.2 7.2m7.1 2.1c-5.5-3.8-13.1-2.4-12.6 6.1m-3.4 4.9c2.7-2.2 6.6-3.8 9.6 0m31.8-8.4c-1 1.4-1.8 3.6-.1 7-2-2.8-7.2-2.8-12.8 4.4m25.1-11.8c-6.7.8-6.5 5.2-1.1 7m-46.5-23.4c-5.7-1.1-9.8 2.2-2 5m12.8-8.8c-8-2-11.2.1-7.6 2m-15.5 30c-.2 2.9 1.3 6.6 6 2.4m-4.4 6.1q.1 1.3-.7 2.4m-17.9-40c-4.9-1.5-5.8-6 0-5.6m-1.6 16c-5.4-1.9-5.4-7.1-1-6.6m11 3.8c-6.3-1.5-6.5-5.9-1.8-5.2m2.6-8.2c-3.4-.2-8.5 3.5.1 5.7m9.3 1.8c-7.9-1.1-7.7 2-3.1 4.1m9-11.6c-6-1.1-8.1 2.5-4 4m-15 18.3c-1.5-1.2-2.7-7 4.3-5.3m10.3 3.5c-4.7-1.3-9.2 3.4-4.9 6m11.2-11.5c-5-1-9.2.5-6.5 2.3"/>
+ <path fill="#fff" stroke-width=".4" d="M483.6 107.5a10 10 0 0 0-7 5.4"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bv.svg b/apps/web/public/flags/bv.svg
new file mode 100644
index 00000000..40e16d94
--- /dev/null
+++ b/apps/web/public/flags/bv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bv" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="bv-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#bv-a)">
+ <path fill="#fff" d="M-28 0h699.7v512H-28z"/>
+ <path fill="#d72828" d="M-53-77.8h218.7v276.2H-53zM289.4-.6h381v199h-381zM-27.6 320h190.4v190.3H-27.6zm319.6 2.1h378.3v188.2H292z"/>
+ <path fill="#003897" d="M196.7-25.4H261v535.7h-64.5z"/>
+ <path fill="#003897" d="M-27.6 224.8h698v63.5h-698z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/bw.svg b/apps/web/public/flags/bw.svg
new file mode 100644
index 00000000..3435608d
--- /dev/null
+++ b/apps/web/public/flags/bw.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bw" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#00cbff" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#000001" d="M0 186h640v108H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/by.svg b/apps/web/public/flags/by.svg
new file mode 100644
index 00000000..948784ff
--- /dev/null
+++ b/apps/web/public/flags/by.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="flag-icons-by" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="by-a">
+ <path d="M0 0h200v608h8v284l-8 8H0z"/>
+ </clipPath>
+ </defs>
+ <path fill="#ce1720" d="M0 0h640v480H0Z"/>
+ <g fill="#fff" clip-path="url(#by-a)" transform="matrix(.52885 0 0 .53333 5 0)">
+ <g id="by-c">
+ <path id="by-b" d="M36 0v14h-9v14H16v16H8v13H-8V24H8V6H-8V0Zm26 77v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20Zm-17-1h10V58H45ZM19 183h8v-18h-8zm54 0h8v-18h-8ZM-8 305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8Z"/>
+ <use xlink:href="#by-b" transform="matrix(-1 0 0 1 200 0)"/>
+ <path d="M96 0v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0Zm-2 274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4 58v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4 46v27h8v-27z"/>
+ </g>
+ <use xlink:href="#by-c" transform="matrix(1 0 0 -1 0 900)"/>
+ <path d="M-8 408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8Zm216 0v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14ZM62 459h8v-18h-8zm76 0v-18h-8v18zm-42-59h8v-18h-8zm0 100v18h8v-18Zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46Zm50 9v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z"/>
+ </g>
+ <path fill="#007c30" d="M110 320h530v160H110Z"/>
+</svg>
diff --git a/apps/web/public/flags/bz.svg b/apps/web/public/flags/bz.svg
new file mode 100644
index 00000000..d81b16c2
--- /dev/null
+++ b/apps/web/public/flags/bz.svg
@@ -0,0 +1,145 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bz" viewBox="0 0 640 480">
+ <defs>
+ <radialGradient id="bz-a">
+ <stop offset="0" stop-color="#ffef5d"/>
+ <stop offset="1" stop-color="#ea5700"/>
+ </radialGradient>
+ <radialGradient id="bz-b">
+ <stop offset="0" stop-color="#952d1a"/>
+ <stop offset="1" stop-color="#570a00"/>
+ </radialGradient>
+ <radialGradient xlink:href="#bz-a" id="bz-c" cx="247.1" cy="238.3" r="36" fx="247.1" fy="238.3" gradientTransform="scale(1.22624 .8155)" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#bz-a" id="bz-d" cx="322" cy="152.9" r="10.6" fx="322" fy="152.9" gradientTransform="scale(.93615 1.06821)" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#bz-b" id="bz-e" cx="364.2" cy="237.8" r="36" fx="364.2" fy="237.8" gradientTransform="scale(1.2242 .81686)" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#bz-b" id="bz-f" cx="468.1" cy="156.1" r="10.7" fx="468.1" fy="156.1" gradientTransform="scale(.95596 1.04607)" gradientUnits="userSpaceOnUse"/>
+ </defs>
+ <path fill="#ce1126" d="M0 0h640v480H0z"/>
+ <path fill="#003f87" d="M0 34.3h640v411.4H0z"/>
+ <circle cx="320" cy="240" r="188.6" fill="#fff"/>
+ <circle cx="320" cy="239" r="156.3" fill="none" stroke="#552300" stroke-width="3.9"/>
+ <path fill="#007f00" d="M302 73.2c14-15.2 26.9 2.3 26.5 10.6C328.2 92 314 110 301 95.5c13.4 3.4 17.4-11.5 24.1-11.7-6.7.2-9.5-14.6-23.2-10.6zm-147.2 119c-7.4-19.4 14-23 21.3-19 7.3 3.9 17.3 24.6-1.6 29.6 9-10.4-2.7-20.5.2-26.6-2.9 6-17.5 2-19.9 16M471.9 173c19.4 7.6 7.6 25.8-.2 28.4-7.9 2.7-30-4-21-21.2 1.6 13.6 17 12 19.7 18.1-2.6-6.2 10.3-14 1.5-25.3M218.8 377.4c-20.7-2-14.3-22.7-7.5-27.4s30-4.3 26 14.7c-5.3-12.6-19.7-6.8-24-12 4.3 5.2-6 16.3 5.5 24.7m209.3-15c.3 20.7-21.1 16.8-26.6 10.6s-7.7-29 11.8-27.3c-12 6.6-4.6 20.2-9.4 25 4.8-4.8 17.1 4 24.2-8.2zM170 153c-1.9-20.6 19.8-18.3 25.7-12.6 6 5.8 10 28.4-9.6 28.2 11.5-7.6 3-20.5 7.4-25.6-4.4 5-17.3-2.8-23.5 10m22.2 193c-20.5-3.5-12.7-23.7-5.6-27.9s30.1-2.3 25 16.4c-4.5-13-19.3-8-23.1-13.6 3.8 5.5-7.2 16 3.7 25zM354.3 74c18.6-9.2 24.3 11.7 21 19.3-3.2 7.5-23 19.4-29.8 1.3 11.2 7.9 20.3-4.7 26.7-2.4-6.4-2.3-3.7-17-17.9-18.2M394 388.3c-9.3 18.5-26.5 5.3-28.5-2.7s6.5-29.3 23-19c-13.8.5-13.4 16-19.8 18 6.4-2 13.3 11.4 25.3 3.7m90.5-178.7c15.6 13.7-1.7 26.8-10 26.7-8.2-.1-26.8-13.8-12.5-27-3 13.4 12 17 12.4 23.6-.3-6.7 14.5-9.8 10-23.3zm-263-108.8c4.7-20 24.5-11.2 28.4-3.9s.5 30-18 23.8c13.3-3.7 9.3-18.6 15-22-5.7 3.4-15.5-8-25.4 2.1m-61.6 172.5c-18.2-10-4.2-26.5 4-28.1 8-1.7 29.2 7.7 18 23.7.2-13.7-15.4-14-17.2-20.5 1.8 6.5-12 12.7-4.8 25zm263.6-159.6c20.6-3 19.4 18.7 14 24.8-5.5 6.2-28 11.4-28.9-8 8.2 11 20.8 1.9 26.2 6-5.4-4.1 1.9-17.3-11.3-22.8M306.3 408.1c-19 8.4-23.8-12.7-20.3-20 3.6-7.5 23.9-18.6 30-.1-11-8.4-20.5 3.8-26.8 1.3 6.3 2.5 3 17.2 17.1 18.8M476.8 293c8.6 18.8-12.6 23.7-20.1 20.2s-18.8-23.6-.2-29.7c-8.4 10.9 4 20.3 1.4 26.6 2.5-6.3 17.3-3 19-17.1zm-325.1-60.6c-12-17 8-25.7 16-23.6s22.8 19.8 5.7 29.2c6.2-12.3-7.6-19.3-6.3-25.9-1.3 6.6-16.5 6.1-15.4 20.2zM264 395.6c-19.6 7.1-23-14.2-18.9-21.4 4-7.2 25-16.9 29.9 2-10.3-9.1-20.7 2.4-26.8-.5 6 2.9 1.8 17.3 15.8 19.9m-5.7-314c11.6-17.2 27-2 28 6.3.9 8.1-10.3 28.2-25.4 15.8 13.8 1.3 15.4-14 22-15.2-6.6 1.2-11.7-13-24.6-7zm200.2 252.1c1.3 20.6-20.3 17.7-26 11.7-5.8-5.9-9.1-28.6 10.4-27.8-11.7 7.2-3.6 20.4-8.2 25.4 4.6-5 17.3 3.3 23.8-9.3m-5.3-194.4c20.4 4 12 24 4.7 28s-30.2 1.3-24.4-17.2c4 13.1 19 8.7 22.6 14.4-3.6-5.7 7.7-15.7-3-25.2zm-258.4-14.6c.2-20.6 21.5-16.2 26.8-9.9s7 29.3-12.4 27c12.2-6.3 5-20 10-24.7-5 4.7-17-4.5-24.4 7.6M169 311c-18.6-9.4-5.1-26.4 2.9-28.3s29.5 6.7 19 23c-.4-13.7-16-13.4-18-19.8 2 6.4-11.6 13.1-4 25zM392 91c19.5-7.3 23 14 19 21.2s-24.9 17.1-29.9-1.7c10.4 9 20.7-2.6 26.9.3-6.2-2.9-2-17.3-16-19.8m-41.3 314.8c-15.2 14.2-26.7-4.1-25.8-12.3s16.3-25.3 28.2-9.9c-13-4.3-18 10.4-24.9 10 6.8.4 8.5 15.3 22.5 12.2m132.7-158c14.2 15.1-4.4 26.5-12.6 25.5s-25.4-16.3-9.8-28c-4.4 13 10.3 18 10 24.7.3-6.7 15.4-8.4 12.4-22.2"/>
+ <path fill="#005800" d="M301 95.5c13.4 3.4 16.7-11.3 23.5-11.5-4 4.7-14.2 16.7-23.5 11.5m1-22.3c14-15.2 26.9 2.3 26.5 10.6-11.5-20-15-17-26.6-10.6zM174.4 202.8c9-10.4-2.8-19.9 0-26 2.6 5.6 8.9 20.1 0 26m-19.7-10.7c-7.4-19.3 14-22.9 21.3-19-23.1 1.4-22 6-21.3 19m295.9-11.8c1.6 13.5 16.7 11.3 19.3 17.5-5.9-2-21-7.1-19.3-17.6zm21.2-7.3c19.4 7.6 7.6 25.8-.3 28.4 14.7-17.8 10.5-20 .3-28.4M237.3 364.7c-5.3-12.6-19.2-6.4-23.4-11.7 6.2.3 22 1.2 23.4 11.7m-18.5 12.7c-20.7-2-14.3-22.7-7.5-27.4-9.2 21.1-4.6 22.1 7.5 27.4m194.5-31.7c-12 6.6-4.2 19.6-9 24.3-.4-6-1.3-21.8 9-24.3m14.8 16.7c.3 20.7-21.1 16.8-26.6 10.6 22.3 6.6 22.7 2 26.6-10.6M186 168.4c11.5-7.5 2.7-19.8 7-25 1 6.1 3 21.8-7 25M169.9 153c-1.9-20.6 19.8-18.3 25.7-12.6-22.7-4.9-22.8-.2-25.7 12.6m41.5 181.5c-4.4-13-18.7-7.6-22.5-13.2 6.1.7 21.9 2.7 22.5 13.2M192.1 346c-20.5-3.5-12.7-23.7-5.6-27.9-10.6 20.5-6 21.8 5.6 27.9M345.4 94.6c11.3 7.9 19.7-4.7 26.1-2.5-5.4 3-19.3 10.6-26 2.5zm8.9-20.6c18.6-9.2 24.3 11.7 21 19.3-3.5-22.8-8-21.1-21-19.3m34.2 292.6c-13.8.5-12.8 15.6-19.3 17.6 2.5-5.6 9-20 19.3-17.5zm5.5 21.7c-9.3 18.5-26.5 5.3-28.5-2.7 16.7 16 19.2 12 28.5 2.7m68-179c-3.1 13.4 11.9 16.3 12.2 23-4.9-3.8-17.2-13.7-12.2-23m22.5.3c15.6 13.7-1.7 26.8-10 26.7 19.9-12 16.7-15.4 10-26.7m-252.6-89c13.3-3.6 8.8-18 14.6-21.5-1 6-4 21.5-14.6 21.6zm-10.4-19.8c4.7-20 24.5-11.2 28.4-3.9-20-11.7-21.6-7.2-28.4 4zm-39.5 168c.1-13.6-15.2-13.3-17-19.8 5.6 2.7 19.9 9.7 17 19.9zm-22 4.5c-18.3-10-4.3-26.5 3.9-28.1-16.8 15.9-13 18.6-4 28.1zm248.6-142.8c8.2 11 20.2 1.6 25.6 5.7-6.1 1.2-21.7 4.1-25.6-5.7m14.9-16.8c20.6-3 19.4 18.7 14 24.8 3.7-22.7-1-22.5-14-24.8M316 388c-11-8.4-19.9 3.9-26.1 1.4 5.5-2.8 19.7-9.8 26-1.4zm-9.7 20.1c-19 8.4-23.8-12.7-20.3-20 2.7 22.8 7.2 21.4 20.3 20m150.2-124.7c-8.4 10.9 4 19.7 1.5 25.9-2.8-5.4-10-19.5-1.5-26zm20.3 9.5c8.6 18.8-12.6 23.7-20.1 20.2 23-2.8 21.6-7.2 20.1-20.2m-303.3-55c6.2-12.3-7.7-18.6-6.4-25.2 3.8 4.8 13.5 17.3 6.4 25.2m-21.8-5.7c-12-16.9 8-25.5 16-23.5-22.1 7-19.8 11-16 23.6zm123.3 144c-10.3-9.1-20 2.5-26.2-.4 5.7-2.4 20.4-8.5 26.2.3zm-11 19.4c-19.6 7.1-23-14.2-18.9-21.4 1.1 23 5.7 21.9 18.9 21.4m-3-291.9c13.7 1.3 14.7-13.8 21.3-15-3.1 5.3-11.4 18.8-21.4 15zm-2.7-22.2c11.6-17.1 27-1.8 28 6.3-14.5-18-17.6-14.3-28-6.3M443 317.6c-11.7 7.2-3.3 19.8-7.9 24.8-.7-6.1-2.3-21.8 8-24.8zm15.6 16.1c1.3 20.6-20.3 17.7-26 11.7 22.4 5.7 22.7 1 26-11.7m-25-183.6c4 13.1 18.5 8.3 22.1 14-6-1-21.8-3.5-22-14zm19.7-10.8c20.4 4 12 24 4.7 28 11.3-20.1 6.8-21.6-4.7-28m-244 2.6c12.2-6.4 4.7-19.6 9.6-24.2.3 6.1.8 21.9-9.6 24.2m-14.4-17.2c.2-20.6 21.5-16.2 26.8-9.9-22-7.1-22.6-2.4-26.8 10zm-4 181c-.3-13.7-15.6-12.8-17.6-19.2 5.7 2.4 20.2 9 17.6 19.2M169 311c-18.5-9.4-5-26.4 3-28.3-16.2 16.4-12.3 19-3 28.3m212.2-200.4c10.4 9 20-2.8 26.2 0-5.7 2.6-20.3 8.7-26.2 0M392 91c19.5-7.3 23 14 19 21.3-1.2-23-5.8-21.9-19-21.3m-38.9 292.6c-13-4.3-17.4 10.2-24.2 10 4.3-4.5 15.4-15.8 24.2-10m-2.4 22.2c-15.2 14.2-26.7-4.1-25.8-12.3 10 20.7 13.8 17.9 25.8 12.3M461 245.3c-4.4 13 10.2 17.3 9.9 24-4.5-4.2-15.8-15.3-9.9-24m22.4 2.5c14.2 15.1-4.4 26.5-12.6 25.5 21-9.9 18.1-13.6 12.6-25.5"/>
+ <g fill="#730000" stroke="#000" stroke-width=".5">
+ <path d="M349 120.3s.6-1.3 1.7-.6c1 .8 1.3 4.2 1.3 4.2l-1.6.8s.9-1.3-1.3-4.4zm-8.8 30.7s.8-1-.3-3.4l1.5-.5s.6 1.8-.2 3.9h-1m27-5.4-3.7 2.3 1.9.8 4.5-2.6-2.7-.5m-49.7 14.6c-1 .8-1 2.1-1.7 3-.4.7-2 1.8-2 3-.2 1.1-.3 1.9.2 3.5.6 1.5 3 8.5 2 13.7-1 5.3-.6 7.5-.3 8.3.4.8 1.6 3 2.3 3 1.6-.2.9-.7 1.5-1.7 1.4-2.5 0-22.2-.7-27.6-.5-4.2-2.5-8-2.7-8.4l-.8-2.6c-1.5-3.5-3.3-6.5-3.3-13.9 0 0-4.7 1.1-8.8-8.2-2.2-4.7-5.3-4.2-9-5.7l1.6-1.1s3.2 1.6 4.7 1.6c1.6 0 1-3.2 1-3.2l1.7-1.5v6.8c0 3.1 4.3 7.4 6.8 8.7 1.6.8 3.6-2.4 3.1-5.6-.5-3 0-7.3 0-7.3l2.2 1.3s-.8 1.3-.6 2.1 1.3-.7 2.1-1.5q-.1.1 1 .2l-2.3 4c-.8 1.2-.8 6.2-.8 8 0 2 .7 6.2.7 7.6 0 1 1.8 5 3.3 7.4l1.6 3.5c1.2 1.9 1.3 3.2 2 4.7q.6 1.1 1.6 7l.7 7c.2 2.4 2.2.6 4.5-1 2.4-1.8 2.4-6 2.4-6s1.8-1.6 1.5-.7c-.2 1 1 2 1 2-1.4 3.3-.6 2.9.9 2.8s6.5-4 6.5-4c.7-.2 3.8-.2 3.3 0s-1.4 1.7-1.4 1.7l3.3-.4c-1.1.9-5.5 3.4-6.5 4a91 91 0 0 1-8.6 4.1c-2.3 1-6.7 3.2-6.9 5.4 0 2.3.3 8.3 0 10.3l-1 10.6h-10.4s2-7.6 0-9.7c-2.1-2.1-7-8.4-10-10.5-3.2-2 2-.5 2-.5v-2.1l4.8 5.7s8.3-7.3 0-17.3c-2.6-3.1-5.3-7.9-7.3-8.4-2.2-.6-3.3-1-6.9 0-3.7 1.1-12.6 1.1-16.3-4.8l3.1-.5 2.7-1s-1.1 3.7 6.3 3.7 8.4 0 7.8-6.8l2.2-1.1 1.6 1.5s-1.1 3.8-.5 5.3c.5 1.6 3 2.7 5.1 4.2q1.4 1 2.2.8c.9-.1 1-.1 2.2-1.3 1.8-2 1.4-1.8 3.2-3.4l1-1.6z"/>
+ <path d="M319 155c.5-.4 1.2-1.9 2-3.1 1.1-2 2.5-3.2 4-5.6 1.5-2.2 2-5.6 1.5-7.9l1.4.8v3.7l2.7-2 .8.4s-5.9 6-11.3 15.9zm-51.3-20.3c.8 1.4 1.6 4 3.9 6l1.6-.4s-3.6-4.2-3.6-6l-1.9.4m9.2-2.4s.5 5-.8 6.9l1.6-.8s1-3.4.7-5.3zm51.4-15.7s-.3 7 1.1 11.3l1.9-.5s-.3-1.3 1.2-1.9c1.6-.5 5.3-2 7.2-3.6l-.6-1.6s-2.8 2.3-4.2 2.9c-1.3.5-2 1-3.1.7s-2.4-2-1.6-6l-1.9-1.3m20.7 32.8s-.4 5-.2 7.2l1.7.4s-.4-6 .7-6.5l-2.2-1m7.5 3.7s-1.9 3.2-4 3.5l3.4-.7s1-.5 2.4-2l-1.8-.8"/>
+ </g>
+ <g fill="#289400" stroke="#030" stroke-width=".5">
+ <path d="m326.6 138.4 1.3.8 1.3.2 3.2 2.6c1.2 1 1.2-.2 1.2-.2l.8 3.1h1l-.2 3.2 1.8-1.6 2.2 1.9s1.5-1.4 2.3-1.4 1.1-.8 1.1-.8h.1q-8-3.6-5.9-7.6c2.6-4.4 6.8-1.6 8.1-1l19 10.2s1.3-.8.4-1.6-1.4-2.7-1-3.5c.2-.8 2.4 2.4 3.4 2.7l3.5.7v-1s3 2.2 3 3.3c0 0 2.3-1.2 1.5-1.9s3.5 1.7 3.7 3l1-1c-.2 0 .2-3.2 1.3-4.6a5 5 0 0 1 2-1.9s1-1.7 2-1.7c0 0-1-.6-1.4-1.4-.5-.8-1.6-1.2-1.6-1.2s1.4-1 1.8-1.5q.7-.8.8-.7c.1.1-2.2-1.9-3.8-2.2 0 0-.1-2.5-2-2.7h.8s-1.4-2.8-2.8-2.8c0 0 .9-1 1.6-1.1 0 0-1.6-2.2-3.9-1.4l1.5-.6s-1-1.1-4.4-.6c0 0 .3-1.3-1.2-2.4 0 0-1.2 0-1.2 1 0 0-1.2-1-2.7-1-1.4 0 .5 1.6.5 1.6s-2-1.3-3.1-1c0 0 .5-2.2-.8-3.3 0 0-1.4.7-1.8 1.7l-.4-1s-2 2.4-2.4 1.7c-.3-.4-.6-2-.6-2l-1.1 1.7.2-2.4s-1.4.8-2.5 3.3c0 0-1.3 1.3-1.3 2.4 0 0-1.1-1.2-2 0-1 1.4 0 1.1 0 1.1s-.5.5-1.5.7l.2.8s-1.2-.7-2.2-.4l.5 1.2s-2.6.2-2.7-2c0 0-2.1-1-2.4.2l-1.6 1s-.5-1-1.3-1.2c-1-.3-.2 1.3-.2 1.3s-.3-1.2-1.5-1.8c-1.2-.5-.2 1-.2 1s-1.5-1.2-.8-2.2c0 0-1.4 1.4-.7 2.7l-1 .7s-.5-.5-.4-1c0-.3-1.7 1.3-1.7 1.3s-1-2.6 0-2.6c.1 0-1.8 0-2.1 2.2 0 0-1.3 0-2.5.4s1 1.3 1 1.3-2-.4-3 .2l.7.9s-.7-.7-2.4-.1.4.8.4.8-1.7-.4-2.6 0 .3 1 .3 1-3.2-1-3.7-.6c-.5.3 1 1.8 1 1.8s-2 .5-2.3 2l1.8.7s-.8.4-1.2 1.1 1.2.4 1.2.4-2.2 1.6-2.2 2.8c0 0 1.6.5 2.7-.7s.4-.8.4-.8l.1.8s2.3-1 2.3-1.6c0-.5-.4.8-.4.8l2.2-1.2z"/>
+ <path d="m324.7 108-.5-2.2 5 .6.9-2s2.4 1 3.1 1.8c0 0 4.6-1.2 6-.7l-.6 2.1s4.2.3 5.6.8c1.2.5-.6 1.6-.6 1.6s4.8.6 6.8 1.8c2.2 1.3 2.2 2.4 1.1 2.7l2.6 4.2s-4.2.5-5 1.5c-.7 1.1-1.5-1-1.5-1l-.8 2.9s-2.6-1.4-3.7-2.4c0 0-1.3 1.6-.5 2.4l-4.8-3.1s-2-.3-2 1.5l-3-3.4-2.6.8s-.8-1-1.7-1.4c-1.1-.2-.3 1.4-.3 1.4l-1.6-1.9-1.6-1.8s-1.3 1.8-2.4 1.8-1-1.2-.8-2.1c.3-.8-3.1-1-3.4 0 0 0-1-4 2.6-5l3.7-1zm-19 13.3-1.6 1.6-1-.5-1.9 2.1-.4-1.1-1 1.7-1.7-.6-.8 1.3-1.5-.3s-1.2 1.2-2 1.5c-.8.2 0-1.8 0-1.8s-1.2 2-2 2-.6-1-.6-1-.5 1.4-1.4 1.6c-.9 0-.5-1-.5-1l-1.6 1.2v-1l-.7-.3s.4-1.8 1.1-2.2-.7-1.5-.7-1.5l.7-.8s-2-.5-2-.1c0 0 1-2.6 2.4-3.1l.1-3s1.4-1.1 2.6-1.2c1.4-.2-.4-2.3-.4-2.3l3.2-1.8.4-2.3 4.7.4 1-2 3.8 1 3.3-1.7 2.3 2.7 3.5.3v3.1s4.1 1.3 4.6 1.7c0 0-.8 2.5-.8 3 0 0 3-.8 3.8-.6l.4 3.4s5 1.6 5.3 2.5c0 0-1 .7-1.7 1.6 0 0 .6 3 .6 4l-.4.5s-1.4-1.3-2.6-1.5l-1 2.1-1.7-1.1h-1.1s-.9-1-1.6-1v-1l-1.4.9s-2.2-1.1-2.2-1.8l.1-1.5-2.2 1.5s-.5-1.1-.4-1.6-.9 1.1-.9 1.1-1.2-2-1-2.4l-.4 1.7s-2.3-.8-2.6-2.4z"/>
+ <path d="M274.5 130.9s4.1 2 4.1 3c0 0 1.1-2.1.5-3l1.6 1.1s.5-1.9-.1-2.5c-.5-.5 3.5-2.1 4.4.5 0 0 2.4-2.5-2.3-4.7 0 0-.4-1.6 2.5-1.2 0 0-.2-1-.9-1.3h2.7s-1.6-1.4-4-1.8-1-.7-1-1.2c-.2-.5 0-2.2 0-2.2s-1.4-.5-2.5 0l.4-.4s-2.5-.7-3.5-.1c0 0-1.5-.6-1.3-2.1 0 0-1.5-.1-2.1 1.4 0 0-1.4 1.6-3.3 1.6-.3 0-1.7-.8-1.7-.8l-1.2 2.7H265l.5 1s-2.8-.8-3.7 0c0 0 1.1 1.7.8 2.8 0 0-2.2.4-2.7.8s.8.7.8.7-2.6.8-3.2 1.6l1 .7-1.2 1.6 1 .2-2.5.8c-.9.3 1.5.5 1.5.5l-1.1 1 1.8.3s-1.4 4-1.5 5.8c0 0 2.2-2.7 2.8-3l-1.8 3s3.4-1 3.7-1.6l.5-1 .1 1.6s1.3-1.7 1.5-2.4 2 .7 2 .7v-1l2.4.7q1-.2.8-.3l1.6-.2-.3 1.4s1.2-.8 1.5-1.6c.2-.8.8 0 .8 0l.8-3.1zm-13.4 13.8 1.6 3.3c-1.3 0-3.1 1.5-3.1 1.5.3 5.4-1 5.1-1 5.1.3 1-.3 2.8-.3 2.8l7.7-4.6.1-.5 9.2-4.3.3.5 2.6-1.5 1.9 4.9-1.9 1c.1 1.7 2.1 4.6 2.1 4.6l2.4-.6 2.7-1v1c0-.3 2.9-1.3 2.9-1.3l1.3 1.3c1-.1 2.7-2.5 2.7-2.5l2 .8s.7-1.2.7-2 2.6-.8 2.6-.8l1.7 1.2 2.3-1.8s.7 1.3 1.6 1.5 3.4 2 3.4 1.6 1-2.5 1-2.5l4.1 1.6c-.5-1.8-2-4-2-4s2-1.6 1.7-2-1.6 0-1.6 0l1.2-2.4h-1.6l.5-.6-2.5-1 1.3-2.8c-.6-.7-7.3-2-7.3-2l1.6-1.5s-.8-1.2-1.6-1.2-4.9.1-5-.3l-1.8-1.8-2.6 1.9-1.3-.4-2.2.8s0 1.3-.3.4-2.3-2.8-2.3-2.8c-.4.7-3 3.8-3 3.8s-.5 1.7-1.3.5c-1-1.2-3-2.4-3.4-1.5-.2 1.1-2.1 2-2.5 1.8-.4-.3-2.5-.1-2.7.5-.1.7-2.5 2.4-2.5 2.4-1.4-.7-3.8-.3-3.8-.3s-.7 1.1-.8 2zm44.2 39.6v-2l2.3 1.5 1.4-1.5 1.8 1.7 1-1.7v2.8l2.7-2.3 1.5.6v-2.2s1.9-3.1 1.1-3.7l1.6-.5s-2.7-2.6-3.4-3.1c-.8-.6-1.9-.6-1.9-.6s-2-2-3.4-2.7c-1.3-.5-2 .6-2 .6s-.8-1.5-2.2-1.8c-1.3-.3-1.3 1-1.3 1s-1-1-2.2-1.4c-1.3-.6-.4 1.2-.4 1.2l-4.5-1.4.6 1.4-4.2-1.1.5 1.5-3-.5-.2 1.3-4.2.8.8 1.4-2.6-1.1v1.9l-3 1 1.1 1-4.7 2.4c-.7.5 1.6 1.6 1.6 1.6l-4.2-.6 1.6 1.4-3.7 3.4 2.6 1.9-1.6 2.3 4 .8 1.5 2.6 3.2-.6v3l4.7-3.7s3.4 3 3.7 2.1c.2-.8.2-3.4.2-3.4h1.7V187l1.2 1 2.2-3.1 2.8 3.9 2.2-5zm19.1-11.8-.4-4.5-1.4 1.4.6-4.2-2.2-.4.8-4.1-1.6-.8.4-2 1.6-1.1 2.8-2.8 6.6.1.7-2.1 4.7.8c.8.8 3.3-1.8 3.3-1.8h1l1 2s3.4-.4 5 .6l-1.9 2.6 3.5.3 2.3.5 2.4-.8 3.2-.2.7 1.3h3l-1 1.1 3.8 1.8-.8.8s2.2.8 3.7.8h.8s.8 1.8-.3 2.6c0 0 1.1 2.6 3.4 3.1 2.4.5 2.4.5 2.7 1s0 3.2-2.7 3.2v2.7s-2 1.8-2.3 2.6l-1.6-1s-1.3 1.5-1.3 2.5c0 0-3.5-4.5-4.7-4.7-1.4-.2-1 2.6-1 2.6l-3.8-3.1-.5 2.1-3.1-2.6-1.9 1.3-3.3-3.5-3.2.4 1.2-1.6h-3.9l-.7-3.4-.6 2.8-2.4-1.6-3 3.3s-.4-.4-.9-2c-.5-1.5-1.8 2-1.8 2l-1.1-2.5-1.3 2.4s-1-1.8-2.1-2.4c-1-.5-2 3-2.4 4.5zm.6 10.3.2-1.6 5.6-2.2 4.7-1.7 2.3-1.1 1.1 1.9 1.4-2.7 2.1 2.8 1.2-1.5 1.8 1.4h1.6l.3 2s3.9.3 4.2-.5.8 2.7.8 2.7l3.7.5.8 4.2s1.8 3.9 1.2 5.4c-.5 1.7-2-2-2-2s-.3 2.9-.6 3.7-5-.8-5-.8l-2 3.9s-2.2-3.1-3.2-3.1-1 3.1-1 3.1l-4.5-5.3c-1.3-1.5-1.6 1.6-1.6 1.6s-2-3.4-2-4.4-1.9-2.2-1.9-2.2-3.2 3.7-5.6 4.7c0 0 .3-2.3-.5-3-.7-.9-3 1.5-3 1.5s-1.7-3.6 0-7.4z"/>
+ </g>
+ <g fill="none" stroke="#004b00" stroke-width=".5">
+ <path d="m350.8 124.5.5 2s1.8-.4 3-.3l-.7 2.2s2.3-.4 3.4.3l-.5 1.2 2.7 1.2-2.5 2s4 1.5 4.9 2.7c0 0-2.7 1.8-3 1.7-.5-.2-.2.8.5 1.7l-2.2-.1s.9 2 .8 2.8c-.2.8-3.8.6-3.8.6m14.1-5.3s.7-3.9-.4-4.9c0 0 2.5 2.2 4.2 2.3s0-3.2 0-3.2 2.3 1.2 3.5 1.5c1.2.2-.9-2.4-.9-2.4s.7-1.3 2.7-.1m-45.4-15.5s0-1-.3-1.4c-2.4-3.2 2.4 2.4 3.4 2.6m4.5 0s1.6 1.2 2.3 1.2c.8 0-.5-3.1-.9-3.5-.3-.4 2.9 1.3 4 1.4 1.2.3 1.4-2 1.4-2s3.6.7 4.4 1.2m-25-.7-.5-3m-24.2 12.7c-.2-.3 1-2 .5-2.9 0 0 .7.6 1.4.7s.4-2.2.4-2.2l.7.3s2-1 1.7-1.8 1.4 1.2 1.4 1.2 1.1-1.2 1.1-1.7 1.4 1.2 1.4 1.2 1.5-.3 1.5-1.2 1.8.3 1.8.3.8-1 .7-1.8m-19.7 9.8s.9-2-.1-3.4m-23.6 9.8c0-1 .5-3.6 0-4s1 .4 2.2.7m9.3-.4c-1.2-1.1-1.9-1.7-3.7-1.7m-16.2 8.3c.3-.7.8-2.4.5-3.3m25 51.7 1.3-2.6 1.6 3.7 1-2.3.4.7 2.4-2.5 2.5 3.8m40.7-16.5 1.7-3.3 2.3 1.2 1-3.3 2.4 1.5 1.3-3 2.7.7.2-2.2s1.8 1 2.3 1.9c.6.7 0-2.7 0-2.7l2.2 1s1.5-1.6-.6-2.4"/>
+ <path d="m343.6 163.1 2.3 3.4 2-2.2 1.7 3.8 2.3-1.4 3.2 1.9 1.5-1.2 3.5 2.5 1.4-3 3.2 1 2-3.5m-84.4-9.2s1.4-2.3 1-3.4c-.7-1 2.8 1.8 2.8 1.8s.7-2.3.3-3.4c-.6-1 3.9 3.2 3.9 3.2s.7-3.7 0-4.4c-.8-.8 4.3 1 4.3 1s2-.6 1.2-1.6c-.8-1.1 3.4 1.5 3.4 1.5s1-2.6 0-3.6 3.2 1.3 3.2 1.3l-1.6-2.8 3.4.2-.3-3.2m30.3 45.1 2.2-1 2 2 2.2-3.5 2.6 2.5.4-2.5 2.8 1.2.6-1.6 3.1 1.7.3-2.4 1.6.5.3-1.5"/>
+ </g>
+ <path fill="#9dd7ff" d="M283.1 298.1a70 70 0 0 1-6-13l42.4-37.2 42.3 37.1a65 65 0 0 1-6.2 13.3l-.3.5-3.2-1.2s-1.4 1.3-2.5 1.4c-1.4.2-2.7-1.3-2.7-1.3s-1.8 1.6-3.7 1.3c-1.9-.2-2.6-1.4-2.6-1.4s-2 1.6-3.4 1.3c-1.2-.3-2.1-1.2-2.1-1.2s-1.2 1.5-2.8 1.2-3-1.2-3-1.2-2.5 1-4 1.3c-1.6.3-3-1.4-3-1.4s-2 1.4-2.8 1.4-3.7-1.4-3.7-1.4-3 1-4.1 1-4-1.3-4-1.3-2.9.8-4.1.8c-1.4 0-3.4-.8-3.4-.8s-2.3 1.1-3.6.8q-2.2-.6-2.4-.8c-.2-.2-2.6 1.1-4.2.8s-3.4-1.4-3.4-1.4-.3.8-3.4 1.4"/>
+ <path fill="#fff" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l-42.3 37.4a84 84 0 0 1-4.4-27.1V205h46.7"/>
+ <path fill="#ffd83c" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l42.2 37.4a84 84 0 0 0 4.3-27.1V205h-46.5"/>
+ <g stroke="#000" stroke-width=".5">
+ <path fill="#730000" d="M292.2 289.2c3.2 1.7 2 1.2 8.7 3.5a62 62 0 0 0 20.7 2.8c8 0 12.4-.7 15-1.4s3.1-1.8 3.1-1.8l-6.5 6.7s-26.3 1.4-31-1.7c-2-1-6-4.2-10-8z"/>
+ <path fill="none" d="M330.8 276.8s8.4 4.8 0 14m-37.8-1 12-11.6-1.3 15.4m6.3 1.4v-25.8m20.8 25.8v-27.4m-10.5 27.9V266"/>
+ <path fill="#ff0018" d="m310 270.6-5.4 1.7 5.4.6v-2.3m10.3-4-5.8 2.1 5.8.2v-2.4m10.5 1.6-5.8 2.2 5.8.3V268zm3.4 12.4c-.3-1.1 3.4-1 3.4-1s1 3.9 0 6.3l-3.1-.6s.3-2.6-.3-4.7z"/>
+ <g fill="#fff">
+ <path d="m294.8 288.1 10.3-10-.5 6s-5.3 3.5-5.3 5.9l-4.5-1.9m5.5 2.1s1-3.1 4-4.7l-.3 6.3zm14.7-17.3s4.2-.6 7.4 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8.1.8 0 0-.8-4 .7-5.8zm-8.9 1s4.2-.5 7.4 0c0 0-.8 4.8-.3 5.5 0 0-4.7-2.6-7-.4 0 0-1.6-3.3 0-5z"/>
+ <path d="M305.9 279.4s4.2-.4 7.3 0c0 0-.5 4.3 0 5 0 0-5.5-1.2-7.8.8 0 0-1.1-3.9.5-5.8zm8.4-.7s6-.8 9.1-.3c0 0-1.2 3.4.3 5.7 0 0-6.5-1.7-9 .3 0 0-2-3.9-.4-5.7zm-9 6.5 8.2.6s-.8 6-.3 6.7c0 0-6.6-1.5-7.8.6 0 0-2.2-5.4 0-7.9zm9.2 0s7-.5 10.3 0c0 0-1.9 4.5.2 8.4 0 0-9.2-2.6-10.5-.5 0 0-2.1-5.4 0-7.9zm10.8-12.3s4.2-.6 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8 .8 0 0-.9-4 .7-5.8zm0 5.8s4.2-.5 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.3-8 .7 0 0-.9-3.9.7-5.7zm.5 6s4.2-.6 7.4 0c0 0-1 6.6-.6 7.4 0 0-4.8-2.3-7-.3 0 0-1.4-5.2.2-7z"/>
+ <path d="M334.5 285.2s1.3 5 3 5.6l-2.2 2.8s-2.9-2-3.2-4.4c0 0 1.9-2.1 2.4-4z"/>
+ </g>
+ </g>
+ <g stroke="#000" stroke-width=".6">
+ <path fill="#006ac8" stroke="none" d="M355.4 298.7a66 66 0 0 1-36 28.3 67 67 0 0 1-36.3-28.8h.1c3-.7 3.4-1.5 3.4-1.5s1.8 1.1 3.4 1.4 4.2-.8 4.2-.8 1 .5 2.4.8 3.6-.8 3.6-.8 2 .8 3.3.8 4.1-.8 4.1-.8 3 1.3 4 1.3c1.1 0 4.2-1 4.2-1s2.9 1.4 3.7 1.4c.7 0 2.8-1.4 2.8-1.4s1.4 1.7 3 1.4c1.5-.2 4-1.3 4-1.3s1.4.9 3 1.2 2.8-1.2 2.8-1.2.9.9 2.1 1.2c1.4.3 3.3-1.3 3.3-1.3s.8 1.2 2.7 1.4c1.8.3 3.7-1.3 3.7-1.3s1.3 1.5 2.7 1.3c1.1-.1 2.5-1.4 2.5-1.4l3.3 1"/>
+ <path fill="none" stroke-width=".5" d="M353.7 301.2c-1.4.1-1.6-.8-1.6-.8s-2 1.6-3.8 1.3c-2-.3-2.9-1.5-2.9-1.5s-2 1.6-3.4 1.3a5 5 0 0 1-2.3-1.1s-1.3 1.4-3 1.1-3-1.1-3-1.1-2.7 1-4.4 1.3c-1.6.3-3-1.5-3-1.5s-3.8 1.2-4.6 1.2c-.9 0-3.6-1.2-3.6-1.2s-1.9 1.1-3 1.1-4.2-1.3-4.2-1.3-3 .8-4.3.8c-1.4 0-3.5-.8-3.5-.8s-2.5 1-3.9.8l-2.4-.8s-2.7 1-4.4.8c-1.6-.4-3.6-1.4-3.6-1.4s-.3.7-3.5 1.4h-.1"/>
+ <path fill="#5ac800" d="M293.1 305.2s-.3.7-2.8 1.2l-.7.2.6-.2-.7.3a44 44 0 0 0 11.7 11c4.5 3 9.6 6.6 18.4 9.2a71 71 0 0 0 17.8-9c6-4.5 9.2-7.2 12.6-11.7-2.7 1.5-2.3 1.5-3.7 1.3-1.3-.3-2.3-1.3-2.3-1.3s-1.3 1.5-3 1.3c-1.6-.3-3-1.3-3-1.3s-2.2 1.5-4.4 1.4c-1.6-.1-3-1.6-3-1.6s-3.8 1.3-4.6 1.3c-.9 0-3.6-1.3-3.6-1.3s-1.9 1.2-3 1.2-4.2-1.4-4.2-1.4-3 .8-4.3.8-3.4-.8-3.4-.8-2.5 1-4 .8c-1.3-.3-2.4-.8-2.4-.8s-2.7 1-4.4.8c-1.6-.3-3.6-1.4-3.6-1.4z"/>
+ <path fill="#ffd800" d="M319.6 326.9a89 89 0 0 0 17.1-8.6c-1 0-4-1-2.9-1.2 0 0-1.2 1-2.3 1s-4.2-1.3-4.2-1.3-3 .7-4.3.7c-1.4 0-3.4-.7-3.4-.7s-2.6 1-4 .7l-2.4-.7s-2.8 1-4.4.7-3.6-1.3-3.6-1.3-2.4 1.3-4 1.4a55 55 0 0 0 18.4 9.3z"/>
+ </g>
+ <g stroke="#000" stroke-width=".5">
+ <path fill="#b34b00" d="M313.2 249c1.9-1.6 3-3 2.3-4.2-.7-1-1.8.6-3 .2 0 0-2-1.1-2.5-2-1-1.2-2.5-2.3-3.3-3.4-.9-1-4.2-5.3-9.1-10.3-1.5-.9-1.1-4.4-2.2-5.5 0-.8-10-10.6-13.4-14-1.5-1.1-2.2-1.8-4.7.5-2 1.7-2.7 3.6-.1 5.8l12.8 11.7c1.9 1.8 4.5 2.1 5.6 3l13 13.4c1.7 1.4 2.5 2.4 1.5 3.6-1 2 .1 2.3.3 2.3.2.1 1.1.1 1.7-.4z"/>
+ <path fill="none" d="m280.7 214 13.4 13.2"/>
+ <path fill="#fff" stroke-width=".6" d="m298.8 220 1.1-2.5c.2-.4 3.8-6.2 5.6-6.3l11.3 8.2c0 .5-5 7.8-5.3 7.2 0 0-13.2-5.5-12.7-6.6z"/>
+ <path fill="#ccb8c8" stroke="none" d="M306 222c-1.6-1.2-4.1-2.4-6.2-3.8l-.9 2c.7.8 10 5.1 11.6 6 0 0-1.8-2-4.6-4.2z"/>
+ <path fill="none" stroke-width=".4" d="m299.8 218 5 3.1c2.7 2 4.4 4 6.4 5.2"/>
+ <path fill="#782121" d="m277.1 253 25.5-31.7c.5-.4 2.9-.4 3.2 2l-24.2 33s-2.7-.3-4.5-3.4z"/>
+ <path fill="#730000" d="M362.7 253.3c-1 .7-2.4.8-2.4.8-1.7-1.9-3-4-5.4-6.5l-25.5-31.3 2.7-2.6 23 26.9c.6.7 4.6 4.9 8.4 9.8 0 0 .3 2-.8 2.9z"/>
+ <path fill="#fff" d="m338.1 220.3-4-5s-3.2.5-3.8 2.1c0 0-2.2 3.7-8.2 4.1 0 0 1.7 7 8.6 10.7 0 0 2.5-7.2 5-8.4 0 0 2.5-1.9 2.4-3.6z"/>
+ <path fill="#730000" d="M327.9 242q-.9-.3-2 .4c-.9.5-1.8.3-1.7-.7 0-.8 0-.7 1-1.4a6 6 0 0 1 5-.5l-2.3 2.1m27.8-27.7c-.2-.7-.4-1.4.3-2.2s.7-2.2-1-1.5q-2.7 1-.9 5.4z"/>
+ <path fill="#fff" d="m327.3 242.5 28.9-28.7 7.1 7.6s-1.5-.6-2-.2.5 1.9.5 1.9-1.3-.5-1.9-.1c-.7.4 0 2 0 2s-1.2-.8-1.8-.5c-.5.4 0 2.3 0 2.3s-1.5-.5-2-.1c-.3.4 0 2 0 2s-1.5-.7-2.3 0 .4 1.9.4 1.9-2-.8-2.7.4.1 2.2.1 2.2-1.6-.7-2-.4c-.4.4 0 2.3 0 2.3s-1.3-.8-2.2.2.1 2 .1 2-1.3-.8-2-.4.2 2.2.2 2.2-1.2-.9-2.1 0 0 2 0 2-1-1-2.2 0c-1 1 0 2.1 0 2.1s-1.5-.8-2.1 0 .2 1.9.2 1.9-1.2-.7-2-.3c-.7.4 0 2.1 0 2.1s-1.1-1.3-1.6-.6 0 2.4 0 2.4-1-1.3-1.6-.6c-.7.6.4 2 .4 2s-2-.8-1.5-.8z"/>
+ <path fill="#7e4b7e" stroke="none" d="m354.5 216.2-2.2 2.2.5 7.7s.5-2.2 1.1-.7c0 0 .2-1.8.7-1.5-.4-.2 0-7.8 0-7.8m-4.3 4.3-1.6 1.5.6 7.7s.4-2.9 1.1-.6v-8.6m-17.6 17.2-1.5 1.7.4 4.7s.5-3 1.1-.7l-.2-2.6z"/>
+ <g fill="none" stroke="#7e4b7e" stroke-width=".9">
+ <path d="M330.9 218.3c1 1 4 5 4 5m-2.6-2.9c-.2.6-.6 2.3-1.5 3.2m2-2.8c-.2.4-.2 1.7-1.5 3m2-2.4q-.3 1-.8 1.7m1-1q-.1.5-.4.8m-3.2-2.7a29 29 0 0 1-4.8 2.8m4-1.8a14 14 0 0 1-3.1 2.2m2.8-1c-.5.4-1.5 1.4-2.3 1.7m1.8-.5q-.7.7-1.5 1.1"/>
+ <path stroke-linecap="square" d="M311.3 224.7c.3-.6.9-1.8 1.6-2.8 1-1.4 1.3-1.6 1.8-2"/>
+ </g>
+ </g>
+ <path fill="#289400" stroke="#060" stroke-width=".5" d="M217 303.4c1.5.7 0-4.8.5-6.8.6-2.2 4.8 5.2 6.8 6.2 2.2 1 15.3-5.2 15.3-5.2l3.1-5.8 1.7 4.8s3.6-4.2 4.6-5.8c1.1-1.6 0 3.1-1 4.7-1.1 1.5 3.1 2.1 2.6 5.3-.5 3 4.2-2.2 4.2-2.2l12.1 1s2-7.3 5.3-11.5l1 4.8 5-5.1a66 66 0 0 0 41.3 39.2 67 67 0 0 0 40.2-36.6l6.7 7s5.3-1.6 6.3-2.2a70 70 0 0 1 15.5 5.6c1 .7.3-3.5.3-3.5s5.8 1.1 5.3 4.2c0 0 1.2-2.9 2.3-3.4s3.6 2.7 4.2 3.7c.5 1 13 2.6 14.7 3.6 0 0 1.3 1.6 1.3 2.7 0 0 2.7-.3 4.7-.3 0 0-1.5.8-1.5 2.4q0 2.5-2.4 3.6c-1.5.8 0 1.4 2 1.6 2.2.3 0 3-4.1 4.5 0 0-1 2.3.8 3.1 0 0-3.7.3-4.2-.8 0 0-1.3 2.5-1.3 3.8 0 0-4-1.3-5-1.9 0 0-1.6 1.6-.5 2.3 0 0-7.1-.7-8.5-3.4 0 0-2.5.8-2 1.7 0 0-5-3.4-6.6-3.4l-1 1.7s-3.5-2-4.5-2-.2 1.5-.2 1.5l-4.8-2.9-1.9 3-5-2.7c-1-.8-1.2 1.6-2 1.9 0 0-1.6-2.2-3.7-1.9 0 0-.8 2.6-.5 3.4l-7.1-1.5c-1.1-.3-.5 1.2 0 2.3 0 0-4.5-1.3-5.5-2l-.3 2s-3.7-.3-4.5-1l-2.3 3.1h-3.5l-.7 2.9s-6.6-1.9-7.2-.8c-.5 1 .3 2.6.3 2.6l-5.7-.7-.5 2.3s-6.7-2-8.2-1c0 0-2 2-3.4 2.6-1.3.5 0-.8 0-.8l-2-2.9s-2.4 1.3-3.8.8-5.5 2-6.8 1.3c0 0 0-1.9-1.1-2.4-1-.4-2.8-.4-3.6.8l-2.2-3c-1.2-2.2-3.1.1-3.1.1l-.3-2.5-3.6-.3c-2.2-.3-2.6-2.2-2.6-2.2s-5.6.6-6.4.3l1.4-1.3s-7.6 1.6-9.2 1c-1.7-.5 1.8-2.6 1.8-2.6l-8.4-2c-1.3-.4-9 1.2-10 1.2s-1.6-1.8-1.6-1.8-1.8 1.6-3.4 2.1c0 0-1.3-3.1-.5-3.4 0 0-5 1.3-5.3 2.6 0 0-1.2-2-1-3 0 0-2.4 3.8-3.5 4.6-1 .8-.2-1.9-.2-1.9s-2.9 3.7-4 4v-2.6s-8.4 4.5-10.7 3.9c0 0 0-1.9.8-2.4l-5.3-.2-4.2-1.1c-1.3-.2 1.9-1.6 4-1 0 0-5.8-2.1-7.6-1 0 0-.8-2.2 2.3-3 0 0-4-3.9-6.3-3.6 0 0 2.6-1.6 4.8-.8 0 0-2.5-6.6-4-7.4 0 0 5.5-1 7.1-.2z"/>
+ <path fill="#730000" stroke="#000" stroke-width=".5" d="M208.9 188.8 280 152c.3-2-.7-3.4-1.9-5-20.3 10-38.8 22.2-61.4 29.5-1.3.5-12.5 5.2-18.3 12.1a8 8 0 0 0-2 4.5s.2 3.1.9 4c0 0 .1.8 1.2 1.5 0 0 .7.3 1.1.2s1.4 0 2.6-2a52 52 0 0 1 6.7-8z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".5" d="m266.1 152.4 9.2-4.4s3.1 2.3 2.8 5c0 0 .7 6 8.2 10.2 0 0-6.3 8-17.4 8.6 0 0 1.2-10.4-1.1-13.5 0 0-.4.4-.2-.1.3-1-.2-4.5-1.7-5.3z"/>
+ <path fill="none" stroke="#7e4b7e" stroke-width=".8" d="M276.9 153.6c-2 .8-8.3 4.1-8.3 4.1m5.2-2.1c0 1-.6 3.3 0 5m-.8-4.7c0 .5-.8 2.2 0 4.6m-1-4.1c-.2 1-.4 1.5 0 2.6m-.8-2v1.2m5.8-1.5c.3.7 2.9 4.8 4.5 6.5m-4.1-4.7c.3.8 1.7 3.6 2.8 4.7m-3-3c.4 1 1.1 2.7 2 3.7m-2-1.8a8 8 0 0 0 1.1 2.5"/>
+ <g stroke="#000" stroke-width=".5">
+ <path fill="#b34b00" d="m342.3 148.3 26.1 12.8c5.2 2.5 7.1.2 10 1.5l51.6 26.2c4.5 2 7 2.5 6.3 4.8-.1 3.7 1.7 3.7 2.2 3.8.4 0 2.1-.2 2.8-1.2l.6-.6c.6-.6.5-.7.7-1 2.1-3 3.3-5.8 1-7.5-2.5-1.3-2.8 1.5-5.6 1.2 0 0-4.8-1.8-6.6-3.1-3.2-1.8-7.8-3.9-8.8-5-3.3-.6-28-14.6-42.1-21.6-1.5-1.2-2.3-5.9-5.3-7.4-.8-1.3-19.8-10-29.8-15-3.6-1.3-5.7-2.2-8.3 2.3-2.3 4.4-1.8 6.8 5.2 9.8z"/>
+ <path fill="none" d="m344.5 142.8 29.2 14.6"/>
+ </g>
+ <g fill="#ffa54b" stroke="#000" stroke-width=".5" transform="translate(-40)scale(.96)">
+ <path fill="url(#bz-c)" d="M309.7 165.1c-.2.6-.7.2-.7.4-.4 2.2-.3 3.3-.8 4.5a7 7 0 0 1-3.1 2.6c-2 .7-4.5 3.1-8.5.9l-.6-.5s1.1 4.1-3 6.2l-15.7 8.2s-1.5 2.8-.5 6.5c0 .6.3 1.1-.3 1.5-1 .7-2.7 2.8-3.7 6 0 0-3-1.3-3-3.2s1.2-3 1.5-4.4c.3-1.3 1-4.7.7-5.7-.4-1.1-2.3-1.5-3-2-.6-.3-1.4.5-1.3 1.4.1 1 .8.8 1.6 1 0 0-.9 2-.8 3.4l-9.2 4.8 1.6 2.3c.4.7 1.3 10.2 4 14.7s3.7 3.2 4.3 3.8l2 2c.8.5 4 .8 4.5-1a9 9 0 0 1 3.2-4.1c2-1.6 6-5.4 6-7.2 0 0 2.3 6.8 2 12.4 0 0 8.5 1.7 16.1 1.9 7.6 0 11.5-1.5 11.5-1.5s1-6.4.6-7.7c0 0 1.2 4.2 2.2 5.6 1 1.8 2.1 5.3 4.3 5.5 2.2.1 4-2.1 4.2-3v-6.8h8.7s3.8 1.5 5 1.3 2-1.3.8-1.7l-.4-.3c1.2 0 2.6.7 2.6.7h4.3l-.1-.5c-.3-1.2-2.6-2.2-4.2-3-1.6-.5-3.5-1.2-4.7-1.3a20 20 0 0 0-6.2.4c-.8 0-3.9.4-5.8 1.3-.5.3-1 .4-.8-1 .3-1.3.2-7.8-1.3-10.5-1.2-2-1-3.6-.9-5.2a87 87 0 0 0 0-8.8c-.3-1.7-2.5-4-6.6-4.4-3.8-.5-7-3.7-7.3-6.2-.3-2.6.4-7.2.8-9.3"/>
+ <g fill="none">
+ <path fill="url(#bz-d)" d="M292.4 153.6c-.7 3.3-.7 6.1-.6 9.3.1 2.1 1.1 4.6 2 6.7a10 10 0 0 0 2.8 3.9c3.6 2.3 7-.2 8.9-1a6 6 0 0 0 2.7-2.5c.5-1.2.3-2.1.8-4.5l.7-.4c1-1.5.7-2 1.2-3s-.5-2.2-1.8-2q1.1-3 .4-5.9c-.2-.6.5-2.2-.6-1.8-4.6 1.8-10 1.4-14.8 1.4-.4 0-.8-.8-1.4-.7l-.3.5"/>
+ <path fill="#000001" d="M292 155.3q-.8-.5 0-3.2c.7-2 0-2 1.1-3.2s.9-1.6 1.6-1.9 2.8-.2 3.5-.5a11 11 0 0 1 9-.3c1.5.8 2.5 2.8 3.4 3.6 1 .7 1.7 3.6 1.5 7.9-.3 4.3-1.2 3.5-1.2 3.5s-1.2-2-2.2-.3c0 0 0-1.7.2-3 .1-1.1-.6-3.4.1-4.9 0 0-5.8 1.8-8.7 1.7-3-.2-7.4-.9-7.6-1.6l-.7 2.2"/>
+ <path fill="#fff" stroke="#fff" d="M295 151.8c-.3-.6-1.8-2.9-.6-3.6 1-.6.4 2.8 2 3.5 0 0-.6 1.5-1.4.1z"/>
+ <path d="m298.3 160.1-.9 3.2m10.6 1.6c.2.6.4.3 1 .4m.3-4c.5-.5 1.2-.2.8 1.3m-17.7-4.9 2.8 1c1.5.6.6 2.9.2 4.3-.2.7-1 2-.6 2.5.5.8 1.1.3 2 .4 0-.3.6-.5.8-.5.7 0 1.1.5 1.7.3s.5-1.2.3-1.7m-.1-4.5c0-.4 1-.8 1.5-.9 2.1-.4 3.6-.7 5.4.5m-5.7 11.1c-1.8.4-3.6.7-5.2-.2m0-.8c.8-.4 1.1-.8 2.1-.3l1.1-.4q1.1 0 2.2.8m-5.5.3c1-.3 3.3-.3 5.4.1"/>
+ <path fill="#fff" stroke-width=".3" d="M292.3 160.1c.7 0 1.6-.9 3.2.3 1.1.8-1.8 1.5-1.3 1.4-1.4.2-1.8-.5-1.9-1.2zm8.4.8c.7-1.4 1.8-1 2.8-.8 1 .3.7.1 1.7.7-1.2.1-.9.2-1.7.6q-1.4.8-2.3.3-.5-.3-.7-1 0 .3.2.3z"/>
+ <path fill="#000001" stroke-width=".3" d="M293.8 161.4q.6-.1.7-.8 0-1-.7-1-.8 0-.9 1 0 .7.9.8zm8.6.2q.6 0 .7-1a1 1 0 0 0-.8-.8q-.6 0-.7.8.1 1 .8 1z"/>
+ </g>
+ <g id="bz-g">
+ <g fill="none">
+ <path d="M345.9 213.7a4 4 0 0 0-1.9-1.4l-2-1-2.4-.9m.5 2.6-.9-.5-1-.2-.2-.2a4 4 0 0 1-2.4-1.3m-62.8-9.3c1 .7 3.2 2.2 3.4 5.1a11 11 0 0 0 1 3M264 202c.5 1.7.6 7.4 6 13.4m-5-21.4c-.4 1.1-1 2.2.2 3m14.4 10.7c1.1-2.6 4.6-2.4 4.6-4.8"/>
+ <path d="M284.8 207.3c-.3-2.9-1-4.5-.4-8.7.2-1.2.4-5.9 0-8.1 0 0 1.6 7.8-3.7 9.3m34.4 12.5c0-4 1-6.2 1-6.2 1.2-5.6-1.2-7.7-.3-9.1.9-1.2 2-3.8.5-8.9 0 0 2.8 10.5-4.5 10.5-7.5 0-7.2-2.7-7.2-2.7"/>
+ <path d="M284.4 190.5c0 2 0 8.4 9 8.4 2.8 0 5.8-2 7.4-3.3m2.2-2.7q-.4-3-.3-7m-13.6-3.4c2.4-.3 4.4-.6 9-.6m.2-6.3c.5 2.2-.3 5.8 4 6.3m4.3-7.1c-.6 1.6-.6 3.3-.8 4.4m.2 2.7c1.7 0 5-1.1 9-.3m1.4 22.8c.9 1.6 1 3.8 3.6 6.2m-31.7-11.4c.2 1.3-1.8 5.7-.3 9.3a12 12 0 0 1-1.2 11m6.7-19c-.9 1.7-2.3 3.3-2.6 4.7m6.6-1.6c0 1-2.7 8.7-4.7 10.9 0 0 3.6 1.4 3 6.6m7.4-21c0 1.2-.2 1.6 1 2.4m2.4 0c1.3 1.6 5.5 6.5 4.6 9.2m-7.4-6.5c.3 1 .3 6.3-.6 9m-2.1-.2c-1.1 0-2.8.8-3 2.7m8.7-3c1.1-.3 3.3 1.6 3.3 7m15.7-10.2c-2.1.6-3 1.7-2.4 1.1-1.1 1-2.2 1.6-2.2 1.6"/>
+ </g>
+ <path fill="#000001" stroke-width=".3" d="M289.8 198q1 0 1.1-1-.1-.6-1.1-.7-.9.1-1 .8.1.8 1 .9zm23 .3q1 0 1.1-1-.1-.6-1-.7t-1.1.8c-.1.8.5.9 1 .9z"/>
+ <path fill="#fff" d="M280.5 239.8c1.3-8 5-14.5 5.1-15.2 0 0 3.9.9 10.6 1.5s8.4.4 11.5.2l6.8-.8s1.2 2.4 1.3 4.8c.3 5.2 2.3 27.7 2.5 33.7 0 0 .8 3.6.8 12.3 0 9.6 2.6 29 2.6 39.4l-2.6.5s-14.5 1.1-14.5-.8c0-2.1-.8-27 1.4-42.1 0 0-.5-3-1.4-5.5s-4.3-10-4.3-11.7c0 0-5.7 16-6 18.8-.3 2.6-1.2 38.4-1.7 41.3 0 0-8.2 6.3-9.3 7-1.1.4-9-3.4-9.3-4.4a211 211 0 0 1 4.6-33.2c1.4-7.1.6-8.4.6-10.4s.1-27.5 1.3-35.4z"/>
+ <path fill="none" d="M294.3 275q-.8 3.4-3.6 5.7m-2.7-53.6c-.3 1.3-2.3 7.3-7.2 10.9m14.3-9.8c-1.1 3.6-5.5 22.7-6.3 45.4m-.3 7.1-1.7 20.8m-.8 3a71 71 0 0 0-2.7 18.7m32.2-36c-.2 2-1 15.7 3.6 28m-18.5-86c-.3 2.3-.8 16.7-.8 17.8s1.6 2.8 2.4 3c0 0-1.6.6-2 6m-4-12.8c-.3 1.7-2 8.5-3 11.3m13-25.5s5 1 5.3 0c0 0 1.6 29.5 3.8 46m-11.2-42.2-.6 16.5m2.5 2.1s1.9 2.8 1.4 4m-17.8-28 3 .8m5.2 1.6c-.3.9-.6 4.6-.6 4.6m8.8 38.9c.6.8 1.4 2 .8 4.4"/>
+ <path fill="#9b5f00" d="M285 224.4s0-3.2 1.1-4.8c0 0 3.5.7 8.4 1.2q7.4 1 12.6.5c3.7-.4 7.4-1.3 7.4-1.3s1 4.8.5 5.5c0 0-4 .8-8.3 1a86 86 0 0 1-14.5-.8 57 57 0 0 1-7.3-1.3z"/>
+ <path fill="#fff" d="m288 224.8.7-4.8h1l-.2 5.1-1.4-.2m22-4.1.1 5.5 1.3-.2-.1-5.6-1.3.3m-15.6 0-.4 5.3h.7l.7-5.3h-1"/>
+ <path d="M276.8 320.8q-.6 2-1 5.5c0 .5-.6 3.3 1 3.4 1 0 1.4-2.9 1.4-2.9s-1 3.3.3 3.7c1.8.4 2-3.6 2-3.6-.2 1.1-1.4 4 .3 4.3 1.9.3 2.4-3.9 2.4-3.9s-1.6 4.2.3 4.3c1.7 0 1.7-4 1.7-4s-.9 5 1.5 4.5c1.4-.2 1.7-2 2-3 .4-1.5 1.3-3.4.2-6.6-.8-2.3-.5-3-.5-3s-2.9 2.2-5.1 3.6c-1 .6-6.5-2.3-6.5-2.3zm29.7-4.4c-.5-.3-.4 1.9-.6 2.9s.2 3.2 3.6 3 6.7-1 8.9-.5c2.1.6 5.3.7 7 .7q2.5 0 3.7-.5c.7-.3 2.2.4 3 .4s1.7-1 1.6-1.8c0-1.3-1.3-1.3-3-1.4a22 22 0 0 1-5-1c-1.1-.3-3.1-1.5-5.7-2l-5.9.2c-1 0-7 .3-7.6 0z"/>
+ </g>
+ <g fill="none">
+ <path fill="#ffb366" d="M255.7 189.8c-.5.3-1.1-2 .4-2.9 0 0 .4-2 2-2.1 0 0 1.4-1.9 3.3-1.7 0 0 2.2-1.5 3-1.3.9.1 3 2.1 3 2.9.2.7 0 1.9-.5 2.4s-1-.1-1.1-1c0 0 .4 1.6-.8 2.2s-1.1.2-1.2-.6c0 0-.4 1.6-1.2 1.9s-1.3-.5-2-.5c0 0 1.1.9.4 1.5q-1.2.6-2-.1c-.5-.5-1.2-1.9-3.3-.6z"/>
+ <path d="M265.7 186c-.5-1.5-2.2-3-4-2.8m2.2 4.4-.8-1.2c-.9-1.5-2.8-1.4-4.4-1.8m2.4 4.5c-.6-.4-.8-1.2-1.4-1.5q-1.4-.8-3.3-.7"/>
+ </g>
+ </g>
+ <g stroke="#000" stroke-width=".5" transform="translate(-40)scale(.96)">
+ <path fill="url(#bz-e)" d="M439.1 165.1c.7-.3.5.6.6 1 .4 1.3.4 2.7.9 3.9s.8 1.5 1.8 2c1.6 1 6.4 3.6 9.8 1.5l.7-.5s-1.3 4.1 3 6.2l15.6 8.2s1.5 2.7.6 6.5q-.5.9.2 1.5c1 .7 2.6 2.8 3.8 6 0 0 3-1.3 3-3.2s-1.3-3-1.6-4.4c-.2-1.3-1-4.7-.6-5.7.4-1.1 2.1-1.5 2.8-2 .7-.3 1.6.5 1.3 1.4 0 1-.8.8-1.6 1 0 0 1 2 .8 3.4l9.4 4.8-1.6 2.3c-.5.7-1.5 10.2-4.2 14.6s-3.7 3.3-4.2 4l-2.1 1.8c-.6.5-3.8.9-4.5-.9a9 9 0 0 0-3.1-4.1c-2-1.6-6-5.4-6-7.2 0 0-2.3 6.8-2 12.4 0 0-8.4 1.7-16.2 1.9-7.6 0-11.5-1.5-11.5-1.5s-1-6.4-.6-7.7c0 0-1.2 4.2-2 5.6-1.1 1.8-2.2 5.3-4.4 5.5-2.2.1-4-2.1-4.2-3v-6.8h-8.7s-3.8 1.5-5 1.3-1.9-1.3-.9-1.7l.4-.3a7 7 0 0 0-2.5.7H402l.1-.5c.3-1.2 2.6-2.2 4.3-3 1.6-.5 3.3-1.2 4.6-1.3 1.9-.2 3.2-.1 6.2.4.8 0 4 .4 5.8 1.3.5.3 1 .4.8-1-.3-1.3-1.2-5.5.3-8.3 1-1.9.9-3.5.8-5.2-.2-1.7-1.1-5.6-1.1-7.3 0-5.7 4.4-8 8.2-9.2 4.3-1.4 7.1-2.8 7-5.3-.2-2.7.5-7 .1-9"/>
+ <g fill="none">
+ <path fill="url(#bz-f)" d="M456.3 153.6a20 20 0 0 1 1.2 5.3c0 1.2-.5 1.4-.1 2.8.7 2.4-.8 5-2.5 8-.8 1.2-1.4 3-2.7 3.8-3.4 2.1-7.5-.4-9.6-1.3a4 4 0 0 1-2-2.2q-.5-1.6-.8-4c0-.3 0-1.2-.6-.9-1.3-1.4-1-2-1.6-3-.5-1 1-2.2 2-2a10 10 0 0 1-.2-5.9c.2-.6-.6-2.2.5-1.8 4.5 1.8 10 1.4 14.8 1.4.4 0 .7-.8 1.3-.7l.3.5"/>
+ <path fill="#000001" d="M456.8 155.3c.4-.4.1-2.3-.4-4.3-.1-1-1-1.5-2-2.6s-1.6-1-2.3-1.4c-.6-.2-2-.2-2.8-.5-.6-.3-2.2-.1-3.7.1-2 .3-3.2.2-4.7 1s-2.8 1.8-3.3 3.3c-.4 1-1 2.5-.8 6.8s1 3.5 1 3.5 1.1-1.7 1.9-.6l-.3-3.6q-.2-1.8.5-4.6s4.6 1.7 9 1.7c3 0 7-.3 7.1-1l.7 2.2z"/>
+ <path d="M450.4 160.1c.7 1.8.1 1.3.4 2.4m-10.2 2c0 .8-.6.6-1 .6"/>
+ <path d="M456.9 158.8c-1-.7-2.7-.2-3.5.1-1.5.7-.7 2.3-.2 3.7.2.7 1 1.7.5 2.4-.4.8-.7.4-1.6.5 0-.3-.8 0-1.1 0-.6 0-1 .4-1.5.2s-.5-1.2-.3-1.7m.1-4.5c0-.4-1.3-.8-2.7-.9-2.3 0-2.5.1-4.2 1.3m11.5 9q-.5-1.1-2.1-.4c0-.2-1.6-.4-1.6-.4q-1 0-2.1.7m5.6.6c-1-.6-3.3-.2-5.6-.2m.2.8c1.7.5 3.5.8 5.2 0"/>
+ <path fill="#fff" stroke-width=".3" d="M456.4 160.1c-.7 0-1-.9-3.1.3-1.1.7 1.8 1.5 1.4 1.4 1.2.2 1.6-.5 1.7-1.2q.2-.3 0-.5zm-8.3.8c0-.8-1.8-1-2.9-.8-1 .3-.5.1-1.5.7 1 .1.7.2 1.6.6.9.5 1 .9 2.3.3q.5-.2.8-1 0 .3-.3.3z"/>
+ <path fill="#000001" stroke-width=".3" d="M455.1 161.4a1 1 0 0 1-.8-.8q0-1 .8-1 .6 0 .7 1 0 .7-.7.8zm-8.7.2q-.6 0-.7-1 .1-.8.8-.8.9 0 .7.8 0 1-.8 1z"/>
+ </g>
+ <use xlink:href="#bz-g" width="100%" height="100%" fill="#730000" transform="matrix(-1 0 0 1 748.8 0)"/>
+ <g fill="none">
+ <path fill="#730000" d="M491.6 193.5c.5.2 2-2 .5-3 0 0-.5-2-2-2 0 0-1.4-2-3.4-1.7 0 0-2-1.5-2.9-1.4-1 .2-3 2.2-3 3-.2.5 0 1.8.5 2.4s1-.1 1-1c0 0-.3 1.5.9 2.2s1.1 0 1.2-.7c0 0 .3 1.6 1.1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3s1.5.3 2 0c.6-.5.3-1.8 2.4-.6z"/>
+ <path d="M482.5 189.8c.5-1.8 2.2-3.2 4-2.9m-2 4.4q.1-.6.5-1.2c1-1.6 3-1.6 4.6-1.9m-2.5 4.5c.6-.4.8-1.1 1.4-1.4a5 5 0 0 1 3.2-.7"/>
+ <path fill="#730000" stroke="none" d="M482.3 186.8c-.9.7-1.8 1.8-1.9 2.2 0 .7 0 1.9.5 2.5q1 .6 1.1-.8c0 .5 0 1.5.8 2 1.3.7 1.2.1 1.3-.7 0 0 .3 1.6 1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3s1.5.3 2 0c.6-.5.3-1.8 2.5-.6q.5.1 1-1.1l-7.7-5.5z"/>
+ <path d="M480.7 188.2c-1.5 2.6.5 4.1 1.1 2.6-.1 2.4 1.7 2.3 2.3 1.5.7 2.5 1.9 1.4 3 1.2-1.3 2.3 1.4 1.6 2 1 1-1.3 1.4-.2 2-.3l1.3-1.3m-8-5.7q-2.5 1.5-2.6 3.7m5-2.2q-2.7 1.5-2.6 3.7m5.4-1.7c-1.7.9-1.8 1.7-2.5 2.8"/>
+ </g>
+ </g>
+ <path fill="#5ac800" d="m238.5 310.7-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6l1.6 5 1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9 1.9.8 2.2 1.6l1.6-2.9s2 2 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3c0 0-16.2 5.6-27.6 4a306 306 0 0 1-24.5-4.3m110.9-.5s.7-2.1 1.8-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.3 1.6 1.8 2.7-2.6s1.3 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2.1 0 0 .5 2.6-.3 5 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5s-13.9 2.1-27 .9-25.3-5.9-25.3-5.9m-9.6 9.7c.6-.4-4.4 10.3-16.5 10.9-16.9.8-31.3-7.7-31.3-7.7s1.8-2.9 2.9-3.7c0 0 2.3 1.9 3 4.2 0 0 .4-1.5 1.2-2.9 0 0 2.9 1.4 3.4 3.2 0 0 1-1.8 1.8-2.3.8-.6 1.6 2 1.6 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.3 0 0 2-1.8 2.6-1.5 0 0 2.3 1.5 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.2l2.9 2.2 3.4-4.7s2.1.8 2.1 2c0 0 1-3.7 1.8-4 .8-.5 1.8 1.1 1.8 2.2 0 0 .3-2.8 1.9-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 2.9-4"/>
+ <path fill="none" stroke="#060" stroke-width=".5" d="m238.5 310.7-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6l1.6 5 1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9c.8-.5 1.9.8 2.2 1.6l1.6-2.9s2 2.1 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3m58.7-.8s.8-2.1 1.9-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.2 1.6 1.7 2.7-2.6s1.2 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2 0 0 .5 2.5-.3 4.9 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5m-109.8 8s1.8-3 2.9-3.7c0 0 2.3 1.8 3.1 4.2 0 0 .3-1.6 1-3 0 0 3 1.4 3.5 3.2 0 0 1-1.8 1.9-2.3.7-.6 1.5 2 1.5 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.4 0 0 2-1.9 2.6-1.6 0 0 2.4 1.6 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.1l2.9 2.1 3.4-4.7s2.1.8 2.1 2c0 0 1-3.6 1.8-4 .8-.5 1.9 1.1 1.9 2.2 0 0 .3-2.8 1.8-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 3-4"/>
+ <g fill="#fff">
+ <path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1s-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2s8.4-17.9 8.4-17.9-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.6 11.7s-15.5 11.8-38.3 11.8c-22.9 0-31.6-6.8-38.4-11.8-6.9-5-17.1-11.7-27.6-11.7a18 18 0 0 0-15.2 8.4s4.2 11 8.4 18c4.1 6.7 25.5-.5 27.3-1.4l-2.6-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0 0 42.2 12.6"/>
+ <path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1l-3-1.8a18 18 0 0 1 6.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a47 47 0 0 1-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6m77.1-13.6.4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1l3-1.8c-.7-1-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a46 46 0 0 0 15.7-7.2zm6.5 13.7s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6"/>
+ </g>
+ <path fill="#69f" d="M271.3 345.4S260.9 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5m96.1 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5m-83.4-9.3-3.1-2.3-4.5-3.2s2.1-2.7 3.2-3c1.7-.6 3.7.3 4.1 3.8.3 2.7.3 4.7.3 4.7m-7.1 27.6c1.8 1 3.9 1 5.1.8 3.7 0 6.6-2.1 6.5-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.4.3 2.5-1.4 5.1-3.3 5 0 0-10.3-2-16.5-3-3.7-.7-5-2.3-5-2.3m77.7-27.6 3.2-2.3 4.4-3.2s-2.1-2.7-3.2-3c-1.6-.6-3.6.3-4 3.8zm7.1 27.6c-1.8 1-3.9 1-5.1.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.4-.2 2.5 1.5 5.1 3.4 5 0 0 10.3-2 16.5-3 3.6-.7 5-2.3 5-2.3"/>
+ <g fill="none" stroke="#000" stroke-width=".7">
+ <path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1s-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2s8.4-17.9 8.4-17.9-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.7 11.7s-15.4 11.8-38.2 11.8-31.6-6.8-38.4-11.8c-6.9-5-17.1-11.7-27.6-11.7s-15.2 8.4-15.2 8.4 4.2 11 8.4 18c4.1 6.7 25.5-.5 27.4-1.4l-2.7-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0 0 42.2 12.6z"/>
+ <path d="M271.3 345.4S260.9 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5zm96.2 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5zm-83.4-9.3-3.1-2.3-4.5-3.2s2.1-2.7 3.2-3c1.7-.6 3.7.3 4.1 3.8.3 2.8.3 4.7.3 4.7z"/>
+ <path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1l-3-1.8a18 18 0 0 1 6.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a47 47 0 0 1-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6z"/>
+ <path d="M280.1 351.1s-2.3 2.5-2.7 6.5c-.2 3.1 1.8 4.9 4.5 4.7 3.7-.2 5.1-5.3 3.4-8.1l-5.2-3"/>
+ <path d="M277 363.7c1.8 1 3.9 1 5.2.8 3.6 0 6.5-2.1 6.4-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.5.3 2.4-1.4 5-3.3 4.8L282 366c-3.7-.7-5-2.3-5-2.3zm77.7-27.6 3.3-2.3 4.4-3.2s-2.2-2.7-3.3-3c-1.6-.6-3.6.3-4 3.8z"/>
+ <path d="m354.7 336 .4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1l3-1.8c-.7-.9-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a46 46 0 0 0 15.7-7.2m6.5 13.6s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6z"/>
+ <path d="M358.7 351.1s2.4 2.5 2.8 6.5c.3 3.1-1.9 4.9-4.5 4.7-3.7-.2-5.1-5.3-3.4-8.1l5.1-3"/>
+ <path d="M361.9 363.7c-2 1-4 1-5.2.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.5-.2 2.4 1.5 5 3.4 4.8l16.5-2.9c3.6-.7 5-2.3 5-2.3z"/>
+ </g>
+ <path fill="none" stroke="#fff" stroke-width=".7" d="M299.6 361.4s3.3 2.4-.7 5.3m-9-6.8 10 4.3m-8.3-2.1 7.2 3.1m-4.6-5 5.4 2.5m39.7-1.3s-3.3 2.4.6 5.3m9-6.8-10 4.3m8.4-2.1-7.2 3.1m4.6-5-5.4 2.5"/>
+ <path stroke="#000" stroke-width=".7" d="m261 331.4.3.7v.8a2 2 0 0 1-1.2 1.6 3 3 0 0 1-2.2.4l-1-.4-1-.6-.3.4-.4-.1.4-2.9.5.1q0 .6.2 1l.3 1 .7.6q.3.3.9.4h.7a1 1 0 0 0 .9-.6l.2-.6-.1-1-.7-.7-.8-.5-.8-.6q-.7-.4-1-1t-.1-1.4q0-.5.4-.8a3 3 0 0 1 1.5-1h1l1 .4.8.6.3-.4.5.1-.5 2.8-.5-.1v-1l-.4-.8-.5-.7-.8-.4-1 .2q-.6.3-.6.8v1l.7.7.8.5 1.3 1q.3.1.5.5m12 1.6-.5-.1-.5-.1q-.3 0-.5.3l-.6 1-1.8 3.1a2 2 0 0 1-1.9 1.3h-1.1l-1-.5-1-.8-.7-1-.1-1 .2-.8 2.4-4.3.1-.4v-.3l-.3-.3-.4-.3.2-.3 3.1 1.7-.2.3-.3-.1-.4-.1h-.4l-.2.3-2.2 4-.3.7v.8l.2.7.9.8 1 .3a2 2 0 0 0 1.5-.5l.5-.6 1.6-3 .5-1v-.6q0-.2-.4-.5l-.4-.3.2-.4 3 1.7-.2.3m4.3 7.5a2 2 0 0 1 0 1.8l-.8.8-1 .3-1-.1-.9-.4-3.5-2 .2-.4.8.3h.3l.3-.3 3-5.3.1-.3-.1-.4-.3-.3-.3-.2.2-.4 3.4 2 .7.5.6.7a2 2 0 0 1 0 1.6l-.6.6-.7.3h-.7l-.8-.2v.1l.6.6zm-.6-1.8q.3 0 .5-.3l.5-.6q.3-.6.2-1.2-.2-.4-.9-.9l-.4-.2-.4-.3-1.6 2.8.6.4.8.3zm-.6 2.7q.4-.6.1-1.3 0-.6-1-1.1l-.5-.4-.4-.1-1.5 2.5v.7q.2.3.7.5.8.4 1.4.3.7-.3 1.2-1zm18.9 4.3h-.5l-.6-.1q-.2 0-.4.4l-.5 1-1.5 3.3q-.2.6-.7 1l-1 .4h-1.1a4 4 0 0 1-2.2-1l-.7-.8-.3-1 .2-.9 2-4.5v-.4l-.1-.3-.3-.3-.4-.2.2-.4 3.3 1.4-.2.4-.4-.1h-.7l-.2.3-1.9 4.3-.2.7a2 2 0 0 0 .4 1.4q.3.4 1 .7l1 .2a2 2 0 0 0 1.5-.7l.4-.6 1.3-3.1.3-1v-.7l-.4-.4-.5-.3.2-.4 3.1 1.4-.1.3m9.2 10.8-3.6-1v-.4h.6l.4.1.4-.2.2-.3 1.7-5.8h-.1l-4.8 6h-.3l-.6-7.9-1.5 4.8-.2 1.1.1.6.5.4.5.3-.2.4-3.2-1v-.4h1.1q.3 0 .5-.4l.3-1 1.2-4.2.1-.6-.1-.4-.4-.4-.5-.2.1-.4 2.8.8.6 6.7 3.5-4.5.3-.5.2-.4 2.7.8-.1.4h-.5l-.4-.1-.3.1-.1.4-1.7 5.8v.3l.1.3.8.4-.1.4m8.7-2.6a2 2 0 0 1 .7 1.7l-.4 1q-.3.4-.8.6t-1 .3h-1l-4-.5v-.4h.9l.3-.2.1-.4.8-6v-.3l-.3-.3-.4-.2h-.3v-.5l3.9.5.9.2.7.4a2 2 0 0 1 .6 1.5l-.2.8-.6.5-.6.3-.8.2.8.3zm-1.3-1.5.4-.5.2-.7-.3-1.1q-.3-.5-1.1-.5l-1-.1-.4 3.2h1.6zm.5 2.8q0-.8-.3-1.3-.5-.4-1.4-.6l-.7-.1h-.4l-.3 2.9.2.6.8.3q.8.1 1.5-.4.4-.4.6-1.4zm11.4 2.6h-2.2l-1.4-2-1.3-1.8h-1v2.7l.1.4.3.2h.4l.5.1v.4h-3.6v-.4h.4l.4-.1.2-.2.1-.4v-6.4l-.3-.3h-.4l-.4-.1v-.4h4.9l.9.4.6.6a2 2 0 0 1 0 1.8l-.4.7-.7.4-.8.3 1 1.4q.5.5 1 1.4l1 .8.8.1zm-3.1-6.2q0-.8-.4-1.2-.5-.5-1.3-.5h-1v3.6h.8q.8 0 1.3-.5t.6-1.4zm13 5.6-3.6.3v-.4l.7-.2.3-.2v-.3l-.9-1.8-3 .2-.2.7-.1.6-.1.4v.3q0 .3.4.3l.9.1v.4l-3.2.3v-.4l.4-.1.7-.6.2-.5 1.1-3.6 1.1-3.6h.5l3.4 7 .2.3.7.4h.4v.4zm-3.7-3.1-1.6-3.2-1 3.4zm15.7-6.7-.4.2-.8-.9q-.6-.4-1-.3h-.3l-.6.2-1.4.4.9 3.2 1-.2.6-.3.3-.4.1-.4v-.6l.4-.2.9 3.2-.4.1-.3-.5-.4-.4-.5-.2-.6.1-1 .3.8 2.8s0 .2.2.3l.3.2h.4l.4-.1.1.4-3.5 1-.1-.4.4-.2.4-.2.2-.3v-.3l-1.6-5.9-.2-.3-.3-.2h-.9l-.1-.3 6.4-1.8.6 2m9.4-.7 1 2.4-6 2.8-.2-.3.4-.3.3-.2.1-.3v-.4l-2.7-5.4-.2-.3h-1.2l-.2-.3 3.3-1.6.2.4-.4.2-.3.3-.2.3.1.4 2.5 5q0 .4.3.6l.3.2h.4l.7-.3.4-.2.4-.3.3-.2.2-.3.2-2 .3-.2m4.5-8.3 1.5.8 1.2 1.4.6 1.7v1.6l-.7 1.5-1.2 1a4 4 0 0 1-3.2.4l-1.4-.7-1.2-1.4-.6-1.7v-1.7a4 4 0 0 1 2-2.4l1.5-.6zm2.3 5.6-.2-1.3-.7-1.4-1-1.3-1-.8-1-.2q-.7 0-1.2.3-.6.4-.9 1l-.3 1q0 .7.3 1.3a7 7 0 0 0 1.5 2.6q.5.6 1 .8l1.2.3q.5 0 1.1-.3a2 2 0 0 0 1.2-2zm10.5-5.7-1.9 1.3-2.3-.9-2-.6-.8.5 1.6 2.1.2.3h.4l.3-.1.4-.3.3.4-3 2-.2-.3.6-.5v-.7l-3.6-5-.2-.2h-.4l-.7.3-.3-.4 3.2-2.2.9-.5.9-.2.8.1a2 2 0 0 1 1.1 1.4v.8l-.2.7-.5.8 1.6.5 1.6.5 1.2.1h.4l.4-.3zm-6.2-3.3q-.4-.6-1-.7-.7-.2-1.3.3l-.8.6 2 3 .7-.5q.6-.4.8-1.2.1-.7-.4-1.5zm13.2-2 .7 2.4-6.6 2.4-.2-.4.8-.4.2-.3v-.4l-2.2-5.6-.1-.3-.4-.1h-.9l-.1-.3 6.1-2.3.7 1.9-.4.1-.8-.7-.9-.3-.4.2-.6.2-1.2.4 1.1 3.1 1-.3q.3 0 .5-.3l.3-.4v-1.1l.4-.1 1.1 3-.4.2-.3-.5-.4-.3-.5-.2-.6.2-.9.3.9 2.4.2.5.3.3h.5l.7-.3.5-.2 1-.4.2-.3.2-1v-1l.5-.1m7.1-5.8q.6.4 1 1.3.5.7.6 1.7v1.8l-.8 1.5a4 4 0 0 1-2.7 1.6 4 4 0 0 1-3-.9l-1-1.2-.6-1.7v-1.9l.8-1.5a4 4 0 0 1 2.7-1.5h1.6zm-.1 6q.3-.6.3-1.3v-1.5l-.4-1.5-.7-1.2-.9-.7-1.1-.1q-.8 0-1.2.5-.5.4-.7 1l-.3 1.2a7 7 0 0 0 .4 3l.7 1.1q.3.6.9.7.4.3 1.2.2l1-.5.8-1z"/>
+ <path fill="none" stroke="#000" d="M366 205.1v53c0 10.6-1.4 52.6-46.5 69-45.3-16.4-46.7-58.4-46.7-69v-53H366"/>
+</svg>
diff --git a/apps/web/public/flags/ca.svg b/apps/web/public/flags/ca.svg
new file mode 100644
index 00000000..c9b23b49
--- /dev/null
+++ b/apps/web/public/flags/ca.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ca" viewBox="0 0 640 480">
+ <path fill="#fff" d="M150.1 0h339.7v480H150z"/>
+ <path fill="#d52b1e" d="M-19.7 0h169.8v480H-19.7zm509.5 0h169.8v480H489.9zM201 232l-13.3 4.4 61.4 54c4.7 13.7-1.6 17.8-5.6 25l66.6-8.4-1.6 67 13.9-.3-3.1-66.6 66.7 8c-4.1-8.7-7.8-13.3-4-27.2l61.3-51-10.7-4c-8.8-6.8 3.8-32.6 5.6-48.9 0 0-35.7 12.3-38 5.8l-9.2-17.5-32.6 35.8c-3.5.9-5-.5-5.9-3.5l15-74.8-23.8 13.4q-3.2 1.3-5.2-2.2l-23-46-23.6 47.8q-2.8 2.5-5 .7L264 130.8l13.7 74.1c-1.1 3-3.7 3.8-6.7 2.2l-31.2-35.3c-4 6.5-6.8 17.1-12.2 19.5s-23.5-4.5-35.6-7c4.2 14.8 17 39.6 9 47.7"/>
+</svg>
diff --git a/apps/web/public/flags/cc.svg b/apps/web/public/flags/cc.svg
new file mode 100644
index 00000000..a42dec66
--- /dev/null
+++ b/apps/web/public/flags/cc.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cc" viewBox="0 0 640 480">
+ <defs>
+ <path id="cc-a" d="m0-360 69.4 215.8 212-80.3L156-35.6 351 80.1 125 99.8l31.1 224.6L0 160l-156.2 164.3 31.1-224.5L-351 80l195-115.7-125.5-188.9 212 80.3z"/>
+ <path id="cc-b" d="M0-210 54.9-75.5l144.8 10.6-111 93.8 34.7 141L0 93.3-123.4 170l34.6-141-111-93.8 145-10.6z"/>
+ </defs>
+ <path fill="green" d="M0 0h640v480H0z"/>
+ <circle cx="320" cy="240" r="66.7" fill="#ffe000"/>
+ <circle cx="340.8" cy="240" r="54.9" fill="green"/>
+ <circle cx="109.8" cy="173.3" r="69.8" fill="#ffe000"/>
+ <path fill="#802000" stroke="#7b3100" stroke-width="1.5" d="M105 226h17.5s.7-1.6-.2-2.4c-1-.8-4.7-1-3.7-3.8 2-5.8 2.4-4 3.7-17.8a739 739 0 0 0 2-35.5h-2.6s.5 6.7-1 15.5c-1.4 8.8-1.9 9.5-3.5 16.3a64 64 0 0 1-3.3 11.2c-1.4 4-1.6 4.1-3.8 7.8-2.3 3.6-1.5 2.2-2.7 4.4-.7 1.1-1.4.8-1.9 1.6s-.5 2.7-.5 2.7z"/>
+ <path fill="green" d="M118.3 122.5a23 23 0 0 1-1.2 9.2 27 27 0 0 0-2.3 9.8c-1.8.6-3.7-3.9-5.5-1.2 1.3 3.7 4.4 6.6 6.4 9.9.4 1 3.4 3.7 1.6 4.3-4.3-1.5-5.4-7-8-10.3a19 19 0 0 0-15.5-10c-2.5.1-10.4-.5-8.4 3.7 3 2 6.8 3.4 9.8 5.7 2.3.2 6.3 4 6.1 5.4-4-1.6-5.8-3.5-10-5.2-5.8-2.2-13.7-.9-17 4.8-.5 1.5-1.4 5.8.5 6.3 2.2-3.4 5.3-7.3 9.9-6.2 3.6.3-4 6.7-1.1 5.4 1-.4 3-1.8 4.6-2 1.5 0 2.3 1 3.4 1.2 2.3.3 3 1.2 2.7 1.8s-1 0-3.3.8c-1.1.4-1.7 1.4-3 1.9s-4.2.5-5.2 0c-3.7-1.5-9.7-1.3-10.8 3.3 0 2-1.8-.2-2.6.7-.7 2.2-.8 4.4-4 4.2-2 2-4 4.2-6.6 5.7 1.5 3.4 7.3-3.4 7-.5-2.5 3.5 1.4 4.2 3 1.5 2.9-3 6.5-6.7 10.7-3.6 2 1.9 3.2-1 4.7-1 1 2.5 2.1.2 3.2-.5 1.7-.2 1.2 2.2 3.2.7 4.1-2.7 9.1-.4 13.1-3 4.3-2 .6 1.5-.5 2.9-1.9 3.6-.3 8.4-4.3 10.6-1.7 4.3 1.9 10-1.7 13.2-.5 2 4.6 1.8 6 2.6 2.6 0 0-5.8 2.5-6.6 3.4 2 3.2-3.8 2.5-5.6.4-4 .6-8.6 2.6-12.3 2.2-4.5 4.2 1.9 1.8 3.7-1.4 4.1-3.4 9.4-.3 13.3 1 .2 1.7 2.4 2.8 3 1.2.7 2.8-.1 3-2.1 1.6-6 .8-12.4 3-18.3 1.5-1.8 3.6-.3 4.5 1.4 3 3.5 5.1 7.8 8.7 10.7a15 15 0 0 1 7.8 7.3c0 2.6 7.4 3 5.2 0-2.1-2.7-.7-5.6 1.4-7.5 1.2.3.9-1.8 0-1-1.5-.3-1.6-3 .4-1.7 3.5 1.1-.2-2.5-1.5-2.6-2.9-1.8-6.2-3.8-7.6-7 3.8 0 7.7 2.1 11.5.9 3.1-1.6 6.2 0 7.3 2.8 2.4-.4 1.4-2.8 0-3.6 1.7-.7 3-2.2.8-3.5-1-1.4 1.5-4-1.7-3.8.1-2.5-.8-4.7-3.5-5.6-2.7-2.2-10.6 3.4-10.3-1.7-.8-2.8 3.2-.4 4.3-1.8 1.1-3-5.5-2.6-3.3-5 1.4-.8 8.1-2.1 2.9-3.1a8 8 0 0 1-7-1.1c-1.9 3.1-7.2-1.8-6.3 3.8-.7 2.1-5.5 7.6-6.8 3.4 1-3.3 6.8-4.3 5-8.8-.3-2.7-2.6.5-3.6.3-.6-1.7 1.6-3.8 3.2-4.2 3 2.4 3-3 6-2.5 2.1-.5-.7-1.4-1.3-1.8.6-1.5 3.9-2.3.7-3.7-2.9-2-5 2.1-7.3 2.3-2.2-2.5 2-3.7 3.2-5 .1-1-2.4-.3-1.7-1.2.7-1.1 5.2-1.2 3-3a15 15 0 0 0-10.2.6c-2 .6-2.5 5-4.2 4.8-.7-2 .3-5.8-2.4-6.3m15 42.3c2.4-.4 0 3.7-1 3.6 0-1.4-3.6-1.3-1.3-2.6a7 7 0 0 1 2.3-1"/>
+ <g fill="#ffe000" transform="translate(0 80)scale(.0635)">
+ <use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="4200"/>
+ <use xlink:href="#cc-a" width="100%" height="100%" x="6300" y="2205"/>
+ <use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="840"/>
+ <use xlink:href="#cc-a" width="100%" height="100%" x="8680" y="1869"/>
+ <use xlink:href="#cc-b" width="100%" height="100%" x="8064" y="2730"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cd.svg b/apps/web/public/flags/cd.svg
new file mode 100644
index 00000000..b9cf5289
--- /dev/null
+++ b/apps/web/public/flags/cd.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cd" viewBox="0 0 640 480">
+ <path fill="#007fff" d="M0 0h640v480H0z"/>
+ <path fill="#f7d618" d="M28.8 96H96l20.8-67.2L137.6 96h67.2l-54.4 41.6 20.8 67.2-54.4-41.6-54.4 41.6 20.8-67.2zM600 0 0 360v120h40l600-360V0z"/>
+ <path fill="#ce1021" d="M640 0 0 384v96L640 96z"/>
+</svg>
diff --git a/apps/web/public/flags/cefta.svg b/apps/web/public/flags/cefta.svg
new file mode 100644
index 00000000..f748d08a
--- /dev/null
+++ b/apps/web/public/flags/cefta.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cefta" viewBox="0 0 640 480">
+ <path fill="#039" d="M0 0h640v480H0z"/>
+ <circle cx="320" cy="249.8" r="30.4" fill="none" stroke="#fc0" stroke-width="27.5"/>
+ <circle cx="320" cy="249.8" r="88.3" fill="none" stroke="#fc0" stroke-width="27.5"/>
+ <path fill="#039" d="m404.7 165.1 84.7 84.7-84.7 84.7-84.7-84.7z"/>
+ <path fill="#fc0" d="M175.7 236.1h59.2v27.5h-59.2zm259.1 0h88.3v27.5h-88.3zM363 187.4l38.8-38.8 19.4 19.5-38.7 38.7zM306.3 48.6h27.5v107.1h-27.5z"/>
+ <circle cx="225.1" cy="159.6" r="13.7" fill="#fc0"/>
+ <circle cx="144.3" cy="249.8" r="13.7" fill="#fc0"/>
+ <circle cx="320" cy="381.4" r="13.7" fill="#fc0"/>
+ <circle cx="320" cy="425.5" r="13.7" fill="#fc0"/>
+ <circle cx="408.3" cy="249.8" r="13.7" fill="#fc0"/>
+ <path fill="#fc0" d="m208.3 341.5 19.5-19.4 19.4 19.4-19.4 19.5zm204.7 21 19.5-19.5 19.5 19.5-19.5 19.4z"/>
+</svg>
diff --git a/apps/web/public/flags/cf.svg b/apps/web/public/flags/cf.svg
new file mode 100644
index 00000000..a6cd3670
--- /dev/null
+++ b/apps/web/public/flags/cf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cf" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cf-a">
+ <path fill-opacity=".7" d="M-12.4 32h640v480h-640z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#cf-a)" transform="translate(12.4 -32)">
+ <path fill="#00f" d="M-52 32h719.3v119H-52z"/>
+ <path fill="#ff0" d="M-52 391.6h719.3V512H-52z"/>
+ <path fill="#009a00" d="M-52 271.3h719.3v120.3H-52z"/>
+ <path fill="#fff" d="M-52 151h719.3v120.3H-52z"/>
+ <path fill="red" d="M247.7 32.5h119.9V512H247.7z"/>
+ <path fill="#ff0" d="m99.3 137.7-31.5-21.8-31.3 22L47.4 101 16.9 78l38.2-1 12.5-36.3L80.3 77l38.1.7L88.2 101"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cg.svg b/apps/web/public/flags/cg.svg
new file mode 100644
index 00000000..f5a0e42d
--- /dev/null
+++ b/apps/web/public/flags/cg.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cg" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cg-a">
+ <path fill-opacity=".7" d="M-79.5 32h640v480h-640z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#cg-a)" transform="translate(79.5 -32)">
+ <path fill="#ff0" d="M-119.5 32h720v480h-720z"/>
+ <path fill="#00ca00" d="M-119.5 32v480l480-480z"/>
+ <path fill="red" d="M120.5 512h480V32z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ch.svg b/apps/web/public/flags/ch.svg
new file mode 100644
index 00000000..b42d6709
--- /dev/null
+++ b/apps/web/public/flags/ch.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ch" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="red" d="M0 0h640v480H0z"/>
+ <g fill="#fff">
+ <path d="M170 195h300v90H170z"/>
+ <path d="M275 90h90v300h-90z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ci.svg b/apps/web/public/flags/ci.svg
new file mode 100644
index 00000000..e400f0c1
--- /dev/null
+++ b/apps/web/public/flags/ci.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ci" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#00cd00" d="M426.8 0H640v480H426.8z"/>
+ <path fill="#ff9a00" d="M0 0h212.9v480H0z"/>
+ <path fill="#fff" d="M212.9 0h214v480h-214z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ck.svg b/apps/web/public/flags/ck.svg
new file mode 100644
index 00000000..18e547b1
--- /dev/null
+++ b/apps/web/public/flags/ck.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ck" viewBox="0 0 640 480">
+ <path fill="#006" d="M0 0h640v480H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="m471.6 213 5.2-16.7-14-10.6 17.6-.2 6-16.5 5.6 16.5 17.7.5-14.1 10.5 5 16.7-14.5-10m27.1 13 10.4-13.9-9.7-14.8 16.7 5.8 11-13.5v17.6l16.4 6.4-16.8 5-.8 17.5-10.2-14.4m-98.4 15-.7-17.5-16.8-5.2L431 198v-17.4l10.9 13.5 16.8-5.6-9.8 14.7 10.3 14-17-4.5m-39.6 40.9-7.4-15.8-17.4 1.8 12.8-12.3L384 211l15.2 8.2 13.3-11.8-3.4 17.4 14.9 8.9-17.3 2.5M389 291.8l-13.3-11.1-15 9.2 6.4-16.7-12.9-11.6 17.3.7 7-16.4 4.3 17.2 17.2 1.5-14.6 9.8m3.2 60.4-16.5-4.8-10.1 14.5-.7-17.9-16.4-5.5 16.1-6.2v-18l10.7 14.1 16.4-5.6-9.6 15m29.5 50.8-17 2.4-3.5 17.4-7.8-16-17.1 1.6 12.2-12.3-7.1-16.4 15.3 8.5 12.8-11.8L393 362m45 38-15.1 8.2 2.6 17.6-12.7-12.4-15.6 7.6 7.3-15.9-12.3-12.9 17.3 2.6 8-15.5 3.4 17.4m53.8 9-8.3 15.3 11.7 13.2-17.4-3.3-8.9 15-2.4-17.3-17.2-4 15.8-7.4-1.7-17.5 12.2 12.8m57.4-13.1-.5 17.4 16.3 6.4-17 5-1.2 17.5-10-14.3-17 4.4 10.8-13.9-9.4-14.7 16.6 5.7M559 209.8l12 12.6 15.9-7.4-8.3 15.8 11.5 13.1-17-2.8-9 15.5L562 239l-17-3.5 15.7-8m34.2 21 5.5 16.6 17.5.3-14.2 10.7 4.7 16.8-14.1-10-14.6 10.1 5.4-16.8-13.8-10.6 17.6-.4m19.5 33.2-2 17.4 15.7 7.7-17.3 3.6-2.7 17.3-8.7-15.1-17.4 2.9 12-13-8.1-15.5 16 7.2m3 39.8-7.8 15.6L603 379l-17.4-2.7-8.4 15.3-3-17.3-17.4-3.3 15.6-8-2.3-17.4 12.6 12.3m-9.8 39.1-14.7 9.2 3.8 17.3-13.5-11.5-15 8.6 6.3-16.3-13.1-12.1 17.4 1.5 7-16 4.4 17.2"/>
+ <path fill="#006" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/cl.svg b/apps/web/public/flags/cl.svg
new file mode 100644
index 00000000..5b3c72fa
--- /dev/null
+++ b/apps/web/public/flags/cl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cl" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cl-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#cl-a)" transform="scale(.9375)">
+ <path fill="#fff" d="M256 0h512v256H256z"/>
+ <path fill="#0039a6" d="M0 0h256v256H0z"/>
+ <path fill="#fff" d="M167.8 191.7 128.2 162l-39.5 30 14.7-48.8L64 113.1l48.7-.5L127.8 64l15.5 48.5 48.7.1-39.2 30.4z"/>
+ <path fill="#d52b1e" d="M0 256h768v256H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cm.svg b/apps/web/public/flags/cm.svg
new file mode 100644
index 00000000..70adc8b6
--- /dev/null
+++ b/apps/web/public/flags/cm.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cm" viewBox="0 0 640 480">
+ <path fill="#007a5e" d="M0 0h213.3v480H0z"/>
+ <path fill="#ce1126" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#fcd116" d="M426.7 0H640v480H426.7z"/>
+ <g fill="#fcd116" transform="translate(320 240)scale(7.1111)">
+ <g id="cm-b">
+ <path id="cm-a" d="M0-8-2.5-.4 1.3.9z"/>
+ <use xlink:href="#cm-a" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(72)"/>
+ <use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(144)"/>
+ <use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-144)"/>
+ <use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-72)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cn.svg b/apps/web/public/flags/cn.svg
new file mode 100644
index 00000000..10d3489a
--- /dev/null
+++ b/apps/web/public/flags/cn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 640 480">
+ <defs>
+ <path id="cn-a" fill="#ff0" d="M-.6.8 0-1 .6.8-1-.3h2z"/>
+ </defs>
+ <path fill="#ee1c25" d="M0 0h640v480H0z"/>
+ <use xlink:href="#cn-a" width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)"/>
+ <use xlink:href="#cn-a" width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)"/>
+ <use xlink:href="#cn-a" width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)"/>
+ <use xlink:href="#cn-a" width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)"/>
+ <use xlink:href="#cn-a" width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)"/>
+</svg>
diff --git a/apps/web/public/flags/co.svg b/apps/web/public/flags/co.svg
new file mode 100644
index 00000000..ebd0a0fb
--- /dev/null
+++ b/apps/web/public/flags/co.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-co" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#ffe800" d="M0 0h640v480H0z"/>
+ <path fill="#00148e" d="M0 240h640v240H0z"/>
+ <path fill="#da0010" d="M0 360h640v120H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cp.svg b/apps/web/public/flags/cp.svg
new file mode 100644
index 00000000..b8aa9cfd
--- /dev/null
+++ b/apps/web/public/flags/cp.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cp" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cr.svg b/apps/web/public/flags/cr.svg
new file mode 100644
index 00000000..5a409eeb
--- /dev/null
+++ b/apps/web/public/flags/cr.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cr" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#0000b4" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 75.4h640v322.3H0z"/>
+ <path fill="#d90000" d="M0 157.7h640v157.7H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cu.svg b/apps/web/public/flags/cu.svg
new file mode 100644
index 00000000..053c9ee3
--- /dev/null
+++ b/apps/web/public/flags/cu.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cu" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cu-a">
+ <path fill-opacity=".7" d="M-32 0h682.7v512H-32z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#cu-a)" transform="translate(30)scale(.94)">
+ <path fill="#002a8f" d="M-32 0h768v512H-32z"/>
+ <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/>
+ <path fill="#cb1515" d="m-32 0 440.7 255.7L-32 511z"/>
+ <path fill="#fff" d="M161.8 325.5 114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cv.svg b/apps/web/public/flags/cv.svg
new file mode 100644
index 00000000..aec89949
--- /dev/null
+++ b/apps/web/public/flags/cv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cv" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cv-a">
+ <path fill-opacity=".7" d="M-123.4 0h682.6v512h-682.6z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#cv-a)" transform="translate(115.7)scale(.94)">
+ <path fill="#fff" d="M-123.4 233H723v206h-846.5z"/>
+ <path fill="#081873" d="M-122.8 0h846v256.6h-846zm.3 385.9h852.1V512h-852.1z"/>
+ <path fill="#de3929" d="M-122.5 302.6h846v39.6h-846z"/>
+ <path fill="#ffce08" d="m131 399.2 6.6 20.4H159l-17.4 12.7 6.6 20.5L131 440l-17.4 12.7 6.7-20.5-17.4-12.7h21.5M317 250.4l6.7 20.5H345l-17.4 12.6 6.6 20.5-17.4-12.7-17.4 12.7 6.6-20.5-17.4-12.6h21.6m-222 64.4 6.6 20.5h21.5L99 368.6l6.7 20.4-17.4-12.6L70.9 389l6.6-20.4-17.4-12.7h21.5M317 329.5l6.7 20.4H345l-17.4 12.7 6.6 20.4-17.4-12.6-17.4 12.7 6.6-20.5-17.4-12.7h21.6m-40.5-161.7 6.7 20.4H298l-17.4 12.7 6.6 20.5-17.4-12.7-17.4 12.7 6.7-20.5-17.5-12.7h21.6m-64.5-45.2 6.7 20.5h21.5l-17.4 12.6 6.6 20.5-17.4-12.6-17.4 12.6 6.7-20.5-17.4-12.6H192m-64.5 2.9 6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H121m-34.8 43.2 6.6 20.5h21.6l-17.5 12.6 6.7 20.5-17.4-12.7-17.4 12.7 6.6-20.5L58 271h21.5m119.2 149.4 6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H192m82.2-41.7 6.6 20.4h21.5L285 432.3l6.7 20.5-17.4-12.7-17.5 12.7 6.7-20.5-17.4-12.7h21.5"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cw.svg b/apps/web/public/flags/cw.svg
new file mode 100644
index 00000000..bb0ece22
--- /dev/null
+++ b/apps/web/public/flags/cw.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cw" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="cw-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ <path id="cw-b" d="m0-1 .2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
+ </defs>
+ <g clip-path="url(#cw-a)" transform="scale(.94)">
+ <path fill="#002b7f" d="M0 0h768v512H0z"/>
+ <path fill="#f9e814" d="M0 320h768v64H0z"/>
+ <use xlink:href="#cw-b" width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(42.67)"/>
+ <use xlink:href="#cw-b" width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(56.9)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cx.svg b/apps/web/public/flags/cx.svg
new file mode 100644
index 00000000..3a83c23f
--- /dev/null
+++ b/apps/web/public/flags/cx.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cx" viewBox="0 0 640 480">
+ <path fill="#0021ad" d="M0 0h640v480H0z"/>
+ <path fill="#1c8a42" d="M0 0h640v480z"/>
+ <circle cx="320" cy="240" r="57.8" fill="#ffc639"/>
+ <path fill="#1c8a42" d="M284.7 214c4 5.5 10 14.6 14.8 12.2 3.7 0 5.7.3 6.2 2.8a37 37 0 0 0 33-14.3s.8 0 .5-4.5c0-2 2.8-1.6 2.8-1 .4 1 .4 1.7.9 1.8 1-.4 2.7-3 4-4.6q.3-1 .2-2.4c.7-1.7 2.4-1.3 2.8-.4l.6 1.6c1.8 1.2 5 0 5.2 0 .3-1.4 1.2-1.2 1.2-1.2 1.2-.3.7-.2 1.5.2-.7 7.7 1.5 8 1.3 12 .1 4.4-1.3 5.6-1.3 7.3.4 2 7 2.1 4.6 3.9-2 1 0 3-3 3.8-8.8 4.5-10.4 8.3-10.4 8.3s-2.2 4.2-2.5 4.2c-1.5 2.8-3.3 1.2-4.4 2.6-.5 1.7-1 5.5 0 7.4.5 2.7 0 4.2-.7 6.9-.6 5.6-2.8 6.5-3.1 8.4-1 2.2.2 12-.8 12-6.5.2-11.5-1.2-14.1-1.7 2.5-10.9 1.5-20.4 1.5-21.4-.6-7.8-11.6-5.9-13.3-7-1.4-.2-2.3-1.3-2.7-1.8-1.6-.2-2.2-.6-3.7-.7-.8.4-.3.8-2 1.3-4.5.5-6.4-3.8-6.4-3.8.2-1.5-9.9.3-15.3-1-2.3 1.3-3.3 5-5.1 5.4 0 1.1-3-1-3.6-2-.2-3.4 2.8-4.8 2.8-4.8 2.4-1.7 3.8-2 5-3.1.5-2.9.2-5 1.5-7.1 1-1.7 2.5-1 3.5-1.6 1.1-.8 1.6-5.6.6-7l-4.7-4.2c-1.4-4.1 1.7-6.8 2.6-6.5"/>
+ <path fill="#ffc639" d="M561.9 142.4c-2.6-10.3-26-32.7-43.7-46.9-4.2-2.8-7-1.1-6.4 3 2.2 3.6 3.8 7.6 6 11.3.6 2.5 1.8 4.2 2.4 6.6 0 0 .2 4.2.6 4.6 5.4 6 6.2 11.1 6.2 11.1a49 49 0 0 0 11.5 15.6c6.2 3.9 1.6 16 1.8 22.5 0 4-2.9 3.6-5.5 3-20.1-18.5-40.1-18.5-57.8-23.9-6.8-.7-7 2.6-4.7 4.4a129 129 0 0 0 39.1 29.6l7.7 4.8 8.8 7.3c6.8 4.4 7.3 8.4 7.3 8.8.2 8.2-4.2 14.6-5.5 17.2-2.3 8.7-7 10.2-7 10.2-37.6 25.4-57.4 32-118.4 24.1-1-.4-6.8.5 0 3 15.5 5.2 53.7 13.5 90.6-4 9-6.2 14.8-4.2 21.3-8a287 287 0 0 1 28.3-15.4c8.3-4.5 31.3-9.4 36.6-13.8 6.1-.5 12.4-1.3 12.8-6.5 2-1.3 5-.3 7.2-4.6 4.8-.9 4-2.6 4-2.6-1.2-3.4-5.8-4.8-9-7.3-4.8-1.6-8-2-11.5-.4l-3.3 1.5s-5.1-.7-5.1-1.1c-11.4-.6-10.3-38.3-14.3-54z"/>
+ <path fill="#1c8a42" d="M588.6 204.2a2.8 1.8 16 1 1-5.4-1.7 2.8 1.8 16 0 1 5.4 1.7"/>
+ <g fill="#fff" transform="matrix(.64 0 0 .64 0 80)">
+ <path id="cx-a" d="m188.2 191-12.8-12-12.9 11.8 1.4-17.4-17.3-2.8 14.5-9.8-8.6-15.2 16.7 5.3 6.5-16.2L182 151l16.7-5-8.8 15 14.4 10-17.3 2.5z"/>
+ <path d="m233.4 335.5-13.8-9.1-13.4 9.6 4.8-15.5-13.6-9.5 16.6-.4 5-15.5 5.6 15.3 16.7-.1L228 320l5.3 15.4z"/>
+ <use xlink:href="#cx-a" width="100%" height="100%" x="2.5" y="269.1"/>
+ <use xlink:href="#cx-a" width="100%" height="100%" x="-112.1" y="123.2"/>
+ <use xlink:href="#cx-a" width="100%" height="100%" x="108.4" y="85"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/cy.svg b/apps/web/public/flags/cy.svg
new file mode 100644
index 00000000..ee4b0c78
--- /dev/null
+++ b/apps/web/public/flags/cy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cy" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path id="cy-a" fill="#435125" d="m307.8 398.6-.2-.2h-.1l-1.3-1.4-3.8-4.5-4.9-6.3-.6-.9-6.2-1.9-4.6-2.1 2.4-2.7 8.4 3.5 6.2 1.3 11.5 8.5-3.3 2.9-3.3 3.5.7-.5.8.6zm-42.6-12.8a32 32 0 0 1-16-4.5s.7-1.3 2.3-2.4c1.6-1.2 4.4-2.5 9-2.6q8.2 0 19.5 5.4a29 29 0 0 1-14.8 4zm-23.5-5.2q-1.6 0-2.6-1a5 5 0 0 1-1.1-2.4 12 12 0 0 1-.3-3.4l1.3-.2c2 0 3.6 1.7 4.3 3.4q.6 1.5.2 2.5t-1.8 1zm41.3-4.8c-13.9-2-19.8-7-22.3-10.9-2.6-4.1-2-8-2-8s.8-.2 2-.2c3.8 0 13.2 1.9 22.3 19zm-28.5-2.8q-8.9 0-13.4-3a8 8 0 0 1-3-3.3l-.4-1.6a18 18 0 0 1 7.2-1.4 27 27 0 0 1 18.9 8.7q-5.1.6-9.3.6m-28.7-1c-6.2 0-14.8-2-20.2-7.3 0 0 5.9-1.5 12.4-1.7h1.2q8.9 0 13.4 3.4 1.5 1.2 1.7 2.2t-.8 1.7q-2.1 1.5-7.2 1.6h-.5zm-20.3-10.5a3 3 0 0 1-2-1 5 5 0 0 1-.8-2c-.3-1.4-.2-2.8-.2-2.9l1-.2q1.4.1 2 1a6 6 0 0 1 1.4 2q.4 1.3 0 2.2c0 .4-.6 1-1.3 1zm46.9-1q-1.6 0-2.6-1a5 5 0 0 1-1.1-2.4 12 12 0 0 1-.3-3.4l1.3-.2c2 0 3.7 1.7 4.3 3.4q.6 1.5.3 2.5-.5 1-2 1zm-22.8-1c-12.6-.4-19.2-4-22.4-7a15 15 0 0 1-3.4-4.3q-.7-1.6-.7-2 .2-.5 3-.4h.4c4.2 0 12.9 1.8 23 13.7zm13.6-1.2a31 31 0 0 1-18.9-9.3 19 19 0 0 1-4.1-7s1.2-.3 3-.4h1c5 .1 14.3 2.4 19 16.7m-52-5a42 42 0 0 1-9.5-1c-5.3-1.4-7.6-3.4-8.6-4.9a5 5 0 0 1-.8-2v-.8s3.5-1 8.4-1.1a35 35 0 0 1 7.4.6 22 22 0 0 1 12.8 8.1s-4 1.2-9.7 1.2zm23.5-8.4a3 3 0 0 1-2.5-1 5 5 0 0 1-1.1-2.4c-.4-1.6-.3-3.2-.3-3.4l1.2-.3h.1c2 0 3.6 1.8 4.3 3.5q.6 1.5.2 2.4-.5 1-1.9 1.1zm-17.6-2.5a39 39 0 0 1-9.6-4.2c-4.4-2.7-9.9-7.5-10.5-15l1-.1h.3c1.3 0 4 .3 7.3 2.8q6.3 4.9 11.5 16.5m11.5-.4a31 31 0 0 1-7.6-4.9 49 49 0 0 1-13.3-18.6s.9-.5 2.3-.6h.6c2 0 4.9.9 8.1 4.4q5.7 6 10 19.7zm-29.9-.9c-3.9 0-5.2-2-5.6-3a6 6 0 0 1-.4-3l2-.2a8 8 0 0 1 6.5 3c.2.4.8 1.4.3 2.3q-.6 1-2.8 1zm-8.5-10.8a51 51 0 0 1-9-.7c-3.4-.6-5.3-3.5-6.4-5.9-1-2.5-1.4-5-1.4-5 10.6.3 15.7 3.4 18 6a9 9 0 0 1 2.6 5.5s-1.6.2-3.8.2zm11-11-2.4-3.4c-1.3-2-2.4-4-2.4-5.6 0-1.7-.4-5-.6-7l-.6-4.5c.3 0 6.6 2.4 6.6 8.4s-.6 12-.6 12zm-8.2-.6h-.2a44 44 0 0 1-18.2-10.8q-2.6-3-3.1-9.4c-.2-3 0-5.5 0-5.8l1.1-.1q2 0 5 2a40 40 0 0 1 5.2 4.4c3.2 3.2 5.7 6.4 5.7 6.4.3.4 2 3.7 3.5 6.9a22 22 0 0 1 1.6 4.6q.2.9 0 1.4l-.3.4h-.4z"/>
+ <use xlink:href="#cy-a" width="100%" height="100%" transform="matrix(-1 0 0 1 593.7 0)"/>
+ <path fill="#d47600" d="m519 76.4-1.8.7-.8.3-2.2-.1-2.2 1-3.8 2.6-.1.1-1.5.4-1.3-.6-.7.4-.3 1.5-.7 1.1-.9.6-3 .3-2.5 1.4-3.4-1-1.5.7-3.3 3-1.7.7h-.5l-2.3-.1-.9.3-1.4 1.3-2.6.2-.9.6-1.3 2.6L476 96l-.8.1-.8-.3-.7.1-.3 1.7-.6.7-1.8.6-1.4 1.2-1.3.6h-2l-1.7 1-3.1.2-1.3 1.2-.3.3-.6.3-1 .6-.2.2-1.2-.2-1.4.5-.6-.8-1 .5-1.2.1-1.6-.7-1.3-.6-.9.2-.3 1.5v.2l-1 1.2-1.7 1.1-.2.3-2 2.6-3.8 4-3.2 1.6-3.3 1-2.3 1.9-6 3-9.7 4.8-2 .6-2.8.4-5 1.9-4.4 1.3-.3.1-.8.3-6.3 1.9-2.9-.4-1.7.7-4.5-.5h-3.1l-2 .4-3.7 1.8-6.3 3-2 2-3.2 1.6-3.8 1.2v-1.6l-1.3.4-1 .3-3 .4h-1.7l-1.1-.3h-.2l-6.2 2.1-7 .7-3.5 1.1H333l-1.6.5-3.2.4-1.2-.3-.2-.1-9.4.4-4.3-.5-2 .5-3.5-1.2-5-.6-1.2-.3-2.6-.8-1.2.7-1 .1-2-.8h-.8l-1.8.6-1-.2-1-.8-2.1-.3-1.4-1.1-7.5 1-2-.6-6.9-2h-1l-1.4 1-2 .8-1.9.4-2.4.1-2.8-.7-2.8-1.4-1.1-.3-2.4.3h-.7l-4.4-2.3-5.6-3.5-3.8-1.9-1.5-.2-.2.7.7 2.2.3 2.3v2l-.1 1.3.3 1.1 1.4 1.6.6 1.5.4 4.2v4.3l-.7 6.8-.2 1-.8 3.6-.7 3.3-2.9 8.7-.7 1-2 1.3-4.3 3-3.2 1.8-1 .4-2.6.2H219l-2-1.1-2-.5-2.6-1.9-2.8-.6-3.2-1.8-.8-1-1.7-.2-2.4-.7-.9-.3-.6-.1-3-.1-2.9-1.3-1.5-.4h-2l-2.1 1-1.1.4-1.4-.5h-1l-1 1.7-.2.3-.8.4h-1.7l-.8.3-1.1.5-1 .4-.5.2h-.3l-.5.2h-.6l-1.2-.6-.6-.3-1-.2-.5.3-.1 1.9-.5 1.1-1.6 1.4-1.6 1.4-1 1.6-3 6.7-1.9 2.7-.5.7-2 2.1-1.7 1.3-3.9 3-3.7 1.5-3.2.6h-1.6l-3-.4-2.6-.8-3-1.8-3.1-2.6-4.7-4.5-.6-.4-.2-.1-1.4-1h-1.1l-.4.8-.3 1-.2.9-.5 5v.3l.3 2.1 3.6 5 1 2.6.2.3.7 1.2.6 1 1.3 3.6-.9 2 .4 1.4-1 .8-.2 1.2 3.1 4 .7 1.7-.7 2.4-1.3 1.4-.3.3.2 1 1.4 1.4 2.5 2.2 1.3 3.2 1 1 1.2-.3.6.5h1l1 1 .6.2 1 .5.8 1 .1 3.2 1.5 3.8v2.5l1 1.5.2 1.2-.5 3.3 1.2 1 1.2-.2.8.1 1.3 1.1 1.6 2.4 1.6-.2 1 .4 4.7 4.3 1 .6.9.4 1 1 1.4-1h.2l1.6-.2.7.5 1.4.9h1.7l4 1.2 1.6.4 3.4 2.1 1.5.9.8.7 1.2 1 2.2 1 2 .4 1 .2.9.3 4.2 1.7 2.3.5 2 .8 1.6.5h1.2l1.6-1.3h1.5l1.3.2 1.3-.2 2-1.2.3-.6 1.4-.6 4.8-.6 1.4.4 3.6-1.5 2.4.6 2-.7 4.7 1 1.2.9 1.4 1.5h1.7l-.7 1.1 2 2.2 1.9 2.7.1.4 1.3 3.9 1 1.4.7 1.9v1.2l-1 .9-.2.4v.2l.2.5.4-.2.7-.4 1-.2 1.6.2 1.1.1 1.7-.8 1.2-.6 1.8.8h2l.9.3 2.4 1.1 1.2.1.4-.3.3-.6-.1-.8-1-1.1-2-2.4-.8-1.2-.6-1.7-.2-2.2-.2-1.5.3-2 .5-.7.4-1.6.1-.4 1.2-1.5 3-2 3.2-2.8 2.5-1.7 2.6-1.1v-.3l.4.1 6.6-2.3 3-.5 20 1.4.7-.2.7-1.9.3-.3.3-.2 2.2-1 1-.2 2.8.7 1.2.3 1.9-1h1.3l2.7-1.5h1.7l.7-.2 3.3-2.4 3.1-.9.8-.4.3-.2 3.3-1.7 2-1.6 1.8-1 2-.4 5-.4 1.1-1.7 2.2-.3 1.3-1.5 1.5-.6 1.1-1.6 1-1.3 1.2-.7 4.1-.3 4.8.6.7-.4 1-3.9 1.2-.7 3-4.5v-1.6l.1-1.4.5-2-.3-3.4.4-3.6 1.9-4.5 1.7-1.8 2.7-1.9 1.4-.6 2-.3h.2l.5-.2h9.2l2.3-.1 5.7 1h.4l1.9.7 2.2 1.7 2.4 2.3.4.4 1.5.7.5.2 1.2-.2 1.8-1 1.4-1 1.8-1v-.2l1.1-1.5.4-.7 3.6-1.4 4.2-.2.5-.3h.2l1.1-1.4h1l2.6 1 1.7-.4 1.4.5 1.1-.1 2-.3 2.3 1.6 1.3.2 4.5 2.6h.4l.2.1.5-.2.8-.2h.1l.1.1.6.7.7.1.8-1-.3-.6-.1-.2-1.7-.3-1.4-2.5 1.4-1.5-2.2-2.6-.4-.5v-.1l-.8-1.2-3.8-5.8-5-4-1.7-1.3-.6-.5-2.7-2.7-1.9-2.5-.2-.5-.4-.9-1.1-2.4-2-1.5-1.6-1.8-3.4-4.6-.5-.7-.8-.5h-1.7l-.1-.2h-.1v-.1l.8-.8 1-.2.3-.9-1.7-4.9v-.2l-.1-1.5 1.3-7.1.2-.9 2.4-4.7 1.4-1.2 1.6-3.1 1.4-2 1.3-1.3.2-.1 2.3-1.4 2-.3 1.9-.3 3.3 1h3l.7-.1 1.4-.2 2.3-.7 1.1-.7.6-.8 1.2-4 .4-1.3.7-1.4 4.3-4.9 3.2-3 7.2-5.2 3.5-2.1 1.8-1.1 16.1-7.2 4.2-4.2 2.2-2.2 3.8-2.6 4.5-1.9 4-3 .8-1.1 1-3.5 1-.2.7-1.7.3-.5 3.1-2.2.4-.2 12.3-6.2 1.8.3 1-1.5 3.5-.6h.7l.9-.5.7-1.3v-.3l.1-3.4.8-.9.4-2.2.4-.6.4-.5 1-.7z"/>
+</svg>
diff --git a/apps/web/public/flags/cz.svg b/apps/web/public/flags/cz.svg
new file mode 100644
index 00000000..7913de38
--- /dev/null
+++ b/apps/web/public/flags/cz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cz" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v240H0z"/>
+ <path fill="#d7141a" d="M0 240h640v240H0z"/>
+ <path fill="#11457e" d="M360 240 0 0v480z"/>
+</svg>
diff --git a/apps/web/public/flags/de.svg b/apps/web/public/flags/de.svg
new file mode 100644
index 00000000..71aa2d2c
--- /dev/null
+++ b/apps/web/public/flags/de.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-de" viewBox="0 0 640 480">
+ <path fill="#fc0" d="M0 320h640v160H0z"/>
+ <path fill="#000001" d="M0 0h640v160H0z"/>
+ <path fill="red" d="M0 160h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/dg.svg b/apps/web/public/flags/dg.svg
new file mode 100644
index 00000000..dfee2bb9
--- /dev/null
+++ b/apps/web/public/flags/dg.svg
@@ -0,0 +1,130 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dg" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000063" fill-rule="evenodd" d="M640 416.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.1 36.3-23.1 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.2 36.3-23.2 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.6-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9zm0-81.3c-7.2 6.7-13.3 22.1-32.4 22.1-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 .1-24.8 23.3-36.2 23.3v41.8c11.4 0 17.1-23.1 36.2-23.1 28.5 0 38.1 32.5 76.2 32.5 19 0 28.5-32.5 47.6-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.4-32.5 28.7 0 38.2 32.5 76.3 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9v-48Zm0-81c-7.2 6.6-13.3 22-32.4 22C569.5 32.5 560 0 531.4 0c-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5C198 32.5 188.6 0 160 0c-19 0-28.6 32.5-47.6 32.5C74.2 32.5 64.7 0 36.2 0 17.2 0 11.4 23.2 0 23.2v41.9C11.4 65 17.1 42 36.2 42c28.5 0 38.1 32.4 76.2 32.4 19 0 28.5-32.4 47.6-32.4 28.6 0 38.1 32.4 76.3 32.4 19 0 28.4-32.4 47.4-32.4 28.7 0 38.2 32.4 76.3 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.1 32.4 76.2 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.2 32.4 76.2 32.4 19 0 25.2-9.2 32.4-15.8z"/>
+ <path fill="#a24300" fill-rule="evenodd" stroke="#fff" stroke-width="2.1" d="m474.8 131.7-3.5 329c0 17.3 15.7 17.3 17.4 0l-3.5-329Z"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m510.7 254-11-11.9-2.6 12.1-4.7-17.5-4.5 8.8-.8-18.6-4.4 8.8-.8-18.6-4.4 8.8L475 204l-4.4 8.8L468 191l-4.5 8.8-2.5-21.9-1.3-11 2.2-4.3 5.8 2.1 9.1 8.7 18.3 17.4-11.3-4.3 18.3 17.4-11.4-4.3 18.3 17.3-11.4-4.2 16.6 14-11.3-4.2 16.5 14-11.3-4.2 12.6 15.2-13.1-7.6 3 14.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M510.7 254 462 162.6m33.1 28.2L469 175.6l-5.4 24.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m502.2 203.8-26.3-15.1-5.3 24.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m509.1 216.8-26.2-15-5.4 24"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m514.3 226.7-24.5-11.9-7 21"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M519.5 236.5 495 224.6l-7 21"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m520.8 247.4-22.3-16.2-1.4 23"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m383 97.9 17.8 6.8-5.2-13.5 15.6 15.3-1.5-11 12.6 18.4-1.5-11 12.6 18.4-1.5-11 16.3 20.8-1.5-11 16.3 20.8-1.4-11 16.2 20.8 8.2 10.4.7 5.5-6.7.6-14-4.3-28.2-8.7 13.3-1.1-28.1-8.7 13.3-1.1-28.1-8.7 13.3-1.2-24.4-6.2 13.3-1.1-24.4-6.2 13.3-1.2-21.5-9.3 17.1 1.3L383.1 98z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m383 97.9 103.7 68.7m-48.9-12.4 34.1 2.6-10.3-26.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m423 144.4 34 2.6-10.3-27"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m408.2 134.6 34 2.6-10.3-27"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m397 127.2 30.5.1-6.7-24.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m386 119.8 30.4.2-6.7-24.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m377.8 109.4 31.1 5.7-13.2-23.9"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M589.8 120.8 575 131.7l16.4 1.8-22.9 5.4 12.2 3.6-24.7 1.8 12.2 3.6-24.7 1.8 12.1 3.7-28.9 3.6 12.2 3.6-28.9 3.6 12.2 3.6-28.9 3.6-14.5 1.8-6-1.8 2.2-5.4 10.7-9 21.3-18.1-4.6 10.8 21.3-18-4.6 10.8 21.3-18-4.6 10.8L553 119l-4.5 10.9 17-16.3-4.5 10.8 19-12.6-8.7 12.7 18.6-3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m589.8 120.8-117 50.6m34.1-32.5-17.4 25.3 32.7 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M523.7 131.7 506.2 157l32.7 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m540.4 124.4-17.5 25.3 32.7 3.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m553 119-13.3 23.5 28.5 5.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m565.5 113.6-13.3 23.5 28.5 5.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m580 111.8-19.4 21.7h30.7"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M587.4 230.3 569 225l6.6 13-17.1-14 2.6 10.7-14.5-17.2 2.7 10.8-14.5-17.3 2.6 10.8-18.5-19.4 2.7 10.8-18.5-19.4 2.7 10.8-18.5-19.4-9.2-9.7-1.3-5.4 6.6-1.2 14.5 3.2 29 6.4-13.2 2.2 29 6.4-13.2 2.2 29 6.4-13.2 2.3 25 4.2-13.2 2.2 25 4.2L569 211l22.3 7.5h-17l13 12z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m587.4 230.3-110.6-60.2m50 8.4-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m542.6 187.1-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m558.4 195.7-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m570.3 202.2-30.3 2.3 9.3 23.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m582.2 208.7-30.3 2.2 9.2 23.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m591.3 218.4-31.5-3.2 15.8 22.8"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m395.2 236.6 9.3-13-14.1 2.1 17.4-9.9-11.1-.5 20-7-11.1-.6 20-7-11.1-.6 23-9.6-11.2-.5 23-9.7-11.1-.5 23-9.6 11.5-4.9 5.6.3-.4 5.3-6.3 10.4-12.6 20.8.8-10.6-12.6 20.8.7-10.7-12.6 20.8.7-10.6-9.6 18.2.7-10.6-9.6 18.2.7-10.6-12.2 15.4 3.7-13.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m395.2 236.6 83-71m-19.1 36.5 7.3-26.4-28.2 4.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m447.2 212.3 7.3-26.4-28.2 4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m435.3 222.4 7.4-26.4-28.2 4.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m426.4 230 4.4-23.8-25.2 1.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m417.5 237.6 4.4-23.8-25.2 1.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m406 242.4 10-23.5-25.6 6.8"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m563 66.2-17.9 12-2.9-12.9-10.5 17.8-2-8.5-8.6 18.2-1.2-8.4-6.7 18.7-3.8-9-6.7 22.7-3.8-9-6.7 22.7-3.9-9-6.7 22.7-3.3 11.4 1.9 4.5 7.2-2.4 12.4-9.2 25-18.4-14.4 4.7 24.9-18.5-14.4 4.8 24.9-18.5-14.4 4.8 25-14.4-17 4L566 83.3l-16.3 4.2 19.7-15.6-17 8.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m556 72.7-25.8 22.2-50 65.2"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m519.3 132.8-28.6 13.5-2.4-20.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m530.2 119.2-29 13.4-2.3-20.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m540.5 105.5-28.7 13.4-2.2-20.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m549.1 95.3-26.8 9.9-3-17"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M559 85.5 530.2 95l-1-16.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m562.8 76.2-26.6 13.6 5.2-20.6"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m466.1 43.8 8 18.2 10.3-9.6-1.7 19.8 6.8-6.4-3.7 19.4 6-6.6-5.5 19 8.7-6-8 22.3 8.6-6-8 22.5 8.7-6-8 22.4-4 11.2-4.4 3-4.8-5.3-5-13.4-10-26.9 9.4 10.5-10.1-27 9.4 10.6-10-27L468 93l-12.5-23.4 12 11.1-14.4-23.9 11.3 11-7.3-22.2 9.6 14.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m468.2 52.4 8.5 30.5 3.2 78"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m463 120.2 16.2 24.3 14.7-16.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m462 103.7 16.5 24.4 14.7-16.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m461.5 87.3 16.4 24.4L492.3 95"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m460.4 74.9 16.8 20.4 13-13"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m458 62 18.7 21 11-13.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m460.3 52.4 14.4 23.5 8.1-19.9"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.9" d="m359 178 23.3-16.2-11.7-6 20.5 3.4-7-9.3 19.8 7.5-7-9.3 19.9 7.4-7-9.2 24 8.1-7-9.3 23.3 12.1-7-9.3 24 8.2 11.7 6 3.5 4.6-4.7 3.3-12.9 1.8-20.7 8.6 3.8-7.4-25.7 3.6 9.3-6.4-26.3 7.6 9.4-6.5-22.2 8.3 9.9-10.4-22.8 12.2 10-10.4-18.8 13 10.5-14.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m366.3 173.6 24.2-10.5 12.9-1.8 10.7-.2 18.5 1.2 16.7.7 33 3.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m447.2 176.9 18.5-11.4-18.8-14.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m426.5 175.2 22.7-12.2-18.7-14.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m411.7 174.8 20.9-12.5-19-13.7m-29.5 29.6 19.3-16.9-15.6-8.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m375.5 179.3 15-16.1-12-4.5m18.4 17.7 19-15.2-15.2-10.4"/>
+ <g fill-rule="evenodd">
+ <path fill="#c00" stroke="#000" stroke-width="1pt" d="m541.5 1173.3-1.7-229.1-61.1-107c-15.3-52.6-7.8-78 17-79.8 24.7-1.6 49.2 13.6 84.8 15.3s28.9-59.4 81.5-57.7 144.3 32.3 222.3 37.4c78.1 5 118.8-27.2 208.8-30.6s113.7 42.4 118.8 42.4 30.6-18.6 56-22c25.5-3.4 34 10.2 34 10.2s-1.7 57.7-13.6 91.6c-11.9 34-54.3 90-56 90s-15.3 249.5-15.3 251.2-675.5-6.8-675.5-11.9z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <g stroke="#000" stroke-width="1pt">
+ <path fill="#fff100" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(-.12934 0 0 .11906 596.6 257.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 594.5 257.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.8 252.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598 247.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.9 242.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.7 236.8)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 591.2 261.7)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.7 231.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 592.5 227.1)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 586.8 224.3)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 581 223.9)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 575 224)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 568.8 225)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 562.7 225.7)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 556 226.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 550.4 228.1)"/>
+ </g>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 369.5 257.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.2 252.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 366 247.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.2 242.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.4 236.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.3 231.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 371.4 227.1)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 377.2 224.3)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 382.9 223.9)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 389 224)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 395.2 225)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 401.4 225.7)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 407.9 226.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 413.6 228.1)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 372.8 261.7)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 398.7 310.9)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 444.5 310.9)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 832.7V673.2s35.4 53.2 88.6 53.2c43.5 0 88.6-70.9 88.6-70.9s41.5 53.2 88.6 53.2c42 0 88.5-68.6 88.5-68.6s43.2 68.6 88.6 68.6c45.5 0 88.6-53.2 88.6-53.2s46.3 70.9 106.3 70.9c53.1 0 70.9-53.2 70.9-53.2v159.5z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 344.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(-.12934 0 0 .11906 619.4 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 413.3 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M584.6 847.5c0-88.6 124.1-159.4 124.1-159.4s124 70.8 124 159.4h-248z" transform="matrix(.12934 0 0 .11906 390.4 255.9)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M1275.6 655.5c-35.4-17.7-166-35.4-376.3-35.4s-350 17.7-385.5 35.4c-35.4 17.7-35.4 53.2 0 70.9s175.3 35.4 385.5 35.4 340.9-17.7 376.3-35.4 35.4-53.2 0-70.9z" transform="matrix(.12788 0 0 .11906 367 278.7)"/>
+ <path fill="gray" d="M527.9 365.2c0 4.2-38.2 4.2-45.9 4.2-8.3 0-45.8 1.2-45.8-4.2 0-4.2 37.8-4.2 45.8-4.2s45.9.8 45.9 4.2"/>
+ <path fill="#c00" d="M440.8 350c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5m87 0c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5"/>
+ <path d="M486.6 348.8c0 1.3-2.1 2.4-4.6 2.4s-4.6-1.1-4.6-2.5 2-2.5 4.6-2.5 4.6 1.2 4.6 2.5z"/>
+ <path fill="#006300" d="M508.6 348.8c0 1.3-1.6 2.4-3.5 2.4s-3.4-1.1-3.4-2.5 1.6-2.5 3.4-2.5 3.5 1.2 3.5 2.5zm-47.2 0c0 1.3-1.5 2.4-3.4 2.4s-3.5-1.1-3.5-2.5 1.5-2.5 3.5-2.5c1.9 0 3.4 1.2 3.4 2.5z"/>
+ <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 300.5)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(.03696 0 0 .05953 385 309.3)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(-.03696 0 0 .05953 579 309.3)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 256.2)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.7 213.7)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 655.5h70.9v53.2h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 683.3h70.9v202.5h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 251.2)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 245.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 240.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 235.5)"/>
+ <path d="M486.9 356.8c0 1-2.1 1.7-4.8 1.7s-4.5-.7-4.5-1.7 2-1.7 4.6-1.7 4.7.8 4.7 1.7M529 361c-.3.7-2.6.8-5.1 0-2.6-.5-4.4-1.4-4.2-2 .3-.8 2.6-.8 5.1-.2 2.6.6 4.4 1.5 4.2 2.2m-17.7-2.8c0 .8-2.3 1.3-5 1.2-2.5-.2-4.6-1-4.5-2 .1-.8 2.4-1.2 5-1s4.7.9 4.5 1.8m-77.5 2.8c.2.7 2.5.8 5 0 2.6-.5 4.5-1.4 4.2-2-.3-.8-2.5-.8-5-.2-2.6.6-4.4 1.5-4.2 2.2m18.5-3.2c.1.8 2.4 1.3 5 1.1s4.7-1 4.5-1.9c0-.7-2.3-1.3-5-1.1-2.5.2-4.6 1-4.5 1.9"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/dj.svg b/apps/web/public/flags/dj.svg
new file mode 100644
index 00000000..9b00a820
--- /dev/null
+++ b/apps/web/public/flags/dj.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dj" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="dj-a">
+ <path fill-opacity=".7" d="M-40 0h682.7v512H-40z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#dj-a)" transform="translate(37.5)scale(.94)">
+ <path fill="#0c0" d="M-40 0h768v512H-40z"/>
+ <path fill="#69f" d="M-40 0h768v256H-40z"/>
+ <path fill="#fffefe" d="m-40 0 382.7 255.7L-40 511z"/>
+ <path fill="red" d="M119.8 292 89 270l-30.7 22.4L69.7 256l-30.6-22.5 37.9-.3 11.7-36.3 12 36.2h37.9l-30.5 22.7 11.7 36.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/dk.svg b/apps/web/public/flags/dk.svg
new file mode 100644
index 00000000..563277f8
--- /dev/null
+++ b/apps/web/public/flags/dk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dk" viewBox="0 0 640 480">
+ <path fill="#c8102e" d="M0 0h640.1v480H0z"/>
+ <path fill="#fff" d="M205.7 0h68.6v480h-68.6z"/>
+ <path fill="#fff" d="M0 205.7h640.1v68.6H0z"/>
+</svg>
diff --git a/apps/web/public/flags/dm.svg b/apps/web/public/flags/dm.svg
new file mode 100644
index 00000000..5aa9cea5
--- /dev/null
+++ b/apps/web/public/flags/dm.svg
@@ -0,0 +1,152 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dm" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="dm-a">
+ <path fill-opacity=".7" d="M-85 0h682.7v512H-85z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#dm-a)" transform="translate(79.7)scale(.94)">
+ <path fill="#108c00" d="M-258.3 0H769.2v512H-258.3z"/>
+ <path fill="#ffd600" d="M-260 178.2H772.6v50.1H-260z"/>
+ <path fill="#ffd600" d="M181 0h48.5v512h-48.4z"/>
+ <path fill="#000001" d="M227.8 0h48.4v512h-48.4z"/>
+ <path fill="#000001" d="M-260 226.6H772.6v50.2H-260z"/>
+ <path fill="#fff" d="M-260 276.8H772.6v50.1H-260z"/>
+ <path fill="#fff" d="M276.2 0h48.5v512h-48.5z"/>
+ <rect width="273.8" height="275" x="-394.6" y="-393.9" fill="#e72910" ry="137.5" transform="scale(-1)"/>
+ <g stroke-width="1pt">
+ <path d="m250.5 137 5.6-16 5.1 15.7s17.1.5 17.1.2-13.5 10.3-13.5 10.3l6.1 17.6c-.2-.5-14.8-10.9-14.8-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17l-13.3-10.1 16.6-.3z"/>
+ <path fill="#ffe700" d="M251.3 137.7 256 124l4.4 13.6s14.9.4 14.9.2-11.7 9-11.7 9l5.2 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 5-14.8 5-14.8l-11.6-8.8 14.4-.2z"/>
+ <path fill="#108c00" d="m253.3 140 2.8-8 2.6 7.9s8.5.2 8.5 0-6.7 5.2-6.7 5.2l3 8.8c-.1-.3-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m356.9 211.8 5.6-16 5 15.7s17.2.6 17.2.3-13.5 10.3-13.5 10.3l6 17.6c-.2-.5-14.7-10.9-14.7-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17L340.3 212l16.6-.3z"/>
+ <path fill="#ffe700" d="m357.6 212.6 4.9-13.9 4.4 13.7s14.8.4 14.8.2-11.7 9-11.7 9l5.3 15.1c-.2-.4-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
+ <path fill="#108c00" d="m359.7 214.9 2.8-8 2.5 7.8 8.6.2-6.8 5.1s3.2 9 3 8.8c0-.3-7.3-5.4-7.3-5.4l-7.3 5.1 2.8-8.5-6.6-5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m325.9 330.6 5.6-16 5 15.8s17.2.5 17.2.3-13.5 10.3-13.5 10.3l6 17.5c-.2-.5-14.7-10.8-14.7-10.8S316.7 358 316.9 358s5.7-17 5.7-17l-13.3-10z"/>
+ <path fill="#ffe700" d="m326.6 331.4 4.9-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
+ <path fill="#108c00" d="m328.7 333.7 2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m177.2 330.6 5.6-16 5 15.8s17.1.5 17.1.3-13.5 10.3-13.5 10.3l6.2 17.5c-.3-.5-14.8-10.8-14.8-10.8S168 358 168.2 358s5.7-17 5.7-17l-13.3-10z"/>
+ <path fill="#ffe700" d="m178 331.4 4.8-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
+ <path fill="#108c00" d="m180 333.7 2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m150 208.7 5.6-16 5.1 15.8s17.1.5 17.1.2-13.5 10.4-13.5 10.4l6.1 17.5c-.3-.5-14.8-10.8-14.8-10.8S140.8 236 141.1 236s5.6-17 5.6-17l-13.3-10z"/>
+ <path fill="#ffe700" d="m150.8 209.5 4.8-13.8 4.5 13.6s14.7.5 14.7.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.5 9 4.8-14.8 4.8-14.8l-11.5-8.7z"/>
+ <path fill="#108c00" d="m152.8 211.8 2.8-8 2.6 7.9 8.5.1-6.7 5.2 3 8.7c-.1-.2-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m324.6 174.1-5.6 16-5-15.7s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17l13.3 10z"/>
+ <path fill="#ffe700" d="M323.9 173.3c0 .3-5 13.9-5 13.9l-4.3-13.6s-14.8-.5-14.8-.3 11.7-8.9 11.7-8.9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7z"/>
+ <path fill="#108c00" d="m321.8 171-2.8 8-2.5-7.8s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.5-2.9 8.5l6.7 5-8.3.2z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m367.3 290.3-5.6 16-5-15.8s-17.2-.5-17.2-.2S353 280 353 280l-6-17.6c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L384 290z"/>
+ <path fill="#ffe700" d="m366.6 289.5-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8z"/>
+ <path fill="#108c00" d="m364.5 287.2-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.6-2.9 8.6l6.7 5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m261.4 375.3-5.6 16-5-15.8s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L278 375z"/>
+ <path fill="#ffe700" d="m260.7 374.4-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.3.3z"/>
+ <path fill="#108c00" d="m258.6 372.2-2.8 8-2.5-7.9s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m162 290.3-5.7 16-5-15.8s-17.2-.5-17.2-.2 13.5-10.3 13.5-10.3l-6-17.6c.2.5 14.7 10.8 14.7 10.8L171 263l-5.7 17 13.3 10.1-16.6.3z"/>
+ <path fill="#ffe700" d="m161.2 289.5-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8z"/>
+ <path fill="#108c00" d="m159.1 287.2-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.6 6.6 5z"/>
+ </g>
+ <g stroke-width="1pt">
+ <path d="m198.7 175.8-5.6 16-5.2-15.7s-17-.5-17-.3 13.5-10.3 13.5-10.3l-6.1-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.6-10.3-5.6 17-5.6 17l13.2 10z"/>
+ <path fill="#ffe700" d="m197.9 175-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.8 14.8-4.8 14.8l11.4 8.7-14.3.3z"/>
+ <path fill="#108c00" d="m195.8 172.8-2.8 8-2.5-7.9s-8.5-.3-8.5-.1 6.7-5.2 6.7-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5z"/>
+ </g>
+ <g transform="translate(-250.6 359.4)scale(1.04)">
+ <g fill="#009200" stroke="#000" stroke-width="2.5" transform="matrix(.16 -.02 0 .18 429.8 -215.6)">
+ <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.4 0 0 1 -534.3 263.7)"/>
+ <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.5 0 0 1 -547.2 267)"/>
+ <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.2 0 0 1.1 -365 214.1)"/>
+ </g>
+ <g stroke="#000" transform="translate(72.9 -9.8)">
+ <path fill="#a95600" stroke-width=".5" d="M388.5-53c6-.3 3.4-3.3 6.4-5 3-1.6 7.3-.6 8.6 1.4s.3 4 2 4 47-2.5 48.6-.9 2 5 .3 6.3c-1.6 1.4-58.9 3-60.9 1.6s-5-7-5-7.4z"/>
+ <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 340.4 -81.7)"/>
+ <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 344.4 -81.6)"/>
+ <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 348.7 -81.8)"/>
+ <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 352.7 -81.8)"/>
+ <ellipse cx="478.4" cy="-41.1" fill="#a95600" stroke-width=".4" rx="3.5" ry="3.4" transform="matrix(1.1 .02 -.02 1.15 -75.6 4.7)"/>
+ </g>
+ <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(-5.8 688.4 -625.2)">
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
+ </g>
+ <path fill="#804bff" stroke="#000" stroke-width=".5" d="M482.6-141s-11.7 10-10.1 36.9c1.8 27 26.5 39.5 26.5 39.5s6.2-7.7 5.2-29.5c-2-31.8-13.8-45.7-13.8-45.7l-7.8-1.3z"/>
+ <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(4.5 181 769.9)">
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
+ <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
+ </g>
+ <ellipse cx="624.4" cy="606.1" fill="#c90000" stroke="#000" stroke-width="1pt" rx="58.3" ry="186.5" transform="matrix(.16 -.06 .06 .15 369.6 -145)"/>
+ <g fill="#009200" stroke="#000" transform="rotate(1 242.4 -1957.8)">
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 445 -230.5)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 457.2 -236)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 452 -236)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449.5 -233.5)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449 -238)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 447 -238.8)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 448 -241.6)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 432.8 -243.5)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 446 -243.5)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 444.2 -247)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 436.1 -243.2)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 437.4 -243.9)"/>
+ <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 439 -247)"/>
+ </g>
+ <g fill="#009200" stroke="#000" transform="matrix(.18 0 0 .2 421 -216.8)">
+ <ellipse cx="528.7" cy="564.5" stroke-width="2.5" rx="67.4" ry="205.6" transform="matrix(.98 -.3 .36 .87 -245.8 324.4)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="2.5" rx="13.3" ry="40.8" transform="rotate(-23.4 630.5 660.9)"/>
+ <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -352.3 -10)"/>
+ <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -348.4 44)"/>
+ <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.87 -.5 .98 1.16 -362 105.8)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="1.4" rx="13.3" ry="40.8" transform="matrix(1.8 -.4 .7 1.64 -915.6 -221)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.23 .54 1.35 -739.5 -91.8)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.2 .5 1.36 -750.6 -91.8)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.3 -.2 .47 1 -531 47.6)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -517.9 12.2)"/>
+ <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(1.03 -.5 .46 1.18 12.8 -14.5)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -519.5 -34.4)"/>
+ <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.1 .38 1.04 -534 -40.1)"/>
+ <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 39.5 143.3)"/>
+ <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 51.1 125.8)"/>
+ <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.94 -.64 .64 1.1 -40.2 -10.7)"/>
+ <path stroke-width="2.7" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.52 .46 .88 68.6 71.2)"/>
+ </g>
+ <g fill="#804bff" stroke="#000" stroke-width="2.5">
+ <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 458 -214.3)"/>
+ <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 456.6 -220.2)"/>
+ <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 454.8 -225.8)"/>
+ <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 450.9 -232.2)"/>
+ </g>
+ <g transform="rotate(1 -589.6 681.6)">
+ <path fill="#804bff" stroke="#000" stroke-width="2.5" d="M211.2 247.3c21.7-12 56.6-9.8 79.7 11.2 19.4 17 45.3 75.2 70.3 92.8a58 58 0 0 1-42.2-15.2c-28.8 15.5-38.1 16.7-64 15.7-35.8-1.4-62.4-17.7-68-40.6-6.3-21.8 4.8-52.5 24.2-63.9z" transform="matrix(.2 -.04 .05 .18 407.8 -213.6)"/>
+ <ellipse cx="287.2" cy="323" fill="red" stroke="#000" stroke-width="2.5" rx="14.2" ry="15" transform="matrix(.25 0 0 .13 401.8 -215.2)"/>
+ <ellipse cx="204.6" cy="348.3" fill="#ff0" stroke="#000" stroke-width="2.5" rx="23.3" ry="15.9" transform="matrix(.2 -.08 .07 .17 398.7 -208)"/>
+ <circle cx="283.9" cy="333.9" r="5.8" transform="matrix(.2 0 0 .2 411.3 -233.7)"/>
+ <path fill="#ff0" stroke="#000" stroke-width="6.6" d="M516.8 260.3c4.4 18-6.7 43-33.1 52.6-26.8 13.2-46.1 41.8-55.7 88-47.2-103.2-23-148.3 20.6-160.3 37.4-14.4 60.4-13.4 68.2 19.7z" transform="matrix(.1 0 0 .08 417.9 -191.5)"/>
+ <circle cx="199" cy="362.4" r="4.7" transform="matrix(.2 0 0 .2 418.7 -235)"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/do.svg b/apps/web/public/flags/do.svg
new file mode 100644
index 00000000..6de2b268
--- /dev/null
+++ b/apps/web/public/flags/do.svg
@@ -0,0 +1,121 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-do" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0Z"/>
+ <path fill="#002d62" d="M0 0h272v192H0Zm368 288h272v192H368Z"/>
+ <path fill="#ce1126" d="M0 288h272v192H0ZM368 0h272v192H368Z"/>
+ <path fill="#201b18" d="M307.4 196.6a35 35 0 0 0-19 4.9c-2.6 1.6-3.2 2.1-1.8 4.7l-3.3 1.1a38 38 0 0 0-6 2.7c-1.2.7-1.6 1.2-2.5 2.1l5.3-.4-.7 1.2q-1.3 1.8-2.3 3.7 2.1-1.5 4.6-2.8c3.8-2 10.7-2 13.5-5.4.7-.9.3-1.4-.3-2.8 2-.6 2.9-1.1 5.4-1.7 6.1-1.4 10.3.3 13.3-.5q1.6-.2 1.9-1.7l-.5-3h10c0 1.7-1.7 4 1.4 4.7 2.8.8 8.4-.8 13.3.5l5.4 1.8-.5 1.3q-.4.8.2 1.4.8 1 2 1.6a22 22 0 0 0 5.6 2c5.7 1.3 6.2 1.7 10.5 4.6-.3-.9-2.3-3.9-3-5l5.3.5c-1-1.4-3.7-2.9-5.3-3.5l-6.5-2.4q1-1.5.5-3a24 24 0 0 0-7.7-4.3l-7-1.6-6.8-.7c-.3-.3.6-2-.8-3.3q-1.3-.9-3.3-1c-5-.5-11.6-.3-16.6 0q-2.2 0-3.3 1c-1 1-1.1 1.5-1 3.3"/>
+ <g fill="#002d62">
+ <path d="M308.7 200.1c.8-.6.9-.8 2-1.2 2.6-.9 6.6-.8 9.3-.8q3.3 0 6.5.2c3.2.2 3.4.5 4.9 1.7q.5-2.1.6-4.5c.1-1.8-1-2.3-2.5-2.6-2.6-.6-7-.5-10-.5a63 63 0 0 0-9.7.6c-1.2.4-2.2 1.4-2 3 0 .9.6 3.6 1 4.1z"/>
+ <path d="M289.4 208.7c.4-.4.1-.8 2.2-2a35 35 0 0 1 9.3-3.4q4-.7 8-.3 2 .3 4 .1s1.3-.3 1.7-.6c.4-.4.4-1.4.4-1.4-.9-.7-3.4 1.8-5.6 1-.7-.2-1-1.4-1.2-2.3l-.8-2.7a35 35 0 0 0-15 2.8c-1.8.8-4.6 2.2-5.7 3.3-1 1 0 2.4.6 3.1.6.9 1.6 2 2 2.4zm35.6-7.6c-.2 1.4.8 1.8 2.1 2 2.7.4 6.7-.8 12 .2a35 35 0 0 1 6.4 2c.8.4 3.6 1.6 4.1 2.2l1 1.2c.3-.1 1.8-2 2.1-2.4.7-.7 1.5-2 .6-3.1a25 25 0 0 0-5.7-3.3 39 39 0 0 0-7.8-2.1c-2.5-.4-7.6-.8-7.6-.8s-.3 4.7-1.6 5.1c-2.5.8-3.8-1.4-5.6-1"/>
+ <path d="M345 207c-.2.6-.5.7.9 1.8 3 2.6 8.4 2.7 11.6 4.1 1.7.8 2.6 1.4 4.1 2.3-.1-.5-2-3.2-2.5-4l4.9.2-.2-.2c-2.2-1.9-7.9-3.7-10.7-4.6l-2.5 2.8q-.4.6-1.3.4-1.2-.6-2-1.5c-.6-.5-1.6-1.3-2.3-1.4zm-20-6.4c1.7.1 1.9.4 3 1l1.8.2c.9 0 1-.2 1.2-.9.3-1-1.3-1.6-2-1.7l-3.5-.6zm-10 0-.4-2c-1 0-6 .8-5.6 2.3q.1.9 1 1c2.2.1 2.6-1.2 5-1.3m-25.2 8.4c.7 1.3 2.6-1 3.7-1.8.6-.5.7-.4 1.4-.7l-.4-.7-2.7 1.3c-.8.5-1.8 1-2 2z"/>
+ <path d="M345.1 206.5q.4 0 .8.3c1.6.9 3.5 3.3 4.3 2.4.4-.5-1.3-1.7-1.8-2l-2.8-1.3zm-50.2.5c.2.7.5.8-.8 1.9-3.2 2.5-8.4 2.7-11.7 4.1-1.7.7-2.6 1.3-4 2.2 0-.4 2-3.2 2.5-4l-5 .3.3-.2c2.2-2 7.8-3.7 10.6-4.7l.9 1 1.6 1.9q.4.5 1.3.3c.9-.2 1.6-1 2-1.4.6-.5 1.6-1.4 2.3-1.4"/>
+ </g>
+ <path fill="#eac102" d="M295.7 199.8q-.7 0-1.3.3c-.1 0-.5.2-.2.3l.3.6.3.9.5 1.4q0 .3.2.3l.8-.3q.5-.1.8-.7l.2-.5v-.4l-.2-.6-.4-.8q-.3-.3-.7-.4zm-.2.3q.4 0 .6.5l.4.7.2 1.3q-.1.3-.5.5-.3 0-.4-.3l-.2-.6-.4-1-.2-.8q0-.3.4-.3zm1.7-.9.3.3.2.6.1.5.2.7.2.6v.6s0 .2.1 0h.5q.2 0 .3-.2l-.2-.3-.2-.8-.2-.5-.1-.4-.3-.9v-.3q0-.2-.3 0zm3-.8q-.5 0-.8.3l-.3.9v.8l.6 1.2.7.4h.6q.5-.2.7-.7l.1-.8v-.7l-.4-.7-.5-.5zm0 .2q.3 0 .5.6l.4 1.2.1.5v.7q-.3.3-.7.1l-.4-.5-.2-.8-.1-.6q-.2-.4 0-1zm2.3-.5-.3.5.1.7.4.4.9.5q.4 0 .4.4v.5q0 .3-.4.2l-.4-.2-.4-.6-.2.1v.6l.4.2.5.2.6-.2q.3 0 .4-.4v-.7a1 1 0 0 0-.6-.8l-.6-.3-.6-.5q0-.4.2-.5h.6l.3.5q.1.2.1 0v-.6l-.6-.2-.6.1zm11.2-4.4-.9.2-.4.1.2.4v1.5l.1.8v.6q-.2.2.2.1h.6v-.3l-.1-.6v-.6l.6-.1q.7-.2.9-.8a1 1 0 0 0-.4-1zm0 .3q.4 0 .4.5v.5q0 .5-.5.6-.2 0-.3-.2v-.6q-.2-.4 0-.7h.3zm2.6-.4q-.4 0-.3.3l-.2.7-.2 1-.3 1.2v.3h.5v-.8s0-.2.1-.1h.8v.6q0 .2.2.3h.7q.2-.2-.1-.4l-.2-.7-.3-.9-.1-.5-.3-1zm-.2.8.4 1.3q.1.2-.2.2-.3.1-.5-.1l.1-.5.2-.7zm3-1h-1.3v.5l-.1.4.3-.3q.1-.2.4-.2h.3v2.9l-.1.2h.9q.2 0 0-.1v-3q0-.2.3 0h.2l.2.4h.2l-.1-.5q0-.2-.2-.3zm2.8 0h-.8s-.2 0-.1.1q.2.2.1.5v2.5l-.2.4h1l-.1-.3v-1.2q.3 0 .3.3l.2.5q0 .3.3.5.3 0 .5.3l.3.1-.2-.3-.3-.8-.2-.5q0-.2.2-.2l.5-.4v-.6l-.2-.5-.4-.3-.6-.1zm.3.2q.3 0 .4.3l.2.4v.4q-.2.3-.5.4h-.5v-1.3q0-.2.4-.2m2.2.4v1.2l-.1 1.4-.2.4s0 .1 0 0l.4.1h.5q.1 0 0-.2v-2.7l.2-.4v-.2h-1zm2.5-.2-.3.9-.1.5-.3.8q-.1.7-.4 1-.2.2 0 .2h.5q.2 0 0 0v-.6q0-.3.3-.2h.6l.1.6q-.1.4 0 .4h.7s.2 0 0 0l-.1-1-.2-1-.1-.9-.1-.5s0-.2-.2-.1h-.4zm0 .8.2.6v.8c.2.3-.2.1-.3.1q-.4 0-.3-.2l.1-.4.2-.5zm6.5 3.5.1.4v3.2h1.9v-.8q-.3.5-.7.5h-.5v-2.9l.1-.4zm2.3 3.6h1l-.2-.4v-2.9l.2-.3h-1c0 .2.2 0 .2.3v2.9zm1.5-3.7.1.4v1.2l-.1 1.4-.1.5s-.2.1 0 .1l1.1.2q.5 0 .8-.2.6-.4.4-1 0-.2-.3-.5l-.4-.3.7-.5q0-.5-.2-.8l-.2-.2-.5-.1zm.8.4.6.1q.3.4 0 1l-.2.1h-.5v-.8zm-.2 1.5q.5 0 .8.3l.1.7q0 .6-.6.6-.3 0-.3-.3zm1.8 2 .3.2.9.2.8.1.2-.5q0-.3-.2-.1a1 1 0 0 1-.9.1q-.3 0-.3-.4l.2-1.2.4.1q.3 0 .4.4l.1-.3v-.7c-.1 0-.2.4-.4.2q-.4 0-.4-.2l.1-.8q.5-.1.9.3l.3.3v-.7l-.5-.2-1.3-.3c-.3 0 0 .2 0 .3l-.2 1.7-.2 1.2zm3-2.8v.6l-.3 1.6-.2 1c0 .1-.4.2-.1.3l.7.2v-.3l.2-.7.1-.4q.2.1.2.4 0 .6.3 1.1l.6.5-.2-.5v-1.4l.5-.2q.3-.5.2-1l-.6-.8-1.2-.4zm.8.4.6.4q.1.6-.1 1.1-.3.3-.6.1-.4 0-.3-.2l.2-1zm1.5 1.2.5-.2s.3-.1.4 0v.4l-.1.7-.4 1.6-.3.4q0 .2.3.2l.6.2v-.4l.2-1.2.4-1.6q.3 0 .5.3l.2.5v-.4l.1-.4-.8-.3-.6-.3-.7-.2zv.1m3.4.7q-.2 0-.3.4 0 .3-.3.5l-.9 1.4-.4.4q-.1.2.2.3l.4.1q-.2-.2 0-.5 0-.3.3-.3l.6.4v.5q-.2.1-.2.4l.5.3s.3.2.2 0v-.8l.1-.5v-.8l.2-1.2v-.4zm-.3.7s.1.1 0 .2v1.3q-.1.1-.4 0t-.2-.4l.4-.6zm2.2.5-.1.6-.4.6-.4.7-.5 1h-.2l.5.5.6.6q.6.4 1.1.1l.5-.5.3-.6v-1q0-.7-.5-1.2l-.6-.6zm.6.9q.5.3.4.8 0 .8-.5 1.4-.3.5-.7.6t-.6-.3l.2-.6.8-1.4q0-.3.3-.5z"/>
+ <path fill="#006300" d="m308.8 279.2 2.5 1 1.8 3.4c.7.5.6.4 1.3.6l-4.3 1.8c-1.2.4-.7 1.5-.1 1.7s2-.3 2.4-.5q3-1.4 6-3.3c.3-.2 1.7-1.1 2-1l7.6 4.2c.6.3 1.7 1 2.3.6q.6-.4.5-1-.2-.7-.8-.7l-4.1-1.8.9-.3c.3-.2-.2-.7.2-.6l1.9-3.1 2.3-.9c0-2.1-17.8-3.5-22.4-.1"/>
+ <path fill="#ff0" d="M310 286.5c-.6.2-.5 1.4.8 1 .9-.3.2-1.3-.8-1m19 0q-.5.6.2 1 .6.2 1-.2c.5-.4.1-.6-.2-.8s-.1-.2-.4 0z"/>
+ <path fill="#006300" stroke="olive" stroke-width=".2" d="M345.8 216v.3c1.7 3.2 1 1.7 2.4 5.9l-.8-1.1-2-3-.4-.6c-.2.3.4 2 .6 2.5.5 2 2.1 4.4 3.3 6.3l-.9-.7c-1-.8-.7-.6-1.3-1.7l-1.4-3-.8-2.2-.2.2v.9l.6 3.6c-.8-.3-.6-.4-1.3-1-.2 0-.4-.6-.6-.6l-.7-.8c-.1.4 1 2.4 1.2 2.6.4.6 1.8 1.6 2 2a14 14 0 0 0 2.1 3.7l.9 1.1-1.9-1.8-3.4-3c0 .4.6.8.9 1l2.3 2.6 2.2 2.8 1.5 2.5-.8-1.1-2.3-2.8q-1.2-1.3-2.6-2.4l-2-1.4c0 .3 1.9 2.7 3.2 3.4l1.2 1.3 1.2 1.3 1.9 3 .9 1.5c-.7-.2-4-4-4.7-4.7s-1-1-1.8-1.5c0 .4 2.3 3 2.8 3.5l.5.6 1 1.1c.6.8 1.8 2.2 2.2 3l.7 1.4-1.5-2-.9-1c-.7-.8-1.9-2.2-2.8-2.8l-2.2-1.3c-.1.2.4.6.6.8l.9.8a22 22 0 0 1 3.1 3.4q.9.8 1.4 2l-.7-.7-.7-.7-1.6-1.2-3.6-1.8c0 .3 1.3 1 1.6 1.2.7.5 2 1.2 2.5 1.9l.7.7q.8.7 1.3 1.6l1.2 1.7 1 2 1.3 4.5-1.7-4.6c-.4-1-1.4-3.8-2.8-3.3q-.7.4-1 1.2c-.3.7-.8-.2-2 2a18 18 0 0 0-1.2 4.3v.7c.3-.1.5-.9.6-1.2.5-1.4 1-2.3 1.9-3.6l-1.1 4.9q.5-.3.6-1l1.4-3.7c1.6 1.1 2 7.2 2.3 9.3l-1.1-3-1.7-2.8c-1 .1-1 1.4-1.2 2.1q-.4-.8-1.3-1c-.5 0-.8.8-.9 1.4v2.2l.4 1.6.2.2.3-4.1c.6.3 1.8 3 1.6 4-.6 4-1 5.3-3.1 8.6l-1.2 1.7-.6.8-.7.8c1.1-2 1.6-2.7 2.4-4.9a24 24 0 0 0 1.2-5v-.9q-.4.1-.4.7c-1.8 5.7-2.1 6-5.1 11l.5-3.3q-.2 0-.3.6l-.2.6a18 18 0 0 1-1.6 3.6l.4-1.1.7-3.4v-.7c-.3 0-.4.6-.5 1l-1.4 3.3v-.3q.2-1.2.1-2.5v-.3q-.4.4-.5 1l-.3 1c-.7 1.9-1.5 3.1-2.5 5-.6-.1-.2 0 0 0l5.7 1.1c2.8-.1 4.6-.3 7.4 0 .4 0 2.1.3 2.4 0l-2.5-.9-2.7-.6 7.5-.2-.6-.4c-1.3-.5-4.6-.7-6-.8 2.5-.2 4.4-.4 6.8-.4.7-.2 2.9.5 2-.5-1-.6-3.8-.7-4.7-.6l4.4-.2c.7-.2 5.3.8 3.7-.2-1.3-.7-4-1.2-5.4-1.4q1.1-.8 2.3-1.3l5.3-1.7c2-.3 3.5-1.3.9-.9l-5 .8 1.3-.7q2-.8 4-1.3.3 0 .3-.2l-.2-.1h-.8a65 65 0 0 0 7-2q.5 0 .9-.2l-.2-.1-6.4.8-2 .3 5-2c.4 0 1.6-.2 1.8-.5q-.4-.2-1.1 0l-4.7 1.2-1.8.5c5.6-2.1 3.4-1.5 8.6-2.5q1 0 1.1-.4l-3-.2q-1.6 0-2.7.3l2.2-1.9c.6-.5.3-.7 1.4-.7h2c-.8-.9-1-.5-1.8-.9l1-1 .5-1q.2-.1 0-.2h-.3l-2.3 2c-.4.2-.3.2-.9.2l-3 .6 3-2.1 1.7-1c.5-.2 1.6-.6 1.7-.8l-3.6.9-3 1.5a46 46 0 0 1 5.8-5.2c.2-.1.8-.4.9-.7h-.3c-1 .2-3.2 1.7-4 2.1l-3.8 2.8 2.7-2.6.5-.5 1.1-1q1.2-.8 2.2-2l1.1-.9c.3-.2 1-.7 1-1l-4.4 2.7-2.1 1.5-2.1 1.6q1.3-2.2 2.9-4.1a46 46 0 0 1 4.7-4.4l1.2-1v-.2c-.4 0-1.6.9-1.9 1.1a39 39 0 0 0-4.7 4l-.7.8-2 2.4-2.4 3.6c.5-2.2 2-4 3.2-5.2l2.7-3 .4-.5a10 10 0 0 0 3-5.8l-1.3 1.8-.7.7-5.4 6.3c.2-.9 1.3-2.8 1.8-3.5a63 63 0 0 1 5.6-7.5l.3-.3q.1-.4.8-.9l1-.8c-.5-.5-2.4.6-2.7.9-2.4 1.6-4.1 3.9-5.9 6.1a26 26 0 0 1 2.4-5.7q.7-1.3 1.6-2.5l1.6-2.4q-.6.2-1 .8l-.5.4c-2 2.3-3.3 4.8-4.8 7.5.1-1.3 1.3-3.7 2-4.8l2.8-4.2c-.5-.1-2 1.6-2.3 2q-1 1.2-1.8 2.6a31 31 0 0 0-2.7 5.5l-.2.4c.1-1.8 2-6.1 2.7-7.6l1.6-2.2.5-.7 1.1-1.4 1.1-1.5c-.7-.2-3.2 2.6-3.7 3.2l-1.7 2.5c.3-1.4 1.3-3.3 2.1-4.5l2.1-2.7.7-1c-.8 0-4 3.7-4.7 4.5l-.7 1.1-1.1 1.7-.2.3-.2.3a37 37 0 0 1 1.4-5.3l2-4.5c-.5 0-1.6 1.4-1.9 1.8l-1.2 2.5c.1-1.2 1.8-5 2.4-6.5q-.4.2-.8 1l-2.3 3.8c.1-1.3 1-2.6 1.5-3.7-1 .4-2.8 4.2-3.2 5.3l-.5 1.6-.2.6q.1-4.2 1-8.5-.4 0-.5.6l-.3.7-.6 1.6-.8 3.4c-1.2-1.7-1.5-4.8-3.9-8.4-.7-1.1-1-1.2-2-2zm1.3 33.8c1 2.8 1.3 3.7 2 6.6l-.2.3-.4 1.2-.8-2.5c-.2-1 .2-2.8-.2-3.1-.2.5-.2.5-.2 1.4l-.5-1c-.5-1.6-.6-1.1-.2-2q0-.5.5-.9z"/>
+ <g fill="#008f4c">
+ <path d="M354.4 245.1c.4-3.8 5-12.8 6.5-13 .2 0-1.6 2.5-2.8 5a57 57 0 0 0-3 7.3l-.7 2.6zm10.2-2.3s-.8.9-1.9 1.8a44 44 0 0 0-9.6 13.8c-2 5-1.5 3.7-.9 1.3a35 35 0 0 1 9.7-15.1c1.4-1.2 2.8-2.1 2.7-1.8m-11.8-8.6c0-3.4.4-4.6 2.4-8.8 1.2-2.7 1.7-3.5 1.9-3.3l-.3 1a50 50 0 0 0-3.4 11.7l-.4 1.7zm-5.6 19.4a20 20 0 0 1-1.4 8.8c-.7 1.8-3.5 6-4.2 6.4-.3 0-.2 0 .5-1a22 22 0 0 0 5-13.4q-.2-4 .1-.9z"/>
+ <path d="M355.8 250.3c.4 1.2.5 4 0 5.5a11 11 0 0 1-7.2 7.5l-1.3.3 1.2-.7a12 12 0 0 0 7.3-11q0-1.4-.2-1.6v-.8z"/>
+ <path d="m365.7 257.9-4.4.8-9.3 1.6-.1-.3a169 169 0 0 1 13.8-2.1m-18.5-39.7c1.5 1.8 1.8 2.6 2.6 5.7.5 2 .6 2.6.5 2.6l-.4-.7a34 34 0 0 0-3.2-7.7l-.6-1zm-1.6 2.2c.6 2.2 1.1 3 3.3 5.3q2 2 1.9 1.7 0-.2-.4-.6a34 34 0 0 1-4.6-6.9l-.6-1s0 .7.4 1.5m13.4 7c-2.4 2.2-6.3 9.2-5.7 10.3.1.1 1.1-1.5 2.2-3.6a48 48 0 0 1 3.4-5.8l1.4-2zm1 1.8c-2.6 2.4-6.9 10.2-6.3 11.4.1.2 1.2-1.6 2.4-4a54 54 0 0 1 3.9-6.4l1.5-2.1zm-15.2-7.1c.4 2.3.8 3 2.6 5.6q1.8 2.4 1.7 2l-.3-.6a34 34 0 0 1-3.7-7.5l-.5-1.1z"/>
+ <path d="m348.4 226.7 2.6.7q-.1-.3-.7-.4c-1.7-.5-6.4-2.6-6.5-3.4l-1-1.5s4 4 5.6 4.6m16.2 8.3c-3.6 2.5-10 11.2-9.5 12.8 0 .3 1.7-1.7 3.6-4.4a66 66 0 0 1 5.7-7.3l2.1-2.3s-1 .5-1.9 1.2m-.5 5.3c-1.6 3.2-7.7 9.3-9 9a15 15 0 0 1 3.1-3.3 52 52 0 0 0 5-5.4l1.6-2q0 .5-.7 1.7m-21.4 22c-.6 3.1-4.5 9.8-5.7 9.9-.1 0 .7-1.7 2-3.7a47 47 0 0 0 3-5.8l1-2zm10-18.9q-1.2-3.2-5-6.6c-2.4-2.2-3.2-2.5-1-.5a29 29 0 0 1 6.3 8.8s0-.8-.3-1.7m1.8 25.5c-2.8-.8-10-.7-10.5.1 0 .2 1.6.2 3.8.1a47 47 0 0 1 8 .3zm-3 1.2c-2.9-.7-10-.3-10.5.6h3.7a47 47 0 0 1 8.2-.1zm-3.2 1.6c-2.8-.7-10 0-10.5.8l3.8-.2a48 48 0 0 1 8.1-.2z"/>
+ <path d="M346.4 273.5c-2.3-1-8.6-1-9-.3-.2.2 1.3.3 3.2.2l5.2.3 1.8.3zm11.2-8.9c-6 1.7-13 2.7-13.4 4.1 0 .2 2.6-.2 5.2-1.2a56 56 0 0 1 7.5-2.4c1.5-.3 2.7-.6 2.7-.8 0 0-1 .4-2 .3m7.6-3.7-5.2 1-8 1.5c-2.4.5-2.9.6-3 .3l-.2-.3a198 198 0 0 1 16.4-2.5m-1.8-1.5-4.3 1.2-9 2.5-.2-.2a169 169 0 0 1 13.5-3.5"/>
+ <path d="M362 252.4c-4.1 1.7-12.2 8.8-12 10.5 0 .3 2-1.3 4.4-3.6a64 64 0 0 1 7-5.8l2.6-1.8z"/>
+ <path d="M365 254.4c-4 .3-13.3 4.4-13.5 6 0 .3 2.1-.5 4.9-2a56 56 0 0 1 7.8-3.2l2.8-.8z"/>
+ <path d="M364.8 254.8c-10.3 8.7-16.1 13-18.2 12-.3 0 3.8-2.4 7.3-4.7a78 78 0 0 0 9.4-7l3-2.7zm-11 2.8c2-3.4 3-4.4 7.5-7.2 2.9-1.8 3.9-2.4 4-2l-1 .8a56 56 0 0 0-11.8 10.7zm1.1-9.8c.4-3.8 6.8-16.5 8.2-16.7.2 0-1.5 2.5-2.7 5a57 57 0 0 0-3 7.3l-2.8 7zm-2.7-14.6c-1.1-2.6-1.2-3.6-.4-7.2q.7-3.3 1-3v.9a29 29 0 0 0 .2 11s-.5-.8-.8-1.7m2 13.9a15 15 0 0 0-4.5-6c-2.2-2-2.9-2.3-.9-.4a26 26 0 0 1 4.9 6.6l.7 1.3zm-10 2.9c2-7.4 3.7-6.1 3.7-6.1 4.4 4.2 2.2 18.7 2.2 18.7 0-29.6-5.9-12.6-5.9-12.6"/>
+ <path d="M345.9 249.5c2-7.4 2.5-7 2.5-7 3.7.7 3.5 17 3.5 17-1.6-28-6-10-6-10m-2 5.7c0-5.3 1-4.5 1-4.5 3 2.7 4 13 4 13-4.6-20.8-5-8.5-5-8.5m9-15.5c-.8-2.9-3.6-5.8-6.4-9.5-3.5-3.2-4.6-3.7-1.5-.7 2 1.2 6 7 7.2 10.5q1 2 1.2 2c.2 0 0-1.1-.4-2.3z"/>
+ <path d="M352.7 237.2a18 18 0 0 0-5.2-7.4l-1.6-1.5A60 60 0 0 1 353 239c.1 0 0-.9-.3-1.8m-15 29.3c-.1 1.5-1.8 5.1-2.4 5.2l.8-2 1.7-4v.8zm-1.4.9c-.2 1.6-1.9 5.1-2.5 5.2l.8-1.9a24 24 0 0 0 1.8-4.1v.8zm2.2.1c-.2 1.6-1.9 5.2-2.5 5.2l.9-1.9a24 24 0 0 0 1.7-4.1z"/>
+ </g>
+ <path fill="#00873f" d="M284 227c0 .8.2 1 .6 1.5V227z"/>
+ <g fill="none" stroke="#006300" stroke-width=".6" transform="translate(-106.1 -20.4)scale(.85227)">
+ <path d="m455.2 304-.9-.8m1.8-4.6-.8-1m-1.7 13.5c-.3-2.1-1.5-2.8-1.5-2.8m11.3 30c-5.4-6-7.1-16.7-7.1-16.7 1.7-4.6 4-5.6 4-5.6m-4 5.5c-1.8-7-1.3-14.2-1.3-14.2a71 71 0 0 1 3.4-16.8m-3.5 19.3c1.4-6.6 6.9-5.8 6.9-5.8"/>
+ <path d="M454.8 311c5-2 4.3-6.3 5.2-8 1.3-2.7 2.3-3.5 2.3-3.5m-2.6 32.9c-1.7-4.2.3-5 .3-5m-1 3.6c-2.1-2.7-4.8-2.5-4.8-2.5m3.9-10.3c1.3-2.4 0-4.8 0-4.8m.6 16.3-3.8-4.9m2.3-30.4c.5-2-1-2.9-1-2.9"/>
+ <g transform="translate(442 224.2)scale(.1567)">
+ <path id="do-a" fill="red" stroke-width="2" d="M91.4 426a6 6 0 1 1-12 0 6 6 0 0 1 12 0z"/>
+ </g>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="matrix(.1567 0 0 .18128 444.6 235.3)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(443.7 248.3)scale(.1567)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(440 252)scale(.16899)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(438.7 256.2)scale(.16899)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(440.3 257.8)scale(.16899)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(463.2 286)scale(.12289)"/>
+ <use xlink:href="#do-a" width="100%" height="100%" transform="translate(464.3 287.3)scale(.12289)"/>
+ <path d="M458.8 316.6a2 2 0 0 0-1.1-1.2m14.7 24.1c1.6 1.2 2 .5 2 .5"/>
+ </g>
+ <g fill="#006300">
+ <path d="M298.2 271.8c-.9-3-.7-3.6-.7-3.6m-6.5-1.7s-.5-1.2.4-1.9c.4-.4 2.5.8 3.6-3.9q0-.2-2.1.7v-.4s-.4-1-.2-2.3c0 0 .7-1.1.7-1.6 0 0-1.3-.5-4 2.9 0 0-.2-.7-2.1-2 0 0-1 3-.5 4.6.4 1.3.4 1.8 1.8 2.7 0 0 1 .5 1.2 2l1.2-.1zm-2 3.4q-.3.4-1.3.6c-3.3.4-5.2-4-5.2-4-.1-1 .3-.5 1-.2.9.3 1.2 0 2.2 0 1.4-.2 2.9 1.1 2.9 1.1.8.8 1 2.3 1 2.3zm-4-8c-3.4-1.5-5.5.2-5.5.2-.2.2.2.3.2.3 2.2.3 1.5.1 2.4 1.4 1.6 2.2 4.4 1.7 4.4 1.7.5.2 1.1.8 1.1.8-.2-1.9-2.5-4.4-2.5-4.4zm-6-14c-.7-.5-.6.4-.6.4-1.4-2.5-5.3-2.7-5.3-2.7l-.5-.3c-.6 0 .2 1.3.2 1.3 1.1 3.1 2.2 3.5 2.2 3.5-1.3.7-3.4-.9-3 .3 2.1 2.1 3.5 2.4 3.5 2.4 2.6.7 3.7 0 3.7 0q1 1.5 1 1.3c2.4.7 2.9 2 2.9 2 0-2.6-1-5.7-1-5.7a12 12 0 0 0-3.1-2.5"/>
+ <path d="M297.2 272.7c-1.3.4-1.4 1.3-1.4 1.3-1.2 1.7-5.6 0-5.6 0-1.4-.3-1-.7-1-.7l1.6-1a9 9 0 0 1-2.7-5c3.6-.7 4.7 0 4.7 0-.2-1.4-1.4-1.4-1.4-1.4-.3-.5.3-.5.3-.5a8 8 0 0 1 5 2.3c1.2 1.7.8 3.4.8 3.4.3 1.7-.3 1.6-.3 1.6M282.3 258c-1.8-.5-2.8 0-2.8 0-1 .4-2.6-.6-2.6-.6-2.2-1.9-2.6-3-2.6-3 0-.3 1.9-.3 1.9-.3 2.6 0 3.2.5 3.2.5 1.3.7 1.2 1.4 1.6 1.7l1.4 1q.5.9-.1.7m3.4 1c1.3-1.5 3-.5 3-.5 2.5.3 3.3-2.6 3.3-2.6l1-1.7c.1-.7-1.1-.1-1.1-.1-2.2.5-2.3.7-2.3.7l.4-3.4c0-.6-.6-.2-.6-.2-3.1 1.8-3.5 3.1-3.5 3.1l-1.3-2.4c-.4-1-.7.1-.7.1-.6 3-.3 3.2-.3 3.2.4 1.6.8 2 .8 2q.9 1.4.7 1.4z"/>
+ <path d="M304.2 267c-.5.1-1.8 2.2-1.8 2.2-1.6-3-3.7-3.4-3.7-3.4-.4.1 0 .8 0 .8.7 1.6 0 2.8 0 2.8q-.2 1.6 0 1.4c-2.5-1.3-2.6-1.1-2.6-1.1 0 1.6 1.8 4.5 1.8 4.5l4.5-1 1.5-.2c1.2-3.6.3-6 .3-6M284 250.8c1.6.7 1.7 1.8 1.7 1.8.4 1.3 4.1 1.7 4.1 1.7 3-.3 2.7-1 2.7-1-1.7-1.4-1.2-1.3-2-2-1.3-1.3-3-1.4-3-1.4-2.3.4-2.8 0-2.8 0-.9.4-.7.9-.7.9m-3.6-5.4c-.7-2.7 1.7-6 1.7-6 2 3.8 1.7 4.8 1.7 4.8a25 25 0 0 1-1.7 4.5c-.4-2-1.4-2.3-1.7-3.3"/>
+ <path d="M279 246.5c-2.5 0-5-2.9-5-2.9 3.9-1 4.7-.4 4.7-.4a23 23 0 0 1 3.6 2.5c-1.8 0-2.3.8-3.2.8z"/>
+ <path d="M277 242.8c-1.6.3-3-1.3-3-1.3-2.2-3-1.5-4-1.5-4l.4.3c.7.6 2 .8 2 .8-3.6-2.2-1.2-7.1-1.2-7.1.4-.5.6.7.6.7a5 5 0 0 0 1.8 2c.8 1 .8 1.4.8 1.4.3-1.6.8-1.2.8-1.2.4 1.3 1.9 2.3 2 3.2.6 2.5.2 2.8.2 2.8q-.4 2.3-.3 2.5c-1.4-.5-2.5 0-2.5 0zm8.4 6c.8-1.2 0-3.3 0-3.3-.3-2.3 3.1-4.5 3.1-4.5 1 1.9.9 3 .9 3l3.2-.8c.1 1.4-1.3 3.6-1.3 3.6 2.1.6 2.9-.4 2.9-.4-1 4.7-5.6 3.8-5.6 3.8a9 9 0 0 0-3.2-1.4"/>
+ <path d="M278.3 234.9c.3-2.9.8-3 .8-3 .3.1.4 1.4.8 1.6 1.8.8 1.8 2.8 1.8 2.8 0 2.3-.4 2-.4 2-2.5 0-3-3.4-3-3.4m8.3.6c.9-3.3.3-3.6.3-3.6-.3 0-1 1.3-1.6 1.4-2.3.1-3 2.3-3 2.3-1 2.5-.5 2.4-.5 2.4 2.8 1 4.5-1.4 4.8-2.5"/>
+ <path d="M278.4 229.5c.3-3.3 1-3.5 1-3.5.3.2.5 1.7 1 1.9 2 1 2 3.2 2 3.2 0 2.7-.4 2.5-.4 2.5-3 0-3.7-2.9-3.6-4zm9.4.8c1-3.2.4-3.5.4-3.5-.4 0-1.1 1.3-1.6 1.3a4 4 0 0 0-3.2 2.2c-.9 2.5-.4 2.5-.4 2.5 2.7 1 4.4-1.3 4.8-2.5m3.8 9c2.7-2 2.5-2.6 2.5-2.6-.3-.2-1.7.4-2.1.2-2-1.3-3.9 0-3.9 0-2.2 1.4-1.8 1.6-1.8 1.6 1.6 2.5 4.4 1.6 5.3.9z"/>
+ <path d="M291.5 241.1c2.6-1.1 2.5-1.6 2.5-1.6-.2-.3-1.5 0-1.8-.3-1.4-1.2-3.1-.6-3.1-.6-2.1.8-1.8 1-1.8 1 .9 2.2 3.3 2 4.2 1.5m-8.7-15.4c-1-3 2-7 2-7l1 3.4c2.4-2.5 4.6-2.9 4.6-2.9l-.1 2a7 7 0 0 0 2.3-.6c-.4 2.4-3.4 4.9-3.4 4.9-1.2.7-2.6.4-2.6.4-2.2.7-2.7 2.1-2.7 2.1-.2-1.3-.4 0-1.1-2.3m4.4 10c1.4-1.7 3.5-1 3.5-1 2 .2 3.7-1.8 3.7-1.8a6 6 0 0 1 1.4-1.8c0-.5-.6-.4-.6-.4l-1.1.3c.9-3.3.4-3.4.4-3.4l-.5.2c-.5 1.5-2.6 1.4-2.6 1.4-.1-2.2-.6-1.9-.6-1.9-.3.6-1 1-1 1-2.1 2-2.1 2.9-2.1 2.9.1 2.4-.5 4.6-.5 4.6z"/>
+ </g>
+ <g fill="#00863d">
+ <path d="m286.8 247.7 1.4-1c.5-.3.3-.2.5-.7l.5-.7-.3.9 1.4-.8q-.1.4-.9.8l-1 .6-1.9 1.6c1.8-.4 1.4-.1 2.3-.2 1.9-.3 2.8-3 3.4-4.5a10 10 0 0 0-3.5 1.1c-1.2.8-1.2 1.6-1.9 3zm-4.8 6.7q-.1-.6-.6-1c-.5-1-.5-1.2-1.2-2.3l-.5-1c.2 0 .6.8.9 1v-1q.3 0 .2.6c0 1 0 .9.6 2l1.3 2.2q0-.6-.3-1c-.4-1.4.5-3.1-3-5.2l-.9-.5c0 1.7.3 4.5 1.8 5.4l1 .4zm-.8-21.5-.4-1.3c-.2-.4 0-.3-.4-.5l-.4-.5.5.2-.4-.8c-.3-.4-.2-.1-.5-.7.6-.1 1.2 1.7 1.3 2.1.5 1.4.4 1.2 1.3 2.3 0-.2-.4-.5-.4-.8-.2-.7.6-1.7-.2-3.4-.5-1-1.5-1-2-1.9l-.4-.8-.4 1.8c0 1.2.2 2.7 1 3.5q.6.5 1.4.8m4.5-8.5.8-.8.8-.7-.1-.8c.2 0 0 0 .3.5l1-1.4c0 .3-.4 1-.6 1.2q-.2.6-.8 1l-1.6 2 1-.3c1-.2 1.4-.3 2.1-1.5a10 10 0 0 0 1.2-3.8c-1.5.6-3.1 1.3-3.9 2.7q-.3.6-.2 2zm-9.5 14.3c-.5-1-1.7-2.4-1.8-3l-.2-1.3q.3 0 .2.2l.2 1 .5 1c0-.7 0-.4.2-1 .3.4-.1 1 .2 1.6l.8 1.2c0-1 .6-2.4-.4-3.7q-.6-.7-1.3-1l-.9-1.4c-.7 1.5-.5 4.5.9 5.5l.8.5.4.2zm6.8-6c.6-.4.4-.6 1.8-1.7l.9-.9.9-.9c.1.3-.8 1.2-1.1 1.6h.6c-.1.4-.5.1-1 .3-.3 0-1.4 1.3-1.7 1.6l.8-.2c.9-.2 1.5 0 2.4-1.2.8-1 1-2.3 1.5-3.5-1.2.3-2.7 1-3.4 1.6-1 1-.9 1.7-1.2 2.6zm-4.8 9.3-.8-.8c-.5-.3-.6-.3-1.2-.4l-2-1.1q.2-.2.8.4l1 .4-.2-.5q.2 0 .3.2v.3c1 .1.8.1 1.7.7q0-.5-.4-.6l-.5-.5-.4-.6c-.8-1.2-1.7-.7-2.2-.8l-1.5-.6a6 6 0 0 0 1.7 3.1q.6.7 1.6.9zm-.8 7.5-1-.7q-.2-.2-.6-.2l-.7-.2h.7l-.3-.3-1-1q.3-.1.5.2l2.3 1.8 1.1.6c0-.6-1-2.4-1.8-2.8l-3.7-1 1.5 2.8c1 1.5 1.2 1 2 .9zm1.8-8.1-1.4-4.6q.2.1.3 1l.4.9.3-.7v.9c-.2.4-.2.3 0 .8l.6 1.6v-1c.3-1 .5-1.6 0-2.8q-.9-1.4-2-2.5l-.3 1.8c-.2 1.2-.1 2.8.8 3.5.8.6.3.1 1.3 1zm2.7 5.8v-4.7q.3.2.2.4v1.5l.4-.7q.3.2-.1.6l-.4.8.1 2.1.4-.8q1-1.2.8-2.8l-1.2-3.4-.8 1.6-.5 1.9c-.3 1.6.2 1.9.7 2.7zm1.9-20.3c0-.4.2-2.5.1-2.7l-.2-.4-.2-.9q.3 0 .4.6v.1l.1-.6c0-.4 0-.2.2-.6l.1.2v.3l-.3 4.3.4-.8c.3-.7 1-2 .9-2.8l-.8-4.1-.8 1.6c-.5 1.1-1 2.8-.7 4l.7 1.6zm-11 23.6 1.1 1c.7.5 2.3 1.2 3.1 1.2l1.8-.4-.2-.8-1 .1h-1.2l-1-.2c-.6-.2-.4 0-.9-.4l2 .3c-.6-.4-.4-.2-.8-.7.3 0 .9.5 1.2.7l1.6-.1-.1-1q-1.4-.5-2.9 0c-1.7.6-1 .4-2.7.3m2.2 4.3c0 .3 1.8 2.3 2.2 2.5l3.9.1-1.7-.7c-.8-.3-.8-.2-2 0q0-.4 1-.4l-1.5-.5-.2-.2h.5l4 1.5-1.1-1c-1.6-2-3.2-1.4-5.1-1.3m13.3-21.3.5-1c.3-.7-.1-.7 0-1.5q.3-.2.3.7l.7-1.6c.2.6-.9 2.6-1.1 3.2l-.4 1c1-1 2-1.5 2.2-2.4l.1-4q-1 .9-2 2.1-.8 1.4-.4 3.5zm-1.8 24.2 1-.5c1.5-.4.9.3 1.8-1l-.2.7c.7-.3.8-.7 1.3-1.2.2.3-.2.7-.4.9-.9.8-1.7.5-2.2.7l-1 .5c1.1-.2 1 0 2 .2 1.8.3 2.4-1.6 3-2.8l.5-.8a10 10 0 0 0-4.5 2.2l-.6.6z"/>
+ <path d="M286.4 247.5c.6-.6.5-2.1 1-3q0-.3.3-.4 0-.2.3-.2c.1.2-.3.4-.4.7l-.3 1 .1-.1.1-.2q.6-.7 1.6-1.2l-.7-2.4-1.2 1-1 1.2c-.8 1.5.1 2.2.2 3.6m-.4 10 1.6-2.6v-1.2c.2 0 .1-.1.3.7.5-.8.2-.7.8-1l-.8 1.4-1.5 2.5c.4 0 .9-.6 1.1-.9l.6-.5.7-.4.7-3.6a10 10 0 0 0-2.7 2c-1 1.2-1 1.6-.8 3.6m3.5-9 2-.3q0 .4-.9.4l-3.6.1.9.5.8.4q1 .5 2.1 0l2.7-2.4c-1.4.3-.6.4-2.5 0l-1 1zm-14.5-5c.6 1.2 2.3 2.6 3.8 2.4.7 0 .8-.3 1.2-.7h-.1l-.2-.1c-1.2-.3-1.3-.2-2.5 0l.5-.3-.9-.2-.8-.4q.1-.2.4 0c1.5.5 1.9.4 3.6.7-.2-.5-1.5-1.2-2.2-1.3-1.2-.1-1.6.5-2.8-.1m10 13.6-.5-3.3q.3 0 .3.9l.6 3c0-1.2.4-2 .1-3.2l-1.2-2.2a9 9 0 0 0-.3 2.7c0 1 .3 1.3.8 1.9zm4.5-33.7.4-.5.5-.4q-.1.4-.6 1t-.9.8c-.7 1-.6.8-1.8 1.3 2.4.2 3.8-2.4 4.8-4.2-2.3.3-1.9.5-2.1 1.2zm.8 10.4.7-1.1c.4-.6.6-.2 1.3-.8-.2-.2-.2-.1-.9.1l1.2-1.5c-.7.1-2 2.3-2.3 2.8l-.8.9c.5-1.4.3-2.7 1-3.3l3.7-2.3q-.2 1.5-.9 3-.8 1.5-3 2.2m-9.2 4.4-1.1-1.6-.5-2.2c.3 0 .3.6.3.9l.3 1c.2-.8-.1-.3.3-1 .2.5-.3 1.1 0 1.5l.7 1c.3-1 .3-2.3-.3-3l-1.7-1.8c-.4.6-.4 2.4 0 3.3.3 1 .7 1.2 1.3 1.5zm1.4-.3c.5-.5 1.5-1 1.7-1.3l1.4-2c-.3-.1-.5.5-.7.7l-.6.9c0-.8.2-.2 0-1-.4.4-.2 1.2-.6 1.5l-1.1.8c0-1.1.5-2.5 1.4-3l2.5-1.4c.2.9-.5 2.8-1.1 3.6-.8 1-1.2 1-2 1zm4.6.3c.6 0 2.5 0 3-.4l.8-.3c0 .2 0 0-.3.4h1.1c0 .1.2.1-.6.2l-2 .2-2.7.3c1.8.6 2 1.6 4 .8 1.6-.6 2-1.2 3-2.4-2.6.6-2.8-1.5-5.2 0z"/>
+ <path d="M290.4 239.7c.6 0 .3 0 .9.2-.3.2-1.4 0-1.8 0h-1.8q1 1.3 2.9 1c1.3-.1 1.7-.4 2.7-1l-2-.7zm-.8 11.5-.9-.5c-1-.5-2 0-2.5 0l-1.3-.2a6 6 0 0 0 2.4 1c1.7.3.5.7 2.3-.3m.2 1.2.5.5-.5-.2-.1 1.2 2.3-.3-2-2.2zm-3 .7 1.4-1q-.6-.4-1.5-.5l-1.3-.5.7 1zm6.7-20.6q-.8.7-1.7 1.2c-.9.4-1.8 0-2.4.6 1.5-.1 2.5.5 3.7-.6q1.1-1.2 2-2.6l-1.2.4-.3.5c-.3.4 0 0 0 .5zm-5 35 1 2.2 1.6 2 1-.7 1.3-.4c-.7-.3-.7-.6-1.1-.7h-1.7c.1-.3 0-.2.8-.2h.8l-1.6-1.2 1.6.9v-1.1c.4 0 .1.7.3 1.3q.3.4 1 .7t1.2.4l1.3.4c-.5-.8-.2.1-1.1-1.8a3 3 0 0 0-1.4-1.6c-1.5-.9-3.3-.3-5-.2m1.9-2.3v-2.7l-.3-2.1q.2 0 .3.4l.1.6c.2-1 .3-1 .8-1.6 0 .2-.5 1-.6 2l-.1 2.7.2-.3.3-.3.5-.6c1.3-2 .5-3.2.5-3.8l.4-2-1.8 1.3c-1 1-2 2.8-1.3 4.3l.5 1 .4 1.1z"/>
+ <path d="m289.7 273 1.8.6c1.1.4 3 .5 3.8-.6.5-.6.8-.7 1.3-1.2l-2.2.5c-.6.2-.6.6-1.1 1l-.4.3q.2-.5.8-1.1h-1.8q.1-.3 1.3-.2c1.5-.2 1.8-.6 3.4-.8h.3c-2.4 0-3-1.7-5.9.4zm11-1.5v-1.2c-.5-.4-.5-.6-.8-1.2l.9.8q-.1-1.1-.5-2.2c.3 0 .4.8.5 1.1.4 1.4 0 2.5.3 3l.7 1c.2-1 1.3-1.7 0-4.1-.7-1.5-1.3-1.8-2.5-2.7.1.7.3 1 .2 1.8l-.4 1.6c-.2 1.3.3 1.2.5 1.3zm-12-2.3-.3-.8c-1 0-1.3.4-2.8-.6q-.3-.1-.5-.6l1.6 1-.6-1q0-.2.1 0h.2l.7 1h1l-.2-.7q0-.4-.3-.6l-1.4-.6-1.6.2-1.6-.3c0 .3.7 1.3.8 1.6.7 1 2.5 2.3 4 1.7zm-8.4-7.5h.1l.2.1 1.1.8c.5.4.5.7 1.1 1.2 1 .9 2.1.8 3.5 1l-.6-.7c-1.1-1.2-1-1.1-1.6-1H283c0-.2.7-.2 1.2-.3l-.7-.3c-.6 0-.2 0-.9-.2.3-.4 1.8.2 2.5.8l1.6 1.8-.8-1.7c-.8-1.5-3-2-4.5-1.7l-1 .2zm9.5 3.9c-.5-1.8-1.5-2.6-1.7-3.7-.2-.7-.1-.7 0-1.4.4.5-.3.8.8 2.6 0-.6-.2-.8-.1-1.5l.4-1.4c-.1-.3-1.4-1.5-1.7-1.9-.2 1.6-.6 3-.1 4.6s1.4 1.3 2.4 2.7m8.6 8 1.1-.2-.7-1c-.5-.7-.4-.7-.2-1l.1.6.4.4q.3.5.8.9-.2-.7 0-1.2l.1.2.1 1 1.3-.4c-.9-1.5-2.5-2-4-2.6l.4 1.8zm-2-3.2-.5-1c-.4-1-.4-1.3-1.2-2.2l-.4-.4-.3-.3v-.1c.2 0 .8.6 1 .8.5.4 1.6 2.8 2 3.5l-.2-1c.4-1-.5-2.4-1-2.7l-3.5-1.5q.6.5 1 1.2c.2.6.3.1 1.2 1 1 1.1 1 2.4 2 2.7z"/>
+ <path d="m302.9 270.4.1-.5c.2-.3 0-.2.3-.4q.2.2-.1.7l-.7 2.5c.8-.1.7-.1 1-.7q.4-.6.5-1.3l-.1-3.3-1 1.3c-.5.7-.2.3 0 1.7m-10.6-7.5c.3-.1.8-.8 1.1-1 .1.2-.5.9-.7 1-.6.6-.2 0-1 1 1.6.2 2.2-1.8 2.7-2.8l-1.5.4q-.2 0-.2.3l-.1.4q0 .4-.3.8z"/>
+ </g>
+ <g fill="#ce1126" stroke="#000" stroke-width=".2">
+ <path d="m307.6 281.8 1.9 1-1.1 2.1c.8-.1 3.6-1.1 4.6-1.4-.3-.7-.4-.7-.3-1.6l-.3-1.5-2.3.8zm24.8-.3-1.9 1 1.1 2c-.8 0-3.6-1-4.6-1.3.3-.7.4-.8.3-1.6l.3-1.5 2.3.8z"/>
+ <path d="M314.4 284.8a12 12 0 0 0 4-1.4c.4.3 2.1 0 2.1 0l1.1-.2a10 10 0 0 0 3.8 1.6c1.9-.1 2-1.6 2-1.6l-.3-1.3c1-1.6 0-2.8 0-2.8-.6-.6-3.5.3-3.5.3-2 1-2 .5-2 .5-.6-.8-2.6-.7-3.5 0l-2.5-.6c-2.2-.9-2.5-.4-2.5-.4-.8 1-.5 2-.5 2l.1 1c-.4 2.8 1.8 3 1.8 3z"/>
+ <path d="M321.6 282.4c4.7 1.1 4.4 1.8 4.4 1.8-.3.5-1.7-.2-1.7-.2-3.6-1.2-2.7-1.6-2.7-1.6zm-2.9 0c-4.7 1.1-4.3 1.8-4.3 1.8.3.5 1.6-.2 1.6-.2 3.7-1.2 2.7-1.5 2.7-1.5z"/>
+ <path fill="#aa241e" d="M319 279.3c-2 .3-.5 1.8-.4 2.8 0 .5-.5 1.3 0 1.5.5.3 1.5 0 2.1 0 .8 0 1.3 0 1.2-1 0-.7-.3-1-.3-2 0-.6.1-1.4-.6-1.4z"/>
+ <path fill="none" d="M321.7 280.4c5.3 0 5-.9 5-.9m-5 2.5c5.4.7 4.7 1.5 4.7 1.5m-7.9-1.6c-5 1-4.5 1.9-4.5 1.9m4-3.5c-5.1.3-4.6-.5-4.6-.5"/>
+ </g>
+ <path d="M298.1 274c-2.7 1-4.5 1.6-7 3.1l-3.3-5a7 7 0 0 0-2.2-1.8c-1.5-.7-2-.5-3 .3l-.6-1.3c-1.3-2.3-2.7-3.3-4.1-5.2l-1.4-1.5-.4-.5q.8 2.7 1.3 5.7-1.2-.8-2.4-1.3a9 9 0 0 0-3-.5l1 .9a12 12 0 0 1 3.3 5.5 17 17 0 0 0 4.2 6.5l2 1.5c2 .8 1.9 0 2.6-.3a31 31 0 0 0 4.2 5.8 8 8 0 0 0 7.5 1.9q1.6-.4 3-1.2c3.4-2 1.7-3.6 1.3-5.2l7.2-2c5.6-1 16-1.2 22.7-.2.6.1 7.3 1.9 8 2.3a5 5 0 0 0-.6 2.9c0 1.1 1 1.7 2 2.2a10 10 0 0 0 6.4 1.3 8 8 0 0 0 4.9-3.2c1.8-2 2.3-3.2 3.2-4.7 0 0 .5.5.9.6.3.1 1.5 0 1.8-.2q1.1-.6 2-1.5a16 16 0 0 0 4.1-6.6 12 12 0 0 1 4.3-6.3c-2.8.1-3.8.9-5.4 1.8l.6-3 .7-2.7-3.5 4-1.7 2.1c-1.1 1.8-.9 1.8-1.3 2.4-4-2.2-5.8 3.1-8.4 6.4-5-2.8-9.3-3.6-15.2-4.7l-3.5-.4a89 89 0 0 0-22.7.2c-3.8.5-6.1 1.2-9.5 2z"/>
+ <g fill="#ce1126">
+ <path d="M293 285.5c.5-1.3 1-1.6 2.2-2.1 3.6-1.7 5.4-2.4 9.5-3.5a53 53 0 0 1 7.2-1.3 67 67 0 0 1 12.3-.4 55 55 0 0 1 20.6 5.1c1.5.7 1.3.8 2.2 2.2 1-.8 1.9-2.4 2.5-3.4l1-2c.4-1.1-.3-1.5-.8-1.9-1.8-1.6-5.3-3-8.3-3.8a87 87 0 0 0-42.7 0 25 25 0 0 0-9 4.4c-.8.9.4 2.5.8 3.2l1 2z"/>
+ <path d="M280.5 274.2c1.4.3 2 .7 2.9 2 2 2.8 2.1 4.8 5.6 8.6a6 6 0 0 0 2.6 2.1 8 8 0 0 0 4.2.6 9 9 0 0 0 3.5-1.2s1.3-.7 1.7-1.2.4-1.5.4-1.5c-1-.3-3 1.7-4.2 2.5-2.2 1.5-3 1-4.7-.5-1.3-1.1-1.8-2.4-2.7-4-.4-.6-1-1.5-.8-2.5l1.7-1.7-2.1-3.2c-.8-1.3-1.3-2.2-2.4-3-.6-.5-1.9-1.2-2.8-.7l-2 2q-.5.7-.9 1.7"/>
+ <path d="m278.1 268.8-2.1-1.3-2.7-1 1.5 1.7c1.6 2 1.6 3.8 3 6.4a16 16 0 0 0 4.2 5q1.6 1.3 2.4.3c.1-.5-1.1-1.3-1.7-1.6l-2.1-1.4c-1.6-1.6-.4-3.5.8-4.9l.8-1c.2-.6-1.1-2.4-1.8-3.3s-2.5-3-3.4-3.8l.5 2.5zm23.2 14.3-.6-1.5c-.9.1-5.1 2-6.1 2.6-.3.2-1.5 1.1-1 1.7 1.7 1.8 4.2-.8 5.6-2a3 3 0 0 1 2-.8z"/>
+ <path d="M285 279.7c-.3-.1-.3-.6-1.2-1.3-.4-.3-2.6-1.5-3-1.9 0 0-.6-.5-.6-1.2.1-.6.6-.7.6-.7 2 0 4.2 4.8 4.1 5zm74.6-5.4c-1.5.3-2 .7-2.9 2-2 2.8-2.1 4.8-5.6 8.6-.8.9-1.4 1.6-2.7 2.1a8 8 0 0 1-4.1.6 9 9 0 0 1-3.6-1.2s-1.3-.7-1.6-1.2l-.4-1.5c1-.4 3 1.7 4.1 2.5 2.3 1.5 3.1 1 4.7-.5 1.4-1.1 1.9-2.4 2.8-4 .4-.6 1-1.5.8-2.5l-1.7-1.7 2-3.2c1-1.3 1.4-2.2 2.5-3 .6-.5 1.9-1.2 2.8-.7l1.9 2q.6.7 1 1.7"/>
+ <path d="m362 268.9 2.1-1.3 2.6-1-1.4 1.7c-1.7 2-1.7 3.8-3 6.4a17 17 0 0 1-4.2 5c-1 .8-2.1.8-2.4.3-.1-.5 1-1.3 1.7-1.6l2.1-1.4c1.6-1.6.4-3.5-.8-4.9l-.8-1a9 9 0 0 1 1.8-3.3l3.3-3.8q-.1 1.2-.5 2.5zm-23.2 14.3.6-1.5c.9.1 5.1 2 6.1 2.6.3.2 1.5 1.1 1 1.7-1.7 1.8-4.2-.8-5.7-2q-.7-.6-2-.8"/>
+ <path d="M355.2 279.8c.2-.1.2-.7 1.1-1.4.4-.3 2.6-1.4 3-1.8 0 0 .6-.5.5-1.2s-.5-.7-.5-.7c-2 0-4.2 4.8-4.1 5z"/>
+ </g>
+ <path fill="#eac102" d="M297.4 277h-.6l-.9.4v.3q.2.1.2.5l.2.6.2.8.2.8v.3l.7-.2q.3-.1 0-.2l-.2-.6-.1-.6q.2-.2.3.1l.5.5.6.3h.6q-.5-.3-.7-.7l-.5-.6q.4-.3.5-.8a1 1 0 0 0-.4-.9zm-.2.2q.3 0 .4.3t.1.7l-.3.4q-.2.3-.5 0l-.2-1q0-.3.3-.3zm1.4-.7q.2.1.2.4l.2.7.2.7v.5l.2.6v.3l1.8-.5q.3 0 .2-.2v-.6q-.2.1-.3.4l-.9.4q-.2 0-.2-.3l-.1-.4-.2-.7h.7q.2.2.3 0v-.5c-.1 0-.1-.4-.3-.3l-.2.4-.5.1-.1-.5q-.1-.4.1-.5h.8c.1 0 .3.3.3 0l-.2-.5h-.5zm4.1-1.1h-.7l-.8.3c-.2.1.2.2.2.4v.5l.2.5.1.8.1.7v.4q.4 0 .7-.2.3 0 0-.2v-.5l-.2-.6 1-.5.4-.7-.2-.7-.4-.2zm-.3.2.5.4.1.7q0 .2-.3.3l-.4.2-.1-.4-.2-.8q0-.3.2-.3zm3.3-.9.3.3v.5l.2.6v.5l.1.7-.7.5-.3-.2-.2-.5-.1-.7-.1-.7-.1-.5v-.3l-.8.1c-.2.2.1.2.1.4l.1.5.2 1v.5q0 .3.3.5t.5.3q.6 0 1.1-.3l.3-.5-.1-.8-.1-.8-.1-.6v-.6h-.4zm2.6-.5-1 .2-.5.1.2.4q0 .6.2 1.1v.7l.1.8v.3l.5-.1h.6l.7-.3.3-.3.2-.4q0-.3-.3-.7l-.4-.2q-.3 0 0-.2l.3-.5-.1-.5q-.1-.3-.5-.3h-.3zm-.5.3q.4 0 .7.2v.6q0 .3-.4.4-.3.1-.4-.1zm.3 1.5.5.1q.3.2.2.6l-.1.5-.6.2q-.2-.2-.2-.5v-.9zm1.7-2s.2 0 .1.2l.1.6v.5l.1.7v1.2h1.4l.6-.1v-.9q0 .3-.3.4l-.3.2h-.3l-.4-.1v-.7l-.1-1.2v-1h-.4l-.4.1zm2.5-.3.1.2.1.4v.4l.2 1.6v.4s-.2.2-.1.3l1-.1-.1-.2-.1-.4-.1-.7v-.6l-.1-.8v-.5s.2-.2 0-.2zm4 2q-.3 0-.4.3t-.4.3-.6-.3l-.3-.5v-1.4q0-.3.2-.5.3-.1.7.1l.2.5q.3.1.2-.2l.1-.4-.5-.2a1 1 0 0 0-1.1.2l-.3.3-.1.4-.2.6.3 1.2q0 .3.4.5l.5.2.7-.2q.3-.1.4-.4l.2-.4zm1.3-2.5h-.4l-.1.8-.2.5-.2 1.3-.3.7v.1h.7l-.2-.3v-.5q.1-.2.4 0l.5-.1.2.6s-.2.3 0 .3h.7q.1-.2 0-.4l-.3-.8-.3-1-.3-1zm-.3.8.4 1.3-.2.1h-.4v-.4l.1-.6zm4.3-1-1 .1.2.3v2.9c0 .1-.4.3-.1.3h1.4l.4-.3.4-.5.1-.7v-.7l-.2-.6-.3-.4-.4-.2-.5-.1zm0 .3q.4 0 .6.3l.1.5v1.4l-.2.6-.3.2-.5-.1v-2.6q0-.3.4-.3zm3-.1-.5.1-.5.6-.2.8v.8l.2.5a1 1 0 0 0 1 .8q.5 0 .8-.4l.4-.7v-1.2l-.2-.6-.4-.6zm0 .2q.5.1.5.5l.1.6v.9l-.1.6-.3.5q-.2.2-.4 0-.2-.1-.3-.4v-1.9l.2-.6zm1.4 3.5h.6l-.1-.4v-.6l.1-.6.1-.6.1-.5.1.5v.7l.2.6v.6q0 .4.3.4t.2-.3l.2-1 .2-.5.3-.9v2.5c0 .1-.3.3 0 .3h.6q.2.1 0-.1v-3.1s.2-.2 0-.2h-.7l-.2.5-.2.7-.1.7s-.1.2-.1 0v-.6l-.1-.4-.2-1q0-.1-.4-.2h-.4v1.2l-.2 1.3-.1.5q0 .3-.3.4zm3.3.3.6.1h.3l-.2-.4v-.6l.2-.5v-1.6l.2-.2q0-.2-.2-.1l-.7-.1s.2.2.1.3v1.7l-.1.5v.5zm1.1.3h.7l-.1-.5v-.9l.1-.6v-.6l.3.5.8 2q0 .3.2.4.3 0 .2-.3v-.5l.1-.5v-.6l.2-.6v-.6s.4-.2.2-.3h-.6l.2.4-.1 1.1-.1.6-.2-.5-.3-.6-.2-.6-.3-.7-.6-.1q-.1 0 0 .4v1.4l-.1.6-.1.6q0 .3-.3.4zm3-3q.3.3.2.4v.5l-.1.5-.1.7v.5l-.1.3v.3l-.2.2.3.1.5.1s.1 0 0-.1v-1l.1-.5v-.4l.2-.6v-.4l.2-.4h-.4l-.4-.2zm1.1 2.4a2 2 0 0 0 .4 1.3q.1.2.4.3h.6l.4-.2.3-.5-.3.2q-.3.2-.7 0l-.3-.4v-1.7l.3-.5.3-.2q.3 0 .4.3l.1.5q0 .3.2.1l.2-.5q0-.3-.3-.4l-.3-.2h-.8l-.3.4q-.3.2-.4.6l-.1.7zm3.5-1.3-.6 1.4-.2.5-.3.7-.3.4q-.2.1 0 .2l.5.1q.2 0 0-.3v-.4h.9v1l.5.2q.3 0 .2-.1v-.8l-.1-.6v-2.1zm0 .8v1.5l-.6-.1.1-.5.4-.7zm1.5 3.3v-1.4l.2-.5v-.6q.3-.2.2.1l.3 1 .2.6.2.9q0 .3.3.3l.2-.6.1-.6.2-1 .2-.8s.4-.2.1-.3l-.5-.1.1.4v.6l-.2.5-.1.6q-.2-.2-.2-.5l-.2-.7-.2-.7-.1-.5-.5-.3q-.3-.1-.2.2v1l-.3 1-.1.6-.3.4c-.2.2.2.2.3.3zm3.4-2.3-.3.7-.4.7-.8 1.3s-.2.2 0 .2l.5.2v-.8l.5.1q.3 0 .4.3l-.1.6q-.2 0 0 .2l.3.1.4.1v-3.6zm0 .7v1.6l-.5-.2s-.3 0-.2-.2l.3-.7z"/>
+ <g transform="matrix(.89273 0 0 .89274 -125.5 -33.3)">
+ <path fill="#fff" d="M474.5 281v40.6c0 3.6 0 5.9 1.8 8.1a11 11 0 0 0 6 4.2c1.7.3 7.7.2 9.8.2 4.6-.3 5.2.8 7 3 2-3.1 4.1-3.2 8.2-3 2 0 6.6.1 8.4-.3a9 9 0 0 0 5.4-3.3c2.4-2.7 2.2-6 2.2-9.6v-38.3c0-1.8-.2-1.3.7-2.2l5.8-6H468l6.4 6.7z"/>
+ <path fill="#002d62" d="M493.8 299v-24.7h-25.5l6.3 6.7v18z"/>
+ <path fill="#ce1126" d="M504 299v-24.7h26l-6.7 7.1v17.7zm-10.2 10.3h-19.3l-.1 15.6c.9 6.8 6 9.2 10.4 9.1h9z"/>
+ <path fill="#002d62" d="M504 309.3h19.4V325c-.5 6.8-6 9.2-10.5 9.1h-9z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M474.6 281v40.6c0 3.6 0 5.8 1.8 8.3a9 9 0 0 0 6 4c1.7.3 7.7.2 9.8.2 2.7 0 3.9-.2 5.7 1.6.6.6.7.8 1.1 1.5a8 8 0 0 1 3-2.8c1.4-.5 3.8-.3 5.4-.3 2.1 0 6.6.1 8.4-.3a11 11 0 0 0 5.4-3.3c2.4-2.7 2.2-6 2.2-9.6v-38.3c0-1.8-.2-1.3.7-2.2l5.8-6h-61.7z"/>
+ <path fill="#eac102" stroke="#000" stroke-width=".3" d="M498 280.4v2.8h-3v2.3h2.8v10h2.3v-10h2.9v-2.3h-2.9v-2.8z"/>
+ <g id="do-b">
+ <path fill="#fff" d="M481.9 284v4.6l-1.9-2 .3 32c0 4.7 3.4 8.6 7.6 8.6s7.6-3.8 7.7-8.5l-.3-16.4-2-2.2-.1-1.7z"/>
+ <path fill="#002d62" d="M481.9 284.2v4.6l-1.9-2 .2 18.2 8.2 7.9v-17.4l-.2-.4v-3z"/>
+ <path fill="#ce1126" d="m490.8 295.5 2.4 3v1.1l-2.4-2.5zm4.5 7 .2 11.4c-1.2 2.2-3.6 1-3.6 1l.1-15.8z"/>
+ <path fill="#002d62" d="M495.6 319.6c-3.2 2.4-4-1-4-1a4 4 0 0 0 4-3z"/>
+ <path fill="#ce1126" d="M480.2 309.7a54 54 0 0 0 8 7.5c1 7.7 5.5 5.1 7.1 4-1 3.6-3.9 6.2-7.4 6.2-4.2 0-7.6-3.9-7.6-8.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M493.2 299.6v-1.1L481.9 284v4zM480 286.7l.3 31.9c0 4.7 3.4 8.6 7.7 8.6 4.1 0 7.5-3.8 7.6-8.5l-.3-16.4z"/>
+ <g fill="#eac102" stroke="#000" stroke-width=".1">
+ <path d="M486.2 281.2q-1-1.9-.1-2.6l-3-3 .9 4.2c.8-.2 1.4 0 2.2 1.4zm-3-5.6 3 5.6"/>
+ <path d="m498 300.7-.7.3-12-20.4.8-.4z"/>
+ <path d="M485 280.6q-.2-.4.5-.7t.8 0q0 .3-.5.7t-.8 0zm-4 1.6q-1.3-1.8-.4-2.6l-3.3-2.6 1.4 4q1-.6 2.3 1.2zm-3.7-5.2 3.7 5.2"/>
+ <path d="m495.3 300-.7.4-14.4-18.7.6-.5z"/>
+ <path d="M479.8 281.8q-.2-.4.3-.8t.9-.1q.1.3-.4.7-.7.5-.8.1zm.4 4.6q-1.5-1.8-.7-2.6l-3.6-2.2 1.8 3.9c.8-.4 1.4-.4 2.5.9zm-4.3-4.8 4.3 4.7"/>
+ <path d="m495.7 302.9-16.4-17 .6-.5 16.4 17z"/>
+ <path d="M478.9 286q-.2-.2.3-.8.5-.5.8-.2.2.3-.3.8t-.8.2z"/>
+ </g>
+ </g>
+ <use xlink:href="#do-b" width="100%" height="100%" transform="matrix(-1 0 0 1 998.3 0)"/>
+ <g stroke="#000" stroke-width=".2">
+ <path fill="#ce1126" d="m496.7 314.5-.6 10.1c-.6 0-1.9-.1-2-1 0-.4 1.3-8.7 1.3-9.5z"/>
+ <path fill="#002d62" d="m495.8 314.1-.3 3.1c.2 1 1.4.8 2 .9l.2-5.2-2 1.2z"/>
+ <path fill="#002d62" d="M495.9 327c1.6-2 4.8-.5 4.8-.5 3.4.8 2.5-3.1 2.5-3.1-.7-7.8-1.5-13.2-1.5-13.2l-5 3.4z"/>
+ <path fill="#002d62" d="M495.9 327.2c-.4 2.3 2 2 2 2 2.7 0 1.9-3 1.9-3-3-.9-4 1-4 1z"/>
+ <path fill="#ce1126" d="m497.8 312.7-.2 9c.1 2.1 2.5 1 2.5 1q1-.3 1.2-.1v-2.8c4-.3 3-2.6 3-2.6-1.6-7.6-1.8-7.3-1.8-7.3z"/>
+ <path fill="none" d="M501.3 319.8c-2.5 0-3.6 1-3.6 1v.2"/>
+ <path fill="#fff" d="m501 326.4-.9-15.1 1.8-1.2 1.5 14.2v.1c0 2.7-2.4 2-2.4 2z"/>
+ </g>
+ <g fill="#fff" stroke="#000">
+ <path fill="#000001" stroke="none" d="m488.2 302.2 6.8 12.4 14.7-9.7-7.7-11.2z"/>
+ <path stroke-width=".3" d="m488.5 302.1 13.7-8 7.6 10.8-14.6 9.4z"/>
+ <path fill="#000001" stroke="none" d="m495.4 313.5 13.7-8.8-1-1.7-6.9-9.3-5 4-6.3 3.5-1.1-.7.2 1.5z"/>
+ <path stroke-width=".1" d="M496.2 297.8c-2-1-4.4 2-5 2.6-.8.6-2.1.3-2.1.3l6.2 11c1.8.8 3-1.5 3.8-2.3 1.6-1.3 3.4-1.2 3.4-1.2z"/>
+ <path stroke-width=".1" d="M496.4 297.9c0-2.4 3-3.1 3.7-3.6s1-1.9 1-1.9l7 10.6c-.2 2-2.6 2.3-3.6 2.8-1.8 1-2 2.5-2 2.5zm-1.4 13.9-6.1-11v1.2c4.6 7.5 6.5 11.5 6.5 11.5z"/>
+ <path fill="#000001" stroke="none" d="M490.9 302.2v.2l.1-.1.2.1h-.2l.1.2.2-.2-.3.3-.2-.4h-.1l.4-.3v.2zm.4-.3.2.4v.2-.1l-.1-.1-.2-.3zm.5-.3h-.2v.1h.4v.3h-.2v.1l-.1-.1h.2q.2 0 0-.1h-.1l-.2-.1v-.2h.1v-.1zm.5.2h-.2v-.1l.1-.1v-.1h-.1v.1-.2l.2.1zm0 0v-.1l-.1.1zm.1-.4.1-.1h.1l.2.2-.1.2v-.1l-.1-.1v-.1zv.2h.1l-.1.2v-.2zh-.1zm.3-.4.1.1h.1v.3h.1-.1l-.2-.2zm.3 0h.2l.1.1v.2a.1.1 0 0 1-.2 0zm0 0v.1l.2.2v-.3zm-1.6 2 .1.2v-.1l.2.2h-.2l.1.1h.1l.1-.1v-.1.2l-.3.2v-.1l-.2-.3.3-.3v.1h-.1zm.7.2-.3-.2.1-.1v.1h.2q0-.2-.1-.1v-.1.2zm.3-.3v.2h-.2v-.2zh-.1l.1-.2.1.1.1.2zm.2-.4h.2l.1.1v.2l-.2-.2zv.4l-.1-.2-.1-.1v-.1zm.4-.3v.3h.2v.2h-.2l-.1-.1v-.1h-.1v-.2h.1zm0 0v.2q.2 0 0 0zm.2.4s-.1 0 0 .1zm.3-.5h-.2l.1.2zh-.2v-.3h.2zm-.1 0h-.1zm0-.4.3.4h.1l-.2.1v-.1zm.4 0 .1.3v.1l-.1-.1-.1-.2zm.2-.1.1.2v.1a.1.1 0 0 1-.2 0zm0 0v.3h.2v-.2zq0-.2 0 0m-2 2.2.1.2q-.1-.2-.2 0h.2l.2.1v.2l-.2.1-.2-.1h.3v-.1h-.4v-.3zm.6 0-.2.2h.2v.1h-.3v-.3a.1.1 0 0 1 .2 0zm-.1.1h-.1zm.2-.3v.2h.2v.1l-.2.1-.1-.1v-.1h-.1v-.3h.1m0 0v.2s.1 0 0 0zm.2.4s-.1 0 0 0m.2-.7.2.3-.2.2-.2-.3.2.2h.1v-.1zm.3-.1v-.1h.2l.1.2-.1.2v-.2zs-.1 0 0 0v.4l-.2-.2v-.2zm.6-.6h-.2v.1h.4v.3h-.2v.1l-.1-.1h.2v-.1h-.3v-.3h.1v-.1zm.5.2-.1.1h-.1v-.3.1-.2a.1.1 0 0 1 .2 0zm0 0-.1-.1v.1zm.1-.4.1-.1h.1l.2.2-.1.2-.1-.2v-.1zv.2h.1l-.1.2v-.2l-.2-.1zm.4-.5.3-.1.1.3v.2l-.1.1h-.1v-.1h.1v-.2zm.7-.2.1.3h.1-.1l-.1.2h-.1l-.2-.3h.1l.1.2h.1zh-.1zm.4.1h-.2v-.3.1-.1h.2v.1h.1zm0 0-.1.1zm.1-.4.2.2-.1.1-.1-.1zv.2h.1l-.1.2zh-.2zm-2.7 4.7h-.2l-.1.2.1.2h.3v-.2.3h-.3l-.1-.4.2-.1zm.6 0-.2.2v.2-.2l-.1-.4zh.1l-.2.1zm0 0h-.3v.2l.2-.1zm.2-.2.1.2h.1l-.2.1v-.1zh-.1l.2-.2h.1q.2 0 0 .2v.1zm0 0 .1-.1a.1.1 0 0 0 0-.2l-.2.1zm.6 0h-.2l-.1-.4h-.1l.1-.1v.1l.2.3zm.1-.8h-.2l.2.4h.1l-.2.2v-.2l-.1-.3h-.1v.2l-.1-.1zm.4-.2h.2v.3l.1.1-.2.2-.2-.1v-.2h-.2l.2-.2v.1l.1.2.1.1h.2a.1.1 0 0 0 0-.2l-.2-.2zm.7 0zl-.4.2-.1-.4h-.1l.2-.1v.1l.1.3h.1zm.1-.5h.3l.1.3-.3.2-.2-.1v-.3zm0 0a.1.1 0 0 0 0 .2v.2h.2l.2-.1-.1-.2zm1-.6v.7l-.4-.3h.1l.3.2v-.3s0-.1-.1 0zm.4.3-.2.2v-.2l-.2-.3.1-.1v.1zm.2-.1-.1.1zl-.2-.3h-.1l.2-.2v.2zm.3-.2-.2.2v-.1l-.2-.4h-.1l.2-.1v.1zm-4 4.2v-.2h.2v.1a.1.1 0 0 1 .2.1v.2l-.1.1q.2-.2 0-.2h-.1a.1.1 0 0 0 0-.2zm.4-.3v-.2l.3.4h.1l-.1.2v-.2zm.7-.5.2-.1v.4q0 .2.1 0v.1l-.2.1v-.2l-.3-.1zl.2.1zm.8 0h-.2v-.5l.3.3zm0 0v-.2h-.2v.1zm.1-.3.2.1v-.1h.1v.2a.1.1 0 0 1-.2 0zv-.1a.1.1 0 0 1 .2 0zm0 0h.2l-.1-.1s-.1 0 0 .1zm.6-.2v.2a.1.1 0 0 1-.2 0l-.1-.1v-.2a.1.1 0 0 1 .2 0h-.1v.2a.1.1 0 0 0 .2 0zm.1-.2.2.3h-.1zm.4.1zh-.2v-.1l.1-.1v-.1h-.1v.1-.1h.1zm0 0v-.1zm.1-.6.2-.1.1.3v.2s-.1 0 0 0v-.1zm.4 0 .2.2.1-.1v.1a.1.1 0 0 1-.2 0v-.3h.2zm0 0h.2s0-.1-.1 0zm.4-.3zv.1h-.2.1zh-.2v-.2zm.4-.2.1.2v.1q-.2.2-.2 0l-.2-.1v-.1l.2.2h.1zm.2-.2v.2h.2v.2h-.2.2v-.2h-.3zm.6 0zh-.2v-.1l.1-.1v-.1h-.1v.1-.1h.1zm0 0v-.1h-.2zv-.1zm-4.5 3.5.2.4h.1-.1zs-.1 0 0 0v-.2zm.3 0h.2v.3h-.1l-.2-.2zm0 0 .1.3h.1v-.2zm.4-.3zh-.1s0 .1 0 0za.1.1 0 0 1 0 .2v.1h-.2.2v-.2h-.2zm.2-.3s.1 0 0 0m.1.1.2.3v.2-.3zm.4-.2.2.2v.1l-.2.1-.2-.1v-.2l.2.2s.1 0 0 0zm.5 0-.1.2h-.2v-.3h.1v-.2h-.1zm0 0h-.2v-.1q-.2 0 0 .1v.1h.1zm0-.3.2.2v.1h-.1zm.2-.2h.2l.1.2v.1a.1.1 0 0 1-.2 0zm0 0zl.1.2h.2v-.2zm.4-.2zh.2v.2h-.1s0 .1 0 0h-.1.2v-.1h-.3a.1.1 0 0 1 0-.2zm.5-.4.3.4v.2-.2h-.4v-.3zm.1.3h-.2l.1.2h.1zm.3-.5.1.3v.1h-.2l-.1-.2h-.1.1l.1.2h.1v-.3h-.1zm.2 0 .1.2.1-.1v.1a.1.1 0 0 1-.2 0v-.3h.1zm.3-.5.3.4v.1l-.1-.1zm.3.2h.2v-.1h.1v.2a.1.1 0 0 1-.2 0zv-.2a.1.1 0 0 1 .2 0zm0 0 .2-.2h-.1s-.1 0 0 .1zm-3.7 3.1.1.3.1-.2h.1l.1.2h.1l-.1.2v-.2l-.1-.1h-.1v.3h.1-.1v-.1zm.7.2q-.2.2-.2 0v-.2q0 .2-.1 0h.2zq0 .2 0 0m0 0-.1-.2zm0-.4h.2v.3h-.2l-.2-.3zm0 0 .2.2h.1v-.2zm.4-.3.2.3-.1.1v-.1l-.1-.1zm.4.2h-.2v-.1l.1-.1h-.1l.1-.1zs0 .1 0 0m0 0v-.2l-.1.1v.1zm.1-.4h.2l.1.2v.1zv.2h.1l-.1.1-.1-.2h-.1v-.1zm.8-.3v.2a.1.1 0 0 1-.2 0h-.1v-.3a.1.1 0 0 1 .2 0h-.1l-.1.1.1.2a.1.1 0 0 0 .2 0zm0-.3v.1zv.4h.1l-.1.1-.1-.2s-.1 0 0 0v-.2zm.2 0 .2.1v-.1h.1v.2a.1.1 0 0 1-.2 0za.1.1 0 0 1 .2 0zm0 0h.2zs-.1 0 0 0v.1zm.2-.5v.1zm.1.2.2.2v.2l-.1-.2zm.5 0-.1.2h-.2v-.3h.1v-.2h-.1zs.1 0 0 0v.1zm0 0-.1-.1v.2zm0-.4h.3v.4h-.2zm0 0v.2l.2.1h.1v-.1l-.1-.1zm-1-9.2.2.1a.1.1 0 0 0-.3 0v.1h.3a.1.1 0 0 1 .1.2h-.1l-.1.1v-.1h.1v-.1h-.2q-.1-.2 0-.2zm.2-.1.2.3h.1l-.1.1-.1-.2v-.1zm.3 0 .2.2v-.3.4zm.4-.3a.1.1 0 0 1 .2 0v.3l-.2-.1a.1.1 0 0 1 0-.2m0 0v.2h.2v-.1s-.1-.1-.1 0zm.4-.2h-.1v.1h.2v.2h-.1v-.1h-.1v-.2zm.2-.1zl.1.2s-.1.1-.2 0h-.1a.1.1 0 0 1 0-.2zm0 0v.2h.2v-.1zm.1-.3h.2v.2zm.3 0s.1 0 0 0v.2h.2l-.2.1zh-.1zm.2-.1zl.1.2h-.3a.1.1 0 0 1 0-.2zm0 0zh.1v-.1zm.3-.2zs.1 0 0 .1v.1h-.1.2zm-2 2.4q0-.2.1 0l.1.1-.1.1v.1h.1l-.1.1zm0 0h.2q0 .2 0 0v-.1zm.3-.2h.2v.1za.1.1 0 0 1 0-.2.1.1 0 0 1 .2 0zm0 0 .2-.1zm.3-.3s.1 0 0 0v.2h.2l-.2.1zm.2 0v-.2h.3l.1.1v.1-.1l-.1-.1h-.1v.2h.1l-.1.1v-.2zl.1.2v.1-.1zm.6-.2h-.1v-.1q0-.2 0 0h-.1v-.1h.1zm0 0zm.1-.3h.2v.2h.1-.1v-.1zl.1.2zm.3-.1h.2a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2h.1zm0 0 .1-.1h-.1zm.5-.2a.1.1 0 0 1-.2 0h-.1a.1.1 0 0 1 0-.2h.2-.2v.2zm0-.2zh.1v-.1.2a.1.1 0 0 1-.2 0zv-.1h.1zm0 0q0-.2-.1 0m.2-.2v.4h.1l-.2-.2zm.3 0h.2a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2.1.1 0 0 1 .2 0zm0-.5q.2 0 .1.1zm.2.2.1.2h.1-.1zm.2-.2zs.1.1 0 .2h-.1.2s0-.1-.1 0h-.1zm-2.7 3h.2v-.1.1za.1.1 0 0 1 0-.2h.1zm0-.1q0-.2-.1 0m.3-.2zv.1zv.2h.1v.1zm.4-.3v-.1h.2v-.1h.1l.1.2-.1-.2h-.1v.4h.1-.1v-.1zl.1.2h-.1zm.3-.5s.1 0 0 0m.1.1.2.3h-.1zm.2 0v-.1h.2s.1.2 0 .2v.3zm.2 0q0 .2.1 0zm.4-.1h-.1v-.2.1h-.1v-.1h.2zs0 .1 0 0m0 0v-.1h-.1q0 .2.1.1m0-.5.2.3v.1zm.5.2v-.2s-.1 0 0 0v-.1zm0 0-.1-.1zv-.1zm0-.3v-.1h.2v.3h-.1l-.2-.3zm0 0 .1.2h.1v-.2zm.3-.2q.2 0 0 0l.1.2v.1zm.4 0h-.2l.1-.2h-.1.1zm0 0s0 .1 0 0m-2.6 2.4zv.2h-.1.1v-.1h-.2zm.2 0h.2v.1a.1.1 0 0 1-.2 0zv-.1h.1zm0 0v-.1zm.2-.3v.2h.1l-.1.1zm.2 0zh.1v-.1.1za.1.1 0 0 1 0-.2.1.1 0 0 1 .2 0zm0 0q0-.2 0 0m.4-.4.2.3zs-.1 0 0 0m.3-.1zv.2h-.1.1v-.1h-.2zm.2-.1.1-.1.2.2v-.2h-.1v-.1l.1.3zm.4-.2zv-.1za.1.1 0 0 1-.2 0v-.3h.1zm0 0q0-.2-.1 0m.2-.3v.4h.1l-.2-.2zm.5 0a.1.1 0 0 1-.1.2h-.2v-.3h.1v-.2zm0 0h-.1q0-.2-.1 0v.1zm.2 0h-.1v-.2h-.1.3zm0 0v-.2l-.1.1s0 .1.1 0zm.3-.3h-.2v-.4zm0 0v-.1h-.2l.1.2zm0-.2.2.1h.1v-.1.1a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2h.1zm0 0h.2q0-.2-.1 0zm.3-.3v.2h.1l-.1.2v-.1zm.4 0v.2l-.1-.1v-.2.1h-.1v-.1h.2zm0 0h-.1q0 .2.1.1zm.1-.2v-.1h.2v-.1h.1l.1.2-.1-.2h-.1v.4h.1-.1v-.1zl.1.2zm.5-.2h.2v.1a.1.1 0 0 1-.2 0l-.1-.1a.1.1 0 0 1 0-.2.1.1 0 0 1 .2 0zm0 0v-.1zm.2-.2v-.2h.2v.2h.1v.1l-.1-.2zv.4l-.1-.2zm.2-.4v.2h.2-.2zh-.1v-.2m.3.1h.2v-.1.2a.1.1 0 0 1-.2 0v-.3zm0 0q0-.2 0 0m-4.5 3.8h.2v-.1h.1l.1.2-.1-.1h-.1v.2h.1-.1v-.1zl.1.2zh-.1zm.3-.5s.1 0 0 .1zm.1.2.2.2h-.1zm.3-.2-.1.1zv.2h-.2v-.3zm.5 0h-.2v-.4zs.1 0 0 0m0 0h-.2l.1.2zm0-.4.2.3zm.3-.1h-.1v.1zv.2h-.1.1zh-.2v-.2zm.4 0a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2zh-.2l.1.2h.1zm0-.3.2.3h.1-.1zm.2 0h.2v.3h-.1v.1h.1-.1zm0 0 .2.2v-.2zm.2-.4s.1 0 0 0m.1.1.2.3zm.1-.2.2.4h.1-.1zm.3 0zl.1.2-.1.1-.2-.1a.1.1 0 0 1 0-.2zm0 0v.2h.2v-.1zm.3-.2v.1h.1s.1.1 0 .2h-.1.2s0-.1-.1 0h-.1zm-1.7 4.3v-.2h.1za.1.1 0 0 1 .2.1v.2h-.1v-.2zm.6-.1-.2.2v-.4h-.1v.1-.1h.2v.3h.1zm.4-.7.2-.1v.6-.1l-.1-.1-.3-.1zv.1l.2.1zm.7 0-.1.1-.1-.1a.1.1 0 0 1 0-.2h.2s0 .1-.1 0v.2zm.1-.3zl.1.1-.1.2-.2-.2zm0 0v.1l.1.1h.1v-.2zm.3-.1v-.2h.1l.1.2v.1zv.2h.1v.1l-.2-.2zm.3-.3zl.1.2s0 .1-.1 0h-.2a.1.1 0 0 1 0-.2zm0 0v.3l.2-.1v-.1zm.5 0a.1.1 0 0 1-.2.1v-.1a.1.1 0 0 1 0-.2h.1l-.2.1.1.1zm0-.2h.2v.1zv-.1h.1zm.2-.3v.2h.1v.1zm.3 0h.2v-.1.1a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2zm0 0q0-.2 0 0m.1-.2.1.2h.1l-.1.1zm.2-.1zs.1.1 0 .1v.1h-.1.2zm.2-.4.3.4h-.1zm.5.3h-.2zv-.1h.2zm0 0zm-4 3.3.2.2v-.3.4zm.3-.2.1.1h.1v-.1.2h-.1zv-.1a.1.1 0 0 1 .2 0zm0 0q0-.2 0 0m.3-.3v.1zv.4h.2-.2v-.2h-.1zm.4.1v.1h-.2v-.4zs.1 0 0 0m0 0h-.2l.1.2zm.3-.2-.1.1h-.1v-.2s-.1 0 0 0zv.2zm0 0s0 .1 0 0m.3-.1h-.2v-.2h.1v-.2h-.1zm0 0-.1-.2h-.2v.1zm.2 0q.2 0 0 0v.1zm0-.5.2.2v-.2zl.1.3v.2s-.1 0 0 0v-.2zm.4-.5.3.4h-.1zm.5.2-.1.1s-.1 0 0 0zv-.1h.1zm0 0-.1.1s0 .1 0 0zm0-.3.2-.1.2.2v-.2h-.1v-.1l.1.3-.2-.1zm.5-.2h.2v.1a.1.1 0 0 1-.2 0 .1.1 0 0 1 0-.2zm0 0v.1m.2-.3v.2h.1l-.1.2v-.1zm.5 0a.1.1 0 0 1-.1.2h-.2v-.3h.1v-.2zv.1zm0 0q0-.2-.1 0v.1h.2zm.2 0v-.2s-.1 0 0 0h-.1v-.1h.2zm0-.1v.2zm.3-.2h-.2v-.4zm0 0h-.2l.1.2h.1zm.3-.5q.2 0 .2.2l-.2.1-.1-.1zm0 0v.4h.2l-.1-.2h-.1zm.3-.2zh-.1zv.2l-.1.1.1-.1h-.2v-.2zm-4.6 3.8v.2l.2-.1.2.2h-.1l-.1-.2zl.1.2h-.1zm.6.1-.1.1h-.1v-.2zm0 0s0 .1 0 0m0-.3v.2h.1l-.1.1-.1-.2zm.4 0v.2l-.2-.1zs-.1 0 0 0h-.1zs0 .1 0 0m0 0v.1h.1zm.1-.5.2.3h.1l-.1.1-.2-.3zm.2-.1.2.3v.1-.1l-.1-.1s-.1 0 0 0zm.3 0h.2v.2h-.1l-.3-.2v-.1zm0 0v.2h.2v-.2zm.2-.2v.2h.1l-.1.1-.1-.2zm.2 0zh.2v-.1.1a.1.1 0 0 1-.2 0za.1.1 0 0 1 0-.2.1.1 0 0 1 .2 0zm0 0q0-.2 0 0m.4-.3zh.2v.2h-.1v-.1h-.1zm.2.1"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/dz.svg b/apps/web/public/flags/dz.svg
new file mode 100644
index 00000000..5ff29a74
--- /dev/null
+++ b/apps/web/public/flags/dz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dz" viewBox="0 0 640 480">
+ <path fill="#fff" d="M320 0h320v480H320z"/>
+ <path fill="#006233" d="M0 0h320v480H0z"/>
+ <path fill="#d21034" d="M424 180a120 120 0 1 0 0 120 96 96 0 1 1 0-120m4 60-108-35.2 67.2 92V183.2l-67.2 92z"/>
+</svg>
diff --git a/apps/web/public/flags/eac.svg b/apps/web/public/flags/eac.svg
new file mode 100644
index 00000000..59d02d21
--- /dev/null
+++ b/apps/web/public/flags/eac.svg
@@ -0,0 +1,48 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eac" viewBox="0 0 640 480">
+ <path id="eac-a" fill="#fff" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 326.4h640V348H0z"/>
+ <use xlink:href="#eac-a" width="600" height="330" transform="translate(0 -194.4)"/>
+ <path id="eac-b" fill="#0087ff" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 348h640v132H0z"/>
+ <use xlink:href="#eac-b" width="600" height="330" transform="translate(0 -348)"/>
+ <path fill="red" d="M0 290.4h640v36H0z"/>
+ <path fill="#000001" d="M0 153.6h640v36H0z"/>
+ <path fill="#ff0" d="M0 206.4h640v67.2H0z"/>
+ <path id="eac-c" fill="#008300" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 273.6h640v16.8H0z"/>
+ <use xlink:href="#eac-c" width="600" height="330" transform="translate(0 -84)"/>
+ <g transform="translate(41.1 674.6)scale(.87273)">
+ <path fill="#fff" stroke="#000" stroke-width="2" d="M319.6-589.5a80 80 0 0 0-56.7 136.3l-34.2 11 3.1 7.8-11 2.4 8 25.6h181.6l7.9-25.6-11-2.4 3.1-7.9-34.2-10.9a80 80 0 0 0-56.6-136.3z"/>
+ <path fill="#008300" d="m230.5-431.6 7 22.6h164.2l6.9-22.6z"/>
+ <path fill="#fff" d="m234.9-428.7 5.1 16.8h159.1l5.1-16.8H275.4z"/>
+ <path d="M140.8 811.3q0 2.6-.6 5-.6 2.3-2.1 4t-4 2.8-6.4 1q-3.5 0-6-.8-2.6-.9-4.3-2l2.7-6.3q1.5.9 3.3 1.5t3.7.7q3 0 4.3-1.5 1.3-1.4 1.3-4.9v-23.5h8.1zm22 12.8q-3.9 0-6.6-1-2.8-1.1-4.6-3t-2.7-4.5q-.8-2.7-.8-5.8v-22.5h8.1V809q0 2.2.5 3.7t1.4 2.5 2 1.4q1.3.4 2.8.4 3 0 4.8-1.8t1.8-6.2v-21.8h8.2v22.5q0 3.1-1 5.8-.8 2.6-2.6 4.6t-4.7 2.9q-2.8 1-6.6 1zm32.2-36.8q1 1.7 2.2 4.3l2.6 5.4 2.6 6 2.5 5.8 2.4-5.8 2.6-6 2.6-5.4q1.2-2.6 2.2-4.3h7.4l1 8 .7 9.3q.4 4.8.6 9.7l.5 9.1H217l-.4-11.5-.8-12.5-2 4.9-2.4 5.3q-1 2.7-2.1 5.1l-1.8 4.1h-5.7l-1.7-4.1-2.2-5.1-2.3-5.3-2-4.9q-.6 6.3-.8 12.5l-.4 11.5h-8l.5-9.1.6-9.7.8-9.2 1-8.1zm51.4 36.8q-3.8 0-6.6-1-2.8-1.1-4.6-3t-2.7-4.5q-.8-2.7-.8-5.8v-22.5h8.1V809q0 2.2.5 3.7t1.4 2.5 2 1.4q1.3.4 2.8.4 3 0 4.8-1.8t1.8-6.2v-21.8h8.2v22.5q0 3.1-1 5.8-.8 2.6-2.6 4.6T253 823q-2.8 1-6.6 1zm22.6-36.8h8.2v36.1h-8.1zm29.8 14.8 4.2-7.4q2-3.7 3.6-7.4h9q-3 5.8-6.2 11.3t-6.7 11v13.8h-8.1v-13.7q-3.6-5.5-6.8-11t-6.2-11.4h9.5q1.6 3.7 3.6 7.4zm40.2 21.3-1.3-3.8-1.4-4h-14l-1.5 4-1.2 3.8H311l3.9-10.8 3.5-9.3 3.5-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.8-28q-.2.9-.8 2.2l-1.2 3.1-1.5 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm48.9 6.7 4.2-7.4q2-3.7 3.6-7.4h9q-3 5.8-6.1 11.3-3.2 5.5-6.8 11v13.8h-8v-13.7l-6.8-11q-3.2-5.6-6.1-11.4h9.4l3.6 7.4zm40.2 21.3-1.3-3.8-1.4-4h-14l-1.4 4-1.3 3.8h-8.4l3.8-10.8 3.6-9.3 3.4-8.3q1.7-4 3.6-7.7h7.7q1.8 3.7 3.5 7.7l3.5 8.3 3.6 9.3 3.8 10.8zm-9.7-28-.8 2.2-1.2 3.1-1.5 4-1.6 4.4h10.2l-1.6-4.5-1.5-3.9-1.2-3zm59.8 28-1.3-3.8-1.4-4h-14l-1.4 4-1.3 3.8h-8.4l3.8-10.8q1.8-5 3.6-9.3l3.4-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.8-28-.7 2.2-1.2 3.1-1.5 4-1.7 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm23.2 28v-36.1H506v6.8h-16v7.6h14.2v6.8h-14.3v15zm40.5-36.5q8.1 0 12.4 2.9t4.4 9q0 3.8-1.8 6.2-1.7 2.3-5 3.7l2.3 3 2.3 3.7 2.3 4 2 4h-9l-2.1-3.6-2-3.5-2.2-3.3-2-2.8h-4v13.2h-8.2v-35.6q2.7-.5 5.5-.7l5-.2zm.5 6.9H521l-1.3.2v9.8h2.3q4.6 0 6.6-1.2t2-3.9-2-3.7q-2-1.2-6-1.2zm23.7-6.5h8.1v36.1h-8.1zm37.8 36.1q-1.1-1.8-2.6-3.8l-3.3-4.1q-1.7-2.1-3.6-4t-3.7-3.4v15.3h-8.2v-36.1h8.2v13.6q3.2-3.3 6.3-6.9l6-6.7h9.7q-3.7 4.4-7.5 8.4t-7.8 8.2q4.3 3.6 8.3 8.6t7.8 11zm39.7 0-1.2-3.8-1.4-4h-14l-1.5 4-1.2 3.8h-8.5l3.9-10.8 3.5-9.3 3.5-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.7-28-.7 2.2-1.2 3.1-1.6 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm45.3-8.1q1 1.7 2.1 4.3l2.6 5.4 2.6 6 2.5 5.8 2.4-5.8 2.6-6 2.6-5.4q1.2-2.6 2.2-4.3h7.4l1 8 .7 9.3q.4 4.8.6 9.7l.5 9.1h-7.9l-.4-11.5-.8-12.5-2 4.9-2.4 5.3q-1 2.7-2.1 5.1l-1.8 4.1h-5.7l-1.7-4.1-2.2-5.1-2.3-5.3-2-4.9q-.6 6.3-.8 12.5l-.4 11.5h-8l.5-9.1.6-9.7.8-9.2 1-8.1zm61.4 36.1-1.4-3.8-1.3-4h-14.1l-1.4 4-1.3 3.8h-8.4l3.8-10.8 3.6-9.3 3.4-8.3q1.7-4 3.6-7.7h7.7q1.8 3.7 3.5 7.7 1.8 4 3.5 8.3l3.6 9.3 3.8 10.8zm-9.8-28-.8 2.2-1.2 3.1-1.5 4-1.6 4.4h10.2l-1.6-4.5-1.5-3.9-1.2-3zm34 21.8q1.7 0 2.8-.3t1.8-.7q.7-.6 1-1.2.2-.7.2-1.5 0-1.8-1.7-3t-5.7-2.5l-3.6-1.4q-1.7-.9-3.1-2-1.4-1.3-2.3-3-1-1.8-1-4.3t1-4.5 2.7-3.4 4.2-2.2q2.4-.7 5.5-.7 3.6 0 6.3.7 2.6.8 4.4 1.8l-2.4 6.4q-1.5-.8-3.4-1.4t-4.4-.6q-3 0-4.2.8t-1.3 2.5q0 1 .5 1.6t1.3 1.3l2 1 2.5.9q2.8 1 4.9 2 2 1 3.4 2.4t2.1 3.2.7 4.4q0 5-3.6 7.9-3.5 2.7-10.6 2.7-2.4 0-4.4-.3-1.9-.2-3.4-.7l-2.6-.8-1.7-1 2.3-6.4q1.6.9 4 1.6 2.3.7 5.8.7m42.2-29.9h8.2v36.1h-8.2v-15.3h-13.6v15.3h-8.2v-36.1h8.2V801h13.6zm40.6 36.1-1.2-3.8-1.4-4h-14l-1.5 4-1.2 3.8h-8.5q2-5.8 4-10.8 1.7-5 3.5-9.3l3.4-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.7-28-.7 2.2-1.2 3.1-1.6 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm33.7-8.5q8.2 0 12.5 2.9t4.3 9q0 3.8-1.7 6.2-1.8 2.3-5 3.7l2.3 3 2.3 3.7 2.3 4 2 4h-9l-2.1-3.6-2.1-3.5-2-3.3-2.2-2.8h-4v13.2h-8.1v-35.6q2.6-.5 5.4-.7zm.5 6.9H851l-1.3.2v9.8h2.3q4.6 0 6.6-1.2t2-3.9-2-3.7q-2-1.2-6-1.2zm23.7-6.5h8.2v36.1h-8.2zm37.8 36.1q-1-1.8-2.6-3.8-1.4-2-3.2-4.1-1.7-2.1-3.6-4t-3.8-3.4v15.3h-8v-36.1h8v13.6q3.2-3.3 6.4-6.9l6-6.7h9.6q-3.7 4.4-7.4 8.4t-7.8 8.2q4.3 3.6 8.3 8.6t7.8 11zm14.4-36.1h8v36.1h-8z" aria-label="JUMUIYA YA AFRIKA MASHARIKI" font-family="Times New Roman" font-size="52.1" font-weight="700" style="-inkscape-font-specification:&quot;Ubuntu Bold&quot;" transform="matrix(.18901 0 0 .21163 219.5 -590.5)"/>
+ <g id="eac-d" fill-rule="evenodd">
+ <path fill="#008300" d="m230.5-431.6 10.4-2.8-3.2-5.7 17.9-6.7v6.1h5.5v9.3h-30Z"/>
+ <path fill="#fff" d="M258.5-431.4h-21.8l21.8-5.9zm-4.8-9.2H244l10-3.8zM241-439l2.2 4 14.5-4z"/>
+ </g>
+ <use xlink:href="#eac-d" width="600" height="330" transform="matrix(-1 0 0 1 639.1 0)"/>
+ <path fill="#ff0" stroke="#000" stroke-width="1.2" d="M317.7-580A70.8 70.8 0 0 0 294-443.4v-7.8a63.5 63.5 0 0 1 25.2-121.6h.5a63.5 63.5 0 0 1 25.6 121.6v7.8A70.7 70.7 0 0 0 319.6-580z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="m339-458.3.1 10.6c-6.4 1-13.5 7.6-15.4 8.8s-5 3.8-6.7 3.6c-2.9-.4-.8-2.7-.8-2.7s-2 2.4-3.4 1.3c-1.4-.9.8-2.7.8-2.7s-.7 1-2.2.5c-1.4-.4-.4-2-.4-2s-3.8 2-4.5 1.3c-1-1.3.4-2.5.4-2.5l8.9-7.5s-5.8 2.1 0 0c4.9-2 6.3.8 8.5.6a28 28 0 0 0 10.2-5.1c1.7-1.7 1.2-3.5 2.5-4s2-.2 2-.2z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="m300-457.5-.1 9.8c6 .8 12.7 7.2 14.5 8.4 1.7 1.1 4.7 3 6.3 2.8 2.6-.3 2-1.3 2-1.3s1.2.6 2.8 0 .8-1.7.8-1.7 2.4.7 3.4-.6c1-1.1-1-2.3-1-2.3s1-.7-.6.2-4.8-2.8-8-3c-3.3 0-3.6 3.2-5.6 1.7-2.1-1.6 1.6-4.2 2.9-4.6 5.1-1.7 9.9.4 3.7-2-3.2-1.2-5.7 1.1-7.8 1-2.2-.1-7.6-3-9-4.6-1.6-1.6-1.2-3.2-2.4-3.7q-1.8-.4-2-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".8" d="m326.4-439.5-4.3-1.8m1.1 3.7-5-3"/>
+ <g id="eac-e" fill="#008300" fill-rule="evenodd" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width=".4">
+ <path d="M291.8-462.6c-12.4 6-13-9.8-18.6-9.6 10.5-7 8.8 6 18.6 9.6zM287-480c-6.2 11.3 8.3 12.8 7.8 18.3 7.1-9.6-5-8.8-7.8-18.3z"/>
+ <path d="M281-475.6c-15.3 2.6-11.1-10.6-17.5-11.7 13.5-4 7.7 6.2 17.5 11.7z"/>
+ <path d="M279.4-491.2c-8.4 9.9 3.7 10.4 2.3 15.6 8.7-8-.3-7.7-2.3-15.6zm-8.8 1.8c-15.2-2.2-5.6-17.7-10.2-21 12.5.9 4.4 14.5 10.2 21z"/>
+ <path d="M276.4-509c-14 6.7.1 13.9-5.4 20 13.8-.7 1.6-9.7 5.4-19.8zm-7.8.5c-16.3-7.4.7-21.4-2.2-26.5 11.1 11.3-5.8 15.5 2.2 26.5z"/>
+ <path d="M279-527.3c-14 1.8-7 14.7-9.9 19.3 11-2.5 2.2-9 10-19.3zm-6.8-3.9c-7.9-12 5.3-14.7 6.2-20.8 3.8 15.8-5.2 10.7-6.2 20.8z"/>
+ <path d="M288-541.2c-13-3.7-10.6 9.4-15 12.5 11 1.8 8.7-8.7 15-12.5zm-6-5.6c-2.6-10.4 2.6-8.7 8.5-13.3 3.2 8.4-4.7 7.4-8.5 13.3zm16.6-1.6c-10-7.4-11.1 2.6-16.3 4 9.6 5.7 10-2.8 16.3-3.9zm-6-5c.3-4.5 6.3-10.4 12.5-8.4-.3 7.5-7.5 9.4-12.5 8.5z"/>
+ </g>
+ <use xlink:href="#eac-e" width="600" height="330" transform="matrix(-1 0 0 1 639.1 0)"/>
+ <path fill="none" d="M304.6-557s7.3-2 14.7-1.8c7.3 0 14.7 2 14.7 2"/>
+ <path d="m188.2-240.9.8 4.7 2.5-.5q1-.1 1.3-.5t.3-1.5h.3l.7 4h-.3l-.4-1-.6-.4h-1.1l-2.6.5.6 3.9.3 1 .3.1h.6l2-.3 1.4-.4.8-.7q.5-.6.8-1.8h.4l-.5 3-9 1.6-.1-.3h.4l.7-.4q.3-.2.3-.5v-1.2l-1.4-7.6q0-1.1-.4-1.3-.4-.3-1.1-.2h-.4v-.2l9-1.6.5 2.6h-.3l-.6-1.2-.8-.4h-1.2zm17.2 5.7h-4.6l-.8 1.9-.3 1q0 .3.3.5t1.1.3v.3h-3.7v-.3q.7 0 1-.3l1-1.8 4-9.8h.4l4.2 9.9q.5 1.2.9 1.5t1.1.4v.4h-4.7v-.3q.7 0 1-.3.2-.2.2-.5l-.3-1.2zm-.2-.7-2-4.8-2.1 4.9zm17.8-5.5-.4 4h-.3a5 5 0 0 0-1-2.8 4 4 0 0 0-2.3-1.2 4 4 0 0 0-2.2.2 4 4 0 0 0-1.9 1.6q-.7 1.2-1 3.2a7 7 0 0 0 0 2.8q.3 1.4 1.2 2 1 1 2.3 1.1 1 .2 2-.1t2.3-1.6l.3.2q-1.2 1.4-2.5 2-1.3.5-3 .2-2.9-.5-4-3a6 6 0 0 1-.6-4q.3-1.7 1.3-3t2.6-2a6 6 0 0 1 5.6.8l.4.3.5-.1.4-.6z" font-family="Times New Roman" font-size="18" font-weight="400" style="line-height:125%;text-align:start" transform="translate(167 -386.8)scale(.74556)"/>
+ <path fill="red" d="M317.2-550.3q-1.5 0-2.9.4a13 13 0 0 1-7 5.8l-.6.2a13 13 0 0 1-9.7.3 42 42 0 0 0-7.6 6.5 13 13 0 0 1-2 9.5 13 13 0 0 1-7.2 6.4q-1.5 4.9-1.7 10c2 1.5 3.7 4.4 4.4 7.9l.2.7c.7 3.8 0 7.4-1.4 9.5q2 4.7 5 8.7c2.4-.2 5.6 1 8.4 3.1l.5.5c3 2.5 4.8 5.6 5 8.2q4.6 2.4 9.7 3.5c1.8-1.7 5-3 8.6-3h.7c3.9 0 7.3 1.2 9.2 3q5.1-1.1 9.6-3.5a13 13 0 0 1 5-8.3 14 14 0 0 1 9-3.5q3-4 5-8.5a13 13 0 0 1-1.5-8.9v-.6q1.4-6 4.7-8.6a41 41 0 0 0-1.7-10 13 13 0 0 1-6.8-5.9l-.4-.6c-2-3.4-2.6-7-2-9.5a39 39 0 0 0-7.9-6.7 13 13 0 0 1-9 0l-.7-.3a14 14 0 0 1-7.6-6q-2.4-.3-5-.3zm8 81.9"/>
+ <path fill="#fbf014" stroke="#000" stroke-width=".4" d="M354.7-509.4a35.1 35.1 0 1 1-70.3 0 35.1 35.1 0 0 1 70.3 0z"/>
+ <path fill="#fbf014" stroke="#000" stroke-width=".4" d="M351.7-509.4a32.2 32.2 0 1 1-64.4 0 32.2 32.2 0 0 1 64.4 0z"/>
+ <g fill-rule="evenodd" stroke="#000" stroke-width=".4">
+ <path fill="#0087ff" d="m310-525.2 10.6 1.9-1.4 10.6-9 6.2-5-5.5.3-8.7z"/>
+ <path fill="#fff" d="m307-517.4-4.2.2h-.4v.2h-.1l-.1.3-.4.2v.2l-.3.2-.4.2h-.1l-.1-.4h-.6l-.3.1v-.5l-.1-.1v-1h.2v-.9l.1-.2v-.2l.3-.3.3-.1v-.3l.1-.3.1-.1-.1-.2-.3.2-.3-.2v-.6l.3-.2.1.1.2-.8.3-.3-.2-.5.2-.3-.1-.4.9-.3v-.3l.1-.4.4-.1.3-.2.2.5v.3h.2l.2-.4.2-.1v-.3l.6-.7.2-.2.4-.2h.4l.3-.4v-.4h.2l.2-.2-.1-.3v-.7h-.2v-.2l-.2.3-.2-.1v-.3h-.6l-.2-.4-.2.1v.3l-.2-.1v-.4h-.4l.1-.4.4-.7v-.4l-.4-.4.3-.8.4-.4v-.5l-.3.1.4-.5.7-.3h.4l.6.4.2-.1h.3l.5-.4.5.4v.3h.4l.1.2h.3v-.3l.7-.3 1-.1.9-.5.5.4h1.1l1.7-1.5 5.2 1.2-.3 9-5.4 3-.3-.2-.1.1h-.1v-.5h-.3v.6h-.4l-.4-.2v-.2h.4v-.1l-.3-.1h-.3v-.2l.3-.2v-.1l-.3.2-.2-.1-.2.1.2.3-.3.2v.2l-.4-.1v.2h.2l-.6.4-.2-.2v-.1l-.3.2h-.4v-.1l.4-.1-.1-.1h-.3v-.3l-.1.3h-.2v.5h-.4l-.1-.2s-.3 0-.2.2v.3l-.3-.2h-.2v.3h-.2l-.4-.2.2.3h-.4l-.2.1.2.2.1.2.2.2-.1.1h-.1l-.3.3h-.2l-.1.3-.2.1.1.2h.1v.2h-.1l-.4.4v.1h.3z"/>
+ <path fill="#fff" d="m314.2-517.3 11.5 6.3.1.9-.4.2.1.4.4.1.1.4 4.5 3.2.3-.2.4.2.1-.4.3-.3.5-1.1-.3-.1.2-.4h.2l.4-.5v-.4l-.2-.3.3.1.4-.9.4-.1.1-.7.2-.2s-.2-.8 0-1.1 1.3-.3 1.3-.3l.6-.7v-.2l.4-.3-.4-.7.8.2.6-.2h.4l.6-.8v-.3l-1.9-2.4v-11.7l1.1-1 1.8-2.5-.5-.2-1.8.2-.5-.6h-.2l-.1-.4-.4-.2-3 1.4-.1.5-.7.6v.4h-.2l-.2-.1-3.1-.7-.2.2h-1l-3.7-2.7h-2.7l-.6-.2v-.3h-5l-1 1 .2 1.3h.5l.2.6h.5l-.1.6h-.1v.7l.2.3.3.2v.5l.6.3.1.7.4.2v.3l-.2.4.4.6-.1.4.2.5v.2l-.1.6-.3.2-.1.4h-.2v.8h-.5l-.2.3-.3-.1v.7l-.3.4h-.3v.3l-.4.2-.1.5v.5l-.5.2v.9l.3.1h.2l-.1.3.3.1.2.5.4-.3v-.3h.5l.6-.3.2.4.2.3h-.4l-.1.2h-.3l-.5-.1v.2l.2.2-.3.2-.1-.2-.3.1h-.2l-.3-.2v.4h-.2l-.2.5.3.3.3.2-.3.4zm17.6 21.8.4-.3v-.2h.4l.2-.5v.5l-.2.2v.3h-.2v.3l-.1-.2zm-1.2-5.6v-.7l-.1-.1.4-.3v-.4l.5-.2v.4h-.3v.6l.2.3v.3l.3.2.3.4v.3l-.3.1-.4-.5-.4.1zm1.5-2.6v-.4l.2-.4-.3-.8h.4l.1.4h.2v-.3s.2-.1.2 0l-.1.9.1.4-.2.3-.3.3z"/>
+ <path fill="#fff" d="m334.4-487.5-1.3 1-1.8.8-.5.3h-.9l-.7.2-.4.2-.5.5-.8-.5h-1l-.3.3v.5l-.7.3h-.3l-.3.2-1-.1-.4-.4-.5.1-.8.6-.4-.1v-.2h-.3l-.2.2-.5-.1v-.4h-.3l-.4-.6h-.5l-.1.3-.4.3-.4-.1h-1.5l-.4-.7h-.4l-.4-1v-.5l.2-.2v-.6l-.4-.3.1-1-.1-.2-.1-.4-.7-.7v-.3l-.8-.6h-.3v.6l-.4-.1-.2-.3-1 .2-.4-.5-.5.1-.4-.3h-.5l-.4-.4h-.9l-.2-.6h-.6l-.2-.1h-.7v-.3l-.8-.1-.4-.3v-.5l-.6-.3-.5.1-.2-.6-.5-.4-.1-.6-.7-1v-.4l-.4-.4v-.8l-.3-.4v-.4h.2v-.3l-.5-.4-.2-.4-.8-.6h-.6l-.7-.8v-.4l.3-.4h.4l.1-.3v-.3l-.7-1v-.5l.3-.2-.1-.6-.6-.6v-.6l.1-.5v-.2l.6-.2.3-.2.3-.3v-.3l.6-.2v-.3l.5-.6v-.3l.3-.5.7-.3v-.2l.5-.3v-1l-.2-.1h-.3l-.3-.1h-.5v-.3l.3-.4-.2-.2.3-.6 1-.1v-.7l.1-.3-.4-.5v-1l-.2-.3v-.3l-.5-.3-.4-.7h.6l.3-.3h3.5l.1.3v.4l-.2.5-.1.3v.2l-.1.4v.4l-.2.2v.3l-.2.2h.3v.5l-.2.4h.8l-.3.6-.1.4.1.6.4-.4.3.3v-.5l.1-.4.4.2.1-.2-.2-.4.4-.4.4.5.3.1.2.5.3-.6.1.4h.4v.4l.3.4-.4.2v.5h.3v-.5h.4l-.2-.5-.1-.4.4-.6h.4l.2.5h.7l.6-.6.8-.3-.2-.5h-.2l-.3.3-.9-.1-.3-.2-.2.2h-.3l-.8-.3v-.3l-.2-.1.4-.2.2.3h.2l.3-.1.4.3.6-.1v-.3l-.4-.1v-.3h.7l.1-.2.5-.2-.3-.4v-.2l1 .2-.5-.4.1-.4.6.4v-.2l-.4-.3.6-.6 11.6 6.3.1.9-.4.3v.4h.5v.4l4.5 3 .3.5-.3.3-.2.4-.1.7-.2.4v.6l-.4.4-.3.7v.5l.3.4-.2.6.5.4h.3l.9 1 .4.4.2.5-.2.5-.3.1-.3 1v.6l.4.4-.1.4-.2.6-.2.6.2.6.2.5.2.2v.4h-.2l.3.5.4.2v.8h-.1v.2l.4.3.2 1-.2.3v.2h.6l.2.5.4-.1.7.3.3.5z"/>
+ </g>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M298.1-512.9c-.3-.3 1-1 .8-1.5q0-1.3 1.6-1.7l.6-.4c.3.2.3.7.6.4s1-1.3 1.5-1.1c-.3.4.3 1.2.7 1.5l.6 1.9q-.2.9-1.4.6c-.8-.3-1 .3-1.6-.2-.1.7 0 1.3-.9 1.6q-.9 0-1-.3-.7-.8-1.2 0-.2-.2-.3-.8" class="eac-landxx eac-rw"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M298.4-512.1c.5-1.1 1.1.1 1.3.1 1.5.2 1.5-.1 1.8-1.5.8.6.5 0 2.2.4-.3 0-1 .8-.5.8-.4 1.1.5 1.1 1.1 1-.3.4.5.6-.3 1-.5.3-.5 0-.5.7l-.6.1c-.1.2.3.6.2.6q0 .2-.6.8t-1.3 1l-.7.2-1-1.8q0-.8-.3-1.6v-.9q-.5-.4-.8-1" class="eac-landxx eac-bi"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ec.svg b/apps/web/public/flags/ec.svg
new file mode 100644
index 00000000..88c50bf6
--- /dev/null
+++ b/apps/web/public/flags/ec.svg
@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ec" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#ffe800" d="M0 0h640v480H0z"/>
+ <path fill="#00148e" d="M0 240h640v240H0z"/>
+ <path fill="#da0010" d="M0 360h640v120H0z"/>
+ </g>
+ <g fill-rule="evenodd">
+ <path d="M269.6 290.8 197 367.3l-1.2-1.6 72.4-76.5 1.2 1.6zm50.4 12.5-94.8 100-1.6-1.6 94.7-100z"/>
+ <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(-.07 -.07 -.1 .1 265 429.6)"/>
+ <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(-.07 -.07 -.1 .1 240.6 390.5)"/>
+ </g>
+ <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+ <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+ <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+ <path fill-rule="evenodd" d="m206.2 116 72.4 76.5 1.3-1.6-72.4-76.5z"/>
+ <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <g stroke="#000">
+ <path fill="none" stroke-width="2.3" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.4 -.03 -.05 .35 135.1 147.4)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.14 -.22 .3 .14 175.9 257.4)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 177.6 256.7)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.18 .12 -.13 .33 181 96.4)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.17 -.03 -.03 .33 179.3 159.3)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.06 .25 -.17 .2 228 45.5)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.2 -.2 .2 .24 150.3 241)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.22 -.22 .25 .2 135.6 282.1)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.26 .1 -.2 .32 130.8 147.7)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.15 .2 -.32 .22 178.5 103.3)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.08 .1 -.14 .16 250.7 102.6)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.1 0 -.08 .17 238 136.4)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(0 .14 -.14 .08 287.4 81.1)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.07 .1 -.25 .15 220.7 115.6)"/>
+ <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.13 .22 -.33 .2 207 70.1)"/>
+ <path fill="none" stroke-width="2.4" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.35 -.2 .14 .28 111.8 227.8)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 200.3 224.6)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 211.1 218.3)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 166.8 232.7)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 170 231.3)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 168.1 234.3)"/>
+ <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M252.7 167.3q.5 1.4-1 2.3c-1.5.9-2 .2-2.4-.7s0-1.8 1-2.3 2-.2 2.3.7z"/>
+ <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255 164.9q.5 1.4-1 2.3c-1.5.9-2 .2-2.5-.6s0-1.9 1-2.4 2-.1 2.4.7z"/>
+ <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255.5 166c.4.8 0 1.9-1 2.3s-2 .2-2.4-.6 0-1.8 1-2.3 2-.2 2.4.6z"/>
+ </g>
+ <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill-rule="evenodd" d="m183.8 158 94.8 100 1.7-1.6-94.8-99.9z"/>
+ <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m460.6 184.3 17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(.14 -.14 .1 .1 86.3 192.2)"/>
+ <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m557.8 95.7-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(.1 -.16 .14 .1 114 183.8)"/>
+ <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.4 0 0 .3 43.8 69.8)"/>
+ <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.38 .1 -.15 .3 76 38.2)"/>
+ <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M186.7 151.5c0 1-1 2-2.2 2s-2.2-1-2.2-2 1-1.8 2.2-1.8q2 .2 2.1 1.8zm-3.2 4c0 17.9 10.5 93.9 11.3 95.8 0 2.2-2.3 3.2-3.5.4-3.3-8.7-10.4-80-10.7-96.6-.1-6.9 1.9-7.4 4.2-7.3 1.9.1 4.1 1.9 4.1 4 0 2.4-2.9 4.3-5.4 3.7z"/>
+ <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.48 .15 -.2 .48 16.7 31.6)"/>
+ <g fill-rule="evenodd">
+ <path d="m370.4 290.8 72.5 76.5 1.3-1.6-72.5-76.5zM320 303.3l94.8 100 1.6-1.6-94.7-100z"/>
+ <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(.07 -.07 .1 .1 375 429.6)"/>
+ <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(.07 -.07 .1 .1 399.4 390.5)"/>
+ </g>
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#ffdf00" stroke="#000" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+ <path fill="#0000c4" stroke="#000" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+ <path fill="#e10000" stroke="#000" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+ <path d="m433.8 116-72.4 76.5-1.3-1.6 72.4-76.5z"/>
+ <g fill="#005b00" stroke="#000">
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.16 -.07 .08 .35 309.5 211)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.05 .07 .4 291.5 182.6)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 .14 -.03 .4 296.5 69.4)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.25 .03 .02 .44 274.4 115)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.18 .17 -.04 .35 330 67)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 0 .03 .4 280.6 141.9)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.07 .07 .38 290.1 196.8)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.03 .05 .4 292.7 166.8)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.22 .15 -.05 .38 305 65.5)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .05 0 .44 278.9 97.7)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.17 .17 -.06 .33 339 70)"/>
+ <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .02 0 .4 276.4 128)"/>
+ </g>
+ <path fill="#ffdf00" stroke="#000" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+ <path fill="#0000c4" stroke="#000" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+ <path fill="#e10000" stroke="#000" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+ <path d="m456.2 158-94.8 100-1.7-1.6 94.8-99.9z"/>
+ <path fill="#cececc" stroke="#000" d="m460.6 184.3 17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(-.14 -.14 -.1 .1 553.7 192.2)"/>
+ <path fill="#cececc" stroke="#000" d="m557.8 95.7-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(-.1 -.16 -.14 .1 526 183.8)"/>
+ <path fill="#e10000" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.4 0 0 .3 596.3 69.8)"/>
+ <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.38 .1 .15 .3 564 38.2)"/>
+ <path fill="#e10000" stroke="#000" stroke-width=".7" d="M453.4 151.5c0 1 1 2 2.1 2s2.2-1 2.2-2-1-1.8-2.2-1.8q-2 .2-2.1 1.8zm3 4a1152 1152 0 0 1-11.2 95.8c0 2.2 2.3 3.2 3.5.4 3.3-8.7 10.4-80 10.7-96.6.1-6.9-1.9-7.4-4.2-7.3-1.9.1-4.1 1.9-4.1 4 0 2.4 2.9 4.3 5.4 3.7z"/>
+ <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.48 .15 .2 .48 623.3 31.6)"/>
+ </g>
+ <g fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+ <path fill="#e10000" d="M478.4 698a53 53 0 0 0 53.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
+ <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
+ <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .46 112.5 51)"/>
+ <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .46 112.5 51)"/>
+ <path fill="#e10000" d="M478.4 698a53 53 0 0 0 53.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+ <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
+ <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
+ <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
+ <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
+ </g>
+ <g fill-rule="evenodd" stroke="#000">
+ <path fill="#908f8a" stroke-width="4.5" d="m198.6 78-89.7 35.4 89.7 35.4 44.8-17.7 22.4 17.7 22.4 35.4 22.5-35.4 22.4-17.7H1535V95.7H333l-22.4-17.8c0-17.7 4.7-35.4 22.5-35.4h89.6c0-17.7-44.8-53.1-134.5-53.1-89.6 0-134.5 35.4-134.5 53.1h89.7c17.7 0 22.4 17.7 22.4 35.5l-22.4 17.7z" transform="matrix(.12 0 0 .22 217.8 324.4)"/>
+ <path fill="#b74d00" stroke-width="1.8" d="M204.3 95.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.7H541V78H204.4zm0-17.7H541v17.7H204.4zm0-17.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.6H541V7H204.4z" transform="matrix(.28 0 0 .27 216 334.6)"/>
+ <path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 171.9 315.2)"/>
+ <path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 171.9 382.2)"/>
+ <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 159.6 315.2)"/>
+ <path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 216.2 315.2)"/>
+ <path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 216.2 382.2)"/>
+ <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 238.4 315.2)"/>
+ <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 204 315.2)"/>
+ <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 194 315.2)"/>
+ </g>
+ <g fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+ <path d="M655.5 396.9c0 88-55.6 159.4-124 159.4s-124-71.4-124-159.4 55.5-159.5 124-159.5 124 71.4 124 159.4zm-17.7 0c0 78.2-47.6 141.7-106.3 141.7s-106.3-63.5-106.3-141.7c0-78.3 47.6-141.8 106.3-141.8s106.3 63.5 106.3 141.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a83 83 0 0 1 82.7 0z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a83 83 0 0 1 82.7 0z" transform="matrix(.58 0 0 -.62 9.8 479.3)"/>
+ </g>
+ <path fill="#a7cfff" fill-rule="evenodd" d="M379.6 235.9c0 48.5-27.7 87.8-61.7 87.8s-61.6-39.3-61.6-87.8 27.6-88 61.6-88 61.7 39.4 61.7 88"/>
+ <path fill="#afff7b" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c1.1 26.6-4.6 39.6-11.9 67.3-1.9 3-11-6.5-16.4-11.2s-7.8 4.2-14.6-3c-6.7-7.4-11 2-16-4.2s-51.3-7-51.3-7.6c4.6-2.2 28.2.2 24.4-11.1-4.3-11.8-31-.4-34.6-15.4-2.5-15-53.6-15.6-57.3-19.2 1.5 5.6 39.8 8 38.9 22.5-.9 6-37.7 7.7-41.3 12.7-3 6.3 29-1.7 30.1 6 0 3.2-4.7 0-21.3 5-8.4 2.5 15.4 10.3 6.4 14.6s-28.3 6.2-27.5 8c3 9 44.7 19.6 40.6 21.1-14.8 6.6-22.6 10.9-29.7 14.7a168 168 0 0 1-31.1-100.2c31.7-11.4 25-13.8 83.6-13.8s78 2.3 129 13.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c-8 0-16.4 3.4-25 3.4s-17.5-3.5-26.5-3.5-19.3 4.6-28.5 4.6c-9.3 0-17.4-4.5-26.7-4.5s-18.6 3.4-27.8 3.4-18.3-3.5-27.2-3.5-17.7 3.5-26.2 3.5-16.8-3.5-24.7-3.5q.2-29.4 8.4-55.1c27 2 11-15.7 27-15.7a33 33 0 0 1 25.3 9.8c2.4 0 14.4-11.4 27.9-9.8s8.5 27.3 26.4 28.6c9 6.8 14.3 11.1 26.7 13.9 17.7 1.6 68.4-2.5 68.7-.2a188 188 0 0 1 2.2 28.6z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-.2-3.5 10.3-7 14.9-7.4s8.5 7.4 8.5 9.1-4.7-4.2-8.6-4.3-12.3.6-12.3 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(.2 0 0 .48 217.2 59.5)"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-1-4 11.8-6.6 16.4-6.9s10 8 10 9.6-5.4-5.2-9.3-5.3-14.6.6-14.6 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(-.2 0 0 .48 445.8 59.1)"/>
+ <path fill-rule="evenodd" d="M333 264.9c0 1.3-.7 2.4-1.5 2.4s-1.4-1.1-1.4-2.5.6-2.4 1.4-2.4 1.5 1.1 1.5 2.5m17 9h.4v19.5h-.5zm4.1-1.6h.5V292h-.5z"/>
+ <path fill-rule="evenodd" d="M352.6 281.2v-.5l4 .7v.5z"/>
+ <path fill="#b74d00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M497.3 478s26 11.4 31.7 18.2 3.4 6.8 3.4 6.8l57.7 2.3c0-3.4 10.2-3.4 12.5-11.4s2.3-10.2 2.3-10.2l-18.1 5.7 1-10.2H572l-2.3 10.2-34-1.1L538 461l-6.8 1.1-1 26c-1.2 0-31.8-7.9-33-10.1z" transform="matrix(.58 0 0 .62 7 -9.5)"/>
+ <path fill="#fede00" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" d="M440.5 316.3s37.7-11.2 92.1-10.4 92.1 12.8 91.3 12.8-10.4-18.4-10.4-18.4-38.4-10.5-81.7-11.3c-43.2-.8-80.9 8-80 8.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill="#38a9f9" fill-rule="evenodd" d="m306 169.8 13.6-.2.2 7.9-13.6.3zm-31.2 4.3L270 182l16.2-2-1.3-7.7-10.1 2zm13.7-3 13.6-1.1.6 7.8-13.5 1.2zm48.9-.7-13.5-1-.5 8 13.5.8zm29.2 5 4.9 9.6-14.6-3.6 1.6-7.7 8 1.6zm-11.8-3-13.4-1.7-1 7.8 13.5 1.8z"/>
+ <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m532.6 323.5-2.5-13.5-7.6 11.5 2.8-13.5-11.3 7.7 7.6-11.3-13.4 2.8 11.5-7.6-13.5-2.5 13.5-2.6-11.5-7.6 13.4 2.8-7.7-11.3 11.4 7.7-2.8-13.5 7.6 11.5 2.5-13.5 2.6 13.5 7.5-11.5-2.7 13.5 11.3-7.7-7.7 11.3 13.5-2.8-11.5 7.6 13.5 2.6-13.5 2.5 11.5 7.6-13.5-2.8 7.7 11.3L540 308l2.8 13.5-7.6-11.5z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+ <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M547 293.9c0 9.3-6.6 16.8-14.8 16.8s-14.8-7.5-14.8-16.8S524 277 532.2 277s14.8 7.6 14.8 17z" transform="matrix(.57 0 0 .5 18.3 21.8)"/>
+ <path fill-rule="evenodd" d="M320.7 170.6c0 .5-1.3 1-2.8 1s-2.8-.5-2.8-1 1.2-1 2.8-1 2.8.4 2.8 1m6 0q-.2.9-2 1c-1.8.1-2.2-.5-2.2-1s1-1 2.1-1 2.1.4 2.1 1"/>
+ <path fill="none" stroke="#000" stroke-width="1pt" d="m529.4 297.9.8.8c-1.9-2-1-1.2 1.6 3.2 2.4-.5 3.1-1.4 4.8-2.4" transform="matrix(.56 -.18 .17 .6 -26.7 90.6)"/>
+ <path fill="none" stroke="#000" stroke-width="1pt" d="m527.8 304.3.8.8c-1.9-2-1-1 3.2 1.6 4 .5 8.1-1.2 10.5-4" transform="matrix(.58 0 0 .62 8.7 -10.2)"/>
+ <path fill="#b7e1ff" fill-rule="evenodd" d="M281.4 194.8s1 8-5.1 18-5.1 6.4-5.1 6.4 2.8 5.5 2.3 5.5-4.7-5-4.7-5l-5 5.5s4.6-8.5 4.1-8.5-1.4-3-1.4-3l3.7-1.5s5.6-10.4 5.6-9.9-16.7 11.4-16.7 11.4zm3.7 3c-.5 0 2.3 8 4.7 12 2.3 4 2.3 8.9 2.3 8.9l7.9 4-10.2-15.4 6.5 2.4zm0 20.9s5.6 6 6 8 .5 6.4.5 6.4l-2.3-5-3.3 4.5s2.4-7 1.9-7.5-3.7 2.5-3.7 2.5 1.4-4 1.4-4.4 0-3-.5-4.5m-27.9 13.9c1.9-1.5 5.6-2.5 5.6-2.5s-2.3 4-2.8 4-1.8 0-2.8-1.5m64.1-21.8s12.1 7.4 12.1 7.9-7.9-3.5-7.9-3.5zm-21.8-15.5c1 .5 17.7 14.4 17.2 14.4s-7.4-4-7.4-3.4v3.4l-3.8-7.9-.9 3zm4.2 22.4 4.6 9.4 4.7-1s-8.8-8.4-9.3-8.4m14.4-6 .5 9s2.7 2.5 2.7 2-2.7-10.5-3.2-11"/>
+ <path fill="#984000" fill-rule="evenodd" d="M182.6 89.5s21-11.6 44.9-20.2a304 304 0 0 1 54.2-14.4c7 0 19.2 17.8 21.2 17.8s10.1-5 20.3-5 16.1 8 18.2 8h18.2c2 0-6.1-19.8 0-18.8 3 .5 28.8 4.5 52.8 12.2 24 7.8 58 21.6 58 21.6S414.9 98 400 95.9c-2 1 0 13-3 7.7-4.6-1-21.7-3.7-24.7-3.7s-8.7 3.4-16.8 5.4c-8 2-18.2 5-18.2 5l13.2 20.7-16.2 8s-10.1-23.8-14.2-23.8-6 16.8-11.1 15.8-7-15.8-11.1-19.8c-4-3.9-25.4-5.4-33.5-7.3-8-2-21.1-3.5-28.2-5.5s-14.2 5-17.2 5 4-6 1-7-5 3-7 3-23.3-4-25.3-5 5-4.9 3-4.9z"/>
+ <path fill="gray" fill-rule="evenodd" stroke="#772600" stroke-width="3.7" d="M463-65c0 21.2-20.6 38.4-45.9 38.4S371.3-43.8 371.3-65s20.5-38.3 45.8-38.3S463-86.1 463-65z" transform="matrix(.22 0 0 .26 231.6 96.5)"/>
+ <path fill="#984000" fill-rule="evenodd" stroke="#772600" stroke-width="5.3" d="M284.7-60c6.7-6.6 15-16.6 36.7-16.6 5-1.7 5-11.7 16.6-11.7s8.3 10 16.7 13.4c8.3 3.3 76.6-3.4 76.6-3.4s6.6 5 6.6 11.7-5 11.6-6.6 11.6-68.3-5-73.3-3.3-8.3 3.3-20 3.3-15-11.6-23.3-11.6-16.6-1.7-30 6.7z" transform="matrix(.27 0 0 .32 205.4 100.7)"/>
+ <path fill="none" stroke="#772600" stroke-width="3.5" d="M487.9-76.6h26.6c9.6.1 12.9 3 21.7 3.3h23.3c8.5-.3 13-2.3 21.6-3.3 14.5-.2 9.6-1.3 6.7-10-2.6-6.5-3-9.6-6.7-13.3-1.4-8-4.6-10.8-5-20-1.5-7-4.3-11.7-1.6-20 3.8 5.7 5.3 8 15 8.4 10 0 13.9-.3 20 3.3 4.6 4.9 10.8 3.3 20 3.3 7.6 1.4 8.9 5.3 14.9 8.3 7.1 4 11.7 5 21.6 5 8 1.5 15 2.6 20 5 4.3 5.1 11 6.4 20 6.7 5 0 9-.5 13.3-1.7 7.7.4 15.5 0 25 0 6.2 7.2 7.6 9.9 18.3 10 7.4 5.2 13.6 6 20 8.3h25c9 .7 11.8 4.4 20 6.7a201 201 0 0 0 21.6 8.3 108 108 0 0 0 21.7 1.7c6.1 3.2 13.6 3.4 18.3 6.6 6.9 1.5 16.3 3.3 21.6 5 8.8 1.2 12.2 4 20 5 6.7 2-2.2 3.6-6.7 5-9.8-.3-10.5-4-20-5-5-2.9-12.6-2.5-20-5h-1.6c6.6 4 13 6.5 10 13.4-8.5 0-15.4-1.1-23.3-1.7-8.4-1.6-12.2-3.3-21.6-3.3 9.4-2.3 11.8.2 18.3 3.3 2.4 8-2.8 5-11.7 5-7.6-2.7-12.2-6-21.6-6.7h-20c9.9.4 12 4.1 18.3 8.4.5 2.6-.1 2.4-5 3.3-5.2-4.5-11.9-6-20-8.3-7.9-.3-16.2-1-23.3-3.4-4.9-.3-4.1-6.1 6.7 3.4 6.5 3.8 8.8 7 8.3 10-8.6-2.2-12.8-5.6-18.3-8.4a61 61 0 0 0-23.3-3.3c-8.6-2.3.9-3.6 6.6 5 12.4 8.8-1.6 5-6.6 3.3-7.5-2.1-15.3-5.2-21.7-6.6-5-1.5-9.4-2.9-15-3.4 8.7.8 11.6 3.9 15 10 8.8 6-.4 3.1-8.3 1.7-5-4.4-11.5-6.7-15-11.7-8.3-4.1-8.6-9-3.3 1.7 1.3 3.4 1 10.8 1.6 11.7-6.1-6.7-4.8-8.4-11.6-8.4-4.7-3.2-11.5-5.7-15-10-6.4-.6-6.8-2.9-13.3-5 5.3 6.3 12.4 12.5 16.6 18.4 7.6 4.2 9.7 8 15 11.6 2.1 3.7 8 6.7 1.7 1.7-7.2-7-12.5-8.7-23.3-13.3-6.2-5-8.4-7-15-11.7-9-2.9-5.5-4.5 0 5 6.3 5.8 11.1 12.2 16.6 16.7a68 68 0 0 0 15 13.3c1.5 2.2 6 2.6 0 3.3-5-4.6-12.4-7.5-18.3-11.7-8.3-2.3-12.2-6.6-18.3-11.6-4-5.9-10.4-10.4-15-15-9.6-3.8 1.9 3.6 5 8.3 2.1 6.1 4.8 11 6.6 16.7 2.8 5.5-8.4-1.3-11.6-3.3a57 57 0 0 0-21.7-8.4 298 298 0 0 0-20-3.3c-7.5-2 4.1 4.8 8.4 11.7 8.4 7.9-8.3 1.4-13.3 0a125 125 0 0 0-25-1.7c-10.7.6-3 2 0 6.6 3.3 2.6 5.6 8 5 10-7-1-13-3-21.7-3.3-7 2.3-15.3 1.7-23.3 1.7-.3 4.2 1.5.6 5 5 5.8 2.3 9.6 5.1 8.4 8.3h-48.3c-5.3 1.4 1.1.7 5 6.7-2.2 5.4-5 3.3-11.7 3.3-4.5-1.8-13.6-2.6-18.3-5-4.7 0-4.3-1.2-8.3-1.7 14 10 7 7.5 15 15 1.3.5 4.5 1.7 1.6 1.7M371.3 73.3c-1 0-3.2-5.4-6.6-10-2.4-6-5.4-2.6-8.4-11.7.4-9.4.7-11 0-20-6.8-4.8-9.7-6.2-15-15-8.4-7 1.3-19 2.9-27.8-7.4-1.6-11 11.5-22.3 16.2-8.2 5.5-1-11.4-5-21.2-2.7-13.9-10.8 7-13.8 12.9-5.5 3.7-7.2 8.5-15 1.6 0-5.1 4.9-19.5 2.8-22.3-7.8 3.9-18 15.5-26.1 17.3-8.2-1.7 1.7-14.8 1.7-24.5-3-1-14.7 25.8-19.5 26s-2.7-26-5-25.4c-3.5 5-10.6 15.4-15.5 19-9.5-1.3 1.4-17.5 2.8-23.5 1.6-7.2-8.9 13.8-14.5 15.1-4.1 3.6-12.2 6-15 6.7 3.2-6.2 19-18.7 18-22.3-9.3.3-23.4 12.5-31.3 14-5.2 0-12.4 1.7-13.3 1.6.4-8 19.4-14.6 22.4-19.5-9.3 1.5-27.2 9.7-32.4 16.2-6.2 1.3-14 3-20 0 .9-7.5 14.9-22 18-26.8-8.5 3.7-12.7 6.6-21.7 8.3-1.7 1.7-6.5 5.3-5 1.7 2.7-7 6.7-10 10-15-7.5 1.4-10.3 5.7-18.3 10-5.1.2-19.7 14.9-24.6 15.1a69 69 0 0 1-28.3 13.3c-7.6 1.4-11.3 3-15 6.7 3.8-6.7 9.6-13 15-16.6a30 30 0 0 1 15-13.4c1.9-2.3 7.1-2.9 1.6-3.3-4.7 4.2-12.7 9-16.6 11.7-5.1 3.2-11 6.4-13.4 5 2.7-7.2 7.5-9 11.7-15 8.8-5.6 0-2-6.7 0-4.3 3.8-12 6.7-18.3 10-7 1.8-11.7 6-20 8.3 0 2.4 2.4-4.3 3.4-6.7 6.8-7.4 8.6-9.5 16.6-11.6 2-2.9 4.4-1.7-1.6-1.7-4.6 4-10.8 6.2-16.7 10-5.9 1.3-13.6 1.7-21.6 1.7-10.4 1.2-9.5 2 0-3.4 5.3-5 9.7-3.7 10-10-6.3 4.6-14 8-21.7 11.7-6.4.2-8.1 1.7-15 1.7 3.3-3.4 5.3-7.7 10-10 7-7.7-4.4-1.5-6.7 0h-25c-4.4 5.6-.2 0 3.4-3.4 4.3-2.2 8.8-5.1 8.3-6.6-5 4.3-10.7 6.3-15 10-4.6 1.4-10 2-10 3.3 3.7-5.3 9.6-8.6 13.4-13.3 5.6-1.2 10.4-3 11.6-5h-23.3 16.6c8.5 0 15.7-.8 23.4-1.7 13.2-2.2-1.2-3.3-8.4-3.3-1.3-2.6 4.2-4 10-5C-6.7-69-.4-71.1 5-73.3a45 45 0 0 0 13.3-6.6c-5 .2-5 1.4-10 1.6 7.5-.5 12.8-1.6 21.7-1.6a239 239 0 0 0 21.6-8.3c3-3.6 4.2-3.4-3.3-3.4 6.7-2.1 16.2-3.2 21.6-5a94 94 0 0 0 20-6.6c4.9-3.3 7.7-7.2 13.3-10 6.5 4.4 6.6 5 18.3 5 9.4-.1 15.2-2.4 20-6.7 7.2-2 8.5-5.4 16.7-6.6a134 134 0 0 0 23.3 1.6c8-2.1 15.7-6 21.6-10 5.1-2.5 11.2-6.1 16.7-8.3 6 3.1 10.8 5.6 18.3 6.7 7.7-1.2 11.8-5 18.3-6.7a28 28 0 0 1 15-8.3c9.7-4.8 9 1.5 13.3 6.6 5 5.2 11.4 2.7 18.3 5 3.9 6 6.7 10 11.7 13.3 3.9 4.8 8.5 6 16.7 6.7 3 4 .6 6.8 6.6 8.3 2.4 2.6 6.5 3.6 10 5" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
+ <path fill="none" stroke="#782600" stroke-width="3.1" d="M468.7 30.8v.8c0-2.3 0-1 1.7 3.4.6 3.6-.8 3.2-2.5 5.8-.3 3.7-.8 6.4-.8 10.8-.6 3.6-2.6 7-4.2 10-1.6 3.1-8.5 4.9-8.3 9.2-4 1.1-4.1-1.5-4.2-5.9-2.4-2.7-3.2-6.4-5-10-1-3.4-3.4-6-5-10-2.4-3.7-4.5-4.8-6.6-9.1-.9-2-.7-4.6-2.5-5.8-2.7-3.5-4.5-4-9.2-4.2-3.6.8-5 2.4-8.3 3.3-2.6.9-7.6.6-10.8 1.7-.8 1.3 1.6 2 2.5 5-2.2 1.8-3 4.9-4.2 7.5-2 2.5-3.3 3.7-4.2 7.5 1.4 2.3.2 5.4-1.6 7.5-.6 3.8-2.5 5.9-3.4 9.1-2.6 1.9-3.6 3.6-5.8 6.7-1.9 2.7-3.6 2.5-8.3 2.5-3.7-1-4.2-3-7.5-4.2q-.2-1.3-1.7-1.6" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
+ <path fill="#812e00" fill-rule="evenodd" d="M307.6 125.5s-.4 5-3.6 8.3-9.8 7.1-9.8 7.1 8.9-4.2 9.8-3.3-5.7 8.3-5.7 8.3 8.7-7.7 9.8-7.7 3.6 7.5 4.6 7.3-2-9.5-1.6-11c.4-1.4 0-9.3 0-9.3l-3.4.3zm20.5-.6s-.4 5.3-3.6 8.8-9.8 7.6-9.8 7.6 8.9-4.5 9.8-3.5-5.7 8.8-5.7 8.8 8.7-8.2 9.8-8.2 3.6 8 4.6 7.8-2-10.2-1.6-11.7c.4-1.6 0-10 0-10zm-28.7-48c0 .9-1 1.7-2.1 1.7s-2.2-.8-2.2-1.8 1-1.8 2.2-1.8 2.1.8 2.1 1.8z"/>
+</svg>
diff --git a/apps/web/public/flags/ee.svg b/apps/web/public/flags/ee.svg
new file mode 100644
index 00000000..8b98c2c4
--- /dev/null
+++ b/apps/web/public/flags/ee.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ee" viewBox="0 0 640 480">
+ <path fill="#1791ff" d="M0 0h640v160H0z"/>
+ <path fill="#000001" d="M0 160h640v160H0z"/>
+ <path fill="#fff" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/eg.svg b/apps/web/public/flags/eg.svg
new file mode 100644
index 00000000..88e32b3a
--- /dev/null
+++ b/apps/web/public/flags/eg.svg
@@ -0,0 +1,38 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eg" viewBox="0 0 640 480">
+ <path fill="#000001" d="M0 320h640v160H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#ce1126" d="M0 0h640v160H0z"/>
+ <g fill="#fff" stroke="#c09300" transform="translate(-40)scale(.8)">
+ <path stroke-linejoin="round" stroke-width="1.3" d="m450.8 302.4 68.5 63.6-4.9-115.5c-.7-17.5-15.9-13.5-27-7.2-11.1 7.2-24 7.2-37.4 2.5-13.5 4.7-26.3 4.7-37.4-2.5-11-6.3-26.3-10.3-27 7.2L380.7 366z"/>
+ <path id="eg-a" fill="#c09300" stroke="none" d="m393.5 246.5-4.8 112.3-8 7.2 4.9-115.5a24 24 0 0 1 7.9-4m9.6 8-4 94-8 8.2 4.8-108.5c1.6 1.6 6.3 5.5 7.2 6.3m8.7 7.2-3.1 78.4-6.5 6.3 4-89.4c1.6 1.5 4.8 3.8 5.6 4.7m9.5 4-3.1 66.8-6.3 5.1 3.1-74.3c1.6.7 4.7 2.4 6.3 2.4m8.8 0-2.3 55.7-6.5 6.3 2.5-61.3c1.5 0 5.6 0 6.3-.7"/>
+ <use xlink:href="#eg-a" width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)"/>
+ <path fill="#c09300" stroke-width="1.1" d="m453.2 315 9.6 43.8-3.2 3.2-3.3-2.5-5.4-39 2.3 39-3.2 4-3.1-4 2.3-39-5.5 39-3.3 2.5-3.2-3.2 9.6-43.7h6.4z"/>
+ <g id="eg-b" fill="none" stroke-linejoin="round" stroke-width="1.3">
+ <path fill="#fff" stroke-width="1.2" d="m428.5 295.8-19.1 67.7 26.3 4 11.1-50.9z"/>
+ <path d="m422.2 319 2.3 5.5 12.4-11.8"/>
+ <path d="m430.8 305 2.6 24.3 7.9-10.4m-3.2 4 4.3 15m1.7-5.5-8.7 13.2m2.7 13.2-2.8-13.2-2.4-13.4-5.9 7.9-2.5-9.1-8.2 8.4 4.1 15.2 5.8-9.4 3.1 9.6 6-9.2"/>
+ <path d="m415 362 5.3-7.5 3.4 11.5 4.8-8 3.1 9.6"/>
+ </g>
+ <use xlink:href="#eg-b" width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)"/>
+ <g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3">
+ <path stroke-width="2.4" d="M450 393.8c20 0 39-1.6 50.2-4.7 4.7-.9 4.7-3.3 4.7-6.5 4.8-1.6 2.4-7.2 5.7-7.2-3.4 1-4-5.5-8-4.7 0-5.6-5.7-6.3-10.4-4.7-9.5 3.1-26.3 3.9-42.2 3.9-16-.8-32.6-.8-42.2-4-4.7-1.5-10.3-.8-10.3 4.8-4-.8-4.7 5.6-8 4.7 3.3 0 .8 5.7 5.6 7.2 0 3.2 0 5.6 4.8 6.5 11 3.1 30.2 4.7 50.1 4.7"/>
+ <path d="M422.9 363.5c6.4.9 13.6 1.6 19.2.9 3.2 0 5.5 5.5-.9 6.3-5.5.7-14.3 0-19-.8a231 231 0 0 1-18.4-4c-5.6-2.4-1.6-7 1.6-6.4a105 105 0 0 0 17.5 4m54.2 0c-6.4.9-13.6 1.6-19 .9-3.4 0-5.7 5.5.7 6.3 5.6.7 14.3 0 19-.8 4-.8 12.8-2.3 18.4-4 5.6-2.4 1.6-7-1.6-6.4a105 105 0 0 1-17.5 4"/>
+ <path d="M403 360.4c-4.8-.9-7 4.7-5.5 7.9.7-1.6 4-1.6 4.7-3.2.9-2.4-.7-2.4.9-4.7zm19.2 14.7c0-3.2 3.1-2.8 3.1-6 0-1.5-.8-4-2.4-4a3.4 3.4 0 0 0-3.2 3.2c-.7 3.1 2.5 3.6 2.5 6.8m22.7-9.1c4.7 0 4.2 6.3 2 9.5 0-2.3-4-3.2-4-4.8 0-2.4 3.6-2.4 2-4.7m52-5.6c4.9-.9 7.2 4.7 5.6 7.9-.7-1.6-4-1.6-4.7-3.2-.9-2.4.7-2.4-.9-4.7M478 375c0-3.2-3.2-2.8-3.2-6 0-1.5.8-4 2.4-4a3.4 3.4 0 0 1 3.2 3.2c.7 3.1-2.5 3.6-2.5 6.8zm-23-9c-4.7 0-4.2 6.3-2 9.5 0-2.3 4-3.2 4-4.8 0-2.4-3.6-2.4-2-4.7"/>
+ <path stroke-width=".9" d="M404.7 362c1.6 0 4 .7 4.7 1.6zm7.9 2.4c.8 0 4 .7 5.5 1.6zm28.6 3.2c-1.5 0-4.7 0-5.5.7l5.5-.8zm-8.7 0c-.9-.9-4-.9-5.6 0zm62.8-5.6a8 8 0 0 0-4.7 1.6zm-7.8 2.4c-1 0-4 .7-5.6 1.6zm-28.7 3.2c1.5 0 4.7 0 5.6.7l-5.6-.8zm8.7 0c.9-.9 4-.9 5.6 0z"/>
+ <g fill="#c09300" stroke="none">
+ <path d="M403.3 374.6q-.8-.3-.6-1 .3-1 1-.8c.4 0 .9.6.9.8l-.4.7-.2.1q-.1.3-.7.2m55 3.9q-.4-.2-.6-.7c0-.4.6-1 1-1l.8.4q.5.6-.1 1.2-.5.3-1.1 0zm.3 2.5q-.5-.2-.6-.8t.5-.9l.4-.2.4.2q.6.2.7.8 0 .5-.7.8-.4.3-.7 0z"/>
+ <path d="M407.8 370q-.7.1-1.2.6c-.6.1-1.4.5-2 0-.6-.1-1.4 0-1.5.8.1.7 1 1 1.6.6.4-.5 1.5-.9 1.7 0-.5.8-.4 1.7-.8 2.4q-.1.7-.5 1.3-.8 0-1.4.3a2 2 0 0 0-1.6.8q-.7.9-.9 2c.1.6 1 .8 1.6.9l2 .6 3.2.9 4.8 1.1.5.1c.7.2 1-.5 1-1l1-3.6c.2-.5.5-1.5-.4-1.3q-.7.6-1.6.8c-.9 0-.4 1 0 1.3q0 1-.5 1.8-.9.3-1.8-.2c-.5 0-1.7-.3-1.2-1l.5-1.8.5-2c-.4-.7-1 .3-1.5.4s-1.6.3-1 1c.6.4.2 1.1 0 1.7 0 .7-.8 1-1.4.7-.6 0-1.5-.5-1-1.1l.5-1.8.7-2q0-1 .6-1.8c0-.7.5-1.3.5-2q0-.4-.4-.4zm-3.7 7.3h.3q.3.3 0 .6l-.3.2q-.7 0-.6-.3l.3-.3zm-1 5q-.7-.5.3-1.3.4-.3.9.1.9.6 0 1.3-.2.3-.5.2t-.7-.2zm3 1a1 1 0 0 1-.6-1.1q.1-.6.9-.5.9-.1.9.7 0 .5-.3.7zm89.2 0q-.3-.1-.3-.5 0-.6.8-.9.9-.5 1.2.2.5.8-.1 1.2-.2.4-.8.3-.7 0-.8-.2zm-85 1.2q-.6-.1-.6-.8 0-.4.2-.6l.6-.2.6.1q.8.6.3 1.2t-1.2.3zm21.8 1-.2-.3q0-.9.2-1.7l.2-1.5.4-2.8q0-.8.2-1.4 0-1.2.2-2.2c0-.3.3-1 .6-.6q.6.8 1.4 1.5c.4.3 0 .7-.3.8q-.6.3-.5 1l-.2 1.2-.2 2-.1 1.8-.2 1.2q.1.7-.4 1.1-.6.3-1-.1zm29.7-9.8-1.3 1.2c-.6.5.5.7.6 1.1q.3.9.2 1.8.3.9.2 1.7c0 .7-.8.5-1.2.9q-.6.4-1 1l-.4 1.6c0 .5-.3 1 0 1.4l.1.2h.5l1.5-.1 3.7-.3 2.2-.2c.6.1.9-.5.9-1-.4-.7-.1-1.4-.4-2l-.2-2.2c0-.6-.7-.8-1-.4l-1.2.9c-.3.6.6.6.8 1l.1 1.5c.1.6-.5.6-1 .7q-.9.4-1.5-.3-.2-.7-.2-1.5l-.3-2.7-.3-3.2c0-.5-.1-1.2-.8-1.1m-.6 8.2h.3v.8l-.3.1-.4.1h-.2q-.3-.3.1-.8zm-30-9.2c-.3 0-.8.7-1.2.6-.9.1-.8 1-.1 1.3v.8c.1.8-.4 1.5-.3 2.3l-.3 2.6q-.4 1.4-.4 2.7c-.1.8-.7.5-1.2.3v-1q0-1.2-1.2-1.2-1-.1-.8-1.1.6-.4 1.5-.3c1 .2.9-1.1.4-1.6s-1.2-1-1.4-1.6q0-1.3-1.2-2.1c-1.1-.1-2 .8-2.3 1.8q-.8 0-1.4.4c-.7.2-1.7 1.4-.7 1.9.5.1 2.2.5 1.4 1.2q-.7 1-1.9.6c-.7 0-1.5-.4-1.5-1.2q0-1.2-.4-2.3c-.2-.8-1.1-.6-1.2.2q-1 1-.1 2 .3 1.2-.3 2.2c-.2 1-1.2 1-1.9 1.2-.3.2-1.6 0-1.1.7a4 4 0 0 0 2.4.3q1.2-.2 2-1.4c.5-.5 1.4-.2 2.2-.2.7 0 1.5.5 2.3.1.2-.5 1.2-1.5 1.5-.5q.2 1.4 1.5 1.2c.9 0 .5.6.5 1.2q.2 1.3 1.5 1.8h.8q1.2-.3 1.8-1.4l.5-2.2.4-3.4q.3-1.5.4-3.2l.3-2.3q0-.6-.5-.4m-6.7 4.1q.2 0 .2.5t.5.8v.3l-.8.2q-.7 0-1.2-.5l-.2-.2.3-.2.5-.5q.4-.4.7-.4m66-7.9-1.7.3c-1 0-1.5 1-.5 1.6.6 1.5 1.5-.4 2.5-.2 1.4.2 1.5 1.8 1.8 3q.1 1.6.7 3.3c1 1.1-.7 1.8-1.4 1-.6-.7-2-1.5-2.7-.6-.9.4-1 1.6-1.7 2-1.2.3-1.3-1.2-2-1.8-.6-.9-1.7-1-2.6-1.2-.4-.9-.2-2.4-1-3-.8.3-2.2 1.7-1 2.4 1 1-.5 1.4-1 2q-1.1 1.4-1 3c-1.3.7-1.5-.8-1.7-1.7 0-1.1-1-.8-1.7-.4q-1.3.8-2 2v2c.2.9 1.2.5 1.8.4 1-.4 1.4.7.6 1.3-.6.6-2.2.3-2 1.4h1.6c1-.3 2.2-1.1 2.3-2.3.2-1 1.7-.9 2.5-1.1 1-.3 2.3-.4 2.6 1 .7.7 2.2 1.5 3 .5a2 2 0 0 0 1.1-2.3c-.1-.8 1.3-.8 1.7-.3.5.8 2.1.6 2.9 0s1-1.6 2.2-1.6l5.4-1.5c1.4-.3-.2-1.2-.6-1.8-1-.5-2 1.7-3.2.6-1-.7-.9-2-1.2-3.1-.3-1.4-.2-3-1.2-4q-1-1-2.5-.9m-6.8 9.5.5.2q.6.4.7 1 0 .2-.3.3l-.5.2q-.5-.1-.7-.5v-.4q-.3-.5 0-.6zm6.5.4q.5 0 .8.3.2.5-.4.8l-.5.2-.4-.3q-.3-.1-.3-.4.1-.5.8-.7zm-9 0q.3 0 .4.2.3.2.3.6v.6q.2.3-.6.2c-.8-.1-.7 0-.7-.6q0-.5.3-.7t.4-.2zm-5.4 1.5.4.4q0 .4-.2.6-.6.2-1 0v-.1q-.3-.2 0-.3v-.1l.2-.3zm9.2 1.2.5.1v.6h-1.2l-.1-.2q0-.3.2-.4zm-17.1 4.8q-.3 0-.1-.2.3-.4.8-.6a3 3 0 0 0 1.4-1l.4-1-.1-1.4a2 2 0 0 0-.8-1q-.6 0-.8-.6l.4-.9.6-1.2q.6-.3.8.2l.5 1q.4.4.6 1l.4 1 .2 1.3-.2 1.6-.6.8q-.4.5-1 .7-.4.3-.9.4H468zm-6.9.4q-.3-.2-.3-.6c0-.4 0-.3.3-.6q.4-.6 1.4 0t1 .1q.2-.4 1-.5l.5.2q.3.2.3.7c0 .5 0 .5-.3.8q-.3.2-.7.2a1 1 0 0 1-.8-.6q0-.4-.2-.1l-.2.1q-.4.1-.8.5l-.5.1q-.4 0-.7-.3m-19.8-8.9q-1.2.1-1.5 1.3c.2.7.8 1.5.4 2.2.3 1-.8 1.4-1.5.9q-.4-1.5-1.3-3c-.8-.2-1.1 1.1-1.7 1.6.3.7 1.1 1.4 1.2 2.3q.1 1.6-1.1 2.4c-.7.7-1.7.5-2.5.6-1 .6.7.8 1.2.8q1.6.3 3-.8c.7-.3.6-1.7 1.5-1.8l4.8.3c.8.2 2.1-.1 2.7.5 0 1 1 1.8 1.9 2.2.5.2 1-.5 1.5-.6 1-.3.7-1.5 1.3-2h5c.2 0 .3-.5.6-.7l-.2-1.9c-.3-.8 0-1.8-.5-2.5-.9-.2-1.6.5-2.4.6q-1.6.7-1.8 2.3c-.5.9-1.4-.2-1-1l-.1-1c-.5-.5-1.4-.3-2.1-.4l-3-.2q-1.5.1-2.7-.1c-1 0-1-1-1-1.8zm2 3.7 1 .1h1.3q1.5.3 3 .2.3 0 .6.4v2q0 .5-.2.8l-.2.2-.7-.5v-1.4l-.7-.3-2.6-.1-2-.1q-.5 0-.9-.4-.2-.4.4-.7zm11.3.3q.2 0 .2.3l.2.5q0 .2-.2.2-.8.3-1.2 0l.2-.6z"/>
+ </g>
+ </g>
+ <path stroke-width="1.1" d="M450 327.2c32.6-25 29.8-61.8 29.8-61.8l-2.5.2c-6.9 0-23.2-4-27-8.9-4 4.5-20.8 9-27.6 9l-2.5-.3s-2.9 36.7 29.8 61.8z"/>
+ <path stroke-width=".9" d="M477.2 268h-.8c-6.2 0-20.6-3.1-26.2-7.9-5.8 4.4-20.5 8-26.6 8l-.8-.1a73 73 0 0 0 2.6 18.7 71 71 0 0 0 24.6 37.1 71 71 0 0 0 24.6-37.2 73 73 0 0 0 2.6-18.6z"/>
+ <path fill="#c09300" stroke="none" d="M439.4 265a62 62 0 0 1-16.6 3l.1 4.1a73 73 0 0 0 2.5 14.5 71 71 0 0 0 14 26.8zm20.6 0v49.2a71 71 0 0 0 14.6-27.6 73 73 0 0 0 2.5-14.5l.1-4h-.8c-3.8 0-10.4-1.2-16.4-3.2z"/>
+ <g stroke-width="1.3">
+ <path stroke-width="1.2" d="M462.3 253c.7.1-.9-3.5-.9-3.5 1.8 1.8 8.4 2.3 8.4 2.3-4-1.8-8-15.1-7.5-25.8.4-10.6-1.5-14.8-3-16.4-2-2-8.5-3.8-12.7-4-2.5-.1-2 1.8-2 1.8-4.5-1.1-9-1.6-11-.2-1.8 1.2-2.2 7.5-.8 6.4 3.3-2.7 6.2-.2 8.2 2.7 1.8 2.5 1.7 9.7-.9 18.2a60 60 0 0 1-10 17.7c4 0 9.6-3.5 9.6-3.5l-1.3 5.5c4.2-2 7.5-5.1 7.5-5.1l4 4.2c1.3-1.8 4-4.2 4-4.2s3.3 3.5 8.4 4z"/>
+ <path fill="none" d="M446.1 227.6s-2.2 16.4-6.4 21m10-21.5s-1 16.7-3.8 22m6.9-21.3s0 18.2 1 21.3m3-20.4s.8 15.3 4.6 20.8"/>
+ <path fill="#c09300" stroke-width=".3" d="M442 219.6a8 8 0 0 0-1-3.3c-2-3-4.9-5.4-8.2-2.7 0 0 1.1-3.5 3.6-3.6 1.8-.1 6.1 1.4 9.9 7.8 0 0-2.8-.6-3.5 0-1.2 1-.7 1.8-.7 1.8z"/>
+ <path fill="#c09300" stroke-width=".3" d="M432.4 209.3q.4-1.6 1.3-2.1c2-1.4 6.4-1 10.9.2 0 0-.4-1.9 2-1.8 4.2.2 10.6 2 12.6 4a8 8 0 0 1 1.5 2.4c-1-1.4-3.8-1.3-4.5-1.2-1 .1-1.7 0-3.1.4q-1.2.3-2.3.8c-.4.4-.8 1.6-1.4 1.6-1 0-1-.2-1.3-.5q-.4-1-.9-1-1.6.2-5-2.5c-2.3-1.8-3.2-2.2-6-2-3 .2-3.8 1.9-3.8 1.9z"/>
+ <circle cx="448.8" cy="210.7" r="1.2" stroke="none"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/eh.svg b/apps/web/public/flags/eh.svg
new file mode 100644
index 00000000..6aec7288
--- /dev/null
+++ b/apps/web/public/flags/eh.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-eh" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="eh-a">
+ <path fill-opacity=".7" d="M-158.7 0H524v512h-682.7z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#eh-a)" transform="translate(148.8)scale(.94)">
+ <path fill="#000001" d="M-158.3 0h680.9v255.3h-680.9z"/>
+ <path fill="#007a3d" d="M-158.3 255.3h680.9v255.3h-680.9z"/>
+ <path fill="#fff" d="M-158.3 148.9h680.9v212.8h-680.9z"/>
+ <path fill="#c4111b" d="m-158.3 0 340.4 255.3-340.4 255.3Z"/>
+ <circle cx="352.3" cy="255.3" r="68.1" fill="#c4111b"/>
+ <circle cx="377.9" cy="255.3" r="68.1" fill="#fff"/>
+ <path fill="#c4111b" d="m334 296.5 29.1-20.7 28.8 21-10.8-34 29-20.9-35.7-.2-11-34-11.2 33.9-35.7-.2 28.7 21.2-11.1 34z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/er.svg b/apps/web/public/flags/er.svg
new file mode 100644
index 00000000..48a13b47
--- /dev/null
+++ b/apps/web/public/flags/er.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-er" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#be0027" d="M0 0h640v480H0z"/>
+ <path fill="#b4d7f4" d="m0 480 640-.3V240z"/>
+ <path fill="#239e46" d="m0 0 640 .3V240z"/>
+ <path fill="#f3e295" d="M186.2 360.4c-10.7 3-16.8 11.3-16.7 19.1l52.8-.2c.4-8.4-6.5-16.2-17-19.3 51.6-1 96.4-20.4 104.6-32.8-8-3.5-17.4 2.1-24 .8 15.7-7.3 63-37.9 55.3-70.7-6 18.2-24 33.3-31.8 37.4 17.7-26.8 41.8-54.8 20.9-76.4 1 12.5-8 26.3-12 27.4 10.3-28.4 20-64-2.1-87.4 2.9 8.5 1.7 32.4-2.3 33.5-1.2-19.3-4.5-59.8-24.8-59.3 6.4 5.8 9.2 21.4 9.4 37.2a58 58 0 0 0-21.1-27 118 118 0 0 0-41.5-42.2c1.8 12.7 3.3 22.7 21 35.9-9.2-.6-18.4-18.1-28.3-18.6-7.9-.4-14 7.1-26.9 2.8 1.4 4.2 7.4 6.1 8.7 9.2-2.8 2-9.3-.3-14.7-3 7.5 10 19 16 28.8 14 11.7-2.2 24.2-1 36.2 5.8a63 63 0 0 1-22.5.6c6.9 7 11.5 11.7 23.6 11.6 10.7 0 16.4-5.8 19.1-2.2 6.8 8 11.3 16 17 25.4-12.5 1.3-8.7-14.1-22.6-22-7.9 16 9 35.2 20.3 43.2a65 65 0 0 0 7.1 31.5c3.5 6.5 8 13.2 6.3 27.9-6.9-5-13.5-21.8-11-35.1-8.6 2.3-12 17.4-8 25 3 5.7 5 16.8 1.6 21.7-3.4 4.6-3.7 4-3.7 14 .1 5.8-3.2 12.8-8.5 17.7a36 36 0 0 0 1.1-15.8c-4.2 7.2-14.9 14.6-18.2 22.4s-4.1 21.2-20 24.3c-20.6 4-27.7 7.6-40.8 13-1.5-10 2.9-31 11.3-29.7 8.1 1.4 33-8.6 24-29.5-1.7 6.6-7.5 13-13.9 13.3 6.9-8.8 19-18 13.1-32.8a43 43 0 0 1-16.3 18c8.4-16 1-21-9-7.6-3.8 5.1-6.1 15.4-8.5 28.5-4-10.6-3.7-24.6-8.4-36-4.8-12.3 6.5-15.5 11.8-14.5 13 3.5 34.9 3.5 33.3-18.1-5.7 7.3-15.5 9.5-26.2 7 12-8.8 21.4-25.3 8-34a31 31 0 0 1-16.9 24.1 51 51 0 0 1-.3-24.8c-5.2 5.6-9 17-12.1 30.2-.3-13 2.2-22.3 4-29.3 2.8-10.1 9.6-3.5 20-2.8 10.2.6 24-5 21.4-18.7-3.4 5.5-10.5 7.6-17.7 7 8.7-5.3 23.8-14.6 15.5-29-3.5 5.4-4.6 10-14.7 11.7 2.6-6 3-14.7 11-18-14-2.9-22 6.3-26.2 20.7-1.6-10-3.6-13.6-4-21 7.6-8.3 8.4-24.8-8-28.4a35 35 0 0 0 1.2 17.4c-7.7-4.6-18.5-7.1-25.8-.7 5 5.3 12.5 10 24.2 4.2-2.8 9-10 7.5-19.8 4 6 11.3 13.6 13.3 22 12 4.4 11.6 4.6 20.4-8.3 37.2.6-10.4-.1-18.2-8.4-26.7-7.2-7-13 .3-1.8 15.8-6.8-5-14.4-15-16.7-25.1-2.2 12.4-.2 27.1 6.7 35.4-3.3 3.5-7-.4-12.5-9 2 27.4 13.7 32.7 29.4 26.6.4 15 .4 28.9 1.3 47-9.1-13.2-20.7-23-27.1-25.4-2 7.3 5.5 17 9.8 22.3-6.5-1.4-20.5-12-20.5-12-1.4 12.1 14.3 23.4 24.5 28.4-12-.5-17.3-5-25-12.4.2 33.8 36.6 27.9 43.5 22.7l3 52.5c-10.3-1.8-9.5-5-18.3-5.7-24.5-1-43.9-29.4-50.3-50.3-1.9 3.4-.4 7-2.1 11.3-4-10.3-9-23.6-15.9-29.8 1.8 6 2 12.1 1.4 23.3-2.4-7.2-4.5-9.5-4.7-18 .1-6.5 6.3-11.3 6-20.5-.3-6.7-6.4-21.3-7.3-32.5-3 11.6-4.8 23.8-9.4 31 2.3-12.4 1.6-21 5.4-29.3 4.4-8.7 8.1-16.6 5.2-25.4-2.8 3.4-1.9 6.5-9 14.8-1.5-9 9.2-23.5 19.6-29.3 7.3-3.8 16.5-17.6 10.5-27-6.9 5-10 11.6-19.7 23 7-27 25-34.2 46.5-34.3 4.7 0 14.3-1.7 17-8-6 2.3-13.2 2.6-19.6 1.4 4.7-6.9 14.4-6 23.6-6 7.1 0 18.3-1 22.8-11.2a51 51 0 0 1-31 1.9c13.7-7 35-7.8 46-17.1-12.5-9.3-43.7 2.2-63.4 15.7 5.5-5 14.2-14 19-21.2-10.8-5.2-38 25-47.4 43-9 5-12.5 13-16 18.5 4.7-16.1 5.2-27.8 9.2-41C80 138 92.6 194.6 86 208.2c.8-15 .1-34.1-6-44-9.4 7.2-10.2 49.5-1.4 84.7-3.2-9.4-9.2-18.2-11.1-29.7-14 25.4 8.2 55.5 26.7 79.2-14-7.3-27.7-22.9-36.8-36 2.5 45.6 50 55 57.4 66.2-10-4.7-29.1-13.9-37.3-4.2a99 99 0 0 1 32.3 12.1c12.4 15.4 35.7 22.2 76.4 23.9"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/es-ct.svg b/apps/web/public/flags/es-ct.svg
new file mode 100644
index 00000000..4d859114
--- /dev/null
+++ b/apps/web/public/flags/es-ct.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-ct" viewBox="0 0 640 480">
+ <path fill="#fcdd09" d="M0 0h640v480H0z"/>
+ <path stroke="#da121a" stroke-width="60" d="M0 90h810m0 120H0m0 120h810m0 120H0" transform="scale(.79012 .88889)"/>
+</svg>
diff --git a/apps/web/public/flags/es-ga.svg b/apps/web/public/flags/es-ga.svg
new file mode 100644
index 00000000..573ca45d
--- /dev/null
+++ b/apps/web/public/flags/es-ga.svg
@@ -0,0 +1,187 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-ga" viewBox="0 0 640 480">
+ <g font-size="12">
+ <path fill="#fff" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+ <path fill="#09c" d="M640 410.1 91.7-.1H0v68.4L550.4 480H640z"/>
+ </g>
+ <g font-size="12">
+ <path fill="#005bbf" d="M316.4 352.3c-64 0-62-60.3-62-60.3v-92.8h124V292s2.2 60.3-62 60.3"/>
+ <path fill="none" stroke="#000" d="M296.6 401.2c-60 0-58.1-56.5-58.1-56.5v-86.9h116.3v86.9s2 56.5-58.2 56.5z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#d81126" d="M315.8 141s-13.2-6.5-25.7 3c0 0-22.5-3.3-24.2 18.3 0 .8-.2 2.4.2 3 .5.4.9 1.3.9 1.9q.1.9.5 1.2l.6 1.8c0 1.2-.3 1.7 1 2.9 1 1 1 4.3 1 5.3s.6 3.5 1 4c.6.6 1.4 2 1.4 3.2 0 1 .5 4.2.2 5s1.3 1.8 2.6 2.2 17 5.6 40.1 5.1c23-.3 31.4-1.6 41-5a2.3 2.3 0 0 0 1.6-2.4 7 7 0 0 1 .3-3.3c.4-.6 3.2-5 2.6-5.7-.6-.9-.6-2.6 0-3.2s2.2-4 2.5-5.3.4-3 1-3.3c.6-.5.8-2 1-2.4a4 4 0 0 1 1.2-1.7s1-5.5.4-8.1c-.7-2.7-4.8-14.2-21-11.8 0 0-12.2-9.3-30.2-4.8"/>
+ <path fill="none" stroke="#000" stroke-width="1.5" d="M296.1 203.2s-12.4-6-24.1 2.8c0 0-21.1-3-22.7 17.2 0 .8-.2 2.3.2 2.8q.7.8.8 1.8t.5 1.1q.2.3.5 1.7c0 1.1-.2 1.6.9 2.7 1 1 1 4.1 1 5s.6 3.3 1 3.8 1.3 1.8 1.3 2.9.4 4 .2 4.7 1.2 1.7 2.4 2.1 16 5.2 37.6 4.8c21.6-.3 29.4-1.5 38.4-4.7a2 2 0 0 0 1.5-2.3c-.2-.6 0-2.6.3-3.1.4-.5 3-4.6 2.4-5.3-.5-.8-.5-2.4 0-3s2.1-3.7 2.4-5 .4-2.7 1-3.1.7-1.9.8-2.2a4 4 0 0 1 1.2-1.6s1-5.1.4-7.6-4.5-13.3-19.8-11c0 0-11.4-8.7-28.2-4.5z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#bcac0b" d="M360.1 181c-50.1-15.8-89-.7-89-.7s.5 1.7.9 2.3 1 1.8 1 2.7v3c0 .8-.4 4 2.4 3.9 0 0 35-13.7 80.4.7 0 0 1.3-1 1.3-2.6a9 9 0 0 1 1-4.3c.6-.9 2-3.6 2-5"/>
+ <path fill="#c8b100" fill-opacity=".9" d="M313.6 264.9h-21.9s-2.1 19.5 14.8 25.5v1.7h3.5v2.4s-6.2 5.5-.8 12v1.8h.9v3.2h1v5s-.8 18.2-18.7 27v1H340v-1c-17.9-8.7-18.7-27-18.7-27v-5h1v-3.2h1v-1.9c5.2-6.4-1-12-1-12v-2.3h3.7v-1.7c16.7-6 14.6-25.5 14.6-25.5h-27.1"/>
+ <path fill="none" stroke="#000" d="M294 319.3h-20.5s-2 18.3 13.8 23.9v1.6h3.3v2.2s-5.8 5.2-.7 11.2v1.8h.8v3h1v4.7s-.8 17-17.6 25.2v1h44.7v-1c-16.7-8.1-17.5-25.2-17.5-25.2V363h1v-3h.8v-1.8c5-6-.8-11.2-.8-11.2v-2.2h3.4v-1.6c15.7-5.6 13.7-23.9 13.7-23.9z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M286.6 342.9h19.7m-19 1.5h18.4m-15 2.5h11.5m-12.3 11.5H303m-12.4 1.4h11.6m-11.6 2.8h11.5m-18.5 23.2h25.5m-32.7 5.9h40m-41.5.9h43" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M316.4 263.8a14 14 0 1 0 0-27.9 13.9 13.9 0 0 0 0 27.8"/>
+ <path fill="none" stroke="#000" d="M296.6 318.3a13 13 0 1 0 0-26.1 13 13 0 0 0 0 26z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M284 223h-8.6v-8.8h-7.7v8.7H259v7.7h8.7v8.5h7.7v-8.5h8.5V223"/>
+ <path fill="none" stroke="#000" d="M266.3 280h-8.1v-8.2H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8V280" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M374.2 223h-8.7v-8.8H358v8.7h-9v7.7h8.8v8.5h7.6v-8.5h8.7z"/>
+ <path fill="none" stroke="#000" d="M350.8 280h-8.1v-8.2h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1V280" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M328.5 212h-8.7v-8.6H312v8.5h-8.5v7.7h8.5v8.8h7.7v-8.8h8.7V212"/>
+ <path fill="none" stroke="#000" d="M308 269.7h-8.2v-8h-7.2v8h-8v7.2h8v8.2h7.2v-8.2h8.2v-7.2" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M284 260.5h-8.6v-8.8h-7.7v8.8H259v7.7h8.7v8.5h7.7v-8.5h8.5v-7.7"/>
+ <path fill="none" stroke="#000" d="M266.3 315.2h-8.1V307H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8v-7.2" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M374.2 260.5h-8.7v-8.8H358v8.8h-9v7.7h8.8v8.5h7.6v-8.5h8.7z"/>
+ <path fill="none" stroke="#000" d="M350.8 315.2h-8.1V307h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1v-7.2" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M284 298.4h-8.6v-8.6h-7.7v8.6H259v7.7h8.7v8.6h7.7v-8.5h8.5v-7.8"/>
+ <path fill="none" stroke="#000" d="M266.3 350.7h-8.1v-8.1H251v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8v-7.3" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#ccc" d="M374.2 298.4h-8.7v-8.6H358v8.6h-9v7.7h8.8v8.6h7.6v-8.5h8.7z"/>
+ <path fill="none" stroke="#000" d="M350.8 350.7h-8.1v-8.1h-7.2v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8.1v-7.3" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#005bbf" d="M316.3 122.4a8.4 8.4 0 1 0 0-16.8 8.4 8.4 0 0 0 0 16.8"/>
+ <path fill="none" stroke="#000" d="M296.5 185.8a7.8 7.8 0 1 0 0-15.7 7.8 7.8 0 0 0 0 15.7z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M324 112.5h-6.8v-11h2.7v-2.2h-2.7v-2.7h-2.1v2.6h-2.7v2.2h2.6v11.1h-6.4v1.5H324z"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".5" d="M303.8 176.6h-6.4v-10.4h2.5v-2h-2.5v-2.5h-2v2.4h-2.5v2.1h2.4v10.4h-6v1.4h14.5v-1.4" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M282.9 132.3s6.2-.7 9.7.7c0 0-4 4.7-3.2 10.8a15 15 0 0 0 2 6.4 11 11 0 0 1 1.3 7h1.2s1.1-5-.8-7.8a11 11 0 0 1-1-11c2-4 4.9-5.7 4.9-5.7a18 18 0 0 0 12.1-1.4c2-1.4 3-3.4-.6-3.5-3.8-.2-10-.1-14.2 3.1 0 0-2.2-2.6-13.4-1.4s-19.2 6-21.8 16.1c-1.3 5.2 3.5 16 7.9 18.5 0 0-.1-1.7.3-3 0 0-7.5-8.4-5.3-16.2s11.3-12.8 20.9-12.6"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M265.2 195.1s5.8-.6 9.1.7c0 0-3.8 4.4-3 10.1.4 3 1 4.5 1.9 6 .8 1.3 1.7 4.3 1.2 6.6h1.1s1.1-4.8-.7-7.4a10 10 0 0 1-1-10.3c1.9-3.8 4.6-5.3 4.6-5.3 3 1.2 9.6 0 11.4-1.3s2.8-3.2-.6-3.3c-3.5-.2-9.3-.1-13.3 2.9 0 0-2.1-2.4-12.6-1.3-10.5 1.2-18 5.7-20.4 15.1-1.2 4.8 3.3 14.9 7.4 17.3 0 0-.1-1.6.3-2.8 0 0-7-7.9-5-15.2 2.2-7.2 10.6-12 19.6-11.8z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M303.9 130.8c2-.2 3.5-.5 3.4-.8 0-.3-1.6-.3-3.5-.2q-3.2.3-3.4.8c0 .3 1.6.3 3.5.2"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M278.3 195.4s-2 2 0 0 6.4-3.2 8.9-2.7c2.4.6-.5.9-1.3 1s-2.4.3-4.8 0" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M349.5 133s-6-.7-9.7.7a16 16 0 0 1 1.3 17c-1 1.7-1.9 4.8-1.4 7.2h-1s-1.3-5 .7-7.9a11 11 0 0 0 1-10.9 13 13 0 0 0-4.8-5.7c-3.3 1.3-10.4 0-12.3-1.4s-3-3.3.8-3.6c3.6-.2 9.9 0 14.1 3.2 0 0 2.2-2.6 13.5-1.3 11 1.1 19.2 6 21.6 16 1.3 5-3.4 15.9-7.8 18.4 0 0 0-1.7-.3-3 0 0 7.5-8.3 5.3-16-2.3-7.9-11.2-12.9-21-12.7"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M327.7 195.8s-5.7-.7-9.1.6a15 15 0 0 1 1.2 16c-.9 1.5-1.8 4.4-1.3 6.7h-1s-1.2-4.7.7-7.4a10 10 0 0 0 .9-10.2 13 13 0 0 0-4.5-5.4c-3.1 1.3-9.7 0-11.5-1.3s-2.8-3.1.7-3.3c3.4-.2 9.3-.1 13.3 3 0 0 2-2.5 12.6-1.3 10.4 1.1 18 5.6 20.3 15 1.2 4.8-3.2 14.9-7.3 17.3 0 0 0-1.6-.3-2.8 0 0 7-7.8 4.9-15.1s-10.5-12-19.6-11.8z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M328.5 131.4c-1.9 0-3.4-.4-3.4-.7s1.6-.3 3.5-.2c2 .2 3.6.5 3.6.7 0 .3-1.6.4-3.7.2"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M314.6 196s2.1 2 0 0c-2-1.9-6.4-3.2-8.8-2.6-2.5.5.4.8 1.2.9.9 0 2.5.4 4.9 0" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M310.5 126v24c-.2 2.3 2.9 5.7 5.1 6.6 0 0 5.4-1.7 5.7-6.6v-25h-1.8v21.7c0 2.1-1.5 6.2-3.6 6.8 0 0-3.8-.6-4-6.8v-21.1l-1.4.6"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M291.1 189.3v22.3c-.2 2.2 2.7 5.3 4.8 6.2 0 0 5-1.6 5.3-6.2v-23.5h-1.7v20.4c0 2-1.4 5.8-3.3 6.4 0 0-3.6-.6-3.8-6.4v-19.8l-1.3.6" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M258 158.7a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M241.8 219.8a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M256.1 152.1a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M240.1 213.7a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M257 144.2a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M241 206.3a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M261.4 137.6a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M245.1 200.1a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M266.7 132.8a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M250 195.6a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M273.5 130.1a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M256.4 193.1a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M280.5 129a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M263 192a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M287.3 128.5a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M269.3 191.6a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M293.3 129a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M275 192a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M310.4 126.8a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M291 190a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M316 128.3a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M296.2 191.4a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M316 149.5a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M296.2 211.2a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M374.7 160.5a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M351.3 221.5a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M376.2 153.5a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M352.7 215a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M375 146a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M351.6 208a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M372 139.1a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M348.7 201.5a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M366.7 134.3a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M343.8 197a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M360.4 131.1a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M337.9 194a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M353.2 129.5a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M331.1 192.5a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M346.7 129a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M325 192a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M340.7 128.2a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M319.4 191.3a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M344.5 151.4a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M323 213a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M346 146a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M324.4 208a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M322.1 127.8a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M302 190.9a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M308.3 127a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M289 190.1a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M304.9 126.8a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M285.8 190a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M286.7 151.5a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M268.8 213.1a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M285.9 144.8a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M268 206.8a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M288 138.2a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M270 200.6a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M300.5 127.5a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M281.7 190.6a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M295.7 129.4a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M277.2 192.4a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M291.2 133.2a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M273 196a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M316 131.5a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M296.2 194.4a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M316 137a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M296.2 199.5a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M316 142.7a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M296.2 204.9a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M325.8 127a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M305.4 190.2a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M329.6 126.2a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M309 189.4a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M334 126.8a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M313.2 190a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M345 139a2.9 2.9 0 1 0 0-5.6 2.9 2.9 0 0 0 0 5.6"/>
+ <path fill="none" stroke="#000" d="M323.5 201.4a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M338.5 129.5a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8"/>
+ <path fill="none" stroke="#000" d="M317.3 192.5a2.7 2.7 0 1 0 0-5.4 2.7 2.7 0 0 0 0 5.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M342.5 133.4a2.9 2.9 0 1 0 0-5.7 2.9 2.9 0 0 0 0 5.7"/>
+ <path fill="none" stroke="#000" d="M321.1 196.1a2.7 2.7 0 1 0 0-5.3 2.7 2.7 0 0 0 0 5.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="m315.7 176-7.4 3.8 6.7 4.3 8-4z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m296 236-7 3.6 6.3 4 7.5-3.8-6.8-3.8" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="m299.3 176.8-11.2 1.7s-.2 6.1.3 7.5l11.7-1.5s.5-5.7-.8-7.7"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m280.6 236.8-10.5 1.6s-.2 5.7.3 7l10.9-1.4s.5-5.3-.7-7.2z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#058e6e" fill-opacity=".9" d="M298.1 179s-6.8.6-8.5 1.2v4s4.6-.7 8.6-1V179"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M279.5 238.8s-6.4.6-8 1.2v3.8s4.3-.7 8.1-1l-.1-4" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="m331.4 177 11.3 1.8s.1 6.1-.4 7.5l-11.5-1.5s-.6-5.6.6-7.7"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m310.7 237 10.6 1.7s.1 5.7-.4 7l-10.8-1.4s-.5-5.3.6-7.2z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#058e6e" fill-opacity=".9" d="M332.8 179.3s6.7.6 8.4 1.2v4.1s-4.6-.8-8.6-1v-4.3"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M312 239.1s6.3.6 7.9 1.2l-.1 3.8s-4.2-.7-8-1l.1-4" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M254.2 241.8s37-13.7 84.2 1.2m-82.7 6.7s35.9-13.4 80 .6m-79.8-9 7.2 2.1-5 5.4" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="red" d="m273 188.5 4.5-3.7-5-1s.7.8.6 1.5v3.2"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m256 247.8 4.2-3.5-4.7-.9s.6.7.5 1.4zm81.6-5.1-7.7 1.4 5.2 6" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="red" d="m357.7 188.8-3.1-3.2 4.4-.5s-1.2.8-1.2 1.5.2 1.6 0 2.2"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m335.3 248-2.9-3 4.2-.4s-1.2.7-1.2 1.4v2zm-70-6.2q1 0 1.2-1-.2-.7-1.2-.9-1.1.1-1.2 1 0 1.2 1.2 1zm20.6-2.3q1.1 0 1.2-1 0-.8-1.2-.9c-1.2-.1-1.2.4-1.2 1q0 .8 1.2.9zm0 3.3q1.1 0 1.2-.9 0-1.2-1.2-1c-1.2.2-1.2.5-1.2 1s.5 1 1.2 1zm20.3-3.1q1-.1 1.2-1c.2-.9-.6-1-1.2-1q-1.1.1-1.2 1 0 1.2 1.2 1zm20.1 3.7q1.1-.1 1.2-1 0-1.2-1.2-1c-1.2.2-1.2.5-1.2 1s.5 1 1.2 1zm-.3 2.6q1 0 1.2-1-.2-.8-1.2-.9-1.1.1-1.2 1 0 1.2 1.2 1zm-19.8-3q1 0 1.2-1-.2-.8-1.2-.9-1.1 0-1.2 1t1.2 1zm-40 3q1.2 0 1.3-1-.2-.8-1.2-.9-1.1.1-1.2 1 0 1.2 1.2 1z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M270.5 170.6s.1 7.7 5.1 6.6 4.5-7.3 4.8-7.7q.9-.4 1-.3c.1.1.6 6.1 5.3 5.4 4.7-.8 4.5-8.3 4-9.5l1-.4s1.8 8.8 7.2 7.5c5.3-1.3 4.8-6.8 4.8-6.8h.4s1.2 6 5.6 5.5c4.2-.3 5-1.7 4.5-7.7l3-.5s-1.1 8.6 4 8.6c5.2-.4 5.4-4.4 5.7-5.2h.9s.2 6.1 4.6 6.1c4.2 0 5-5.1 5-7.1l4.4.2s-4.5 8 2 9c6.4 1.1 6.6-5 6.6-5h1.3s-.2 8 3.3 8.1c3.6.2 5.7-1 6-7l2 .7s-1.6 9.7-8.3 8c-3.6-1-4.7-5-4.5-6.1 0 0-2.5 4.4-7.4 3-4.8-1.4-4.2-4.9-4.2-6 0 0-3 5.4-7 4.2-3.6-1-5-2.3-5-4.9 0 0-1.8 4.2-5.3 4-3.6-.1-5.4-2.4-5.6-4.3 0 0-.7 3.9-5.5 4.2-3.2 0-5-1.5-5.8-3.7 0 0-1 3.9-5.5 4.5-2.9.3-5.8-1.3-6.4-4 0 0-.8 5.3-5.4 6s-5.7-2.5-5.7-2.5-1 4-4.7 5q-5.6 1.3-7.2-4.5c-.8-3.7-.5-5.3-.5-5.3z"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M253.6 231s.1 7.2 4.8 6.2 4.2-6.9 4.5-7.2q.8-.4.9-.3c.1.1.6 5.7 5 5s4.2-7.7 3.7-8.9l1-.3s1.7 8.2 6.7 7 4.5-6.4 4.5-6.4h.4s1.1 5.6 5.2 5.2 4.8-1.6 4.3-7.2l2.7-.5s-1 8 3.9 8c4.8-.3 5-4.1 5.3-4.8h.8s.2 5.7 4.3 5.7 4.8-4.8 4.8-6.7l4 .2s-4.2 7.5 1.9 8.5 6.2-4.8 6.2-4.8h1.2s-.2 7.5 3.1 7.7c3.4.1 5.4-1 5.7-6.6l1.9.7s-1.6 9-7.9 7.4c-3.3-.9-4.4-4.7-4.2-5.7 0 0-2.3 4.2-6.9 2.8-4.5-1.3-4-4.5-4-5.5 0 0-2.7 5-6.5 3.9-3.4-1-4.7-2.2-4.7-4.6 0 0-1.7 3.9-5 3.7-3.4-.1-5-2.2-5.2-4 0 0-.7 3.6-5.2 3.9-3 .1-4.7-1.4-5.4-3.4 0 0-.9 3.6-5.2 4.2-2.7.3-5.4-1.2-6-3.7 0 0-.7 4.9-5 5.5-4.4.7-5.4-2.3-5.4-2.3s-.9 3.8-4.4 4.7q-5.3 1.1-6.7-4.2c-.8-3.5-.5-5-.5-5z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M280.9 171a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.5"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M263.3 231.3a1.7 1.7 0 1 0 0-3.3 1.7 1.7 0 0 0 0 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M304.1 167.2a1.8 1.8 0 1 0 0-3.5 1.8 1.8 0 0 0 0 3.5"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M285.1 227.8a1.7 1.7 0 1 0 0-3.3 1.7 1.7 0 0 0 0 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M327.8 168a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.5"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M307.3 228.5a1.7 1.7 0 1 0 0-3.3 1.7 1.7 0 0 0 0 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M351.1 171.7a1.8 1.8 0 1 0 0-3.5 1.8 1.8 0 0 0 0 3.5"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M329.2 232a1.7 1.7 0 1 0 0-3.3 1.7 1.7 0 0 0 0 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M314.9 165.3h-1.6c-.4 1.6-3.9 2.5-3.9 2.5-.4-1.2.6-3 .6-3-4-1.1-4-2.4-4-2.4.6-1.4 4.3-1.6 4.3-1.6-1-1.2-.9-3.2-.9-3.2 2.5.2 4.5 2.7 4.5 2.7s-2.4-1.3-2.1-5.6c0 0 1.3 0 2.1.9 0 0 0-4.7 2-5.3h.2c1.9.6 1.9 5.3 1.9 5.3.8-1 2.1-.9 2.1-.9.3 4.3-2.1 5.6-2.1 5.6s2-2.5 4.5-2.6c0 0 0 2-.8 3.2 0 0 3.6.1 4.3 1.5 0 0 0 1.4-4 2.3 0 0 .8 1.9.5 3.2 0 0-3.6-1-3.9-2.6H315"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M295.2 226h-1.5c-.4 1.5-3.6 2.4-3.6 2.4-.4-1.2.5-2.9.5-2.9-3.7-1-3.7-2.2-3.7-2.2.5-1.3 4-1.5 4-1.5-1-1.1-.8-3-.8-3 2.3.2 4.2 2.5 4.2 2.5s-2.3-1.2-2-5.2c0 0 1.2 0 2 .8 0 0 0-4.4 1.8-4.9h.2c1.8.5 1.8 4.9 1.8 4.9.8-.9 2-.8 2-.8.3 4-2 5.2-2 5.2s1.9-2.3 4.2-2.4c0 0 .1 1.8-.7 3 0 0 3.4.1 4 1.4 0 0 0 1.3-3.8 2.2 0 0 .8 1.7.5 3 0 0-3.3-1-3.6-2.5z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M315.7 166.1a3.2 3.2 0 1 0 0-6.4 3.2 3.2 0 0 0 0 6.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M296 226.8a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M315.7 164.7a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M296 225.5a1.7 1.7 0 1 0 0-3.4 1.7 1.7 0 0 0 0 3.4z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="m340.4 167.4 1.6.3c0 1.6 3.2 3.3 3.2 3.3.6-1 0-3 0-3 4.2-.2 4.5-1.6 4.5-1.6-.3-1.4-3.8-2.4-3.8-2.4 1-1 1.4-2.9 1.4-2.9-2.4-.4-4.9 1.5-4.9 1.5s2.7-.6 3.2-5c0 0-1.2-.2-2.1.4 0 0 1-4.5-.9-5.3l-.2-.1c-2 0-3 4.6-3 4.6-.6-1.1-2-1.2-2-1.2-1 4 1 5.8 1 5.8s-1.4-2.8-3.8-3.5c0 0-.5 2 0 3.2 0 0-3.5-.5-4.4.7 0 0-.3 1.4 3.3 3.2 0 0-1.1 1.6-1 3 0 0 3.5-.4 4.2-1.8l1.6.3 2.2.4"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="m319.1 228 1.5.3c0 1.5 3 3.1 3 3.1.6-1 .1-2.9.1-2.9 3.9-.1 4.1-1.4 4.1-1.4-.2-1.4-3.5-2.3-3.5-2.3 1-.9 1.3-2.7 1.3-2.7-2.3-.4-4.6 1.4-4.6 1.4s2.5-.6 3-4.6c0 0-1.1-.3-2 .3 0 0 .9-4.2-.8-5l-.2-.1c-1.9 0-2.8 4.3-2.8 4.3-.6-1-1.8-1.1-1.8-1.1-1.1 3.8.9 5.4.9 5.4s-1.4-2.6-3.6-3.2c0 0-.5 1.8 0 3 0 0-3.3-.5-4.1.6 0 0-.3 1.3 3.1 3 0 0-1.1 1.5-1 2.8 0 0 3.3-.3 4-1.7l1.5.3 2 .4" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M339.2 168a3.3 3.3 0 1 1 1.5-6.4 3.3 3.3 0 0 1-1.4 6.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M318 228.6a3 3 0 1 1 1.4-6 3 3 0 0 1-1.3 6z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M339.6 166.7a1.8 1.8 0 1 1 .8-3.6 1.8 1.8 0 0 1-.8 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M318.4 227.3a1.7 1.7 0 1 1 .7-3.3 1.7 1.7 0 0 1-.7 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="m290.5 167-1.6.2c-.3 1.7-3.6 3.2-3.6 3.2-.5-1.3 0-3.2 0-3.2-4-.4-4.1-1.8-4.1-1.8.4-1.4 4-2.2 4-2.2-1-1-1.1-3-1.1-3 2.3-.2 4.6 2 4.6 2s-2.5-.9-2.8-5.1c0 0 1.4-.4 2.2.4 0 0-.5-4.6 1.3-5.4h.2c2 .3 2.6 4.8 2.6 4.8.7-1 2-1 2-1 .8 4.2-1.4 5.7-1.4 5.7s1.7-2.6 4-3.2c0 0 .5 2-.3 3.4 0 0 3.7-.4 4.4 1 0 0 .2 1.3-3.6 2.8 0 0 1 1.7 1 3 0 0-3.6-.6-4.3-2.2l-1.5.4-2.2.2"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="m272.3 227.6-1.5.2c-.2 1.6-3.3 3-3.3 3-.5-1.2 0-3 0-3-3.7-.4-3.9-1.7-3.9-1.7.4-1.3 3.8-2 3.8-2-1-1-1.1-2.8-1.1-2.8 2.2-.2 4.4 1.8 4.4 1.8s-2.4-.8-2.7-4.8c0 0 1.3-.3 2.1.4 0 0-.5-4.3 1.2-5h.2c1.9.2 2.4 4.5 2.4 4.5.7-.9 2-1 2-1 .7 4-1.4 5.4-1.4 5.4s1.6-2.5 3.8-3c0 0 .4 1.9-.3 3.1 0 0 3.4-.3 4.1 1 0 0 .2 1.2-3.4 2.6 0 0 1 1.6.9 2.8 0 0-3.3-.5-4-2l-1.4.3-2 .2" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M291.4 167.8a3.2 3.2 0 1 0-.8-6.4 3.2 3.2 0 0 0 .8 6.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M273.2 228.4a3 3 0 1 0-.8-6 3 3 0 0 0 .8 6z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M291.2 166.3a1.8 1.8 0 1 0-.4-3.5 1.8 1.8 0 0 0 .4 3.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M273 227a1.7 1.7 0 1 0-.4-3.3 1.7 1.7 0 0 0 .4 3.3z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M362.9 174s-.9-2.2-2.7-1.5-1.6 1.1-3.2 1.1c0 0-.6-2 .2-2.9 0 0-2.5-1-3.2-3.2 0 0 1.4-1.6 4.7-1 0 0 0-1.5.3-2.3 0 0 3.6 1 3.6 3.1 0 0-1.1-3.8.8-6.6 0 0 1.6.6 1.5 2.4 0 0 .8-3.6 5.6-2.6 0 0-2.6 2.3-2.7 3.4-.2 1-2.4 2.9-2.5 3.5a4 4 0 0 1-.8 2.3c-.7.6-.8 1.7-.8 2s0 1.8-.8 2.2"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M340.2 234.1s-.8-2-2.5-1.3-1.5 1-3 1c0 0-.6-1.9.2-2.7 0 0-2.4-.9-3-3 0 0 1.3-1.5 4.4-.9 0 0-.1-1.5.3-2.2 0 0 3.3 1 3.3 2.9 0 0-1-3.6.8-6.2 0 0 1.5.6 1.4 2.3 0 0 .7-3.4 5.2-2.5 0 0-2.4 2.2-2.5 3.2s-2.2 2.7-2.3 3.3-.2 1.5-.8 2.1-.7 1.6-.7 2c0 .2 0 1.6-.8 2z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M360.2 169.7a3.2 3.2 0 0 1 5.1-2q0 1-.8 2c-.7.6-.8 1.7-.8 2a3 3 0 0 1-.4 1.8h-.5a3 3 0 0 1-2.6-3.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M337.7 230.1a3 3 0 0 1 4.8-1.8q0 .9-.8 1.8c-.6.6-.7 1.6-.7 2a3 3 0 0 1-.4 1.6h-.5a3 3 0 0 1-2.4-3.6z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M361.6 170a1.8 1.8 0 0 1 3.2-.8l-.3.5c-.7.6-.8 1.7-.8 2v.3h-.6q-1.6-.3-1.4-2.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M339 230.4a1.7 1.7 0 0 1 3-.7l-.3.4c-.6.6-.7 1.6-.7 2v.2h-.6q-1.6-.3-1.3-2z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fc0" d="M269 173s.9-2 2.7-1.2c1.7 1 1.5 1.2 3.2 1.2 0 0 .6-2 0-2.8 0 0 2.5-.8 3.2-3 0 0-1.3-1.7-4.6-1.3 0 0 .2-1.6-.2-2.3 0 0-3.5.8-3.6 2.7 0 0 1.2-3.7-.5-6.6 0 0-1.7.7-1.7 2.4 0 0-.5-3.7-5.3-3 0 0 2.4 2.5 2.4 3.6s2.2 3 2.2 3.6.2 1.7.8 2.4.7 1.7.6 2.1c0 .2 0 1.7.8 2.2"/>
+ <path fill="#bcac0b" stroke="#000" stroke-width=".7" d="M252.2 233.3s.8-2 2.5-1.2 1.4 1.1 3 1.1c0 0 .6-1.8 0-2.6 0 0 2.4-.7 3-2.8 0 0-1.2-1.6-4.3-1.2 0 0 .2-1.5-.2-2.2 0 0-3.3.8-3.4 2.6 0 0 1.2-3.5-.4-6.2 0 0-1.6.6-1.6 2.2 0 0-.5-3.4-5-2.7 0 0 2.3 2.3 2.3 3.3s2 2.8 2 3.4c0 .5.2 1.6.8 2.2s.6 1.6.5 2c0 .2 0 1.6.8 2z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M271.8 168.9a3.2 3.2 0 0 0-5-2.1q0 1 .8 1.9c.7.6.7 1.7.6 2.1q-.1.4.4 1.8h.4a3.2 3.2 0 0 0 2.8-3.7"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M254.8 229.4a3 3 0 0 0-4.6-2q0 .9.7 1.8c.6.6.6 1.6.5 2q-.1.5.4 1.7h.4a3 3 0 0 0 2.6-3.5z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="#fff" d="M270.4 169.1a1.8 1.8 0 0 0-3.2-1l.4.6c.7.6.7 1.7.6 2.1v.2h.7c1 0 1.6-1 1.5-1.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M253.5 229.6a1.7 1.7 0 0 0-3-.9l.4.5c.6.6.6 1.6.5 2v.2h.7c.9 0 1.5-.9 1.4-1.8z" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="none" stroke="#000" stroke-width="1.5" d="M257.2 251.6s33.8-13.2 76.4.3" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M338.4 241.1c-47.1-15-84.7-.8-84.7-.8" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ <path fill="red" d="m315.7 177.9-4 2 3.6 2.2 4.3-2z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m296 237.8-3.8 1.9 3.4 2.1 4-2-3.6-2" transform="matrix(1.06667 0 0 1.06758 0 -76)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/es-pv.svg b/apps/web/public/flags/es-pv.svg
new file mode 100644
index 00000000..63c19f41
--- /dev/null
+++ b/apps/web/public/flags/es-pv.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-pv" viewBox="0 0 640 480">
+ <path fill="#D52B1E" d="M0 0h640v480H0z"/>
+ <path fill="#009B48" d="M0 0h53.1l133.4 100.1 133.5 100L586.9 0H640v39.9l-133.4 100L373.2 240 640 440.2V480h-53.1L453.5 380 320 279.9 53.1 480H0v-39.8l133.4-100.1L266.8 240 0 39.9v-20z"/>
+ <path fill="#FFF" d="M288.1 0h63.8v208.1H640v63.8H351.9V480h-63.8V271.9H0v-63.8h288.1v-104z"/>
+</svg>
diff --git a/apps/web/public/flags/es.svg b/apps/web/public/flags/es.svg
new file mode 100644
index 00000000..a296ebf7
--- /dev/null
+++ b/apps/web/public/flags/es.svg
@@ -0,0 +1,544 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es" viewBox="0 0 640 480">
+ <path fill="#AA151B" d="M0 0h640v480H0z"/>
+ <path fill="#F1BF00" d="M0 120h640v240H0z"/>
+ <path fill="#ad1519" d="m127.3 213.3-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2q.5-1.2 1.4-1.5l1.5-.5 1-.4 1.3-.3.5-.3 1-.2 1-.2 1.6.1h4.8c.4 0 1.2.3 1.4.4l2 .7c.5.1 1.6.3 2.2.6q.8.5 1.1 1l.5 1v1.1l-.5.8-.6 1-.8.6s-.5.5-1 .4-4.8-.8-7.6-.8-7.3.9-7.3.9"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="m127.3 213.3-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2q.5-1.2 1.4-1.5l1.5-.5 1-.4 1.3-.3.5-.3 1-.2 1-.2 1.6.1h4.8c.4 0 1.2.3 1.4.4l2 .7c.5.1 1.6.3 2.2.6q.8.5 1.1 1l.5 1v1.1l-.5.8-.6 1-.8.6s-.5.5-1 .4-4.8-.8-7.6-.8-7.3.9-7.3.9z"/>
+ <path fill="#c8b100" d="M133.3 207q.1-2.1 1.3-2.3 1.3.1 1.4 2.4c0 1.3-.6 2.4-1.4 2.4s-1.3-1.1-1.3-2.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M133.3 207q.1-2.1 1.3-2.3 1.3.1 1.4 2.4c0 1.3-.6 2.4-1.4 2.4s-1.3-1.1-1.3-2.5z"/>
+ <path fill="#c8b100" d="M134 207q0-2 .7-2.1c.3 0 .6 1 .6 2.1q0 2-.6 2.2c-.4 0-.6-1-.6-2.2"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134 207q0-2 .7-2.1c.3 0 .6 1 .6 2.1q0 2-.6 2.2c-.4 0-.6-1-.6-2.2z"/>
+ <path fill="#c8b100" d="M133.8 204.5q.1-.7.8-.8 1 0 1 .8-.1.8-1 .9c-.9.1-.8-.4-.8-.9"/>
+ <path fill="#c8b100" d="M135.3 204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M135.3 204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h.4"/>
+ <path fill="#c8b100" d="M135.9 204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M135.9 204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134.9 203.7q.6.2.6.8-.1.8-.8.9-1 0-1-.9 0-.6.7-.8"/>
+ <path fill="#c8b100" d="M134.7 213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5q.1-.5.5-.7c1.1-.7 3.5 1 5.2 3.6l.5.7h3.8l.4-.7c1.8-2.7 4.1-4.3 5.2-3.6q.4.2.5.7c-.4-.3-1.6.8-2.9 2.5l-.2 1.5-.2 1.2-.1 1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5q.1-.5.5-.7c1.1-.7 3.5 1 5.2 3.6l.5.7h3.8l.4-.7c1.8-2.7 4.1-4.3 5.2-3.6q.4.2.5.7c-.4-.3-1.6.8-2.9 2.5l-.2 1.5-.2 1.2-.1 1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M126.8 206.8c1-.5 3 1.1 4.6 3.6m11-3.6c-.8-.5-2.8 1.1-4.5 3.6"/>
+ <path fill="#c8b100" d="m127.8 215.3-.5-1a27 27 0 0 1 14.7 0l-.5.8-.3.8a23 23 0 0 0-6.6-.8c-2.6 0-5.2.3-6.5.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m127.8 215.3-.5-1a27 27 0 0 1 14.7 0l-.5.8-.3.8a23 23 0 0 0-6.6-.8c-2.6 0-5.2.3-6.5.8l-.3-.6"/>
+ <path fill="#c8b100" d="M134.6 217.7c2.4 0 5-.4 5.9-.6q1-.3 1-.8 0-.3-.4-.4c-1.4-.5-4-.8-6.5-.8s-5 .3-6.4.8q-.3 0-.4.3 0 .6 1 .9c1 .2 3.5.6 5.8.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134.6 217.7c2.4 0 5-.4 5.9-.6q1-.3 1-.8 0-.3-.4-.4c-1.4-.5-4-.8-6.5-.8s-5 .3-6.4.8q-.3 0-.4.3 0 .6 1 .9c1 .2 3.5.6 5.8.6z"/>
+ <path fill="#c8b100" d="m142.1 213.2-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1 1c-.5 0-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27 27 0 0 1 7.2-.9q4.5 0 7.4 1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m142.1 213.2-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1 1c-.5 0-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27 27 0 0 1 7.2-.9q4.5 0 7.4 1z"/>
+ <path fill="#c8b100" d="M134.7 210.7h.2v.4q0 1 1 1a1 1 0 0 0 1-.7l.2-.3v.4q.3.8 1.1.8 1 0 1-1v-.1l.4-.4.2.5-.1.4a1 1 0 0 0 1 1q.6 0 .9-.5l.2-.2v.3q0 .5.4.7l1-.4.7-.7v.4s-.5.8-1 1q-.3.4-.8.3-.5 0-.7-.6-.3.3-.7.2-1 0-1.4-.8-.5.5-1.1.5a2 2 0 0 1-1.2-.6l-1 .4a2 2 0 0 1-1.3-.6 1.6 1.6 0 0 1-2.4.2 2 2 0 0 1-1.2.6l-1.1-.5q-.4.8-1.4.8l-.7-.2q-.2.5-.7.6t-.9-.2l-1-1 .1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1 1 0 0 0 1-1v-.9l.4.4v.1q.1 1 1 1t1.1-.9v-.3l.2.3q.3.6 1 .7 1 0 1.1-1v-.3h.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 210.7h.2v.4q0 1 1 1a1 1 0 0 0 1-.7l.2-.3v.4q.3.8 1.1.8 1 0 1-1v-.1l.4-.4.2.5-.1.4a1 1 0 0 0 1 1q.6 0 .9-.5l.2-.2v.3q0 .5.4.7l1-.4.7-.7v.4s-.5.8-1 1q-.3.4-.8.3-.5 0-.7-.6-.3.3-.7.2-1 0-1.4-.8-.5.5-1.1.5a2 2 0 0 1-1.2-.6l-1 .4a2 2 0 0 1-1.3-.6 1.6 1.6 0 0 1-2.4.2 2 2 0 0 1-1.2.6l-1.1-.5q-.4.8-1.4.8l-.7-.2q-.2.5-.7.6t-.9-.2l-1-1 .1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1 1 0 0 0 1-1v-.9l.4.4v.1q.1 1 1 1t1.1-.9v-.3l.2.3q.3.6 1 .7 1 0 1.1-1v-.3h.3z"/>
+ <path fill="#c8b100" d="M134.6 213.3q-4.5 0-7.3 1l-.3-.2.1-.3a27 27 0 0 1 7.5-1q4.6 0 7.6 1l.1.3-.3.2a27 27 0 0 0-7.4-1"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M134.6 213.3q-4.5 0-7.3 1l-.3-.2.1-.3a27 27 0 0 1 7.5-1q4.6 0 7.6 1l.1.3-.3.2a27 27 0 0 0-7.4-1z"/>
+ <path fill="#fff" d="M131.8 214.4q0-.4.5-.4a.4.4 0 0 1 .4.4q0 .3-.4.4a.4.4 0 0 1-.5-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M131.8 214.4q0-.4.5-.4a.4.4 0 0 1 .4.4q0 .3-.4.4a.4.4 0 0 1-.5-.4z"/>
+ <path fill="#ad1519" d="M134.7 214.5h-1q-.2 0-.3-.3l.3-.3h2l.2.3-.3.3h-1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 214.5h-1q-.2 0-.3-.3l.3-.3h2l.2.3-.3.3h-1"/>
+ <path fill="#058e6e" d="M130 214.9h-.7q-.2 0-.3-.2l.2-.3.7-.1.7-.1q.3 0 .4.2a.3.3 0 0 1-.3.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M130 214.9h-.7q-.2 0-.3-.2l.2-.3.7-.1.7-.1q.3 0 .4.2a.3.3 0 0 1-.3.4h-.7"/>
+ <path fill="#ad1519" d="m127.3 215.3.3-.4h.7l-.4.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m127.3 215.3.3-.4h.7l-.4.6-.6-.2"/>
+ <path fill="#fff" d="M136.6 214.4q0-.4.4-.4a.4.4 0 0 1 .5.4.4.4 0 0 1-.5.4.4.4 0 0 1-.4-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M136.6 214.4q0-.4.4-.4a.4.4 0 0 1 .5.4.4.4 0 0 1-.5.4.4.4 0 0 1-.4-.4z"/>
+ <path fill="#058e6e" d="M139.3 214.9h.6a.3.3 0 0 0 .4-.2l-.3-.3-.6-.1-.7-.1q-.3 0-.4.2 0 .3.3.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M139.3 214.9h.6a.3.3 0 0 0 .4-.2l-.3-.3-.6-.1-.7-.1q-.3 0-.4.2 0 .3.3.4h.7"/>
+ <path fill="#ad1519" d="m142 215.4-.3-.5h-.7l.3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m142 215.4-.3-.5h-.7l.3.6.6-.1"/>
+ <path fill="#ad1519" d="M134.6 217.1a25 25 0 0 1-6-.6 26 26 0 0 1 12.1 0q-2.5.6-6 .6"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M134.6 217.1a25 25 0 0 1-6-.6 26 26 0 0 1 12.1 0q-2.5.6-6 .6z"/>
+ <path fill="#c8b100" d="m142 212-.1-.3q-.3 0-.4.2 0 .4.2.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m142 212-.1-.3q-.3 0-.4.2 0 .4.2.4z"/>
+ <path fill="#c8b100" d="M137.3 211.2q0-.3-.2-.4l-.2.3q0 .3.2.4l.3-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M137.3 211.2q0-.3-.2-.4l-.2.3q0 .3.2.4l.3-.3z"/>
+ <path fill="#c8b100" d="m132 211.2.1-.4q.3 0 .3.3t-.2.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m132 211.2.1-.4q.3 0 .3.3t-.2.4z"/>
+ <path fill="#c8b100" d="m127.3 212 .1-.3q.3 0 .4.2 0 .4-.2.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m127.3 212 .1-.3q.3 0 .4.2 0 .4-.2.4z"/>
+ <path fill="#c8b100" d="m134.6 208.5-.8.5.6 1.3.2.1.2-.1.7-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m134.6 208.5-.8.5.6 1.3.2.1.2-.1.7-1.3-.9-.5"/>
+ <path fill="#c8b100" d="m132.8 210.5.4.5 1.3-.4.1-.2-.1-.2-1.3-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m132.8 210.5.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+ <path fill="#c8b100" d="m136.4 210.5-.3.5-1.3-.4-.2-.2.2-.2 1.3-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m136.4 210.5-.3.5-1.3-.4-.2-.2.2-.2 1.3-.3.3.6"/>
+ <path fill="#c8b100" d="m129.3 209-.7.7.9 1 .2.1.1-.1.3-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m129.3 209-.7.7.9 1 .2.1.1-.1.3-1.3-.8-.3"/>
+ <path fill="#c8b100" d="m128 211.2.4.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m128 211.2.4.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+ <path fill="#c8b100" d="m131.5 210.5-.3.6H130l-.2-.2.1-.3 1.2-.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m131.5 210.5-.3.6H130l-.2-.2.1-.3 1.2-.6.5.5"/>
+ <path fill="#c8b100" d="M126.6 211.4v.6l-1.4.2-.2-.1v-.2l1-.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M126.6 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+ <path fill="#c8b100" d="M129.2 210.9q0-.5.5-.5t.5.5l-.5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M129.2 210.9q0-.5.5-.5t.5.5l-.5.4z"/>
+ <path fill="#c8b100" d="m140 209 .7.7-.9 1-.2.1-.1-.1-.3-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m140 209 .7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+ <path fill="#c8b100" d="m141.4 211.2-.5.5-1.2-.6v-.2l.1-.2 1.3-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m141.4 211.2-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+ <path fill="#c8b100" d="m137.8 210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m137.8 210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+ <path fill="#c8b100" d="m142.5 211.4.1.6 1.3.2.2-.1v-.2l-1-.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m142.5 211.4.1.6 1.3.2.2-.1v-.2l-1-.9-.6.4"/>
+ <path fill="#c8b100" d="m134.2 210.4.4-.4q.5 0 .5.4l-.5.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m134.2 210.4.4-.4q.5 0 .5.4l-.5.5z"/>
+ <path fill="#c8b100" d="M139.1 210.9q.1-.5.5-.5l.5.5-.5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M139.1 210.9q.1-.5.5-.5l.5.5-.5.4z"/>
+ <path fill="#c8b100" d="m124.8 212.2-.6-.7c-.2-.2-.7-.3-.7-.3q0-.2.6-.3l.4.2v-.2s.3 0 .4.3v1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m124.8 212.2-.6-.7c-.2-.2-.7-.3-.7-.3q0-.2.6-.3l.4.2v-.2s.3 0 .4.3v1z"/>
+ <path fill="#c8b100" d="M124.8 212q.3-.3.5 0t.2.5l-.5-.1q-.3-.2-.2-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M124.8 212q.3-.3.5 0t.2.5l-.5-.1q-.3-.2-.2-.5z"/>
+ <path fill="#c8b100" d="m144.3 212.2.6-.7.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3 0-.4.3v.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m144.3 212.2.6-.7.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3 0-.4.3v.7z"/>
+ <path fill="#c8b100" d="M144.3 212q-.1-.3-.5 0-.3.2-.1.5l.5-.1q.3-.2.1-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M144.3 212q-.1-.3-.5 0-.3.2-.1.5l.5-.1q.3-.2.1-.5z"/>
+ <path fill="#c8b100" d="M124 223h21.4v-5.5H124z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M124 223h21.4v-5.5H124z"/>
+ <path fill="#c8b100" d="M126.2 226.8h16.9a1.4 1.4 0 0 1-1-1.2q.1-1 1-1.3h-16.9q1 .3 1 1.3a1.3 1.3 0 0 1-1 1.2"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M126.2 226.8h16.9a1.4 1.4 0 0 1-1-1.2q.1-1 1-1.3h-16.9q1 .3 1 1.3a1.3 1.3 0 0 1-1 1.2z"/>
+ <path fill="#c8b100" d="M126.6 226.8h16q1 0 1 .7t-1 .8h-16q-.9-.1-1-.8 0-1 1-.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 226.8h16q1 0 1 .7t-1 .8h-16q-.9-.1-1-.8 0-1 1-.8z"/>
+ <path fill="#c8b100" d="M126.6 223h16q1 .1 1 .7t-1 .6h-16q-.9 0-1-.6.1-.5 1-.6"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 223h16q1 .1 1 .7t-1 .6h-16q-.9 0-1-.6.1-.5 1-.6z"/>
+ <path fill="#005bbf" d="M149.6 317.4q-2.2 0-3.7-.8a8 8 0 0 0-3.8-.8q-2.1 0-3.7.8a8 8 0 0 1-3.8.8q-2.3 0-3.7-.8a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8 8 8 0 0 1-3.8.8v2.4q2.3 0 3.8-.9a8 8 0 0 1 3.7-.8q2.2 0 3.7.8c1.5.8 2.2.9 3.7.9a8 8 0 0 0 3.8-.9q1.6-.8 3.7-.8 2.3 0 3.8.8c1.5.8 2.2.9 3.7.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 317.4q-2.2 0-3.7-.8a8 8 0 0 0-3.8-.8q-2.1 0-3.7.8a8 8 0 0 1-3.8.8q-2.3 0-3.7-.8a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8 8 8 0 0 1-3.8.8v2.4q2.3 0 3.8-.9a8 8 0 0 1 3.7-.8q2.2 0 3.7.8c1.5.8 2.2.9 3.7.9a8 8 0 0 0 3.8-.9q1.6-.8 3.7-.8 2.3 0 3.8.8c1.5.8 2.2.9 3.7.9z"/>
+ <path fill="#ccc" d="M149.6 319.8a8 8 0 0 1-3.7-.9 8 8 0 0 0-3.8-.8q-2.1 0-3.7.8c-1.6.8-2.3.9-3.8.9s-2.8-.4-3.7-.9a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v2.3q2.3 0 3.8-.9a8 8 0 0 1 3.7-.7q2.2 0 3.7.7a8 8 0 0 0 7.5 0 9 9 0 0 1 7.5.1 8 8 0 0 0 3.7.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 319.8a8 8 0 0 1-3.7-.9 8 8 0 0 0-3.8-.8q-2.1 0-3.7.8c-1.6.8-2.3.9-3.8.9s-2.8-.4-3.7-.9a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v2.3q2.3 0 3.8-.9a8 8 0 0 1 3.7-.7q2.2 0 3.7.7a8 8 0 0 0 7.5 0 9 9 0 0 1 7.5.1 8 8 0 0 0 3.7.8v-2.3"/>
+ <path fill="#005bbf" d="M149.6 322a7 7 0 0 1-3.7-.8 8 8 0 0 0-3.8-.7q-2.1 0-3.7.7-1.5.9-3.8.9c-2.3 0-2.8-.4-3.7-.9a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v2.3q2.3 0 3.8-.9a10 10 0 0 1 7.4 0 7 7 0 0 0 3.7.9 8 8 0 0 0 3.8-.8q1.6-.8 3.7-.8 2.3 0 3.8.8c1.5.8 2.2.8 3.7.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 322a7 7 0 0 1-3.7-.8 8 8 0 0 0-3.8-.7q-2.1 0-3.7.7-1.5.9-3.8.9c-2.3 0-2.8-.4-3.7-.9a8 8 0 0 0-3.7-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v2.3q2.3 0 3.8-.9a10 10 0 0 1 7.4 0 7 7 0 0 0 3.7.9 8 8 0 0 0 3.8-.8q1.6-.8 3.7-.8 2.3 0 3.8.8c1.5.8 2.2.8 3.7.8V322"/>
+ <path fill="#ccc" d="M149.6 326.7a8 8 0 0 1-3.7-.8q-1.6-.8-3.7-.8a8 8 0 0 0-3.8.8q-1.5.8-3.8.8a7 7 0 0 1-3.7-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8 8 0 0 0 3.8-.9 10 10 0 0 1 7.4 0 8 8 0 0 0 3.7.9 8 8 0 0 0 3.8-.8q1.5-.8 3.8-.8t3.7.8c1.5.8 2.3.8 3.7.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 326.7a8 8 0 0 1-3.7-.8q-1.6-.8-3.7-.8a8 8 0 0 0-3.8.8q-1.5.8-3.8.8a7 7 0 0 1-3.7-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8 8 0 0 0 3.8-.9 10 10 0 0 1 7.4 0 8 8 0 0 0 3.7.9 8 8 0 0 0 3.8-.8q1.5-.8 3.8-.8t3.7.8c1.5.8 2.3.8 3.7.8v2.3"/>
+ <path fill="#005bbf" d="M149.6 329a8 8 0 0 1-3.7-.8q-1.6-.8-3.7-.8a8 8 0 0 0-3.8.8q-1.5.8-3.8.8a7 7 0 0 1-3.7-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8 8 0 0 0 3.8-.8q1.5-.8 3.7-.8t3.7.7a8 8 0 0 0 7.5 0q1.5-.6 3.8-.7t3.7.8c1.5.8 2.2.8 3.7.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 329a8 8 0 0 1-3.7-.8q-1.6-.8-3.7-.8a8 8 0 0 0-3.8.8q-1.5.8-3.8.8a7 7 0 0 1-3.7-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.7.8c-1.5.8-2.3.8-3.8.8v-2.3a8 8 0 0 0 3.8-.8q1.5-.8 3.7-.8t3.7.7a8 8 0 0 0 7.5 0q1.5-.6 3.8-.7t3.7.8c1.5.8 2.2.8 3.7.8z"/>
+ <path fill="#c8b100" d="m126.2 308 .2.5c0 1.5-1.3 2.6-2.7 2.6h22a3 3 0 0 1-2.7-2.6v-.5z"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="m126.2 308 .2.5c0 1.5-1.3 2.6-2.7 2.6h22a3 3 0 0 1-2.7-2.6v-.5z"/>
+ <path fill="#c8b100" d="M126.6 306.5h16q1 0 1 .8 0 .6-1 .7h-16q-.9 0-1-.8.1-.6 1-.7"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 306.5h16q1 0 1 .8 0 .6-1 .7h-16q-.9 0-1-.8.1-.6 1-.7z"/>
+ <path fill="#c8b100" d="M123.7 316.7h22V311h-22z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M123.7 316.7h22V311h-22z"/>
+ <path fill="#ad1519" d="M122 286.7c-2.2 1.2-3.7 2.5-3.4 3.2q.2.8 1.8 1.6c1.5 1.1 2.5 3 1.7 4a5.5 5.5 0 0 0-.1-8.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M122 286.7c-2.2 1.2-3.7 2.5-3.4 3.2q.2.8 1.8 1.6c1.5 1.1 2.5 3 1.7 4a5.5 5.5 0 0 0-.1-8.8z"/>
+ <path fill="#ccc" d="M126.8 305.6h15.6V229h-15.6v76.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M138 229.2v76.3m1.7-76.3v76.3m-12.9 0h15.6v-76.4h-15.6v76.5z"/>
+ <path fill="#ad1519" d="M158.4 257.7a50 50 0 0 0-23.3-2c-9.4 1.6-16.5 5.3-15.9 8.4v.2l-3.5-8.2c-.6-3.3 7.2-7.5 17.6-9.2a43 43 0 0 1 9.2-.7c6.6 0 12.4.8 15.8 2.1v9.4"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M158.4 257.7a50 50 0 0 0-23.3-2c-9.4 1.6-16.5 5.3-15.9 8.4v.2l-3.5-8.2c-.6-3.3 7.2-7.5 17.6-9.2a43 43 0 0 1 9.2-.7c6.6 0 12.4.8 15.8 2.1v9.4"/>
+ <path fill="#ad1519" d="M126.8 267.3c-4.3-.3-7.3-1.4-7.6-3.2q-.3-2.2 3.8-4.5l3.8.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M126.8 267.3c-4.3-.3-7.3-1.4-7.6-3.2q-.3-2.2 3.8-4.5l3.8.3v7.4"/>
+ <path fill="#ad1519" d="M142.5 261.5q4.1.6 5.7 1.9l.1.2c.5 1-1.9 3-5.9 5.4v-7.5"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M142.5 261.5q4.1.6 5.7 1.9l.1.2c.5 1-1.9 3-5.9 5.4v-7.5"/>
+ <path fill="#ad1519" d="M117.1 282c-.4-1.2 3.8-3.6 9.8-5.8l7.8-3.2c8.3-3.7 14.4-7.9 13.6-9.4v-.2c.4.4 1 8 1 8 .8 1.3-4.8 5.5-12.4 9.1-2.5 1.2-7.6 3-10 4-4.4 1.4-8.7 4.3-8.3 5.3l-1.5-7.7"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M117.1 282c-.4-1.2 3.8-3.6 9.8-5.8l7.8-3.2c8.3-3.7 14.4-7.9 13.6-9.4v-.2c.4.4 1 8 1 8 .8 1.3-4.8 5.5-12.4 9.1-2.5 1.2-7.6 3-10 4-4.4 1.4-8.7 4.3-8.3 5.3l-1.5-7.7z"/>
+ <path fill="#c8b100" d="M125.8 254c1.9-.6 3.1-1.5 2.5-3q-.6-1.3-2.8-.6l-2.6 1 2.3 5.8.8-.3.8-.3zm-1.2-2.7.7-.3q1-.3 1.4.8.4.8-.5 1.5l-.6.3zm7.3-2.5-.9.3h-.8l1.3 6.1 4.3-.8-.2-.4v-.4l-2.5.6zm8.4 5.2q1.2-3.3 2.7-6.4h-1l-1.8 4.6-2.4-4.3-1 .1h-1l3.5 6zm8.8-4.7.4-.9a3 3 0 0 0-1.7-.6q-2.6 0-2.8 1.7c-.2 2.1 3.2 2 3 3.4q-.2 1-1.4.8-1.3 0-1.4-1.2h-.3l-.4 1.1a4 4 0 0 0 1.8.6q2.7.2 3.2-1.7c.2-2-3.3-2.1-3.1-3.4q0-.8 1.3-.7 1 0 1.2.9z"/>
+ <path fill="#ad1519" d="M277.9 211.6s-.7.8-1.3.9c-.5 0-1.1-.5-1.1-.5s-.5.5-1 .6-1.4-.6-1.4-.6l-1 1-1.1-.3c-.1-.1-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5q0-1 2.2-1.7a4 4 0 0 1 2 0q.9-.8 3-.8c2.1 0 2.4.3 3 .7a6 6 0 0 1 2.9-.7q2.1 0 3 .8.8-.3 2 0 2.2.6 2.2 1.7v.5l-.4 1-.6.3-.6.7-.6.3s-.3.2-.4 0q-.6-.3-.7-.5c-.1-.2-.6.4-1 .2s-1-1-1-1-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5-1.2-.9-1.2-.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 211.6s-.7.8-1.3.9c-.5 0-1.1-.5-1.1-.5s-.5.5-1 .6-1.4-.6-1.4-.6l-1 1-1.1-.3c-.1-.1-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5q0-1 2.2-1.7a4 4 0 0 1 2 0q.9-.8 3-.8c2.1 0 2.4.3 3 .7a6 6 0 0 1 2.9-.7q2.1 0 3 .8.8-.3 2 0 2.2.6 2.2 1.7v.5l-.4 1-.6.3-.6.7-.6.3s-.3.2-.4 0q-.6-.3-.7-.5c-.1-.2-.6.4-1 .2s-1-1-1-1-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5-1.2-.9-1.2-.9z"/>
+ <path fill="#c8b100" d="M276.5 207.6c0-1 .6-2 1.3-2s1.3 1 1.3 2-.5 1.8-1.3 1.8q-1.2-.1-1.3-1.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M276.5 207.6c0-1 .6-2 1.3-2s1.3 1 1.3 2-.5 1.8-1.3 1.8q-1.2-.1-1.3-1.9z"/>
+ <path fill="#c8b100" d="M277.3 207.6q0-1.7.5-1.8.6.2.7 1.8c.1 1.6-.3 1.7-.6 1.7q-.6-.2-.6-1.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.3 207.6q0-1.7.5-1.8.6.2.7 1.8c.1 1.6-.3 1.7-.6 1.7q-.6-.2-.6-1.8z"/>
+ <path fill="#c8b100" d="m271 215.3-.5-1a27 27 0 0 1 14.8 0l-.6.8-.3.8a23 23 0 0 0-6.6-.8c-2.6 0-5.2.3-6.6.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m271 215.3-.5-1a27 27 0 0 1 14.8 0l-.6.8-.3.8a23 23 0 0 0-6.6-.8c-2.6 0-5.2.3-6.6.8l-.2-.6"/>
+ <path fill="#c8b100" d="M277.8 217.7c2.4 0 5-.4 5.9-.6q1-.3 1-.8 0-.3-.4-.4a24 24 0 0 0-6.5-.8c-2.5 0-5 .3-6.4.8q-.3 0-.4.3 0 .6 1 .9c1 .2 3.5.6 5.8.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.8 217.7c2.4 0 5-.4 5.9-.6q1-.3 1-.8 0-.3-.4-.4a24 24 0 0 0-6.5-.8c-2.5 0-5 .3-6.4.8q-.3 0-.4.3 0 .6 1 .9c1 .2 3.5.6 5.8.6z"/>
+ <path fill="#fff" d="M283.5 208.4q0-.3.4-.4.5 0 .5.4t-.5.4a.4.4 0 0 1-.4-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M283.5 208.4q0-.3.4-.4.5 0 .5.4t-.5.4a.4.4 0 0 1-.4-.4zm-.2-1.4a.4.4 0 0 1 .4-.4q.4 0 .4.4t-.4.4a.4.4 0 0 1-.4-.4zm-1.1-1q0-.3.4-.3t.4.4-.4.4a.4.4 0 0 1-.4-.5zm-1.4-.4q0-.3.4-.4.5 0 .5.4t-.4.4q-.5-.1-.5-.4zm-1.4 0q0-.3.5-.3t.4.4q0 .3-.4.4a.4.4 0 0 1-.5-.4z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="m287.8 211.2.2-1a2.7 2.7 0 0 0-2.7-2.8q-.8 0-1.3.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m283 209.2.2-.8q-.2-1.8-2.5-2-1 0-1.6.4"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M288.2 210q0-.5.4-.5t.4.4-.4.4q-.5 0-.4-.4zm-.2-1.6q0-.3.4-.4a.4.4 0 0 1 .5.4q0 .3-.4.4-.5 0-.5-.4zm-1-1.1a.4.4 0 0 1 .5-.4q.3 0 .4.4a.4.4 0 0 1-.4.4.4.4 0 0 1-.5-.4zm-1.3-.7q0-.4.5-.4t.4.4q0 .5-.4.5a.4.4 0 0 1-.5-.5zm-1.4.1q0-.3.5-.4.6 0 .4.4t-.4.4q-.4-.1-.5-.4z"/>
+ <path fill="#c8b100" d="m285.3 213.2-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1 1c-.5 0-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27 27 0 0 1 7.3-.9q4.3 0 7.3 1l.2-.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m285.3 213.2-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7-1-.6-1-.6-.7.5-1.3.4-1.2-.8-1.2-.8-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1 1c-.5 0-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27 27 0 0 1 7.3-.9q4.3 0 7.3 1l.2-.6z"/>
+ <path fill="#fff" d="M271.3 208.4q0-.3.4-.4.5 0 .4.4a.4.4 0 0 1-.4.4.4.4 0 0 1-.4-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M271.3 208.4q0-.3.4-.4.5 0 .4.4a.4.4 0 0 1-.4.4.4.4 0 0 1-.4-.4zm.2-1.4q0-.4.4-.4t.5.4q0 .5-.5.4a.4.4 0 0 1-.4-.4zm1-1q.1-.3.5-.3t.5.4q0 .3-.5.4a.4.4 0 0 1-.4-.5zm1.4-.4q0-.3.5-.4.6 0 .4.4t-.4.4q-.4-.1-.5-.4zm1.4 0q0-.3.5-.3.3 0 .4.4 0 .3-.4.4a.4.4 0 0 1-.5-.4z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="m267.8 211.2-.2-1a2.7 2.7 0 0 1 2.7-2.8q.8 0 1.4.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m272.7 209.2-.3-.8c0-1 1.2-2 2.6-2a3 3 0 0 1 1.5.4"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M266.6 210q0-.5.4-.5t.4.4a.4.4 0 0 1-.4.4q-.3 0-.4-.4zm.1-1.6q.1-.3.5-.4.5 0 .4.4t-.4.4q-.4-.1-.4-.4zm1-1.1q0-.4.5-.4a.4.4 0 0 1 .4.4.4.4 0 0 1-.4.4.4.4 0 0 1-.5-.4zm1.3-.7q0-.4.5-.4.3 0 .4.4 0 .5-.4.5a.4.4 0 0 1-.5-.5zm1.4.1q0-.3.5-.4a.4.4 0 0 1 .4.4.4.4 0 0 1-.4.4q-.5 0-.5-.4z"/>
+ <path fill="#c8b100" d="M277.9 210.7h.2v.4q.1 1 1 1a1 1 0 0 0 1-.7l.2-.3v.4q.3.8 1.1.8 1 0 1-1v-.1l.4-.4.2.5-.1.4a1 1 0 0 0 1 1q.6 0 .9-.5l.2-.2v.3q0 .5.4.7l1-.4c1-.5.7-.7.7-.7v.4s-.5.8-1 1q-.3.4-.8.3-.5 0-.7-.6l-.7.2q-1 0-1.4-.8l-1.1.5q-.8 0-1.2-.6l-1 .4q-.9 0-1.4-.6-.4.6-1.2.6-.6 0-1-.4a2 2 0 0 1-1.3.6q-.6 0-1.1-.5-.4.8-1.4.8-.4 0-.7-.2-.2.5-.7.6t-.9-.2l-1-1 .1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1 1 0 0 0 1-1v-.9l.4.4v.1q.1 1 1 1t1.1-.9v-.3l.2.3q.4.6 1 .7 1 0 1.1-1v-.3h.2"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 210.7h.2v.4q.1 1 1 1a1 1 0 0 0 1-.7l.2-.3v.4q.3.8 1.1.8 1 0 1-1v-.1l.4-.4.2.5-.1.4a1 1 0 0 0 1 1q.6 0 .9-.5l.2-.2v.3q0 .5.4.7l1-.4c1-.5.7-.7.7-.7v.4s-.5.8-1 1q-.3.4-.8.3-.5 0-.7-.6l-.7.2q-1 0-1.4-.8l-1.1.5q-.8 0-1.2-.6l-1 .4q-.9 0-1.4-.6-.4.6-1.2.6-.6 0-1-.4a2 2 0 0 1-1.3.6q-.6 0-1.1-.5-.4.8-1.4.8-.4 0-.7-.2-.2.5-.7.6t-.9-.2l-1-1 .1-.5.8.7q.8.5.9.4.4-.1.4-.7v-.3l.2.2q.3.5.9.5a1 1 0 0 0 1-1v-.9l.4.4v.1q.1 1 1 1t1.1-.9v-.3l.2.3q.4.6 1 .7 1 0 1.1-1v-.3h.2z"/>
+ <path fill="#c8b100" d="M277.8 213.3q-4.5 0-7.3 1l-.3-.2.1-.3q3-1 7.5-1t7.6 1l.1.3-.3.2a27 27 0 0 0-7.4-1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.8 213.3q-4.5 0-7.3 1l-.3-.2.1-.3q3-1 7.5-1t7.6 1l.1.3-.3.2a27 27 0 0 0-7.4-1z"/>
+ <path fill="#fff" d="M275 214.4q0-.4.5-.4a.4.4 0 0 1 .4.4.4.4 0 0 1-.4.4q-.5 0-.5-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M275 214.4q0-.4.5-.4a.4.4 0 0 1 .4.4.4.4 0 0 1-.4.4q-.5 0-.5-.4z"/>
+ <path fill="#ad1519" d="M277.9 214.5h-1q-.2 0-.3-.3l.3-.3h2l.2.3-.3.3h-1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 214.5h-1q-.2 0-.3-.3l.3-.3h2l.2.3-.3.3h-1"/>
+ <path fill="#058e6e" d="M273.2 214.9h-.6a.3.3 0 0 1-.4-.2l.3-.3.6-.1.7-.1q.3 0 .4.2a.3.3 0 0 1-.3.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M273.2 214.9h-.6a.3.3 0 0 1-.4-.2l.3-.3.6-.1.7-.1q.3 0 .4.2a.3.3 0 0 1-.3.4h-.7"/>
+ <path fill="#ad1519" d="m270.5 215.3.3-.4h.7l-.4.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m270.5 215.3.3-.4h.7l-.4.6-.6-.2"/>
+ <path fill="#fff" d="M279.8 214.4q0-.4.4-.4t.5.4q0 .3-.5.4a.4.4 0 0 1-.4-.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M279.8 214.4q0-.4.4-.4t.5.4q0 .3-.5.4a.4.4 0 0 1-.4-.4z"/>
+ <path fill="#058e6e" d="M282.5 214.9h.7l.3-.2-.2-.3-.7-.1-.7-.1q-.3 0-.4.2 0 .3.3.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M282.5 214.9h.7l.3-.2-.2-.3-.7-.1-.7-.1q-.3 0-.4.2 0 .3.3.4h.7"/>
+ <path fill="#ad1519" d="m285.1 215.4-.2-.5h-.7l.3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m285.1 215.4-.2-.5h-.7l.3.6.6-.1"/>
+ <path fill="#ad1519" d="M277.8 217.1a25 25 0 0 1-6-.6 25 25 0 0 1 6-.7q3.6 0 6.1.7-2.5.6-6 .6"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M277.8 217.1a25 25 0 0 1-6-.6 25 25 0 0 1 6-.7q3.6 0 6.1.7-2.5.6-6 .6z"/>
+ <path fill="#c8b100" d="m285.2 212-.1-.3q-.3 0-.4.2l.1.4q.3 0 .4-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m285.2 212-.1-.3q-.3 0-.4.2l.1.4q.3 0 .4-.3z"/>
+ <path fill="#c8b100" d="M280.6 211.2q0-.3-.3-.4l-.2.3q0 .3.2.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M280.6 211.2q0-.3-.3-.4l-.2.3q0 .3.2.4z"/>
+ <path fill="#c8b100" d="M275.2 211.2q0-.3.2-.4l.3.3-.2.4q-.3 0-.3-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M275.2 211.2q0-.3.2-.4l.3.3-.2.4q-.3 0-.3-.3z"/>
+ <path fill="#c8b100" d="m270.5 212 .1-.3q.3 0 .4.2l-.1.4q-.3 0-.4-.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m270.5 212 .1-.3q.3 0 .4.2l-.1.4q-.3 0-.4-.3z"/>
+ <path fill="#c8b100" d="m277.8 208.5-.8.5.6 1.3.2.1.3-.1.6-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m277.8 208.5-.8.5.6 1.3.2.1.3-.1.6-1.3-.9-.5"/>
+ <path fill="#c8b100" d="m276 210.5.4.5 1.3-.4.1-.2-.1-.2-1.3-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m276 210.5.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+ <path fill="#c8b100" d="m279.6 210.5-.3.5-1.3-.4-.1-.2v-.2l1.4-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m279.6 210.5-.3.5-1.3-.4-.1-.2v-.2l1.4-.3.4.6"/>
+ <path fill="#c8b100" d="m272.5 209-.7.7.9 1 .2.1.2-.1.2-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m272.5 209-.7.7.9 1 .2.1.2-.1.2-1.3-.8-.3"/>
+ <path fill="#c8b100" d="m271.1 211.2.5.5 1.2-.6v-.2l-.1-.2-1.3-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m271.1 211.2.5.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+ <path fill="#c8b100" d="m274.7 210.5-.3.6h-1.3l-.2-.2.1-.3 1.2-.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m274.7 210.5-.3.6h-1.3l-.2-.2.1-.3 1.2-.6.5.5"/>
+ <path fill="#c8b100" d="M269.8 211.4v.6l-1.4.2-.2-.1v-.2l1-.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M269.8 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+ <path fill="#c8b100" d="M272.4 210.9q0-.5.5-.5l.5.5-.5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M272.4 210.9q0-.5.5-.5l.5.5-.5.4z"/>
+ <path fill="#c8b100" d="m283.2 209 .7.7-.9 1-.2.1-.1-.1-.3-1.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m283.2 209 .7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+ <path fill="#c8b100" d="m284.6 211.2-.5.5-1.2-.6v-.2l.1-.2 1.3-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m284.6 211.2-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+ <path fill="#c8b100" d="m281 210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m281 210.5.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+ <path fill="#c8b100" d="M285.7 211.4v.6l1.4.2.2-.1v-.2l-1-.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M285.7 211.4v.6l1.4.2.2-.1v-.2l-1-.9-.6.4"/>
+ <path fill="#c8b100" d="M277.4 210.4q0-.3.5-.4.4 0 .4.4t-.4.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M277.4 210.4q0-.3.5-.4.4 0 .4.4t-.4.5z"/>
+ <path fill="#c8b100" d="M282.3 210.9q.1-.5.5-.5t.5.5q0 .6-.5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M282.3 210.9q.1-.5.5-.5t.5.5q0 .6-.5.4z"/>
+ <path fill="#c8b100" d="M277 205.4q.1-.8.8-.8 1 0 1 .8c0 .8-.5.8-1 .8a1 1 0 0 1-.8-.8"/>
+ <path fill="#c8b100" d="M278.5 205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M278.5 205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4z"/>
+ <path fill="#c8b100" d="M279 205.1v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M278.1 204.6q.6.1.6.8t-.9.8a1 1 0 0 1-.8-.8q0-.6.6-.8"/>
+ <path fill="#c8b100" d="m268 212.2-.6-.7-.7-.3q0-.2.6-.3.3 0 .4.2v-.2s.3 0 .4.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m268 212.2-.6-.7-.7-.3q0-.2.6-.3.3 0 .4.2v-.2s.3 0 .4.3z"/>
+ <path fill="#c8b100" d="M268 212q.3-.3.5 0 .4.2.1.5l-.5-.1q-.2-.2 0-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M268 212q.3-.3.5 0 .4.2.1.5l-.5-.1q-.2-.2 0-.5z"/>
+ <path fill="#c8b100" d="m287.5 212.2.6-.7c.2-.2.7-.3.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3 0-.4.3v.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m287.5 212.2.6-.7c.2-.2.7-.3.7-.3q0-.2-.6-.3l-.4.2v-.2s-.3 0-.4.3v.7z"/>
+ <path fill="#c8b100" d="M287.5 212q-.2-.3-.5 0t-.1.5l.5-.1q.3-.2.1-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M287.5 212q-.2-.3-.5 0t-.1.5l.5-.1q.3-.2.1-.5z"/>
+ <path fill="#c8b100" d="M267.2 223h21.4v-5.5h-21.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M267.2 223h21.4v-5.5h-21.4z"/>
+ <path fill="#c8b100" d="M286.3 226.8h-16.9q1-.4 1-1.2 0-1-1-1.3h17-.1q-1 .3-1 1.3 0 .8 1 1.2"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M286.3 226.8h-16.9q1-.4 1-1.2 0-1-1-1.3h17-.1q-1 .3-1 1.3 0 .8 1 1.2z"/>
+ <path fill="#c8b100" d="M269.9 226.8h16q1 0 1 .7t-1 .8h-16q-1-.1-1-.8.1-1 1-.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 226.8h16q1 0 1 .7t-1 .8h-16q-1-.1-1-.8.1-1 1-.8z"/>
+ <path fill="#c8b100" d="M269.9 223h16q1 .1 1 .7t-1 .6h-16q-1 0-1-.6t1-.6"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 223h16q1 .1 1 .7t-1 .6h-16q-1 0-1-.6t1-.6z"/>
+ <path fill="#005bbf" d="M263 317.4q2.1 0 3.7-.8a8 8 0 0 1 3.7-.8q2.2 0 3.8.8c1.6.8 2.3.8 3.7.8q2.3 0 3.8-.8a8 8 0 0 1 3.6-.8 8 8 0 0 1 3.7.8q1.6.8 3.8.8v2.4a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.8q-2.2 0-3.6.8-1.5.8-3.8.9a8 8 0 0 1-3.7-.9 8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v-2.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M263 317.4q2.1 0 3.7-.8a8 8 0 0 1 3.7-.8q2.2 0 3.8.8c1.6.8 2.3.8 3.7.8q2.3 0 3.8-.8a8 8 0 0 1 3.6-.8 8 8 0 0 1 3.7.8q1.6.8 3.8.8v2.4a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.8q-2.2 0-3.6.8-1.5.8-3.8.9a8 8 0 0 1-3.7-.9 8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.9v-2.4z"/>
+ <path fill="#ccc" d="M263 319.8q2.1 0 3.7-.9c1.6-.9 2.3-.8 3.7-.8q2.2 0 3.8.8c1.6.8 2.3.9 3.7.9a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.8q2.3 0 3.7.8 1.6.8 3.8.9v2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.8-3.8.9a7 7 0 0 1-3.7-.9q-1.5-.6-3.8-.7a8 8 0 0 0-3.7.7 8 8 0 0 1-3.8.9v-2.3"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M263 319.8q2.1 0 3.7-.9c1.6-.9 2.3-.8 3.7-.8q2.2 0 3.8.8c1.6.8 2.3.9 3.7.9a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.8q2.3 0 3.7.8 1.6.8 3.8.9v2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.8-3.8.9a7 7 0 0 1-3.7-.9q-1.5-.6-3.8-.7a8 8 0 0 0-3.7.7 8 8 0 0 1-3.8.9v-2.3"/>
+ <path fill="#005bbf" d="M263 322q2.1 0 3.7-.8 1.6-.6 3.7-.7 2.2 0 3.8.7c1.6.7 2.3.9 3.7.9a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.8 8 8 0 0 1 3.7.8q1.6.8 3.8.9v2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.9-3.8.9t-3.7-.8a8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.8V322"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M263 322q2.1 0 3.7-.8 1.6-.6 3.7-.7 2.2 0 3.8.7c1.6.7 2.3.9 3.7.9a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.8 8 8 0 0 1 3.7.8q1.6.8 3.8.9v2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.9-3.8.9t-3.7-.8a8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.8V322"/>
+ <path fill="#ccc" d="M263 326.7a8 8 0 0 0 3.7-.8q1.6-.8 3.7-.8 2.2 0 3.8.8c1.6.8 2.3.8 3.7.8q2.3 0 3.8-.9a8 8 0 0 1 3.6-.7q2.3 0 3.7.8a8 8 0 0 0 3.8.8v-2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.8-3.8.9t-3.7-.8a8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.8v2.3"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M263 326.7a8 8 0 0 0 3.7-.8q1.6-.8 3.7-.8 2.2 0 3.8.8c1.6.8 2.3.8 3.7.8q2.3 0 3.8-.9a8 8 0 0 1 3.6-.7q2.3 0 3.7.8a8 8 0 0 0 3.8.8v-2.3a8 8 0 0 1-3.8-.9 8 8 0 0 0-3.7-.7q-2.2 0-3.6.7-1.5.8-3.8.9t-3.7-.8a8 8 0 0 0-3.8-.8 8 8 0 0 0-3.7.8q-1.5.8-3.8.8v2.3"/>
+ <path fill="#005bbf" d="M263 329a8 8 0 0 0 3.7-.8q1.6-.8 3.7-.8 2.2 0 3.8.8c1.6.8 2.3.8 3.7.8a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.7q2.3 0 3.7.8 1.6.8 3.8.8v-2.3a8 8 0 0 1-3.8-.8 8 8 0 0 0-3.7-.8 8 8 0 0 0-3.6.7 8 8 0 0 1-3.8.9q-2.2 0-3.7-.8t-3.8-.8q-2.1 0-3.7.8c-1.6.8-2.3.8-3.8.8v2.3"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M263 329a8 8 0 0 0 3.7-.8q1.6-.8 3.7-.8 2.2 0 3.8.8c1.6.8 2.3.8 3.7.8a8 8 0 0 0 3.8-.9 8 8 0 0 1 3.6-.7q2.3 0 3.7.8 1.6.8 3.8.8v-2.3a8 8 0 0 1-3.8-.8 8 8 0 0 0-3.7-.8 8 8 0 0 0-3.6.7 8 8 0 0 1-3.8.9q-2.2 0-3.7-.8t-3.8-.8q-2.1 0-3.7.8c-1.6.8-2.3.8-3.8.8v2.3z"/>
+ <path fill="#c8b100" d="m286.3 308-.1.5c0 1.5 1.2 2.6 2.7 2.6h-22c1.5 0 2.7-1.2 2.7-2.6l-.1-.5z"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="m286.3 308-.1.5c0 1.5 1.2 2.6 2.7 2.6h-22c1.5 0 2.7-1.2 2.7-2.6l-.1-.5z"/>
+ <path fill="#c8b100" d="M269.9 306.5h16q1 0 1 .8 0 .6-1 .7h-16q-1 0-1-.8.1-.6 1-.7"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 306.5h16q1 0 1 .8 0 .6-1 .7h-16q-1 0-1-.8.1-.6 1-.7z"/>
+ <path fill="#c8b100" d="M266.9 316.7h22V311h-22z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M266.9 316.7h22V311h-22z"/>
+ <path fill="#ad1519" d="M290.6 286.7c2.1 1.2 3.6 2.5 3.4 3.2q-.2.8-1.8 1.6c-1.6 1.1-2.5 3-1.8 4a5.5 5.5 0 0 1 .2-8.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M290.6 286.7c2.1 1.2 3.6 2.5 3.4 3.2q-.2.8-1.8 1.6c-1.6 1.1-2.5 3-1.8 4a5.5 5.5 0 0 1 .2-8.8z"/>
+ <path fill="#ccc" d="M270.1 305.6h15.6V229h-15.6v76.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M281.4 229.1v76.3m1.8-76.3v76.3m-13 .2h15.5V229h-15.6v76.5z"/>
+ <path fill="#ad1519" d="M254.2 257.7a50 50 0 0 1 23.3-2c9.3 1.6 16.4 5.3 15.9 8.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a54 54 0 0 0-9.2-.7c-6.7 0-12.4.8-15.9 2.1z"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M254.2 257.7a50 50 0 0 1 23.3-2c9.3 1.6 16.4 5.3 15.9 8.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a54 54 0 0 0-9.2-.7c-6.7 0-12.4.8-15.9 2.1v9.4"/>
+ <path fill="#ad1519" d="M285.7 267.3c4.4-.3 7.3-1.4 7.7-3.2q.2-2.2-3.8-4.5l-3.9.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M285.7 267.3c4.4-.3 7.3-1.4 7.7-3.2q.2-2.2-3.8-4.5l-3.9.3v7.4"/>
+ <path fill="#ad1519" d="M270 261.5a13 13 0 0 0-5.7 1.9v.2c-.5 1 1.8 3 5.8 5.4v-7.5"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M270 261.5a13 13 0 0 0-5.7 1.9v.2c-.5 1 1.8 3 5.8 5.4v-7.5"/>
+ <path fill="#ad1519" d="M295.4 282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1 8-1 8-.8 1.3 4.8 5.5 12.4 9.1 2.4 1.2 7.6 3 10 4 4.3 1.4 8.7 4.3 8.3 5.3l1.4-7.7"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M295.4 282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1 8-1 8-.8 1.3 4.8 5.5 12.4 9.1 2.4 1.2 7.6 3 10 4 4.3 1.4 8.7 4.3 8.3 5.3l1.4-7.7z"/>
+ <path fill="#c8b100" d="m263.9 254.4 2.1-6.6h-.5l-.5.1-1.4 4.8q-1.6-2-2.7-4.1l-1 .2h-1l4 5.7h.5zm6-6.6h-1.8v6.2h4.2v-.7h-2.6zm6.8 1 2 .3v-.7l-5.8-.5v.8h2l-.4 5.6h1.6l.5-5.4m2.4 6 .8.2.8.2.7-2.9.6 1.2.8 2.1 1 .2q.6 0 1 .3l-.3-.7-1.3-2.9q1.6 0 2.1-1.2.3-.8-.7-1.5-.8-.4-1.7-.5l-2.4-.5zm3-5.2c.7.2 1.5.3 1.5 1v.5q-.5 1.3-2 .9zm8 7-.2 2 .8.5.9.5.5-7-.7-.3-6.1 3.8.5.3.4.2 1.7-1.2 2.3 1.3zm-1.7-1.5 2-1.4-.2 2.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M182.2 192.4c0-1 1-2 2-2s2.2 1 2.2 2c0 1.1-1 2-2.1 2a2 2 0 0 1-2.1-2z"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".3" d="M205.7 175.4c6.3 0 12 1 15.7 2.4a32 32 0 0 0 14.6 2.3c2.7 0 6.5.8 10.3 2.4a27 27 0 0 1 7.4 4.7l-1.5 1.4-.4 3.8-4.1 4.7-2 1.8-5 3.9-2.5.2-.7 2.1-31.6-3.7-31.7 3.7-.8-2.1-2.5-.2-4.9-4-2-1.7-4.1-4.7-.5-3.8-1.5-1.4a28 28 0 0 1 7.5-4.7 26 26 0 0 1 10.2-2.4q3 .3 6.6-.2a30 30 0 0 0 8-2q5.6-2.4 15.5-2.5z"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.2 217.1c-11.8 0-22.4-1.4-29.9-3.6a1 1 0 0 1-.8-1.2q0-.8.8-1.2a109 109 0 0 1 29.9-3.6c11.7 0 22.3 1.4 29.8 3.6a1.3 1.3 0 0 1 0 2.4c-7.5 2.2-18 3.6-29.8 3.6"/>
+ <path fill="#ad1519" d="M206.1 215.6c-10.6 0-20.2-1.2-27.5-3.1 7.3-2 16.9-3 27.5-3.1a115 115 0 0 1 27.6 3c-7.3 2-17 3.2-27.6 3.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M206.9 215.7v-6.3m-1.7 6.3v-6.3"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M203.6 215.7v-6.3m-1.6 6.3v-6.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M200.6 215.7v-6.3m-2.8 5.9v-5.7m1.3 5.8v-6m-3.8 5.6v-5.2m1.3 5.4v-5.6"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M192 214.8V210m1 4.7V210m1.2 5v-5m-3.4 4.7v-4.5"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M189.7 214.5v-4.2m-1.2 4.1v-4"/>
+ <path fill="none" stroke="#000" stroke-width=".6" d="M186 214v-3m1.3 3.2v-3.5m-2.5 3.1V211"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M183.7 213.6v-2.3m-1.3 2v-1.8m-1.2 1.6v-1.3"/>
+ <path fill="none" stroke="#000" stroke-width=".9" d="M179.8 212.8v-.7"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M213.7 215.3v-5.8m-2.9 6v-6.1m-2.1 6.2v-6.3"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206 207.4a108 108 0 0 0-30 3.9c.6-.3.5-1-.3-3-1-2.5-2.4-2.4-2.4-2.4 8.3-2.5 20-4 32.8-4a123 123 0 0 1 33 4s-1.5-.1-2.5 2.3q-1.2 2.8-.2 3c-7.5-2.2-18.4-3.7-30.3-3.7"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.1 201.9c-12.9 0-24.5 1.5-32.8 4a1 1 0 0 1-1.3-.6 1 1 0 0 1 .7-1.3 121 121 0 0 1 33.4-4.2c13.2 0 25.2 1.7 33.5 4.2q1 .4.7 1.3t-1.3.6c-8.4-2.5-20-4-32.9-4"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M206.1 215.6c-10.6 0-20.2-1.2-27.5-3.1 7.3-2 16.9-3 27.5-3.1a115 115 0 0 1 27.6 3c-7.3 2-17 3.2-27.6 3.2z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M197 204.8q0-.9 1-1 .9.1 1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M206.1 205.6H203a1 1 0 0 1 0-2h6.4q.9.1 1 1 0 1.2-1 1h-3.2"/>
+ <path fill="#058e6e" stroke="#000" stroke-width=".4" d="m190.3 206.5-2.3.2q-.9 0-1.2-.8a1 1 0 0 1 1-1.1l2.2-.3 2.4-.3q.9 0 1.1.9 0 .9-.9 1l-2.3.4"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M181 206.7q.1-1 1.1-1t1 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="m174 208.5 1.2-1.6 3.3.4-2.6 2-1.8-.8"/>
+ <path fill="#058e6e" stroke="#000" stroke-width=".4" d="m222 206.5 2.3.2q.9 0 1.1-.8a1 1 0 0 0-.9-1.1l-2.2-.3-2.4-.3a1 1 0 0 0-1.1.9q0 .9.9 1l2.3.4"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M213.3 204.8q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1m15.8 1.9q.1-1 1-1t1.1 1q0 .9-1 1a1 1 0 0 1-1-1"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="m238.2 208.5-1.1-1.6-3.3.4 2.6 2 1.8-.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M177.3 212.8c7.4-2.1 17.6-3.4 28.8-3.4 11.3 0 21.4 1.3 28.9 3.4"/>
+ <path fill="#c8b100" d="m182.3 183.8 1.4 1 2-3.2a7 7 0 0 1-3.6-7.2c.2-4.1 5.2-7.6 11.7-7.6q5 .1 8.5 2.4l.2-1.8a17 17 0 0 0-8.7-2.1c-7.4 0-13.2 4.1-13.5 9.1a9 9 0 0 0 3 7.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="m182.3 183.8 1.4 1 2-3.2a7 7 0 0 1-3.6-7.2c.2-4.1 5.2-7.6 11.7-7.6q5 .1 8.5 2.4l.2-1.8a17 17 0 0 0-8.7-2.1c-7.4 0-13.2 4.1-13.5 9.1a9 9 0 0 0 3 7.6l-1 1.8"/>
+ <path fill="#c8b100" d="M182.4 183.8a9 9 0 0 1-4-7.3q.2-5 5.3-8a9 9 0 0 0-3.4 6.8 9 9 0 0 0 3 6.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M182.4 183.8a9 9 0 0 1-4-7.3q.2-5 5.3-8a9 9 0 0 0-3.4 6.8 9 9 0 0 0 3 6.7l-.9 1.8"/>
+ <path fill="#c8b100" d="M160.1 187.1a9 9 0 0 1-2.3-5.9q0-2 1-3.8c2-4.2 8.4-7.2 16-7.2q3 0 5.9.6l-1 1.4a26 26 0 0 0-4.9-.4c-7 0-12.8 2.7-14.5 6.3a7 7 0 0 0-.7 3.1 7 7 0 0 0 2.7 5.6l-2.6 4.1-1.3-1z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M160.1 187.1a9 9 0 0 1-2.3-5.9q0-2 1-3.8c2-4.2 8.4-7.2 16-7.2q3 0 5.9.6l-1 1.4a26 26 0 0 0-4.9-.4c-7 0-12.8 2.7-14.5 6.3a7 7 0 0 0-.7 3.1 7 7 0 0 0 2.7 5.6l-2.6 4.1-1.3-1z"/>
+ <path fill="#c8b100" d="M162.7 173.3a11 11 0 0 0-4 4.1 9 9 0 0 0-.9 3.8q.1 3.5 2.3 5.9l-1.5 2.5a10 10 0 0 1-2.3-6.5c0-4 2.5-7.5 6.4-9.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M162.7 173.3a11 11 0 0 0-4 4.1 9 9 0 0 0-.9 3.8q.1 3.5 2.3 5.9l-1.5 2.5a10 10 0 0 1-2.3-6.5c0-4 2.5-7.5 6.4-9.8z"/>
+ <path fill="#c8b100" d="M206 164.4c1.7 0 3.2 1.1 3.5 2.6q.4 2.1.4 4.5v1.1c.1 3.3.6 6.3 1.3 8.1l-5.2 5-5.2-5c.7-1.8 1.2-4.8 1.3-8.1v-1.1q0-2.4.4-4.5c.3-1.5 1.8-2.6 3.5-2.6"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M206 164.4c1.7 0 3.2 1.1 3.5 2.6q.4 2.1.4 4.5v1.1c.1 3.3.6 6.3 1.3 8.1l-5.2 5-5.2-5c.7-1.8 1.2-4.8 1.3-8.1v-1.1q0-2.4.4-4.5c.3-1.5 1.8-2.6 3.5-2.6z"/>
+ <path fill="#c8b100" d="M206 166q1.6.1 1.8 1.4.3 1.8.4 4.2v1q.2 5 1.2 7.7l-3.4 3.2-3.4-3.2q1-2.7 1.2-7.7v-1l.4-4.2a2 2 0 0 1 1.8-1.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M206 166q1.6.1 1.8 1.4.3 1.8.4 4.2v1q.2 5 1.2 7.7l-3.4 3.2-3.4-3.2q1-2.7 1.2-7.7v-1l.4-4.2a2 2 0 0 1 1.8-1.4z"/>
+ <path fill="#c8b100" d="m229.7 183.8-1.3 1-2-3.2a7 7 0 0 0 3.6-6.3v-.9c-.2-4.1-5.3-7.6-11.7-7.6a15 15 0 0 0-8.5 2.4l-.2-1.8a17 17 0 0 1 8.7-2.1c7.4 0 13.2 4.1 13.4 9.1a9 9 0 0 1-3 7.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="m229.7 183.8-1.3 1-2-3.2a7 7 0 0 0 3.6-6.3v-.9c-.2-4.1-5.3-7.6-11.7-7.6a15 15 0 0 0-8.5 2.4l-.2-1.8a17 17 0 0 1 8.7-2.1c7.4 0 13.2 4.1 13.4 9.1a9 9 0 0 1-3 7.6l1 1.8"/>
+ <path fill="#c8b100" d="M229.6 183.8a9 9 0 0 0 4.1-7.3c0-3.2-2.1-6.1-5.3-8a9 9 0 0 1 3.4 6.8 9 9 0 0 1-3.2 6.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M229.6 183.8a9 9 0 0 0 4.1-7.3c0-3.2-2.1-6.1-5.3-8a9 9 0 0 1 3.4 6.8 9 9 0 0 1-3.2 6.7l1 1.8"/>
+ <path fill="#c8b100" d="M252 187.1a9 9 0 0 0 2.2-5.9 9 9 0 0 0-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29 29 0 0 0-6 .6l1 1.4a25 25 0 0 1 5-.4c7 0 12.8 2.7 14.4 6.3q.7 1.5.7 3.1a7 7 0 0 1-2.6 5.6l2.5 4.1 1.3-1z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M252 187.1a9 9 0 0 0 2.2-5.9 9 9 0 0 0-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29 29 0 0 0-6 .6l1 1.4a25 25 0 0 1 5-.4c7 0 12.8 2.7 14.4 6.3q.7 1.5.7 3.1a7 7 0 0 1-2.6 5.6l2.5 4.1 1.3-1z"/>
+ <path fill="#c8b100" d="M249.3 173.3a11 11 0 0 1 4 4.1 9 9 0 0 1 .9 3.8 9 9 0 0 1-2.3 5.9l1.6 2.5a10 10 0 0 0 2.3-6.5c0-4-2.6-7.5-6.5-9.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M249.3 173.3a11 11 0 0 1 4 4.1 9 9 0 0 1 .9 3.8 9 9 0 0 1-2.3 5.9l1.6 2.5a10 10 0 0 0 2.3-6.5c0-4-2.6-7.5-6.5-9.8z"/>
+ <path fill="#fff" d="M204.2 181.4q.1-1.7 1.8-1.8c1.7-.1 1.9.8 1.9 1.8s-.9 1.7-1.9 1.7a2 2 0 0 1-1.8-1.7"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M204.2 181.4q.1-1.7 1.8-1.8c1.7-.1 1.9.8 1.9 1.8s-.9 1.7-1.9 1.7a2 2 0 0 1-1.8-1.7z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M204.2 178q.1-1.7 1.8-1.8c1.7-.1 1.9.8 1.9 1.8s-.9 1.7-1.9 1.7a2 2 0 0 1-1.8-1.7m.4-3.7q.1-1.2 1.4-1.3 1.4.1 1.5 1.3-.1 1.3-1.5 1.4c-1.4.1-1.4-.6-1.4-1.4m.4-3.3q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1m.2-2.8q.1-.8.8-.8t.9.8q0 .7-.9.8a1 1 0 0 1-.8-.8"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="m206.2 191.8 1.2.2a4.6 4.6 0 0 0 4.5 6 5 5 0 0 0 4.4-3c.1 0 .5-1.7.7-1.7s.1 1.8.2 1.7c.3 2.3 2.4 3.8 4.7 3.8a4.6 4.6 0 0 0 4.7-5l1.5-1.5.7 2a4 4 0 0 0-.4 1.9 4.4 4.4 0 0 0 4.5 4.2q2.5 0 3.8-1.9l.9-1.2v1.5c0 1.5.6 2.8 2 3 0 0 1.7.1 4-1.6 2.1-1.7 3.3-3.1 3.3-3.1l.2 1.7s-1.8 2.8-3.8 4c-1 .6-2.7 1.3-4 1q-2.1-.5-3-2.6a7 7 0 0 1-3.3 1 7 7 0 0 1-6.1-3.7 7 7 0 0 1-10.4-.3 7 7 0 0 1-4.6 1.8 7 7 0 0 1-5.7-3 7 7 0 0 1-5.7 3 7 7 0 0 1-4.7-1.8 7 7 0 0 1-10.4.3 7 7 0 0 1-6 3.7 7 7 0 0 1-3.4-1q-.8 2.1-3 2.7c-1.2.2-2.9-.5-4-1.1-2-1.2-3.8-4-3.8-4l.2-1.7s1.2 1.4 3.4 3.1 3.9 1.6 3.9 1.6c1.4-.2 2-1.5 2-3v-1.5l1 1.2a5 5 0 0 0 3.7 2c2.5 0 4.5-2 4.5-4.3a4 4 0 0 0-.4-2l.8-1.9 1.5 1.5v.6c0 2.4 2 4.4 4.6 4.4 2.4 0 4.4-1.5 4.7-3.8 0 0 0-1.6.2-1.7s.6 1.7.7 1.6a5 5 0 0 0 4.5 3.1 4.6 4.6 0 0 0 4.5-6l1.2-.2"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M238.6 197.7q.4-1.4-.6-1.8-.9-.2-1.5 1.1-.4 1.4.6 1.8.9.2 1.5-1.1m-20.5-4c0-.8-.3-1.6-1-1.6q-.8 0-1.2 1.4 0 1.3.9 1.6 1-.1 1.3-1.4m-23.9 0c0-.8.4-1.6 1-1.6q1 0 1.2 1.4 0 1.3-.9 1.6-1-.1-1.2-1.4m-20.6 4q-.3-1.4.6-1.8 1-.2 1.5 1.1t-.5 1.8q-1 .2-1.6-1.1"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M182.7 184a5 5 0 0 1 2.2 2.9s0-.3.6-.6 1-.3 1-.3l-.1 1.3-.3 2.2-.7 1.6a2 2 0 0 0-1.5-.4 2 2 0 0 0-1.2.9s-.7-.6-1.2-1.3l-1.1-2-.7-1.1s.5-.2 1.1 0q.9.1.8.2a5 5 0 0 1 1-3.4m.4 9.8-.6-1q0-.7.3-1.2s-.9-.5-1.8-.7c-.7-.2-2-.2-2.3-.2h-1l.2.5.5.7a5 5 0 0 0-3 2 5 5 0 0 0 3.5 1l-.2.8v.6l1-.4c.3-.1 1.5-.5 2-1 .8-.4 1.5-1.1 1.5-1.1m2.7-.5.2-1.1-.6-1 1.4-1.3 2-.9 1.1-.4v.6l-.2.8a5 5 0 0 1 3.4 1 5 5 0 0 1-2.9 2l.7 1.2h-1c-.4 0-1.6 0-2.3-.2l-1.8-.7"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M182.2 192.4c0-1 1-2 2-2s2.2 1 2.2 2c0 1.1-1 2-2.1 2a2 2 0 0 1-2.1-2"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.1 180.8a6 6 0 0 1 1.9 3.7s.2-.3.9-.5q1.1-.3 1.2-.2l-.5 1.4-.8 2.4-1 1.7a2 2 0 0 0-1.7-.7q-1 0-1.6.7-.2-.1-1-1.7l-.8-2.4-.5-1.4 1.2.2q1 .4.9.5.2-2.2 1.8-3.7"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M204.6 191.8a2 2 0 0 1-.5-1.2q0-.8.4-1.3s-.8-.7-1.8-1c-.7-.4-2-.7-2.5-.7l-1.2-.2.2.6.4.9a6 6 0 0 0-3.7 1.7q1.6 1.5 3.7 1.6l-.4 1-.2.6 1.2-.2c.4-.1 1.8-.4 2.5-.7 1-.4 1.9-1 1.9-1m3 0a2 2 0 0 0 .1-2.6s.9-.7 1.8-1a8 8 0 0 1 2.5-.7l1.2-.3-.1.7-.4.9q2.2.2 3.6 1.7a6 6 0 0 1-3.6 1.6l.5 1.6-1.2-.2-2.5-.7c-1-.4-1.8-1-1.8-1m22-8a5 5 0 0 0-2.2 3l-.7-.6-1-.3.2 1.3c0 .3 0 1.3.3 2.2q.4 1.6.6 1.6a2 2 0 0 1 1.5-.4q.9.2 1.3.9l1.1-1.3q1-1.4 1.1-2l.7-1.1s-.4-.2-1 0l-1 .2a5 5 0 0 0-1-3.4m-.3 9.8q.5-.4.6-1l-.2-1.2s.8-.5 1.7-.7c.7-.2 2-.2 2.3-.2h1.1l-.3.5-.4.7a5 5 0 0 1 2.9 2 5 5 0 0 1-3.5 1l.2.8v.6l-1-.4c-.3-.1-1.4-.5-2-1-.8-.4-1.4-1.1-1.4-1.1m-2.8-.5-.2-1.1q0-.7.6-1s-.6-.8-1.4-1.3c-.6-.4-1.7-.8-2-.9l-1-.4v.6l.2.8a5 5 0 0 0-3.5 1q1 1.4 3 2l-.5.7-.3.5h1c.4 0 1.7 0 2.3-.2l1.8-.7"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M226 192.4c0-1 1-2 2-2s2.1 1 2.1 2a2 2 0 0 1-2 2 2 2 0 0 1-2.1-2m23.2 4.4c-.4-.5-1.4-.4-2.2.2q-1.2 1.2-.5 2.2 1 .8 2.3-.3c.7-.6 1-1.6.5-2"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="m246.3 198 .7-1c.7-.6 1.8-.7 2.3-.2l.1.2s1-2 2.3-2.6 3.4-.5 3.4-.5a3 3 0 0 0-2.9-2.8 3 3 0 0 0-2.4 1l-.2-1s-1.3.3-1.9 1.8 0 3.6 0 3.6-.3-.9-.7-1.5a8 8 0 0 0-2.4-1.6l-1.3-.7-.1.5v.8a8 8 0 0 0-3.7.5 5 5 0 0 0 2.5 2.2l-.8.7-.4.5 1.3.2 2.5.2 1.7-.2m-80.3 0q0-.6-.7-1c-.7-.7-1.7-.8-2.2-.3l-.2.3s-1-2-2.3-2.7-3.3-.5-3.3-.5a3 3 0 0 1 2.8-2.8q1.6 0 2.4 1l.2-1s1.3.3 2 1.8c.5 1.5-.1 3.6-.1 3.6s.3-.9.8-1.5a8 8 0 0 1 2.4-1.6l1.3-.7v1.3a8 8 0 0 1 3.7.5 5 5 0 0 1-2.5 2.2l.8.7.4.5-1.2.2-2.6.2-1.7-.2"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M163 196.8q1-.7 2.4.3 1.2 1 .4 2c-.5.6-1.5.5-2.2-.2s-1-1.6-.5-2m41-6.3q.2-1.8 2-2c1.8-.2 2.1.9 2.1 2 0 1-1 2-2 2a2 2 0 0 1-2.1-2"/>
+ <path fill="#005bbf" stroke="#000" stroke-width=".3" d="M201.8 160.6c0-2.2 1.9-4 4.3-4s4.2 1.8 4.2 4-1.9 4-4.3 4a4 4 0 0 1-4.2-4"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".3" d="M205 149.3v2.2h-2.4v2.2h2.3v6.3H202l-.2.6q0 .9.3 1.6h7.9q.3-.7.3-1.6l-.2-.6h-2.8v-6.3h2.3v-2.2h-2.3v-2.2z"/>
+ <path fill="#ccc" d="M206.5 330.6a82 82 0 0 1-35.5-8.2 23 23 0 0 1-12.8-20.4v-32h96.4v32a23 23 0 0 1-12.8 20.4 81 81 0 0 1-35.3 8.2"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M206.5 330.6a82 82 0 0 1-35.5-8.2 23 23 0 0 1-12.8-20.4v-32h96.4v32a23 23 0 0 1-12.8 20.4 81 81 0 0 1-35.3 8.2z"/>
+ <path fill="#ccc" d="M206.3 270h48.3v-53.5h-48.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M206.3 270h48.3v-53.5h-48.3z"/>
+ <path fill="#ad1519" d="M206.3 302c0 12.6-10.7 22.9-24 22.9s-24.2-10.3-24.2-23v-32h48.2v32"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M168.6 320.9c1.5.8 3.6 2 5.8 2.6l-.1-54.7h-5.7z"/>
+ <path fill="#c8b100" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M158 301.6a24 24 0 0 0 5.5 15v-47.5h-5.4z"/>
+ <path fill="#c7b500" stroke="#000" stroke-width=".5" d="M179.4 324.7a27 27 0 0 0 5.6 0v-55.9h-5.6v56z"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M190 323.5a19 19 0 0 0 5.8-2.5v-52.2H190z"/>
+ <path fill="#ad1519" d="M158.1 270h48.2v-53.5H158z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M158.1 270h48.2v-53.5H158z"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M201 316c2.4-2 4.6-6.8 5.4-12.2l.1-35H201l.1 47.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M206.3 302c0 12.6-10.7 22.9-24 22.9s-24.2-10.3-24.2-23v-32h48.2v32"/>
+ <path fill="#ad1519" d="M254.6 270v32c0 12.6-10.8 22.9-24.1 22.9s-24.2-10.3-24.2-23v-32h48.3"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M254.6 270v32c0 12.6-10.8 22.9-24.1 22.9s-24.2-10.3-24.2-23v-32h48.3"/>
+ <path fill="#c8b100" d="m215.1 294.1.1.5q-.1 1-1.1 1a1 1 0 0 1-1.1-1v-.5h-1.5a2.5 2.5 0 0 0 1.8 2.9v3.9h1.6V297a3 3 0 0 0 1.7-1.6h4.4v-1.2zm21.8 0v1.2h-4l-.3.6 4.6 5.2-1.2 1-4.6-5.3-.2.1v8.7h-1.6V297h-.2l-4.8 5.2-1.2-1 4.7-5.3-.2-.4h-4V294h13zm2.6 0v1.2h4.4q.5 1.2 1.7 1.6v3.9h1.6V297a3 3 0 0 0 1.8-2.4v-.5h-1.6l.1.5q-.1 1-1 1-1.1 0-1.2-1l.1-.5zm-6.7 22.1a16 16 0 0 0 3.7-1l.8 1.4a18 18 0 0 1-4.3 1.2 3 3 0 0 1-2.6 2 3 3 0 0 1-2.5-2 18 18 0 0 1-4.6-1.2l.8-1.4q2 .8 4 1a3 3 0 0 1 1.5-1.3v-6.7h1.6v6.7q1.1.3 1.6 1.4zm-11-2.2-.8 1.4a17 17 0 0 1-3.6-3.1q-1.4.3-2.5-.5a2.4 2.4 0 0 1-.3-3.5l.1-.1a15 15 0 0 1-1.3-4.8h1.7a13 13 0 0 0 1 4q.8 0 1.4.2l4.1-4.5 1.3 1-4.1 4.5q.8 1.5-.1 2.8a15 15 0 0 0 3.1 2.6m-6-4.8q.6-.7 1.5 0c.9.7.5 1 .1 1.4a1 1 0 0 1-1.6.1 1 1 0 0 1 0-1.5m-2.2-4.5-1.6-.3-.3-4.3 1.7-.6v2.5q0 1.4.2 2.7m1.4-5.3 1.7.4v2.2c0-.8.3 2.1.3 2.1l-1.7.6-.3-2.7zm5.6 13.7a16 16 0 0 0 4.8 2.6l.4-1.6a14 14 0 0 1-4-2zm-.8 1.4a17 17 0 0 0 4.8 2.6l-1.2 1.1a19 19 0 0 1-4-2zm2.2-9.4 1.6.7 3-3.3-1-1.4zm-1.3-1-1-1.4 3-3.3 1.6.7zm18.1 9.9.8 1.4a17 17 0 0 0 3.6-3.1q1.4.3 2.5-.5a2.4 2.4 0 0 0 .3-3.5l-.1-.1a15 15 0 0 0 1.3-4.8h-1.7a13 13 0 0 1-1 4l-1.4.2-4.1-4.5-1.3 1 4.1 4.5a2.4 2.4 0 0 0 .1 2.8 15 15 0 0 1-3.1 2.6m6-4.8a1 1 0 0 0-1.5 0 1 1 0 0 0-.1 1.4 1 1 0 0 0 1.6.1 1 1 0 0 0 0-1.5m2.2-4.5 1.6-.3.3-4.3-1.7-.6v2.5q0 1.5-.2 2.8zm-1.4-5.3-1.7.4v2.2c0-.8-.3 2.1-.3 2.1l1.7.6.3-2.7zm-5.6 13.7a16 16 0 0 1-4.8 2.6l-.4-1.6a14 14 0 0 0 4-2zm.8 1.4a17 17 0 0 1-4.8 2.6l1.2 1.1a19 19 0 0 0 4-2zm-2.2-9.4-1.6.7-2.9-3.3 1-1.4zm1.3-1 1-1.4-3-3.3-1.6.7zm-20.1-8.7.5 1.6h4.5l.5-1.6zm21.1 0-.5 1.6h-4.5l-.5-1.6zm-11.6 21.9q.1-1 1.1-1a1 1 0 0 1 1.1 1q-.1 1-1 1a1 1 0 0 1-1.2-1m1.9-7.8 1.7-.4v-4.3l-1.7-.5zm-1.6 0-1.7-.4v-4.3l1.7-.5z"/>
+ <path fill="#c8b100" d="M211.5 294.2q.4-1.5 1.8-2V287h1.6v5.3q1.3.5 1.7 1.6h4.4v.3h-6a1 1 0 0 0-1-.6q-.6 0-1 .6zm12.2 0v-.3h4.1l.2-.3-5-5.7 1.2-1 5 5.6.2-.1V285h1.6v7.3h.3l4.9-5.5 1.2 1-4.9 5.5.3.6h4v.3zm21.6 0a1 1 0 0 1 1-.6q.7 0 1 .6h1.6q-.4-1.5-1.8-2V287h-1.6v5.3q-1.2.4-1.7 1.6h-4.4v.3zm-30.2-15 6 6.8 1.3-1-6.1-6.7.3-.6h4.4V276h-4.4a3 3 0 0 0-2.5-1.7 2.6 2.6 0 0 0-2.7 2.5 3 3 0 0 0 1.8 2.4v5.2h1.6v-5.2zm32 0v5.3h-1.7v-5.2l-.4-.2-6 6.8-1.3-1 6.2-6.9-.1-.3h-4.5V276h4.5a3 3 0 0 1 2.4-1.7 2.6 2.6 0 0 1 2.7 2.5 2.5 2.5 0 0 1-1.9 2.4zm-16.1 0v3.3h-1.7v-3.2a3 3 0 0 1-1.7-1.6h-4V276h4a3 3 0 0 1 2.5-1.7q2 .1 2.5 1.7h4v1.6h-4a3 3 0 0 1-1.6 1.6m-17.8 4-1.7.4v4.3l1.7.5zm1.6 0 1.7.4v4.3l-1.7.5zm30.6 0-1.7.4v4.3l1.7.5zm1.6 0 1.7.4v4.3l-1.7.5zm-25.5.8 1.6-.7 2.9 3.3-1 1.4zm-1.3 1-1 1.4 3 3.3 1.6-.7zm18.5-1.1-1.6-.7-3 3.3 1 1.4zm1.2 1 1 1.4-3 3.3-1.5-.7zm-20.3 9 .5-1.6h4.5l.5 1.6zm-6.7-17q0-1 1.2-1a1 1 0 0 1 1 1q0 1-1 1a1 1 0 0 1-1.2-1m12.1.8-.5 1.6H220l-.5-1.6zm0-1.6-.5-1.6H220l-.5 1.6zm15.7 17.8-.5-1.6h-4.5l-.5 1.6zm4.4-17q.1-1 1.1-1a1 1 0 0 1 1.1 1q-.1 1-1 1a1 1 0 0 1-1.2-1m-16.1 0q.1-1 1.1-1a1 1 0 0 1 1.1 1q-.1 1-1.1 1a1 1 0 0 1-1.1-1m6.2.8.5 1.6h4.6l.5-1.6zm0-1.6.5-1.6h4.6l.5 1.6zm-5.9 5-1.7.5v4.3l1.7.5V281m1.7 0 1.6.5v4.3l-1.6.5z"/>
+ <path fill="none" stroke="#c8b100" stroke-width=".3" d="M232.7 316.3a16 16 0 0 0 3.7-1.1l.8 1.4a18 18 0 0 1-4.3 1.2 3 3 0 0 1-2.6 2 3 3 0 0 1-2.5-2 18 18 0 0 1-4.6-1.2l.8-1.4q2 .8 4 1a3 3 0 0 1 1.5-1.3v-6.7h1.6v6.7q1.1.3 1.6 1.4zm-4.7-20.4-.2-.5h-4V294h4l.2-.4-5-5.6 1.2-1 5 5.5h.2V285h1.7v7.3h.2l4.9-5.5 1.2 1-4.9 5.5.3.6h4v1.5h-4q0 .3-.3.5l4.7 5.3-1.3 1-4.6-5.3-.2.1v8.7h-1.6V297l-.2-.1-4.8 5.3-1.2-1 4.7-5.3m-12.8-16.7 6 6.8 1.3-1-6.1-6.7.3-.6h4.4V276h-4.4a3 3 0 0 0-2.5-1.7 2.6 2.6 0 0 0-2.6 2.5 3 3 0 0 0 1.7 2.4v5.2h1.6v-5.2zm6.5 34.8-.8 1.4a17 17 0 0 1-3.6-3.1q-1.4.3-2.5-.5a2.4 2.4 0 0 1-.3-3.5l.1-.1a15 15 0 0 1-1.2-4.8h1.6a13 13 0 0 0 1 4q.8 0 1.4.2l4.1-4.5 1.3 1-4.1 4.5q.8 1.5-.1 2.8a15 15 0 0 0 3.1 2.6zm-8.4-13.1V297a3 3 0 0 1-1.8-2.4q.2-1.6 1.8-2.4V287h1.6v5.3q1.3.4 1.7 1.6h4.4v1.5h-4.4a3 3 0 0 1-1.6 1.6v3.9h-1.7m2.3 8.3q.7-.7 1.6 0c.9.7.5 1 .1 1.4a1 1 0 0 1-1.6.1 1 1 0 0 1 0-1.5zm-2-4.5-1.7-.3-.3-4.3 1.7-.6v2.5q0 1.4.3 2.7zm1.4-5.3 1.6.4v2.2c0-.8.3 2.1.3 2.1l-1.7.6-.3-2.7v-2.6zm5.5 13.7a16 16 0 0 0 4.8 2.6l.4-1.6a14 14 0 0 1-4-2l-1.2 1m-.8 1.4a17 17 0 0 0 4.8 2.6l-1.2 1.1a19 19 0 0 1-4-2l.4-1.7"/>
+ <path fill="none" stroke="#c8b100" stroke-width=".3" d="m221.9 305.1 1.6.7 3-3.3-1-1.4-3.6 4m-1.3-1-1-1.4 3-3.3 1.6.7-3.6 4m-7.6-9.5q.1-1 1-1 1.1.1 1.2 1-.1 1-1.1 1.1a1 1 0 0 1-1.1-1zm25.7 19.4.8 1.4a17 17 0 0 0 3.6-3.1q1.4.3 2.6-.5a2.4 2.4 0 0 0 .2-3.5l-.1-.1a15 15 0 0 0 1.3-4.8h-1.7a13 13 0 0 1-1 4l-1.4.2-4.1-4.5-1.3 1 4.1 4.5a2.4 2.4 0 0 0 .1 2.8 15 15 0 0 1-3 2.6zm8.4-13.1V297a3 3 0 0 0 1.8-2.4q0-1.6-1.8-2.4V287h-1.6v5.3q-1.2.4-1.7 1.6h-4.4v1.5h4.4q.5 1.2 1.7 1.6v3.9zm-2.3 8.3a1 1 0 0 0-1.6 0 1 1 0 0 0-.1 1.4 1 1 0 0 0 1.6.1 1 1 0 0 0 0-1.5zm2-4.5 1.7-.3.3-4.3-1.7-.6v2.5q0 1.4-.2 2.7zm-1.3-5.3-1.7.4v2.2c0-.8-.3 2.1-.3 2.1l1.7.6.3-2.7v-2.6m1.6-20.1v5.2h-1.6v-5.2l-.4-.2-6 6.8-1.2-1 6-7v-.2h-4.5V276h4.4a3 3 0 0 1 2.5-1.7 2.6 2.6 0 0 1 2.6 2.5 3 3 0 0 1-1.8 2.4zm-16 0v3.2h-1.7v-3.2a3 3 0 0 1-1.7-1.6h-4V276h4q.7-1.6 2.5-1.7c1.8-.1 2.2.7 2.5 1.7h4v1.6h-4a3 3 0 0 1-1.6 1.6zm8.8 33.8a16 16 0 0 1-4.8 2.6l-.4-1.6a14 14 0 0 0 4-2l1.2 1m.8 1.4a17 17 0 0 1-4.8 2.6l1.2 1.1a19 19 0 0 0 4-2l-.4-1.7m-27.4-31.4-1.7.5v4.3l1.7.5v-5.2m1.7 0 1.6.4v4.3l-1.6.5V283m30.5 0-1.7.5v4.3l1.7.5V283"/>
+ <path fill="none" stroke="#c8b100" stroke-width=".3" d="m247.1 283.1 1.7.5v4.3l-1.7.5V283m-8.6 22-1.6.7-2.9-3.3 1-1.4 3.5 4m1.3-1 1-1.4-3-3.3-1.6.7 3.6 4m-18.2-20 1.6-.7 3 3.3-1 1.4-3.6-4m-1.3 1-1 1.4 3 3.3 1.6-.7-3.6-4m18.5-1.1-1.6-.7-3 3.3 1 1.4 3.6-4m1.2 1 1 1.4-3 3.2-1.5-.6 3.5-4m-20.3 9 .5-1.6h4.5l.5 1.6h-5.5m0 1.5.5 1.6h4.5l.5-1.6h-5.5M213 277q0-1 1.2-1 1 0 1 1c0 1-.4 1-1 1a1 1 0 0 1-1.2-1zm12.1.8-.5 1.6h-4.5l-.5-1.6h5.5m0-1.6-.5-1.6h-4.5l-.5 1.6h5.5m20.1 18.5q.1-.9 1.1-1 1 .1 1.1 1-.1 1-1 1.1a1 1 0 0 1-1.2-1zm-4.4-.7-.5-1.6h-4.5l-.5 1.6h5.5m0 1.5-.5 1.6h-4.5l-.5-1.6h5.5m-11.6 21.9q.1-1 1.1-1t1.1 1c.1 1-.5 1-1 1a1 1 0 0 1-1.2-1zm1.9-7.8 1.7-.4v-4.3l-1.7-.5v5.2m-1.6 0-1.7-.4v-4.3l1.7-.5v5.2m15.7-32.6q.1-1 1.1-1a1 1 0 0 1 1.1 1q-.1 1-1 1a1 1 0 0 1-1.2-1zm-16.1 0q.1-1 1.1-1a1 1 0 0 1 1.1 1q-.1 1-1 1a1 1 0 0 1-1.2-1zm6.2.8.5 1.6h4.6l.5-1.6h-5.5m0-1.6.4-1.6h4.6l.5 1.6h-5.5m-6 5-1.6.5v4.3l1.6.5V281m1.7 0 1.6.5v4.3l-1.6.5V281"/>
+ <path fill="#058e6e" d="M227.7 294.7a2.6 2.6 0 0 1 2.6-2.5 2.6 2.6 0 0 1 2.6 2.5 2.6 2.6 0 0 1-2.6 2.4c-1.4 0-2.6-1-2.6-2.4"/>
+ <path fill="#db4446" d="M230.9 229.7v-.6l.1-.3-2.3-.1a6 6 0 0 1-2.3-1.2q-1-1-1.6-1.2c-1.3-.2-2.3.4-2.3.4s1 .4 1.7 1.3 1.5 1.3 1.8 1.4c.6.2 2.6 0 3.1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M230.9 229.7v-.6l.1-.3-2.3-.1a6 6 0 0 1-2.3-1.2q-1-1-1.6-1.2c-1.3-.2-2.3.4-2.3.4s1 .4 1.7 1.3 1.5 1.3 1.8 1.4c.6.2 2.6 0 3.1.1z"/>
+ <path fill="#ed72aa" stroke="#000" stroke-width=".4" d="M238.1 227.5v1.4c.2.6-.1 1.2 0 1.5q0 .5.3.9l.2.9-.7-.5-.6-.4v1l.6 1.1 1 1.3c.2.5.1 1.4.1 1.4s-.4-.7-.8-.8l-1.2-.7s.7.8.7 1.5l-.3 1.6c-.1.2-.3-.7-.8-1.1l-1-.9s.4 1.2.4 2v2.3l-.9-1-1-.7c0-.2.5.6.6 1.1s.3 2.3 1.8 4.5c1 1.3 2.3 3.6 5.3 2.9s1.9-4.8 1.3-6.7a17 17 0 0 1-1-4.6c0-.8.6-2.9.5-3.3a8 8 0 0 1 .2-3.1l.9-2.3.4-1.3.1-1.3.7 1.3.1 1.5s.1-1 1-1.6 1.8-1.1 2-1.4l.3-.5c-.1 0 0 1.8-.6 2.6l-1.7 2s.7-.3 1.2-.3h.9s-.6.4-1.4 1.6c-.8 1-.5 1.2-1 2.1s-1 1-1.7 1.5c-1 .8-.5 4.2-.4 4.7.2.5 2 4.5 2 5.5s.2 3.2-1.5 4.6c-1.1 1-3 1-3.4 1.2-.4.3-1.2 1.1-1.2 2.8s.6 2 1 2.4c.6.5 1.2.2 1.3.6l.5.7q.3.3.2.8c0 .3-.8 1.1-1.1 1.7l-.8 2.4c0 .2-.1 1 .1 1.3 0 0 .9 1 .3 1.2-.4.2-.8-.2-1-.2l-.9.5q-.3-.1-.4-.8l-.1-.7q-.3 0-.4.5c0 .2 0 .8-.3.8l-.8-.5c-.2 0-.8-.2-.8-.4q.1-.6.7-1 .8-.1.5-.5t-.7 0c-.3.4-.8 0-.7-.2v-.8c0-.2-.4-.5.1-.8s.8.2 1.4.1q.8 0 1-.6.3-.6-.2-1.4l-.9-.8-.3-.9v2.2l-.7-.8c-.3-.3-.6-1.3-.6-1.3v1.3l.2.8c-.1.1-.8-.7-1-.8l-1-1-.4-1.4v-1.5l.4-1h-1.4c-.7 0-1.2-.3-1.5.2q-.4.8.2 2.8.5 1.8.4 2.1l-.7.8h-.9l-1.2-.3h-1.3l-1.1-.3c-.3.1-.8.3-.6.7q.1.8-.5.7l-.9-.2q-.8 0-.8-.4t.4-.7q.3-.5 0-.5h-.6q-.3.4-.8.4-.3-.1-.4-1c-.1-.9-.7-1.2 0-1.1.5 0 1.3.4 1.4 0q.2-.4-.2-.7c-.4-.3-.8-.4-.3-.7l.7-.5c.1-.2.4-.8.7-.6.6.2 0 .7.6 1.3s1 1 2 .8q1.4 0 1.3-.5l-.1-1v-1s-.4.3-.5.6l-.4.8v-2l-.2-.8-.3.9-.1 1s-.7-.5-.5-1.5l.1-2c.2-.3.7-1.5 2-1.6h2.6l2-.3s-2.8-1.4-3.5-1.9a10 10 0 0 1-2-2l-.6-1.6s-.5 0-1 .3l-1.2 1-.7 1 .1-1.2v-.8s-.4 1.2-1 1.7l-1.4 1v-.8l.2-1s-.4.8-1.1 1c-.7 0-1.8 0-1.9.4q.2.8 0 1.4c0 .3-.4.5-.4.5l-.8-.4-.7.2c-.1.1-.3-.4-.2-.7s.7-.6.5-.8l-.8.2c-.3.1-.8.3-.8-.2q.2-.6 0-1 0-.4.2-.6l1.2-.1q0-.4-.8-.6-1-.2-.5-.8.3-.2.5-.6c.1-.2.2-.7.7-.5.5.3.4.8 1 1a4 4 0 0 0 2-.2l1.5-1 1.5-1-1-.8q-.5-.7-1-1l-1.8-.6-1.7-.5.8-.3q.4-.5.8-.6h.3-1.4c-.3-.1-1-.6-1.3-.6l-.8.1s.8-.4 1.4-.5l1-.1s-.9-.3-1.1-.6l-.6-1q-.2-.3-.6-.5l-1 .3q-.6 0-.6-.6l-.1-.5c-.2-.3-.6-.8-.2-1h1.4q-.2-.4-.8-.8c-.4-.2-1-.5-.7-.8l.8-.5c.2-.3.3-1 .7-.7.4.2.8 1.2 1.1 1.1s.3-.8.3-1c0-.4 0-1 .2-.9l1 .5q.8-.1 1 .2 0 .5-.6 1-.4.6-.3 1.4.4 1 1.2 1.4t1.7.9c.5.3 1.7 1.2 2.1 1.3l.8.4s.5-.2 1.1-.2 2.1 0 2.6-.2 1.3-.6 1-1c-.1-.6-1.3-1-1.2-1.4q0-.5 1.2-.4c.8 0 1.8.1 2-1q.5-1.4-.8-1.8c-1-.2-1.8-.2-2-1q-.4-1-.2-1.1.3-.3 1.4-.4 1.3 0 1.9-.2l.6-.9c.3-.2 1.4-.4 1.4-.4s1.4.7 2.7 1.7l2.2 2.1"/>
+ <path d="m228.1 226.8-.2-.6v-.3s.8 0 .7.3q0 .2-.3.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m228.1 226.8-.2-.6v-.3s.8 0 .7.3q0 .2-.3.3z"/>
+ <path d="M232 225.4v-.4s.7 0 1 .3c.5.4.9 1 .9 1l-.8-.4h-.5l-.3-.1v-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M232 225.4v-.4s.7 0 1 .3c.5.4.9 1 .9 1l-.8-.4h-.5l-.3-.1v-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m237.3 231.3-.4-.7-.3-.4"/>
+ <path fill="#db4446" d="M217.4 226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1 1z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M217.4 226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1 1z"/>
+ <path fill="#db4446" d="M215.2 227.6s-.4-.7-1.3-.6-1.4.8-1.4.8h1.2c.3.3.4 1 .4 1l.7-.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M215.2 227.6s-.4-.7-1.3-.6-1.4.8-1.4.8h1.2c.3.3.4 1 .4 1l.7-.6z"/>
+ <path fill="#db4446" d="M214.2 230.6s-.8.1-1.2.6-.3 1.3-.3 1.3.4-.5.9-.5l1 .2-.1-.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M214.2 230.6s-.8.1-1.2.6-.3 1.3-.3 1.3.4-.5.9-.5l1 .2-.1-.8z"/>
+ <path d="m228.2 230.5.3-.5.3.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m228.2 230.5.3-.5.3.5h-.7"/>
+ <path d="m229 230.5.3-.5.4.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m229 230.5.3-.5.4.5h-.8"/>
+ <path d="m228.6 227.3.8.3-.7.4-.1-.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m228.6 227.3.8.3-.7.4-.1-.6"/>
+ <path d="m229.5 227.6.7.2-.5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m229.5 227.6.7.2-.5.4-.2-.6"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M224.2 233.7s-.7.2-1 .6q-.4.9-.3 1c.1.1.6-.5 1.5-.3l1.2.3 1.3-.3s-.7.8-.7 1.3l.2 1.1c0 .7-.6 1.6-.6 1.6l1-.3 1.7-.8.9-1s-.2 1 0 1.4l.2 1.6.8-.6q.5-.2.9-.7l.3-1s0 .8.4 1.3l.6 1.6s.3-.8.6-1.1l.7-1-.1-.9.4.8m-11 .6s.5-.8 1-1l1.1-.8.9-.4m1 5 1.3-.8 1-1"/>
+ <path fill="#db4446" d="M216.6 240.4s-.4-.5-1.1-.3c-.7 0-1.2.9-1.2.9s.6-.2 1-.1.6.4.6.4l.4-.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M216.6 240.4s-.4-.5-1.1-.3c-.7 0-1.2.9-1.2.9s.6-.2 1-.1.6.4.6.4l.4-.4z"/>
+ <path fill="#db4446" d="M215.8 243.2s-.6 0-1.1.3c-.5.4-.5 1.2-.5 1.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M215.8 243.2s-.6 0-1.1.3c-.5.4-.5 1.2-.5 1.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8z"/>
+ <path fill="#db4446" d="M217.2 245.8s0 .8.3 1.3c.4.5 1.1.5 1.1.5l-.3-.7.3-.8q.1-.1-.7-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M217.2 245.8s0 .8.3 1.3c.4.5 1.1.5 1.1.5l-.3-.7.3-.8q.1-.1-.7-.3zm16 1.3s2 1.2 1.9 2.2c0 1-1 2.3-1 2.3"/>
+ <path fill="#db4446" d="M224.2 252.6s-.4-.6-1.1-.6-1.4.7-1.4.7.8-.1 1 .2l.5.6.5-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M224.2 252.6s-.4-.6-1.1-.6-1.4.7-1.4.7.8-.1 1 .2l.5.6.5-.3z"/>
+ <path fill="#db4446" d="M222.2 255.3s-1-.1-1.4.3-.4 1.3-.4 1.3.6-.6 1-.5q.9.1 1 .3v-.7l-.3-.7"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M222.2 255.3s-1-.1-1.4.3-.4 1.3-.4 1.3.6-.6 1-.5q.9.1 1 .3v-.7l-.3-.7z"/>
+ <path fill="#db4446" d="M224 258.1s-.3.7 0 1.1 1 .8 1 .8-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M224 258.1s-.3.7 0 1.1 1 .8 1 .8-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2z"/>
+ <path fill="#db4446" d="M236 259.3s-.8-.2-1.2 0c-.5.3-.8 1.4-.8 1.4s.7-.6 1.2-.5q.9.1 1 .3v-.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M236 259.3s-.8-.2-1.2 0c-.5.3-.8 1.4-.8 1.4s.7-.6 1.2-.5q.9.1 1 .3v-.8z"/>
+ <path fill="#db4446" d="M236.4 262.2s-.6.6-.4 1.1l.6 1s0-.7.2-1l1-.3-.7-.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M236.4 262.2s-.6.6-.4 1.1l.6 1s0-.7.2-1l1-.3-.7-.5z"/>
+ <path fill="#db4446" d="M239.4 263s-.3.8.2 1.3l1 .5q-.2-.3-.2-1.1.3-.7.5-.7l-.8-.2-.7.3"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M239.4 263s-.3.8.2 1.3l1 .5q-.2-.3-.2-1.1.3-.7.5-.7l-.8-.2-.7.3z"/>
+ <path fill="#ffd691" stroke="#000" stroke-width=".5" d="M208.8 316.4q3 1 3 3.8c0 2.3-2.2 4-5 4-3 0-5.3-1.7-5.3-4 0-1.7 1-3.6 3-3.8l-.2-.4-.7-.7h1.2l.8.5.5-.7.6-.5.6.6.3.5.7-.4.8-.3s0 .4-.2.7l-.1.7"/>
+ <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M206.3 326.7s-3.8-2.6-5.5-3c-2-.4-4.5 0-5.5 0 0 0 1.2.8 1.8 1.4.5.5 2.3 1.5 3.3 1.8 3 .8 6-.2 6-.2m1 .2s2.4-2.5 5-2.9c3-.4 5 .3 6.2.6l-1.5.8c-.5.3-2 1.5-4 1.6-2 0-4.4-.3-4.8-.2l-.9.1"/>
+ <path fill="#ad1519" stroke="#000" stroke-width=".5" d="M206.7 323.8a5 5 0 0 1 0-7.1 5 5 0 0 1 1.5 3.5 5 5 0 0 1-1.5 3.6"/>
+ <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M205.7 329s.6-1.5.6-2.7l-.1-2.1h.8s.3 1.1.3 2l-.1 2.4-.7.1-.8.3"/>
+ <path fill="#fff" d="M254 190.7q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M254 190.7q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M255.4 188.2q.1-1 1.1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M255.4 188.2q.1-1 1.1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M256.4 185.2q.1-.9 1-1 1 .1 1.1 1c.1.9-.5 1-1 1a1 1 0 0 1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M256.4 185.2q.1-.9 1-1 1 .1 1.1 1c.1.9-.5 1-1 1a1 1 0 0 1-1.1-1z"/>
+ <path fill="#fff" d="M256.5 182q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M256.5 182q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M255.7 179q.1-1 1-1 1.1 0 1.2 1c.1 1-.5 1-1.1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M255.7 179q.1-1 1-1 1.1 0 1.2 1c.1 1-.5 1-1.1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M254.1 176.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M254.1 176.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M252 173.8q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M252 173.8q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M249.4 171.8q.1-.9 1.1-1a1 1 0 0 1 0 2q-1 0-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M249.4 171.8q.1-.9 1.1-1a1 1 0 0 1 0 2q-1 0-1-1z"/>
+ <path fill="#fff" d="M246.5 170.3q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M246.5 170.3q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M243.3 169.1q.1-.9 1.1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M243.3 169.1q.1-.9 1.1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M239.9 168.5q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M239.9 168.5q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M236.6 168.3q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M236.6 168.3q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M233.3 168.5q.1-1 1-1t1.1 1c.1 1-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M233.3 168.5q.1-1 1-1t1.1 1c.1 1-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M230.1 168.5q.1-1 1-1t1.1 1c.1 1-.5 1-1 1a1 1 0 0 1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M230.1 168.5q.1-1 1-1t1.1 1c.1 1-.5 1-1 1a1 1 0 0 1-1.1-1z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M231.7 171.2q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1m.6 3.1q0-1 1-1c1 0 1 .4 1 1q0 .9-1 1a1 1 0 0 1-1-1m0 3q.2-.9 1.1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1m-1 2.8q.1-.9 1-1 1 .1 1.1 1 0 1-1 1a1 1 0 0 1-1-1m-1.9 2.6q.1-.9 1-1 1.1.1 1.2 1 0 1.2-1.1 1-1 0-1-1"/>
+ <path fill="#fff" d="M227.6 166.5q.1-.9 1.1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M227.6 166.5q.1-.9 1.1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M224.8 165q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M224.8 165q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M221.6 164q.1-1 1-1t1.1 1q-.1.9-1 1-1-.1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M221.6 164q.1-1 1-1t1.1 1q-.1.9-1 1-1-.1-1.1-1z"/>
+ <path fill="#fff" d="M218.3 163.4q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M218.3 163.4q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1.1-1z"/>
+ <path fill="#fff" d="M215 163.5q.1-1 1.1-1t1 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M215 163.5q.1-1 1.1-1t1 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M211.7 164q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M211.7 164q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M208.6 165.1q.1-.9 1-1 1 .1 1.1 1c.1.9-.5 1-1 1a1 1 0 0 1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M208.6 165.1q.1-.9 1-1 1 .1 1.1 1c.1.9-.5 1-1 1a1 1 0 0 1-1.1-1z"/>
+ <path fill="#fff" d="M156 190.7q0-.9 1-1c1-.1 1 .5 1 1q0 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M156 190.7q0-.9 1-1c1-.1 1 .5 1 1q0 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M154.5 188.2q.1-1 1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M154.5 188.2q.1-1 1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M153.5 185.2q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M153.5 185.2q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M153.4 182q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M153.4 182q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M154.2 179q.1-1 1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M154.2 179q.1-1 1-1t1 1c0 1-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M155.8 176.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M155.8 176.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M158 173.8q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M158 173.8q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M160.5 171.8q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M160.5 171.8q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M163.5 170.3q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M163.5 170.3q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M166.6 169.1q.1-.9 1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M166.6 169.1q.1-.9 1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M170 168.5q.1-.9 1.1-1a1 1 0 0 1 0 2q-1 0-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M170 168.5q.1-.9 1.1-1a1 1 0 0 1 0 2q-1 0-1-1z"/>
+ <path fill="#fff" d="M173.4 168.3q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M173.4 168.3q0-.9 1-1c1-.1 1 .5 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M176.6 168.5q.1-1 1-1t1.1 1c.1 1-.5 1-1 1a1 1 0 0 1-1.1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M176.6 168.5q.1-1 1-1t1.1 1c.1 1-.5 1-1 1a1 1 0 0 1-1.1-1z"/>
+ <path fill="#fff" d="M179.8 168.5q.1-1 1-1 1.1 0 1.2 1c.1 1-.5 1-1.1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M179.8 168.5q.1-1 1-1 1.1 0 1.2 1c.1 1-.5 1-1.1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M178.2 171.2q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1m-.7 3.1q0-1 1-1c1 0 1 .4 1 1q0 .9-1 1a1 1 0 0 1-1-1m-.2 3q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1m.9 2.8q.1-.9 1-1 1 .1 1.1 1-.1 1-1 1a1 1 0 0 1-1.1-1m1.8 2.6q.1-.9 1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1"/>
+ <path fill="#fff" d="M182.3 166.5q.1-.9 1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M182.3 166.5q.1-.9 1-1a1 1 0 0 1 0 2 1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M185.2 165q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M185.2 165q0-1 1-1c1 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M188.3 164q.1-1 1-1t1.1 1q0 .9-1 1c-1 .1-1-.5-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M188.3 164q.1-1 1-1t1.1 1q0 .9-1 1c-1 .1-1-.5-1-1z"/>
+ <path fill="#fff" d="M191.6 163.4q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M191.6 163.4q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M194.9 163.5q0-1 1-1c1 0 1 .4 1 1q0 .9-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M194.9 163.5q0-1 1-1c1 0 1 .4 1 1q0 .9-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M198.2 164q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M198.2 164q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#fff" d="M201.3 165.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M201.3 165.1q.1-.9 1-1 1 .1 1.1 1 0 1.2-1 1a1 1 0 0 1-1-1z"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M174.7 228.9h-1v-1h-1.5v3.6h1.6v2.5h-3.4v7h1.8v14.3h-3.5v7.3h27.2v-7.3h-3.5V241h1.8v-7h-3.4v-2.5h1.6V228h-1.6v.9h-.8v-1h-1.6v1h-1.1v-1h-1.6v3.6h1.6v2.5H184v-7.8h1.7v-3.5H184v.9h-1v-1h-1.5v1h-.9v-1H179v3.6h1.7v7.8h-3.3v-2.5h1.6V228h-1.6v.9h-.9v-1h-1.8zm-6 33.7H196m-27.3-1.8H196m-27.3-1.8H196m-27.3-1.7H196m-27.3-2H196m-23.8-1.6h20.2m-20.2-1.8h20.2m-20.2-2h20.2m-20.2-1.7h20.2m-20.2-1.8h20.2m-20.2-1.8h20.2m-20.2-1.7h20.2m-22-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-20.4-1.7h17m-10.2-1.8h3.4m-3.4-1.8h3.4m-3.4-1.8h3.4m-3.4-1.7h3.4m-5.1-2.2h6.8m-12 7.5h3.6m-5-2.2h6.6m-6.7 32.6v-1.8m0-1.8v-1.7m-1.8 1.7v1.8m3.4 0V259m1.7 3.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m-1.7 7.4v-2m-3.4 2v-2m7 0v2m1.5-2v-1.6m-5.1-1.8v1.8m3.5-1.8v1.8m3.3-1.8v1.8M179 252v-2m1.7-1.7v1.7m0-5.3v1.8m-1.7-3.6v1.8m1.7-3.5v1.7m-3.3-1.7v1.7m-3.5-1.7v1.7m-1.6-3.5v1.8m3.3-1.8v1.8m3.4-1.8v1.8m1.7-3.6v1.8m-3.3-1.8v1.8m-3.5-1.8v1.8m-1.6-3.6v1.8m6.7-1.8v1.8m-3.4-5.3v1.8m15.3-1.8h-3.5m5-2.2h-6.6m6.7 32.6v-1.8m0-1.8v-1.7m1.8 1.7v1.8m-3.4 0V259m-1.7 3.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m1.7 7.4v-2m3.4 2v-2m-7 0v2m-1.5-2v-1.6m5.1-1.8v1.8m-3.5-1.8v1.8m-3.3-1.8v1.8m1.7-1.8v-2m-1.7-1.7v1.7m0-5.3v1.8m1.7-3.6v1.8m-1.7-3.5v1.7m3.3-1.7v1.7m3.5-1.7v1.7m1.6-3.5v1.8m-3.3-1.8v1.8m-3.4-1.8v1.8m-1.7-3.6v1.8m3.3-1.8v1.8m3.5-1.8v1.8m1.6-3.6v1.8m-6.7-1.8v1.8m3.4-5.3v1.8m-7 18v-2m0-5.4v-1.8m0 5.4v-1.8m0-5.3v-1.8m0-1.8v-1.7m0-3.6v-1.8m0-1.7v-1.8m-8.3 4.6h3.5m3.3-5.3h3.4m3.3 5.3h3.5"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M186.8 262.6v-4.7c0-.8-.4-3.5-4.6-3.5-4 0-4.4 2.7-4.4 3.5v4.7z"/>
+ <path fill="#c8b100" stroke="#000" stroke-width=".4" d="m179.3 258.2-2.2-.3c0-.9.2-2.2.9-2.6l2 1.5c-.3.2-.7 1-.7 1.4zm6 0 2.2-.3c0-.9-.2-2.2-.9-2.6l-2 1.5c.3.2.7 1 .7 1.4zm-2.2-2.3 1-2-2-.4-1.7.4 1.1 2zm-4.2-5.5v-4.9c0-1.3-1-2.4-2.5-2.4s-2.4 1-2.4 2.4v4.9zm6.8 0v-4.9c0-1.3 1-2.4 2.5-2.4s2.4 1 2.4 2.4v4.9zm-1.7-12 .4-4.4h-4.2l.2 4.4zm3.3 0-.4-4.4h4.4l-.5 4.4zm-10 0 .2-4.4h-4.2l.5 4.4z"/>
+ <path fill="#0039f0" d="M185.3 262.6v-4c0-.7-.5-2.7-3.1-2.7-2.4 0-2.9 2-2.9 2.7v4zm-6.9-12.7v-4.2c0-1-.6-2.2-2-2.2s-2 1.1-2 2.2v4.3h4zm7.8 0v-4.2c0-1 .7-2.2 2-2.2s2 1.1 2 2.2v4.3h-4z"/>
+ <path fill="#ad1519" d="M190.8 269.8c0-9.7 7-17.6 15.6-17.6s15.6 7.9 15.6 17.6-7 17.5-15.6 17.5-15.6-7.8-15.6-17.5"/>
+ <path fill="none" stroke="#000" stroke-width=".6" d="M190.8 269.8c0-9.7 7-17.6 15.6-17.6s15.6 7.9 15.6 17.6-7 17.5-15.6 17.5-15.6-7.8-15.6-17.5z"/>
+ <path fill="#005bbf" d="M195.4 269.7c0-7 5-12.8 11-12.8s11 5.7 11 12.8-5 13-11 13-11-5.8-11-13"/>
+ <path fill="none" stroke="#000" stroke-width=".6" d="M195.4 269.7c0-7 5-12.8 11-12.8s11 5.7 11 12.8-5 13-11 13-11-5.8-11-13z"/>
+ <path fill="#c8b100" d="M201.2 260.9s-1.3 1.4-1.3 2.7a6 6 0 0 0 .6 2.4q-.4-.8-1.4-.8-1.3.1-1.4 1.3l.2.8.5.9q.2-.5 1-.5 1.1 0 1 1v.2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.6 0 1 .6l.4-1 .2-.7a1.4 1.4 0 0 0-1.4-1.3q-1 0-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M201.2 260.9s-1.3 1.4-1.3 2.7a6 6 0 0 0 .6 2.4q-.4-.8-1.4-.8-1.3.1-1.4 1.3l.2.8.5.9q.2-.5 1-.5 1.1 0 1 1v.2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.6 0 1 .6l.4-1 .2-.7a1.4 1.4 0 0 0-1.4-1.3q-1 0-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z"/>
+ <path fill="#c8b100" d="M199.2 269.9h4.1v-1h-4.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M199.2 269.9h4.1v-1h-4.1z"/>
+ <path fill="#c8b100" d="M211.4 260.9s-1.3 1.4-1.3 2.7.6 2.4.6 2.4q-.3-.8-1.4-.8-1.3.1-1.4 1.3l.2.8.5.9q.3-.5 1-.5a1 1 0 0 1 1 1v.2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.7 0 1 .6l.4-1 .2-.7a1.4 1.4 0 0 0-1.4-1.3q-1 0-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M211.4 260.9s-1.3 1.4-1.3 2.7.6 2.4.6 2.4q-.3-.8-1.4-.8-1.3.1-1.4 1.3l.2.8.5.9q.3-.5 1-.5a1 1 0 0 1 1 1v.2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.7 0 1 .6l.4-1 .2-.7a1.4 1.4 0 0 0-1.4-1.3q-1 0-1.4.9s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z"/>
+ <path fill="#c8b100" d="M209.4 269.9h4.1v-1h-4.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M209.4 269.9h4.1v-1h-4.1z"/>
+ <path fill="#c8b100" d="M206.3 269.6s-1.3 1.5-1.3 2.8.6 2.4.6 2.4q-.3-.8-1.4-.9-1.3.1-1.4 1.4l.2.7.5 1q.2-.6 1-.6a1 1 0 0 1 1 1v.3h-1.2v1h1l-.8 1.5 1-.4.8.9.8-1 1 .5-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.6 0 .9.6l.5-1 .2-.7a1.4 1.4 0 0 0-1.4-1.4q-1 0-1.4 1s.6-1.2.6-2.5-1.4-2.7-1.4-2.7"/>
+ <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M206.3 269.6s-1.3 1.5-1.3 2.8.6 2.4.6 2.4q-.3-.8-1.4-.9-1.3.1-1.4 1.4l.2.7.5 1q.2-.6 1-.6a1 1 0 0 1 1 1v.3h-1.2v1h1l-.8 1.5 1-.4.8.9.8-1 1 .5-.7-1.5h1v-1h-1.1v-.3a1 1 0 0 1 1-1q.6 0 .9.6l.5-1 .2-.7a1.4 1.4 0 0 0-1.4-1.4q-1 0-1.4 1s.6-1.2.6-2.5-1.4-2.7-1.4-2.7z"/>
+ <path fill="#c8b100" d="M204.3 278.6h4.1v-1h-4.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M204.3 278.6h4.1v-1h-4.1z"/>
+ <path fill="#c8b100" d="M237.6 223.4h-.3l-.3.4q-.4.3-.8 0l-.1-.4h-.5q-.4-.3-.1-.7v-.5h-.3l-.1.2q-.3.4-.7.2v-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1 1.2l-.3 1.2a9 9 0 0 1 2.9 1.6 9 9 0 0 1 2.2 2.3l1.2-.5c.6-.2 1.3-.2 1.3-.2l.2-.2c-.3 0-1.5.1-1.5-.4v-.2h-.2q-.3-.3 0-.7l.2-.1v-.3h-.3l-.2.1q-.4.5-.8 0l-.1-.4h-.5q-.4-.3 0-.8l.2-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M237.6 223.4h-.3l-.3.4q-.4.3-.8 0l-.1-.4h-.5q-.4-.3-.1-.7v-.5h-.3l-.1.2q-.3.4-.7.2v-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1 1.2l-.3 1.2a9 9 0 0 1 2.9 1.6 9 9 0 0 1 2.2 2.3l1.2-.5c.6-.2 1.3-.2 1.3-.2l.2-.2c-.3 0-1.5.1-1.5-.4v-.2h-.2q-.3-.3 0-.7l.2-.1v-.3h-.3l-.2.1q-.4.5-.8 0l-.1-.4h-.5q-.4-.3 0-.8l.2-.3z"/>
+ <path d="M235.4 224h.2v.3h-.1q-.1-.1 0-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M235.4 224h.2v.3h-.1q-.1-.1 0-.2z"/>
+ <path d="m236.3 224.8-.3-.2v-.2h.1l.4.3.3.2v.2h-.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m236.3 224.8-.3-.2v-.2h.1l.4.3.3.2v.2h-.2l-.3-.3"/>
+ <path d="m234.6 223.7-.2-.2s-.1 0 0-.1l.3.1.3.1v.2h-.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m234.6 223.7-.2-.2s-.1 0 0-.1l.3.1.3.1v.2h-.1l-.3-.1"/>
+ <path d="M233.7 223h.2v.2h-.2s-.1-.1 0-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M233.7 223h.2v.2h-.2s-.1-.1 0-.2z"/>
+ <path d="M237.3 225.5v-.2h-.3l.1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M237.3 225.5v-.2h-.3l.1.2z"/>
+ <path d="m237.9 226.2.2.2h.1v-.2l-.2-.2-.2-.2h-.1v.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="m237.9 226.2.2.2h.1v-.2l-.2-.2-.2-.2h-.1v.2l.2.2"/>
+ <path d="M238.8 227v-.3h-.3v.2h.3"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M238.8 227v-.3h-.3v.2h.3z"/>
+ <path fill="#c8b100" d="M236.2 221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M236.2 221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5"/>
+ <path fill="#c8b100" d="M234.6 221.6v.5l.9.1h.1v-.2l-.5-.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M234.6 221.6v.5l.9.1h.1v-.2l-.5-.7-.5.3"/>
+ <path fill="#c8b100" d="m236.4 222.6-.4.3-.6-.7v-.1h1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m236.4 222.6-.4.3-.6-.7v-.1h1.1v.5"/>
+ <path fill="#c8b100" d="M235.3 222h.4v.3h-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M235.3 222h.4v.3h-.3z"/>
+ <path fill="#c8b100" d="m233.2 221.1-.2-.7-.4-.4s.4-.2.8.1 0 .9 0 .9z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m233.2 221.1-.2-.7-.4-.4s.4-.2.8.1 0 .9 0 .9z"/>
+ <path fill="#c8b100" d="m234.2 221.4-.4.4-.6-.6v-.2h1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m234.2 221.4-.4.4-.6-.6v-.2h1v.4"/>
+ <path fill="#c8b100" d="m233.1 221 .3-.1v.3q0 .3-.2.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m233.1 221 .3-.1v.3q0 .3-.2.2z"/>
+ <path fill="#c8b100" d="M238.3 222.5h-.5l-.3.7v.2h.2l.8-.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M238.3 222.5h-.5l-.3.7v.2h.2l.8-.4-.2-.5"/>
+ <path fill="#c8b100" d="M236.7 222.8v.5l.8.2h.1v-.2l-.4-.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M236.7 222.8v.5l.8.2h.1v-.2l-.4-.7-.5.2"/>
+ <path fill="#c8b100" d="m238.4 224-.5.2-.4-.7v-.2h.1l.9.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m238.4 224-.5.2-.4-.7v-.2h.1l.9.2-.1.5"/>
+ <path fill="#c8b100" d="M237.3 223.2h.4v.4h-.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M237.3 223.2h.4v.4h-.3z"/>
+ <path fill="#c8b100" d="m240.2 224.3.1.5-.8.3h-.2v-.2l.4-.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m240.2 224.3.1.5-.8.3h-.2v-.2l.4-.8.5.2"/>
+ <path fill="#c8b100" d="m240 225.8-.5.1-.3-.8v-.1h.2l.8.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m240 225.8-.5.1-.3-.8v-.1h.2l.8.3-.1.5"/>
+ <path fill="#c8b100" d="m238.6 224.3-.2.5.9.3h.1v-.1l-.3-.8z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m238.6 224.3-.2.5.9.3h.1v-.1l-.3-.8-.5.1"/>
+ <path fill="#c8b100" d="M239.5 225.2v-.3h-.4v.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M239.5 225.2v-.3h-.4v.3z"/>
+ <path fill="#c8b100" d="M240.8 227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M240.8 227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2z"/>
+ <path fill="#c8b100" d="m240.3 226.1-.3.5.8.5v-.1h.2l-.1-1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m240.3 226.1-.3.5.8.5v-.1h.2l-.1-1-.6.1"/>
+ <path fill="#c8b100" d="M241 227s.1-.1 0-.2h-.3q-.3 0-.1.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M241 227s.1-.1 0-.2h-.3q-.3 0-.1.2zm38-21.9v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1"/>
+ <path fill="none" d="M134.4 217.1v-1.2m-.4 1.2v-1.2m-.2 1.2v-1.2m-.3 1.2v-1.2"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M133.2 217.1v-1.2m-.5 1.1v-1m.2 1v-1m-.7 1v-1m.2 1v-1m-.9 1v-1m.2 1v-1m.3 1v-1m-.7 1v-1m-.3.9v-.8m-.1.8v-.8m-.5.7v-.6m.2.6v-.6m-.4.5v-.5m-.2.5v-.4m-.3.3v-.3m-.3.3v-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M129.2 216.6v-.2"/>
+ <path fill="none" d="M135.7 217v-1m-.5 1v-1m-.4 1.2V216m143 1.1V216m-.4 1.1V216m-.3 1.1V216m-.3 1.2V216"/>
+ <path fill="none" stroke="#000" stroke-width=".1" d="M276.6 217.1V216m-.6 1v-1m.3 1v-1m-.8 1v-1m.3 1v-1m-.9 1v-1m.2 1v-1m.2 1v-1m-.6 1v-1m-.3.9v-.8m-.2.8v-.8m-.4.7v-.6m.2.6v-.6m-.5.6v-.6m-.2.5v-.4m-.3.4v-.4m-.2.3v-.2"/>
+ <path fill="none" stroke="#000" stroke-width=".2" d="M272.6 216.6v-.2"/>
+ <path fill="none" d="M279.1 217v-1m-.6 1v-1m-.4 1.1V216"/>
+</svg>
diff --git a/apps/web/public/flags/et.svg b/apps/web/public/flags/et.svg
new file mode 100644
index 00000000..3f99be48
--- /dev/null
+++ b/apps/web/public/flags/et.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-et" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="et-a">
+ <path fill-opacity=".7" d="M-61.3 0h682.7v512H-61.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#et-a)" transform="translate(57.5)scale(.94)">
+ <path fill="#ffc621" d="M-238 3.5H800v498H-238z"/>
+ <path fill="#ef2118" d="M-240 342.5H799.3V512H-240z"/>
+ <path fill="#298c08" d="M-238 0H800v180H-238z"/>
+ <circle cx="534.2" cy="353" r="199.7" fill="#006bc6" transform="matrix(.54 0 0 .54 -25.8 74)"/>
+ <path fill="#ffc621" d="m214.3 188.2-6.5 4.5 23.5 33 6.3-4zm29.4 78-9.7-6.8 4-12.7-48.1.7-14-10.7 65.7-.7 12.2-36.9 6.6 15zm76.5-70.7-6.3-4.8-24.3 32.4 5.6 4.7zM254.8 247l3.5-11.2h13.3L256.4 190l6-16.5 20.5 62.4 38.8.5-12.2 10.7zm90.6 51.2 2.7-7.4-38.3-13.3-2.8 7zm-69.1-46.4 11.7-.1 4.1 12.6 38.8-28.5 17.6.6-53.1 38.7 11.5 37.2-14-8.4zm-19.8 102 7.9.2.3-40.5-7.4-.5zm22-80.3 3.8 11.1-10.7 8 39.4 27.7 5 16.8-53.6-38-31.5 22.7 3.5-16 44-32.3zm-103.3 13 2.3 7.5 38.7-12.2-2-7.2zm83.2-4-9.4 7.1-10.8-7.7-14.2 46-14.4 10 19.5-62.7-31.4-23 16.3-1.6z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/eu.svg b/apps/web/public/flags/eu.svg
new file mode 100644
index 00000000..b0874c1e
--- /dev/null
+++ b/apps/web/public/flags/eu.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eu" viewBox="0 0 640 480">
+ <defs>
+ <g id="eu-d">
+ <g id="eu-b">
+ <path id="eu-a" d="m0-1-.3 1 .5.1z"/>
+ <use xlink:href="#eu-a" transform="scale(-1 1)"/>
+ </g>
+ <g id="eu-c">
+ <use xlink:href="#eu-b" transform="rotate(72)"/>
+ <use xlink:href="#eu-b" transform="rotate(144)"/>
+ </g>
+ <use xlink:href="#eu-c" transform="scale(-1 1)"/>
+ </g>
+ </defs>
+ <path fill="#039" d="M0 0h640v480H0z"/>
+ <g fill="#fc0" transform="translate(320 242.3)scale(23.7037)">
+ <use xlink:href="#eu-d" width="100%" height="100%" y="-6"/>
+ <use xlink:href="#eu-d" width="100%" height="100%" y="6"/>
+ <g id="eu-e">
+ <use xlink:href="#eu-d" width="100%" height="100%" x="-6"/>
+ <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(-144 -2.3 -2.1)"/>
+ <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(144 -2.1 -2.3)"/>
+ <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -4.7 -2)"/>
+ <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -5 .5)"/>
+ </g>
+ <use xlink:href="#eu-e" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/fi.svg b/apps/web/public/flags/fi.svg
new file mode 100644
index 00000000..470be2d0
--- /dev/null
+++ b/apps/web/public/flags/fi.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fi" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#002f6c" d="M0 174.5h640v131H0z"/>
+ <path fill="#002f6c" d="M175.5 0h130.9v480h-131z"/>
+</svg>
diff --git a/apps/web/public/flags/fj.svg b/apps/web/public/flags/fj.svg
new file mode 100644
index 00000000..332ae61d
--- /dev/null
+++ b/apps/web/public/flags/fj.svg
@@ -0,0 +1,120 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fj" viewBox="0 0 640 480">
+ <path fill="#68bfe5" d="M0 0v480h640V0z"/>
+ <g stroke-miterlimit="4.8">
+ <path fill="#fff" d="M420.9 193.2v136.4c0 44.6 80.6 71 80.6 71s80.5-26.4 80.5-71V193.2z"/>
+ <path fill="#d21034" d="M490.3 241.2v61.4h-69.4v22.3h69.4v71.5l11.2 4.3 11.1-4.3V325H582v-22.4h-69.4v-61.4z"/>
+ <path fill="#d21034" d="M420.9 193.2H582V246H420.8z"/>
+ <g stroke-miterlimit="3">
+ <g fill="#fff" stroke="#000" stroke-width=".8" transform="translate(-96.9 97.5)scale(.66486)">
+ <ellipse cx="798.2" cy="192.2" rx="13.6" ry="11"/>
+ <ellipse cx="798.2" cy="186.5" rx="12.1" ry="6.1"/>
+ <ellipse cx="798.2" cy="198.8" rx="12.1" ry="6.1"/>
+ <ellipse cx="798.2" cy="192.2" rx="12.1" ry="6.1"/>
+ </g>
+ <path fill="#ffd100" stroke="#000" stroke-width=".8" d="m578 235.4-1.3-3.6s-3.6-1.5-3.9-3.4c-.6-5.1-2.4-7-5.2-7.8a6 6 0 0 0-4.5.5c-.8 1.2-5 1.2-7.2 1.3-2.3 0-2.4-1-2.4-1-1.7 0-2.5-1.3-2.5-1.3-1.1-2.3-2-3.2-2.6-3.5 3 0 5.2-1.3 8.6-4.8 3.6-3.8 6.2-2.4 6.2-2.4-1.8 3.6.6 3.3.6 3.3 4.8-2.5.6-8.7-.8-8.4-1.5.3-1.9-.7-1.9-.7 0 1.1-1.6 1.6-1.6 1.6 1.2-7.1-3-9-3-9-.6.6-1 1.9-1 1.9-1.2 4.3-5.1 3.6-9.5 1.5-4.4-2-16 2.2-19.7 3.7s-10.4 3.7-16.4.4-7.5-2.8-9.9-2.1c-2.3.6-6.5 1.6-8 .8a9 9 0 0 0-3.4-.9c.4-.2-.2-1.2-.2-1.2-1.9-2.5.2-4 .2-4s-3.4 1-2 6.8l.6.8s.4 1.9 1.4 2.4v.4s.9-.4 1.1.8 1.6 0 2.1-1c0 0-.9 5.4 5.7 6.7 0 0-.7-.9-.5-1.4.3-.6-.8-1-.7-1.8s-1.6-1.2-.3-1.9 2-1.9 5-.1c2.9 1.7 5.2 1.3 5.2 1.3s-1.8-3.6-.8-3.6 5.4 5.4 7.5 5.2c2.2-.3 6.4-2.8 8.5-1.9 0 0 .2-1 8.2-2.4s18-5.4 21.7-1.9c0 0 .4 2.8 2 3.5 0 0-.3 5.8-10.2 2.6l-3.6-1s-.6-1.7-19.5 3.2c0 0-1.1.4-1.9.9s-1.7-.3-5.5 1c-3.7 1.5-17.7 6-26.3 4.4-1.9-.6-3.6-.3-3.7-.6 0-.3 1 .1 1 .1q-.9-1-.9-.8c-7.2-.8-6-4-6-4l.4 1c1.2-1.6-.4-5.2-.4-5.2h-.1v-.3l.5-.4c3.5-3 7.5-3.5 7.5-3.5-2.4-3-7.4-1.4-7.4-1.4.1-3.5-1.4-7.7-1.4-7.7a12 12 0 0 0-7.7 4.7c-.2-3.7-4.9-5.8-4.9-5.8 1.8 2.1.7 7.2.7 7.2h.2-.5l-.1 1.1h-.2s-1.7.6-3.7 5.2c0 0-.2 1-1 2v-.4s-2.3 3-7.4 0c0 0-7-4.1-9.6-4-2.4.2-4 1.3-3.9 2 0 0-5.7-.4-7.6 2.8 0 0-4.3 1.6-.6 5 0 0 .5 1.6 1.5 2.4 0 0-.1-3.2.7-2.3l.5.6c.1.4.5 1.6 1.2 2.3l.6-.2c0-.8.2-1.8.4-2.2h.2l1 1.6 1-.6c.6 0 1.3.5 1.3.5l1.3-1.1c1.3.2 1.7-2.4 1.7-2.4a4 4 0 0 0 3.1-.5c.6 2 5.2 4.3 5.2 4.3h.2l-.6.4c2.1 1.5 6 1.1 6 1.1-1.6.6-1.4 3.7-1.4 3.7-1 .4-1 1.3-1 1.3 3.2 1.3 5.3.2 5.3.2v1.2c-1.3 2.7-1.9 5.4-1.9 5.4h.1v.2s-5.7 2-8.1 4.7c0 0-.3-.8-1-.8s-2.8-1.8-3.8-2.1-2.5.3-3-.2c-.3-.4-.1-3.6-.8-4l-.7-2c-.4 1-2.4.8-2.4.8l-.8.6-.8-.1q-.3.1-.5 1l-.3.3v-.6c-.3.3-1.1-.1-1.4-.1q-.3 0-.5.9l-1.9.1c-.3.2 0 2.6 0 2.6-2.3 1.2-1.2 3.1-1.2 3.1 1.2 6 11.5 3.3 12.3 4.1s2.6 1 3.5 1c1 0 2.1 2.2 3.4 2.4s0-1.8 6.1-3.2 8.2-4 8.2-4c1.9-.4 2.4-2.7 2.5-3.6l.2 1.4c.3 2.1-1.2 3-1.2 3l5.3-1.7c2.1-.5 1.8-2.4 1.8-2.4 2 5.8 5.7 6.2 5.7 6.2.7-2.2.6-2.9.6-2.9h1.7c0-1.3-1-2.2-1.7-2.6l2.6 1.5 1-.1c0 .9 1.3 1.7 1.3 1.7l.2-1.2c1.2 1.6 3.4 1 3.4 1l-.2-.8c4.7 2.9 12.2-.8 12.2-.8 2 .4 2.3-.8 2.3-.8 2.2.3 2.8-1.3 2.8-1.3 5.3-.4 9.1-4.2 9.1-4.2 2.7-.2 2.8-2.1 2.8-2.1s2.6.5 5.2-2.7c6-8.5 14.8-4 14.8-4l-5.1.3c-13.5-.1-7.9 9-7.9 9h.8c1.3.2 5.7 3.7 4 6.2v.2c-2.8 3.7-7.8.2-9.3-3-1.4-3.2-4.4-2.5-4.4-2.5s-7.5 1.3-4.4 7.3c.1 1.5 1 3.2 3.8 4.8 1.5 2.2 6.5 2.4 10.1 1.6C524 244 533 240 533 240c.7-2 3-1.5 5-4.4 2-2.8-2.9-3.8-4-5.4-1-1.5.3-1.2.3-1.2 4.4 2.3 4.8-5.2 4.8-5.2a7 7 0 0 0 4.3 5.5c2.3-2.3.6-7.2.6-7.2 5.7 10.2 9.1 8.5 9.1 8.5-3-1.8-1.5-4.4-1.5-4.4 2.7 10.8 14 1.4 14 1.4-.6 1.6 0 2.5 1 3.5s2.2 1.4 1.6 3.3c-.5 1.8-5.8 1.4-5.8 1.4s-5-.2-4.6 4c.3 1 3.6 1.4 5 1.1 0 0-.6.2 1.3.4h2.2c2.1 0 4.5-.4 4.5-.4 2.9-.6 2.4-1.6 2.4-1.6 4.5-.8 5-3.8 5-3.8z"/>
+ <path d="M429.6 216.7s.3-.5.7-.6q.6 0 1.2.8l.3-.2s-1.2-1.8-.8-3q.4-1 1.6-1.1v-.3q-1.5.3-1.8 1.3l-.2.7q0 1 .5 1.7l-.8-.2a1 1 0 0 0-.8.6zm141 24c-3 .5-7.5.7-7.9-.2 0-.2 0-.8 2.4-2.4l-.2-.5q-3.1 2-2.7 3c.7 1.8 7.2.8 8.5.6zm-58.4 1.7q-1-1.6 1-4.3l-.5-.3q-2 3-1 5z"/>
+ <path d="M508.1 237.8q0 2.9 3.9 5.1l.3-.5q-3.6-2.2-3.6-4.6c-.2-2.5 2.5-4.5 2.6-4.5l-.3-.4c-.2 0-3 2.1-2.9 5zm52 .7c-.8 1.3-.5 2.8-.5 2.8h.5c0-.1-.2-1.4.5-2.5a3 3 0 0 1 2-1.2v-.5q-1.7.3-2.4 1.4zM441 215.1h-.2v.2s-.2 1.6-1 2h-.6l-1.3-.7q-.2-.3-.8-.2a2 2 0 0 1-.4-1.4q.1-1 1.6-2l-.2-.3q-1.5 1-1.7 2.3c0 1 .5 1.6.5 1.6v.1h.2q.3-.1.6.2l1.4.8h1c.7-.5 1-1.9 1-2.2 3.2.7 5.8-3.3 6-3.4l-.3-.2s-2.7 4-5.8 3.2"/>
+ <path d="M433.1 214.5a3 3 0 0 0 .4 2q.5.8 1 .9.7 0 1.2-.6l.6-.4.3.2.2-.2-.5-.3q-.5 0-.8.5t-1 .5q-.3 0-.8-.8a2 2 0 0 1-.3-1.7c.4-1.4 2.1-2.5 2.1-2.5l-.1-.3c-.1 0-1.9 1.2-2.3 2.7m-4.4 20.7q.2-.8 1.3-1.4c-.2 0 .6.6 1.3.6l.5-.3c.2.2 1.4 1.3 1.4 2.7q0 .5-.2.9l.3.1c.9-2.1-1.4-4-1.4-4h-.2l-.4.3c-.6 0-1.3-.6-1.3-.6q-1.4.6-1.6 1.6zm10.3-5.4c-.7.1-2.5.4-3.1 1.4q-.4.6-.1 1.2l.2.6c.6 1.6 1.2 3.2 1.9 3.6l.1-.3c-.6-.3-1.2-2-1.7-3.4l-.2-.6a1 1 0 0 1 0-1c.5-.7 2.2-1 3-1.1.4 0 .5 1.5.6 2.4h.3c-.1-1.4-.3-2.8-1-2.8"/>
+ <path d="M433.9 231.4q-.4.6-.3.9c0 .1.2 4 2 4.8l.1-.3c-1.6-.7-1.8-4.5-1.8-4.6l.2-.6q.4-.4 1.6 0l.1-.3q-1.3-.4-1.9 0z"/>
+ <path d="M432.4 231.7c-.8.6-.7 2.2-.7 2.3h.3s0-1.6.6-2q.4-.3 1 0l.1-.4q-.8-.3-1.3 0z"/>
+ <g transform="translate(-96.9 97.5)scale(.66486)">
+ <path d="M862.3 169.5s1.3 3 1.3 5.3q0 .6-.3 1l-.5-1.3-.3 1s-.6 1.4.3 2.9q1.8 3 9 3.7v.1l-.4.1-.2.2v.4q.2.6 1.8.5l.7.1.6.2-.1-.1q1.6 0 3.6.8l-1 .2 1.1.5c.1 0 8.7 3.5 12.2 6.3-1 .9-5.3 4-12.7 2.2l-1.2-.3.8 1s4.9 5.6 5.9 9c-1.7 0-8.2 0-10.5-2l-.5.5s3 4.6 3.8 8.1c-1 .2-3 .3-4.3-1.4l-.6-.7-.3 2c-.6-.5-1.4-1.1-1.4-1.9v-.4l-1.8.3-3.8-2.3-.6-.4-.4.7.6.3c.8.6 2.2 1.7 2.3 3.3H863v.5c0 .3 0 1.4-.9 3.7-1.1-.2-5.3-1.7-7.8-8.8l-.8.2v.2c0 .7-.2 2.3-2.4 2.9l-6.5 2a5 5 0 0 0 .8-2.8v-.8l-.2-2.6q-.1-2.2 1.4-3l-.4-.8c-.1 0-9.6 3.9-14.3 2.3.2-1 1-4.2 2.6-7.6l-.2.2c.3-.2.6-.6.3-2.2v-.5l-.5.2s-3 1.4-7.4-.2q0-.7 1.2-1.4l.3-.1v-.8c0-1.2.1-4 1.8-4.6l-.2-.8s-5.1.4-8.2-1.3a11 11 0 0 1 4.5-1.9h.3v-.4a6 6 0 0 0-.5-2.3c1.2.4 2.6.7 3.1.3l.2-.1-.2-3.1h-.8l.1 2.6-3-.7-1.2-.4.8 1a4 4 0 0 1 .7 2.4 13 13 0 0 0-5 2.3l-.5.4.5.3c2.4 1.6 6.1 1.8 8 1.7a8 8 0 0 0-1.3 4.5v.4a3 3 0 0 0-1.5 2.2v.3l.2.1a11 11 0 0 0 7.9.5v.9c-2 4.2-3 8.3-3 8.3v.4h.3c3.9 1.6 10.7-.5 13.8-1.6q-.6 1-.7 2.5l.3 3.4c0 2.3-1.5 3.2-1.6 3.2l.3.8 8-2.4c1.8-.5 2.5-1.6 2.8-2.5 3.1 7.4 8 8 8.3 8.1h.3l.1-.3a14 14 0 0 0 1-4l2.4-.1v-.5q0-1-.4-1.8l1.4.8 1.3-.2c.3 1.3 1.9 2.4 2.1 2.5l.5.3.3-1.7c2 1.7 4.7 1.2 4.9 1.2l.3-.1v-.4c-.4-2.7-2.2-5.9-3.3-7.6 3.5 1.6 9.9 1.5 10.2 1.5h.4v-.5a30 30 0 0 0-5.6-9c8.2 1.5 12.6-2.8 12.8-3l.3-.3-.4-.2a54 54 0 0 0-11.6-6.3l.9-.2-1-.5a13 13 0 0 0-5.8-1.4c-1-1.2-1.5-1.3-1.6-1.4-5.6-.6-7.6-2.1-8.4-3.3v-.3l.2-.3q.7-1 .7-2.6c0-2.6-1.3-5.5-1.3-5.6z"/>
+ <path d="M836.8 167.9s-.6 3-3.2 4.5q-3 1.6-7.6-.3l-.4-.1v.4a5 5 0 0 0 2 3.2q2 1.5 5.9 1.2c-.9 1-3.6 4.4-3.6 7.8v.5c.4.2 4.6 1.4 6.6-1.1 0 1 .4 4.5 1.7 5.8q1.1 1.3 1 2.7l-.2 1.4-.2.6.5-.4c.2-.1 4.1-3 5.3-6.7 0 0 .7-1 1.9-1.3v.5c0 1.5.6 4.1 4.8 5.7l.3.1v-1c0-1.1 0-3 1.1-4a3 3 0 0 0 .6-3.3c.9.2 2.9.9 3.7 2.4 1.2 2.2 5.3.4 5.5.4l-.1-.5s-1.8.4-2.9-.3a2 2 0 0 1-.8-1.5l-.2-2.4q0-1.5-.7-2.2c.5 0 1.6 0 2 1 .8 1.6 3.3 1.7 3.4 1.7l.9.1-.7-.5s-2.2-1.4-1.8-3.3l.3-1.4c.6-2.5 1.6-6.6.7-9.2l-.4.2q.3 1 .3 2.2c0 2.2-.7 5-1 6.7l-.4 1.4v.5q.2 2 1.3 2.7c-.7-.1-1.7-.5-2-1.3-.7-1.4-2.3-1.4-3-1.3l-.6.1.4.4q1 .5.8 2.3l.2 2.3q.2 1.2 1 1.8 1 .5 1.7.5c-1.2.3-2.9.5-3.5-.6-1.1-2.2-4.3-2.7-4.4-2.8h-.5l.2.4s.4.6.4 1.4q0 .8-.7 1.7c-1.1 1.1-1.3 3.2-1.3 4.3v.4c-3.6-1.5-4.2-3.7-4.2-5v-1l.2-.3h-.4a4 4 0 0 0-2.5 1.8 15 15 0 0 1-4.7 6.2l.1-1q.1-1.4-1-2.9c-1.5-1.4-1.7-6-1.7-6v-.8l-.4.7c-1.6 2.8-6.2 1.4-6.3 1.4-.2-3.5 4-8.1 4-8.2l.4-.4h-.6q-4 .5-6.2-1a5 5 0 0 1-1.6-2.5q4.5 1.7 7.6.1a7 7 0 0 0 3.4-4.8c3-6.6 5.5-7.7 5.5-7.7l-.1-.4c-.2 0-2.8 1-5.8 8"/>
+ <path d="M843.5 158h-.2l-2.4 3.3h.7a31 31 0 0 1 19.7 9.2l.3.3 2.3-2.5-.2-.3c-6.5-10.2-20.1-10-20.3-10zm.2.9c1.6 0 13.2.3 19.2 9.3l-1.3 1.4a33 33 0 0 0-19.3-8.9z"/>
+ <path d="M841.6 164.8a11 11 0 0 0-2.1 4.8l.1.4a7 7 0 0 0-2 5.5q0 2 .6 3.8l.3.7c1.2 3.4 2.3 6.4 7.8 4.6 5.2-1.6 5.4-2 6.7-4.2l.4-.5c.7-1.2 1.5-1.4 2.3-1.7 1-.3 2-.6 3-2.4l.8-1.3c1-1.3 2.2-3 2.3-5h-.4a10 10 0 0 1-2.2 4.7l-1 1.4a4 4 0 0 1-2.6 2.2 4 4 0 0 0-2.6 1.8l-.4.6c-1.2 2.1-1.4 2.4-6.5 4s-6-.9-7.2-4.4l-.3-.7c-1.4-3.8-.3-7.6 1.6-9l.6-.5-.9.1v-.1c0-.7.7-2.6 2-4.5 1.2-1.6 4-3.1 4-3.2l-.2-.4c-.2.1-2.9 1.7-4.1 3.3"/>
+ <path d="M839.2 178.7q1.3.8 3.7 0c0 .5 0 1.7 1 2.5q1.8 1.5 5.5.6v-.5q-3.6.9-5.2-.5a3 3 0 0 1-.9-2.4v-.4l-.3.2q-2.2 1-3.6 0c-1.5-1-1.4-3.7-1.4-3.7h-.4s-.2 3 1.6 4.2"/>
+ <path d="M842 175q-.8.4-.8 1.1v.3c.2 1.2 1.5 2 2.6 2.3s2.6.4 3.1-.3q.4-.4 0-1.7a3.7 3.7 0 0 0-4.8-1.7zm2 3.3c-1-.3-2.2-1-2.3-2 0 0-.1-.7.5-.9a3.3 3.3 0 0 1 4.2 1.6q.4.7.1 1c-.3.5-1.4.6-2.5.3m-.4 2.7c-.3 2.5 0 2.6.1 2.6h.2l.2-.1 1.4-2-1.8-.8v.3zm.5.4.7.3-.8 1.1zm-4.2-2.4-.1 2.3 2-2.4-2-.2zm.4.2h.6l-.6.8z"/>
+ <path d="M838.5 178.2s1.5 2.9 1.8 4q.3 1 2 1.7t2.7-.1l1.3-1.1q.5-.7 1-.5v-.5q-.8 0-1.3.6l-1.3 1c-.8.6-1.7.4-2.2.2q-1.6-.6-1.8-1.5c-.3-1-1.7-3.9-1.8-4zm2-8.6a5 5 0 0 0-2.4 2.8l.4.1s.7-1.8 2.1-2.5a3 3 0 0 1 2.4 0l.1-.4q-1.4-.6-2.7 0zm10.8 5.2c.2 0 3.2 2.4 1.5 5.2l.3.3c2-3.3-1.5-5.9-1.5-6zm-9.2.4s-.5 1.7 2 2.3c0 0-2.3 0-2.5-.6-.1-.6 0-1.9.5-1.7m7.5 2q0 .3-.3.3l-.3-.2q0-.3.3-.3t.3.3zm.2 1.2q0 .2-.2.2l-.3-.2.3-.3q.2 0 .2.3"/>
+ <circle cx="848" cy="177.8" r=".3"/>
+ <path d="M848.8 179.4a.3.3 0 1 1-.6 0q0-.2.3-.2zm-7.1-7.3a.3.3 0 0 1-.6 0 .3.3 0 0 1 .5 0z"/>
+ <circle cx="841.6" cy="173.2" r=".3"/>
+ <circle cx="840.1" cy="172.7" r=".3"/>
+ <path d="m840.8 174.3-.2.3a.3.3 0 0 1 0-.6zm4.8-9.6s3.5 2.2.1 6.3c0 0 1.7-1.3 1.8-3.4s-1.2-3.8-2-2.9zm13.5 5.9c-1.2.6-2.8-.5-3.6-1.5s-2.5-1.3-3.6.6c-1 1.8-2.5 2.5-2.5 2.5s1.5-.8 3-2.5 2.4-.3 3.9.5c1.4.8 1.7 1 2.7.5v-.1z"/>
+ <path d="M858.8 170.9a2 2 0 0 1-2.2-.1c-1-.8-1.7-1.8-2.8-1.2-1.2.6-3.3 2.2-3.3 2.2s3.5-2.4 4.2-1.8c.6.5 2.2 1.8 3.1 1.4z"/>
+ <path d="M856.1 172.3c-1.1-.8-2.2 1-3.1.8-1-.2-1.7-1.8-1.7-1.8s.8 1.6 2 1.3c1.3-.4 2.1-1.2 2.9-.6s-.1.3-.1.3"/>
+ <path d="M854.4 172.6a2 2 0 0 1-2.4-1.9s.7 1.8 2.6 1.5z"/>
+ <path d="M854.3 171.2q.3.8-.5.8-1.1 0-1-.8c0-.5 1.4-.4 1.5 0m-7.8-3a1 1 0 0 1-.7.6q-.6 0-.5-.6c.1-.6 0-.7.5-.7s.7.3.7.7"/>
+ <path d="M844 165.7s3.8 0 2 4.7c0 0 1.4-2.3.5-4-1-1.6-2.3-1.2-2.3-1.2s-.4.3-.2.5"/>
+ <path d="M844 167.6q0 1.4 1.8 2.9l.3-.4q-1.7-1.3-1.7-2.5c0-1.2.6-1.3.6-1.3l-.3-.3s-.7.6-.8 1.6z"/>
+ <path d="M844.8 168.4q.2.8 1.2 1.2l.2-.4q-.8-.3-1-1c-.2-.8.4-1.7.4-1.7l-.4-.3s-.7 1.2-.4 2.2m5.1 2.6s.7 1.5-.3 3.1l-1 1.6s1.2-2.3.7-3.2.6-1.5.6-1.5m14.6 15.8c3.8.7 12.5 7.5 12.5 7.5l.5-.6c-.3-.3-8.9-7-12.9-7.7zm3.4 9.5c.2 3.5 4 5.6 4 5.7l.5-.7s-3.5-2-3.7-5zm-9.3.8c0 3.8 3.6 8.4 3.8 8.6l.6-.5s-3.6-4.6-3.6-8.1zm-12.1.4q.8 1.9.4 2.2-.5.5-.6.4l.1.8q.6 0 1.2-.8.6-1-.4-3z"/>
+ </g>
+ <g fill="#fff" stroke="#000" stroke-width=".2">
+ <path d="M429.6 216.3s.1 1.7 1.4 2.7c0 0-.1-1.8.3-2.6 0 0-.7-.8-1.7-.1zm2.6 1s.3 1.6 1.2 2.3l.6-.1s.2-2 .5-2.2-1.3.7-2.3 0z"/>
+ <path d="m434.5 217.3 1 1.6 1.2-.7-.2-1.8s-.7-.2-2 .9zm4.7.3-1.3 1.1s-.7-.5-1.2-.5l.2-1.7s1-.7 2.3 1.1zm-9.3 16s-.2-2.4 0-2.5c0 0 1 .3 1.4 0 0 0 .5 1.8.4 2.6-.2.8-1.1.5-1.8 0zm6-2.4s-.1-2 .2-2.3c0 0 2 .3 2.4-.8l.7 2s-2.1-.3-3.4 1z"/>
+ <path d="M433.8 231.6s.3-2.1.7-2.2c0 0 1 .3 1.3-.1v2.6s0-1.1-2-.3zm-2.3.3s.5-1.9.8-1.9 1 .5 1.4.2v1.4s-1.6-.4-1.9 1.9z"/>
+ </g>
+ </g>
+ <g fill="#00a651" stroke="#000" stroke-width=".8">
+ <path stroke-width=".5" d="M461.7 270.4s5.2 4.9 3.9 9.2c0 0 3.3-7.3-.3-9.5-3.6-2-3.7-.5-3.6.3z"/>
+ <path fill="#964b36" stroke-width=".5" d="M455 275.1s-1.3 2 .2 3.3c0 0-1.7 2.4-.4 4.4 0 0-1 2.1-.8 4.4 0 0-.8 3.5 1 5.1 0 0 2 1 3 .1 0 0 1.7-2.6.6-5.3 0 0 1.2-2.3-.2-5.2 0 0 .4-1.6-.7-3.5 0 0 .7-1.2.1-2.2 0 0-2.5-2.7-2.8-1z"/>
+ <path stroke-width=".5" d="M456.5 269s-6.2-12-10.6-12.5-4.6-4.8-4.6-4.8.5 2 4 2 10.2 5 11 8.7c.7 3.7 1.5 3.2 1.5 3.2z"/>
+ <path stroke-width=".5" d="M456.5 268.1s2.3-15.1 12.2-15.4c9.9-.2 6.6.8 9-.8 0 0-6.6 3.4-10.7 4-4.2.4-7.6 8.5-7.4 10 0 1.5-2.3 4.4-3.4 3.4s.3-1.2.3-1.2z"/>
+ <path stroke-width=".5" d="M458.8 273.8s2.3-6 6.1-4c0 0-3-5.8-8.4-.8 0 0 2.4 3.3 2.3 4.8zm-7.5-6s3.2 13.4-1.8 17.5c0 0 .2-6.9-2.9-11-3-4.2 3-8.7 4.7-6.5z"/>
+ <path stroke-width=".5" d="M451.7 270.1s5.9 5.7 6.2 7.6c.4 1.8 1.8-5.7-1-7.8s-5.7-2.5-5.7-2.5l.5 2.8z"/>
+ <path fill="#964b36" stroke-width=".5" d="M440.8 285s.5 2.3 2 2.8c0 0 0 1.7 1.4 2.2 0 0-.7 1.5.4 2.4 0 0-.2 3 .8 3.5 0 0 2.7-.1 3.6-.9 0 0 .5-1.9-1-3.8 0 0 .3-1.8-1.2-2.8 0 0 .5-2.5-1.4-3.4 0 0-.3-2-1.4-3 0 0-2.2 3.1-3.2 3z"/>
+ <path stroke-width=".5" d="M443.7 282s-7.7-2.8-12 1.2c0 0 6.6 1 7.4 2.3s4.9-2.2 4.6-3.5z"/>
+ <path stroke-width=".5" d="m441.3 286.8-1.4-1c-.7-.6-7.2-2.3-8.1 4 0 0-2.4-6.3 1-7 3.5-1 6.2 1 8.5 4m-5-12.8s2.3 5.2 3.2 5.4 1.5-.6 1.5-.6-3.1-4.6-4.8-4.8zm-1.8-7.9s-2-6.6-4.4-4.8-1.8 6.5-1.8 6.5-4.7-5-2-8.8 8.2.4 8.2 7.1z"/>
+ <path fill="#964b36" stroke-width=".5" d="M439.9 279.8s0 1.3.9 1.6 2.5 1 2.5.3-1.3-3.7-1.8-3.3-1.4.4-1.6 1.4z"/>
+ <path stroke-width=".5" d="M438.4 272s-.3-5.7 3.5-7.9c0 0 .7.2 1.1-1 0 0-3 7.3-2.1 11l-.1.4"/>
+ <path stroke-width=".5" d="M439.1 265s6.8-14 15-9.1c0 0-8.6 1.7-11.7 7.9l-3.1 4.6z"/>
+ <path stroke-width=".5" d="M435.5 270.1s-2-9.4-3.3-10.6c-1.2-1.3-3.3-2.6-5.9-.5 0 0 4.4-3.9 9-.6 4.7 3.2 3.7 8.4 3.7 8.4l-.5 6.5-3.1-2.9"/>
+ <path stroke-width=".5" d="M442.8 281.3s-8.3-15.7-13.7-4.5c0 0-1 2.9.1 4 0 0-3-2.3-1.6-7.8s10.5-3 13.2 1.5 3.3 6.8 3 7c-.4.3-1-.2-1-.2zm23.3 4.5s6-12.4 9.5-6.8c0 0 1 2.8-.5 4 0 0-2.4-3-4.5.6-2.2 3.5-1.3 3.2-1.3 3.2s-2.2.6-3.2-1z"/>
+ <path stroke-width=".5" d="M475 283s3.3 1.7 2.2 5.2c0 0 4.4-8.4-1.6-9.2 0 0 1.1 2.7-.5 4zm.5-8.6s7.9 2.3 8.1 5.7c0 0 1.4-6.6-3.1-8.6 0 0-5.4 1-5 3z"/>
+ <path stroke-width=".5" d="M479 264c3.4-6.6 7.6 2.1 7.6 2.1s1.5-6.9-2.7-8.1c-4.3-1.3-7 14.7-7 14.7l-5 1s1.3-13.8 8.8-15h1"/>
+ <path stroke-width=".5" d="M473 268s-4.8-9.8-8-10.8 1.7-2.5 3.7-.6 5.8 4.3 5.4 9.3zm-5 13.4s1.4-6.6 5.2-8.6 7.3-1.3 7.3-1.3-4.5 1-5.3 3.3-2 2.4-2 2.4z"/>
+ <path fill="#964b36" stroke-width=".5" d="M466 285.8s-2 4-1.6 4.6c0 0-2.2 3.3-1.3 5 0 0 2.2 1.7 3.2 1 0 0 2.6-3.7 1.9-5.7 0 0 1.8-2.4 1.1-3.9 0 0-2.6.1-3.2-1z"/>
+ <path fill="#000001" stroke="none" d="M455 278.6c.2.1 1.5.7 2.3.4l.6-.5-.5-.2c-.3.6-1.7.1-2.1-.1l-.2.4zm-.1 4-.2.5c.1 0 2.7.5 3.9-.6l-.4-.4c-1 .9-3.3.4-3.4.4zm-.7 4.4-.3.4s3 2.1 4.9-.2l-.5-.3c-1.5 1.9-4 .2-4.1 0zm-11.5.6.1.3c.1 0 2.6-1 2.8-2.9h-.3c-.1 1.6-2.5 2.6-2.6 2.6m1.4 2.3v.3c.2 0 2.5-.2 2.9-1.8h-.3c-.4 1.3-2.5 1.5-2.6 1.5m.5 2.4v.3c.1 0 2.7.1 3.6-1.3l-.3-.2c-.8 1.3-3.3 1.2-3.3 1.2m19.7-1.7s1.1 1.2 2.4 1.1a2 2 0 0 0 1.7-.8l-.4-.4q-.6.7-1.3.7c-1 0-2-1-2-1z"/>
+ </g>
+ <g fill="#964b36" stroke="#000" stroke-width=".3">
+ <path d="m542 299.8-.3.3.4-.3zm9.3-2.3-.3-.2-.4-.8h-.3l-.7-1.4v-.7s-.2 0-.3-.2v-1.6l-.1-.5-.3-1.1v-1l-.1-1 .1-.9v-5.4l-.1-1-.1-.4v-1.6 2.6l-.2-4.3-3.4-1.6s-.3 6.2-.2 7c0 .9.4 6.7.2 7.4l-.5 4.3s-1.6 1.2-2.2 2.4c-.7 1.3-.5 1.7-.7 1.7l1.5-.2-1.1.8.7.1.2.2.2-.2c.3 0 .5.4.7.3l.4-.2.2-.4h1.1q.5-.2.9-.7.3-.3.7-.3l1 .3q.3 0 .5-.2l.4-.6.8-.1.4.1h.6l.3.2.2-.4z"/>
+ <path d="M544.5 299.7h.6v.2h.2l.3.2h.3l.4.1q.3.1.6-.1t.6.2q.1.2.2 0l.1-.1.3-.1.3-.1.4-.2.4.2h.2l.7-.5h1.4l.2-.3.7.4c.1.1.7.2.6-.2s-.4-.1-.5-.4v-.6l-.3-.4h-.4l-.2-.6-.3.2q-.2 0-.3-.3c-.3-.3-.4.2-.7.1q-.3-.2-.5-.7t-.5-.4q-.2.3 0 .7h-.5q-.2 0-.3.2-.2.7-.7.6h-.4l-.5.2h-.4l-.4-.4a.1.1 0 0 0-.2 0l-.1-.2q-.2 0-.3.3l-.1.5-.3.4-.4.1c-.2 0-.4.3-.4 0-.2-.4.3-1.1-.2-1l-.3.2v.7c-.1.3-.7.8-.6 1 0 .3.4 0 .4 0l.2.4c.2.3.7-.4.7 0m-2.1-2.7v-.2l-.4-.1q-.3.1-.5.4c-.2.4-.2 1-.6 1h-.5v1s-.2 0-.2.2q0 .4.4.2h1l.5-.1q.3 0 .5-.2l.2-.4v-.4l.3-.4c.1-.7-.6-.2-.5-.9"/>
+ </g>
+ <g stroke="#000" stroke-width=".5">
+ <path d="M550.8 277.9q-.1 1.5-1.4 1.6-1.2-.1-1.4-1.6.2-1.5 1.4-1.6 1.3.1 1.4 1.6zm-4.5-2q-.1 1.5-1.4 1.6c-1.3.1-1.4-.7-1.4-1.6q.2-1.6 1.4-1.6c1.2 0 1.4.7 1.4 1.6z"/>
+ <path d="M548.7 276.5q-.1 1.6-1.4 1.6-1.3-.1-1.4-1.6.1-1.5 1.4-1.6 1.3.1 1.4 1.6z"/>
+ <path d="M546.4 278q-.1 1.5-1.4 1.6-1.3-.1-1.4-1.6.1-1.5 1.4-1.6 1.3.1 1.4 1.6z"/>
+ <path d="M548.5 279.3q-.1 1.4-1.4 1.6-1.2-.1-1.4-1.6.2-1.6 1.4-1.7 1.3.1 1.4 1.6z"/>
+ </g>
+ <path fill="#00a651" stroke="#000" stroke-width=".5" d="M549.2 261.5s13.9-19.4 28.8.7c0 0 .1 2-1.3 4.2l-.3-1.7-1 .3-.2-1-1.6-.1.5-2.2-1.7 1.4.2-1.5-2 2 .3-4.3-2.2 3.7.3-2.5-.8 1.1-.4-1.5-.7 1.5-1-.7v1l-1.8-1.5-.6 2-.9-2.2-.2 1.5-.9-1.7-.1 1.9-2.9-1.3.6 1.8-1.3-1 .2 1-1.9-.4.2 1.1-2-.4.3 1-2.7-.3 1 1-.3.6s15-5 16 13.8l-2.7 1.3.8-1.5-.8-.5-2.3-1.7.7-2.4-.8.3-.1-1.4-.4.2-.9-1.3-.2.5-.6-1.7-.7 1.2-.3-2.8-1 1.8-.2-1-.3.6-1.3-1.5-.4 1-.5-.8-.3 1-1.4-1.4v1l-1-.7-.3.5-2.1-1.1-.1 1-1.2-1-.3 1s13.6 7.8 9.4 20.4l-.8 1.6-.2-4.2-1.3 2.2.9-4.9-.9 1-.1-2-1.1 2-.4-2.2-.5.6-.8-3.2-.6 1.3-1-3.6-.8 1.5-.5-3.1-.5 1.9-1.5-2.8-.2 1.1-.9-2.2-.5.7s-2.5-.1-3.3-.7-2.8 3.7-2.8 3.7l.2-2.6-.9 1.8v-1.8l-1.6 5.3-.4-3.8-.8 3.3-.4-1-.3 1.3-.5-.5-.4 1.5-.8-.6v2l-.8-1-.6 3-.4-1.2v1.3l-.6-.7-.6 3-1-1.3v2.2l.3 1.6-1-.5.4 2.6s-3.9-7.2.8-14.2c4.6-7 10.9-9 10.9-9l-.7-.6v-.6l-3.8 1.9v-1.1l-1 .8-.2-1.2-.6 1.1-.1-.5-1 1.4-.4-2-.6 2.4-.6-1.7-1.3 3.5V270l-1 2.8-.4-3-.7 3.4v-3l-1.2 3-.7-3-.5 3-.8-2.3-.7 3.4-1.2-3-.6 4.5-.7-1.8-.2 3.3-.8-2 .8 4.2-1-1.6.3 2.6-1.6-2.9v3.4l-.8-1.1-.4 1.3s-.3-13 8.6-15.6 14.6.8 14.6.8l-3.4-2.8.4-.9h-1.2l.5-1-2.7.1.8-1-2 .3v-.6l-1.3 1 .5-1.2-1.7 1.2-.1-1.7-1 1.4-.4-1.5-4 4 1-4.1-.7.9-.1-1-1.1 1.8-.3-1.2-.5 1.5-.4-1.8-.8 1.8-1-1.6-.3 2.1-.6-1.1-.8 1.6-1-1v1l-2-.9.4 1.5-1.5-1.2-.4 2-.8-1-.7 2.5-.6-2.4-.6 1.9s7.8-20.2 27.6-7c0 0 2.2 2.1 2.7 3.6s.1.2.1.2l-.4-13.9.8 6 .5-2-.1 3 2-4.3s-2.4 7.2-1.5 9.9c0 0 .9-8.4 3.9-9.4l-2.8 6 .9-.1-.6 1.2h.7l-.9 2-.5 1 .5 1z"/>
+ <path d="m547.1 269.6.4.4s1.3-1.4 3.4.4l.3-.4c-2.5-2.1-4-.4-4-.4zm-.6-6.8v.5l.9-.4-.7 1.2 1.5-.5-1.8 2.3.4.3 2.9-3.7-1.8.6.8-1.3-1.6.6.3-1.9h-.5z"/>
+ <path d="m543.9 263 .6 1.3-1-.4 2.9 5.2.4-.5-.6 1.5.5.2 1.2-3.2-.4-.3-1 1.3-1.8-3.1.8.3-.8-1.7 1.1.6v-1.9h-.5v1l-1.8-1.1zm-1.9 6.4.2.5q1.2-.5 2-.2.7.6.7 1l.5-.2s-.2-.9-1-1.2q-.9-.5-2.4.1m2.3 5.4-.5-2.8h.6l.4 2.7zm3.8-.4-.7-2.2.5-.1.7 2zm1.4 1.5-.5-2.1.5-.1.6 2.1z"/>
+ <path fill="#00a651" stroke="#000" stroke-width=".5" d="M442.6 340.2s-2.4-1-3.5-.2c-1 .7-.9 1.9-1.8 1.8 0 0 3.6.8 4.3-.1l1-1.2m.4.7s-1.6 2-1 3.3c.5 1.2 1.7 1.3 1.4 2.2 0 0 1.5-3.3.8-4.3s-1-1.1-1-1.1m-2.8-5.8s-2.5.8-2.8 2c-.2 1.4.6 2.1-.1 2.7 0 0 3.2-1.8 3.1-3v-1.5m1.2.7s1.2-2.3.5-3.4c-.8-1.2-2-1-1.8-2 0 0-1 3.5 0 4.4l1.1 1m-2.2-.9s0-2.6-1-3.2c-1.2-.7-2.2-.1-2.5-1 0 0 .7 3.6 1.8 4l1.5.3m4.4 4.2s2.7-1 3 2-.2 2-.2 2-1.4-3.2-3-3.7z"/>
+ <path d="m443 341.3.2 2.2h.4l-.3-2.2 1-4.9h-.4l-1 4.9z"/>
+ <path d="m440.5 340.6-.1.3c1.3.5 3-1 3.1-1l-.2-.3s-1.7 1.3-2.8 1m3.4-2.9-6-3 .2-.5 6 3z"/>
+ <path d="m439.5 337-.4-.4 1.2-1.2.4.4zm2.1-.6-1.3-2.8.5-.2 1.3 2.8zm1.8 3.4v.6c1.7-.1 2 1 2 1l.6-.2c0-.3-.7-1.5-2.6-1.4"/>
+ <path fill="#fff" stroke="#000" stroke-width=".7" d="M471.2 341c2-1 2.4-5 2.4-5-.5 1.4-4.2 2.9-4.2 2.9 2.7-1.7 6-9.4 6-9.4-.8 2.7-8 5-12.6 7.6s-2.2 10-2.2 10c-1.3-.9-3.8-4.8-4.3-8.3s-1.8-4.9-5-5.3c-3.1-.4-5 3.2-5 3.2l-4.7 2.4 4.8.2s3.4 1.1 3.4 3.8-3 13.3 2 19.3c3.3 4.1 16 6.5 16 6.5"/>
+ <path fill="#fff" stroke="#000" stroke-width=".7" d="M461.9 349.3s1-4.8 4.1-4.6 4-3.6 5.9-4.1c1.9-.6 11.5-3.2 12.5-7.8 0 0-.9 7.6-9.7 11.4 0 0 7.1-2.3 8-3.9 0 0-3.2 6.8-10.9 7.9 0 0 7.2-.6 8.2-2.5 0 0-3.2 4.2-8.5 4.8 0 0 5 2 6.2.3 0 0-2.7 3.2-6 3.4l1 .2s-3.2 3.8-6.7 1.3-3.6.6-3.6.6"/>
+ <path fill="#fff" stroke="#000" stroke-width=".7" d="M469 356.5s4.1 6.8 4.5 10.4c0 0 7.8 8.5 10.7 9 0 0-1.4.6-4-1.5 0 0 2.2 2.2 2.6 2.3s-1.7-.2-2-.8l1.4 1.5-.5-.2s-1-.1-1.6-.5c-.5-.4-.1 1-.1 1s-1.2-.3-1.6-.7.1.9.1.9l-1-.3-.8.5s0 .5-.5 0c-.5-.3-1.4 0-1.4 0s-.6.6-1 .2c-.3-.4-1.5 1.6-1.5 1.6l-5-12.3"/>
+ <path d="m473.9 378.7-6.4-12.2.6-.4 6.4 12.3zm5.6-.8-11-12.3.6-.5 11 12.3zm2.5-1L469.5 365l.5-.5 12.5 11.7z"/>
+ <g transform="translate(-96.9 97.5)scale(.66486)">
+ <path d="M823.4 360.8s-1.2-2.2-2.3-1.3q-1.5 1.1-1.8.9s1 0 1.7-.5q1-1 2.4 1zm-6.6-1 .7 1.4-.8 2.3.6.2.7-2.5-.7-1.6z"/>
+ <path d="M823.2 360.5s-1 1-2.2.8l-1.3-.3h1.8c.7 0 1.6-.3 1.7-.5"/>
+ <path d="M822.9 360.7s-1.2-1.2-2-.8c0 0 1.4-.5 2.2.7z"/>
+ <path d="M822.7 360.5s-1.3.9-2.7 0l-.1-.2h.2s1.7.7 2.6.2"/>
+ <circle cx="821.6" cy="360.3" r=".4"/>
+ </g>
+ <path d="M450 359.6s-.7 1.2-.3 2c.3.7 2 1 2.1 2s.8 1 1.5 1l.9-.3s-3.1-1.6-4-4.3z"/>
+ <g fill="#964b36" stroke="#000" stroke-width=".5">
+ <path stroke-width=".3" d="M549.4 334.8s5.6-7.4 10.6-5.5l8.1 3s.1 4.9-2.5 4.9-5.2-5-7.6-3.5a13 13 0 0 0-4.5 4.2c-.1.7-6.3.8-4.1-3.1z"/>
+ <path d="M528.2 370.4s-1.6 1.6-.9 2 2.1 0 2.1-.6-1-1.6-1.2-1.4z"/>
+ <path d="M527 372s-3-1.7-5.2 2.2c-2.3 3.8-4.1 10.1-5.4 11-1.3.8 12.8-6.2 13-9.2 0 0 .9-3.8-.6-3.7s-1.6.2-1.9-.4z"/>
+ <path stroke-width=".3" d="M527.3 372.4s-3 .7-3.6 4.9-4.7 6.3-5 6.5m49.4-51.6s-4.4 1.6-3.7 4.7"/>
+ </g>
+ <path fill="#fff200" stroke="#000" stroke-width=".3" d="M533.7 341.3s.2-10.6 8.9-10.2c1.6.2.8 2.1.8 2.1s2-1.3 2.8.8c0 0 2.7-1.2 3 1.5 0 0 3-.4 2.6 2 0 0 2-.5 2 1.2 0 0 2.3-.9 2 1.5 0 0 2.6-1.7 2.3 1.4 0 0 2.6-1.9 3.5 1.2 1 3.2-2.6 9.8-6.1 11.5"/>
+ <path d="M557.9 342s1.1 8.2-3.5 11.3l.1.2c4.9-3 3.7-11.5 3.7-11.6h-.3zm-5.7 9 .2.2c3-2.9 3.7-10.6 3.7-11h-.3s-.7 8-3.6 10.8m-2.7-1.9h.3a26 26 0 0 1 4.1-10.3l-.2-.1s-3.8 5.5-4.2 10.4m-2.2-1.4h.3c.5-5.7 4.4-10 4.4-10.1l-.2-.2s-4 4.5-4.5 10.3m-3-2h.3c.3-6.7 4.8-10 4.8-10l-.2-.3s-4.6 3.4-5 10.4zm-2.8-1.6h.3c-.2-6.2 4.5-10 4.6-10l-.2-.2s-5 3.8-4.7 10.2m-5-2.3h.3a10 10 0 0 1 6.8-8.4v-.3a11 11 0 0 0-7.1 8.7"/>
+ <path fill="#00a651" stroke="#000" stroke-width=".3" d="M528.6 354.2s-1.5-9.9 4.4-13c0 0 1.1-.2 1.7 1.2 0 0 3.1-1.3 3.2 1.3 0 0 1.6-1.2 2 .5 0 0 3.3-.7 2.7 1.8 0 0 2.8-.8 2.5 1.6 0 0 2.8-1 2.4 1 0 0 3-.6 2.2 1.8 0 0 3.7-.4 2.6 2.1 0 0 2.7-.7 2 1.4 0 0 3.6.7 2 3a24 24 0 0 1-9.8 7"/>
+ <path fill="#00a651" stroke="#000" stroke-width=".3" d="M525.4 364.1s-2.4-8.2 2.2-10.3c0 0 .9-.2 1 .6 0 0 1-1.3 1.8-.1 0 0 2.3-1.1 2.9.6 0 0 1.5-1.3 2.3.6 0 0 1.5-.6 1.5 1 0 0 2-1 2 1 0 0 2-.8 1.5 1.2 0 0 3 .5 2.1 1.9 0 0 2.7.7 1.7 1.8 0 0 2.8-.3 1.3 1.6 0 0 2.2-.7 1 1.7s-5.2 5-8 5.4"/>
+ <path fill="#00a651" stroke="#000" stroke-width=".3" d="M528.3 370.6s-5.1-5-2.7-6.4c0 0 1 .3 1.5 1.4 0 0 1.2-1.8 2 0 0 0 1.8-.6 1.8.7l1.4 1s1.7-.1 1.4 1c0 0 1.9-.3 1.8.7 0 0 1.6.1 1.5 1.2 0 0 2.8.5 1.5 1.9 0 0-4.8 1-8.3-.4 0 0-1.7-.6-1.9-1.1z"/>
+ <path d="M545.9 362.4v.3a36 36 0 0 0 8.6-8.7l-.3-.2c0 .1-5.4 7.5-8.3 8.6m-1.8-1.3.2.3c2.6-1.5 7.9-8.5 8-8.8l-.1-.2c-.1.1-5.5 7.2-8 8.7zm-1.5-.6.2.2a48 48 0 0 0 7-10.3l-.2-.1s-4.2 7.9-7 10.2m-1.3-1.8h.3c.5-3.8 6-9.9 6-10l-.3-.1c-.2.2-5.5 6.2-6 10.1m-10.9-4.7h.3c-.4-5.5 4.1-11.5 4.2-11.5l-.3-.2s-4.7 6.2-4.2 11.7m2.9.5h.3c-.8-4.4 4.4-10.6 4.4-10.7l-.2-.2c-.2.3-5.3 6.4-4.5 10.9m4.4 1.6h.3c-.2-5 4.6-10 4.7-10l-.2-.3c0 .1-5 5.2-4.8 10.3m-10.5 9h.3c-1.8-4.7 1.2-10.6 1.3-10.6l-.3-.2s-3.1 6.1-1.3 10.9zm2 .4.3-.1c-1.6-4.7 1-11 1-11l-.2-.2s-2.7 6.5-1.1 11.3m8.3 4.7v.2c5-1.7 8.3-6.3 8.3-6.3l-.3-.2s-3.2 4.5-8 6.3m-1-1.1v.3c4-1.8 7.7-6.8 7.7-6.8l-.2-.2s-3.7 5-7.5 6.7m-1-.4.2.3c3-2.3 7-8 7-8l-.2-.2s-4 5.7-7 7.9m-5-2.9h.4a21 21 0 0 1 2.5-10.9l-.3-.1s-3.2 6-2.5 11zm2.2 1.4.2.2c3.2-2.9 4.3-10.6 4.3-11h-.3s-1 8-4.2 10.8m2.2.8.2.3a17 17 0 0 0 5.7-9.5h-.3s-1.2 6-5.6 9.3zm.5-13.4v.9l-3.4 11 .3.1 3.4-11c-.5-5.4 4.2-11.3 4.3-11.3l-.3-.2s-4.3 5.3-4.3 10.5"/>
+ <path d="M539 357.3c0 .2-1.1 7.7-5.2 10.5l.2.3c4.2-2.9 5.2-10.3 5.2-10.7 1.8-2.1 6-9.7 6-9.7l-.2-.2s-4.2 7.6-6 9.8m-12 8.3c0 .1.6 4 1.4 5.2l.3-.1c-.8-1.3-1.5-5.1-1.5-5.2l-.3.1zm1.9 0-.1 5.3h.3v-5.3z"/>
+ <path d="m529 371 .3.1c1.3-2.8 1.7-4.8 1.7-4.8h-.3s-.4 1.9-1.7 4.7m.3.1.2.3a7 7 0 0 0 3-4h-.3s-.6 2.4-2.9 3.7m.5.2v.3c2.4-.2 4-3.1 4-3.3h-.2s-1.6 2.8-3.8 3"/>
+ <path d="M530 371.5v.3c3.9-.3 5.6-2.6 5.6-2.7l-.2-.1s-1.7 2.2-5.4 2.5"/>
+ <path d="M530.3 371.5v.3c.1 0 5 1.1 6.7-1.4l-.3-.2c-1.5 2.4-6.4 1.4-6.4 1.3"/>
+ <path fill="none" stroke="#000" stroke-width="2.8" d="M420.9 193.2v136.4c0 44.6 80.6 71 80.6 71s80.5-26.4 80.5-71V193.2z"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#FFF" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#C8102E" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#FFF" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#C8102E" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/fk.svg b/apps/web/public/flags/fk.svg
new file mode 100644
index 00000000..a0dace83
--- /dev/null
+++ b/apps/web/public/flags/fk.svg
@@ -0,0 +1,90 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-fk" viewBox="0 0 640 480">
+ <defs>
+ <linearGradient xlink:href="#fk-a" id="fk-c" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="matrix(-1.08448 0 0 1.26674 909.5 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-g" x1="851.8" x2="646.2" y1="369.9" y2="369.9" gradientTransform="matrix(.85733 0 0 .9624 -161.5 .3)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-d" x1="458.2" x2="520.5" y1="562.5" y2="552.8" gradientTransform="matrix(-1.01941 0 0 1.3554 909.5 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-e" x1="472.4" x2="445.3" y1="578.7" y2="580.2" gradientTransform="matrix(1.08448 0 0 1.26674 49.7 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-f" x1="518" x2="456.4" y1="553.7" y2="558.1" gradientTransform="matrix(1.01941 0 0 1.3554 49.7 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient id="fk-a">
+ <stop offset="0" stop-color="#a43907"/>
+ <stop offset="1" stop-color="#fff"/>
+ </linearGradient>
+ <linearGradient xlink:href="#fk-a" id="fk-h" x1="388.5" x2="677.4" y1="507.2" y2="508.8" gradientTransform="matrix(.88927 0 0 1.54542 50.4 -413.6)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-i" x1="579.8" x2="556.8" y1="504.9" y2="505.9" gradientTransform="matrix(.91096 0 0 1.52008 49.7 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-j" x1="581.4" x2="558.9" y1="512" y2="514.3" gradientTransform="matrix(-.88927 0 0 1.54542 908.8 -413.6)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-k" x1="552" x2="589.8" y1="517.9" y2="503.9" gradientTransform="matrix(-.91096 0 0 1.52008 909.5 -414.7)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#fk-a" id="fk-b" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="matrix(.85733 0 0 .9624 -162.4 -.6)" gradientUnits="userSpaceOnUse"/>
+ </defs>
+ <path fill="#012169" d="M0 0h640v480H0z"/>
+ <path fill="#012169" fill-rule="evenodd" d="M0 0h400v200H0z"/>
+ <path fill="url(#fk-b)" fill-rule="evenodd" stroke="#fff" stroke-width="10" d="M412.9 308.9a11.3 12.7 0 0 0-1.7 0c-3 .6-7.6 11.3-10 17.6-4.1 5.4-6.2 9.6-7.8 12.7-.7 1.2-1.7 2.6-1.4 4.2-6 1.6-6.3 7.4-6.3 9.6 0 2.5.7 3.7.7 3.7l3.6 7.5v.1c3.8 9 9.4 20.9 12.7 21.8 4.4 1.5 16-3.3 24.8-11.7a140.6 157.8 0 0 0 53.2 12.1c20.4 0 38.7-5.5 53-12.1 8.8 8.4 20.4 13.2 25 11.7 3-1 8.7-13 12.6-21.8l3.5-7.6s.7-1.2.7-3.6c0-2.2-.3-8-6.3-9.6.3-1.6-.6-3-1.3-4.3-1.7-3.2-3.8-7.4-7.7-13-2.6-6.2-7.2-16.7-10-17.2-4.2-.8-13 1.5-13 2.4v.4l-17.7 18.6c0 .5.9 14 4.3 26a126 141.5 0 0 1-43.3 8.2c-17 0-31.5-3.4-43.2-8.3a116.6 130.9 0 0 0 4.3-26L424 311.8v-.4c0-.7-6.8-2.5-11.1-2.5zm4.4 23c2.3 0 4.6 2.2 6.5 4.4l-.1 1.3a67.5 75.7 0 0 1-2.8 10.2 73.6 82.6 0 0 1-12.2-9.9c1.9-2.3 5-5.4 8.2-5.8h.4zm126.6 0h.4c3.3.6 6.3 3.7 8.3 6a73.4 82.4 0 0 1-12.3 10 67.1 75.4 0 0 1-2.8-10.3 14.6 16.4 0 0 1-.2-1.3c2-2.3 4.3-4.3 6.6-4.3zm-142.4 26.4q3.6 3.1 9.1 6.8a10.5 11.8 0 0 1-3.2 1.6q-2.4.5-4.7 0a15 16.8 0 0 1-1-5.6 60.3 67.7 0 0 1-.2-2.8zm158.2 0-.1 2.8a15 17 0 0 1-1 5.5 10.3 11.5 0 0 1-8-1.5q5.6-3.7 9.1-6.8z"/>
+ <path fill="url(#fk-c)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M426.2 339.6s-6.1-11.1-11.1-10.2c-5.1.7-10 7.8-10.2 8.2a44.5 52 0 0 1-7.5-9.5c.3-.4 7.8-20.9 12-21.8 4-.9 12.7 1.5 12.7 2.3z"/>
+ <path fill="url(#fk-d)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M439.8 327.7c0 .8-2.2 30.2-10.9 40.4-8.6 10.3-23 16.6-28.2 15.1-5-1.6-16.5-31.3-16.5-31.3s12.2 14.2 21.3 11.8 14.6-20.1 16.3-28.9c1.7-8.6.3-25.7.3-25.7l17.8 18.6z"/>
+ <path fill="url(#fk-e)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M532.9 339.6s6.2-11.1 11.2-10.2c5 .7 9.8 7.8 10.2 8.2a44.5 52 0 0 0 7.5-9.5c-.4-.4-7.9-20.9-12-21.8s-12.8 1.5-12.8 2.3z"/>
+ <path fill="url(#fk-f)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M519.3 327.7c0 .8 2.2 30.2 10.9 40.4 8.7 10.3 23 16.6 28.2 15.1 5-1.6 16.6-31.3 16.6-31.3s-12.3 14.2-21.4 11.8-14.5-20.1-16.2-28.9c-1.8-8.6-.4-25.7-.4-25.7z"/>
+ <path fill="url(#fk-g)" fill-rule="evenodd" stroke="#000" stroke-width="1.5" d="M401.2 326.2c-4 5.5-6.1 9.8-7.9 13q-2.5 4.7 3.2 14c4.3 6.7 39 33.4 84.1 33.4 45.2 0 79.8-26.6 84-33.4q6-9.4 3.3-14c-1.7-3.2-3.9-7.5-7.9-13 0 8.3-28.7 38.5-79.4 38.5s-79.4-30.2-79.4-38.5z"/>
+ <path fill="url(#fk-h)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="m557.7 378.8 7.8-15.1-3.9-3.2c-1 3.8-5.5 5.1-6.3 10-.7 4.7 3 9.4 2.4 8.3z"/>
+ <path fill="url(#fk-i)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M564.8 374.5s1.4-6.8-3-7.6-6.8 3.8-6.1 2c.6-2 3.2-4 3.7-10.7.3-6.7-.4-10.3-.4-10.3s1.8-8.7 8.8-7.5c7.2 1.3 7.5 7.6 7.5 9.9a9 9 0 0 1-.6 3.5z"/>
+ <path d="m539.2 351.7 1.5 2.8 1-.6-.7-2 .1-.3 1.7-1.2 4.4 8.7v.5l-1 .7.5.8 4.2-3-.4-.8-1 .6h-.3l-4.4-8.8 1.6-1.2h.4l1 1.6 1-.7-1.5-2.8-8 5.7zm-10.5 6.7.4.8.9-.4.3.1 3.9 8.9-.1.4-.8.6.3.8 4.1-2.5-.3-.8-.9.4h-.4l-1.8-4.3 4.3-2.4 1.8 4v.5l-1 .6.4.9 4.2-2.5-.4-.8-.9.4-.3-.2-3.8-8.8v-.4l.8-.6-.3-.8-4.1 2.5.3.8 1-.5.3.2 1.5 3.6-4.2 2.5-1.6-3.7.2-.4.8-.5-.4-.9zm-2.4 7.6.2.8 1.2-.3.4.1.9 3.7-.8.4q-3.9 1.1-5.3-3.7c-.8-3.2.2-5.6 2.5-6.4a3.5 4 0 0 1 1.4-.1l.3.2.8 1.7 1.2-.4-.7-3q-2 0-3.5.6c-3.6 1.3-5.2 4.5-4.3 8.2s3.9 5.4 7.2 4.3a11.3 12.7 0 0 0 3.4-2L530 366l.2-.4.9-.4-.3-.9zm-9.7 10.3 4.7-1.7-.3-.9-1 .2-.3-.1-2.6-9.6.1-.3 1-.5-.2-.8-4.7 1.6.3.9 1-.3.4.2 2.5 9.5-.2.4-1 .4.3.9zm-25.5 4.6 8.3-.8-.3-3.4-1 .1-.2 2-.2.3-3.5.4-.4-4.9 2-.2.3.3.2 1.3h1l-.4-4.4h-1v1.4l-.2.4-2 .1-.4-4.4 3.1-.3.2.2.4 1.7 1.1-.1-.2-3-7.8.8v.9h1l.3.3.7 9.9-.1.3-1 .2v1zm-12.4-12.3v1h1l.2.3.1 9.9-.2.3-.9.2v.8h4.4v-.9h-1l-.2-.4V375h4.4v4.6l-.2.3-.9.1v1h4.4v-1h-1l-.1-.4-.2-10 .2-.3h1v-1h-4.5v1l1 .1.2.3v4l-4.3.1-.2-4 .3-.3h.9v-1zm-9.4-.3v3.3h1l.3-2 .2-.3h1.9v10.2l-.3.4h-1v1h4.6v-.9l-1-.1-.3-.4.1-10h1.8l.3.2.3 2h1v-3.3zM455 378.9l8 .4.2-3.3h-1l-.3 1.9-.2.2-3.5-.1.2-5 1.9.2.2.3.2 1.4h.8l.2-4.3h-.9l-.2 1.2-.2.3h-2l.2-4.6 3 .2.2.2.1 1.7h1.1v-2.9l-7.5-.4v.9l1 .2.1.3-.4 9.9-.2.3h-1v.9zm-18.6-5.4 4.4 1.6.2-.8-1-.5v-.4l2.5-9.5.3-.2 1 .3.2-.8-4.3-1.7-.2.9.9.4.2.4-2.7 9.4-.2.3-1-.3zm-7.6-3.3a8.4 9.4 0 0 0 2.6 1.6c2.4.8 4.3-.2 4.8-2.2a3 3.5 0 0 0-.5-3.2l-1.8-2q-.9-1.2-.6-2.5.5-1.5 2.2-1l1 .7v.3l-.2 2 1 .3.8-2.8a8 9 0 0 0-2.5-1.7c-2-.8-3.8.3-4.4 2.2a3.2 3.5 0 0 0 .4 2.8q.7 1.4 1.5 2 1.3 1.5 1 2.9-.5 1.6-2.4 1a4 4.5 0 0 1-1.2-.8l-.1-.3.4-2.2-1.1-.4zm-9.8-4.6 7.4 4 1.2-3-1-.5-.9 1.7-.3.1-3.1-1.8 1.8-4.3 1.8 1v.3l-.3 1.3.8.5 1.6-4-.8-.4-.7 1.1-.3.2-1.7-1 1.6-4 2.7 1.5.1.3-.4 1.6 1 .5 1-2.6-6.8-3.9-.4.8.8.6.1.4-3.6 9h-.3l-.9-.3zm-1.1-15-3.7-2.9-.5.8.7.7.1.4-4.6 8.2-.4.1-.7-.5-.5.8 3.6 2.8q2 1.5 3.6 1.4 2.5-.3 4-3c1.8-3.4 1.3-6.6-1.6-8.8m-1.6 0 .8.6q3 2.2.5 6.6-2.6 4.5-5.4 2l-.8-.4 5-8.7zm29.3 13-.1.8.9.3.1.4-1.7 9.7-.3.2h-1v.8l4.1 1 .2-.8-1-.4-.1-.3.7-4.1h.3c1.5.4 1.8 1.3 1.8 3.2q0 1.3.8 2.7.4.7 1.4.9a10.1 11.4 0 0 0 1.5.2l.1-.8h-.1q-1.5-.3-1.5-1.8c-.2-1 0-2-.4-3a2.6 2.9 0 0 0-1.3-1.4q2.6 0 3-2.5.6-3.1-2.9-4zm3 1.7.6.2q2.1.6 1.7 2.9-.4 2.6-2.8 1.8l-.5-.1.9-4.8zm54.2 1 .1 1h1l.3.2 1.4 9.8-.2.3-1 .3.2.8 4.5-.8v-1l-1.1.2-.3-.3-.6-4h.3c1.6-.5 2.2.2 3 1.9.3.8.5 1.6 1.5 2.2q.6.4 1.8.3a12 13.6 0 0 0 1.6-.5l-.1-.9h-.2q-1.5.5-2.2-.9-.5-1.3-1.3-2.5-.6-.8-1.8-.8 2.6-1.2 2.3-3.7-.4-3.1-4.2-2.5zm3.5.5h.7q2.4-.6 2.8 1.8t-2.2 3h-.6l-.8-4.8z"/>
+ <path fill="url(#fk-j)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="m401.5 378.8-7.8-15.1 3.9-3.2c1 3.8 5.5 5.1 6.3 10 .7 4.7-3 9.4-2.4 8.3z"/>
+ <path fill="url(#fk-k)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M394.3 374.5s-1.4-6.8 3-7.6 6.8 3.8 6.2 2c-.7-2-3.3-4-3.7-10.7s.3-10.3.3-10.3-1.7-8.7-8.8-7.5c-7.1 1.3-7.5 7.6-7.5 9.9 0 2.2.7 3.5.7 3.5z"/>
+ <path fill="#0072c4" fill-rule="evenodd" stroke="#fff" stroke-width="3.9" d="M480.5 356.1s-82-27-81.4-129.4l.6-135.6H561l.6 134.8c.5 102.4-81.4 130.1-81.4 130.1z"/>
+ <g fill-rule="evenodd">
+ <path fill="#bcbcbc" d="m410.3 123.6 2-2 3.7-2.4c1-.6 3-1.1 3.7-1.6a9.2 10.3 0 0 0 3-2.8c.2-1.7.5-3 .5-5a12 12 0 0 1 3.6-2c1.7-.6 2-1.4 3.8-1.7 1-.4 2.8-.4 4.4-.4s2.7 1.4 4.2 1.6c1.8.8 2.6 1.4 4.1 2.8a8 8 0 0 0 2.6 3c1.1.6 2.2 1.6 3.4 2 1.5.9 2.7 1.4 3.8 2.8 1 .8 1.4 2 2.3 2.7a26.5 29.7 0 0 0 3.4 2.8c1.5 1.1 3 2 5.2 1.7 1.3 0 2.6-.3 4 0q2.7-.1 4.8.5 2.6 0 4.8.4 2.2.3 4.7.3 2.2.6 4.8.4h9.5q2.6 0 4.7.4a37.4 42 0 0 0 4.7-.4q2.6-.1 5-.4h5.8c1.5.5 3.4.8 4.4 1.7 1.4.4 2 1.1 3.4 1.5a11 11 0 0 1 3.4 2.8 18.1 20.3 0 0 1 2.7 4.4c1 1.5 1.3 3.3 2 5.2q.6 2.6.7 5.5.5 2.6.3 5.6-.3 2.8-1 5.5-.1 3-.7 5.2c-.2 1.6-.6 2.7-.7 4.7v5.6c0 1.8-.4 3.2-.6 5.1a52 58.4 0 0 0-2.4 6 10.8 12 0 0 0-2.7 3.2c-.7.5-1.1 1.3-1 1.6 1.4.5 1 1.6 1 3.5l.7 5.2c.1 2 .5 3 1 4.4.6.8.7.4-.7.4q-1.7 1.2-2.3-1.2a8.8 9.9 0 0 1-1.4-4.4q-.3-2.9-1-4.8c-.2-2.2-.7-2.2-2.7-2.4q-1.4-1.2-4-1.1c-2 0-2-.2-2 2v5.6l-1.5 4.3c-1 .8-1.4 2.2-2.7 3.2-.5 1.8-1.4 2-3 2.4l-2-2.8c1-1.8 1.7-2 2.3-4 .8-1.6 1.2-2.6 1.7-4-.7-1.2-1.3-1.8-2-3.5a19.3 21.6 0 0 1-1.7-4.4c-1.1-.4-2.9-.5-3.7-1.2-1.7-.4-2.1 1.7-4 1.7h-4.8c-2.1 0-2.6 1.2-4.4 1.1q-.8.2-3.7 0c-1.5.6-3.2.4-4.8.4q-2.4-.2-4.4-.8-2.2-.8-4.7-1.2c-2 0-2.7.2-4 1.2-1 .7-2.6 2.3-3.7 3.2-.5 1.3-.8 3.5-1.5 5.1-.3 1.7-.9 2.6-1.2 4a13.5 15.1 0 0 0-1 4.8c-.2 2.6-.7 2.3-2.1 1.6l-2-3.6c.2-2 .7-3 .7-5.1-.4-1.7-1.1-1.5-2-.5 0 2.1 0 3.7-.8 4.8a4.4 5 0 0 1-2 3.1 5 5 0 0 1-2.7 2.8q-.2 0 0-1.6c-.8-1.7 0-3.3 0-5.5 0-2-.2-3.3.4-5.1 0-2-.8-3.8-1-5.2-.7-1.5-1.1-2.2-2.8-2.8-1.2-.6-3-1.2-3.7-2.5a7 7.9 0 0 0-3.1-2.7c-1.5-.6-2.3-1.2-3.4-2-1-1.3-1.9-1.8-2.3-3.5-.7-1.2-.8-3.5-1.3-5.2a15.9 17.8 0 0 0-1-4.7 17.8 20 0 0 0-1-4.8l-1.1-5.2q.1-2.9-.4-5.5v-5.6c-.2-1.7-.3-4-.6-5.2 0-2.1-.3-3.3-.8-4.8-.7-1.4-.7-2-2-2.3q-1.3 1.8-4 2c-1.2-.3-3-.6-4.4-1.2-1.4-.4-2.2-1-3.3-1.7a31.7 35.5 0 0 0-2.1-3c-.2-2.1-.6-3.2-.7-5.3 0-1.5 0-.6 1.4-2.7"/>
+ <path fill="#fefefe" d="m430.3 138 .3-.4c-.6.7-.4.3 1-.3.6-.4 2-1.4 2.5-2 .6-.3 1.7-.7 2.2-1.3q.9-1.2 2.2-2.2c.9-1 1.7-1.3 2.8-2 1.3-.2 1.9-.8 3.1-.3 1.2.3 1.7.3 2.6-.9q1.7-.9 2.5-2.4v-1.8c0 1.8-.4 2.5-1.5 3-.7 1.1-1.8 2.2-2.2 3.2-.7 1.2-.9 1.9-1.6 2.5-.7.9-1.7 1.4-2 2.8.4.7 0 1 .8 1.1.7.7 1.4.4 2.4 0a10.4 11.7 0 0 0 1.9-3.3l1.7-2.9q1.2-.7 1.6-2.2 1.5-1 2.5-2c.7-.4 1-.9 2-1.1a4.4 5 0 0 1-.7 3.1c-.2 1.6-.1 2.3.3 3.3.7.6.6 1 1 2 .4-1 .6-2.7.7-3.9v-.2c0 1.1 0 2.8-.3 3.6 0 1.6.4 2.4.8 3.6q.5 1 1.1 1.4c0-1.6.5-2.6.6-4.1l.4 3.9q.1 1.9 1 3.3c.5.4.7 1.5.9.6.6-2 .6-4 1-6.2 0-1 0-2.6.5-3.3l-.6 3.3c.1-1 .2-2.5.6-3.3v-.4a28.6 32 0 0 1 .5 4.6q-.1 1.8.2 3.6 1-.7 1.7-2.5a13.3 15 0 0 1 1.9-3.1l-2 3a13.3 15 0 0 1 2-3v-.2a29.5 33.1 0 0 0-.2 3.8q0 2.2.2 3.7c.3 1.5.6 1.7.7 3.3q-.1 1.4.2 2c1 .3 1-.3 1.2-2l.5-4.7c0-2.1.2.3.5 1a9.5 10.7 0 0 1 .7 3.8q0 1.3.2 2c1-.5 1.3-1.7 2-2.3.4-1.4 1-2 1.4-2.8 1.2-.3 1.2-.9 1.2-2.5q-.2-2.2.3-4a30 33.7 0 0 0 .9-3.7c.4-.2.9.5 1.2 1.2q.6 1.4.4 3.6a14 14 0 0 0 1.3 3.4 11 12.3 0 0 0 1.6 2.8c.3.9.3 2.5.3 3.7 1-1.2 1-3 1.1-4.8-.1-1.2-.1-2.8-.4-4q-.1-1.9-.5-3.3-1.2-.4-.2-2c.7-.7 1.6-.4 2.8-.2.7.7.9 1.1 1 2.8q-.1 2.2.5 3.6c.4.8.9 1.4 1.2 2.8.3.4.6 1 1.1.3.3-.8.5-2.4.8-3.4q.3-1.5 1.1-2c0 1.6 0 2.5.6 3.7l1.1 3.1c.5.4.6 1.3 1.3 1.7l.2-4.5v-4q.1-1.6.7-3c.8 1.1.8 1.5.8 3 .7-.3.8-1 1.1-1.9.5-.6.8-.8 1 .6q.2 2.2.7 4.2c.5.6 1 2.2 1.6 2.8a12 13.5 0 0 0 1.5 2.3c.4.8.4 1.4 1.5 1.6q0-2.9-.3-5.6c0-1.6-.3-2.2-.5-3.7-.4-.9-.6-2.4-.5-2.8a8 9 0 0 1 2.2 3.4l1.5 3.7a14.7 16.5 0 0 1 1.8 2.8c.9.8 1.3 1.7 2.2 2.5.4.5 1.5.8 1.7.5q0-2.3-.7-4.4a6.6 7.4 0 0 0-.8-3.4c-1-.9-1.7-1.5-2.2-2.8-.3-.4-.3-.6-.4-1.4a19.3 21.6 0 0 1 3.4 3.9 5.1 5.8 0 0 0 1.9 2c.4.6 1.8 1.4 2.8 1.6a4.1 4.6 0 0 0 2.4 1.7l-2.4-1.6a4.1 4.6 0 0 0 2.4 1.6v.4a9.5 10.7 0 0 0-1.4-4.6 6.4 7.2 0 0 0-2.2-3 6.8 7.6 0 0 0-2.4-2.5c-.6-.9-1.6-2.4-2.2-2.8 1.1-.9 2.3.4 3.4 1 1 1.2 1.8 2.7 2.4 3.4a13.2 14.8 0 0 0 2.2 3.7q1.4 1 2.6 2.2c1.4.4.9-.1.5-1.4q-.6-2.2 1-.6.9 1 2.4 2 .6 1 1.6.6c.3-.4.3-.4.3-.8q-.6-2.8-2.2-3.7-1-1.3-2.2-2.5c-.5-.8-1-1.3-1.4-2.3l1.4 2.2c-.5-.8-1-1.2-1.4-2.2h-.2c1.4 0 2 .5 3 1.2a5 5.6 0 0 1 2.2 2q.9.9 1.7 2.1l2.4 2c.8 1.2 1 2 1 3.6.4.9.5 2.5.7 3.4-.2 1.6-.7.3-.8-.6-.1-1.2-.6-1.1-1.4-.8 0 1.7.2 2.2.7 3.4a5.9 6.6 0 0 1-.9 2.8c-.6.4-.7-.8-1.2-1.4 0-1.7-.5-2-1.5-2.8v1.1q1 1.7 1.2 3.9a8.8 9.9 0 0 1 .6 3.7q0 2-.3 4c0 1.4-.3 2-.3 3.6v7.9a17 19.2 0 0 0-.2 3.6l.2-3.6q-.2 1.5-.2 3.6v.2l-1.2-4a7.5 8.5 0 0 1-1.6-3l-.5-3.6c-.4-1-.8-2-1.5-1.4-.3 2 0 3.3.7 5.3.4 1.3.4 2.5.8 3.7.5 1.5 1 1.6 0 3.3-.6 1-.8 1.2-1 2.3-.9.5-1.1.8-1.2 2l-1.4-3.7q-.8-2.2-1.2-4c-.6-.9-1.3-2.4-2-3l-1.8-3.3c-1-1.3-1.2-2-2-2.6-.1-.5-.4-1.3-1-.8q0 2 .3 3.9c.3 1.6.7 2.5.8 4.2v3q-1-2.3-1.7-4.4c-.6-.9-1.1-2.5-1.7-3q-.5-1.7-1.2-2.9c-.1-.8-.5-.8-.8-1.4 0 1.6.5 2.2.8 3.3.5 1.2.6 2.9.5 3.5q-.8-3-2-6l-1.8-3.7c-.8-.9-1.5-1-2.2-1.6a4.3 4.9 0 0 1-1.7-1.4q.4 2.1 1 3.6l.9 3.7c-.2 2-.6-.5-1-1.4-.2-1.6-.7-2.4-1.1-3.3l-2-2c-.7-.3-.4 0-.4 1q-.1 2.6.5 4 .6 1.2.5 3.4c-.1 1.4-.3 2.4-.3 4v2.1c-.5-1.1-1-1.9-1.5-3.3q-.9-1.8-1.6-3.7c-.5-.2-1.5-.4-2 0 .2 1.4.7 2 .8 3.7-1 1-.8 1.4-1.4-.3-.6-1.3-1.2-1.2-2-2-1.2-.1-.8-1-1.1-2.3q0-1.5-.3-3c-1.3 0-2 0-2.9.8-.3.8-.2 2.5 0 3.7v3.9c-.3 1-.7 1-1 2.3-.4 1.1-.5 2.5-.9 3.3-.9.9-.5 1-1-.5v-9c0-1.5.3-2.3.3-3.7-.5-1.1-.6-1.4-2.2-1.4a6 6 0 0 0 0 2.8q0 2.2.3 3.7l.2 3.6q0 2.3-1 3.3c-.8.4 0 1-.9 1.3a11 12.3 0 0 1-2.6-2q-1.3-.5-3.1-.6c-1.6 0-1.6-.2-2.2-1.6a23 25.8 0 0 1-1-4.6c-.5-1.3-.6-2.2-1-3.7a4.5 5.1 0 0 0-1.4-2c-.3 1.6-.6 2.7-.6 4.3-.3.7-.4 2.4-.6 3-.4-.7-.6-2.4-1-3.5-.3-1.7-.7-2.8-2.3-2.2-1.6 0-1.6 0-1.6 2l1.9 3.2v4c0 1.6 0 2.1-1 2.4q-.6-2.5-2.2-4.7c0-1.1-.4-.8-1.4-.8q-1-.1-1.7.3v2.4q-.6.3-1.1-.5c-.5.9-.2 2 0 3a10 10 0 0 1-1.2 3.2c-.2-.4-.4-.2 0-.2l-4.4-1.7c-.7 0-1.4 1-1.8 1.7-1.3.4-1.8.8-3.2.8l-3 .2q-1.4.4-3.2.4c-.6-.3-1.8-.3-2.1-.6.5-.8 1-1.2 1.4-2.5a14.7 16.5 0 0 0 2-2l1.8-2.3c.4-1.4 1-1.6 1.7-2.2 1.5 0 1.7.6 3.1.8 1.4.6 2.2.9 3-.3 1-.5 2-1.4 3.2-1.6l2.4-1.7c1-.7 1.5-1.5 2.4-2.3.3-1.1 1-2 .7-3.3q-1.8-.7-3 .5c-.9 1-1 1.4-2.3 2.2-1 .4-1.4.9-2.6 1.2-1 .4-2.2.2-3.3.2s-2.5 0-3.1.4q1.6-1.4 3.3-2c1-.7 1.4-1 2.7-1.2.6-.8 1.1-.8 1.4-2.2.4-1.6-1-1.1-2-.5-.9.2-2 1-2.8 1.3a10.5 11.8 0 0 1-3 .6c-.4-.5.1-.9.4-1.6 1-.5 1.3-.7 1.4-2-1.3.2-1.7.7-2.9.8a18 18 0 0 1-3.8.6h-3.3c-1.2 0-1.8-.3-3.2-.3-1-.6-1-.8-1-2.5.8-1 1.5-.8 3-.8l2.6-1.5q1.4-.3 1.2-1h-3.3c-1.4-.7 0-1 .7-1.5 1 0 2.3 0 3 .5 1.5 0 2-.5 3.1-1.6 1-.8 1.5-1.4 2.5-2l1.9-2.2q1.5-1.4 2.2-2.6 1-.5.7-1.4c-1.5.2-2.2.9-3.2 1.7a7.3 8.2 0 0 1-1.9 1.6 6 6.7 0 0 1-3.1 1.3q-1.7-.1-3.3-.4c-1.3-.1-.2-.5.2-1.1q1-.6.5-2-1.6-.3-3.3-.2h-3.4c-1.3 0-1.8-.4-2.7-.9-.2-.8 0-.5 1-.5a13.2 14.8 0 0 0 3.1-.6c1.1-.3 1.3-.8 1.5-2.2q-2 0-3.1-.3zm-20.7-6.5c-.2-2-.7-3.1-.7-5.2 0-1.5 0-.6 1.4-2.7l2-2 3.7-2.4c1-.6 3-1.1 3.7-1.6a9.2 10.3 0 0 0 3-2.8c.2-1.7.4-3 .4-5q2-1.5 3.7-2c1.7-.6 2-1.4 3.8-1.7 1-.4 2.8-.4 4.4-.4s2.7 1.4 4.2 1.6c1.8.8 2.6 1.4 4 2.8.8 1.2 1.4 2.2 2.7 3 1.1.6 2.2 1.6 3.4 2 0 1.4.3 1.2-.6 1.2-.1 1.5-.4 1.3-1.7 1.4a5.9 6.6 0 0 1-2.2-2.3c.6-1.4.3 1.2 0 1.7-.5.6-.9 1.2-1.6.6-.4-1.4-.7-2.3-.7-4-.2-1.7-.7-.5-1 .3-.3 1.5-.2 2 .3 3.1q-1.9 0-3.1-.3-1.4-.4-3 .6c-1.2.9-.7.9-.2 2q1.6.6 3 1.6l3.3-.8c1.1-.5 2.2-.2 3.3 0l1.7.8q0 1.5-.3 2.3c-.4.4-1 1.4-1.7 1.6a11.8 13.2 0 0 1-3.2 1.5c-1.5 0-2.1.4-3.2 1-.1 1.6-.5 1.9-1.7 2.4a7.5 8.5 0 0 1-3.3.8q-1.1 0-1.7-.3a9.4 10.5 0 0 0 2-3.3c.2-.7.6-1 .2-1.5-1.4 0-1.8 0-2 1.6s-.6 1.9-1.6 2.4l.7-3.7a18.3 20.6 0 0 1-3 .3c-.8.5-1.1.7-.8 1.6q-1.6.5-3.4 0c-1 0-.4-.5-1.2-1q-.6-1.5-2.2-1.4c-.5.8-1.4 1-2 1.6q-1.5.4-2.7-.5c-1.2 0-1 .4-.7 1.4.5.3 0 .7.7.8.7.7 1.3.9 2.6.9q1.5-.4 3.4-.3c1.2 0 1 .3 1 1.6-.8.7-2 .6-3.2.6a12.2 13.7 0 0 1-2.9-.8c-1 0-2-.3-2.8 0-.4.5-1.5.7-.2.8.5.6 3.3.3 3.4 1.3.7.8.5 1.9-.6 1.9a1.6 1.8 0 0 0-1.7 0l-3.1.1c1.8.2-1.3-2.2-2-3.2"/>
+ <path fill="#bcbcbc" d="m417.1 122.2-1.4 1-2.9 2.3c-.5.5-.5.8-1.1.8 1-.1 1.6-.5 2.6-1q2-.2 3-1.2c.7-.2 0-1.3-.2-2zm11-13.2c.2 0 .5.8 1 1.4q.6 1.4.7 3 .6-1.8 1-3.9c-.4-.8-.4-1-1.5-1.1 0 .8.2.2-1.2.6"/>
+ <path fill="#c4c4c2" stroke="#000" stroke-width=".9" d="M349.4 417.7c-.5 0 .8-.5 1.3-.6q.4-1.1 1.3-1.8 1.6 0 2.2 1.1c1 .3 1.3.7 2.4.9.5.4 1 .4 0 .7q-1 .4-2.6.4a7 7 0 0 0-2.6.7c-1.5 0-1.3 0-2-1.4z" transform="matrix(1.08448 0 0 1.26674 42.6 -410.2)"/>
+ <path fill="#bcbcbc" d="M432.5 109.2v.3q0-1.2.2 1.2a6.6 7.4 0 0 1 .5 3.3 5 5.5 0 0 0 1.5-2.5c0-2.2-.4-2.1-2.2-2.3m8.8 32.3h.3c-.8 0-.3 0 .9-.8.8-.6 1.5-1.6 2.6-2a9.5 10.7 0 0 1 3.1-2c.6-.3 1.1-.8 1.7-.2q0 1.9-1.5 2.5-.9 1.2-2 1.6c-.8.5-1.7.5-2 1.5-1.3.7-1.5.5-3-.6zm4.6 8.2c.3-.4 1.9-2.2 2.6-2.8a11 12.3 0 0 1 2.4-2.8l2.2-3.1 1.9-2.8c0 1.2-.2 2.8.2 3.6a5.1 5.8 0 0 1-.8 3.4q-.6 1.4-2.2 2.3c-1 .6-1.6.8-2.5 1.6a19 21.4 0 0 1-2.2 1.4c-.7.3-.4.3-1.6-.8m-7.5 6.4h.3c-.7 0-.4 0 1-.8q1.3-1.6 3-2.2a7.5 8.5 0 0 0 3-.9c.5-.1 1-.5 1.3 0 .8 1.2 1 1.5-.2 2.3a6.9 7.7 0 0 1-2.4 1.4c-.6.5-1.8.5-3 .8-.8 0-1.4.1-1.8-.6l2 .6c-1 0-1.5.1-3.2-.6m10.3 0v-.2q-.1 1.2.5-1.2c1-1.6 1.2-2.5 2.4-2.8.5-.8 1.5-1 2.6-1.4.5.8.1 1.8 0 2.8q-.6 1.5-1.7 2.6c-.7.5-1 1.1-2.2 1.4-.8 0-.3 0-1.6-1.2"/>
+ <path d="M425.3 119.7q0 1.2-1.2 1.4c-1.2.2-1.2-.7-1.2-1.4q.2-1.3 1.2-1.4 1.1 0 1.2 1.4"/>
+ </g>
+ <g fill="#005120" fill-rule="evenodd" stroke="#002b0d" stroke-width="1pt">
+ <path d="M351.8 479.6h.9c-2.8 0-1.1-.2 3.5 3.5 2-1.6 2-1.8 3.5 1 1 1.5 1.2-.2 2.7-1.8.7 3.2 1.1 6.5 3.5 3.5 2.8 0 5.6-.2 7.1.9 1.8 3.3 1.2-.6 2.6.9 4 .4 3.9-3.4 8.1-4.4 2.6 3.3 3.8.8 7-.8 2.5.6 4.8 4.3 5.3.7 2-3.2 2.1-3 3.5 0 2 1.8 2.8-.8 4.4-1.7q4.3 2.5 10.6.9c.8 2.9 2.6 1.6 4.5.8 3.9 1.7 5.2 2.2 9.7 0 2.2-2.6 1 .1 2.6 1.8 3.3-1 2.4-1.2 6.2-.9 3.9 0 4.2 0 5.3-2.6 2 1.9 2.6 3.3 5.3.9 4.2 0 2.9.5 5.3-1 1.9 4 2.3 1.2 4.5 2.7a15 15 0 0 1-6.2 7c-1.7 3-2.8 6-6.2 7.2-2.5 2.5-5.2 4-8 6.2-3.8 1-8 .8-12.3.8H388c-2.6 1.4-7 2-10.6 2.7-4 0-8.7 0-11.5-.9-1.9-1.9-5.2-4-7-6.2-2-1.5-2-4.4-3.6-6.2-1.4-2.5-2-6.5-3.5-8.8z" transform="matrix(1.08448 0 0 1.26674 47.3 -411.4)"/>
+ <path d="M437.5 487.6v.8c0-2.4.1-1.1-1.8 3.6-.3 1.1-1.2 1.4-2.6 1.8m-3.5-2.7h.9c-3.3 3-5.5 4.5-6.2 8l6.2-8c-3.3 3-5.5 4.5-6.2 8m-7.1-12.4s-.1 3.1-.9 4.4m-2.6 1.8v.8zm-7.1-5.3h.9-1c.4 0 .7 0 0 0zm-49.5 0c.4 0 2.2 2.8 4.4 4.4-.5 2.6-1.4 5.6 0 8m2.7-7.1c.4 0 2.1 2.8 4.4 4.4l-4.4-4.4c.4 0 2.1 2.8 4.4 4.4v.9c0-2.8-.2-5.6.9-7.1 1 1.7 2.2 4.3 2.6 1.8 5-.2 7.4-1.6 10.6-2.7 0 1.3-.2.7 1 1.8m60-3.6h.9c-1.7 1.4-3 4.3-4.4 6.2m-32.7-8.8h7" transform="matrix(1.08448 0 0 1.26674 47.3 -411.4)"/>
+ </g>
+ <path fill="#fff" fill-rule="evenodd" d="M425.9 214.3c-11.5 0-15.4 13.5-26.9 13.5h-.6v.8q0 14 1.8 26.2c10.6-.8 14.5-13.4 25.7-13.4 11.5 0 15.3 13.4 26.8 13.4s15.4-13.4 26.9-13.4 15.4 13.4 26.9 13.4 15.3-13.4 26.8-13.4c11 0 15 12.5 25.6 13.4a139 156.1 0 0 0 1.9-27h-.7c-11.5 0-15.3-13.4-26.8-13.4s-15.4 13.5-26.8 13.5-15.4-13.5-27-13.5c-11.4 0-15.3 13.5-26.8 13.5s-15.3-13.5-26.8-13.5zm0 52.7c-9 0-13.2 8.2-20.2 11.8a111 124.5 0 0 0 8.6 20.5c3.3-2.8 6.7-5.2 11.6-5.2 11.5 0 15.3 13.5 26.8 13.5s15.4-13.5 26.9-13.5 15.4 13.5 26.8 13.5 15.4-13.5 26.9-13.5a18.3 20.6 0 0 1 11.3 5 112 125.7 0 0 0 8.6-20.4c-6.7-3.7-11-11.7-20-11.7-11.4 0-15.3 13.5-26.8 13.5S491 267 479.6 267s-15.4 13.5-26.9 13.5-15.3-13.5-26.8-13.5m53.7 52.7c-11.5 0-15.4 13.5-26.9 13.5-10.9 0-14.9-12-25-13.4a132 132 0 0 0 39.3 33c3.6-3.2 7.3 3.6 12.5 3.6s9-6.9 12.5-3.8a129.1 145 0 0 0 39-32.7c-9.8 1.7-14 13.3-24.6 13.3-11.5 0-15.3-13.5-26.8-13.5"/>
+ <g transform="matrix(.86465 0 0 .97062 -175.4 2.5)">
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M332.5 541.4a110 110 0 0 1 10.5-3l16.3 15.7-13.4 2.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".6" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3 6.7-31.1m-4.4 31.2 5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(1.06 0 0 1.03 276.8 -178)"/>
+ <path fill="none" stroke="#512007" stroke-width=".4" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1 6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(-1.25 0 0 1.76 1290.4 -502)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1 6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(-1.25 0 0 1.3 1321.3 -302)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="m395.3 572.2.9-73s2.6-.3 2.6 0-.3 72.7-.6 73-3.2.5-2.9 0zm28.5-69.8-.6 61.3-2 2.4.6-63.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 560.2s3 30 36.4 29.1 42.7-30.2 42.7-30.2l-14.5-.6c-.3 0-11.6 14-26.2 13.7s-19.2-3.8-22.4-6.7-6-7.3-6-7.3l-17-6.7 1 6.4zm90.3-3-1-4v-3.4l1.6-3.6s-25.3 3.7-25.3 4l-.1 6.8 24.8.1z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="m448.5 549.8-.6 6h4.1l-.3-6zm-4.3.3-.3 6.4 2.6-.3.3-6.1zm-4.4 6.4v-5l2.6-.9.3 5zm-5-.3.6-4.4 3 .3.2 4.7zm-5.5 0 .3-3.8 3-.3v4.4zm-67.4 3.7c.9 0 7.6 1.5 7.6 1.5l7 9.3" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M366.8 561.1c.3.3 6.1 19.8 34 19.8s34.6-22.1 34.6-22.1" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M439.8 559.4s-13.4 29-39 27c-25.5-2-29.6-11.6-31.6-16.6s-3.2-9-3.2-9" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M373.2 558.2c.3-1.7.3-54.4.3-54.4l-1.7-.2-.3 53.7 1.7 1zm-41.5-17.1 22 10.7-.5 1.5S332 543.3 332 543s.2-1.5-.3-2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M341.8 537.9c0 .8 3.2 18.6 3.2 18.6s2 .3 2 0l-3.4-18.3zm20.4.5c1.1 0 21-3.2 21-3.2l-.4 3.2-19.5 2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M365 514.3c.7 0 7 3.2 9.7 2.4s.9-3 1.4-3c.6 0 2.6 1.5 3.8.3s2-4.6 1.5-4.3-16 5.8-16.3 4.6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M362.5 521.6c1.1.3 23.8-6.1 23.8-6.1s0 2-.3 2l-23.5 6.1z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M415 512.6s1.5 3.5 3 2.9 2.9-1.8 2.9-1.8 1.2 3 3.2 2.4 3.2-3.8 3.2-3.8 2 .6 2.9.3 2-5 2-5zm-1.7 28.2c-.3.6 1.5 2 3 2s2-2 2.3-1.4c.3.5.3 3.2 4 2.3s3.8-3.5 3.8-3.5-1.1.9 1.5 1.2 5.2-3.8 5-3.8c-.4 0-19 3.5-19.6 3.2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363.4 513.1a5 5 0 0 0 .2 2.7l19-6.4s.8-1.5 0-1.5-19.5 5.8-19.3 5.3zm25-4c.5 0 19.4-6.1 19.4-6.1s.3 2.6 0 2.6l-17.7 5.2-1.8-1.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M413.3 521.9s-2.9 3.2-2 7.5c.9 4.4 2 8.2 2.3 8.2s3.5-5.8 7-6.1 9.9 3.2 9.9 3.2-.9-7-.6-10.2 5.2-8.7 5.2-8.7l-21.8 6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M386.9 516.6s-.6 2.7-.3 2.7l24.7-6.4V511l-24.4 5.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#b6b6b4" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M355.5 551.8s-5.8-.8-5.5.6c.3 1.5 2.9 2.9 3.2 3.8s-.9 4 .9 3.8c1.7-.3 3.4-1.5 3.4-2.4l-.3-5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M387.8 537.3v2l20.9-2.9-.6-1.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 540.8c.4 0 0 2.6 2.4 2 2.3-.6 2.9-2 2.9-2s.6 3.2 3.8 2.9 5-3.8 5-3.8.2 2.6 2.2 1.7 2.6-2.9 2.6-2.9l-18.3 2.6zm0-17.2s-2.6.9-1.7 6.1 3 8.2 3.2 8.2 2.6-5 6.1-5.8c3.5-1 9.6 2.6 9.6 2.6s-.6-4.7.3-9a18 18 0 0 1 3.8-7.6s-20.4 5.5-21.2 5.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="m411.9 538.7.3 1.8s21-2.6 21-3c0-.2 0-2-.4-2-.3 0-20.6 3.5-21 3.2zm-.3-18.6.3 2 24.7-6.6s.6-1.8.3-1.8-24.7 7.3-25.3 6.4z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M414.2 510.8s-.3 1.8 0 1.8 18.3-4.4 18.3-4.7 1.8-2 .3-1.7c-1.4.3-18 5.5-18.6 4.6zm38.7 33.7-18-28.4m-2.4 19.7c.3-.8 1.2-18.3 1.2-18.3" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M389 510c1 .2 3.1 3.2 4.3 2.6s2.9-2.4 2.9-2.4-.3 3.5 2 3c2.4-.6 2.7-3 2.7-3s1.7 1 3.2 0c1.4-.8 2.8-5.2 2.3-5.2s-16.9 5.2-17.5 5zm-.6 8.4c0 .6-3 5.2-2 9.6s2.5 8.4 2.8 8.4 4.7-4.6 8.5-5.5 9.3 2.9 9 2.9-1.5-4.4-1.5-7.6 4.4-13 4.4-13zm0 21c0 .2.8 2.2 2.9 2.2s2.3-2 2.3-2-.3 3.5 2.9 3.2 4.3-3.5 4.3-3.5.3 1.8 3 .9c2.6-.9 6-3.8 5.8-3.8s-21 3.8-21.3 3z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <use xlink:href="#fk-l" width="992.1" height="496.1" transform="translate(-6.6 7.3)"/>
+ <use xlink:href="#fk-l" width="992.1" height="496.1" transform="translate(6.6 3.8)"/>
+ <use xlink:href="#fk-l" width="992.1" height="496.1" transform="translate(0 11)"/>
+ <path id="fk-l" fill="#be0f17" fill-rule="evenodd" stroke="#512007" stroke-width=".6" d="M409 477a1.9 1.9 0 1 1-3.8 0 1.9 1.9 0 0 1 3.8 0z" transform="matrix(.04 -1.07 1.02 .04 251.6 668)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M398.2 500c0-.2 9 3.8 9 4.1s32 42.8 32.3 42.8m-16-42.8 8.2 3.5 2.6 6.4m-61.4-10.4c-.3 0 9 7 9 7l1.2 5.7M341.3 546c4-1.7 32.2-26.4 32.2-26.4m-39.8 21.7 31.7-26.7m21.2 4 30 49.8m-3.6-29.2s3.5 11.7 7 13.5a86 86 0 0 1 7.6 4.6" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M412.6 539.5s2.5 13.8 6 16.4 7 5.5 7 5.5" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M391 439s3.4 19.2 10.4 23.6l12.8 8.1" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M390.7 438.7s7.5 15.2 14 19.8c6.3 4.7 15 9 15 9M366.3 440c2 3.5 1.7 10.2 4 12.5a66 66 0 0 1 5.8 7.6m-9.3-19.9c1.2 1.7 4.4 10.4 6.4 13 1.5 2.4 16.3 17.2 16.3 17.2" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+ <path fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M384.6 471.1a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0zm10.7 4.7a1.9 1.9 0 1 1-3.8 0 1.9 1.9 0 0 1 3.8 0zM409 477a1.9 1.9 0 1 1-3.8 0 1.9 1.9 0 0 1 3.8 0zm11.9-4.5q-.1 1.6-1.6 1.7-1.5-.2-1.6-1.7c0-.9.7-1.8 1.6-1.8q1.5.1 1.6 1.8zm9.6-5.7q-.2 1.5-1.9 1.6c-1 0-1.9-.7-1.9-1.6s.9-1.6 1.9-1.6q1.7.1 1.9 1.6z" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+ <path fill="red" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M374.1 404.4c-.9.6-15.4 4.1-13.4 3.8s13.7 3 13.4 2 0-5.2 0-5.8zm24.7-4.3c-.6 0-9 3.2-8.7 3.2s9.6 2.6 9.3 2-.3-4.4-.6-5.2zm25.3 2.9c-.6.3-10.5 2.6-8.7 2.9s8.4 2.6 8.4 2c0-.5 0-4.6.3-5z" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1 6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3 6.7-31.1m-4.4 31.2 5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(1.25 0 0 1.36 225.3 -323.4)"/>
+ <path fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1 6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 0 1 4.4-1.2m-3.8-3.2 4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7 3.2.5" transform="matrix(-1.25 0 0 1.32 1259.2 -307.3)"/>
+ <path fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="m426.4 558.5 27.6.6.3-2-28.5-.3zm1.2-7.3c3.2 0 27.3-4.6 27.3-4.6s.9-3 0-3-27.3 5.6-27.3 5.6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+ <use xlink:href="#fk-l" width="992.1" height="496.1" transform="translate(0 5.5)"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#FFF" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#C8102E" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#FFF" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#C8102E" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/fm.svg b/apps/web/public/flags/fm.svg
new file mode 100644
index 00000000..c1b7c977
--- /dev/null
+++ b/apps/web/public/flags/fm.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fm" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="fm-a">
+ <path fill-opacity=".7" d="M-81.3 0h682.6v512H-81.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#fm-a)" transform="translate(76.3)scale(.94)">
+ <path fill="#6797d6" d="M-252 0H772v512H-252z"/>
+ <path fill="#fff" d="m259.8 123-32.4 22.2 12.4-35.9-32.5-22.2h40.1l12.4-35.9 12.4 36h40l-32.4 22.1 12.4 35.9M259.8 390l-32.4-22.2 12.4 36-32.5 22.1h40.1l12.4 35.9 12.4-36 40 .1-32.4-22.2 12.4-35.9m-188.4-92.4L79.3 306l1.4-38-37.5-11.7 38.4-11.7 1.3-38 22.3 30.8 38.4-11.8-24.6 30.7 22.4 30.7m274.2-11.7 24.6 30.7-1.4-38 37.5-11.7-38.4-11.7-1.3-38-22.3 30.8-38.4-11.8 24.6 30.7-22.4 30.7"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/fo.svg b/apps/web/public/flags/fo.svg
new file mode 100644
index 00000000..f802d285
--- /dev/null
+++ b/apps/web/public/flags/fo.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fo" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="fo-a">
+ <path fill-opacity=".7" d="M-78 32h640v480H-78z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="0" clip-path="url(#fo-a)" transform="translate(78 -32)">
+ <path fill="#fff" d="M-78 32h663.9v480H-78z"/>
+ <path fill="#003897" d="M-76 218.7h185.9V32H216v186.7h371.8v106.6H216V512H109.9V325.3h-186z"/>
+ <path fill="#d72828" d="M-76 245.3h212.4V32h53.1v213.3H588v53.4H189.5V512h-53V298.7H-76z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/fr.svg b/apps/web/public/flags/fr.svg
new file mode 100644
index 00000000..4110e59e
--- /dev/null
+++ b/apps/web/public/flags/fr.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fr" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/ga.svg b/apps/web/public/flags/ga.svg
new file mode 100644
index 00000000..76edab42
--- /dev/null
+++ b/apps/web/public/flags/ga.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ga" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#ffe700" d="M640 480H0V0h640z"/>
+ <path fill="#36a100" d="M640 160H0V0h640z"/>
+ <path fill="#006dbc" d="M640 480H0V320h640z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gb-eng.svg b/apps/web/public/flags/gb-eng.svg
new file mode 100644
index 00000000..12e3b67d
--- /dev/null
+++ b/apps/web/public/flags/gb-eng.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb-eng" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#ce1124" d="M281.6 0h76.8v480h-76.8z"/>
+ <path fill="#ce1124" d="M0 201.6h640v76.8H0z"/>
+</svg>
diff --git a/apps/web/public/flags/gb-nir.svg b/apps/web/public/flags/gb-nir.svg
new file mode 100644
index 00000000..e22190aa
--- /dev/null
+++ b/apps/web/public/flags/gb-nir.svg
@@ -0,0 +1,132 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gb-nir" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <rect fill="#fff" fill-rule="evenodd" rx="0" ry="0"/>
+ <rect id="gb-nir-a" width="640" height="96" y="192" fill="#c00" fill-rule="evenodd" rx="0" ry="0"/>
+ <use xlink:href="#gb-nir-a" width="600" height="300" transform="matrix(0 .75 -1 0 560 0)"/>
+ <path fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M355.2 146.6c3-4.8 1.2-8-3.4-8.9 0 0-14.9 4.8-31 5.3-16 .5-35-4-35-4-3.5 2.1-2.7 7.2-1 10.4 0 0 16.8 5.6 36 5a111 111 0 0 0 30.1-5.5c3.7-1.2 4.3-2.2 4.3-2.3z"/>
+ <path fill="#fff" stroke="#161111" stroke-width="1.6" d="m320 357.6-30.9-64.2-70.9 5.4 40-58.8-40-58.8 71 5.4 30.8-64.1 30.9 64 70.9-5.3-40 58.8 40 58.8-71-5.4z"/>
+ <path fill="#b02320" fill-rule="evenodd" stroke="#000" stroke-width="1.3" d="M319.5 122.2c38.8 6.4 37.4 8.2 37.4 8.2l10.1-30.2s1.1-6-1.7-9.6-10.5-1.6-10.5-1.6-1-4.9-4.5-6c-3.4-1.2-16 4.5-20 5.8s-6 2.5-11.5 2.4c-5.5 0-15.4-5-17.3-6-1.7-.9-4.4-1.8-6.9-1.7-2.4 0-5 .7-6.3 2.4s-1.2 3.9-1.2 3.9-2-1.3-5.2-1.3-5 .4-6.5 2.1-3.4 6.5-3.4 6.5l3.6 8.2.2 11.3 7.5 12z"/>
+ <path fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M355.7 139.3s2 2.3 1.9 3.2c-.1.8-1 1.5-1 1.5s.7.6.5 1.5-1.4 1-1.4 1 .3.8-.5 1.2c-.7.4-3.8 1-3.8 1s-15-4.2-31-4.2-35 5.2-35 5.2-2-.7-2-2c-.2-1.2.1-2.1.1-2.1s-1 0-1.3-.9c-.4-1.3.1-2.3.1-2.3s-.7.2.1-1.5c.6-1.3 1.5-1.7 1.5-1.7s16.8-6 36-6.1 35.8 6 35.8 6.2z"/>
+ <path fill="none" stroke="#000" stroke-width="1.1" d="M276.2 101.5s-.6-2.2.8-4.1a4 4 0 0 1 4.7-1.4c.8.4.7 1.3 1.7 1.5 1 .3 1.8-.5 1.8-.5"/>
+ <path fill="#fc0" fill-opacity=".9" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="m369.8 106.6-5.8 12-2.3.4s-1.4-.8-5.4-.5c-2.8.2-3.7 1-3.7 1l5.2-12s.4 2.5 1 4c.8 2 3.7 3.7 3.7 3.7s.4-2.3-.4-5a56 56 0 0 0-2.8-7.3z"/>
+ <path fill="#121116" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M316.5 69.2h6.5v27.7h-6.5z"/>
+ <path fill="#f6ca1f" fill-rule="evenodd" stroke="#000" d="m276.6 120.2 4.1 9s17.9-7 38.9-6.8c31.5.2 40.5 6.5 40.5 6.5l4.6-11.1-3.5 2-3.6 2.3-4 1.5-5-.3-4.4-3.2-2.2-4.7-3.7 3.4-6.6 1.4-6.4-1.6-5.6-7.1s-4.2 7.9-9.6 8.4c-7.7.6-12.1-3.7-12.1-3.7s-2.9 6.4-7.6 7.5c-7.5 1.9-13.7-3.5-13.8-3.5z"/>
+ <g stroke-width="2.2">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M348.4 65.7c0 1.8-1.4 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.5 3.4 3.4 0 0 1 3.3 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M343.5 67.4s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.4 1 2.5q-.5 1.4-1.7 1.7a3 3 0 0 1-2-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M340.3 69.5c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.4-3.4A3.4 3.4 0 0 1 337 66a3.4 3.4 0 0 1 3.4 3.3"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M335.3 71.2s2.8 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5 1 2.6q-.5 1.4-1.7 1.6a3 3 0 0 1-2-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M358 63.4c0 1.9-1.6 3.4-3.4 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M353 65.2s2.7 0 3-1.2-.2-2.5-.2-2.5 1.3 1.4 1 2.5q-.5 1.5-1.7 1.6a3 3 0 0 1-2-.4z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M368.6 65.6c0 1.8-1.5 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4 3.4 3.4 0 0 1 3.3 3.3"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M363.7 67.3s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.4 1 2.6q-.5 1.3-1.7 1.6a3 3 0 0 1-2.1-.5"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M376.8 72.3c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4 3.4 3.4 0 0 1 3.4 3.3"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M371.9 74s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5.9 2.6q-.4 1.4-1.7 1.6-1 .1-2-.5"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M380.3 83.3c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M375.4 85s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5.9 2.6q-.4 1.4-1.7 1.6a3 3 0 0 1-2-.5"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M379 94.4c0 2-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.3 3.4 3.4 0 0 1 3.3-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M374 96.2s2.8 0 3-1.2c.3-1-.1-2.5-.1-2.5s1.3 1.4.9 2.5-.7 1.4-1.7 1.6a3 3 0 0 1-2-.4z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M374 104.2c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4 3.4 3.4 0 0 1 3.3 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M369.1 106s2.7 0 3-1.2c.3-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5q-.5 1.5-1.7 1.6a3 3 0 0 1-2-.4z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M332.3 72.4c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M327.4 74.2s2.7 0 3-1.2-.2-2.5-.2-2.5 1.3 1.4 1 2.5q-.5 1.5-1.7 1.6-1.2.3-2.1-.4"/>
+ <g stroke-width="2.7">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.1 71.5a3 3 0 0 1-2.8 2.9 3 3 0 0 1-2.8-2.9 3 3 0 0 1 2.8-2.8 3 3 0 0 1 2.8 2.8"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318 73s2.3 0 2.5-1-.1-2-.1-2 1 1.1.8 2q-.5 1.3-1.4 1.4a3 3 0 0 1-1.8-.4"/>
+ </g>
+ <g stroke-width="2.7">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.2 75a3 3 0 0 1-2.8 3 3 3 0 0 1-2.8-3 3 3 0 0 1 2.8-2.8 3 3 0 0 1 2.8 2.8"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318 76.5s2.3 0 2.6-1c.2-.8-.2-2-.2-2s1 1.2.8 2q-.3 1.3-1.4 1.4a3 3 0 0 1-1.7-.4z"/>
+ </g>
+ <g stroke-width="2.7">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.4 80.3a3 3 0 0 1-2.8 2.8 3 3 0 0 1-2.9-2.8 3 3 0 0 1 2.9-2.9 3 3 0 0 1 2.8 2.9"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318.3 81.8s2.2 0 2.5-1-.2-2.1-.2-2.1 1 1.2.8 2q-.3 1.4-1.4 1.4a3 3 0 0 1-1.7-.3"/>
+ </g>
+ <g stroke-width="2.5">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.7 85.8a3 3 0 0 1-3 3.1 3 3 0 0 1-3.1-3 3 3 0 0 1 3-3.2 3 3 0 0 1 3 3.1"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318.2 87.4s2.5 0 2.7-1-.2-2.3-.2-2.3 1.2 1.3.9 2.3c-.4 1-.7 1.2-1.5 1.4a3 3 0 0 1-1.9-.4"/>
+ </g>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M323 93.3c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.4 3.4 3.4 0 0 1 3.3-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318 95s2.8 0 3-1.1-.1-2.6-.1-2.6 1.3 1.5.9 2.6c-.4 1-.7 1.4-1.7 1.6a3 3 0 0 1-2-.5z"/>
+ <g stroke-width="2.4">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.7 108.5c0 1.8-1.4 3.2-3.2 3.2a3 3 0 0 1-3.2-3.2c0-1.7 1.4-3.2 3.2-3.2a3 3 0 0 1 3.2 3.2"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318 110.2s2.6 0 2.8-1.1c.3-1-.1-2.4-.1-2.4s1.2 1.3.8 2.4q-.4 1.3-1.5 1.5-1 .1-2-.4"/>
+ </g>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M313.6 72.3c0 1.9-1.6 3.4-3.4 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M308.6 74s2.7 0 3-1c.3-1.2-.2-2.6-.2-2.6s1.3 1.4 1 2.5q-.5 1.5-1.7 1.6a3 3 0 0 1-2-.4z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M305.2 69c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M300.3 70.8s2.7 0 3-1.2c.2-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.5 1.1-.8 1.4-1.8 1.6q-1 .3-2-.4"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M297.2 65.3c0 1.8-1.5 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.3-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M292.3 67s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5 1 2.6q-.5 1.4-1.7 1.6a3 3 0 0 1-2.1-.5"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M288 63.3c0 1.9-1.4 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M283.1 65s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5 1 2.6q-.5 1.4-1.7 1.6a3 3 0 0 1-2-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M277.2 65.8c0 2-1.5 3.4-3.3 3.5a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.4-3.5 3.4 3.4 0 0 1 3.3 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M272.3 67.6s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.4 1 2.5q-.5 1.4-1.7 1.7a3 3 0 0 1-2-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M269.6 73.5c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M264.7 75.2s2.7 0 3-1.1-.2-2.6-.2-2.6 1.3 1.5.9 2.6q-.4 1.4-1.7 1.6a3 3 0 0 1-2-.5"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M266.4 84.2c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.3-3.4 3.4 3.4 0 0 1 3.4 3.3"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M261.5 86s2.7-.1 3-1.2-.2-2.6-.2-2.6 1.3 1.5 1 2.6q-.5 1.4-1.7 1.6a3 3 0 0 1-2.1-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M267.8 95.3c0 2-1.5 3.5-3.3 3.5a3.4 3.4 0 0 1-3.4-3.4 3.4 3.4 0 0 1 3.3-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M262.9 97.1s2.7 0 3-1.2c.3-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5q-.5 1.5-1.7 1.7a3 3 0 0 1-2-.5z"/>
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M273 105.5c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 0 1-3.3-3.4 3.4 3.4 0 0 1 3.3-3.5 3.4 3.4 0 0 1 3.4 3.4"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M268 107.2s2.8 0 3-1.1-.1-2.6-.1-2.6 1.3 1.4 1 2.5q-.6 1.5-1.7 1.7a3 3 0 0 1-2.1-.5z"/>
+ <g stroke-width="2.8">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 0 1-6.4 6.5 6.5 6.5 0 0 1-6.5-6.5 6.5 6.5 0 0 1 6.4-6.5 6.5 6.5 0 0 1 6.5 6.5" transform="matrix(.31597 -.08466 .13499 .50378 109.4 30)"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M276.3 120.7s1.6-.5 1.5-1.6c0-1.1-.7-2.4-.7-2.4s1.1 1.1 1.2 2.3q0 1.4-.6 1.8-.6.3-1.4-.1"/>
+ </g>
+ <g stroke-width="2.8">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 0 1-6.4 6.5 6.5 6.5 0 0 1-6.5-6.5 6.5 6.5 0 0 1 6.4-6.5 6.5 6.5 0 0 1 6.5 6.5" transform="matrix(.31758 .0784 -.125 .50636 260 -40.2)"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M362.3 119.8s1.7.4 2.1-.7c.5-1 .5-2.5.5-2.5s.5 1.6 0 2.6-.8 1.3-1.4 1.3q-.7 0-1.2-.7"/>
+ </g>
+ </g>
+ <path fill="#b3a192" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="m316.7 53.8.3 5.7s-6.8.6-7 1.2c-1.4 3 1.5 7 1.5 7s2.3-1.8 8-1.8c5.5 0 8.3 1.4 8.3 1.4s1.4-2.3 1.4-4-.6-3.4-.6-3.4l-3.6-.4h-2.5l-.2-5.8z"/>
+ <path fill="#f0ddcb" stroke="#121116" stroke-linejoin="round" stroke-width=".6" d="M326.4 62.6q-.2 1.1-1.2 1.2-1.2-.1-1.3-1.1.2-1.1 1.2-1.2 1.1.1 1.3 1.1m2.7.7q0 1-1.2 1.2c-1.2.2-1.3-.6-1.3-1.2q.1-1.1 1.3-1.2t1.2 1.2m-5.5-.7q-.2 1-1.2 1.2-1.1-.2-1.2-1.2 0-1.3 1.1-1.2t1.3 1.2m-5.6 0q-.1 1.2-1.3 1.3-1.1-.1-1.2-1.2t1.2-1.2c1.2-.1 1.3.5 1.3 1.2m-3.1.2q-.1 1-1.3 1.2-1.1 0-1.2-1.2c-.1-1.2.5-1.2 1.2-1.2s1.3.5 1.3 1.2m5.7-3.5q-.1 1-1 1a1 1 0 0 1-1.2-1q.1-1 1.1-1t1 1m0-4.7q0 .9-1 1a1 1 0 0 1-1-1q0-1 1-1c1 0 1 .4 1 1m0 2.5q0 1-1 1c-1 0-1-.4-1-1q0-.9 1-1c1-.1 1 .4 1 1m-8.8 6.5q0 1.1-1.2 1.2-1 0-1.2-1.2 0-1 1.2-1.1c1.2-.1 1.2.5 1.2 1.1"/>
+ <path fill="#916c68" stroke="#4d3126" stroke-linejoin="round" stroke-width=".6" d="M320.9 62.4q-.1 1.1-1.4 1.2a1.3 1.3 0 0 1-1.3-1.2q.1-1.2 1.3-1.3 1.2.1 1.3 1.3"/>
+ <g stroke-width="2.5">
+ <path fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322 45.5a2.5 2.5 0 0 1-2.4 2.5 2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.6 2.5 2.5 0 0 1 2.5 2.5"/>
+ <path fill="#a3afb8" fill-rule="evenodd" d="M318.4 46.8s2 0 2.2-1c.2-.7-.1-1.8-.1-1.8s1 1 .7 1.9q-.4 1-1.2 1.2a2 2 0 0 1-1.6-.3"/>
+ </g>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M280 130.1s2.2 2.1 2.8 4 1.5 6.8 1.5 6.8 23.2-6.5 34.6-6 37.7 6.3 37.7 6.3l1-5.7c.5-3 2.7-6.3 2.7-6.3s-25.1-7.8-41-7a116 116 0 0 0-27.3 3.5z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M314.7 36h10s-2.5 1.7-3 3.4c-.4 1.4-.3 3.7-.3 3.7s2.7 0 4-1l3.7-2.9v12.7s-2.5-2.3-4-3.1a14 14 0 0 0-3.5-1.3s0 2 .8 3.3 4.3 5.8 4.3 5.8l-14.3.5s3.4-3.5 4.8-6.1c.9-1.7.5-3.5.5-3.5s-2.4 0-3.6.9-3.4 3.3-3.4 3.3V39.5s1 2.4 3 3.3 3.8.4 3.8.4.4-2.4-.4-4c-.8-1.5-2.6-3.2-2.4-3.1z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M313.9 76.5s-7.1-.1-13.2-3.7-12.3-7.4-21.3-5.3c-1.8.5-8.6 3.5-11.6 13.2a26 26 0 0 0 2.4 18.7 50 50 0 0 0 5.6 7.4l3.7-2.5s-9.3-8-8.2-18.2c1-10.3 6.2-12.7 6.2-12.7s6.4-5 14.9-.3a80 80 0 0 0 25.3 8.7c.6-.1-4-5.4-3.8-5.3z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="m274.5 115-3.8-7.4 11.4-4.4s-2.8 3.6-3.4 6.2c-.8 3.2-.5 5.9-.5 5.9s1-.8 2.3-2.9c1-1.5 2.6-7.3 2.6-7.3l5.1 16.3s-2.6-2.6-4.5-2.9c-2-.4-4.6.3-4.6.3l-3 1z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M326.7 76.3s7.1 0 13.2-3.7c6.1-3.6 12.2-7.3 21.3-5.2 1.8.4 8.6 3.4 11.6 13.1a26 26 0 0 1-2.5 18.7l-3.6 5.9-4.4-1.6s8.1-7.3 7-17.6-6.2-12.7-6.2-12.7-6.4-5-14.9-.2-16.8 6.8-16.8 6.8-7.8 2-8.5 1.8c-.7 0 4-5.4 3.8-5.3z"/>
+ <path fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M323 69.3h3V97h-3zm-10-.2h3.5v27.7H313z"/>
+ <path fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M329.2 62.7c0 5-4.3 9-9.7 9s-9.7-4-9.7-9 4.3-8.9 9.6-8.9c5.4 0 9.8 4 9.8 8.9"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" d="m310.9 96.8 16.7-.2s-2 1.2-3.7 4.2c-1.6 3-1.4 4.8-1.4 4.8s2.5 0 4.3-1.3a26 26 0 0 0 3.8-3.7v15.3s-1.3-2-3.3-3c-2-1.3-4.8-1.3-4.8-1.3h-5.7s-2.6.2-3.7 1a29 29 0 0 0-3.7 3.2l-.3-14.6s.8 2.6 3.5 3.6 4.2 1 4.2 1 0-3.4-1.4-5a33 33 0 0 0-4.5-4z"/>
+ <path fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M320.2 108.8s2.4 5.7 5.3 8.2c1.6 1.5 6.6 2.6 8.8 2 5-1.3 8.6-5.3 8.6-5.3s-.2 4.4 3 6.9q4.5 3.5 8.2 2.3c2.7-.7 10-6.2 10-6.2l1.6 1.3s-4.3 4.2-8.7 6.3c-2.3 1.2-9.3.5-11.5-1.3-2.3-1.8-3.6-6.1-3.6-6.1s-1.4 2.8-4.4 3.8-7 1-10.9-.2c-2.5-.8-5.9-4.3-6.5-5.5-.6-1.1-.4-1.8-.4-1.8s-2 5.4-5.8 6.9a19 19 0 0 1-11.5.4c-3.6-1-3.9-3.1-3.9-3.1s-.2 5.7-8 7.3c-8 1.6-14.2-4.1-14.2-4.1l1.1-1.7s4.4 5 11.2 4.6 9-9.2 9-9.2 3 4.5 11 4.6 10.2-10.3 10.2-10.3z"/>
+ <g fill="#fc0" stroke="#000" stroke-width="1.1">
+ <path fill-rule="evenodd" d="M300.6 112.1s0-2.7.7-3.6c.8-1.1 2-1.2 2.6-1s1.4.8 1.3 2.8-.7 2.8 0 3.6c.5.7.6 1.2 1.7 1q1.6-.1 1.3-1.5c-.3-1.4-.5 0-.7-.8s1-4.6.8-6.9c-.2-2.2-1-4-2.8-4.5q-2.3-.8-4.5.7c-1.4 1-3.3 4.5-3.3 4.5v7.5l3-.2v-1.6z"/>
+ <path fill-rule="evenodd" d="M295 114.1s-1.2-2.5-2-3a3 3 0 0 0-2.8 0c-.6.5-1 1.4-.1 3.1s1.7 2.4 1.4 3.3c-.2.9 0 1.4-1.1 1.7q-1.6.5-1.9-1c-.2-1 .6 0 .4-1-.1-.8-2.8-3.7-3.5-5.9q-1.2-3.3.8-5.2 1.8-1.6 4.3-1.2c1.8.4 4.9 2.9 4.9 2.9l3 6.8-2.8 1z"/>
+ <path fill-rule="evenodd" d="M294.4 92.1s-3 5-2.3 8.8 4.6 12 4.6 12v1l2.2-.2-.5-1.1s1-9.8.4-12.9a33 33 0 0 0-4.4-7.6zm4.7 22.7s1.5 1.7 3.2 2.6c2 .9 2.8 1 3.5.3.6-.4.4-2.2-.3-2.7s-1.4-.2-1.5.3q-.2 1.1-1 .4c-1-.4-3-1.7-3-1.7zm-2.3.4s-.6 2.2-1.8 3.7c-1.4 1.6-2.1 2-3 1.7-.7-.1-1.3-1.8-.9-2.6.4-.7 1.2-.8 1.5-.4q.6 1 1.1 0l2-2.7z"/>
+ <path stroke-linejoin="round" d="M302.4 113.4c.2.6-1.8 1.5-4.3 1.9s-4.6.3-4.8-.4c0-.6 1.9-1.5 4.4-2s4.6-.2 4.7.5"/>
+ </g>
+ <g fill="#fc0" stroke="#000" stroke-width="1.1">
+ <path fill-rule="evenodd" d="M345.6 113.2s1-2.5 2-3.1c1.1-.8 2.2-.5 2.7 0 .6.3 1 1.2.3 3-.8 1.7-1.6 2.4-1.4 3.3.3 1 .2 1.4 1.3 1.6q1.7.5 1.8-1c.1-1-.5 0-.4-1 0-.8 2.6-3.9 3.2-6q1-3.5-1-5.3-2-1.6-4.5-.9c-1.7.5-4.7 3.1-4.7 3.1l-2.6 7 2.9.9z"/>
+ <path fill-rule="evenodd" d="M339.7 113.1s-.2-2.7-.9-3.5c-.9-1.1-2-1.1-2.6-1-.7.3-1.4 1-1.2 2.9.2 2 .8 2.8.3 3.6s-.6 1.2-1.7 1.1q-1.7 0-1.5-1.4c.2-1 .6 0 .8-.9.1-.8-1.3-4.5-1.2-6.8 0-2.2.8-4 2.5-4.6q2.3-1 4.5.5c1.5 1 3.6 4.3 3.6 4.3l.4 7.4h-3z"/>
+ <path fill-rule="evenodd" d="M346.8 92.3s-4.5 3.6-5.2 7.4.1 12.8.1 12.8l-.3 1 2 .6v-1.2s4.4-8.8 4.9-12a32 32 0 0 0-1.5-8.6zm-3.5 22.9s.8 2.1 2.1 3.5c1.5 1.6 2.2 1.9 3.1 1.6.7-.2 1.1-2 .7-2.6s-1.2-.7-1.5-.3q-.6.9-1.1 0l-2.2-2.6zm-2.3-.5s-1.3 1.9-3 2.8c-1.9 1.1-2.7 1.2-3.5.6-.6-.3-.5-2.1.1-2.7q1.2-.6 1.6.2.3 1 1 .4l2.8-2z"/>
+ <path stroke-linejoin="round" d="M346.9 115c-.1.7-2.3.8-4.8.3s-4.4-1.4-4.3-2 2.3-.8 4.8-.3 4.4 1.4 4.3 2"/>
+ </g>
+ <path fill="#cca715" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M279 129.9s.6 2 1.7 1c1.2-1.1 17.3-7.5 40-7.5s37.5 6.3 38.4 6.7c.9.3 1.3.8 2 0 .8-1-.7-2.3-.7-2.3s-15.8-6.7-40.4-6.6c-24.7.1-40.6 7.1-40.6 7.1s-1 .8-.3 1.6z"/>
+ <path fill-rule="evenodd" d="M307.9 139.3s.7-2 2-2.4c1-.3 2.5.7 2.5.7s-1.9-.2-2.5.2c-.5.3-.7 1.2-.7 1.2s.4-.8 1.9-.7h1.6s-2.5.3-3 1 2.3 1 2.3 1-4.5 0-5-.2-1-1.2-2-1c-1 .4-2 1.3-2 1.3s1.1-2 1.8-2 1.2 0 1.8.3zm-16.8 3.6s.3-2 1.5-2.7c1-.5 2.7.2 2.7.2s-2 .2-2.5.6-.4 1.4-.4 1.4.3-.8 1.7-1l1.6-.3s-2.4.7-2.8 1.5c-.5.8 2.5.6 2.5.6s-4.4.8-5 .7c-.7-.2-1.2-1-2.1-.5s-1.8 1.5-1.8 1.5.8-2.1 1.5-2.3 1-.2 1.8 0zm30.9-4.3s.8-2 2-2.3 2.7.8 2.7.8-2-.3-2.6 0c-.5.3-.7 1.2-.7 1.2s.4-.7 1.9-.5l1.6.1s-2.5 0-3.1.8c-.6.6 2.3 1.1 2.3 1.1s-4.5-.2-5-.5-1-1.2-2-1-2 1-2 1 1.2-1.8 1.9-1.8 1.1 0 1.8.4zm14.1 1.6s1-1.9 2.4-2c1-.2 2.4 1 2.4 1s-1.8-.4-2.5-.2-.9 1-.9 1 .5-.6 2-.3l1.6.4s-2.5-.2-3.2.4 2.1 1.4 2.1 1.4-4.4-.8-5-1.1c-.4-.4-.7-1.4-1.7-1.3s-2.2.8-2.2.8 1.5-1.6 2.2-1.5q1 0 1.7.5zm14 2.5s1-1.4 2.1-1.5c.9 0 1.9 1.1 1.9 1.1s-1.5-.5-2-.4-.8.8-.8.8.5-.5 1.6-.1l1.3.4s-2-.4-2.6 0 1.6 1.4 1.6 1.4-3.5-1-4-1.3c-.3-.3-.4-1.1-1.2-1.1-.9 0-1.9.5-1.9.5s1.3-1.3 1.9-1.1q.7 0 1.3.5z"/>
+ <path fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M305 129.7c.4 1.7-1.6 3.5-4.4 4s-5.3-.3-5.6-2 1.6-3.4 4.4-4 5.3.3 5.6 2z"/>
+ <path fill="#cecfc1" d="M298.8 129.4q0 .7-1 1-1 .1-1.3-.5 0-.7 1-1 1 0 1.3.5"/>
+ <path fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M344.1 131.8c-.5 1.6-3 2.2-5.8 1.4s-4.4-2.9-4-4.5c.6-1.6 3.2-2.3 5.9-1.4s4.5 2.8 4 4.4z"/>
+ <path fill="#cecfc1" d="M338.8 128.5q-.3.7-1.3.4-1-.4-.9-1 .3-.7 1.3-.5 1 .4.9 1z"/>
+ <path fill="#1f2d86" stroke="#000" stroke-linejoin="round" d="M314.6 126h10.1v5h-10.1z"/>
+ <path fill="#707c8b" d="M318.9 127q0 .5-1 .5c-1 0-1-.2-1-.5q.1-.4 1-.4 1.2 0 1 .4"/>
+ <path fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="m286 131 1.6 5-3 1.7s-1.5 1-3 .2c-1.4-.7-2.2-3-1.4-4 1.5-1.8 5.7-3 5.7-2.9z"/>
+ <path fill="#8f322f" d="M283.4 134.6q-.1 1.3-1.5 1.5c-1.4.2-1.4-.7-1.4-1.5q.1-1.4 1.4-1.5c1.3-.1 1.5.6 1.5 1.5"/>
+ <path fill="#e2a494" d="m282 134-.2.7h-.5l-.4-.5.2-.7.5-.1q.4 0 .4.6"/>
+ <path fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="m353.9 131.7-1.7 4.4 4 2s1.7.8 2.8-.1 1.2-2.8.4-3.7-5.6-2.6-5.5-2.6z"/>
+ <path fill="#aa675d" d="M358.6 135.2q-.1 1-1.3 1c-1.2 0-1.2-.4-1.2-1s.6-1 1.2-1q1.2.1 1.3 1"/>
+ <path fill="#e2a494" d="M357.4 135q0 .5-.3.7h-.6l-.3-.6q0-.5.3-.6h.6q.3 0 .3.6z"/>
+ <path fill="#f5d8bc" d="M328.6 126.4a1 1 0 0 1-.8.7 1 1 0 0 1-.7-.7 1 1 0 0 1 .7-.7q.7 0 .8.7m4.3.2a1 1 0 0 1-.7.7 1 1 0 0 1-.8-.7 1 1 0 0 1 .8-.6q.6 0 .7.6m-2.2 1.7q0 .8-1 .9c-1 .1-.8-.4-.8-.9s.4-.9.9-.9.9.4.9 1zm2 2.8a1 1 0 0 1-.6.7 1 1 0 0 1-.8-.7 1 1 0 0 1 .7-.7q.8 0 .8.7zm-4.1-.5a1 1 0 0 1-.7.7 1 1 0 0 1-.7-.7 1 1 0 0 1 .7-.7q.6 0 .7.7m-20.9-3.5a1 1 0 0 1-.5.8 1 1 0 0 1-.9-.5 1 1 0 0 1 .6-.8 1 1 0 0 1 .8.5m4.3-.7a1 1 0 0 1-.6.8 1 1 0 0 1-.8-.5 1 1 0 0 1 .5-.8 1 1 0 0 1 .9.5m-1.8 2.1q0 .9-.6 1a1 1 0 0 1-1.1-.6c-.1-.4.2-1 .7-1a1 1 0 0 1 1 .6m2.7 2.3a1 1 0 0 1-.5.8 1 1 0 0 1-.9-.5 1 1 0 0 1 .5-.8 1 1 0 0 1 .9.5m-4.2.4a1 1 0 0 1-.5.8 1 1 0 0 1-.9-.5 1 1 0 0 1 .6-.8 1 1 0 0 1 .8.5m-19.2-.2a1 1 0 0 1-.4 1 1 1 0 0 1-.9-.4 1 1 0 0 1 .4-1 1 1 0 0 1 1 .4zm4.1-1.3a1 1 0 0 1-.4 1 1 1 0 0 1-.9-.5 1 1 0 0 1 .4-.9 1 1 0 0 1 1 .4zm-1.4 2.4a1 1 0 0 1-.5 1 1 1 0 0 1-1.1-.4 1 1 0 0 1 .5-1.1 1 1 0 0 1 1.1.5m3 1.8a1 1 0 0 1-.4 1q-.6 0-1-.5c-.4-.5.1-.7.5-.9a1 1 0 0 1 .9.4m-4.1 1a1 1 0 0 1-.4 1 1 1 0 0 1-1-.4.7.7 0 0 1 .5-1 1 1 0 0 1 1 .4zm56.2-5.8q-.2.6-1 .5a1 1 0 0 1-.5-1q.1-.5 1-.4.6.2.5.9m4.4 1.3q-.1.7-.9.6a1 1 0 0 1-.6-1q.2-.6 1-.5.6.2.5 1zm-2.7 1.2a1 1 0 0 1-1.1.7 1 1 0 0 1-.8-1.1 1 1 0 0 1 1.2-.7q.8.3.7 1.1m1.5 3.5q-.2.6-1 .5a1 1 0 0 1-.5-.9q.1-.6.9-.5.7.2.6 1zm-4.3-1.6q-.2.6-.9.5a1 1 0 0 1-.5-.9q.2-.6.9-.5.6.2.5.9"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M356 89s-2 1.9-4.5 1.9a7 7 0 0 1-4.6-1.6c-.8-.5.2-2 .2-2"/>
+ <path fill="none" stroke="#000" stroke-width="1.1" d="M312.9 92.8s-3.7-.7-5.3-1.2-1.1-1.5-3-1.4c-1.7.1-3.5 1.4-3.1 3.2s1.7 2 3 1.7c1.2-.4.8-2.6-.8-2.4-1.7 0-.3 1.5-.3 1.5"/>
+ <path fill="none" stroke="#000" d="M287.3 90s1 1.5 3.7 1.2c2.7-.2 3.7-1.6 3.8-2.3.2-.6 0-1.8-.5-2.3s-2.3-.7-2.3-.7"/>
+ <g stroke="#161111" stroke-width="1.6">
+ <path fill="#c00" d="M339.2 270.4c2.5-2.5 6.5-5.2 8.7-11 2-5.6 3-15.7 5-20.8 2.5-8.8 7.5-17.4 1.5-16.8-5.7.6-7.5 6-9.6 10-1 1.5-3.3 4.7-3.7 6.5-.1-3-1.7-11.9-2-20.8-.3-8.4 0-17-.3-20.3-.2-4.3-.2-8.3-1.2-11.4-.5-1.5-2.6-3-3.8-2.9-2.2 0-3.6 2-4 3.9l-.2 2.8c-.2 2.4 0 5.5-.2 8.3-.1 3 .2 6.2 0 9-.2 5.4-.6 10.5-.8 11.5 0-2-1-11.7-1.3-20.9l-.2-10c0-2.6 0-5.4-.2-7.4q-.6-5-4-5c-1.8 0-4.2 1.3-5 5q-.4 3.2-.3 7.4l.2 8c-.2 10.5-.4 21.5-.8 24.8 0-1-1.1-6.5-1.4-13.9l-.4-9.6-.3-9.6c0-1.6-.7-6.2-3.7-6-1.7-.2-3.4 1-4 5.3-.4 2.5-.4 6.6-.5 9.9-.1 6-.4 11.4 0 16.9l.1 7.7c0 .4-.9-2.9-1.3-7.4l-.8-8.6c0-2.3-.1-5.7-.3-8.5-.2-2.1-.1-4.5-2.5-4.3-2.4.1-3.8 1-4.3 5-.4 2.7-.4 8.5-.5 10.5.2 5.3-1.2 17.7-1.8 21.2-.2 2.5-1.2 5.7-1.6 9.2a70 70 0 0 0 1 20.6c2 7 7 10.2 6.8 15s0 13.3 0 17c0 3.8 3.3 4 10 2.6 11.2-2.4 17.3 2.4 26.4-1.2-1.1-10.4 1.1-16.7 1-20.5zm-6.5-24.7c2.3-6.4 5.2-8.9 8-10.2"/>
+ <path fill="none" d="M307.4 239.2q5.2-2 10.6-3.6c4.3-1.2 8.5-3 13-3.6q3-.9 6.4-1m-36.1 42c.4-.3 1 .2 1.4.3q1 .4 2 .3h4q2.5.1 4.3-1m10 .6 1.6.9c.8.3 1.8.4 7.3 0 3.5.2 6.5-2.8 7.4-3.6"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gb-sct.svg b/apps/web/public/flags/gb-sct.svg
new file mode 100644
index 00000000..f50cd322
--- /dev/null
+++ b/apps/web/public/flags/gb-sct.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb-sct" viewBox="0 0 640 480">
+ <path fill="#0065bd" d="M0 0h640v480H0z"/>
+ <path stroke="#fff" stroke-width=".6" d="m0 0 5 3M0 3l5-3" transform="scale(128 160)"/>
+</svg>
diff --git a/apps/web/public/flags/gb-wls.svg b/apps/web/public/flags/gb-wls.svg
new file mode 100644
index 00000000..d7f57912
--- /dev/null
+++ b/apps/web/public/flags/gb-wls.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb-wls" viewBox="0 0 640 480">
+ <path fill="#00ab39" d="M0 240h640v240H0z"/>
+ <path fill="#fff" d="M0 0h640v240H0z"/>
+ <g stroke="#000" stroke-width="1.4">
+ <path fill="#d21034" d="M419 70.8h-.1zm-.1 0a694 694 0 0 0-111.8 75c-17 14.9-12.2 26.7-12.9 40 .6 9-1.9 17.4-7.4 22.4l-37.8 7.6-3.6-10.4c1.1-5.4 5.5-8 14.9-4.7.7-6.8-4.9-9.6-11.3-12-2.3-1.8-5-3-4.7-9-1-13.5 20.6 1 20.8 1s-.8-13.7-10.7-16.4c-5.4-1.9-7.7-7.6-5.6-11.8 4.3-8.7 12.5.6 18.7 1-.2-5.7-1.8-9.7-6.7-14.2-2.6-1.7-9-2.9-9.2-5.6-.1-3.6 6-5.2 14.5-4.2-1.8-5.1-7.5-8.4-15.3-10.8l-4.6-8.1c-2.2-4-3.2-4.2 1.9-11.8 4.5-3 10.6-7.2 15.2-10.1l-5-.6c.6-5.5.7-7.4 2-16.5-5 6.7-11 5.5-16.6 8.2 0 0-15.6 2.8-20.7 9.5l-39.4-2c-8.4 1.1-15.5 3.5-16.9 11.6-19.1 2-39.1.3-53.7 18.5 10-.4 18.6-2.8 29.8-1.4 0 0 9.5.2 11.4 10.3.2.4 3.3.4 3.3.4l3.6 2.8 1.4-3.8 3.2 2.2 1-4.2 3.2 2.2.2-5 4.2 3v-6.7s15.6 0 20.4 10c.2.1-43.7 8-86.1 4.3l12.2-6c-15.4-3.2-30-6-43.6-16.7 5.1 19.4 31.7 42.1 37.2 42l-5.2-9.4 46 2c1.7 5.1 1 10.8 5 15.3 0 0-2.5 8.4 3.2 11.8.2.4 6.7-17 6.7-17s2 4.7 4 7.8c3-15 19.4-17.5 19.4-17.5l3.4 8c-5.1.8-11.5 11.2-8 17-3.5 0-9.6 10.1-7.7 15.6-2.9 2.9-10 6.7-8.3 18.8-5.6 1.2-9 11.5-7.2 22.5-8.8 8.1-6.6 23 1.2 29.1-3.2 3-5.2 5.1-5.2 8.7-3.1-1.1-6-.2-7.3 1.8-3.8-3.9-9.2-7.2-13-3.6-1-4.6-7-9.6-13.5-9a12 12 0 0 0-9-13s-1.5-22.6-8.3-30c-.7-4 .4-6.8 6-10.2 5.7-3 6.9-5.3 6.4-13.9 2.3-5.7 4-11.5-3-15.4.2 6.8-1.8 10-4.6 13-3.3-.4-4.4 3.4-6.6 5-3.1-4.1 6.5-10.6-.6-19.9-.4-.4-5-12-16.3-11.8 5.3 3.1 7.6 8.4 7.6 13.9a41 41 0 0 0-1.8 29.3c-4.7-7-7.4-20.4-11.3-22.7-3.4-.7-5-8.7-18.3-6.4 5.7 1.5 7.6 5.9 9 9.8-3.4 1.8-1.7 6.6.9 9.9-.5 7.7 4.1 12.2 11 15L85.6 237c-2.7-.3-7 10.4-8.6 10.7-2.7 1.7-7.4 6.2-2 7.5-1.6 5.7-3.1 9.2-11.7 10.4 0 0 9 5.4 16.6-3.8 8-.2 5.4-9.8 9.3-14 0-.3 2.3-1.7 5.5-10.2 1.4 7.6 9.2 30.8 26.7 42.3 15.3 16.4 28 31.9 27.8 53.7a54 54 0 0 0 12.3-22.7 89 89 0 0 1 30.8-3.6c-1.8 3.9-3.9 7.6-1.3 10-7.4 2.6-9 8-6 13.3-7.8 5.3-8.3 8.7-8.4 17.5-14.5 18.5-23.4 17.9-37.7 13-4.6-2.7-12-6.6-15.3-4.5-6.1-4.2-15-4.8-16.5 4.6 4.7-3.9 7.4-3.1 11.1.6-.7 1.9-1.3 3.7 1.4 4.8l-3.6 4c-6.6-1-15.6-1-17.9 8.7 3.4-2.9 11-3.5 17-.8l3.5 1.2.4 4.6s-9-1.4-11.4 13.3c8.4-9 14.4-6.7 14.4-6.7 3.3 4.8 15.3 4.1 24-3.8 12.1-6.8 15.7 3 23.5-3.4 6.5-4.8 14.2-1.6 19.5 4 6.1 2.3 12.5 4.2 17.5 0 0 0 6.2-3.9 12.3 2.4 0-7-5-10.9-11.8-11l-2-2c-6.5-1.4-13.7-.8-19.4-4a58 58 0 0 1 14.1-27c9.3-10 16.2-14.6 28-29.9-.5 8.7 6.1 18.3 9.6 27 0 0 7-11.1 8-20.3.3 0 8.9-4.4 12.5-8.3 7.8 4.9 20.4-3.8 28.6-11 5 2 8.9 1.8 14.7 0-4.7 9.6 2.7 18.5 14.5 22.2 1 8.4 9.6 10.2 22.5 10.2.6 5 8.3 5.7 8.3 5.7-5 2.2-7.4 4.5-7.3 9.6-5 0-8.7 1.3-10 7-6.9.2-13.9.7-19.8 4-6.3-.9-14-3.5-18.9-8.6-2.5-2.1-3.2-5.2-7.6-6.4-2.8-3.3-6.2-2.6-7.3.6-2.9-2.3-13.8-3.3-15.7 7 5.2-3.7 9.7-5.1 13-.5-1.8 3.1 4.2 5 9.4 6.2 3.7.2 10.2 3.6 12.2 9.2a20 20 0 0 1-16.7-2.6 11 11 0 0 0-13-.8c-4.4-2.8-14.7 2.5-15.1 10.9 4.3-4 8.3-6 12.3-3.4-2 .4-1.3.6-1 1.8l10 5.8c-5 1.3-9.6 3.3-7.4 12.5 0 0 4-8 13-5 .2-.3 1.3 2.8 3.9.7 3.9-4.4 12.8-6.4 20.7-7.2 6.3-.7 12.6-2.6 18 1 5-2.5 10.4-4.2 16-.2 6.6 2 11.4 9.8 19.7 6.3 4.2-3 9.3-3 14.5 2.8 0-7.4-5.5-9.9-13.3-11.5l-5.4-3.2c-5-.8-10 .1-15.1-2.3a92 92 0 0 0 57.7-42.4l12.5 4.4c3 .2 3.2 1.2 9.3 3 .2-8.9-3.7-18.1-19.8-19l-21-8c-4.6-4.8-6.6-14.9-.9-20.8 5.6-5 6.6-4.4 10.3-10.5 4.5-.4 8.7 4.2 12.8 4.2 2 5.9 13.4 11 20.6 9.3 4.5 4 13 6.2 22.5 3a18 18 0 0 0 20.5 3c2.2 2.2 6.8 4 12 2.8.5 0 2.8 5.8 8.5 7.9-2.5 2.4-1 13 1.7 16.9a17 17 0 0 0-.9 12.7c-5.8 3.7-7 6.5-4.4 12.8-7.6 12.3-16.7 13.7-25.3 10l-9.3-6-9.8-9.6c-1.7-1.6-5.2-2-5.9 1.4 0 0-12.6-2.8-13.7 7.9 5.3-5.1 12.7-.6 12.7-.4s-1.8 1.4-.4 3.4c.3-.3 9.3 3.3 17.2 6.7 4.3 1.7 5.3 2.2 7.2 3.2l-7.2-3.2a33 33 0 0 0-11-2.9c-4.4-.4-9.2-1-11.4 2.4-4.8 2-12.4 3.7-12 12.7 3.2-5.4 7.7-5.1 13.4-4.6l-.4 1.2c6.2 2.8 5-.8 10.8-1.3a44 44 0 0 1 15.3 2.5c-4.5 1.3-10.7.7-13.6 4-.6 1-2.5.6-1.6 3.2 0 0-9-.2-11.3 12 9-5.7 15.9-5.5 16-5.5l2.9.6 11-7.3c.3 0 10.6-4.6 15.3.6 4.2 2 8.6 2.2 13-.4 8.4-3.7 16.3-4 24 1.2l7.1 4.2 3-2s8-2.2 13.8 4.9c-2.4-12.3-11.2-12.7-11.2-12.7l-2-1.8-12.4-4.9c-1.9-4.5-6.4-8-1.9-13.4 4.7-23.1 10.2-40.4 1.2-63.8 8.4 3.6 14.7 14.8 25.2 10.9 0-9.4-34.6-27.3-61-41.6C508 264 560 232.1 540 191.5l9.4-29.4c4.5 9 13.5 15.8 21.6 18.7-6.7-12.7-10.5-51.6-6.7-78.4a627 627 0 0 1-57.1 60c10 2.4 18.9.7 28.6-.5l-8.2 17c-26.6-15.7-57.8-4-58 16.8.9 24.2 30.8 27.7 48.1 19.2-3.4 22.1-54.2 14-54.2 14-18-6.2-35.1-5.2-54-5 3.9-12.1 25.7-22.9 42.4-18.1-23.3-26.2 3.3-58.7 35.4-68.6-35-11.6-4.9-38.3 21.3-57.4 0 0-75.3 31.7-82.2 31.6-21.4-1.6-15.6-27-7.4-40.6zm-236.4 30.4q2.8 0 5.5.6c3.4.9 7.5 1.3 7.5 2.4-1.6 2.6-5.5 5.7-9.3 5.6s-6-2.5-7.2-8.2q.8-.4 3.5-.4zm317 89.4c5 0 10.9 2 16.6 8.2-2.7 8-26.8 12-28.4.2-.5-3.6 4.6-8.3 11.8-8.4z"/>
+ <path fill="none" stroke-linejoin="round" d="m207.4 171.2 3.7 5.3m-.2.1s0 7.2 1.5 7.3m-3.3 3.9 3.8 6.3m-10.5 1.6c.2 0 4.7 5.2 4.7 5.2m3.9-4c0 .2 4.2 8.1 4.5 8.1m-10-2.6s1.4 9.6 2.7 9.3m-9 8.3 4.2 6.5m3.7-13.3s2.3 9.1 4.1 8.3m1.9-13.8c.1.2 4.3 6.1 5.4 5.3m-1 2.3 4 8m-10.6-1.8 3.3 9.4m-11-4.6s3 10.1 5.7 8.5m-6.8 5s.2 5.3 2.8 5.6m1.8-8.3c0 .2 2.7 3.8 2.7 3.8m5-10.1 2.1 3.5m4.9-10 3.3 4.1M206 176.7c.1 4.5 7.2-1.6 10-5.4m-13 21s7.7-5.5 13.7-13.8m-16.3 26.9c5.5-1.5 15.6-13.7 17.6-20.2m-18.7 32.3c1.5.7 20.3-13 20.8-22.9M198.8 228c0-.1 17.2-4.4 24.3-23.3M198 242.3s27.5-16.5 29-28.6M412.4 270s-1.8 14.2-16 16.4m20.5 9c.1-.2 13.6-15 10.1-19.5m21.1 5.2s-.2 10.3-8.6 17.4m25.4-14.4s.3 12.4-5 17.4m20.4-10s-6 11.7-8.1 12.9m7.9 7.8s7.8 2 10.3-3.2m-8.3 20.1s7.2 1.3 10.6-5.6m-11.4 18.7s5.9 5 9.9-1.6m-94-94.4s-.7 25.3 34.8 30.4c39.7 11 58.5 5.2 60.8 49.7-1.5 17-3.6 36-16 28.7m-117.4-85.5s5.7 10.1 12.5 9.4c9-2.6 12.3 2.9 12.3 2.9m-49-2.2s15 7.3 27.7-4.5m-26-6c1.3 17.5-20.1 27.5-28.6 25.8m29.6 41c.1 0 11.6-6.8 9.3-11.6m-32.1 1.5c.3-.4 19.3-2.2 22.8-9m-31.6-19s26.9.2 28.7 5.1m7-21s-26.2 44.9 22.2 44.9m-50-45.5s-5.6 16.7-13.6 22.4m-14.2-28.2s9.7 18.8 0 28.1M261 280.8c.1.3 3.1 26.7-3.5 34.2m-9.2-33.4s1 16.8-4 22.8 1.2 18.4 1.2 18.4m-60.5 8s3.6 6.3 8.5 4.1m-2.5-17.8s8 3.5 10.7 2.2m-2-30.4s-11.8 3.3-7.3 17.3c6.8 5.5 13.4 4.6 13.4 4.6m-29.4 37.4c-.1 0 1.4 11 9 2.7 5.3-11.2 22-42.6 25.9-53.4m7.8-5.1s-8.1-6.3-7.8 2.5c-.2 5.5 2.5 6.8 2.5 6.8.3 4 3.8 9.6 6.6 4.5 1.2-5-.8-7.2-.8-7.2m4.7-9c-7.3-.4-11.3 15.7 2.8 5.6m4.8-11s-1.8 2.5-4.7-.2c-1.5-2.6-6.8 12 2.5 12.5 1.7-4.3 6.8-5.5 6.8-5.5m4.4-13.8s-4.2 2-5.7 1.7c-5 1.1-4 12.8 2.3 12.1 2.2-2.5 4.5-6 4.5-6m-40.3-23c-.2 0-16.5 25.7 9.1 32.5m198-71s-10 8.4-.7 22c-31-.5-47.5 13.8-48.8 23.4-39.4-2.8-32.2 8.8-45 12.6-17.1-14.3-42.2-6.3-40.6 8-11.4-16.1-29-8.3-31.2-4.3s-1.3-19.8-1.3-19.8-11.5 5.2-19.4 14.6v-19.9c-9.6 2-18.9 2-28.8 1.8m-25.9-7.3s14.3 8 32-2.8M166 226.3s11 10 32 6.8m-25-29.7s2.4 8.1 26.3 8.6M181 184.6s9 11 21.2 9.3m-13.5-25s3.5 6 16.8 7m-9-24.5s7 7.6 15 6.3M238 89.3s3.1-3 8.3-1.5m-10.5 17.8s-9.6-.3-9-4c.8-4.4 10.2-7.5 10.2-7.5s12.5-8 14.4-10.8m-56.6 44 12.2 23.3 5.8-8.8 3 6 5-8.7 8.6 5.5-3.2-10.7 7.2-.5s-2-5.1-8.4-6.2c1.7-1.3 7.7-5.3 7.7-5.3s-3.4-4-8.8-4.1c1.8-1.9 4.2-6.5 4-6.5l-5.3-1.2s12.2 4 21.6-1.6M221 89.7c.1.1-.7 4.8-3.3 7.5m-43.7 5.3s7.5-2 13.1-.9 13.1 3.2 13.1 3.2 9-1.2 11.9-3.3m-56.8 6s-1 3.6-1.4 6c0 1.7-5.5 4-5.5 4m10.3-17.4s4.8 6 5 9.5c.1 3.4-3.6 6-3.6 6M109 141l-5-8 4.5-1.6m90.5 121c-4-5.2 3-84.2 17.7-104.8-5.1 37.2 12 75.2 16.3 75m-79-97s6.8 2.5 20.7-8.6m18.9 26.8 10 .1m300.3-62s-166.7 77.8-169.1 82c28.1-8.6 147.5-28.5 150.4-26.8-7 1.7-151.9 35-158.7 43 36.2-1.2 111.9 11.6 123.8 24C424.5 198.3 347.6 187 324 192c17.2 4.1 83.2 46.8 83.2 53.6-10-9.5-89.3-42.2-92.4-39 18.2 10.9 43.9 51.4 43.9 61.3-5.3-8.4-51.2-57.7-53.9-54.5 4.9 6.7 14.5 64.9 9.6 67.6 0-7-17.8-58-19.3-59.4-3.6 1-26.3 62-21.8 67.8-3-20.4.5-63 6-61.3-10 1.5-41.7 43.4-38.3 50 1-10.5 2.4-17.4 20.4-52.1-20 1.2-61.2 27.1-68.2 36.4 5.6-16.5 40.5-44.4 55.8-46.4m72-60.7c17.6-9.8 72-29.7 108.4-44.4m-142.6 97s12-.2 24-32.8c11.8-44.6 105.7-94.3 107.6-103.6M128 252.8s-2.8 6-6.2 7.6m19.7 1.4s-3.7 7.2-4.6 10.6m17.5-7s3 9.8.5 14.4m-36.4-40.1c-9.4 5.3 5.4 39 50.1 42.2m-7.2-18.2s-1.2 6 7.2 18c-2.4 13.4 10.2 23.9 15.2 25.6m-26-164.2 1.4-3.6 1.5 4 2.5-.1 1.6-4 1.4 4h2.4l1.5-4.4 2.3 4.2h2l1.5-5 3 3.6 1.2-.4 1-5.2 3.1 3.6 1-.5 1.4-5 2.5 3.7 1.3-.4 1.2-4.3 2.4 4m-39 6.2 18.8-.3c6 0 15.8-8.3 26.7-5.7m-84.9 46s3.1 6.8 7.4 3m-14.6 1.5s-6 16.2 1.2 20m-9.8-37.8s0 3.8 8-2m-32.5 86.7s6.3 2 5.3 6.7m-3-80.8s4 1.9 7.8-4m34.2 189.7c6.1-.4 7.5 2.4 13 2.4 6.6.2 12.9-2.4 21-4.7m53.1 15c-.2 0-3 5.8-.5 8.7m-87.5-8.2s9.8-8 15-3.1c4.9 1.7 7.6 1.4 7.6 1.4m-17.5-21.3s2.4 6.2-5.6 5.3m-2.4 9s5.1 3.2-.7 7.5m3.8 5.8s7 1 2.9 6.7M346 341.6s19 2 20 3.4c2.2-2.3 19.2-16.2-1.7-18.1a19 19 0 0 1-18.3 14.7zm-6.8 9.5c7.1 5.7 4.2 9.1 26.6-5.9m-36.8 13s10.5 11.4 18.2-2.4m-38.3 6.5-14.3 7.5M269 380.3s8.7-7.4 12.7-3.5 21.3-3.4 21.3-3.4M275.5 348s3 6-2.8 6.7m-8.5 11.9s3 5.6-2.8 7m9.5 8.1s9 .5 5.8 7.3m78.4-8.5s-5 4.2-1.3 9m73-39s5.7 2.8-1.1 7.5m-5.7 9.9s4.3 4.5 1.4 8.2m10.6 9s5.9 1.7 5.2 6.6m77.8-11s-5 3.7-2.3 8.4M427 236.3c11.8-1.4 28.8 25 37.5 30.1m51.9-67.4s6 5.3.7 18m10.4-38.2c1.7 1.3 8.1 4.8 12.4 12.8m4.1-52.2-8.3 22.5m17.6-23.6s-1.6 20-4 24M516 198.8c-2.7 8-26.8 12-28.4.2-.9-6 14.2-15.3 28.4-.2z"/>
+ <path stroke-linejoin="round" d="m182.3 101.3 9.3 1.7s-6.5 8.8-9.3-1.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gb.svg b/apps/web/public/flags/gb.svg
new file mode 100644
index 00000000..79913831
--- /dev/null
+++ b/apps/web/public/flags/gb.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb" viewBox="0 0 640 480">
+ <path fill="#012169" d="M0 0h640v480H0z"/>
+ <path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
+ <path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
+ <path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
+ <path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
+</svg>
diff --git a/apps/web/public/flags/gd.svg b/apps/web/public/flags/gd.svg
new file mode 100644
index 00000000..b3d250db
--- /dev/null
+++ b/apps/web/public/flags/gd.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gd" viewBox="0 0 640 480">
+ <defs>
+ <g id="gd-c">
+ <g id="gd-b">
+ <path id="gd-a" fill="#fcd116" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+ <use xlink:href="#gd-a" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#gd-b" transform="rotate(72)"/>
+ <use xlink:href="#gd-b" transform="rotate(144)"/>
+ <use xlink:href="#gd-b" transform="rotate(216)"/>
+ <use xlink:href="#gd-b" transform="rotate(288)"/>
+ </g>
+ </defs>
+ <path fill="#ce1126" d="M0 0h640v480H0z"/>
+ <path fill="#007a5e" d="M67.2 67.2h505.6v345.6H67.2z"/>
+ <path fill="#fcd116" d="M67.2 67.3h505.6L67.2 412.9h505.6z"/>
+ <circle cx="319.9" cy="240.1" r="57.6" fill="#ce1126"/>
+ <use xlink:href="#gd-c" width="100%" height="100%" transform="translate(320 240)scale(52.8)"/>
+ <use xlink:href="#gd-d" width="100%" height="100%" x="-100" transform="translate(-30.3)"/>
+ <use xlink:href="#gd-c" id="gd-d" width="100%" height="100%" transform="translate(320 33.6)scale(31.2)"/>
+ <use xlink:href="#gd-d" width="100%" height="100%" x="100" transform="translate(30.3)"/>
+ <path fill="#ce1126" d="M102.3 240.7a80 80 0 0 0 33.5 33.2 111 111 0 0 0-11.3-45z"/>
+ <path fill="#fcd116" d="M90.1 194.7c10.4 21.7-27.1 73.7 35.5 85.9a63 63 0 0 1-10.9-41.9 70 70 0 0 1 32.5 30.8c16.4-59.5-42-55.8-57.1-74.8"/>
+ <use xlink:href="#gd-d" width="100%" height="100%" x="-100" transform="translate(-30.3 414.6)"/>
+ <use xlink:href="#gd-c" width="100%" height="100%" transform="translate(320 448.2)scale(31.2)"/>
+ <use xlink:href="#gd-d" width="100%" height="100%" x="100" transform="translate(30.3 414.6)"/>
+</svg>
diff --git a/apps/web/public/flags/ge.svg b/apps/web/public/flags/ge.svg
new file mode 100644
index 00000000..ab08a9ab
--- /dev/null
+++ b/apps/web/public/flags/ge.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ge" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="red" d="M272 0h96v480h-96z"/>
+ <path fill="red" d="M0 192h640v96H0z"/>
+ <path fill="red" fill-rule="evenodd" d="M146.8 373.1c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1-14.8-1-14.8-1 3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8 1-14.8 1-14.8-14.3 3-31.1 4zm368-288c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1-14.8-1-14.8-1 3 14.3 4 31.1c-16.9-1-31.2-3.9-31.2-3.9s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.1c16.9 1 31.2 4 31.2 4s-1-10-1-14.9 1-14.8 1-14.8-14.3 3-31.2 4zm-368 0c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1-14.8-1-14.8-1 3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8 1-14.8 1-14.8-14.3 3-31.1 4zm368 288c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1-14.8-1-14.8-1 3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8 1-14.8 1-14.8-14.3 3-31.2 4z"/>
+</svg>
diff --git a/apps/web/public/flags/gf.svg b/apps/web/public/flags/gf.svg
new file mode 100644
index 00000000..f8fe94c6
--- /dev/null
+++ b/apps/web/public/flags/gf.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gf" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/gg.svg b/apps/web/public/flags/gg.svg
new file mode 100644
index 00000000..f8216c8b
--- /dev/null
+++ b/apps/web/public/flags/gg.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gg" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#e8112d" d="M256 0h128v480H256z"/>
+ <path fill="#e8112d" d="M0 176h640v128H0z"/>
+ <path id="gg-a" fill="#f9dd16" d="m110 286.7 23.3-23.4h210v-46.6h-210L110 193.3z"/>
+ <use xlink:href="#gg-a" width="36" height="24" transform="rotate(90 320 240)"/>
+ <use xlink:href="#gg-a" width="36" height="24" transform="rotate(-90 320 240)"/>
+ <use xlink:href="#gg-a" width="36" height="24" transform="rotate(180 320 240)"/>
+</svg>
diff --git a/apps/web/public/flags/gh.svg b/apps/web/public/flags/gh.svg
new file mode 100644
index 00000000..5c3e3e69
--- /dev/null
+++ b/apps/web/public/flags/gh.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gh" viewBox="0 0 640 480">
+ <path fill="#006b3f" d="M0 0h640v480H0z"/>
+ <path fill="#fcd116" d="M0 0h640v320H0z"/>
+ <path fill="#ce1126" d="M0 0h640v160H0z"/>
+ <path fill="#000001" d="m320 160 52 160-136.1-98.9H404L268 320z"/>
+</svg>
diff --git a/apps/web/public/flags/gi.svg b/apps/web/public/flags/gi.svg
new file mode 100644
index 00000000..a5d7570d
--- /dev/null
+++ b/apps/web/public/flags/gi.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gi" viewBox="0 0 640 480">
+ <path fill="#da000c" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v321.6H0z"/>
+ <g stroke="#000" transform="translate(-160)scale(1.875)">
+ <g id="gi-a" fill="#da000c" stroke-linecap="square">
+ <path fill="#000001" stroke="none" d="M196.6 116.3h64v44h-64z"/>
+ <path d="M229.8 153.9h-39l-8.7 5.7v6h47.7m-16.3-37c5.6 0 10.2 4.7 10.2 10.5v14.7h7.3v-56h-40.3v56h12.6v-14.7c0-5.6 4.5-10.5 10.2-10.5z"/>
+ <path fill="#000001" stroke="none" d="M204.5 60h18.6v34h-18.6z"/>
+ <path d="M223 88.7h-16.2v-5.8h-11.9v5.8h-8v-5.8H182v10.4h41m-36.2 0h35v4.5h-35zm14-45.7V83h6v-9.7c0-3.6 2.5-6.6 6.1-6.8h.4a7 7 0 0 1 6.8 6.8V83h5.7V47.6zm-2.3-4.8v4.8h29.3v-4.8zm-3.7-9.1v9.1h35v-9.1h-5.3v4.7h-6.6v-4.7h-10v4.7h-6.5v-4.7zM182 159.6h48m31-2.8h-32.4l-9.8 4.7v7H261"/>
+ <path stroke-linecap="butt" d="M218.8 161.5H262"/>
+ </g>
+ <use xlink:href="#gi-a" width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)"/>
+ <g fill="#f8d80e">
+ <g stroke-linecap="round">
+ <path stroke-width=".8" d="M273.3 150q-3.9 1.6-7.5 3.8a72 72 0 0 0-8.9 6q-1.6 1-2.7 2.4c-1 .8-2 2-1.8 3.5 0 .6.8-.8 1.4-.9a4 4 0 0 1 3.1-.4q2.1-2 4.4-3.4a77 77 0 0 1 13-7.6z"/>
+ <path d="M260.4 157.4v3.9m2.4-5.6v3.9m2.4-5.4v3.8m2.5-5.3v4"/>
+ <path stroke-width=".8" d="m238.9 150.2-1.2 3.3a87 87 0 0 1 15.8 8q2.7 1.6 4.8 3.9c.3.8-.5 1.5-1.3 1.2-.7-.2-1.5-.5-2.2 0-1.1.5-2.1 2.2-.5 2.7 2.4 1.6 6.1.9 7.2-1.8.6-1.4.7-3.2-.5-4.4-2-2.3-4.8-4-7.4-5.7a89 89 0 0 0-14.7-7.2z"/>
+ <path d="m254 158-.3 3.4m3.1-1.7-.8 3.3m3.8-1-1.8 2.6m2.7 3.6-2.6-1.4m3.4-1.4-3 .3m-.8 4-.2-2.6m-1-.3-2.4 1.8m-9.4-15.7v3.1m6.3.3v3.5m-3.2-5.2v3.3"/>
+ </g>
+ <path d="M235.8 227.6v8h5v-4h6.9v4h5.4v-8zm0 11v8H253v-8h-5.4v4h-6.9v-4z"/>
+ <path d="M253 193.7h5v58h-5z"/>
+ <path d="M253 198.7h5v50h-5zm2.6-19.3 10.6 6.2-10.6 6.2-10.7-6.2zm-14.3 4h-2.7v4.4h2.7l14.3 8.3 14.2-8.3h2.8v-4.4h-2.8l-14.2-8.3z"/>
+ <path d="M255.3 164.3a5 5 0 0 0-4 5.1v11.2a5 5 0 0 0 4.6 4.6 5 5 0 0 0 4.8-2.8l-1.7-1a3 3 0 0 1-3 1.8c-1.6 0-2.9-1.6-2.7-3.1v-11.2a3 3 0 0 1 3-2.6c.6-.2 1.5.7 1.9 0 .6-.9-.4-1.5-1-2zm5.8 3.9a5 5 0 0 1-1.9 1.6v7.5l2 1.1v-10.2z"/>
+ </g>
+ <g fill="#da000c">
+ <path fill="#000001" stroke="none" d="M240.8 38.4h29.3v53.2h-29.3z"/>
+ <path d="M238.8 38.4v44.5h9.3V69.7c0-3 2-7.3 7.9-7.3s8 4.3 8 7.3V83h9.2V38.4zm15.8 5h2.8v15.2h-2.8zm-8.3 3h3v11.1h-3zm16.5 0h2.9v11.1h-3zM235.6 32v6.3h40.8V32zm-3.8-7.4V32h48.5v-7.4h-6.1v4h-7v-4h-7.8v4h-6.8v-4h-7.9v4H238v-4zm-9 73.2v4.6h66.5v-4.6z"/>
+ <path d="M220 82.9v15h72v-15h-6.8v5.8H276v-5.8h-12.2v5.8H248v-5.8h-12.2v5.8h-9v-5.8z"/>
+ <path stroke-linejoin="round" d="M228.7 102.4v54.4h12.8v-20.4c0-9.5 6.4-14 14.5-14 7.8 0 14.5 4.5 14.5 14v20.4h12.8v-54.4z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gl.svg b/apps/web/public/flags/gl.svg
new file mode 100644
index 00000000..eb5a52e9
--- /dev/null
+++ b/apps/web/public/flags/gl.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gl" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#d00c33" d="M0 240h640v240H0zm80 0a160 160 0 1 0 320 0 160 160 0 0 0-320 0"/>
+</svg>
diff --git a/apps/web/public/flags/gm.svg b/apps/web/public/flags/gm.svg
new file mode 100644
index 00000000..8fe9d669
--- /dev/null
+++ b/apps/web/public/flags/gm.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gm" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="gm-a">
+ <path fill-opacity=".7" d="M0-48h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#gm-a)" transform="translate(0 48)">
+ <path fill="red" d="M0-128h640V85.3H0z"/>
+ <path fill="#fff" d="M0 85.3h640V121H0z"/>
+ <path fill="#009" d="M0 120.9h640V263H0z"/>
+ <path fill="#fff" d="M0 263.1h640v35.6H0z"/>
+ <path fill="#090" d="M0 298.7h640V512H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gn.svg b/apps/web/public/flags/gn.svg
new file mode 100644
index 00000000..40d6ad4f
--- /dev/null
+++ b/apps/web/public/flags/gn.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gn" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="red" d="M0 0h213.3v480H0z"/>
+ <path fill="#ff0" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#090" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gp.svg b/apps/web/public/flags/gp.svg
new file mode 100644
index 00000000..ee55c4bc
--- /dev/null
+++ b/apps/web/public/flags/gp.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gp" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/gq.svg b/apps/web/public/flags/gq.svg
new file mode 100644
index 00000000..64c8eb22
--- /dev/null
+++ b/apps/web/public/flags/gq.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gq" viewBox="0 0 640 480">
+ <path fill="#e32118" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v320H0z"/>
+ <path fill="#3e9a00" d="M0 0h640v160H0z"/>
+ <path fill="#0073ce" d="M0 0v480l180-240z"/>
+ <g stroke="#000">
+ <path fill="#fff" d="M281.6 191.8h76.6V272c0 27-35.2 6.2-38.2 20.6-5.2-14.8-38.2 6.6-38.2-22.2z"/>
+ <path fill="#73452b" stroke-width=".2" d="M325.4 279.8s-1 1-2.8.2-2-51.4-2-51.4c4-4.4 7.2-5.8 7.2-5.8l2.4 2c-9 4.6-8.2 11.2-7.4 22.6.2 4.2.2 9.6 1.2 14.8 1.4 6.6 4.2 12.2 4.4 16.4.2 2.6-3 1.2-3 1.2z"/>
+ <path fill="#73452b" stroke-width=".2" d="M319.2 221.6h3.6c-3 29-.4 46.2-.4 54.6 0 2.8 1.6 3.8 1.4 3.8-3.6 4-5.4-.2-5.4-.2z"/>
+ <path fill="#a36629" stroke-width=".2" d="M313.6 279.8c-3.4 1.6-3.8-1.6-3.6-2 7.4-15 10.6-48 3.8-51.6l.4-3.2c2.6.8 5 4.2 5 4.2 1 37 0 52.2-.6 52.8-3.6 3.8-5-.6-5.2-1"/>
+ <path fill="none" stroke-width=".2" d="M313.4 279.2c-.6-3.2 5.2-11.4 4.8-20m5 7q2.8 7.4 2.2 13.6"/>
+ <path fill="#009a3b" stroke-width=".2" d="M331 208c1.2-1.4 1.2-1.4 3.4-1.4.4-3 5.4-3 5.8.8 4-.8 4.8 1.6 3.2 4 3.8-1 7.2 0 6.2 4.4 6.8 1.8 4.2 6.6 1.2 7.6-.4 3-3.2 4-7 2.8-4.8 3.4-7.6 2.2-9.8-1.2-5.4.8-5.8-.4-8.2-3.4-4.2 1.8-5 1.8-8.6-.4-.2 2.8-1.2 2-3 1.8q.4 5.6-4.4 4c2.4 5-3.8 7.2-6.8 3-2.8.2-3-.6-4.4-1.6-1.2 4-5.6 3.4-6.4 1.2-5.6-.8-5-3.8-.4-4 .4-3.2 3.2-2.6 5-2.2.2-2 1.4-1.6 2.4-1.2q-1-2 1.6-2.6c-2.6-3.4-1-4.6 1.6-5.8-1.4-3.2 1-3 2.8-3.2-.2-3.4.8-4 4.4-4.4-.4-1.2.2-2.2 2.2-2.2-1.2-3.4.4-4.2 4-3.6.6-5 11.2-2.6 10.4 4.2 3 .4 4 1 4.8 3.4z"/>
+ <path fill="none" stroke-width=".2" d="M309.6 206.2c.8.4 1.8 0 2 2.2 1.6-2.8 3.6-1.2 3.6 2m11-5.8c-.8 1.2-3.8 1.2-3.4 4.4-1-1.4-3-1.8-3.8-.4m12-.6c0 .8-.2 3.2-1 4.4m13.4-1c.2.2-2.8 0-4.2 1m11.6 11c-.8-.4-2.4-1.4-3.6.2 0-.8 0-3-2.2-3m-1.2 5.6c0-2-.4-2.6-.8-3.2m-5.8.4c-1.6-1.2-3.2.6-3.2 1.6m-8.4-3.4c0-.8-.6-2.4.8-3M302.8 230c.4-2 1.8-2 1.6-3-.2-1.6-2-3-4.2-.8m4.2.8q2-.5 2.8.4m-6.2-7.8c.8-.8 2.8-.6 4 0m0-4.8c1 0 2.8-.4 3.4 1.4 2.2-3.4 3.8-3 4.2-2.2m4-.4c1.6-.6 4.4 1 6 3.8.8-2.2 2-1.8 3.2-2m7.6 2c2.6-1.2 4.2 1.2 5 2.2 1.2-1.6 2.2-1.6 3.4-1.6m-32.6 4.2c.6-1 2-1.2 3-.6-.2-1.8 1-2.6 1.8-2.2"/>
+ <path fill="gold" stroke-width=".7" d="m317.4 180.5-4.4.2-2.2 4-2.4-3.8-4.4.2 2-4-2.4-3.7 4.6-.2 2-4 2.4 3.8 4.4-.2-2 4zm-18.8 1.5-4.4 1-1.2 4.3-3.2-3.2-4.2 1 1.2-4.2-3-3.2 4.2-1.1 1.2-4.3 3.2 3.2 4.4-1-1.4 4.3zm-18.2 3.7-4 2-.2 4.4-3.8-2.4-4 2 .4-4.5-3.8-2.4 4-2 .4-4.5 3.6 2.5 4-2-.2 4.4zm42.8-5.2 4.4.2 2 4 2.4-3.8 4.4.2-2-4 2.4-3.7-4.4-.2-2.2-4-2.4 3.8-4.4-.2 2 4zM342 182l4.2 1 1.2 4.3 3.2-3.2 4.2 1-1.2-4.2 3.2-3.2-4.4-1.1-1.2-4.3-3.2 3.2-4.2-1 1.2 4.3zm18 3.7 4 2 .2 4.4 3.8-2.4 4 2-.2-4.5 3.6-2.4-4-2-.2-4.5-3.8 2.5-4-2 .4 4.4z"/>
+ <g fill="#fff" stroke-width=".7">
+ <path d="m365.4 270.4 5 7.2 4.6-6.8-3.2-5.8zm-31.8 21 .4 7.2s2 0 3.8-.6c1.6-.6 3-1.8 3-1.8l-.2-3.8zm-26.8 0-.4 7s-1.8 0-3.6-.4c-1.6-.4-3-1.4-3-1.4l-2-4.8zm-32.2-21-5.2 7.2-5.6-9.2 4.2-4.4z"/>
+ <path d="M299.6 305.8c0 6.8 41.2 6.8 41.2 0v-9.6c0 5-41.2 4-41.2 0z"/>
+ <path d="M262.8 283.6c3.6 18.4 36.8 18.8 36.8 18.8v-6.2c-.8-2.4.6-3.2 6-4 2.2-.2 1.2-3.4 1.2-3.4s-14.4 2.6-24.6-1.4c-13.8-5.6-15.8-16.4-15.8-16.4s-1 8.4-3.6 12.6zm114.6 0c-3.4 18.4-36.6 18.8-36.6 18.8v-6.2c.6-2.4-.8-3.2-6.2-4-2.2-.2-1-3.4-1-3.4s14.4 2.6 24.6-1.4c13.6-5.6 15.2-16.4 15.2-16.4s1.4 8.4 4 12.6z"/>
+ <path d="M265.4 276.6c-9.2-5-2-10.2-1.2-25 1.4 9 11.6 12.8 10.4 18.6-4.2.2-6.2-6.2-8.2.8zm109.4 0c9.2-5.2 1.6-10.2.8-25-1.4 9-11.4 12.8-10.2 18.6 4 .2 6-6.2 8 .8l1.4 5.4z"/>
+ </g>
+ <path stroke="none" d="m271 283.4 1 .8-2.2 2.4q-1.4 1.4-.5 2.2 1 1 2-.4l2.5-2.6.8.8-2.4 2.8c-1.3 1.5-2.5 1.2-3.6.2-.8-.8-1.4-2 0-3.5zm4 3.4 1 .6-.2 4.8 2.2-3.4 1 .6-3.2 5.2-1.2-.6.2-4.8-2.2 3.4-1-.6zm1.8 8.4 2.8-5.6 1 .6-2.6 5.4zm4.4-4.8-2.2 5.8 2.2.8q2.8.9 3.6-1.9 1.2-2.6-1.6-3.9zm.8 1.4c2 .7 2.2 1.5 1.6 3-.6 1.3-1 1.8-3 .8zm5.8.8-3.6 5.4 1.4.4.8-1.4 2.4.6.2 1.4 1.4.2-1.4-6.4zm.4 1.4.4 2.4-1.6-.2zm3-.9-.2 6.2h2.3c2.2.1 2.8-1 2.9-3 0-1.8-.7-3-2.9-3zm1.2 1c2.2.1 2.5.8 2.5 2.3-.1 1.5-.4 2.1-2.6 1.8v-4zm19.8 7.7v6.4h1.4v-2.4s1.2 0 2.2-.2q1.2-.2 1.3-2 0-1.8-1.9-1.8zm1.4 1h1.4c1.1 0 1 1.8 0 1.8h-1.4zm5.8-1-2.6 6.4h1.4l.6-1.6h2.6l.6 1.6h1.4l-2.6-6.4zm.6 1.4 1 2.4h-1.8zm3.4 3.8 3.4-4.2h-3v-1h4.8v1L325 307h3.6v1.2h-5.2zm20.2-12.4 1.2-.2.6 3.6q.2 2-1.3 2.5c-1 .4-2.4 0-2.5-1.7l1-.2q.4 1.3 1 1 .8-.4.6-1.4zm2-.4 1.1-.2.6 3q.2 1.9 1.5 1.7t.9-2l-.7-3.1 1.2-.2.8 3.3c.4 2-.6 2.7-2 3-1.1.2-2.4 0-2.8-2zm6.2 2.8 1-.4c.5.9 1.2.8 1.8.6q1.2-.8.5-1.4c-.6-.3-2 .2-2.7 0q-1.4-.6-1.2-1.7.2-1.4 1.7-1.7 1.6-.6 2.7 1l-1.2.4q-.7-.9-1.4-.4c-.4.2-1 .5-.6 1 .2.5 1.7.2 2.5.2s1.4.6 1.5 1.3q.4 1.6-1.5 2.2c-1.5.6-2.9 0-3.1-1.1m5.4-5-1.6.8-.4-1 4.4-1.8.4.8-1.6.8 1.8 4.4-1 .6zm2.6-2.2 1-.6 2.8 5.2-1 .6zm6.8.4 1.2-.4a2.4 2.4 0 0 1-2.4 3.3c-3 0-3.4-3.4-2.9-4.5.8-1.9 3-1.8 4-.8l-1 .8c-.6-.8-2-.3-2 .4a3 3 0 0 0 1.4 3c1 .4 2.4-.8 1.7-1.8m-.6-4.2 1-.8 3.6 4.8-1 .8zm3.8-3-1 .8 2.2 6 1-1-.6-1.2 1.8-1.6 1.2.6 1-.8zm.4 1.4 2 1-1.2 1.2z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gr.svg b/apps/web/public/flags/gr.svg
new file mode 100644
index 00000000..599741ee
--- /dev/null
+++ b/apps/web/public/flags/gr.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gr" viewBox="0 0 640 480">
+ <path fill="#0d5eaf" fill-rule="evenodd" d="M0 0h640v53.3H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 53.3h640v53.4H0z"/>
+ <path fill="#0d5eaf" fill-rule="evenodd" d="M0 106.7h640V160H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 160h640v53.3H0z"/>
+ <path fill="#0d5eaf" d="M0 0h266.7v266.7H0z"/>
+ <path fill="#0d5eaf" fill-rule="evenodd" d="M0 213.3h640v53.4H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 266.7h640V320H0z"/>
+ <path fill="#0d5eaf" fill-rule="evenodd" d="M0 320h640v53.3H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 373.3h640v53.4H0z"/>
+ <g fill="#fff" fill-rule="evenodd" stroke-width="1.3">
+ <path d="M106.7 0H160v266.7h-53.3z"/>
+ <path d="M0 106.7h266.7V160H0z"/>
+ </g>
+ <path fill="#0d5eaf" d="M0 426.7h640V480H0z"/>
+</svg>
diff --git a/apps/web/public/flags/gs.svg b/apps/web/public/flags/gs.svg
new file mode 100644
index 00000000..29db9b94
--- /dev/null
+++ b/apps/web/public/flags/gs.svg
@@ -0,0 +1,133 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gs" viewBox="0 0 640 480">
+ <defs>
+ <linearGradient id="gs-b">
+ <stop offset="0" stop-color="#d5dfff"/>
+ <stop offset="1" stop-color="#fff"/>
+ </linearGradient>
+ <linearGradient id="gs-a">
+ <stop offset="0" stop-color="#474747"/>
+ <stop offset="1" stop-color="#f50"/>
+ </linearGradient>
+ <linearGradient xlink:href="#gs-a" id="gs-c" x1="109.3" x2="110.9" y1="218.5" y2="173.4" gradientTransform="matrix(1.178 0 0 .50849 388 38.3)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient id="gs-d" x1="125.9" x2="126" y1="316.4" y2="337.2" gradientTransform="matrix(.96067 0 0 .6235 388 38.3)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#b50000"/>
+ <stop offset="1" stop-color="#ffc500"/>
+ </linearGradient>
+ <linearGradient xlink:href="#gs-b" id="gs-e" x1="407.9" x2="456.4" y1="149.4" y2="147.4" gradientTransform="matrix(.4361 0 0 1.37349 388 38.3)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#gs-a" id="gs-f" x1="215.8" x2="229" y1="103" y2="103" gradientTransform="matrix(.57794 0 0 1.03641 388 38.3)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#gs-b" id="gs-g" x1="117.6" x2="78.2" y1="1040.4" y2="1003.7" gradientTransform="matrix(1.9991 0 0 .29962 388 38.3)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#gs-b" id="gs-h" x1="264.7" x2="255" y1="246" y2="226.4" gradientTransform="matrix(.69142 0 0 .86628 388 38.3)" gradientUnits="userSpaceOnUse"/>
+ </defs>
+ <path fill="#006" d="M0 0h640v480H0z"/>
+ <path fill="#6a4c2d" stroke="#000" d="M471 345s-2.6 6.8-4 6.8c-1.6 0-7-3-7-3s-3.9 6.4-6 6.7c-2 .4-7.4-.9-7.4-.9s-5.2 0-5.4-.7c-.2-.8.2-2.3.2-2.3s-7.5 6-9.1 5.6c-1.7-.3-7.3-7.4-7.3-7.4l-1 3.7-10.6-.4-9.3-6s-5.2 8.6-5.4 8.4-9.1 2.1-9.1 2.1l-.6-1.7-6-3.5s4.7-6.5 4.7-6.7-2.2-1-2.2-1l-3.4 2.8-6.9 4.5-6.9-3.2 3-5.6.4-4 5.4-8.3 66.2-64.3 32.6 60.2z"/>
+ <path fill="#fff" stroke="#000" d="m518 348.8 17.3-.6-7.4-3.6 65.7-2.5-9.3-3.5-8.2-11.2-34-2.5s-2.6-2-6.7-1c-.2-2.6-3.4-6-3.4-6l-21-1.7-13 9 8.8 22.6z"/>
+ <path fill="url(#gs-c)" stroke="#000" d="m451 156 1.8-6s3-5 3-7.4c0-2.2 2.3-4.9 2.3-4.9s6.9-2 8.4 2.3c7.4-11.3 16.2-.6 16.2-.6l2.4-2.8 5-6s7 6.5 7 7.6c.2 1.2 1.3.4 1.3.4l7.6-.6a9 9 0 0 0 2.9 8.2c2.7 1.6 5.1 11 5.1 11z"/>
+ <path fill="#656263" stroke="#000" d="M518 226.1c1.4-.8 5.5-2.1 5-8.2s-5.7-6.8-8.7-6.6-5.5 2.8-5.5 2.8l-9.8-6.2s4.9-30.7 10-32.6c5-3.5 5.8-5 5.8-5.8 0-.9-1.8-2.9-1.8-2.9l-31.7-3.7-30 3.5s-2.2 3.6-2 5c.4 1.4.5 2.9 5.8 7 6 4.6 10 30.8 10 30.8s-8.3 4.2-8.9 3.6c-.5-.5-3-1-4.3-.8s-5.7 2.5-5.7 8.2c0 5.8 4.4 9.1 4.4 9.1s28.6-3.3 32.9 4.6c4.1-9.5 31.3-6.2 34.6-7.8z"/>
+ <path stroke="#000" stroke-linejoin="round" d="M548.9 194.2s.3-3.3 2.7-4.9 18.2-2.4 22 0 5.2 14.1 5.2 14.1 2.4 4.1 2.6 7.2c.1 3 .5 5 .5 5s12.6 16.5 12.8 31.4c1.4 10.1 1.1 37.2-2.9 47.5a43 43 0 0 1-5.5 21.3s1.3 2.2 1.1 4.6-1.4 4.6-1.4 4.6l18.5 9.1-6.8-2.5 6.8 5.7-7.7-3.6 4.5 4.6c-.1-.2-11.2-5.1-11.2-5.1l5 4.7-8.5-4s5 5.5 5 5.2l-7.4-3.2.4 2.7s-5.8-.3-5.8-4.6a19 19 0 0 1-4.7-3.8l-13.2-2.2-14.9-44.6 3.5-75.2 1-3.8z"/>
+ <path fill="#fb0" stroke="#000" d="M539 434.8s-7.7-16-11.5-16.3c-3.4-6.6 12-60 41.7-63.1 16.3 1.3 1.3 18.8-9.4 13.4a45 45 0 0 0 6.7 11.5s-21.3 9.2-27.6 54.5zm-102.3 2.3s6.3-18.3 10.1-18.5c3.9-.2-10.1-60.9-40.6-61.3-16.4 1.3-1.3 18.9 9.5 13.5a45 45 0 0 1-6.8 11.5s21.5 9.2 27.8 54.8z"/>
+ <path fill="#00713d" stroke="#000" d="M464.6 323c0-.2-7.6 2.3-2.7 10.5.3-3.2 3.7-5 3.7-5s-5.1 6 .3 11.1c.7-4.8 3.8-6.3 3.8-6.3s-3.9 11.2 0 13.5c.5-4.5 3.3-6.5 3.3-6.5s-3.4 10-.3 12.3c.3-3.8 2.9-5.5 2.9-5.5s-1.5 10.5 2.5 11.2c0-3.7 3-7.3 3-7.3s-1.3 8.5 5 8.9c0-3.2 1.2-6.9 1.2-6.9s2.9 9 7 7.6v-7.7s2.7 8.6 7.7 7c-.7-2.4.3-5.3.3-5.3s2.6 5.4 7.4 3.6c.8-1.6-.2-4.8-.2-4.8s7 7.2 9 2.9c2.2-4.3-5.5-5.8-5.5-5.8h5.2s-1.7-4.4-8.7-5.4c2.4-1 4.9-.2 4.9-.2s-1.5-5.5-8.7-6.1c2.8-1 6-.3 6-.3s-1-5.2-9-6.7c1.3-1.4 4.7-1 4.7-1s-3.2-4.9-6.8-4.6-36-3.3-36-3.2z"/>
+ <path fill="none" stroke="#3ec26d" stroke-linecap="round" d="M496.6 349.5s3 1.4 2.8 2.6m-1.1-4.9s3.7 2.6 3.6 4.5m-.3-5.8s2.9 1.8 3 4.7m1.9-3.6s1.4 3.2 1 3.8m1.9-2.1c.2 2.5-.2 2.8-.2 2.8m-36-18.5s3.5 2.2 3.2 5.3m-3.4-2.7s1.6 1.6 1.3 2.6m3-5.2s2.3 3.2 1.5 5.4m2.4-3.3s1 2 0 3m1.8-2.1s1.2 2 .1 2.7m-1.5 3.9s3.2.7 3.7 3.1m-1.8-5.3s3.4.2 3.8 3.8m.7-5.1s2.3 4 1.9 5.2m2.4-4.8s.9 3.7.2 5m2.6-3.5v4.3m-4.2-10.2s2 .8 2 2.9m-.1-4.8s2.7 1.5 2.5 4.5m.7-5.7s2.3 2.7 1.5 5.8m2.5-5.2s-.8 3.5-.4 4.9m3-2.5s-1.5 1.1-.7 2.6m-12.7 10.8s.5 2.6 0 3m-3.3-4.6s1.6 3 1 4.4m-4.6-4.5s1.9 2.2 1.8 4m-4.8-3.6s1.8 1.7 1.6 2.7m-3.1-.1s1.7 1.8 1.6 2.1"/>
+ <path fill="#fff" stroke="#000" d="m441.3 229.3 24.3-.5s16 0 17.7 5.2c3-6.9 17-6.5 17-6.5l25-.8.5 60.6c-5 23.6-22 40.2-40.7 47.3a62 62 0 0 1-41.2-47.7z"/>
+ <path fill="#006b00" stroke="#000" d="m450 229 35.3 94.2 32-96.2c-10 .6-31.2-1.6-33.9 7.5-4-8.1-26.4-4.9-33.5-5.5z"/>
+ <path fill="#ffc900" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M474 280c1.4.7 1.3-25.5 3.1-26.3l1.4-5.5c-1.5-2.7-8.4-2.6-11-.2l1.7 4.8c3.5 5.6 2.8 27.8 4.8 27.2z"/>
+ <path fill="#cdad56" stroke="#000" stroke-linejoin="round" d="M464.5 77s2.5-2.9 2.6-3.5 11.4-1.2 18-13.7c3.8-6.5 0-2.7 0-2.7L485 54s4.6-4.4 3-6.8c-1.8-2.4-1.2 3-4 3-2.7-.1-1.2-6-1.2-6s-.2-.6-1-1c-1.1.2-.8 2.2-1.8 2.4-1 .3-2-4.7-2-4.7s-1.7-2.3-3.1 4.8c.8 7.7 5.6 6.2 5.6 11.2s-4.3 8.8-5.5 9c-1.3 0-.8-4.3-.8-4.3s-.7-2-1.1-2 2.5-.5 2-6.1c-1-6.8-1.8 1.6-3.6 1.2-1.9-.3-.5-6.2.2-7 .7-.6-.8-3.4-4.8 3.8-.3 3.6-.8-.9-1.6-.6-1.3 2.8-1.1 4.8.8 7.4 2.9 2.7 4.7 5.3 4.6 6.6-.1 1.4-1.6 4.5-3.7 4.5-2 0 .1-3.8 0-5 0-1.3-3.5-5.8-3.5-5.8s-2.4-3.9-2.1-4-.3-.7-1.4 3.3-2.5-2.6-2.5-2.6-1.6 4.9 1.8 7.8c-2.6-.3-2.8.7-2.8.7 0 1.4 3.5 2 4 4.3.4 2.4-3.7 3.8-3.7 3.8s1.7 2.3 6.5-2.3c.1 3-1.8 5-1.8 5 1.6.7 2.8.6 3 2.5z"/>
+ <path fill="#cdad56" stroke="#000" stroke-linejoin="round" stroke-width=".9" d="M449 77s-2.2-3.2-2.3-3.8-10.4.8-15.3-11.8c-3.2-6 0-2.5 0-2.5l.2-2.9s-3.4-4.1-2-6.3c1.5-2.2 1 2.8 2.8 2.8 2.3-.1 1-5.4 1-5.4s.2-.6 1-.9c.9.1 1.3 3.2 2.1 3.4s2.7-3.6 3.3-4.4c.8-.1.7-3.2 2 3.3-.7 6.9-6.4 5.5-6.4 10s3.6 8.1 4.7 8.2c1 .2.7-3.8.7-3.8s.6-1.8 1-1.8c.3 0-3.4.7-3-4.5.8-4.8 2.7.3 4.3 0s-.2-5 .2-5.8c.1-.8 2.4-3.9 3.3 3 .3 3.3 2-2.7 2.7-2.5 1.2 2.6-.5 6-2.1 8.4-2.4 2.4-3.5 5-3.4 6.2 0 1.3.6 2.8 2.4 2.8s.5-2.2.6-3.3 3-4.8 3-4.8c.6-1 .1-2.6.7-3.4 1 0 1.4-1.3 2.3 2.3 1 3.6 2.1-2.4 2.1-2.4s1.4 4.5-1.5 7.2c2.2-.3 2.4.6 2.4.6 0 1.2-1 1.7-1.4 4a4 4 0 0 0 1.1 3.3s-1.4 2.2-5.5-2a7 7 0 0 0 1.6 4.5c-1.4.7-2.4.6-2.6 2.3z"/>
+ <path fill="#ffc900" d="M511.3 243c-2-1.8-2.3-.2-3.4-.6q-.7-.4-1.3-1.1-.6-.6-1.4-.8l-.6 1.7c-.2.6.6 1.5.6 2.4q-.1 2-2.3 2.7c.5-.9.7-.9.6-2 0-.5-1.6-1.5-1.4-2 .2-.9.7-1.8.4-2.7-.7.5-1.5.2-2.2.5-.5.3-.6 1.3-1.3 1.7s-2.5.2-4-.6c.9-.7 1.6-.2 2.5-1 .4-.2.4-1.7.9-2l1.9-1-.8-1.6c-.4-.5-2.1-.4-2.5-.8-.8-1-.7-2.1-1.4-3 2 .7 1.7 1.7 2.2 1.6q1.6-.7 2.5-.3c.9.4 1.4 1.5 2 1.7l.6-1.9c.2-.6-.8-1.5-.7-2.1.4-1.1 1.4-2.1 1.8-3.3l.4 3.1c.1.6 1.2.9 1.2 1.4.1.6-.5 1.8-.5 2.4l2-.2c.7-.1 1-1.5 1.6-1.6 1.2-.2 2-.1 3.3 0-1 .9-1.6.8-2.1 1.6-.5.3.1 1.4-1.1 2.2-.5.3-1.8 0-2.2.3l1.2 1.3c.4.5 2.1.7 2.5 1.2q1.3 1.4 1 2.9zm-54.3 1c2-1.9 2.3-.2 3.4-.7q.7-.3 1.3-1t1.4-.9l.6 1.8c.2.5-.6 1.5-.6 2.3.2 1.3.7 2.3 2.3 2.8-.5-1-.7-1-.6-2 0-.6 1.6-1.6 1.4-2.1-.2-.8-.7-1.8-.4-2.6.7.4 1.5.2 2.2.4.5.3.6 1.3 1.3 1.7s2.5.2 4-.6c-.9-.7-1.6-.2-2.5-.9-.4-.3-.4-1.8-.9-2-.4-.4-1.5-.8-1.9-1.1l.8-1.6c.4-.5 2.1-.4 2.5-.8.8-1 .7-2.1 1.4-3-2 .7-1.7 1.7-2.2 1.6q-1.6-.6-2.5-.3c-.9.3-1.4 1.5-2 1.7l-.6-1.9c-.2-.5.9-1.5.7-2-.4-1.2-1.4-2.2-1.8-3.4l-.4 3.2c-.1.5-1.2.8-1.2 1.3-.1.6.5 1.9.5 2.4l-2-.2c-.7 0-1-1.4-1.6-1.6-1.2-.2-2-.1-3.3.1 1 .8 1.6.8 2.2 1.5.4.4-.2 1.5 1 2.2.5.3 1.8 0 2.2.3l-1.2 1.4c-.4.4-2.1.6-2.5 1q-1.2 1.5-1 3"/>
+ <path fill="#ffc900" stroke="#006b00" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M509.4 249.2c-1.9 1.5-14.3 4.6-14.4 15.3s2.2 13.2-.1 13.5c-4.5 0-5.1-12-5-17.3s.3-4.5.3-4.5 3 .8 2.8 3.4 3-6.4 1.9-8.8c2 2 4.7 1.2 4.7 1 0 0-1.5-1.7-2.2-3-.6-1.1 2.3.8 2.3.8s.2-2-2.4-2c-3.3 0 .5-1 .5-1s2 1.7 3.2-.2a11 11 0 0 0-3.4-2.3s-1.8-3.4-4.2-4c-2.8-.7-2.5 1.2-5.7.9-.6 1.2-.6 1.4.7 1.8-2.2 1.5-1 4.4-1 4.4s3.4-1.4 3.3 1c-.1 2.5-2 2-3.3.5-1.2-.6-1.6.7-1.6.7l1.8 2s-3.4-.2-4.3 2.1c1.9-.1 3 .4 3 .4s-4 1.8-4.4 2.7-.5-1-.7-1l-3.8-1.4-1.3 5.9s2.6 2.5 4 1.7 4-3.3 5.5-2.6c-4.5 3.4-9 8.3-11.4 9-.6-.6-2.8-2.7-3.7-1.6-.9 1-.2 2.4 1 2.3 1-.2-3.8 1-2.8 3.1 1 2 1 1.9 1.8 1.4 1-.6-.7-.7 2.6-1.7s3.2-1.9 3.2-1.9-.7 1.5-2.5 2c-1.7.3-3.1.3-2.8.9.4.5 1.2 1.5 1 2-.3.6 3.6-2.8 4.7-.1 2.6-.2 4.4-3.4 3.1-5.3.2 2 1.4 2.7.7 3.7-.8.9 6-3.2 2.7-5.6.8 2 1 3.6 1 3.6s1.5 0 1.9-.6-.8 1.5-.3 1.9 3 2.7 2 4.3c-.7-1-.8-2.4-1.6-2.3s-4 2.5-5.9 2.6 2.3 7 2.3 7-2.9-.3-3.3 0-2.3-2.5-2.6-.9c-.7 2 .6 1.2.6 1.2s-1.7-.8-2.6.2-1.7 1.9-1.1 2.3 3.4.4 3.8.3-3.2.2-3.4.6c-.3.4-.8 2 0 2.5.7.5 2.7-.3 2.8-.7s.2 1.5.2 1.5 3.3.3 3.3-3.1.3 2.4.3 2.4 3.3.6 3.4-2.8.4 2.3.4 2.3 2.2-.7 2.2-1.2-.1 6.7-1.7 8.8c-2.4-1.6-4 1-4 1s.2 4 0 5 1.6-.6 1.7-1c.2-.4 2.5-1.5 2.6-1.7l.8-1.7s-.6 2-1.4 2.2c-1 .3-1.8 1.2-1.4 2 .3.9 1.7 1.4 2.2 2.2s2.3-4.7 2.3-4.7l.2 1.2s2.3-.6 2.5-1.7c.3-1-2.4-2-.2-3.8s0 1.7 0 1.7.7 2.6 1.2 2.6 1.8-5 .6-6.2 1.9 1.5 1.9 1.5 1.8-5-.2-5.7l-2.8-1s1-1.3.5-1.4c-.5-.2 2.7 3 3.2 2.1s1.3-3.2-2.4-4.6-.1-5.1-.1-5.1 2.3 2.7 4 1.2c1.6-1.5-.2-1.5-.2-1.5s4.7-3 4.9-4.5c-1-.1-2.5.1-2.5.1s2.7-1.7 2-4.6c-1 1.5-2.4 1.5-2.4 1.5s2.3-2.3 2-4.5c-1.4 1.1-1.3 2-2.2 1.7s-2.4-8.9 1.1-9.4c3.6-.6 1.7 4.2 1.8 4.2s5.4-2.2 0-5.7c1.3-.4 4 2 4 2s-1.2-6-7-2.3q2-2.4 3.5-2.2c1.2.3 5.3-.1 5.3-1.3-1-.8-3.2.4-4.4 0-1.1-.4 8.2-1.1 7.4-5.7"/>
+ <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M469 252.7s5.1-2.9 7.6.7m2.1 5.4c-.1 0-1.8 1.8-2.2 1.8m5.6 3.9s4.8.4 7.8-4.6"/>
+ <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M487.2 263s.4 2.7 1.2 2.7-1.3.7-2 .2c.8 1.2 1.3 3.4 0 4.2"/>
+ <path fill="#e80000" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M484.8 297.3s-1.6 1.9-3.7 2"/>
+ <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M486.7 288.6s-1-5.5-.4-6.8c.4-1.8 2-2.5 3.4-4.8"/>
+ <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width=".5" d="M486.2 284.6s-1.3 3.3-6.9 2.2m8.4-10.3s.4 4.3-4.7 2.7m-1.5-22.2s-2 1.8-1.3 4.4"/>
+ <path fill="#006b00" d="M489.1 252.1s2.7-1 3.2-1.6a8 8 0 0 0 1.7-2.4c.2-.8-1.8-2-.8-3.8q1-1.4 3 0c1.6 1-1.3-3-2.8-3.2-1.6-.1-2.6 1.1-3 .8-.4-.2.1 1.1-.5 1.1s1.3 1.1 1.2 1.8 2 3 1.9 3.5-3.2 3.7-3.9 3.8"/>
+ <path fill="#ffc900" stroke="#ffc900" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M491 243.2q1.6-.5 1.2 1z"/>
+ <path fill="#e80000" stroke="#006b00" stroke-linejoin="round" stroke-width=".5" d="M483 303.7s-.5 2.9.5 3.1q.1-1.6.5-2.1zm-2.5-3.5c-1-.1-2.5.8-2 1.8.7-.7 1.4 0 2-.7v-1zm0-2s-1.5-.2-1.7.9q1.4-.4 1.7 0z"/>
+ <path fill="#e80000" stroke="#006b00" stroke-linejoin="round" stroke-width=".6" d="M474.1 282.2s1 .3 1.2 1.3c.7-.4 1-2.6-1.2-1.3zm-2.3 2.4s2-1.2 2.1 0l-.8.7c-.3 0-.8-.8-1.3-.7zm-.1 3.9s1.2-1 1.6-.4c.5.8-.4.7-.4.7zm-1.7-21.9s-1.5-.6-2.1.5c1 .2 1.3.5 1.8.9-.2-.5-.4-1.2.3-1.4zm-2.9 8.3s0-1.9 1-2.6q.5.4.8 1.2c-.6.2-1.4.2-1.8 1.4zm3.9-1.3s-1.6.8-1 1.7c.5-.7 1.1-.5 1.1-.5v-1.2z"/>
+ <path fill="#ffc900" stroke="#006b00" stroke-linejoin="round" stroke-width=".6" d="M468.7 255.8c-.6.7.7 2.2 2.1 2 .4-1.6-1.7-2.5-2-2z"/>
+ <path fill="none" d="M468.7 252.6c-.3.8.9 1.9 1.5 1.6.3-.8-1.2-2.2-1.5-1.6"/>
+ <path fill="#e80000" stroke="#006b00" stroke-linejoin="round" stroke-width=".6" d="M470.2 254.6s.3 1.3 1.5 1a4 4 0 0 0-1-1.9c0 .3.1.8-.5.9zm.8 3.7s.7.8 2-.7c-.6.1-1.6-.4-1.6-.4s0 1-.4 1.1z"/>
+ <path fill="#ffc900" stroke="#006b00" stroke-linejoin="round" stroke-width=".6" d="M468.6 252.8c-.5.7.3 1.7 1.7 1.5.3-1.7-1.3-2-1.7-1.5z"/>
+ <path fill="url(#gs-d)" d="M469.2 246.3s5.5-1.6 8.4.8c3 2.3 3 .2 3 .2s4.2 1.6 5.4 1.2c1.2-.3-.9.2.8-.9 1.7-1-3.4.3-3.8-1.9-.8-1.3 0-3-1.7-2.4-1.2-1.6.8-2.7.3-4.4-1.2 1-1.9-.3-2.9 2-2.3-.5-.3-3.8-2.9-4.1 0 2.3-1.9 2.4-2 3.8-1.1.8-6 3.7-4.6 5.7"/>
+ <path fill="#c01500" stroke="#000" d="M406 425c3.6-1 22.9 4.2 30.3 12.2-1.6-14.3-5.5-25.1-5.5-25.1s-11.5-3.3-13-1.7a81 81 0 0 0-11.8 14.5zm-5.9-65.7q-2 .1-4 3.4c-1.6 3.8-2.7 13.5-5 15.8-2.2 2.2-4.3 2.4-4.3 4.5 0 2 .3 6.7 6.3 8.5 6.1.3 15.8-9.7 15.8-9.7s5-5.4 7-11.2c-11.7 4-20-6.8-15.8-11.3zm169.6 63.4a53 53 0 0 0-30.4 12.1c1.6-14.1 5.5-25 5.5-25 1.3-.3 11.3-3.2 12.8-1.6 2.3 2.4 9.7 9.7 12.1 14.5zm5.5-65.3c1.3.2 1.8 2 3 4.2 1.5 3.9 3 9.4 5.3 11.6 2.3 2.3 4.3 5.6 4.3 7.6s-.5 4.8-6.5 6.6c-6 .2-14.8-7.6-14.8-7.6s-5-5.3-7-11.2c11.7 4 19.2-6.3 15.7-11.2z"/>
+ <path fill="#fb0" stroke="#000" d="M393.4 412.5s12.1 8.4 12.4 12.2c32.7-48.5 116.1-63.6 163.7-3.4 6.3-8.3 12.8-11 12.8-11-50-65.4-149.7-57.3-189 2.2z"/>
+ <path fill="#1e5aa6" stroke="#000" d="m517.4 227 4.8-.1-8.5 10.8 10.2 11.9-20.1 25.3 19 22.8a58 58 0 0 1-7.8 14l-10.9-12L524 275l-16.2-18.4zm-68.1 2.2h-5l9.5 10.4-10.1 12.6 21 22.8-17.4 23.3c2 5 5 10.8 8.3 15l10.3-13.1-21.2-23.6 15.5-19.7z"/>
+ <path fill="#1e5aa6" stroke="#000" d="m473 290.4-7.6 10 26.8 31c4.8-2.4 8.5-5.1 12.5-8.4l-14-16.1 5.7-16.7 8.2 9.4-25.5 32.6q-6.6-2.7-13.3-8.2l13.5-17.1zm-8.3-15.5 4.8 6.1-3.1-8.3zm34.9 5.4 4-5.2-1.5-2z"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M556 195s4.8-4 8.1-4"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M556.7 194.5c.1-.1 28.1-4 29-5m-28.9 5.2 31.4-2.7m-31.5 2.8s33.3-1.5 35.3.2"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M556.6 194.7s32.6.3 33.2 1m-33.1-1 31.4 2.6m-31.7-2.3s32 2.8 35 6.8"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M593.1 207.5c0-.1-10.8-12.9-36.8-12.7"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M556.4 195s18 1.3 23.7 7.6"/>
+ <path fill="none" stroke="#fff700" stroke-linecap="round" d="M556.7 194.8s11.7-2.2 23.9 12.5"/>
+ <path fill="url(#gs-e)" stroke="#000" d="M549.4 208.2s16.1.6 16.1 2.2-12 4.6-12.2 11.2c-.1 6.7 9.2 7.2 9.9 15.6.6 8.4-7.3 9.6-9 11.9-1.5 1-5.3 13-4.8 20s2.5 30.5 6.2 35.3c2.8 2.2 7 9.3 11.7 7 4.6-2.1 1.4-10.2 1-12.4-.5-2.2 1.8-5.9 1.8-9.2 0-3.4-1.7-6-1.5-6.8s12.8 3 12 15.5-5.9 8.7-5.9 8.7 1.6 15.4-2.3 17.4c-7.2 3.8-12.4-.8-12.4-.8l.7 3.2-5.5-2.8s-7-10-8.5-14.5a126 126 0 0 1-2.9-28.5c.7-4.3 1.1-29.3.8-30.6-.3-1.2-1.6-22.1-.8-25.3s5.7-17.1 5.6-17.1z"/>
+ <path fill="#ff7000" stroke="#000" d="M532 204s11.2-10.9 17.7-9.6c3.3 0 .2 2.4.2 2.4s5.7.4 6.5 3c.1 1-2.7 1.4-2.7 1.4s2.3.5 2.5 2.5c.2 2.1-24 .5-24.3.4z"/>
+ <path fill="none" stroke="#000" d="M532.6 203.6s12-1.6 17.1-6.7"/>
+ <path fill="none" stroke="#000" d="M544.8 200.3s8.9-.4 8.9 1"/>
+ <path fill="#fff" stroke="#000" stroke-linejoin="round" d="M576.3 329.9s7.6-1.8 9.7-4.5c1.2-1 7.9 10-9.7 4.5z"/>
+ <path fill="none" stroke="#fff" stroke-linecap="round" d="M574.3 267s1 5.8-1.8 9.8c-1.4 1.6-5.7 4.3-5.7 6.2s1.6 4.4 1.3 6.6-2.7 4.5-2.6 6.4c0 1.9 2.7 12 2.4 12.2m-7.6-60.2s-6 2-7.3 8"/>
+ <path fill="#c75b00" stroke="#000" d="M557.8 200.3s2 5.7 8.7.3c-4.3-5.9-8.7-.2-8.7-.3z"/>
+ <path d="M562.7 200q0 .5-.7.6t-.7-.6.7-.5q.6 0 .7.5"/>
+ <path fill="#fff" stroke="#000" d="M503.4 187s12.6 13.7 20.7 13.5c1.5 4-3.7 7.8-5.7 9.5-4.2-1.3-8 .3-17.6-11.6.6-7.6 2.7-11 2.6-11.4zm17-31.8c1.7-5 5-9 7.8-9.5-.8-3.8 5.9-20.9 25.3-27.4 1.2 8.7-8.3 17.4-8.3 17.4s28.7-5 34.5-12.2c-.6 3.2-6.4 23.6-37 23.4 11.6 11-3.7 19.8-10.2 17.1 12-9.2-3.5-14.7-12-8.8z"/>
+ <path fill="#cccccd" stroke="#ccc" d="M530.2 148.1c5.8-3.7 7.9-3.7 12.7-3l-3.5.6s-.3.5 1.8 2.4c-2.4-.6-4.4-2-11 0z"/>
+ <path fill="none" stroke="#000" d="M528 145.7s11.4-6 17.8-10.2"/>
+ <path fill="#00f" stroke="#000" d="M518.2 210s15.7 4.3 17.5-18.2c-3.4-9.8-8.1-31-.9-37-6.6-4.6-14 .2-14 .2-.4 1-6.3 9.5 1.7 24.3-19-5-11.3 13-11.3 13 .8-3 10.9-5.6 13.4 8.8 1 3.6-6.8 9-6.4 9z"/>
+ <path fill="#00f" stroke="#000" d="M535.9 192s16.6-9 16.2-30c-14.2.4-19.2 18.6-19.2 18.6z"/>
+ <path fill="#fff" stroke="#000" d="M461.3 190.9s-12.3 10.7-19.3 7.3c-5.1 3-11.2-2.4-11.2-2.4s7 26.3 32.6 7.3a61 61 0 0 0-2-12.2z"/>
+ <path fill="#00f" stroke="#000" d="M441.9 197.7c1-5.5 5.3-8.2 8.8-3 4.6 1 9.2-18-7.2-14.8 4.6-24.7-9.2-33.9-9.2-33.9s-4.9 27.4-2.6 32.4c2.2 5-3.3-9.3-21-13.4-.3 20.7 19.8 30.3 19.8 30.3s5.6 5.2 11.4 2.4z"/>
+ <path fill="none" stroke="#000" d="M443.5 179.7s-7.7 6.6-6 15.5m-5.7-16.3s-1.8 6.3 2 15.4"/>
+ <path fill="none" stroke="#000" d="M430.6 196.4s3.6-5.8 11.3 1.6"/>
+ <path fill="#fff" stroke="#000" d="M432.1 156.3c0-.2-11.7 0-4.8 11.9-5.1 1.6-16.7-6-8.7-16-26.3-.7-37-13.3-37-24.9 7.7 8 26.2 4.8 32.7 9.7-8-7.4-6.4-17.7-6.4-17.7s22.4 6.7 26.4 26.6c-1.3 3.9-1.9 10.7-2.2 10.4z"/>
+ <path fill="none" stroke="#000" d="M414 136.5c4.4 4.4 15.5 5.7 21.1 10.6"/>
+ <path fill="#cccccd" stroke="#ccc" stroke-width=".7" d="M419.2 149.5s9.2-1.2 11.9 2c-3.6 0-4.8-.9-10 1 1.4-.7 1-2 1.8-2s-3.3-1-3.7-1z"/>
+ <path fill="#923f00" stroke="#000" d="M465 77.5s5.1-4.5 10.6-.5c-2.5 7.4-11.4 4.6-11.4 4.6s.3 3.7-.6 5.5c1.8 1.4 3.2 5.8 3.2 5.8s9.2-2.2 11.2 1.8c3.5-.5 6 0 6 0s7.2-1.8 9.7-1.8 10.5 2 11.3 3.6c.7 1.4 3.4 11.4 5.2 11.2 1.8-.1-4.3 2.4-6-.1-1.6-2.5-1.1 3.3-1.1 3.3s5 5.3 5.6 6.5-3.1 10.8-.3 17.5c-2.5.2-2.7 2.8-2.7 2.8-.1 3-3.8 3.7-3.8 3.7l-1-4-2.4 1.5 1-3.1s3.4-8.3 3.7-11-3.1-7.4-5.8-7.4-4.6 8.5-4.6 8.5-1.3 6.3-.9 7l-1.8-2.1s-1.1 3.8-2 5c-1 1.2-2.9 1.6-2.9 1.6s-1.3-3.8-.8-5.3 7.2-7.3 6.6-11.4 0-3.2-.1-3.3c-.2-.2-3.6-3.1-3.7-4.8s-4.5 2.1-10.1 1c-1.7 3-2 10.5-2 10.5s-.5 9 .6 10c1.2 1.1-3 3.3-3 3.3l-2.9 4-1-2.3-2.1 1.5 1.2-3c-.1-2.3 2.9-8.4 2.9-13.6s.3-10.8.3-10.8-5.4-.3-5.3 5.4c.1 5.6-1.3 6-1 7.5.3 1.7 1.7 6.3 1.3 7.6-.4 1.4-2.2 1.8-2.2 1.8l-.5.7s-5.5 2.6-5.3 3.6l-.2-3-.3-4.3s3.3-2 3.3-7.2-.7-6-.6-7.2.9-5.5.7-6c-.1-.4-3 1.3-4 1.3s1.7-3.1 2-5.4c.3-2.2-3 2.1-5.7-.4 1.3-2.7 3.1-3.6 3.4-5.6.3-2.1-2 1.7-4.1.2.2-2 2.2-3.7 2.2-3.7s-1.7-.2-2.4 0c-1.3-.4 1.5-2.5 1.7-5.5s-1.7-4.1-1.7-4.3c0-.1-3-2.6-3.4-3.7-.4-1-.4-2.2-.4-2.2s-5 3.6-10.7-4c5.3-4.5 11-1.2 11-1.2s1.5-4.2 8.3-3.9 8.2 4.2 7.9 3.8z"/>
+ <path fill="#00f" stroke="#000" d="M502.4 154.2c.1 0 12.6.4 12.7 7.1.2 6.7-3.8 5-4 5l-9-1.2z"/>
+ <path fill="#fffeff" stroke="#000" d="M490.3 152.4s15.6-.1 14.7 6.7-4.8 5.4-4.8 5.4l-7.6-.6z"/>
+ <path fill="#00f" stroke="#000" d="m481.5 151.7 9 .7s5.5.7 5.2 6c-.2 5.1-5.5 5.2-5.5 5.2l-8.8-.5z"/>
+ <path fill="#fff" stroke="#000" d="M460.4 154.2c-.2 0-12.6.4-12.8 7.1 0 6.7 3.9 5 4 5l9.1-1.2z"/>
+ <path fill="#00f" stroke="#000" d="M472.5 152.4s-15.6-.1-14.7 6.7c.8 6.8 4.8 5.4 4.8 5.4l7.5-.6z"/>
+ <path fill="#fff" stroke="#000" d="m481.3 151.7-9 .7s-5.5.7-5.3 6c.3 5.1 5.6 5.2 5.6 5.2l8.8-.5z"/>
+ <path fill="#5e0043" stroke="#000" d="M505.4 226.7s6.5-9.5 9.3-8.5c2.4.8.5 8.2-.6 8.9zm-44.4 1.7c-2.1-2.8-5-10.7-7.8-8.5-2.4.8-.6 8.2.6 8.9z"/>
+ <path fill="none" stroke="#000" d="M465.2 209.5s12.7 7.8 16.8 8 17.3-10.1 17.3-10.1"/>
+ <path fill="#5e0043" stroke="#000" d="m466.5 179 2.4-3 12.1 6 12.4-5.5 2.4 2.6-13.8 9.7z"/>
+ <path fill="#474747" stroke="#474747" stroke-linejoin="round" d="M456.8 178.8a51 51 0 0 1 10.3 18.7c1.4 7.9-.8-10.9-.8-10.9s9.7 4.8 10 7.8 4.6-.2 4.8-.7l-28-18.2zm48-.5s-10.2 13.4-9 28c-2.1-7-.4-18.5-.4-18.5l-2.2 1.4s-2.4 9.9-5.3 11.4q-.6-1.7-.4-1.6c.2.1-3.1 4-3.7 4.4s.2 13.7.2 13.7 1 9.6 2.2 9.5l-3 1.7-1.3-25.6 2.9-2.9s3.8-4.7 4.1-9.2c-1.6 1.4-3.5 1.8-3.5 1.8s-.5 6.5-2 7.4c-1.6 1-1.6 2.6-1.6 2.6l-.4-8.5z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" d="m481.4 193.8 2 40.5"/>
+ <path fill="none" stroke="#000" d="M456.5 213.2s4.7 2.7 6.4 11c15.2-1.1 20 4.2 20 4.2s12.4-6 18.2-4.8c2-4.3 7.8-9.7 7.8-9.7"/>
+ <path fill="#b4b6b9" stroke="#000" d="m450.2 173.5 31.2 20.4 28.2-18.9s5.8-3.2 5.3-5.5c-.5-2.4-2.5-1.5-3.5-1-1 .3-29.5 20.5-29.5 20.5l-30.2-19.2s-2.2-.7-2.6.8c-.4 1.4.8 2.2 1.1 2.9z"/>
+ <path fill="#474747" stroke="#474747" stroke-linejoin="round" d="M506 168.2s-8-3.4-8-.5c0 3 .3 3.3 1.6 5.2 1.3 1.8-1 3-1 3l-.8-2c-.4-1.3-4.7-2.2-5-3.8-.5-1.5.8-3.9-1.7-4.2-2.6-.3-5.1 1-5.6 4a61 61 0 0 1-3.9 9.8l.5-15.6c5.6.4 16 1.6 24.1 2.6-2.4-.4 1 .1.8 1-.2.6-1 .7-1 .5zm-28.2-3.9a37 37 0 0 0-10.4 1.9c-1.8 1 3 2.7 2.3 4-.6 1.5-.7 4.4-3 3.8s-9.8-4.4-10-5.7c-.3-1.2-1.8-1.3-1.8-1.3s21.8-3 22.9-2.7z"/>
+ <path fill="none" stroke="#000" d="M481.2 162.5v19.1m-14.7-41.7-9 14.6"/>
+ <path fill="url(#gs-f)" stroke="#000" d="M482.6 139.5s3.8 5.2 3.4 6.7c1.5 1.2 3.3 6 3.3 6"/>
+ <path fill="none" stroke="#000" d="M497.3 138.7s-8.2 11.6-8 12.5"/>
+ <path d="M455.1 83.4q-.5 1-2.3.6-1.8-.7-1.7-1.8c.2-.7 1.3-1 2.4-.6 1 .3 1.8 1.1 1.6 1.8m3.4-.2q.5 1 2.3.5t1.7-1.8c-.2-.6-1.3-.9-2.4-.5-1 .3-1.8 1.1-1.6 1.8"/>
+ <path fill="#ff7000" stroke="#000" stroke-linejoin="round" d="M555 324s-3.2.5-3 .8c0 .3-9 .6-9.1.3-.2-.3-1.4 1.5-1.4 1.5l1.5-.9s2.2 2.3 2.8 2.1c.7-.1-.3 1 0 1.1.1.2.8-.4.8-.4l14.8-.2zm5.4 4.5-12 .4s-3.1 2.8-3.3 3.4 2 .9 2 .9l.6 2.3 1.6-.6s10.3 1.5 19.7-.6c4.8-1.6 5.7-3.6 2.3-4.9-3.3-1.2-10.8-.8-10.9-.9z"/>
+ <path fill="url(#gs-g)" stroke="#000" d="m519 353.4 21.7-1-4-3.4 59-2.4-2-4.7-66.1 2.7 8 3.7-18 .5.6 1.9-4.7-.2s5.3 2 5.4 3z"/>
+ <path fill="url(#gs-h)" stroke="#000" d="M543.4 232.9c-1.7-.9-9.4-2-17.9 3.6l.4 19.6s12.5-6.7 18.5-5.2c-.3-6-.3-13.8-1-18z"/>
+ <path fill="none" stroke="#000" d="m422.7 292.4-51.4 51m74.4-50.7-41.8 55m39.9-69.3-55.7 67.5m-1.7-.9 5.4-6.4m62.6-26.3-21.6 29.8m-.9 3.9.5 11.4m31.9-34.7-23 28.8m18.9-2.3 9.3-15.3m-5.7-2.9-11.2 12.6m7.8-24.6-7.6 9.3m-2.3-22.9s-23.3 34.1-22.9 37m20.5-41.4c-.6.3-20.1 26.2-20.1 26.2m-1.1 8.2-3.6 4.3m-4.5 6.5-5.4 7.1"/>
+ <path fill="#8a9396" stroke="#2b2b2b" d="M420.2 213.8s-1.6 5 0 7.5 11.5 22.5 11.5 22.5 6.8-8.3 9.3-8.5c2.4-.3 1.3 21.6 1.3 21.6s-4 3.8-6.5 3.6 6 8.6 5.8 16-11.2 44.5-15.3 45.1c-4 .7 1.8-6.7 1.6-8.8-.3-2-1.4-.6-2.3-2.9s1.4-5.6 1-7.9c-.5-2.2-2.6-1.8-2.8-3.4s1.4-2 1.1-3.8-2.7-1.4-2.4-3c.2-1.5.4-.8.2-3.8-.2-2.9-.7 2-3.2 2.3s-4.5 5.9-4.5 5.9-5 7-9.9 3.8c3 6.3.7 9-.5 9.2-1 .3 1 5-1.8 5.2s2 10.6-1 11.5c3.3 1.6.6 3.6.6 3.6s-7.8.7-6.1 10.9c-23-8.2-34.3-22.1-34-36.4s4.7-27 15.7-31.7c3.2-11.8 8.6-24.4 8.6-24.4s-.9-5.2-.2-8.6a17 17 0 0 1 3.8-6.7s-.4-8.2-.2-12.2 1.8-5.9 2-8.1c.2-2.3-.7-13.8 1.6-15.8s6.5-1.8 8.8-3.2c2.2-1.3 5.2-3.8 8.1-3.6 3 .2 5.4 2.3 5.4 2.3s11 0 11.7 4.2-2.2 6-2.2 6 1.6 6-5.2 11.6z"/>
+ <path fill="#cecfcf" stroke="#2b2b2b" d="M410.4 198.2c.3.7-.5 1.8-1.8 2.5s-2.7.8-3 .2q-.4-1.2 1.7-2.5c1.4-.8 2.7-.8 3-.2z"/>
+ <path d="M408.5 199.4q-.1.7-.8.7t-.9-.7q0-.8.9-.8.7 0 .8.8"/>
+ <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M425 206.8s2.7 12.2-.5 20.7m1.4-26s5.3 7 4.6 15.8m-4.1-17.3c.1 0 4.5 3.7 4.3 6.3m-3.3-7.9s3 2 3.6 4.1"/>
+ <path fill="none" stroke="#000" d="M426 197.2s-10.5 17-9.1 27.7"/>
+ <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M426.7 196.6s-14 8.3-16.5 35.4"/>
+ <path fill="none" stroke="#000" d="m425.2 201.6-5.6 4.2"/>
+ <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M405 233.5s7.8-32.2 21.5-36.9"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" d="M431.9 244.4s7.4-9.3 9.1-9 1.2 21.6 1.2 21.6-5.5 4.1-6.7 4c-1.2-.2 6.2 10 6 13.7-.1 3.8-.3 3.8-.3 3.8s0-2.2-1.7-5.8c-1.8-3.7-.7-7.8-12-17-2.7-5.6 5.6 3.5 7.3 2.1s-3-13.2-3-13.4z"/>
+ <path fill="none" stroke="#2b2b2b" d="M418.7 192s-3.1.8-3.5 2c-.5 1.4-2.3 2.6-3.3 2.2s-2.8-2-2.8-2"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" stroke-linejoin="round" d="M401 202.9s-4.7 4.6-2.4 5.2 4.7-3.7 4.7-3.7 0 7.3 2 6.1c2-1.1 7.7-5.2 7.7-5.2s2-.2 2.5 0c.4.1 5.3 4.4 8.6 2.8-1.9 4.8-4 5.4-4 5.4s-3.4 4.4-7.8 3.4-5.5-2.8-5.5-2.8-3.7.2-4.8-1.5l-1.6-2.6s-2 2-2.7 1c-.5-1 0-6.7 3.3-8.1z"/>
+ <path fill="none" stroke="#2b2b2b" d="M427.5 196.4s-8.6-2.6-11.6 1.7-2.3 6.6-.7 7"/>
+ <path d="M428.8 196.1c0 1-.7 1.9-1.6 1.9s-1.6-.9-1.6-1.9q.1-1.7 1.6-1.8 1.5.2 1.6 1.8"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" d="M403.7 218.2s3.5 5.4 7.7 6.9-3 2.7-7.1 0c-3-4.2-2.2-7.2-2.2-7.2s.8-.8 1.6.3zm30.1 31.9s-9.9-13.7-12.7-14.5c-2.9-.7 2.2-1.3 5.2 1.6s-.8-4.7-.8-4.7z"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" stroke-linejoin="round" d="M402.7 329.6c3.8-1 20.4 9.5 24 12.1 3.8 2.7 11.6 1 11.6 1s-3.6 2.2-5.8 2.7c-2.3.5 6.6.5 6.6.5s-21.1 5.9-42.6-5.4c-2-8.8 4.6-10.8 6.2-10.9z"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" d="M427 253.5s-2.9-.5-4.3-2.1-3.4-5.7-5.5-7.4c-2.1-1.6-12.6-7.4-16.4-7s-5-.4-5.5-.9-2 .2-1.7 2.2-3 6.3-1.8 8.3a62 62 0 0 0 7.7 10.6c1 .3.4 4.8.4 4.8s4.8 4.9 6 5.1c1.2.3 2.5 1.2 2.3 2.4-.1 1.1-5.3 7.4-5.3 7.4s-5.5 3-5.6 4.5c0 1.7 1.4 5 5.8 6.1a41 41 0 0 0 16.8-.8c.6-1 1.6-7 1.2-7.7-.4-.6-3.3-2.4-4.8-2.2-1.5.3-2.9 1.5-2.7 1.8s-2.1 1.4-2.1.3 4.4-6 4.8-5.5 6.6 1 7.8 4.1c1.1 3.1 1.1 5.4 4.4 5 3.2-.3 7.8-3.3 8.2-9.5a13 13 0 0 0-4.7-11c-1-.7-4.4-2.7-4.7-3.7s-1-4-.4-4.8z"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" d="M368.3 281s10.5-2.7 13.2-2.6c2.7 0 13 4.8 16 7.7s9 9.8 13 9.2 5.2-1.4 5.2-1.4l-1.6 3s-3.2.9-4.9.5c-1.6-.4-4.8-1.5-8-4.6-3.1-3-13-11.5-21.3-10.9s-13.1 8.8-13.1 8.8 0-4 .4-4.9c.3-.8-1.8 2-1.8 2z"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" d="M407 289.2s2.6.7 7 .7c4.3 0 6.6-1.9 6.6-1.9l-.3-1.7.7-2.3s3.3 3.3 3.3 4-1.4 1-1.4 1l-.5-1.7-1.1 1.5s-6.3 5-9.8 4.2c-3.4-.7-6.6-3-5.7-3.5s1.3-.3 1.2-.3zm-15.3 8.8s-3.8 0-5.5.8-2.3 1.8-3.5 1.7c-1.1-.2-2-1.6-1.7-2.2.5-1 2.8-2.2 7-1.9s3.7 1.6 3.7 1.6zm13.3 10.3c0-.2-.3-5.5-2.4-7.7a6 6 0 0 0-5.8-1.9c-1.2.3 4.2 2.7 4.8 4.2.5 1.6 2.3 6 1.8 7s-1.3-3-4.7-4.2c-3.3-1.2-7.9-.5-7 1 1 1.4 4.7 0 6.6 3.3a60 60 0 0 1 3.3 6.5l.7-2.3 1.6-.4.3-4.4z"/>
+ <path fill="#2b2b2b" stroke="#2b2b2b" stroke-linejoin="round" d="m402.3 325.7-3.5-7s-1-4.3-4-5.5-6.8-1-6.8.4c-.1 1.5 6.2 3.4 6.6 4.2s.2 2.2-.3 2.3-3.4-1-4.8-.7-2.2 2.2-4.3 1.6c-2.1-.5-3.9-7.2-3-8 .7-.6-1.6 1.3-2.1-.5-.5-1.7.7-7.2-.1-7.9s-4.8-3-4.8-3.5c-.1-.5.2-27 22.3-5-9.5-11.3-13.2-10-15-10.1-1.2 0-9.9.7-12 11.7-2.2 11-4.8 4.1-4.8 4.1s-.4 4.8 1.9 6.1c2.3 1.4-1.1 5.3-1.1 5.3s-4.2-10-3.5-14.5c-.9 3.5-.8 12.3 4.4 21.8a71 71 0 0 0 27.2 19.1c8-12.3 7.7-13.8 7.7-14z"/>
+ <path fill="#8a9396" stroke="#2b2b2b" stroke-linejoin="round" d="M387.8 325.8s4.4.5 5.6 2.8c1.3 2.3 1.8 5.8 1.8 5.8.8-1.5 1-2.7 2.6-3.8 1.5-1.1 2.6-1.3 2.5-2 0-.9-4.8-5.8-7.1-6.1-2.4-.3-6.5 2.6-6.5 2.6s-.8 1 1 .7z"/>
+ <path fill="none" stroke="#8a9396" stroke-linecap="round" d="M398 337.4s11.6 5.3 30.6 5.6"/>
+ <path fill="none" stroke="#2b2b2b" stroke-linecap="round" d="M436.7 283.6s-1 9.7-8.5 29"/>
+ <path fill="none" stroke="#2b2b2b" d="M435.2 289.6s-2.3 7-8.5 12.2"/>
+ <path d="m401.3 410.3 2-2.2.6.5-.1.2-.2.3v.2l.2.2 2.6 2.3.2.2h.2l.1-.2q.4-.4.5-.8.2-.4.1-.8 0-.5-.4-1l.8-.4 1.2 2-3.2 3.6-.6-.5.2-.3.1-.2v-.2l-.2-.2-2.6-2.3-.3-.2h-.1l-.3.2-.2.2zm4.4-4.9 3.7-3.6 1.8.9-.3.7-1-.2-.6.2q-.3.1-.6.5l-.7.6 1 1.1.3-.2q.3-.2.3-.4v-.2l-.2-.3-.2-.2.6-.6 1.8 1.9-.6.5-.2-.1-.3-.3h-.2l-.4.3-.2.2 1 1 .2.2h.1l.2-.2.4-.3.6-.8q.2-.4.1-1 0-.4-.3-.9l.8-.4 1 2.3-3.8 3.7-.6-.6h.2l.2-.4v-.2l-.2-.3-2.4-2.4-.3-.2h-.2l-.2.1-.2.2zm7.7-7.4q1.2-1 2.4-.9 1.3.1 2.2 1.2.6.7.8 1.5t-.1 1.6-1.1 1.5q-1 .9-2.2.9-1.4 0-2.4-1.2-1-1-.8-2.3t1.2-2.3m.7.7q-.5.5-.5 1.2 0 .8.7 1.6t1.5 1q.6 0 1.1-.4t.6-1q0-.9-.8-1.7-.4-.5-1-.8-.4-.2-.9-.2t-.7.3m6.1-6.2.5-.3.1.1 2.9-2v-.2l.4-.3 1.9 1.3-.5.7-.7-.3q-.4-.2-.8-.1l-.4.1-.1.1v.2l2.1 3 .2.3h.3l.5-.3.4.7-2.4 1.8-.5-.7.1-.1.3-.3v-.2l-.1-.3-2.1-3-.2-.2-.1.1q-.2.1-.3.4-.2.3-.2.7l.1.8-.8.2zm5.6-3.5 4.4-2.8 1.7 1.3-.6.7-.8-.4h-.7q-.3 0-.7.3l-.8.5.8 1.3.2-.2.4-.2v-.3l-.1-.4-.1-.2.7-.4 1.3 2.3-.7.4-.1-.3-.3-.3h-.2l-.4.2-.3.1.8 1.3.1.2h.1l.3-.1.4-.3.8-.6.3-.9v-1l.8-.2.5 2.4-4.6 2.8-.4-.7.1-.1.3-.3q.1 0 0-.2v-.3l-1.8-2.9-.3-.3h-.1l-.3.1-.2.1zm6.2-3.8 3.5-1.8.7-.3q.4-.2.9-.1.4 0 .7.2l.5.6q.4.7.1 1.3-.2.6-.8 1l1.8.8h.1l.3.1h.3l.2-.1.3-.1.3.7-1.7 1-3-1.5-.5.2.6 1.1.2.4h.5l.2-.2.4.8-2.7 1.4-.4-.8.3-.1.2-.2.1-.2-.1-.3-1.6-3.1-.2-.2q0-.1-.2 0h-.3l-.2.1-.4-.7zm2.6-.2.7 1.4.8-.4q.5-.2.7-.5l.2-.4v-.5l-.4-.3h-.4l-.7.2zm4.4-3.4 3.6-1.6.7-.2h.9q.4 0 .7.2l.5.7q.3.6 0 1.2t-.9 1l1.8.9.4.1h.5l.2-.2.4.8-1.8.8-3-1.6-.4.2.5 1.1.2.4h.4l.3-.1.3.7-2.7 1.3-.4-.8.3-.1.2-.2.1-.2-.1-.3-1.4-3.2q0-.2-.2-.3h-.5l-.2.2-.3-.8zm2.6 0 .6 1.5.9-.4.7-.4q.2-.2.2-.5v-.4l-.3-.4h-.5l-.7.2-1 .4zm6.8-3.9 1.3-.5 3.4 3.9.4.3h.5l.2.8-2.7 1-.3-.8.2-.1q.2 0 .3-.2v-.2l-.2-.2-.4-.5-1.7.6v1l.3.1.4-.1.3.8-2.3.8-.3-.8q.2 0 .3-.2l.1-.1v-.4zm1 3.2 1.1-.4-1.1-1.4zm3.8-4.9 2.7-.8 2.1 3.3v-4l2.8-.7.2.8-.3.1q-.2 0-.3.2v.4l1 3.4.1.2.2.1h.6l.2.7-2.9.9-.2-.9h.2q.3 0 .3-.2l.1-.1v-.3l-1-3.7-.1 5.4-.8.2-2.8-4.4 1 3.7.1.1.2.1h.3l.3-.1.2.8-2.4.7-.3-.8h.3l.3-.2v-.5l-1-3.3v-.3l-.2-.1h-.6zm12.4-3.3 3.2-.6h1q.5 0 .8.2t.6.5l.3.7q.1.8-.4 1.4-.5.7-1.5.9l-1 .2.2 1.1v.3h.8l.1.8-3 .6v-.8h.1l.4-.2v-.5l-.6-3.3v-.4l-.2-.1h-.6zm2.4.6.4 1.7h.5l.7-.3.3-.4v-.5q0-.4-.4-.6-.3-.1-.8 0zm4.2-1.8 3.8-.5h.8l.8.2q.4.2.6.5.3.3.3.7.1.7-.3 1.2t-1.1.8l1.4 1.3.3.2.2.1h.6v.8l-1.9.3-2.3-2.4h-.5l.2 1.2v.4l.2.2h.6v.8l-3 .4v-.9h.2l.3-.1.2-.2v-.3l-.5-3.5v-.3h-.8zm2.4.7.2 1.6h1l.7-.3.4-.3v-.5l-.1-.4-.4-.2h-.8zm8.8-1.9q1.4-.1 2.4.7 1 .9 1 2.3 0 1-.3 1.7-.4.7-1 1.2-.8.4-1.8.5-1.4 0-2.3-.6-1.1-.9-1.2-2.4 0-1.4.8-2.4t2.4-1m0 1q-.7 0-1 .6-.6.6-.5 1.7 0 1 .6 1.6.4.5 1.1.5t1.1-.6q.5-.6.4-1.7 0-.7-.3-1.2t-.6-.7q-.4-.3-.8-.2m4.6-1.1h3.4l1 .1.7.4.4.6.2.8q0 .8-.6 1.3t-1.7.5h-1v1.5l.4.1h.3v.9h-3v-.9h.5l.1-.1v-.4l.1-3.4v-.4l-.1-.1h-.6zm2.3 1v1.8h.6l.7-.1.3-.3q.2-.2.2-.5 0-.5-.3-.7t-.8-.2zm4.5-1 3.8.3.8.1.8.4q.3.2.5.6l.1.8q0 .7-.6 1-.5.5-1.2.6l1.2 1.5v.1l.2.3h.2l.3.1h.3v.9l-2-.1-1.9-2.8h-.5v1.6h.6v1l-3-.3v-.8h.6l.2-.2v-.3l.2-3.5v-.3l-.3-.2h-.4zm2.2 1.2-.1 1.6h.9q.5.1.8 0 .3 0 .4-.2t.2-.5v-.4l-.4-.3-.8-.1h-1zm5.4-.6 3 .4v.9h-.3q-.3-.1-.4 0l-.2.4-.4 3.4v.4h.1l.3.2h.3l-.1.9-3-.4.1-.9h.2q.3.1.4 0h.1l.1-.3.4-3.5v-.5h-.4l-.3-.1zm6.5.9 1.4.3 1 5q0 .4.2.5l.4.2-.2.8-2.9-.5.2-.8h.5l.1-.1v-1l-2-.3-.3.6v.2q-.1.1 0 .2h.1l.4.2-.1.8-2.4-.4.1-.8h.4l.2-.1.2-.3zm-.8 3.3 1.3.2-.3-1.8zm5.9-2.4 2.7.7.2 4 2-3.4 2.7.7-.2.8h-.3q-.2-.2-.3 0-.2 0-.2.3l-.9 3.4v.4l.3.1.3.1-.2.9-2.9-.8.2-.8h.3l.3.1h.2v-.4l1-3.7-2.7 4.7-.8-.3-.3-5.1-.9 3.6v.2l.1.2h.3l.3.1-.2.9-2.5-.6.2-.9h.3l.3.1h.1l.2-.4.8-3.4v-.4l-.3-.1-.3-.1zm12.5 3.5 3 1.1 1 .5.5.6.2.7-.1.8q-.3.7-1 1-.8.3-1.8 0l-1-.4-.4 1v.5l.3.2h.3l-.3.9-2.9-1 .3-.9h.2l.4.2h.1l.2-.4 1.2-3.2v-.5l-.3-.2h-.2zm1.7 1.7-.6 1.7.5.2.7.1.5-.1.3-.5q.1-.4-.1-.7t-.6-.4zm4.6.6 3.5 1.6.7.4q.4.2.6.6l.3.7-.2.8q-.3.7-.9.9h-1.3l.5 1.9.2.3.1.2.3.2h.2l-.3.9-1.8-.8-.8-3.3-.5-.2-.5 1.1v.6l.2.1.3.2-.4.7-2.7-1.2.3-.8.3.1.3.1h.2l.1-.3 1.4-3.2.1-.3v-.2l-.2-.1h-.2l-.2-.1zm1.7 1.9-.7 1.5.9.3q.4.3.7.3l.5-.1q.2-.1.3-.4.1-.2 0-.4l-.1-.4-.7-.4-1-.4zm8.5 2.9q1.3.7 1.7 1.9t-.3 2.5q-.4.8-1.1 1.2-.7.5-1.6.5-.8 0-1.7-.5-1.2-.6-1.7-1.7-.5-1.3.3-2.6.6-1.3 1.9-1.7t2.5.4m-.4.9q-.6-.4-1.3-.1t-1.2 1.3q-.5.9-.4 1.7.1.6.8 1 .6.3 1.2 0t1.2-1.2q.4-.7.4-1.2t-.2-1zm5 1.5.5.3v.2l3 1.9.1-.1.5.3-.5 2.2-.8-.2v-.8q0-.4-.2-.7l-.3-.4h-.2l-.1.2-1.9 3-.2.4v.1l.1.1.4.3-.4.7-2.6-1.6.5-.7.1.1.4.2h.1l.3-.4 2-3v-.3h-.1q-.2-.2-.6-.2l-.6.1-.7.4-.6-.6zm5.6 3.8 4.2 3-.6 2-.8-.2v-1l-.2-.6q-.2-.3-.6-.5l-.7-.6-1 1.3.3.2.4.2h.3l.2-.4.2-.2.6.5-1.5 2.1-.6-.4.1-.2.2-.4v-.2l-.4-.4-.3-.1-.8 1.1-.1.3.2.3.4.3 1 .4q.4.1.8 0t1-.5l.4.7-2 1.4-4.3-3 .5-.8.1.1.4.2h.2l.2-.3 2-2.8.2-.3v-.1l-.3-.3-.2-.1zm6.9 8.8 2.3 2-.5.6-.2-.1-.2-.2h-.2l-.3.3-1.2 1.5-.7-.6.1-.5-1-.2-.7-.5q-.7-.6-1-1.3-.2-.8 0-1.6 0-.8.6-1.6.6-.7 1.4-1t1.6-.1 1.5.6l.5.6.4.7.3-.1.5.4-.9 2-.8-.4v-1.1l-.1-.7-.4-.5-.8-.3-.9.2q-.4.2-.9.8l-.6 1v1.1q.1.4.5.7l.5.3h.5l.4-.2.1-.2.2-.3v-.1l-.3-.3-.2-.2zm6.7 2 1 1-1.9 4.8q-.2.3-.1.5l.2.3-.6.7-2-2 .5-.7.1.2.3.1h.2l.2-.3.2-.5-1.4-1.3-.6.3-.2.1v.3l.3.3-.6.6-1.7-1.6.6-.6.2.2h.2l.4-.1zm-2.4 2.3.9.9.7-1.7zm6.5 1.4.4.4-.1.2 2.4 2.5h.2l.4.3-1 2-.8-.3.2-.8v-.7q0-.3-.2-.5h-.2l-.2.1-2.5 2.5-.3.3v.2l.3.4-.6.6-2-2.2.6-.6v.2l.4.2h.2l.3-.2 2.6-2.5.1-.2v-.1l-.5-.3h-.7l-.8.2-.3-.8 2-1z"/>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48ZM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/gt.svg b/apps/web/public/flags/gt.svg
new file mode 100644
index 00000000..7df9df57
--- /dev/null
+++ b/apps/web/public/flags/gt.svg
@@ -0,0 +1,204 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gt" viewBox="0 0 640 480">
+ <defs>
+ <radialGradient xlink:href="#gt-a" id="gt-d" cx="447.4" cy="308.3" r="16.5" gradientUnits="userSpaceOnUse"/>
+ <radialGradient id="gt-a">
+ <stop offset=".2" stop-color="#f9f0aa"/>
+ <stop offset="1" stop-color="#b07e09"/>
+ </radialGradient>
+ <radialGradient xlink:href="#gt-a" id="gt-e" cx="451.6" cy="313" r="10.9" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#gt-a" id="gt-f" cx="454.1" cy="308.6" r="9.8" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#gt-a" id="gt-g" cx="458.4" cy="307.1" r="17.4" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#gt-a" id="gt-j" cx="446" cy="252.4" r="13" gradientUnits="userSpaceOnUse"/>
+ <radialGradient id="gt-m" cx="477.9" cy="215.3" r=".3" gradientUnits="userSpaceOnUse">
+ <stop offset=".3" stop-color="#a50a0a"/>
+ <stop offset="1" stop-color="#4c0505"/>
+ </radialGradient>
+ <radialGradient id="gt-n" cx="489.1" cy="210.3" r=".3" fx="489.1" fy="210.3" gradientTransform="scale(.97707 1.02346)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#fff"/>
+ <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+ </radialGradient>
+ <linearGradient id="gt-h" x1="473.9" x2="472.4" y1="259.2" y2="232" gradientUnits="userSpaceOnUse">
+ <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+ <stop offset="1" stop-color="#b07e09"/>
+ </linearGradient>
+ <linearGradient id="gt-i" x1="483.1" x2="485.5" y1="296.7" y2="326.6" gradientUnits="userSpaceOnUse">
+ <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+ <stop offset="1" stop-color="#b07e09"/>
+ </linearGradient>
+ <linearGradient id="gt-k" x1="451.5" x2="455.4" y1="249.5" y2="240.6" gradientUnits="userSpaceOnUse">
+ <stop offset=".2" stop-color="#f9f0aa"/>
+ <stop offset="1" stop-color="#b07e09"/>
+ </linearGradient>
+ <linearGradient id="gt-l" x1="473.3" x2="475.9" y1="237.2" y2="270.4" gradientUnits="userSpaceOnUse">
+ <stop offset=".2" stop-color="#f9f0aa"/>
+ <stop offset="1" stop-color="#b07e09"/>
+ </linearGradient>
+ </defs>
+ <path fill="#4997d0" d="M0 0h640v480H0Z"/>
+ <path fill="#fff" d="M213.3 0h213.4v480H213.3Z"/>
+ <g transform="matrix(.81133 0 0 .8264 -69.4 -8)">
+ <g stroke="#24420e">
+ <path fill="none" stroke-width=".4" d="M452.1 377.5c2.7-.4 4.2-1.2 6-1.8m2.3-4.1a13 13 0 0 1 3 4.7m-8.1-5.1a13 13 0 0 1 3 4.2m-49.5-136.6c-1 1.6-3 2.7-4.8 3.4m-.3-.2q-.2-2.2 0-4.4m-1.9 5c0 .4.4 1.4.6 2m2.1 1-2 .3m-4-.9c0 2.6.3 5.6.5 7.9m-1.8-1q.7 1.3 1.6 1.9m-4.6 6.5q.8 1.2 1.3 4m3.7-4.7-2 1.5m1.7 4.4q-1.5 1.3-3.5 2.1m-3.8 40.4a16 16 0 0 0 4 4.7m.6 1.7a8 8 0 0 1-3-1m4.4 8.5 1.7 1m-.4 3.4q1.8 1.4 3.7 3.9m-1.4 2.8q2.1.5 3.2 1m-1 2.5h2m1.3-5.3-.5 4.2m1 1.6.4-1.6m4.7 6-.1 3.2m39.2 27.9-1.2 1.6m-2.4-3.9-.7-1.8"/>
+ <g stroke-width=".2">
+ <path fill="#406325" d="M486.1 385a8 8 0 0 0-3.3-2.7c-7.7-4-15.4-5.9-24-7.3-2.1-.3-4.1-2.2-6.2-3.2-5-2.3-10.5-3.2-15.3-5.7-.3-.1-1.5-.8-2-1.5-2-2.2-5.5-2.9-7.6-5-8.4-7.8-17.2-15-21.8-25.5-5.6-12.7-12.5-25.8-11.6-40.2.6-9.2-.7-18.4 1.5-27 3.4-13 7.6-25.7 15.4-36.4l-1.3.8a104 104 0 0 0-15.4 36.3c-2.3 8.7-1 18-1.5 27-1 14.5 6 27.6 11.5 40.3 4.6 10.4 13.5 17.7 21.8 25.6 2.2 2 5.6 2.7 7.6 5l2 1.5c4.9 2.4 10.4 3.3 15.4 5.7 2 1 4 2.8 6 3.2a77 77 0 0 1 24.2 7.2 8 8 0 0 1 3.3 2.7l1.3-.9"/>
+ <g fill="#67923d">
+ <path d="M406.3 331.6a47 47 0 0 1-.2-23.5c6.7 13 4.5 23.7.2 23.5zm45.9 45.4a49 49 0 0 0-21.9 11.4c15.1.1 24-7.3 21.9-11.4zm7.5-4.3a60 60 0 0 1-14-26.5c15 10.9 18.9 24.3 14 26.5z"/>
+ <path d="M454.6 372.8a55 55 0 0 1-16-22.8c15.3 8.2 20.3 20.2 16 22.8zM439 366c1-7.8-5.6-24.2-7.5-26-3 16.5 3 27.6 7.5 26zm-27.3-24.3a42 42 0 0 1 .5-21c5.5 11.7 3.3 21.2-.5 21zM398 264.9a51 51 0 0 1 21-16c-6.8 14.6-18 19.9-21 16z"/>
+ <path d="M398.7 259.3a52 52 0 0 1 17.4-20c-3.7 15.7-13.7 23.2-17.4 20zm27.9 99.2a55 55 0 0 1-7.3-26.4c11.2 12.5 12 25.3 7.2 26.4zM397.9 322c-7 1.1-21.4-4.6-23-6.3 14.6-3.2 24.4 2 23 6.3zm-2.2-9.7c.8-5.5 8.6-15.8 10.3-16.6-1 12-7.4 18.6-10.3 16.6zm51.3 58.6a57 57 0 0 0-26.1 13.6c18 .1 28.7-8.7 26.1-13.6z"/>
+ </g>
+ <g fill="#406325">
+ <path d="M406.4 331.5c4.2.2 6.4-10.4-.3-23.4a79 79 0 0 1 .3 23.4zm11.2 20a49 49 0 0 0-21.7-11.2c8.9 12.1 19.9 15.1 21.7 11.2zm-24.4-53a57 57 0 0 0-14.8-24c1.5 17.2 10.6 26.7 14.8 24zm8.4 34.3c-5-3.7-19-5.4-21-4.8 10.2 8.4 20.2 8.5 21 4.8zm-9.4-24.8a42 42 0 0 0-16.9-13.8c5.5 12.4 14.6 17 16.9 13.7zm2.8-47.6c.8-7.6-5.6-23.4-7.4-25.2-2.9 16 2.9 26.7 7.3 25.2zm4.4-14.9c2.7-6.5.8-22.4-.5-24.4-6.4 13.5-3.8 24.6.5 24.4z"/>
+ <path d="M404.4 237.8a40 40 0 0 0 3.5-19.4c-7.2 9.7-7 18.9-3.5 19.4zm6-6.1a39 39 0 0 0 9-17.4c-9.7 7-12.2 15.8-9 17.4zm-16.1 43.2c.1.9-1-8.2-10-18.3.4 14.8 6.2 20.4 10 18.3zm32.6 85.8a53 53 0 0 0-25.8-6c12.6 10.4 24.9 10.6 25.8 6zM439 366c-4.6 1.5-10.5-9.5-7.6-26a99 99 0 0 0 7.5 26zm13.3 11c2 4.1-6.8 11.5-21.8 11.4 12-5 21.2-9.9 21.8-11.3zm7.3-4.4c4.9-2.3 1.1-15.5-14-26.4 8.6 13.2 14.5 24.6 14 26.4z"/>
+ <path d="M454.6 372.7c4.2-2.7-.7-14.5-16-22.7 9.5 11.2 16.2 21 16 22.7zm-42.8-31c3.7.2 6-9.3.5-21 .7 11 .4 20-.5 21zM398 265c3 3.8 14-1.4 20.9-16a91 91 0 0 1-20.9 16z"/>
+ <path d="M398.9 259.3c3.6 3.2 13.5-4.3 17.2-20-8 11.3-15.6 19.8-17.2 20zm27.7 99.1c4.7-1.1 4-13.8-7.3-26.3 5 13.5 8 24.8 7.3 26.3zM397.7 322c1.4-4.3-8.3-9.4-22.8-6.3 12.3 2.2 22 5 22.8 6.3zm-1.9-9.6c2.9 1.8 9.1-4.7 10.3-16.7a69 69 0 0 1-10.3 16.7zM447 371c2.5 5-8 13.7-26 13.6 14.2-5.9 25.3-11.8 26-13.6z"/>
+ <path d="M399.4 326.3a45 45 0 0 0-17-15.8c5 13.6 14.2 19.1 17 15.8z"/>
+ </g>
+ <g fill="#67923d">
+ <path d="M392.4 274c4-4.7 17.5-9.2 19.6-9-8 10.5-18 12.6-19.6 9zm25.1 77.5c-1.8 4-12.7 1-21.7-11.1a84 84 0 0 0 21.7 11.1zm-24.4-53c-4.2 2.7-13.1-6.8-14.7-24 6.6 13.3 13 23.5 14.7 24zm8.4 34.3c-.7 3.7-10.7 3.6-20.8-4.7a74 74 0 0 0 20.8 4.7zm-9.5-24.9c-2.3 3.2-11.2-1.3-16.7-13.7 8.2 8 15.5 13.7 16.8 13.7zm2.8-47.6c-4.4 1.6-10.1-9-7.3-25 2.7 13.5 6 24.2 7.3 25zm4.5-14.9c-4.3.3-6.9-10.8-.5-24.3-.8 12.8-.5 23.3.5 24.3zm5-7.6c-3.4-.6-3.7-9.7 3.6-19.4a66 66 0 0 0-3.6 19.4zm6-6.1c-3.1-1.7-.7-10.4 9-17.3a66 66 0 0 0-9 17.3z"/>
+ <path d="M394.3 274.9c-3.9 2.1-9.6-3.5-10-18.3q7.7 17.6 10 18.3zm32.5 85.8c-.9 4.6-13.1 4.4-25.7-5.9 13.2 4.3 24.3 6.7 25.7 5.9zm-8.2-9.5A41 41 0 0 1 412 332c9 8.7 10.2 18.1 6.8 19.2zm-16.8-25c-3.6-5.8-4-20.9-3-23 8.3 11.9 7.3 22.7 3 23zm-2.7.1c-2.7 3.3-11.9-2.1-16.8-15.8a77 77 0 0 0 16.8 15.8z"/>
+ </g>
+ <g fill="#406325">
+ <path d="M392.4 274c1.6 3.6 11.4 1.5 19.5-8.9-12 6.8-16.7 9.8-19.5 8.9zm9.3 52c4.3-.3 5.3-11-3-22.8a73 73 0 0 1 3 22.9zm17 25.2c3.4-1 2.2-10.5-6.7-19.2 4.4 9.7 7.2 18 6.7 19.2z"/>
+ <path d="M394.2 291.8c2-8.4-1.7-22.6-4.3-25.6-4.7 15.4-.2 26.6 4.3 25.6z"/>
+ </g>
+ <path fill="#67923d" d="M394 293.8c-6 1.3-8.7-12-4.1-27.1 1 13.5 2.8 26.1 4 27z"/>
+ <path fill="#67923d" d="M392.7 293.7a53 53 0 0 1 9-24.7c2 15.8-4.5 26.3-9 24.7z"/>
+ <path fill="#406325" d="M392.8 293.6c4.5 1.6 10.9-8.8 8.9-24.6-3.5 13.3-7.5 23.8-8.9 24.6z"/>
+ <path fill="#67923d" d="M394.1 303.3a50 50 0 0 1 10.6-23.7c.8 16.2-6.3 25.9-10.6 23.7z"/>
+ <path fill="#406325" d="M394.2 303.4c4.2 2.2 11.3-7.4 10.5-23.5-4.4 12.8-9 22.9-10.5 23.5z"/>
+ </g>
+ <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+ <circle cx="396.8" cy="251.3" r="1.1"/>
+ <circle cx="405.2" cy="245.1" r="1.1"/>
+ <circle cx="401.6" cy="241.7" r="1.1"/>
+ <circle cx="392.5" cy="313.1" r="1.3"/>
+ <circle cx="395" cy="297.1" r="1.3"/>
+ <circle cx="408.2" cy="334.5" r="1.3"/>
+ <circle cx="402.4" cy="336.4" r="1.3"/>
+ <circle cx="446.7" cy="367.6" r="1.3"/>
+ <circle cx="449.6" cy="374.7" r="1.3"/>
+ </g>
+ </g>
+ <g stroke="#24420e">
+ <path fill="none" stroke-width=".4" d="M561.1 259c.7.6 1.2.8 2.3 1.9m-6.6-18.9c0-1.4-.6-3.7-.9-5m3.5 3q0 2.8-1.1 5.4m-4.2-.5q2.6 2.5 5.3 3.9m3.8 1.2q.2 3-.7 6m.4 1.5 1.3-2.3m-1.9 12.2c1.4.3 2.8 2 3.5 3.5m.5-1.3 1.6-2.2m1.7 30.8-2.4 3.4m-4 0c.8 1.4 1.6 3 2.6 4m2.5 5.9a13 13 0 0 1-4.5 4m.2 4.5c-1.1.8-2.5 3-3.7 4.7m8.4-20.2-2.1.9m-1.4-7.4 1.2 1m-9.3 37.4h-2m-2.1-1.8.6 1.6m-7.6 5.1q-.3 2.8.1 5.6m4.3-9 1 2.2m3.9-.1-2.5.3M522 365.6l-1 1.8m11.9-4q-2.2.2-4.1-.2m-5.5 6-3-1m-14.7 2.7c-.9.7-2 2.4-3 4m-.6-4.5c-2.4 1.3-3.2 3.7-4.4 5.8m2.8 2.8q-2.4-.7-5.3-2m16.7-.7c-2.3-1.2-4.7-1-7.1-1.4m10.8-.4q-5.5-1-10.3-.1m7.8-2.6-1.4-.6m-5.6 5.5-2.3-1.3m57.9-49.2q-1.9 1.4-3.7 3.9m1.8-79.6-2.2-.8"/>
+ <g stroke-width=".2">
+ <path fill="#406325" d="M474.4 384.9q1.4-1.8 3.3-2.7c7.7-4 15.4-5.8 24-7.2 2.1-.4 4.1-2.3 6.2-3.2 5-2.4 10.5-3.3 15.3-5.7.3-.2 1.5-.9 2-1.6 2-2.2 5.5-2.9 7.6-5 8.4-7.8 17.2-15 21.8-25.5 5.6-12.7 12.5-25.8 11.6-40.2-.6-9.2.7-18.4-1.5-27a105 105 0 0 0-15.4-36.4l1.3.8a104 104 0 0 1 15.4 36.4c2.3 8.6 1 17.9 1.5 27 1 14.4-6 27.5-11.5 40.3-4.6 10.4-13.5 17.6-21.8 25.5-2.2 2-5.6 2.7-7.6 5l-2 1.5c-4.9 2.4-10.4 3.4-15.4 5.7-2 1-4 2.8-6 3.2A77 77 0 0 0 479 383a8 8 0 0 0-3.3 2.7l-1.3-.8"/>
+ <g fill="#406325">
+ <path d="M553.6 334.6c2.8-7.4 0-24.8-1.4-27-6.7 15.4-3.4 27.6 1.4 27z"/>
+ <path d="M546.5 341.6c2.3-5.6.7-19.3-.4-21-5.5 11.7-3.3 21.3.4 21zm16.9-74.1a47 47 0 0 0-19.3-14.6c6.2 13.3 16.5 18.2 19.3 14.6z"/>
+ <path d="M561.8 259.5a43 43 0 0 0-14.5-16.7c3.1 13 11.4 19.3 14.5 16.7zm4.7 14.9c-3.5-4-15.2-7.9-17-7.7 7 9 15.6 10.9 17 7.7zm-2.8 46.4a40 40 0 0 0 20.3-5.7c-12.9-2.8-21.5 1.9-20.3 5.7zm-.2-5.7c0-5.6-6.3-16.8-8-18-.5 12 4.9 19.5 8 18z"/>
+ <path d="M564 301.4a50 50 0 0 0-10.6-23.6c-.8 16.2 6.3 25.8 10.6 23.6zm-53 75.3a48 48 0 0 0 22.2 11c-8.8-12.3-20.1-15.1-22.1-11z"/>
+ </g>
+ <g fill="#67923d">
+ <path d="M553.6 334.4c-4.9.6-8.1-11.4-1.4-26.8-.5 14.2.2 25.7 1.4 26.8zM500.2 378a50 50 0 0 1 21.9 11.5c-15.1.1-24-7.3-22-11.4zm0-7.9c2-8 15-21.2 17.5-22.1-3.6 17.1-13.7 25.5-17.5 22.1zm21.3-4.1a54 54 0 0 1 7.5-26c3 16.4-3 27.5-7.5 26zm21.5-14.6a49 49 0 0 1 21.6-11.2c-8.9 12.1-19.8 15.1-21.7 11.2zm25.7-53.3c1-6.3 9.7-17.9 11.6-18.9-1.2 13.6-8.3 21-11.6 19z"/>
+ <path d="M557 336.2a51 51 0 0 1 24.4-5.5c-11.8 9.7-23.5 9.8-24.4 5.5zm10.3-24.5a44 44 0 0 1 17.7-14.4c-5.8 13-15.3 17.8-17.7 14.4zm-1.5-45.6c0-7.6 8-22.7 10-24.2 1.1 16.1-5.7 26.2-10 24.2zm-6.9-25.9a40 40 0 0 1-.1-20c5.5 10.9 3.7 20 0 20z"/>
+ <path d="M554.6 238a50 50 0 0 1-10.4-22.1c11.8 9.3 14.4 20.4 10.4 22.1zm11.7 34.5c-.3.9 3-7.7 14.2-15.3-4 14.3-11 18.3-14.2 15.3zm-34.1 89.9a61 61 0 0 1 29.2-6.7c-14.2 11.8-28.2 12-29.2 6.7zm14.3-20.8c-3.7.2-6-9.3-.5-21-.7 11-.4 20 .5 21zm16.9-74.1c-2.7 3.6-13-1.2-19.2-14.6a79 79 0 0 0 19.2 14.6zm-1.7-8c-3.1 2.6-11.3-3.6-14.4-16.7 6.7 9.4 13 16.5 14.4 16.7zm4.8 15c-1.4 3.1-9.9 1.3-16.9-7.7 10.4 5.9 14.5 8.4 17 7.7zm-2.6 46.2c-1.3-3.8 7.3-8.3 20.2-5.5a69 69 0 0 0-20.2 5.5zm-.4-5.6c-3.2 1.5-8.5-5.9-8-17.9a69 69 0 0 0 8 18z"/>
+ <path d="M563.9 301.6c-4.3 2.2-11.3-7.4-10.5-23.5 4.4 12.8 9 22.9 10.5 23.5zm-52.7 75.1c2-4.2 13.1-1.4 22 10.8-11-6.7-20.5-11.3-22-10.8z"/>
+ </g>
+ <g fill="#406325">
+ <path d="M521.5 365.8c4.6 1.6 10.5-9.4 7.6-25.9-2.8 14-6.2 25.1-7.6 26z"/>
+ <path d="M531.8 360.6a55 55 0 0 0 4.6-27c-10 13.6-9.4 26.3-4.6 27zm-31.7 17.5c-2 4.1 6.7 11.5 21.8 11.3-12-4.8-21.2-9.8-21.8-11.3zm.2-8.1c3.8 3.4 13.8-4.9 17.4-22-8.1 12.4-15.7 21.8-17.4 22zm42.7-18.6c1.8 4 12.7 1 21.7-11.1a84 84 0 0 1-21.7 11.1zm25.8-53.3c3.3 2.1 10.3-5.3 11.5-18.8a75 75 0 0 1-11.5 18.8zM557 336.2c1 4.4 12.5 4.2 24.4-5.5-12.5 4-23 6.2-24.3 5.5zm10.4-24.6c2.5 3.4 11.9-1.4 17.7-14.4a75 75 0 0 1-17.7 14.4zM566 266c4.2 2 11-8 9.8-24-4 13-8.4 23.3-9.9 24zm-7-25.9c3.5.1 5.4-9-.2-20 1 10.5 1 19.1.2 20zm-4.3-2.2c4-1.7 1.4-12.7-10.4-22a82 82 0 0 1 10.4 22zm11.6 34.7c3.2 3 10.2-1 14.2-15.4q-11.8 15.1-14.2 15.4zm-34 89.9c1 5.2 14.9 5 29-6.7-14.9 4.8-27.4 7.6-29 6.7z"/>
+ <path d="M539.1 354.8a41 41 0 0 0 3.6-20.1c-7.5 10-7.2 19.5-3.6 20zm19.6-28.7c3.6-5.7 4-20.9 3-23-8.3 11.9-7.3 22.7-3 23z"/>
+ </g>
+ <path fill="#67923d" d="M531.8 360.5c-4.8-.6-5.3-13.3 4.5-26.8-3.6 13.8-5.4 25.4-4.5 26.8zm35.2-68.3c-1-7.8 4-20.1 6.6-22.5 2.6 14.4-2.7 24-6.6 22.5zm-27.9 62.5c-3.6-.5-3.9-10 3.6-20a67 67 0 0 0-3.6 20zm23.4-104.2c-2.2-6 0-20 1.2-21.8 5.3 12.2 2.6 22.1-1.2 21.8zm-58.1 120.1c2.5-8 16.2-21 18.8-22-4.3 17.5-15 25.6-18.8 22zM559 329a45 45 0 0 1 16.9-15.8c-5 13.6-14.2 19.1-17 15.8zm-.2-3c-4.3-.4-5.3-11 3-22.9a73 73 0 0 0-3 22.9z"/>
+ <path fill="#406325" d="M567 294c5.2 1.9 9-9.8 6.6-23.9a98 98 0 0 1-6.6 24z"/>
+ <path fill="#406325" d="M567.8 293.6c.5-7.5-7-23-9-24.7-2 15.8 4.5 26.3 9 24.7zm-5.3-43.2c3.9.4 6.5-9.4 1.2-21.7.4 11.5-.2 20.8-1.2 21.7zm-58 120.1c3.8 3.7 14.4-4.4 18.7-21.8-8.8 12.3-17 21.6-18.7 21.8zm54.6-41.5c2.8 3.3 12-2.1 17-15.8a77 77 0 0 1-17 15.8z"/>
+ <path fill="#67923d" d="M567.7 293.5c-4.5 1.7-10.9-8.7-8.9-24.5 3.5 13.2 7.5 23.7 8.9 24.5z"/>
+ </g>
+ <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+ <circle cx="564.6" cy="254.9" r="1.1"/>
+ <circle cx="568.4" cy="266.8" r="1.1"/>
+ <circle cx="569.8" cy="304.3" r="1.3"/>
+ <circle cx="564.6" cy="297.3" r="1.3"/>
+ <circle cx="549.9" cy="337.2" r="1.3"/>
+ <circle cx="556.2" cy="339.9" r="1.3"/>
+ <circle cx="513.8" cy="372.3" r="1.3"/>
+ <circle cx="506.8" cy="377.3" r="1.3"/>
+ <circle cx="557.1" cy="249.3" r="1.1"/>
+ </g>
+ </g>
+ <g id="gt-b" fill="#8c959d" stroke="#485654" stroke-width=".1">
+ <path d="M434.3 336.3c-.2 1 .8 2.3 2 2 .5 0 .7-.5.2-.5q-.7.2-1.2-.3a2 2 0 0 1-.4-2z"/>
+ <path stroke="none" d="M437.2 338.3c-1 1.2-2.5 1.7-3.4.9q-1-.9-.5-2l-1 1.3s.6 1.3 1.6 1.8c1.3.5 3-.3 4-1.6.8-1 1.6-2.4 1-3.6a4 4 0 0 0-2-1.7l-1 1q.8-.2 1.7.4c1.3 1 .6 2.5-.4 3.5"/>
+ <path fill="#485654" stroke="none" d="m437.2 338.3-1.1 1q-.7.4-1.5.3l-.7-.3-.5-.6-.3-.7q-.1-.4.2-.8l.1.1-1.1 1.3v-.1l1 1.3.7.4.8.1a3 3 0 0 0 1.6-.5q.8-.4 1.3-1l1-1.4q.4-.7.3-1.6l-.2-.8a4 4 0 0 0-1.9-1.6h.1l-1 1.1h-.1q.3-.2.7-.2l.8.2q.7.4.9 1.2.1.8-.2 1.4-.3.8-.9 1.2m0 0q.6-.4.8-1.2t.2-1.4q-.2-.7-.9-1-.7-.5-1.3-.2h-.1l1-1.2a4 4 0 0 1 2 1.7q.3.3.3.8 0 1-.4 1.7-.3.8-1 1.4-.5.7-1.3 1.1-.7.5-1.7.5a2 2 0 0 1-1.6-.6l-1-1.4 1-1.3h.2l-.1.8.2.7.5.5q.2.3.6.3.8.1 1.5-.2z"/>
+ <path fill="#6c301e" stroke="#351710" stroke-linejoin="round" stroke-width=".2" d="m515.2 249.3-40.1 39.5L434 328l-4.6 5.4c-2 2.3-4.4 5.3-7.2 8-.5.7-1.1.4-1.7.8-1.8 1-3.7 2.8-5 4.3L403.2 360q-1.2 1.2-.4 2l6.6 8.8c1.2 1.2 2.6 1.8 3.2.8 3.1-5.5 11-13.8 14-20.3 1.7-4 3.9-11.1 5.5-12.8 2-2.2 7.1-7.8 11.8-12.7l1-1q.3-.6.9-1c23.5-24 50.7-53.1 70.5-73.6z"/>
+ <path d="M431.9 328.1q-1.7-.2-2.9-1.4c1.2.4 2.4.8 3.5.3z"/>
+ <path fill="#b2b6ba" stroke-width=".2" d="m557 220.1-31.8 26.2q-.5.5-.9 0l-2.9-2.4v-.6l1.4-1.4q.2-.2-.1-.6l-.6-.6q-.4-.1-.7.2l-1.4 1.5q-1.2.1-1.4 1.4c-19.2 18.7-35.8 35.4-54.9 53.8l-22.6 21.6c-.8 1-4.3 2.9-6.6 4.4q-1.3.8-1.8 1.5l-1.8 5.5c-.6 1.2-2.5 4-2.5 4.2l3.8 3.7 11.1-11.9.9-1a13 13 0 0 0-2.6-2.7l-.7-.5q0-.4.5-.7c26.4-25.6 55-53.7 78.2-76.6h1l2.9 3.1q1 1 1.7.4l31.9-28.5z"/>
+ <path fill="#485654" stroke="none" d="M431 330.4h.6l.5-.1.7-2.4.8-2.4q-.3-.3-.7-.4.4 0 .7.4l-.7 2.4-.7 2.4-.6.2z"/>
+ <circle cx="438.2" cy="328.1" r=".6" fill="none" stroke-width=".2"/>
+ <circle cx="434.4" cy="331.9" r=".6" fill="none" stroke-width=".2"/>
+ <path fill="#485654" stroke="none" d="m441 322.4-1.8-1.6z"/>
+ <path d="m502.2 259 3.5 3.5.6-.6-3.5-3.4-.6.6z"/>
+ </g>
+ <use xlink:href="#gt-b" width="100%" height="100%" transform="scale(-1 1)rotate(-2.8 -9.3 19640.2)"/>
+ <g stroke="#24420e" stroke-width=".2">
+ <path fill="#67923d" d="M434 365.4a56 56 0 0 0-29.3.9c16.3 8 29.5 4.6 29.2-1zm89 3.3c7.8-3.3 26.8-.7 29.1 1-16.2 7.9-29.5 4.5-29.2-1z"/>
+ <path fill="#406325" d="M433.8 365.5c.3 5.5-12.8 8.9-29.1.9 15.3 1 27.8.4 29-1zm89.2 3.3c-.2 5.5 12.9 8.9 29.2.9-15.3 1-27.8.4-29.1-1z"/>
+ </g>
+ <g id="gt-c">
+ <path fill="#b2b6ba" stroke="#485654" stroke-width=".2" d="M508.5 360a238 238 0 0 0-76.1-68c3.5-.2 11.4 3.9 14.7 6 23.9 15.4 44.3 35.8 65.6 59.8-1.2 1.2-2 2-3.4 3z"/>
+ <path fill="#8c959d" d="M510.6 359.8 509 361c-23-29.6-55-57.9-76.7-69 30.1 13.8 55.4 41.7 78 67.6h.1z"/>
+ <path fill="#485654" d="M510.6 359.8 509 361a303 303 0 0 0-35.2-38 285 285 0 0 0-30.4-24.3q-5.4-3.6-11.1-6.7v-.2q12 5.6 22.5 13.3 10.5 7.6 20 16.6a360 360 0 0 1 18.3 18.5q8.9 9.7 17.4 19.5zm0 0q-8.6-9.9-17.5-19.4a355 355 0 0 0-18.3-18.5q-9.5-8.9-20-16.6t-22.4-13.2v-.2a196 196 0 0 1 21.7 14.3 285 285 0 0 1 38.2 35.1 314 314 0 0 1 16.8 19.8z"/>
+ <g fill="#fab81c" stroke="#6c301e" stroke-width=".1">
+ <path stroke-width=".2" d="M517.5 355q-3 .9-5.3 2.3c-.2 1.4-2 3-3.5 3.3l-.6-.8h-.2l-.6.3q-1-.1-1.6 1c-.4 1 .3 2.3 1.2 3.1 1 .7 1.4 1 2.4 1 1.1-.3 1.7-1.3 2-1.6 3.7 4.5 6.5 7 11.2 10.6 2.1 0 3.2-1.3 2.5-2.8q-.4-.8-1.3-.6v-.5c2.4-2.2 3.5-5 .9-9.8-2.2-4-4.7-5.4-7-5.4h-.1zm6.2 4.6q.7 1 1 2c1.6 3 .3 6.7-2.3 7.8h-.2c.4-.7-.8-2.2-1.4-1.7.3-.7-.7-2-1.5-1.7.4-.7-.5-1.9-1.4-1.5.4-.7-.3-1.8-1.3-1.6.3-.8-.4-1.8-1.3-1.6q0-1.1-.5-1.5c1-.8 2.3-2.1 3.4-2.7 2.7-1.2 4.4 1 5.5 2.5z"/>
+ <path d="M524.9 362.8q-.8-.6-.6-1.1.4-.6 1.2-.2t.7 1q-.4.6-1.3.3z"/>
+ <path d="M524.6 361.8q-.8-.5-.6-1.2.4-.5 1.2-.1t.7 1q-.4.6-1.3.3z"/>
+ <path d="M524 360.6q-.8-.4-.6-1 .4-.6 1.2-.3.8.6.6 1.1t-1.2.2z"/>
+ <path d="M523.2 359.6q-.8-.5-.6-1.1.4-.5 1.2-.2.8.6.7 1.1-.4.6-1.3.2z"/>
+ <path d="M522.2 358.6q-.9-.5-.6-1v-.2c.2.1.7.2.6-.1v-.2l.6.2q.8.6.6 1.1t-1.2.2z"/>
+ </g>
+ <path fill="#fab81c" d="M511.3 363.6c.7-1.8 2-3.4 3.5-3.8m-3.3 4.1c1.3.2 3.3-1.3 3.8-2.6m-2.6 4c1.6.4 3.3-1.2 4-2.4m-2.5 4c2 0 3.1-1.3 3.7-2.4m-2.2 3.9c1.7 0 3.2-1.3 3.6-2.4m-2.2 3.8q2.8-.2 3.7-2m-2 3.4c1.7.1 3-.9 3.4-1.8m-1.6 3.3c1.6 0 2.7-1 3.1-2"/>
+ <path fill="#6c301e" d="M511.3 363.6a7 7 0 0 1 2.3-3.2q.4-.4 1.2-.6l-1.2.6-1 1a8 8 0 0 0-1.3 2.2m.2.3 1.2-.2 1-.6 1-.8.6-1-.6 1a5 5 0 0 1-2 1.4q-.6.3-1.2.2m1.2 1.4h1.2l1-.6a6 6 0 0 0 1.7-1.8l-.7 1-.9.9-1 .5zm1.5 1.6q.6 0 1.1-.2l1-.5 1-.8.6-1a4 4 0 0 1-1.5 1.9l-1 .5zm1.5 1.5q1.2 0 2.1-.8a5 5 0 0 0 1.5-1.6q-.1.5-.6 1l-.8.7-1 .6zm1.4 1.4q.6 0 1.1-.2a5 5 0 0 0 2-1l.6-.9-.6 1q-.4.4-1 .6-1 .6-2 .5zm1.7 1.4a5 5 0 0 0 2-.5l.8-.5.6-.8q-.1.5-.5.8a4 4 0 0 1-3 1zm1.8 1.5 1-.1.8-.4.7-.6.6-.8a3 3 0 0 1-3.1 1.9"/>
+ </g>
+ <use xlink:href="#gt-c" width="100%" height="100%" transform="scale(-1 1)rotate(-3.4 -13.8 16470.8)"/>
+ <g stroke="#24420e" stroke-width=".2">
+ <path fill="#406325" d="M409.2 240a52 52 0 0 0 19.5-17.9c-15.6 4.2-22.7 14.3-19.5 18zm145.8 4.7a50 50 0 0 0-15.6-19.9c2.8 15.2 12 22.8 15.6 20z"/>
+ <path fill="#67923d" d="M409.2 240c-3.3-3.6 3.8-13.6 19.4-17.8-11 8.4-19.2 16.2-19.4 17.8zm145.8 4.7c-3.7 3-12.7-4.6-15.5-19.7 7.2 11 14 19.5 15.5 19.7z"/>
+ </g>
+ <g stroke="#999270" stroke-width=".2">
+ <path fill="url(#gt-d)" d="M452.2 318.1s-6.1.7-7.9-7.8c-1.8-9.1 5.3-10 5.3-10s8.1-.9 13.2-1l2.2 18z"/>
+ <path fill="url(#gt-e)" d="M453 315.4s-4 .7-4.8-5.6c-.6-4.5 2.2-5.1 2.2-5.1l9.2 1.6v8.2z"/>
+ <path fill="url(#gt-f)" d="M450.4 304.7s6-.4 9-.8l1.3 5.7-7.1.4s-.5-5.1-3.2-5.3z"/>
+ <path fill="url(#gt-g)" d="M449.2 300.4s7.5-1.9 8.5 6.4c.2 2.2-1 7.2-4.7 8.6l13.9-1.5-1.3-15-4.6.4s-10 .3-11.8 1z"/>
+ <path fill="#f9f0aa" d="M452.2 318.1s51.9-3.5 57.2-3.3c15.8-8.6 0-42.5-13.3-61.5 1.5-4.3-29.9-13.9-44-13q-2.8 0-5.2.3c-7.7.8-7.8 10.7-4.7 17 3 6 30.4 55 11.2 60.3z"/>
+ <path fill="url(#gt-h)" d="M507.8 273.3c-3.5-7.3-7.7-14.3-11.7-20 1.5-4.3-29.9-13.9-44-13q-2.8 0-5.2.3c-7.7.8-7.8 10.7-4.7 17 1 1.8 4.3 8 7.9 15.7"/>
+ <path fill="url(#gt-i)" d="M455 285c5.6 14.6 8.7 30-1.6 32.9l-1.2.2s52-3.5 57.2-3.3c8.6-4.7 7.8-16.8 3.2-30"/>
+ <path fill="url(#gt-j)" d="M447.4 243.5c-3.7 0-4.7 3.6-4.6 5.8.1 6 4.6 6.2 4.6 6.2l6-.3 2.8-12.2z"/>
+ <path fill="url(#gt-k)" d="m447.4 243.5 8.8-.5 1 9.1-7.8.4s2.5-7.3-2-9z"/>
+ <path fill="url(#gt-l)" d="M496.1 253.3c6.7-1 6.6-10 2-13.7-15.5-.6-35.8-.1-50.6 1 1.7 0 6.4.4 6.9 6.5a8 8 0 0 1-3 7 7 7 0 0 1-4 1.4h3.6l3-.4c21-2.7 42-1.8 42-1.8z"/>
+ <path fill="#b07e09" stroke="none" d="M458.5 267.4q-.2-.5-.8-.8-.5.1-.5-.4h.8l1.6-.2q.5.3 0 .5c-.5 0-.2.5-.1.8l1.3 3q.2.6.7.7l1.1-.1q.3-.4.2-1c-.1-.3.5-.2.5 0l.4 1.4q0 .2-.4.1l-3 .2c-.3 0-.8.3-1 0 0-.4.6-.2.6-.5l-.3-1zm4.8-.4q-.1-.4-.7-.7-.5.1-.6-.4.3-.2.7 0l1.7-.2c.3 0 .4.5 0 .4q-.4.1-.2.7l1.5 3.4q0 .4.5.6.4 0 .7.3-.1.3-.6.1l-1.6.2q-.4 0-.5-.3c-.1-.3.5 0 .6-.4q0-.4-.4-1l-1.1-2.6zm4.5.8q.2.2.5 0 .5 0 .6-.4 0-.8-.7-1.2-.5-.3-1.1-.2l.1.5zm.6 1.6.6 1q.4.2.8 0 .5-.1.4-.5-.1-1.1-1.2-1.5h-1l.2.5zm-2-2.4q-.2-.6-.7-1-.4.1-.7-.2c0-.3.6-.1.8-.2.9 0 1.8-.3 2.6 0q1.2.4 1.5 1.6 0 .6-.6.8l.5.1q1 .3 1.4 1.2.4.6 0 1.3-.7.5-1.4.4l-2.3.2c-.3 0-.4-.5 0-.5q.4-.1.2-.6l-1.3-3zm7.4-1.9q.4.1.5.5l.3.9q-.4.1-.6-.4-.3-.4-.7-.4h-1.2q-.2.3.1.6l.6 1.4q.4 0 .8-.3c0-.2-.3-.7.2-.6q.3.4.4.9l.5 1.1c-.3.3-.5-.1-.6-.4q-.4-.4-1-.3v.3l.6 1.5q.4.4 1 .3.6.1 1-.4c.2-.2-.3-.7 0-.8q.5.1.5.6t.3.8q-.1.3-.4.2l-3 .2c-.4 0-.9.2-1-.2 0-.3.7-.1.6-.5l-.4-1-1.1-2.7q-.2-.6-.8-.7c-.2 0-.6 0-.4-.4h1zm2.3 1.3q-.1-.5-.7-.9-.5.1-.7-.4h1c.8 0 1.6-.3 2.4 0q1.3.3 1.6 1.8 0 .6-.7.8c-.3 0 .2.1.3.2q1 .5 1.4 1.5c.1.2.5.7.6.2s.6 0 .5.3q-.1.6-.7.6t-1.1-.6q-.5-1-1.3-1.7l-.8-.2v.5l.6 1.2q.4.4 1 .3c.3.1.2.6-.2.5h-1.7c-.3.2-.9 0-.7-.3q.6 0 .5-.5l-1-2.6zm1.4 1h.9q.4-.2.2-.7-.2-.8-.9-1.2c-.2 0-.8-.2-.9.1l.7 1.6zm7.2 1.6q.2.5.6.7.4 0 .7.3-.1.3-.6.2h-1.6q-.5.2-.6-.3c.2-.2.7 0 .7-.4l-.5-1.1-1.1-2.9q-.3-.4-.7-.3-.6-.1-.7.4.2.5 0 .8-.4-.1-.5-.5t-.4-1q.2-.2.5-.1l4.2-.2q.5 0 .5.5l.4 1q-.3.3-.6-.3t-.9-.7l-.8.2.2.7zm3.8-.9q-.2.1-.1.4v.8q.3.4.8.4c.2 0 .1.5-.2.4h-1.2c-.3.1-.8-.1-.5-.4q.3 0 .5-.3v-5q.4-.3.6.2l3.6 4.5q.3.4.8.4c.3 0 .4.5 0 .4h-2.2q-.2-.3.2-.4c.3 0 0-.4-.1-.6l-.6-.8zm1.1-.5q.2 0 0-.2l-1.3-1.7v2h1.3zm3.1-1.8c-.1-.4-.3-1-.8-1q-.6 0-.5-.4h1.7q1-.2 2 .1 2.4.9 3 3.4 0 1-.6 1.6-1.2.6-2.5.3l-1.4.1c-.3 0-.4-.5 0-.4q.5-.2.2-.7zm2 2.5q.1.5.5 1h1q.7-.2.7-.9a5 5 0 0 0-.6-2.1q-.6-1-1.8-1.4h-1v.4zm-21.1 12.4q.1.5.8.6c.2 0 .7 0 .7.4q-.4.2-.8 0l-1.5.2h-.9q-.3-.2.1-.4.5 0 .6-.4l-.2-.8-1.2-2.8q-.1-.4-.7-.3-.4.1-.7-.2c0-.3.5-.2.7-.4l1-.3q.3 0 .3.3zm.7-4.5h2c.4 0 .2-.5.4-.5q.5.2.4.7 0 .7-.6.6H475l.5 1.2.6-.2c1 0 2.2.6 2.6 1.6q.4.8 0 1.5-.6.7-1.6.6-.8 0-1.4-.6c-.1-.2-.1-.7.2-.6q.7 0 .7.6.3.2.7.1.5 0 .6-.5 0-.8-.5-1.4-.3-.6-1.3-.7l-.8.1q-.4-.1-.4-.5l-.7-1.9.2-.1zm6.9 1q-.2-.7-.9-1c-.2 0-.7-.1-.4-.4h1.6q1.1-.2 2.1.1 2.4.9 3 3.4.1 1-.7 1.6-1.1.4-2.4.3l-1.3.2c-.3 0-.4-.5 0-.5q.4-.1.2-.7zm2 2.5.6 1h1q.6-.3.6-1 0-1-.7-2.1t-1.8-1.3h-1v.4zm6.4-4.3q.4.1.5.5t.3.8q-.4.3-.6-.3-.1-.4-.6-.5h-1.3v.6l.6 1.4q.5 0 .8-.2c.2-.2-.3-.7.2-.6q.4.2.4.8l.5 1.1c-.1.4-.5 0-.6-.3q-.3-.4-.8-.3-.4 0-.2.2l.6 1.5q.4.4 1 .3.7 0 1-.3c.2-.2-.2-.6 0-.8q.6.1.5.5l.3 1h-.4l-3.1.2q-.5.2-.9-.1c-.2-.4.5-.2.6-.5l-.3-.9-1.1-2.9q-.2-.5-.8-.7c-.2 0-.6 0-.4-.4h1zm-27.2 14.3q.3.7 1 .8 1.3.3 2.2 1.1.5.6.5 1.4-.1.8-1 1-.8.3-1.7-.1c-.2-.1-.1.4-.5.3q-.2-.4-.2-.9l-.4-1q.2-.3.5.2.5 1 1.6 1.1.7 0 .8-.6-.1-.8-.8-1.2l-2-.8a2 2 0 0 1-1-1.6q.1-.7.8-.9t1.6 0q.2-.2.6-.1l.2.6.3.9q-.4.2-.5-.2-.4-.7-1-.8-.6 0-1 .3zm6.6-1.7q.5.1.5.5l.2.8q-.2.3-.5-.2-.1-.4-.7-.5h-1.2v.6l.5 1.4q.5 0 .8-.2c.2-.2-.2-.6.1-.7q.5.2.5.7l.4 1.3q-.3.3-.5-.3-.2-.4-.8-.3-.4 0-.3.2l.6 1.5q.2.4.7.3.7 0 1.2-.3.1-.4 0-.8.5-.2.6.3l.2 1q-.1.3-.4.2l-3 .2c-.4 0-.8.3-1 0 0-.4.5-.3.6-.6l-.2-.8-1-3q0-.5-.7-.6-.5 0-.4-.4h1zm4.2 4.2q.2.5.6.7.6-.1.8.2c0 .4-.5.2-.7.2l-1.6.2q-.4 0-.6-.2c0-.4.5-.2.6-.4l-.1-.8-1-3q-.2-.6-.7-.7-.5.1-.5-.4h.7q1-.2 2.2-.2a2 2 0 0 1 1.7 1.2q.3.7 0 1.3-.8.5-1.7.6-.2 0 0 .3zm-.6-1.8h.7q.5-.2.4-.7 0-.7-.5-1.2t-1.1-.2v.5zm6.2 1.5q0 .4.5.6.5 0 .7.3c.2.3-.5.2-.7.2l-1.6.1q-.4 0-.5-.3c.2-.2.7 0 .7-.4l-.3-1.2-1-2.9q-.1-.3-.7-.2-.4 0-.7.3v.8q-.4.2-.4-.3l-.4-1q.1-.3.5-.3l4.1-.2q.5 0 .5.5l.4 1q-.3.2-.5-.2-.3-.6-1-.7h-.8l.2.7zm2.1-3.3q0-.6-.6-.8-.4.1-.6-.4h.6l1.8-.2c.3-.1.5.4.2.4s-.6.2-.5.5l.5 1.6.7 2.2q.1.3.5.4.6-.1.6.4h-.7l-1.6.2c-.2 0-.6-.2-.4-.4q.5 0 .6-.4l-.3-1.2zm5.8-1.6q.4.1.4.5l.2.8q-.3.3-.5-.2-.1-.5-.7-.6H485v.7l.5 1.3.8-.2c.2-.1-.2-.6.1-.6q.5.1.5.6.1.7.4 1.3-.3.3-.5-.2t-.8-.4c-.1 0-.5 0-.3.2l.5 1.5q.3.4.7.4.7 0 1.2-.3l.1-.9q.5-.1.5.4l.2 1q0 .3-.4.2l-3 .1h-1c-.1-.4.5-.3.6-.5l-.1-.8-1-3q0-.6-.7-.7c-.2 0-.6-.2-.4-.4h1l2.9-.2zm2 1q-.2-.6-.8-.7c-.3.1-.5-.6 0-.4h1.5l.7.9 2.2 2.9-.1-.3.4-3.6c.2-.2.7 0 1-.2.3 0 1 0 .8.4q-.7 0-.6.6l1.2 3.6q.1.6.8.5c.3 0 .3.6 0 .5H494q-.7.2-.7-.3c.3 0 .8-.2.6-.6l-1-3.2v.4l-.2 3-.1.8q-.4 0-.5-.3l-2.9-3.7.2.3.9 2.9q.2.5.8.5.4.4-.2.4h-1.5q-.4-.2 0-.4.6-.2.2-.8zm8.7.8h.5q.5.1.7-.4 0-.7-.5-1.2-.6-.3-1.2-.2v.5zm.5 1.6.4 1q.5.2.9.1.4 0 .4-.5 0-1-.9-1.5h-1v.3zM496 288q0-.6-.6-1-.5 0-.6-.3c-.1-.3.5 0 .7-.1h2.7q1.2.4 1.3 1.6-.1.6-.7.9h.5q.8.3 1.2 1.2.4.6 0 1.3-.7.5-1.5.4l-2.3.1c-.3 0-.4-.5 0-.4q.5-.1.2-.7zm5.1-.2q0-.6-.6-1-.5 0-.6-.3c.2-.3.6 0 1-.1h2q1.3.1 1.7 1.4.2.8-.4 1.2l-.4.2q1 .4 1.4 1.2l.5.8q.3.1.3-.3c.4-.2.6.3.4.6q-.4.6-1 .4a1 1 0 0 1-.8-.6l-1-1.7q-.5-.3-.9-.1v.4l.5 1.2q.3.4.8.4c.4 0 .4.5 0 .4h-2.5c-.2-.5.4-.3.6-.5l-.2-.9zm1.3 1c.1.3.6 0 .8 0q.5-.1.4-.5 0-.8-.5-1.3-.5-.3-1-.1-.2.1 0 .5l.3 1.3zm6.9-2.6q.4.1.4.5t.3.8q-.4.3-.6-.2 0-.5-.6-.6h-1.3q-.2.2 0 .6l.4 1.4q.5 0 .8-.2c.3-.1-.1-.5.2-.7q.5.1.4.7.1.7.4 1.3-.3.3-.5-.2-.1-.5-.7-.4c-.1 0-.5-.2-.4 0l.5 1.7q.2.4.7.3.7 0 1.2-.2l.1-.8q.6-.2.5.3l.2 1q-.1.3-.4.2h-3.1q-.5.1-.8 0c-.3-.4.2-.3.4-.5s0-.5 0-.7l-.9-3.1q0-.6-.6-.7-.8 0-.5-.4h1zm-32.8 13.1q0-.6-.6-1-.6 0-.5-.3l1-.1h2.4q2 .5 2.6 2.3.4 1.2-.2 2.3-.9.9-2.2.8-1 0-1.9.2c-.2.1-.6-.1-.4-.4q.6 0 .6-.5l-.4-1.5zm1.6 2.5q.1.5.4.9.5.2 1 0 .7 0 .9-.9a4 4 0 0 0-.4-2.2 2 2 0 0 0-1.5-1.2h-1.1v.4zm7.1-4.5q.4.1.4.5l.2.9q-.4.2-.5-.2-.2-.5-.6-.6h-1.3q-.2.2 0 .6 0 .8.3 1.4.5 0 .8-.2c.2-.2-.1-.6.2-.7q.4.2.4.7l.3 1.3c0 .3-.5 0-.5-.2q-.1-.5-.7-.4c-.1 0-.5-.1-.3.1q0 .7.4 1.6.1.4.7.3.7 0 1.2-.3l.2-.8q.3-.2.4.4l.2 1q-.2.2-.5.1l-3 .2q-.5.2-.9 0-.2-.4.4-.4.4-.3.1-.7l-.7-3.2q-.2-.6-.6-.7-.6 0-.5-.4h1zm6.5 4.1q0 .5.6.7.4 0 .7.2c.1.3-.4.2-.6.2l-1.7.1h-.8q-.4-.2.1-.4.5 0 .7-.4l-.1-.8-.7-2.8q0-.4-.6-.3-.4.2-.7-.1c0-.4.5-.3.7-.4l1.1-.4q.3 0 .3.3zm3.7-3.3q0-.7-.7-.8-.6 0-.8.3-.2.6.4 1l.9.5.2-.6zm.8 2.9q-.2-.7-1-1l-.5-.1a1 1 0 0 0-.4 1q.3 1 1 1 .6.2 1-.4v-.5zm1-.2q0 .8-.6 1.3-.8.5-2 .2-.9-.2-1.2-1.2 0-.8.5-1.4c.1 0 .5-.1.2-.2q-.9-.3-1-1.2-.3-.8.5-1.3a2 2 0 0 1 2.6.7q.3.7 0 1.2l-.6.5q.8.1 1.2.8.3.2.3.6zm3.2.6q.4 0 .5-.4c.1-.2 0-.7.3-.6q.3 0 .3.6.1.6-.4 1.1-.3.2-.8.1h-1.7q-.4.2-.7 0v-.7q.4-1 1-1.6.7-.4.8-1.1l-.2-1.2a1 1 0 0 0-1.4-.3q-.5.3-.3.7c.2.2.6 0 .7.4q.2.5-.3.6t-1-.7q-.2-.9.6-1.4t1.7-.2 1.2 1.2q.2.6-.1 1.3l-1.7 1.7q-.2.2-.1.6.2-.3.5-.2zm3.9-.4q0 .4.6.6.4 0 .7.2c.2.3-.3.3-.5.3h-2.7q-.2-.4.2-.4t.7-.4v-.8l-.7-2.8q-.1-.4-.5-.3t-.7 0c-.2-.4.3-.4.5-.5l1.2-.4q.4 0 .4.3z"/>
+ </g>
+ <g fill="#448127" stroke="#34541f" stroke-width=".2">
+ <path fill="url(#gt-m)" stroke="#4c0505" d="M475.8 219.4 472 224c-1.2 5.2 1.8 9.2 7.7 12.6 4.7 3 13.5 3.7 16.3 1.3l-13.7-13z"/>
+ <path d="m503.6 354.3-2-2.5a101 101 0 0 1-32.7 28.6c15.1-4.2 25-15.2 34.7-26.1zM488.1 390a456 456 0 0 1 18.2-32.3l-2.1-2.7c-7.4 12.2-16 26.7-16 35zm41.8-114.5a62 62 0 0 0-4.3-13 127 127 0 0 0-43.8-44v-.3h.4l-.1-.1h.4l-.2-.3h.4l-.3-.4h.4l-.3-.3h.5l-.3-.4h.4l-.4-.3.6-.1-.5-.3.5-.1-.4-.3.6-.2-.5-.3.6-.3-.6-.4.7-.2-.8-.3.7-.4h-.8l.5-.7h-.7l.3-.5h-.6l.3-.5-.7.1.3-.6-.6.4.2-.7-.7.4.1-.7-.6.5.1-.7-.5.5v-.7l-.5.6v-.7l-.4.5-.2-.6-.4.6-.1-.7-.3.7-.2-.7-.3.7-.2-.6-.2.6-.2-.6-.2.8-.2-.7-.3.8-.3-.7v.8l-.4-.7v.8l-.5-.6v.8l-.4-.6v.7l-.4-.3.2.7-.5-.3.2.6-.4-.2.1.6h-.4l.2.4h-.3l.2.4a9 9 0 0 0-.4 3.5c0 .2.6.4.7.6l.2.6c-1.6 2.6-3 4.6-3.1 7.6 1.2-1.6 2.6-3.6 4.4-3.6-.9 1.5-1.3 6.1-.3 6.8l.8-1.3q0 1.5.4 2.3.4-1 1-1.7 0 2.3.6 3.3.7-1.1 1.6-1.6-.4 1.3-.3 2.7.9-1.4 1.9-2.5c-.4 1.6 0 2.8.4 4.5.4-2 .6-2.3 1.5-3.1.1 1.9-.2 3.6.2 4.7.8-1.7 1.4-1.5 2-2.6-.2 1.6-.5 3.3 0 4.7a5 5 0 0 1 1.9-2.6c0 2.2.5 1.8-.8 3.7.6.2 2.5-.4 3.6-.9-.5 1.2-.4 2.1-.9 3q1.5-1 2.9-2.4c-.4 1.4-1.5 2.8-1 4.1q.6-2 2.3-2.5c-.2.7-.3 2.2-1.3 2.9 2.4.2 3.4-1.4 4.6-2.7-.1 1.3 0 2.4 1.6 4.3-.3-2.4.2-1.9 1.3-3.3.6 2.1 1.2 4.4 3.4 6-1-2.3-1-3.5-.6-4.9.3 1.5 1.7 3.3 2 4.6q.3-2.4 1-4a20 20 0 0 1 1.4 5.6q.8-1.5 1.1-3c19.8 20.5 24.2 46.7 2.5 74.4 7.8-5.2 9.8-13.5 14.1-20.6-4.2 9.3-6 19.7-13.5 27.4 7.2-6.2 8.7-11.9 13-17.9-4.5 12.5-11 26.2-19.8 38.8l4.8 5.2 4-6.9c9.4-15.4 24.7-37.5 17-71.1z"/>
+ </g>
+ <path fill="#eac102" stroke="#a08307" stroke-width=".2" d="M473.2 215.3c-1 .2-1.4.6-2.2 1.4q1.4.3 2.6.3.3-.2.3-.6l-.2-1c0-.2-.6-.1-.8 0z"/>
+ <path fill="#a08307" d="m471 216.7 2.2-.5z"/>
+ <circle cx="477.7" cy="215.4" r=".8" stroke="#000" stroke-width=".1"/>
+ <ellipse cx="477.9" cy="215.3" fill="url(#gt-n)" rx=".3" ry=".4"/>
+ <g fill="#34541f">
+ <path d="M488.2 389.7a83 83 0 0 1 7.4-17.2 200 200 0 0 1 7.1-12.2l2.6-4-2.5 4-7 12.3a134 134 0 0 0-7.6 17zm-18.9-9.5a76 76 0 0 0 29.7-23.1 154 154 0 0 0-11.2 11.8 70 70 0 0 1-18.5 11.3m37.3-29.3q1.2-1.6 2.2-3.3a136 136 0 0 0 6-10.2l3.8-7 3.7-7-1.7 3.5-1.8 3.6a256 256 0 0 1-7.7 13.8zm5.9-25.1a58 58 0 0 0 8.5-13.4 73 73 0 0 0 6-23l-.1 4a59 59 0 0 1-5.8 19 60 60 0 0 1-8.6 13.4"/>
+ <path d="M510.9 320a52 52 0 0 0 8.7-12.5A96 96 0 0 0 524 297l.3-.9.3-.9.6-1.8a42 42 0 0 0 .2-15.4 58 58 0 0 0 .7 7.7q0 4-.7 7.7l-.6 1.9-.3.9-.4.9-4.4 10.6a52 52 0 0 1-3.8 6.6 36 36 0 0 1-5 5.8z"/>
+ <path d="M505 349.2q1.9-2.4 3.6-5l1.8-2.5 1.7-2.5 3-5.4 2.6-5.5q2.7-5.5 5-11.3a79 79 0 0 0 5.3-23.8 58 58 0 0 0-2.6-24.2 52 52 0 0 1 2.8 24.2 80 80 0 0 1-5.3 23.9q-2.3 5.7-5 11.2l-2.8 5.5q-1.3 2.8-2.9 5.4l-1.7 2.6-1.8 2.5-3.6 5z"/>
+ <path d="M507.8 352.3a443 443 0 0 0 13.4-23.5 82 82 0 0 0 8.7-39.2q0-6.8-1.2-13.4h.1q1.3 6.7 1.2 13.4a103 103 0 0 1-3.6 26.7 82 82 0 0 1-5 12.6 443 443 0 0 1-13.5 23.4zM480 220.8h1.4a14 14 0 0 1 4.1 1.3 36 36 0 0 1 9 6.8 38 38 0 0 0-9-6.6 19 19 0 0 0-5.5-1.5"/>
+ </g>
+ <g fill="#448127">
+ <path d="M496.4 231.6s3 1.8 4.7 4.4c0 0-4.7-.9-8-4.6"/>
+ <path fill="#34541f" d="M496.4 231.6a14 14 0 0 1 4.8 4.4l.1.2h-.2a15 15 0 0 1-4.4-1.8q-2-1.2-3.7-3a15 15 0 0 0 5.9 3.8l2.2.7v.2a11 11 0 0 0-2.2-2.5z"/>
+ <path d="M489.6 230.7s7.2 4.6 8.3 5c0 0-1.7-3.5-5.1-5"/>
+ <path fill="#34541f" d="m489.6 230.7 4.1 2.5 3.1 1.8 1 .6v.1a11 11 0 0 0-2.1-2.9 11 11 0 0 0-2.9-2.1 8 8 0 0 1 3 2 11 11 0 0 1 2.1 3l.2.2-.3-.1-2.1-1.2z"/>
+ <path d="M492.5 228.4s3.7 1.6 4.6 4.3c0 0-6.8-2.8-8-4.3"/>
+ <path fill="#34541f" d="M492.5 228.4a11 11 0 0 1 2.8 1.6l1.1 1.2.8 1.5v.2h-.2a77 77 0 0 1-7-3.7l-.9-.8.9.7 1 .6a36 36 0 0 0 6.1 3h-.1q-.2-.7-.8-1.3l-1-1.2a11 11 0 0 0-2.7-1.8"/>
+ <path d="M486.8 231.3s6.6 4.7 8.6 4.7c0 0-2-3.3-5.4-4.7"/>
+ <path fill="#34541f" d="m486.8 231.3 7.4 4.3 1.2.3-.1.2a12 12 0 0 0-2.3-2.8 13 13 0 0 0-3-2 11 11 0 0 1 4.4 3.2l1 1.5.2.1h-.2q-.7 0-1.3-.3l-1-.5a33 33 0 0 1-6.3-4"/>
+ <path d="M486.8 232.7s3.4 3 5.4 3c0 0-2-3.3-5.4-4.8"/>
+ <path fill="#34541f" d="m486.8 232.7 4 2.5.6.2.8.2-.1.1a12 12 0 0 0-2.3-2.7 13 13 0 0 0-3-2 11 11 0 0 1 4.4 3.1l1 1.5.2.2h-.2l-1.6-.4a12 12 0 0 1-2.6-1.7z"/>
+ <path d="M485 226.2s7.2 5.1 8 7.9c0 0-6.4-3-7.6-4.5"/>
+ <path fill="#34541f" d="M485 226.2a52 52 0 0 1 7.5 6.6l.7 1.2v.3l-.2-.1-6.8-3.9-.8-.7.8.7 1 .6a37 37 0 0 0 6 3l-.2.2-.7-1.2a29 29 0 0 0-5-5z"/>
+ </g>
+ <g stroke="#24420e" stroke-width=".2">
+ <path fill="#406325" d="M445 370.3a42 42 0 0 1-20.4 4.8c10-8.2 19.7-8.4 20.4-4.8zm69.8 4.5c5.2 4.7 21 8 23.5 7.4-10.6-10.7-22.1-11.8-23.5-7.4z"/>
+ <path fill="#67923d" d="M445 370.3c-.7-3.7-10.5-3.4-20.4 4.8a70 70 0 0 1 20.4-4.8zm69.9 4.4c1.4-4.4 12.8-3.3 23.4 7.5a84 84 0 0 0-23.4-7.5z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/gu.svg b/apps/web/public/flags/gu.svg
new file mode 100644
index 00000000..3b95219a
--- /dev/null
+++ b/apps/web/public/flags/gu.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gu" viewBox="0 0 640 480">
+ <path fill="#be0027" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+ <path fill="#3b5aa3" fill-rule="evenodd" d="M25.6 27.3h589.5v428.4H25.6z"/>
+ <path fill="#cbe0e5" fill-rule="evenodd" d="M314.4 413.2a10 10 0 0 0 8.4.1c137.8-73.3 137.8-274.3.1-346.6a10 10 0 0 0-8.7.2c-134.3 73.4-134.7 272.1.1 346.3z"/>
+ <path fill="#add2d9" fill-rule="evenodd" d="M314.4 416.9c2 1.7 6.4 1.5 8.4 0 101.5-76 102-123.3 97.6-123.3h-201c-3 0 1.8 48.2 95 123.3"/>
+ <path fill="#fdf9a1" fill-rule="evenodd" d="M235.3 331.2a39 39 0 0 1 27.9 1.7c7.6 4 12 4 20.2 4 8.6.2 15.3 6.5 24.6 6.8 17.1.4 24.3 8.9 11 9-6.2 0-19.7-4.3-26.2-3.4-13.6 1.4-22.2 4.4-35 18.7l14.8 10c12.8-5.1 14.9-11 22-11.2 8-.3 10.7-5.2 20-5.2a93 93 0 0 0 33-3.2c14.8-3.4 7.8-13.8-1.2-17.5-7.3-3.1-20.8-.1-29.2-3.2-6.4-2.5-1.2-6.5 2.3-7.3 3.4-.7 7.1.5 11.4 1.2 7.7.6 17.4-.1 24.1-1.2 14-2.1 13.4-6.2 20-6.3 5-.3 8.7-1.7 12-4.1 4-2.7 8.1-8 12.9-7.8l12.7.5-18 40.4-50.7 51.7-26.3 10-57.8-37.7-29.1-44.7z"/>
+ <path fill="#179a3b" fill-rule="evenodd" d="m301.8 292 116-.6 2-10.3s-4.1-.6-7.5-.8c-4.1-.3-11.3 4.4-16 4.3-3.5 0-7.3-6-10.7-6-6 0-6.4 5.3-12 5.5-4.5-.2-6.4-3.6-12.3-3.2s-5.6 3.7-13.3 3.5c-10.2-.3-14.3-9.1-22.5-9.2-13.6-.2-14 13-23.8 16.7z"/>
+ <path fill="#fdf9a1" fill-rule="evenodd" d="m301.8 294.4 119.4-.6v-3.2l-122.2.6z"/>
+ <path fill="#a79270" fill-rule="evenodd" d="M350.8 330.3c1.9 7 3.8 9.4 11.2 11.3 7.3 1.7 18.5-5.4 11.6-12.3-6.6-6.4-13.6-8-19.5-13.8-12.5-12.3-31.3-42.5-31.3-63.8 0-18.3-1.8-55.8-1.8-91.3 0-2.3-7 6.4-7 8.8.4 31.3.4 55 1.6 86.6 2 23.1 13 38.7 22.7 52.7 4.3 6.8 10.6 14 12.5 21.8"/>
+ <path fill="#239e46" fill-rule="evenodd" d="M259.6 160.9c-1.5 3 3.6-.9 4.8-1.3 6.7-2.4 9.3-10.8 20.8-5.7 9 3.9 21.1 1.6 14.8 5.6-7.8 4.7-23.5 9.9-23.8 33.2 1.3 2.2 1.4 1.9 2.5-.6 2.4-5.4 13.7-20.1 19.3-18.9 2.3.6 8.9-6.7 9-4.6.7 5.8-9 17.6-8.8 33.3 0 3.7 4.5 4.9 6.6 2.3 2.2-2.3 3.4-4.6 7.2-7.6 6.6-5.4 4.8-28.6 5.6-27.5 4.7 6 5.4 23.3 12.4 30.3 5.9 5.9 10.6 3 9.3-5-2.5-16.4-10.2-11.7-13.9-28.6-.8-3.3-1-6.2 3.4-4.9 5.3 1.6 8.5 4 12.4 10 4 5.8 11.4 11.3 15.7 14.6 7.5 5.8 10.2.8 6.6-6.6a40 40 0 0 0-21-18.2c-6.2-2.2-8.4-2.4-13.8-3.4-1.5-.3-3-3.4-.4-5.1a43 43 0 0 1 19.6-7.7c6.7-.2 12 5.2 16.7 6.6 9.4 2.4 9.4-3.5 5.2-8-3.4-3.7-10.6-10-17.3-9.1-13.5 1.7-12.6 1.3-21 6.8-3 1.8-6.4 3.8-5.1 1.6 3-5.5.2-4.5 4.9-10.1 3.6-4 6.3-7 10-8 3.4-.9 8-4.5 9.3-6.4 3.4-4.6.5-7.3-4.7-5.7-4.6 1.2-7 4.2-10 5-7.4 2.4-13.3 19-14.2 21.4-1.1 2.8-2.4 1.4-2.2-1 1-11.7 2-31.5-2-39.6-6.4-12-5.8-6.4-8.2-.7-3.6 9-2.3 17.5 0 26.3 1 4.4 4.6 9.4 5.3 12.9.5 2.7-1.6-.8-2.8-2.5-3.9-6-6.8-10-13.2-13.3a35 35 0 0 0-20.2-2c-1.8.6 2 3.2 3.5 4.4 4.3 3.4 12.4 4.5 18 7.9 4.6 2.9 8.2 4.7 9.8 8.7.6 3 1.6 7.4-.4 7.3-5.1-.3-13-4.8-29.4-3-8.4 1.2-15.6 8.3-20.3 16.9"/>
+ <path fill-rule="evenodd" d="M295.3 310.6h4.7v7.9h-4.7z"/>
+ <path fill="#fdf9ff" fill-rule="evenodd" d="M271.7 257.9c18.8 26 49 41.2 49.6 53h-58.8c13.5-16.2 21.8-27.2 9.2-53"/>
+ <path fill="#a68861" fill-rule="evenodd" d="M254.6 311.5c25.6 5.7 56.1 8.9 75.6-.8.2 5.7-6.3 14-11.7 14h-49c5.7-.9 9-2.6 18.2-3l-26 .2c-3 .1-8-7.6-7.1-10.4"/>
+ <path fill="#be0027" fill-rule="evenodd" d="M312.6 425c2.6 1.5 6.7 1.4 9 .2 147.8-78.7 147.9-294.4.2-372a11 11 0 0 0-9.4.2c-144 78.8-144.4 292 .2 371.7zm.7-17.7a9 9 0 0 0 8 .1c123.6-72.8 125.1-265.1.1-334-2.4-1.8-5.9-1.2-8.3 0-118.4 70.1-125 254.5.2 333.9"/>
+ <path fill="#bd0728" d="M268.8 225.4q3.4 0 6 1.4 3.5 1.8 4.3 6.6H276q-.6-2.6-2.6-4-1.8-1.2-4.7-1.2-3.3 0-5.7 2.7-2.3 2.5-2.3 7.6 0 4.2 1.9 7 2 2.7 6.3 2.7 3.3 0 5.4-1.9 2.3-1.9 2.3-6.2H269v-2.7h10.6v13h-2.1l-.8-3.2q-1.6 1.9-3 2.7-2.2 1.2-5.5 1.2-4.3 0-7.5-2.8-3.4-3.6-3.4-9.7t3.3-9.7q3.2-3.5 8.2-3.5m-.6 0" aria-label="G" font-family="helvetica" font-size="25.6"/>
+ <path fill="#bd0728" d="M292.4 226.1v15.2q0 2.6 1 4.3 1.4 2.7 5 2.7 4.1 0 5.7-2.8.8-1.6.8-4.2V226h3.4v13.8q0 4.4-1.4 7-2.1 4.3-8.2 4.3-6.3 0-8.5-4.4-1.2-2.5-1.2-6.9V226zm6.3 0" aria-label="U" font-family="helvetica" font-size="25.6"/>
+ <path fill="#bd0728" d="m338.4 240.5-3.7-10.7-4 10.7zM333 226h3.7l9 24.5h-3.8l-2.4-7.3h-9.7l-2.7 7.3h-3.3z" aria-label="A" font-family="helvetica" font-size="25.6"/>
+ <path fill="#bd0728" d="M357 226h4.9l6.9 20.7 7-20.7h4.7v24.4h-3.2v-20.6l-7 20.6h-3.1l-7-20.6v20.6H357z" aria-label="M" font-family="helvetica" font-size="25.6"/>
+</svg>
diff --git a/apps/web/public/flags/gw.svg b/apps/web/public/flags/gw.svg
new file mode 100644
index 00000000..d470bac9
--- /dev/null
+++ b/apps/web/public/flags/gw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gw" viewBox="0 0 640 480">
+ <path fill="#ce1126" d="M0 0h220v480H0z"/>
+ <path fill="#fcd116" d="M220 0h420v240H220z"/>
+ <path fill="#009e49" d="M220 240h420v240H220z"/>
+ <g id="gw-b" transform="matrix(80 0 0 80 110 240)">
+ <path id="gw-a" fill="#000001" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+ <use xlink:href="#gw-a" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#gw-b" width="100%" height="100%" transform="rotate(72 110 240)"/>
+ <use xlink:href="#gw-b" width="100%" height="100%" transform="rotate(144 110 240)"/>
+ <use xlink:href="#gw-b" width="100%" height="100%" transform="rotate(-144 110 240)"/>
+ <use xlink:href="#gw-b" width="100%" height="100%" transform="rotate(-72 110 240)"/>
+</svg>
diff --git a/apps/web/public/flags/gy.svg b/apps/web/public/flags/gy.svg
new file mode 100644
index 00000000..569fb562
--- /dev/null
+++ b/apps/web/public/flags/gy.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gy" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#399408" d="M2.4 0H640v480H2.4z"/>
+ <path fill="#fff" d="M.2 0c-.9 0 619.6 241.5 619.6 241.5L0 479.8z"/>
+ <path fill="#ffde08" d="M.3 20.2c3.4 0 559 217.9 555.9 220L1.9 463.2.3 20.3z"/>
+ <path fill="#000001" d="M1.9.8c1.8 0 290.9 240.9 290.9 240.9L1.8 477z"/>
+ <path fill="#de2110" d="M.3 33.9c1.6-15 260.9 208.4 260.9 208.4L.2 451.7V33.9z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/hk.svg b/apps/web/public/flags/hk.svg
new file mode 100644
index 00000000..4fd55bc1
--- /dev/null
+++ b/apps/web/public/flags/hk.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-hk" viewBox="0 0 640 480">
+ <path fill="#EC1B2E" d="M0 0h640v480H0"/>
+ <path id="hk-a" fill="#fff" d="M346.3 103.1C267 98 230.6 201.9 305.6 240.3c-26-22.4-20.6-55.3-10.1-72.4l1.9 1.1c-13.8 23.5-11.2 52.7 11.1 71-12.7-12.3-9.5-39 12.1-48.9s23.6-39.3 16.4-49.1q-14.7-25.6 9.3-38.9M307.9 164l-4.7 7.4-1.8-8.6-8.6-2.3 7.8-4.3-.6-8.9 6.5 6.1 8.3-3.3-3.7 8.1 5.6 6.8z"/>
+ <use xlink:href="#hk-a" transform="rotate(72 312.5 243.5)"/>
+ <use xlink:href="#hk-a" transform="rotate(144 312.5 243.5)"/>
+ <use xlink:href="#hk-a" transform="rotate(216 312.5 243.5)"/>
+ <use xlink:href="#hk-a" transform="rotate(288 312.5 243.5)"/>
+</svg>
diff --git a/apps/web/public/flags/hm.svg b/apps/web/public/flags/hm.svg
new file mode 100644
index 00000000..815c4820
--- /dev/null
+++ b/apps/web/public/flags/hm.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-hm" viewBox="0 0 640 480">
+ <path fill="#00008B" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="red" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="red" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+ <path fill="#fff" d="m527 396.7-20.5 2.6 2.2 20.5-14.8-14.4-14.7 14.5 2-20.5-20.5-2.4 17.3-11.2-10.9-17.5 19.6 6.5 6.9-19.5 7.1 19.4 19.5-6.7-10.7 17.6zm-3.7-117.2 2.7-13-9.8-9 13.2-1.5 5.5-12.1 5.5 12.1 13.2 1.5-9.8 9 2.7 13-11.6-6.6zm-104.1-60-20.3 2.2 1.8 20.3-14.4-14.5-14.8 14.1 2.4-20.3-20.2-2.7 17.3-10.8-10.5-17.5 19.3 6.8L387 178l6.7 19.3 19.4-6.3-10.9 17.3 17.1 11.2ZM623 186.7l-20.9 2.7 2.3 20.9-15.1-14.7-15 14.8 2.1-21-20.9-2.4 17.7-11.5-11.1-17.9 20 6.7 7-19.8 7.2 19.8 19.9-6.9-11 18zm-96.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8-15.1 14.4 2.4-20.7-20.7-2.8 17.7-11L467 73.5l19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6zM234 385.7l-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8 38.9-24.8-24-39.4 43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Z"/>
+</svg>
diff --git a/apps/web/public/flags/hn.svg b/apps/web/public/flags/hn.svg
new file mode 100644
index 00000000..11fde67d
--- /dev/null
+++ b/apps/web/public/flags/hn.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-hn" viewBox="0 0 640 480">
+ <path fill="#18c3df" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <g id="hn-c" fill="#18c3df" transform="translate(320 240)scale(26.66665)">
+ <g id="hn-b">
+ <path id="hn-a" d="m-.3 0 .5.1L0-1z"/>
+ <use xlink:href="#hn-a" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#hn-b" width="100%" height="100%" transform="rotate(72)"/>
+ <use xlink:href="#hn-b" width="100%" height="100%" transform="rotate(-72)"/>
+ <use xlink:href="#hn-b" width="100%" height="100%" transform="rotate(144)"/>
+ <use xlink:href="#hn-b" width="100%" height="100%" transform="rotate(-144)"/>
+ </g>
+ <use xlink:href="#hn-c" width="100%" height="100%" transform="translate(133.3 -42.7)"/>
+ <use xlink:href="#hn-c" width="100%" height="100%" transform="translate(133.3 37.3)"/>
+ <use xlink:href="#hn-c" width="100%" height="100%" transform="translate(-133.3 -42.7)"/>
+ <use xlink:href="#hn-c" width="100%" height="100%" transform="translate(-133.3 37.3)"/>
+</svg>
diff --git a/apps/web/public/flags/hr.svg b/apps/web/public/flags/hr.svg
new file mode 100644
index 00000000..dde825c3
--- /dev/null
+++ b/apps/web/public/flags/hr.svg
@@ -0,0 +1,58 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-hr" viewBox="0 0 640 480">
+ <path fill="#171796" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v320H0z"/>
+ <path fill="red" d="M0 0h640v160H0zm320 364.1c51.3 0 93.3-42 93.3-93.3V160H226.7v110.8c0 51.4 42 93.4 93.3 93.4z"/>
+ <path fill="#fff" d="M320 362.6a92 92 0 0 0 91.6-91.5V161.8H228.5V271a92 92 0 0 0 91.5 91.5z"/>
+ <g fill="red">
+ <path d="M267.1 165.2H232v38.7h35.2zm0 77.4h35.3v-38.7H267zM232 270.9q0 5.3.6 10.4h34.6v-38.7H232zm105.7-28.3h-35.2v38.7h35.2zm0 77.4h35.2v-38.7h-35.2zm35.2 21.2A89 89 0 0 0 393 320h-20v21.2zM267.1 320h35.3v-38.7H267zm-20.1 0a89 89 0 0 0 20.1 21.2V320zm79.1 38.7q5.9-.4 11.5-1.6V320h-35.2v37.1a87 87 0 0 0 11.4 1.6q6.2.4 12.3 0"/>
+ <path d="M407.4 281.3q.6-5.1.6-10.4v-28.3h-35.2v38.7zm-69.8-38.7h35.2v-38.7h-35.2zm0-77.4h-35.2v38.7h35.2zm70.4 38.7v-38.7h-35.2v38.7z"/>
+ </g>
+ <path fill="#fff" d="m410 158.8 21.8-49.5-16.6-26.8-27.6 10.2-19.4-22.2-25.4 14.7L320 66.5l-22.7 18.6-25.5-14.6-19.4 22.2-27.6-10.3-16.6 27 21.8 49.4a218 218 0 0 1 90-19.3c32 0 62.5 6.9 90 19.3"/>
+ <path fill="#0093dd" d="m253 94.8-27.4-10-15.3 24.7 5.9 13.3 14.8 33.7a220 220 0 0 1 34.6-12z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".3" d="M251.4 119.3a13 13 0 0 1 1.6 6.2c0 7.3-6 13.3-13.4 13.3a13.4 13.4 0 0 1-13.1-10.8 13 13 0 0 0 11.7 6.9 13.4 13.4 0 0 0 13.2-15.6z"/>
+ <path d="m227.6 114 1-4.9-3.8-3.2-.1-.1.2-.1 4.6-1.6 1-4.8v-.2l.2.1 3.7 3.2 4.6-1.6h.2v.2l-1 4.8 3.7 3.2.2.2h-.3l-4.6 1.6-1 4.8v.2l-.1-.1-3.7-3.2-4.6 1.6h-.3z"/>
+ <path fill="#f7db17" d="m233.6 107.6 3.5 3 4.3-1.5zm0-.2 7.8 1.6-3.4-3zm-8.3-1.6 7.8 1.5-3.5-3zm7.8 1.7-7.8-1.5 3.4 3zm.4-.3 5.2-6-4.3 1.5zm-5.6 6.4 5.2-6-4.3 1.5zm5.3-5.9-5.2 6 4.3-1.5zm5.6-6.4-5.2 6 4.3-1.5zm-5.6 6-2.6-7.6-.9 4.5zm2.7 8-2.5-7.5-.9 4.5zm-2.4-7.6 2.6 7.5.9-4.5zm-2.7-8 2.5 7.5 1-4.5z"/>
+ <path fill="#171796" d="M297.5 87.4 272.1 73 253 94.9l12.6 49.6a220 220 0 0 1 36.1-6z"/>
+ <path fill="red" d="M262.5 132.2a232 232 0 0 1 38.2-6.4l-1-12.9a246 246 0 0 0-40.4 6.7zm-6.3-25a258 258 0 0 1 42.4-7l-1.1-12.7a271 271 0 0 0-44.5 7.4z"/>
+ <g transform="translate(-160)scale(.00237)">
+ <path fill="#0093dd" d="m212105 36890-23 13-9517-7794-9497 7778 1788 21560c2543-210 5113-322 7709-322 2608 0 5190 113 7744 325l1795-21560z"/>
+ <g id="hr-a">
+ <path d="M202545 46585c-18-2-44 10-69 45-186 250-359 469-545 720-195 61-242 180-167 348-261-26-291 193-302 432-250-379-522-482-814-307-11-230-187-338-439-392-180-10-319-65-436-145-60-42-110-64-170-106-126-88-226-5-172 74 267 434 535 868 802 1302-14 80 6 151 88 204 47 133 93 265 140 397-11 38-21 75-32 113-221-105-443-118-664-133-170-8-287-50-361-137-54-63-91-26-92 82-3 534 162 1014 599 1492-231 4-462 11-694 21-79 6-95 39-73 104 126 304 339 579 822 766-208 112-327 285-357 520-9 224-75 382-212 455-60 32-81 65-24 106 253 185 565 193 895 112-157 270-226 553-198 850 208 56 412 15 614-52-29 61-44 175-52 309-7 115-41 229-104 343-32 33-65 84 4 102 336 91 648 52 915-47 0 243 2 487 76 727 18 58 70 102 125 26 155-214 322-396 527-517 31 90 75 168 156 215 96 55 147 170 153 343 0 30-2 60 35 90 149 7 514-380 589-597 206 121 284 246 439 461 55 76 99 29 128-25 62-243 67-481 66-724 267 99 579 138 915 47 69-19 36-70 4-102-62-114-105-250-113-365-9-133-14-226-43-287 202 68 405 108 614 52 29-297-53-579-211-850 330 80 655 73 908-112 57-41 35-74-24-106-136-73-203-231-212-455-30-235-149-409-357-520 483-187 696-463 822-766 22-66 6-99-73-104-231-10-480-24-711-27 437-478 606-961 604-1495-1-108-38-146-92-82-74 87-179 137-348 146-222 15-435 24-656 128-11-38-21-75-32-113 46-132 106-260 153-393 82-53 102-123 88-204 267-434 513-868 781-1302 54-79-46-162-171-74-60 42-110 64-170 106-117 80-257 134-437 145-251 54-417 167-428 397-293-175-564-73-814 307-11-239-41-457-302-432 75-168 17-291-178-352-186-250-458-470-644-720-31-35-51-47-69-45z"/>
+ <g fill="#f7db17">
+ <path d="M205075 47978c-51-26-124 17-162 95s-33 170 19 196c40 20 84-6 119-56l22-36c2-3 4-6 5-9 38-78 49-163-2-188zm-5008 0c52-26 124 17 162 95s39 165-13 191-103-24-141-102-60-158-9-184zm4539 905c-32 0-59 27-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59m-4032 0a59.1 59.1 0 1 0 .2 118.2 59.1 59.1 0 0 0-.2-118.2m4294-304c-754-91-1506-133-2260-133s-1509 41-2269 115c-26 8-21 90 14 86 756-73 1507-113 2256-113 743 0 1485 40 2228 129 39 4 54-80 32-84z"/>
+ <path d="M200319 48495c768-75 1530-117 2289-116 754 0 1507 42 2261 133l111-184c-32 10-62 9-90-5-76-38-92-161-36-274 56-114 164-175 240-138 39 19 62 62 68 114l446-739c-204 130-328 214-581 252-281 41-409 139-368 307 38 156-57 133-201 54-314-171-541 71-652 353-73 186-159 181-168-13-4-70 0-131-7-200-21-223-89-286-216-224-161 78-175 25-137-58 28-60 86-128 66-221-9-67-66-92-151-98-182-244-467-483-649-727-182 244-374 483-556 727-86 5-142 30-152 98-20 93 52 157 80 217 38 82 23 135-137 57-127-61-186-3-207 220-7 69-10 139-13 209-9 194-95 199-168 13-111-282-352-524-667-353-145 79-203 102-182-54 23-172-107-266-388-307-253-37-377-122-581-252l419 682c12-25 29-45 53-57 76-38 184 24 240 138 56 113 40 237-36 274-10 5-21 8-32 10l100 163zm4389 911c-7 3-7 4-24 11-46 19-80 66-134 124-57 60-128 125-211 188-12 10-25 19-44-6s-7-35 6-44c80-62 149-124 204-182 30-32 56-63 77-92-95-11-190-21-284-30-79 24-157 55-222 95-59 35-107 77-137 125-8 14-16 27-44 11-27-16-19-30-11-44 35-58 91-107 158-147 33-20 69-38 106-54-107-9-214-18-321-25-22 13-42 29-61 47-20 19-39 42-56 67-9 13-18 26-44 8s-18-31-8-44c19-29 41-54 64-77l9-9c-80-5-161-10-241-14-2 2-5 5-8 7a340 340 0 0 0-93 126c-6 15-12 29-41 18-29-12-23-26-17-41 12-29 27-55 45-81 8-11 18-22 27-33-115-5-230-9-344-12-4 5-9 8-14 11q-37.5 22.5-66 51c-28.5 28.5-35 40-48 63-8 14-16 28-43 12-28-16-20-29-12-43 16-28 35-54 59-77 7-7 14-13 21-19-122-2-244-4-365-4q-180 0-360 3c8 7 15 13 22 20 23 23 42 49 59 77 8 14 16 27-12 43s-35 2-44-12q-19.5-34.5-48-63c-28.5-28.5-41-36-66-51-6-3-12-7-15-12-115 2-230 6-345 11 11 11 20 23 29 35 19 25 33 52 45 81 6 15 12 29-17 41s-35-3-41-18c-9-24-22-46-38-67-15-21-34-41-55-59-4-3-7-6-10-10-81 4-162 8-243 13 4 4 9 8 13 12 24 23 45 48 64 77 9 13 18 26-8 44s-35 5-44-8c-18-26-36-48-56-67s-41-35-64-49c-1-1-3-2-5-3-110 7-220 14-330 23 43 18 85 38 122 61 67 40 124 89 158 147 8 14 16 27-11 44-27 16-35 3-44-11-29-48-78-90-137-125-72-44-159-77-246-102h-2c-90 7-179 15-268 24 22 33 51 68 86 106 55 58 124 120 204 182 13 9 25 19 6 44s-32 15-44 6c-83-64-155-128-211-188-37-38-99-111-135-140-196-90-354-127-575-147-153-14-318-9-458-79 36 85 75 164 126 229 53 68 120 121 209 147 8 2 21 16 22 25 28 157 84 286 169 386 52 60 114 110 188 149-75-81-132-166-172-251-67-142-90-286-77-420 1-16 3-32 34-29 32 3 30 19 29 35-11 123 9 256 72 387 56 118 159 237 291 346 24 19 0 63-29 55-154-44-290-123-383-231-89-104-149-237-180-397-94-32-165-90-222-164-47-60-85-131-118-205 28 428 182 801 456 1137 61 75 165 182 255 216 92 35 95 100-20 101-34 1-69 1-105 1 84 31 164 66 233 105 127 73 217 162 224 273 1 16 2 32-29 34-32 2-33-14-34-29-6-86-82-160-192-223-113-65-259-117-402-160-154 0-312-1-459 3 39 28 80 57 131 84 82 44 188 86 343 122 89 21 166 52 233 91 71 42 130 93 177 150 10 12 20 25-5 45s-34 8-45-5c-42-52-95-98-159-135q-91.5-54-216-84c-161-38-272-81-358-128-75-40-131-82-184-123 180 393 450 573 835 689 23 7 43 13 61 19 3 1 6 1 9 2 86 21 175 40 266 55 92 15 166 28 261 37 16 1 32 3 29 34-3 32-19 30-34 29-99-9-174-22-266-38q-87-15-171-33c-26 6-64 9-107 12-232 14-420 225-435 494 0 5 0 11-1 16 88-80 179-157 273-212 117-68 239-103 364-69 15 4 31 8 22 39-8 31-23 27-39 22-106-28-212 3-316 63-108 63-213 158-315 253-24 147-82 285-205 377 61 34 104 65 163 45 86-39 172-78 261-108 91-31 184-52 282-57 16-1 32-1 33 31s-14 32-31 33c-91 4-179 24-264 53-75 26-149 58-222 91 221 47 460-1 667-79 60-22 105-42 133-41 51-30 112-53 172-79 66-28 132-51 182-57 16-2 32-4 35 28 4 32-12 33-28 35-112 13-127 21-222 79 0 21-66 57-126 96-36 24-70 52-87 67-95 86-144 181-188 287-29 70-52 145-68 224 55-108 121-211 201-303 94-108 208-201 345-265 14-7 29-13 42 15 13 29-1 35-15 42-129 60-236 147-324 250-90 103-161 222-219 345-31 64-8 1-42 86 110-122 212-224 323-307 132-100 283-157 418-133 15 3 31 6 26 37s-21 28-37 26c-116-21-250 32-369 121-121 92-244 223-366 361 184 26 366-26 542-85 91-30 183-135 239-152 19-24 38-46 57-67 33-37 67-71 102-100 12-10 24-20 45 4s8 34-4 45c-33 28-65 60-96 94-32 35-62 73-92 113-6 8-13 17-24 16-60 70-151 162-172 240-57 210-25 370-122 576 71-38 128-81 175-134 53-60 94-135 128-230 37-104 95-195 167-270 75-77 165-136 261-172 15-5 30-11 41 19s-4 35-19 41c-87 32-169 86-238 157-66 68-119 151-153 247-37 102-81 183-141 250-44 50-95 91-156 127 52-3 78-10 121-7 79-6 211-66 279-119 66-51 116-120 154-206 6-15 13-29 42-16s23 27 16 42c-42 96-99 174-173 231-56 43-121 75-196 93 161-5 311-42 467-100 65-24 87-168 127-208 32-58 66-112 105-158 47-56 101-101 164-127 15-6 29-12 41 18 12 29-3 35-17 41-52 21-98 60-139 108-36 42-68 93-98 147 10 73-51 228-53 305-7 205-2 409 53 612 53-71 107-134 162-192 0-5 0-10 1-15 18-106 33-219 40-332 7-112 7-223-6-329-2-16-4-32 27-35 32-4 34 12 35 28 14 111 14 226 7 340-6 90-16 180-30 269 54-51 53-51 77-103 37-80 59-159 67-237 9-80 5-157-13-230-4-15-7-31 24-38s35 8 38 24c19 80 25 165 14 252-8 65-24 132-49 199 56-42 114-82 178-122-4-75-5-153-3-227 2-68 7-134 18-190 4-20 7-40 47-33s37 27 33 48c-9 50-14 111-16 177-2 78 0 162 4 243 5 82 49 185 125 230 103 62 158 163 186 274 16-145 17-280 3-400-17-143-55-267-114-368-8-14-16-27 12-44 27-16 35-2 43 12 63 110 104 241 122 393 17 146 13 310-13 488 102-82 381-258 352-594-7-27-16-52-28-75-7-14-14-28 14-42s35 0 42 14c17 33 30 69 39 110 5 24 8 49 11 76 13-7 45-43 51-39 24 16 58 38 80 54-21-60-35-120-42-178-10-87-5-172 14-252 4-15 7-31 38-24s27 23 24 38c-18 73-22 151-13 230 9 77 31 157 67 237 4 8 8 16 5 25 24 21 47 42 70 65-13-84-22-170-28-255-8-115-7-230 7-341 2-16 4-32 35-28s29 20 27 35c-13 106-13 217-6 329 7 113 22 225 40 332 1 2 1 5 1 7 54 59 95 120 152 196 55-203 73-407 66-612-2-76-69-227-65-302-30-55-63-107-100-151-41-49-87-87-139-108-15-6-29-12-18-41 12-29 27-24 41-18 62 26 117 71 164 127 38 45 72 98 103 154 57 7 78 179 143 212 154 57 298 94 453 100q-112.5-28.5-195-93c-74-57-131-135-173-231-6-15-13-29 16-42s35 2 42 16c38 86 88 156 154 206 85 66 289 124 400 127-61-37-113-78-157-128-59-67-104-148-141-250-34-95-87-179-153-247a642 642 0 0 0-238-157c-15-6-29-11-19-41 11-29 26-24 41-19 96 36 186 94 261 172 72 74 130 166 167 270 34 95 75 169 128 230 47 54 105 98 177 135-98-207-66-367-122-577-35-129-232-277-193-320 45-51 133 88 248 127 175 59 357 111 540 85-122-138-244-269-366-361-119-90-237-140-352-120-16 3-31 6-37-26-5-31 10-34 26-37 135-24 269 32 401 132 111 84 201 175 311 298-18-47 0-14-30-77-59-123-130-241-220-345-89-102-196-189-324-250-14-7-28-13-15-42 13-28 28-22 42-15 137 65 251 157 345 265 81 93 147 198 203 307-15-81-39-157-68-227-44-106-93-201-188-287-62-56-209-140-208-179-29-15-33-11-63-24-61-26-121-46-164-52-16-2-32-4-28-35 4-32 19-30 35-28 50 6 115 28 182 56 33 14 66 43 98 60 53 4 139 47 208 74 206 78 446 126 666 79-73-33-147-65-223-91-85-29-172-49-264-53-16-1-32-1-31-33s17-31 33-31c98 4 191 26 282 57 89 30 175 69 261 108 59 27 101-7 163-45-123-92-181-230-205-376l-2-2c-102-95-207-190-315-253-104-60-210-91-316-63-15 4-31 8-39-22-8-31 7-35 22-39 125-33 247 1 364 69 94 55 186 132 274 213 0-6-1-11-1-17-15-270-203-480-435-494-78-5-189 21-186-32 4-59 97-44 234-86 385-116 655-296 836-690-54 41-110 83-186 124-86 47-198 91-358 128-82 19-154 48-216 84-64 38-117 84-159 135-10 12-20 25-45 5s-14-32-5-45c47-57 106-108 177-150 67-39 145-70 233-91 155-36 261-78 343-122 51-27 92-55 131-84-148-4-305-3-459-3-143 44-289 96-402 160-110 63-186 136-192 223-1 16-2 32-34 29-32-2-31-18-29-34 8-111 97-200 224-273 69-39 149-74 233-105-35 0-70 0-104-1-116-2-112-66-20-101 90-34 190-141 251-216 271-334 412-714 456-1130-33 72-69 140-115 198-57 73-128 131-222 164-31 160-91 293-180 397-92 108-216 185-369 230-29 8-52-35-29-55 132-109 221-226 278-344 62-131 83-264 72-387-1-16-3-32 29-35 31-3 33 13 34 29 12 134-10 278-78 420-40 85-97 170-172 251 73-39 136-89 187-149 85-100 141-229 170-386 1-8 14-22 22-25 89-27 155-79 209-147 51-65 90-143 126-228-140 69-304 64-457 78-213 19-369 68-554 152z"/>
+ <path d="M204649 49231c-680-88-1359-113-2041-114-684 0-1369 40-2058 112-20 6-15 33-14 46 2 28 37 35 121 27 643-60 1285-93 1932-93 674 0 1351 21 2038 102 33 9 77-85 22-81z"/>
+ <path fill-rule="evenodd" d="M200570 49160c683-71 1362-110 2038-110 675 0 1349 40 2025 127l31-127c-17 9-37 15-58 15a123 123 0 1 1 113-171l60-170c-724-84-1446-122-2171-122-729 0-1459 38-2193 107l58 164c22-32 59-54 101-54a123 123 0 1 1 0 246c-12 0-25-2-36-6l33 94-2 7zm3067-416a123 123 0 1 0 0 246 123 123 0 1 0 0-246m0 64a59.1 59.1 0 0 0 0 118c32 0 59-27 59-59s-26-59-59-59m-1082-91a123 123 0 1 0 123 123c0-68-55-123-123-123m0 64a59.1 59.1 0 1 0 .2 118.2 59.1 59.1 0 0 0-.2-118.2m-1064-40a123 123 0 1 0-.2 245.8 123 123 0 0 0 .2-245.8m0 64c-33 0-59 26-59 59s26 59 59 59a59.1 59.1 0 0 0 0-118"/>
+ </g>
+ <path d="M202601 47974c-14-68-49-129-100-175-51-47-116-78-187-88-33-4-39-58-7-68 60-20 114-67 157-133 45-69 79-157 95-256 5-34 64-35 69-1 15 84 51 153 97 208 55 66 125 112 193 138 31 12 25 63-8 68-59 9-105 42-141 87-50 62-81 145-100 221-8 33-62 31-69-2zm33-118c20-52 47-103 81-146 28-34 60-64 99-84-51-30-100-70-143-120-28-34-53-73-73-116-19 59-45 112-75 158-31 47-67 86-108 116 50 19 95 47 134 82 34 31 63 68 85 110m799 5115-515 206c-17 7-35 14-48-21-14-34 4-41 21-48l515-206c17-7 35-14 48 21 14 34-4 41-21 48m59-326-604 328c-16 9-33 18-51-15s-1-42 15-51l604-328c16-9 33-18 51 15s1 42-15 51m-1826-65 604 328c16 9 33 18 15 51s-34 24-51 15l-604-328c-16-9-33-18-15-51s34-24 51-15m51 322 515 206c18 7 35 14 21 48-14 35-31 28-49 21l-515-206c-17-7-34-14-21-48 14-35 31-28 48-21zm224 434c137 33 261 48 358 31 88-16 155-60 191-146v-493c-107-1-212-15-303-41-109-31-170-98-201-178-41-107-27-235-4-329 5-18 9-36 45-27s32 27 27 45c-20 82-33 194 1 284 23 60 69 110 152 133 91 25 198 38 307 38 107 0 214-13 304-40 82-24 148-69 192-123s65-117 57-176c-5-36-24-62-49-80-34-24-82-35-128-37-47-2-94 7-142 16-25 5-50 9-77 13-19 2-37 5-42-32s14-40 32-42c23-3 48-8 73-12 52-10 105-20 159-18 60 2 121 18 168 51 42 29 72 72 80 131 11 80-16 163-73 233-53 65-131 119-229 147-83 24-178 38-274 42v483c3 5 3 11 2 16 37 82 102 125 188 141 97 18 221 2 358-31 18-5 36-9 45 27 8 37-9 41-28 45-146 35-279 51-388 32-92-17-165-58-215-132-49 74-124 115-215 132-109 20-242 4-388-32-18-4-37-8-28-45 8-36 27-32 45-27zm356 210 402-9c19 0 38-1 38 37 1 38-18 38-37 38l-402 9c-19 0-37 1-38-37s18-38 37-38m593-3082c151-125 293-227 423-297 133-72 254-111 359-106 19 1 37 1 36 39-1 37-20 37-39 36-92-4-200 32-322 97-125 67-263 166-410 289-14 12-29 24-53-5s-9-41 5-53zm-605 56c-141-130-298-240-445-314-139-71-268-108-363-100-19 2-37 4-40-34-4-37 15-39 34-40 110-10 252 31 404 107 152 77 315 191 461 325 14 13 28 25 2 53-25 27-39 15-53 2zm-213 1004c37-83 83-155 136-219 53-63 112-119 174-170 14-12 29-24 52 5 24 29 9 41-5 53-59 48-114 101-164 160-49 59-91 125-125 201-8 17-15 34-49 19s-27-32-19-49m371-1734c49 66 88 139 114 223 26 82 40 175 39 279 5 80 6 165-7 249-13 86-42 170-97 246-43 60-101 97-165 113-53 13-109 10-164-7 29 100 51 208 6 308-8 18-33 27-51 18-43-22-86-43-128-62s-84-36-127-51l-1-1c-95-37-173-73-236-112-65-39-115-80-150-124l1 2c-44-49-72-106-88-170-14-55-20-114-22-174-72-39-138-78-194-116-64-43-118-87-161-131-13-14-26-27 1-53s40-12 53 1c39 40 89 80 150 121 60 40 128 81 204 121 124 13 247 51 370 109 106 50 211 115 317 192 13 7 19 16 27 20 8 6 16 13 25 19 51 22 104 28 152 16 47-11 90-39 122-84 48-66 72-139 84-214 12-77 11-157 6-234v-2c1-97-12-183-35-258-24-76-58-142-102-201-11-15-22-30 7-52s41-7 52 7zm-375 1047c-104-77-207-141-311-190-105-49-210-83-314-98q3 72 18 135c13 52 35 99 71 138l1 1c30 37 73 72 130 107 60 36 134 71 225 106l-1-1c45 16 89 34 133 54 31 14 61 28 93 44 19-83-10-179-37-267-2-8-5-15-9-29zm776-1003c-44 59-79 125-102 201-24 76-36 161-35 258v2c-5 77-6 158 6 234 12 75 37 148 84 214 32 45 75 72 122 84 48 12 101 6 152-16l25-19c6-4 13-12 27-20 105-77 211-143 317-192 123-58 246-95 370-109 75-40 144-80 204-121s111-81 149-121c13-13 26-27 53-1s14 39 0 53c-43 44-97 88-161 131-57 38-122 77-194 116-2 61-8 119-22 174-16 63-44 121-88 170l1-2c-35 44-85 85-150 124-63 38-141 75-237 112l-1 1c-43 15-85 32-127 51-43 19-85 40-128 62-18 9-43 0-51-18-45-100-23-208 6-308-55 18-111 20-164 7-64-15-122-53-165-113-55-76-84-160-97-246-13-85-12-169-7-249-1-104 13-196 39-279 26-84 65-158 114-223 11-15 22-30 52-7 30 22 19 37 7 52zm940 715c-105 15-209 49-314 98-104 49-207 113-311 190-4 13-6 21-8 29-27 88-56 184-37 267 31-15 62-30 93-44 44-20 87-38 133-54l-1 1c91-35 165-70 225-106 58-34 100-70 131-107l1-1c35-39 57-86 71-138 11-42 16-87 19-135z"/>
+ <path fill-rule="evenodd" d="M203459 50602a216.4 216.4 0 0 0 0 433 216.6 216.6 0 0 0 0-433m0 69c-81 0-147 66-147 147s66 147 147 147 147-66 147-147-66-147-147-147m0 60a87 87 0 1 0 .1 174.1 87 87 0 0 0-.1-174.1m-1697-124c119 0 217 97 217 216s-97 217-217 217a216.6 216.6 0 0 1 0-433m0 69c81 0 147 66 147 147s-66 147-147 147-147-66-147-147 66-147 147-147m0 60a87 87 0 1 1-.1 174.1 87 87 0 0 1 .1-174.1"/>
+ </g>
+ <use xlink:href="#hr-a" width="100%" height="100%" transform="rotate(-2.2 -55532.8 156275.8)"/>
+ <use xlink:href="#hr-a" width="100%" height="100%" transform="rotate(2.2 459865.8 156275.8)"/>
+ </g>
+ <path fill="#171796" d="m387.2 94.9-19.3-22-25.2 14.5-4.3 51.1a220 220 0 0 1 36.2 6z"/>
+ <path d="M347.7 98q1.2-.4 2.6.3.5.1.8.6.5-.5 1.2-.8a4 4 0 0 1 1.8-1q1.4-.7 2.7-.9h2.8q1.2 0 2.3.6l2 1q1.2.7 2.2 1a9 9 0 0 0 4.5.5q.8-.2.2.4c-3.3 2-5.9.2-8.1-.6l2.1 1.7q1 1.2 3.5 2.4a8 8 0 0 0 5 .7l.4.1-.1.5a5 5 0 0 1-2.6.7 10 10 0 0 1-5.2-1.3q-2-1.1-3.3-2.4a8 8 0 0 0-3-1.4 6 6 0 0 0-2.9 0q.4.1.6.4.6.4 2 .5.6 0-.5.7a2 2 0 0 1-1.6.8c-1 .6-1.3.2-1.7-.2l-.2.8v.4l.2.7q0 .3.2.4.3.3.3.7t.3.4l.6.6q.8.4 1 1.2.6.3.7.9.3 0 .6.4l2.6.1q1.2.2 2 1.2h1.2l1.3-.3h2.3q.8.3 1.2.8.8.6 1.8.2a3 3 0 0 1 2.4 0l1-.2q.6-.4 1-.4 1-.2.9.8 0 .3-.3.4-.4.8-1.3.7-.2.6-.5.8.4 1.3-.7 1.2 0 .4-.6.4a1 1 0 0 1-1 .5l.4.6c.4.7-.2 1-.8 1v1.2q1 .6.2 1.2.6 1.1-.5 1.6 0 .7-.3 1-.4.2-.3.6.4.9-.2 1.2l-.2.1-.2.2-1.5 1h-.2a10 10 0 0 1-1.8 2.4q0 .8-1 1.1l-.3.4q.6.4.2 1l-1.3.8q-1.5.4-2-.2-.5-.5 0-.7-1 0-.8-.7 0-.3.3-.1.6 0 1-.3l.5-.6q.1-1 1.1-1.3.8-.3 1.4-1.2l.9-1.5-.3-.7-.5-.6q-.7 0-.7-.5h-.3l-.7.2-1.1 1q-.3.5-.7.5c-1 .1-1.5 1.2-2 1.7q-.3.2-.4.7 0 1-.4 1h-.8q.4.4 0 .9-.2.4-.8.4l-1.6-.2q-.5-.3-.5-.7-.4-.2-.3-.5 0-.3.4-.2l.6-.2a5 5 0 0 1 1.8-1.4l.7-.7q.1-.8 1-1.4l.1-.6v-.3q-.3-.5-.1-1v-.6q-1.6.8-1.6-.1-.7.6-1 0-.6.3-1.2.1l-.8.2-.4.7q0 .7-.5 1.5l-.7 1.5-.1.5q0 .9-.5 1l-.4.8v.2q.2.5-.2 1l-1 .6h-1q-.5-.4-.3-.6h-.5l-.4-.3q-.2-.3.1-.5l.9-.6q0-.3.4-.4.3-.6.6-.7l.7-1.5q.2-.2.1-.4l.1-.3s.2-.1 0-.2a1 1 0 0 1 .2-1.2c.3-.4.6-1.4.3-2v-.8h-.3q-.3-.2-.6.2l-.4.6q-.2 1.3-1 1.6v1.2q0 .7-.2.7t-.5.5l-.1.3q.4.5-.1 1-1 .8-2.2.3-.9-.4-.7-.8c-.8 0-.7-.7 0-.9q1.2-.3 1.9-1.4 0-1.2.7-1.4 0-.8.4-1.4.3-.6.2-1.3-.6-.4 0-1 .2 0 0-.2-.4-.1-.3-.5t-.2-.2q-.8-.2-.2-.7.2-.1 0-.4l-.1-.4q-.4-.4 0-.9l-.4-.8q-1.1 0-.6-.9l.7-.6q.3-.5.2-.8c-.2-.6.5-1 1-1.4l-.1-.4q-.4-.5.1-.8l-.1-.5q-1.1.2-.4-1-.8-.5.5-1.5v-.4l-1 .3q-.5.3-.9.1l-.4-.4-.2-.6c-1 0-1.1-.7-.6-1q.5-.4.7-.9.4-.8 1.3-1.5v-.5l-.7-.3-.6-.7q-.2 0 0-.4-.7-.6-.3-1"/>
+ <g fill="#f7db17">
+ <path d="M364.5 122h-.2l-.8.7q-.5-.2-.2.1l-.2.2q0 .4-.5.4h-.1v-.7l-.1.4v.4q-1.1.6-1.9 1.7l-.4.8c0 .2 0 .9-.3.9h-.2q0-.1-.4 0h-1c-.2.2.4.2.7.3q.2.2.1.5c-.2.7-1.8.5-2.3.2q-.2-.2-.2-.5h.3q.3 0 .5-.2v-.1h-1.2.2l.7-.3a5 5 0 0 1 1.9-1.4l.8-.7q.1-.9.8-1.5l.3-.7v-.3q-.4-.6-.1-1v-.9l.8-.6v.8l-.2.3v.3-.3l.3-.2.7-.4.7-.6v1l-.6.7v.1h.1l.5-.7 1-.6v1z"/>
+ <path d="m349 113 .2-.2.4-.6.5-.6-.4.7-.4.5v.2q0 .4.3.7l.3-.4.4-.4.5-.6h.1l-.2.4-.3.3-.4.3-.2.4v.3c-.2.3-.5.5 0 .7l.1.5-.1.7q-.2.3.1.2l.4-.4.3-.4.4-.5.1-.5h.1l-.1.6-.5.5-.2.4-.3.4q.2.2.2.7h.1l.2-.2.2-.4h.1l-.2.4-.2.3q.3.2 0 .5-.5.4 0 .7v1.2l.1.3h-.1v-.3q-.6.9-.7 1.8c-.6.1-.5.8-.6 1.3a4 4 0 0 1-1.9 1.5q-.3 0-.5.3 0 .3.4.2.8-.6.2.2v.3c.5.4 1.6.5 2.2.2q.6-.4.2-.9 0-.8.8-1.2v-.4l.1-1.3.2-.1c.2 0 .6-.7.7-1.3v-.4q.1-.3.3 0 0-.3.2-.4.3-.6.8-.4l-.1-.8v-1l.2-.2.3-.7.3-.7h.1l-.3.7-.3.8v.1l-.1 1 .2.9.2.4v.6c.4.6 0 1.7-.3 2.2l-.1.8q.2.3-.1.6v.1q0 .3-.2.5l-.7 1.6q-.5.1-.6.7-.4.1-.4.4l-.9.6q-.3.1.2.4.3 0 .6-.4t.2 0l-.2.7.7.3q.7-.2 1.2-.6t.1-.8h-.5l-.5-.3 1 .2v-.3l.5-.8q.5-.2.4-.9l.1-.5.7-1.6q.6-.6.5-1.4 0-.3.3-.3l.3-.5.1-.4.2-.2v-.5l-.1-.4-.1-.2v-.2h.1v.3q.3.3.2.5v.5l-.2.2v.3l.6-.1.4-.5.2-.6-.1.7-.3.3q.6.2 1 0V119l.4-.7q.2 0 0 0l-.2.8v1q.1.6.5.3l.4-.2v-.1l1.8-1.6v.1l-.8.7-.8.7v.3q0 .5.6.3l.6-.2.3-.2.5-.3.5-.3.1-.6.7-1.3a2 2 0 0 0 1.1-1.1h.1l-.4.7-.7.5-.7 1.2-.1.5v.9q.3 0 .7-.3l.7-.7.2-.5.4-.4h.1v.1l-.4.3-.2.5v1.1l1-.5v1q0 .5.4.8l.5-.6.3-.3.2-.2.3-.2-.2.3-.2.2-.3.2v.5h.6q-.1.7.5.6v-.5l.1-.5h.1l-.1.5v.5q.2.4.7.6l.2-.5v-.4h.1v.5l-.3.5v.5l.2-.3.3-.4q.2 0 0 0 0 .3-.2.4l-.2.4.2.2c-.6 1-1.3 2.5-2.5 3q-.9.2-1 1.2l-.5.6-1.2.3q0 .4.3.4l.7-.3q.2.2-.5.8v.1c.4.6 1.4.4 1.9.2q.8-.2 1.2-.9.1-.3-.2-.6c-.8.1-.6-.6 0-.3q.3 0 .3-.3.9-.3 1-1 1-1 1.6-2.1.2-.3.1-.5l.2-.5.1-.4h.1v.5l-.2.3q0 .2.2.2l1.5-1q0-.4.4-.4l.2-.1q.1-.5-.2-.8-.1-.5.4-.7.3-.4.2-1v-.5l.1.3v.1q.5-.1.7-.6 0-.5-.3-.8l-.6.2.7-.4.3-.2c.2-.3-.3-.5-.5-.6l-.7-.7v-.1l.7.6v-1.1l-.2-.4-.5-.4-.1-.5.2.4.4.4h1c.3-.3-.2-.7-.3-.9l-.1-.5h.1l-.2-.2h-.1v-.2l.2.1.2.2h.1q.4 0 .7-.5l-.3-.4-.5-.3v-.1h.1l.8.8q.4 0 .6-.3l-.2-.4-.3-.4q.3 0 .4.3l.2.5.4-.1c.3-.2 0-.8 0-1h-.1l-.2-.2h.2l.2.1.4-.6c0-.4 0-.2.5-.3q.5.2.9-.6.2 0 .2-.3 0-.4-.3-.4-.7 0-1 .3v.3l-.2-.2-1.1.2h-.2l.2.3.1.4-.2-.4-.3-.4-1-.2.2.1.2.2v.1l-.2-.2-.2-.2-.9.2-.6.2.4.5.2.6-.3-.6-.4-.4h-.5l.2.3-.3-.4-.5-.2.2 1.5-.2-.9-.1-.7-.2-.2-.6-.4-.2.7.1-.8-1-.2.5.8.3.5v.5l-.1-.5-.3-.4-.3-.5-.3-.4h-.4.1v.3-.2l-.2-.1h-.8a5 5 0 0 1 1 2.3l-.4-1.2-.7-1h-.6l.4.4q0 .1 0 0l-.3-.1-.3-.2h-.3l-.1.1 1 1.1-.6-.6-.6-.4h-.6l.5 1.7h-.1l-.2-.8-.3-.9h-.4l.3 1.6v.1l-.2-1-.3-.8-1.3-1 .4 1.1v.1l-.2-.7-.4-.6h-1.3q.4.2.4.6 0-.3-.6-.7h-.6l.3.3.2.5.2.6.4.4s.1 0 0 0q0 .1 0 0l-.5-.3-.2-.7-.2-.4-.3-.4h-.7l.2.8.1 1h-.1v-1l-.3-.8-.6-.5v.3h-.1v-.3q-.2-.7-.6-.8v.4l-.2.4h-.1l.1-.5v-.4q0-.9-.8-1.2v.2l-.1.5h-.1v-.8l-.5-.5v.7l-.4.8h-.1l.3-.8.1-.8-.2-.3v.2h-.1v-.2l.1-.1v-.1l-.3-.5-.2.5h-.1l.1-.3.1-.3-.1-.2-.1.2-.2.2v-.1l.1-.2.1-.2v-.2l-.2-.7h-.3l-.5.4v-.1l.4-.3.4-.1v-.2l-1 .3-.9-.2h.8l1.1-.2.2-.6h-.5l.6-.1v-.2q.1-.3.4 0 .3 0 .4.3.4.2.9-.2h-.2v-.1h.3q.9.1 1.4-.5h-1l-.6-.2.7.1h1l.5-.3a5 5 0 0 1-2-.6l-.6-.3q-.8 0-1.4.3l-.3-.3-.4-.2h-.6s-.1 0 0 0h1.2l1.7-.3 1.7-.2v-.2q.5-.5.3-.9t-.8-.7h-1.3l-.8.1.6.4.4 1v.1h-.2l-.4-1c-.1-.2-.6-.3-.7-.4l-1.3.2-.7.4h.8q.4.3.6.8v.1h-.2l-.5-.7c-.4-.2-1.2 0-1.6.3l-.6.6h-.2v-.2l.7-.6.7-.4 1-.5 1.3-.2-.5-.5h-.8q-.7.2-1.5.7h.5l.1.2h-.9l-1.5 1.2q-.7 0-1 .2l-.1.6-.2.7q-.8.7-1.3 1.5l-.3.5.3.1v-.2l.2-.4h.1l-.1.4v.5h-.2l-.1-.2h-.3l-.3.2-.2.3q0 .4.5.3c.6 0 .1.4.4.7l.5.4h.5q0-.6.2-.6l.2-.4v.2l-.1.2v.4l1-.2q1.2-1 .4 0l-.1.2-.2.6c-.2.1-1 .8-.7 1q.4 0 .3.2-.3.4-.3.9h.3l.7-.6.5-.8h.1l.3-.8q0-.3.3-.7l.3.3h.5l.2-.3h.1l-.3.4h-.5l-.3-.3-.5 1.4v.1l-1.2 1.4.2.5 1-1 .8-1-.3.6v1.1h-.1v-.9l-.3.3-1 1q-.6.3-.2.7l.3-.3.4-.3h.1v.1l-.4.3-.4.3.1.3h.1l.8-.6v.1l-.7.6h-.1c-.3.3-1.2.8-1 1.2l.6-.2.6-.5v.1l-.6.5v.2-.1l-.7.1q.2.6-.3 1c0 .1-1 .9-.6 1z"/>
+ <path d="m349.4 100.1-.6-.3-.5-.5q-.3-.2-.1-.3l.2-.1h.3l.2.2h.1l-.2-.2-.4-.1h-.4l-.2-.5.4.1.2.1-.2-.2h-.2a3 3 0 0 1 2.1.2q.5.1.8.6l-.2.2q-.7 0-1 .2-.2.2-.2.6z"/>
+ </g>
+ <path d="m365 121.8-.4.2q0-.4.3-.6v.2zm2 4.2-.4.4-.5.4v-.1l.4-.4.4-.4zm1.3-1.6-.2.3h-.1l.2-.3zm-.7 0-.2.3-.5.4v-.1l.4-.3.1-.4zm1.2-1.6-.1.2-.1.2h-.1zm1 0v.5l-.3.5.1-.5zm-.4-6q.4.8.4 1.5l.1-.6a1 1 0 0 0 .3-1.1h.1v.6l-.3.6-.2 1h-.1v-.1q.1-.9-.4-1.8zm-.8 1v.3h-.1v-.4zm-.2 1.4.2 1.4.1-.1.3-.3h.1l-.3.3-.2.4-.1-.9zm1 .5.1 1.2v-.6zm1-.2v1.7l.1.6-.3-.6v-.6l.2-.5zm.5-1.5-.1.3v.2h-.1v-.6zm-.5-2.6v.2q.2 0 0 0zs-.1 0 0 0m.2-2v.8l-.2.3v.6h-.1v-.6l.3-.4zm-2-.7q.5.3.8.7t.3.9l-.6-.2v1.8q-.3.7-1 1a4 4 0 0 0 0-1.8h.1v1.6l.7-.8a4 4 0 0 0 .1-1.9l.6.2q0-.4-.3-.8l-.7-.6zm5.2-1v.2h-.1v-.2s0-.1 0 0zm-1.2 0 .3.1.1.2v.1l-.2-.2zm-1.8.5.3.5v.6q-.2 0 0 0l-.1-.6zm-6 .5v.4l-.1.1zm1-.6.2.4v.1h-.1v-.1l-.1-.3zm2.4 1.6v.3-.2h-.1zm.8-1.8v.4a.1.1 0 0 0 0-.2q-.2-.1 0-.1zm-5.5.3.2.7.3.4v.4h-.1v-.4l-.2-.3-.2-.4zm2.2 1.5.2.7v.7q0 .5.2.8l.6.7-.1-1 .3-1q.2 0 .3-.3v-.4h.1v.4l-.3.5-.3.9.2 1h-.1q-.6-.3-.8-.8l-.2-.8v-.7l-.2-.6h.1zm-.9 1.4q0 .4-.2.7l-.4.6h.3l.7-.6.3-.3-.2.4-.3.2v.4-.2l-.1-.1-.4.2-.4.2v-.1l.4-.7zm-1 0v.1h-.1z"/>
+ <path d="M363 113.7q.2.4.2 1l-.4.8-.5.6-.2.6.2-.3.5-.3 1.1-.9h.1l-1.2 1-.4.3-.4.5q0-.6.2-1l.5-.6.4-.8zm2.3 3.5.1.4.1.1q.3.4.3.8l-.1 1h-.1l-.4-1-.8-.6v-.1q.6.3.9.7l.3.6v-.6l-.1-.7-.1-.2q-.3-.3-.2-.4zm1 0 .1.2h-.1l-.2-.2zm1 .3-.2.7-.2.7.2-.7zm.7 4v-.2zm-.7-1.2v.3l-.2.4v-.4l.1-.4h.1zm-1 0h.1v.1zm-1.1-.6-.1.2v.2h-.1v-.4h.1zm-1.7 1.8-.1.2v.2s-.1.1-.2 0v-.2l.2-.3zm-4.8 4.6v.2l-.2.1q-.2 0 0 0zm.8-.4-.1.2h-.2l.1-.1v-.1zm1-.6-.2.1v-.2zm1.5-3.8-.1.4v.4h-.1v-.9h.1zm1-10.3-.1.3-.2.3h-.1l.2-.3v-.3l.1-.1zm-1-1 .1 1v-.5zm-1.4 1.7-.4-.4-.1-.4.2.4zm1.5 2.6v.2h-.1v-.2zm-2-2 .6 1 .1.8q.3 0 .4-.3v-.9l.3-.6.1-.5h.1l.4.8.3.9h-.1l-.3-.9-.3-.6v.4l-.3.5-.1 1-.4.3v.4h-.1l-.2-1.2-.5-1zm1.2 5v.3l-.1.4h-.1v-.8h.1q.2 0 0 0zm-2.2.9v.3l-.1-.3zm1.9-2.5-.2.6-.3.5-.3.6v.7l-.1-.7q0-.3.3-.7l.3-.5.2-.6zm-.5-.8v.6l-.5.6-.4.5-.2.5h-.1l.2-.6.5-.5.3-.5zm-2.4 1.2q0 .6-.2 1-.1.5-.6.8h-.1v-.1q.4-.3.6-.8.3-.3.2-1zm-3 1.7v.2l.1.1v.1h-.1l-.1-.2v-.2s-.1 0 0 0zm-1.3 0v.7l.4.6.1.5v.4l.4-.5.2-.6v.6l-.5.6h-.1v-.5l-.2-.4-.3-.7-.1-.7zm.2 4.2.1-.8h.1l-.1.8zm-.2 1.1v-.4s0-.1.1 0v.4zm-.8 2 .2-.3.2-.3h.1l-.2.4-.2.2q-.2 0 0 0zm-1.1-6.6v.2h-.1v-.2zm-2 4.5v-.2h.1v.3zm5-8-.3 1q0 .5.3.7.4.3.5.7v-.4q.2-.2 0-.4h.1v1h-.1v-.2l-.5-.6q-.4-.2-.4-.8l.2-1zm-.4-1.3v.8l-.3.7-.2 1q0 .6.3 1v.1a3 3 0 0 1-.2-2.1l.2-.7v-.8zm-2.3 3.3v.4l.1.5-.3-.5zm-1-.4v.6l-.1.3.1.2v.1l-.2-.3v-.4l.1-.2zm5.8-8.6a2 2 0 0 0 .3 1.5l-.4-.7zm-.7.7.5 1.7h-.1l-.5-1.6v-.1zm-3.6.1q-.5.8-.6 1.3l.2.9.2.8-.2.8V111l-.3-1q0-.5.6-1.2zm3.3-1.4v.5l-.4.4-.3.4v.7-.7l.3-.5.3-.4zm-3.5.3v.7q0 .3-.4.6l-.4.6-.1.7h-.1l.1-.8q0-.3.4-.6l.4-.6v-.6zm2 .1v.2l.1.3-.2-.2zm0-.5-.5.4-.2.7.2.5v.7-.7l-.3-.4a2 2 0 0 0-.5 1.2q0 .8.5 1.5h-.1a3 3 0 0 1-.5-1.5q0-.7.6-1.3 0-.5.2-.8l.5-.4zm-.7-.8q0 .5-.2.7l-.2.3-.1.4h-.1v-.4l.3-.4q.2-.2.2-.6v-.1zm5.7 6 .1.5v.4-.4zm0 2v.6l-.2.6-.3.6.2-.6.2-.6v-.7h.1zm-1.2-1.8a3 3 0 0 1 .7 2.5h-.1a2 2 0 0 0-.6-2.4zm0 2-1 1.4-.5 1-.1-.6-.2-.4-.3-.9.3-.8.3-.6v-.6h.1l-.3 1.3-.3.7q0 .5.2.8l.3.8.5-.8.5-.6.3-.7zm-3.2-1 .4 1.4v.1h-.1l-.3-.7zm-1.7 1v.3h-.1zm.6-1.6-.1.5-.3.5.2-.5v-.5zm-1.6 3.1a3 3 0 0 1-.3-1.7q0-.7.6-1l.4-.7q.2-.3.1-1c-.1-.7.1 0 .1 0v1l-.6.7-.5 1q0 .7.3 1.7zm-1-1.1v.3l.1.4-.2-.4zm4.6-3.2.3.8q.1.5-.2.9h-.1l.2-.9zm1.4-1.1a2 2 0 0 1 0 1.7l-.2-.8-.5-.5q0-.1.1 0l.6 1v-.6zm.8-1.2.4.8v1.5l.2.4-.2-.4v-.5l-.1-1-.4-.7h.1zm-2.2-.2-.3.5v.7-.7q0-.3.2-.5.2 0 0 0zm-4.4 3-.3 1-.8.7.7-.7q.3-.4.3-1zm0-1.6v.5l-.3.5.1-.5v-.5zm2.9-.2v1h-.1zm.7-1.3q-.3.4-.3.8l.2.7.3 1.2q0 .5-.4 1.1l.3-1.1-.3-1.2-.2-.7q0-.5.3-.8zm-4.6-8.1 1-.5q.6 0 1.2.3h.8-.8q-.6.7-1.1.7a1 1 0 0 1-.9-.2q0-.1 0 0a1 1 0 0 0 .9 0q.3 0 1-.5l-1-.1-1 .4z"/>
+ <path d="m351.6 101 .3.3-.3.2-.2-.2zm1.8 1.6.8-.7v.1l-.2.3-.5.4v-.1zm3.7-1.6h.3l.3.2h-.5l-.1-.1zm-2 .1.3-.4.7-.1v.1h-.7zq-.2 0 0 0m.2.4v-.3l.3-.1h.1l-.3.2v.2zm-3.6 1.1-.1.3v.3l-.1.1v-.4zm1 .5v.2zm-.6-1.1h.6l-.3.1zs-.1 0 0-.1m.6-2-.2.1-.1.2h-.1l.2-.3zm-1 .2h-.2v.2h-.1v-.2zm-.7 0-.1.1-.1.2h-.1l.1-.2.2-.2zm-.8.7-.4.4v-.1zm0 .9-.2.2q-.2 0 0 0v-.2zq.2 0 0 0m-.7.2v.3l-.1.1v-.4zm1 1.4v.6h-.1v-.6zm-.6-.4v.3h-.1v-.3zm-.6-4.5.5.4v.1h-.1l-.2-.3-.2-.1zm5.2 6.7a2 2 0 0 1 0 1.4h-.1a2 2 0 0 0 0-1.3v-.1zm-1.7 2q0-.4.3-.7l.4-.6q.3-.3.3-.7v-.7h.1a2 2 0 0 1-.3 1.5l-.4.5zm-2.2-.6.2-.3.3-.1-.2.2zm-.4-.2.3-.3.3-.2v.1l-.3.2zq-.2 0 0 0m2.3-2.2h.5v.1h-.6q0-.1 0 0zm-1.2-.1q.2 0 0 0m24.2 7 .2.3h-.1v-.1l-.2-.2zm-26.8 12.5.3.3h.5v.1h-.5l-.4-.3q0-.1 0 0z"/>
+ <g fill="red">
+ <path d="M368.9 99.6h1.7q-.9.5-2 .7l.3-.4zm-1.4-.1h1.2v.4s0 .2-.2.3v.1h-1.3l.3-.5v-.4zm-10.5-3q1-.3 2-.2l.5.4q.2.3.1.8l.1.1h.1l-.1-1-.3-.2h.2a5 5 0 0 1 2.1.6q.3.3.2.5l-.3.5v.2h.2l.3-.7v-.3l1.7.8v.5l-.5.3v.1l.1.1q.4 0 .6-.4v-.4l1.2.6v.3q0 .3-.3.4v.1q.4 0 .6-.4v-.3l.4.1 1.3.4.1.4-.2.3v.2c-1.4-.1-2.7-.9-4.1-1.4l-.5-.2-1.6-.6-.1-.1-1.5-.4h-1.7l-.1-.8-.5-.4z"/>
+ <path d="m354.6 97 2-.5q.6.2.7.5v.6l-1.7.2-.7-.6-.3-.1zm7.4 3.9-.5-.4a7 7 0 0 0-3-.8q.4-.6.3-1.1l-.7-.8h1l2 .6v.8q0 .3-.5.7v.1q.6-.2.7-.7v-.8l1 .6 1 .8q0 .5-.3.8h-.9v.2z"/>
+ <path d="m364 102.4-1.8-1.4q.6 0 1-.2.2-.2.3-.8l1.1 1 .6.5v.6l-.4.2h-.7z"/>
+ <path d="m366.2 103.8-2-1.3h.7l.4-.2.1-.4v-.2l2.1 1.4q0 .4-.3.5l-1 .1z"/>
+ <path d="m368.4 104.7-2-.8q.6 0 1-.2.3 0 .3-.5l1.3.6v.4l-.5.4s-.1 0 0 0z"/>
+ <path d="M373.2 104.2s.4-.1.2 0q-2.2 1.4-4.8.5.4-.1.6-.4v-.5l1.7.4-.1.3-.5.3s-.1 0 0 .1q.5 0 .6-.3l.2-.4h2zm-9.7 24-.2.4-1.2.3q0 .4.3.4l.7-.3q.2.2-.5.8v.1c.4.6 1.4.4 1.9.3a3 3 0 0 0 1.3-1l-.3-.6q-.6.1-.5-.2zm-15.1-4.8q-.5.5-1 .6t-.6.3q0 .3.4.2.8-.6.2.2v.3c.5.4 1.6.5 2.2.2q.6-.3.2-.9v-.2h-.6l-.4-.3zm10 3.5h-.1c-.2.2.3.2.6.3q.3.2.2.5c-.3.7-1.9.5-2.4.2q-.2-.2-.2-.5h.3l.6-.2v-.2h-.2l-.4.2h-.5l-.2-.2h.2l.7-.2.1-.1q.8 0 1.3.2m-7.2-.4-.2.3-.9.6q-.2.1.2.4.4 0 .6-.4.3-.4.2 0l-.2.7.7.3q.8-.2 1.2-.6t.1-.8h-.5l-.5-.3zm2.8-26.4h.3l.6.1 1.7-.3 1.7-.2v-.2q.4-.4.3-.9l-.8-.7h-1.3l-.8.1.6.4.4 1h-.2q0-.5-.3-.9l-.8-.4-1.3.2q-.4 0-.7.3l.8.1q.5.2.6.8h-.1l-.5-.6c-.4-.2-1.3 0-1.7.2l-.6.6zm-2.3-.4.7-.6.7-.4 1-.5 1.3-.2-.5-.5-.8-.1-1.5.8h.5l.1.2h-.9l-1.3 1q.5.1.7.4"/>
+ </g>
+ <path fill="#0093dd" d="m409 156.5 20.8-47-15.3-24.7-27.3 10-12.7 49.8a219 219 0 0 1 34.5 11.9"/>
+ <path fill="#fff" d="M382.6 113a252 252 0 0 1 39.6 13.7l-8 18.2a232 232 0 0 0-36.5-12.7z"/>
+ <path fill="red" d="m415.4 142 5.4-12.2a249 249 0 0 0-39-13.5l-3.2 12.4a236 236 0 0 1 37 12.8z"/>
+ <path d="M385.6 125.8q.5-.4 1.1-.1l1-.2.6-.2q.3 0 0-.3v-.3q-1-.7-1.2-1.5-.5 0-.5-.3h-.5q-1-.1-1.3-.5l-.6-.4-.3-.3q-.3-.6.2-.7h.7l.9-.1q.4 0 .9-.6v-.4s0-.2.2-.1a1 1 0 0 1 .8.5q.8 0 1.2.7 1 .1 1.2.5 0 .3-.5.6v.2l.4.4 1 .7q1.5-.1 4.8 2a19 19 0 0 1 4.1 1.2h.9q3.6-.7 6.8 1.5 1.2.2 2.2.7.7.3 1.6.3a8 8 0 0 1 2.6.7q1.6.3 2.4 1.2.6.8-.2 1.2-.4.8-1.8.3-1 0-2-.9-1.2-.4-2.4-1.3l-1.3-.6h-.8v.2q.4.3.4.8v1q0 .5.7.9l1 .4q.3 0 .3.3l.4 1.7.4.3c.6.5.2 1-.3 1l-1.3.8q-.6.2-.7-.2l-.4-.2c-.5-.4-.1-1 1-.7l.2-.2v-.9l-.3-.2-1-.6q-1-.8-2.4-1.4-1-.1-1.8-.7h-.8q-.3 0-.5.2t-.8.2h-1.6q-.6 0-1 .3-.3.3-.7 0l-.3-.2q-.5 0-.5-.2-.7-.1-.6-.4c-.6-.1-.3-.6 0-.6l1.4.1q.8.1 1.2-.2l.5-.5a4 4 0 0 1-1.8-.5q-1.6-1.1-2.8-.3-.2.3-.6.1h-.5q-.7.1-1.3-.1a4 4 0 0 1-1.8 0q-.9.5-1.2.2l-.6-.4q-.6-.2-.5-.3-.6 0-.5-.4-.2-.3 0-.4.6-.3 1 0 .4 0 .6.3h.6q.2-.2 1-.2l.7-.2v-.2q-.5-.1-.9-.7a3 3 0 0 1-1.5-.5q-.6 0-1-.3h-2.9a1 1 0 0 1-1 .2l-.8-.5q-.4-.1-.4-.4-.5-.3 0-.5.3-.2 1 0z"/>
+ <path fill="#fff" d="M401.2 130.5s0-.2-.3 0q-1.2.1-2.2-.4-1-.7-2-.8l.7-.4h1.5q1 0 2 .4.6.3 1 .8l.8.7h-.7z"/>
+ <path d="M403 94.7v.2l.9 4.9-3.7 3.2-.2.1.2.1 4.7 1.6 1 4.9v.2l.2-.1 3.7-3.3 4.6 1.6h.3v-.1l-1-4.9 3.7-3.2.2-.2h-.3l-4.6-1.6-1-4.9V93l-.2.1-3.7 3.3z"/>
+ <path fill="#f7db17" d="m400.6 103 3.5-3 4.4 1.4zm8.5-1.7 3.4-3 4.4 1.5zm7.8-1.3-3.4 3-4.4-1.5zm-8.4 1.6-3.5 3-4.3-1.5zm-5-6.4 4.3 1.4.8 4.6zm5.5 6.4 4.4 1.5.9 4.5zm5.1 6.1-4.3-1.5-.9-4.5zm-5.6-6.4-4.3-1.5-.9-4.5zm3-7.7 1 4.6-3.5 3zm-2.7 8.1.8 4.6-3.4 3zm-2.8 7.5-.9-4.5 3.5-3zm2.8-8-.9-4.6 3.5-3z"/>
+</svg>
diff --git a/apps/web/public/flags/ht.svg b/apps/web/public/flags/ht.svg
new file mode 100644
index 00000000..8e8efc46
--- /dev/null
+++ b/apps/web/public/flags/ht.svg
@@ -0,0 +1,116 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ht" viewBox="0 0 640 480">
+ <path fill="#d21034" d="M0 0h640v480H0z"/>
+ <path fill="#00209f" d="M0 0h640v240H0z"/>
+ <g fill="#f1b517" stroke="#000" stroke-width=".2">
+ <path fill="#fff" stroke="none" d="M244.3 179.7h151.4v120.5H244.3z"/>
+ <path fill="#016a16" stroke="#016a16" stroke-width=".3" d="m350.5 266.8-31 1-30.7.3s-15.8 5.8-22.3 7.1-5.6 3.4-10.5 4.6c-4 .9-4.5 1.1-6.8 1.3-1.5 0-3.2 1.2-5 2.4v16.7h151.5v-15.9q-2.4-1.3-4.8-2c-2.2-.8-3.7-1.6-7.7-2.5-5-1.1-4.2-3.3-10.6-4.6-6.5-1.3-22.1-8.4-22.1-8.4z"/>
+ <g transform="translate(-80)scale(1.6)">
+ <g id="ht-a">
+ <path d="M244.5 143.5h1.4l2.6 10.7-.6 3.4z"/>
+ <path fill="#fff" d="m243 136.3 1 8.3h1l-2-8.2z"/>
+ <path d="m245.7 154.6-4.3-11.5 1.6-.1 5 14z"/>
+ <path fill="#fff" d="m239.4 136.5 1.8 8h1.4z"/>
+ <path d="m241.9 150.6-2.5-5.5 1-.2 4.7 9z"/>
+ <path fill="#fff" d="m236 138.8 2.9 7.6h1.4l-4.2-7.6z"/>
+ <path fill="#0a328c" d="m242.3 151.4-11.5-12.5c-3.6 2.8-2.9 8-2.9 8l13 10.2z"/>
+ <path fill="#d20014" d="m248.9 158.2-8.5-8.6c-3.6.2-.8 5.5-.6 6.2l9 7.7z"/>
+ <path d="M248.1 156.8 230.6 138l-.7.5 18.6 20.6zm-18.5-20-.4-.5v-.9l-3.6-2.3 1.6 3.7 1.3.2.3.4z"/>
+ <path d="M227.7 138.1a8 8 0 0 1 2.7-2.2l1 1.5-2.2 1.8-1.5-1z"/>
+ <path fill="#0a328c" stroke="#0a328c" d="m225.8 141.3.6 1c.4-.1 4-3.5 4-3.5h2.7l.7-.9c-2-2-3.7.3-3.7.3z"/>
+ <path fill="#d20014" stroke="#d20014" d="M228 143c0-1 1.8-3.2 2-3.3 1.3.4 2.5 1.2 3.9-1.8-1.2 1.4-3.5 0-3.5 0l-1 .8v.4l-3 2.8z"/>
+ <path fill="#0a328c" d="m237.3 154.7-14.4-11.4c-2.5 2.5-.4 10.2-.4 10.2l14 7.6.7-6.4z"/>
+ <path fill="#d20014" d="m249.2 164-11.9-9.6c-4 .6-.8 6.5-.6 7.2l12.5 6.8z"/>
+ <path d="m248.7 162-25.6-19.2-.5.6 26.8 21zm-26.8-20.2-.4-.4-.2-.8-4-1.7 2.3 3.3h1.3l.4.4z"/>
+ <path d="M220.3 143.4a8 8 0 0 1 2.3-2.6l1.2 1.3-1.8 2.1z"/>
+ <path fill="#0a328c" stroke="#0a328c" d="M219 146.6v1.1c.4-.2 3.7-3.7 3.7-3.7l2.5-.5.6-.8c-1.8-2.1-3.7.7-3.7.7z"/>
+ <path fill="#d20014" stroke="#d20014" d="M221 148.5c-.2-1 1.2-3.8 1.4-4 1.6.5 3 1.2 3.5-2-1 1.6-3.5.4-3.5.4l-.8 1v.5l-2.5 3.3z"/>
+ <path fill="#0a328c" d="m236.2 161.7-18.5-10.5c-1.3 2.3-.1 5.5.5 6 0 1.5-.6 2.3.7 5.5q.6 3.2 2.7 5c1.6 6.4 8.2 6.9 10.7 1.6z"/>
+ <path fill="#d20014" d="m248.3 168.5-12.5-7.3c-4 .5 0 8 .3 8.7l12.2 4.3z"/>
+ <path d="m246.2 165.8-28.3-15-.5.6 30 16.7zM216.5 150l-.5-.3-.3-.8-4.1-1 2.7 2.9 1.2-.2.6.3z"/>
+ <path d="M215.2 151.8q.4-1.4 1.8-3l1.4 1.1-1.4 2.4z"/>
+ <path fill="#0a328c" stroke="#0a328c" d="m214.1 155.2.6 1.2 3-4.6 2.5-.9.5-1c-2-1.8-3.5 1.4-3.5 1.4z"/>
+ <path fill="#d20014" stroke="#d20014" d="M216.8 156.8c-.2-1 .5-4.2.7-4.3 1.5.5 2.8.6 3.2-2.6-1 1.5-3.3 1-3.3 1l-.7 1 .1.4-2 4z"/>
+ </g>
+ <use xlink:href="#ht-a" width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)"/>
+ </g>
+ <g transform="translate(-80)scale(1.6)">
+ <path fill="#016a16" stroke="#016a16" d="m248.8 125.6-.5 9h2.9l-.4-9 3-.3-.3-3.6-7.5.3v3.2z"/>
+ <g id="ht-b" fill="#016a16">
+ <path d="M249.8 121.9c-7.8-7.8-13.9-4-15.3-2.9 1 .2 1.8-.4 2.3-.5l-1 1.2s2.5-1 2.8-1c-.4.3-.8 1-.8 1 .2 0 1.6-1.1 1.8-1.1-.4.4-.5 1.5-.5 1.5l1.2-.5c.3.2-.1.6.1.6 2-.2 4.7 1.7 5 2.3"/>
+ <path d="M247.9 123.3c-.8-1.8-15.6-5-18.6.3 1.2.3 2.3-1 2.3-1v1.2l1.9-1.6-.7 1.6 1.5-1.3v1.3l2-2-.3 1.1 1.7-.7-.2 1"/>
+ <path d="M247.2 123.6c-3.8-2.5-9.6-.8-9.6-.8-3.8 2-5.8 1.7-6.2 5.6.3-.1 1.3-1.4 1.3-1.4l.8 1.5.2-2.1.6 1.7 1-2.8.2 1.9 1.4-1.9.6.6.6-1.5.6 1s1-.6 1.5-.3l1-1.2.3.9 1-1 .3.7.9-.8v.6h3"/>
+ <path d="M246.4 124c-2.7 0-10.3 2.9-12.2 5.8l1.3-.6.3 1.2.5-1.2.1 1q.4-1.2 1.2-.1l.2-1.1.3 1 .5-1.1s.3 1.2.5 1.2c0 0 .8-2.2 1.2-2.3l.1 1.4.5-1.4.5 1v-1.4l.6 1s.2-1 .6-1.2l.8.7 3.4-2.5"/>
+ <path d="M246.9 124.7c-3.5 1.3-6.7 6.2-6.4 8.2 1.5-2 1.2-1.7 1.9.6 0 0 .2-2 .5-2.2l.5 1.4.1-1.9h.5l-.1-1.1.7.5c-.2-.7-.3-.9.4-1.5 0 0-1 .1-.2-1.5l.7.6s-.2-.7 0-1l2.6-.8"/>
+ <path d="m247.2 125-1.3 2.6.7.2-1.6 1.1 1.3-.1s-2 .7-2.2 2.7l2-1s-1.7 1.8-2 2.9l1.3-1s-1.2 1.2-1 3l.9-1c-.2 2.3-.2 2.5.8 4.2 0 0-.2-2.6 0-3l2.3 2.4-1.2-3.3s1.4 2 2.2 1.9l-1.8-2.7 1.8 1.4-2-3 1.8.6s-1.3-1.7-1.2-2.8l1.3 1.4s-.5-1.5-.4-2l.7.1-1.3-1.4.9-.2-.1-1 .6-.1v-1.1m-1.1 0c-2.2 3-1.1 7.5-2.4 9.9"/>
+ </g>
+ <use xlink:href="#ht-b" width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)"/>
+ <path d="M251 166.5s1.1-10 1.1-14.2c0-3.4-.8-10.8-.8-10.8H248s-.5 7.4-.4 10.8c0 4.2 1.1 14.2 1.1 14.2z"/>
+ <path d="M247.7 142h4l-.5-2.7h-2.9z"/>
+ <path d="M248 139.8h3.5l-.7-2.7h-2.2z"/>
+ <path d="M248.2 137.7h3l-.6-2.7h-1.9z"/>
+ <path d="M250.7 134.7h-2l-.3 1h2.5zm.4 29.7h-2.6m2.8-2h-3m3.4-2h-3.8m4-2.1h-4m4-2.2h-4.1m4.2-2h-4.4m4.4-1.7h-4.6m4.6-2.2h-4.6m4.5-2.1h-4.5m4.3-2.2h-4.1m3.9-2h-3.7"/>
+ <path fill="#0a328c" stroke="#0a328c" d="M250 119c-.8-.3-2.3-1.3-1.9-1.9l.7-1.2c1-2.2 0-1.4 0-2-.2-.8 3.8-.2 3.8 1.3 0 .5-.3.2-.2 2.6l-.8 1.5z"/>
+ <path d="m250.4 125-1-.9.3-7.1 1 .3-.3 7.6z"/>
+ <path fill="#d20014" stroke="#d20014" d="M251.7 119.3c.6-.4 1-1.5.6-2.1-1-1.3-1.7-.8-3.4-1.4-.3.4-1 1-.9 1.6 2.3 1 1.4.2 2.2.3.4 0 .6.5 1.5 1.5z"/>
+ </g>
+ <g transform="translate(-80)scale(1.6)">
+ <use xlink:href="#ht-c" width="100%" height="100%" transform="matrix(1 0 0 -1 0 320.4)"/>
+ <path fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.4 161.8c0 1.2-.9 2.3-1.9 2.3s-1.8-1-1.8-2.4v-1.2h3.7z"/>
+ <ellipse cx="236.5" cy="160.1" fill="#fff" stroke="none" rx="1.8" ry=".9"/>
+ <path fill="#016a16" stroke="#f1b517" d="m236.1 161-.3-3.2h1.4l-.2 3.3h-.9z"/>
+ <path id="ht-c" fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.5 160.1q-.4.8-2 .9c-1.6.1-1.7-.4-2-.9v.4q.2 1.1 2 1.2 2 0 2.1-1.2z"/>
+ <g id="ht-d">
+ <path d="m246 172.8-7-2.2-3.1-5.3-10.9-.5.4 4 9.3 1.7.8 1.6 10.7 3z"/>
+ <path fill="#503200" d="m238.7 174.3-11.2-16.5-.5.5 11 16.4z"/>
+ <path fill="#fff" d="m228.6 158.5-1.2-2q-.4-.6-1.1-.2-.6.4-.2 1.1l1 1.9z"/>
+ <path d="m240 164.1-22.5-2.3-.6 3.3 22.4 2.3z"/>
+ <path d="m217 161-.5 4.5h1l.6-4.1zm3.8.7-.2 4.1h.6l.5-3.5zm15.3 1.8-.6 3.8h1.1l.5-3.8zm3.3.1-.7 4.4 1.2.2.4-2.3q.1.8 1 .8 1-.1 1-1t-1-1a1 1 0 0 0-1 .6l.3-1.6zm-8 .7-3.2 3.5.4.4 4-2.7zM224 173l3.1-3.5-.3-.4-4 2.7zm8.1-.9-3.7-2.9-.4.3 3 3.8zm-9.3-6.7 3.9 2.8.4-.3-3-3.8zm4.2-2.3.4 4.6h.5l1.2-4.5zm1.2 11-.3-4.5h-.6l-.7 4.6zm5.1-6-4.8.4v.5l4.8.6zm-11.4 1.5 4.7-.7v-.4l-4.8-.5v1.6z"/>
+ <ellipse cx="227.7" cy="168.6" rx="1.3" ry="1.2"/>
+ <path fill-rule="evenodd" stroke-linecap="round" d="M234.4 168.6c0 3.5-3 6.5-6.7 6.5a6.6 6.6 0 0 1-6.7-6.5c0-3.6 3-6.5 6.7-6.5a6.6 6.6 0 0 1 6.7 6.5zm-1.3 0a5.3 5.3 0 0 1-5.4 5.2 5.3 5.3 0 0 1-5.4-5.3 5.3 5.3 0 0 1 5.4-5.1 5.3 5.3 0 0 1 5.4 5.2z"/>
+ <path d="m223.5 165.3-1-.8m8.5 0 1-1m1 9.2-1.1-.9m-8.4 1.9 1-1m21.7-10.6 1.1 6-.9.4-1-6.3z"/>
+ <path fill="#fff" d="M245.6 161.4c-.5-.3-1.2.1-2.4-1.3-1.9 1.7 0 2 .2 3.7.5.2.9-1.4 2.3-1.5l2.3-.2-.5-.7z"/>
+ <path fill="#fff" d="m246.4 162.5-.2-1.7c-.3-.7-1-.1-1 .2l.2 1.7z"/>
+ <path fill-rule="evenodd" d="M240.8 167.4v1.6c-.6.2-.5.6-.5 1.2v4.7q-.3.5-1 .6-.6.6 1 1l1 .1q2.2-.6 1-1-.7-.3-1-.6v-1.2h1c.2 0 .7-.6.7-1.1v-2.5c0-1.4-1-1.6-1.4-1.5v-1.3zm1.6 2.7c0-.4-.6-.8-.8-.8q-.5.2-.7.9v1c0 .4.3 1.6.9 1.7q.4-.1.6-.8z"/>
+ <path fill="#fff" d="M234.3 172.3c-.7-.2-.7 1.2-.7 1.2h1q.8.4.6 1.2c-.3.2-2.2-.5-2.3 0 .3 1.9 2.9 2.6 3.8 1.8s1.1-3-1.8-3.7zm.6.6-.3.6"/>
+ <path d="m215 173-1-4m2.1 3.8-1.5-3.1m4 2.3-3.3-1.8m4.8 1.4-6.2-2.7"/>
+ <path fill="#d20014" stroke="#d20014" d="m210.2 166-2.6.1c-.2.1.5.9.4 1.1-.6 1.1-4.4 1-4.7.8-.5-.5 3.5-.8 3.6-1 0-.4-.6-1.2-.5-1.7 0-.7 1.7-1 1.7-1z"/>
+ <path fill="#503200" d="m213.2 168-5-4.2s-.3-.2-.5 0 0 .4 0 .4l5.4 4.4.1-.5z"/>
+ <path d="m218.2 172.2-4.2-3.6-.3-1-.8.6c-.3.2-.6.8-.6.8h1.1l3.6 3.4 1.1-.2z"/>
+ <circle cx="232.5" cy="177.1" r=".7"/>
+ <circle cx="230.6" cy="175.7" r=".7"/>
+ <circle cx="228.1" cy="176.6" r=".7"/>
+ <circle cx="224.2" cy="177.4" r=".7"/>
+ <circle cx="222.5" cy="177.6" r=".7"/>
+ <circle cx="220.8" cy="177.6" r=".7"/>
+ <circle cx="219.2" cy="177.6" r=".7"/>
+ <circle cx="220" cy="176.3" r=".7"/>
+ <circle cx="221.6" cy="176.4" r=".7"/>
+ <circle cx="223.1" cy="176.2" r=".7"/>
+ <circle cx="222.4" cy="175" r=".7"/>
+ <circle cx="220.8" cy="174.9" r=".7"/>
+ <path fill-rule="evenodd" d="M236.5 178c0-.3-.8-.2-.8-.6s1.2 0 1.3.3c.7-.6 1-.2 1.4 0q1-1.2 2-.2c.4-.4 1.4-.3 1.7.2q1-.8 1.7 0 .3-.5.7 0c.3-.7 1.2-.5 1.6 0 .3-.4.7-.1 1.1.1q.6-.3.8 0c0 .4-.6.3-.6.6s.4 0 .4.4c0 .3-.6.4-.7 0-.3.4-1.1.2-1.2-.2a1 1 0 0 1-1.2 0q-.5.3-.8 0c-.5.5-1.4.4-1.7-.2h-.3a1 1 0 0 1-1.5 0q-1.2.8-1.9 0c-.5.7-1.4.7-1.5 0-.4.3-1.2.4-1.2 0 0-.2.7-.1.7-.4zm1.6.1q0 .3-.4.3t-.4-.3.4-.2zm1.9-.2q0 .3-.6.3t-.5-.3q0-.2.5-.3t.5.3zm3.5.2q0 .3-.5.3t-.4-.3q0-.2.4-.3.6 0 .5.3zm-1.9 0q0 .3-.5.3t-.4-.4.4-.4q.5 0 .5.4zm4 0q0 .2-.3.3-.5 0-.5-.4t.5-.3q.3 0 .4.3zm-1.2 0q0 .3-.2.3t-.3-.3q0-.3.3-.2zm2.4.1q0 .3-.3.4-.2 0-.3-.4t.3-.3q.3 0 .3.3z"/>
+ </g>
+ <use xlink:href="#ht-d" width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)"/>
+ <path fill="#0a328c" stroke="#0a328c" d="M249.8 165.7c-2.5 0-4.5 1-4.5 2.1l.2.6c.5.6 2.3 1 4.4 1q3.2 0 4.2-.9.3-.3.3-.7c0-1.1-2-2-4.6-2z"/>
+ <path d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7c0 .8 2 1.5 4.5 1.5 2.6 0 4.6-.7 4.6-1.5z"/>
+ <path fill="#d20014" stroke="#d20014" d="M245.3 168v1l2.2 7 1.8-5.4 2 5.5 1.3-5.2 1.8 3.5v-1.9l-1.6-3.4-.6.2-1 3.8-1.5-3.6h-.7l-1.5 3.6-1.6-4.4q-.6-.3-.6-.7z"/>
+ <path fill="#0a328c" stroke="#0a328c" d="M254.4 173.7v1.3c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-1.3c0 .9 2 1.5 4.5 1.5 2.6 0 4.6-.6 4.6-1.5z"/>
+ <path d="m251.7 175-1.1.2v1.3l1.2-.1zm-4.8-.1v1.3l1.1.2v-1.3zm-1.6-1.2v1.3q0 .4.5.7v-1.3q-.5-.3-.5-.7zm9.1.2q-.1.3-.8.7v1.3q.8-.3.8-.9z"/>
+ <path fill="none" d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7"/>
+ <path fill="#fff" stroke="#fff" d="M253.4 167.5c0 .5-1.6 1-3.5 1-2 0-3.6-.5-3.6-1s1.6-.9 3.5-.9c2 0 3.6.4 3.6 1z"/>
+ <path d="m248.7 168.2.2 1.2h1l.1-1.2zm4.1-.3-1 .2.1 1.2 1-.2zm-5.4-2-.7.3.1 1 .6-.2zm2.4-.3h-.3l.2 1.2h.6l.2-1.2zm2.7.4-.1 1 .7.3v-1zm-6.5 2.8.2-1.3-1-.5v1.5zm8.4-.3v-1.3l-.8.3zm9.3-8.5c.8 0 2 1 2.1 2.5 0 1-1.7 1-1.7 1 0 .5-1 .9-1.8 1s.2-1.5.2-1.5c-.5-1.3.2-2.7.2-2.7z"/>
+ <path d="M262.5 163h.8s0 .3.2.3.3-.4.3-.4h1.2"/>
+ <path fill="#d20014" stroke="#f1b517" d="M264.1 160.9c.7-.5.1-1.5-.4-1.5h-1c-.6 0-1.4.6-1.3 1q.1.8.8.6c.2 0 .6-.6.8-.6s1 .6 1.1.5z"/>
+ <path fill-rule="evenodd" d="M214.2 174.8q-.8.3-.5 1.5l-7.4 2.4c-.1-.5 1.2-1.8 1.2-1.8.3.1.6.9.6.9 0-1.6 1.6-2.6 1.6-2.6-1-.2-3.7 1-4 1.4 0 0 1-.2 1.2 0 0 0-2.2 2.3-2.3 3 .4.7 4 1.3 4 1.3 0 .2-1 1-1 1 1.5.2 3.7-.8 4.3-1.4 0 0-1.7-.2-3-1.3 0 0 .2.7 0 1 0 0-2-.6-2.3-1 0 0 5-1.2 7.4-2 .1.5.6 1.3 1.2 1.1q.4-.3 0-1.4l.6.2q.7 0 .7-.7t-.7-.7l-.7.5c-.1-.5-.4-1.4-.8-1.3zm2 1.6q0 .3-.4.3a.3.3 0 0 1-.4-.3q0-.3.4-.4.4 0 .3.4z"/>
+ <path d="M293 177.9c.2-.4 0-2.2 0-2.2-.5 0-1 .7-1 .7.5-1.6-.8-4-.8-4 .9.1 3.9 3 4 3.6 0 0-1.3-.5-1.5-.4.3 1.5 1.3 2.2 1.7 3 0 0-1.7.3-1.6 1.8h-1.1c-.4-.5.1-1.3.1-1.3l-7.7-3.2c-.5-.2-1.6-.8-1.4-1.4.1-.5 2 .3 2.4.5z"/>
+ <path d="m285.6 176.5 1-1.6c.3-.5-.4-1-.9-.4l-1 1.5c-.4.9.5 1.1 1 .5z"/>
+ </g>
+ <g fill="#fff" stroke-width=".3">
+ <path d="m290.2 288.6-.1-3-3.5.3-.2 3.1z"/>
+ <path d="m264.4 292.7-4.7-2.7c19.4 1.8 23.4-5 28.1-5.3 3-.3 3.3 3.2-2.3 1.5l1.5 3.6s-13.8 7.8-27.4 4.6zm84.8-4.1.1-3 4.3.2.2 3.1z"/>
+ <path d="m375.9 292 4.5-2.5c-22.4.7-17.3-3.6-28.4-4.8-3-.4-5 3.4 2.2 1.5l-1.4 3.6h3.5c7.6 5 17.8 5.5 24.6 3.9z"/>
+ <path d="M285.5 286.3v5s12.3 4.6 34.4 4.6c22.2 0 34.4-4.6 34.4-4.6v-5s-9.3 4.3-34.4 4.3-34.4-4.3-34.4-4.3z"/>
+ </g>
+ <path fill="#000001" stroke="none" d="m287.3 291.3 1.1-3.7.5.2-1 3.2 2 .5-.2.5zm3.6-1.6v-.7l.2-.7.6.2-.2.6-.3.7zm5.3-.3.5.2-.4 2.1-.4 1-.5.4h-1l-.9-.4-.4-.6.1-1 .5-2.2.5.1-.5 2.2v.8l.2.4.5.2h1l.4-1zm.6 4 .6-3.7h.6l1.5 3.4.5-3h.5l-.6 3.9-.5-.1-1.6-3.3-.5 3zm4 .7.6-3.8h.5l-.5 3.8h-.5zm1.6-1.7q0-1 .7-1.4a2 2 0 0 1 1.4-.4q.6 0 1 .3l.5.8q.3.5.1 1l-.3 1-.8.7-1 .1-1-.3-.5-.8zm.5 0q0 .8.3 1.2.3.5.9.5t1-.3.5-1v-1l-.5-.5-.7-.3q-.5 0-1 .3-.3.3-.5 1.2zm3.7 2.3.3-3.8h.6l1.8 3.2.2-3h.5l-.3 3.9h-.5l-1.9-3.2-.2 3zm5.6.4.1-3.8 2.7.1v.5l-2.1-.1-.1 1.1 1.9.1v.5l-2-.1v1.8zm3 .1 1.5-3.8h.6l1.5 4h-.6l-.4-1.3h-1.7l-.4 1.2zm1-1.5h1.4l-.4-1-.2-.9-.2.8-.5 1.1zm3.1 1.6v-3.8h.6v3.8zm2.5 0V292h-1.3v-.4h3.1v.4h-1.3v3.4zm4 0-.3-4h.6l.1 3.4h2v.4zm2.6-.2 1.2-4h.6l2 3.7h-.7l-.5-1h-1.7l-.3 1.3zm1-1.7h1.4l-.5-1-.4-.9-.1.8zm4.7 1.2-.4-3.8 2.6-.3.1.5-2.1.2v1.2l2-.2v.5l-1.9.2.2 1.7zm3-2.1a2 2 0 0 1 .2-1.6 2 2 0 0 1 1.3-.7l1 .1q.6.1.8.6l.4 1-.1 1-.6.8-.9.4-1-.1-.8-.6zm.5-.1q0 .6.5 1t1 .3q.7-.1 1-.5t.2-1.2l-.3-.8-.6-.5h-.7q-.6 0-1 .4-.2.4-.1 1.3m4.1 1.3-.6-3.8 1.7-.3h.8q.3 0 .5.2l.3.6q0 .4-.2.7t-.7.5l.3.1.5.5 1 .9h-.7l-.7-.6-.5-.5-.3-.2h-.6l-.6.1.4 1.7zm.2-2.2 1-.2.6-.2.3-.6-.2-.4h-.7l-1.3.1zm6.3-.4h.5q0 .6-.3 1l-1 .6h-1l-.8-.6-.5-1v-1q.1-.6.5-.9l.9-.4h1q.6.3.8.8l-.5.2-.5-.5h-.7l-.7.3-.3.7v.7l.4.8q.2.4.6.4h.7l.6-.3q.3-.3.3-.8m1.4 1-1-3.7 2.7-.7.2.4-2.3.6.3 1.1 2.1-.5.2.4-2.2.6.4 1.2 2.4-.6v.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/hu.svg b/apps/web/public/flags/hu.svg
new file mode 100644
index 00000000..baddf7f5
--- /dev/null
+++ b/apps/web/public/flags/hu.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-hu" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#fff" d="M640 480H0V0h640z"/>
+ <path fill="#388d00" d="M640 480H0V320h640z"/>
+ <path fill="#d43516" d="M640 160.1H0V.1h640z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ic.svg b/apps/web/public/flags/ic.svg
new file mode 100644
index 00000000..81e6ee2e
--- /dev/null
+++ b/apps/web/public/flags/ic.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ic" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#0768a9" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h213.3v480H0z"/>
+ <path fill="#fc0" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/id.svg b/apps/web/public/flags/id.svg
new file mode 100644
index 00000000..3b7c8fcf
--- /dev/null
+++ b/apps/web/public/flags/id.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-id" viewBox="0 0 640 480">
+ <path fill="#e70011" d="M0 0h640v240H0Z"/>
+ <path fill="#fff" d="M0 240h640v240H0Z"/>
+</svg>
diff --git a/apps/web/public/flags/ie.svg b/apps/web/public/flags/ie.svg
new file mode 100644
index 00000000..049be14d
--- /dev/null
+++ b/apps/web/public/flags/ie.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ie" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#009A49" d="M0 0h213.3v480H0z"/>
+ <path fill="#FF7900" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/il.svg b/apps/web/public/flags/il.svg
new file mode 100644
index 00000000..f43be7e8
--- /dev/null
+++ b/apps/web/public/flags/il.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-il" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="il-a">
+ <path fill-opacity=".7" d="M-87.6 0H595v512H-87.6z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#il-a)" transform="translate(82.1)scale(.94)">
+ <path fill="#fff" d="M619.4 512H-112V0h731.4z"/>
+ <path fill="#0038b8" d="M619.4 115.2H-112V48h731.4zm0 350.5H-112v-67.2h731.4zm-483-275 110.1 191.6L359 191.6z"/>
+ <path fill="#fff" d="m225.8 317.8 20.9 35.5 21.4-35.3z"/>
+ <path fill="#0038b8" d="M136 320.6 246.2 129l112.4 190.8z"/>
+ <path fill="#fff" d="m225.8 191.6 20.9-35.5 21.4 35.4zM182 271.1l-21.7 36 41-.1-19.3-36zm-21.3-66.5 41.2.3-19.8 36.3zm151.2 67 20.9 35.5-41.7-.5zm20.5-67-41.2.3 19.8 36.3zm-114.3 0L189.7 256l28.8 50.3 52.8 1.2 32-51.5-29.6-52z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/im.svg b/apps/web/public/flags/im.svg
new file mode 100644
index 00000000..fe6a59a1
--- /dev/null
+++ b/apps/web/public/flags/im.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-im" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="im-a">
+ <path fill-opacity=".7" d="M-77.6 0H605v512H-77.6z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#im-a)" transform="translate(72.8)scale(.94)">
+ <path fill="#ba0000" fill-rule="evenodd" d="M629.4 512H-102V0h731.4z"/>
+ <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M281 376c.2-.6.6-6.8.4-6.8s-9.4-10.9-9.2-10.9 11.8 2.6 11.8 2.2 4.7-11.5 4.7-11.7l5.6 13.5 11.5 5-8 6.7 1.7 13c0 .3-8-7.6-8-7.6l-8.9 1s-1.2-4-1.6-4.4z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M218.7 206.9c-7.7 4-37 37.5-41 42.7a77 77 0 0 1-16.8 23.4c-7.3 5.5-11.3 13-10.3 20 0 9 4.9 15 8.8 21.1q3.7 4.4 8.8 5c6.9.8 7.5 3 11 4.2 13.4 18.4 33.6 32 48 42.7a68 68 0 0 1 18 12.4c4.2 8.2 3.4 16 2.8 20L237.3 439c-1.9 11 7.8 8.6 8.3 6.4 4.3-5.7 10.8-1.7 20-34.3l12.8-17.1s4.9-2 4.9-2.5c7.5-9 1.8-14-2.5-15.7l-9.2-3.4s-10.8-10.8-11.3-10.8c-5.1-14.9-30.3-46.6-36.1-51-4-4.3-6-6-9.8-8.4-5.9-2.8-7.8-3.8-11.4-5.2-3-1.2-.9-4.5 1-6 20-10.9 35.7-22.9 54.8-35.1l3-2-6.9-39.2-31.8-11.2q-2.4 1.7-4.4 3.4z"/>
+ <path fill="#ffec00" fill-rule="evenodd" d="M245.3 413.1c0-.4 20-4 20-4l-2.5 7.4-19.7 6z"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="M193.6 338.5a38 38 0 0 1 21.6-20.4"/>
+ <path fill="none" stroke="#000" stroke-width="2.4" d="M244.6 413.3c1.3-.3 7-2 8.6-2.3q2.7-.5 5.2-1.4c2-.4 3.2-.8 5.2-1.1l5-1.4M241 425.6l2.5-2c1.1-.4 5-2 6.5-2.3l4.7-1.4 4.6-1.2q2.2-.9 4.4-1.4"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="M249 341.4h-.2c.8 0 .3 0-.9 1.4-.4 1.1-4 3.7-6.8 3.7l-4.7.3-1.3-.3m13.7 53.5h1.4l4.2.3c1.5 0 2.9.4 4.3.4l4.7.4 4.7.3c1.4.1 2.2.3 3.7.3l-3.7-.3c1.4.1 2.2.3 3.7.3m-32.7 33 2.3-2c1-.3 4.6-2 6-2.2l4.2-1.5 4.3-1q2-1 4-1.5m5.8-41.2c-.8 2.3.3 2.9.7 3.9a12 12 0 0 0 5.7 3.4c1.2.3 2 .6 3.4 1.2q1.1.1 2 .5m-124.4-94.8h.3c-.9 0-.3.1 1.1-1 1-1.1 1.7-1.6 2.6-2.7m14.4 24c.2 0 16.6-8.2 18.3-10l3.7-2.9 2.6-1.7 2.3-2.7c1-.9.5-1.8 1.4-2.9l1.3-3.8m20.8 12.2c.1.6-.2 2.4-.2 3.8 0 1.6-2.1 6.5-4.6 8"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="m192.6 307.8 6.7 2.1c5 1.8 15.4 8.4 16.5 9.3 1 .8 3 1.6 3.6 2.5q1.7 1.5 2.9 3.2 1.6 1.8 2.5 3.4a113 113 0 0 1 13.4 24.5c.7.7 1 1.7 1.7 2.8.6 1.4 1.3 2 2 3.1 1 .7 2.2 2 3.4 2.6 1.3 1.1 2.5 1.5 3.5 2.3 1.3.6 16.3 10 17 10.5 1.4 1.1 5.5 5.4 2.6 8.6-1.2 1-2.4 2.5-3.4 3q-1.8 1.6-3.9 2.2c-6.7 2-10.2 1.3-11.5 1.3h-1.4m-88.8-114.9c2 .8 1.2.2 2.9 1 1.2.5 2 .5 3 1 1.3.3 4.7 1 6.3 2.6 1.2 1 2 2 3.4 2.7a22 22 0 0 0 4.6 2.4q2.5 1.1 5 1.3h7.8-4 4"/>
+ <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M159 293.3c4.2-.3 11.3 1 11.5 1l9.4-.2c5-.4 6-2.3 6.8-3.7 1.9-2.8 3.1-3.8 4.6-6 2.2-1.6 5.4 2.3 5.5 2.3 8 7.6 1.6 16.8 1.2 17.1-4 3.7-4.9 3.9-7.3 1.6-2.4-2.9-3.1-4.2-5.1-5.2-3.9-1.8-11.8-.4-12-.4l-4.1 1.6c-2 .7-3.2 2.4-6.5 3-3.5.2-4.6-.1-6.3-2.9-2.3-3.5-1.2-7.8 2.3-8.2z"/>
+ <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M381.8 120.7c-.6 0-6.3 2.8-6.2 3 .1.1-4.8 13.5-4.9 13.4-.1-.2-3.5-11.7-3.9-11.5s-12.3 1.6-12.4 1.7l9-11.5-1.3-12.5 9.8 3.8 10.5-8c.2-.1-2.7 10.8-2.7 10.8l5.2 7.2s-3 3-3.1 3.6z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M265 257.9c7.1 4.7 50.7 13.9 57.3 14.8a77 77 0 0 1 28.6 3.2c8.3 3.6 16.8 3.4 22.5-1 7.8-4.2 10.6-11.4 14-18a12 12 0 0 0 0-10c-2.6-6.4-1-8-1.6-11.6 9.4-20.8 11.4-45 13.6-62.9-.2-10.5.9-18.5 2-21.7a32 32 0 0 1 16-12.2l40.7-10.6c10.6-3.8 3.7-11 1.5-10.4-7-1-6.8-8.6-39.7-.7l-21.2-2.7s-4-3.3-4.5-3c-11.5-2.1-13.1 5.3-12.5 9.8l1.6 9.8s-4.1 14.6-3.9 15c-10.5 11.8-26 49.6-27 56.9-.5 6.8-3 5.5-2.4 12.2 0 5.2-.6 2 1.1 12.6.5 3.2-3.5 3-5.7 2-19.2-12-37.4-19.9-57.5-30.5l-3.1-1.6-30.8 25.2 5.8 33.2q2.6 1.3 5.1 2.2z"/>
+ <path fill="#ffec00" fill-rule="evenodd" d="M431.7 133.6a375 375 0 0 1-13.3-15.4l7.6-1.5 14.8 14.3z"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="M392 215.2a38 38 0 0 1-28.4-8.8"/>
+ <path fill="none" stroke="#000" stroke-width="2.4" d="M432.2 134.1c-1-.9-5.2-5-6.2-6.4l-3.8-3.8c-1.3-1.5-2.3-2.4-3.6-4l-3.6-3.6m29.6 15c-.3 0-2-.7-3-1.2-.8-.9-4.2-3.4-5.1-4.6l-3.5-3.4c-1.2-1.3-2.1-2-3.3-3.5l-3.4-3"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="m367.3 165.5.1.3c-.4-.8-.2-.3 1.7 0 1.2-.2 5.2 1.7 6.5 4.1.8 1.1 2 2.8 2.6 4l.4 1.3m40-38.2-.2-.2-.6-1-1.8-3.9-1.7-3.9-2-4.2c-.8-1.5-1.2-2.8-2-4.4-.7-1.2-.8-2-1.6-3.3l1.6 3.3c-.7-1.2-.8-2-1.6-3.3m44.8 12.3-2.8-1c-.8-.7-4-3-5-4l-3.3-3c-1-1.3-1.9-2-3-3.3l-3.2-2.7m-38.9 15c2.5-.4 2.5-1.6 3.1-2.5.5-1 .9-3.5.2-6.6l-.6-3.5q-.5-1.2-.5-2m-21.7 154.8-.1-.2c.4.8.2.3-1.6-.5l-3.5-1m13.9-24.3c-.1-.2-15.3-10.4-17.7-11-1.4-.7-2.7-1-4.3-1.8l-2.8-1.4c-1.3-.2-2.4-.7-3.5-.7-1.2-.4-1.9.4-3.2.2l-4 .7m.5-24.1c.4-.4 2.2-1 3.4-1.7 1.4-.7 6.7-1.3 9.2.1"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="m365.7 231.2-1.5-7a100 100 0 0 1 0-18.8c.2-1.3 0-3.4.5-4.5q.5-2 1.3-4l1.7-3.9c.7-4 12-20.1 12.8-20.9l2-2.7q.6-1.4 1.6-3c1-1.1 1.2-2 1.8-3.2.1-1.1.6-2.9.6-4.2.3-1.7 0-3 .3-4.1-.2-1.5.7-19.2.8-20 .3-1.8 2-7.5 6.2-6.5 1.5.5 3.3.8 4.4 1.5 1.4.4 2.6 1.5 3.7 2.3 5 4.9 6.1 8.2 6.8 9.4l.7 1.2M352.6 276l-.1-.2q.5 1-.3-1.1c-.1-1.3-.5-3-.7-4.2-.3-1.3-.9-2.7-.7-3.5-.5-1.3-.2-2.3 0-3.6.3-1.6.5-2.7.5-4.2.2-2 0-3.2.1-5-.5-1.5-.6-2.7-1.3-4.2l-2-4-2-3.5 2 3.4-2-3.4"/>
+ <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M369.5 267.6c-2.3-3.6-4.7-10.4-4.8-10.5l-4.7-8.2c-2.8-4-5-4-6.6-4-3.4-.3-4.9-1-7.4-1.1-2.6-1.2-.7-5.9-.8-6 2.7-10.6 14-9.6 14.4-9.4 5.1 1.7 5.7 2.4 4.9 5.6-1.3 3.5-2 4.8-2 7 .3 4.2 5.5 10.5 5.5 10.6l3.4 2.8c1.6 1.4 3.7 1.6 5.8 4.3 1.9 2.9 2.2 4 .6 6.8-2 3.8-6.2 4.9-8.3 2.1z"/>
+ <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M105.2 168.7c.5.4 5.8 3.7 6 3.5s14-3.4 13.8-3.2-7.8 9.3-7.4 9.5 8 9.4 8.2 9.5l-14.5-1.2-9.8 7.8-2.2-10.2L87 180c-.2-.1 10.5-3.6 10.5-3.6l3.2-8.3s4.1.7 4.7.6z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M284 191.3c0-8.7-16.2-50.2-19-56.1a77 77 0 0 1-13-25.7c-1.5-9-6.3-16-13-18.4-7.9-4.1-15.5-2.5-22.8-1.8-3.6.7-6.7 2.7-8.4 5.5-4 5.7-6.1 5.2-8.9 7.7-22.5 3.5-43.8 15.1-60 23a68 68 0 0 1-19.3 10.2 32 32 0 0 1-19-6.6l-31.1-28.3c-9-6.7-11.2 3-9.5 4.5 3 6.4-3.5 10.3 21.2 33.6l9.3 19.2s-.5 5.2 0 5.4c4.4 10.8 11.6 8.1 15 5.1l7.3-6.7s14.5-4.6 14.7-5c15.6 2.3 55.8-5.3 62.4-8.5 6-3.3 6.3-.5 11.5-4.7 4.3-2.9 2-.6 10-7.9 2.4-2 4.3 1.3 4.8 3.7.4 22.7 3.8 42.2 5.9 64.8l.4 3.5 38 12 24.6-23-1-5.6z"/>
+ <path fill="#ffec00" fill-rule="evenodd" d="M88.7 119.8c.3.3-5.6 19.6-5.6 19.6l-5.4-5.5 3.8-20.3z"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="M178.8 108.4c7.2 8 9.5 21.2 8.2 28.6"/>
+ <path fill="none" stroke="#000" stroke-width="2.4" d="M89 119.1c-.3 1.3-1.5 7.2-2 8.7l-1.2 5.3-1.4 5.2q-.3 2.5-1 5m-3.7-33c.1.3.5 2 .6 3.1-.2 1.2-.5 5.4-1 6.9l-.9 4.8-1 4.6-.8 4.6"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="m150.7 156.3.1-.3c-.4.8 0 .3-.8-1.4-.9-1-1.4-5.3-.2-7.8l2-4.3.8-1M98.8 129l-.1.2-.6 1-2.2 3.7c-.6 1.3-1.7 2.3-2.3 3.6l-2.4 4-2.6 4-2 3.2 2-3.2-2 3.2m-14.2-44.3c.2.2.7 1.9.8 3-.2 1-.4 5-.8 6.3l-.7 4.4c-.4 1.6-.5 2.7-1 4.3l-.5 4.2M104 151c-1.7-1.9-2.7-1.2-3.8-1.3a12 12 0 0 0-5.7 3.5q-1 1.3-2.6 2.5c-.5.8-.9 1-1.4 1.5M232 90.4l-.1.3c.4-.8.1-.4.5 1.5.5 1.3.5 2.2 1 3.4m-27.9 1.8c0 .2-.3 18.5.5 20.9.2 1.5.6 2.7.8 4.6l.4 3c.6 1.2.7 2.4 1.4 3.3.3 1.3 1.3 1.4 1.9 2.5.7.9 2 2.4 2.8 3m-20.5 12.9c-.6-.2-2-1.4-3.2-2-1.4-.8-4.9-4.9-5-7.8"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="m206.5 121.6-5 5a94 94 0 0 1-15.8 10.3c-1.2.6-2.7 2-4 2.1q-2 .8-4 1.1a113 113 0 0 1-28.7 1.5l-3.4-.2q-1.4.2-3.3.2c-1.6-.1-2.4.2-3.7.3-1 .6-2.7 1.1-3.9 1.9q-2.1 1-3.6 2c-1 .9-16.4 9.8-17.2 10.2-1.6.7-7.3 2.5-8.8-1.6q-.8-2.6-1.1-4.5c-.5-1.4-.2-3-.2-4.4 1.4-6.9 3.6-9.6 4.2-10.8l.7-1.2M251 108l-.1.3q.6-1-.8.8-1.6 1.3-3.1 3c-1 .8-1.8 2-2.6 2.4q-1.2 1.3-3 2a20 20 0 0 0-3.8 1.9c-1.7.8-2.7 1.7-4.2 2.6-1 1.2-2 2-2.8 3.4q-1.2 1.8-2.3 3.9l-1.8 3.5 1.8-3.5-1.8 3.5m11.7 73.1.3-.5q-.7 1.5.1-.9c0-1.8.5-4.1.5-5.8q.5-2.7.6-5.5 0-3-.4-6l-.3-5.6q0-2.6-.6-5l-.4-4.8q0-1.8-.5-3.4l-1.2-5.1-1-4.1c-.2-1.6-1-3.6-1.4-4.9a14 14 0 0 1-1.1-3.4q-1-1.7-1.3-3.6l-1.6-3.7-1.4-3.6-1.5-4q-.6-.8-.8-1.4"/>
+ <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M234.9 98.5a59 59 0 0 1-6.2 9.7l-4.2 8.4c-1.8 4.6-.7 6.5.1 7.8 1.7 3 2 4.6 3.2 6.8.5 2.8-4.5 3.8-4.5 3.9-10.4 3.6-15.7-6.4-15.7-6.9-1.4-5.2-1.2-6 2-7.1 3.6-.9 5-1 6.8-2.2 3.5-2.6 5.9-10.3 6-10.4l.4-4.4c.3-2-.6-4 .4-7.2 1.4-3.2 2.2-4 5.4-4.3 4.2-.3 7.5 2.6 6.3 5.9z"/>
+ <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M221.3 199.7c-1.6-1.5 29.4 11.2 33.7 11.3 5.8-2.1 29.9-22.4 29.9-22.4.2 2 1.1 7.1 3.4 8.2-9.3 7.5-17.7 14.8-27 22.3.6 12-1.5 24.7 4.5 38 0 0-7.2.2-7.2 0-6.4-6.4-8.7-37.2-8.7-37.2l-30.6-13.6c1.5-1 2.6-3.9 2-6.7z"/>
+ <path fill="none" stroke="#000" stroke-width="2.2" d="M250.8 231.3c.5-.4-5.6 2.8-7.2 3.6-28.1 15-42.6 37-43.5 37.8l-2.2 3.4-2.3 3-3.6 4.7c-.2.6.4-.3.2.2m77.9-70.6a79 79 0 0 0 6.5 4.7c26.2 18.2 52.3 21.1 53.5 21.5l4 .5 3.8.5c1.4.2 4.4.8 5.8 1.2.6-.2-.5-.3 0-.4"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/in.svg b/apps/web/public/flags/in.svg
new file mode 100644
index 00000000..bc47d749
--- /dev/null
+++ b/apps/web/public/flags/in.svg
@@ -0,0 +1,25 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-in" viewBox="0 0 640 480">
+ <path fill="#f93" d="M0 0h640v160H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#128807" d="M0 320h640v160H0z"/>
+ <g transform="matrix(3.2 0 0 3.2 320 240)">
+ <circle r="20" fill="#008"/>
+ <circle r="17.5" fill="#fff"/>
+ <circle r="3.5" fill="#008"/>
+ <g id="in-d">
+ <g id="in-c">
+ <g id="in-b">
+ <g id="in-a" fill="#008">
+ <circle r=".9" transform="rotate(7.5 -8.8 133.5)"/>
+ <path d="M0 17.5.6 7 0 2l-.6 5z"/>
+ </g>
+ <use xlink:href="#in-a" width="100%" height="100%" transform="rotate(15)"/>
+ </g>
+ <use xlink:href="#in-b" width="100%" height="100%" transform="rotate(30)"/>
+ </g>
+ <use xlink:href="#in-c" width="100%" height="100%" transform="rotate(60)"/>
+ </g>
+ <use xlink:href="#in-d" width="100%" height="100%" transform="rotate(120)"/>
+ <use xlink:href="#in-d" width="100%" height="100%" transform="rotate(-120)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/io.svg b/apps/web/public/flags/io.svg
new file mode 100644
index 00000000..3058f7df
--- /dev/null
+++ b/apps/web/public/flags/io.svg
@@ -0,0 +1,130 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-io" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000063" fill-rule="evenodd" d="M640 416.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.1 36.3-23.1 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.2 36.3-23.2 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.6-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9zm0-81.3c-7.2 6.7-13.3 22.1-32.4 22.1-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 .1-24.8 23.3-36.2 23.3v41.8c11.4 0 17.1-23.1 36.2-23.1 28.5 0 38.1 32.5 76.2 32.5 19 0 28.5-32.5 47.6-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.4-32.5 28.7 0 38.2 32.5 76.3 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9v-48Zm0-81c-7.2 6.6-13.3 22-32.4 22C569.5 32.5 560 0 531.4 0c-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5C198 32.5 188.6 0 160 0c-19 0-28.6 32.5-47.6 32.5C74.2 32.5 64.7 0 36.2 0 17.2 0 11.4 23.2 0 23.2v41.9C11.4 65 17.1 42 36.2 42c28.5 0 38.1 32.4 76.2 32.4 19 0 28.5-32.4 47.6-32.4 28.6 0 38.1 32.4 76.3 32.4 19 0 28.4-32.4 47.4-32.4 28.7 0 38.2 32.4 76.3 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.1 32.4 76.2 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.2 32.4 76.2 32.4 19 0 25.2-9.2 32.4-15.8z"/>
+ <path fill="#a24300" fill-rule="evenodd" stroke="#fff" stroke-width="2.1" d="m474.8 131.7-3.5 329c0 17.3 15.7 17.3 17.4 0l-3.5-329Z"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m510.7 254-11-11.9-2.6 12.1-4.7-17.5-4.5 8.8-.8-18.6-4.4 8.8-.8-18.6-4.4 8.8L475 204l-4.4 8.8L468 191l-4.5 8.8-2.5-21.9-1.3-11 2.2-4.3 5.8 2.1 9.1 8.7 18.3 17.4-11.3-4.3 18.3 17.4-11.4-4.3 18.3 17.3-11.4-4.2 16.6 14-11.3-4.2 16.5 14-11.3-4.2 12.6 15.2-13.1-7.6 3 14.3z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M510.7 254 462 162.6m33.1 28.2L469 175.6l-5.4 24.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m502.2 203.8-26.3-15.1-5.3 24.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m509.1 216.8-26.2-15-5.4 24"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m514.3 226.7-24.5-11.9-7 21"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M519.5 236.5 495 224.6l-7 21"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m520.8 247.4-22.3-16.2-1.4 23"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m383 97.9 17.8 6.8-5.2-13.5 15.6 15.3-1.5-11 12.6 18.4-1.5-11 12.6 18.4-1.5-11 16.3 20.8-1.5-11 16.3 20.8-1.4-11 16.2 20.8 8.2 10.4.7 5.5-6.7.6-14-4.3-28.2-8.7 13.3-1.1-28.1-8.7 13.3-1.1-28.1-8.7 13.3-1.2-24.4-6.2 13.3-1.1-24.4-6.2 13.3-1.2-21.5-9.3 17.1 1.3L383.1 98z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m383 97.9 103.7 68.7m-48.9-12.4 34.1 2.6-10.3-26.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m423 144.4 34 2.6-10.3-27"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m408.2 134.6 34 2.6-10.3-27"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m397 127.2 30.5.1-6.7-24.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m386 119.8 30.4.2-6.7-24.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m377.8 109.4 31.1 5.7-13.2-23.9"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M589.8 120.8 575 131.7l16.4 1.8-22.9 5.4 12.2 3.6-24.7 1.8 12.2 3.6-24.7 1.8 12.1 3.7-28.9 3.6 12.2 3.6-28.9 3.6 12.2 3.6-28.9 3.6-14.5 1.8-6-1.8 2.2-5.4 10.7-9 21.3-18.1-4.6 10.8 21.3-18-4.6 10.8 21.3-18-4.6 10.8L553 119l-4.5 10.9 17-16.3-4.5 10.8 19-12.6-8.7 12.7 18.6-3.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m589.8 120.8-117 50.6m34.1-32.5-17.4 25.3 32.7 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M523.7 131.7 506.2 157l32.7 3.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m540.4 124.4-17.5 25.3 32.7 3.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m553 119-13.3 23.5 28.5 5.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m565.5 113.6-13.3 23.5 28.5 5.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m580 111.8-19.4 21.7h30.7"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M587.4 230.3 569 225l6.6 13-17.1-14 2.6 10.7-14.5-17.2 2.7 10.8-14.5-17.3 2.6 10.8-18.5-19.4 2.7 10.8-18.5-19.4 2.7 10.8-18.5-19.4-9.2-9.7-1.3-5.4 6.6-1.2 14.5 3.2 29 6.4-13.2 2.2 29 6.4-13.2 2.2 29 6.4-13.2 2.3 25 4.2-13.2 2.2 25 4.2L569 211l22.3 7.5h-17l13 12z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m587.4 230.3-110.6-60.2m50 8.4-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m542.6 187.1-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m558.4 195.7-34.2.2 13.2 26"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m570.3 202.2-30.3 2.3 9.3 23.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m582.2 208.7-30.3 2.2 9.2 23.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m591.3 218.4-31.5-3.2 15.8 22.8"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m395.2 236.6 9.3-13-14.1 2.1 17.4-9.9-11.1-.5 20-7-11.1-.6 20-7-11.1-.6 23-9.6-11.2-.5 23-9.7-11.1-.5 23-9.6 11.5-4.9 5.6.3-.4 5.3-6.3 10.4-12.6 20.8.8-10.6-12.6 20.8.7-10.7-12.6 20.8.7-10.6-9.6 18.2.7-10.6-9.6 18.2.7-10.6-12.2 15.4 3.7-13.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m395.2 236.6 83-71m-19.1 36.5 7.3-26.4-28.2 4.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m447.2 212.3 7.3-26.4-28.2 4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m435.3 222.4 7.4-26.4-28.2 4.1"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m426.4 230 4.4-23.8-25.2 1.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m417.5 237.6 4.4-23.8-25.2 1.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m406 242.4 10-23.5-25.6 6.8"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m563 66.2-17.9 12-2.9-12.9-10.5 17.8-2-8.5-8.6 18.2-1.2-8.4-6.7 18.7-3.8-9-6.7 22.7-3.8-9-6.7 22.7-3.9-9-6.7 22.7-3.3 11.4 1.9 4.5 7.2-2.4 12.4-9.2 25-18.4-14.4 4.7 24.9-18.5-14.4 4.8 24.9-18.5-14.4 4.8 25-14.4-17 4L566 83.3l-16.3 4.2 19.7-15.6-17 8.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m556 72.7-25.8 22.2-50 65.2"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m519.3 132.8-28.6 13.5-2.4-20.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m530.2 119.2-29 13.4-2.3-20.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m540.5 105.5-28.7 13.4-2.2-20.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m549.1 95.3-26.8 9.9-3-17"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M559 85.5 530.2 95l-1-16.4"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m562.8 76.2-26.6 13.6 5.2-20.6"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m466.1 43.8 8 18.2 10.3-9.6-1.7 19.8 6.8-6.4-3.7 19.4 6-6.6-5.5 19 8.7-6-8 22.3 8.6-6-8 22.5 8.7-6-8 22.4-4 11.2-4.4 3-4.8-5.3-5-13.4-10-26.9 9.4 10.5-10.1-27 9.4 10.6-10-27L468 93l-12.5-23.4 12 11.1-14.4-23.9 11.3 11-7.3-22.2 9.6 14.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m468.2 52.4 8.5 30.5 3.2 78"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m463 120.2 16.2 24.3 14.7-16.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m462 103.7 16.5 24.4 14.7-16.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m461.5 87.3 16.4 24.4L492.3 95"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m460.4 74.9 16.8 20.4 13-13"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m458 62 18.7 21 11-13.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m460.3 52.4 14.4 23.5 8.1-19.9"/>
+ <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.9" d="m359 178 23.3-16.2-11.7-6 20.5 3.4-7-9.3 19.8 7.5-7-9.3 19.9 7.4-7-9.2 24 8.1-7-9.3 23.3 12.1-7-9.3 24 8.2 11.7 6 3.5 4.6-4.7 3.3-12.9 1.8-20.7 8.6 3.8-7.4-25.7 3.6 9.3-6.4-26.3 7.6 9.4-6.5-22.2 8.3 9.9-10.4-22.8 12.2 10-10.4-18.8 13 10.5-14.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m366.3 173.6 24.2-10.5 12.9-1.8 10.7-.2 18.5 1.2 16.7.7 33 3.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m447.2 176.9 18.5-11.4-18.8-14.7"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m426.5 175.2 22.7-12.2-18.7-14.8"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m411.7 174.8 20.9-12.5-19-13.7m-29.5 29.6 19.3-16.9-15.6-8.5"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m375.5 179.3 15-16.1-12-4.5m18.4 17.7 19-15.2-15.2-10.4"/>
+ <g fill-rule="evenodd">
+ <path fill="#c00" stroke="#000" stroke-width="1pt" d="m541.5 1173.3-1.7-229.1-61.1-107c-15.3-52.6-7.8-78 17-79.8 24.7-1.6 49.2 13.6 84.8 15.3s28.9-59.4 81.5-57.7 144.3 32.3 222.3 37.4c78.1 5 118.8-27.2 208.8-30.6s113.7 42.4 118.8 42.4 30.6-18.6 56-22c25.5-3.4 34 10.2 34 10.2s-1.7 57.7-13.6 91.6c-11.9 34-54.3 90-56 90s-15.3 249.5-15.3 251.2-675.5-6.8-675.5-11.9z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <g stroke="#000" stroke-width="1pt">
+ <path fill="#fff100" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(-.12934 0 0 .11906 596.6 257.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 594.5 257.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.8 252.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598 247.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.9 242.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.7 236.8)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 591.2 261.7)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.7 231.4)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 592.5 227.1)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 586.8 224.3)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 581 223.9)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 575 224)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 568.8 225)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 562.7 225.7)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 556 226.6)"/>
+ <path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 550.4 228.1)"/>
+ </g>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 369.5 257.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.2 252.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 366 247.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.2 242.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.4 236.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.3 231.4)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 371.4 227.1)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 377.2 224.3)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 382.9 223.9)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 389 224)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 395.2 225)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 401.4 225.7)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 407.9 226.6)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 413.6 228.1)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 372.8 261.7)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 398.7 310.9)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 444.5 310.9)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 832.7V673.2s35.4 53.2 88.6 53.2c43.5 0 88.6-70.9 88.6-70.9s41.5 53.2 88.6 53.2c42 0 88.5-68.6 88.5-68.6s43.2 68.6 88.6 68.6c45.5 0 88.6-53.2 88.6-53.2s46.3 70.9 106.3 70.9c53.1 0 70.9-53.2 70.9-53.2v159.5z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 344.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(-.12934 0 0 .11906 619.4 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 413.3 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M584.6 847.5c0-88.6 124.1-159.4 124.1-159.4s124 70.8 124 159.4h-248z" transform="matrix(.12934 0 0 .11906 390.4 255.9)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M1275.6 655.5c-35.4-17.7-166-35.4-376.3-35.4s-350 17.7-385.5 35.4c-35.4 17.7-35.4 53.2 0 70.9s175.3 35.4 385.5 35.4 340.9-17.7 376.3-35.4 35.4-53.2 0-70.9z" transform="matrix(.12788 0 0 .11906 367 278.7)"/>
+ <path fill="gray" d="M527.9 365.2c0 4.2-38.2 4.2-45.9 4.2-8.3 0-45.8 1.2-45.8-4.2 0-4.2 37.8-4.2 45.8-4.2s45.9.8 45.9 4.2"/>
+ <path fill="#c00" d="M440.8 350c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5m87 0c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5"/>
+ <path d="M486.6 348.8c0 1.3-2.1 2.4-4.6 2.4s-4.6-1.1-4.6-2.5 2-2.5 4.6-2.5 4.6 1.2 4.6 2.5z"/>
+ <path fill="#006300" d="M508.6 348.8c0 1.3-1.6 2.4-3.5 2.4s-3.4-1.1-3.4-2.5 1.6-2.5 3.4-2.5 3.5 1.2 3.5 2.5zm-47.2 0c0 1.3-1.5 2.4-3.4 2.4s-3.5-1.1-3.5-2.5 1.5-2.5 3.5-2.5c1.9 0 3.4 1.2 3.4 2.5z"/>
+ <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 300.5)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(.03696 0 0 .05953 385 309.3)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(-.03696 0 0 .05953 579 309.3)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 256.2)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.7 213.7)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 655.5h70.9v53.2h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 683.3h70.9v202.5h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 251.2)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 245.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 240.8)"/>
+ <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 235.5)"/>
+ <path d="M486.9 356.8c0 1-2.1 1.7-4.8 1.7s-4.5-.7-4.5-1.7 2-1.7 4.6-1.7 4.7.8 4.7 1.7M529 361c-.3.7-2.6.8-5.1 0-2.6-.5-4.4-1.4-4.2-2 .3-.8 2.6-.8 5.1-.2 2.6.6 4.4 1.5 4.2 2.2m-17.7-2.8c0 .8-2.3 1.3-5 1.2-2.5-.2-4.6-1-4.5-2 .1-.8 2.4-1.2 5-1s4.7.9 4.5 1.8m-77.5 2.8c.2.7 2.5.8 5 0 2.6-.5 4.5-1.4 4.2-2-.3-.8-2.5-.8-5-.2-2.6.6-4.4 1.5-4.2 2.2m18.5-3.2c.1.8 2.4 1.3 5 1.1s4.7-1 4.5-1.9c0-.7-2.3-1.3-5-1.1-2.5.2-4.6 1-4.5 1.9"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/iq.svg b/apps/web/public/flags/iq.svg
new file mode 100644
index 00000000..80445147
--- /dev/null
+++ b/apps/web/public/flags/iq.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-iq" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#ce1126" d="M0 0h640v160H0z"/>
+ <path fill="#000001" d="M0 320h640v160H0z"/>
+ <g fill="#007a3d" transform="translate(-179.3 -92.8)scale(1.75182)">
+ <path d="m325.5 173.2-1.4-1q-.6-.7 1.2-.2 3.3 1 5.3-.8l1.3-1.1 1.5.7q1.5.8 2 .7c.7-.2 2.1-2 2-2.6 0-.7.6-.5 1 .3.6 1.6-.3 3.5-2 3.9q-1 .3-2.6-.3c-1.4-.5-1.7-.5-2.4 0a5 5 0 0 1-5.9.4m5.8-5.3a8 8 0 0 1-1-4q.1-.9.8-.6c1 .3 1.2 1 1 3q0 2.7-.8 1.6m-67.6-1.9c-.1 1.3 2.4 4.6 3.5 5.2-.8.3-1.7.2-2.4.5-4 4-18.4 18-21 21.4 7.8.2 16.4-.1 23.7-.4 0-5.3 5-5.6 8.4-7.5 1.7 2.7 6 2.5 6.6 6.6v17.6H216a9.7 9.7 0 0 1-12.3 7.5c2-2 5.4-2.8 6.6-5.7 1-6.4-2-10.3-4-14a24 24 0 0 0 7-3.6c-2.3 7 6.2 6.3 12.4 6.1.2-2.4.1-5.2-1.7-5.6 2.3-.9 2.7-1.2 6.6-4.4v9.6l46.1-.1c0-3 .8-7.9-1.6-7.9-2.2 0 0 6.2-1.8 6.2h-35.7v-6c1.5-1.6 1.3-1.5 11.6-11.8 1-1 8.3-7.6 14.6-13.7zm89.1-.3c2.5 1.4 4.5 3.2 7.5 4-.3 1.3-1.5 1.8-1.8 3.1v27c3.4.7 4.2-1.3 5.8-2.3.4 4.3 3.2 8.5 3 12h-14.5zm-19.4 14.5s5.3-4.5 5.3-4.7V199h3.8l-.1-26.3c1.5-1.6 4.6-3.8 5.3-5.4v42h-33.4c-.5-8.7-.6-17.7 9.6-15.8V190c-.3-.6-.9.1-1-.7 1.6-1.6 2.1-2 6.5-5.8l.1 15.5h3.9zm-12.6 18.6c.7 1 3.2 1 3-.8-.3-1.5-3.5-1-3 .8"/>
+ <circle cx="224" cy="214.4" r="2"/>
+ <path d="M287 165.8c2.5 1.3 4.5 3.2 7.6 4-.4 1.2-1.5 1.7-1.8 3v27c3.4.7 4.1-1.2 5.7-2.3.5 4.3 3.2 8.6 3.1 12H287z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ir.svg b/apps/web/public/flags/ir.svg
new file mode 100644
index 00000000..8c6d5162
--- /dev/null
+++ b/apps/web/public/flags/ir.svg
@@ -0,0 +1,219 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ir" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ir-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.7v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#ir-a)" transform="translate(80)scale(.9375)">
+ <path fill="#fff" d="M-192 0h896v512h-896z"/>
+ <path fill="#da0000" d="M-192 343.8h896V512h-896z"/>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-21.6 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M52.4 367.7v3.4H33.8v-3.4zm-34.6-7.9H21v11.3h-3.3z"/>
+ <path d="M49.6 351H53v20h-3.4zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M17.8 359.9H21V371h-3.3z"/>
+ <path d="M17.8 359.9H21V371h-3.3z"/>
+ <path d="M17.8 359.9H21V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371H7.3zm-14.3 0h3.4V371H-7z"/>
+ <path d="M9.6 367.7v3.4H-5.5v-3.4zm1-8.7v3.4H1V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-102.2 351h49v3.3h-49zm7.3 16.8h3.4v3.3H-95zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M-28.2 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+ <path d="M-31 351h3.4v20H-31zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M-62.8 359.9h3.3V371h-3.3z"/>
+ <path d="M-62.8 359.9h3.3V371h-3.3z"/>
+ <path d="M-62.8 359.9h3.3V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.3V371h-3.3zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M-71 367.7v3.4h-15v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M58.3 351h49v3.3h-49zm7.3 16.8H69v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.3-16.8h3.4v20h-3.4z"/>
+ <path d="M132.3 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M129.5 351h3.4v20h-3.4zm-8.4 0h3.4v20H121zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M97.7 359.9h3.4V371h-3.4z"/>
+ <path d="M97.7 359.9h3.4V371h-3.4z"/>
+ <path d="M97.7 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M89.6 367.7v3.4H74.4v-3.4zm1-8.7v3.4H81V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M622.7 351h49v3.3h-49zm7.3 16.8h3.4v3.3H630zm41.9 0v3.3H662v-3.4zm5.3-16.8h3.3v20h-3.4z"/>
+ <path d="M696.7 367.7v3.4H678v-3.4zm-34.6-7.9h3.4v11.3H662z"/>
+ <path d="M694 351h3.3v20h-3.4zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M662 359.9h3.5V371H662z"/>
+ <path d="M662 359.9h3.5V371H662z"/>
+ <path d="M662 359.9h3.5V371H662zm-39.2 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M654 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M138.7 351h49.1v3.3h-49zm7.4 16.8h3.3v3.3h-3.3zm41.8 0v3.3h-9.8v-3.4zm5.3-16.8h3.4v20h-3.4z"/>
+ <path d="M212.8 367.7v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+ <path d="M210 351h3.4v20H210zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+ <path d="M178.1 359.9h3.4V371h-3.4z"/>
+ <path d="M178.1 359.9h3.4V371h-3.4z"/>
+ <path d="M178.1 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.2 0h3.3V371h-3.3z"/>
+ <path d="M170 367.7v3.4h-15.1v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M219.5 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zM274 351h3.3v20H274z"/>
+ <path d="M293.5 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M290.7 351h3.4v20h-3.4zm-8.4 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M258.9 359.9h3.4V371h-3.4z"/>
+ <path d="M258.9 359.9h3.4V371h-3.4z"/>
+ <path d="M258.9 359.9h3.4V371h-3.4zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371H234z"/>
+ <path d="M250.8 367.7v3.4h-15.2v-3.4zm1-8.7v3.4H242V359z"/>
+ </g>
+ <path fill="#239f40" d="M-192 0h896v168.2h-896z"/>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M300.7 351h49v3.3h-49zm7.3 16.8h3.4v3.3H308zm41.9 0v3.3H340v-3.4zm5.3-16.8h3.3v20h-3.3z"/>
+ <path d="M374.7 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3H340z"/>
+ <path d="M372 351h3.3v20H372zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M340 359.9h3.5V371H340z"/>
+ <path d="M340 359.9h3.5V371H340z"/>
+ <path d="M340 359.9h3.5V371H340zm-39.2 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M332 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M381.4 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm42 0v3.3h-9.9v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M455.4 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M452.7 351h3.3v20h-3.3zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+ <path d="M420.8 359.9h3.4V371h-3.4z"/>
+ <path d="M420.8 359.9h3.4V371h-3.4z"/>
+ <path d="M420.8 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.3z"/>
+ <path d="M412.7 367.7v3.4h-15.1v-3.4zm1-8.7v3.4H404V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M462.2 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M536.2 367.7v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+ <path d="M533.4 351h3.4v20h-3.4zm-8.4 0h3.3v20H525zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M501.6 359.9h3.3V371h-3.3z"/>
+ <path d="M501.6 359.9h3.3V371h-3.3z"/>
+ <path d="M501.6 359.9h3.3V371h-3.3zm-39.4 0h3.4V371h-3.4zm28.9 0h3.3V371h-3.3zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M493.4 367.7v3.4h-15.1v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M543.4 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M617.4 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+ <path d="M614.6 351h3.4v20h-3.4zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+ <path d="M582.8 359.9h3.3V371h-3.3z"/>
+ <path d="M582.8 359.9h3.3V371h-3.3z"/>
+ <path d="M582.8 359.9h3.3V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371H558z"/>
+ <path d="M574.6 367.7v3.4h-15.1v-3.4zm1-8.7v3.4H566V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-183.8 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm42 0v3.3h-9.9v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+ <path d="M-109.8 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M-112.5 351h3.3v20h-3.3zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+ <path d="M-144.4 359.9h3.4V371h-3.4z"/>
+ <path d="M-144.4 359.9h3.4V371h-3.4z"/>
+ <path d="M-144.4 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+ <path d="M-152.5 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-21.6 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M52.4 160.2v3.4H33.8v-3.4zm-34.6-7.9H21v11.3h-3.3z"/>
+ <path d="M49.6 143.4H53v20.2h-3.4zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M17.8 152.3H21v11.3h-3.3z"/>
+ <path d="M17.8 152.3H21v11.3h-3.3z"/>
+ <path d="M17.8 152.3H21v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3H7.3zm-14.3 0h3.4v11.3H-7z"/>
+ <path d="M9.6 160.2v3.4H-5.5v-3.4zm1-8.7v3.3H1v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-102.2 143.4h49v3.4h-49zm7.3 17h3.4v3.2H-95zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M-28.2 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+ <path d="M-31 143.4h3.4v20.2H-31zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M-62.8 152.3h3.3v11.3h-3.3z"/>
+ <path d="M-62.8 152.3h3.3v11.3h-3.3z"/>
+ <path d="M-62.8 152.3h3.3v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.3v11.3h-3.3zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M-71 160.2v3.4h-15v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M58.3 143.4h49v3.4h-49zm7.3 17H69v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.3-16.8h3.4v20.2h-3.4z"/>
+ <path d="M132.3 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M129.5 143.4h3.4v20.2h-3.4zm-8.4 0h3.4v20.2H121zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M97.7 152.3h3.4v11.3h-3.4z"/>
+ <path d="M97.7 152.3h3.4v11.3h-3.4z"/>
+ <path d="M97.7 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M89.6 160.2v3.4H74.4v-3.4zm1-8.7v3.3H81v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M622.7 143.4h49v3.4h-49zm7.3 17h3.4v3.2H630zm41.9-.2v3.4H662v-3.4zm5.3-16.8h3.3v20.2h-3.4z"/>
+ <path d="M696.7 160.2v3.4H678v-3.4zm-34.6-7.9h3.4v11.3H662z"/>
+ <path d="M694 143.4h3.3v20.2h-3.4zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M662 152.3h3.5v11.3H662z"/>
+ <path d="M662 152.3h3.5v11.3H662z"/>
+ <path d="M662 152.3h3.5v11.3H662zm-39.2 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M654 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M138.7 143.4h49.1v3.4h-49zm7.4 17h3.3v3.2h-3.3zm41.8-.2v3.4h-9.8v-3.4zm5.3-16.8h3.4v20.2h-3.4z"/>
+ <path d="M212.8 160.2v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+ <path d="M210 143.4h3.4v20.2H210zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+ <path d="M178.1 152.3h3.4v11.3h-3.4z"/>
+ <path d="M178.1 152.3h3.4v11.3h-3.4z"/>
+ <path d="M178.1 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.2 0h3.3v11.3h-3.3z"/>
+ <path d="M170 160.2v3.4h-15.1v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M219.5 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.3-16.8h3.3v20.2H274z"/>
+ <path d="M293.5 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M290.7 143.4h3.4v20.2h-3.4zm-8.4 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M258.9 152.3h3.4v11.3h-3.4z"/>
+ <path d="M258.9 152.3h3.4v11.3h-3.4z"/>
+ <path d="M258.9 152.3h3.4v11.3h-3.4zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3H234z"/>
+ <path d="M250.8 160.2v3.4h-15.2v-3.4zm1-8.7v3.3H242v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M300.7 143.4h49v3.4h-49zm7.3 17h3.4v3.2H308zm41.9-.2v3.4H340v-3.4zm5.3-16.8h3.3v20.2h-3.3z"/>
+ <path d="M374.7 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3H340z"/>
+ <path d="M372 143.4h3.3v20.2H372zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M340 152.3h3.5v11.3H340z"/>
+ <path d="M340 152.3h3.5v11.3H340z"/>
+ <path d="M340 152.3h3.5v11.3H340zm-39.2 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M332 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M381.4 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm42-.2v3.4h-9.9v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M455.4 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M452.7 143.4h3.3v20.2h-3.3zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+ <path d="M420.8 152.3h3.4v11.3h-3.4z"/>
+ <path d="M420.8 152.3h3.4v11.3h-3.4z"/>
+ <path d="M420.8 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.3z"/>
+ <path d="M412.7 160.2v3.4h-15.1v-3.4zm1-8.7v3.3H404v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M462.2 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M536.2 160.2v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+ <path d="M533.4 143.4h3.4v20.2h-3.4zm-8.4 0h3.3v20.2H525zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M501.6 152.3h3.3v11.3h-3.3z"/>
+ <path d="M501.6 152.3h3.3v11.3h-3.3z"/>
+ <path d="M501.6 152.3h3.3v11.3h-3.3zm-39.4 0h3.4v11.3h-3.4zm28.9 0h3.3v11.3h-3.3zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M493.4 160.2v3.4h-15.1v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M543.4 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M617.4 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+ <path d="M614.6 143.4h3.4v20.2h-3.4zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+ <path d="M582.8 152.3h3.3v11.3h-3.3z"/>
+ <path d="M582.8 152.3h3.3v11.3h-3.3z"/>
+ <path d="M582.8 152.3h3.3v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3H558z"/>
+ <path d="M574.6 160.2v3.4h-15.1v-3.4zm1-8.7v3.3H566v-3.3z"/>
+ </g>
+ <g fill="#fff" stroke-width="1pt">
+ <path d="M-183.8 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm42-.2v3.4h-9.9v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+ <path d="M-109.8 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+ <path d="M-112.5 143.4h3.3v20.2h-3.3zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+ <path d="M-144.4 152.3h3.4v11.3h-3.4z"/>
+ <path d="M-144.4 152.3h3.4v11.3h-3.4z"/>
+ <path d="M-144.4 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+ <path d="M-152.5 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+ </g>
+ <path fill="#d90000" d="M-68.8 339.5h6V350h-6zm160.5 0h6V350h-6zm-283.7 0h6V350h-6zm81.5 0h6V350h-6zm80.9 0h6V350h-6zm40 0h6V350h-6zm40.9 0h6V350h-6zm80.4 0h6V350h-6zm203 0h6.1V350h-6zm-162.1 0h6V350h-6zm40 0h6V350h-6zm40.5 0h6V350h-6zm40.4 0h6V350h-6zm323.2 0h6V350h-6zm-242.7 0h6V350h-6zm40.8 0h6V350h-6zm41.3 0h6V350h-6zm38.8 0h6V350h-6zm41.3 0h6V350h-6zm40.4 0h6V350h-6zm119.7 0h6V350h-6zm-38.8 0h6V350h-6zm-808.9 0h6V350h-6z"/>
+ <path fill="#239e3f" d="M-68.8 162.6h6v10.5h-6zm160.5 0h6v10.5h-6zm-283.7 0h6v10.5h-6zm81.5 0h6v10.5h-6zm80.9 0h6v10.5h-6zm40 0h6v10.5h-6zm40.9 0h6v10.5h-6zm80.4 0h6v10.5h-6zm203 0h6.1v10.5h-6zm-162.1 0h6v10.5h-6zm40 0h6v10.5h-6zm40.5 0h6v10.5h-6zm40.4 0h6v10.5h-6zm323.2 0h6v10.5h-6zm-242.7 0h6v10.5h-6zm40.8 0h6v10.5h-6zm41.3 0h6v10.5h-6zm38.8 0h6v10.5h-6zm41.3 0h6v10.5h-6zm40.4 0h6v10.5h-6zm119.7 0h6v10.5h-6zm-38.8 0h6v10.5h-6zm-808.9 0h6v10.5h-6z"/>
+ <g fill="#da0000">
+ <path d="M279.8 197.5c8.4 10.4 34.5 67.6-15.7 105.2-23.7 17.8-9 18.6-8.3 21.6 38-20.1 50.3-47.5 50-72-.2-24.4-13.2-46-26-54.8"/>
+ <path d="M284.8 194.8a73.3 73.3 0 0 1 15.7 112.4c27.2-6 62-86.4-15.7-112.4m-57.6 0a73.3 73.3 0 0 0-15.6 112.4c-27.3-6-62-86.4 15.6-112.4"/>
+ <path d="M232.2 197.5c-8.4 10.4-34.5 67.6 15.7 105.2 23.6 17.8 9 18.6 8.3 21.6-38-20.1-50.3-47.5-50-72 .2-24.4 13.2-46 26-54.8"/>
+ <path d="M304.2 319.1c-14.9.2-33.6-2-47.5-9.3 2.3 4.5 4.2 7.3 6.5 11.7 13.2 1.3 31.5 2.8 41-2.4m-95 0c14.9.2 33.6-2 47.5-9.3-2.3 4.5-4.2 7.3-6.5 11.7-13.2 1.3-31.5 2.8-41-2.4m27.3-138.7c3 8 10.9 9.2 19.3 4.5 6.2 3.6 15.7 3.9 19-4.1 2.5 19.8-18.3 15-19 11.2-7.8 7.5-22.2 3.2-19.3-11.6"/>
+ <path d="m256.4 331.6 7.8-9 1.1-120.1-9.3-8.2-9.3 7.8 1.9 121z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/is.svg b/apps/web/public/flags/is.svg
new file mode 100644
index 00000000..a6588afa
--- /dev/null
+++ b/apps/web/public/flags/is.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-is" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="is-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="0" clip-path="url(#is-a)">
+ <path fill="#003897" d="M0 0h666.7v480H0z"/>
+ <path fill="#fff" d="M0 186.7h186.7V0h106.6v186.7h373.4v106.6H293.3V480H186.7V293.3H0z"/>
+ <path fill="#d72828" d="M0 213.3h213.3V0h53.4v213.3h400v53.4h-400V480h-53.4V266.7H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/it.svg b/apps/web/public/flags/it.svg
new file mode 100644
index 00000000..20a8bfdc
--- /dev/null
+++ b/apps/web/public/flags/it.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-it" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#009246" d="M0 0h213.3v480H0z"/>
+ <path fill="#ce2b37" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/je.svg b/apps/web/public/flags/je.svg
new file mode 100644
index 00000000..70a8754e
--- /dev/null
+++ b/apps/web/public/flags/je.svg
@@ -0,0 +1,62 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-je" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0Z"/>
+ <path d="m1.3-2.4 637.4 484.8m-637.4 0L638.7-2.4" color="#000" style="-inkscape-stroke:none" transform="matrix(.99998 0 0 .99028 0 2.3)"/>
+ <path fill="#cf142b" d="M0-2.4v29.2L280.5 240 0 453.3v29h44L320 270l275.8 212.4H640V453L359.5 240 640 26.7v-29h-44L320 209.8 44-2.4Z" color="#000" style="-inkscape-stroke:none" transform="matrix(.99998 0 0 .99028 0 2.3)"/>
+ <path fill="#cf142b" stroke="maroon" stroke-miterlimit="140.8" stroke-width=".5" d="M364.2 65c10.8 44 4.8 98.2-44.2 128.4-49-30.2-55-84.4-44.2-128.4 11.6-10.5 64.2-17 88.4 0z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="135.2" stroke-width=".2" d="M295.1 91a7 7 0 0 1-2.4-.4 6 6 0 0 1-1.4-2l-2.7.2a7 7 0 0 1-2.1-1.2 4 4 0 0 0 2.2-.9l-2.5-.5q-1.2-.6-2.1-1.3 1.3-.1 2.1-.8l-2.4-.3-1.7-1.3q1.3 0 2.2-1l-2.3-.1-2.4-1.6a5 5 0 0 0 2.6-.8l-.6-1c-.6-1.2-1.8-.7-2.7-1.1a2 2 0 0 1-1.4-1.8c0-.9.4-2.3 2.4-2-1-1.6.1-2.7 1.2-3.2s2-.2 2.7 1.5l1.4-.8a2 2 0 0 1 1.8.6v1.2c-.3.6-1 1-1 1.8-.3.8.5 2.4.5 2.4s4 3.2 5.7 4.8l2.8 3h4.1l.3 6.6H295z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="135.2" stroke-width=".2" d="M284.2 69.2a2 2 0 0 1 .7 2.4q.3.5 1 .4a1 1 0 0 0 .7-1.3c-.4-.3-.5-1.1-2.4-1.6zm-4.5.5-1.1.1a2 2 0 0 1 1.6 2q.6.2 1-.1a1 1 0 0 0 .2-1.5c-.4 0-.8-.5-1.6-.5zm-1.3 4.2c-.5.1-1.2-.4-2.7.8a2 2 0 0 1 2.3 1q.5 0 .9-.4a1 1 0 0 0-.5-1.4z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="135.2" stroke-width=".2" d="M317.6 94c-.6-.2-1.5-1-2.2-1a2 2 0 0 0-1.7 1 2 2 0 0 0 .4 1.5l1.3.8a4 4 0 0 0-1 1.6 2 2 0 0 0 .6 1.1q.4.8 1.2.8l1.5-.1.1 1.1a2 2 0 0 0 2.1 1.1 1 1 0 0 0 1.2-.6c.3-.4.3-1.4.7-1.9l1.9-1.6q1 .7.6 2l1.6-1.4.5-1.8a2 2 0 0 1 .8 2l1.6-1.2.8-2q1 1.1.5 2.3a6 6 0 0 0 1.7-1.6l.4-1.6q2.6 0 2.8-1.4c0-.5-.6-1.3-1.9-1.6l-.6-1.2v-1.1a5 5 0 0 1 1.5-2l2.8-1.5-.6-2.9-6.5-1-7.4 1.8c1.4.6 4.3 2.7 4.1 3.5 0 .3-.7.6-1 1q-.2.5.2 1c.2.4 1 .5 1.3.9q.3.6 0 1c-.5.7-2.2 1-3 1.3l-4 2.1a6 6 0 0 1-2.2-.4z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="135.2" stroke-width=".2" d="M333.1 85.1s-.1 2.4-1.1 3a2 2 0 0 1-1.4.1 2 2 0 0 1-1-1l-.3-1.1-2.3-.7q-1.8 0-3.6.6a8 8 0 0 1 2.7-3.2l3.9-.3z"/>
+ <path fill="gold" d="M343.6 69.4c1.1-.1 3.4-.6 4.2-1.3l1.4-1.4q-.2 3.3-3.8 4.7a14 14 0 0 1-6.2.8l-3.8-.8c1.4 1.4.7 2.4-1 3 0 0 .2-1.3-.2-1.5q-1.7-.4-3.5.8a7 7 0 0 1-3 .6 8 8 0 0 1-3.6-.5c-.8-.2-2.3-1.3-2.8-1.2-1.4.2-3 .4-3.7 1.4q-.3.5 0 1.2a4 4 0 0 0 2.6 1.5q4.2.9 8.4.3l9.6-1.9c3-.5 6.8-1.4 9-1.9a34 34 0 0 1 8.9-1c5.3.1 7 2.8 6.9 5.6-.2 2.8-3.3 4.1-6 5-4.8 1.4-11.4.6-15.6.4l2 1.6c.8.6 1.2 1.8 2 2 1.3.4 3.2-.4 4.5-.4 1.9-.2 5 0 5 0l1.3-.8h1.2q1 .3.8 2 .3.4 1 .6h1.7l1.6.8-1.5.5-.7.7q1 0 2 .3l1.2 1-1.3.2-.8.6s1.6-.1 2.2.3l1.1 1.2h-1.3l-.8.4 1.6 1.2q.5.7.6 1.6l-1.1-.6h-.8l.2 2.2c0 .6 1 1.2 1 1.6a1 1 0 0 1-.1 1.2 2 2 0 0 1-2.2.7l-1-.6-.9 1c-.5.4-.6.4-1.3.4a2 2 0 0 1-1.3-.5l-.7-1.6-1.6.3a2 2 0 0 1-1.5-.7 2 2 0 0 1 .3-1.8c.4-.4 1.6-.5 2.2-.8a5 5 0 0 0 1.6-1.3l-3.8-3-1.6-2.1s-3.4 1-4.7 1a26 26 0 0 1-6.4 0c-4.8 0-8-6.6-12.3-8.2a5 5 0 0 0-3.3 0c-5 1-10.4 6.8-15.3 8q-3.2.6-6.4.7l-1.3 1.7a7 7 0 0 1-2.6.5l-1 2.3a7 7 0 0 1-2 1.3 3 3 0 0 0 0-2.3l-1.5 2-2.2 1.1c.2-.6.5-1.3 0-2.1l-1.2 1.8q-1 .7-2 1a2 2 0 0 0 0-2.3l-1.2 1.9-2.6 1.3a4 4 0 0 0 .4-2.4h-1.2c-1.5 0-1.6 1.3-2.3 1.9a3 3 0 0 1-2.4.4c-.8-.4-1.7-1.4-.5-3-2 .2-3-1-3-2.2 0-1 .3-1.9 2.4-1.8l-.2-1.4a1.4 1.4 0 0 1 1.5-1.2q.6 0 1.2.6c.4.4.5 1.1 1.2 1.6.8.6 2.7.5 2.7.5a50 50 0 0 1 6.2-2.8c1.3-.4 5-1 5-1V81a87 87 0 0 1 13 1.1l5.2-.3s8.4-1.3 12.4-1.7q3-.3 6.1-.2c3 .2 5.6.9 8.6 1q3.2.5 6.4.3c3.5-.2 9.7 0 11.7-3a2 2 0 0 0-.6-2.6 3 3 0 0 0-3-.8q-1.4.2-1.7 1.2a1 1 0 0 0 .3 1.1q.3.6 1.1.9a4 4 0 0 1-2.2-.3 6 6 0 0 1-1.4-2.2 2 2 0 0 0-.5 1.5q0 1 .7 1.6a4 4 0 0 1-2.4-.8 7 7 0 0 1-.9-2.2 2 2 0 0 0-.8 1.6q.1.8.5 1.7a5 5 0 0 1-2.2-1.2 6 6 0 0 1-.7-2.2l-9 1.8-9.5 1.6a24 24 0 0 1-11.3-.8c-1.6-.8-2.4-1.3-2.8-2.7a3 3 0 0 1 1-2.7 10 10 0 0 1 5-2.6 76 76 0 0 1 8.8-1.6 34 34 0 0 1 9.5.4c1.4.2 3-.1 3.3-.6.4-.4 1-.8.2-1.8q1.2 0 1.8 1.2c.3.4 0 1.6 0 1.6z"/>
+ <path fill="none" stroke="#806600" stroke-miterlimit="135.2" stroke-width=".2" d="M343.6 69.4c1.1-.1 3.4-.6 4.2-1.3l1.4-1.4q-.2 3.3-3.8 4.7a14 14 0 0 1-6.2.8l-3.8-.8c1.4 1.4.7 2.4-1 3 0 0 .2-1.3-.2-1.5q-1.7-.4-3.5.8a7 7 0 0 1-3 .6 8 8 0 0 1-3.6-.5c-.8-.2-2.3-1.3-2.8-1.2-1.4.2-3 .4-3.7 1.4q-.3.5 0 1.2a4 4 0 0 0 2.6 1.5q4.2.9 8.4.3l9.6-1.9c3-.5 6.8-1.4 9-1.9a34 34 0 0 1 8.9-1c5.3.1 7 2.8 6.9 5.6-.2 2.8-3.3 4.1-6 5-4.8 1.4-11.4.6-15.6.4l2 1.6c.8.6 1.2 1.8 2 2 1.3.4 3.2-.4 4.5-.4 1.9-.2 5 0 5 0l1.3-.8h1.2q1 .3.8 2 .3.4 1 .6h1.7l1.6.8-1.5.5-.7.7q1 0 2 .3l1.2 1-1.3.2-.8.6s1.6-.1 2.2.3l1.1 1.2h-1.3l-.8.4 1.6 1.2q.5.7.6 1.6l-1.1-.6h-.8l.2 2.2c0 .6 1 1.2 1 1.6a1 1 0 0 1-.1 1.2 2 2 0 0 1-2.2.7l-1-.6q-.3.6-.9 1a2 2 0 0 1-1.3.5 2 2 0 0 1-1.3-.6l-.7-1.6-1.6.3a2 2 0 0 1-1.5-.7 2 2 0 0 1 .3-1.8c.4-.4 1.6-.5 2.2-.8a5 5 0 0 0 1.6-1.3l-3.8-3-1.6-2.1s-3.4 1-4.7 1a26 26 0 0 1-6.4 0c-4.8 0-8-6.6-12.3-8.2a5 5 0 0 0-3.3 0c-5 1-10.4 6.8-15.3 8q-3.2.6-6.4.7l-1.3 1.7a7 7 0 0 1-2.6.5l-1 2.3a7 7 0 0 1-2 1.3 3 3 0 0 0 0-2.4l-1.5 2-2.2 1.2c.2-.6.5-1.3 0-2.1l-1.2 1.8q-1 .7-2 1a2 2 0 0 0 0-2.3l-1.2 1.9-2.6 1.3a4 4 0 0 0 .4-2.4h-1.2c-1.5 0-1.6 1.3-2.3 1.9a3 3 0 0 1-2.4.4c-.8-.4-1.7-1.4-.5-3-2 .2-3-1-3-2.2 0-1 .3-1.9 2.4-1.8l-.2-1.4a1.4 1.4 0 0 1 1.5-1.2q.6 0 1.2.6c.4.4.5 1.1 1.2 1.6.8.6 2.7.5 2.7.5a50 50 0 0 1 6.2-2.8c1.3-.4 5-1 5-1V81a87 87 0 0 1 13 1.1l5.2-.3s8.4-1.3 12.4-1.7q3-.3 6.1-.2c3 .2 5.6.9 8.6 1q3.2.5 6.4.3c3.5-.2 9.7 0 11.7-3a2 2 0 0 0-.6-2.6 3 3 0 0 0-3-.8q-1.4.2-1.7 1.2 0 .7.3 1 .4.6 1.1 1s-1.7 0-2.4-.4a5 5 0 0 1-1.2-2.1 2 2 0 0 0-.5 1.5q0 1 .7 1.6a4 4 0 0 1-2.4-.8 7 7 0 0 1-.9-2.2 2 2 0 0 0-.8 1.6q.1.8.5 1.7a5 5 0 0 1-2.2-1.2 6 6 0 0 1-.7-2.2l-9 1.8-9.5 1.6a22 22 0 0 1-11.3-1c-1.6-.6-2.4-1.1-2.8-2.5a3 3 0 0 1 1-2.8 10 10 0 0 1 5-2.5 76 76 0 0 1 8.8-1.6 34 34 0 0 1 9.4.4c1.4.2 3-.1 3.4-.6s1-.8.1-1.8a2 2 0 0 1 1.8 1.2c.3.4 0 1.6 0 1.6z"/>
+ <path fill="gold" d="M307.6 82.3c1 .7 2-.1 2.2-.2L309 81l-.2-2c0-1.6.6-1.9.6-1.8l1.6-.7a2 2 0 0 0 .7-1.5l-.2-1.9c-1.6 0-2 .1-2.4.6l-.2-1.6-.6-1.2-.5-.6q-.1.7-.6 1.1l-.6-2.1-1.2-1-1.5.2-1.6 1.6.1-1.3-.8.2-1.1.7-1 1.2c0-.7-.4-1-1.7-1.9l-1.2 1.6a2 2 0 0 0-.2 1.6q.4.8 1 1.5c0-.1.4.5-.5 1.8l-1.3 1.5-1.3.5c.3.9.4 1.3 1.8 1.5-3 2.2-3.4 5.7-1 8.7l.9-1.5a4 4 0 0 0 1 2.6c.2.3.4 2 .8 2.4l1 1s.3-1.3.9-1.5l2-.6c.9-.3 2.1-1.9 2.1-1.9l-.2 2c4-1.4 5-4.2 4-7.9"/>
+ <path fill="#504416" d="M299.8 77.4a8 8 0 0 1-.8 4l2.5 1 2.7.4c-.3-1.1.8-3.2 1.3-3.8h-1.9l-.8-.8-1.6.3z"/>
+ <path fill="#fff" d="M300.2 78a3 3 0 0 0 0 2l.8-1.6zm3.8 1.2-.2 1.8a3 3 0 0 0 1-1.7zm-3.8 1.3a3 3 0 0 0-1 1.7h.9zm3.3.9-.7 1.6.6.4a3 3 0 0 0 .1-2m-3-8.6q-.7 0-1 .6 0 .8 1 1.2a1.4 1.4 0 0 0 1.7-.7q.1-.7-1.2-1zm5.4 1.6q-.6-.1-.8.4a1.4 1.4 0 0 0 1.1 1.4q1.3.3 1.6-.5 0-.9-1-1.2z"/>
+ <path fill="#d1b948" d="m300.5 72.6-.5.1-.6.6.2.9q.4.4.9.6 1.4.3 1.8-.8l-.2-.8-1-.4zm0 .4h.5l.8.4q.4.2.3.5a1.2 1.2 0 0 1-1.5.7l-.8-.6v-.6l.3-.4zm5.4 1.2h-.2l-.7.5a1.4 1.4 0 0 0 1.2 1.6q.6.3 1 0 .5 0 .6-.6l-.1-.8-1-.5zm0 .3.8.1q.5.1.8.4.2.3.1.7l-.5.5h-.9a1.2 1.2 0 0 1-1-1.4q0-.2.5-.3z"/>
+ <path fill="gold" d="M300.6 71.7a1 1 0 0 0-1 .2l-.2.7h.4l.7.1 1.3.6h1.5l-1.2-.7c-.5-.2-1-.8-1.6-1zm7 2q-.9-.1-1.6 0l-1.4-.1 1.2.8 1.5.2.6.2.4.3.3-.6a1 1 0 0 0-1-.8m-8.6 7.7c-1.3 3.5 4 5.2 4.8 1.4a11 11 0 0 1-4.8-1.4"/>
+ <path fill="#806600" d="m299 81.1-.2.3a3 3 0 0 0 0 2.4 2.8 2.8 0 0 0 5.4-.8v-.4h-.3a11 11 0 0 1-4.8-1.3zm.1.4A14 14 0 0 0 304 83a3 3 0 0 1-1.1 1.7 4 4 0 0 1-2.2.2 4 4 0 0 1-1.6-1.4 3 3 0 0 1 0-1.9z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="135.2" stroke-width=".2" d="M301.3 78.4a15 15 0 0 0-.8 7.2c1.6-1.8 2.4-4.2 3-6.4q-.2-.3-.5-.4l-.4-.6-.7.4-.6-.1z"/>
+ <path fill="gold" d="m305.4 68.2-1.5.3-1.6 1.6v-1.3l-.7.2-1.2.7-1 1.1c.4 0 1.6-1 2-.9s.2 1 .5 1.1c.5 0 1-.8 1.6-1.2a3 3 0 0 1 1.6-.8 2 2 0 0 1 1 1.6q.4 1.3.9 1.9c.3.1.6-.8 1-.8.5.2.7 1.7 1.1 2l-.2-1.6-.7-1.2-.5-.6q-.1.6-.6 1.1l-.5-2.1zm-6.5 5.7c-.6 1 0 2 1.2 2.1l-.4 1.1.6 1.3 1.2.4 1-.4.9 1 1 .2 1.3-.8.5-.9h.8l.8-.4.2-.9a2 2 0 0 1-2.6.4 2 2 0 0 1-.5 1.4 1 1 0 0 1-1 .2 2 2 0 0 1-1.2-1q-.7.5-1.2.5a1.4 1.4 0 0 1-1-1 2 2 0 0 1 .5-1.4c-2.4-.7-1.6-1.4-2.2-1.8zm-1.3.3-2 2.8-1.3.5c.3.9.4 1.3 1.8 1.5-3 2.2-3.4 5.7-1 8.7l.9-1.5a4 4 0 0 0 1 2.6c.2.3.4 2 .8 2.4l1 1s.3-1.3.9-1.5l2-.6c.9-.3 2.1-1.9 2.1-1.9l-.1 2c4-1.4 5-4.2 3.9-7.9 1 .7 2-.1 2.2-.2l-.8-1.2-.2-2-.2-1.1-.5 1.7v1.8a5 5 0 0 1-1.9-1l.8 4q0 1.3-.4 2.7a7 7 0 0 1-1.7 1.7l.3-2.4c0-.8-.4-3-.4-3l-.8 3-1.3 2c.3-2.1.2-2.2-.1-3 0 0-.5 2.6-1.5 3.7l-1.6.8-.8.6-.6-1.8-1.2-2.4c-.3-1.2 1.3-3.6 1.3-3.6q-.9.2-1.9 1.4l-1.3 1.8-.5-2.4a5 5 0 0 1 .7-2.2 22 22 0 0 1 3.4-3.3 5 5 0 0 1-3 0s1.3-1.3 1.4-1.6a4 4 0 0 0 .6-2zm5.2 1.2h-1.3v.6l.6.2.8 1 1.7-.5.3-.4-1.6-.9z"/>
+ <path fill="none" stroke="#806600" stroke-miterlimit="135.2" stroke-width=".2" d="M307.6 82.3c1 .7 2-.1 2.2-.2L309 81l-.2-2c0-1.6.6-1.9.6-1.8l1.6-.7a2 2 0 0 0 .7-1.5l-.2-1.9c-1.6 0-2 .1-2.4.6l-.2-1.6-.6-1.2-.5-.6q-.1.7-.6 1.1a4 4 0 0 0-1.8-3.2q-1.9.1-3.2 1.8l.2-1.2-.8.2-1.1.7-1 1.2c0-.7-.4-1-1.7-1.9l-1.2 1.6a2 2 0 0 0-.2 1.6q.4.8 1 1.5c0-.1.4.5-.5 1.8l-1.3 1.5-1.3.5c.3.9.4 1.3 1.8 1.5-3 2.2-3.4 5.7-1 8.7l.9-1.5a4 4 0 0 0 1 2.6c.2.3.4 2 .8 2.4l1 1s.3-1.3.9-1.5l2-.6c.9-.3 2.1-1.9 2.1-1.9l-.2 2c4-1.4 5-4.2 4-7.9z"/>
+ <path fill="#806600" d="M297.8 70.2a3 3 0 0 0-.6 1.6l1 1.7.4-2.4c0-.4-.8-1-.8-1Zm2.1 2.1-.3.1-.6.6.8-.4h.3q.6.5 1.2.7h1.9l-.2.8s-.7.2-1 .5l-.3.4-.3.3v.8h.2q.7.2.8 1l.2.2h.7q.5-.5 1.3-.3h.1l.1-.1q.3-.2.2-.6V76l-.1-.6-.4-1 .1-.9a5 5 0 0 0 1.6 1.2l1.4.1.3.2.5.6q0-.5-.2-.8-.2-.2-.5-.2l-1.3-.2a4 4 0 0 1-1.5-1l-.3-.2-.1.2-.3 1.2.4 1.2.1.7v.1a2 2 0 0 0-1.7.5h-.1a3 3 0 0 0-1.2-1.3v-.3l.1-.2.4-.3 1-.8q.3-.5.3-1v-.4h-.3a4 4 0 0 1-1.8.2l-1.2-.6h-.3zm-1 1.4a2 2 0 0 0-.3 1.7q.5.6 1.2.8l-.1.2-.2.8q.2.8.8 1.4a2 2 0 0 0 1.3.4l.8-.4.6.8a2 2 0 0 0 1.3.3 2 2 0 0 0 1.8-1.5v-.1a2 2 0 0 0 1.4-.2q.6-.7.7-1.6c-.4.3 0 .8-1 1.4a1 1 0 0 1-1.1 0l-.4-.3v1l-.3.5q-.5.5-1.2.5l-.8-.2-.6-.8v-.5l-.3.3-.5.3-.5.1-.9-.3a2 2 0 0 1-.8-1.2l.2-.5.2-.4.2-.4h-.4a1 1 0 0 1-1-.6c-.6-.6 0-1-.1-1.5m12 .2s-1 0-1.3.4l-.8 2.3 1.6-1a3 3 0 0 0 .5-1.7"/>
+ <path fill="#2b2200" d="M301 73.1a.6.6 0 0 0-.2 1.1.6.6 0 1 0 .2-1zm5.4 1.6a.6.6 0 0 0-.2 1 .6.6 0 1 0 .2-1"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="135.2" stroke-width=".2" d="M280.2 91.5c-.5.3-1.2-.2-2.7 1a2 2 0 0 1 2.4 1q.5 0 .8-.6a1 1 0 0 0-.5-1.4zm33.9 1.6c-.5.3-1.2-.2-2.7 1a2 2 0 0 1 2.4 1 1 1 0 0 0 .8-.5 1 1 0 0 0-.5-1.5zm-36.4 2c-.4.3-1.2.2-2.1 1.9a2 2 0 0 1 2.6 0q.5-.3.5-1a1 1 0 0 0-1-1zm37 2.6c-.4.4-1.2.3-1.9 2a2 2 0 0 1 2.5-.2q.6-.2.5-.8a1 1 0 0 0-1.2-1zM280.1 99l-.6.2c-.2.5-.9.8-.8 2.7a2 2 0 0 1 2.2-1.3q.4-.5 0-1a1 1 0 0 0-.8-.6zm73.8.3h-.5c-.1.5-1 .8-1.1 2.7a2 2 0 0 1 2.4-1l.2-1.1a1 1 0 0 0-1-.6zm-35.2 1.2-.6.3c0 .5-.8.8-.5 2.7a2 2 0 0 1 2-1.4q.3-.7 0-1a1 1 0 0 0-.8-.6zm43.8.2a1 1 0 0 0-1 .6c.2.5-.3 1.2.8 2.7a2 2 0 0 1 1.1-2.3 1 1 0 0 0-.5-1zm-4.8.6q-.3 0-.7.4c0 .4-.6 1 .1 2.8a2.4 2.4 0 0 1 1.7-2 1 1 0 0 0-.3-1z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="128.6" stroke-width=".2" d="M295.2 127a6 6 0 0 1-2.2-.3 6 6 0 0 1-1.5-1.8H289l-2-1a4 4 0 0 0 2.1-1l-2.4-.3-2-1.3c.7-.2 1.5-.2 2-.8l-2.1-.3-1.8-1.2a3 3 0 0 0 2.2-1l-2.3-.2-2.2-1.5a4 4 0 0 0 2.4-.6l-.5-1c-.6-1.2-1.8-.8-2.6-1.1a2 2 0 0 1-1.3-1.6c-.1-.9.3-2.2 2.3-2-1-1.4 0-2.5 1-3q1.6-.8 2.6 1.4l1.4-.8a1.4 1.4 0 0 1 1.6.6q.3.6 0 1.2-.5.6-1 1.6c-.2.8.6 2.4.6 2.4s3.8 3 5.5 4.6l2.6 2.7h3.8l.3 6.3z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="128.6" stroke-width=".2" d="M284.8 106.3a2 2 0 0 1 .6 2.3q.4.5 1 .4a1 1 0 0 0 .6-1.2c-.4-.4-.4-1-2.2-1.5zm-4.2.5h-1.2a2 2 0 0 1 1.6 2 1 1 0 0 0 1 0 1 1 0 0 0 0-1.5c-.2 0-.6-.5-1.4-.5zm-1.3 4c-.5 0-1.1-.3-2.6.8a2 2 0 0 1 2.2 1q.7 0 .9-.5a1 1 0 0 0-.5-1.3z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="128.6" stroke-width=".2" d="M316.6 130c-.6-.2-1.4-1.1-2.1-1.1a2 2 0 0 0-1.6 1 2 2 0 0 0 .4 1.4l1.2.9-.8 1.4a1 1 0 0 0 .5 1.1c.4.5.4.7 1.2.8l1.2-.1q0 .6.3 1a2 2 0 0 0 1.9 1q.8 0 1.2-.5c.2-.4.2-1.4.6-1.8l1.8-1.6c.8.5.7 1.1.6 1.9l1.5-1.2.5-1.9a2 2 0 0 1 .8 2l1.6-1.2.7-1.7a2 2 0 0 1 .4 2 6 6 0 0 0 1.6-1.6l.5-1.4q2.4-.1 2.6-1.3c0-.5-.6-1.3-1.8-1.5l-.7-1.2v-1.1a5 5 0 0 1 1.5-1.8l2.7-1.6-.6-2.6-6.2-1-7 1.7c1.3.6 4.1 2.6 4 3.4-.2.2-.9.5-1.1.8q-.2.7.2 1c.3.5 1 .6 1.2.9a1 1 0 0 1 0 1c-.4.7-2 .9-2.8 1.2l-3.8 2a5 5 0 0 1-2.2-.4z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="128.6" stroke-width=".2" d="M331.4 121.4s-.1 2.3-1 2.8a2 2 0 0 1-1.5.3 2 2 0 0 1-.8-1.1l-.3-1-2.3-.7a13 13 0 0 0-3.3.6 8 8 0 0 1 2.4-3l3.8-.3z"/>
+ <path fill="gold" d="M341.4 106.5c1-.1 3.2-.6 4-1.2l1.2-1.3q0 3-3.6 4.4a13 13 0 0 1-5.9.7l-3.5-.8c1.3 1.5.6 2.4-1 3 0 0 .3-1.3-.2-1.5-1-.4-2.2.2-3.4.8a7 7 0 0 1-2.8.6 9 9 0 0 1-3.4-.5c-.8-.2-2.2-1.3-2.7-1.2-1.3.3-2.8.4-3.5 1.4a1 1 0 0 0 0 1.2 4 4 0 0 0 2.5 1.3q4 .9 8 .3c2.8-.4 6.2-1.2 9-1.7l8.8-2a33 33 0 0 1 8.4-.7c5 0 6.6 2.5 6.5 5.1-.2 2.8-3.2 4-5.8 4.8-4.6 1.4-10.8.6-14.7.5l1.9 1.4c.7.6 1 1.7 2 2 1.1.3 3-.4 4.2-.5l4.8.1q.4-.5 1.2-.8h1q1 .3.8 1.9l.9.5c.6.2 1.3 0 1.7.2l1.5.6-1.5.6-.6.6 2 .3q.5.3 1 1H359l-.8.7s1.6-.1 2.2.3l1 1-1.2.2-.8.3 1.6 1.1.5 1.6-1-.6h-.8l.2 2.1c0 .5.8 1.1 1 1.5q.3.8-.2 1.2a2 2 0 0 1-2 .6l-1-.6-.8 1q-.5.5-1.3.3a2 2 0 0 1-1.3-.4l-.6-1.5-1.5.3a2 2 0 0 1-1.4-.7 2 2 0 0 1 .2-1.7c.4-.5 1.6-.5 2.2-.8l1.4-1.2-3.5-2.9-1.6-2-4.5 1a25 25 0 0 1-6 0c-4.6 0-7.6-6.3-11.7-7.8a5 5 0 0 0-3.2 0c-4.8 1-9.9 6.4-14.6 7.6a44 44 0 0 1-6 .7 5 5 0 0 1-1.3 1.6q-1.2.5-2.4.5l-1 2.1a7 7 0 0 1-2 1.3q.5-1.2 0-2.2l-1.3 1.9-2 1.1c0-.6.3-1.3 0-2l-1.3 1.7q-.8.7-1.9 1a2 2 0 0 0 0-2.2l-1.1 1.7-2.4 1.3q.5-1.2.3-2.2H286c-1.3 0-1.4 1.1-2.1 1.7a3 3 0 0 1-2.2.4c-.9-.4-1.7-1.4-.6-3-1.9.3-2.8-.9-2.8-2 0-.9.3-1.8 2.2-1.7l-.2-1.3a1.4 1.4 0 0 1 1.5-1q.6-.1 1.1.4c.4.4.5 1 1.2 1.6a6 6 0 0 0 2.6.4 48 48 0 0 1 5.8-2.6c1.3-.4 4.8-1 4.8-1v-8.7h3.1c2.6 0 9.3 1 9.3 1l4.8-.3s8-1.2 12-1.6a39 39 0 0 1 5.7-.2c3 .1 5.4.8 8.1 1q3.2.3 6.2.2c3.3-.1 9.2 0 11-3a2 2 0 0 0-.4-2.3 3 3 0 0 0-3-.8c-.6.1-1.5.6-1.5 1.2q-.1.6.2 1.1l1 .8a4 4 0 0 1-2-.3 6 6 0 0 1-1.3-2.1 2 2 0 0 0-.5 1.4 2 2 0 0 0 .7 1.6 4 4 0 0 1-2.3-.8l-.9-2.1a2 2 0 0 0-.8 1.5q.1.8.6 1.6a5 5 0 0 1-2-1.1 6 6 0 0 1-.9-2.1l-8.5 1.6a101 101 0 0 1-9 1.6q-6.7.9-10.8-.8-2.1-.7-2.6-2.4a3 3 0 0 1 .8-2.7 9 9 0 0 1 4.8-2.4 73 73 0 0 1 8.4-1.6 32 32 0 0 1 9 .5c1.4.1 2.8-.2 3.2-.6s1-.8.2-1.8q1.1 0 1.6 1.2c.3.4 0 1.6 0 1.6z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="128.6" stroke-width=".2" d="M341.4 106.5c1-.1 3.2-.6 4-1.2l1.2-1.3q0 3-3.6 4.4a13 13 0 0 1-5.9.7l-3.5-.8c1.3 1.5.6 2.4-1 3 0 0 .3-1.3-.2-1.5-1-.4-2.2.2-3.4.8a7 7 0 0 1-2.8.6 9 9 0 0 1-3.4-.5c-.8-.2-2.2-1.3-2.7-1.2-1.3.3-2.8.4-3.5 1.4a1 1 0 0 0 0 1.2 4 4 0 0 0 2.5 1.3q4 .9 8 .3c2.8-.4 6.2-1.2 9-1.7l8.8-2a33 33 0 0 1 8.4-.7c5 0 6.6 2.5 6.5 5.1-.2 2.8-3.2 4-5.8 4.8-4.6 1.4-10.8.6-14.7.5l1.9 1.4c.7.6 1 1.7 2 2 1.1.3 3-.4 4.2-.5l4.8.1q.4-.5 1.2-.8h1q1 .3.8 1.9l.9.5c.6.2 1.3 0 1.7.2l1.5.6-1.5.6-.6.6 2 .3q.5.3 1 1H359l-.8.7s1.6-.1 2.2.3l1 1-1.2.2-.8.3 1.6 1.1.5 1.6-1-.6h-.8l.2 2.1c0 .5.8 1.1 1 1.5q.3.8-.2 1.2a2 2 0 0 1-2 .6l-1-.6-.8 1a2 2 0 0 1-1.3.5 2 2 0 0 1-1.3-.6l-.6-1.5-1.5.3a2 2 0 0 1-1.4-.7 2 2 0 0 1 .2-1.7c.4-.5 1.6-.5 2.2-.8l1.4-1.2-3.5-2.9-1.6-2-4.5 1a25 25 0 0 1-6 0c-4.6 0-7.6-6.3-11.7-7.8a5 5 0 0 0-3.2 0c-4.8 1-9.9 6.4-14.6 7.6a44 44 0 0 1-6 .7 5 5 0 0 1-1.3 1.6 7 7 0 0 1-2.4.5l-1 2.1a7 7 0 0 1-2 1.3q.5-1.2 0-2.2l-1.3 1.9-2 1.1c0-.6.3-1.3 0-2l-1.3 1.7q-.8.7-1.9 1a2 2 0 0 0 0-2.2l-1.1 1.7-2.4 1.3q.5-1.2.3-2.2H286c-1.3 0-1.4 1.1-2.1 1.7a3 3 0 0 1-2.2.4c-1-.4-1.7-1.4-.6-3-1.9.3-2.8-.9-2.8-2 0-.9.3-1.8 2.2-1.7l-.2-1.3a1.4 1.4 0 0 1 1.5-1q.6-.1 1.1.4c.4.4.5 1 1.2 1.6a6 6 0 0 0 2.6.4 48 48 0 0 1 5.8-2.6c1.3-.4 4.8-1 4.8-1v-8.7h3.1c2.6 0 9.3 1 9.3 1l4.8-.3s8-1.2 12-1.6a39 39 0 0 1 5.7-.2c3 .1 5.4.8 8.1 1q3.2.3 6.2.2c3.3-.1 9.2 0 11-3a2 2 0 0 0-.4-2.3 3 3 0 0 0-3-.8c-.6.1-1.5.6-1.5 1.2a1 1 0 0 0 .2 1l1 .9a5 5 0 0 1-2.2-.4 4 4 0 0 1-1.1-2 2 2 0 0 0-.5 1.4 2 2 0 0 0 .7 1.6 4 4 0 0 1-2.3-.8l-.9-2.1a2 2 0 0 0-.8 1.5q.1.8.6 1.6a5 5 0 0 1-2-1.1 6 6 0 0 1-.9-2.1l-8.5 1.6a101 101 0 0 1-9 1.6q-6.7.9-10.8-.8-2.1-.7-2.6-2.4a3 3 0 0 1 .8-2.7 9 9 0 0 1 4.8-2.4 73 73 0 0 1 8.4-1.6 32 32 0 0 1 9 .5c1.4.1 2.8-.1 3.2-.6s1-.8.2-1.8q1.1 0 1.6 1.2c.3.4 0 1.6 0 1.6z"/>
+ <path fill="gold" d="M307 118.8c1 .6 2-.2 2.3-.2l-.8-1.2-.3-1.8c0-1.6.5-1.8.6-1.6l1.4-.8q.6-.5.8-1.3l-.2-1.9c-1.5 0-1.8.2-2.2.6l-.3-1.5-.5-1.2-.6-.5q0 .7-.6 1l-.4-2a1.6 1.6 0 0 0-2.6-.8l-1.6 1.5.2-1.2-.8.2-1 .7-1.1 1.1q.2-.8-1.6-1.7l-1.1 1.6a2 2 0 0 0-.1 1.4l.8 1.4c.1 0 .5.4-.4 1.7l-1.2 1.4q-.6.5-1.3.5c.4.8.5 1.2 1.8 1.4-3 2-3.2 5.4-1 8.3q.3-.8.9-1.4a4 4 0 0 0 .8 2.5c.3.3.5 1.8.8 2.3l1 1s.3-1.3.9-1.5l2-.6a7 7 0 0 0 2-1.7l-.3 1.8q5.5-2.1 3.7-7.5"/>
+ <path fill="#504416" d="M299.6 114a8 8 0 0 1-.8 4l2.6 1 2.4.2c-.2-1 .8-3 1.2-3.6h-1.7l-.8-.8-1.5.3-1.4-1z"/>
+ <path fill="#fff" d="M300 114.7a3 3 0 0 0 0 1.9l.7-1.6zm3.6 1.1-.2 1.7a3 3 0 0 0 1-1.6h-.8zM300 117a3 3 0 0 0-.9 1.6l.7.1zm3.2 1-.8 1.5.7.3a3 3 0 0 0 0-1.9zm-2.9-8.2q-.7 0-.9.4-.1.8 1 1.3a1.3 1.3 0 0 0 1.6-.6q0-.8-1.1-1zm5.2 1.4q-.5 0-.8.4a1.3 1.3 0 0 0 1 1.4q1.3.4 1.5-.5.3-.8-1-1.1l-.8-.2z"/>
+ <path fill="#d1b948" d="M300.3 109.6h-.4l-.5.6q-.1.5.1.8.3.5.8.6a1.4 1.4 0 0 0 1.8-.8l-.3-.6-1-.5zm0 .2.5.1.8.4a.4.4 0 0 1 .2.5 1 1 0 0 1-1.4.6l-.7-.4-.2-.7.4-.4zm5.2 1.3h-.2l-.7.5a1.4 1.4 0 0 0 1.2 1.6h1q.4-.3.6-.7l-.3-.8-.8-.4zm0 .3.7.1q.4 0 .8.4l.1.6-.5.4h-.8a1 1 0 0 1-1-1.2q0-.4.5-.3z"/>
+ <path fill="gold" d="M300.4 108.6a1 1 0 0 0-1 .3c-.2.1-.2.6-.2.6h.6l.5.2 1.3.5h1.4l-1.2-.6c-.4-.2-.8-.9-1.4-1m6.6 2c-.4-.2-1 .1-1.5 0l-1.3-.1 1.2.8 1.4.2.6.2.4.2.2-.5a1 1 0 0 0-1-.8m-8 7.4c-1.4 3.2 3.8 4.8 4.6 1.3a11 11 0 0 1-4.6-1.3"/>
+ <path fill="#806600" d="M298.8 117.6v.3a3 3 0 0 0 0 2.3 2.6 2.6 0 0 0 5-.8v-.3h-.2a10 10 0 0 1-4.6-1.3l-.2-.1zm.2.5a13 13 0 0 0 4.5 1.2 3 3 0 0 1-1 1.7 3 3 0 0 1-2 .2 3 3 0 0 1-1.6-1.4 3 3 0 0 1 0-1.7z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="128.6" stroke-width=".2" d="M301.1 115.2a14 14 0 0 0-.8 6.7c1.6-1.6 2.4-4 2.9-6.1l-.5-.4-.3-.5-.7.3z"/>
+ <path fill="gold" d="m305 105.4-1.4.2-1.6 1.5v-1.2l-.6.2-1.2.7-1 1c.6 0 1.7-1 2-.8.4 0 0 1 .5 1s.9-.6 1.5-1.1q.9-.8 1.6-.7a2 2 0 0 1 .9 1.4q.3 1.3.8 1.8c.3.2.6-.8 1-.7s.6 1.6 1 1.9l-.2-1.5-.6-1.2-.5-.5q-.1.6-.6 1l-.5-2zm-6.3 5.5c-.5.8.2 1.7 1.3 1.9l-.5 1 .7 1.2 1 .4 1.1-.4.7 1 1 .2 1.3-.8.5-.8h.8l.6-.4.2-.8q-1 1-2.4.4a2 2 0 0 1-.4 1.3 1 1 0 0 1-1 .2 2 2 0 0 1-1.1-.9q-.7.4-1.1.4a1.4 1.4 0 0 1-1-1 2 2 0 0 1 .4-1.3c-2.4-.7-1.6-1.3-2-1.6zm-1.2.2-1.8 2.6q-.6.5-1.3.5c.4.8.5 1.2 1.8 1.4-3 2-3.2 5.4-1 8.3q.3-.8.9-1.4a4 4 0 0 0 .8 2.5c.3.3.5 1.8.8 2.3l1 1s.3-1.3.9-1.5l2-.6a7 7 0 0 0 2-1.7l-.3 1.8c3.9-1.3 4.8-4 3.7-7.5 1 .6 2-.2 2.3-.2l-.8-1.2-.3-1.8v-1.1l-.6 1.6v1.7l-1.8-.8q.5 1.8.8 3.7 0 1.3-.5 2.5l-1.6 1.7.3-2.3-.3-2.8-.8 2.7-1.2 2c.1-2 0-2.2-.2-2.9 0 0-.5 2.5-1.3 3.6l-1.6.7-.7.6-.6-1.7-1.2-2.2c-.3-1.2 1.2-3.6 1.2-3.6q-.9.2-1.7 1.4l-1.3 1.6-.5-2.2q0-1.2.7-2.1c.6-1 3.3-3 3.3-3a4 4 0 0 1-2.8 0l1.2-1.7a4 4 0 0 0 .5-1.9m5 1.1h-1.2v.5l.5.3.8 1 1.6-.5.3-.4-1.5-.8z"/>
+ <path fill="none" stroke="#806600" stroke-miterlimit="128.6" stroke-width=".2" d="M307 118.8c1 .6 2-.2 2.3-.2l-.8-1.2-.3-1.8c0-1.6.5-1.8.6-1.6l1.4-.8q.6-.5.8-1.3l-.2-1.9c-1.5 0-1.8.2-2.2.6l-.3-1.5-.5-1.2-.6-.5q0 .7-.6 1a4 4 0 0 0-1.6-3q-1.8.1-3 1.7v-1.2l-.6.2-1 .7-1.1 1.1q.2-.8-1.6-1.7l-1.1 1.6a2 2 0 0 0-.1 1.4l.8 1.4c.1 0 .5.4-.4 1.7l-1.2 1.4q-.6.5-1.3.5c.4.8.5 1.2 1.8 1.4-3 2-3.2 5.4-1 8.3q.3-.8.9-1.4a4 4 0 0 0 .8 2.5c.3.3.5 1.8.8 2.3l1 1s.3-1.3.9-1.5l2-.6a7 7 0 0 0 2-1.7l-.3 1.8q5.5-2.1 3.7-7.5z"/>
+ <path fill="#806600" d="M297.7 107.2a3 3 0 0 0-.5 1.6l.9 1.6.5-2.2c-.1-.4-.8-1-.8-1zm2 2-.3.2q-.4 0-.4.4l.7-.2h.2l1.2.6h1.9l-.3.8-.9.4-.4.4-.2.4v.6h.2a1 1 0 0 1 .8.9l.2.2.2.1h.4a1 1 0 0 1 1.2-.3h.1l.1-.1.3-.6v-.4l-.2-.4c0-.4-.3-1-.3-1l.1-.8 1.5 1.1 1.3.1q.3 0 .3.2l.4.5-.1-.8-.5-.2-1.3-.1-1.4-1-.2-.2-.1.2a2 2 0 0 0-.4 1.2l.4 1 .2.7-.2.3a2 2 0 0 0-1.5.4h-.1a3 3 0 0 0-1.2-1.3v-.3l.2-.1q0-.3.3-.3l.9-.8q.3-.4.4-1v-.3h-.3l-1.6.1-1.2-.5h-.3zm-.9 1.4a2 2 0 0 0-.2 1.6q.4.6 1 .8v.1l-.2.8q.1.9.8 1.3.5.5 1.2.4l.8-.2.5.6q.6.4 1.3.3a2 2 0 0 0 1.6-1.4v-.2a2 2 0 0 0 1.4-.1 2 2 0 0 0 .6-1.5c-.3.3 0 .8-.8 1.3q-.6.3-1.1 0l-.4-.3v.9l-.3.5-1 .6a1 1 0 0 1-1-.3l-.4-.7-.2-.5-.2.3-.4.2-.5.2q-.6 0-.8-.3a2 2 0 0 1-.7-1.2v-.5q0-.3.3-.4l.1-.3h-.4a1 1 0 0 1-1-.5c-.5-.7 0-1 0-1.5m11.4.2s-1 0-1.2.4l-.8 2 1.6-.7q.4-.9.4-1.6z"/>
+ <path fill="#2b2200" d="M300.8 110a.5.5 0 0 0-.2 1.1.5.5 0 1 0 .1-1zm5.1 1.6a.5.5 0 0 0-.1 1 .5.5 0 1 0 .1-1"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="128.6" stroke-width=".2" d="M281 127.6c-.5.2-1.2-.2-2.5 1a2 2 0 0 1 2.2.8 1 1 0 0 0 .8-.5 1 1 0 0 0-.5-1.3zm32.3 1.5c-.5.2-1.1-.2-2.5 1a2 2 0 0 1 2.2.9q.7 0 .8-.6a1 1 0 0 0-.5-1.3zm-34.7 1.8c-.4.3-1.2.2-2 1.8a2 2 0 0 1 2.4 0q.6-.2.6-.8a1 1 0 0 0-1-1zm35.2 2.5c-.3.4-1 .4-1.8 2a2 2 0 0 1 2.4-.2 1 1 0 0 0 .6-.8 1 1 0 0 0-1.2-1zm-32.8 1.4-.5.2c-.2.4-.9.8-.8 2.5a2 2 0 0 1 2-1.2 1 1 0 0 0 .1-1 1 1 0 0 0-.8-.5zm70.2.2h-.4c-.2.6-1 .8-1 2.6a2 2 0 0 1 2.1-1q.4-.5.3-1a1 1 0 0 0-1-.6zm-33.4 1.2-.6.3c0 .5-.8.8-.5 2.6a2 2 0 0 1 2-1.4 1 1 0 0 0 0-1 1 1 0 0 0-.9-.5zm41.6.2a1 1 0 0 0-1 .6c.2.4-.2 1 .9 2.5a2 2 0 0 1 1-2.1 1 1 0 0 0-.5-1zm-4.4.5-.8.4c0 .5-.6 1 .1 2.6a2 2 0 0 1 1.6-1.7q.1-.7-.2-1z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="103.2" stroke-width=".2" d="m303.1 158.7-1.7-.3-1.2-1.4h-2l-1.6-.8a3 3 0 0 0 1.6-.8l-1.9-.3-1.6-1c.6-.2 1.2-.1 1.6-.7l-1.7-.2-1.5-1a2 2 0 0 0 1.8-.7l-1.8-.1-1.7-1.2a4 4 0 0 0 1.8-.5l-.4-.8c-.4-1-1.4-.7-2-.9a2 2 0 0 1-1.1-1.4c0-.7.3-1.7 1.8-1.6-.8-1 0-2 .9-2.4.8-.2 1.5-.1 2 1.2l1.2-.7a1 1 0 0 1 1.4.6v.9q-.6.5-.8 1.3a4 4 0 0 0 .4 1.9s3 2.4 4.4 3.7c.8.7 2 2.2 2 2.2h3l.3 5z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="103.2" stroke-width=".2" d="M294.8 142q.8 1 .5 2l.8.2a1 1 0 0 0 .5-1c-.4-.2-.4-.8-1.8-1.1zm-3.4.5h-.8a2 2 0 0 1 1.2 1.6l.8-.1a1 1 0 0 0 0-1.1c-.3 0-.5-.4-1.2-.4zm-1 3.2a3 3 0 0 0-2 .6 2 2 0 0 1 1.7.8q.4.1.6-.4a1 1 0 0 0-.3-1z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="103.2" stroke-width=".2" d="M318 161c-.6-.1-1.3-.8-1.8-.8a2 2 0 0 0-1.3.8 1 1 0 0 0 .3 1.2l1 .6-.7 1.2q0 .5.4.9.3.5.9.6l1.1-.1q0 .5.2.8a2 2 0 0 0 1.6.8q.5.2.9-.4.1-.6.5-1.4l1.4-1.3q.8.6.5 1.5l1.2-1q.4-.6.4-1.4.8.7.6 1.6l1.2-1 .6-1.4q.7.7.4 1.6l1.3-1.2.3-1.2q2 0 2.1-1 .1-.8-1.4-1.2l-.5-1v-.8a4 4 0 0 1 1.2-1.5l2.2-1.3-.5-2.1-5-.8-5.7 1.4c1 .4 3.4 2 3.2 2.7l-.8.8q-.2.2.1.8.6.2 1 .6v.8c-.3.5-1.6.7-2.3 1-1 .4-3 1.6-3 1.6l-1.7-.4z"/>
+ <path fill="gold" stroke="#806600" stroke-miterlimit="103.2" stroke-width=".2" d="M328 154.2s0 1.9-.7 2.3q-.6.4-1.2.1a1 1 0 0 1-.7-.8l-.2-.8-1.8-.5q-1.4 0-2.7.5a6 6 0 0 1 2-2.5l3-.3 2.4 2z"/>
+ <path fill="gold" d="M333.8 142.2c.8 0 2.2-.4 2.7-1l.8-1a4 4 0 0 1-2.3 3.6 7 7 0 0 1-4 .5l-2.4-.5c1 1 .5 1.8-.6 2.4 0 0 .2-1-.2-1.2q-1-.4-2.1.5-.9.5-2 .6a5 5 0 0 1-2.2-.4c-.5-.3-1.4-1-1.7-1-.8.2-2 .3-2.4 1v1a3 3 0 0 0 1.6 1.1q2.7.7 5.3.2 3.1-.6 6.1-1.4c2-.4 4.3-1 5.8-1.5a18 18 0 0 1 5.6-.6c3.2 0 4.4 2 4.3 4.1-.2 2.2-2.2 3.2-3.9 3.8-3 1.1-7.2.5-9.7.4l1.3 1.2c.4.4.6 1.4 1.2 1.6.8.2 2-.3 2.8-.4h3.2l.8-.6h.8q.5.2.4 1.5l.6.5h1.1l1 .6-.9.4-.5.6 1.3.1.8.8-.8.1-.6.6s1-.1 1.5.2l.6.8h-.8l-.5.4 1 .9q.3.6.3 1.3l-.6-.5-.6-.1.2 1.8c0 .4.6.8.7 1.2q.2.5-.2 1-.4.7-1.3.4l-.7-.4-.4.8q-.4.3-1 .2l-.7-.4-.5-1.2-1 .3q-.6 0-1-.6a1 1 0 0 1 .2-1.3q.6-.5 1.5-.6l1-1-2.5-2.4-1-1.6s-2 .8-2.9.8a14 14 0 0 1-4 0c-3.1 0-5.1-5-7.8-6.2a3 3 0 0 0-2.1 0c-3.2.7-6.6 5.1-9.6 6l-4 .6-.9 1.3-1.6.3-.6 1.8-1.3 1a3 3 0 0 0 0-1.7l-1 1.4-1.3 1a2 2 0 0 0 0-1.6l-.8 1.3-1.3.8a2 2 0 0 0 0-1.7l-.7 1.3-1.6 1a3 3 0 0 0 .2-1.8h-.8c-1 0-1 1-1.4 1.5a2 2 0 0 1-1.5.3q-1.1-.4-.4-2.3a1.6 1.6 0 0 1-1.9-1.6q-.1-1.4 1.5-1.5v-1q.1-1 .8-.9.5 0 .8.4t.8 1.2a3 3 0 0 0 1.7.4l4-2.1 3.1-.8v-7h2q3.2.3 6.2.9l3.2-.3s5.4-1 7.8-1.2q2-.4 3.9-.3c1.9.2 3.6.8 5.4.8q2 .4 4 .3c2.3-.2 6.2 0 7.4-2.4a2 2 0 0 0-2.3-2.6q-.8.3-1 1 0 .5.2.8t.7.8a2 2 0 0 1-1.4-.4l-.9-1.6-.3 1.2q0 .6.4 1.2a2 2 0 0 1-1.5-.7l-.6-1.6q-.4.5-.4 1.1 0 .8.3 1.4a3 3 0 0 1-1.4-1l-.5-1.6-5.6 1.3-6 1.3q-4.4.6-7.2-.7a3 3 0 0 1-1.6-2 3 3 0 0 1 .5-2.1 6 6 0 0 1 3.2-2l5.5-1.2a18 18 0 0 1 6 .3q1.2.3 2-.4a1 1 0 0 0 .2-1.4q.8.1 1 1z"/>
+ <path fill="gold" d="m337.4 140.2-1.6 2.1a7 7 0 0 1-3 1.1 11 11 0 0 1-3-.2l-2.8-.9.8 1.8-1.6-.1-1.6.8q-1.4.2-2.4-.2c-.8-.1-1-.4-1.7-.3l-.7.3 2.1 1.2 2 .3 1.3-.3 1.4-.8 1.2-.1.3.5v.8l.8-.8.1-.5-.2-1 1.6.3 1.8.2 2-.4 1.8-.8.9-1.1zm5.2 5.4-1.3.5a2 2 0 0 0-.6 1.7l-.8-2.1c-.8.8-.8 1.8-1 2.7l-.8-2.5a5 5 0 0 0-1.4 2.3 5 5 0 0 1-.5-2h-.2c-2.6.4-8.2 2.3-12.6 2.7-2.4.2-5.2 0-6.7-1a3 3 0 0 1-1.3-2l-.2 1 .8 1.3 1.6 1 3 .7 3.4-.4 2-.1 10-2.4v1.3l.8.8.8.5-.2-1.1v-.8l.4-.5.5 1.4.7.6 1 .2-.5-.7v-.9l.3-.8.5 1.3.5.5h1.3l-.8-.7-.2-.8.6-.7 1.1-.3 1 .4.6.7.2 1-.1.8c1.7-1.6 0-3.6-2-3.6zm3.4 1.6a5 5 0 0 1-1.1 2.8c-3 3.3-9.8 2.2-13 1.1l-1.4-.2-.8-.3-2-.3-3.9.3c-2.4.2-7.8 1.2-7.8 1.2l-3.2.3a46 46 0 0 0-6.2-.8h-2v1.1l2.8.6h-.4l-1.9 3.6-.4-1.6-.1 2.5-.4.7-2.4.6-2.4 1-1.8 1.4-1.8-.5-.8-1.3q.2 1 .7 2c.5.5 2 .6 2 .6l3.3-2 1.6-.6a4 4 0 0 0 1.6 1.2c0-1.6 1-1.6 2.4-2.4v1s2.7-1 3.4-1.8a5 5 0 0 0 1.1-1.9 5 5 0 0 0 .1-2.1h1.8c2.7-.1 5.6-1.3 8.2-1.6 2-.4 4.5-.8 6.4-.4 1.6.3 2.2 1 3.6 2 1.2.8 2.4 3.2 4 3.2 0 0 .9 0 1.4-.2l2-.5 2.4.2c.7-1 1-1 1.2-.8q.6.4.1 1.3a2 2 0 0 0 1.9.8q-.7.6-1 1.3a3 3 0 0 1 1.7.3l-.8 1.2 1.6.3q-.7.3-.8.8l1.3 1q-.8 0-1 .3l.9 1.7-.2-1.6.6.2q.4 0 .6.5l-.2-1.3-1-.9.4-.3h.8l-.6-.9c-.4-.3-1.5-.2-1.5-.2l.6-.6h.8l-.8-.9-1.3-.1.5-.6.9-.4-1-.6h-1.1l-.6-.5q.1-1.2-.4-1.5h-.8q-.6.2-.8.7h-3.2c-.8 0-2 .5-2.8.3-.6-.2-.8-1.2-1.2-1.6l-1.3-1.2h2.9l3 .2h1.8c2.2-.6 4.7-1.2 5.7-3.8v-2zm-22.4 5.1a6 6 0 0 0-2.4.5 30 30 0 0 0-5.1 3.5l-3.2 2a18 18 0 0 1-4.6.6s-.4 1.6-1 1.9c-.4.3-1.5-.3-1.5-.3l-.1 1.3-.5 1.4-.3-1-.8-1-.4 1.4-.9 1.4-.2-.8-.8-1.2-.4 1.4-.5 1-.2-.5-.8-1.2-.7 1.5-.6.8-.2-1.2a1 1 0 0 0-1-.3c-1 .2-1.5 1.2-2.1 2.1q-.4.4-.4 0v-.7l-.7-.3c-.4.3.8-1.2.8-1.2l-1.6-.1c-.4-.1.1 0 .1-.8s-.8-.8-.5-.8l1.3.1s-.4-.4-.2-.8c0-.1.5-.4.6-.8a1 1 0 0 0-.5-1c-.1.4-.8.2-.8.7v1.1q-1.7.1-1.5 1.5a1.6 1.6 0 0 0 2 1.6c-.9 1.2-.3 2 .3 2.3a2 2 0 0 0 1.5-.3c.5-.5.5-1.5 1.4-1.5h.8a4 4 0 0 1-.2 1.9l1.6-1 .8-1.4a2 2 0 0 1 0 1.7l1.2-.8.8-1.4a2 2 0 0 1 0 1.7l1.3-1 1-1.4a3 3 0 0 1 0 1.7l1.3-1 .6-1.7q.8 0 1.6-.4l.8-1.3 4-.5c3.2-1 6.5-5.4 9.7-6.2a3 3 0 0 1 2 0c2.8 1.3 4.9 6.4 7.8 6.4 1.4 0 2.1.3 4 0l3-.9 1 1.6 2.4 2.4-1 1c-.3.2-1.1.2-1.4.6a1 1 0 0 0-.1 1.3q.3.4 1 .6l.9-.3.4 1.2q.4.4.8.5.7.1 1-.4l.4-.8q.3.4.7.5a1 1 0 0 0 1.3-.5c.3-.3 0-1.3-.1-1.7v1.2a.8.8 0 0 0-1.5 0 1 1 0 0 1-.7-.8l-.2 1q0 .4-.3.6c0-1-.7-1-1.2-.8v-1l-1 .5c-.3 0 0-.2-.2-.5 0-.3-.6-.2-.4-.3l1.5-.8 1-1.4-2.5-2.4-1.5-2.4a26 26 0 0 1-4.8 1 7 7 0 0 1-3.4-.4c-1.8-.9-2.8-3.1-4.3-4.3q-1.4-1.4-3-1.9z"/>
+ <path fill="none" stroke="#806600" stroke-miterlimit="103.2" stroke-width=".2" d="M333.8 142.2c.8 0 2.2-.4 2.7-1l.8-1a4 4 0 0 1-2.3 3.6 7 7 0 0 1-4 .5l-2.4-.5c1 1 .5 1.8-.6 2.4 0 0 .2-1-.2-1.2q-1-.4-2.1.5-.9.5-2 .6a5 5 0 0 1-2.2-.4c-.5-.3-1.4-1-1.7-1-.8.2-2 .3-2.4 1v1a3 3 0 0 0 1.6 1.1q2.7.7 5.3.2 3.1-.6 6.1-1.4c2-.4 4.3-1 5.8-1.5a18 18 0 0 1 5.6-.6c3.2 0 4.4 2 4.3 4.1-.2 2.2-2.2 3.2-3.9 3.8-3 1.1-7.2.5-9.7.4l1.3 1.2c.4.4.6 1.4 1.2 1.6.8.2 2-.3 2.8-.4h3.2l.8-.6h.8q.5.2.4 1.5l.6.5h1.1l1 .6-.9.4-.5.6 1.3.1.8.8-.8.1-.6.6s1-.1 1.5.2l.6.8h-.8l-.5.4 1 .9q.3.6.3 1.3l-.6-.5-.6-.1.2 1.8c0 .4.6.8.7 1.2q.2.5-.2 1-.4.7-1.3.4l-.7-.4-.4.8a1 1 0 0 1-1 .3l-.7-.5-.5-1.2-1 .3q-.6 0-1-.6a1 1 0 0 1 .2-1.3q.6-.5 1.5-.6l1-1-2.5-2.4-1-1.6s-2 .8-2.9.8a14 14 0 0 1-4 0c-3.1 0-5.1-5-7.8-6.2a3 3 0 0 0-2.1 0c-3.2.7-6.6 5.1-9.6 6l-4 .6-.9 1.3-1.6.3-.6 1.8-1.3 1a3 3 0 0 0 0-1.7l-1 1.4-1.3 1a2 2 0 0 0 0-1.6l-.8 1.3-1.3.8a2 2 0 0 0 0-1.7l-.7 1.3-1.6 1a3 3 0 0 0 .2-1.8h-.8c-1 0-1 1-1.4 1.5a2 2 0 0 1-1.5.3q-1.1-.4-.4-2.3a1.6 1.6 0 0 1-1.9-1.6q-.1-1.3 1.5-1.5v-1q.1-1 .8-.9.5 0 .8.4t.8 1.2a3 3 0 0 0 1.7.4l4-2.1 3.1-.8v-7h2q3.2.3 6.2.9l3.2-.3s5.4-1 7.8-1.2q2-.4 3.9-.3c1.9.2 3.6.8 5.4.8q2 .4 4 .3c2.3-.2 6.2 0 7.4-2.4a2 2 0 0 0-2.3-2.6q-.8.3-1 1l.2.8.7.8a3 3 0 0 1-1.6-.4l-.7-1.6-.3 1.2q0 .6.4 1.2a2 2 0 0 1-1.5-.7l-.6-1.6q-.4.5-.4 1.1 0 .8.3 1.4a3 3 0 0 1-1.4-1l-.5-1.6-5.6 1.3-6 1.3q-4.4.6-7.2-.7a3 3 0 0 1-1.6-2 3 3 0 0 1 .5-2.1 6 6 0 0 1 3.2-2l5.5-1.2a18 18 0 0 1 6 .3q1.2.3 2-.4a1 1 0 0 0 .2-1.4q.8.1 1 1 .2.5 0 1.1z"/>
+ <path fill="gold" d="M310.2 152.2c.8.4 1.6-.2 1.8-.3l-.6-.8-.3-1.6c0-1.2.5-1.3.5-1.3l1.1-.5q.5-.5.7-1.1l-.2-1.5c-1.2 0-1.5 0-1.8.4l-.2-1.2-.5-1-.4-.3q0 .5-.4.8l-.5-1.6a1.4 1.4 0 0 0-2-.7l-1.2 1.2v-1l-.5.2-.9.6-.8.9q.2-.6-1.3-1.4l-.9 1.2-.1 1.2.7 1.1s.4.4-.3 1.5l-1 1-1 .4c.2.8.3 1 1.3 1.2-2.4 1.6-2.5 4.3-.8 6.6l.8-1.2q0 1.2.7 2c.2.3.3 1.6.6 2l.7.7s.4-1 .8-1.1l1.6-.5a6 6 0 0 0 1.6-1.5l-.2 1.6c3.1-1.2 3.8-3.2 3-6"/>
+ <path fill="#504416" d="M304.2 148.3a6 6 0 0 1-.6 3.1l2 .8 2 .3c-.2-.8.6-2.4 1-3h-1.5l-.6-.6-1.1.3-1.2-.8z"/>
+ <path fill="#fff" d="M304.6 148.8a2 2 0 0 0 0 1.5l.5-1.2zm2.8 1-.1 1.3q.5-.6.7-1.3zm-2.8 1a2 2 0 0 0-.8 1.2h.6l.2-1.3zm2.5.6-.6 1.2.5.3a2 2 0 0 0 0-1.5zm-2.3-6.6q-.6-.1-.7.4-.2.7.8 1a1 1 0 0 0 1.2-.5q0-.6-.8-.8zm4.2 1.2q-.6 0-.7.3a1 1 0 0 0 .8 1.1q1 .3 1.2-.4.3-.7-.8-1z"/>
+ <path fill="#d1b948" d="M304.8 144.8h-.3l-.5.5.2.6q.2.4.6.5a1 1 0 0 0 1.4-.6l-.2-.6-.8-.4zm0 .2h.4l.6.4q.3 0 .2.3-.4.7-1.1.5l-.6-.4-.1-.5.3-.3zm4.2 1h-.2l-.6.3a1 1 0 0 0 1 1.3h.7l.5-.6-.2-.5-.6-.4zm0 .2h.5q.4 0 .7.4v.4l-.4.4h-.6a1 1 0 0 1-.8-1q0-.2.4-.2z"/>
+ <path fill="gold" d="m304.8 144-.8.2v.4h.3l.5.2 1 .5 1.2-.1-1-.5c-.4-.1-.7-.7-1.2-.8zm5.4 1.5H308l1 .6 1 .1.6.2.3.2.1-.4a1 1 0 0 0-.8-.7m-6.5 6c-1 2.6 3.1 4 3.7 1a8 8 0 0 1-3.7-1"/>
+ <path fill="#806600" d="M303.6 151.2v.2a2 2 0 0 0 0 1.8 2.2 2.2 0 0 0 4-.6v-.3h-.2a8 8 0 0 1-3.6-1zm.2.3a11 11 0 0 0 3.6 1 3 3 0 0 1-.8 1.4 3 3 0 0 1-1.6.1 3 3 0 0 1-1.3-1 2 2 0 0 1 0-1.5z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="103.2" stroke-width=".2" d="M305.4 149.2a12 12 0 0 0-.6 5.4 12 12 0 0 0 2.4-5l-.5-.2-.2-.4-.6.2z"/>
+ <path fill="gold" d="m308.6 141.4-1.2.1-1.2 1.2v-1l-.5.2-1 .6-.8.8c.4 0 1.3-.8 1.6-.7.3 0 .1.8.4.8q.4 0 1.2-.8.8-.7 1.2-.6.6.3.8 1.1.2 1.2.6 1.5c.3.1.5-.7.8-.5.4 0 .5 1.3.9 1.4l-.2-1.2-.5-1-.4-.3q-.1.5-.5.8l-.4-1.6zm-5 4.4q-.6 1.1.9 1.6l-.3.8.4 1 1 .2.8-.3.6.8.8.2 1-.7.4-.7h.6l.5-.2.3-.7a2 2 0 0 1-2.1.3l-.3 1-.8.2-.8-.7q-.6.4-1 .3a1 1 0 0 1-.8-.8 1 1 0 0 1 .3-1c-1.8-.5-1.2-1.1-1.6-1.3zm-1 .2-1.6 2-1 .4c.3.8.4 1 1.4 1.2-2.4 1.6-2.5 4.3-.8 6.6l.8-1.2q0 1.2.7 2c.2.3.3 1.6.6 2l.7.7s.4-1 .8-1.1l1.6-.5a6 6 0 0 0 1.6-1.5l-.2 1.6c3.1-1.2 3.8-3.2 3-6 .8.4 1.6-.2 1.8-.3l-.6-.8-.3-1.6v-.8l-.5 1.3v1.3l-1.4-.7.6 3q0 1-.4 2l-1.2 1.4.2-1.8-.3-2.3-.7 2.2-1 1.6c.2-1.6.2-1.7 0-2.4a9 9 0 0 1-1.1 2.9l-1.2.6-.6.5-.5-1.4-1-1.8c-.2-.9 1-2.8 1-2.8q-.6.1-1.3 1.1l-1.1 1.3-.4-1.8a3 3 0 0 1 .5-1.6 17 17 0 0 1 2.7-2.6 3 3 0 0 1-2.3.1l1-1.3q.5-.7.5-1.6zm4 .8h-1v.5l.4.1.6.8 1.4-.4.2-.3-1.2-.6z"/>
+ <path fill="none" stroke="#806600" stroke-miterlimit="103.2" stroke-width=".2" d="M310.2 152.2c.8.4 1.6-.2 1.8-.3l-.6-.8-.3-1.6c0-1.2.5-1.3.5-1.3l1.1-.5q.5-.5.7-1.1l-.2-1.5c-1.2 0-1.5 0-1.8.4l-.2-1.2-.5-1-.4-.3q0 .5-.4.8a2 2 0 1 0-3.7-1v-1l-.5.1-.9.6-.8.9q.2-.6-1.3-1.4l-.9 1.2-.1 1.2.7 1.1s.4.4-.3 1.5l-1 1-1 .4c.2.8.3 1 1.3 1.2-2.4 1.6-2.5 4.3-.8 6.6l.8-1.2q0 1.2.7 2c.2.3.3 1.6.6 1.9l.7.8s.4-1 .8-1.1l1.6-.6 1.6-1.4-.2 1.6c3.1-1.2 3.8-3.2 3-6z"/>
+ <path fill="#806600" d="m302.7 142.9-.5 1.2.8 1.3.4-1.8c0-.3-.7-.8-.7-.8zm1.6 1.6h-.2q-.3 0-.4.5.3 0 .5-.3h.3l1 .5h1.4l-.2.6-.7.4-.2.3-.3.3v.6h.1q.6.2.6.8h.1l.2.1h.5a1 1 0 0 1 1-.2v-.1l.3-.4v-.3l-.1-.4c0-.3-.4-.8-.4-.8q0-.4.2-.7.5.6 1.2.8.5.3 1 .2h.2l.4.6v-.7l-.5-.1-1-.1-1.1-.8-.2-.2-.2.2-.1 1 .2.7.1.6v.2a2 2 0 0 0-1.3.4 2 2 0 0 0-1-1v-.3l.1-.1.3-.3.7-.5.3-.9v-.2h-1.6l-.9-.3h-.2zm-.8 1a1 1 0 0 0-.1 1.3q.3.5.8.6v.2l-.1.6q0 .7.5 1t1 .4l.7-.2.4.4q.5.4 1 .4a1.4 1.4 0 0 0 1.3-1.2v-.1l1.2-.2q.4-.4.4-1.1c-.3.2 0 .6-.6 1h-.9l-.3-.3v.7l-.2.4a1 1 0 0 1-1 .5l-.6-.1-.4-.6v-.4l-.3.2-.3.2h-.4l-.7-.2-.6-.8.1-.5.2-.3.1-.2h-.3a1 1 0 0 1-.8-.5c-.4-.5 0-.8 0-1.2zm9.2.2s-.8 0-1 .3l-.6 1.7 1.3-.7z"/>
+ <path fill="#2b2200" d="M305.1 145.1a.4.4 0 0 0 0 .8.4.4 0 1 0 0-.8m4.2 1.2a.4.4 0 0 0-.1.8.4.4 0 1 0 0-.8z"/>
+ <path fill="#377bc8" stroke="#2c5aa0" stroke-miterlimit="103.2" stroke-width=".2" d="M293.8 159.2c-.3 0-.8-.2-1.6.8a1.4 1.4 0 0 1 1.4.6l.6-.4a1 1 0 0 0-.4-1zm21.4 1.2a3 3 0 0 0-2 .8 2 2 0 0 1 1.8.6l.7-.4a1 1 0 0 0-.5-1zm-23 1.4c-.2.3-.8.2-1.2 1.5a1.4 1.4 0 0 1 1.6 0l.4-.7a.7.7 0 0 0-.8-.8zm23.4 2c-.2.4-.8.3-1.4 1.6a2 2 0 0 1 1.9-.1l.4-.7a1 1 0 0 0-.8-.8zm-21.7 1.2-.4.1a3 3 0 0 0-.5 2q.5-.9 1.3-1l.1-.7zm46.4.1-.2.1a3 3 0 0 0-.7 2 1.4 1.4 0 0 1 1.4-.8l.2-.8zm-21.5 1-.5.1a3 3 0 0 0-.4 2.2 2 2 0 0 1 1.6-1.1v-.8zm27 .1q-.4 0-.6.4-.1 1.3.5 2.1-.1-1 .7-1.7l-.3-.8zm-3 .4-.5.4a3 3 0 0 0 .1 2 2 2 0 0 1 1-1.4l-.1-.8z"/>
+ <path fill="gold" stroke="#806600" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M378.7 21.3V21l.8-1.6a9 9 0 0 0-6.9 2 18 18 0 0 0-2.8 3.7 12 12 0 0 0-.8 3.2l-1.9-1.6-1.3-.4a5 5 0 0 0-3.2 1.5 6 6 0 0 0-1.5 3c-.4 1.6 0 3.2-1 4.6l-1.6 1.8a8 8 0 0 0 2.7.6 4 4 0 0 0 2.8-1.5c.6-.8.9-1.9 1.8-2.5a1 1 0 0 1 1.2-.2c.5.2.6 1.2.4 1.6l-1 3.4-1.8-.4-1.4.8-.6.3h0l1.2 1.8.5.2h0l-.4.2-3.3 1.6-.4.2h0l-2.4.1-1.6-.2-2.4-.8-.7-.4-1.3-1.4a12 12 0 0 1-2.1-4.3 6 6 0 0 0 5-5.7v-.8l-.1-.4-.3-1-.3-.6-.6-1-.4-.4a5 5 0 0 0-3.5-1.7h-1.3a6 6 0 0 0-3.2 1.6 6 6 0 0 0-1.4 2.2l-.2.8-.1 1.3h0a6 6 0 0 0 3.2 5.2l-2.7 2.6a15 15 0 0 1-8.7 4 14 14 0 0 1-10.6-3 12 12 0 0 1-2.3-2.8h1.3l1.6-1.6h.1l-.5-.4-1.2-1h-.5l.4-3.8c0-.6.4-1.6 1-1.6a2 2 0 0 1 1.4.8c.8 1 .4 2.1.8 3.2a5 5 0 0 0 2.4 2.6q1.7.5 3.3.4l-.9-2.4c-.6-1.8.5-3.2.8-5a6 6 0 0 0-.2-3.6 6 6 0 0 0-3-2.8h-1.6l-2.8.8s.8-2.4.5-3.6a15 15 0 0 0-1.6-4.8 23 23 0 0 0-3.5-3.7 23 23 0 0 0-3.5 3.7 15 15 0 0 0-1.6 4.8c-.2 1.2.5 3.6.5 3.6l-2.8-.8H311a6 6 0 0 0-3 2.8 6 6 0 0 0-.2 3.6c.3 1.8 1.4 3.2.8 5l-1 2.4q1.7.1 3.3-.4a5 5 0 0 0 2.4-2.6c.5-1 .2-2.3 1-3.2q.4-.8 1.2-.8c.7 0 1.1 1 1.1 1.6l.4 3.7h-.5l-1.6 1.6 1.6 1.5h1.3a12 12 0 0 1-2.4 2.8 14 14 0 0 1-10.6 3 15 15 0 0 1-8.6-4l-2.6-2.6a6 6 0 0 0 3.4-5.2h0a6 6 0 0 0-1.8-4.2 6 6 0 0 0-3.3-1.6l-.3-.2h-1a5 5 0 0 0-3.4 1.8 7 7 0 0 0-1.3 2l-.3 1v1.2a6 6 0 0 0 4.7 5.7 12 12 0 0 1-2.1 4.3l-1.4 1.4-.8.4-2.3.8-1.6.2-2.3-.1h0l-.4-.1-3.4-1.7-.3-.2h0l.5-.2 1.2-1.8h0l-.6-.3-1.4-.8-1.7.4-1.1-3.3c-.2-.5-.1-1.5.4-1.7a1 1 0 0 1 1.2.2c.8.6 1.2 1.8 1.8 2.5a4 4 0 0 0 2.8 1.5 8 8 0 0 0 2.7-.6l-1.6-1.8c-1.1-1.4-.6-3-1-4.7a6 6 0 0 0-1.5-3 5 5 0 0 0-3.2-1.4l-1.3.4-2 1.6a12 12 0 0 0-.7-3.2 18 18 0 0 0-2.8-3.7 9 9 0 0 0-6.8-2l.7 1.6v.3h.1l8.2 18.4-1.1.2-1.2 2 1.9 1 2.4-.6 2 5.8-2 .2h0c-.4.5-.6.5-.6 1h0q0 .6.4 1h0l.3.2h0l.5.3h1l.2 1.3-.1-.1v2l-1.2 2.6L274 59l.8 2.1.6-.4.1.7h-.3l.5 1h0l-.7.2q-.5.4-.5 1h0q0 .4.3 1h0l.8.5q5.8-.8 12.2-1.3l4-.3q10.6-.6 21.3-.6h13.6c4.3 0 13.3 0 21.4.6l2.2.2 2.3.1 5.3.5 6.4.8h0l.3-.2.7-.7v-.6h0q0-.6-.5-1h0l-.7-.1.2-.9h0l.2-.9.5.4.8-2 2-2.4-1.2-2.8V52h-.2l.3-1.3.9.1h0q.3 0 .4-.2.8-.6.8-1.3h0q0-.5-.6-1h0l-2.3-.2 2.2-5.9 2.5.7 2-1-1.2-2-1.2-.2 8.3-18.3h.1z"/>
+</svg>
diff --git a/apps/web/public/flags/jm.svg b/apps/web/public/flags/jm.svg
new file mode 100644
index 00000000..269df038
--- /dev/null
+++ b/apps/web/public/flags/jm.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jm" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#000001" d="m0 0 320 240L0 480zm640 0L320 240l320 240z"/>
+ <path fill="#090" d="m0 0 320 240L640 0zm0 480 320-240 320 240z"/>
+ <path fill="#fc0" d="M640 0h-59.6L0 435.3V480h59.6L640 44.7z"/>
+ <path fill="#fc0" d="M0 0v44.7L580.4 480H640v-44.7L59.6 0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/jo.svg b/apps/web/public/flags/jo.svg
new file mode 100644
index 00000000..d6f927d4
--- /dev/null
+++ b/apps/web/public/flags/jo.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jo" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="jo-a">
+ <path fill-opacity=".7" d="M-117.8 0h682.6v512h-682.6z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#jo-a)" transform="translate(110.5)scale(.9375)">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#000001" d="M-117.8 0h1024v170.7h-1024z"/>
+ <path fill="#fff" d="M-117.8 170.7h1024v170.6h-1024z"/>
+ <path fill="#090" d="M-117.8 341.3h1024V512h-1024z"/>
+ <path fill="red" d="m-117.8 512 512-256-512-256z"/>
+ <path fill="#fff" d="m24.5 289 5.7-24.9H4.7l23-11-15.9-19.9 23 11 5.6-24.8 5.7 24.9L69 233.2l-16 19.9 23 11H50.6l5.7 24.9-15.9-20z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/jp.svg b/apps/web/public/flags/jp.svg
new file mode 100644
index 00000000..cc1c181c
--- /dev/null
+++ b/apps/web/public/flags/jp.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jp" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="jp-a">
+ <path fill-opacity=".7" d="M-88 32h640v480H-88z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#jp-a)" transform="translate(88 -32)">
+ <path fill="#fff" d="M-128 32h720v480h-720z"/>
+ <circle cx="523.1" cy="344.1" r="194.9" fill="#bc002d" transform="translate(-168.4 8.6)scale(.76554)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ke.svg b/apps/web/public/flags/ke.svg
new file mode 100644
index 00000000..3a67ca3c
--- /dev/null
+++ b/apps/web/public/flags/ke.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ke" viewBox="0 0 640 480">
+ <defs>
+ <path id="ke-a" stroke-miterlimit="10" d="m-28.6 47.5 1.8 1 46.7-81c2.7-.6 4.2-3.2 5.7-5.8 1-1.8 5-8.7 6.7-17.7a58 58 0 0 0-11.9 14.7c-1.5 2.6-3 5.2-2.3 7.9z"/>
+ </defs>
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000001" d="M0 0h640v144H0z"/>
+ <path fill="#060" d="M0 336h640v144H0z"/>
+ <g id="ke-b" transform="matrix(3 0 0 3 320 240)">
+ <use xlink:href="#ke-a" width="100%" height="100%" stroke="#000"/>
+ <use xlink:href="#ke-a" width="100%" height="100%" fill="#fff"/>
+ </g>
+ <use xlink:href="#ke-b" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
+ <path fill="#b00" d="M640.5 168H377c-9-24-39-72-57-72s-48 48-57 72H-.2v144H263c9 24 39 72 57 72s48-48 57-72h263.5z"/>
+ <path id="ke-c" d="M377 312c9-24 15-48 15-72s-6-48-15-72c-9 24-15 48-15 72s6 48 15 72"/>
+ <use xlink:href="#ke-c" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
+ <g fill="#fff" transform="matrix(3 0 0 3 320 240)">
+ <ellipse rx="4" ry="6"/>
+ <path id="ke-d" d="M1 5.8s4 8 4 21-4 21-4 21z"/>
+ <use xlink:href="#ke-d" width="100%" height="100%" transform="scale(-1)"/>
+ <use xlink:href="#ke-d" width="100%" height="100%" transform="scale(-1 1)"/>
+ <use xlink:href="#ke-d" width="100%" height="100%" transform="scale(1 -1)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kg.svg b/apps/web/public/flags/kg.svg
new file mode 100644
index 00000000..e26db953
--- /dev/null
+++ b/apps/web/public/flags/kg.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="flag-icons-kg" viewBox="0 0 640 480">
+ <path fill="red" d="M0 0h640v480H0Z"/>
+ <path fill="#ff0" fill-rule="evenodd" d="m340.7 146.6 2.7-52q0-.4-.4-.5-.3 0-.5.4l-13.3 50.1-.1.5a5.9 5.9 0 1 0 11.6 1.5m14.4 4.4 10.8-51q.2-.3-.3-.5-.3 0-.5.3L344 147.2l-.2.5a5.9 5.9 0 1 0 11.3 3.3m13.5 6.6 18.7-48.6a.5.5 0 0 0-.8-.4L358.2 152l-.2.4a5.9 5.9 0 1 0 10.6 5m12.3 8.7 26-45a.5.5 0 0 0-.7-.6l-34.7 38.6-.3.4a5.9 5.9 0 1 0 9.7 6.6m10.8 10.4 32.8-40.4v-.6h-.7l-40.3 32.6-.4.4a5.9 5.9 0 1 0 8.6 8m9 12 38.7-34.8q.3-.3 0-.7h-.6L394 179l-.4.2a5.9 5.9 0 1 0 7.2 9.3m7 13.3 43.7-28.4a.5.5 0 0 0-.4-.8l-48.4 18.6-.5.3a5.9 5.9 0 1 0 5.6 10.3m5 14.2 47.5-21.2a.5.5 0 0 0-.3-.8l-50.7 10.8-.5.1a5.9 5.9 0 1 0 4 11m2.5 14.9 50.4-13.4q.3-.1.3-.5-.1-.4-.5-.4l-51.8 2.7h-.5a5.9 5.9 0 1 0 2.1 11.6m.3 15 51.8-5.4q.4-.1.4-.5 0-.3-.4-.5l-51.6-5.4h-.5a5.9 5.9 0 1 0 .3 11.8m-2.1 14.8 52 2.7a.5.5 0 0 0 .1-.9l-50.1-13.3-.5-.1a5.9 5.9 0 1 0-1.5 11.6m-4.4 14.4 51 10.8q.3.2.5-.3 0-.3-.3-.5l-47.5-21-.5-.2a5.9 5.9 0 1 0-3.3 11.3m-6.6 13.5 48.6 18.7a.5.5 0 0 0 .4-.8L408 278.2l-.4-.2a5.9 5.9 0 1 0-5 10.6m-8.7 12.3 45 26a.5.5 0 0 0 .6-.7l-38.6-34.7-.4-.3a5.9 5.9 0 1 0-6.6 9.7m-10.4 10.8 40.4 32.8a.5.5 0 0 0 .7-.7l-32.7-40.3-.4-.4a5.9 5.9 0 1 0-8 8.6m-12 9 34.8 38.7a.5.5 0 0 0 .8-.6L381 314l-.3-.4a5.9 5.9 0 1 0-9.3 7.2m-13.3 7 28.4 43.7q.2.3.6.2.3-.2.2-.6l-18.6-48.4-.3-.5a5.9 5.9 0 1 0-10.3 5.6m-14.2 5 21.2 47.5q.1.5.5.3.4 0 .3-.6l-10.8-50.7-.1-.5a5.9 5.9 0 1 0-11 4m-14.9 2.5 13.4 50.4q.1.3.5.3.4-.1.4-.5l-2.7-51.8v-.5a5.9 5.9 0 1 0-11.6 2.1m-15 .3 5.4 51.8a.5.5 0 0 0 1 0l5.4-51.6a6 6 0 0 0-5.9-6.4 6 6 0 0 0-5.9 6.2m-14.8-2.1-2.7 52a.5.5 0 0 0 .9.1l13.3-50.1.1-.5a5.9 5.9 0 1 0-11.6-1.5m-14.4-4.4-10.8 51a.5.5 0 0 0 .8.2l21.1-47.4.2-.5a5.9 5.9 0 1 0-11.3-3.3m-13.5-6.6L252.7 371q-.1.4.2.6t.6-.2l28.3-43.5a6 6 0 0 0-2.3-8.3 6 6 0 0 0-8 2.8m-12.4-8.6-26 45a.5.5 0 0 0 .7.6l34.7-38.6.3-.4a5.9 5.9 0 1 0-9.7-6.6m-10.8-10.4-32.8 40.4v.6q.4.3.7 0l40.3-32.6.4-.4a5.9 5.9 0 1 0-8.6-8m-9-12-38.7 34.8a.5.5 0 0 0 .6.8l44.9-26 .4-.3a5.9 5.9 0 1 0-7.2-9.3m-7-13.3-43.7 28.4a.5.5 0 0 0 .4.8l48.4-18.6.5-.3a5.9 5.9 0 1 0-5.6-10.3m-5-14.2-47.5 21.2q-.5.1-.3.5 0 .4.6.3l50.7-10.8.5-.1a5.9 5.9 0 1 0-4-11m-2.5-14.9-50.4 13.4a.5.5 0 0 0 .2 1l51.8-2.8h.5a5.9 5.9 0 1 0-2.1-11.6m-.3-15-51.8 5.4a.5.5 0 0 0 0 1l51.6 5.4h.5a5.9 5.9 0 1 0-.3-11.8m2.1-14.8-52-2.7a.5.5 0 0 0-.1.9l50.1 13.3.5.1a5.9 5.9 0 1 0 1.5-11.6m4.4-14.4-51-10.8q-.3-.2-.5.3 0 .3.3.5l47.4 21.1.5.2a5.9 5.9 0 1 0 3.3-11.3m6.6-13.5L189 172.7a.5.5 0 0 0-.4.8l43.5 28.3.4.2a5.9 5.9 0 1 0 5-10.6m8.7-12.3-45-26h-.7q-.1.3.1.7l38.6 34.7.4.3a5.9 5.9 0 1 0 6.6-9.7m10.4-10.8-40.4-32.8h-.6q-.3.3 0 .7l32.6 40.3.4.4a5.9 5.9 0 1 0 8-8.6m12-9-34.8-38.7a.5.5 0 0 0-.7.6l26 44.9.2.4a5.9 5.9 0 1 0 9.3-7.2m13.3-7-28.4-43.7a.5.5 0 0 0-.8.4l18.6 48.4.3.5a5.9 5.9 0 1 0 10.3-5.6m14.2-5-21.2-47.5a.5.5 0 0 0-.8.3l10.8 50.7.1.5a5.9 5.9 0 1 0 11-4m14.9-2.5-13.4-50.4q-.1-.3-.5-.3-.4.1-.4.5l2.7 51.8v.5a5.9 5.9 0 1 0 11.6-2.1m15-.3-5.4-51.8a.5.5 0 0 0-1 0l-5.4 51.6v.5a5.9 5.9 0 1 0 11.8-.3m-5.9 6.3a89.2 89.2 0 1 1 0 178.4 89.2 89.2 0 0 1 0-178.4m0 10.7a78.5 78.5 0 1 1 0 157 78.5 78.5 0 0 1 0-157m-65.6 102a155 155 0 0 1 32-44l6 4a155 155 0 0 0-34.1 48.4 70 70 0 0 1-3.9-8.3m71.1-40.6q2.8 2.3 5.4 4.8l5.8-4.5-5.4-4.7zm-11.4-8.7 5.9 4.3 5.9-4.3-5.9-4.3zm.6 18.3 5.3 5 5.3-5-5.3-5zm-11.4-9.3q3 2.2 5.8 4.5l5.4-4.8-5.8-4.4q-2.7 2.2-5.4 4.7m35.2-16.9q-3-2.3-6-4.3l-6.7 4 6 4.3zm10.4 8.6-5.3-4.6-6.4 4 5.5 4.6zm-36-16.6q3.5-2.3 7.1-4.3l7 4.3-7 4zm-11.5 8q3-2.3 6-4.3l6.7 4-6 4.3zM291 215l5.3-4.6 6.4 4-5.5 4.6zm-32.7-10.2a157 157 0 0 1 21.5 10.6 153 153 0 0 0-28.6 37.4 71 71 0 0 1 7-48m6-9.2q13 4.2 25.6 11l-5.3 4.6q-11.6-6.4-23.6-10.8 1.6-2.6 3.3-4.8m7.5-8.3q14.6 4 29.2 11.3l-6 4.2q-13.5-6.7-27.3-11.2zm11-8.4.6.2.8.2q14.8 4 29.7 11.5l-7.4 4.3a187 187 0 0 0-30.2-11.6q3-2.5 6.4-4.6m68.6-3.4-.8.3q-15.4 4.5-30.5 11.8-14.8-7.2-30-11.7l-.5-.1q-.5 0-.8-.3a70 70 0 0 1 62.6 0m12.5 8-.7.2q-15 4.4-29.6 11.4-3.6-2.3-7.4-4.3a145 145 0 0 1 31.3-11.9q3.4 2.2 6.4 4.6m8.5 8q-13.8 4.5-27.2 11.3l-6-4.2q14.5-7.4 29-11.3zm6.7 8.8q-12 4.4-23.6 10.8l-5.3-4.5q12.6-7 25.6-11 1.8 2.1 3.3 4.7m9.7 52.4a153 153 0 0 0-28.6-37.4 157 157 0 0 1 21.5-10.6 70 70 0 0 1 7.1 48m-7 19.1a155 155 0 0 0-34-48.3q3-2.2 6-4.1a157 157 0 0 1 31.9 44 70 70 0 0 1-3.9 8.4m-10.9 15c-8.6-22-20.6-39.9-34.7-54.2l5.6-4.7c14.6 14.4 27 32 35 51.9a71 71 0 0 1-5.9 7m-13.3 10.9-.9-2.5c-7.7-21-18.6-38.2-31.4-52.3l5.3-5.3a151 151 0 0 1 34 55 71 71 0 0 1-7 5m-67.9 4 .9-2.8c6.5-19 16.8-36 29.5-50.3 12.7 14.4 23 31.3 29.5 50.3l1 2.8a70 70 0 0 1-60.9 0m-14.1-9a151 151 0 0 1 34-55l5.3 5.3a158 158 0 0 0-31.4 52.3l-1 2.5a70 70 0 0 1-7-5m-12-13c8-19.9 20.3-37.4 34.9-51.8l5.6 4.7a157 157 0 0 0-34.7 54.2q-3.1-3.4-5.9-7"/>
+</svg>
diff --git a/apps/web/public/flags/kh.svg b/apps/web/public/flags/kh.svg
new file mode 100644
index 00000000..a7d52f2c
--- /dev/null
+++ b/apps/web/public/flags/kh.svg
@@ -0,0 +1,61 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-kh" viewBox="0 0 640 480">
+ <path fill="#032ea1" d="M0 0h640v480H0z"/>
+ <path fill="#e00025" d="M0 120h640v240H0z"/>
+ <g fill="#fff" stroke="#000" transform="matrix(1.2 0 0 1.2 85.6 -522)">
+ <g stroke-linejoin="bevel">
+ <path d="M139 623.5h113.8v43.8H139z"/>
+ <path d="M247 647.6h3.5v16.5H247zm-108-8.1h113.8v5H139zm0-7h113.8v4.6H139z"/>
+ <path stroke-width=".9" d="M139 625.7h113.8v4.3H139z"/>
+ <path d="M169 647.6h3.6v16.5H169zm49 0h3.6v16.5H218zm-78 0h3.5v16.5H140zm7 0h3.5v16.5H147zm7.5 0h3.5v16.5h-3.5zm7.5 0h3.5v16.5H162zm62.8 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6z"/>
+ <path stroke-linejoin="miter" d="M94.5 669.5a9 9 0 0 0 4.4-5.3H292a9 9 0 0 0 4.4 5.3z"/>
+ </g>
+ <path d="M193 556.8s-.1-4.1 2.3-4.2c2.3 0 2.2 4.2 2.2 4.2zm-12.5 54.5v-5.5c0-2.8-2.8-3-2.8-5 0 0-.4-3 .4-4.4 1.1 4 3 3.3 3 1.6 0-1.4-1-2.8-3.3-6.3-.8-1.1-.3-4.6.7-5.9q.4 4.5 2.2 4.5 1.3.1 1.4-2c0-2-1.3-3-2-4.8a5 5 0 0 1 1.1-5.3c.5 3 .4 4.2 1.7 4.2 2.7-.9 0-4.8-.6-5.8-.6-1.1 1-3.4 1-3.4.8 2.7 1 2.9 2 2.6 1.2-.3 1-2-.4-3.4q-1.3-1.6.2-3.3c1 1.9 2.2 1.8 2.3.6l-.8-4.4H204l-.9 4.3c-.2 1.2 1.4 1.5 2.4-.5 1 1 1.1 2.4.2 3.3-1.4 1.4-1.6 3.1-.4 3.4 1 .3 1.2 0 2-2.6 0 0 1.5 1.5 1 3.4-.6 1-3.3 5-.6 5.8 1.3 0 1.2-1.2 1.7-4.2a5 5 0 0 1 1 5.3c-.6 1.8-2 2.8-2 4.8q.2 2.1 1.5 2 1.8 0 2.2-4.5c1 1.3 1.5 4.8.7 6-2.3 3.4-3.4 4.8-3.4 6.2 0 1.7 2 2.4 3-1.6.9 1.4.5 4.4.5 4.4 0 2-2.7 2.2-2.8 5v5.5zm7.2-46-.4-3.1h15.9l-.4 3.1zm1-3.2-.2-2.5H202l-.3 2.5zm2.3-2.6-.3-2.6h9l-.1 2.6zm33 110c-2-.7-5-2.9-5-5v-24.3l2.6-3.4H169l2.5 3.4v24.3c0 2.1-2 4.3-4 5z"/>
+ <path stroke-linejoin="bevel" d="M178.2 647.6h3.6v16.5h-3.6zm30.4 0h3.6v16.5h-3.6z"/>
+ <path d="M168 609.2v27.6h54v-27.6a4 4 0 0 0-2.6 2.8v11.8h-48.7V612s-.6-2-2.8-2.8z"/>
+ <path d="M214.6 669.5c-1.8-.7-5.6-2.9-5.6-5v-27.2c.4-1.5 2.4-2.4 3.7-3.4H177c1.7 1 3.6 1.7 4.3 3.4v27.2c0 2.1-3 4.3-4.8 5z"/>
+ <path d="M219.4 634.2v-19.6h-4.9v-1.9h-38.8v2h-5v19.5zM207 669.5c-1.8-.7-4.3-2.9-4.3-5v-23.2l1.4-2.1h-17.7l1.5 2v23.3c0 2.1-2.6 4.3-4.3 5z"/>
+ <path d="M190.7 639.2h9v30.3h-9z"/>
+ <path stroke-linejoin="bevel" d="M204.4 632.5c0-2 5.8-2.1 8.8-3.8h-36c3 1.7 8.7 1.8 8.7 3.8l1.2 3.9 15 .6z"/>
+ <path d="M211.4 611.3c0-4.9.2-6.7 1.7-6.7V620c-3.7 1.4-6.3 6-6.3 6h-23.2s-2.6-4.6-6.3-6v-15.5c1.8 0 1.8 2 1.8 6.7zm1.7-2c0-5.6 4.9-6.2 4.9-6.2v5c-1.9-.1-2.8 1.6-2.8 4 0 2.5 1.5 2.5 1.5 2.5v14.2h-3.6z"/>
+ <path d="M177.3 609.3c0-5.6-4.9-6.2-4.9-6.2v5c1.9-.1 2.8 1.6 2.8 4 0 2.5-1.5 2.5-1.5 2.5v14.2h3.6z"/>
+ <g fill="none" stroke-width=".8">
+ <path d="M186.8 570.6H204m-19.2 5.4h21m-23 6.5h24.9m-27 7.9h29.5m-30.2 9h30.4"/>
+ <path stroke-width="1" d="M170.8 629h48.6m-33.2 0h18v6.6h-18z"/>
+ </g>
+ <path d="M184 614.2c3 3.6 2.6 9.7 2.6 13.3H204c0-3.6-.4-9.7 2.6-13.3zm9.7-41-2.4-1.3v-3.5c1 .3 2 .4 2.2 2 .3-2.3 1-2.1 1.9-3 1 .9 1.5.7 1.9 3 0-1.6 1.2-1.7 2.1-2v3.5l-2.3 1.2z"/>
+ <path d="m193.5 578.9-4-2.8V573c1.5.3 3 .5 3.2 2.2.4-2.5 1.3-3.7 2.7-4.7 1.3 1 2.2 2.2 2.7 4.7.1-1.7 1.7-1.9 3-2.2v3.2l-3.9 2.7z"/>
+ <path d="m193.2 587.8-4.5-4v-4.7c1.6.4 3.4.6 3.6 3.1.5-3.5 1.5-5.4 3-6.8 1.6 1.4 2.6 3.3 3.2 6.8.2-2.5 2-2.7 3.6-3.1v4.7l-4.6 4zm8.4 5.3-4 5.7h-4.7l-4.1-5.7zm-15.2 9.5q2.9 1.5 3 7.6H201q.1-6.1 3-7.6z"/>
+ <path stroke-linejoin="bevel" d="M204.2 593v-5.6a5 5 0 0 0-3.8 3.3c0-2-2.5-6.3-5.2-8.5-2.7 2.4-5.3 6.4-5.2 8.4q-.8-2.4-3.8-3.2v5.7z"/>
+ <path stroke-linejoin="bevel" d="M205 602.6V597q-3.2.9-4.1 3.3c0-2-2.7-6.3-5.7-8.5-3 2.5-5.8 6.4-5.7 8.5q-.8-2.3-4.1-3.3v5.7z"/>
+ <path stroke-linejoin="bevel" d="M207.4 614.3v-6.6a10 10 0 0 0-5.1 3.8c0-3.5-4-9-7.1-10.7-3.2 1.8-7.1 7.4-7.1 10.7a10 10 0 0 0-5.2-3.8v6.6z"/>
+ <path stroke-linejoin="bevel" d="M206 629v-6.8c-2.4.9-3 3.1-3.8 4.7.3-6.9-3.8-14.2-7-16.1-3.2 1.9-7.4 9.4-7 16-.8-1.4-1.5-3.7-3.8-4.6v6.7z"/>
+ <path d="M204.4 639.2v-6.8c-2.5.6-2.6 1.5-3.4 3 .3-4.1-2.6-8.8-5.8-10.6-3.2 1.8-6 6.5-5.8 10.6-.8-1.5-.9-2.4-3.4-3v6.8z"/>
+ <g id="kh-a">
+ <path d="M99 664.2v-20.4c-.7-2.6-3-5-4.6-5.4v-18l3.7 2 4.3 18.9v23z"/>
+ <path d="M99 664.3v-20.5c-.7-2.6-3-5-4.6-5.4v-19.2c2.5 0 3.7 3.2 3.7 3.2l4.3 18.9v22.9z"/>
+ <path d="M96.3 669.5c1.7-.7 4.2-2.9 4.2-5v-25.6l-1.2-2H143l-1.7 2v25.6a6 6 0 0 0 3.4 5z"/>
+ <path d="M135.8 669.5c-1.7-.7-4.2-2.9-4.2-5v-24.3l3.6-3.4h-29.6l3.6 3.4v24.3c0 2.1-2.5 4.3-4.2 5z"/>
+ <path d="M131.7 669.5c-1.7-.7-4.3-2.9-4.3-5v-22l2.4-3.3H111l2.4 3.3v22c0 2.1-2.5 4.3-4.3 5z"/>
+ <path d="M116 639.2h8.9v30.4h-9z"/>
+ <path stroke-linejoin="bevel" d="M103.7 647.6h3.6v16.5h-3.6zm30.8 0h3.5v16.5h-3.6zm-33.9-27.8h4.4v17h-4.4zm0-3.2h4.3v3.2h-4.3zm35.6 6.9h6.1v13h-6.1z"/>
+ <path d="M104.9 636.6v-29c1.2 0 1.4 4.3 4.2 4.3 1.5 0 1.4-1.8.5-3.2-.7-1.3-1.6-3-.4-6.3.9 2.5 3.1 3.3 2.7 1.8-.7-2.7-2.8-3.2-1.2-7.3.5 3.4 2.7 3.3 2.2 1.3-.6-2.3-1.9-3.3-.3-6.5.9 3.7 2 3.5 2 1.2 0-3.4 0-7 4.2-8.3 0 0 .3-3 1.9-3s1.8 3 1.8 3c4.3 1.3 4.2 5 4.2 8.3 0 2.3 1.1 2.5 2-1.2 1.6 3.2.3 4.2-.3 6.5-.5 2 1.7 2.1 2.2-1.3 1.6 4.1-.5 4.6-1.2 7.3-.4 1.5 1.8.7 2.7-1.8 1.2 3.3.3 5-.4 6.3-.8 1.4-1 3.2.5 3.2 2.8 0 3-4.2 4.2-4.2v28.9zM98 614.7v22.1h2.5v-22.1q-1.3-.7-2.5 0z"/>
+ <path d="M98.2 629c3.1 1.6 6.2 3.5 7 7.8h-7zm43.2-6.6v14.4h2v-14.4q-1-.5-2 0z"/>
+ <path d="M143.4 629c-3.1 1.5-6.2 3.3-7 7.7h7zm-20.6-33.7 1.8-1.5v-2q-.8 0-1.5 1a5 5 0 0 0-2.5-3 5 5 0 0 0-2.6 2.9q-.6-.9-1.5-1v2l1.8 1.6z"/>
+ <path d="m123.8 600.2.8-1.9v-2.5q-.8 0-1.5 1a5 5 0 0 0-2.5-3 5 5 0 0 0-2.6 2.9q-.6-.9-1.5-.9v2.5l.8 1.9z"/>
+ <path d="m124 606.8 2.6-3.3v-3.2q-1.3 0-2.2 1.6c-.7-2.3-2-2.7-3.8-3.8-1.9 1-3.2 1.5-3.8 3.7-.8-1.1-1.3-1.4-2.3-1.5v3.2l2.7 3.3z"/>
+ <path d="M124.7 613.3s3.2-2.7 3.3-4.2v-3.5c-1.2.1-2.3.4-3.2 1.9-.8-2.9-2-3.7-4.2-5-2.3 1.3-3.5 2.1-4.2 5-1-1.5-2-1.8-3.3-2v3.6a15 15 0 0 0 3.3 4.2z"/>
+ <path d="M126 625.3s4.4-4.7 4.5-6.6v-5.4q-2.5.2-4.4 3.6-1.3-6.6-5.5-9.8c-3 2.2-4.6 5.3-5.6 9.8q-1.9-3.4-4.3-3.6v5.4c.3 1.9 4.4 6.6 4.4 6.6z"/>
+ <path d="M126 632.4s3.7-3.7 4.5-5.3v-5.4q-2.5.3-4.4 3.5a14 14 0 0 0-5.5-9.2c-3 2.2-4.6 4.7-5.6 9.2q-1.9-3.2-4.3-3.5v5.4c1 1.6 4.4 5.3 4.4 5.3z"/>
+ <path d="M127.5 636.6c-1-4.7-2-8.2-7.1-11.7-5.2 3.5-6.1 7-7.2 11.7z"/>
+ <path d="M130.2 639.2v-6.8c-2.4 1-4.5 2.3-5.3 3.8-.8-3.8-2.5-5.4-4.6-7.7-2.1 2.3-3.5 4-4.4 7.7-.8-1.5-2.9-2.9-5.2-3.8v6.8z"/>
+ </g>
+ <use xlink:href="#kh-a" width="100%" height="100%" transform="matrix(-1 0 0 1 390.7 0)"/>
+ <path d="M72.7 694.3H318v12.5H72.7zm-6.5 12.5h258.3v12.5H66.2zm19.4-31.3H305v8.1H85.6z"/>
+ <path d="M79.2 683.6h232.4v10.6H79.2zm10.2-14.3h212v6.2h-212z"/>
+ <path d="M112.4 669.3h16v50h-16z"/>
+ <path d="M116 669.3h8.9v50h-9zm71 0h16v50h-16z"/>
+ <path d="M190.7 669.3h9v50h-9zm71.5 0h16v50h-16z"/>
+ <path d="M265.7 669.3h9v50h-9z"/>
+ <path fill="none" d="M99 664.2h193M115.8 713h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m65.8 37.5h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m66.2 37.5h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ki.svg b/apps/web/public/flags/ki.svg
new file mode 100644
index 00000000..fda03f37
--- /dev/null
+++ b/apps/web/public/flags/ki.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ki" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ki-a">
+ <path fill-opacity=".7" d="M-86.3 0h682.6v512H-86.3z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#ki-a)" transform="translate(81)scale(.9375)">
+ <path fill="#e73e2d" fill-rule="evenodd" d="M-164.3 0h835.8v306.5h-835.8z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M204.3 282.1c-19.4-15.2-55.6-10-61.6-51.3 27.7 21.5 22.7-1.2 64 19.3z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M209.5 263.4c-13.9-20.4-50-26.6-43-67.7 19.9 28.9 22 5.7 55.2 37.9z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M215.8 250c-5-24.1-36-43.6-13.8-79 7.2 34.4 18 13.8 36.4 56.2z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M230.3 237.6c2.7-24.5-20.8-52.6 11.1-79.4-3.6 34.9 13 18.7 17.5 64.6z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M243.3 227.7c12.4-21.3 2.5-56.5 42.6-67.9-17.6 30.3 4.2 22.3-10.5 66z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M262 230.3c18.6-16.2 20.4-52.8 62-50.9-26.3 23.2-3 22.5-31 59.4z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M278.6 239.9c22.5-10.1 34.9-44.5 74.1-30.5-32 14.5-9.5 20.7-47 47.7z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M292.5 255c24.4-3.4 46-33 79.7-8.4-34.7 4.9-15 17.1-58.5 32.5z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m379.5 259.6-112.1 2.5 4.7 30.2z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m363 218.4-103.8 39.9 17.3 33.3z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m280.6 280.7 53.7-97.6-82.4 76.7z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m279.5 272.6 17.2-109.4-53.8 97.2z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m273 263.7-18-110.2-20 110.7z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m263.7 254.3-52.3-92 20 111.8z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m255.6 253.6-81.1-68.5 57.6 98z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m146 218.9 87 71.9 13.4-37.6z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="m232.1 260.9-102.3-1.5 101.9 34z"/>
+ <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M315.1 279.2a61.4 61.4 0 1 1-122.7 0 61.4 61.4 0 0 1 122.7 0z"/>
+ <path fill="#005989" fill-rule="evenodd" d="M-165.1 303.4h839.9V512h-840z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M-165.6 454c15.6 7.2 38 25.3 62 25.3 40-.3 41-27.4 81.6-26.1 40.7 1 33.3 29.6 88.2 29.5 45.4-.2 60-34.7 99.2-30.6 29-1.5 40.8 32.7 85.3 33.2 46.2 1 63.1-37.3 92-34.1 31 0 41 30.8 84.3 31 55.2.3 64.9-32 99.3-30 24.6-.5 44 23.7 80 24.3 28.6.5 52.7-21.2 69-29l.7-36.8c-17 6.3-42.4 27.1-67.7 27.3-36.6 1.4-59.1-24-84.5-23.7-30.4.3-42.5 31.3-94 31.3-47.2 0-58-31.3-88.4-31.3-29.7.2-38.8 34-90.3 33.4-42-.5-58.3-32.3-88-32-31.5 0-64 30.9-99 29.4-48-2-58.5-29.4-90-29.4-23.5 0-49 25.6-77.3 26-28.2.5-59.9-25.5-62.8-26zm0-73c15.6 7.3 38 25.4 62 25.4 40-.3 41-27.4 81.6-26.2 40.7 1 33.3 29.7 88.2 29.5 45.4 0 60-34.6 99.2-30.5 29-1.5 40.8 32.7 85.3 33.1 46.2 1 63.1-37.2 92-34 31 0 41 30.8 84.3 31 55.2.3 64.9-32 99.3-30 24.6-.5 44 23.7 80 24.3 28.6.5 52.7-21.2 69-29l.7-36.8c-17 6.3-42.4 27-67.7 27.3-36.6 1.3-59.1-24-84.5-23.7-30.4.3-42.5 31.3-94 31.3-47.2 0-58-31.3-88.4-31.3-29.7.2-38.8 34-90.3 33.4-42-.5-58.3-32.3-88-32-31.5 0-64 30.8-99 29.3-48-2-58.5-29.4-90-29.4-23.5 0-49 25.7-77.3 26.1s-59.9-25.5-62.8-26l.4 38.3z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M-165.6 309c15.6 7.2 38 25.2 61.9 25.2 40-.2 41-27.4 81.6-26.1 40.6 1 33.2 29.6 88.1 29.5 45.3-.1 60-34.7 99-30.5 29-1.5 40.8 32.7 85.3 33.1 46.1 1 63-37.3 92-34.1 30.8 0 41 30.8 84.2 31 55 .3 64.7-32 99.2-30 24.5-.5 43.9 23.7 79.8 24.3 28.7.5 52.7-21.2 69-29l.7-36.8c-17 6.4-42.3 27.1-67.7 27.3-36.4 1.4-59-23.9-84.4-23.7-30.3.3-42.4 31.3-94 31.3-47 0-57.8-31.3-88.2-31.3-29.7.3-38.8 34-90.1 33.4-42-.5-58.3-32.2-88-32-31.5 0-64 30.9-98.8 29.4-48.1-2-58.5-29.4-90-29.4-23.5 0-48.9 25.6-77.2 26-28.2.5-59.8-25.4-62.8-26l.4 38.3z"/>
+ <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.8" d="M136.8 76c61-4.2 50-9.4 74.5-13.4 31 4.3 34.5 23 51.8 34.5 0 0-6.5 22-27.7 18.9-2.9-8.8 10.2-11.6-27.5-34.6-22-1.3-61.3 3.9-71-5.4zm189.3 33.9-44 1.8v10.9c29.7 1 35-3 44-12.7z"/>
+ <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-linejoin="round" stroke-width="1.7" d="M174.8 108c7.7-3.9 11.5-2.3 18.2-2.5 4.5 8.3 8.8 9 18.8 10a50 50 0 0 0 39.9 21.8c29.9-.8 39.4-21.7 59.5-24h21.2c-3.5-6-6.3-9.5-14-9.9-15.8-.8-36.2-.4-54 3.6l-25.1 6.3c-7.4-3.6-25.3-22.4-36.8-22-6.7 1.8-6.7 4.1-10 6.7-6.5 2.8-13 1.4-17.7 10z"/>
+ <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M205.1 99a3.2 3.2 0 1 1-6.3 0 3.2 3.2 0 0 1 6.3 0z"/>
+ <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.8" d="M225.6 107.8c44.9-54.1 84.1-47.5 135.3-51.2 1.7 6.3 1 15.7-23.3 24-33.4 5-93.1 40.2-93.4 40.2-11.1-.6-18.9-12.2-18.6-13z"/>
+ <path fill="none" stroke="#d9a43e" stroke-linecap="round" stroke-width="1.8" d="M317.9 72.5 351 74m-36.7 4 24.1 2"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/km.svg b/apps/web/public/flags/km.svg
new file mode 100644
index 00000000..414d65e4
--- /dev/null
+++ b/apps/web/public/flags/km.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-km" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="km-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#km-a)" transform="scale(.9375)">
+ <path fill="#ff0" d="M0 0h768.8v128H0z"/>
+ <path fill="#fff" d="M0 128h768.8v128H0z"/>
+ <path fill="#be0027" d="M0 256h768.8v128H0z"/>
+ <path fill="#3b5aa3" d="M0 384h768.8v128H0z"/>
+ <path fill="#239e46" d="M0 0v512l381.9-255.3z"/>
+ <path fill="#fff" d="M157.2 141.4c-85-4.3-123.9 63.5-123.8 115.9-.2 62 58.6 113 112.8 110C117 353.5 81.2 314.6 81 257c-.3-52.1 29.5-97.5 76.3-115.6z"/>
+ <path fill="#fff" d="m156 197-12-9.3-14.6 4.6 5.2-14.4-8.8-12.4 15.2.6 9-12.3 4.3 14.7 14.4 4.8-12.6 8.5zm-.3 52.1-12-9.4-14.6 4.6 5.3-14.3-8.9-12.4 15.3.5 9-12.2 4.2 14.6 14.5 4.9-12.7 8.5zm.2 52.6-12-9.4-14.5 4.6 5.2-14.3-8.8-12.4 15.2.5 9-12.2 4.3 14.6 14.4 4.8-12.6 8.6zm-.2 53-12-9.3L129 350l5.3-14.4-8.9-12.4 15.3.6 9-12.3 4.2 14.7 14.5 4.8-12.7 8.5z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kn.svg b/apps/web/public/flags/kn.svg
new file mode 100644
index 00000000..47fe64d6
--- /dev/null
+++ b/apps/web/public/flags/kn.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-kn" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="kn-a">
+ <path fill-opacity=".7" d="M-80.1 0h682.7v512H-80.1z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#kn-a)" transform="translate(75.1)scale(.9375)">
+ <path fill="#ffe900" d="M-107.8.2h737.6v511.3h-737.6z"/>
+ <path fill="#35a100" d="m-108.2.2.8 368.6L466.6 0z"/>
+ <path fill="#c70000" d="m630.7 511.5-1.4-383.2-579 383.5z"/>
+ <path fill="#000001" d="m-107.9 396.6.5 115.4 125.3-.2 611.7-410.1L629 1.4 505.2.2z"/>
+ <path fill="#fff" d="m380.4 156.6-9.8-42.2 33.3 27 38-24.6-17.4 41.3 33.4 27-44.2-1.5-17.3 41.3-9.9-42.2-44.1-1.5zm-275.2 179-9.9-42.3 33.3 27 38-24.6-17.4 41.3 33.4 27-44.1-1.5-17.4 41.3-9.8-42.2-44.1-1.5z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kp.svg b/apps/web/public/flags/kp.svg
new file mode 100644
index 00000000..ad1b713f
--- /dev/null
+++ b/apps/web/public/flags/kp.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-kp" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="kp-a">
+ <path fill-opacity=".7" d="M5 .1h682.6V512H5.1z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#kp-a)" transform="translate(-4.8 -.1)scale(.93768)">
+ <path fill="#fff" stroke="#000" d="M776 511.5H-76V.5h852z"/>
+ <path fill="#3e5698" d="M776 419H-76v92.5h852z"/>
+ <path fill="#c60000" d="M776 397.6H-76V114.4h852z"/>
+ <path fill="#3e5698" d="M776 .6H-76V93h852z"/>
+ <path fill="#fff" d="M328.5 256c0 63.5-53 115-118.6 115S91.3 319.5 91.3 256s53-114.8 118.6-114.8 118.6 51.4 118.6 114.9z"/>
+ <path fill="#c40000" d="m175.8 270.6-57-40.7 71-.2 22.7-66.4 21.1 66.1 71-.4-57.9 41.2 21.3 66.1-57-40.7-58 41.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kr.svg b/apps/web/public/flags/kr.svg
new file mode 100644
index 00000000..6947eab2
--- /dev/null
+++ b/apps/web/public/flags/kr.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-kr" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="kr-a">
+ <path fill-opacity=".7" d="M-95.8-.4h682.7v512H-95.8z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#kr-a)" transform="translate(89.8 .4)scale(.9375)">
+ <path fill="#fff" d="M-95.8-.4H587v512H-95.8Z"/>
+ <g transform="rotate(-56.3 361.6 -101.3)scale(10.66667)">
+ <g id="kr-c">
+ <path id="kr-b" fill="#000001" d="M-6-26H6v2H-6Zm0 3H6v2H-6Zm0 3H6v2H-6Z"/>
+ <use xlink:href="#kr-b" width="100%" height="100%" y="44"/>
+ </g>
+ <path stroke="#fff" d="M0 17v10"/>
+ <path fill="#cd2e3a" d="M0-12a12 12 0 0 1 0 24Z"/>
+ <path fill="#0047a0" d="M0-12a12 12 0 0 0 0 24A6 6 0 0 0 0 0Z"/>
+ <circle cy="-6" r="6" fill="#cd2e3a"/>
+ </g>
+ <g transform="rotate(-123.7 191.2 62.2)scale(10.66667)">
+ <use xlink:href="#kr-c" width="100%" height="100%"/>
+ <path stroke="#fff" d="M0-23.5v3M0 17v3.5m0 3v3"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kw.svg b/apps/web/public/flags/kw.svg
new file mode 100644
index 00000000..3dd89e99
--- /dev/null
+++ b/apps/web/public/flags/kw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-kw" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="kw-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#kw-a)" transform="scale(.9375)">
+ <path fill="#fff" d="M0 170.6h1024v170.7H0z"/>
+ <path fill="#f31830" d="M0 341.3h1024V512H0z"/>
+ <path fill="#00d941" d="M0 0h1024v170.7H0z"/>
+ <path fill="#000001" d="M0 0v512l255.4-170.7.6-170.8z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ky.svg b/apps/web/public/flags/ky.svg
new file mode 100644
index 00000000..aeaa7e08
--- /dev/null
+++ b/apps/web/public/flags/ky.svg
@@ -0,0 +1,103 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ky" viewBox="0 0 640 480">
+ <path fill="#006" d="M0 0h640v480H0z"/>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+ <g stroke="#fff" stroke-linejoin="round" stroke-width="9.6" transform="translate(-306.8 -21.2)scale(.87136)">
+ <use xlink:href="#ky-a" width="100%" height="100%"/>
+ <use xlink:href="#ky-b" width="100%" height="100%"/>
+ <use xlink:href="#ky-c" width="100%" height="100%"/>
+ <use xlink:href="#ky-d" width="100%" height="100%"/>
+ <use xlink:href="#ky-e" width="100%" height="100%"/>
+ <use xlink:href="#ky-f" width="100%" height="100%"/>
+ <use xlink:href="#ky-g" width="100%" height="100%"/>
+ </g>
+ <g stroke="#000" stroke-width="1.4" transform="translate(-306.8 -21.2)scale(.87136)">
+ <g id="ky-b" fill="#fcea83">
+ <path d="M754.4 449.6c2.9 7.6 23.5 17.7 47.5 4.8 16.3-9.2 26.8-22 36.9-45 2.8-5.8 4.3-13-2.4-17.3-5.3-3.9-14-8.2-17.8-12l-5.2-4.8q1.5 1.3 2.8 3.3c9.6 11.5-.4 28.3-11 38.4-7.7 7.2-21.5 24.9-41.7 8.1-4.3-3.8-14.4 12-9 24.5zm291.4 0c-3.4 7.6-24 17.7-47.5 4.8-16.2-9.2-26.8-22-37.3-45-2.4-5.8-3.9-13 2.8-17.3 5.3-3.9 14-8.2 17.8-12 1.9-2 3.3-3.4 5.2-4.8q-1.5 1.3-2.8 3.3c-9.6 11.5.4 28.3 10.5 38.4 7.7 7.2 22 24.9 42.2 8.1 4.3-3.8 13.9 12 9 24.5z"/>
+ <path d="M900.1 490.8c38.3 0 97.3-17.3 129-77.7 5.2-10 0-15.3-6.3-18.6a73 73 0 0 1-19.2-14c7.7 7.7 6.2 13 1 21.6-24.5 40.8-58 61.4-104.5 61.4s-80-20.6-104.5-61.4c-5.2-8.6-6.7-13.9.5-21.5a66 66 0 0 1-19.2 13.9c-6.2 3.3-11.5 8.6-6.2 18.6 31.6 60.4 91 77.7 129.4 77.7z"/>
+ </g>
+ <path id="ky-c" fill="#c8102e" d="M811.4 409.8c-1-4.8-7.1-2.9-9 2.9a68 68 0 0 1-6.8-10.6c-5.7-8.6-6.7-14.4 1.5-22.5 3.8-3.8 11.5-8.2 16.7-3.4 11 9.1 5.3 24-2.4 33.6zm176.9 0c1-4.8 7.7-2.9 9.6 2.9q3.7-5 6.7-10.6c5.7-8.6 6.7-14.4-2-22.5-3.3-3.8-11-8.2-16.7-3.4-10.6 9.1-5.3 24 2.4 33.6zm-233.9 39.8c-4.8-7.2-8.6-26-9.6-30.7-1.4-4.3-1.9-8.2 3.4-10 5.3-2 10 4.7 12.4 10.5s6.3 14.3 10.6 24.9c-10.6-6.2-19.2-2-16.8 5.3zm291.4 0c4.3-7.2 8.1-26 9.6-30.7 1-4.3 1.9-8.2-3.4-10-5.3-2-10 4.7-12.4 10.5s-6.3 14.3-10.6 24.9c10.6-6.2 18.7-2 16.8 5.3z"/>
+ <g fill="#00493d" stroke="none">
+ <path d="m782.2 406.4-3.8 2c-1 .4-1 1.4-1 1.9h-.5L775 406h.5c0 .4.5 1 1.4.4l8.2-4.3q1.4-.8.5-1.4l.4-.5 2.4 4.8h-.4c-.5-.5-1-1-2-.5l-3.3 2 1.4 2.8 3.9-1.4c1-.5.4-1.5.4-2h.5l2 4.4c-.5-.5-1-1-2-.5l-8.1 4.3q-1.4.8-.5 1.4l-.5.5-2.4-4.3.5-.5c.5.5 1 1 2 .5l3.8-2zm8.2 6.3q1.4-.6.4-2h.5l4.8 7.2-3.3 2.4v-.4c1.9-1.5 1.9-3.4 1.4-3.9s-1-1-1-1.4c-.4 0-.4-.5-1.4.5l-3.4 2.4c.5.4 1 1.9 3.4.4h.5l-5.3 3.9v-.5c2.4-2 1.4-3.4 1-3.8l-3.4 2.4c-1 .4-1 1-1 1.4.5 0 .5.5 1 1 .5 1 2 1.9 4.3 1l.5.4-3.8 1.4-4.8-7.6h.5c.4.4 1 1 1.9.4zm7.6 18.2-3.3 2.8c-.5.5-.5 1.5 0 2h-.5l-3.4-3.4.5-.5c.5.5 1 1 2 0l6.2-6.2q1.4-.6.4-2l3.4 4q-1-.9-2 0l-2.8 2.8 2.4 2.4 2.9-2.4c1-1 .5-1.4 0-2l.5-.4 3.3 3.8h-.5c-.4 0-1-.4-1.9.5l-6.2 5.8q-1.4 1.3-.5 1.9v.5l-3.3-3.9c.4 0 1.4.5 1.9 0l3.3-3.3zm7.2 10.1 1.5 1.4 1.9-4.3s-1.5.4-3.9 1.9zl-.5.4-1-1c-.4.5-.9.5-1.4 1-1.4 1-1 1.5-.4 2v.4l-2.4-2.4h.4l2-.5 9.5-5.2.5.4s-.5.5-4.8 10.1c0 1-.4 1.4 0 2.4l-3.8-3.3.5-.5q1 1.5 1.9 0c0-.5.5-1.5.5-2l-1.5-1.4.5-.5zm3.8 9.5.5-.5q.6.8 2 0l6.2-8.1-.5-.5c-1-.5-2.4-.5-3.8 1v-.5l1.9-2.4 7.2 5.3-2.4 2.8h-.5c1.4-1.4 1-3.3 0-3.8v-.5l-6.2 8.2c-1 .5-.5 1.4 0 1.9h-.5z"/>
+ <path d="m821.5 452.4-2.4 3.4c-.5 1 0 1.4.5 2l-.5.4-3.8-2.9v-.5q1.3.9 1.9-.4l5.3-7.2q.4-1.4-.5-2l.5-.4 3.8 2.8v.5c-1-.5-1.4-.5-2 .5L822 452l2.9 1.9 2.4-3.4q.4-1.3-.5-1.9l.5-.5 3.8 2.9v.5q-1-.9-2 .5l-4.7 7.6c-1 .5-.5 1 0 1.5v.4l-4.3-2.8h.5q.7.1 1.4-.5l2.4-3.8zm9.6 13.5.5-.5q1 .9 1.9-.5l3.8-8.1c.5-1 0-1.5-.5-2l8.2 3.9-2 3.8-.4-.5c1.4-1.9 0-3.8-.5-4.3-.5 0-1-.5-1.4-.5-.5 0-.5 0-1 1-.5.5-1.9 3.3-1.9 3.3.5.5 1.4 1.5 3.4-1h.4l-2.8 5.8-.5-.4c1.4-3-.5-3.4-1-3.4l-1.9 3.8c-.5 1 0 1.5.5 1.5v.5zm13.9 6.7c-1.4-1-1.4-3.9 0-6.7 1-3 2.9-5.3 4.8-4.4 1.4.5 1 3.4 0 6.3-1.5 3.3-3.4 5.2-4.8 4.8h-.5c3.4 1.4 5.8-.5 7.2-3.9 1.4-2.8 1-6.2-2-7.6-2.8-1.5-5.7.4-7.1 3.8s-1 6.7 2 7.7zm14.8.9 2-5.7q.4-1.4-.5-2l2.4.5v.5c-.5 0-1 0-1.5 1l-1.9 5.7c-1 2.4-2.4 4.3-5.2 3.4-2-.5-3.4-2.9-2.4-5.3l2.4-6.2q.4-1.4-.5-2v-.4l4.3 1.9v.5c-.5-.5-1.4-.5-1.4.5L855 472c-.5 1.9-.5 3.8 1 4.3q2.2.7 3.7-2.9zm4.4-6.2q.1-.6-.5-.5l3.3.5 3 9.1 1.4-5.8q.4-1.3-.5-1.9l2.8.5-.4.5c-.5 0-1 0-1.5 1l-2.4 10.5h-.4l-3.9-11.5-2.4 7.7c0 1.4.5 1.4 1 1.9v.5l-2.9-1v-.5c.5.5 1.4 0 1.4-1l2.4-8.6zm16.3 9.6c-1 4.3-3 5.3-3.9 5.3h-1s-.4-.5 0-1l1.5-9.6c.5-.5.5-1 1-.5h1c.9 0 1.8 2 1.4 5.8l1.4.5c1-4.8-1-6.8-3.4-7.2-1.9-.5-4.8-1-4.8-1v.5c.5.5 1.5.5 1 2l-1.4 8.5q-.8 1.5-1.5 1.5h-.4l4.7 1c2.4.4 4.8 0 5.8-5.3zm4.3-3.9c0-1-1-1.4-1.5-1.4v-.5l8.7 1-.5 3.8c0-2.4-1.5-3.3-2.4-3.3q-.7-.6-1.5-.5c-.4 0-.4 0-.4 1.4l-.5 3.9c.5 0 1.9.4 2.9-2.4l-.5 6.2h-.5c0-2.9-1.4-2.9-2-2.9l-.4 4.3c0 1 0 1 .5 1l1 .5c1.4 0 2.8-.5 3.8-3.4h.5l-1 3.8-9.1-1c1 0 1.4-.4 2-1.3zm15.8 5.8c0 4.3-1.5 5.7-2.9 5.7-.5-.4-.5-.4-1-.4l-.4-.5.5-10q-.1-.7.4-.6h1c1 0 2.4 1.5 2.4 5.8h1.9c0-4.8-2.4-6.2-4.8-6.2-2-.5-4.8-.5-4.8-.5v.5c.5 0 1.5.4 1.5 1.4l-.5 9.1q-.1 1.5-1 1.4v.5h4.3c2.4 0 4.8-1 5.3-6.2h-2zm13.9 3.8c0 1 .5 1 1.4 1v.5l-5.3.4c.5-.4 1.5-1 1.5-1.9l-1-9c-.5-1-1-1-1.9-1v-.5l5.3-.5c-.5.5-1.5 1-1 2zm4.8 1v-.5q.9 0 1-1.4l-2-10h-.5c-1 .4-1.9 1.3-1.4 3.3h-.5l-.5-3.4 8.7-1.4.4 3.3h-.4c0-1.9-1.5-2.4-3-2.4h-.4l2 10q0 1.5 1.4 1.5v.5zm20.6-9.6-2-5.7c0-1-.9-1-1.4-1v-.5l2.4-1v.5c-.5.5-.5.5-.5 1.5l2 6.2c.4 2 .4 4.8-2.4 5.8-2 .4-4.3-.5-4.8-3.4l-2-6.2c-.4-1-.9-1-1.4-1l-.5-.5 4.8-1.4v.5c-.4.5-1 1-.4 1.9l1.4 6.2c.5 2 2 2.9 3.3 2.9 1.5-.5 2-2.4 1.5-4.8m5.3-3.4c2.3-1 1.9-2.3 1.4-3.8-.5-1.4-1.4-2.4-2.4-1.9-.5 0-1 .5-.5 1zl.4.5 1 3.9q1 1.4 2 .4v.5l-4.4 2-.5-.5c1-.5 1-1 1-2l-3.4-8.1c-.5-1.4-1-1-1.9-1v-.4l4.8-2c2-.4 3.8 0 4.8 2q.6 3.4-2.4 4.8c-.5 0-1 .4-1 .4z"/>
+ <path d="M957.1 472c-1.4.6-3.3-1.4-4.8-4.7-1.4-2.9-1.4-5.8 0-6.2 1.5-.5 3.4 1.4 4.8 4.3 1.5 2.9 1.5 5.7 0 6.7 3-1 3.9-4.3 2.4-7.7-1.4-2.9-4.3-4.8-7.2-3.8a5.6 5.6 0 0 0-2.4 7.7c1.5 3.3 4.4 5.2 7.2 3.8zm.5-13.3h-.9l2.8-2 8.7 4.8-3-5.2c-.4-1-1.4-1-1.8-1v-.5l2.4-1c-.5.6-1 1 0 2l4.8 9.6-.5.5-10.6-5.8 3.9 7.2c.4 1 1.4 1 1.9.5v.5l-2.4 1.4v-.5q.7-.7 0-1.9l-3.8-7.7zm21.6 1.4v-.5c0-.5.5-1 0-1.9l-5.8-8.1h-.5c-1 .4-1.4 2.4 0 3.8l-.4.5-2-3.4 7.2-4.8 2 3c-1.5-1.5-3-1.5-3.9-1l-.5.4 5.8 8.2q1 1.4 2 .5v.4z"/>
+ <path d="m984.5 448.6 2.8 3.4c.5.4 1.5.4 2 0v.4l-3.9 3.4v-.5q.7-.6 0-1.9l-5.7-7.2c-.5-1-1-.5-2-.5l3.9-3.3v.5c0 .4-.5 1 0 1.9l2.4 2.8 2.8-1.9-2.3-3.3c-.5-1-1.5-.5-2-.5l3.9-3.4v.5q-.7.6 0 2l5.7 7.1q.8.8 1.5 0l.4.5-3.8 3.4-.5-.5c.5-.5 1-1 .5-2l-2.9-3.3zm4.3-10.1c-.5-.4-1.5-.4-2 0v-.4l6.3-5.8 2.9 2.9h-.5c-1.5-2-3.4-1-4.3-.5 0 .5-.5.5-1 1l.5 1.4 2.9 2.9c.4-.5 1.9-1.5 0-3.9h.4l3.9 4.4v.4c-2.4-2.4-3.4-1-3.9-.4l3 2.8c.4 1 .9 1 .9 1l1.4-1.4c.5-.5 1-2 0-4.8h.5l1.9 3.3-6.2 6.2-.5-.4c.5-.5 1-1 0-2zm11.5-13.4c-.5.5-.5 1.5.4 2 1 .9 2 .9 3.9 0 1-.5 2.8-1 4.3.4 2.4 2.4 1.4 4.3 1 5.3-.5.5-1.5 1-2 1.4q-.6-.1-.5.5v.5l-3.3-2.9h.5c1.9 1 3.8 1.4 4.8 0 1-1 0-2-.5-2.4-1-1-2-1-3.4 0-1.4.5-3.3.5-4.8-.5-1.9-1.9-1.9-3.3-1-4.8l2-1.4c.5 0 .5 0 0-1l3.4 2.4h-.5c-2.4-1-3.9-.4-4.3.5m4.3-3.8c-1-.5-1.5 0-2 .5h-.4l5.3-7.7 3.3 2.4-.5.5a3.3 3.3 0 0 0-4.3 0c0 .5-.5 1-.5 1.4q-.7.1.5 1c.5.5 3.4 2.4 3.4 2.4.5-.5 1.4-1.5-.5-3.4v-.5l4.8 3.9c-2.9-1.5-3.4 0-3.8.4l3.3 2.4 1.4.5q.1-.8 1-1.4c.5-1 1-2.4-1-4.3l.5-.5 2.4 2.9-4.8 7.2h-.5c.5-1 .5-1.5-.4-2.4zm12.9-8.6-1.4 2.4c-2-2-2.9-3.4-2.9-3.4zh1c.5 0 1.4.4 1.9.4 1.4.5 1 1 .5 2h.5l2.4-4.4c-1 1-1.5.5-2.4.5-10.1-1.9-11-2.4-11-2.4v.5l7.6 8.6c.5.5.5 1.5.5 2h.5l1.4-2.4-.5-.5c-.5 1-1 1.4-1.9 0l-1-1 1.5-3.3zm-2.9-10.6c-.4.5-.4 1.5 1 2s2 0 3.4-1 2.8-2 4.7-1c3 1.5 2.4 3.9 2 4.8l-1.5 2v.9l-3.8-2c2.4.5 4.3 0 4.8-1.4.5-1-.5-1.9-1-2.4q-1.3-.5-3.3 1c-1.5 1.4-3 2-4.8 1q-3.2-1.6-2-3.9c0-1 1-1.4 1.5-1.9 0-.5 0-.5-.5-1v-.4l3.9 1.9h-.5c-2.4-.5-3.9.5-3.9 1.4"/>
+ </g>
+ </g>
+ <g stroke="#000" stroke-width="1.4" transform="translate(-306.8 -21.2)scale(.87136)">
+ <g id="ky-d" fill="#073163">
+ <path fill="#fff" d="M863.2 232.5c-6.2 1.4-10.5 1.9-16.3-3.4-3.8-3.8-2.9-10.5 1-13 4.3-2.8 8.1-4.7 13.4-3.3s19.2 14.4 15.8 14.9c-3.4 0-8.6 3.3-13.9 4.8zm14.8-23c2-1.5 4.4-2.4 10.6-3 5.8-.4 10-.4 11.5 4 2 5.2 3.4 11.4 7.2 14.3-2.4 1.4-14.4 2.9-18.7.5-5.7-2.9-7.2-14-10.5-15.8zm41.3.5c1.9-1.5 4.3-1.5 10.5-1s8.6 1 10 5.3c1.5 4.8 0 11 3 15.3-3 1-12.5 1-15.9-2.4-5.2-3.8-4.8-14.9-7.6-17.3z"/>
+ <path d="M948 212.8c-4.3-1-7.2-1.4-9 0 2.3 2.9.4 14.4 5.2 18.2 3.3 2.4 12 3 13.9-2.4 2.4-4.8 2.4-12-10-15.8zm-49.3-4.8c1.4-1.4 4.3-1.9 10-1.9 6.3 0 10 1 12 4.8 2 4.8 1.4 11 4.8 14.9-1.4 1.9-14.4 1.9-18.2-1-5.3-3.4-5.8-14.4-8.6-16.8zm-40.7 4.3c0-2.4 3.3-2.8 12-3.3 8.5-1 9-.5 11.9 5.7 1.4 3.4 3.3 9.1 7.2 11-10.6 2.5-14 3.9-19.7.5a29 29 0 0 1-10-10.5c-.5-1.4-.5-2.9-1.5-3.4z"/>
+ </g>
+ <g fill="#f9d050" stroke-width=".6">
+ <g id="ky-f">
+ <path d="M881 163.5c-10.1-7.7-22.1-14.9-33.1-16.3a280 280 0 0 1 32.6 25.4"/>
+ <path d="M886.7 156.3c-12-8.2-25.9-17.3-39.3-18.2a124 124 0 0 1 33 27.8m21.6-23a93 93 0 0 1 23.5-32.2c-4.8 10.1-10 30.7-12.5 38.9"/>
+ <path d="M912.6 140.5A48 48 0 0 1 937 115a101 101 0 0 0-18.2 35"/>
+ <path d="M916.9 150a85 85 0 0 1 37.8-31.6c-12 12-29.7 34-34 42.7m2.9-.5c8.6-4.8 25.9-12.5 38.3-10-7.6 2.8-30.6 13.3-40.7 23"/>
+ <path d="M921.7 157.2c8.1-8.6 23-21.5 38.8-26.8-11.5 11-36 36-39.3 39.8M898.7 152c-5.8-17.8-14.4-34.5-27.3-39.8a131 131 0 0 1 21 48.9m-4.8-9.6c-9.5-11.5-22.5-23-37.3-25.4a90 90 0 0 1 33 38.8"/>
+ <path d="M893 151c-12-21.6-21.2-25.4-26.4-29.7 4.3 8.1 14.8 29.7 21 38.8"/>
+ <path fill="none" d="M869 149.6a58 58 0 0 1 17.2 16.7"/>
+ <path d="M869 159.6c2.8 2.4 8.1 5.3 12.9 9.6m44.1-2.4c4.8-3.8 15.3-10 20.6-12m-24 8.7c4.8-6.3 14.4-14.9 17.8-17.8m-4.4-12a287 287 0 0 0-18.2 22.6m5.8-26.9a157 157 0 0 0-12 21.1m-25.9-20.1c2.9 7.7 8.2 20.6 10 25.9m-14.3-17.8c2 3 5.8 9.6 7.2 14.4"/>
+ </g>
+ <g id="ky-g">
+ <path d="M897.7 136.1c0-4.3 2.9-9 5.8-9 3.3 0 5.7 5.7 5.7 9 0 3.9-2.9 7.2-5.7 7.2-3 0-5.8-2.8-5.8-7.2z"/>
+ <path d="M891.5 140c.5-4.8 3.8-8.6 6.7-8.2s4.3 6.3 3.8 9.6c-.5 3.8-3.8 6.7-6.2 6.2-2.4 0-4.8-3.3-4.3-7.6zm12.9 1.4c-1-4.3 1-9 3.9-9.6 2.8-.4 5.7 4.3 6.2 8.2 1 3.8-1.5 7.6-3.9 7.6-2.3.5-5.7-1.9-6.2-6.2z"/>
+ <path d="M897.2 145.2c0-4.7 2.9-9 5.8-9 3.3 0 5.7 5.2 5.7 9 0 3.9-2.8 7.2-5.7 7.2s-5.8-2.8-5.8-7.2z"/>
+ <path d="M888.6 147.6c0-4.3 3.4-9 6.2-9 3 0 5.8 5.7 5.8 9 0 3.9-3.4 7.2-5.8 7.2-2.8 0-6.2-2.8-6.2-7.2zm17.7-1.9c0-4.3 3-9 5.8-9 3.3 0 5.7 5.7 5.7 9 0 3.9-2.8 7.2-5.7 7.2s-5.8-2.9-5.8-7.2z"/>
+ <path d="M904.4 149.6c0-4.8 3.4-9.1 6.2-9.1 3 0 5.8 5.2 5.8 9 0 3.9-2.9 7.3-5.8 7.3-2.8 0-6.2-3-6.2-7.2z"/>
+ <path d="M896.8 153.9c0-4.8 2.8-9.1 5.7-9.1 3.4 0 5.8 5.7 5.8 9 0 4-3 7.3-5.8 7.3-2.9 0-5.8-3-5.8-7.2zm-12 0c0-4.8 2.4-9.1 4.8-9.1s4.3 5.7 4.3 9c0 4-2.4 7.3-4.3 7.3-2.4 0-4.8-3-4.8-7.2zm26.8-.9c0-4.4 2.4-8.7 4.8-8.7s4.8 5.3 4.8 8.6c0 4.3-2.9 7.2-4.8 7.2-2.4 0-4.8-2.9-4.8-7.2z"/>
+ <path d="M914.5 161c1-4.7 3.8-8.6 5.7-8 2 .4 2.4 6.1 1.5 9.5-.5 4.3-3.4 6.7-5.3 6.2-2-.4-2.9-3.8-2-7.6z"/>
+ <path d="M905.4 159.6c.5-4.3 3.3-8.6 5.7-8.1 2.9 0 4.3 5.7 3.9 9-.5 4.4-3 7.3-5.3 6.8-2.4 0-4.8-3.4-4.3-7.7zM892 161c-1.5-4.7-4.4-8-6.3-7.6s-2.4 6.2-1.4 9.6c1 3.8 3.8 6.2 5.7 5.7 1.5-.4 3-3.8 2-7.6z"/>
+ <path d="M888.6 160.1c0-4.3 2.4-8.6 4.8-8.6 2.9 0 4.8 5.3 4.8 8.6 0 4.3-2.4 7.2-4.8 7.2-2 0-4.8-2.9-4.8-7.2z"/>
+ <path d="M895.8 162c0-4.8 2.9-9 5.7-9 3.4 0 5.8 5.2 5.8 9 0 3.9-2.9 7.2-5.8 7.2-2.8 0-5.7-2.9-5.7-7.2zm2.4-52.7c-1 3.8-4.3 7.2-2 12.5-4.2-1.5-8-2-11.4 1.9 4.3-.5 8.1 1 10 3.8-3.8-.5-5.7 1.5-6.7 3.9 3.4-1 6.7-2 8.2-1.5-1.5 1.5-3.9 3.8-4.3 5.8 2.8-2.4 6.2-2 8.1-3.4-1.4 3.4 1.4 6.7 3.8 10-.4-4.7 2.4-8 1-10.5 4.3 1 4.8 4.8 11 4.8-2.4-1.4-3.8-6.2-6.7-6.2 1.4-.5 7.2-1 8.2 0-1-2-4.4-3.8-6.3-3.8 2-2 5.3-5.8 7.7-6.8-3.4.5-8.6 1-10.5 3.9 4.7-3.9 3.8-11 9-12-2.8-.5-7.1 1.4-10.5 4.8 1.5-2.9 1.5-6.7 3.4-7.7-3.9 1-8.2 5.8-9.6 8.2a18 18 0 0 0-2.4-7.7z"/>
+ <path d="M900.6 117c0 1.4 0 4.3-.5 5.2m6.7-5.7c-1 1-2.9 4.3-2.9 7.2"/>
+ <path fill="none" d="M909.7 122.2a8 8 0 0 0-3.4 4.4"/>
+ </g>
+ </g>
+ <g id="ky-e" fill="#059334">
+ <path d="M858.9 169.7q-5.1-.1-8.2-3.8c-3.3-4.4-12.4-6.3-16.3-2.4-1.4 1-3.3 1-4.7 1.4-2.4 0-5.3 2.4-4.4 7.2 2-1.5 2.4 0 3.9 0 1-.5.5.5.5 1.4 0 2.4 5.2 7.2 10 6.7 5.3 0 7.7 2 8.6 3 1.5 1.3.5.9 1.5 3.3 1.4 1.4 1.9 1.9-.5 3.8a9.7 9.7 0 0 0 0 14.9c6.2 4.7 22 12 39.8-2 17.2-13.4 44-5.7 46-1 2.4 4.9 3.3 7.7 3.8 10.1.5 2 2.9 3.9 6.3 3.4 3.3 0 7.1 1.4 9 2.9 2.5 1.4 5.8 1 4.9-3.4-2-13.4-10.1-15.3-11-21.5 4.7.4 8 .4 10-1.5 1.4-1.9 3.3-5.3 5.3-6.2 1.4-1 1.4-2-.5-1.5-2.4.5-3.8 1.5-8.2 1-22-2.4-83.8-19.2-95.8-15.8z"/>
+ <path fill="#000001" d="M956.7 186a35 35 0 0 0-9.2 9.6c-4.7 6.2-19.1 12.4-36.9 12.4-17.2 0-27.7-2.8-35.4-9a61 61 0 0 0-10.6-6.8c-5.2-2.4-6.2-7.7-4.8-12-1.4 2.4-2.3 4.8-5.2 4.3-2 0-5.8 0-4.8 2-.5-1-.5-2.4-1-3l-1-.9c1.5 1 4.9-1.9 7.3-1.9 1.9.5 4.3-1.9 3.8-4.8l-1.4-6.2c3.8-2 54.1 7.2 64.2 8.1 10 .5 38.8 4.8 35 8.2z"/>
+ <path d="M865.6 167.8c4.8-4.8 10.5-7.2 16.3-5.8h1.4c3-2.4 9.6-2.9 13.5-1h1.9c5.7-1.9 16.7 0 20.6 3.9l1.4 1c13-1 20.6 4.7 29.7 13.9 1 1 2.4 2.8 4.8 3.3 2.9.5 3.4 2 1 3.4a38 38 0 0 0-10 9c-4.4 5.8-18.3 11.6-35.6 11.6-16.7 0-26.8-3-34.5-8.7-4.3-3.3-7.6-5.2-10-6.7-2.9-1-6.7-4.8-5.3-8.6 1-3.8-1.4-8.6-3.3-13.4 1.4-1 5.2-2.4 7.1-1.4z"/>
+ <g fill="#00493d">
+ <path d="M950.4 179.8c-9-9.2-16.7-14.9-29.7-14 0 .5 0 2-.5 3a66 66 0 0 1 23.5 17.7c2-2 5.3-4.3 6.7-6.7zm-31.1-14.9c-3.9-3.8-14.9-5.8-20.6-3.8 0 1.9 0 4.8-1 6.7 3.4 1.4 6.2 4.8 9.1 8.1 2-.5 6.7-1.9 9.1-2.4a44 44 0 0 0 3.4-8.6zm-22.5-3.9c-3.9-1.9-10.6-1.4-13.5 1-1 2-1.4 5.8-1.4 7.7 2 0 4.8 1.4 5.7 2.4 3-1 6.8-2.9 8.2-4.3.5-2 1.4-4.8 1-6.7zm-31.2 6.8c4.8-4.8 10.5-7.2 16.3-5.8-1 1.5-1.4 4.3-1.4 7.2-5.3-.5-12 1-14.9 2.9z"/>
+ <path d="M941.8 187.4a64 64 0 0 0-22-16.8c0 .5-1 2.4-1.5 3.9 2.9 4.3 8.6 13.9 11 19.2 2.4-1 9.1-3.9 12.5-6.3zM905.4 198a179 179 0 0 0 1.4-19.7c2.4-.5 7.2-1.9 9.1-2.4 2.4 3.9 8.2 14 10.6 18.7-5.8 1.4-15.4 3.8-21.1 3.4zm-16.8-23c2.4-1 5.8-3 8.1-4.8 2 1.4 5.8 4.8 7.2 6.7 0 4.3-1.4 16.8-1.9 21-3.8 0-10-.9-13.4-2.8.5-7.2 1-15.3 0-20.1zm-24 5.7c.5-1 1-4.3 1-5.7 3.8-2.4 13.4-4.8 20.6-1 .5 4.8 0 16.8-.5 19.7a96 96 0 0 0-21-13z"/>
+ </g>
+ <g fill="none">
+ <path fill="#000001" stroke="none" d="M840.7 172c-1 0-1.5-2.8-3.4-2.8-.5 0-1.9.5-2.4 0q.1 1.6 1 2.4c.5 1.4 2.9.5 4.8.5z"/>
+ <path d="M840.7 180.2c5.7 0 6.7-7.2 9.6-7.6m-6.3 8.1c4.3 2 7.7-8.1 11-7.7m-19.6-4.7c1.4 0 2.4-2 4.8.4q1.7 1.5 3.4 1.5m-1 5.2c-2 3-5.3 4.8-7.2 3.9m-1-15.8c-1.4 1-2.3 2.8-3.3 4.3m-1.4 2.8v2.4"/>
+ </g>
+ </g>
+ </g>
+ <g stroke-width="1.4" transform="translate(-306.8 -21.2)scale(.87136)">
+ <path id="ky-a" fill="#fff" d="M989.7 233v93.4c0 81-38.3 108.8-89.6 130.8-51.3-22-90-49.8-90-130.8v-93.5h179.6z"/>
+ <path fill="#c8102e" d="M900.1 312c4.3 0 11-3.8 16.8-9.6 6.2-6.7 16.8-9 27.8 0s17.7 5.3 23.5 0c5.7-5.2 10.5-7.2 21.5-7.2V233H810v62.3c11 0 15.8 2 21.6 7.2 5.7 5.3 12.4 9.1 23.5 0 11.5-9 21.5-6.7 28.2 0 5.3 5.8 12 9.6 16.8 9.6z"/>
+ <path fill="#0b50a0" d="M900.1 360c5.8 0 17.3-6.3 20.1-7.7 10.6-6.3 18.2-.5 24.5 2.4 6.7 2.8 19.1 6.2 26.8 0s12-5.8 17.3-5.8c1-7.2 1-14.4 1-22.5v-5.8c-6.8-1.4-10.1.5-17.3 6.8s-15.4 4.8-26 1c-10-4.4-20-12-30.1 0a24 24 0 0 1-16.3 8c-7.2 0-13.4-4.7-16.3-8-10.5-12-20.1-4.4-30.2 0-10.5 3.8-19.2 5.2-26.3-1-6.7-6.3-10.1-8.2-17.3-6.8v5.8c0 8.1.5 15.3 1.4 22.5 5.3 0 9.2-.5 16.8 5.8s20.6 2.8 26.9 0c6.7-2.9 14.3-8.7 24.9-2.4 2.9 1.4 13.9 7.6 20.1 7.6zm0 20.6a51 51 0 0 0 23.5-7.2c9.6-5.3 16.3-3 25.9 1.9 10 4.8 18.2 3.3 24 0 2.8-2 5.2-5.8 11.4-4.3-2.8 12-7.2 22.5-12.4 31.1a33 33 0 0 1-25-1.9c-10-4.8-22.5-7.7-29.2-3.4a36 36 0 0 1-18.2 5.8c-5.3 0-12-2-18.2-5.8-6.7-4.3-19.2-1.4-29.2 3.4a33 33 0 0 1-25 2q-8-13.2-12.4-31.2c6.2-1.5 8.6 2.4 11.5 4.3a24 24 0 0 0 23.5 0c10-4.8 16.7-7.2 26.3-2a51 51 0 0 0 23.5 7.3m0 76.6a192 192 0 0 0 51.3-29.7c-3.9-1.4-6.2-.5-9.6-2.9s-13.4-3.3-22 1.5a39 39 0 0 1-39.3 0c-8.7-4.8-18.7-3.9-22-1.5s-5.8 1.5-9.7 3a185 185 0 0 0 51.3 29.6"/>
+ <g stroke="#000">
+ <path fill="#f9d050" d="M887.6 256.4c.5 1-.4 3.4 0 4.3 1 2 1 3 2.4 3.9h3.4c10.5 0 23-4.3 33.5-4.3 10.1 0 16.3 3.3 22 3.3 3.4 0 6.3-2.4 6.3-4.8s-3.8-3.8-12-3.8c-11.5 0-17.7 2.9-27.3 2.9-14.4 0-16.8-5.3-16.8-7.7s2.4-5.7 10.1-5.7q3.7 0 5.3-1.5c.5-1 1.9-2.9 4.8-4.3 3.3-2 10 0 13.4-2.4 0 2-2.9 4.8-5.3 5.8 4.8-1.5 10-1.5 11 2.4-2.4-1.5-6.2-.5-7.6 0-2 .4-2.9 1-4.8 1.4 1.9-.5 2.9 3.3 5.7 3.3-2.8 2.4-7.6 2.4-12.4.5-1.5-.5-5.3-1.9-7.7-1.9-4.8 0-7.7 1-7.7 2.9 0 2.4 3 3.8 11.5 3.8 8.7 0 13.5-2.4 26.4-2.4-1-1.4.5-2.9-1.4-4.3 4.8 0 10 1.4 12 4.8-.5-3.4 2.3-6.2 1.4-9.1 2.9.5 5.3 3.3 5.7 5.7 0-1.4 2-1.4 2-2.8a7 7 0 0 1 3.8 7.6c1.4-2.4 2.9-1.4 3.8-4.3 1 2 .5 7.7-2.9 9.6 3-2 7.2-2 10.1 1.4-2.9-.4-4.3 1-5.7 1.5A44 44 0 0 1 948 267c-7.6-.5-8.6-2-13.4-2 2.9.5 8.6 6.3 14 6.3q5 .1 7.1-.5c1.4-.5 3.8 0 5.7 1 1.5 1.4 4.4 2.8 6.3 2.4q-.8 2.7-2.9 3.3c2.4 1.5 1 2.4 3.4 4.3-1 0-2 1-3.4.5 1.4 1.4 1.4 3.4 2.9 4.3-.5 0-2 .5-2.9 0 1.4 2 0 4.3 1.4 5.3 1.5 2-1.4 4.3-3.8 2.4.5 1.4-1 2.9-2.4 2.4s-2.4-2-2-2.4c0-.5 0-.5.6-1-1 1.5-2.9 1.5-3.9 1-.4-.5-1-1-1-1.4-3.3 1-4.7-2-4.2-3.4s3.3-2 4.3-1.4c1 .4 1.9 1 2.9 0q1.5-.9 1.4-2.4c0-1.5-1.4-5.8-7.7-5.3-7.2.5-18.7-1.4-24.4-3.4-.5-.4-1-.4-1.5-1 0 2-1.9 3-1.9 4.9 0 2.4 1 4.3 3.9 5.2-1.5 2.4-3.9 2-4.8.5 0 1.5-2 2.4-2 4.3-.4-1-1-1.4-1.4-2.4-1.4 3.4-5.3 5.3-7.2 4.4-2.4 1.9-5.2 1.4-6.2-.5-1.4 1-3.4 1-4.3 0 0 1.4-1 1-1.5 2.9 0 1-1.9 1.4-2.8 1-1-.6-1.5-2.5-.5-3.4q-2.3 1.5-3.8 0c0-1 0-2.4 1-3h.9c-1-.4-2.4 0-3.4-.4-1-1-1-2-.5-2.9.5-.5 2-1.4 3-.5l.4.5q.1-1.7 1-1.9c1-.5 2.3-.5 3.8 1 1 1.4 1.9 1.4 4.8 1 2.4 0 6.2-2.5 9-4.9-8-1.4-3.3-6.7-.9-8.6-1.9-.5-4.8-.5-6.7.5-10 5.3-20.6 11.5-27.3 9.6a6 6 0 0 0 1 2.8c-1.5 0-4.4 0-5.3-1.4-.5 1-1.4 3.4-.5 5.3-1-1-3.8-2-5.3-2.4 1 1 0 2.9.5 4.3-1.4-1.4-3.8-2.4-4.8-1.4s-2.9 1.4-4.3 1a8 8 0 0 1-3.8 2.8c0-1 0-2.4-.5-2.9-.5 1.5-2 3.4-3.8 4.3 0-1 0-2.4-.5-3.3 0 1.9-3.8 2.9-4.3 4.3q.6-2.3.5-3.8a7 7 0 0 1-4.8 3.3c.4-1 1-2 .4-2.9-.4 2-3.3 3-5.7 2.4 0 1-2 2.4-4.3 1-1.5-.5-2.4-2-1.5-2.9-1.9 0-3.8-1.9-2.8-3.3l.4-1.5c-1.4-1-1.9-2.9-.4-4.3.4-.5 1.9-.5 2.8-.5 0-3.8 3.4-3.8 4.8-1 1 1.5 3.9 3.9 6.3 3.4 1 0 1.4-.5 2.4-.5a43 43 0 0 0 12-6.2q.5-2 .4-3.3c-1.9 1-3.8 1.9-4.8 3.3v-1.4c-1.4 0-3.8-.5-4.8-.5.5-.5 1-2.9 2-3.4-2.4.5-4.8 0-6.8-.4 1-1 1-2.4 1.5-3.9-1 .5-3.4-.4-5.3 0 .5-1.4 1-3.3 2.4-3.8q-3 .6-6.7-1c2 0 2.9-2.4 4.3-2.4-3.8 0-4.8-1.9-6.7-2.8 1.4.4 2.4-1 3.8-1-1.4-.5-3.8-2.9-2.8-4.3q-.6 1-2 2c-1 .4-2.8 0-4.3-1.5-1-2-.5-4.3 1.5-4.8a2.3 2.3 0 0 1-1.5-3.9c.5-1 2.4-2.3 3.4-1l1.4 2c-.5-1-.5-2.9-.5-4.3.5-1.4 1.5-1.4 3-2 1.3 0 2.3 1.5 2.3 3 0 1.4.5 2.3 1 4.3l.4-2c0-1.9 2.4-1.4 3.9-1 1.4.6 1.9 3.4 0 4.9-1 1-.5 2.4.5 3.3 3.3 5.3 9 9.6 13.9 10.1q.1-3 2.4-5.3c0-1 .4-2.4 1-3.3.4-2.9 1.8-4.3 3.7-3.4-.4-.5-1-1-1-1.4-1.4-1.5-2.8-3.9-1.8-5.8s3.8-1.4 4.8-.4c-.5-3 2.8-5.3 2.8-6.8.5 1.5 1.5 3.4 1 4.8.5-1.9 3.8-4.3 6.2-5.2-1 1.4 2 3.8 1.5 5.2 1-2.4 4.8-3.8 7.6-3.8-1 1-1 2.9-1 3.8 1.5 0 4-.4 4.9-1.9 0 2-1 3.9-2 4.8.5-.5 2.4-.5 3.9-.5-1.5 1.5-1 3-2.4 3.9 1.9-1 4.3-1 4.8 1 1 1.4-.5 3.8-1.5 5.2-1 .5-1.9 1.4-2.4 1.4z"/>
+ <g fill="none">
+ <path d="M858 262.2c-3.4 1.4-4.4 4.8-4.9 6.7"/>
+ <path d="M857.5 265.5c-4.8 3-6.8 5.3-5.8 10.6m8.1 3.9c3-1 4.8-2 7.2-6.3"/>
+ <path d="M865.6 275.6c-1 2 0 5.3-1.4 6.7a9 9 0 0 0 4.8-6.7"/>
+ <path d="M866.6 280.9c1.9-1 4.8-3.9 6.2-7.2-.5 1.4 0 3.8-1 5.3 2.4-2.4 3.4-3.9 3.9-6.3l.4 2c1-1 2-2 2-3.9m-.1 1.4v2.4c2-1.4 2.5-3.3 2.5-5.7"/>
+ <path d="M880 271.8c2.9-2 3.3-4.8 3.3-9.1m0 4.8c2-1.5 2.4-2.4 2.4-6.8m-6.2-12.9c-1 0-2 .5-2 2 0 .9-1.4 2.3-1.4 3.8q-.6 2.8-2.8 1.9c-1.5-1-1.5-1-1.5-2.4 0-2 2.4-2.4 2.4-4.3.5-1 1-2.4 1.5-2.4-2.4 1.4-5.8.4-6.3-2.4"/>
+ <path d="M883.8 249.2c-1 .5-2-1-3.3-.4-.5 0-2 .4-2.4 0"/>
+ <path d="M877.1 251.6c.5.5 2.9 1.5 5.3.5-2 .5-3.4-1.9-1.5-3.3m-8.1-2c-2 0-3.4 1.5-2.9 3 .5 1.4 2.4 1.4 3.8.4m-4.3 20.6q.9-1 1-2 1.6 0 2.4-.9c1.9 0 3.3-1.4 3.8-2.8 1 0 1.5-2.4 2-3.4.4.5 1.4 0 1.9-2 1 .6 2.4 0 2.8-1.4m-19.6-3.3c0 .5-1 1.4-2 2 .5.9 0 3.3-.9 3.7.5 1 0 2.4-.5 3.4 0 .5.5 2 .5 2.4m4.8-21.1c-1 2.4-.5 5.3 1.4 5.8"/>
+ <path d="M866.6 253c-.5 2.5-.5 5.8-1 7.3-.5 1-1.4 4.3 2.4 5.2 4.3 1 6.7.5 9.1-6.7m7.2 18.7c0 .5-.5 1.5-1.4 1.5m4.7-2.4c0 1-1 2.4-1.4 2.8m4.8-3.8c0 1 0 2.4-1 2.9m-28.2-32.6c.4 0 1 1 1.4 1.9-1.4-1-2.9 1.4-2 2.9m-.9 3.3-1.9 1.5m.5 2.8c-.5 0-1 .5-1.4.5m-21.6-9.1c0-.5 0-.5.5-1m-4.8-.4c-.5 0-.5 0-1-.5m1.4 7.2h1m-2.9-2.9a5 5 0 0 0-2.8-1.4m29.2 19.2c-3.4 2.8-4.8 5.2-5.3 8.6m8.6-6.3a11 11 0 0 1-3.8 4.4m-14.8 10a11 11 0 0 1-9.6-1.4c-.5-.5-1-.5-1.5-1m25.4-4.2c-.4 1.8-1 4.2-1.9 4.7 3.9-2 7.2-4.8 7.7-9.1M827.7 289c1.5-.5 3 .5 3.9-.5m79.5-15.3c1 .5 2.4 1 2.9 1.4.5-1 2.4-2.4 3.8-2.8m-40.7 11.5c-.5-2 .5-4.3 3.4-5.3m-22.1 13.4c.5-1 .5-2.4 1-3.3m-22.1 4.8c-.5 1-1.4 1.9-1.4 2.8m-5.8-1.9s0-.5.5-.5c1-.4 2.4-1.4 2.9-2.4m61.8-3.8c-1 .5-1.4 0-1.9-.5m1.4 2.9s-.4.5-1 .5m3.4 1.9q-.8.9-1.4 1m15.3 0q1.4-.6 2-3.4m-8.2 2.9c1.4-.5 2.4-1.5 3.8-2.9m9.6-1q-.1-1.5.5-2.8m35 7.2c-1-1-1-2.4.5-3.4 1-.5 1.4-1 2.4-1.4"/>
+ <path d="M924.5 276c-7.6-3.3-7.1-7.6-13.4-7.1m47.5 22.1c.5.4 0 1.9 0 2.3m4.3-2.3c-.5 1.4-.5 1.9-.5 3.3M926 245.9h-4m-36.3 16.3c0 1 1.5 2.9 5.3 2.9-.5 0-1-.5-1-.5m-2.4-8.2c-.4.5-1 0-1 0-.9-1 .6-2.8 2-3.8q-2 .6-3.4.5c-1 2.9-3.8 4.3-5.7 2.4-.5 1.9-2.9 4.3-4.8 3.8q-2.8-1.6-2-3.8c-2.3 2.8-5.2 1-6.1 0-.5-1 0-3.4 1-6.3"/>
+ </g>
+ <path stroke="none" d="M918.3 274.6c-1.4 1-2.9 0-4.3 1.5-1 1 .5 1.4 1.4 1.4-.4 1.5-.4 2 2 2-1 1.4 1.9 1.9 1.4 3.8a5 5 0 0 0 1-4.8c-.5-1.5-3-2.4-1.5-3.9"/>
+ <path fill="#073163" stroke="none" d="M874.7 259.3q-2.8-1.6-2-3.8-.7 1.4-2.3 1.4c-2 4.3-4.3 8.2-7.2 8.2-3.4.4-2.9 3.8-.5 3.8 5.3 1 7.7-1 12-9.6m-47.4-11.5c1.4-1.4.4-2.9-.5-3.3-1.5-.5-4.3 0-5.8 2.3 1.5-.4 3-.4 3.4.5.5 1 1.4 2 2.9.5m2.4-8.6c3.3 0 4.3.5 4.7 1.9.5 1-.4 2.4-1.4 2.4-1.4 0-2.9-1-2.4-1.4.5-1 .5-2.4-1-3zm9.5 7.6c2.4.5 3.4-1 2-2.8q-.8-2.4-4.4-2c2.4 1.5 0 3.9 2.4 4.8m-17.7 8.2a4 4 0 0 0 4.8 2c1.4-.6 2-2 1.4-3-1-1.4-2.4-1.9-2.8 0-1 2-2.4 1.5-3.4 1m7.2 29.2c-1-1.9-3.8-1.9-6.2 0 1-.5 2.8 0 3.3 1s1.5 1 2 1c.4-.5 1.4-1 .9-2m3.8-2.8c0-2.4-3.3-3-5.2-2 1 0 2.4 1 2.4 2 .4 1 1.4 1.4 1.9 1.4q1.5-.8 1-1.4zm-4.8 8.6c-2.8-.5-4.3 2.9-4.3 5.2.5-1.4 2-2.3 3.4-1.9q2 0 1.9-1.4c.5-1 0-1.4-1-2zm.5 8.1c1 .5 2-.5 2.4-1.9 0-1 2-1 2.4-.5 1 .5 1 2.4-.5 3.4-1 .5-3.3 1-4.3-1m66.6-14.4c-1-.4-3.3-1.4-5.2 0 1.4-.4 2.4.5 2.8 1.5 0 1 1.5 1.4 2 .5.4-.5 1-1.5.4-2m-4.3 3.4c-1.9-1-4.3 1.4-4.8 3.4a7 7 0 0 1 3.4-1.5q1.7.6 1.9-1 .9-.7-.5-.9m2.5 3.9c-1.5 0-3.4 1.9-3.4 3.8q.7-1.6 2.4-1c1 0 2.4-.5 2.4-1.4q0-1.5-1.5-1.5zm4.2 3.8c-1-.5-2.4 0-2.4 1.4s0 2.9-.4 3.4q1.5-1.4 2.8-2c.5-.4 1-1.9 0-2.8m54.2-4.3c-1-1-2.4-.5-2.9.4s-1 3.4 0 5.3c0-1 1-2.4 2-2.4 1.4-.5 1.8-2.4.9-3.3m2.9 1.9c-2 1-2 4.3-.5 6.2 0-1 .5-2.4 1.4-2.9 1.5 0 2-1.9 1.5-2.8-1-1-2-.5-2.4-.5m5.7 1.9c-1-.5-2 .5-2 1.4-.4 1.5.6 3.4 2 4.3q.1-1.6 1-2.4c1.4-1 1-2.8-1-3.3m4.3-.5c-1 0-1.9 1.4-1 2.9q.6 1.5 3.4 1c-.5 0-1.4-1.5-1-2q.7-1.7-1.4-1.9"/>
+ </g>
+ <g id="ky-h">
+ <path fill="#f9d050" d="m831.1 383.4 24-73.8 24 73.8-62.9-45.5H894Z"/>
+ <path fill="#024919" d="m835.9 376.7 49.8-36.4h-61.3l49.3 36.4-18.6-58.4z"/>
+ </g>
+ <use xlink:href="#ky-h" width="100%" height="100%" x="90.1"/>
+ <use xlink:href="#ky-h" width="100%" height="100%" x="45" y="52.2"/>
+ <path fill="none" stroke="#000" d="M989.7 233v93.4c0 81-38.3 108.8-89.6 130.8-51.3-22-90-49.8-90-130.8v-93.5h179.6z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/kz.svg b/apps/web/public/flags/kz.svg
new file mode 100644
index 00000000..2fac45bd
--- /dev/null
+++ b/apps/web/public/flags/kz.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-kz" viewBox="0 0 640 480">
+ <path fill="#00abc2" d="M0 0h640v480H0z"/>
+ <g fill="#ffec2d">
+ <g transform="matrix(.48 0 0 .48 345.8 201.6)">
+ <circle r="134.6"/>
+ <g id="kz-c">
+ <g id="kz-b">
+ <path id="kz-a" d="M0-152.9c8-.1 11-5.1 11-11.1 0-8-11-46.1-11-46.1S-11-172-11-164c0 6 3 11.1 11 11.1"/>
+ <use xlink:href="#kz-a" width="100%" height="100%" transform="rotate(90)"/>
+ <use xlink:href="#kz-a" width="100%" height="100%" transform="scale(-1)"/>
+ <use xlink:href="#kz-a" width="100%" height="100%" transform="rotate(-90)"/>
+ </g>
+ <use xlink:href="#kz-b" width="100%" height="100%" transform="rotate(22.5)"/>
+ <use xlink:href="#kz-b" width="100%" height="100%" transform="rotate(45)"/>
+ <use xlink:href="#kz-b" width="100%" height="100%" transform="rotate(67.5)"/>
+ </g>
+ <use xlink:href="#kz-c" width="100%" height="100%" transform="rotate(11.3)"/>
+ </g>
+ <g transform="translate(-172.8)scale(.48)">
+ <path d="M1075.8 655c-3.5 6.3-5.6 13.6-10 19.3-13.6-12.3-33.2-12-50.4-12.7-14.2-.8-29.6-2.1-40.6-12.2-11.5-9.5-21-21.7-33.8-29.4a83 83 0 0 1-33.1-15.3c-20.2-16.5-31.8-41-51.6-58-3.7-3.6-8.2-6.5-12.4-9.6-4 1-2.2 9.6-7.1 5.2-2.7-2-9.4-2.1-10 .6 6 8 12.1 17 13 27.2-4.2.4-11.5-.9-13.5.6a84 84 0 0 0 20.4 21.3c-3.8.6-11.3.3-12.8 1.8a59 59 0 0 0 26.8 14.7c2 2.8-3.1 8.2 1.3 10.6 2.5 1 10.9 2.8 5.1 5.7-4 2.6-2.5 8.9 2.6 8.7 3.2 1.7 10.4 2 11 5-2.9 2.8-11.7 6.2-4.2 9a52 52 0 0 0 23.1 6.7c-4 3.4-9 5.3-13.1 8.5 18.5 10.9 39 18 59.4 25 8 2.6 16.3 5.1 24.7 6.7-24.4-1.4-48-8.6-70.2-18.5q-17.2-7.6-34.8-14.2c5.1-2.7 11.1-3.4 16.5-5.7-11.2-2.2-23.3-3-33-9 1.4-2.8 7-2.9 10.2-4.3 6-1.4 9.6-3 1.3-3.6-8.4-2.3-18-1.3-25.5-6.3.5-3 8.3-2 11.4-3.3 4-.7 8.4-1.3 11.6-4-13-5.3-30-1.5-40.2-13-2.3-4.4 7.3-.9 10-1.6 7 0 14.5 2.2 21.2-.6-19-8.3-39.3-16-53.7-31.4-1.6-2.5-6.4-9.3-2.5-10.1 11.2 1.5 19.3 13.7 31.4 11.8 1.6-2.1-7-5.6-9.2-8.7a229 229 0 0 1-46.8-51c-.8-6.7 9.5-7.7 12.2-2.6 13.4 13 25.5 28 42.2 36.8 6 2.9-3.4-3.4-4.6-5.7a299 299 0 0 1-40.9-57.9c-2-3.8-5.1-10.7.7-12.7 5.7-2.9 11.5 1 14.4 6 11.3 14.3 19.7 31.3 33.8 43.2-12-23.3-24.9-48-25.2-74.8.3-5.2.6-13 7.7-12.9 6-.9 5 6.7 7 10.3 5.8 19.8 8.3 41.2 20 58.6-2.5-14.6-6.4-29.7-3.8-44.6.6-5 6-6.4 9.7-3.4 2.9 7 3.5 15.9 6.1 23.5a237 237 0 0 0 93 127.2 245 245 0 0 0 123.3 42.3q6 .5 11.9.7m136.4 91.1c-7.2 4.4-12.8-3.4-18.8-5.7-4.4 2.4-4.8 10.2-8.8 14-4.8 5.5-10.8-1.6-10.3-7-5.8 4.9-8.7 16-18 14.4-4.5-3.6-7.8-11.2-11.2-2.5-2.7 4.2-10 10.2-13.9 3.8-1.2-5.6-4-12.2-7-3.3-2.2 6.4-9 11-15.4 8.2-3.6-2.9 2.8-13.7-1.7-13-6.8 4.6-10.8 15.7-20.3 14.8-3.7-4 2.3-11.1-1.8-15.7-4.7 6.1-10 15.1-18.3 15.7-4-3.2.2-12.5-2.4-13.8-8.4 5-17.4 14.1-28 11.3 4.1-16 21.5-21.5 36-22.7 25.1-3.1 51.5 2.6 75.7-6.5 3.9-2.4 13.3-5.7 10-11.2-3-4.4 7.7-2.7 8.7-7.8-.6-6.4 5-5.5 10.4-6 24.4-1.1 48.5 4 72.8 4.9 1.8 11.8-11.3 20.1-22 16.5-5 .8-12.5-11.6-11-2.6-1 4.8-.4 11-4.7 14.2m-207.4-24.2c5.6 5.1 9.6-1 14.9-3.3a197 197 0 0 0 48.3-27.3c9.2-7.6 17.2-17.5 29.6-20 24.2-7.3 49.9-6.4 74.1-13.2 18.5-25.2 49.8-34.3 76.1-48.8 5.9-1.8 8.2-6.7 10-12 10-15.9 23.7-29.9 39.9-39.5a37 37 0 0 1 25.4-4.6 42 42 0 0 1-13.7 26.5c5.9-.1 11-3.8 16.8-3.6 2 10.6-9.4 16.1-15.5 22.7 3.4.8 16.4 1.8 9.3 5.2-9 6.2-19.3 10.5-27.6 17.8 7.7 1.4 8.6 3 .8 5.8-4.3 2.8-12.4 3.8-13.2 9.4 5.8 3.6-2.6 7-5.9 8.2-6.2 1.5-12.8 4.2-4.5 9-3.1 4.7-9.9 5.7-15.4 5.2 1.7 5.4 4.1 11.4-2.8 13.8a108 108 0 0 1-53.6 22.4c24.5 1.8 49.8-2.7 70.7-16 2.8-3.3 17.3-6.9 9.2-9.6-3.8-1.6-12-3.4-12.6-6.3 11.4-7 25.7-4.5 37.9-8.6.3-4-9.3-2.9-12.9-3.8-8.5-.7-8-2.9.2-3.7 10.4-2.8 22.2-3.3 31-10-7.1-3.4-16.1-.5-23.7-3.2 12.9-5.6 28.1-6.2 39.7-14.7 5.3-5.9-6.8-4-10.3-3.9-7.1 1.3-10.4-2.2-2.3-5.1 13.9-10.3 31.4-16.9 41.2-31.7 2.3-3.3 5.4-13.3-2-9.8-9.6 3.3-18.1 14.1-29.2 10.8 21.8-16.9 42.4-36 57.3-59.3.8-6.8-9.8-7.5-12.5-2.2-14 13.4-26.6 29.3-44.5 37.8a281 281 0 0 0 43.6-56.4c2.7-6 9.8-13.3 6-20-6.3-5.2-14.1-.4-17.3 5.7-10.9 14.2-19.1 30.7-33 42.3 12.1-23.3 24.8-48.2 25-75 0-5.6-1-13.8-8.6-12.7-6 1-4.5 10-7 14.5-5.4 18.4-8 38.3-19 54.3 2.5-14.9 6.8-30.5 3.5-45.5-1.6-6.8-12.5-3.9-11 2.8-13 65.9-57.3 123.5-115 156.8-26.5 15-56 24.6-86.2 29-8 1.7-16.8.7-24.5 3.5-18.8 14.3-30.1 38.4-53.8 45.9-10.7 5.3-24.5 6.4-32.1 16.2a9 9 0 0 0-.8 4.2m51.7-10.3q-5.4.2-10.6 1.7c-4.7.7-9.2 2.3-13.8 3l-1.9.4-3.1.3a11 11 0 0 1 0 5.1 6 6 0 0 1-1.4 2q-.9 1.2-2.2 1.8a7 7 0 0 1-2.6.7q-1.3.1-2.7-.4-1.3-.4-2.5-1.5l-2.8.5h-2.6l-2.8-1-2.6-1.3c-3.4 2-7.2 3.9-9.3 7.4a11 11 0 0 0-1.6 5.3q-.2 3.6 1.4 7c.4.6.7-2.3 1.8-2.7q3-2.4 6.7-3.3c2-1 1.7 0 .9 1.6-.2.9-1.3 4 .2 2.4a65 65 0 0 1 21.6-4.1q15.9-1.5 31.8-1.5l30 .6c4.8.2 9.6 1.2 14.3.4 1.1-.3 2.9-.3 3.6-1-2.2-1.2-4.7-1.3-7-1.6h-19.1c-5.3-.5-10.8-.6-15.8-2.6-1.4-.5-2.6-1.8-3.9-.4a24 24 0 0 1-5.9 1.3q-5.3.2-10.2-1.8 3.6-4.7 7.7-9l-6.2-1.3z"/>
+ <circle cx="1020" cy="720.9" r="2.4"/>
+ <circle cx="1019.8" cy="720.5" r="1" stroke="#ffec2d" stroke-width=".4"/>
+ </g>
+ <g transform="scale(.48)">
+ <g id="kz-f">
+ <g id="kz-e">
+ <path d="M120 73s-9.6-8.2-12.9-4.1c-5.2 6.5 16.2 39 16.2 50.4 0 18.8-12.6 23.9-28 26.5-10.4 1.8-27.3-.7-27.3-.7 3.2-4.3 5.3-5.6 10.6-5.9-6-3-12-9.8-12-20.3 0-16.1 6.6-22.8 6.6-41C73.2 68 65 55 65 55c14.6 1.5 21.8 15 17.7 25.8a7 7 0 0 0 6.3-1.9c1 3-.6 6.5-2.9 9.5 1.8 1 3.2.4 6-.2-.2 3-2 6.4-6.6 9.5 13.2-3.4 21.2 5.7 21.2 15.3 0 7.3-5 12.5-10 12.5-1.6 0-4-.7-5.3-1.7-1 2-.4 4.7.5 6.7-3.6-1-6-3.2-4.3-7.7q-4.2-.3-6.5-3 2.3-3 6.5-3c-2-4.2.3-6.5 3.6-8.4 0 0-2.1 8.4 3.2 8.4 2.4 0 4.6-.7 4.6-4.3 0-3.1-2.7-7.4-9-7.1s-11.3 4.3-11.3 14.3c0 9.2 7.5 13.8 17.3 14 8.8.4 15.5-4.4 15.5-13.5C111.5 108 94 80.4 94 69.6c0-8.1 7.2-12.7 14.4-12.7 9.2 0 17 9.2 17 9.2l-5.4 6.8z"/>
+ <path id="kz-d" d="M122 292.1c0 20.3-18.2 30.7-32.5 30.7-19.2 0-29.5-11.5-29.5-26.6 0-8.5 1.6-13.9 5.5-22l44.2-91.7a27 27 0 0 0 2-12.2c0-8.2-8-14.9-16.3-15-7.6-.3-16 7-16 15.3 0 10.1 5.3 14.6 10.7 14.6 6.6 0 9.2-2.7 9.2-7.4q-.2-4.7-3.8-4.6c-5.7 0-4 7.6-4 7.6a5.2 5.2 0 0 1-3.9-7 10 10 0 0 1-5.5-3.3q2.2-2.3 5.5-3c-1.3-4.4.5-6.5 4.3-7.5a8 8 0 0 0-.5 4.8c6-1.8 15.3 1 15.3 11.4s-7.2 19.1-20.7 17c3.2 1.5 4.8 4.6 5.2 8.1-2.5-1-5.2-1-5.2-1 1.6 2.7 3.8 5 3.7 10.6-2.5-1.2-4.9-3.3-8-2 5 10-1.2 23.6-17 26.8q8.6-10.3 8.6-21.3c0-23.5-6.5-27.4-6.5-43.8a24 24 0 0 1 10.5-19.2v.3A14 14 0 0 1 68 145a62 62 0 0 1 34 .3 25 25 0 0 1 18 12 36 36 0 0 1 0 28.9c-6.3 13-35.7 75.6-44.9 95.2q-3 6.3-3.1 13.4c0 12 11 16.2 17.2 16.2 7.5 0 15.2-5.7 15.2-12.8 0-4.5-2.5-7.3-6-7.3-8.5 0-8 7.2-6.3 11.8-5.3-2.4-8.3-6.6-7.5-11a14 14 0 0 1-8.4-4.8c2-2.6 4.6-4.6 8.4-4.7-1.7-6.9 3-9.8 7.5-11.4-1.4 5-2.4 10.9 6.3 10.9 6.3 0 11.2 1 14.1 5.2l.7-27c.4-8.1-10.8-8-18-5.5 2.7-9.3 8.2-14.4 21-13.1a10 10 0 0 1-6.4-9.8c0-7.6 6.2-16 10.2-18.5l2 79z"/>
+ <use xlink:href="#kz-d" width="100%" height="100%" transform="matrix(1 0 0 -1 0 645)"/>
+ </g>
+ <use xlink:href="#kz-e" width="100%" height="100%" transform="matrix(-1 0 0 1 240 0)"/>
+ </g>
+ <use xlink:href="#kz-f" width="100%" height="100%" transform="matrix(1 0 0 -1 0 1000)"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/la.svg b/apps/web/public/flags/la.svg
new file mode 100644
index 00000000..6aea6b72
--- /dev/null
+++ b/apps/web/public/flags/la.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-la" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="la-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#la-a)">
+ <path fill="#ce1126" d="M-40 0h720v480H-40z"/>
+ <path fill="#002868" d="M-40 119.3h720v241.4H-40z"/>
+ <path fill="#fff" d="M423.4 240a103.4 103.4 0 1 1-206.8 0 103.4 103.4 0 1 1 206.8 0"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/lb.svg b/apps/web/public/flags/lb.svg
new file mode 100644
index 00000000..bde2581d
--- /dev/null
+++ b/apps/web/public/flags/lb.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lb" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="lb-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#lb-a)" transform="translate(80)scale(.9375)">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#EE161F" d="M-128 384h768v128h-768zm0-384h768v128h-768z"/>
+ <path fill="#fff" d="M-128 128h768v256h-768z"/>
+ </g>
+ <path fill="#00A850" d="M252.1 130c-7.8 15.5-13 15.5-26 26-5.2 5.1-13 7.7-2.6 13-10.5 5.1-15.7 7.7-20.9 18.1l2.6 2.6s10-4.8 10.4-2.6c1.8 2.1-13 10-14.9 11.3l-11 7c-13.1 10.3-21 7.7-28.7 23.3l26-2.6c5.2 18.2-13 20.8-26 28.6l-20.9 13c5.3 18.2 20.9 7.8 33.9 2.6l2.6 2.6v5.2l-26 13s-30.8 17.6-31.3 18.2c-.2 1 0 5.2 0 5.2 10.4 2.6 26 5.2 36.5 0 13-5.2 15.6-10.4 31.2-10.4a101 101 0 0 1-52 20.8v10.4c15.6 0 26 0 39-2.6l33.8-10.4c7.8 0 15.7 7.8 13 15.6-7.7 28.6-39 23.4-49.4 46.8L213 369c10.4-5.2 20.8-10.3 33.8-7.7 15.6 5.2 15.6 15.6 36.4 20.8l-5.2-13c5.2 2.6 10.4 2.6 15.7 5.2 13 5.2 15.6 10.4 31.2 7.8-13-15.6-15.6-13-26-23.4-10.4-15.6-15.7-39 0-41.6l18.2 5.2c18.2 2.6 18.2-2.6 44.2 7.8 15.7 5.2 20.9 13 39 7.8-7.7-18.2-36.3-31.2-54.6-36.4 20.9-13 15.6 5.2 44.3-2.6v-5.2C369.3 278 361.4 265 332.8 265l44.3-5.2v-5.2s-43.7-11.4-44.7-11.9c.3-1.3 1.4-3.3 4.3-4.5 8.3 5.4 33.3 4.8 34.8 4.7-.8-6.4-12.7-11.7-23-16.9 0 0-44.7-27.5-44.9-29.9.9-7 18.3 1.1 37 6.5-5.2-10.4-15.6-15.6-26-18.2l15.6-2.6c-10.4-23.4-36.4-20.8-52-31.2-10.5-7.8-10.5-13-26.1-20.7z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.2" d="M224 303c1.9-6.1 4.4-11.6-7.2-16.9s5.8 21.1 7.2 17zm13.7-12.3c-2.3.3-3.6 8.8 1.1 11.2 5.2.8 1-11.1-1.1-11.2m13.5-1c-2.4.8-2.5 12.8 6 10.6 8.6-2.1 0-11.5-6-10.5zM267 259c1.8-3-.1-15-7.4-10s5 10.8 7.4 10m-16-10c2.3-.9 2.5-8.3-4-6.3-6.3 1.9 2.3 7.8 4 6.3m-14.4 2.9s-4.5-6.2-8-4.9c-4.3 4.2 8.3 5 8 4.9M187 271.7c1.9.2 16-2.3 20.9-7.8s-25.1 2.3-25.1 2.4 2.8 4.9 4.2 5.4m141.1-35c.7-1.3-7.5-7.1-12.4-4.8-1.3 4.3 12.4 5.7 12.4 4.8m-27.8-14c1.6-2.2-3.5-11.3-13.7-6.2-10.2 5 10.7 9.8 13.7 6.3zm-32.1-5.3s2.5-8.2 8.6-6.6c7 5.3-8.3 6.9-8.6 6.6m-6-6.2c-1-2.3-7.3-1-14.6 3.9-7.4 4.7 16.8 1.4 14.6-4zm18.7-22.1s6.5-3 8.5 0c2.7 4.3-8.6 0-8.5 0m-5.5-2.9c-1.3-2.6-8.5-2.9-8.3 1-1.2 3 9.4 2.4 8.3-1m-17.2 0c-.7-1.5-11 0-14 6.2 5 2.4 16.3-2.3 14-6.2m-22 6.3s-13.4 8.3-14.3 14.3c.4 5.2 16.8-9.4 16.8-9.4s1.4-5.8-2.4-4.9zm-14.9-7.5c.4-1.7 6.7-5.6 7.2-5.3.5 1.7-5.1 6.3-7.2 5.3m4.3 31.6c.3-2.5-16-2.3-9.9 5.2 5.2 6.3 11-4.1 9.9-5.2m-15 10.7c-.8-1.6-2-6-4.2-6.4-1.9 0-11.7 2-12.5 3.6-.4 1.3 4.1 9.4 5.6 9.6 1.8.7 10.9-6 11.2-6.8zm88.4 55.2c.5-1.8 17.3-7.5 23-2 6.8 9.3-23.4 5-23 2m46 10.9c3.7-6.2-11.3-13.6-17.6-6.5 2.2 8.5 14.6 11.6 17.6 6.5"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/lc.svg b/apps/web/public/flags/lc.svg
new file mode 100644
index 00000000..bb256541
--- /dev/null
+++ b/apps/web/public/flags/lc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lc" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#65cfff" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="m318.9 42 162.7 395.3-322.6.9z"/>
+ <path fill="#000001" d="m319 96.5 140.8 340-279 .8z"/>
+ <path fill="#ffce00" d="m318.9 240.1 162.7 197.6-322.6.5z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/li.svg b/apps/web/public/flags/li.svg
new file mode 100644
index 00000000..7a4d1832
--- /dev/null
+++ b/apps/web/public/flags/li.svg
@@ -0,0 +1,43 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-li" viewBox="0 0 640 480">
+ <path fill="#002b7f" d="M0 0h640v240H0z"/>
+ <path fill="#ce1126" d="M0 240h640v240H0z"/>
+ <g fill="#ffd83d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="scale(.8)">
+ <g id="li-a">
+ <path stroke="none" d="m216.4 122.3-1.9 62.5h-63.4c-7.8-15.2-14.2-28-14.2-45.5 0-14.6 11.5-26.2 28-26.2 17.5 0 36.8 5.9 51.5 9.2"/>
+ <g stroke-width="1.5">
+ <path d="M144.5 125.2v36m5-39.7v48m5.2-50.5v57.2m5-58.4v44.9m5.1-45.1v45.3m5.1-47v47m5.1-47v47m5.1-46.5v47m5.1-46.5v46.9m5.1-44v47m5-46.5v52.9m5.2-52.9v47m5-47v47"/>
+ <path fill="#000001" d="M176.4 118c10.8 1.7 34.4 12.8 31.7 27.7-3.8 21.2-16.2 12.7-32.6 9.7l-12.4 4.1c-4.5 4.5-11 8.7-15.4 3.2h-7.4v28.8h81.4V122z"/>
+ </g>
+ <circle cx="212.8" cy="113" r="4.9"/>
+ <circle cx="201.7" cy="110.3" r="4.9"/>
+ <circle cx="190.4" cy="107.5" r="4.9"/>
+ <circle cx="179.1" cy="105.6" r="4.9"/>
+ <circle cx="167.8" cy="104.5" r="4.9"/>
+ <circle cx="156.8" cy="105.1" r="4.9"/>
+ <circle cx="146.2" cy="108.7" r="4.9"/>
+ <circle cx="137.3" cy="115.3" r="4.9"/>
+ <circle cx="131" cy="124.4" r="4.9"/>
+ <circle cx="127.9" cy="135.2" r="4.9"/>
+ <circle cx="128" cy="146.3" r="4.9"/>
+ <circle cx="130.2" cy="157.2" r="4.9"/>
+ <path d="m215 119.5-.5 6.5c-12.3-2-29.7-8.8-46-8.8-15 0-26.6 6-26.6 21.2 0 14.9 6.3 28.5 14.7 42.3l-8.7 4c-7.8-15-14.3-28-14.3-45.4 0-14.6 11.5-29 31.3-29 17.5 0 35.4 6 50.1 9.2"/>
+ </g>
+ <use xlink:href="#li-a" width="100%" height="100%" transform="matrix(-1 0 0 1 444 0)"/>
+ <path d="m222 53.1-5.2 9.7 5.2 9.6 5.1-9.6L222 53zm0 24.4-5.2 9.6 5.2 9.7 5-9.8zM203.6 75l8.1 5.1 8.1-5.1-8-5.2zm20.5 0 8.1 5.1 8.2-5.1-8.2-5.2z"/>
+ <circle cx="222" cy="75.1" r="3.9"/>
+ <circle cx="222" cy="100" r="10.5"/>
+ <path fill="none" stroke-width="1.5" d="M219.3 89.9v6.6a63 63 0 0 0-7.4.8m20.2 0a62 62 0 0 0-7.5-.8v-6.6m-12.8 12.7a61 61 0 0 1 10.2-.9q5.2 0 10 .9"/>
+ <path d="M211.8 117.7c-1 17-3 34.5-9.7 47.1l10.8-4.4c3.8-14.3 4.6-32.8 5.7-41.6zm20.4 0-6.9 1.1c1.2 8.8 2 27.3 5.7 41.6l10.8 4.4c-6.6-12.6-8.6-30-9.6-47.1"/>
+ <path d="M222 154.7c-13 0-22.5 6-23 21.6-3.2-5.6-16.5-23-29-20.7-7.4 1.4-14 11.7-12.8 23.4-6.2-17.6-24.1-20.5-37.3-10 11.7 9.5 16.9 37.8 26.7 50h150.7c9.8-12.2 15-40.5 26.7-50-13.1-10.5-31.1-7.6-37.2 10 1-11.7-5.5-22-13-23.4-12.4-2.3-25.7 15.1-28.9 20.7-.5-15.5-10-21.6-23-21.6z"/>
+ <g stroke-width="1.5">
+ <path fill="#000001" d="M297.1 219c0 5.6-33.6 11.7-75.1 11.7s-75.2-6-75.2-11.7c0-5.5 33.7-8.5 75.2-8.5 41.4 0 75.1 3 75.1 8.5"/>
+ <circle cx="222" cy="114.4" r="3.5"/>
+ <circle cx="222" cy="122" r="3.7"/>
+ <circle cx="222" cy="130.2" r="4.1"/>
+ <circle cx="222" cy="139.3" r="4.7"/>
+ <circle cx="222" cy="149.4" r="5.1"/>
+ <path fill="#000001" stroke="none" d="M220 159.2q-1 0-1 1.4l.6 4.3c.2 1.5 1 1 1.3 0 .2-1.2.1-2 .2-4.1q-.2-1.6-1.2-1.6zm4 0q-1 0-1.1 1.6c0 2.1 0 2.9.2 4s1 1.6 1.3 0l.5-4.2c.2-1-.4-1.4-.9-1.4m-7.7.6a1 1 0 0 0-1 1l.4 3.8c.2 1.5 1.3 1 1.4 0q.2-1.3 0-3.9 0-.9-.6-1h-.2zm11.1 0q-.5 0-.7 1l.2 3.8c0 1 1.2 1.5 1.3 0 0-1.5.4-2.7.4-3.7q-.1-1-1-1.1zm-15.4 1.7q-1 .3-.8 1.3.5 2 .6 4c0 1.1.9.7 1 0l.1-4q-.1-1.5-1-1.3zm19.6 0q-.5.1-.6 1.3l.2 4c0 .7 1 1.1 1 0q0-2 .5-4 .1-1-.7-1.3zm-59 .2q-1 .1-.6 1.5c.6 1.4 1.3 2.2 1.9 3.6s1.4.5 1.1-.4l-1.4-3.7q-.5-1-1-1m98.8 0q-.6 0-1 1c-.9 1.9-1.2 2.8-1.5 3.7-.2 1 .6 1.7 1.2.4l1.8-3.6q.4-1.4-.5-1.5m-94.8 0q-.8.3-.5 1.3 1 1.8 1.8 3.8c.4 1.1 1.4.8 1-.2l-1-3.7q-.7-1.4-1.3-1.2m90.5 0q-.6.1-1 1.2c-.7 2-.8 2.6-1.1 3.7-.4 1 .6 1.3 1 .2l1.8-3.8q.3-1-.4-1.3zm-85.5 1q-1 .3-.6 1.9l1.6 3.7c.6 1.4 1.5 1.1 1.3.2l-1.2-4.5q-.5-1.5-1.1-1.3m80.8 0q-.7-.1-1.2 1.3-1 3.2-1.1 4.5c-.3 1 .7 1.2 1.2-.2q1-2 1.6-3.7.4-1.6-.5-1.9m-93.2.7c-.6 0-1 1-.7 1.7.5 1 .9 1.4 1.4 2.6.6 1.2 1.2.3 1-.5q-.5-1.2-.8-2.8-.3-1.1-1-1zm105.6 0q-.6-.1-1 1l-.7 2.8c-.2.8.4 1.7 1 .5l1.4-2.6c.3-.7-.2-1.6-.7-1.7m-67 2.8c-.7 0-1.3.8-1 1.5l1.1 3.7c.4 1.3 1.3.7 1.2-.2l-.5-4q-.3-1-.9-1zm28.4 0q-.6 0-.8 1l-.6 4c0 .9.9 1.5 1.2.2l1.2-3.7c.2-.7-.4-1.5-1-1.5m-14.2 1.2c-.8 0-.9 1-.9 1.7a12 12 0 0 1-2 6.4c-1 1.2-2.3.9-3.5.2l-3.3-2.2c-1.4-1-2.4-.4-.8 1.9 4.6 6.6 9.6 12.2 9.6 23q0 1.8.9 1.7c.9-.1.8-.4.8-1.8 0-10.7 5-16.3 9.6-23 1.6-2.2.6-2.8-.7-1.8l-3.3 2.2c-1.3.7-2.6 1-3.5-.2a12 12 0 0 1-2-6.4c-.1-.7-.2-1.7-1-1.7zm-35.3-1.6h-.2q-.4.1-.3 1l1.1 3.9c.3 1 1.4.7 1.2-.5l-.6-3.1q-.4-1.2-1.2-1.3m70.6 0q-.8 0-1.2 1.3c-.4 1.4-.4 1.8-.6 3-.3 1.3.9 1.5 1.1.6l1.2-4q0-.8-.4-.9zm-91.6.4q-1.1.2-.4 1.8c.6 1.2 1.7 2.6 2.2 3.5s1.4.2.8-.8-.8-2.3-1.6-3.8a1 1 0 0 0-1-.7m112.5 0q-.5 0-1 .7l-1.5 3.8c-.6 1 .2 1.6.7.8s1.6-2.3 2.2-3.5c.6-1 .2-1.8-.4-1.8M134 169.5c-.6 0-.8 1.2-.2 2l2.6 2.7c.8.8 1-.2.6-1l-1.8-2.7q-.7-1-1.2-1m175.9 0q-.5 0-1.1 1l-1.9 2.7c-.4.8-.2 1.8.7 1l2.6-2.7c.6-.8.4-2-.3-2m-170.8 1q-1 0-.5 1.3l1.9 3.8c.5 1 2 1.3 1.4-.2l-1.3-3.8q-.6-1-1.5-1zm165.8 0q-1 0-1.6 1.1l-1.2 3.8c-.6 1.5.9 1.2 1.4.2l1.8-3.8q.6-1.3-.4-1.3m-175.6.4c-.8 0-.8.7-.1 1.2l3 2.3c1.3 1 1.7 0 1-.8s-1.2-1.6-2.9-2.5zm185.3 0-1 .2c-1.6.9-2.3 1.7-3 2.5-.6.9-.1 1.8 1.1.8l3-2.3c.8-.5.7-1.2 0-1.2zm-109.6.7q-.8 0-.7 1.2l1 3.6c.2 1.1 1.5 1.1 1.3 0l-.7-3.9q-.2-.9-.8-1h-.1zm33.8 0q-.5 0-.8 1l-.7 3.9c-.2 1 1.1 1 1.3-.1l1-3.6q.2-1.1-.6-1.2zm-64-2q-.6.1-.2 1.7a26 26 0 0 1 1.6 9q-.5 1.6-1.9 1l-2.8-1.7c-.8-.5-1.7.1-.5 1.1 6 5 10.3 10.7 12 17.6.2 1.4 1.1 1.6.9 0-1.4-8.7-1.7-15.9.4-20.3.8-1.7 0-3.3-1.2-.6-.9 1.8-2.2 2.5-3.3 1a48 48 0 0 1-4-7.7q-.3-1-.8-1.1zm94.1 0q-.5 0-.8 1c-.7 2-2.9 6.2-4 7.8s-2.4.8-3.2-1c-1.3-2.7-2-1.1-1.3.6 2.1 4.4 1.8 11.6.5 20.3-.3 1.6.6 1.4 1 0a32 32 0 0 1 11.8-17.6c1.2-1 .3-1.6-.5-1l-2.8 1.5q-1.5.8-1.9-1c-.2-1.2.2-3.9 1.7-9q.2-1.3-.3-1.6zM144.4 172c-.5 0-1 .4-.7 1.2.4 1.4 1.2 2.8 1.5 3.6s1.2.5 1-.7l-.5-3.1q-.2-1-1.3-1m155.1 0q-1 0-1.3 1l-.4 3.1c-.2 1.2.7 1.6 1 .7.2-.8 1-2.2 1.4-3.6q.3-1.2-.7-1.2m-136.3-1.7c-.6-.1-.7 1.5-.2 2.2l2.8 3.1c.8 1 1.3.1.8-.7l-2.6-3.8q-.5-.8-.8-.8m117.5 0q-.3 0-.8.8l-2.6 3.8c-.5.8 0 1.7.9.7l2.7-3.1c.5-.7.5-2.3-.2-2.2m-132 4q-.7-.1-.5 1 .3 1.6.8 3.1c.3 1 1 .9 1-.1l-.3-3.2a1 1 0 0 0-1-.9zm146.5 0a1 1 0 0 0-1 .8l-.3 3.2c0 1 .8 1.2 1 .1l.9-3q.1-1.3-.6-1.2zm-133.4 1.4c-.6 0-1.1.7-.4 1.6 1.1 1.5 2.4 2.5 2.9 3s1.5.4.8-.7l-2.3-3.5q-.3-.6-1-.4m120 0q-.4 0-.6.4l-2.4 3.5c-.7 1.1.4 1.3.9.8s1.7-1.6 2.9-3.1c.7-1 .1-1.6-.5-1.6zm-140.7 4.1q-.7 0 0 1.3a17 17 0 0 1 3.3 6.4c.1 1.4-.5 1.4-1.1 1.4-1.9 0-2.8-1.4-4.4-1.8-1.7-.3-2 .5-.8 1.4a53 53 0 0 1 14.7 13.8c1 1.9 2.3 2.5 1.6.8a24 24 0 0 1-2.4-12.6c.5-2.8 1.2-4.6 1.1-6.2 0-1.5-1-1.4-1.3 0l-1 2.8c-.4.5-1.8.8-3-.9a48 48 0 0 0-5.6-5.8q-.5-.5-1-.6zm161.7 0q-.5 0-1.1.6a48 48 0 0 0-5.5 5.8c-1.3 1.7-2.7 1.4-3 1l-1-2.9c-.4-1.4-1.3-1.5-1.4 0 0 1.6.6 3.4 1.1 6.2s0 7.2-2.3 12.6c-.8 1.7.6 1 1.6-.8a53 53 0 0 1 14.6-13.8c1.2-.9 1-1.7-.7-1.4s-2.6 1.8-4.4 1.8c-.6 0-1.3 0-1.2-1.4s1.8-4.4 3.3-6.4q.8-1.4 0-1.3"/>
+ <path d="m150.1 212.7 2 6.1m2-7.3 1.8 6.2m2.6-7 1.2 6.4m2.8-7.1 1.3 6.3m3.8-6.8 1 6.4m4.5-6.4 1.1 6.3m4.3-8.1.8 6.4m4.2-6.1.8 6.4m4.1-7 .8 6.4m4-7 .5 6.5m4.8-6.5.4 6.5m4.4-6.8.3 6.5m4.9-6.8.3 6.4m5.7-6.6.3 6.5m79 .2-2 6.1m-2-7.3-1.7 6.2m-2.6-7-1.2 6.4m-2.8-7.1-1.3 6.3m-4-6.8-1 6.4m-4.4-6.4-1.1 6.4m-4.2-8.2-.8 6.4m-4.3-6.1-.8 6.4m-4-7-.9 6.4m-4-7-.5 6.5m-4.8-6.5-.4 6.5m-4.3-6.8-.3 6.5m-5-6.8-.2 6.4m-5.8-6.6-.2 6.5m-7.2-7v7.2"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/lk.svg b/apps/web/public/flags/lk.svg
new file mode 100644
index 00000000..cbd660a5
--- /dev/null
+++ b/apps/web/public/flags/lk.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-lk" viewBox="0 0 640 480">
+ <path fill="#ffb700" d="M0 0h640v480H0z"/>
+ <path fill="#ff5b00" d="m26.7 240 88-213.3h88v426.6h-88z"/>
+ <path fill="#005641" d="M26.7 26.7h88v426.6h-88z"/>
+ <path fill="#8d2029" d="M229.3 26.7H616v426.6H229.3z"/>
+ <path id="lk-a" fill="#ffb700" stroke="#000" stroke-width="1.1" d="M579.3 408.6s3.6 7.3 7.6 10.4c6 4.4 18 4 23.3 9.3 6.1 6.1-.5 14.2-.5 15l.4 4.2s-4.2 0-6 .3c-2.6.4-3.6 2.6-8.6 2.3-12.3-.8-11.8-12-12.5-21.5-.6-3.6-2-8.4-2.9-12-.7-3-.8-8-.8-8z"/>
+ <use xlink:href="#lk-a" width="100%" height="100%" transform="matrix(-1 0 0 1 845.3 0)"/>
+ <use xlink:href="#lk-a" width="100%" height="100%" transform="matrix(1 0 0 -1 0 480)"/>
+ <use xlink:href="#lk-a" width="100%" height="100%" transform="rotate(180 422.7 240)"/>
+ <g transform="translate(0 -76)">
+ <use xlink:href="#lk-b" width="100%" height="100%" stroke="#000" stroke-width="5.6"/>
+ <g id="lk-b" fill="#ffb700">
+ <path d="m363.5 415.8 2.3-1.4 1 1.4c1.3 1.8 5 1.7 7.4 0l1.9-1.5 1.6 1.4c2 1.9 5.8 1.9 8.3 0 1.7-1.2 2-1.3 3-.3.7.6 2.7 1.2 4.4 1.5 3.2.4 3.2.4 5-2.4 1.6-2.3 1.8-3.2 1.5-5.5l-.6-5.3c-.2-2.6-.1-2.6 3.6-4l5.4-2c1.5-.9 5.7-5.8 5.7-6.8 0-.2-1.6-.6-3.6-.8q-12-1.4-4.1-13c8.3-13 13.4-25.5 13.4-33.4q0-5.3.7-4c1.9 3.1-1.5 16.4-6.5 26l-2 3.8 1.9-.4c1-.3 7.4-3 14-6 18.2-8.2 24.4-9.8 36.2-9.3 9.9.4 14 2.3 21 9.6 3.7 4 7.3 6.7 13.8 10.8 13.8 8.6 14.4 9.4 15.1 19.6s.3 10.9-7.5 12.6q-10.2 2.3-12 9-1 3.4 4 .1l2.5-1.6 1.1 1.6c1.5 2.1 4.5 2.1 7 0l2-1.5 2 1.5c3 2.5 7 1.9 8.2-1.2q.3-.8 2 .7c2.3 2 8 2.8 8.6 1.2.2-.6-.2-2-1-3.2-3.3-5-4.4-7.3-4.4-10 0-3.8 1-5.7 5.4-8.7 5.2-3.8 6.8-8.6 2.8-8.6-2.4 0-4.9-2.2-6.5-5.7-3.2-7.2-2.5-15.2 2.3-28.6a58 58 0 0 0 5.4-25.2c0-7.4-.2-8.6-1.8-12.7a45 45 0 0 0-4.6-8.1l-2.8-3.7 3.5-3c10.8-8.9 8.6-23.5-4.4-29.1-4-1.8-5-1.9-12-1.9-4 0-10.5.6-14 1.3a98 98 0 0 1-14.2 1.2c-6.8 0-8-.2-10.6-1.6-2.7-1.4-3.2-2.1-3.7-5.5a2 2 0 0 0-1.1-1.5c-1-.3-5.2 3.4-5.8 5-.4.9-.6.8-1.5-.3a13 13 0 0 1-2-3.6q-1.6-4.9 4.2-7.6l3-1.4-1.8-1.1c-3.6-2.3-9.8-.7-12 3-.7 1-1.4 2-1.6 2s-1.4-1-2.6-2.3c-4.7-4.6-3.1-11.4 3.2-13.4 3.3-1.1 6.3-.3 6.9 2 1 3.3 3.8-1.1 3.3-5.2-.3-2.7-.3-2.8 1.6-2.8 2.6 0 8 3.4 9.8 6 2 3.1 1.8 8-.4 11.6l-1.7 2.8 2.3-.4c3.2-.7 6.4-2.7 8-5.2a12 12 0 0 0 .4-10.4c-1.5-2.7-1.3-3.1.9-2.2 3.6 1.5 5.6 3.2 7 6.1 1.4 2.6 1.5 3.2.8 6a17 17 0 0 1-2.2 4.8c-1.2 1.6-1.3 1.9-.3 1.9 1.8 0 5.4-1.7 6.7-3 .7-.8 1.7-2.5 2.2-4l1-2.5 1 2c1.5 2.7 4.5 5.2 8.1 6.8 3.9 1.6 5.5 1.7 3.5.2-1.4-1-4-8.5-3.1-9.2a51 51 0 0 1 11.7 9c5.7 5.1 9.3 6.8 14.5 6.8 6.7 0 10.6-5.8 7.6-11.3-1.7-3.2-5.6-3.7-8-1q-1.5 1.8-1 3.7c.4 1.6.3 1.8-1.2 1.8-2 0-5.8-2.5-12.6-8.2a102 102 0 0 0-32.1-18.7 70 70 0 0 0-24.3-1.3c-6.4 1.2-14 4.9-18.2 8.8-7.3 7-7.4 16.3-.3 24.8l2 2.4-1.3 2.2a9 9 0 0 0 .4 10.4c1 1.4 2 2.5 2.3 2.5q.3-.2.5-2 .3-4.1 3.4-5.2c1.8-.7 3-.3 11.2 3 8.7 3.4 23 3.6 38.2.6a43 43 0 0 1 20 .2c7.2 3 8.8 10.7 3.6 16.5-2.3 2.6-4.4 3.6-11.7 5.6a54 54 0 0 1-19.5 1.5c-10.8-.1-14.7.1-19 1-4.9 1-7.8 1.1-21.8.8l-16.3-.4 1.8 1.4 3.1 2.3c1.3.7 1.2.8-.6 1.5-1 .4-3.4.7-5.3.7h-3.3l-.4 2.8a10 10 0 0 0 0 4q.6 1.4-.8.8c-.7-.3-2.6-.8-4.3-1.1a27 27 0 0 1-5-1.6c-1.9-1-2.1-1-2.8.3-.6 1-6.2 5.2-7 5.2a27 27 0 0 0-2.2-7.5c-1-2.1-1.9-4.5-2.2-5.2q-.4-1.6-1-.3c-.3.5-.7 2-1 3.2a16 16 0 0 1-1.8 4.6l-1.5 2.2-1-1.9c-1-2-2.6-4.2-3.2-4.2q-.3 0-.7 1.5c-.5 1.6-4.4 6.3-5.4 6.3-.3 0-.6-1.3-.6-3 0-1.5-.3-2.9-.7-2.9q-.6.1-.7 1c0 1.2-3.3 5-4.5 5q-.8 0-1.7 1c-1.2 1.3-2.2 1.1-1.7-.4a9 9 0 0 0-.4-3.8l-1-3.2q-.2-.7-4 .5c-4 1.3-5.4 1-3.3-.6.8-.6 2-2.7 2.6-4.6.7-2 1.7-3.7 2.2-3.9q1.1-.4-.2 1.2a6 6 0 0 0-1.1 2.6c0 .5-.5 1.8-1 2.9s-1 2-.9 2.1 1.7-.5 3.5-1.3l3.2-1.6v1.4c0 .8.4 2.8.9 4.5l.9 3 2.2-1c2.2-1 4.3-4.6 4.3-7.5 0-1.4.8-1.2 1.2.3 0 .4.6 2.1 1 3.7l1 2.8 1.5-1.8c.9-1 1.9-3 2.3-4.3.8-2.4 2-3.5 2-1.7 0 1.2 3.4 5.8 4 5.4.4-.2 1-1.9 1.5-3.8 1-4 2.5-6.6 3.5-6q.6.4.3 1c-.2.2.6 2.8 1.8 5.6l2.6 6.3c.4 1 .8 1 3.3-1.3 1.5-1.4 3-2.9 3.1-3.4.3-.8.6-.7 2 .2a25 25 0 0 0 9.5 2.8c.2-.2.4-2 .4-4l.1-3.7 2 .4c1 .3 3.3.3 5 0l3-.4-2.7-2c-1.5-1-3-2.3-3.4-2.9s-1.7-1.2-3.2-1.3c-4.1-.4-11.4-4.4-11.4-6.4q.2-.4 2.2 1.4c2.8 2.5 6.6 4 10 4h2.4l-1.5-2a12 12 0 0 1-2-5.2c-.2-3-.5-3.4-3.6-5.5a35 35 0 0 1-5-4.3l-1.7-1.9-.9 2.3q-.8 2.1-1.3 2.3c-.2 0-1.2-.8-2-1.7a7 7 0 0 0-2-1.6c-.3 0-1 1.2-1.8 2.7l-1.4 2.7-1-1.5a24 24 0 0 0-3-3.4q-1.9-1.6-1.3-1.8c.4 0 1.7 1 3 2.3l2.2 2.3 1-1.7a6 6 0 0 0 .5-3.8q-.6-2.6.3-.7a16 16 0 0 0 3 3l2.2 1.8 1.5-2.7c1.5-2.8 1.5-2.8 2.1-1.1 1 2.1 7.5 7.5 13 10.6q1.5.8-1-5a13 13 0 0 1-.8-4c0-1.8-.5-2.6-2.8-4.4a11 11 0 0 1-5-8.4c-.3-1.7-.9-3.5-1.4-4.1q-.9-1.7-.6 2.6c.2 2.1-.1 4.7-.6 5.8l-.8 2-.6-1.7c-.4-.9-2-2.5-3.5-3.5s-2.6-2-2.4-2.2 1.8.7 3.5 2c2.7 2.1 3.2 2.3 3.6 1.4.4-1 0-5.6-.8-8.8-.4-1.6-.4-1.6 1.6.4q2 1.9 2.9 6.2c.8 3.8 1.2 4.5 4.7 7.6 2.1 1.9 4 3.3 4.1 3.2.2-.2.4-5 .6-10.8.4-11.1 0-13.8-2.7-17.2l-1.4-1.8 2.2-2.3a16 16 0 0 0 4.7-8.8l.4-2.7-2.4 2.3c-2 1.9-3 2.3-5.3 2.3s-3.2-.4-4.7-2a20 20 0 0 0-8.3-4.8q-1.7-.6-1.6.6c0 .6-.6 2.2-1.4 3.7l-1.4 2.6-3-3c-1.9-1.7-4-3.2-5.7-3.6-4.1-1-4.3-1-4.3 2.1q-.1 7.1-5.6 2.5c-2.8-2.4-5-3-10.3-2.3l-4 .4.7 1.8c.6 1.5.5 2.2-.8 3.9-2.1 2.8-4.8 4-9 4-2 0-4.4.4-5.4.9s-3.6 1-5.7 1.2c-2 .2-4.3.6-5 .8-1 .4-1 0-.7-2.2.5-3.4-2-6-5.7-6-4.9 0-7.1 4.4-5.2 10.2l1 3.8a23 23 0 0 0 5.2 6.6c2.6 2.6 5 5.3 5.4 6a9 9 0 0 0 3 2.5l2.2 1.2-.3-2.4q-.5-4 1.6-1.1c.5.6 1.8 1.7 2.8 2.3 1.7 1 2 1 2 .2 0-.6.3-1.9.7-2.9l.7-1.8 1.3 2.5c.7 1.4 3 4.5 5.1 7 4.1 4.7 6.7 10 5.4 11.2-.6.5-2 .5-5-.1-2.2-.4-5-.7-6.2-.5-2.3.3-2.5 0-1-1.8 1.5-2 1.2-2.3-1.8-2.3-3.5 0-12.2-1.7-15.6-3-3.2-1.3-4-1-5 2.1l-1.7 5.6-1 3 3.6-.3a37 37 0 0 0 5.5-1 6 6 0 0 1 2.2-.3c.2.1-.3 1.3-1 2.7l-1.4 2.4 2.2-.4c1.2-.3 3-.9 4-1.4 1.8-.8 2-.8 3.4 1.5q2.7 4 3.3-.3.4-4.6 3.2 1.4c1.8 3.8 3.6 5.2 4 3q.3-1.4 2.1-2.8 3.3-2.2 4.7 1.3c1 2.5-1.2 5-7.4 8.8a43 43 0 0 0-21.7 31c-1.9 11.8 4 24 15.6 32.9 5.6 4.2 14.5 8.6 13.9 7-2.4-7.3-2.3-21 .1-23.3.4-.4.3 1-.3 3.1-2 7.9-1 14.1 4 28.7 4.4 13.2 3.8 18.9-2.6 22.6-2 1.2-3.3 1.4-8.8 1.3-6 0-6.7 0-8.6 1.6a16 16 0 0 0-4.3 8.6q0 1.9 4-.4z"/>
+ <path d="m460.5 415.5 2.5-1.6 1.7 1.6c2.2 2.1 4.9 2 7-.1q1.6-1.6 1.9-1.5l.9 1.6q.7 1.3 3.6 1.5c2.3.1 3 0 4-1.4l1-1.7 2.5 1.6c6.8 4.4 10.4-.2 7.3-9.3-1.5-4.6-.6-7.2 4.3-13 2.1-2.5 3.8-5.2 3.8-6 0-1.1-.4-1.3-3.2-1.2-2.6 0-3.4-.3-4.8-1.8q-3.4-3.8.4-8.6l2-2.5-3.6-2.4a60 60 0 0 1-8-7.1 26 26 0 0 0-17.5-9l-4.7-.5v3.6c0 4.5 2.2 8.9 8 16.3 6.6 8.4 7 9.7 7.3 20.7l.3 9.3-2 1.8c-1.7 1.6-2.4 1.9-8 2.2-5.3.3-6.5.6-8 2a9 9 0 0 0-3.4 5.3c-.3 1.5-.2 1.8.9 1.8.7 0 2.4-.7 3.8-1.6m-142.2-24a6 6 0 0 0 1-3c0-1 .6-1.4 3.2-1.8l3.1-.4-2-1.7c-2.5-2-2.8-3.5-.6-3.5s5.8-2.2 6.4-3.9q.3-1.4-.4-2.3c-1.2-1.4-3.5-1.2-3.9.4-.5 1.6-1.2 1.6-3 0-2.5-2.5-2.6-7.6 0-10.6 1.1-1.4 1.1-1.4-.4-2.9-1.6-1.6-2.8-4.6-2-5.4.2-.2 1.5 0 2.8.5 2 .6 2.7.6 3.5 0 2.3-1.9-.2-4.3-4-3.7q-2.2.4-2.4-.8c-.2-.6-1.5-1.4-3-1.8-2.7-.7-2.7-.7-2.7 1.2q0 3-3.4 1.1c-1.8-1-3.5-.2-3.5 1.7q0 2.7 5 2.4c2.4-.1 2.5 1.7.2 4.3l-1.7 2 1.3 1.9c2 2.8 1.8 7.5-.3 9.9l-1.7 1.8-1.1-1.5c-1.6-2-3.7-1.9-4.3.3-.3 1.4 0 2 1.8 3.6 1.2 1 3 1.8 3.9 1.8 2.3 0 2.2 1.9-.2 3.7l-2 1.5 3 .4c1.6.3 3 .7 3 1 0 1.3 2 5.2 2.6 5.2q.8-.2 1.8-1.5z"/>
+ <path d="M356.5 374.9c2.7-1 8.5-6 8.5-7.1 0-.4-1.6-2.2-3.6-4-4-3.6-8.5-9.9-9.7-13.5-.6-2-3.5-5.2-11.7-13.2l-10.9-10.5-3.1.8c-1.8.4-3.9.8-4.7.8-1.5 0-1.5 0 .5 1.6l2 1.6 3-1.6c2.7-1.6 2.8-1.6 3.1-.3.2.7-.2 2-1 2.9-.7.9-1.1 2-1 2.3q.3.6-1.5 1.6c-2 1-3.5 4.3-1.9 4.3 1.5 0 4.7-4 4.3-5.3q-.2-1.2.2-1.6c1.3-.7 1.2 2.4 0 4-.8.8-1.2 1.8-1 2.2q.2.6-1.6 1.6c-2 1-3.5 4.3-1.9 4.3s4.7-3.8 4.4-5.2q-.3-1.2.1-1.7c.9-.4 1.3 2 .6 3.2a2 2 0 0 0 0 2.2c.7 1.3 0 3.7-1.3 4.5q-.8.5 1.2 2c2 1.4 2 1.6 2 8 0 5.4.2 6.8 1.2 7.7q1.3 1.5 1.2 0c-.1-1.5 2-2.4 3.5-2.4.5 0 3.4 2.5 6.5 5.5s6.4 5.7 7.3 5.8l2.2.4c.3 0 1.7-.3 3.1-1zm-33.3-26.1c0-1.7-3.6-3.6-7.9-4-3.5-.5-3.5-.4-3.5 1.3 0 1.4.5 2 3 3 3.8 1.7 8.4 1.5 8.4-.3"/>
+ <path d="M327.1 348.6c1.8-1.6 2.6-3.4 1.5-3.4s-4.4 2.8-4.4 4c0 1.6.6 1.5 3-.6zm-3.7-5.1q.3-1.3-2.3-2.5c-4-1.7-8.6-2.6-9.7-1.7-2.1 1.7-.7 3.9 2.6 4.3 1.4.1 3.2.5 4.1.9 2.6 1 5 .5 5.3-1m0-5.3c.2-1.3-.7-1.8-8-4.4-5.5-2-7.9-1-6.1 2.3.6 1.1 1.6 1.6 3.9 2 1.7.2 4 .7 5.1 1.1q4.6 1.5 5-1zm3.6-4.9c1.1-1.1 2-2.4 2-3 0-1.5-4.3 1.3-4.9 3.3q-.8 3.5 3-.3zm-3.6-.3q.3-2.4-7.6-4.1-5.8-1.3-5.3 1.4c.2 1 1.5 1.7 5 2.8 5.9 1.8 7.6 1.8 7.9-.1m5-7.4c6.8-3 7.3-10.5 1-12.5q-3.8-1.2-5.2 1.4c-.8 1.4-.3 3.8.7 3.8q.6.1.7 1c0 2.7-10.2 3.8-14.4 1.7-1.5-.7-2-2.7-.9-2.7 1 0 1.6-2 1.1-3.3q-1-3-5.3-1.8c-6.3 1.6-6.1 9 .3 12a34 34 0 0 0 22 .4"/>
+ <path d="M324.3 319.8q.5-.7-.4-1.4-2-1.8.2-4.7c1.2-1.4 1.3-3.6 1.7-25.1.7-37.1 3.5-65 7.1-71.8 1.5-2.6 1.3-2.6-2.5 0a36 36 0 0 0-11.7 13.6c-6.2 11.5-8.3 27-8.3 60.2 0 18.8.1 21.3 1.2 23 1 1.8 1 2.4.4 4.2-.5 1.1-.7 2.3-.5 2.5 1.4 1.3 11.4 1 12.8-.5m56.1-35.4c.3-.3-.2-2-1-3.6-1.2-2.6-1.7-3-3.4-3a65 65 0 0 1-23-6.4c-5.1-2.3-7-2.8-7.5-2.2-1.6 1.5 1 5 5 6.9a64 64 0 0 0 18.3 3.7c2.7 0 2.8 0 1.2 2.3l-1 1.6h3l5 .6c3 .7 3 .7 3.4.1"/>
+ <path fill="#000001" d="M412 301.1c0-1-2.9-3.5-5.7-5.2-2.3-1.3-2.7-1.4-2.7-.3 0 1.6-1.4 5.7-2 5.7q-.6-.2-1-1.7c-.3-1-1.4-3-2.5-4.3l-2-2.5-1.4 2.3c-1.4 2.2-3.9 4.3-5 4.3-.2 0-.3-1.2 0-2.5q.2-2.6-.5-3t-.8.2c0 .8-3.4 4.6-4 4.6q-.6-.1-1-2.4l-.8-4.8q-.2-1.7 1 2l1.6 4.1 1.6-2.5a11 11 0 0 0 1.6-3.4q0-.8.7-.5c.4.2.9 1.9 1.1 3.7l.5 3.4 1.8-2 2.6-3.2c.7-1.2.8-1.2 2.3 0 .8.8 2.1 2.5 2.9 3.9s1.5 2.4 1.6 2.3l.6-3.2.4-3c.1-.5 5.4 3 7.4 4.7 1.2 1.1 2.4 1.9 2.6 1.7s.4-1.8.4-3.7c0-2.8-.3-3.6-2-5.1-2-1.8-2-1.8-2.8-.5-1 1.7-2.1 1.7-2.1 0 0-1.2-3.8-5.9-4.7-5.9q-.6.2-1.8 2.3c-1.2 2.1-1.5 2.3-1.7 2.3-1 0-6.3-6-6.3-7q0-1.3 1.3.8a21 21 0 0 0 3.1 3.6c2 1.8 2.8 1.4 3.6-2.1q.5-1.6 1-1.8c.8 0 5.4 4.9 6 6.5l.7 1.6.5-1.8q.9-3.2 2.3-.2c.4.8 2.4 2.6 4.4 3.8l3.7 2.4.7-2.4q.8-2 1.2-1.6c.4.5-.6 4.5-1.3 5.3 0 .1-1.3-.6-2.6-1.5l-2.5-1.8v3.2c0 1.7-.2 3.8-.4 4.6-.5 1.6-1.7 2-1.7.6zm-18.5-25.4c-4.4-3.6-5-4.4-5-6.2l.1-1.8.3 1.7c.2 1 1.4 2.6 2.8 3.8l2.6 2 1.5-1.8c.9-1 1.6-2.2 1.6-2.6 0-1.2.2-1.1 3.2 1.5 2.6 2.3 2.7 2.3 3 .8.3-.8.2-2.4 0-3.5q-1.5-4.4.5-1.6l2.4 2.8c1 1.1 1.1 1.1 1.5-.3.3-.9.5-2.4.5-3.4v-1.9l2.3 2.7c2.3 2.6 2.5 2.7 3.1 1.4.5-.7.8-2.4.8-3.7q0-2.6.6-1.6c.8 1.2.3 4.2-1.1 6.8l-1 2-1.3-2.1c-1.7-2.6-2.3-2.6-3.3.2q-1.4 4-2.7.8c-.6-1.3-.8-1.1-1.2 1.7l-.5 3-3-2.3-3-2.3-1.5 1.5c-.7.9-1.3 2-1.3 2.4q-.1 1.5-1.9 0m39-13.6c-1.5-1.4-2.6-2.8-2.4-3q.5-.5.6-.2l3 3c3.4 3.6 2.7 3.7-1.1.2zm-52-5.4c-1.4-2-1.3-3.2.5-5.4 1.2-1.5 1.8-1.7 4-1.4 1.5.1 4.6 1.4 6.9 2.8a21 21 0 0 0 11 3l-1.7-2.8q-3.4-4.8.4-1.7c2.6 2.1 5.7 2.7 12.7 2.5l3.4-.1-2-2c-2.7-2.7-1.9-3 1.2-.3 2.8 2.5 2.7 2.7-3.4 3.3a23 23 0 0 1-7.6-.5c-3.4-1-3.6-.9-2.9.2q.7 1.1 1.3 1.2t.7.8c0 1.3-7.4.1-11-1.6-8-4.1-9-4.5-11-3.9a4 4 0 0 0-2.4 2.3c-1.3 3.3 3.4 5.9 5.3 3 .6-.9.5-1.4-.5-2.5q-2.1-2 .6-1c1.3.5 1.4 3.6.2 4.8-1.3 1.3-4.5 1-5.7-.7"/>
+ <path fill="#000001" d="M412.4 248.6c-1-1-.2-1.2 4.3-1.3 5.6-.1 9-1 13-3.6 3.2-2 4.1-1.6 1 .5-2.7 2-7 3.4-11.3 3.8l-5.1.7q-1.4.3-2-.1z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/lr.svg b/apps/web/public/flags/lr.svg
new file mode 100644
index 00000000..e482ab9d
--- /dev/null
+++ b/apps/web/public/flags/lr.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lr" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="lr-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#lr-a)" transform="scale(.9375)">
+ <path fill="#fff" d="M0 0h767.9v512H0z"/>
+ <path fill="#006" d="M0 0h232.7v232.8H0z"/>
+ <path fill="#c00" d="M0 464.9h767.9V512H0z"/>
+ <path fill="#c00" d="M0 465.4h767.9V512H0zm0-92.9h767.9v46.2H0zm0-93.2h766V326H0zM232.7 0h535.1v46.5H232.7zm0 186h535.1v46.8H232.7zm0-92.7h535.1v46.5H232.7z"/>
+ <path fill="#fff" d="m166.3 177.5-50.7-31-50.4 31.3 18.7-50.9-50.3-31.4 62.3-.4 19.3-50.7L135 95h62.3l-50.1 31.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ls.svg b/apps/web/public/flags/ls.svg
new file mode 100644
index 00000000..a7c01a98
--- /dev/null
+++ b/apps/web/public/flags/ls.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ls" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#009543" d="M0 336h640v144H0z"/>
+ <path fill="#00209f" d="M0 0h640v144H0z"/>
+ <path stroke="#000" stroke-width="1.6" d="M319.6 153c-2.7 0-5.4 3-5.4 3l.3 32.4-10.3 10.7h8.3v18.5l-49 66-7.2-2.6-12.7 27s31.3 19.6 76.7 19c49.8-.5 76.9-19.9 76.9-19.9l-13-26.6-6.5 2.8-49.6-65.6v-19.1h8.2L325.1 188v-32.2s-2.7-3-5.5-2.9z"/>
+ <path fill="none" stroke="#000" stroke-width="8" d="M336.7 230.4h-33.9s-12.2-25.9-10.3-44c2-18.4 12.6-27.1 26.6-27.3 16.6-.1 25.2 8.1 27.8 26.6 2.6 18.3-10.2 44.7-10.2 44.7z"/>
+ <path fill="#fff" d="M260.5 292.1c-.6.7-4.7 8.9-4.7 8.9l7-1.5zm4 10.5-7.4 2.4 8.9 3.5zm3.3-10.3 3.7 10.9 9-2.6-2.3-5.2zm5.8 14.8 1.2 4.4 12 3-4.8-10.2zm13.2-9.3 4.3 10.2 9-3.5-3-4.5zm6 13.9 1.4 3.8 14 2-5.9-9.2-9.6 3.4zm13.4-11 5.2 9.1 13-4.8-1.4-3.5-16.8-.7zm7.6 12.4 2.7 4.8 16.2-.5-6-9-13 4.7zm17.1-12 4.4 7.6 10.4-5-2.8-4zm17 5.8-10.3 5.1 2.7 4.5 13.8-2.2zm3.3-8 5.3 6.7 8.7-6.9-3-3zm15.9 3.5-8.3 6.3 2.2 3.9 11.4-3zm11.4-13 2 2.9-5.7 8.5-5.9-7.6zm3.9 7.3 3.5 7-7 2.4-.6-3.3 4-6z"/>
+</svg>
diff --git a/apps/web/public/flags/lt.svg b/apps/web/public/flags/lt.svg
new file mode 100644
index 00000000..90ec5d24
--- /dev/null
+++ b/apps/web/public/flags/lt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lt" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt" transform="scale(.64143 .96773)">
+ <rect width="1063" height="708.7" fill="#006a44" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+ <rect width="1063" height="236.2" y="475.6" fill="#c1272d" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+ <path fill="#fdb913" d="M0 0h997.8v164.6H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/lu.svg b/apps/web/public/flags/lu.svg
new file mode 100644
index 00000000..cc122068
--- /dev/null
+++ b/apps/web/public/flags/lu.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lu" viewBox="0 0 640 480">
+ <path fill="#ed2939" d="M0 0h640v160H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#00a1de" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/lv.svg b/apps/web/public/flags/lv.svg
new file mode 100644
index 00000000..6a9e75ec
--- /dev/null
+++ b/apps/web/public/flags/lv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-lv" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#981e32" d="M0 0h640v192H0zm0 288h640v192H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ly.svg b/apps/web/public/flags/ly.svg
new file mode 100644
index 00000000..1eaa51e4
--- /dev/null
+++ b/apps/web/public/flags/ly.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ly" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ly-a">
+ <path d="M166.7-20h666.6v500H166.7z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#ly-a)" transform="matrix(.96 0 0 .96 -160 19.2)">
+ <path fill="#239e46" d="M0-20h1000v500H0z"/>
+ <path fill="#000001" d="M0-20h1000v375H0z"/>
+ <path fill="#e70013" d="M0-20h1000v125H0z"/>
+ <path fill="#fff" d="M544.2 185.8a54.3 54.3 0 1 0 0 88.4 62.5 62.5 0 1 1 0-88.4M530.4 230l84.1-27.3-52 71.5v-88.4l52 71.5z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ma.svg b/apps/web/public/flags/ma.svg
new file mode 100644
index 00000000..7ce56eff
--- /dev/null
+++ b/apps/web/public/flags/ma.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ma" viewBox="0 0 640 480">
+ <path fill="#c1272d" d="M640 0H0v480h640z"/>
+ <path fill="none" stroke="#006233" stroke-width="11.7" d="M320 179.4 284.4 289l93.2-67.6H262.4l93.2 67.6z"/>
+</svg>
diff --git a/apps/web/public/flags/mc.svg b/apps/web/public/flags/mc.svg
new file mode 100644
index 00000000..9cb6c9e8
--- /dev/null
+++ b/apps/web/public/flags/mc.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mc" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#f31830" d="M0 0h640v240H0z"/>
+ <path fill="#fff" d="M0 240h640v240H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/md.svg b/apps/web/public/flags/md.svg
new file mode 100644
index 00000000..e9ba506a
--- /dev/null
+++ b/apps/web/public/flags/md.svg
@@ -0,0 +1,70 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-md" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#00319c" d="M0 0h213.3v480H0z"/>
+ <path fill="#ffde00" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#de2110" d="M426.7 0H640v480H426.7z"/>
+ </g>
+ <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="m360.4 320.4 24.2 35c1.4 2 2.7 3.9.7 5.2s-1.4 6.4 0 8.4c2.7 3.9 6 4.5 8 3.2l18.4-11.6c2-1.2 2.7-4.5 0-8.4-1.5-2-6-4.5-8-3.2-2.1 1.3-3.5-.7-4.8-2.6l-24.3-35"/>
+ <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3s-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.52728 -.42386 .44358 .50386 -32.4 20)"/>
+ <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="m262 306.1-21.5 36.7c-1.2 2-2.4 4-4.5 3-2.1-1.2-6.6 1.7-7.8 3.8-2.4 4-1.5 7.2.7 8.4l19.2 10.2c2 1.1 5.4.2 7.8-3.8 1.1-2.2 1.4-7.3-.7-8.4s-1-3.2.3-5.2l21.4-36.7"/>
+ <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M331.2 280.6h-19.6c-.6.6-6.2 35.6-12.2 49-7.3 16.3-29.2 30.7-29.2 30.7s13.1 4 17 6.6c1-.3 22-4.7 24.4-30.3 2.4 25.6-14.6 37.3-14.6 37.3s24.4 7 24.4 23.3c0-16.3 24.4-23.3 24.4-23.3s-12.2-11.7-14.7-37.3c5 25.6 23.5 30 24.5 30.3 3.9-2.6 17-6.6 17-6.6s-21.9-14.4-29.2-30.7c-6-13.4-11.6-48.4-12.2-49zm-83-116.7 36.6 11.7c12.1 0 24.4-11.7 24.4-23.4.4-26-9.8-35-12.2-35l4.8-4.6-7.3-7s2.5-12.1 26.9-11.7 24.4 11.7 24.4 23.3-12.2 11.7-12.2 35c0 11.7 12.2 23.4 24.4 23.4l36.6-11.7v116.7H248.1z"/>
+ <g fill="none" stroke="#000">
+ <path stroke-width=".5" d="m302.2 292.2 14.6 15 14.7-15 14.6 15 29.3-15 14.3 15.8 15-15.8 21.6 15.8 22.3-15.8 14.6 15 14.7-15" transform="matrix(.16672 0 0 .46773 253.9 31.9)"/>
+ <path stroke-width=".2" d="m432.3 435.8-7.1 39m10.6-39v39m7.1-39v39m7.1-39 3.5 39m3.6-39 3.5 39" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+ </g>
+ <g stroke="#000" stroke-width="2.5">
+ <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(-.68905 0 0 .65843 443.4 -144)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 .65843 443.4 -237.3)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 -.65843 443.4 530.2)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 .65843 443.4 -190.7)"/>
+ <path fill="none" d="m301.4 557-.2 158.8" transform="matrix(-.68905 0 0 1.24911 443.4 -566.8)"/>
+ <path fill="none" d="m301.4 539.3-.2 176.5" transform="matrix(-.68905 0 0 1.12111 431.4 -464)"/>
+ <path fill="none" d="m301.4 539.3-.2 176.5" transform="matrix(-.68905 0 0 1.2559 419.2 -548.3)"/>
+ </g>
+ <g stroke="#000" stroke-width="2.5">
+ <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(.68905 0 0 .65843 199.3 -144)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 .65843 199.3 -237.3)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 -.65843 199.3 530.2)"/>
+ <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 .65843 199.3 -190.7)"/>
+ <path fill="none" d="m301.4 557-.2 158.8" transform="matrix(.68905 0 0 1.24911 199.3 -566.8)"/>
+ <path fill="none" d="m301.4 539.3-.2 176.5" transform="matrix(.68905 0 0 1.12111 211.4 -464)"/>
+ <path fill="none" d="m301.4 539.3-.2 176.5" transform="matrix(.68905 0 0 1.2559 223.6 -548.3)"/>
+ </g>
+ <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3s-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.63605 .25323 -.26502 .60778 361.1 -165.2)"/>
+ <path fill="red" fill-rule="evenodd" d="M248.1 175.6h146.5v70H248.1z"/>
+ <path fill="#564dff" fill-rule="evenodd" d="M248.1 245.6h146.5v35c0 23.3-36.6 23.3-73.2 46.6C284.7 304 248 304 248 280.6z"/>
+ <path fill="none" stroke="#ff0" stroke-width="2" d="M336.6 485.4h212.6V645c0 35.4-53.1 35.4-106.3 70.9-53.1-35.5-106.3-35.5-106.3-71V485.5z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M385.6 129.9S335 185.4 335 238.5s53.1 70.9 53.1 70.9-17.7 0-17.7 70.8c0 35.5 53.1 17.8 53.1 35.5s-.7 60.5 0 88.6c0 17.7-35.4 0-35.4 17.7 0 8.8 26.6 53.1 53.2 53.1s53.1-44.3 53.1-53.1c0-17.7-35.4 0-35.4-17.7v-88.6c0-17.7 53.1 0 53.1-35.5 0-70.8-17.7-70.8-17.7-70.8s53.2-17.7 53.2-70.9-50.7-108.6-50.7-108.6 28.5 73.2 28.5 108.6c0 17.7-13.3 53.2-48.7 53.2 0 0-9-17.8-17.7 0 0 0-10.2-17.8-17.7 0-2.6 6-7.2-17.8-17.8 0-4.4 4.7-8-17.8-17.7 0-17.7 0-53.1-17.8-53.1-53.2s32.9-108.6 32.9-108.6z" transform="matrix(.48234 0 0 .30917 108.5 140.1)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(.48234 0 0 .30917 110.4 201.6)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(-.48234 0 0 .30917 532.4 201.6)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M414.6 228.5a16 16 0 1 1-32 0 16 16 0 0 1 32 0z" transform="matrix(.5544 0 0 .38542 82.7 183.7)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M414.6 228.5a16 16 0 1 1-32 0 16 16 0 0 1 32 0z" transform="matrix(.55441 0 0 .38543 118 183.7)"/>
+ <path fill-rule="evenodd" d="M336.8 307.5c0 1.5-2 2.7-4.3 2.7-2.4 0-4.3-1.2-4.3-2.7s2-2.7 4.3-2.7 4.3 1.2 4.3 2.7m-22.3 0c0 1.5-1.9 2.7-4.2 2.7s-4.3-1.2-4.3-2.7 1.9-2.7 4.3-2.7c2.3 0 4.2 1.2 4.2 2.7"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="m439.4 550-7.8-10.3-12.8 1.7 1.8-12.8-10.3-7.7 10.3-7.8-1.8-12.8 12.8 1.8 7.8-10.3 7.8 10.3 12.7-1.8-1.7 12.8 10.2 7.8-10.2 7.8 1.7 12.7-12.8-1.7z" transform="matrix(.67225 0 0 .64237 26 -133.3)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="m496 591.7 21.3 10.7 21.3-10.7-21.3-10.6z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="m496 591.7 21.3 10.7 21.3-10.7-21.3-10.6z" transform="matrix(.68905 0 0 .65843 -88.8 -144)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M535 659c-3.5-7-14.1-10.6-21.2-10.6s-14.2 0-21.3 10.7c0-14.2 10.5-21.3 21.3-21.3a23 23 0 0 1 21.2 21.3z" transform="matrix(.59753 -.3279 .34316 .57097 -165.2 86.5)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 13.7 -155.7)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 8.8 -139.4)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 6.4 -148.7)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 18.6 -139.4)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 21 -148.7)"/>
+ <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 1 1-14.1 0 7 7 0 0 1 14.1 0z" transform="matrix(.68905 0 0 .65843 13.7 -146.4)"/>
+ <g fill-rule="evenodd">
+ <path fill="#da4500" d="M297.8 120.4c-12.4 0-14 2-19.6 3.9 0-5.4 13.8-11.7 26-11.7 0 3.9-3.2 7.8-6.4 7.8"/>
+ <path fill="#cac9c7" d="M316.5 108c0 2.5-2.2 4.6-4.9 4.6s-4.9-2.1-4.9-4.7 2.2-4.6 4.9-4.6 4.9 2 4.9 4.6z"/>
+ <path fill="#ff0" stroke="#000" stroke-width="1.1" d="M361.4 357.9v10.6h17.7v53.1h10.7v-53.1h17.7v-10.6h-17.7v-14.2H379v14.2z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+ <path fill="#da4500" d="M304.3 112.6a79 79 0 0 0-29.3 3.9c0-7.2 8.4-15.6 22.8-15.6 3.2 0 6.5 7.8 6.5 11.7"/>
+ </g>
+ <g fill-rule="evenodd">
+ <path fill="#008500" stroke="#000" stroke-width=".7" d="M67.3 613c-14.2-14.2-16.6-21.4 3.6-10.1l283.7 247.5-3.4 7L67.4 613z" transform="matrix(.38821 .29653 -.14073 .23692 237.4 71.3)"/>
+ <path fill="#008f00" d="M228.4 330.4c.8-10.6-18.6-22-19.4-21.3-.7.8 1.2 7 4.9 10.1-7-3.6-14.4-5.8-14.6-4.3-.6 2.2 11 7.2 12 9.2 0 1.4-8.6 1.2-8.4 2.6s24.3 13.6 25.5 3.7M209 299.6c.8-10.6-18.6-22-19.3-21.3-.8.7 1.1 6.9 4.8 10.1-7-3.6-14.4-5.9-14.6-4.3-.5 2.1 11 7.2 12 9.2.1 1.4-8.5 1.2-8.4 2.6.2 1.4 24.3 13.5 25.5 3.7m-14.8-28c.8-10.6-18.6-22-19.4-21.3s1.2 6.9 4.9 10.1c-7-3.6-14.4-5.9-14.6-4.3-.5 2.1 11 7.2 12 9.2 0 1.4-8.5 1.2-8.4 2.6.2 1.4 24.3 13.6 25.5 3.7m-14.6-30.4c.7-10.5-18.6-22-19.4-21.3-.8.8 1.2 7 4.8 10.2-7-3.7-14.4-5.9-14.5-4.3-.6 2.1 11 7.2 11.9 9.1.1 1.4-8.5 1.3-8.3 2.7s24.2 13.5 25.5 3.6"/>
+ <path fill="#008f00" d="M184.6 239.9c9.4-5.7 7.5-27.4 6.5-27.6-1.1-.1-5.2 5-5.7 9.8-1.1-7.6-3.6-14.6-5-13.8-2.1.8.4 12.7-.7 14.6-1 1-6-5.8-7-4.8-1.2 1 2.8 26.7 12 21.8zm13.6 26.6c10.8-2.4 16.7-23.4 15.7-23.9s-6.6 3-8.7 7.4c1.6-7.5 1.7-14.9 0-14.6-2.3.1-4 12.1-5.7 13.5-1.3.6-3.7-7.3-5-6.8-1.4.6-6.6 26.1 3.7 24.4m16.2 27.2c9.9-4.8 10-26.6 9-26.8-1-.3-5.5 4.5-6.5 9.2-.4-7.7-2.2-14.8-3.7-14.1-2.2.6-.8 12.6-2 14.4-1.2.9-5.5-6.3-6.7-5.4s.4 26.8 10 22.7zm17.6 35.6c10.3-3.9 12.8-25.5 11.8-25.9s-6 4-7.5 8.6c.4-7.7-.6-15-2.2-14.4-2.3.4-2.1 12.5-3.5 14.2-1.3.7-4.8-6.8-6-6-1.3.6-2.5 26.7 7.4 23.5"/>
+ </g>
+ <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.60164 .32097 -.3359 .5749 389.6 -146.8)"/>
+ <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width=".5">
+ <path d="M156 414.6v-7.1h7v-7.1h7v7h7.2v7.2H170v17.7h-7v-17.7zm7 60.2h7v205.5h-7z" transform="matrix(.49887 .1571 -.1826 .4713 451.4 -3.7)"/>
+ <path d="M159.4 676.8h14.2v56.7h-14.2zM156 439.4h21.3c14.1 0-3.6 39-3.6 39h-14.1s-17.8-39-3.6-39zm17.6-5.4c0 3-3.1 5.4-7 5.4s-7.1-2.4-7.1-5.3 3.1-5.4 7-5.4 7.1 2.4 7.1 5.4z" transform="matrix(.49887 .1571 -.1826 .4713 451.4 -3.7)"/>
+ </g>
+ <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.57449 -.36357 .38048 .54895 -2.3 4.2)"/>
+</svg>
diff --git a/apps/web/public/flags/me.svg b/apps/web/public/flags/me.svg
new file mode 100644
index 00000000..297888c7
--- /dev/null
+++ b/apps/web/public/flags/me.svg
@@ -0,0 +1,116 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-me" viewBox="0 0 640 480">
+ <path fill="#d3ae3b" d="M0 0h640v480H0z"/>
+ <path fill="#c40308" d="M24 24h592v432H24z"/>
+ <path fill="#b96b29" d="M424.5 236.1a58 58 0 0 0 19.4-9.2c7-5.6 8.3-10.1 8.8-12.5s.8-4.3-1-3c-1.8 1.4-7.1 5.6-10.7 7.6-3.7 2-7 3-9 3.6-2 .5-3.6.9-1.7.1 2-.7 8.1-2.9 13-7.7 4.7-4.8 8.5-12 8.6-16.4s-.3-4-1.7-3c-1.4 1.1-6.4 7.3-9.3 9.7a90 90 0 0 1-9.7 6.9c-2.3 1.3-5.5 2.8-1-.3s13-10.3 16.5-19.7a35 35 0 0 0 2.7-15.8c0-1-.8-2.8-1.6-1.1s-6.5 13-11 18c-4.6 4.8-3.5 3.9-4.6 4.7s-2.7 2.2-.5-.6a51 51 0 0 0 12.2-31.7c0-3.6-1.5-8.6-2.2-10.1s-1.4-2.6-1.7-.9a191 191 0 0 1-5.8 18.4 75 75 0 0 1-6.7 12.8c-.8 1.1-2.8 3.6-.6-.5a77 77 0 0 0 7-27.6 44 44 0 0 0-2.6-20.9c-1.6-3.1-3-4.2-3-4.2s.3 7.8-2 19-5.7 17-5.7 17-1.5 1.7-.5-1a62 62 0 0 0 1.4-34.5c-2.3-7.5-6.2-11.3-6.2-11.3-1 10.7-.9 24.5-4.8 35.7-.7-.7-1.7-1.9-2.1.6a63 63 0 0 1-7 19.4c-4.8 8.8-6.8 10-6.8 10l-1.5-3.4c-.6-1.2-1-1.8-1.8-.2s-3.5 7.8-9.4 14.6-9.2 10.2-9 15.3c.1 5 2.8 7.7 6.4 10s4.2 3.6 3.7 6.4-3.8 3.7-6.6 3.8-6.2-.1-7.5.6-1.3 2.5-2.6 3.7c-1.2 1.3-1.8 2-3 2.2l-1 .1c-.2-13.5 5-19.5 5-19.5l-14.6-17.1-2.2 1-.4-.6a11 11 0 0 1-2.6-7.8c.7 0 2.2.6 3.5.3s.3-1.6 0-2.8c-.5-1.3-.9-5.7-.6-7.3l.4-2.3s2.1 2.3 3.4 2.3 1.2-1.3 1.4-2.8c.3-2.2 1.3-5 3-6.5 0 0 2.4 1.6 5 1.6s6.2-.7 9-3.5c3-2.7 2.9-3.3 2.9-3.3s5.3 1.8 9.3 2 8.3-.4 10.4-4.7-.6-8.2-1-8.8c-.6-.7-1.9-1.2-1.9 0s.1 4.4-2.4 6c-2.4 1.6-4.3 1.5-6.6.8a21 21 0 0 0-13.1-.4 17 17 0 0 1 6.1-4.2c3-.9 4.8.4 5.8 1.6s1.9 3 2.7.3.3-6-1-8a8 8 0 0 0-7.2-3c-3 .2-4 .7-4 .7s-1.5-4.3-5.3-5a21 21 0 0 0-14 3s-3.1.7-6.4-.2a21 21 0 0 1-5.4-2.8l1.1-3.5 1.9-.6c1-.4.7-.7.9-1.5.1-.8-1.8-2.2-1.8-2.2s-.3-2.5 2.9-4.1l2.8-1.4s1.9.3 2.6-.2.8-1 .8-1 1.4-.4 2-1.2q.6-1.5.2-3.1c-.4-1-.9-1.2-.4-1.7s1-1.6 1-2.4l.1-1s1.1-.4 1-2c0-1.7-.9-2.3-1.4-2.5l-.9-.1s0-1-.9-2.3l-1.4-2c-.1 0 .6-.4.3-1.5s-1.1-1.7-1.9-2c-.7-.2-1.5 0-1.5 0l-3.7-2.1-1.5-.8s0-1-.4-1.6c-.5-.5-1.5-.8-2-.8s-1 .3-1 .3l-6-1.4c-1.8-.2-1.9-.4-1.9-.4s-3.8-1.8-5.2-2l-2-.5s1.6-1.8 1.7-4a6 6 0 0 0-2.8-5l-1.6-.8V93l2.8.3.2-4.6-2.7.3.4-2.7h-5.8l.4 2.7-2.8-.2.3 4.5 3-.4-.4 1.7s-1 .2-2 .9a5 5 0 0 0-2.6 4.7c0 2.2 1.3 4 1.3 4l-1.8.4c-1.5.3-5.3 2.1-5.3 2.1s0 .2-1.8.4l-6 1.4s-.6-.3-1-.3-1.6.3-2 .8-.5 1.6-.5 1.6l-1.4.8-3.7 2.1s-.8-.2-1.6 0q-1.2.5-1.8 2c-.3 1.1.3 1.6.3 1.6s-.6.5-1.5 1.9a6 6 0 0 0-.9 2.3l-.8.1c-.6.2-1.5.8-1.5 2.5s1 2 1 2v1c.1.8.6 2 1.1 2.4.5.5 0 .7-.3 1.7q-.6 1.6.2 3c.5 1 2 1.4 2 1.4s0 .3.7.9 2.6.2 2.6.2l2.9 1.4c3.2 1.6 2.9 4 2.9 4s-2 1.5-1.8 2.3 0 1.1.9 1.5l1.9.6 1 3.5a21 21 0 0 1-5.4 2.8c-3.2.9-6.4.2-6.4.2a21 21 0 0 0-13.9-3c-3.8.7-5.4 5-5.4 5s-1-.4-4-.8c-3-.3-5.8 1-7.1 3-1.4 2.1-1.8 5.3-1 8.1s1.6.9 2.6-.3 2.8-2.5 5.8-1.6c3 1 6 4 6.2 4.2 0 0-.5-.3-3.9-.8-3.7-.5-6.9.4-9.2 1.2s-4.2.8-6.7-.8c-2.4-1.6-2.4-4.8-2.4-6s-1.3-.7-1.8 0-3 4.6-1 8.8 6.3 5 10.4 4.7c4-.2 9.3-2 9.3-2s0 .6 2.8 3.3a13 13 0 0 0 9 3.5c2.7 0 5-1.6 5-1.6 1.7 1.5 2.7 4.3 3 6.5.2 1.5.1 2.8 1.4 2.8 1.4 0 3.5-2.3 3.5-2.3l.4 2.3a26 26 0 0 1-.6 7.3c-.4 1.2-1.4 2.6 0 2.8 1.3.3 2.7-.2 3.5-.3 0 3.2-.7 5.3-2.6 7.8l-.4.6-2.2-1-14.6 17.1s5.3 6 5 19.6l-1-.2c-1.2-.2-1.8-1-3-2.2-1.3-1.2-1.4-3-2.6-3.7s-4.8-.5-7.5-.6-6-1-6.6-3.8.1-4 3.7-6.4c3.6-2.3 6.3-5 6.4-10s-3-8.5-9-15.3-8.6-13-9.4-14.6-1.2-1-1.8.2l-1.5 3.3s-2-1.2-6.8-10a63 63 0 0 1-7-19.3c-.4-2.5-1.4-1.3-2-.6-4-11.2-3.8-25-4.9-35.7 0 0-3.9 3.8-6.2 11.3-2 6.8-2 14.9-1.3 22 .6 6.7 2 10.7 2.7 12.5 1 2.7-.5 1-.5 1s-3.4-5.8-5.7-17-2-19-2-19-1.4 1-3 4.2a44 44 0 0 0-2.6 21 77 77 0 0 0 7 27.5c2.2 4 .2 1.6-.6.5a71 71 0 0 1-6.7-12.8c-2-5.5-5.6-16.6-5.8-18.4s-1-.6-1.7.9-2.3 6.5-2.2 10.2a51 51 0 0 0 12.2 31.6c2.2 2.8.5 1.4-.5.6s0 .1-4.5-4.7a92 92 0 0 1-11-18c-.9-1.7-1.6.1-1.7 1.1s-.7 6.5 2.7 15.8 12 16.7 16.5 19.7c4.5 3.1 1.3 1.6-1 .3a90 90 0 0 1-9.7-6.9c-2.9-2.4-7.9-8.6-9.3-9.7s-1.7-1.4-1.7 3c.1 4.4 3.9 11.6 8.7 16.4s11 7 12.9 7.7.3.4-1.7-.1a40 40 0 0 1-9-3.6 93 93 0 0 1-10.7-7.6c-1.8-1.4-1.6.6-1 3 .5 2.4 1.9 6.9 8.8 12.5a58 58 0 0 0 19.4 9.2c2.9.8.9.8.9.8l-6.8-1.4a71 71 0 0 1-16.7-7.3c-2.3-1.5-2.7-2-2.4 1a20 20 0 0 0 8.9 12.9 50 50 0 0 0 17.2 4.8c2.5.1 1.8.4.7.5a51 51 0 0 1-19.2-3.2l-.5-2c-.2-1.2-.9-1-1.2-.8-.4.3-.7.5-2 1.1s-1.3-.1-1.4-.5l-.3-3q-.1-1.1-1.1-.6l-4.7 2c-1 .4 0 1.3.5 2.3l1.5 2.6-3.7 1c-.8.2-.6.8-.3 1.4l1.9 4.6c.3.8 1.1.3 1.1.3l2.7-1.6 1 3.7s-1.3.3-2.7 1.2c-1.3 1-1 2.3.7 2.7s3.6 1.4 5.7 5.3c2.2 3.9 2.7 10.9 4 22 1.4 11 8.4 16.6 9.4 17.3s.4 1.3.4 1.3-1 1.4-.5 3.5a5 5 0 0 0 3.2 3.8c1 .3.7 1.3.7 1.3s-.5 2.3 0 6.7c.5 4.3 4 9.1 5 10 1 .8 1 1.2 1 1.6-.2.3-.9 0-2 1a12 12 0 0 0-3.4 3.6c-.8 1.6-.5 2.5-.2 4.5.2 2.1 3.3 4 3.3 4s-.6.1-.7 1.7 1 3.2 2.4 4.4c1.3 1 4 1.6 4 1.6l.3 2.2c.2 1 1.9 1.9 3 2.5s3.3.3 4.2-.2q1.3-.5 2 1c.6 1 .4 4.4.4 5.8s-.8 2.8-.4 3.5 1.8.2 3.2-.5c1.3-.8 1.6-.2 2.8.5a9 9 0 0 0 3.5 1.4c.5 0 .3-1.3.3-2.3s.2-3.4.7-3.8c.2-.2 2.3-.3 3.8-1 .7-.3 1.7-.6 1.7-1.3.1-.7-1-.7-3.2-1.9s-2.7-1.8-4.2-2.8c-1.4-1-.7-1.3-.7-1.8s.7-.9 1-1.4c.2-.6 0-1.8 0-1.8l1.8-1.8 2-2.3c.8-.6 2-3.6 2.7-4.5.8-1 2.5-2 3.6-3.4a30 30 0 0 1 11.3-7.6s-.1 2.6 1 3.9 2.6-1 7.5-4.5 8.6-4.7 8.6-4.7l2.4 3.3c1.3 1.6 2.5-.1 8.5-8.5 4.8-6.5 11-12.6 13.5-14.8l1.3.6-.4 1c-.5 1.8-1.4 3-2.6 5.3-1.1 2.4-3 3-5 6.2s-2.4 5.5-2.6 8.8 1.7 4 1.7 4-3 3-4 5.2-1.3 6.7-1.3 6.7-.5.2-1.6 2.5-3.1 2.6-6 5.5c-3 3-6.2 4.2-7.7 5-1.5 1-1 1.9-.7 3s2.5 2.4 5 3.3c2.3.9 3.2.5 4.8.5 1.7-.1.4 1.2-.3 1.9s-1.6 3.1-1.5 5.8 2.2 2 4.7 1.6a28 28 0 0 0 5.3-1.6l-.2.8c-.3.7-.4 1.3-.4 3.4q0 3 1 3.7c.5.6 1.8-.6 2.7-.9.9-.2 2.4-1.1 4.6-1.6s3-1.5 3-1.5-.5.7-.6 2.2c-.2 1.6-.1 3.8.2 5.2a9 9 0 0 0 2.9 4.2c1.5 1.4 1.8.8 3-1 1-1.7 3.3-3.9 3.3-3.9l1.7 5.5c1.5 4.9 6.5 9 6.5 9s5-4.1 6.5-9l1.6-5.5s2.3 2.2 3.4 4 1.5 2.3 3 1a9 9 0 0 0 2.8-4.3c.3-1.4.4-3.6.3-5.2q-.5-2.2-.7-2.2c-.2 0 .8 1 3 1.5s3.8 1.4 4.7 1.6 2.1 1.5 2.7 1q1-.8 1-3.8c0-2.1-.1-2.7-.4-3.4l-.3-.8s2.9 1.2 5.4 1.6 4.5 1 4.6-1.6a10 10 0 0 0-1.4-5.8c-.7-.7-2-2-.4-2 1.7.1 2.5.5 5-.4 2.3-1 4.4-2.1 4.8-3.3s.9-2-.7-3c-1.5-.8-4.7-2-7.6-5-3-2.9-5-3.2-6-5.5-1.1-2.3-1.6-2.5-1.6-2.5s-.5-4.5-1.4-6.7c-1-2.2-4-5.2-4-5.2s2-.7 1.7-4c-.2-3.3-.5-5.5-2.5-8.8-2.1-3.2-4-3.8-5-6.2-1.3-2.4-2.2-3.5-2.7-5.2l-.4-1 1.8-.8c2.4 2.2 8.7 8.2 13.5 14.8 6 8.4 7.2 10.1 8.5 8.4l2.4-3.2s3.7 1.2 8.6 4.7c5 3.5 6.4 5.7 7.5 4.4q.9-1 .8-2.6a104 104 0 0 1 11.8 4.2c4.3 1.8 4.7 2.8 8.1 5.4s8.2 2.5 12.8 1a304 304 0 0 0 21.6-7.5c4.9-2 8.4-4 9-4.9.4-1 1-3.7 1-4.7s-1-2.4-1.4-2.7q-.4-.5-.1-1.6c0-.6-.3-2.5-1-3.3-.8-.8-.7-1.1-.6-3.5.2-5-3.4-11.4-8.4-13.4 0 0-.2-.6-.6-1l-1-.6v-3.5q0-.7.6-.4c.3.2.9.9 1.7 1.1q1.2.2 1.5-1.3c.2-1 .8-2.8 1.2-3.7s-.1-1-.5-1.2l-2.2-.4q-.8-.1-.4-.5l1-2c.8-1 .1-1.1-.6-1.4l-4.9-1.3c-.9-.2-1 .6-1 1v2.6c0 .6-.5.4-.9.3l-1.7-1.2q-1-.5-1.3.7l-1.3 4.3q-.3 1.4.2 1.6c.3.2 2 0 3 0s.3.6.3.6l-1.3 2.3q-.6 1-1.8.8h-2s-5.3.2-9.2 3-5 5.3-5.6 6.7-1.3 1.1-1.9 1.6-2.3 2.3-2.3 3.4.4 1.7-1.3 2.8-3 5.9-.8 8.3 3.2 5 4 6.2c.6 1.2 0 1.7-.7 1.7s-1.8-1-2.9-1.8l-8.5-6.5c-2.3-1.7-.6-1.5-.6-1.5s.6 0 1.9-.5q2-1 .2-1.7a17 17 0 0 1-4.6-2.6c-.7-.7-1-1.4.3-2.1s4.2-2.6 2-3.2l-7.3-1.8c-2.2-.6-2.4-1.2-2.4-1.2l1.5-2.1s1.1-1.7-.2-1.9-4.8-.6-7.8-2a19 19 0 0 1-11.3-12.5v-.1c1.2 2.2 3.8 6.4 7.8 6.5 5.5.2 6.1-1.5 4.9-3.3-1.3-1.8-2.7-3.4-3-4-.4-.5-.5-1.2 1 .2 1.4 1.3 4 5.9 12.3 5.4 8.2-.6 8.2-2.2 8.2-2.6 0-1.6-1.7-1.9-2.7-2.9-.5-.5-.8-1.2.9-.6s5.7 1.4 11.3.2c2.1-.5 8-3 8.5-6 0 0-3.7-.2-6.3-1.3-2.5-1-4-2-1.3-1.4 2.7.5 8 1.6 12.7 0 2.7-.9 6.2-3 6.2-7.1 0 0-5-1-6.9-1.8q-2.7-1-2.5-1.2c.2-.2 7.3 2.3 13.8-1s6.9-7.9 6.9-9q-.1-1.4-.2-1.3a50 50 0 0 1-16.3 1s12.5-.4 18.8-4.2 6.7-11.5 6.7-11.5-7.1 2.6-11.6 3.1-7.2.5-8.3.4-1.8-.4.7-.5a49 49 0 0 0 17.2-4.8c5.3-3.1 8.6-9.7 8.9-12.8s0-2.6-2.4-1c-2.3 1.4-11 5.9-16.7 7.2l-6.8 1.4s-2.2-.1.7-.9zm-225.2 14.4-2.5 1.4-1.3-2.7q-.3-.8.2-.8l2.3-.4h.3zm76.8 45a20 20 0 0 1-8.8 7c-3 1.4-6.3 1.8-7.7 2s-.2 2-.2 2l1.4 2s-.2.6-2.4 1.3c-2.2.6-5 1-7.2 1.7s.6 2.5 2 3.2q1.6 1.1.2 2.1c-.7.7-3.2 2.2-4.6 2.6q-1.8.7.2 1.7c1.4.5 5 1.2 5 1.2l-2.3 1.8a19 19 0 0 1-8.7 3q-3.9.3-11.7 0l-5.8-.3-.5-4.3a22 22 0 0 0-3-7.8l-3.7-5 .2-1.5q.3-1-.5-3.3c-.6-1.5-3.6-3.8-3.6-3.8l-.2-3.2c0-1.6-1-7.7-2-10.6s-5.7-10.5-7.8-14a39 39 0 0 1-4.3-19.8l.5-1.3a13 13 0 0 0 3.5 3.2c6.3 3.8 18.8 4.2 18.8 4.2s-1.4.4-5.9.4-10.4-1.4-10.4-1.4-.2.3-.2 1.4.3 5.6 6.9 9c6.5 3.2 13.8 1 13.8 1s-.6.5-2.5 1.1-7 1.8-7 1.8c0 4 3.6 6.2 6.3 7.2 4.7 1.5 10 .4 12.7-.1 2.8-.6 1.2.3-1.3 1.4-2.6 1.1-6.3 1.3-6.3 1.3.6 3 6.4 5.5 8.6 6 5.5 1.2 9.6.4 11.2-.2 1.7-.6 1.4.1.9.6-1 1-2.7 1.3-2.7 2.9 0 .4 0 2 8.2 2.6 8.2.5 11-4 12.4-5.4s1.3-.7 1-.1-1.8 2.1-3 4c-1.3 1.7-.7 3.4 4.8 3.2 4 0 6.6-4.4 7.8-6.6v.1l.3.3-2.4 5.3zm66.4-178.2-1.1-2s3 1.4 5 3.5c1.8 2 1.7 3.2 2 4.2s0 2.9-.3 4.7q-.5 2.5.1 3.4l.7 1-2.7.8c-1.3.6-3 1-4 .2q-1.4-1.1-.5-1.8c.6-.5 2.8-1.2 3-5s-1.5-7.6-2.2-9m-17 10.3c.8-1.8 1-3.5.5-7.2-.4-3.1-1-5.7-1.2-9 0 0 2.3.4 5.6 3.4s4 6.1 4 7.6-.7 3.4-.9 4.8c0 1.5.4 2.8.4 2.8s-1.1.5-2.2 1.3c-1.1.7-1.9 1.2-3.5 1-1.7 0-2.7-.7-3.7-1.2l-1.5-.6s1.9-1.1 2.6-3zm-16-12.8a14 14 0 0 1 5.6-3.5c-.1 3.4-.7 6-1.2 9-.5 3.8-.3 5.5.5 7.3.7 1.8 2.6 2.9 2.6 2.9s-.6 0-1.6.6-2 1.2-3.6 1.3c-1.7 0-2.4-.4-3.5-1.1L306 130s.5-1.3.4-2.7-1-3.3-1-4.8c.1-1.6.8-4.6 4.1-7.7m-11.8 18.3c-1 .8-2.7.4-4-.2l-2.6-.8s.3-.3.6-1q.6-.9.1-3.4c-.3-1.8-.5-3.7-.3-4.7s.3-2.2 2.1-4.2c1.9-2.1 5-3.6 5-3.6l-1.2 2.1c-.7 1.4-2.5 5.3-2.2 9s2.5 4.5 3 5q.9.7-.6 1.8zm43.8 31.7c-3.2 1.7-5 1.3-5 2.7.2 1.3 3.1 2.3 3.1 2.3s-3 3.2-5.3 4.6c-2.3 1.5-5 2.4-5 2.4s-1 .2-.4 1.6a5 5 0 0 0 2.2 2.9l1.1.5s-4 4.3-5.8 5.7a15 15 0 0 1-4.3 2.5c-1.4.6-.7 3-.4 4 .4 1 1.6 2.5 2.4 2.7s1 .8 0 2.2c-.7 1.1-3 4-4 5.6h-.1l-4.2-5.6c-.9-1.4-.6-2 0-2.2.8-.2 2-1.6 2.4-2.7.3-1 1-3.4-.4-4a15 15 0 0 1-4.2-2.5 80 80 0 0 1-5.8-5.7l1-.5a5 5 0 0 0 2.3-2.9c.5-1.4-.4-1.6-.4-1.6s-2.7-1-5-2.4c-2.4-1.4-5.4-4.6-5.4-4.6s3-1 3-2.3c.2-1.4-1.6-1-4.9-2.7-3.2-1.8-4.3-4.1-4.3-4.1s3.8-1.3 5.7-5a7 7 0 0 0 .7-3.6h.1c6 2 13.1 2.8 19.4 2.8a63 63 0 0 0 19.3-2.8h.2a7 7 0 0 0 .7 3.6c1.9 3.7 5.6 5 5.6 5s-1 2.3-4.3 4z"/>
+ <path fill="#d4af3a" d="M361.2 237.8c0-10.2 4.7-16.7 4.7-16.7l-12.7-14.6c-12.2 4.7-23.3 5-33.2 0-9.9 5-21 4.7-33.1 0L274 221.1s4.7 6.5 4.7 16.6-2 17.8-3.1 22.7c-1.2 5-2.1 14.1.5 20.7a26 26 0 0 0 16.7 17c11.3 4.8 17.3 7.3 21.2 10.6 4 3.2 5.9 5.9 5.9 5.9s2-2.7 6-6c3.9-3.2 9.8-5.7 21-10.4a26 26 0 0 0 16.8-17.1c2.7-6.6 1.7-15.8.5-20.7-1.1-5-3-12.5-3-22.6"/>
+ <path fill="#b96b29" d="M357.2 242c-1.6-9.8 4-18.3 4-18.3l-10.9-12.8c-8.4 4.7-20.1 4.1-30.3-.6-10.1 4.7-21.8 5.3-30.2.6l-11 12.8s5.7 8.5 4 18.3c-1.5 9.7-5 25-4.1 31.3s5.3 13.6 9.8 17.4a58 58 0 0 0 16.2 8.7 47 47 0 0 1 15.3 10s1.5-1.5 3.7-3.2 7-5 11.7-6.8a59 59 0 0 0 16.1-8.7c4.6-3.8 9-11.1 9.9-17.4.8-6.3-2.6-21.7-4.2-31.4z"/>
+ <path fill="#1d5e91" d="M356.1 243.1a33 33 0 0 1 3.2-19l-9.8-11c-8.4 4.4-18.5 3.3-29.5-.6-11 3.9-21.1 5-29.4.7l-9.9 11s4.7 8.4 3.2 18.9-4 22.4-3.6 29.4l.2 1.4h9s.5-.6 1.5-1 1.3-.7 1.3-.7.2-1.8 1.2-2.2q1.5-.5 2-.4.7 0 1.3-.6c.5-.6 2-1.8 2.6-3.6s1-2.6 1-3.8.4-3 .4-3-.2-.6-1.1-.3-1-.6-1.2-1.5c0-.9 0-2.7.5-3.6l.7-1.1-.4-1.5s-5.7 1.2-6.7-3.3-1.1-6.5-1.3-7q0-.7-1-.7c-.8 0-2.4-.4-3.6-2.7-1-2.3-1.2-3.3-.8-4.2s.9-.5 1-.3c.3.3 1.8 2.5 2.4 1.9s.3-.6-.6-2.3c-.8-1.8-.5-2.3-.4-3.2l-.3-2.5q.1-.8 1-.6.9.4 1.3 1c.2.2.3.6.8.4.5-.3.2-1.9.2-2.4q.1-1 1.3-.5a2 2 0 0 1 1.2 1.8q0 1 .3 1.1c.3.1.6-.9.7-1.4 0-.6.4-1.5.9-.7q.8 1.1.5 2.8c-.2 1.1.2.5-.2 2.4-.4 2-.6 2.8-.5 4.2s0 2.3.8 4c.7 1.8 1.3 3.8 2.6 3.9h1.7s1.5-2.8 2.6-3.5q2-.7 4-.9 1.5-.2 1.5-.8c0-.2-.3-.3-1.7-.5s-2.5-.5-2.6-1.6c0-1 .3-2-.6-2-1 0-3.2-.8-4-2.2s-.6-1.8-.5-2.7c0-.8 1.1-2.4 1.8-.9.7 1.6 1.1 1.8 1.7 2 .5.4 1.3.5 1-.5q-.7-1.4-.6-2.5.2-1.1 1.2-1.2l3.4-1 1-.2s.1-.7 1.4-1a9 9 0 0 1 3-.5q1 .2 2.7-.4a6 6 0 0 1 2.9-.7 4 4 0 0 1 1.9.8q.6.6.4 1.4t.8.8q1.3 0 2.3.3c.8.3 1.8.7 1.2 1.5s-.7 1.7-1.2 1.7q-.5.1-.5.7-.5.4.1.8c.5.3.5.6 1.2 1.2s1.6 1.3.6 2.3-2.7 1.8-2.7 1.8-1 .5.1 1.1 1.7 2 2.1 2.3l1.2.8c.3.1.2 1 .2 1l-1.5.8q-1.2.7-2.5.8c-1.3.1-1.3 0-1 .7l1.1 2 .3 1.2s1.4.3 2.6.3l4.3-.2c2.6-.3 3.4-.4 5.9-.1 2.5.2 2.9.2 3.5.4l1.4.6s3.5 0 5.5-.5 2.4-1.7 2.1-2.4-.2-1.6-3.6-2c-3.5-.6-4.8-.4-7.5-.9s-7-1.9-7.7-5.3 2-4.8 3.3-5.5l5.8-2.3c1.4-.5 3.9-1 6.5-.7 2.7.4 4.2 1 5.3.5 1-.7 1.9-.2 1.7.8s-1.3 2.9-4.3 3.8-6.6 1-8.5.5-3.4-1.3-4.6-.9-2.5 1.9-1.3 3.7c1.3 1.7 7.9 2.3 9.6 2.4 1.8.2 8.3-.2 10.2 3s.3 6.9-1.8 7.7a29 29 0 0 1-5.7 1.5l-1.7.3s.8 1.7.8 2.4-.1 2 .7 2.6q1.3.9 3.3.7c1.4-.1 3 .8 3.1 2l.6 5.5c.2 2.5 0 4.5 0 4.5s0 1-.4 1.9c-.3 1-2 4.4-2 4.4h9.5l.2-1.4c.4-7.1-2-19-3.6-29.5z"/>
+ <path fill="#6d8c3e" d="M281.6 278.6a27 27 0 0 0 11.6 14.3c8.2 5 11.8 4.3 19.5 9.3s7.2 5.8 7.3 5.8-.4-.8 7.3-5.8 11.3-4.4 19.5-9.3a27 27 0 0 0 11.6-14.3h-76.7z"/>
+ <path fill="#d4af3a" d="M288.3 237.2c.9 1 1.5 1.2 2.9 1q1.8.2 1.9 2c.2 1 .2 3.5 1.2 5.8s4.2 2.5 4.2 2.5q.1-1.8 1-3.9c0-.2.5-1.2-.7-1.2s-1.1-.5-1.8-1.6c-.7-1-2-4-2.4-6a16 16 0 0 1 .6-5.7q.6-1.6 0-1.9h-1s.2 1-.1 1q-.5.1-.8-1c-.3-.7-.5-.6-1-.6s-.5.5-.1 1c.3.4.1 1.3.1 1.3l-1.4-1c-.5-.2-1.4.2-1.5.8-.1.5.3 2 1.2 2.7s1 2.2.6 3c-.2.6-1.5.5-1.8.2a1 1 0 0 0-1.2 0c-.4.5-.8.7.1 1.6m-.5-2.5-.7-.6-.5-.7-.1.7c0 .5.6 1.2.6 1.2zm2-6.4q.7 0 .4-.7-.5-.9-1-1-.5-.2-.6-.1l.5 1.3q0 .8.6.5zm2.4-2q-.1.8.4.5t.3-1l-.6-.7-.3-.2s.2 1 .1 1.5zm3.4.6-.1-1s0 .6-.3 1c-.2.3-.1.2 0 .5q.4.3.4-.5m5.4 23.5c.7 1.6 2.4-.9 4-2.9s1.5-.4 1.3 1.2a8 8 0 0 0 1 4.5c.7 1 1.2.4 1.5-.4.2-.7.5-2.4 1-3.2.5-.7 1 0 1 .6.1.7 1 2.2 1.7 3.1.8 1 1.2-.3 1.5-1.4l.7-3.5c.2-.6 1 0 1 0l1.6 1.5c1 1 1.1-.6 1.2-1.4s-.1-2.5.2-2.8 1.2.4 2.5 1 1.3-.6 1.2-1.3a7 7 0 0 0-2-3.4q-1.6-1.6-1-2.5c.4-.5 1.7 0 2.6-.1l1.8-.3c.7-.2.7-.8.7-.8s-.5-.8-1.4-1.6-1.4-1.4-2.5-1.6-2.6 0-2.6 0l-.2-.4q-.2-.4-.6 0l-1.2 1.1q-.6.6-1 .5c-.2-.2.3-.6.3-.6s.5-.4 1-1.4q.9-1.6.3-2.6c-.4-.4-1.5 0-2.2 0-.6 0-1 .2-1-.2 0-.3.6-.1 1.4-.2s1.3-1 1.5-1.9.5-.6 1-.2q.7.7 1 0l1-1.8q.9-1.4.3-2.6c-.6-.8-2-.7-2.6-.2q-1 .6-1.1 2.1c-.2 1.2-.5.5-.5.2 0-.4-.4-1-.2-1.5q.2-.8 0-1c-.2-.2-.1-1-1.2-1.1a9 9 0 0 0-3.5.3c-1 .2-.9 1.2-.9 1.2l-1.7.1-2.8.7q-1.2.2-1.1.7l.1 1.1s.7 0 1 .3.2.5-.2.7q-.6.1-.6.7 0 .8.7.7t2.3.4c1.6.5 1.3 1.4 1.2 2 0 .5-1.5 1.2-2.3 1.2s-1 .1-1 .6 1 .4 1 .4l2.6.3c1.7.2 2 .6 2.8 1.2s.2.9-.2 1q-.7.6-1.5 1t-1.5.7c-.5.1-1.8 0-4.2 1s-3.3 4.1-3.3 4.1l1.4-.7q1.8-.8 3.8-2c1.2-.7 1.2.4.6 1.5s.6.9 1 .6l2-1.3c1.2-.6.8.4.8.4s-.4.7-.5 2.5c-.1 1.7 1.7 0 2.5-1 .9-1.1 1.2 0 .6 1.2-.6 1.3-1.8 2.3-2.5 2.3s-1.2-.8-1.3-1.2c0-.4.3-1.7-.1-2s-1.7 0-2.6.6-1 .1-1.3-.4c-.2-.4.3-.6.1-1q-.4-.2-1 .2l-2.8 1.5c-1.7.9-1.6 1.3-1.6 2.5s.3 1.5 1 3"/>
+ <path fill="#d4af3a" d="m316.7 224.2 1-.5 1.5-.3q.9-.2.4-.8 0-.5-1.4-.5c-.9 0-1.5.5-2 .7l-1.1.4.4.6q.7.7 1.2.4m3.8 3.7.8-.2 1.3-.6q.8-.1 1.2-1c.4-.8-.4-.8-1.5-1q-1.5-.3-1.7.5c-.1.4 0 .8-.5 1.6s0 .7.4.7m-.3 1c-1 0-2.3 1.5-2.7 1.8q-.4.5-.2.6l.4 1.2c.2.7.2 1.7.2 1.7h.8q.8 0 1.6-.7a4 4 0 0 1 1.8-.7c.9-.2 1.3-.3 2.2-.8s-.5-1.4-1.5-2.2a4 4 0 0 0-2.6-1zm-14 3.6q1.2-.2 1.2-1 0-1.1-1.5-.9c-2.6.3-5.1-.7-5.6-3.2 0 0-.8 1.6.8 3.4s4.3 1.8 5.1 1.7m-8.9 41 .5.4h4q.9-.4.7-1.2 0-.7 1-4.7c.5-2.6 1.5-4.5 1.9-5.6s-.4-1.4-.7-2l-.8-2.5c-.1-.6-1-.5-1.6-.5-.5 0-.6.9-.7 1.7l-.8 5.1c-.4 2-2.7 4.7-3.3 5.3q-1 .9-1.6.8c-.4 0-1.4 0-1.8.3a2 2 0 0 0-1 1.6c0 .6.9 1 .9 1l1-.8q.6-.5 1.5-.6t.5.4c-.2.3-.1.4.3 1.2zm-6-.2q-.6.1-.7.6h2.6l-.3-.7q-.6-.3-1.7 0z"/>
+ <path fill="#d4af3a" d="m294.8 273.2-1 .7h2.9q.1-.4-.2-.9c-.7-.5-1.3 0-1.7.2M319 272q-.4 0-1 .6t-.7 1.2v.1h1.3v-.1q0-.5.7-1.1c.5-.5 0-.7-.3-.7m2.3 1.3q0-.6-.4-.7l-1 .8-.5.5h1.7z"/>
+ <path fill="#d4af3a" d="M332.3 260.4c.8-.6.7-.8.7-1.5q0-.8-.3-1a6 6 0 0 0-2.8-.8c-1.1 0-3.4.3-4.2.8s-1.3 2.7-1.3 3.8q0 1.3.5 1.2c.5-.1.8-.8.8-.8l1.8 2.5c.7 1 .4 1.4 0 2.2-.2.8-1.4 2.9-2.2 3.3-1 .5-1.6 0-2.6-.1q-1.5-.2-2.3.7c-.8.9 0 1.1.4 1.1q.5-.1 1.2.5c.3.3.1 1.2 0 1.6h5.2c.9-.4 1.5-1.6 1.7-2.3.3-.7 1.4-1.7 2-2.2.5-.5.5-.8.5-2s-.2-1.7-.6-2.5c-.5-.8-.8-2-.6-2.6 0-.7 1.2-1.4 2-2z"/>
+ <path fill="#d4af3a" d="M323.7 247.4c.6.9.3 1-.4 1.2a9 9 0 0 1-2.8.2c-1.1-.1-1.1 0-1.1.6a5 5 0 0 1-.8 2.7c-.7 1-1.6.6-2 .2q-.9-.5-1 .4l-1.2 2.1c-.5 1-.9 1-1.3.9s-.7-.7-1.1-.7q-.6-.2-1.6-1.8c-.6-.9-.9.1-1.3 1q-.4 1.3-1.5 1.2c-.7 0-1.6-1.5-2-2.3s-.7-1.6-1.3-1.6-1.7 1.4-2.4 1.7q-1 .6-1.3-.2-.5-.4-1.1 1.2-.4 1.8.6 2.3c.6.3 1.7-.5 2.5-1s1.1-.5 2-.5.7 1.4 1 3.3c.4 2 1.5 2.2 1.5 2.2s.4.3 1.3-1.1 1-3 1.8-3 1 .2 1.8 1.4 1.5 2 2 1.1.9-2.1 1.5-2.6 1-.6.4.3-.8 1.7.4 1.4 5.7-2.2 7.6-2.6l4.7-.5 4-.3c1 0 1 0 1.1-.7 0-.7-.5-.5-2.3-.5q-2.5 0-4.3.4-2 .3-1.6-.2.1-.4 2-.7l6-.5c1.6 0 1 .5 1 1.5-.2 1 0 2.6.2 3.5 0 1 .1 1.3 1 2.7s3.7 2.2 4.5 2.6c.9.5.7 0 .7-.8s.7-.8 1.4-.3 2 .7 2.9 1q1.1.2 1 .8l.2 2.4c0 1 0 1.2-.4 1.8l-2 2.3s-.8 0-2.3.4c-1.6.3-2.1 1.1-2.3 1.7-.1.7.3.9.4 1.1v.8h.4l.5-.8c.6-.7 2-.9 2.9-.5q.8.7.5 1.3h3.6l2-3.9a6 6 0 0 0 .6-2.6c0-1.2.2-5.8 0-6s0-1.1 0-2.4c-.1-1.3 0-2.3-2.4-2.5s-3.2-1.2-4-2-.6-2.7-1.2-5-2.3-2.6-5-3.1a23 23 0 0 0-7-.5c-2.2.2-4.8.5-6.2.4-1.5-.2-1.2.2-.7 1z"/>
+ <path fill="#d4af3a" d="m337.3 273.4-.5.5h2.4l-.2-.7q-.6-.5-1.7.2m4.4-.2-.8.7h2.5v-.3c-.1-.4-.9-.8-1.7-.4m-61 1.6.5 2.3h77.6l.6-2.3h-78.8zm52.3-37.1c2.4 1.6 10.2 1.7 13.9 2.4 3.6.8 3.4 3.6 2.3 5-1.2 1.5-6.3 1.7-7.2 1.8.5.3 1.2 1.4 1.2 1.4l2.1-.2a11 11 0 0 0 6.1-2c1.9-1.6 1.8-4 .1-5.8-1.6-1.6-4.3-1.8-7-2.1s-5-.5-8-1q-4.7-.9-4.7-3.6c0-2.7 1.7-2.8 2.9-3.1s3.1-.9 4.9-.2c1.7.6 3.7.7 7.1.3 3.4-.5 4.2-2.8 4.2-2.8s-.4.2-2.2.2c-1.7 0-3-.7-6-.7-3.2 0-4.3 1-5.8 1.6-1.5.5-5.4.9-6.5 3.4-1.2 2.5.1 3.7 2.6 5.4"/>
+ <ellipse cx="312.6" cy="226" fill="#b96b29" rx="1.5" ry="1.4"/>
+ <path fill="#b96b29" d="M344 228.4c-2-.2-4.5.4-4.5.4s.5.4 1.2.3l3.7.3c1.9.3 3.2-.6 3.2-.6z"/>
+ <path fill="#1d5e91" d="M325.6 264.6c-.5-.8-.6-.7-1.2-.2s-1-1.2-1.1-2.2l.4-4.1s-2.6.5-4 1l-4 .9q-1.6.4-2.4.4c-.6-.2-1.9-.2-2.9-.2s-1 .2-2 1.2-1.3 1.5-2 3.4a20 20 0 0 0-1.4 6l-.7 3.1h12.2l.5-1.2a3 3 0 0 1 1.4-1.4c.5-.2 1-.2 1.2-.8q.4-.8 1.4-1.2 1.2-.4 2.8.1c1 .3 1.4-.4 1.7-.8l1-1.6c.5-.7 0-1.3 0-1.3l-1-1.1zm19.5.3c-.1-.7 0-.8-.5-.9q-.7 0-1.7-.5c-.6-.2-.5 1.4-.5 1.4s-1.5.2-3.1 0-3.5-1.7-4.2-2.2l-1.4-1.5-1 .7q-.7.6-1 2.4c0 1 1.3 2.2 1.4 3.2s-1.2 3.1-1.8 4a9 9 0 0 0-1.2 2.4h5.9l.6-1c.6-.6 1.6-.7 1.6-.7l.2-.8q.3-.8 2.3-1.8c1.5-.5 3.3-.6 3.3-.6s.7-.6 1.2-1.4 0-2 0-2.7z"/>
+ <path fill="#d4af3a" d="M296.2 329.6c1.1.4 3.2-.4 4.2-1.6s1.4-3.2 2.1-4.3l1.3-1.9s-.2 1.8-1.2 4.3a16 16 0 0 0-.8 6.8c.4 2.7 2.2 3.1 3.2 2.7q1.4-.4 3-3.2l1-2c.6-1.3 1.2-3.5 1.5-3.4.7.1.3 1.6 0 2.6-.5 2-1.5 5-1.6 7 0 1.7.2 5 2 5.2 1.8.1 2.8-1.5 3.8-5.2s1.2-5 1.7-5 .4 2.6.4 3.7a18 18 0 0 0 1.6 7.4c.9.8 1.6.7 1.6.7s.7.1 1.6-.7 1.6-6.3 1.6-7.4c0-1 0-3.6.5-3.6s.6 1.2 1.6 4.9 2 5.3 3.8 5.2c1.9-.2 2-3.5 2-5.3s-1.1-4.8-1.6-6.9q-.6-3.1 1.6.8l1.3 2.5q1.6 2.4 2.6 2.7c1 .4 2.8 0 3.2-2.7s-1.6-10.5-1.6-10.5l1 1.3c.7 1.1 1 3 2 4.3s3.1 2 4.2 1.7q1.5-.6.4-6.1c-1.1-5.5-4-5.7-6.4-8.6a32 32 0 0 1-4-8.2 27 27 0 0 0-7.9 5.6l-5.9 6.3s-1-1.3-5.8-6.3a27 27 0 0 0-8-5.6c-.2.6-2.2 5.2-4.4 7.9-1 1.3-2.5 2.3-3.6 3.6a12 12 0 0 0-2.4 5.3q-1.2 5.5.5 6z"/>
+ <path fill="#d4af3a" d="m296 342 2.2-2c0-.1 1-.8.8.9-.3 1.6-.8 5-.5 6.4s.5 2.7 2.3 1.6c1.8-1 2.3-1.7 3.1-2.6s1.8-1.3 1.6.1c-.3 1.4-.9 3.6-.6 6.4q.6 4.5 3.6.9a32 32 0 0 0 3.5-5.9c.5-1.2 1.6-2.2 1.6 0 0 4.8 1.1 11.8 6.4 13.6 5.3-1.8 6.4-8.8 6.4-13.6 0-2.2 1.1-1.2 1.7 0a32 32 0 0 0 3.5 5.9q2.9 3.5 3.5-.9c.3-2.8-.3-5-.5-6.4s.6-1 1.5-.1 1.3 1.5 3 2.6c1.9 1 2-.2 2.4-1.6s-.2-4.8-.5-6.4.8-.8.8-.8l2.1 2a6 6 0 0 0 3.4 1.2s.9-5-1.2-8c-2-3-2.9-4-2.9-4s-1.1 0-2-.4c-1-.3-1.8-1-1.8-1v2.8l3.1 3.1c.6.8 1.8 2 0 .8l-3.1-2.4s-.4 2.5-1.1 3.2c-.7.6-1.8.7-2.2.5l-.4-.1-.2 1s1.6 3 1.8 4.1q.4 1.8-.8-.5c-.7-1.5-2.2-3.5-2.8-4.5-.6-1.1-1.6-1.8-1.5-.5s-.5 3.9-1 4.8q-.6 1.3-.7 1.2l1.1 4c.1.7 0 1.5-.5.6l-2.1-4.2s-2.1 0-2.7-.7-1.6-2.9-1.6-2.9-.8 3-1.5 4-2.4 1.8-2.4 1.8l-.2 6q-.1 1.4-.6 1.3t-.5-1.3l-.3-6s-1.6-1-2.3-1.9c-.7-1-1.6-3.9-1.6-3.9s-1 2.3-1.5 3c-.6.5-2.7.6-2.7.6s-1.6 3.4-2.2 4.2c-.5.9-.6.1-.5-.5l1.1-4.1s-.3-.3-.7-1.2c-.5-1-1-3.4-1-4.8.1-1.3-.8-.6-1.5.5s-2 3-2.8 4.5-1 1.7-.8.5 1.8-4.1 1.8-4.1l-.1-1-.5.1q-.8.4-2.2-.5c-.7-.6-1-3.2-1-3.2l-3.2 2.4c-1.8 1.2-.6 0 0-.8l3.2-3.1v-2.8s-1 .7-1.8 1c-1 .4-2.1.4-2.1.4l-2.9 4c-2 3-1.2 8-1.2 8s2 0 3.4-1.3zm25.8 33.5L320 373s-.4.8-1.8 2.4a43 43 0 0 1-4.5 4s.3 4.2 1.8 6.5c1.3 1.9 2.5 3.6 4.5 5q2.9-2.1 4.5-5c1.6-2.3 1.9-6.5 1.9-6.5s-3.2-2.4-4.6-4z"/>
+ <path fill="#b96b29" d="M319.4 380.6c0 1 0 3.4.6 3.4s.5-2.4.6-3.4l.2-3.3h-1.6s0 2.3.2 3.3"/>
+ <path fill="#d4af3a" d="M320 151.3c-5.7.1-12.3-.7-16-2l-3.8.8a52 52 0 0 0 19.8 3.3c8.8-.1 13.8-1 19.8-3.3l-4-.8a51 51 0 0 1-15.8 2m20.5-4.7c-.4-.4-3-2.2-3.7-2.5-.6-.4-.1-1.3 0-1.6s3-1.2 4.6-1.7 1.4-.7 1.4-.7-1-1.1-6.8-1.7c-5.8-.7-16-.5-16-.5s-10.2-.2-16 .5-6.8 1.7-6.8 1.7-.2.3 1.4.7a19 19 0 0 1 4.6 1.6c.1.4.6 1.3 0 1.6l-3.7 2.6q-.8.8.2 1c1 .2.7 0 2.7-.4a94 94 0 0 1 35.2 0c2 .4 2 .4 2.7.4q1-.2.2-1"/>
+ <path fill="#d4af3a" d="M333.9 149c-4-.4-6.5-1-13.9-.9s-10 .5-13.9 1c2.5 1 6.6 1.5 13.9 1.5s11.4-.5 13.9-1.5zm-15-57.5-.1 2.8 3-.2-.3-2.7 3.3.5.1-2.6-3.4.3.6-2.9h-3.8l.7 2.9-3.3-.3v2.6zm6.5 7.1h-4v-3.4l-1.3-.2-1 .1v3.5h-4.3a5 5 0 0 0-.2 2h11v-.6z"/>
+ <path fill="#1d5e91" d="M320.1 105a6 6 0 0 0 5.2-3.4H315a6 6 0 0 0 5.2 3.5zm2.3-9.5v2.4h2.7a5 5 0 0 0-2.7-2.4m-4.5 0a5 5 0 0 0-2.8 2.4h2.8z"/>
+ <path fill="#b96b29" d="m323.3 140-3.3-1.5-3.3 1.7c-1.2.5-1 .4-1.4 1.2q-.4 1.2.6 1.4l4.1 2 4.6-2q1-.5.4-1.5-.2-.7-1.7-1.3"/>
+ <path fill="#d4af3a" d="m320 139.3-3.5 1.7 3.6 1.9 3.5-1.9zm0-12.3s-.3 1.2-.7 1.8q-.7.7-.6 1.7c0 .6.8 1 1.3 1s1.2-.4 1.3-1q0-1-.6-1.7c-.4-.6-.7-1.8-.7-1.8"/>
+ <circle cx="320" cy="132.8" r=".7" fill="#d4af3a"/>
+ <path fill="#d4af3a" d="M317.6 129.4s1.1-1.3 1.6-2.2l.8-1.5.8 1.5c.4.9 1.6 2.2 1.6 2.2s1.6-1 2.6-4c1-3.2-.3-6.6-.7-10.1l-.8-9.8a7 7 0 0 1-3.5 1 7 7 0 0 1-3.6-1s-.3 6.2-.8 9.8-1.6 6.9-.6 10c1 3.2 2.6 4 2.6 4z"/>
+ <ellipse cx="320" cy="122.3" fill="#b96b29" rx="2.8" ry="2.7"/>
+ <ellipse cx="320" cy="115.8" fill="#b96b29" rx="2.7" ry="2.6"/>
+ <ellipse cx="320" cy="109.7" fill="#b96b29" rx="2.6" ry="2.5"/>
+ <ellipse cx="320" cy="121.8" fill="#d4af3a" rx="1.5" ry="1.4"/>
+ <circle cx="320" cy="115.4" r="1.4" fill="#d4af3a"/>
+ <ellipse cx="320" cy="109.2" fill="#d4af3a" rx="1.3" ry="1.2"/>
+ <path fill="#b96b29" d="M319.9 336q.3.1.2-1.2l.4-4c.2-1.2-.3-1.1-.6-1-.3 0-.5.9-.5 1.4l.1 4.2q0 .7.4.7z"/>
+ <path fill="#d4af3a" d="m290.4 359.1 5.2-3.6a12 12 0 0 0 4-4h-1q-1-.1-1.1-1.5l.2-4.1c.2-1.8-.3-3.3-.3-3.3s-1.2 1.1-3 2c-2 1-2.7.6-2.7.6l-.4-1.9-2 3.7c-1.1 2-4.2 4.2-6.4 5.8a29 29 0 0 1-6.4 4c-1.8.7-.7 1.5-.7 1.5s1.8 1.8 6.5 2.7c4.6.8 6.9-1 8.1-1.9"/>
+ <path fill="#d4af3a" d="M306.8 357.3q-2.6-.1-3-2.6c-.2-1.2 0-5.7 0-5.7l-1.1 1.2c-.7.8-2 1-2 1l-1 1.6a9 9 0 0 1-3 3.2l-4.6 3.2a28 28 0 0 1-4.3 3.1 7 7 0 0 0-3.6 4.7c-.5 2.4 0 3.1 1.8 3s2 0 5-.7c3-.8 7.3-4.1 10.4-6 3-2 5.4-6 5.4-6"/>
+ <path fill="#d4af3a" d="M315 360s-1.2-1.6-1.7-3.4l-1.3-5.4-1.5 3.3c-1 2.1-2.7 2.7-2.7 2.7s0 .9-1.5 2.7a21 21 0 0 1-5.7 4.8c-2.1 1.2-5 3-6.4 5.1-1.5 2.2-1.7 4.4-1 5.4.8 1 1.8-.1 3.2-.9 1.4-.7 5.5-1.3 11.2-4.4 5.6-3 7.4-9.9 7.4-9.9"/>
+ <path fill="#d4af3a" d="M317.5 372.7c1.5-2.4 1.8-8 1.8-8l-1.3-1c-.8-.7-2.2-2.9-2.2-2.9l-2 3.8c-1 1.8-1.5 2.4-3.6 4.3-2.1 2-5 3.9-6.2 6-1.2 2-.5 6.1.3 7.5s2 1 3-.1l3.7-3.3c2.1-1.8 5-4 6.5-6.3"/>
+ <path fill="#b96b29" d="M299 325.3c.8-1.7 1.7-3.7 2.5-4.8l1.3-2.2s-2 1.8-2.8 3.1q-1.2 2-1.7 4-.6 2.3.7 0zm8 1.5.5-1.9s.3-1 .1-1.1q-.5-.2-1.6 2.5c-.5 1.8-1.4 4.5-1.2 4.6s1.8-3 2.2-4.1m6.3 5 .3-.8s.7-2 .7-2.5-.2-1-.8.1-.6 2.2-.7 2.6c0 .5-.7 2.1-.5 2.3s.6-.9 1-1.7M293.7 351l-.8-.5-1.3 1.5q-1.1.8-2 1.7a8 8 0 0 1-2.7 2.3q-2 1-1.6 1.1c.3.2 1.2-.3 1.2-.3s.3 0 1.9-1 2-1.4 3-2.3 2.3-2.5 2.3-2.5m6.8 8.1c.6-.6 1.3-1 1-1.4q-.6-.5-1.4.2l-2.8 2.6-2 1.5c-.7.6-2.3 1.4-3 1.8s-.1.5-.1.5l1.2-.5 2.5-1s.7-.3 1.6-1 2.4-2 3-2.7m7.9 5.5c.5-1 0-.8-.9-.4-.8.3-2.7 2.4-3.8 3.1q-1.6 1-3 1.6c-.9.4-.9.7-.8.9q.1.3.8 0l1.6-.9 1-.2q.8 0 2.4-1.6c1.2-1 2.2-1.5 2.7-2.5m3.7 7.2c-1.4.8-3.8 2.7-4.5 4q-1 1.9-.8 2.3c.2.2.9-.2 1.2-.7l.9-1.2s2.4-2.4 3.3-3a8 8 0 0 0 2.6-3c.4-1 .1-1.4.1-1.4s-1.5 2.1-2.8 3"/>
+ <path fill="#c52126" d="M275 170a22 22 0 0 0-8.3-2.6c-3.7-.3-6.5.2-9.5 1q-3.2.9-5.7.3c-2.6-.7-4.6-3-5.3-6 0 0-2.4 3.1 0 6.5a7 7 0 0 0 4.4 2.9c5 1 10-2 14.3-2.4 4-.2 7.3 2.4 7.3 2.4s1 .8 2.3 0q2.3-1.1.5-2.2z"/>
+ <path fill="#d4af3a" d="m260.3 317.5-1.2-.2c-.7 0-2.2-.6-2.7-.8q-.7-.4-1.6.3c-.4.5-4 2.7-4 2.7h6c2 0 3.5-2 3.5-2"/>
+ <path fill="#d4af3a" d="M277.4 316.4v-.5l-.8-1.8s-1 .6-1.9 1.5c-1.2 1.3-2.4 3-3 3.7-1 1.3-2.4 2.5-1.2.5s1.6-3 2.6-4.4l1.5-2-3.4-.5c-2.5-.3-4.1-1.3-5.3-2l-3.3-1.9s-4.3 1.9-5.9 2.3-2.6.6-1 1.4 2.9 1 3.7 1.5a11 11 0 0 0 4.6 1.2c1.4 0 3.9 0 3 1q-1.5 1.6-3.2 6a20 20 0 0 0-1 7v2.5s1.8-2 6.6-5 6.6-4 7.5-4.4 1.3-.4 1.1-1.5z"/>
+ <path fill="#d4af3a" d="m295.6 302-.9-.4h-.2a15 15 0 0 0-4.6 4.2c-1.2 1.9-2.4 2-1.1 0a18 18 0 0 1 3.2-4.2l1-.8a53 53 0 0 1-7.3-4.2l-1.6 2.5c-1 1-3.3 2-3.3 2s1.8-2 2.4-3.3l.8-2.5a32 32 0 0 1-4.8-4.6 18 18 0 0 1-4.1 7.4c-3.8 4.2-11.3 6.3-11.3 6.3s-2.6.3-.5.9c2.2.5 3.7 1.5 7.8.8l5-1.1c.6-.2 2 0 0 .7-2 .8-6.9 1.5-8.7 1.4-1.9-.2-4.4-.6-1.8.8s3.8 2 5.4 2 2.3.5 3.9.5 2-.3 3-.5q1.9-.3 2 .6c0 .4-1.6 1.7-1.5 4.7q.1 4.7.5 6c.3 1 1 2.4 1.4 3.2.5.8.7 1.7 1.1-.1s1.5-4.4 1.9-6.1.6-1.8.7-2.7c.2-.9 1.2-1.6.7 0l-1.3 5.2c-.3 1.5-1.1 4.2.2 2 1.4-2 6.4-7.7 7.3-8.8l2-2.8c.7-.8 2.4-1.9 3.3-3.1a29 29 0 0 1 3.9-4zm-69.5-129.2c0 3.1 3.5 9 5.5 12.2q2.7 4.5 2 4.6c-.2.2-1-1.4-2.1-2.8s-3.2-4.7-5-7.2c-1.6-2.5-4.2-8.4-4.5-8.9-.4-.5-.5-.9-1.4-.2s-2.5 7.2-.5 11.6 5 7.6 6.3 9.2 3 4 2.7 4.1c-.3.2-.8-.4-2.3-2L221 187a52 52 0 0 1-3.8-6q-.4-.6-.8-.2c-.5.6-1.4 1.9-1 5.4a17 17 0 0 0 5.3 10.2c2.3 2.4 4.6 4.5 4.2 4.9-.3.3-2.7-1.8-4.3-3.3-1.6-1.6-5.5-5.4-6.4-6.5s-2.1-.5-2 3.7c0 4.3 4.7 8.5 6.6 10.9 2 2.3 4.4 3.7 4.2 4.2s-2.2-.7-3.4-1.6l-7-4.6c-1-.7-1.4.6-.2 4.6s4.7 7.2 6.8 8.7 5.4 3.3 5.2 3.8q-.4.4-3.6-1.1a39 39 0 0 0-6-2.3c-1.6-.5-1.6.7-1.6.7s-.3 3.5 2.2 6.2a13 13 0 0 0 8 4.3c2.6.5 3 .6 3 1q-.1.5-1 .5l-5.4.2q-3.3 0-3.4 1.6c-.1 1.6-.1 2.3 3.3 4.6s7.2 2.6 8.8 3 1.7.4 1.4.9-1.1.4-3.6.7c-2.6.2-4.1 1.2-4.5 2-.3.6.2 2.6 2.3 4q2.9 2 8.8 1.6c4-.3 5-.3 5.1.3.2.7-1.2 1-3.2 1.2-2 .4-3.5.4-4.7 1.3-1.1 1-.2 2.9 1.7 4.3 2 1.4 6.8 1.4 8.8 1.3 2-.2 5-.9 5.3-.4s-1.5 1.4-3.6 2.1c-2 .8-2.7 1.2-3 2.1-.5.9-.1 1.7 2.3 2.6 2.5 1 6.1 1 8 0q2.8-1.2 3.2-.8.4.5-.4 1.1c-.4.5-2 1.8-4 2.3-2.1.6-2.3.6-3 2.2q-1 2.7 4.8 3.2c3.8.1 8.8-1.4 10.4-2.3q2.2-1.4 2.5-.8.4.3-.6 1.1c-.8.6-3.4 2.5-4.7 2.8-1.2.3-1.4 1.3-1.4 2.1 0 1-.3 2.6 3 3.5q5.3 1.4 11-2.4a8 8 0 0 0 2.2-2 28 28 0 0 1 .2-8q-1.2 0-3.4-.9c-2-.8-2.8-2.6-3.3-3.6q-.6-1.3-2-.8-1 .5-2.6.6a8 8 0 0 1-5.3-2.8c-1.8-2-1.4-4-1.5-5 0-1-1.7-.3-2.5-.3s-3.1-.4-5.3-1.9c-2.1-1.4-2.1-3.4-2.3-4.3q-.5-1.2-1.7-1.6c-.7-.2-1.8-.5-3.3-1.7a7 7 0 0 1-2-4.4c-.1-.8-1-.8-4-2.4s-2.7-4.7-2.6-6 1.5-2.3 1.5-2.8-1-.6-2-1.2-3.5-1.6-3.6-5.4c0-3.7 2.4-4.1 2.4-4.1l-1.4-.8c-1-.6-3.8-2.5-3.8-4.7s1-3.2 1.8-3.8 2.7-1 2.7-1-1.3-.9-1.8-2.6-.7-3.9.5-5.4c1.3-1.6 3.4-1.6 4.6-1.6s2.1.6 2.5.3q.7-.3 0-1.5a7 7 0 0 1 0-3.7c.3-.8.4-2.2 3.2-3.2s6 1 6.9 1.6c.9.5.5-.8.5-1.7 0-1-2-3.3-4.2-6.6a73 73 0 0 1-5.6-10.2 66 66 0 0 1-4.5-13.4c-.3-1.6-1-.8-1-.8s-.6.2-2.2 4.1a25 25 0 0 0-1.6 10.5"/>
+ <path fill="#d4af3a" d="M276.5 241.4c-1.7-.1-4-1-5.7-3.6-1.7-2.5-4.3-3-8.8-3-4.4.1-6.5-2-7.6-5.2-1.1-3 .1-6.6 4.7-8.9 4.6-2.2 6.7-4.7 6.8-8.6.2-3.9-4.5-8.7-9.3-14.1-4.7-5.5-8.4-13.2-8.4-13.2s-1.4 1.8-1.4 3.7c0 1.8.7 3.7 0 4.2s-1-.8-3.7-2-5-1.4-6.7.6 0 5.4 1.5 7c1.6 1.7 2.9 3 2.4 3.5s-2.7-.9-3.5-1.4-2.6-2.5-5.3-2.3-3.6 1-3.8 3.3c-.3 2.3 2.4 4.2 4.1 5.1q2.6 1.4 2 2-.6.3-1.7-.3a8 8 0 0 0-4.3 0c-1.4.6-3.6 2.5-1.5 4.8s6.4 3.2 7.2 3.3c.9.2 1.3 0 1.4.6s-1.8.7-4.1.8c-2.4.1-3 2.4-2.7 4 .3 1.8 4.2 3.7 6.4 4 2.1.4 2.9 0 3 .7q.3.8-1.4 1.2c-1.2.3-3.5.6-4 2.5s-.5 2.7 1.3 4.4c1.8 1.6 4.8 1.4 5.6 1.2.9-.2 2-1.1 2.8-.3.9.9-.8 1.6-2.3 2.6s-1.3 3 1.2 4.4 5 .9 6 .5c1-.3 2.4-2 3.1-1 .7 1.1-2.2 1.5-3.4 3-1.2 1.4-.7 3.8 1.7 5.3s6.4.4 7-.2q1.2-1 2.1-.3c.9.7-.2 1.9-.8 3-.5 1.3-1.4 4.8 2.2 6.2s6.9-1.7 7.5-2.3q1-.8 1.7-.5.6.5-.1 1.4c-.5.6-1.4 3.2 1.2 5a6 6 0 0 0 4.7 1l2-7.2h-.6q-.4.2-.4.7t-.2.4q-.3 0-.8.5-.8.6-1.1.5c-.3-.2 1-.8 1.2-1.2.3-.4 1-1 1-1.4q0-.5.9-1.1l.4-.6a101 101 0 0 0 1.7-12.7zM203 187.6a37 37 0 0 0 9.3 12.1l-1-3.2c-.4-1.4-.2-2.9-.2-2.9s-1.3-1.7-3.8-5.6c-2.6-3.9-3.9-9.6-3.9-9.6s2.4 5.7 4.2 8.8c1.8 3 4 5.5 4 5.5s.6-2.7 1.2-2.8q.7-.2 1.3.8.8.8.9.6l-1.6-2.8-1.5-2.2c-1.5-2.3-4.6-6.6-6.1-10.9-1.6-4.3-5.1-15.1-5.7-18.3s-1.2-1.4-1.8.9a28 28 0 0 0-1 10.7 54 54 0 0 0 5.7 18.9m5 21 3.5 2.5-.6-1.7-.3-2.9-2.8-2.5a42 42 0 0 1-5.6-6c-3-3.6-.6-1.4 1.8 1.2s7 6.3 7 6.3v-.8a3 3 0 0 1 .7-1.9c.4-.6.2-.6-2.4-2.6a75 75 0 0 1-17.6-24.4s-1.4 9 4 18.7c5.4 9.9 10.8 13 12.2 14.1zm28.5 56.3c3-1.2 2.1-4.1 2.1-4.1s-1.8.5-3.5 1.2-5.8 1.8-7.4 1.8-1.7-.2-1.7-.4 1.2 0 3.6-.4a29 29 0 0 0 7.2-3.1q1-.7-.4-.7a5 5 0 0 1-2.4-.9c-.4-.3-1.5.1-4.2.8a51 51 0 0 1-21.5.7c-.6-.2-1.3.2.7 3.7 2.1 3.5 9.4 5.3 14.4 5.3s10.1-2.8 13-3.9zm-13.4-7.2c5.2 0 7.1-1.5 7.1-1.5l-.7-1.3c-.7-1-.6-2.9-.6-2.9l-3.4.6c-2.1.3-4.6.6-7.4.1s-1.6-.8.6-.5c2.2.2 6.4-.6 7.8-1s.8-1-.1-1.3-3.5-1.9-3.5-1.9-6.3.8-12.1.2c-6-.7-9.6-2.2-10.8-2.4s-1.2.3-1.2.3-.3.6 1.8 3.7c2 3.2 6 5.3 9.3 6.3q5.3 1.6 13.2 1.6m-1.4-12.2-.5-1.3c-.3-1 .6-1.9.6-1.9s-1.2-.3-5.1-.8-4.1-.8-6.5-1.3-4-1.3-4-1.5q.2-.4 2.3.6c1.4.5 7.4 1.2 9.9 1.5q3.7.6 4.3.4c.5-.3 2-.7 2-.7l-2.4-.5a8 8 0 0 1-3.2-1.3c-.7-.5-.9-.6-4-1-3.3-.3-5.8-1.3-11.5-3.4s-10-4.6-11.1-5.5c-1.2-1-1-.3-.8 1 .3 1.1.3 2.6 3.2 6 2.8 3.3 4.2 4.8 11.5 7.4s15.3 2.3 15.3 2.3M200.2 228a41 41 0 0 0 15.5 6.4c.4-.4-.4-2 0-2.8.4-1.1 1-1.1 2.6-1.2s.5-.4.2-.4l-3-.7c-2.6-.7-5.2-1.1-8.7-2.4-3.5-1.4-4.6-2.3-4.5-2.6s1.6.8 5 2c3.2 1.3 7 1.8 9 2.3 2.1.4.3-.5-.7-1s-2.3-2.8-2.3-2.8-2.3-.4-6-1.5a49 49 0 0 1-10-4.2q-1.7-1-3.3-2.2l-5.1-3.7c-1.3-1-1-.2-.8.4s1 3.2 3 6.1c2 3 2.7 3.8 9.1 8.3m-1-12.7c6.3 5 11.7 6.6 12.6 7s.9-.2.7-.7-.3-2.2-.3-2.2l-4.8-2.8a80 80 0 0 1-7.1-4.7c-1.9-1.3-.8-1.2-.2-.7s3.1 2 5.7 3.6l6.4 3.9s.1-.9.7-1.4 1.8-.4 1.8-.4l-1-1.3c-.4-.6-2.5-1.3-4.9-2.4a58 58 0 0 1-9.6-6.8c-3-2.6-9-9.1-9.5-9.7q-.6-.7-.7.3c0 .6-.2 1 .4 4s3.5 9.4 9.8 14.3m22.3-47.2q1.1 2.2 2 3.6l1.4 2.4s.2-.5 0-1.4q-.2-1.2 0-3.5l.3-2.3-.5-1.9-1.5-7c-.5-2.7-1-6.4-.9-9.7s.5-1.6.5 0a62 62 0 0 0 2.8 17.2s0-.9.5-2.1q.8-2 2-4.2c.5-1.6.3-1.9.3-1.9s-2.2-10.6-2.8-15.6-1.5-18.1-1.5-18.1c-3.3 3.2-5.7 11.8-6 20-.4 6 .6 11.7.9 14q.7 6.8 2.5 10.5m-7.2 16.8c.1-2.4.7-4.3 2.2-4.8 0 0-1.3-2.4-2.5-5.8a46 46 0 0 1-1.9-7.7c-.8-5.6-1.5-11.5.2-2 1.7 9.7 3.7 13 3.7 13l2.5 4a17 17 0 0 1-.4-4.9c.1-1.9.4-4.5 1-6.5 0 0-3-6-4.9-13a82 82 0 0 1-3.2-22.7s-3 2.3-4 13.9a69 69 0 0 0 7.3 36.5m33.3 88.6-2-1.3c-1.4-.9-1-3.7-1-3.7l-1.4 1a19 19 0 0 1-3.7 2.2c-1.5.6-2.2 1-3 1.2q-1.4.4 0-.5c.8-.4 1-.7 3-1.4 1.9-.8 5.7-4.2 5.7-4.2l-2.5-.1c-1.6 0-3.6-.9-3.6-.9s-1.6 1.4-8 4.2a50 50 0 0 1-11.8 3.5s.7 3.2 3.8 4.3c2.5 1.1 6 1.8 12.9.2a44 44 0 0 0 11.6-4.5m8.4 6.5c.5-2.7-1-4.6-1-4.6l-1.3 1.1c-1 .9-2.4 2.5-5 3.9-2.8 1.3-3.7 1.2-1.1-.2s6.4-5.3 6.4-5.3l-1-.4c-1-.4-2.8.3-10 4.6s-11.4 4.5-11.4 4.5 3.2 3.9 12 3.6c8.7-.3 11.8-4.5 12.4-7.2m16.5-3.1s-1 1.3-2.3 2.2-4.7 1.4-4.7 1.4l-.8 1.2c-.7 1-2.2 3-3.7 4-1.6 1.2-4 2-4.1 1.6s1.4-.8 2.9-1.8 2.8-2.6 3.8-3.7-.4-1-.4-1h-3.5c-1.7-.2-1.4 0-1.9.7l-2.4 3-4.4 5.1c-1 1.2-.2 1.5-.2 1.5s.4.7 4.3 1.2c2.4.2 5 0 7.8-1.6a23 23 0 0 0 5.2-4.5c4.6-5.1 4.4-9.3 4.4-9.3m2 10.5-1.4 1.8 1.2-3q.5-.9 1-1.4-1.1-2.1-1.6-4.7c-.5 1.4-1.8 5.5-3.4 8.1-2 3.2-3.8 4.4-2.7 5.3q2 1.4 6-.2c2.4-1.2 3.1-3.3 3.5-5l-1.2-2.1-1.3 1.2z"/>
+ <ellipse cx="274" cy="158.6" fill="#d4af3a" rx="1.8" ry="1.6"/>
+ <path fill="#d4af3a" d="M270.3 155.5c1.6 0 2.4-.8 4.2-.6q3.3.4 8.6 3.3a15 15 0 0 0 9.8.9q1.5-.6 2.9-1.4c4.2-2.4 3.2-7.1 3.2-7.1a17 17 0 0 1-10.7 3.2l1 .8c.5.6 1.7 1.4 1.3 1.7s-2-1.2-3.2-2.2a19 19 0 0 0-6.5-3.2c-3.3-1-7-1-9.5.4s-2.7 3-2.3 3.7q.3.6 1.1.5zm46.2 34.7c-.8-.2-2.1-.4-3.8-2a71 71 0 0 1-6.3-7q-.8-1.2.9-2c1.1-.5 2-2 2-2s-2.6-1-4.3-2.2a44 44 0 0 1-6.2-5.7c-.6-1-.3-1 .5-1.3q1.1-.6 1-.8c-.1-.2-1.8-1.2-3.5-2.6l-4-3.6c-2.6 1-6.7.6-8.9.2-3.8-.7-6.6-2.3-6.6-2.3l-.6 1.8c-.5 1.2-2.3 1.8-4 .7s-1.4-3.7-1.4-3.7-1.5-1-4.4-2q-4.3-1.7-7.8-.2c-2.4 1.1-3.6 4.4-3.6 7 0 2.4 1.4 1.3 1.6 1s.9-2.1 3.9-2.6 5.7 1 9.2 3.8 4.1 3 5.9 4.8c1.7 1.8.3 2.7-2.6 3.7-3 1-6.8-1-6.9-.9-.6.3 1.3 3 3.8 4 2.6 1 5.8.3 8.3-.8 1.7-.6 2 0 2.6.6a15 15 0 0 1 4 9 4 4 0 0 0 2.6-3c0-.6.2-1.8 1.2-1 1 1 1.7 6 1.7 8.2s-.7 5.3-.7 5.3h.7l2.3-1.2c1.1-.7 1.2 0 1.2 1.3s.4 3.6 2 7.8 4.1 5.5 4.1 5.5.5-.8 1-2.5.8-4.8.8-7.7c0-2.8-.8-8.8-.8-8.8s3.5 4.2 7 5.2c3.6 1 7.2.4 8.7-1.3s.1-2.5-.6-2.7"/>
+ <path fill="#d4af3a" d="M293 201s-1 2.5-1.7 3.3l-.8 1s1 1 2.6 1.4l3 .8s-1.8-2.4-2.4-4.1l-.7-2.3zm21.4-1.3-.8-2.1a15 15 0 0 1-8.2-1.7s1.7 3.3 3.3 4.5l1.9 1.2s-1.7.3-3.9-2c-2.2-2-3.1-4.6-3.1-4.6s.5 5.8-.4 9.3l-1.1 4s4.6.9 9.8-.6c5.2-1.4 5.6-1.9 5.6-1.9s.6-.1-.2-1.2a28 28 0 0 1-2.9-5z"/>
+ <path fill="#b96b29" d="m305 187-1.8-2.3s-.5.5 0 1.3a15 15 0 0 0 4.3 3.7 11 11 0 0 0 3 1.2v-.4s-3.9-1.7-5.5-3.5m-6.3 12-.4-8.3c0-1-.7-.8-.7-.8l-.8.3 1.6 10.6c.1 1.2.7 1 1 1-.6-.3-.7-2.5-.7-2.8m-9.8-31.4c-.6-.6-2-1-.7.4s3 3.2 3.5 4.7c.5 1.4.8 3.3 0 2.9s-1.5-.4-2.4-1.2a15 15 0 0 0-3.2-2.1c-.7-.2-2 0-1 1a25 25 0 0 0 4 3.6l4 2.6 1.9 1.3s-.9-6-2.5-8.5a26 26 0 0 0-3.6-4.7m-32 99.2a7 7 0 0 1-2.8 1.3s-.8 0-.8.2 1 0 1.8-.1a8 8 0 0 0 2.6-1.4c.5-.4 1.2-.8 1-1.4-.3-.6-.6.5-1.8 1.4m10.3 5.5-2.2 1.8-1.3.7q-1 .4-.9.6 0 .3.9 0c.9-.3 2.7-1.7 3.4-2.3q1.1-.7.7-1t-.6.2M225.3 198c.4.4.8 1 1 .9q.3-.3-.5-1l-.8-.9-1.1-1.5c-.4-.4-1-.7-.3.3zm-3.2 7 1.4 1.3c.5.5.8 1.1 1.1.8s-.7-.9-1.2-1.5l-1.4-1.4-1.2-.8zm1.2 11.2c.8.9 2 1.1 2.1.8q.3-.5-.7-1l-2.3-1.4-1.4-1.1q-.7-.7-1-.6c-.1.1 1.1 1.5 1.5 1.7q.6.3 1.8 1.6m2.3 9q.2-.5-.6-.5l-1.6-.2s-1.3-.5-1.3-.2c-.1.3 1 .8 1.5.8l1.4.4q.5.2.6-.3m1 9.8c-1.4 0-2.6-.3-2.7 0-.1.1.6.5 1.3.7q1.4.4 3 .4c1 0 1-.2 1-.6 0-.5-1.2-.5-2.6-.5m11 10.8q-.3-.2-1.5 0-1.4.5-2.8.5l-2.4-.1-.9.2q.2.2 3 .4c1.7.2 2.9-.2 3.7-.3q1.2-.3 1-.7zm4.6 7.6a6 6 0 0 1-2.2.4l-2.2.3s-.8 0-.6.4c0 .3.3 0 1-.1h2.3l2.5-.5c.7-.1 1.5-.5 1.2-1s-1.2.2-2 .5m8.9 5.8-2.4 1.8-1.2.6q-.9.6-.6.8c.2.2.6-.3 1-.5.5-.1 1.8-1 2.5-1.6s1.6-1 1.5-1.5q-.2-.5-.8.4m-14.8-74.8 1.7 2.3c1.6 1.9.7.1.3-.4l-3.4-4.5c-.8-.9-.9-.5-.5 0zm-3.2 9.8c.2-.2-.3-.4-1.2-1.5l-2.6-3.3s-.5-1-.7-1c-.1.1.6 1.8 1.3 2.5s1.7 2 2.2 2.7q.6 1 1 .6m4.2 18.5c0-.5-1.7-.5-2.5-.6l-2.2-.5s-1.6-.3-1.7 0q0 .2 1.2.5l3.4.8c1 .1 1.8.3 1.8-.2m-4.2-10q1.6 1.4 2.5 1.7.8.8 1.4.5.3-.6-1.3-1.1-1.5-.8-1.4-.9l-1-.5c-.6-.3-1.4-.6-.2.3m9.9-6.5-1.4-1s-.8-.8-1-.5 1 1 1.5 1.6c.6.5 1.6 1.9 2 1.6.6-.3-.4-1.1-1.1-1.7m-6.5 25.7-1.6.4q-1.1.3.5.4c1.1 0 1.5-.3 2.7-.5q1.6-.2 1.3-.7t-1.2 0zm1.7 9.3c0 .2.8 0 1.4-.2s1.8-.9 2.5-1q.9-.3.7-.8c-.2-.5-.8 0-1.7.2s-2 1.2-2 1.2-.8.4-.9.6m12 5.6q1.3-.7.7-1-.3-.5-1.2.2l-2 1.5-1 .5q-1.1.4-1 1c.1.1 1.2 0 1.7-.6s2-1 2.8-1.6m5.7 7.5c.3-.3 1.3-.6 1.8-1 .4-.3.7-1.3.3-1.4q-.3 0-1.3 1l-3.5 2.4-.7.3c-.8.2-.4.5.2.4q.8 0 1.8-.7zm8.3 7.1a10 10 0 0 0 2.3-1.7c.5-.4 1.1-1 .7-1.3q-.4-.3-1.3.6l-2.1 2.2s-.3 0-1 .7c-1 .7 0 .5.2.3z"/>
+ <path fill="#d4af3a" d="m295.2 143.5 3.2 1.4 3.4-2.4-4-1z"/>
+ <ellipse cx="309.2" cy="142.1" fill="#b96b29" rx="3.2" ry="3.1"/>
+ <circle cx="309.2" cy="141.4" r="1.9" fill="#d4af3a"/>
+ <path fill="#d4af3a" d="M302.4 131.4c.9.3 2 .2 2 .2s.3-1.4-.5-2.1l-2-1.7-.5-.6-.1 2c0 .8.3 1.9 1.2 2.2z"/>
+ <circle cx="304.2" cy="133" r=".6" fill="#d4af3a"/>
+ <path fill="#d4af3a" d="m299.8 132.4-.8.9s.6 0 1.2.4q.8.7 1.8.6c.7 0 1-.7.8-1q0-.8-1.5-1.3c-1-.4-1.3 0-1.5.4m2.2 3.7c-2 .2-4.7-2-4.7-2q-.4 2.6-3 3l.1.1s1.6.8 3.5 1.1a7 7 0 0 0 2.5-.2c1-.2 2.3-.5 3-1 1.2-.7.8-2.6.8-2.6s-.2 1.5-2.2 1.6m-7.9-2c-.8-.3-2-.9-2.6-1-.5 0-1.2 0-1.1.9s1.1 1.4 2 1.4q1.3 0 2.1-.6 1-.4-.4-.7m-6.3-3.4q-1.5-1-1.7-.9c-.2.1-.6 1.6-.3 2.6q.5 1.3 2 1.2c.8 0 2-.5 1.7-1.2a5 5 0 0 0-1.7-1.7"/>
+ <ellipse cx="288.6" cy="135.1" fill="#d4af3a" rx=".7" ry=".5"/>
+ <path fill="#d4af3a" d="M290.6 127.3a11 11 0 0 1 2-9.3c2.5-3.6 7-5.1 7-5.1l1.5-1.8c1.4-1.5 4.2-3.4 4.2-3.4l-5.2 1.5a2.3 2.3 0 0 1-2.2 2.4q-.8 0-1.3-.4c-1 .1-4.4 2.2-5.3 2.9l.3 1.2a2.3 2.3 0 0 1-2.2 2.3q-.6 0-1-.2l-.3.5-1.7 3.7q1 .6 1 2-.2 2.1-2 2.3v1.5c.1.7.4 1.2 1.7 1.6 1.3.3 3.1 2.6 3.1 2.6.1 0 1-1.6.4-4.3"/>
+ <path fill="#d4af3a" d="M298.6 110.3q.8-.7.2-1.4-.7-.5-1.5.1-1 .8-.2 1.4.6.5 1.5-.1m-8.5 5.7q.9-1 .3-1.7-.8-.6-1.8.1c-1 .7-.6 1.3-.2 1.7q.7.6 1.8-.1z"/>
+ <circle cx="285.1" cy="123.2" r="1.3" fill="#d4af3a"/>
+ <path fill="#d4af3a" d="M313.3 105q-1 .2-3.8 1.6 2.1.1 2.3 1.9c0 1-1.1 2.2-2.4 2.2a2 2 0 0 1-2.2-2.2l.1-.7-1.7 1.2a18 18 0 0 0-7.2 8c-2 3.8-2.8 8-2 10.4 1 2.5 4.2 3 4.3 3q-.2 0-.5-.8l.3-1.6v-2.1s.8-.1 1.2.4l1.4 1.7 1.6 1.5s.6-1 .6-2.1-.7-2.3-.9-4.3c-.1-2 1-5.5 2.8-8 2-2.6 5.5-5 6.6-5.5a2 2 0 0 0 1.3-1.7l.3-2c0-1.2-1-1.1-2-.9z"/>
+ <path fill="#d4af3a" d="M309.2 109.5c.7 0 1.4-.7 1.4-1.3q-.1-1-1.3-1-1.3 0-1.4 1c-.1 1 .6 1.3 1.3 1.3m6.2 24.4q1.7.4 2.6-.2c.6-.4.7-1.3.1-1.8a2 2 0 0 0-2.1-.2l-2 1.3s.4.5 1.4.9"/>
+ <path fill="#d4af3a" d="M318.6 135c-.4.6-.7.9-1.8 1-1 0-2.3 0-3-.8l-1.3-1.7h-1.2s-.4 1.7-1 2.1-2.5.6-3.3 0c-.9-.7-1.6-1.4-1.8-1.3q-.3.2.9 1.4c1.2 1.2 1.5 1.3 2.9 1.3h8s1.6 0 2-1q.7-1.4.3-1.7t-.7.7"/>
+ <path fill="#d4af3a" d="M306.4 133.7c1.2.6 1.9.2 2.3-.3l.6-.8-1.7-.7q-.8-.7-1.5-.6l-.6.1s-.3 1.6 1 2.2z"/>
+ <ellipse cx="300.7" cy="121.9" fill="#b96b29" rx="2.7" ry="2.6"/>
+ <path fill="#b96b29" d="M305.3 112.7c-1-.7-2.6-.4-3.5.6-.9 1.1-.7 2.6.4 3.3 1 .7 2.6.4 3.5-.6.8-1.1.7-2.6-.4-3.3"/>
+ <ellipse cx="300.6" cy="121.5" fill="#d4af3a" rx="1.6" ry="1.5"/>
+ <path fill="#d4af3a" d="M304.2 113a2 2 0 0 0-2 .8q-.4 1 1 1.4c1.7.3 2.5-1.8 1-2.2m-40.7 206s-4.1 2-5.4 2.3l-1.6.4s-2.8 2.5-4.9 3.8a18 18 0 0 1-7.1 2.4c-3.2.4-12 .3-16 .1s-6.4.8-8.1 2.7-2.1 4.7 0 6.8c2.2 2.1 4.6 1 5.4-.2.8-1.3.4-3 0-3.7-.3-.8.7-1 1.8-1.1a24 24 0 0 1 10.7 2.3c1.3.7.6.8-.3.7q-1.4-.2-3.5-1.1-2.4-1-4-1c-1.6 0-.7.5-.5.9l1 1.6c.1.4-.3 1.9-.3 1.9l.5 1 .8-1.5c.2-.5-.1-1.5.1-2q.5-.7 1.7.4a7 7 0 0 1 1.8 3.5c.3 2-.3 3.3-.3 3.3s.8.7 1 1.1l-.3 2.3s.6.3 1-.7c.6-1 1.2-3 1.3-3.6s.6-1.9 1.4-1q1.3 1.6 1.5 2.6l.2 1s1.8-1.7 2.4-2.8a17 17 0 0 1 3.6-3.9c1.7-1.4 4.6-4.2 6-5.2s5.2-3 6.4-3.6c1.1-.7 1.3-.8 1.5-2.7s1.2-3.8 1.6-5.1zm-65.8-73.7c0-.4-.7-1.5-.8-2.1s-.8-.3-.8-.3-1.3.8-2.3 1c-1 .3-1 0-1.2-.6l-.5-3.2c-.2-1-.4-1-.8-.8l-2.4 1c-.9.3-.6.7-.3 1.2l1.6 3.1c.5.7 0 1-.4 1.3l-2.3.6q-1.3.5-.8 1c0 .3.8 1.7 1.1 2.3s.7.2.7.2 1.1-1 2-1.4 1-.3 1.2.4l1.5 4.8q.3.9 1 .4l1.6-.4c.5-.2.7-1.3.7-1.3l-2.5-4.4c-.5-1 0-1.1.4-1.2s1.6-.2 2.6-.5.7-.8.7-1.2zm22.3 96.5c-.1-.8 0-1.7-.6-2.3a8 8 0 0 1-1.8-3c-.3-1 .3-1.6.2-2.2s-1-.6-1.7 0c-.8.7-1.9 1.3-1.9 3.2s.7 4.2 3.4 5c2.6.8 2.6.2 2.4-.6zm2.7-.9s-.5-.3-.8.2c-.2.5-.2.7.5 1.9.7 1 1.2 1.3 2 1.8s.2-.5.1-.8l-.2-1c-.2-.5-.3-.5-.3-1.3s-1.3-.8-1.3-.8"/>
+ <path fill="#d4af3a" d="M226 350c.5-.8 1-1 2.1-1.5a15 15 0 0 1 4.2-1c.7 0 2.5-1.4 2.2-3-.3-1.4-1.4-2-2.3-2.2q-1.6-.5-2.1.2-.4.8-2 1.4c-1.6.6-1.1.7-1.8 1-.6.1-.1.5-.7 1s-1.3 0-2.1-.3-1-.4-1.9-.4l-3.4-.2h-.7c-.6 0-.6 0-.9.6s.1 2.1.7 2.9 2.6 1 3.9 1.5l3 .8c1.2.1 1.3 0 1.8-.8m12.2 1.2c1-.7.4-2 .2-2.7s-1.7-.9-2.5-.9q-1-.1-1.5.4t-2 1.2c-1.2.3-2 .7-3.6 1.3-1.5.6-2 1.6-2.6 2s-1.9 0-1.9 0-.9-.2-1.2 0q-.4.5.6 1.5c.6.6 1.8.6 3 1 1.4.4 1.6 0 2.1-.3s1-1 1.8-1.6c1-.6 3-.7 3.9-.8 1-.1 2.6-.4 3.7-1.1m0-4.6c.4.4 1 1 1.3.3s1-2 .6-2.8q-.8-1.4-1-1.5l-1 3q-.6.6 0 1zm-4-7c0-1.2-1-2.8-1-2.8s-.3 1.2-.9 2.2l-1 1.6 1.7.4c.5 0 1.1 0 1.1-1.3zm-7.6 2.8q2-.4 2.7-1.3c.6-.5 1-1.9.6-2.6s-1.4-1.4-1.8-1.4h-.8s-.4 1.3-1 2q-1 .7-1 1.9c0 .8-.1 1.7 1.3 1.4m2.8-6.3a2 2 0 0 0-.6-1.9l-.8-.7-.2 1.6-.1.6.7.6c.4.1 1 .4 1-.2m-17.3-35.7 1-6a39 39 0 0 0-6.3-15.4c-2.4-3.8-5-10-6-13.2a37 37 0 0 1-2-10c0-2.3 1-3.5 1-3.5s.5-.6.1-1-1 0-1.7.6a8 8 0 0 0-1.5 2.6l-.3 1.1s-1.2-.3-3.3-.1q-3 .2-3 .8-.2.5 1.7 1.4c1.5.6 2.4.9 3.1 1.7.8.9 2.6 5.2 3.2 7.3s1.8 7.8 2.3 12.2a49 49 0 0 0 4 14.4c.8 1.5 4.5 8.5 7.7 7zm3.7 10.4c-1.4.8-1.3 6.4-.7 9.3s3.4 6.5 4.3 7.5 1 1 1.5.7l.7-.2s1.2-.5 2.1-1.2.6-2.5.4-4c-.1-1.6-1.4-4.8-3.6-8.5-2.2-3.6-3.3-4.4-4.7-3.6m1.5-4.5c0-1.9-1.6-3.2-3.4-3.2q-1.4 0-2.1.6c-1.9 1.7-.7 5.8 2 5.8q1.5.1 2.7-.8 1-1 .8-2.4m26.5 52.7a7 7 0 0 1-2.2-1.2 10 10 0 0 1-3.1-3c-.3-.7-.3-.7-1.4-.4-1 .4-2.5.3-3.6.4-1 0 .2 1.3 1 2.4.7 1.2.4 5.1.4 5.1l-.1.9q-.2 1 .2 1 .3.4 1.3-1c.8-.9 2.2-3.2 2.2-3.2l1.4.3c1.2.3 3.1.1 4.1-.2s.6-1-.2-1.1"/>
+ <path fill="#d4af3a" d="M239.2 362q-.7-.1-1 .2l-.6 1.4q-.1.4.2.9l.8.5s.4.5.8.7.5-.4.5-.9l.3-1.9q0-.8-1-.9"/>
+ <path fill="#1d5e91" d="M435 324.2q-2-.6-1.9-.8 0-.3-1 .7c-.3.8-2 1.8-2 1.8s-2.2.6-2.5 2.2c-.3 1.5.8 2 1.8 1.9 1.1-.2 3.7-.7 4.9-2.1 1.1-1.4 1.3-2.2 1.5-2.7s.4-.7-.9-1zm3.5-12.4a15 15 0 0 0-7.4-9.9l-2.1 7.5c-.5 1.8-.5 1.7.9 2l6.7 1.6c.9.3 2.4 1 1.9-1.2m-20.6-3.2c1 .1 1-.3 1.3-1.7l2.1-8.2s-4.5-.1-8.5 1.8c-3.9 1.9-5.6 5.4-5.6 5.4s1 .4 3.7 1 6 1.5 7 1.6zm-10.5 9.3-2.2-.4s1 3.8 2.7 6 3.5 3.2 7 3.3 6-1.9 6.5-3.4 1.1-2.6 1.1-2.6-6.2-.8-8.8-1.4z"/>
+ <path fill="#d4af3a" d="m406.3 315.5 15.5 3q1.7.6 2.2.2c.3-.3.5-.5 1.6-.9s1.1-1.5 1.1-1.5l.4-2.2c.2-1 .8-1.4 2-.1 1.3 1.3 1.5 3.2 1.7 5 .3 2 3.2 2.4 4.4 2.6q1.5.3 2.3-1.3c.7-1 1-3.2 1.2-4.6s0-1.2-1.4-1.6l-9.3-2.2c-1.2-.2-1-1-.7-1.9.1-.8 2.8-9.2 2.8-9.2a19 19 0 0 0-7.7-2.3l-2.3 10c-.3 1.3-1.2 1.3-2.5 1-1.4-.2-11.3-2.5-11.3-2.5l-.8 1.8a16 16 0 0 0-1.1 5.2c0 1.2.4 1.2 1.9 1.5"/>
+ <path fill="#d4af3a" d="M440.3 323.3c-1.3-.9-2.3-1.1-3 .5s-.7 4-2.4 5.6c-1.8 1.7-4.2 3.4-6.6 3.2s-3.7-.7-3.2-3.5 4.3-3.6 5.1-5q1.4-2.4-.6-4.2c-1.3-1.1-3.1-1.3-3.6-1a8 8 0 0 0-2.8 3.7c-.7 2-1.2 3.7-2.8 5a12 12 0 0 1-9 2c-3.1-.8-4.3-1.8-5.5-5-1.2-3.1-2.6-8.3-3.2-9-.7-.5-1.5-1-2.8 0-1.4 1-1.5 2.4-1.7 3.6q-.5 1.7 1.4 4.1c1.4 1.7 2.8 3.3 3.3 5s2 4.4-.1 4.5c-2.2.2-3.2.2-4.8-1.4-1.7-1.6-8.2-6-10-7.4l-2.5-2q-4.5 0-9-3.3s1.8 4.4 2.1 6.1l.3 2.6 9.1 4.6a168 168 0 0 1 10.3 5.8c2.5 1.5 4.7 4 9.1 3 4.5-.9 13.5-3.6 16.5-4.5 2.9-.9 11-2.9 14-5 3-2 3.2-1.9 3.7-4q.7-2.8-1.3-4m-17.2-31 2.2-.3c1.5-.1 1 1.3.7 1.9l-1.4 2.7c-.6 1 .2 1.2.6 1.4l2.3.6c1.3.3 1-.6 1-1l.3-3.8c.1-.9 1-.6 1.2-.5l1.7 1q1 .3 1-.4l.8-2c.2-1-.4-.8-1-.8h-2.4c-1 0-.4-1-.4-1l1.3-2.1c.6-.9.4-1-.2-1.2l-2.8-.7q-.7-.1-.7.3l-.1 2.7c0 .7 0 1-1 1q-1 0-2-1.1c-.7-.8-1-.5-1-.2l-.8 3c-.2.7.1.6.6.6zm4.8 21.8s-.1 1.7-.3 2.3c-.2.7-.6 1.6.1 1.8q1.2.4 1.8.4c.5-.1.3-1 0-1.7a6 6 0 0 0-1.1-2.2zm10.5 7q.4.7 1 .7.8.3 1-.5.3-1.2-.5-2.2c-.5-.8-.8-1.3-1.1-.2q-.7 1.4-.4 2.2m-36.7-7 1.4.4s0-1.7.3-2.8c.2-1.2.7-2 .3-2q-.6 0-1 .9c-.3.5-1.1.6-1.4 2s.1 1.4.4 1.4z"/>
+ <circle cx="408.9" cy="311.2" r="2.3" fill="#b96b29"/>
+ <circle cx="415.5" cy="312.8" r="2.4" fill="#b96b29"/>
+ <circle cx="434.6" cy="316.9" r="2.4" fill="#b96b29"/>
+ <circle cx="422.1" cy="314.4" r="2.4" fill="#b96b29"/>
+ <circle cx="423.8" cy="308.6" r="2.4" fill="#b96b29"/>
+ <circle cx="425.5" cy="302.9" r="2.4" fill="#b96b29"/>
+ <circle cx="409.1" cy="310.9" r="1.2" fill="#d4af3a"/>
+ <circle cx="415.6" cy="312.6" r="1.2" fill="#d4af3a"/>
+ <circle cx="434.8" cy="316.6" r="1.2" fill="#d4af3a"/>
+ <circle cx="422.2" cy="314.1" r="1.2" fill="#d4af3a"/>
+ <circle cx="424" cy="308.4" r="1.2" fill="#d4af3a"/>
+ <circle cx="425.7" cy="302.6" r="1.2" fill="#d4af3a"/>
+ <path fill="#d4af3a" d="m349.5 359.1-5.2-3.6a12 12 0 0 1-3.9-4h1q1-.1 1-1.5.1-1.3-.2-4.1c-.2-1.8.3-3.3.3-3.3s1.3 1.1 3.1 2c1.9 1 2.6.6 2.6.6l.5-1.9 2 3.7c1 2 4.1 4.2 6.3 5.8 2.2 1.7 4.6 3.4 6.4 4s.8 1.5.8 1.5-1.8 1.8-6.5 2.7c-4.7.8-7-1-8.2-1.9"/>
+ <path fill="#d4af3a" d="M333.2 357.3q2.6-.1 3-2.6c.2-1.2-.1-5.7-.1-5.7l1.2 1.2c.6.8 2 1 2 1s.2.6.9 1.6a9 9 0 0 0 3 3.2c1.6 1 3.5 2.2 4.7 3.2a28 28 0 0 0 4.2 3.1 7 7 0 0 1 3.6 4.7c.6 2.4.1 3.1-1.7 3s-2 0-5-.7c-3-.8-7.3-4.1-10.4-6s-5.4-6-5.4-6"/>
+ <path fill="#d4af3a" d="M325 360s1.2-1.6 1.6-3.4l1.4-5.4 1.4 3.3a5 5 0 0 0 2.8 2.7s0 .9 1.5 2.7a21 21 0 0 0 5.6 4.8c2.2 1.2 5 3 6.5 5.1 1.5 2.2 1.6 4.4 1 5.4-.8 1-1.8-.1-3.2-.9-1.5-.7-5.6-1.3-11.2-4.4-5.6-3-7.5-9.9-7.5-9.9z"/>
+ <path fill="#d4af3a" d="M322.5 372.7c-1.6-2.4-1.8-8-1.8-8l1.3-1c.7-.7 2.2-2.9 2.2-2.9l2 3.8c1 1.8 1.4 2.4 3.6 4.3 2 2 5 3.9 6.1 6 1.3 2 .6 6.1-.2 7.5s-2 1-3.1-.1L329 379c-2.1-1.7-5-4-6.5-6.3"/>
+ <path fill="#b96b29" d="M341 325.3c-.8-1.7-1.8-3.7-2.5-4.8l-1.3-2.2s2 1.8 2.8 3.1q1.2 2 1.6 4 .6 2.3-.6 0zm-8 1.5-.5-1.9s-.3-1-.2-1.1q.5-.2 1.6 2.5c.6 1.8 1.5 4.5 1.3 4.6s-1.9-3-2.2-4.1m-6.3 5-.4-.8s-.6-2-.6-2.5.2-1 .7.1.6 2.2.7 2.6c.1.5.7 2.1.5 2.3s-.5-.9-1-1.7zm19.5 19.2.9-.5 1.2 1.5q1.2.8 2 1.7a8 8 0 0 0 2.8 2.3q2 1 1.5 1.1c-.2.2-1.1-.3-1.1-.3s-.4 0-2-1c-1.5-.9-1.9-1.4-2.9-2.3zm-6.8 8.1c-.6-.6-1.2-1-.9-1.4q.6-.5 1.3.2l2.9 2.6 2 1.5c.7.6 2.3 1.4 3 1.8s0 .5 0 .5l-1.2-.5-2.4-1-1.7-1c-1-.7-2.4-2-3-2.7m-7.8 5.5c-.5-1 0-.8.8-.4.9.3 2.8 2.4 3.9 3.1q1.5 1 3 1.6c.8.4.8.7.8.9q-.1.3-.8 0l-1.7-.9-1-.2q-.8 0-2.4-1.6c-1.1-1-2.1-1.5-2.6-2.5m-3.7 7.2c1.4.8 3.8 2.7 4.4 4q1 1.9.9 2.3c-.3.2-1-.2-1.2-.7l-1-1.2s-2.4-2.4-3.2-3a8 8 0 0 1-2.7-3c-.3-1 0-1.4 0-1.4s1.4 2.1 2.8 3"/>
+ <path fill="#c52126" d="M365 170a22 22 0 0 1 8.3-2.6c3.6-.3 6.4.2 9.5 1q3.1.9 5.6.3c2.6-.7 4.6-3 5.3-6 0 0 2.4 3.1 0 6.5a7 7 0 0 1-4.3 2.9c-5.1 1-10.1-2-14.3-2.4-4.1-.2-7.3 2.4-7.3 2.4s-1 .8-2.4 0q-2.1-1.1-.4-2.2z"/>
+ <path fill="#d4af3a" d="m379.6 317.5 1.2-.2c.7 0 2.2-.6 2.7-.8q.9-.4 1.6.3c.5.5 4.1 2.7 4.1 2.7h-6c-2.1 0-3.5-2-3.5-2z"/>
+ <path fill="#d4af3a" d="M362.6 316.4v-.5l.8-1.8s1 .6 1.8 1.5c1.2 1.3 2.5 3 3 3.7 1 1.3 2.5 2.5 1.3.5s-1.6-3-2.6-4.4l-1.6-2 3.4-.5c2.5-.3 4.2-1.3 5.3-2l3.3-1.9s4.3 1.9 6 2.3c1.6.4 2.5.6 1 1.4-1.6.8-3 1-3.7 1.5a12 12 0 0 1-4.6 1.2c-1.5 0-4 0-3 1a22 22 0 0 1 4.2 13l-.1 2.5s-1.8-2-6.6-5a71 71 0 0 0-7.4-4.4c-.9-.4-1.3-.4-1.2-1.5z"/>
+ <path fill="#d4af3a" d="m344.4 302 .8-.4h.3c.5.3 3.4 2.3 4.6 4.2s2.4 2 1 0a18 18 0 0 0-3.2-4.2l-1-.8a53 53 0 0 0 7.3-4.2q.6 1.1 1.7 2.5c1 1 3.2 2 3.2 2s-1.8-2-2.4-3.3l-.8-2.5a32 32 0 0 0 4.8-4.6c.3 1.3 1.3 4.2 4.2 7.4 3.7 4.2 11.2 6.3 11.2 6.3s2.6.3.5.9c-2.1.5-3.6 1.5-7.8.8l-5-1.1c-.5-.2-2 0 0 .7 2.1.8 7 1.5 8.8 1.4s4.4-.6 1.7.8c-2.6 1.4-3.7 2-5.3 2s-2.3.5-4 .5c-1.5 0-2-.3-3-.5q-1.8-.3-1.9.6c0 .4 1.5 1.7 1.5 4.7q0 4.7-.6 6c-.3 1-1 2.4-1.4 3.2s-.6 1.7-1-.1-1.5-4.4-1.9-6.1l-.8-2.7c-.1-.9-1.1-1.6-.6 0l1.2 5.2c.4 1.5 1.1 4.2-.2 2-1.3-2-6.4-7.7-7.2-8.8l-2.1-2.8c-.7-.8-2.4-1.9-3.2-3.1a29 29 0 0 0-4-4zm69.5-129.2c-.1 3.1-3.5 9-5.5 12.2q-2.9 4.5-2.1 4.6c.3.2 1.1-1.4 2.2-2.8l4.9-7.2c1.7-2.5 4.2-8.4 4.6-8.9s.4-.9 1.3-.2 2.6 7.2.5 11.6c-2 4.4-5 7.6-6.2 9.2s-3 4-2.7 4.1c.3.2.7-.4 2.3-2a47 47 0 0 0 9.6-12.5q.3-.5.8 0c.5.5 1.4 1.8 1 5.3a17 17 0 0 1-5.3 10.2c-2.3 2.4-4.6 4.5-4.3 4.9.4.3 2.7-1.8 4.3-3.3 1.6-1.6 5.6-5.4 6.4-6.5 1-1 2.2-.5 2.1 3.7 0 4.3-4.7 8.5-6.7 10.9-2 2.3-4.3 3.7-4.1 4.2s2.1-.7 3.4-1.6l7-4.6c.9-.7 1.3.6.1 4.6s-4.6 7.2-6.7 8.7c-2 1.5-5.4 3.3-5.2 3.8q.5.4 3.5-1.1c2-1 4.3-1.8 6-2.3 1.6-.5 1.6.7 1.6.7s.4 3.5-2.1 6.2a13 13 0 0 1-8 4.3c-2.6.5-3 .6-3 1s.4.5 1 .5l5.3.2q3.5 0 3.5 1.6c0 1.6 0 2.3-3.3 4.6-3.5 2.3-7.3 2.6-8.9 3s-1.6.4-1.3.9 1 .4 3.6.7c2.5.2 4 1.2 4.4 2 .3.6-.2 2.6-2.3 4q-2.9 2-8.7 1.6c-4-.3-5-.3-5.2.3q0 1 3.2 1.2c2 .4 3.6.4 4.7 1.3s.3 2.9-1.7 4.3c-1.9 1.4-6.7 1.4-8.7 1.3-2-.2-5.1-.9-5.3-.4s1.5 1.4 3.5 2.1c2.1.8 2.7 1.2 3.1 2.1s0 1.7-2.4 2.6a12 12 0 0 1-8 0q-2.7-1.2-3.2-.8-.3.5.4 1.1c.4.5 2 1.8 4.1 2.3 2 .6 2.3.6 3 2.2s-1.1 3-4.9 3.2c-3.7.1-8.7-1.4-10.3-2.3q-2.2-1.4-2.5-.8-.5.3.6 1.1c.8.6 3.3 2.5 4.6 2.8s1.4 1.3 1.4 2.1c0 1 .4 2.6-3 3.5-3.3.8-7.3.2-10.9-2.4a8 8 0 0 1-2.2-2 28 28 0 0 0-.3-8q1.2 0 3.4-.9c2-.8 2.8-2.6 3.3-3.6s1.2-1 2-.8q1.1.5 2.7.6a8 8 0 0 0 5.3-2.8c1.7-2 1.4-4 1.5-5 0-1 1.6-.3 2.4-.3s3.2-.4 5.3-1.9c2.2-1.4 2.2-3.4 2.4-4.3q.5-1.2 1.7-1.6c.7-.2 1.7-.5 3.2-1.7s2-3.5 2-4.4c.2-.8 1-.8 4-2.4s2.8-4.7 2.6-6c0-1.3-1.5-2.3-1.5-2.8s1-.6 2-1.2 3.6-1.6 3.6-5.4c0-3.7-2.4-4.1-2.4-4.1l1.5-.8c1-.6 3.7-2.5 3.7-4.7s-1-3.2-1.7-3.8-2.7-1-2.7-1 1.2-.9 1.8-2.6c.5-1.7.7-3.9-.6-5.4s-3.4-1.6-4.5-1.6-2.2.6-2.6.3q-.6-.3 0-1.5c.4-.8.4-3 .1-3.7s-.4-2.2-3.3-3.2-5.9 1-6.8 1.6c-1 .5-.5-.8-.5-1.7 0-1 1.9-3.3 4.1-6.6 2.2-3.4 3.2-5.1 5.7-10.2A66 66 0 0 0 409 159c.4-1.6 1-.8 1-.8s.7.2 2.2 4.1a25 25 0 0 1 1.7 10.5"/>
+ <path fill="#d4af3a" d="M363.4 241.4c1.7-.1 4-1 5.7-3.6 1.7-2.5 4.3-3 8.8-3 4.5.1 6.6-2 7.7-5.2 1-3-.2-6.6-4.8-8.9-4.5-2.2-6.6-4.7-6.8-8.6-.1-3.9 4.6-8.7 9.3-14.1s8.5-13.2 8.5-13.2 1.4 1.8 1.4 3.7c0 1.8-.7 3.7 0 4.2s.9-.8 3.7-2c2.7-1.2 5-1.4 6.7.6s0 5.4-1.6 7c-1.5 1.7-2.8 3-2.4 3.5s2.8-.9 3.5-1.4 2.6-2.5 5.3-2.3 3.6 1 3.9 3.3-2.4 4.2-4.2 5.1q-2.6 1.4-2 2 .7.3 1.7-.3a8 8 0 0 1 4.3 0c1.4.6 3.6 2.5 1.6 4.8-2.1 2.3-6.4 3.2-7.3 3.3-.8.2-1.3 0-1.4.6s1.8.7 4.2.8c2.3.1 3 2.4 2.7 4-.4 1.8-4.3 3.7-6.4 4-2.2.4-3 0-3.1.7q-.3.8 1.4 1.2c1.2.3 3.6.6 4 2.5s.5 2.7-1.3 4.4c-1.8 1.6-4.7 1.4-5.6 1.2s-1.9-1.1-2.8-.3.8 1.6 2.3 2.6 1.4 3-1.1 4.4-5 .9-6 .5c-1-.3-2.5-2-3.2-1-.7 1.1 2.2 1.5 3.4 3 1.2 1.4.8 3.8-1.6 5.3s-6.4.4-7.1-.2q-1.2-1-2-.3c-.6.5.2 1.9.7 3 .5 1.3 1.5 4.8-2.2 6.2s-6.9-1.7-7.5-2.3q-1-.8-1.7-.5-.6.5.2 1.4c.4.6 1.4 3.2-1.2 5a6 6 0 0 1-4.7 1q-1-2.9-2-7.2h.5q.5.2.5.7-.1.4.2.4c.3 0 .3.2.8.5q.6.6 1 .5c.3-.2-.9-.8-1.2-1.2s-1-1-1-1.4q0-.5-.8-1.1l-.5-.6-1.2-7.2-.4-5.5zm73.7-53.8c-3.9 7.8-9.3 12.1-9.3 12.1l1-3.2c.3-1.4.1-2.9.1-2.9s1.4-1.7 3.9-5.6 3.8-9.6 3.8-9.6-2.3 5.7-4.1 8.8c-1.9 3-4 5.5-4 5.5s-.7-2.7-1.2-2.8q-.8-.2-1.4.8-.7.7-.8.6l1.5-2.8 1.6-2.2c1.4-2.3 4.5-6.6 6-10.9a169 169 0 0 0 5.7-18.3c.7-3.2 1.3-1.4 1.9.9s1.4 5.7.9 10.7a54 54 0 0 1-5.6 18.9m-5 21-3.5 2.5.5-1.7.3-2.9 2.9-2.5a42 42 0 0 0 5.6-6c2.9-3.6.5-1.4-1.9 1.2-2.3 2.6-6.9 6.3-6.9 6.3v-.8a3 3 0 0 0-.7-1.9c-.4-.6-.2-.6 2.3-2.6a74 74 0 0 0 17.6-24.4s1.5 9-4 18.7c-5.4 9.9-10.8 13-12.2 14.1m-28.5 56.3c-3-1.2-2.2-4.1-2.2-4.1s1.8.5 3.5 1.2a36 36 0 0 0 7.5 1.8c1.6 0 1.6-.2 1.7-.4s-1.3 0-3.7-.4a29 29 0 0 1-7.2-3.1q-1.1-.7.5-.7a5 5 0 0 0 2.3-.9c.4-.3 1.5.1 4.2.8a51 51 0 0 0 21.5.7c.7-.2 1.4.2-.7 3.7s-9.3 5.3-14.4 5.3-10-2.8-13-3.9m13.4-7.2c-5.2 0-7.2-1.5-7.2-1.5l.7-1.3c.7-1.1.6-2.9.6-2.9l3.4.6q3.3.6 7.5.1c4.2-.5 1.6-.8-.6-.5a29 29 0 0 1-7.8-1c-1.4-.5-.9-1 0-1.3s3.5-1.9 3.5-1.9 6.3.8 12.2.2 9.6-2.2 10.8-2.4c1.1-.2 1.1.3 1.1.3s.3.6-1.7 3.7c-2 3.2-6 5.3-9.4 6.3a50 50 0 0 1-13.1 1.6m1.3-12.2.6-1.3c.3-1-.6-1.9-.6-1.9s1.2-.3 5-.8c4-.5 4.2-.8 6.5-1.3q3.8-1 4-1.5 0-.4-2.2.6a94 94 0 0 1-14.3 1.9c-.4-.3-2-.7-2-.7l2.4-.5a8 8 0 0 0 3.2-1.3c.7-.5 1-.6 4.1-1 3.2-.3 5.8-1.3 11.5-3.4 5.6-2 10-4.6 11-5.5 1.2-1 1.1-.3.8 1-.3 1.1-.2 2.6-3.1 6-2.9 3.3-4.3 4.8-11.5 7.4s-15.4 2.3-15.4 2.3m21.4-17.6a41 41 0 0 1-15.5 6.4c-.3-.4.4-2 0-2.8-.3-1.1-1-1.1-2.6-1.2-1.5-.1-.5-.4-.1-.4l3-.7c2.5-.7 5.1-1.1 8.6-2.4 3.6-1.4 4.6-2.3 4.5-2.6s-1.6.8-4.9 2c-3.2 1.3-7 1.8-9 2.3-2.2.4-.4-.5.6-1s2.4-2.8 2.4-2.8 2.3-.4 6-1.5a49 49 0 0 0 10-4.2l3.2-2.2 5.2-3.7c1.3-1 .9-.2.7.4s-1 3.2-3 6.1c-2 3-2.7 3.8-9 8.3zm1-12.7c-6.2 5-11.7 6.6-12.6 7s-.8-.2-.7-.7l.3-2.2 4.8-2.8c2.5-1.4 5.3-3.4 7.2-4.7 1.8-1.3.7-1.2.1-.7s-3.1 2-5.7 3.6l-6.4 3.9s0-.9-.6-1.4-1.9-.4-1.9-.4l1-1.3c.5-.6 2.6-1.3 4.9-2.4s6.5-4.2 9.6-6.8 9.1-9.1 9.5-9.7q.6-.8.7.3c0 .6.3 1-.4 4s-3.4 9.4-9.7 14.3zM418.5 168q-1.1 2.2-2 3.6L415 174v-1.4q.3-1.2 0-3.5l-.2-2.3q.1-1.1.4-1.9l1.6-7c.4-2.7.9-6.4.8-9.7s-.5-1.6-.5 0-.1 4-.6 7.8-2.1 9.4-2.1 9.4-.1-.9-.6-2.1l-1.9-4.2c-.6-1.6-.4-1.9-.4-1.9s2.3-10.6 2.8-15.6l1.6-18.1c3.2 3.2 5.6 11.8 6 20 .4 6-.6 11.7-1 14q-.7 6.8-2.5 10.5zm7.2 16.8c0-2.4-.6-4.3-2.2-4.8 0 0 1.4-2.4 2.6-5.8a45 45 0 0 0 1.8-7.7c.9-5.6 1.6-11.5-.1-2-1.7 9.7-3.8 13-3.8 13l-2.4 4c.3-1.7.4-3 .3-4.9 0-1.9-.3-4.5-1-6.5 0 0 3-6 5-13a81 81 0 0 0 3.1-22.7s3 2.3 4 13.9a68 68 0 0 1-7.3 36.5m-33.2 88.6 1.9-1.3c1.5-.9 1-3.7 1-3.7l5.2 3.2c1.4.6 2.1 1 3 1.2 1 .3.7 0 0-.5-.8-.4-1-.7-3-1.4-2-.8-5.8-4.2-5.8-4.2l2.5-.1c1.6 0 3.6-.9 3.6-.9s1.6 1.4 8 4.2a50 50 0 0 0 11.8 3.5s-.6 3.2-3.7 4.3c-2.6 1.1-6 1.8-13 .2a44 44 0 0 1-11.5-4.5m-8.4 6.5c-.6-2.7 1-4.6 1-4.6l1.3 1.1c1 .9 2.3 2.5 5 3.9s3.7 1.2 1-.2a39 39 0 0 1-6.3-5.3l1-.4c1-.4 2.7.3 10 4.6 7.1 4.3 11.4 4.5 11.4 4.5s-3.2 3.9-12 3.6c-8.7-.3-11.9-4.5-12.4-7.2m-16.6-3.1s1 1.3 2.3 2.2 4.8 1.4 4.8 1.4l.8 1.2c.6 1 2.1 3 3.7 4 1.5 1.2 4 2 4 1.6.2-.3-1.3-.8-2.8-1.8s-2.9-2.6-3.9-3.7.5-1 .5-1h3.5c1.7-.2 1.3 0 1.8.7l2.4 3 4.4 5.1c1 1.2.3 1.5.3 1.5s-.5.7-4.4 1.2c-2.4.2-5 0-7.7-1.6a23 23 0 0 1-5.2-4.5c-4.7-5.1-4.5-9.3-4.5-9.3m-2 10.5 1.5 1.8s-.7-2-1.3-3l-.9-1.4q1-2.1 1.6-4.7c.4 1.4 1.7 5.5 3.4 8.1 2 3.2 3.8 4.4 2.6 5.3s-3.4 1-6-.2c-2.4-1.2-3-3.3-3.4-5l1.2-2.1q.5.2 1.3 1.2"/>
+ <ellipse cx="-365.9" cy="158.6" fill="#d4af3a" rx="1.8" ry="1.6" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="M369.7 155.5c-1.6 0-2.5-.8-4.3-.6a26 26 0 0 0-8.5 3.3 15 15 0 0 1-9.8.9q-1.5-.6-2.9-1.4c-4.3-2.4-3.2-7.1-3.2-7.1a17 17 0 0 0 10.6 3.2l-.9.8c-.6.6-1.7 1.4-1.4 1.7s2-1.2 3.3-2.2 3.2-2.2 6.5-3.2 7-1 9.4.4 2.7 3 2.4 3.7q-.4.6-1.2.5m-46.2 34.7c.8-.2 2-.4 3.8-2a69 69 0 0 0 6.3-7q.8-1.2-1-2c-1-.5-1.9-2-1.9-2s2.5-1 4.3-2.2 5.6-4.8 6.2-5.7c.5-1 .3-1-.5-1.3q-1.2-.6-1-.8c.2-.2 1.8-1.2 3.5-2.6l4-3.6c2.6 1 6.6.6 8.8.2 3.8-.7 6.7-2.3 6.7-2.3l.6 1.8c.5 1.2 2.2 1.8 4 .7s1.4-3.7 1.4-3.7 1.4-1 4.4-2q4.3-1.7 7.7-.2c2.4 1.1 3.6 4.4 3.6 7 0 2.4-1.3 1.3-1.6 1s-.8-2.1-3.8-2.6-5.8 1-9.2 3.8-4.2 3-6 4.8c-1.6 1.8-.3 2.7 2.7 3.7s6.7-1 6.9-.9c.5.3-1.3 3-3.9 4s-5.8.3-8.3-.8c-1.7-.6-2 0-2.5.6a15 15 0 0 0-4 9 4 4 0 0 1-2.6-3c-.1-.6-.3-1.8-1.2-1-1 1-1.8 6-1.8 8.2s.7 5.3.7 5.3h-.7l-2.3-1.2q-1.3-.8-1.2 1.3c.1 2.1-.4 3.6-2 7.8s-4 5.5-4 5.5-.5-.8-1-2.5a33 33 0 0 1-.8-7.7c0-2.8.7-8.8.7-8.8s-3.4 4.2-7 5.2-7.1.4-8.6-1.3-.2-2.5.6-2.7"/>
+ <path fill="#d4af3a" d="M347 201s1 2.5 1.6 3.3q.9 1.2.9 1c0-.2-1.1 1-2.7 1.4l-3 .8s1.8-2.4 2.4-4.1l.7-2.3zm-21.5-1.3.9-2.1a15 15 0 0 0 8.1-1.7s-1.6 3.3-3.3 4.5l-1.8 1.2s1.6.3 3.8-2c2.2-2 3.2-4.6 3.2-4.6s-.5 5.8.4 9.3l1 4s-4.6.9-9.8-.6c-5.2-1.4-5.6-1.9-5.6-1.9s-.6-.1.2-1.2a28 28 0 0 0 3-5z"/>
+ <path fill="#b96b29" d="m335 187 1.7-2.3s.6.5 0 1.3a16 16 0 0 1-4.2 3.7c-1.6.9-3.1 1.2-3.1 1.2v-.4s4-1.7 5.5-3.5zm6.3 12 .4-8.3c0-1 .6-.8.6-.8l.8.3-1.5 10.6c-.2 1.2-.7 1-1 1 .5-.3.6-2.5.7-2.8m9.8-31.4c.6-.6 1.9-1 .6.4s-3 3.2-3.4 4.7c-.5 1.4-.8 3.3 0 2.9s1.4-.4 2.3-1.2c1-.7 2.6-2 3.3-2.1s2 0 1 1a25 25 0 0 1-4 3.6l-4 2.6-2 1.3s1-6 2.6-8.5a26 26 0 0 1 3.6-4.7m32 99.2c1.2 1 2.8 1.3 2.8 1.3s.7 0 .7.2-.9 0-1.8-.1a8 8 0 0 1-2.6-1.4c-.4-.4-1.1-.8-.9-1.4s.6.5 1.8 1.4m-10.4 5.5 2.3 1.8 1.3.7q.9.4.8.6 0 .3-.8 0c-.7-.2-2.8-1.7-3.5-2.3q-1-.7-.7-1 .4-.2.6.2m42-74.4c-.4.4-.9 1-1 .9q-.3-.3.4-1l.8-.9 1.1-1.5c.4-.4 1-.7.3.3zm3.1 7-1.3 1.3c-.5.5-.9 1.1-1.2.8s.7-.9 1.2-1.5l1.4-1.4 1.3-.8zm-1.2 11.2c-.8.9-2 1.1-2 .8q-.3-.5.7-1a24 24 0 0 0 4.6-3c.2 0-1 1.4-1.4 1.6q-.6.3-1.9 1.6m-2.2 9q-.2-.5.5-.5l1.6-.2s1.3-.5 1.4-.2-1 .8-1.6.8l-1.4.4q-.5.2-.5-.3m-1 9.8c1.4 0 2.6-.3 2.7 0q-.2.3-1.4.7c-.7.3-2 .3-3 .4q-1.2 0-1-.6c0-.5 1.3-.5 2.7-.5m-11 10.8h1.4c.8.3 2.1.5 2.8.5l2.4-.1 1 .2c0 .2-1.3.2-3 .4-1.8.2-3-.2-3.8-.3q-1.1-.4-.9-.7zm-4.6 7.6 2.1.4 2.3.3s.7 0 .6.4c-.1.3-.4 0-1-.1h-2.4q-1.6-.2-2.5-.5c-.7-.1-1.5-.5-1.1-1s1.1.2 2 .5m-9 5.8 2.5 1.8 1.1.6c.8.4.7.6.6.8s-.6-.3-1-.5l-2.5-1.6c-.7-.6-1.6-1-1.4-1.5q.1-.5.8.4zm14.9-74.8-1.7 2.3c-1.6 2-.7.1-.4-.4l3.4-4.5c.8-.9 1-.5.5 0zm3.2 9.8c-.2-.2.3-.4 1.1-1.5l2.7-3.3.6-1c.2.1-.6 1.8-1.3 2.5s-1.6 2-2.1 2.7q-.7 1-1 .6m-4.3 18.5c0-.5 1.8-.5 2.6-.6l2.2-.5s1.6-.3 1.6 0q0 .2-1.2.5l-3.3.8c-1 .1-1.9.3-1.9-.2m4.3-10-2.5 1.7q-1 .8-1.4.5-.4-.6 1.2-1.1l1.5-.9 1-.5c.5-.3 1.3-.6.2.3m-10-6.5 1.4-1s.9-.8 1-.5c.2.3-1 1-1.5 1.6-.5.5-1.5 1.9-2 1.6s.5-1.1 1.2-1.7zm6.6 25.7 1.5.4q1.2.3-.4.4c-1.6.1-1.6-.3-2.7-.5s-1.5-.3-1.3-.7q.3-.4 1.2 0zm-1.8 9.3c.1.2-.8 0-1.4-.2s-1.7-.9-2.4-1q-.9-.3-.7-.8c.2-.5.7 0 1.6.2s2 1.2 2 1.2l1 .6zm-12 5.6q-1.2-.7-.7-1 .4-.5 1.2.2l2 1.5 1.1.5c.5.2 1.2.7 1 1-.2.1-1.2 0-1.7-.6s-2-1-2.9-1.6m-5.6 7.5c-.4-.3-1.4-.6-1.8-1-.5-.3-.8-1.3-.4-1.4q.4 0 1.4 1l3.5 2.4.7.3q.9.4-.2.4c-.7-.1-1-.1-1.8-.7zm-8.4 7.1a9 9 0 0 1-2.2-1.7c-.5-.4-1.2-1-.8-1.3q.6-.3 1.4.6l2.1 2.2s.2 0 1 .7 0 .5-.3.3z"/>
+ <path fill="#d4af3a" d="m338.2 142.5 4-1 2.5 2-3.1 1.4z"/>
+ <ellipse cx="-330.8" cy="142.1" fill="#b96b29" rx="3.2" ry="3.1" transform="scale(-1 1)"/>
+ <circle cx="-330.8" cy="141.4" r="1.9" fill="#d4af3a" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="M337.5 131.4c-.8.3-1.9.2-1.9.2s-.3-1.4.5-2.1l2-1.7.5-.6v2c.1.8-.3 1.9-1.1 2.2"/>
+ <circle cx="-335.8" cy="133" r=".6" fill="#d4af3a" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="m340.2 132.4.8.9s-.7 0-1.2.4q-.9.7-1.9.6a1 1 0 0 1-.8-1q.1-.8 1.5-1.3c1-.4 1.3 0 1.6.4m-2.2 3.7c2 .2 4.6-2 4.6-2q.5 2.6 3 3v.1s-1.7.8-3.5 1.1a7 7 0 0 1-2.5-.2 11 11 0 0 1-3-1c-1.2-.7-.9-2.6-.9-2.6s.2 1.5 2.2 1.6zm7.8-2c.8-.3 2-.9 2.6-1 .5 0 1.3 0 1.1.9 0 1-1 1.4-2 1.4s-1.5-.3-2-.6q-.9-.4.3-.7m6.3-3.4q1.6-1 1.7-.9c.1.1.6 1.6.3 2.6s-1 1.2-1.9 1.2-2.1-.5-1.8-1.2q.5-.8 1.7-1.7"/>
+ <ellipse cx="-351.3" cy="135.1" fill="#d4af3a" rx=".7" ry=".5" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="M349.4 127.3c.5-2.7.4-5.6-2-9.3a16 16 0 0 0-7-5.1L339 111c-1.4-1.5-4.3-3.4-4.3-3.4l5.2 1.5a2.3 2.3 0 0 0 2.3 2.4q.6 0 1.3-.4c1 .1 4.4 2.2 5.2 2.9l-.3 1.2a2.3 2.3 0 0 0 2.3 2.3l1-.2.3.5 1.6 3.7q-1 .6-1 2c0 1.3 1 2.3 2 2.3v1.5q.1 1-1.7 1.6c-1.3.3-3 2.6-3 2.6-.2 0-1.1-1.6-.4-4.3z"/>
+ <path fill="#d4af3a" d="M341.3 110.3q-.6-.7-.1-1.4.6-.5 1.5.1c.9.6.6 1 .2 1.4q-.6.5-1.6-.1m8.5 5.7q-.8-1-.2-1.7.8-.6 1.7.1 1 1 .2 1.7t-1.7-.1"/>
+ <circle cx="-354.8" cy="123.2" r="1.3" fill="#d4af3a" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="M326.6 105q1 .2 3.8 1.6-2.1.1-2.3 1.9c0 1 1.2 2.2 2.5 2.2s2.2-1.1 2.2-2.2q0-.4-.2-.7l1.8 1.2c4.2 2.8 5.1 4.1 7.2 8 2 3.8 2.8 8 1.9 10.4s-4.2 3-4.2 3 .4-.3.4-.8l-.2-1.6c-.2-1 0-2.1 0-2.1s-.8-.1-1.2.4l-1.5 1.7-1.5 1.5s-.7-1-.7-2.1.8-2.3 1-4.3c0-2-1-5.5-2.9-8a22 22 0 0 0-6.6-5.5 2 2 0 0 1-1.3-1.7l-.2-2c-.1-1.2 1-1.1 2-.9"/>
+ <path fill="#d4af3a" d="M330.8 109.5c-.8 0-1.4-.7-1.4-1.3q0-1 1.3-1 1.2 0 1.3 1 0 1.4-1.2 1.3m-6.2 24.4c-1 .4-2.2.1-2.7-.2s-.7-1.3 0-1.8a2 2 0 0 1 2-.2l2 1.3s-.3.5-1.3.9"/>
+ <path fill="#d4af3a" d="M321.4 135q.3.9 1.7 1c1.1 0 2.3 0 3-.8l1.3-1.7h1.3s.4 1.7 1 2.1 2.4.6 3.3 0 1.6-1.4 1.7-1.3q.3.2-.8 1.4c-1.1 1.2-1.5 1.3-3 1.3H323s-1.6 0-2-1q-.7-1.4-.3-1.7.2-.3.7.7"/>
+ <path fill="#d4af3a" d="M333.5 133.7c-1.2.6-1.9.2-2.3-.3l-.5-.8 1.7-.7q.7-.7 1.5-.6l.6.1s.2 1.6-1 2.2z"/>
+ <ellipse cx="-339.3" cy="121.9" fill="#b96b29" rx="2.7" ry="2.6" transform="scale(-1 1)"/>
+ <path fill="#b96b29" d="M334.7 112.7c1-.7 2.6-.4 3.5.6.8 1.1.7 2.6-.4 3.3-1 .7-2.6.4-3.5-.6-.9-1.1-.7-2.6.4-3.3"/>
+ <ellipse cx="-339.4" cy="121.5" fill="#d4af3a" rx="1.6" ry="1.5" transform="scale(-1 1)"/>
+ <path fill="#d4af3a" d="M335.8 113q1.2-.2 1.9.8.5 1-1 1.4c-1.7.3-2.5-1.8-1-2.2z"/>
+</svg>
diff --git a/apps/web/public/flags/mf.svg b/apps/web/public/flags/mf.svg
new file mode 100644
index 00000000..6305edc1
--- /dev/null
+++ b/apps/web/public/flags/mf.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mf" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/mg.svg b/apps/web/public/flags/mg.svg
new file mode 100644
index 00000000..5fa2d244
--- /dev/null
+++ b/apps/web/public/flags/mg.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mg" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fc3d32" d="M213.3 0H640v240H213.3z"/>
+ <path fill="#007e3a" d="M213.3 240H640v240H213.3z"/>
+ <path fill="#fff" d="M0 0h213.3v480H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mh.svg b/apps/web/public/flags/mh.svg
new file mode 100644
index 00000000..7b9f4907
--- /dev/null
+++ b/apps/web/public/flags/mh.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mh" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#3b5aa3" d="M0 0h639.9v480H0z"/>
+ <path fill="#e2ae57" d="M0 467 639.9 0v87L0 480z"/>
+ <path fill="#fff" d="M22.4 480 640 179.2l-.1-95.5L0 480zm153-464.8L169 118l-27-65.6 10.4 69.8-41.9-56.4 27.5 64.3-55-42.6 42.8 53.6-62.1-27.6 54.4 41.2-67.7-9 64 25.4L14 180.3l100.6 6.7-63.7 26.2 67-9-54.3 40 63-27.6-43 54 54.6-41.3-27 62.9 43.6-54.7-11.8 68.1 27.5-63.7 6.2 100.7 9.7-100.4 23.7 64-9-69 43.4 54.8-28.6-64 54.6 44-43.4-54.9 64.9 27-57.4-41.9 69.9 11.8-67-25.7 104.1-6.5-104-9.7 68.5-22.8-71 9 58.6-41-66 26.5 45.6-55.3-55.6 43.4 26.7-66.4-43.1 56.4 9.3-70.4-25.7 66.5-9.6-102.8z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mk.svg b/apps/web/public/flags/mk.svg
new file mode 100644
index 00000000..4f5cae77
--- /dev/null
+++ b/apps/web/public/flags/mk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mk" viewBox="0 0 640 480">
+ <path fill="#d20000" d="M0 0h640v480H0z"/>
+ <path fill="#ffe600" d="M0 0h96l224 231.4L544 0h96L0 480h96l224-231.4L544 480h96zm640 192v96L0 192v96zM280 0l40 205.7L360 0zm0 480 40-205.7L360 480z"/>
+ <circle cx="320" cy="240" r="77.1" fill="#ffe600" stroke="#d20000" stroke-width="17.1"/>
+</svg>
diff --git a/apps/web/public/flags/ml.svg b/apps/web/public/flags/ml.svg
new file mode 100644
index 00000000..6f6b7169
--- /dev/null
+++ b/apps/web/public/flags/ml.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ml" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="red" d="M425.8 0H640v480H425.7z"/>
+ <path fill="#009a00" d="M0 0h212.9v480H0z"/>
+ <path fill="#ff0" d="M212.9 0h214v480h-214z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mm.svg b/apps/web/public/flags/mm.svg
new file mode 100644
index 00000000..42b4dee2
--- /dev/null
+++ b/apps/web/public/flags/mm.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-mm" viewBox="0 0 640 480">
+ <path fill="#fecb00" d="M0 0h640v480H0z"/>
+ <path fill="#34b233" d="M0 160h640v320H0z"/>
+ <path fill="#ea2839" d="M0 320h640v160H0z"/>
+ <g transform="translate(320 256.9)scale(176.87999)">
+ <path id="mm-a" fill="#fff" d="m0-1 .3 1h-.6z"/>
+ <use xlink:href="#mm-a" width="100%" height="100%" transform="rotate(-144)"/>
+ <use xlink:href="#mm-a" width="100%" height="100%" transform="rotate(-72)"/>
+ <use xlink:href="#mm-a" width="100%" height="100%" transform="rotate(72)"/>
+ <use xlink:href="#mm-a" width="100%" height="100%" transform="rotate(144)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mn.svg b/apps/web/public/flags/mn.svg
new file mode 100644
index 00000000..6a38a71f
--- /dev/null
+++ b/apps/web/public/flags/mn.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="#ffd900" id="flag-icons-mn" viewBox="0 0 640 480">
+ <path fill="#da2032" d="M0 0h640v480H0Z"/>
+ <path fill="#0066b3" d="M213.3 0h213.4v480H213.3Z"/>
+ <circle cx="106.7" cy="181.8" r="40"/>
+ <circle cx="106.7" cy="163.6" r="43.6" fill="#da2032"/>
+ <circle cx="106.7" cy="170.9" r="29.1"/>
+ <path d="M109.7 76.4a9 9 0 0 0-5.2 7.5c-.2 2.5.9 5.3 1 7.7 0 4.2-4.3 5.6-4.3 11.5 0 2 1.9 4.3 1.9 9.6-.4 2.8-2 3.5-3.7 3.7a3.6 3.6 0 0 1-3.6-3.7 4 4 0 0 1 1-2.5l.4-.3c.8-.9 2-1.2 2-3.4 0-1.1-.8-2.2-1.5-4.2s-.2-5.2 1.4-7.1c-2.6 1-4.1 3.4-5 5.6-.8 2.7 0 4.2-1.2 6.5-.7 1.4-1.5 2-2.3 3.2-1 1.4-2 4.4-2 5.9a18.2 18.2 0 0 0 36.3 0c0-1.5-1.1-4.5-2-5.9-.9-1.2-1.7-1.8-2.4-3.2-1.2-2.3-.4-3.8-1.3-6.5-.8-2.2-2.3-4.6-4.9-5.6 1.6 2 2 5.2 1.4 7.1-.7 2-1.4 3-1.4 4.2 0 2.2 1.1 2.5 2 3.4l.3.3a4 4 0 0 1 1 2.5 3.6 3.6 0 0 1-3.6 3.7c-2-.3-3.5-1.2-3.7-3.7 0-7 3-7.4 3-12.6 0-7.4-6.6-10.9-6.6-16.3 0-1.8.4-5 3-7.4M26.7 229H63v174.5H26.7Zm123.6 0h36.4v174.5h-36.4zm-80 0H143l-36.3 21.8Zm0 29H143v14.6H70.3Zm0 101.9H143v14.6H70.3Zm0 21.8H143l-36.3 21.8Z"/>
+ <circle cx="106.7" cy="316.4" r="36.4"/>
+ <g fill="#da2032" transform="translate(-38.8 32.7)scale(.72727)">
+ <circle cx="200" cy="363.5" r="10"/>
+ <circle cx="200" cy="416.5" r="10"/>
+ <path d="M200 334a29.5 29.5 0 0 1 0 59 23.5 23.5 0 0 0 0 47v6a29.5 29.5 0 0 1 0-59 23.5 23.5 0 0 0 0-47z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mo.svg b/apps/web/public/flags/mo.svg
new file mode 100644
index 00000000..f638b6cb
--- /dev/null
+++ b/apps/web/public/flags/mo.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-mo" viewBox="0 0 640 480">
+ <path fill="#00785e" d="M0 0h640v480H0z"/>
+ <path fill="#fbd116" d="m295 108.7 40.5 29.5L320 90.5l-15.5 47.7 40.6-29.5z"/>
+ <g id="mo-a">
+ <path fill="#fff" d="M320 331.6H217.5l-3.8-4H320a2 2 0 0 1 1.4 2q0 1.4-1.4 2m0-31.3a13 13 0 0 0 1.2-7.6 12 12 0 0 0-1.2-3.8 82 82 0 0 1-32.5 19 81 81 0 0 1-23.5 3.5h-63.1l5.8 8h61c20 0 38.2-7.2 52.3-19.1m-109.6-24.7a32 32 0 0 1-9.7 2 81 81 0 0 0 60.8 27.5 81 81 0 0 0 58.5-25 441 441 0 0 0 4.5-58.8 441 441 0 0 0-4.5-67.7c-6.6 6-19 18.7-24.8 38.3A81 81 0 0 0 292 215a81 81 0 0 0 13.7 45 81 81 0 0 1-17-49.5q.1-18.8 7.8-34.7a33 33 0 0 1-7.5-13 81 81 0 0 0-10.5 40c0 18 5.9 34.7 15.9 48.1a95 95 0 0 0-73.4-29.4 33 33 0 0 1 6.8 8.9 95 95 0 0 1 68.6 29.4 95 95 0 0 0-61-22.2 95 95 0 0 0-36.7 7.3 81 81 0 0 0 82.6 52.2q-7 1.3-14.4 1.3a81 81 0 0 1-56.4-22.8zM320 364.4h-53.1a144 144 0 0 0 53.1 10.1 11 11 0 0 0 1.3-5 11 11 0 0 0-1.3-5.1m0-24.5h-93.6l7.8 6.2H320a5 5 0 0 0 1.3-3.1 4 4 0 0 0-1.3-3.1m0 12.5h-76.7a144 144 0 0 0 14.4 8H320a8 8 0 0 0 1.2-4.2 8 8 0 0 0-1.2-3.8"/>
+ <path fill="#fbd116" d="m200.5 174.8 25.4 23.6-6.7-34-14.6 31.4 30.3-16.8zm36.9-32 34.7.6-27.7-21 10.1 33.3 11.3-32.9z"/>
+ </g>
+ <use xlink:href="#mo-a" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
+</svg>
diff --git a/apps/web/public/flags/mp.svg b/apps/web/public/flags/mp.svg
new file mode 100644
index 00000000..26bfa221
--- /dev/null
+++ b/apps/web/public/flags/mp.svg
@@ -0,0 +1,86 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mp" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="mp-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#mp-a)">
+ <path fill="#0071bc" fill-rule="evenodd" d="M-160 0h960v480h-960z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M370 365.7s15.2-16.1 29.8-13c4.4-17 21-18.4 21-18.4s-1.7-18.7 19.5-22.8c.6-12.7 13.5-23.3 13.5-23.3s-2.6-19.7 10.8-24.3c-8.2-15.6 2.8-27 2.7-27.3-.2-.3-14-24.8-1.6-31.8-13-11-8.8-23.4-8.8-23.4s-14.2-3.7-9.1-20.7c-11.7-2-14-20.9-14-20.9s-18 3.7-20.2-12c-12 1.9-13.2-9.8-13.4-9.8-.1 0-23.5 6.3-28.2-11.4-9.1 4.7-13-3.7-13-3.7s-13 6.5-20.8-6c-15.5 9.7-24.2-.4-24.2-.4s-20.3 13.4-27 3c-12 12.2-22.8 7-22.8 7s-9 16-23.7 12c-3.3 14.9-20.2 15.2-20.2 15.2s1.8 13.1-18.4 16.7c-2.6 15.5-13.2 18-13.2 18s1 15.2-8.5 20c3.4 8.5-5.4 18.9-5.4 18.9s9.4 11.7-3.4 24.9c12.3 3.2 3.4 24.4 3.4 24.4s17 7.6 6.3 21.7c12.2 4 8.4 13.6 8.5 19.3 7.8 3.5 14.6 1.8 11.3 17.4 23.8 2.7 12.6 15.8 12.6 15.8s11 .5 6.7 9.3c20.3-.5 23.3 15.2 23.3 15.2s18.8-5 21.3 2.3-8.2 56.7-8.2 56.7-16 0-27.8-12.8c-27.8-.7-21.6-19-22-19-.5 0-9.3 3.4-13.8-11.9-18.6 3.8-18-11.8-18.2-12s-8.3-3.8-5.3-11.5c-19.1 1.7-17.7-17-17.7-17-4.2-1.7-5.7-5.6-5.1-9.5-2.5-.9-19.5-1.2-10.7-23.6-16.2-9.8-6.1-21-6.1-21s-22.4-11.6-5.1-25c-13-19 1-28.5 1-28.5s-17.9-18.1.3-31c-3-27.5 13.4-34.1 13.4-34.1s-8.6-22.4 14.8-31.8c1.5-22.7 17.9-23.3 17.9-23.3s.4-18 26.2-16.2c5-16.1 22.5-12.9 22.5-12.9s5.4-19.5 29.3-10.1c12.1-23.7 30.2-11.6 30.2-11.6s11.4-7.4 17-5c7.3-12.5 22.8-.6 32.7 1.9 3.7-1.5 16.6-11.2 26.5 1 13.2-8.5 24.5 7 24.5 7s18.1-9.2 26.6 11.8c38.5-3.5 33 21.7 33 21.7s30.2-6.9 23.6 23.3c27.6 1.9 24.8 20 24.8 20s17.4 13.2 9.8 25c15.5.8 9.8 15.7 9.8 15.7s11.9 4.6 2 23c22.7 18.1 4.4 36.2 4.3 36-.2-.1 12.1 14.6 1 31.6 3.4 27-10.2 33.8-10.2 33.8s3.5 17.5-11.7 22.4c-.3 20.5-19.7 23-19.7 23s5.2 9-14 18.3c-.8 13.7-20.8 14.8-20.8 14.8s-1.9 25.2-27.4 18.4c-6.1 20.2-36 14.2-36.6 14-.5-.3-5.7-43.4-5.7-43.5z"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M185 124s6.4 5.6 5.2 14-6 19.9-5 28.5c.6 3.5.3 9.7.3 9.7s-5.7-8.2-5.8-17 6.2-17.1 6.2-23.6-1.1-11.7-1-11.5zm-3.2 2.6s-8.4 8-9.5 15.7c-.8 4-1 22.7-1.2 31-.2 2.5-1.2 12.5-1.4 16.2-.3 3.6 6.1-6.2 6.5-14.3-.2-8.3-.2-25.8.6-28.5.8-3.4.6-7.1 1.8-10.5z"/>
+ <g fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10">
+ <path stroke-width="1.9" d="M366 100.5s10.8-5 14-14.4-9.5-9.4-11.1-6.4c-1.7 3 1.4 10.3.6 12.3s-5.2 6.6-3.5 8.4z"/>
+ <path stroke-width="2.5" d="M269.8 103.9s7-9.7 5.2-19.4c-1.9-9.6-12.8-3.6-12.8-.2s6.2 8.3 6.5 10.4-1.3 8.4 1 9.1zm-19.1 5.7s7-9.7 5.2-19.3-12.8-3.7-12.8-.3 6.3 8.4 6.6 10.5-1.3 8.3 1 9.1zm-21.1 6.5s7-9.6 5.2-19.3c-1.9-9.7-12.8-3.7-12.8-.3s6.2 8.4 6.5 10.5-1.3 8.3 1 9.1zm-15 14.9s7.1-9.7 5.3-19.3-12.8-3.7-12.8-.3 6.3 8.4 6.5 10.5-1.3 8.3 1 9.1zM199 145.4s7-9.7 5.2-19.4-12.8-3.6-12.8-.2 6.3 8.3 6.6 10.4-1.3 8.4 1 9.2z"/>
+ <path stroke-width="1.9" d="M235 61.7s-9.4 7.4-10.2 17.2 11.3 7 12.2 3.7c1-3.3-3.7-9.7-3.4-11.8.3-2 3.5-7.7 1.4-9zm31.3-9.6s-9.3 7.4-10.2 17.2 11.3 7 12.3 3.7-3.8-9.8-3.5-11.9 3.5-7.7 1.4-9zm-116.7 84.5s2 11.8 10.2 17.3 11.5-6.6 9.1-9-10.3-1.4-12-2.6-5-6.8-7.3-5.7zm-15.6 40s0 12 7.3 18.7 12.4-4.7 10.4-7.4-10-3-11.4-4.5c-1.5-1.6-4-7.5-6.3-6.7zm36 44.8s-4.2-11.2-13.3-15c-9.1-3.6-10 8.8-7.2 10.7 2.9 1.8 10.4-.7 12.3.2s6.3 5.6 8.3 4zm-7.4-19.4s7.2-9.5 5.6-19.1-12.7-4-12.8-.6c0 3.4 6 8.5 6.3 10.6s-1.5 8.3.9 9.2zm225.6-91.9s10.8-5 14-14.3-9.5-9.4-11.1-6.5c-1.7 3 1.4 10.4.6 12.3s-5.2 6.7-3.5 8.5zm32.8 16.4s6.4-10.1 3.9-19.6-13-2.8-12.8.6c.2 3.3 6.8 7.9 7.2 10s-.7 8.4 1.7 9zm89.6 93s-4.3-11.1-13.4-14.9c-9.1-3.7-10 8.8-7.2 10.6 2.9 1.9 10.5-.7 12.3.2 2 1 6.3 5.7 8.3 4.1zm-43.8 7s.2-12 7.5-18.6 12.4 4.9 10.4 7.6c-2.1 2.7-10 2.8-11.6 4.3-1.4 1.5-4 7.4-6.3 6.6zm-7-126.8s-11.3-4.3-20 0c-9 4.4-.2 13.4 3 12.5s6.4-8.3 8.4-9.1 8.4-1 8.5-3.4zM434 78.3s-11.1-4.3-20 0c-8.8 4.4-.1 13.4 3.2 12.5 3.2-1 6.4-8.3 8.3-9.1s8.4-1 8.5-3.4zm-38-20.4s-9.5 7.3-10.4 17c-1 9.8 11.2 7.1 12.2 3.9 1-3.3-3.7-9.8-3.4-11.9s3.6-7.6 1.6-9zm-24.8-6s-4.4 11.1-.1 20 13.3.2 12.4-3-8.2-6.5-9-8.4-.9-8.5-3.3-8.6zm-70.5 43s7.7-9.2 6.6-19c-1.1-9.7-12.5-4.5-12.7-1.1-.3 3.4 5.6 8.8 5.7 10.9s-1.9 8.2.4 9.1z"/>
+ </g>
+ <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M342.8 114.4s18.5 1.2 19.4 11.8-4.4 17.1-4.4 17.1 2.3 23-15.8 29.7c-19.4 2.3-49.9.5-49.9.5s-9 2.2-12.6-16.3a305 305 0 0 1-4.6-31.6s1.8-10.4 14.9-11c13-.7 52.8 0 53-.2z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="1.9" d="M357.7 143.2s-10 12.4-9 17.5"/>
+ <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M344.3 172.3c2.5 2.1 4.8 4.4 5.3 12l1 15.4 13 116.6 11.4 84.3.8 13s-2.7 9.7-10.4 10.5c-5.5 11.6-35.7 15-38.7 14.9-2.7-.2-12.3-4.2-18.1-3.7s-16 4.4-20.5 3.8-14.8-4.2-16.6-11.6c-12.7-4-14.7-13.7-14.7-13.7l13.7-97.5 13.3-123.4s1.6-16.4 8.2-18.9c6.9-.6 42.4.7 52.3-1.7z"/>
+ <path fill="none" stroke="#000" stroke-width="1.9" d="m274.4 341.1-2.7 86.3m86.5-74.9 7.6 71.2"/>
+ <path fill="none" stroke="#000" d="m136.6 296.3-.3 1m358.7-4.1.3 1"/>
+ <path fill="none" stroke="#6b18b5" stroke-linejoin="round" stroke-width="1.9" d="M127 179.8s5.6 7.9 6.7 12.4c1 4.5 2.9 13.4 5.3 17 2.5 3.7 16.6 23.9 17.4 32.3.1 5.6-5.9 15-14.7 15.2-5.6-.2-19.8-3.8-20.4-16-.6-12.3 4.3-12.5 5-20 .5-7.4.7-40.7.7-40.9z"/>
+ <path fill="none" stroke="#6b18b5" stroke-linejoin="round" d="M224.5 72.8s-6 .4-10.4 2.9c-3.5 2.1-9.5 5.3-13.6 11-10.6 8.2-26.5 12-31.5 19-3 4.6-2.8 15.7 4.7 20.5 4.8 2.7 19 7 25.8-3.1s2.7-13 6-19.6a117 117 0 0 1 19-30.7zM367 58s-4.4-4-9.3-5.5c-4-1-10.6-.6-17.5-1.3-13.3-1.8-27-11.4-35.3-10.2-5.4 1-13.3 9-11.5 17.6 1.3 5.4 7.3 16.2 19.4 14.1s12-4.8 19-7c17.4-9.7 35-7.7 35.2-7.7zm141.4 137.4c1-2.3-.9-6.6-2.2-11.5-1.2-4-3.1-10-7.7-15.5-5.4-12.2-4.5-29-10-35.4-3.7-4-14.6-6.6-21-.4-3.9 4-11.4 16.6-3.2 25.7s11.8 5.7 17.4 10.5c13.5 9 20 25 26.7 26.6zM503.5 302c1.9-2.5 5.2-7.4 4.8-11.5-.3-3.2 1.5-13 1.7-17.3 1.2-13.3 9.5-24.2 7.2-35.7-1.3-5.4-9.2-13-17.8-10.8-5.2 1.6-17 8-14.3 20s6.6 11.7 9.1 18.7c7.3 14.5 2.7 31.7 9.3 36.6z"/>
+ <path fill="none" stroke="#000" stroke-width="1.9" d="M405.5 386.8s-2.3 4.4 6.8 8.2m11.3-18.4s10-2.5 16.8 0m13.2-25.4c0 .2-1.4 4.5 6.6 10.8m-.8-22s5.9 4.3 15.8 4m-75.4 8.6s.3 11.5-5.6 16.8m25.4-34.5s9.7 2.4 17.7-1.6m44.6-15.3s2.1 3 12.9 2.5m-54.9-9.3c.3.2 12.7 4.2 20.5.6m4.2-47.8s.5-.7 4.3 12.7m5.2-50.4s-.5 7.1-6.2 10.2m42.9-39.4s-8.4 6.8-6.8 9.5m-34.7-14.4s4.3 7.3-2.8 12.3M448.2 161s7.5-.3 10.8 6.1m-24.8-27.3h5.7m24-26c0 .1 1.5 1.5-1.4 4.5m-52-3.8s4 6.2 3.3 13.9m19.8-35.1c1.8-.2 7.7-2.8 7.7-2.8m-33.4-22c-.1 0-2.2 7.7 1.6 10.5m-11.1 25c0 8.4 6.6 6.3 2 14.3M382.2 97a57 57 0 0 0-10.4 9.4m-16.4-13.7s4.4 4.3 3.3 10.2m-16-13.7s-2.2 6.6-5.1 8.3m-18-10c-.1.3-3.6 7.8-6 9.1m-25.6-9c.2 0 3.5 7-.8 12m-6.5-48c.2.2.7 5.4-2.6 10m-28.7 1.9c0 .1 1.4 5.9-7.8 7.8m-9.9 45.2c.2.3 8.9 1.7 8.9 1.7M210 136.6c.2-.2 10.6-3.3 10.6-3.3m-27.4 16.3c.3 0 7.3 1.3 9 .4m-14 6s2.3 1.3.4 13m-34.2-43.5 4.2 6.2m-18.5 26c0-.2 4.2 6.2 9.8 7.4m23 25.2a49 49 0 0 0 8-2M170 213.8c.2 0-.1-4.3 5.2-7.3M163 224.7c0 .2 5 6.4 8.5 7.3m-11.5 4.7c.6-.2 6-4.9 12.2-4.5m-13.9 20.6s.2 5.4 16.2 4m-14.6 15c0-.2 4.7-10.8 14.2-14.8m-1.4 28.4s1.4-4.6 9.4-7.7m-.5 25.5s5.7-4.7 7.8-5.3m-.7 19.3s3.5 3.6 12.2-2.7m-54 5.6c1-.2 13.7-3.1 18 3.5m-13 7s13.4-1.8 15.1-.4m32.7 3.1s-1.8 3.7 14.7-2.4m5.8 9c-3 5 .7 9-3.2 11.3m-47-4.3c.5-.4 6-2.3 5.2-10.3m-.2 22.3c.7-.2 9.9-4.2 11.8-2.1m6.3 13.7s1.2-8.2 3.8-9m10 21.3s7.7-.1 11-2.6m3.8-25c.2.2 7.1 3.8 22 .2m-16.4 33s2 10.6 2 13"/>
+ <g fill="#de2010" fill-rule="evenodd" stroke="#000" stroke-width="1.5">
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.60885 -.2011 .2072 1.65762 94.8 75)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.60885 -.2011 .2072 1.65762 93.4 57.3)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.58497 -.3417 .35206 1.633 78 74)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.4455 -.73446 .7567 1.4893 55.9 163)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.4455 -.73446 .7567 1.4893 48.9 147.1)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.3781 -.85423 .88011 1.41987 40 167.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.28907 -.98346 1.01327 1.32812 33.8 193)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.1329 -1.15994 1.19508 1.16722 35.3 239)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(1.02138 -1.25922 1.29739 1.05234 34.3 262.7)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.79817 -1.41132 1.45408 .82236 51.9 315)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.66642 -1.4781 1.52289 .6866 56.8 337.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.56582 -1.51945 1.5655 .58296 57.9 352.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.4482 -1.5582 1.60543 .46178 63 370.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.20288 -1.60864 1.65738 .20903 94.7 408.9)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.06506 -1.62008 1.66918 .06703 106.3 427.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(.06506 -1.62008 1.66918 .06703 88.8 428)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-.36132 -1.5806 1.62852 -.37226 172.5 473.5)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-.49045 -1.54542 1.59227 -.50531 188.3 485.8)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-.67103 -1.476 1.52073 -.69138 221.9 499.1)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-.7945 -1.41337 1.4562 -.81858 241.4 508.3)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-.94339 -1.31867 1.35863 -.97197 271.6 515.4)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.05159 -1.2341 1.27151 -1.08344 292.4 520.2)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.13737 -1.15553 1.19056 -1.17183 308.9 526.1)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.2301 -1.05628 1.08829 -1.26738 331.4 529.6)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.33573 -.91908 .94693 -1.3762 362.5 526.1)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.47374 -.67597 .69645 -1.51841 415.9 504)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.52895 -.53958 .55593 -1.5753 438.7 497.5)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.61445 -.12005 .15429 -1.33344 500.5 406)"/>
+ <path d="M232.8 119c0-2-.8-4-2-5q-2.2-1.6-4.2 0c-2 1.6-2.1 3-2.1 5q.1 3.3 2 5.1 2.3 1.6 4.2 0c1.9-1.6 2.2-3 2.1-5z" transform="matrix(-1.58082 -.36035 .37125 -1.62873 468.4 480.8)"/>
+ </g>
+ <path fill="#ffe300" fill-rule="evenodd" d="M480 194.7q3.1-3.5 6.7-2.1c-1-6.1-2.8-8.2-5.2-7.4-2.3.7-3.4 3.8-1.5 9.5m3.3 18.2c2.3-2.1 4.3-2.6 6.8-1.6-.4-6-2.2-8.3-4.6-7.7-2.4.5-3.6 3.6-2.2 9.3m-7.8-35q2.1-4 6-3.7c-2.5-5.6-4.8-7.1-7-5.8-2 1.3-2.2 4.6 1 9.6zm-8.1-16.6q2.1-4.1 6-3.7c-2.5-5.7-4.9-7.2-7-5.9s-2.2 4.6 1 9.6m-19.5-30.5q1.4-4.4 5.2-4.6c-3.3-5.2-5.9-6.3-7.7-4.7s-1.5 5 2.5 9.3M435 117.5c1-3 2.4-4.4 5-4.8-3.4-5-6-6-7.8-4.4-1.8 1.7-1.4 5 2.8 9.2M408.3 95c0-3.2 1-5 3.3-6.2-4.8-3.7-7.7-3.8-8.8-1.7s.2 5.1 5.5 7.9m14 10.5q.5-4.5 4.3-5.5c-4.2-4.5-6.9-5.2-8.4-3.3s-.7 5.1 4 8.8zm-30-19.3c-.3-3.1.5-5 2.7-6.5-5.2-3.2-8-3-9-.8s.8 5.1 6.4 7.3zM376.2 79c-.8-3-.3-5 1.7-6.8-5.6-2.4-8.4-1.9-9 .5s1.5 4.9 7.3 6.3m-17.5-5.4c-1.1-3-.8-5 1.1-7-5.8-1.9-8.5-1.1-9 1.3-.3 2.4 2 4.8 7.9 5.7m-17.3-3.4q-1.8-4.1.7-7c-6-1.5-8.6-.5-8.8 2-.3 2.4 2.2 4.6 8.1 5m-18.2-1.4q-2.4-3.9 0-7c-6.1-.9-8.7.4-8.6 2.8 0 2.5 2.7 4.4 8.6 4.2m-35.7 2.7q-3.2-3.2-1.8-6.8c-6 .6-8.2 2.4-7.6 4.8s3.7 3.6 9.4 2m17.6-2.3q-2.8-3.6-.9-7c-6.1-.2-8.5 1.3-8.2 3.8.3 2.4 3.2 4 9 3.2zm-34.9 6q-3.6-2.7-2.7-6.4c-6 1.5-7.8 3.6-6.9 5.8 1 2.3 4.2 3 9.6.6m-33 15.2q-4.1-2-3.9-5.8c-5.6 2.6-7 5-5.6 7 1.3 2 4.6 2.2 9.5-1.2m16-8.1q-4-2.4-3.2-6.2c-5.9 1.8-7.6 4-6.5 6.2s4.4 2.8 9.6 0zm-45.6 28.8q-4.4-1-5-5c-5 3.8-5.8 6.4-4.1 8.1s5 1.2 9-3.1zm14.1-11.6q-4.4-1.4-4.6-5.2c-5.2 3.2-6.3 5.8-4.7 7.7 1.6 1.8 5 1.5 9.3-2.5m-26.7 24q-4.4-.7-5.4-4.5c-4.6 4.1-5.2 6.9-3.3 8.4 1.9 1.6 5 .7 8.7-4zM183.7 138q-4.7-.2-5.8-3.8c-4.2 4.5-4.6 7.2-2.6 8.6s5.1.2 8.4-4.8m-9.4 15c-3.2.2-5-.7-6.4-3-3.4 5.1-3.4 8-1.2 9s5.1-.6 7.6-6m-8.3 16q-4.3 1-6.7-2.2c-2.7 5.5-2.3 8.3 0 9 2.3.8 5-1.2 6.7-6.9zm-6.6 16.3c-3 1.1-5 .8-7-1-1.8 5.8-1 8.5 1.5 8.9 2.4.3 4.7-2 5.5-8zm-4.5 18.2q-4 2-7-.5c-1.4 6-.4 8.5 2 8.7 2.5.3 4.7-2.2 5-8.2m-1.8 15.2q-3.7 2.1-7 .5c-.7 4.9.6 6.8 3 6.6s4.3-2.4 4-7.1m307-72.2q1.5-4.4 5.3-4.6c-3.2-5.2-5.7-6.3-7.6-4.8-1.9 1.6-1.6 5 2.3 9.4m25.2 85q3.3-3.3 6.8-1.6c-.4-6.1-2.2-8.3-4.6-7.8s-3.6 3.6-2.2 9.4"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M461.3 132s-7 6.9-5.7 15.2 6.5 18.6 5.5 27.3-2.5 14.3-2.5 14.3 8-9.1 8-18c.2-8.7-5.4-20.3-5.4-26.7s.3-12.2.1-12zm12.7 28s-5.3 4-4.8 13 10 25.8 10 25.8 6.8 14 6.5 17.7 1.3-3.5.6-11.5-11-25.8-11-25.8-2.2-3.6-2-9.7.8-9.4.8-9.5z"/>
+ <path fill="#6b18b5" fill-rule="evenodd" d="M313 47.4c0-1.8-2.2-3.4-4.8-3.4s-4.7 1.6-4.7 3.4 2 3.4 4.7 3.4 4.7-1.5 4.7-3.4zm2 8c0-1.8-2.2-3.3-5-3.3-2.6 0-4.8 1.4-4.8 3.2s2.2 3.3 4.9 3.3 4.8-1.5 4.8-3.3zm6-9.4s-5.6 4.1-3.3 5.8 8.6-3.6 8.6-3.6zm163.3 95.4q0-1.9-1.4-2.9a3 3 0 0 0-3 0q-1.4 1-1.4 2.9c0 1.9.5 2.3 1.4 2.9a3 3 0 0 0 3 0q1.4-1 1.4-2.9m-2.1-8c0-2-1.4-3.5-3-3.5s-3.1 1.6-3.1 3.6 1.4 3.5 3 3.5 3.1-1.6 3.1-3.5zm1.5 16.2q-.2-1.7-1.2-1.8c-1-.1-1.2.8-1.2 1.8s.5 1.9 1.2 1.9 1.2-.9 1.2-1.9m4.9-14.4q-.2-2-1.2-2.1-1.1.2-1.2 2c-.1 1.8.5 2.2 1.2 2.2s1.2-1 1.2-2.1m-13.4 1.4q-.2-1.6-1.2-1.7c-1-.1-1.2.8-1.2 1.7s.5 1.8 1.2 1.8 1.2-.8 1.2-1.8m2.1 11.4c0-1.5-1.1-2.7-2.5-2.7s-2.5 1.2-2.5 2.7 1 2.8 2.5 2.8 2.5-1.2 2.5-2.8m-6.6-5c0-1.3-1-2.4-2.1-2.4s-2.2 1-2.2 2.4 1 2.4 2.2 2.4q1.8-.1 2-2.4zm-1-6.8a2 2 0 0 0-1-1.7 2 2 0 0 0-1.9 0 2 2 0 0 0-.9 1.7 2 2 0 0 0 1 1.8 2 2 0 0 0 1.8 0q1-.6 1-1.8m30.1 34.4c-2.7-3.6-7.1-5.1-9.8-3.4-2.6 1.7-2.6 6 .2 9.7 2.7 3.6 7 5.1 9.7 3.4 2.7-1.8 2.7-6 0-9.7zm7.8 66.7c.5-4.5-1.6-8.4-4.8-8.8-3.2-.3-6.2 3-6.8 7.4s1.7 8.3 4.9 8.7 6.2-3 6.7-7.3m1.6 38.8c1-4.4-.9-8.5-4-9.2-3.2-.6-6.5 2.4-7.4 6.8-.9 4.3 1 8.4 4 9 3.2.7 6.5-2.3 7.4-6.7zm7.5-36.4c0-1.7-1.2-3.1-2.6-3.1s-2.7 1.4-2.7 3.1 1.2 3.2 2.7 3.2 2.6-1.4 2.6-3.2m-6.5 7.3-5.4 6.2s-5.1.1-4.8 1.8 7 6.6 7 8.6c-.1 2 4.4-.5 4.4-.5l3.7-11.1s-.2-7.7-2.2-7.6-2.5 2.5-2.7 2.6m-357.4-2.4a2.6 2.6 0 1 0-5.1 0 2.6 2.6 0 0 0 5.1 0m2.5-8c0-1.4-1.2-2.6-2.6-2.6s-2.6 1.2-2.6 2.7 1.2 2.7 2.6 2.7a3 3 0 0 0 2.6-2.7zM134 199.2c-1-2.2-3-3.4-4.5-2.7s-2 3-1 5.2 3 3.4 4.5 2.7c1.6-.7 2-3 1-5.2m6.5 23.4c-1.4-2.8-4.1-4.4-6.2-3.5s-2.7 3.9-1.4 6.7 4 4.4 6.2 3.5 2.7-3.9 1.4-6.7m6.8 17.2c.5-3.5-1-6.8-3.2-7.2s-4.4 2-4.9 5.5 1 6.7 3.3 7.2 4.4-2 4.8-5.5m-11 2.5c1.4-3.3.9-6.8-1.1-7.8s-4.8.7-6.2 4-.9 6.7 1.2 7.8 4.7-.7 6.1-4"/>
+ <path fill="#6b18b5" fill-rule="evenodd" d="M131.3 234.8c0-1.7-1.3-3-2.9-3s-2.9 1.4-2.9 3 1.3 3 3 3 2.8-1.3 2.8-3m-2.3-7.5c0-1.5-1.2-2.7-2.6-2.7a2.7 2.7 0 0 0-2.6 2.8c0 1.4 1.2 2.7 2.6 2.7s2.6-1.3 2.6-2.8m2.4-14.3c0-2.6-1.1-4.6-2.5-4.6s-2.5 2-2.5 4.6 1.1 4.6 2.5 4.6 2.5-2 2.5-4.6m7.8-1.1c.3-2.5-.5-4.7-2-5-1.3-.1-2.7 1.8-3 4.3-.4 2.5.5 4.7 1.9 4.9s2.7-1.7 3-4.2zm55-110c1.1-3.6 0-7.2-2.3-8-2.3-.9-5 1.3-6 4.9s0 7.2 2.3 8c2.3.9 5-1.3 6-4.9m-10.4 15.9c3-2.7 4.4-6.3 3-8.1-1.5-1.9-5.2-1.2-8.3 1.4s-4.3 6.2-2.9 8c1.5 1.9 5.2 1.3 8.2-1.3m-6-8.8c3-2.3 4.2-5.4 2.8-7s-5-1-8 1.2c-3.1 2.3-4.4 5.4-3 7s5 1 8.1-1.2zm23.5-15.5c2-1.6 2.9-3.8 2-4.9-1-1-3.5-.7-5.6.9s-2.9 3.7-1.9 4.8 3.4.7 5.5-.8"/>
+ <path fill="#6b18b5" fill-rule="evenodd" d="M189 108.5c1.4-2.2 1.5-4.5.2-5.2s-3.5.4-4.9 2.6-1.5 4.5-.2 5.2 3.5-.5 4.9-2.6m17.7-9.3c2.2-1.9 3-4.3 2-5.5-1.2-1.2-4-.6-6.2 1.2s-3 4.3-1.9 5.5 3.9.6 6.1-1.2m-32 21.6c2 0 3.6-1.1 3.4-2.3 0-1.1-1.9-2-4-1.9-2 .1-3.6 1.2-3.4 2.3.1 1.2 2 2 4 2zm38.7-33.1c1.4-2.2 1.5-4.5.2-5.2-1.2-.7-3.4.4-4.8 2.6s-1.5 4.5-.2 5.2 3.4-.4 4.8-2.6"/>
+ <path fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10" d="M446.8 153.4s6.4-10.1 4-19.7-13-2.7-12.8.7c.2 3.3 6.8 7.9 7.2 10s-.8 8.3 1.6 9z"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M324.9 69.3s23 .9 23.1 15.8c0 2.3 0 5-.8 11.7 4.6-2.5 7.6-9.3 7-13.7.1-15.1-20.5-25.5-29.3-13.8z"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M310.3 68.6s18.5-3.8 18.7 11c.1 15-6 17.3-6 17.3s14.3-3 14.4-18.1-18.3-21.9-27.1-10.2z"/>
+ <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M373.3 390s86.8-24.6 113-131C471 368.1 376 403 376 403l-2.8-13z"/>
+ <path fill="#8c1800" fill-rule="evenodd" d="M382.2 396.6c2.7 0 9.3-7.4 13.1-8.2s4.2-4.7-.1-4.8c-4.4-.2-8.2 5-8.2 5s-3.8 3.2-7.8 3.6-1.4 5.4 3 4.4"/>
+ <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="2.5" d="M432.2 359.3s-9 5.2-7.8 6.5 9.3-5 9.5-5c.1-.2 3.4-4.2-1.7-1.5z"/>
+ <path fill="#8c1800" fill-rule="evenodd" d="M400.7 383s-2.7-1 4.2-3.6c7-2.7 6.5-5.8 8.8-7.1 2.2-1.3 7-4.7 8-2.7s-5 6-6.5 6.4c-1.4.4-8.3 6.8-10.3 7.3q-3 .8-4.2-.3"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="3" d="M445.6 346c-6 6.7-6 6.5-6 6.5"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.8" d="m454.5 335.2-5.7 6.9"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.5" d="m463.4 321-6.4 10.2"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.3" d="m470.9 306.6-5.3 10.5m8.6-18-1.6 3.6"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="m478 289-1.4 4.4"/>
+ <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.5" d="M160.3 216s52-14.7 67.6-78.5c-9.1 65.5-66 86.2-66 86.2z" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="#8c1800" fill-rule="evenodd" d="M250.7 394.4c-2.7 0-9.2-7.5-13-8.3s-4.2-4.8.1-5c4.4 0 8.1 5.1 8.1 5.1s3.8 3.3 7.7 3.8 1.4 5.4-2.9 4.4"/>
+ <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="1.5" d="M195.5 197.6s-5.4 3.2-4.6 4c.7.7 5.5-3 5.6-3.1s2-2.5-1-.9z" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="#8c1800" fill-rule="evenodd" d="M232.4 380.6s2.6-1-4.2-3.7-6.5-6-8.7-7.2-7-4.7-8-2.7 5 6 6.5 6.4c1.4.5 8.2 7 10.2 7.5q3 .8 4.2-.3"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.8" d="m203.5 189.7-3.5 3.9" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.7" d="m208.9 183.2-3.4 4.1" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.5" d="m214.2 174.7-3.8 6.1" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="m218.7 166.1-3.2 6.3m5.2-10.9-1 2.2" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width=".8" d="m223 155.5-.9 2.7" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M490.4 239.3c.5 6.7 7 13 4.4 24.7-3.2 13.3-14.8 44.7-12.8 50.2-3.4-4.7-2.8-9-3-15.6-.4-6.5 9.4-30.9 10.3-39.1 0-7.4.7-17.5 1.1-20.2z"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M490.4 239.4s10.7 13.5 10.1 24.2-6.5 23.2-4.5 28.7a22 22 0 0 1-4.6-14.2c-.3-6.5 5.3-13.8 4.1-20.9-1.1-7-5.2-17.8-5-17.8zm-349.3 3c-.4 6.7-5.4 12.7-2.8 24.3 3.2 13.3 15 30 13 49.2 3.5-4.7 4.5-10 4.8-16.5s-13-28.5-13.8-36.8c0-7.4-.8-17.5-1.2-20.2z"/>
+ <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M141.1 242.6s-10.4 13-9.8 23.7c.1 7.1 13.2 36.8 11.2 42.4 3.5-4.7 4.4-4.1 4.3-11.2-3.8-18.3-10.7-29.9-9.5-37s4-18 3.8-18z"/>
+ <path fill="#fff" stroke="#000" stroke-dashoffset="1" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.7" d="m100 125.8 22 68.2h72l-58 42.2 22.1 68.2-58-42.1-58 42.1 22-68.2L6 194h71.8z" transform="matrix(1.16516 0 0 1.16534 202 -23.6)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mq.svg b/apps/web/public/flags/mq.svg
new file mode 100644
index 00000000..b221951e
--- /dev/null
+++ b/apps/web/public/flags/mq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mq" viewBox="0 0 640 480">
+ <path fill="#231f1e" d="M0 0h640v480H0z"/>
+ <path fill="#00a650" d="M0 0h640v240H0z"/>
+ <path fill="#ef1923" d="m0 0 320 240L0 480z"/>
+</svg>
diff --git a/apps/web/public/flags/mr.svg b/apps/web/public/flags/mr.svg
new file mode 100644
index 00000000..d859972c
--- /dev/null
+++ b/apps/web/public/flags/mr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mr" viewBox="0 0 640 480">
+ <path fill="#cd2a3e" d="M0 0h640v480H0z"/>
+ <path fill="#006233" d="M0 72h640v336H0z"/>
+ <path fill="#ffc400" d="M470 154.6a150 150 0 0 1-300 0 155 155 0 0 0-5 39.2 155 155 0 1 0 310 0 154 154 0 0 0-5-39.2" class="mr-st1"/>
+ <path fill="#ffc400" d="m320 93.8-13.5 41.5H263l35.3 25.6-13.5 41.4 35.3-25.6 35.3 25.6-13.5-41.4 35.3-25.6h-43.6z"/>
+</svg>
diff --git a/apps/web/public/flags/ms.svg b/apps/web/public/flags/ms.svg
new file mode 100644
index 00000000..4367505b
--- /dev/null
+++ b/apps/web/public/flags/ms.svg
@@ -0,0 +1,29 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ms" viewBox="0 0 640 480">
+ <path fill="#012169" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M384.9 111h205.5l-.3 146.3c1.7 58.7-34.9 95.2-102.3 111.7-47.9-12-103-36.5-103.2-110z"/>
+ <path fill="#00a2bd" stroke="#000" stroke-width="1.8" d="M389.4 115.4h196.4l-.2 140.2c1.6 56.3-33.4 91.2-97.8 107-45.8-11.4-98.5-35-98.6-105.4z"/>
+ <path fill="#a53d08" d="M584.3 272.2c-7.2 53.7-48.6 77.2-96.5 89.7-42.5-11.4-88.2-29.6-97-89.5z"/>
+ <path d="m480 141.5-.3-17.6 14 .1.1 17.5H532l.1 13.7-38.3.2-.3 161.4-13.6.1-.2-161.7-38 .2v-14z"/>
+ <path fill="#ff9a08" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="m449 278.8 35 36.3c12.1-13.3 3.7-63-12.2-72.1-1.9 5.9-5.1 13-8.6 15.2-7.5 5.2-26.1 11.2-19.9 15 1.4-1.9 5.1-3.7 6.9.6 2 6.9-7.8 7.3-7.8 7.3s-6.2-.8-7.3-7c-1-6.4 9.3-12.2 10.2-12.6.8-.3 14.3-4 16.6-15.9 2.9-11.8 5.8-10 6.3-10.2 17.7 1.7 29.2 33.3 29.9 55.5s-9 37-10.8 38c-1.7.9-42-47.9-42-47.9z"/>
+ <path fill="#ff9a08" stroke="#000" stroke-width=".8" d="m474.6 245 .2 65.5m-4.2-64.2.3 59.4m-4.5-50.8.2 47.2m-3.7-43.9.2 39.1m-3.9-37.3v33m-4-30.4v26.1m-3.5-24v20"/>
+ <g fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.8">
+ <path stroke-width=".8" d="m448.5 283 36 41.2"/>
+ <path stroke-width="1.4" d="M486.3 257s16.4 35.7 1.2 65m-43.2-46.6s1.2-3.1 2.7-1.8m-5.5-7.3s-6.6 5.7-3 9.5"/>
+ </g>
+ <path fill="#008021" stroke="#000" stroke-width=".3" d="M494 175.4c2.3-2 3.6-3.3 5.1-3s3.5 0 5-.4a31 31 0 0 1 12-.4c1 .2 2.5.7 4.6 2.5s5.2 5 4.2 13.6-.7 12.3-1.2 17.2c-.8 8.5-2.7 15.5-6 15 4.5 8 5 15 8 20.5s4.8 16.8 3.7 29c-1.2 12.3-4.4 39.7 5.3 58.2-1.6 1.1-5.5 0-9-3.7s-5-3.6-7.8-1.4c-8.8 6.7-17 14.8-29.1 6.7-2.8-1.8-3.6-4-1.6-9.7 5-14 7.5-33.4 6.7-42.4z"/>
+ <path fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M502.3 166.8a10 10 0 0 1-.1 6.8 9 9 0 0 0 .5 8.4c2.7-4 6.6-3.2 9-5.4 2.2-2.3 2.7-4.5 4.4-5-1.7-1.5-4.3-3.2-3.8-7.5.6-4.4 6.7-8 1.2-14.6a8 8 0 0 0-13.4 1.2c-.3.8.2 2.4-.7 3.4a8 8 0 0 1-2.1 2q-1 .6-.2 1.6.3.4 1 .4l-.8 1.5q-.4.4.2 1c-.5 1.3.4 1.5-.2 2.5s-1.2 2 .6 3c.6.3 3 .8 4.4.7zm-22.5 23c-3.2.8-8.4-.6-12.3-.2-1.8.2-3.2-.7-3-2.4s.6-4.4.2-6.8a32 32 0 0 1 3.8-14.8 33 33 0 0 0 3.8-11.6c0-1.9.2-3.9 1.8-5 1.2-.7 1.4-1.4 1.8-2 1-1.5 2-1.8 2-1q.2.7-.5 1.6c1-.8 2.8-1.8 3.2-2 .4-.4 2.4-1.8 2.5-.4q1.3-.6 1.6 0 .2.6-.3 1c.6 0 1.2.9 0 1.8.7-.2 1.3.8.2 1.7-1 1-2.4 1.6-2.7 2.4s-3.2 2.9-4.3 3.3c-1.1.5-1.2 1.1-1.2 2.7 0 17.8-2 16.3-2 20.7 0 1-.3 2.1.8 1.8a15 15 0 0 1 4.6-.9v10zm.7 38.2c5.2-2.6 11.2-3.6 14.3-4.4a62 62 0 0 0 10.4-4.4c2.5-1.3 4.5-3 5.9-3.5a7 7 0 0 0 3.8-3.2 50 50 0 0 0 6.9-21.8c0-4-1-8.6-5-5.4a30 30 0 0 0-8.8 13.2c-1.6 6.4-3 7.9-3.3 9.1-.4 1.3-1.6 1.3-3.2 1.6a27 27 0 0 0-13.6 6.4 136 136 0 0 1-14.2 9.2c-3.7 2.1-4.4 2.3-5.2 4q-1.2 2.5-2.2 3.6-1.2 1.2-.8 2.6c.1.8-.2 4.2-.3 5.4s.3 1.4.7 1.5c.4 0 1-.2 1.3-1.6-.2 1.4 1.7 1 1.8-.1 0 1.5 2 .6 2-.8 0 1 1.7.3 1.7 0q.5-2 1.2-3.4c.6-1.4 1.3-3.2 2.7-4 1.5-1.2.8-2.4 3.9-4zm37.4 94.5c.3 1.3 1 2.7 1.2 3.6s-.2 1.1-.4 1.6a33 33 0 0 0-2.8 8.8c0 1.2-1 2.4-1.3 3.2q-.8 1.2.8 2.3c.4.3 2-.2 2.1-1q1.2.9 2.1-.5 1 .7 2-.7c.5.3 1.3-.3 1.6-.8.8.4 1.6 0 1.6-1.6q.1-.7.5-1.3.3-.7.3-1.7c0-.7.3-2 .9-2.8.6-1 1.5-2.5 1.1-4-.4-1.4-1-1.3-1.5-3.2-1.3-1.4-3-3.2-4.8-3.4-1.8 0-2.8 1.1-3.4 1.5zm-32.9 9.9c1.7 1.6 5.3 1.6 7.8-1-.9-.4-3-1.4-3.8-2a12 12 0 0 1-4 3z"/>
+ <path fill="#870f00" stroke="#000" stroke-width=".3" d="M501.4 149c.6-4 3.5-4 5.3-3.5.8.1 2.6.3 4.4-.2 3.4-.9 6 .3 5.6 3.6 1 .7 2 2.3 1.7 3.7q-.3 2 1.4 2.1c1.3.2 4 1.8 2.2 4 1.7 1 3 3.7 2.1 5.4s-3.6 2.1-4.8.5c-1.3.6-3.3.7-4.6-.6-.9 1-3 .9-3.5 0q-.6-1.4-1.9-1.7c-.9-.3-1-2.8.4-3.1q-.1-1.3.3-2t-.8-1.8c-.8-.7-1.5-3-.7-4.4-1.4.5-4.4-.9-5-1.8q-1.2-1.4-2.1-.2z"/>
+ <g fill="none" stroke="#000" stroke-width=".3">
+ <path d="M502.3 166.8c2.2-.3 3-1.6 4.6-1.6m-9.4-4.7.5.3q.7.4 1.4.4m-1.3-3.1 1 .6m4.2-9.7c-1.3-1.3 2.2-3.8 6-.2.8.8 2.5.8 3 .6m-3.8 1.6c1.8-.4 4.3-.4 5.1 1.6s2.3.6 3.5 3c1.2 2.3 3 4.8 5 3m-7.4 5.4a4 4 0 0 1-.4-3.2c-.7-.8-.4-2.5 0-3.3m-4.6 1.7c0 .7 1 2 2.4 2.2m7.2 3.2q-1-1.4-.5-3.2"/>
+ <path d="M510.9 153c0 1.1.6 2.5 1.6 3 .3.6 1.4 2.2 3.8 2m.4-9a11 11 0 0 0-5.2-2.6m-8.8 35.6c-2 2.7-3.2 6.4-2.4 11.6 1 5.2 2.4 12.8-1.3 16.2m18.6 10.1c-2.6-.7-6.4-.7-8.5.9-2 1.5-5.6 1.6-7.9.4"/>
+ <path d="M512 219.6c-2.3.4-3.3 2.1-3.3 6.4 0 4.2-1 10.4-.2 16.6m-.6-21.1c-1.6.4-3.2.4-2.8 4.5m-5.1 0c.1-2.4 1-4.8 2.6-4.3m14.1 4.9c0-5.6-1.2-7.1-2.8-7 2.2 0 3.7.3 4.7 9.2.6 6.8 2 9 3.7 14.4 4.1 13.6 2 34.5 4.1 42m-12.9-57a71 71 0 0 1-.4 49.3c4.8 13.4 9.6 23.1 10.5 28.6m-23.9-48c.8-2.9-2.2-3.2.4-13.3q1.6-6.4.6-8.4"/>
+ <path d="M500.7 242.4c-1 4.4 3.3 12.8 1.2 19m-5.5 1.1c0 4 .9 9 .7 13-.2 3.9 1.4 5.7 3.2 9.4 6.8 13.4 11.2 22.9 10.7 35.5-.2 2.4.6 7.2-1.8 8.6m-12.6 3.4c.7 0 1.4-.4 2.3-2.4a65 65 0 0 0 2.4-23m1.4 9.6c.4 2.6.4 8-1.3 12.4"/>
+ <path d="M507.1 308.7c1 5.6 1 10.7.1 14.3m-2.4 0c.2 2.2 1.2 8-.5 8.5m9.2-35.3c4.3 6.7 7.6 23.2 11.2 26.6m-7.6-2.6c0-1.8-.1-4.4-1.2-5.6M471 239.4c.1-1.2-.1-2.4 1.3-4.4m-3.3 5.2c.2-4.4.1-4.8 1.4-6m-3.2 6.1c0-3.2-.3-4.3 1-6.3m14.9-88.8-4.5 3.4m5.8-2.4q-.7.2-5 3.6m5.1-1.8c-1 .4-2.6 2-4.2 3.2m-2.9-3.5-1.6 1.6M517.5 341c-.2-.2-.2-1.3.3-2.4m1.9 1.9c-.4-.3 0-1.7.2-2.6m1.7 1.9q-.7-.4 0-2m1.5 1.2q-.4 0 .1-1.8"/>
+ </g>
+ <path d="M500.5 152.7c.8 1 1.7 1 1.8 1.6.2.8.3.8.4 1s-.4.2-.6 0h-1.4c-.4 0-.8-.5-.6-.5q.4-.1.2-.4 0-.5.4-.7l-.1-.3c-.2-.3-.3-1-.1-.8zm.5-1.1a6 6 0 0 1 3.4 1.6c.7.8.1.6-.2.6s-1-.2-1.4-.6a5 5 0 0 0-1.9-1.2c-.3 0-.6-.4 0-.4z"/>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#FFF" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#C8102E" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#FFF" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#C8102E" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/mt.svg b/apps/web/public/flags/mt.svg
new file mode 100644
index 00000000..5d5d7c80
--- /dev/null
+++ b/apps/web/public/flags/mt.svg
@@ -0,0 +1,58 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-mt" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0Z"/>
+ <path fill="#cf142b" d="M320 0h320v480H320Z"/>
+ <g fill="#fff" stroke="#000" stroke-width="96" transform="translate(161.8 160.6)scale(.0147)">
+ <path fill="none" stroke="#cf142b" stroke-width="512" d="M-2048-7168h4096v3890.8A1094 964 45 0 1 3277.2-2048H7168v4096H3277.2A964 1094 45 0 1 2048 3277.2V7168h-4096V3277.2A1094 964 45 0 1-3277.2 2048H-7168v-4096h3890.8A964 1094 45 0 1-2048-3277.2Z"/>
+ <path stroke="none" d="M2024-3275.2A1094 964 45 0 1 3275.2-2024v4048A964 1094 45 0 1 2024 3275.2h-4048A1094 964 45 0 1-3275.2 2024v-4048A964 1094 45 0 1-2024-3275.2Z"/>
+ <path stroke-width="48" d="M-2024-7144h4048V7144h-4048zm-5120 5120H7144v4048H-7144Z"/>
+ <path d="M-1792-6912h3584V6912h-3584zm-5120 5120H6912v3584H-6912Z"/>
+ <circle r="3200"/>
+ <circle r="2368"/>
+ <g id="mt-a" stroke-linejoin="round" stroke-width="48">
+ <path d="M3084-2565c-111 85-322 302-450 461l-119-74c163-141 389-350 514-499zm-101-185c-201 59-585 172-749 276l-36-52c69-99 147-506 144-622l125 28c-41 100-81 314-92 453 129-23 435-123 522-186z"/>
+ <path d="M3240.8-2291.9h-158.6a600 330 45 1 0-242.3 173.3l112.1-133.7 138.1 138.1-154.5 154.4a1070 940 45 0 1-974.1-1283 1070 940 45 0 1 1279.3 950.9z"/>
+ </g>
+ <use xlink:href="#mt-a" transform="rotate(90)"/>
+ <use xlink:href="#mt-a" transform="scale(-1)"/>
+ <use xlink:href="#mt-a" transform="rotate(-90)"/>
+ </g>
+ <g transform="translate(161.8 160.6)scale(.0147)">
+ <path d="M-2541 1790c-72-126-167-287-219-329 32-22 75-54 97-60-1 80 120 246 120 246l178-117c-50-77-94-136-130-159 44-32 91-59 104-62 1 39 24 104 92 184 0 0 166-88 220-156l70 114c-78 15-428 233-532 339m-247-1517c-187 34-282 193-250 372 32 181 194 305 372 275 178-31 279-195 245-385s-180-296-367-262m27 108c150-27 276 46 297 162s-72 231-223 258-271-69-288-166c-18-99 63-227 214-254m366-1100c-62 98-199 188-320 271-17-86-81-141-155-146-79-4-160 59-174 101-20 58-45 307-45 307 156-12 497 15 614 58l14-132c-77 20-251-16-251-16l4-58 180-142c23-18 158-144 162-234 1-28-23-21-29-9m-361 441c-71 2-219-6-260-24 16-143 60-194 136-187 70 7 144 47 124 211m682-1772c-136 11-306 139-302 249 1 58 21 138 98 196 76 58 155 75 218 63 61-11 162-96 161-143 0-46-108-174-176-174l113-121c29 70 145 172 188 185-49 117-110 239-238 298-128 60-261 57-382-57-114-108-70-316 2-397 79-89 226-127 229-196zm638-673 24 454s9 161-28 261l141-99c-55-44-44-179-44-179l228-122s108 69 97 153l194-79c-113-43-253-142-253-142zm73 141 208 138-203 109zm1018-474c-26 111 2 330 43 512 141-13 249-27 297-87l13 150c-139 0-292 16-432 38 2-205-19-474-77-590zm1059 67c-65 94-119 308-147 492 136 40 242 66 309 27l-43 145c-129-50-278-92-416-123 76-189 155-448 144-576zm1071 485-396 225s-140 81-246 93l151 80c15-68 141-119 141-119l212 149s-14 129-94 156l157 138c-11-120 14-291 14-291zm-94 128-31 249-189-133zm304 932-62-117c102-8 409-188 550-280l22 40-132 603c118-47 305-145 356-199l70 133c-131-19-374 101-558 213l-18-32 113-587s-305 138-341 226m930 872c-12-89-14-150-57-170l-5-37 109-18c45 117 96 443 89 527l-112 18-5-31c37-42 0-196 0-196-166 17-455 64-496 121l-26-154c59 20 350-11 503-60M2388 752c62-98 201-187 322-269 17 86 80 142 155 146 79 5 160-56 174-99 21-58 47-306 47-306-156 10-496-19-613-63l-15 132c77-19 251 17 251 17l-4 58-181 141c-24 18-160 143-165 233-1 28 23 20 29 10m365-439c71-1 219 8 260 26-17 143-62 194-138 186-70-8-143-48-122-212m-566 836-93 160c72-11 172 46 253 99 27 72 133 256 125 436l120-206c-53-24-115-50-155-243 158-59 276-78 326-50l106-180c-123 74-412 150-460 134-50-29-192-73-222-150"/>
+ <circle cx="1475" cy="2361" r="125"/>
+ <circle cx="-1475" cy="2361" r="125"/>
+ </g>
+ <g transform="translate(161.8 201.5)scale(.0147)">
+ <path d="M195 268c-13 9-48-9-56-37 0 9-2 37-19 53-41 39-85 20-120 20s-79 19-120-20c-17-16-19-44-19-53-8 28-43 46-56 37-12-9-6-48 18-64-8 2-36 9-56-2-50-27-45-75-56-108s-43-69-18-120c10-21 36-32 44-35-29 1-56-27-52-41 5-15 44-21 67-3-6-7-20-31-16-54 10-56 57-66 85-87 29-21 53-62 109-54 23 3 41 24 47 31-10-27 8-62 23-62s33 35 23 62c6-7 24-28 47-31 56-8 80 33 109 54 28 21 75 31 85 87 4 23-10 47-16 54 23-18 62-12 67 3 4 14-23 42-52 41 8 3 34 14 44 35 25 51-7 87-18 120s-6 81-56 108c-20 11-48 4-56 2 24 16 30 55 18 64M-93 128c16 12-27 48-10 93 19 53 72 37 103 37s84 16 103-37c17-45-26-81-10-93s38 40 85 39c57-3 58-57 67-87 10-30 42-75-3-110-37-30-86 0-92-19s50-23 64-69c15-55-37-72-62-91-26-18-59-62-106-31-39 27-26 82-46 82s-7-55-46-82c-47-31-80 13-106 31-25 19-77 36-62 91 14 46 70 50 64 69s-55-11-92 19c-45 35-13 80-3 110 9 30 10 84 67 87 47 1 69-51 85-39"/>
+ <path d="M0 199c-9 0-20-21-14-38-3 5-14 17-28 19-34 5-48-20-65-32-17-13-45-19-51-52-3-14 6-29 9-33-14 11-37 7-40-2-3-8 14-25 31-25-5-1-20-8-26-20-15-31 4-52 11-72 6-20 3-49 33-65 12-7 29-3 34-1-15-10-18-33-11-39 8-5 29 6 34 22 0-5 1-22 11-31 25-24 51-12 72-12s47-12 72 12c10 9 11 26 11 31 5-16 26-27 34-22 7 6 4 29-11 39 5-2 22-6 34 1 30 16 27 45 33 65 7 20 26 41 11 72-6 12-21 19-26 20 17 0 34 17 31 25-3 9-26 13-40 2 3 4 12 19 9 33-6 33-34 39-51 52-17 12-31 37-65 32-14-2-25-14-28-19 6 17-5 38-14 38M0 85c11 0 4 30 25 44 25 17 43-6 57-16s42-20 33-49c-7-25-37-27-34-38 3-10 29 6 50-10 24-19 7-43 2-59-6-16-6-46-37-47-26-1-37 27-46 21s15-26 6-50c-11-29-39-20-56-20s-45-9-56 20c-9 24 15 44 6 50s-20-22-46-21c-31 1-31 31-37 47-5 16-22 40 2 59 21 16 47 0 50 10 3 11-27 13-34 38-9 29 19 39 33 49s32 33 57 16c21-14 14-44 25-44"/>
+ <circle r="48"/>
+ </g>
+ <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="36">
+ <path stroke-width=".7" d="M137.9 185.8a588 588 0 0 1 48 0"/>
+ <path stroke-width=".4" d="m160 143.3 1.3 1.5m2 19.2q-.1 2 .2 3.2m-3.2-3c.4.5 1 2.3 1 3"/>
+ <path fill="#fff" stroke-width=".5" d="M170.2 185.6c-.6.2-1.6.8-1.6 1.3s1.2.6 1.6.7c-.7.2-2.7.6-3.6.2-.6.3-5.2-.7-6.2-.7-.6 0-1.4-.6-1.3-1.7 0-.2.2-.8.7-1-.3-.6 1.1-1.5 2.5-2.4-2 .3-4.7-.5-5.4-1.3-1.6-.6-2.3 0-3 1.4 0 2.4-1.3 3.6-3 3.4-1-.2-1.3.3-1.6.5l3.3 1c2.2 2 1 3.6.5 4s-1.7.1-2.4.1c-.8 0-.8.3-1 .4q-1 .5-1.3.2c0-.3.3-1.7 1.2-1.9.5 0 1.5-.3 1.5-.8s-1.8-.4-3.2-.9c-1.1-.4-1.5-1-1.1-2.9.3-2 2.7-2.3 3.9-2.3-.2-.8 0-2.3 1-3.3 1.6-1.5 4-1 6.1-.8 1.2-.7 3.4-1.7 5.6-1.8 2 0 10.6-2.3 14.5-1.8-1-1.3-.7-4.4.9-5.3 2-1.2 4.2 2 4.8 1.4s-.7-1.4-2.2-3c-.4-.6-.3-.6-.3-.8q0-.8.3-1.2c.2-.1 1.4.3 1.7.8q.7 1 1.3.5c.5-.4-.2-.2-.5-1-.1-.5-.5-.9-.4-1.3a7 7 0 0 1 2.3-1.6l.9 1.3c.7 1.1 1.4.8 1.9 1.6q0 .6.5 1.7a10 10 0 0 0 3.5 3.6q.5.3.6.7 0 .7-.4 1c-.2.2-1 .2-1.6-.1q-1.4-.8-2.1-.7c-1.4.2-2.3 2.4-4.3 2.4-1.8-.2-3-2.9-4.1-2.1s2.5 3 2 4c.4.2.9 1 .7 1.7a6 6 0 0 0 3.9-2.7q1.5-2 2.2-2.2c.6-.3 1.3 0 1.3.5l.9.3q.6.5.2 1l-.6-.4q-.5 0-1.2.6l-1.2 1.7-2 2.2q.3.8.2 1.5l.7.2q.2.1 0 .7c0 .5-2 2.7-2.4 2.6-.8 0-1.4-1-1.3-1.3-.9.4-1.3-.6-1.3-1a7 7 0 0 1-2.2 1.5q-.6.3-.8-.4c-.1.4-1.3.8-1.6.9-1.5.3-3.1 1-4.6 1l-3.8-.1z"/>
+ <path fill="#fff" stroke-width=".3" d="M175.5 171.4c0 .6-.9 2 .4 3.2.8.6 2.1 1.1 2.5 2 .4.7-.1 1.3-.3 1.3-.8-.2-1.9 1.2-2.3 2.2-.4-1.4-1.3-1-2.5-.8q.3-2.3-2.6-2.6c.3-.3-.2-.7-.6-1.1s-1.8-.1-2-.4c0-.3.7-1 .3-1.5-.4-.7-2-.3-2.6-.5q.3-1-.2-2c-.5-1-2.2-.5-3.1-.7q1.1-.8.6-2.1c-.4-1-2.4.1-2.4-1 .1-.5 2.4-.8 3.3-.9s3.7.7 6.5 1.3c.6.6 5 1.9 5 3.6"/>
+ <path stroke-width=".5" d="M182.8 182.6a20 20 0 0 0 4.1-2.8m-25.6-1c1.2 0 3.9.4 4.7 1.4.7 1 1.2 2.7-4.1 4 1.6 0 4-.3 4.8-.1.8-.2 2.5-.7 3.2-.5-.3.1-1.2.4-1.2 1q0 .5 1.1.8m5.1-3.6c1.9.4 4.6-.2 5 1.8"/>
+ <path stroke-width=".4" d="M181.2 166.8c.5.6 2 1.5 2.7 2 1 .8 1.4-.1.7-1.4"/>
+ <path stroke-width=".3" d="M168.1 175.2a30 30 0 0 1 6.1-.7m-8.4-1.3c3-.8 6.2-.5 8.2-.5m-.5 6.4 2.6-2.5m-5.4 0c1-.3 2.6-1 4-1.2m-4.2-7.6c1.6-1.5 3.4-1.3 5.2-2.2 1-.6 2-2 3-3.1q.6-.7 2-.7 2.2.3-.1.7c-1.2.2-1.3.7-1.7 1.6-.4.8 0 1.7.2 2.3l-.8 2.2q0 .4.5 1.1m-16.3.8c4-.9 10 .7 11.1.7"/>
+ <path stroke-width=".2" d="M187.7 177c1.3-.7 1.3-2 3-2.6m-6.6 9.1c1.7-.8 2-1.5 3-2.2m.9-13.7q-.4 0-.8-.3-.4-.6-.1-.8.1-.3.7.2c.6.5.3.7.2.9m.3 3c-.8.2-1-.5-1.7-.6-.9-.2-1.4.4-1.4.9s.5 1 1 1 1-.3 2.1-.2m-3.8-7.2q1 .2 1.7-.2"/>
+ <path fill="#fff" stroke-width=".1" d="M162.7 150.7a.4.2 75 0 1-.2-.7.4.2 76 0 1-.2-.7.4.2 77 0 1-.2-.7.4.2 79 0 1-.1-.7.4.2 80 0 1-.2-.7.2.4-8 0 1-.1-.7.2.4-7 0 1-.1-.8.2.4-5 0 1-.1-.7.2.4-3 0 1-.1-.7.2.4-1 0 1 0-.8.2.4 1 0 1-.1-.7.2.4 4 0 1 0-.8.2.4 6 0 1 0-.8.2.4 9 0 1 .1-.7.2.4 12 0 1 .2-.8.2.4 15 0 1 .1-.7.2.4 19 0 1 .2-.8.2.4 23 0 1 .3-.7.2.4 27 0 1 .3-.7.2.4 31 0 1 .3-.7.2.4 35 0 1 .5-.7.2.4 40 0 1 .5-.7.2.4 45 0 1 .5-.6.2.4 49 0 1 .6-.7"/>
+ <path stroke-width=".1" d="m163.6 150.4-.9.3m.7-1-.9.3m.8-1-1 .3m.9-1-1 .3m.9-.9-1.1.2m1-1-1.2.3m1-1-1.1.3m1.1-1-1.2.2m1.2-.8h-1.4m1.4-.7h-1.4m1.4-.7h-1.5m1.5-.7h-1.5m1.6-.7-1.6-.1m1.7-.6-1.6-.2m1.7-.4-1.7-.3m1.9-.4-1.7-.4m1.9-.2-1.8-.5m2-.2-1.8-.6m2 0-1.7-.7m2 .2-1.7-1m2.1.4-1.8-1m2.2.5-1.7-1.2m2.1.7-1.6-1.4m2.1 1-1.6-1.6m2.1 1-1.5-1.7"/>
+ <path fill="#fff" stroke-width=".5" d="m173 140.7-2.5.3c-.2.5-.2 1.9-.2 2.4 2.3 2.3 4.6 5.2 4.8 7.9a5 5 0 0 1 1.6 2.3c1.7-.9 3.4-2.3 4.8-2.7 1-.2 2.6-.3 3.5.2l5.6 3.4q1.8 1.2 2.6 2.6c.5.8.6 2.3.4 2.7l-3.4-1q-.2-.8.3-1.7c.2-.6.2-.6-.3-1q-.6-.3-1 0-.7 0-1.2-.6a21 21 0 0 0-4.5-2.2q-1-.2-2.2.6c-.4.6-1.6 2.4-2.5 3.3q-.3.3-.1.8l3.6.1c1.4.2 3 1.6 3.8 2.5 3.5 3.2 4.8 5 5.9 6q.9.7 1 1.8h-3.4q0-1.8-.4-2.8c-.4-.5-1.1-.3-1.4-.3q-.5-.1-1-1c-.5-1-2.3-2.3-3.1-2.8s-1.1-.3-2-.4q-1-.3-2.5 0c-.9.3-3.4 1.1-5.7 1.4-.8.4-3.3.8-6 1.4-2 .4-6.5 1.2-7.4 1.2-.3 2.1-2.6 5.2-3.2 5.5q-1 1.5-.2 2c.5.5 3.9.5 4.7.5l2.9.1c.5.1 1.3.8 2.2 1.3.6.3.7.7 1.1 1.3l.8 1.2h-4q-.1-1.6-1-1.7c-.6.4-1.3.9-2.1.6-3.1-.2-5.1 0-8-.3-.9 0-1.6-1.2-1.3-2.3q.4-1.4 0-2.6c-.3.3-1.5 1.4-2.1 2.2-1 1.1-.4 2.3 0 3 .5.5 3.9 3.7 4.3 4.6.3.6 1.7 1.6 3 2.7q.7 1.3 1.8 2.1h-5l.2-1.3c0-.3-.3-.9-1-.8s-1.2-.7-1.4-1.3-2.5-3.6-3.2-4.2l-3-2.9c-.4-.1-.5-.8 0-1.3a13 13 0 0 0 2-3.8c.3-.9 0-1-.2-1.2a20 20 0 0 1-5.4-6 7 7 0 0 1-4-.3q-1.7-1-2.9.4c-.4.7-.4 1.8.3 2.3q1.5 1.3 3.3 3.4c1 1.3.1 2.3-1.3 3.5.2.5 0 .4.2 1.3.5.7.5 2.4-.1 2.7q-1 .5-2 1.6c-.8.9-1 0-.8-1.4.2-.9-.5-1.6-1.1-2.3s-.3-2.6 0-3.2c.5-.6.8-1.7 0-2.6-.9-.8-2.5-2.6-2.3-5a3.8 3.8 0 0 1 5.2-3.3c3 1.3 4.7 1 5.6.8q1.2-2.2 3.8-3.8c1.7-1 5-2.3 8.3-2.8l8.1-3c1.1-.2 1-1.2 1-1.8-1-5.5-.8-11.3 3.7-14.2.5-.5.3-1.7 1-2.6l1.3 2.2c2 .7 5.4 1.9 6.8 2.6l1.7.5q.7.2 1 1 .3 1-.4 1.5c-.3.1-1.9-.4-2.3 0q0 .5 1.4 1c.3.2-.3 1-.7 1q-.5 0-.9-.3-1.5-.3-3-1"/>
+ <path stroke-width=".5" d="M167.3 137.1c0 3.4 1.1 5.1 3 6.3m6.4 10.2a10 10 0 0 1 0 4m-24.7 13c2.5-1.1 4.8-4 4.7-5.8 0-1-.9-2.5-3.1-2.6m3 2.6c.8.3 2.3.1 3.5.3m12.6-8.3c2 .1 4.6 1.3 6 1.2m-7 2.8c1.8.4 1.8 1.2 5.3 1m-6-12.2c1.9 0 3 1 4 1.7"/>
+ <path stroke-width=".3" d="M156.3 166.4q2.1.2 3-1.4m8-27.9c0 2.8 1 3.5 3.2 3.9"/>
+ <path stroke-width=".2" d="M178 137.6c-.1.7-.2 1.3 1 1.2m-6.1-3.1c-.9 2.2 3.6 2.5 3.7 4m-25 14.7c2.2 1 2 5.3 2 7.8"/>
+ <path fill="#fff" stroke-width=".2" d="M175.6 139.7c-.7 1.4-2.3 3.5-3.8 4.6q-3.5 2.6-8.1 3.7-.7.3-1.6.1-1 0-1.7-1.4c-.2-.4-.1-2.6.7-2.9a6 6 0 0 1 2.4-.4q.9 0 1 .8-.1.8-1 .7c-.6-.2-1.5-.6-2-.2-.4.2-.7 1.2-.4 1.7q.5 1 1.1 1l1.3-.1q4.4-1.2 7.8-3.6c1.5-1 3-3.4 3.6-4.4zm-12 4.3c-.9-.2-2.4 0-2.5.4q1-.5 2.5 0 .5-.1 0-.4m6-7.5.3-.7c.1-.1-.2-1.7 1.4-.9 1.7 1 .4 1.7.3 1.8l-.4.7"/>
+ <path stroke-width=".4" d="m166.7 135 9.5 5"/>
+ <g stroke-width=".3">
+ <path fill="#fff" d="M154.7 135.4a28 28 0 0 1-6.4-.5c-.8-.1-3.1 3.2-4.3 3.4-1.2.3-2.4-2.4-4.1-1.8-.9.7 0 4-.5 4.3-.5.5-2-1.6-3-1-1 .8.8 5.1.3 5.6s-2.6-1.9-3.3-1.4.7 7.2 0 7.5c-.6.4-3.7-1.8-4-.9-.5 1 4.3 3.1 5.6 3.2l1.3-.5c.4.2 4.2.5 4.6.5l2.1-2.2c3.3-4.3 7-8.3 11.7-8z"/>
+ <path d="m140.2 136.5 6.3-.3m-10.1 3.6 3-1m-6 5 2.9-1.2m-7 8 4-3.6m3 6.2c1.7-3 5-6.2 7.9-7.9m-10.7 6.2c2.4-2.9 9.1-7.6 11.3-8m-5.4-2.7c2.8-1.2 6.8-1.4 10-1.7m-5.5-.8c.4 0 5.2-.6 7.3-.5m-14.5 7.7q5.4-3.3 11.5-5.3"/>
+ </g>
+ <path fill="#fff" stroke-width=".4" d="M168.2 191.2c.3.1.6.8.6.8s-.6.3-.8.2l-29.5-8.8c-.8-.2-.5-1.6.4-1.3zm-28-41q-.4-1.1-1.2-1.3c-.2 0-.9.7-.8.9 0 .4.9 1 1.2 1zm2.7 1-2.5 2.5c-.3.3.3.8.6.5l2.5-2.4c.3-.3-.3-.9-.6-.6m-1.2 2.4 7.7 7.9 1.5.2-.2-1.6-8-7.6z"/>
+ <path stroke-width=".1" d="m149.8 160.6-7.6-7.6"/>
+ <path fill="#fff" stroke-width=".5" d="M160 138.6q0-.7.5-1c.5-.3.3-.1.6 0l.8.5q.3.2.4 0 0-.4.3-.8l.2-.2q.3 0 .2-.3t.3-.4c.2 0 .6.3.6 0l.3-1.6c.6.1.4-.6.6-.6.6.2.9-.8.5-1.2q.1-1.1 1.7-1c-.1-.5-.9-.7-1.4-1.4s-2-1.6-3.8-1.6-3.1 1.6-3.8 2.3-2 1-2.3 1l-1-.4H153c-.6 0-.8.4-1.5.3-.4 0-2 0-2.5.2s0 1.2.5 1.3c.2 0 1.5 0 2 .3s2 .4 2.6.1c1.3-.4 2.1.4 3.5.8l.5.1q.1 1.2-.4 1.1h-1.2l-1.3-.6q-.9 0-1.2.2c-1.7.7-7.7 5.4-8.3 6.5-.7 1.2-1.7 1.9-2.6 3.7-.5 1-1.5 2.2-2.1 3.8-1 .5-2.1 1.4-2.3 1.7q0 .4.4.6 0 .3.6.5-.1.4.4.4 0 .5.5.7l2.4-2.5q.2-1.7 1-2.8a41 41 0 0 0 3.4-4.9c.3-.4 3.2-1.5 4-2.2a14 14 0 0 0 0 4.6c.5 2 1.1 3.3 1.5 5s0 2.7 0 3.5q0 .7 1 1c.5.4 2.9 0 3.6.3l3.1.6a5 5 0 0 1 3.5.6c.6.5 1.7 3 2.1 4s2.6 2.1 3 2.7c.5.5.9 2 .8 2.7q-.2 1 .7.8c.5 0 2.5.3 2.8.5.4.2 1.2.9 1.5.9s1.7.2 2.4.1.6-1.1.3-1.2l-2-.4a8 8 0 0 1-2.7-2.1q-.8-1.2-1.3-2.5l-3.1-4.5-1.6-3.8c-.3-.7-.8-.7-1.3-.9-1.8-.5-2.5-.7-4.4-1-1.3-.3-1.6-.4-1.8-1.4 0-.8-.6-2.2-.3-3.2l.4-1.8c0-.5.4-1.3.4-1.7l.2-3zm1.4 8.2c-.2 0-1 .2-1.5 0-.1 0 0-.4 0-.4s-.2-.3 0-.4q-.1-.2 0-.4-.3-.3 0-.5l1.4-.1q.4.9.1 1.8"/>
+ <path stroke-width=".5" d="M158.1 135.1c.4.3.4 0 1.1-.2s1.3.4 1 1q-.4 1 .6 1.2c1 .2 1-.7 1.2-1l.7-.7c.2-.8 1-.6 1.5-.5m1-1.9c-.3.2-1.2-.5-1.4-1.1q-.3-1.3-1.8-1.4c-1.5-.1-3 .6-3.3 1.7l-.3 1.7q-.6 0-.7.2l-.1.8m-6.3 6.3 2-1"/>
+ <path stroke-width=".3" d="M153.4 140.3c.5 1.3 1 2.6 1.7 3m1.1.5q1.2.6 2.5.2m-5.1 9.5c2.1 0 3 1 4.7 1.6 1.8.5 4.2.2 6.5 1.3m-11.9-9.7q1 .6 2 .6m.9 0q1.8.4 2.3 1.4m-2.8 1.1c1 1 3 1.8 4.2 1.8"/>
+ <path stroke-width=".2" d="M157 136c.9 3.2 1 4.4 3.2 5m-4.1-5.1c1 3.1 2 4.8 4.1 5m-5-5.4c1 3.1 2.4 5.3 5 5.4m11.6 24.8q-.6-.4-1-1.3l-.7-1.6-.5.3q-.6 0-.2-.4l.4-.2-.6-1.2q-.3 0 .2-.3t.4 0l.6 1.2.4-.2c.3-.2.5.3.2.4l-.5.2.8 1.6c.4.7.5.9.5 1.5m-.1-3.4-2.4 1.3m-2.2-1.8 3.2-1.6m-3.7 1 3.3-1.6"/>
+ <path stroke-width=".1" d="m140.1 153 1.1-1m-1.5.5 1-1m-1.6.5 1.1-1m19.8-4.6h1m-1.1-.8h1m-1 .4h1m1.3-9.2.6.3"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mu.svg b/apps/web/public/flags/mu.svg
new file mode 100644
index 00000000..82d7a3be
--- /dev/null
+++ b/apps/web/public/flags/mu.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mu" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#00a04d" d="M0 360h640v120H0z"/>
+ <path fill="#151f6d" d="M0 120h640v120H0z"/>
+ <path fill="#ee2737" d="M0 0h640v120H0z"/>
+ <path fill="#ffcd00" d="M0 240h640v120H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mv.svg b/apps/web/public/flags/mv.svg
new file mode 100644
index 00000000..10450f98
--- /dev/null
+++ b/apps/web/public/flags/mv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mv" viewBox="0 0 640 480">
+ <path fill="#d21034" d="M0 0h640v480H0z"/>
+ <path fill="#007e3a" d="M120 120h400v240H120z"/>
+ <circle cx="350" cy="240" r="80" fill="#fff"/>
+ <circle cx="380" cy="240" r="80" fill="#007e3a"/>
+</svg>
diff --git a/apps/web/public/flags/mw.svg b/apps/web/public/flags/mw.svg
new file mode 100644
index 00000000..137ff878
--- /dev/null
+++ b/apps/web/public/flags/mw.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mw" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#f41408" d="M0 0h640v480H0z"/>
+ <path fill="#21873b" d="M0 320h640v160H0z"/>
+ <path fill="#000001" d="M0 0h640v160H0z"/>
+ <path fill="#f31509" d="M220.5 141c22.3-49.2 84.5-72.8 138.8-52.5a98 98 0 0 1 58 52.5zm-26 6.4a332 332 0 0 1-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3s3.1-3.6 6.2-3c5.6 1.4 28.8 7 50 16.1m124.6-85.9c-4.2-21-5.2-44-4.8-48C314.7 9.6 317 9 319 9s4.7 1.8 4.7 4.7c0 5.3-.1 27-4.6 48zm11.6.5a249 249 0 0 1-.3-48.2c.8-3.9 3.2-4.4 5.1-4.2 2 .1 4.5 2.1 4.2 5-.5 5.3-2.6 26.9-9 47.4m10.4 1.3c-.2-21.3 3-44.3 4.1-48 1.1-3.9 3.6-4.2 5.5-3.9 2 .3 4.3 2.5 3.8 5.3-1 5.3-5.2 26.6-13.4 46.6m11 2.2c1.8-21.2 7.3-43.8 8.8-47.5s4-3.8 5.8-3.4c2 .5 4 2.8 3.3 5.6-1.6 5.1-7.7 26-17.8 45.3zm10.9 3.2c3.9-21 11.5-43.1 13.3-46.7 1.9-3.5 4.3-3.5 6.2-2.9 1.8.6 3.7 3.2 2.7 5.8A264 264 0 0 1 363 68.7m10.1 3.8c5.8-20.7 15.5-42 17.7-45.5 2.2-3.4 4.6-3.1 6.4-2.3 1.8.7 3.4 3.4 2.1 6-2.5 4.8-12.5 24.4-26.2 41.8m10 4.7a263 263 0 0 1 22-43.9c2.4-3.2 4.9-2.7 6.6-1.8a4.4 4.4 0 0 1 1.5 6.1c-3 4.6-14.9 23.4-30.1 39.6m9.4 5.5c9.7-19.4 23.3-39 26.1-42s5.2-2.3 6.8-1.3a4.4 4.4 0 0 1 1 6.2c-3.5 4.4-17.2 22.1-34 37zm8.8 6.2c11.6-18.6 27-37 30.1-39.7 3-2.8 5.4-2 6.9-.8a4.3 4.3 0 0 1 .3 6.2c-3.8 4.1-19.1 20.7-37.3 34.3m8.3 6.9a284 284 0 0 1 33.8-37.2c3.3-2.5 5.5-1.5 6.9-.3a4.3 4.3 0 0 1-.3 6.3c-4.1 3.8-21 19.1-40.4 31.2m7.6 7.5A278 278 0 0 1 454.4 69c3.6-2.3 5.7-1.1 7 .3 1.2 1.3 1.5 4.4-1 6.2a306 306 0 0 1-43.2 27.8m6.5 7.8A297 297 0 0 1 464 79.6c3.7-2 5.7-.6 6.8.9 1.2 1.4 1.1 4.5-1.4 6.1-4.8 3-24.3 15.6-45.7 24.5m5.9 8.3a307 307 0 0 1 43-28.1c4-1.7 5.9-.2 6.9 1.3 1 1.6.6 4.6-2 6a321 321 0 0 1-48 20.8zm5.4 9.6a313 313 0 0 1 45.8-24.4c4.1-1.4 5.8.3 6.6 1.9.9 1.6.3 4.6-2.6 5.8-5.3 2.2-27 11.4-49.8 16.7m4.2 9.2a320 320 0 0 1 48-20.8c4.2-1 5.7.8 6.4 2.5.6 1.6-.3 4.6-3.2 5.5-5.5 1.9-28 9.3-51.2 12.8m3.4 9.8a325 325 0 0 1 49.8-16.9c4.2-.6 5.6 1.2 6.1 3 .5 1.7-.7 4.5-3.7 5.3-5.7 1.3-28.8 7-52.2 8.6M307.8 62a252 252 0 0 1-9.7-47.4c0-3.9 2.3-4.8 4.2-5 2-.1 5 1.5 5.2 4.3.5 5.3 2.6 26.9.4 48.1zm-11 1.3a251 251 0 0 1-14.3-46.4c-.4-4 1.8-5 3.7-5.3s5 1 5.6 3.8a263 263 0 0 1 5 47.9m-11 2.2A259 259 0 0 1 267 20.3c-.8-3.9 1.3-5.1 3.2-5.6s5 .6 5.9 3.4c1.5 5.1 7.7 26 9.6 47.3zm-10.5 3A264 264 0 0 1 252.5 25c-1.1-3.8.8-5.2 2.6-5.8s5.1.2 6.2 2.8c2 5 10.2 25.4 14 46.4zM265.2 72a270 270 0 0 1-27-41.5c-1.4-3.7.4-5.3 2.2-6s5-.2 6.4 2.4c2.5 4.8 12.5 24.5 18.4 45.1m-10.3 5a276 276 0 0 1-31-39.2c-1.7-3.5-.1-5.2 1.6-6.1s5-.6 6.6 1.9c3 4.6 15 23.3 22.8 43.4m-9.4 5.4A285 285 0 0 1 211 45.7c-2.1-3.4-.7-5.2 1-6.3 1.5-1 5-1 6.7 1.4 3.4 4.3 17.1 22 26.8 41.5zm-8.7 6a292 292 0 0 1-37.9-33.9c-2.4-3.2-1.1-5 .4-6.2a5.5 5.5 0 0 1 6.8.8c3.8 4 19.2 20.7 30.7 39.3m-8.5 7a299 299 0 0 1-41-30.7c-2.8-3-1.7-5-.3-6.3a5.5 5.5 0 0 1 6.9.3c4.2 3.7 21 19 34.4 36.6zm-7.4 7A307 307 0 0 1 177.2 75c-3-2.8-2.1-4.8-.8-6.2 1.2-1.4 4.5-2.1 6.9-.3a292 292 0 0 1 37.6 34zm-7 8.2a313 313 0 0 1-46.2-23.8c-3.3-2.5-2.6-4.7-1.5-6.1 1.1-1.5 4.3-2.5 6.9-.9 4.8 3.1 24.3 15.5 40.8 30.8m-6.3 8.8c-22.2-7-44.9-17.6-48.4-19.9-3.6-2.2-3-4.4-2.1-6s4-2.8 6.8-1.4c5 2.7 25.8 13.5 43.7 27.3m-5.3 9c-22.8-5.3-46.3-14-50.1-16-3.7-2-3.5-4.2-2.6-5.8s3.7-3.1 6.6-2c5.3 2.3 27 11.4 46.1 23.8m-4.2 9a329 329 0 0 1-51.4-12.2c-4-1.6-3.8-3.9-3.2-5.5.7-1.7 3.5-3.4 6.4-2.5 5.6 1.9 28 9.3 48.2 20.2"/>
+ <path fill="#f31509" d="M194.5 147.4a332 332 0 0 1-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3s3.1-3.6 6.2-3c5.6 1.4 28.8 7 50 16.1"/>
+ <path d="M129.4 141.5h381.2v12.6H129.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/mx.svg b/apps/web/public/flags/mx.svg
new file mode 100644
index 00000000..e3ec2bc5
--- /dev/null
+++ b/apps/web/public/flags/mx.svg
@@ -0,0 +1,382 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-mx" viewBox="0 0 640 480">
+ <defs>
+ <radialGradient xlink:href="#mx-a" id="mx-b" cx="842.3" cy="103.7" r="25.9" gradientTransform="matrix(.14152 .03595 -.03453 .14198 213.1 162.4)" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#mx-a" id="mx-c" cx="651.5" cy="550.5" r="25.9" gradientTransform="matrix(-.13441 -.05384 .04964 -.12489 397.9 -24.3)" gradientUnits="userSpaceOnUse"/>
+ <radialGradient xlink:href="#mx-a" id="mx-d" cx="380.8" cy="740.4" r="25.9" gradientTransform="matrix(.07536 .00282 -.00343 .14804 412.4 -203.6)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient id="mx-a">
+ <stop offset="0" stop-color="#fff"/>
+ <stop offset="1" stop-color="#f15770"/>
+ </linearGradient>
+ </defs>
+ <path fill="#ce1126" d="M426.7 0H640v480H426.7z"/>
+ <path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#006847" d="M0 0h213.3v480H0z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m355.8 289.4.2 4.5 1.7-1.1-1.3-3.7z"/>
+ <circle cx="355.6" cy="288.2" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m361.1 296.4-3.2-3.1-1.5 1.2 4.5 2.6z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M360.9 298.2q-.7-1 .3-2 1.2-.7 2 .2.7 1-.3 2-1.2.7-2-.2z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m386.3 249.6 3.4 3.3.4-1.7-3.1-2z"/>
+ <circle cx="385.9" cy="248.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M395.2 251.6 390 253l.5-1.7 4.4-.4z"/>
+ <circle cx="396" cy="250.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m378 276.8-3.2-4.8.5-.3 3.5 4.2z"/>
+ <circle cx="374.5" cy="270.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m378.1 277 4 .7.1-.5-3.3-1.4z"/>
+ <circle cx="383.3" cy="277.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M284.6 288q-.1 1.2-1 1.2-1.2 0-1-1.2c.2-1.2.5-1.3 1-1.3s1 .7 1 1.4z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m284.6 290.3 1 5-1.3-.5-.4-4.3z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M285.7 288.6c.6.7-.4 1.9-1.4 2.2s-2.4-.2-2.4-1.2 1.6-.5 2-.6c.6-.2 1.2-1.2 1.8-.4z"/>
+ <ellipse cx="277" cy="296.3" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry="1.1"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m279.6 296 4.8-.2-.8-1-4 .4z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M280 295.4c.5 1.3.5 3-.9 2.7-1.4-.1-1-1.4-1.2-1.8-.2-.9-1-1.7-.2-2.5s2 .4 2.3 1.6z"/>
+ <ellipse cx="264.4" cy="269.2" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx=".9" ry="1.4"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m264.4 272.4.1 4.6-1.2-1v-3.8z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M266.2 271c.3 1-1.3 1.6-2.4 1.4s-1.9-.7-1.7-1.7 1.5-.8 2-.5 1.8-.8 2.1.7z"/>
+ <ellipse cx="256.2" cy="276.5" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry=".7"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m259.1 276.5 3.6-.3 1.6 1.2-5.3-.2z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M257.8 274.5c1 0 1.6 1.1 1.5 2.3q-.4 1.8-2 2c-.9-.2-.8-1-.8-1.2 0-.3.5-.7.6-1s-.3-1.3-.1-1.6q0-.5.8-.5zm-3-28.3c-.4.6-1.2 1.1-1.6.9s-.2-1.2.2-1.8q.7-1 1.4-.8.6.6 0 1.7z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m250.7 253.5 2-4.8-.2-.3-2.4 3.4z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M252.4 248.7q-1.4-1-1-2.3c.4-.7 1.2-.2 1.2-.2l.8.7c.4.2 1 0 1.4.6.5.6.2 1.2-.1 1.4s-1.5.4-2.3-.2zm-8.5-.6q1.1.7.9 1.5-.5.7-1.8 0-1-.6-.8-1.5.5-.7 1.7 0z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m246 250.2 3.8 2.2-.1 1.8-4.1-3.5z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M246 250.6q-1.2 1.3-2.3.7c-.7-.5-.1-1.2-.1-1.2l.8-.7c.2-.4 0-1 .7-1.4s1.2 0 1.3.3c.1.4.3 1.5-.4 2.3z"/>
+ <path fill="#aa8c30" d="m356.6 289.8-.4.4-.3 1v-1.5l.5-.3zm.2-.9s-.3.5-1.1.5-1.2-.4-1.3-.8q-.2-.5.2-1.2c.2-.5-.4.4-.4.4v1l.6.6.5.2h.4l.7-.2.4-.3zm4.2 7.3s-.4.2-.7.1c-1.9-.6-3.5-1.8-3.5-1.8l3.8 2.4zm2.4 1.1s0 .7-.8 1q-1 .4-1.5-.1c-.5-.5-.4-.6-.4-1.2l-.1.6.4.8.8.4.5-.1.5-.2.4-.5.3-.5zm24.3-47.6-.1.4v.7l-.9-1 .4-.5zm-.5-1.2c0 .7-.9 1.6-1.6 1.3q-1.2-.5-.9-1.8l-.2.3.1 1.1.7.6h.9l.6-.3.4-.7zm10 1.8s-.1-.4 0 0-.6 1.7-1.4 1.6q-1-.3-1-1.4c0-.6-.1.2-.1.2v.8l.5.4.6.4.6-.2.7-.3.2-.6v-.9z"/>
+ <path fill="#aa8c30" d="M393.8 251s0 .4-.4.7l-1.3.7 2.8-.8-.2-.7zm-17.1 22.5-.1.5v.8l-1.6-2.5.5-.3zm-.9-2.4c-.2.7-1.4 1-2 .8-.5-.4-1-1.6-.3-2l-.4.2-.1.7.2.7.6.7.5.1.8-.2.6-.4s.4-1.3.1-.6m5.6 5.7s0 .3-.5.3h-1.6l2.6.6.2-.6z"/>
+ <path fill="#aa8c30" d="M384.6 277.5c.3.8-.5 1.7-1.5 1.4s-1.3-1.3-1-1.8l-.2.6.2.8.6.6h1.3l.6-.7.2-.7-.1-.2zm-99 11.1c.3.3-.1 1.5-1.2 2q-1.7.4-2-.4-.4-.7-.3-.8l-.2.2.2.6.5.5 1 .2.8-.1.7-.5.4-.3.3-.5v-.6z"/>
+ <path fill="#aa8c30" d="m284.6 291.1-.3.4-.3.8v-1.4l.5-.3zm-3.8 4s0 .3.2.5l1 .3h-1.8l-.2-.7h.8zm-.6 1.2v.2l-.1.5q-.1.9-1 .9a1 1 0 0 1-1-1.1l-.2-.6v.6l.4 1 .7.3h.5l.5-.2.2-.6.1-.5zm-4.7-.1s.2.8 1.2.8 1.2-.2 1.2-.2v.3l-.2.2H276l-.3-.3-.3-.5v-.3zm-9.4-25.4v.4c-.1.3-.7 1-1.8 1q-1.4 0-1.8-.7t-.4-.8v.5l.4.7 1.1.5h1l1-.3.5-.5.1-.6zm-1.7 2.3s-.4 0-.6.2l-.4.4v-1.3h1zm-4.7 3.4.5.3c.5.3 3.1.5 3.1.5h-4.1l.1-.8zm-.5 0-.2.6c-.2.5-.7 1.6-1.6 1.4-.9-.1-.7-.8-.7-.8v-.4l-.2.7.2.4.4.2.7.1.4-.2.6-.5.2-.5.2-.6zm-2.2.2s0 .2-.7.2-1.7-.3-1.7-.3l.4.4.5.2h1.3zm-2-29s0 .5-.3.8c-.4.3-1.3.5-1.8.2s-1.5-1.3-1.5-1.3l.4.8.7.6 1 .3 1-.2.4-.4.2-.3z"/>
+ <path fill="#aa8c30" d="M252 249.1v.6l-.2 1.1.9-2-.4-.2zm-5.4 1.5.2.5c.2.5 2.3 2.6 2.3 2.6l-3.3-2.9.4-.5zm-1 .3s-.5.3-1 .3c-.3 0-1 0-1-.4l.1-.7-.3.6.1.4.5.3h.7l.6-.3.2-.2zm-1.5-1.4h-.5c-.7 0-1.4-.8-1.4-.8l.5.8 1 .5z"/>
+ <path fill="#9ca168" d="M399.9 240.2c-.3 3.8-4.1 5.8-6.1 7.2s-3 3.2-3 3.2l-.6 2.2-.3 1.5-.1.5q.2.6.3 2l-.1 4.3 2.7-1.9 1.9-.7.6-.1s-2.2 2.1-3 4.4-2.4 7.2-5.3 8.8c-3 1.6-4.8 1-5.7 1.8l-1 1-1.3 1.8-1 1.2-.9.7-.6.4-.2 1.7-.7 2.4s.6-.4 1.3-.5h1.3s-.5.6-.7 1.3c-.2.6.1 4.6-3.6 7-3.8 2.3-13.4 2-13.4 2l-1.8.7-1.7 1.3-1.6 1.7v.4s-1.3 1.5-2.1 2l-2.8 1.9 2.2.1 3.5 1.5s-2.2 0-3.6.5c-1.5.6-8.2 4.4-11.4 4.3s-8-4.9-8-4.9l-2-1.4-3.5-.7-4.3-.2v-.6l.1-.7s1.5-.2 3.8.1c2 .2 2.7 1 4.4 1.1q2.6.2 3.5-.3c.7-.3 5.9-4.7 5.9-4.7l5.8-2 2.3.3 1 .2.9.3-1 1-1.4 1.1.7.6 3.7-.6 1.2.3.3.2q0-.5.6-1.3c.4-.6 2.5-2.3 3.4-2.9l1.4-1c.3-.3 1.5-3.3 1.5-3.3l.1-1.6 4.1-4 2.8-2.9 1.2-3.3-.2-.7s1 1 .9 3c-.2 2.2-.7 2.9-.7 2.9s2.8-2 4.3-2.6q1.8-.6 2.4-.5c.4-.2 1.5-.9 2.1-1.8.8-1.2 1-1.5 1-2l.2-2.8-.3-7 2.4-5.4 3.5-3.1.7-.4-.4 1.2v1.5s1.8-2.5 2.7-2.9l.5-.3.8-2 .3-3v-3l-.5-2.3-1.7-4.3v-5.8l-1.2-1.6s1.1 0 2.5 2a14 14 0 0 1 1.9 5l3.3-10.3s.9 1.2 1.5 3.3l.8 3.3 1.4-2.8.1 1c.2 1 2.3 2.1 2 6m-67.3 65s-.7-1.6-3.9-3.2c-3.1-1.5-5.5-1.8-5.5-1.8v1.1l5 2.2 2.4 2z"/>
+ <path fill="#717732" d="M355.4 295.6c.3-.4 3-2.8 4.4-3.5s3.2-.8 3.2-.8c1.9-.4 2.2-.1 6.6-2.5s5.3-5.2 6.2-5.9c.8-.7 2.3-.8 2.3-.8l-3.4 3.9a29 29 0 0 1-5.8 4.5 18 18 0 0 1-7.6 1.8 8 8 0 0 0-4 2c-1.3 1-2 2.2-2 2.2s-.2-.5 0-.9zm12-12.7c-4 3.7-5.3 7.2-5.3 7.2l5.4-4.9c1.9-1.8 4.5-2.6 5.6-3.7 1.2-1.1 1.3-2 2-2.7l1.3-1s-1.8-1.4-9 5.1m-8.5 8.6s1.7-.8 2.4-2.3c.5-1.2.2-1.5 1-2.8 0 0 4.2-4 5.7-5.8 2.6-3.1 1.4-5.7 1.4-5.7s.3 1.3-.8 2.7c-1 1.4-6.5 5-7.2 7.2-.6 2.2-.3 2.3-.6 3.4-.6 2.6-1.9 3.3-1.9 3.3m-2.8 10.5s-2.1-1.4-4.5-1.3c-4.9.4-9 3.4-12.2 3.4-3.1.1-4.4-1.5-6.9-3.2-2.6-1.8-9.2-1.5-9.2-1.5v.3s4.4 0 6.4.6c3.6 1 5.6 4.8 9.7 4.6 5.5-.3 9.9-3.6 12-3.6 3.8 0 4.7.7 4.7.7m-24-2.4s3.7.6 6.6-1.5c3-2.1 6.4-5 8.3-5.2 2 0 4 .4 4 .4s-2.5-1-4.4-1q-3-.2-5.8 1.3c-1.8 1.1-2.7 3-4.6 4.3a13 13 0 0 1-4.1 1.7m-.7 5q-.9.1-1.3.3c-.2 0-1.3-1.2-3-2-1.6-1-4-1.4-4-1.4s-.3 0 .3.2l3.8 1.5a9 9 0 0 1 2.6 2.1c.1.3.6.9 1.5.8q1.4-.1 1.2-1-.2-.5-1.1-.5m2.6-3.6s1.5.8 4 .8c5.2-.2 8.6-3.8 12-5 3.4-1.4 5.2-.3 5.2-.3s.1-.2 0-.2a7 7 0 0 0-3.9-1.2c-5.7 0-11.2 3.7-13.5 4.7q-3.6 1.3-3.8 1.2m56-39.9c-1.8 1.9-4.5 7.7-5.6 9.3-1.2 1.6-2.7 2-3.3 2.7-.6.6-2.7 3.5-3.2 4.1-.5.7-.6.5-1 .8q-.6.4.1.2c.6-.1.8-.5 1.6-1.5 1-1 .9-1.4 2.3-2.7 1.4-1.2 3.9-2.6 5.1-4.2 1.3-1.5 3.8-7.5 5.2-9s4-2.4 4-2.4-2-.6-5.3 2.7zm-9 11.1s-.1-1 1.2-2.6 1.7-1.3 2.8-3.6q1.3-3.4 2.3-6.9c.9-2.4 2.3-4.8 2.3-4.8s-1.3.2-2.7 2a35 35 0 0 0-4.8 8.7c-1.1 3.4-1.1 7.2-1.1 7.2m-1.7 2.2s.5-.2.5-3.2c.1-2.9-.1-7 .7-9 .9-2 5.4-7 5.4-7s-1.9.5-4.5 2.5-3.7 4.7-3.6 6.7 1.3 4.2 1.4 6.1l.1 4zm10.5-20.1s1.1-4 1.6-5 .5-1.5 2.7-4c1.3-1.5 2.6-2.4 3.1-4.4s.6-7.7.6-7.7-.6.5-1.1 1.5-.1 4.7-1 6.4-2.7 5.6-3.7 6.5c0 0-.2-2.9.2-5.7.3-3 1.3-3.8 1.7-5.7s.2-6.7.2-6.7-1.5 1.5-2.3 3.4-1.2 5-1.2 7.5.5 4.5.6 5.9.2 2-.4 3.6l-.6 2-.7 2.6zm-3.5-21.6s1.4 1.7 1.2 3.6c-.3 2-1 4.5-.2 6.5.7 2 1.9 2.2 2.2 3.4s.3 3.4.3 3.4.6-4.3.2-5.5c-.5-1.1-.7-.6-1.3-1.8s0-4.7-.4-6.7-2-2.9-2-2.9"/>
+ <path fill="#9ca168" d="M306.7 304.8s.4-1 3.1-2.4a34 34 0 0 1 7.3-3c.3.3-.3 1.8-.3 1.8l-2.6.8-2.1 1.2-2.5 1.6z"/>
+ <path fill="#9ca168" d="M313.6 297.7c-3.4.1-5.3 1-6 1-.2.1-.7.5-1.2.3a5 5 0 0 1-1.5-1.5l-.7-.7-.2 2.5-5-4.4-.6 3-.7 1.3-5-4.8.2 3.7-1.4.1-3.6-2.5-1 .4 1.2 2.2-4.6.3-1 .8-1 1v.4h1.9c.4-.2.6-.7.7-.5.2.2.3 1.2.9 1.1s2.7-1.7 4.2-1c1.7.8-2.2 2-1.8 3.1s3.2.7 4 .3c.6-.3 2.7-3 3.6-2 1.2 1.4-2.5 2.5-1.8 3.9s2.7 1 3.7.4 3.4-4.1 3.9-3.4c.9 1.4-2 2.7-1.3 3.7.8 1 2.3 0 3.4-.8s1.5-2.5 3-3.3c1.4-.8 1.3-.5 1.7-.5s1.5-1.1 1.5-1.1l3.5-1.5 1.6.2.9.4 1.7.2.2-1.4s-2-1-3.3-1zm-27.4 0 .7-1.3-.4-.6s-1.2-.7-2.3-1.8a7 7 0 0 0-2-1.6L280 291l-.8-2.8-.5-.9-1.3.6-1.7-6.1-.3-1.1h-.7l-1.5 3.6-1.5-2.3-.4-5-1 1-1.3 1.4-2.3-4.6s-.1-.1-.3.3c0 .3-.3 1.8-.1 2.6a26 26 0 0 1-6-5.2l-1-2.5 1-2 .5-2.6-2.2.9-.4-5.7-.3-1.8-2.7 3.8-1-1.7v-3.6l-.7-.2-1 2s-1.1-2-1.6-2.5c.1-.8.2-2.9-.3-4.5-.6-2-1.3-3.1-1-4.8.2-1.6.9-1.8.8-2.5 0-.8-1.2.5-.8-.5s3.8-3.2 3.1-4.4c-.7-1.1-4 1.9-3.3-.1s4-2 4.2-4.9c.1-1.7-3 1.1-3.3.2-.3-.8 2-2.6 1.9-3.8 0-1 .4-1.2-.2-1.8s-2.6 2.3-2.6 2.3l-2-.7-.8 3-.6 2.5-2.6-1.5.7 3.1.6 3-2.7-.7 1.4 2.6 1.9 2 1.1 1.5.9.4 1 1.1.5 1.7.6 1.9.1 1.8v2.4l-.1.4v1.1c-.5 0-1.4-.8-1.7-.3s1.6 2 1.2 2.4c-.3.4-3-.5-3.2.3-.2 1 .2 2.2 1.8 2.6s5.3 1.2 4.7 2c-.6.7-4.7-2.3-4.5-.1a4 4 0 0 0 2.6 3.4c1 .4 5.1 0 4.9 1-.3.9-3.3-.4-3.6 1s2.1 1.6 2.6 1.6 2.2-.1 2.9.4l4.3 4.1 4.6 3.4c-.8 0-2.4-.3-2.6.3s6 3 4.2 3.8-3.8-2-4.3-.4 1.2 3 2.2 3.6 6.7.1 5.6 1.4-5.3-.8-5.3.7 2.7 4 4.2 3.9c1.4 0 3-2.4 3.6-1.1s-1 1.7.3 2 2.3-1.4 4-1c1.5.3 4 1.3 5.4 2.5z"/>
+ <path fill="#717732" d="M308.4 304.1c1 0 1 .6 1.2.6s1.8-1.5 3.3-2.3a18 18 0 0 1 4-1.4l.1.2s-2.8.7-4.2 1.7l-3 2.1q-.3.5-1.7.7c-1 0-1.4-.6-1.4-.9 0-.2.7-.7 1.7-.7m8.5-4.3s-.9.1-1.3-.3a4 4 0 0 0-2.6-.8 7 7 0 0 0-4 1.8q.1.2-1.4 1.3.6 0 2-1a7 7 0 0 1 3.6-1.4c1-.2 1.7.4 2.2.7.5.4 1.4.3 1.4.3zm-50.5-20.6v-.7l-2.2-1.1c-1.6-1-5-3.8-5-3.8l2.8 2.7c1.4 1.3 4 2.9 4 2.9zm35.6 25.2 1.5-2.1q1.5-2 1.9-2.2 0-.5-.7-1.4l-.2-1.2s.4.8 1 1.3l1.1 1s1.4-.2 1.4-.5q0-.3-.2-.5c-.3-.1-.5.2-1.1 0-1.3-.6-1.8-2.6-2.6-2.6-.8-.1-.2 2-.6 2-1.1.2-2-4.3-5-4.5-2 0-2.3.3-2.4.7 0 .5 2.5 3.1 1.6 3.5s-3.5-4.2-5.5-4.2c-1.9 0-2 .7-2 1.1.2.4 2.2.8 1.8 2.2s-2.5-2-4.3-1.9-2 .3-2 .9c-.1.5.6 1.2.3 1.4s-1.4.1-2.3.7-2.1 2.4-2.1 2.4 1.2-1.7 2.7-1.9h5.6l-1.1-.8c-.6-.5-1.1-1.6-1.1-1.6l1.7 1.5c.8.7 1.9 1.2 1.9 1.2s1.7.2 1.8.4q.3.3-.8 1.3l-1.7 1.7 2-1.6 1.5-1.2 1.4.2q.3 0-.8-1.7l-1.6-2.5s1 .9 2 2.3c1.1 1.3 1 2 1.4 2l1.4.1q.7 0-.4 1.7-1.4 2.5-1.2 2.5c.2 0 .8-1.2 1.6-2 .7-.8 1.1-1.7 1.5-1.8h1.5l-.8-1.6c-.6-1-.8-2.6-.8-2.6s.6 1.4 1.4 2.5l1.3 1.9 1.4-.1.3.1c0 .5-.2.7-.7 1.8zM280.5 292l1.7.5c0-.1-1.7-1-2.1-2.4s0-4.4-.8-4.3c-.7 0-1.1 2.1-1.8 1.7-.8-.4.2-4.4-.6-6-.8-1.7-2.6-2.9-3-2.3s-.3 4.2-1.5 3.5.1-4-.2-5.3c-.4-1.5-1.2-2.5-1.9-2.1s.3 3-.7 3-.9-1.9-1.3-2-.6.3-.9 0c-.2-.4 0-1.7-.6-1.6s-.5 1.2-.3 1.7l.7 1.8c.2.4 1 .9 1 1.2q-.2.5-1 .6h-1.9s1.4.4 1.9.4 1.4-.2 1.7.2c.2.5 1.4 2 1.4 2s.3-.8.4-2.2 0-2.7 0-2.7.5 1.6.4 2.7c0 1-.4 3-.4 3s1.1.8.8 1c-.3.3-1.5.3-2.8.3-1.4 0-3.3-.5-3.3-.5a14 14 0 0 0 6.7 1.3l1.8 2s.9-1.5 1-3v-3l.4 2.8c0 1.3-.4 3.6-.6 3.8a5 5 0 0 1-1.9 1l-3.5.5s2.2.3 3.8 0c1.5-.4 1.7-.9 2.2-.6l.8.7 1.3 1c.1.1-.7.4-1 .7l-1.5.7 2.2-.7 1.1-.4.5.2-.1-1.2-.3-1.8s.5.8.7 1.6l.1 1.6s.2.2 1.4.6m-31.1-35.6s.3-1.7.3-3.6a14 14 0 0 0-1.9-5.8l1-1.4-1.2 1-1.2-.5-.9-1 1.2.8.7.1-.5-2-1.9-1c-1.3-.6-2.5-1.8-2.5-1.8l2.8 1.5q1.5.5 1.6.4l1.6-.6 1.7-1.1s-1 .6-1.8.7l-1.6.3-.3-2.4-1.1-1.1c-.9-1.2-1.6-2.9-1.6-2.9s1 1.2 1.7 1.7 1.4 1.5 1.4 1.5l1.6-1 2.8-2-2.7 1.3-1.6.7s-.2-1 0-1.5.8-1.2.7-1.6c0-.5-.4-.3-.5-.7-.2-.3.4-2.6.4-2.6l.1 1.2c0 .5-.2 1 .4 1s3.2-2.7 3.6-3.2.8-1.8-.6-1.3-1 1.8-2.2 1.7c-.4 0-.8-1.5-1.2-1.2s-1.4 1.3-1.6 2.4.2 2.6-.4 3.1-1-1.8-2.2-1.5-1.5 2-1.3 2.6 2.7 3.5 2 4c-.9.3-2.9-2.6-4-.6-1 1.9 3.4 4 4 4.4.5.5 0 .6.8 1.6s1.8 1.2 2.4 1.8a13 13 0 0 1 2.1 5.9zm11.7 17.1s-1-1.2-.7-3.3 1.8-5.7 1.3-6.2-2 2.2-2.4 1.6.9-4.3.2-5.8-.7-2.5-2-2.3c-1.3.1-1.8 4.4-2.5 3.6-.6-.7.4-2.6 0-3.7q-.6-1.4-1.3-1.2c-.7.2-1 2.2-1.4 2.1-.5 0-1.2-2.3-2.2-2-.9.3 2.3 4.5 2.3 4.5s.5-.5.8-1.2l.6-1.5s.3 1.3 0 1.9-.3 1.7-.3 1.7-.8.3-2.1 0l-2.3-.7s.8.6 2.1 1l2.7.7 2 2.7.8-2.1 1.3-3.5-.6 3.9-.7 3s-1 0-2.6-.3l-3.6-.8 3.6 1.2 2.8.7 1.4 1.9 1-1.5 1-1.8s-.3 1.4-.7 2.3l-.7 1.4-1.8.2h-2.5a20 20 0 0 0 4.5.9s0 .5.7 1.3z"/>
+ <path fill="#fff" d="M314.4 310.8s-.6-.6-1.4-1q-1.3-.6-1.2-.4l-.4-.1.8-2 5.5-5.3.9-5.3h3.4v7.2l1 .5 6.2 3.7v1.6l-1 .4-.7.4-2.3.2-4-3-1.8-1.7-3 4z"/>
+ <path fill="#016848" d="m318.8 296.7-.1 1c0 .9 0 5.2-.2 5.8s-3.2 1.8-4.9 3.3-1.8 2.6-1.8 2.6-.5 0-1.6.4c-1 .4-1.5 1-1.5 1s.6-2.6 3.4-5c2.7-2.6 4-2.8 4.4-3.2.3-.4 0-5 0-5.5q.3-.5.7-.4zm7 15.7.8-1.1 1-.8-1.5-.8c-1.5-.6-2.3-.4-3.3-1.2l-2.2-2-1.5 1.2 1.7 2c.9.8 2.7 1.1 3.5 1.6l1.6 1.1z"/>
+ <path fill="#cd202a" d="M321.5 296.6s1.7 0 1.9.2l.2.6c0 .1 0 4-.2 5.3a8 8 0 0 1-1.4 3l-4 3.7c-1.2 1.2-2.4 2.8-2.4 2.8l-.8-1q-.6-.5-.6-.9a10 10 0 0 1 3.3-3.4c2-1.3 3.6-2.8 4-4.9.3-2 0-5.4 0-5.4"/>
+ <path fill="#cd202a" d="M332.5 310s-.4-.4-1.8-.4l-1.5.1s-.8-1-2-1.7c-1.2-.8-2.1-.7-3.5-1.6-1.3-.8-2-2.1-2-2.1l1-2s1.2 1.5 2.4 2.4 3.7 1.7 4.6 2.4z"/>
+ <path fill="#30c2dc" stroke="#0872a7" stroke-width=".5" d="M345 286.4s-3.6-1.4-3.4-2.7c.3-1.2 8.3-3.3 8.3-3.3l.1-2.1s-1.2-.1-3.2.5-5.2 1.6-8.6 1.6l-34.4-2.2c-3.7-.3-6-6-6-6l-1.8.4s.5 2.7-.4 3a65 65 0 0 1-13.9-6l-.6 2.6s7.3 4 7.1 5.5c-.2 1.4-2.4 1.3-2.4 1.3l1 1.8c.3 0 12 .6 12.3 4.1 0 1.5-3 2.3-3 2.3l1 1.2v.6s6.7 0 8.5 1 2.7 2.6 5 3.8c2.2 1.3 17.3 1 19.6.3 2.7-.7 4.3-3.7 8.7-5 4.3-1.4 5.7-1.4 5.7-1.4z"/>
+ <circle cx="284.5" cy="280.7" r="2.1" fill="#fff" stroke="#0872a7"/>
+ <circle cx="296.4" cy="270.9" r="2.1" fill="#fff" stroke="#0872a7"/>
+ <circle cx="346.5" cy="286.6" r="2.1" fill="#fff" stroke="#0872a7"/>
+ <path fill="#f8c83c" d="M275.1 267.8c-.7 1.6 2 4.6 4 5q2.6.3 3.2-1.1a3 3 0 0 0-.4-2.5c-1.2-1.7-6-3-6.8-1.4"/>
+ <path fill="#fff" d="M281 270.2c0-1-1.6-1.9-2.6-1.9s-2 0-1.8.5 2.7 1.3 2.8 1.6-.8.6-.4 1q.8.4 1.4-.2.6-.3.7-1z"/>
+ <path fill="#f8c83c" d="M297.7 288.3c.4 1.4-.7 2-2 2.7-1.5.6-4.3.2-5-.9-.6-1.1 1-3 2.8-3.4s3.8.3 4.2 1.6"/>
+ <path fill="#fff" d="M294.8 289c.5 0 .6 1 1 .8.5 0 1-.8.8-1.3s-1-1.3-1.8-1.2c-.8 0-3 2-2.8 2.5q.4.7 1.2.3c.4-.2 1-1 1.6-1z"/>
+ <path fill="#f8c83c" d="M349.2 281c1.3 1.7 3.6.2 4.2-.5s2.4-1.7 1.7-2.8c-.8-1.1-2-1-3-1-.8 0-2.6 1.4-2.9 2-.3.5-.6 1.6 0 2.4z"/>
+ <path fill="#fff" d="M349.6 280s.1-1.9 1.8-2c1 0 1 .3 1.8.7.7.4 1-.5 1-.5s0 1.3-1.1 1.3-.8-.5-2-.7c-1-.2-1.5 1.1-1.5 1.1z"/>
+ <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="m321.9 276.4-.9-.6h-2.8l-3.4.1 3.4 9.9 4 5.8 1.6.6 3.1-.2.6-1.6-1.2-9.5z"/>
+ <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="m310.6 277 .2-1.1 1.8-.1 2.2.1s2.3 2.9 3.1 4.7 1.7 4.8 2.7 6.6c1 1.9 3.2 5 3.2 5h-4l-2-.6-5.6-9z"/>
+ <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M308.2 275.8h2.6a14 14 0 0 1 3.9 5.4c1 2.8.5 3.2 1.8 6.2 1.4 2.9 3.2 4.9 3.2 4.9s-3.9.2-6-.2c-2.3-.4-3-.3-3.6-1l-1.7-1.3h-2.2l.5-3.1-.6-6.9.1-3.5zm23.4 1.8-3.7-1.5-7-.4.6 3.6a30 30 0 0 0 2.6 7.7c1.1 2 2.2 4.4 2.8 5s4.6-1.1 4.6-1.1l2.6-.4-.3-2.8-.4-1 .6-8-.6-1.2z"/>
+ <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M307.1 277.7c0 .8 1 .9 1.2.8s1-.3 1-1.5-.7-2.1-2.2-2.2c-1.4 0-2.5 1.7-2.5 3 0 1.2 1.2 1.8 1.2 2.3 0 0-1.2 1.1-1.1 3.1s1.6 3.6 1.6 3.6-1.7 1.3-1.7 2.7 1.3 2.3 2.6 2.3c1.2 0 2.8-.8 2.8-1.8s-1-1.7-1.7-1.7q-1.1.2-1.1.8m25.6-10.9c0 .9-.6 1-1 1s-1.2-.4-1.2-1.5c0-1 1.4-1.6 2.4-1.6s2.4 1.2 2.4 2.7-1 2.6-1 2.6.6.3.6 2.2-1.2 3.3-1.2 3.3 1.6.6 1.6 2.6-1.4 2.6-2.3 2.6c-1 0-2.6-.5-2.6-1.9s.8-1.8 1.5-1.8q1.1.2 1.3 1.5"/>
+ <path fill="#953220" d="m309.5 288.6.4.6q.2.7.8 1.4c.8.7 7.2 1 9.2 1s7.8.2 8.9-.4c1-.7 1.2-1.8 1.9-2.3l.9-.4-.9.7v1.4l.5.8s-.1.4-.8.8q-1 .5-2.3.6c-1 .1-13.2.1-15.2-.2s-1.8-.3-2.4-.7l-1-1 .3-.8-.3-1.4zm20-11.8 1 .5s-.9.3-1.6 2.3-.1 2.5-.6 2.7-5.8 0-5.8 0l-1-2.1z"/>
+ <path fill="#231f20" d="M346.4 276s-.9-.3-1.3-1q-.8-1.4-.5-2c.4-.1 1 .5 1 1.1s.8 2 .8 2zm10.4-2.8s.7 1.2 1 1.3l1.2.6s-1.5 0-2-.4l-1-1.5z"/>
+ <path fill="#231f20" d="M360 274.2s-1 .5-1.6.2q-1.4-.5-1-1t.8.2c.4.4 1.8.6 1.8.6m5.3-4.5s-.8.6-1.3.6-1.5-.2-1.5-.4 1.3-.4 1.6-.3zm-8-10.5s-1.1.4-1.5 1-.3 1.2.2 1.2.6-.7.6-1zm-5.2 2.9s-.9.5-1 1c-.3.5-.5 1.6 0 1.6s.7-.8.7-1.2c0-.5.3-1.4.3-1.4"/>
+ <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="m342.8 268.4-2.9 3s6.6 3.7 11.7 3.5c5-.1 10.8-4 11.2-5 .4-.7 0-4.3-.6-5.4s-4.2-3.8-5.5-3.7-3.7 1.9-5.8 4c-2.2 2.1-2 3.9-5 3.7z"/>
+ <path fill="#0c8489" d="M342 269.6s7 1 9.1-.8 4.3-5.3 5.7-6c1.4-.9 2-.9 2-.9l1.6 1.1 1.8 1.5.6 3.4v1.8l-2.2 1.8-4 1.9-4 1.2-3.2-.1-6.7-2-1.7-1.1-.4-.4z"/>
+ <path fill="#04534e" d="M352.8 265.5q0-.7 1-.6c1 .1 1 .2 1 .8s-.5 1.4-1 1.4-1-1-1-1.6m2.8 1.8q0-.9 1-.8c.7 0 1.3.7 1.3 1.2s-.5 1-1.1 1-1.2-.9-1.2-1.4m-1 4.2q.1-1 1.1-.8 1 0 1 1a1.2 1.2 0 0 1-1.1 1.2q-1-.2-1-1.4m-3.7-1.3c0-.7.7-1 1.3-1q1 .2 1 1.4c0 1.2-.4 1.3-1 1.3s-1.3-1-1.3-1.7m-5.9.7a1.4 1.4 0 1 1 3 0 1.4 1.4 0 0 1-3 0"/>
+ <path fill="#8cbebf" d="M355.6 267.3c0-.5.7-.8 1-.8q.8.1.8.8 0 1-.7 1-.8-.1-1-1zm-1 4q.2-.8 1.2-.8c1 0 1 .3 1 .8s-.5 1-1 1q-1 0-1.1-1zm-3.7-1.2c0-.6 1-.9 1.5-.9q.4 0 .3 1 0 1.1-.7 1.2c-.7.1-1-.7-1-1.3zm1.8-4.7q.1-.6.8-.5c.7.1.6.1.6.7s-.3 1-.6 1q-.7-.2-.8-1.2m-7.7 5.1q.1-1.1 1.4-1.3 1.8-.2 1.7 1c0 .6-1 1.8-1.8 1.8s-1.3-.8-1.3-1.5"/>
+ <path fill="#231f20" d="M347.7 269.4s-1 .1-1.5.6-.5 1-.3 1.2.7-.3.8-.6c0-.2 1-1.2 1-1.2m4.7-1s-1 .6-1 1.3q-.1 1 .2 1c.3 0 .5-.9.4-1.2s.4-1.2.4-1.2z"/>
+ <path fill="#231f20" d="M353.2 269.3s-.6 0-1 .4q-.9.9-.6 1 .6 0 .8-.5c0-.2.8-.9.8-.9m1-5.4-.8.6c-.2.2-.5 1-.2 1q.4.3.8-.5zm3.5 2.3s-.9 0-1.2.5q-.6.7 0 .8.4 0 .6-.5c.1-.4.6-.8.6-.8m-.5 4.1s-.2.7-.8 1q-.7.6-1 .1 0-.6.4-.7z"/>
+ <path fill="#04534e" d="M362.8 267.5s.4 2-1.3 3-6.4 4.2-10.9 3.8-9.6-3-9.6-3l-.7.4 1.2.5 3.4 1.4 4 1.2 2.5.1 2.1-.2 4-1.3 3.3-1.7 1.8-1.4.4-.6v-1.9z"/>
+ <path fill="#231f20" d="M274.9 242.2s1 .9 1 1.6q-.3 1.2-.7 1c-.3-.2-.3-1-.3-1.3zm7.7 7.1s-.3 1.4-.9 1.5c-.5.1-.9-.4-.8-.7l.8-.2zm-16.8 1s.4.8 1 1q1.1-.2 1-.6-.2-.2-.8-.2zm3 6s.7.6 1.5.7a1 1 0 0 0 1.3-.7c0-.2-1-.2-1.3 0s-1.5 0-1.5 0m5.3 4.4s1.4-.2 1.6-.6.6-1 .3-1.3-.5.5-.7.9c-.1.3-1.2 1-1.2 1"/>
+ <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M282.6 257.1s1-6-4-10.4c-5-4.3-8.1-3.2-9.8-1.6s-3.2 6.7 2 11.3c5.3 4.5 11.7 3 11.7 3z"/>
+ <path fill="#0c8489" d="M267.6 250.7s-.1-3.4 1.5-4.4c1.5-1 6.8-1.8 9.3 3.1s2.7 7.4 2 10h-2.7l-4.3-1.8-3.5-2.6z"/>
+ <path fill="#04534e" d="M282 258s-.9 1-2.7 1c-1.7-.2-10-2.3-12-9.8v1.7l.1.5.6 1.5 1.7 2.5 2.2 1.9 2.8 1.4 2 .6 2.5.4h1.5z"/>
+ <path fill="#04534e" d="M277.7 255.9q0-.9.8-.7c.8.2 1-.2 1 .4s-.4 1.6-1 1.6q-.7-.2-.8-1.3m.3-4q0-.7 1-.8.8 0 .9.9 0 .7-1 .8-.8-.1-.9-.8zm-3.7 4.4q0-.6 1-.7c1-.1 1 .3 1 .7s-1 .8-1.5.8-.5-.5-.5-.8m-.4-4.6c0-.6.3-.4.8-.4s1.2.1 1.2.7-.7 1.4-1.2 1.4-.8-1.2-.8-1.7m-3.4.7q0-1 .9-1.1c.9-.1 1.3.6 1.3 1.1q-.1.9-1.1 1-1-.1-1.1-1m.6-4q0-.7 1-.5 1 0 1.1.7c0 .5-.7 1.2-1.4 1.2s-.7-1-.7-1.5zm3.7-.5q.1-.5 1-.3 1 0 1.1 1c.1 1-.7 1-1.3 1s-.8-1.2-.8-1.6z"/>
+ <path fill="#8cbebf" d="M271 248.3q.2-.6.8-.7.8-.1.9.7-.1.8-.8.9-1-.1-.8-1zm-.6 4q0-.9.7-1 1-.2 1 .5-.1 1-1 1.1c-.9.1-.7-.1-.7-.6m4.4-4.3q0-.5.8-.4 1 0 .8.5-.1.7-.8.7-1-.1-.8-.8m-.9 3.9q.1.9 1 1 1.2 0 1-1c0-.6-.6-1-1-1s-1 .4-1 1m4.3-.6q0 .8 1 .9.8 0 .9-.9c.1-.9-.5-.9-1-.9s-1 .4-1 1zm-4.1 5q.2-.8.9-.9 1 0 .9.7c0 .4-.8 1-1.2 1q-.7 0-.6-.9zm3.6-.7q0-.7 1-.6.8 0 .8.6-.1 1-1 1c-.9 0-.8-.5-.8-1"/>
+ <path fill="#231f20" d="M278.7 249.4s.5.7.6 1.3v1.2q-.5 0-.7-.9c-.1-.5 0-1.6 0-1.6zm-3.2-3.3s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8zm-3.7.5s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8z"/>
+ <path fill="#231f20" d="m270.5 247.3 1 .4q.5.7.3 1-.3.2-.6-.4zm2.8 3.8s.7 0 1.1.5q.8.4.5.9-.4.1-1-.5zm-3.4 0 1 .3q.5.5.2.8-.2.2-.6-.4zm8.3 2.5.2 1.4q.1.9-.2 1c-.3.1-.3-.7-.3-1 0-.5.3-1.4.3-1.4"/>
+ <path fill="#231f20" d="m277.3 254.9.8.5q.4.4.1.6l-.4-.5zm-3.7.2.9.3c.2.2.3 1 .2 1.1q-.1.1-.6-.3z"/>
+ <path fill="#04534e" d="M272.1 243.8s-3.2.7-3.8 2.9c-.6 2-.7 4.4-.7 4.4l-.4-2.7.6-1.7 1-1.6 1.4-1 1.3-.4zm10.2 12.5s.4-.8-.6-3.4-3-6-3-6l1.6 1.8 1.2 2 .6 1.8.5 1.7v1.6l-.3.6z"/>
+ <path fill="#231f20" d="M285.6 252.2s1.2.7 1.3 1.1q.3.6-.1.7-.6 0-1-.7zm-4.8 12.8s.6-1 1.3-1.3q1-.6 1.4-.1.1.4-1 .9zm8.1 3.1s.8-.4 1.3-1q.7-.8.4-1-.5-.4-1.1.5c-.3.4-.6 1.5-.6 1.5m-.9-.7s.3-1 .6-1.4q.4-.5 1-.3.2.4-.2.9z"/>
+ <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M301.5 261.2s-5-7.2-12.8-7.6a7.4 7.4 0 0 0-8 7c.2 1.6 2.6 5.2 10.9 5.8s9.6-3.9 10-4.1c.3-.2-.1-1-.1-1z"/>
+ <path fill="#0c8489" d="M295.6 256.3s2 1.5 3 2.8q1.2 2 .5 2.3c-.5.2-5-4-8.8-4.9-3.7-.9-6.9 0-7.6 1.7s-.4 4.5 1.2 5.6c1.8 1 9.7 2.3 9.7 2.3l3.7-.5 2.3-1.3.5-1.3.6-1.6.2-.7-1.9-2z"/>
+ <path fill="#04534e" d="M289.2 257.3q-.1.6-1 .7c-.9.1-.9-.3-.9-.7q0-.8 1-.9c1-.1 1 .4 1 .9zm-4.6 1.6q.2-.6 1-.4 1 0 1 .8c0 .8-.8 1.1-1.3.9q-.8-.5-.7-1.3m5 2.7q0-1 1-1 1.1 0 1.2 1c.1 1-.8 1.2-1.5 1.2s-.7-.6-.7-1.2"/>
+ <path fill="#8cbebf" d="M285.8 262.7q.2-.7 1-.6t1 1c.1.9-.5.9-1 .9s-1-.8-1-1.3"/>
+ <path fill="#04534e" d="M292.5 264.5q0-.7.7-.8.8 0 1 .7-.1.8-1 .9a1 1 0 0 1-.7-.8m3-2.3q0-.6.8-.4 1.1.1 1 .8-.3 1-1.1.8-.7-.2-.7-1.2"/>
+ <path fill="#8cbebf" d="M289 256.9q0 .6-.7.6-1 0-.9-.6t.6-.6q1 0 1 .6m-2.5 1.9c0 .5-.7.7-1 .7q-.8 0-.8-.7t.8-.6q1.1 0 1 .6m1 3.8q.1.6-.5.7-1 0-1-.7-.1-.6.5-.7 1 0 1.1.7zm4-1.3c0 .4-.7 1-1.2 1s-.6-.9-.6-1.3.4-.7.8-.7 1 .6 1 1m5.8 1.3c0 .4-.7.4-1 .4q-.8-.1-.8-1-.2-.7 1-.7c.5 0 .8.8.8 1.3m-3.4 1.7q0 .8-.7.8a1 1 0 0 1-.8-.8q.1-.6.8-.6.9 0 .7.6"/>
+ <path fill="#231f20" d="M294.4 262s.8-.3 1.5-.3q.8.1.6.4t-.7.2l-1.4-.4zm-3.3 2.8s.6-.4 1.1-.5q.8-.2.8.4 0 .4-.6.3zm-2.2-5s1.4.6 1.7 1.1q.5.8.1.9t-.8-.5z"/>
+ <path fill="#231f20" d="m288.5 261.6 1.6-.3q.7 0 .7.2t-.5.3zm-3.4 0s1.2.2 1.5.5q.4.5.1.7c0 .2-.6.1-.8 0z"/>
+ <path fill="#231f20" d="M285 263.3s.4-.7.8-.8 1-.1 1 .1c.1.2-.4.5-.7.6zm-1-5.1 1.2.3q.6.5.4.7t-.8 0c-.5-.4-.7-1-.7-1zm2.6-3s1.2.4 1.6 1q.5.8.1.9l-.9-.4c-.3-.3-.8-1.4-.8-1.4z"/>
+ <path fill="#04534e" d="M300 263.7s-2.3 2-7.7 1.9-10.4-2.5-11.6-5l.5 1.2 1.2 1.6 3.8 2 4.3.9 3.3.2 3.2-.6 2.5-1.1.4-.7zm.8-2.5s-.9-1.2-2.2-2.3c-1.2-1.2-6.2-4.4-6.2-4.4l4 1.8 2.7 2.2 1.8 2z"/>
+ <path fill="#231f20" d="M301 256.4s1.4.5 1.6.8l.5.6s-.3 1-.6.6l-.8-.9zm4-2.2s1.3.5 1.8 1.1q.6 1.1.2 1.3c-.2 0-1-.7-1.2-1l-.7-1.4z"/>
+ <path fill="#231f20" d="M306.4 254s1.2.8 1.4 1.2.5 1 .1 1c-.3.2-.9-.4-1-.8l-.6-1.5zm6.8 1.5s1 .4 1 1.2v1.3l-.7-.7v-.7l-.3-1zm1.8.7s.8.7.9 1.2.2.8-.3 1q-.6-.1-.6-1zm-12.3 15s.6.2 1.2 0q.9-.4.9-1-.2-.8-.8-.2c-.4.4-.2.6-.5.8zm6.8 1.8s.9-.2 1.5-.9q1-.9.5-1.2c-.4-.2-1 0-1 .5zm5.5.1 1.3-.9q.8-.6.4-1c-.3-.5-.6-.2-.8 0l-.2.7z"/>
+ <path fill="#231f20" d="M316.7 273.1s.8-.9 1-1.4q.3-.9-.1-1-.7.1-.8.9z"/>
+ <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M299.9 264.1c0-2.4 3.5-8 7.5-8 1.6 0 4.9 1 7.5 2.1 2.2 1 3 2 4.4 2.4s3.7.1 3.7.1l5-.5-4 5.7-1.4 1.2s-1.2 2.4-4.7 3.8c-3.6 1.4-9.5.4-12.2-.3s-6-3.2-5.8-6.5z"/>
+ <path fill="#04534e" d="M299.9 264.1h.2q0-.8.6-2.1a12 12 0 0 1 2.7-3.8q1.7-1.7 3.9-1.8 1.3 0 3.4.6l4.1 1.4q1.5.8 2.4 1.5l2 1 2 .2 1.8-.1 4.4-.5-3.6 5.2-1.4 1.2v.1a9 9 0 0 1-4.6 3.7q-2 .6-4.5.6c-2.8 0-5.9-.5-7.6-1a8 8 0 0 1-3.8-2.1 6 6 0 0 1-1.8-4h-.5q.1 2.6 2 4.4a9 9 0 0 0 4 2.3c1.7.4 4.8 1 7.7 1a14 14 0 0 0 4.7-.7 9 9 0 0 0 4.9-4h-.3l.2.1 1.4-1.3 4.3-6.2-5.6.7h-.1l-3.4-.1-1.9-1q-.9-.7-2.5-1.4l-4.2-1.5q-2-.6-3.4-.6h-.1q-1.5 0-3 1a11 11 0 0 0-3.3 3.5 8 8 0 0 0-1.4 3.7z"/>
+ <path fill="#0c8489" d="M324 264.9q-.7.4-1.4.3c-.5 0-11.6-6.7-15-6.4s-6.8 1.7-6.9 5.3c0 3.5.8 3.5 1.5 4.5s7.5 2.5 7.5 2.5h4.1l3.3-.4 3-1.6 1.5-1.3 1.1-1.3z"/>
+ <path fill="#04534e" d="M306.5 263q0 1.3-1 1.3t-1.1-1c-.1-1 .4-1 1-1q1-.1 1 .8zm1.1-3q.2-.9 1.2-.8 1.1 0 1.2.8 0 1-1.2 1-1 0-1.2-1m6.7 1.8q0-.8 1-.9.8 0 .9 1c.1 1-.4.8-1 .8a1 1 0 0 1-1-.9zm1.3 4q.1-1 1-1t1.2.8q.2 1.3-.8 1.3c-.6 0-1.4-.4-1.4-1zm-3.2 2.7q.1-1 1-1 1.1 0 1.2 1-.1.8-1 .9-1.1 0-1.2-1zm-6-1q0-1 .9-1a1 1 0 1 1 0 1.9 1 1 0 0 1-1-1z"/>
+ <path fill="#8cbebf" d="M306.4 263q0 .9-1 1a1 1 0 0 1-1-1q0-.9 1-.8c1 .1 1 .2 1 .7zm3.3-3.2q0 .8-.8.9c-.5 0-1.3-.4-1.3-.9s.5-1 1-1q1 .1 1 1zm6.4 1.7q0 .8-1 .9c-1 .1-.9-.4-.9-.9q0-.7 1-.8c1-.1.9.4.9.8"/>
+ <path fill="#04534e" d="M312.7 264.2q0 1.1-1 1.2t-1.1-1c-.1-1 .3-1 1-1s1 .2 1 .8z"/>
+ <path fill="#8cbebf" d="M308 267.2q0 .9-1 1c-1 .1-1-.5-1-1s.6-.8 1.2-.8.8.3.8.8m4.5-3a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1m5.2 1.3q0 1-1 1t-1.1-1c-.1-1 .2-.8.8-.8q1.1 0 1.3.8m-3.3 2.7q0 1-1 1-1.3 0-1.1-1 .1-.8 1-.8t1 .8z"/>
+ <path fill="#231f20" d="M314.8 265s1.6-.2 1.9 0q.4.6.1 1c-.1 0-.8.1-1-.1 0-.3-1-1-1-1zm-1.7-5.4s1.3.3 1.8.9q.6.9.4 1.1-.4.3-1-.2zm-3.7 2.6s1.5.8 1.8 1.3q.5.6.2 1c-.1.2-.8 0-1-.3 0-.3-1-2-1-2"/>
+ <path fill="#231f20" d="M308.7 263.3s1.7.2 2 .5q.8.4.8.6-.1.4-.5.4l-1.2-.5-1-1zm-1.9-4.8s1.7.2 2 .5.5 1 .1 1.2q-.6.1-1-.5l-1-1.2zm-3.6 2.5s1.5.8 2 1.4q.6.6 0 1c-.4 0-.9-.7-.9-1z"/>
+ <path fill="#231f20" d="m302.8 263 1.5-.2c.5 0 1.2-.1 1.2.2s-.6.5-1 .4zm8.6 5.6s1.1-.7 1.7-.6q.7 0 .7.4c0 .4-.7.3-.9.3zm-6-.9s.4-.6.9-.7q.6 0 .7.2-.1.4-.6.6h-1z"/>
+ <path fill="#04534e" d="M322.6 266.6s-1.6 2-4 3a14 14 0 0 1-7.2 1.1 15 15 0 0 1-11.2-5.2l.4 1.1 2 2.6 2.3 1 3.5 1 3.3.3h2.5l3-.5 1.9-.7 1.3-.8 1-.8 1.2-2zm-3-5.9s-1 .3-3-.9-4.3-2.8-8.8-2.8-5.9 3-6.2 3.2l2-2.6 2-1.1 1.7-.3h1.5l2 .6 1.7.6 2.1.7 1.8 1 2.2 1.1zm6 1.4h-3.4c-.8 0-.8.2-1 .4l-.2.4-.8-1.7 3.5-.5 2 .7-.2.6z"/>
+ <path fill="#0c8489" stroke="#04534e" stroke-width=".5" d="M320.7 280.4q.3.9 1.1 1h1.6l3.6-.3 1.2-1.4.8-3.2 1-1.2 3.3-1.9 2.8-.8 1.9-.2 2.5-.8 1.9-1 .8-1.2.8-1.8-.8-2.5-2-2.7-3.4-1.3H335l-3 1.1-5.5 1.3s-3 1.3-4.3 3.7c-1.3 2.3-1.2 3-1.5 6-.2 3.2 0 7.2 0 7.2z"/>
+ <path fill="#8cbebf" d="M322.2 279.2c1 0 .2-1.7 1.4-3.8s2.6-4.6 3-4.6.4.4.9.3 1.2-.8 1.2-1 0-1.3 1-2c.8-.8 2.1-1.9 2.7-2q1-.3 1 0c.1.3-.3.7.1.8s1.4.1 1.6-.5l.2-1s.6-.5 1.8-.3 1.3.2 1.4.7-.5.5-.4.8v.6c.2.2.4 1 1.2 1 .8-.1 1.1-.6 1.1-.6l.3-.4s.2-.5-.1-.7q-.4-.4 0-.3c.4.1 1.6 1.8 2 1.1s.5-1.7.2-2l-1.9-2.7-3-1-4 .3-4 2.2-3.6 2s-.2 2.9-.8 2.3c-.7-.5-1.6-2-1.9-1.5s-.9 2.7-1.3 3.8c-.3 1-1.4 4.4-1.3 5.6s.8 2.9 1.2 2.9"/>
+ <path fill="#8cbebf" d="M325.8 274.4q-.6.1-.8.5-.3.3-.2 1c0 .3.7.7.7.7h.5l1-.3.3-.8q-.1-.7-.4-.6zm6.2-5c-.6-.3-.8.1-1 .3v.5s.2.8.4 1c.3 0 1.1.3 1.3 0q.5-.2.5-.9c0-.7-.7-.7-.7-.7zm5 1.1q-.1-.3-.9-.2-.6 0-.6 1 .4.9 1.2.6c.5-.1.4-.8.4-.9zm-14.4 1c0 .3.5 1 1.2.9a1.3 1.3 0 0 0 1.2-1c0-.4-.4.3-1 .5s-.7.2-1 0q-.3-.5-.4-.4"/>
+ <path fill="#04534e" d="M327.3 275.5s0 .6-.4 1q-.7.4-1 .3-.5 0-.8-.3l-.3-.7s.5.8 1.3.6a2 2 0 0 0 1.2-.9m13.3-8.3s0 .6-.5.9q-.6.4-1 .3-.4 0-.7-.4c-.6-1-.3-1.5-.3-1.5s.4 1.6 1.3 1.5a2 2 0 0 0 1.2-.8m-11.9 2.9s-.4 1.2-1.2 1.2c-.9 0-.8-.2-.7-.4 0-.1.3.2.7 0 .4 0 1.2-.8 1.2-.8m2.3-.3s0 1 .2 1.2q.5.5 1 .5.6.1.9-.4.3-.8.1-.8l-.2.5q-.4.4-.8.3-.6 0-.8-.3zm4.3-4.3s.2.7-.3 1.2-1.5.2-1.5.2.8.3 1.2-.2.6-1.2.6-1.2"/>
+ <path fill="#04534e" d="M321.7 281.1s5.3 0 5.7-.8c.4-.7-.4-3.6 2.7-5.8 3.2-2.2 5.7-2.2 7.4-2.3 1.7-.2 5.3-1.3 6-4.5.3-2-2.3-2.2-3.3-4-1-2-3.6-1.2-3.8-1.2s-3 0-4.3 1.3c-.9.8-.8 1.8-1.1 2.2s-4 0-4.3.6c-.4.6.1 1.7-.2 2-.2.3-1-.8-1-.8l.2-2.8 4.5-2.6 5-2.8 3.5.1 3.5 1.8 1.7 2s.3.8.5 2.3l-.2 2c-.8 2.8-3.7 4.8-6.7 5a14 14 0 0 0-7 2.5c-1.4 1-2.1 5.3-2.1 5.9 0 .5-6.6.1-6.6.1z"/>
+ <path fill="#231f20" d="M324 270.8q-.6.4-.8 0c-.2-1 .3-2.2.3-2.2v1.6l.5.3zm3.2-.6c-.2-.1-.1-1 0-1.3.2-.3 1.7-1.4 1.7-1.4l-.6 1.5c-.2.4-.7 1.3-1 1.2zm-1.2 5.3q-.4 0-.3-1c.1-1 1-1.6 1-1.6l-.4 1.2.2 1q-.1.4-.5.4"/>
+ <path fill="#231f20" d="M328.4 274s-.5.6-1 .9q-.9.6-1.4.6c-.4 0 .1-.8.3-.9zm4.5-6.4s-.6.5-.9 1.2q-.5 1.2-.1 1.4c.3.2.7-.8.8-1.1z"/>
+ <path fill="#231f20" d="M334.6 269.9s-.5-.4-1.2-.6q-1-.2-1.2.2c0 .2-.6.5-.3.7s.6-.3.8-.3q.3-.3.9-.2zm-1-4.5c.3.3.7-.2 1-.6l.7-1.2-1 .7c-.4.3-.9 1-.7 1.1m6.9-.1s-1 .4-1.2.8q-.6.6-.4 1c.3.3.6-.2.8-.5zm-2 4.6s-.3.6-.9 1q-1 .6-1.3.3 0-.4.3-.7l.8-.2z"/>
+ <ellipse cx="328.8" cy="207.4" fill="url(#mx-b)" rx="2.9" ry="4.3" transform="rotate(8.7)"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m295.4 247-1.7 4.2 1.4-.2.7-3.8z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M296.1 245.1q-1 0-1.2 1 0 1.2 1 1.4 1 0 1.2-1 0-1.2-1-1.4z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m369.7 255.8-4.2 4 1.7.4 2.9-3.8z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M371.6 254.1a1.5 1.5 0 0 0-2 .6q-.7 1.1.4 2 1.2.4 2-.7c.4-.6.2-1.5-.4-1.9z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="m262.8 233 2.2 4.9 1-1.4-2.6-3.7z"/>
+ <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M261.9 230.9q-.9.8-.1 1.9c.4.6 1.3.7 1.8.2q.9-.9.1-2a1.3 1.3 0 0 0-1.8-.1z"/>
+ <path fill="#aa8c30" d="M296.6 245.3s.3.1 0 0c-.5 0-1.4.4-1.4 1a1 1 0 0 0 1 1c.5 0-.2.2-.2.2l-.7-.2-.2-.4-.2-.5.1-.6.4-.5.5-.2h.3z"/>
+ <path fill="#aa8c30" d="M295.6 248.1s-.3 0-.5.3l-.7 1.1 1-2.3.4.2zm76.4 6.4s.3.4-.1 0c-.4-.3-1.8-.2-2.1.5q-.5 1.2.6 1.7c.6.2-.2 0-.2 0l-.7-.5-.1-.6v-.7l.5-.6.7-.3h.7l.3.2z"/>
+ <path fill="#aa8c30" d="M369.4 257.3s-.3-.2-.8 0l-1.4.9 2.3-2.2.5.6zm-107-26.7s.4-.1 0 .1-.8 1.4-.3 2q1 .7 1.7 0c.4-.5 0 .2 0 .2l-.7.4h-.6l-.6-.3-.4-.6v-.8l.2-.5.3-.3.3-.2z"/>
+ <path fill="#aa8c30" d="M264 233.8s-.3.1-.2.6l.3 1.5-1.2-2.7.7-.2z"/>
+ <ellipse cx="337.6" cy="-128.1" fill="url(#mx-c)" rx="4.6" ry="3.1" transform="rotate(62.9)"/>
+ <path fill="#e92736" d="M262.6 241.2s1 .2 1.5 0 .6-.7.7-.8.3-.6.2-1l-1-1.4-1-.1-.2-.5c-.3 0-1.7 1.6-1.5 1.8.3.3.4 0 .5.1v1.1c0 .3.8.8.8.8"/>
+ <path fill="#e92736" d="M264 238.1c.1.3.7 1 .9 1q.5.3 1 0c.3 0 1-.7 1-1l-.1-.7c-.2-.3-.1-1-.4-1.1q-.2 0-.5-.3v-.7c-.3-.3-2.6 1.1-2.4 1.4l.5.1z"/>
+ <path fill="#e92736" d="M269.2 237.6c.2-.4.1-1.5-.1-1.8s-.6-.3-.7-.4l.3-.5c.2-.4-2.6.1-2.4.4s.6.1.6.3l-.5.6.3 1.1q0 .3.2.5l.6.2h1.4q.2 0 .3-.5zm22 12.8s.3.7.8 1h1l.6-.5c.2-.2.4-1.2.3-1.4 0-.2-.5-.6-.5-.8l.2-.4c-.1-.2-2-.2-2 .2l.2.3c0 .2-.5.5-.6.7-.2.1 0 1 0 1z"/>
+ <path fill="#e92736" d="M293.8 249.5c0 .2-.2 1 0 1.1q.1.5.5.8h1.2l.4-.6c.1-.3.6-.7.5-.9q-.2-.2-.1-.4l.3-.5c.1-.3-2.1-1-2.2-.7l.2.4c0 .2-.7.6-.8.8"/>
+ <path fill="#e92736" d="M297.3 252.5c.3-.2 1-.9 1-1.1l-.2-.7.5-.1c.1-.2-1.6-1.6-1.7-1.3l.2.5-.7.1-.5.8q-.2.2-.2.5l.2.4c.1.2.8.9 1 .9zm66 5.5s0 .8.4 1.2q.5.4.8.4h.7l1-1-.2-1c0-.4.3 0 .3-.2s-1.6-1.1-1.7-.8c-.1.2.2.3 0 .4l-.8.2c-.2 0-.5.8-.5.8"/>
+ <path fill="#e92736" d="m366 258.5-.8.8q0 .5.2.8c0 .2.7.6 1 .5l.5-.2c.2-.1.8-.2.8-.4l.1-.4.6-.2c.2-.2-1.2-1.7-1.4-1.5q-.1.3 0 .4c-.2 0-.9 0-1 .2"/>
+ <path fill="#e92736" d="M366.4 262.2h1.4l.4-.5.4.2c.2 0 0-2-.3-1.8l-.2.4-.5-.3-1 .1s-.2 0-.3.2l-.2.4v1q0 .2.3.3"/>
+ <path fill="#f7e204" d="M264.2 239c.2.4-.1 1.2-.3 1.4s-1.3-.1-1.3-.3v-.8c.2-.2.6-.7.9-.6q.5.1.7.4zm.3-1.3q-.2.5.2.7c.1.2 1 .4 1.2.3s.6-1.5.4-1.7l-.7-.2c-.2 0-1 .6-1.1.9m2.7-1.3v.7l1 .5c.3 0 .5-1 .5-1.1q0-.3-.3-.4l-1.2.2zm26.1 13.7c0 .4-.7.7-.9.7s-.7-1-.6-1q.2-.4.5-.5.5-.1.9.2zm1.1-.6q-.3.2-.3.6c0 .2.3.8.5.9s1.2-.5 1.3-.7q0-.4-.4-.6l-1-.2zm2.4 1q-.3.1-.4.5s0 .6.3.8.8-.2.9-.3v-.4c0-.2-.8-.6-.8-.6m68.6 8.2c-.2.2-.9.2-1 0-.3 0-.3-1-.1-1q.2-.3.6-.2.5 0 .6.6zm1 .1q-.5 0-.6.3c-.1.1-.2.7 0 .9.1.1 1.2.2 1.3 0v-.5zm1 2h-.5q-.3.1-.4.7c0 .2.7.3.8.3l.3-.2-.1-.8z"/>
+ <ellipse cx="438.6" cy="-93" fill="url(#mx-d)" rx="2.2" ry="4.5" transform="rotate(47.9)"/>
+ <path fill="#a8ac71" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3s5.2-5.5 5.8-5.8c.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2.9.7.8 1c-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3s-1.4 1.7-1.5 2.4-.4 1.1 0 1.4 2.1 0 3.5-.6 2-1.5 2.1-1.4c.2 0-.8 1.7-2.3 2.4s-2.5 1.3-3.3 1.2c0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6zm-15 16s2 .8 2 3-2.1 4.1-2 8c0 4 .6 4 5.8 8.3a6 6 0 0 1 1.6 2.5c.3 1.3 1.2 8.9 6.2 8.9s5.8-3.3 5.8-3.3l-2.2-3.1s-1.7.5-2.7.3a3 3 0 0 1-2.3-2.1c-.6-1.2-.7-4.1-1.6-5.4-2-3.2-5.8-3.7-5.9-7 0-3.4 2.3-3.7 1.7-7.7-.7-4-5.4-5.8-5.4-5.8l-1.9-.8-.7 4z"/>
+ <path fill="#f1a720" d="M284.7 187.6c1.7-.4.7-4.8.7-4.8l-1.2 1s.8 1 .8 2-.3 1.8-.3 1.8"/>
+ <path fill="#a8ac71" d="m287.8 231.5-.9-.7c-.6-.4-3.2-2.6-2.8-8.9.5-7.2 11-11 11.6-13.8.8-3.2 3.1-4.5-5.2-11l-2 2.2 3.5 2.6s.7-.4.8.6c0 1-1 1.7-1.2 2.5-.2.7-5.4 4.3-5.8 4.6l-3 2.4s-1.3 1.3-2.5 4.1c-1.3 2.8-.7 6.4-.7 6.4s0 7.6 8.2 9"/>
+ <path fill="#78732e" d="m282.7 235.5.6 2.7-1.7.6h-.7l-.5.2-1.3 1.2h-.3s-.2 0-.3-.8l-.2-1.5 1.6.7h.6l.3-.1.7-1.5zm-4.8.5-.8-1-1-.9 1.2-.6h1.2l-.2 1.5zm2.7-4.3s.8.3 1 1l.6 1.2-2-.2-1.4-.4 1-1.4zm-.7 11.9s-.4-.3-.7-.9l-.4-1.6 1.3-.3 1.5.7h.4l-.3.8-1.5 1.3zm5-4.1s-1-.4-1.2-1q-.3-.6-.4-.4l-.3 1.5-.5 1.5.2.2 1.1-.3.9-.9.3-.6zm-4.7 4.8 1.4.7 1.2.5.6-.6.7-1.3v-.1l-3 .3zm4.4-1.2 2.7-1.6.1-1.4-.5-.4h-1.5l-.5 1.8zm-1.8 2.5s1.8.8 5-.4c1.4-.5 1.7-1.2 1.7-1.2l-1.3-.5-1.2 1zm-2.5-20.3-.4-1.4-.1-1.1.9.5 1.3 1-1 .7zm2.2 3.7-.9-1-.6-1.2 1 .2 1.1.6z"/>
+ <path fill="#c6c7a6" d="M276.6 187c-.2.7-.4 1.9.5 2 .4.2 2.3 0 4.5-2.4 1-1.2 1-2.4 1-2.4l.5-1.3s-.9-.6-2.2.2-4.3 4-4.3 4z"/>
+ <circle cx="282.5" cy="183.6" r=".4" fill="#1c242f"/>
+ <path fill="#a8ac71" d="m279.7 184-1.7 1.7s1.4-.4 2.6-1.5c.6-.6 2-.8 2.6-.7.4.1.2-.4 0-.5-.3-.3-1.4-.4-1.6-.3z"/>
+ <path fill="#78732e" d="M284.1 224.5v-2.2l-.9.8-.8 1.1 1.3.5zm-4.5-2.6v-2.3c0-1 .5-3.1.5-3.1l.6 1.4 1.5 2.4.5.4-1.3 1-1.4.4zm4.5-.6.3-1c.1-.6.5-1.4.5-1.4v.1l-2 1.7.8.7h.5m-3.7-6s.2-.6 1-1.5l1.3-1.8.6 2.4.4 2v.4l-.7.2c-.2 0-1.6 0-1.8-.3zm4.8 2.9.8-.9 1-1-3.2.6.5 1zm-2-6.7s.3 0 1.2-1c.8-.8 1.3-.7 1.3-.7l.3 3.4-1.6-.5z"/>
+ <path fill="#78732e" d="m287.3 216.2 2-2-3.3-1 .6 2.3zm1.4-5.2.2-3.3s-.7.3-1.5 1l-1.2.9.4.6 1 .7h1zm2.8-3.2V205s-.5.8-1 1.2l-.9.8.9.6h1zm1.2 3.5 1.6-1.3 1.5-1.7-4.2-.3.2 1.7 1 1.6zm-9.6-13.8-.2 1.8h3.5l-.9-1.2-1-.6-1-1zm6.6 16.2c.2 0 1.1-.8 1.6-1.2.4-.5 1.2-1 1.2-1l-3.3-.3v2.2zm6.3-5.9s.4-1.3.3-2.6l-.2-1.8-2.5 1.7.4 1.2 1 1z"/>
+ <path fill="#78732e" d="M291.8 204.8s.7-1 .8-1.4v-.4h2l1.1.2h.2l-.9 1.1-1.2.7-1.5.2zm4-2-1.3-2-.8-1-1 2.7v.3h3z"/>
+ <path fill="#fff" d="m271.6 222.2-.3.8s1.3-.7 2.3-.7 2.1 1.3 2.1 1.3l.2-.9s-1.3-1.3-2.2-1.3c-.8-.1-2 .8-2 .8zm.7-5.8.3.4c0 .1.1-1 1.4-1.5 1.4-.6 2-.1 2-.1s-.2-.8-.8-1q-.8-.2-1.8.5a4 4 0 0 0-1.1 1.7m4.4 4.4s-.6-1.4-1.6-1.6c-1.1-.3-2.5.5-2.5.5l-.2.7s1.5-.8 2.5-.4c1.1.5 1.5 1.7 1.5 1.7l.3-1zm-5-5.1.4.5s-.2-1.4.5-2.1l1.1-1-.6-.3s-.9.5-1.2 1.1a3 3 0 0 0-.2 1.8m-.5-2.3c.3-.8 1.2-1 1.2-1l-.3-.3h-.5s-.5.3-.9 1c-.3.9-.3 2-.3 2l.6.3s-.1-1.4.2-2m7.8-19.2q1.4-.4 1.5-.3c.1.1-1.3 1.3-.7 2.9q-1 2.1-.9 2.3h.7l.4-1.8c.8 1.3 2 2 2 2h1s0-1.3.4-2.4h.1a5 5 0 0 0 2 1.5v-.4s-1.1-.6-1.7-1.5l-.1-.1a4 4 0 0 1 1.8-1.7l.7.6.2-.2-.5-.7h-.6l-1.8 1.7-.8-1.5-.4-.2s-1.1.1-2 1.7c-.2-1.2 1.1-2.4 1.1-2.4v-.5l-2.4.6c-1 .3-1.7 1.2-1.7 1.2v.8s1-1.1 1.7-1.6m1.5 2.2c.6-1 2-1.5 2-1.5s0 .7.7 1.7c-.5.9-.8 2.2-.8 2.2s-1-.6-1.9-2l-.2-.3zm-7.6 21.1v.8s.8-.9 2-1 2.3 1 2.3 1 0-1-.2-1.2c-.1 0-1.1-.6-2-.6s-2.1 1-2.1 1m21.4-11.2-.5-1 .6-.3 1.7-1.6-.4-.6h-1.6l-1.4-.1.5-1.7.6-1.4-.6-.5s.2.5-.8.6-2.8-.8-2.8-.8v.4l2.5.7q.9 0 1.2-.3l-.5 1.3-.3 1 .2.2v.8l1.4.1 1.6.1s-.8 1-1.7 1.5h-.3l-1-1.5-.1.5.7 1.2-1.5-.1-.4.4v2.5l-1.8-.6-.3.3v-.1l-.4.4s-.4 1.4-.3 3.1v.1a5 5 0 0 1-2.4-1.3l-.4.3s-.3 1.4 0 3.2c-1.3-.3-2.5-1.5-2.5-1.5l-.5.5.7 4.7h-.7c-1.4 0-2.3-1.3-2.3-1.3l-.4 1s.6 2.7 2 4l.4.2c-1.3 1-2.8 1.2-2.8 1.2v.9l2.2 1.5-1.6 1 .2.5 1.8-1.3 1.8.5v-.5l-1.5-.3.1-.1c.5-.4 1.4-1.8 1.4-1.8v-1s-.5 0-1.1-.6c1.8-1.2 1.9-1.8 1.9-1.8l.4-.6s-.7-.3-1.1-1.2l2.9-.7.2-.2s-.7-1.2-1-2.6l3 .6.4-.4-.5-2.4c1.8 0 3.2.2 3.2.2l.3-.3s-1-1.9-1-3h4l.3-.5s-1.4-1-1.7-1.5m-10.5 15.5s-.5 1-1.4 2l-.2.2-.5-.2q-1.5-1.1-1.4-1.3l2.5-1.6zm.9-3.2-2 2-.4-.5c-.8-1.2-2-2.1-1.8-3.8 0 0 .7 1.2 2.2 1l1-.1c.4 1 1 1.4 1 1.4m2-2.5-2.7.7-.1-.5c-.5-1.6-.5-4-.5-4s1 .8 2.6 1.2zm-.5-3c-.2-1.4.1-2.9.1-2.9s.8.8 2.3 1q.2 2.2.3 2.1zm5.8-2.2s-1 .4-2.8.1v-3.5l2.3.7zm0-3.1h-.2V205s1 .3 1.7.2c.2.4 0 .5.5 1.2l1.1 1.3s-2.3.2-3.2 0zm-7.6 18.6-.1-.5s-1 .7-1.2 1.4l-.3-.1-2-.8.2.4 1.8.8h.2l-.5 1.4.2.3.5-1.7 1.2.1-.2.8-.4 1.5.5.3h2l-.3-.4-.7-.1h-1.1l.3-1.2.3-.8-.3-.7-1 .2zm-11.3-1.3c1.3 0 2.3.9 2.3.9v-.6s-1-1.4-2.1-1.4-2.5 1.2-2.5 1.2v1.2s1-1.3 2.3-1.3m13.3 19.4c-1.3.6-2.7.6-2.7.6l.8-1.5c2.5-.8 3-2.4 3-2.4l-.2-.7s-.6 1.6-2.6 2.4c.4-1.2.7-3.2.7-3.2l-.7-.2s-1 1.3-2 1.6a8 8 0 0 0 .8-2.7l-.3-.5s-.7.6-1.7.8h-.6c.6-.8 1.7-3.2 1.7-3.2l-.2-.5s-.8 2.1-1.7 3.2l-.3.4c-1-.3-2.2-1-2.2-1l.1.3s.8.6 1.8 1l-1.3 1.2v1l3 .4c-1 1.6-2 2.1-2 2.1l.5.7s1.3 0 3.7-.6q-1 1.8-1.2 1.8c-.2 0 2.2.2 3.7-.6s2-1.6 2-1.6l-.4-.4s-.4 1-1.7 1.6m-6.9-4 1.2-1.5c1.6.3 2-.1 2-.1s.3.8-.6 2.3c-1.1 0-2.6-.8-2.6-.8zm1.4 3 1.3-1.6.3-.3c1.5 0 2.3-1.3 2.3-1.3s.2 1.2-.5 2.7c-1.9.7-3.4.5-3.4.5m-1.9-9.8c1.5 0 3.3.7 3.3.7l-.2-.7-2.9-.6a4 4 0 0 1 1.6-1.6l-.5-.3s-.6.1-1.4 1.5l-.2.4h-.3a5 5 0 0 0-2.4.7l.2.4s1.1-.5 2.3-.5l-.7 2.4.3.6zm-3-6.2-.3-.7s-1.5-.6-2.7 0c-1.1.5-2 1.9-2 1.9l.5.9s.8-1.5 1.9-1.9 2.6-.2 2.6-.2m3 2.4-1-.6s-1.7.5-2.2 1.1-1.1 2.1-1 2.5q.5.7.7.7c.2 0 .3-1.5 1.1-2.3s2.4-1.4 2.4-1.4m-3.9-.5a5 5 0 0 1 2-1l-.7-.5s-1.5.2-2.2.9l-1.8 2.1.9.9s1.2-1.8 1.8-2.4m5.2-44.7c.8-1 1.6-1 1.9-1h.6l-.8 2.5c-.2 1-.7 1.2-1 1.9s-1.1 1.8-1.2 2.8q.1 1.5.5 1.7c.3.1.8-.4.7-.7 0-.3-.3 0-.4 0q-.2 0-.3-.9c-.1-.6.7-2.2 1-2.8s1-1.1 1-2l.7-2.5-1.3-.3q-1.1 0-1.9 1.2c-.4.6-1.7 1.1-1.7 1.1s1.4 0 2.2-1"/>
+ <path fill="#78732e" d="M285.2 194.5h-2.5l.7 2zm-3-.1-.5-.4-.3-.3-.9.5-.5 1.9.3.3 2-2zm-.3 5-1.8-2.7-1 2.2.5.2 1.2.2h1.1zm7.4 44.7a9 9 0 0 1-4.8 1.5 7 7 0 0 1-3.4-1 4 4 0 0 1-1.5-1.7q-.8-1.7-1-4-.3-2-1.1-3.6c-.8-1.3-2.4-2.1-3.8-3.3a7 7 0 0 1-2.8-5.2v-.8q.1-2.5 1-4.5c.9-2 1.2-2.5 1.2-3.5v-.5q-.6-1.1-1.5-1.9c-.9-.8-1.2-.8-1.2-.8l-1-.2-.1.3 1 .2v-.1.1l1.3 1q.9.7 1.1 1.5v.4q-.1 1.4-1 3.3a12 12 0 0 0-1.2 4.7v.8a8 8 0 0 0 3 5.5c1.5 1.1 3 2 3.7 3.2q1 1.9 1.3 5 .3 1.3.8 2.5c.5 1.2.9 1.5 1.6 2a7 7 0 0 0 3.7 1c2.7 0 4.9-1.6 4.9-1.6z"/>
+ <path fill="#78732e" d="m287.2 239.2-1.3.4q-.8 0-1.7-.8a4 4 0 0 1-1.2-2.3q-.1-1.3-1-3.3c-.5-1.5-2-2.6-3.5-3.7-1.3-1.1-2.6-2.2-2.9-3.4v-.7q.1-1.5.8-3.1a11 11 0 0 0 .9-4.8c-.2-2-1.7-3.5-3.2-4.5l-2.8-1.4-.1.3h.2c.5.3 1.8.9 3 1.8q2.1 1.4 2.6 3.8v.8q0 2.2-.9 3.9c-.9 1.7-.9 2.2-.9 3.2l.1.8c.3 1.3 1.6 2.4 3 3.6 1.5 1 3 2.2 3.5 3.5q.8 2 .9 3.2.1 1.4 1.2 2.5 1 1 2 .9l1.4-.4z"/>
+ <path fill="#a8ac71" d="M296.4 231.6s1.7.4 1.6 1.8a13 13 0 0 1-.8 3.4l-2.4-2.2 1.3-1.2.5-.7z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M266.4 214.5s-1.7.6-2.1-.1c-.4-.8-.2-1.4-.2-1.5s-1-.3-1-1.3c.1-1 1.4-.9 1.6-.9s.4-1.5 1.3-1.4c.8 0 1.2 1 1.2 1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M268.3 215s-1.5.8-2 0c-.4-.7 0-1.6-.1-1.8-.2-.1-1-.4-.9-1.3.2-.9 1.1-.6 1.4-.8.3-.1.6-1.4 1.5-1.2.9.3 1 1 1 1l-1 4.1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M270.8 215.3s-.5 1-1.5.8-.7-1.7-.9-2c-.1-.3-.9-.5-.8-1.4.2-1 1.1-.9 1.5-1s.7-1.6 1.4-1.4 1.3 1.1 1.2 1.5c0 0-1.5.5-1.7 1.5s.8 2 .8 2z"/>
+ <path fill="#af7029" d="m293.7 231.2-2.2-2.6c-.9-1.3-2.3-2.7-2.3-2.7l-2.2-1.1-1.4-2.4-.2-2.8.6-1.6.8-1.2s-4.6 1.7-2.2 10.5c1 3.8 3.5 4.3 3.5 4.3l4.3-.3h1.3z"/>
+ <path fill="#816c2a" d="M291.6 201.7q.5 0 .8.4l.2.6v.4c-1.6 3.4-4.8 5-7.8 7a14 14 0 0 0-3.8 4 12 12 0 0 0-1.6 6.8c.1 5 2 7.8 4.2 9.3a10 10 0 0 0 5.2 1.5h.4l1.4-.1 3-.2 1.8.1.9.4.2.5q0 .6-.6 1.2l-1 .7.2.3 1-.8q.6-.6.7-1.4 0-.3-.3-.7t-1.1-.5l-1.8-.1c-2 0-4.5.3-4.5.3v.2-.2h-.3a9 9 0 0 1-5-1.5c-2.1-1.4-4-4-4-9v-.4q0-4 1.5-6.3c1.4-2.4 3.7-3.8 6-5.3a14 14 0 0 0 5.5-5.7v-.5l-.2-.8q-.2-.4-1-.5z"/>
+ <path fill="#fff" d="M297.8 232.7s-1 2-1.4 2c-.2 0 1 .3 1.3.8l-.3.5s-1.2-.9-2-1v-.6l1.1-.7a4 4 0 0 0 .9-1.7z"/>
+ <path fill="#fcca3d" d="m302 234-2.7.8-1.3-1s0-1-.5-1.5l-1.6-1c-.6-.2-2.5-.2-2.5-.2l-5-5.3 2 .2 2.8-.4 2.7-.2 1.4.2 1.6.4.8.7.8.8.8 1.3.6 1.6.2 1.7v1.9z"/>
+ <path fill="#af7029" d="M302.2 233.8s-1 .3-2.2.3l-2-.2-.2.9-.5 1.3v3.2l2.6.5 1.4-.5.7-3.5z"/>
+ <path fill="#fcca3d" d="M301.5 232.5v1.2l.6.2v-1.2zm-2.5-30-.3-2.1-.8-1.5-1.1-1.5-1.2-1.3-.6-.5-.3-.5-2.9.2-1.4 1.7s3.8 2.8 5.3 5.8a7 7 0 0 1 2.8 1.7l.1-.2z"/>
+ <path fill="#af7029" d="M296.3 205q-.2 3.1-.8 3.7l1.8-2 1.2-2.2a7 7 0 0 0-2.8-1.7q.6 1 .6 2.1z"/>
+ <path fill="#816c2a" d="m300.3 237.9-1.4-1.6q-1.1-1-1.3-1l-.2.4h.1l1.2.8 1.3 1.6z"/>
+ <path fill="#6f5b24" d="M302 235.5s-.3 1-1.3 1.8c-1 1-2.2 1.5-2.2 1.5l2.8 1 1.9-1.7z"/>
+ <path fill="#404118" d="m302.4 237.8-.2.3-.5.5-.4.5.6-3 .6 1v.4z"/>
+ <path fill="none" stroke="#78732e" stroke-width=".2" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3s5.2-5.5 5.8-5.8c.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2.9.7.8 1c-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3s-1.4 1.7-1.5 2.4-.4 1.1 0 1.4 2.1 0 3.5-.6 2-1.5 2.1-1.4c.2 0-.8 1.7-2.3 2.4s-2.5 1.3-3.3 1.2c0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6z"/>
+ <path fill="#ab6d29" stroke="#4d2a15" stroke-width=".4" d="M318.7 170.6s-7-1.3-7 4.5c.1 1.9.5 2.5 2 3 1.5.3 4.4.5 7 2.7s2.7 4 2.7 5.3c0 1.4-.7 2.6-.7 2.6l1.6 7.7 1.6 5.7 4.8-2.7 2.8-8.5-3.6-15.2z"/>
+ <path fill="#4d2a15" d="M325.6 200s2.5-1 3-3c.3-.5-2.4-2.9-2.4-2.9-.1 0 1.3.7 2 1.3q1 1 1.3.8c.2-.1 1.3-2.7.9-3.3s-1.1-2-2.1-2.6-2.4-.6-2.4-.6 1.9-.6 2.8 0c1 .5 1 1 1.1.9.1-.3-.2-2.9-.6-3.7q-.4-1.3-2-1.6c-1.1-.2-2.3-.1-2.3-.1s1.6-.9 2.8-.6c1.3.3 1.3 1 1.4.8s-.6-2.4-1-3a7 7 0 0 0-2.1-1.8l-1.8-.2h-.6s1-.6 2.1-.5 1.3.5 1.4.4q.3 0-.8-.7c-1.1-.7-4.2-2-4.2-2h-3.3s0-.8 1-1q1.3 0 1-.1c0-.3-2.6-.8-2.6-.8H316l-3 .3s.2-.5.7-.9q.6-.5 1.3-.6c1-.3-.6-1.1-.6-1.1l.9-1.3 3.9.3 8.2 4.8 3.9 3.3 2.4 6.2-.7 10.8-5.5 4.5-2.4.3z"/>
+ <path fill="#d2a567" d="M318.4 173.3s-.2-.7-.2-1.7.2-.9.2-.9-2.7-.3-4.6 1.2-.8 4.1-.8 4.1.8-.8 1.9-1.2 3-.3 3-.3c.2-.2-.4-1-1.1-1.1l-2.1-.2s.8-.5 2.2-.4 1.6.5 1.6.5z"/>
+ <path fill="#8f4620" d="m326.7 200.9-1.8.6 1 7.5 7.2 12.1 3.7-.6 1.3-2.3 1 .5c.4.4 1.8 2.8 3 3.3s1.7.2 2.7 1c1 1 4.9 6.6 5 6.8.3.2-.1-2.4-.1-2.4l-1.2-3.4-1.4-2.4-.3-.6h2l1.2.8 2 1.5.9 1.2.5 1.2.2 1 .5 1.6 1 2.3 1.3 2.1.4-.9-.6-2.5-2-6-1-2 1.9 1.2c.4.1 1.8 2.2 1.8 2.2l.9 2.2.6 2 .4 1.7.7 1.9 1-.7-.1-1.3-1-4.2-.4-4.5s.6 0 1.2.7l1.2 2.3.5 4.1.7 3.8 1.2 3.8 1.2 2.4.9 1.3v-2l-1.6-16 .2-.6s.2-.1.8.7c.5.7 1 1.9 1 1.9l.5 2.5.2 1.7.3 3.3.5 3.5 1.6 3.8.9 2 .5-2.4-.8-17.1.4-.5s.9.7 1.2 1.3l.8 1 .6 3.8.4 10.7.4 2.8 3.2-28.2 2-.4.2-.6-1.5-1-3.2-5-2.1-4.9-3.8-7-6.6-8-5.2-4.3-1.9-1.3.4-1 1-1.7-.1-.1h-.9l-2.2.4-2.2-.7-4.4-3-4.6-2.3-2.8-1-6.6-1.6-6.6-1h-3l-2.6.5s-1.4.6-1.8 1.5-.5 1.4-.4 2.6c.2 1.3 1 1.9 2.8 2.7 1.8.7 6.2 3.6 6.2 3.6l2 2.1.8 1 .2.8 1.4 11.1-2.8 6z"/>
+ <path fill="#ab6d29" d="M333.8 218.2s1.2 2 2.9.5c1.7-1.6-.8-6-.7-6.3 0-.3.7-.3.7-.3l1.3 2.2s.7 1.3.4 3.2-2.1 3.7-2.1 3.7l-2.2-.5z"/>
+ <path fill="#4d2a15" d="m375.3 244.2-1.6-4.5-.4-3.5c0-.6-.3-7.9-.5-9.3 0-1.4 0-3-.2-3.1l-1.6-2.2-.7-.7.5-.3s.6.6.7.3q.3-.7-.6-4.5c-.7-2.5-3.9-8.3-3.9-8.3l.4.2.9 1 1.8 1.5 4.1 1.5 2.2.3 1.4 2.9s1 4.9 1 7.4q.2 3.4-1.2 7c-1 2.4-1.2 10.3-1.3 11.5-.1 1.3-.6 2.5-.6 2.5l-.5.3z"/>
+ <path fill="#8f4620" d="M375.3 231.2s.8-1 1.2-2.4.5-12.4-.8-13.7a10 10 0 0 0-4-2.3c-.2 0 1 3.5 1 3.5l.8 1.4.6 1.8c.1 1 .9 3.1 1 6z"/>
+ <path fill="#4d2a15" d="M369.3 238s.5-5.1.3-9c-.3-3.7-.6-4.2-1-4.9a32 32 0 0 1-2.5-6.3c-.9-3.2-1.5-5.6-2-6.2s-1.7-2-2-1.6-.3 1.1-.3 1.1l-1.5-.4-.4-1 .5-1.6v-.7l-.3-1.1 2 1.6 4.2 2.8 2 8.6 2 5.3.2 9-.2 8-1-3.5zm2.4-24.7s1 1 1.7 1.4 1.8 1.1 1.6 1.2l-2-.8-1.2-.8v-1z"/>
+ <path fill="#4d2a15" d="M363.7 236s.8-1.8.7-4.1a49 49 0 0 0-1.6-8.6c-.4-.7-2-1.7-3.5-4.8s-1.3-3.8-2.3-5c-1-1-2-2.4-2-2.4l.3-3.3 3.6 1.8 1.6.8 1.8 8.7 1.6 2.5.7 3.5.9 8 .4 6.6-.2.5zm-4.2-3.7s.1-2.5-.5-4.8q-.9-3.5-1.9-4.8c-.7-.7-2.5-2.6-4.1-5-1.6-2.5-3.9-5-3.9-5v-3.3l2 1.5 2.4 1.2 1 3.7 1.2 2.7 1.8 2.4 1.2 1.1.7 4 .4 2.3 1 3.2-.4 1.7zm-3 0-1-.9s.6-.6.3-2q-.4-1.8-1.2-3.7l-1-2.3-4.5-4c-1-1-2.7-2.6-3.7-3.3l-1.8-.8-.5-4s1.3 1.8 2.1 2l2.1.8 2.8 5 1 1.3 2.6 2 1 2.2.9 2.5 1 3.4.1 2zm-5.5-1s-1.7-2-2-3.2c-.2-1.2.2-1.2-.3-2.6s-2.3-3.5-3.7-4.6c-1.4-1.2-3.4-2.8-3.3-3.8q.3-1.2.4-1l.8.8 4.5 4.7 1.4 2.5 1 3.1.7 1.5.7 1.8zm16-23.3s3.1 3.8 4 .3c.3-1.6-1.2-4.6-1.2-4.6s-2.8-5-3.8-6.2l-5.7-7.3-3.5-1.6 1.2 2s2.6 2.6 5.9 8.4c3.3 5.7 2.7 8.9 2.7 8.9zm-17.8-23s6.1 5.2 10 10.8 5.5 9.4 4.7 10.2c-1 .7-3.4-.4-4.4-2s-1.8-4.4-5.5-8.6-5.5-4.8-5.5-4.8l-2.7-4.3zm-3.2 12.5s3.6 3 6 5.4l3.4 4.2 1.4 1.4s-.9-1.5-.4-2 1.1-.3 1.1-.3l-11.5-12zm-.7.3s1.2 2.3 3 4.1l4.1 4 .8 2.9s-5.2-4-5.2-3 1.2 3 1.2 3l-1.6-1-2.2-3.1-1.3-2.8-1.5-3.8z"/>
+ <path fill="#4d2a15" d="M329.5 210.2s2.7 2.4 4.2 0c1.5-2.3.3-5 .3-5s3.9 5.6 5 .3c.2-1-2.4-4.6-2.4-4.6l1-.9 1.9 3.3s1.8-.8 1.8-3-1.9-5.3-1.9-5.3l1.8 2s3.6 0 3.7-2c0-2.2-3-4.5-3-4.5s2.4.1 2.4-1.3-3.4-2.4-3.4-3.3 1-2.4 2.5-1.5 3.5 1.4 4.4-.2c.8-1.6-.1-2-.1-2l-2.1-.4-3.4-1.8-2.7-1-2.8-.4 1 2 .8 5.8v2.6l.5 5.8-1.4 4.7-.7.9-.5.6-1.2 2.6-1.6 1.8-2.2 2.7z"/>
+ <path fill="#ab6d29" d="M348.8 220.9s-.7-1.7-2.2-2.9a8 8 0 0 0-3.8-1.2l4 4.2zm5.6 1s-1.3-2.6-2.8-4.2-2.5-3.6-3-3.6h-.6l.4 3.3 2.7 2.7s2.6 2 3.3 1.8m4.6-.2s-.6-3-2.2-6c-1.5-2.8-3.1-4-3.1-4l.4 3 1.2 3 2 3zm3.8-1.7s1-6.2 0-8c-.9-1.6-2.7-2-2.7-2l-.6 1 .6 4.3 1.5 3.4zm3.7-10.3s.9.4 2 2.5a40 40 0 0 1 2.6 8.6c0 .3-.5.2-.7.2-.2-.1-3.9-6-3.9-6l-.6-5.4z"/>
+ <path fill="#d2a567" d="M340.4 216.8s2-.4 2-1c0-.8-2.4-2.2-2.2-3.3 0-.5 2 .1 2.1-.3s-2-3.6-1.3-4.4 2.4 3.5 2.4 3.5 1 2 .7 3.2c-1.2 3.6-3.7 2.3-3.7 2.3m4.6-4.4c.1-.3 3.1.4 3.1.2.2-.7-2.7-3-2.7-3s-.6-1.2-.4-1.4 2 .2 2 0c.2-.3-2-3.2-2-3.7s.6 0 .6 0 1.7 1.7 2.6 3.2c1 1.4 1.8 2.6 1.5 4.9-.4 2.5-5 .6-4.7-.2m13.6-4.6s-.5-2-.2-2.3l1.1-.5s-1.6-1-2.4-1q-.9-.2-1 0c-.2.4 1.3 2.4 1.3 2.4z"/>
+ <path fill="#d2a567" d="M349.4 209.4s4.7 1.2 4.9.8-3.7-4-3.7-4-.3-.6-.2-.8 1.7-.3 2.2.1 0 1.2.1 1.5c.2.3 1.7 2.5 2 2.1.2-.3-.4-3-.3-3.3s1.8 1.6 2.3 1.9 3 2.3 3.3 1.4c.3-1 .4-1.1.3-1.7 0-.6.9 2.6-.3 3s-2.6-.4-2.6-.4l-1.1-.8-.6-.7s.7 2.5-.2 2.7l-1.7.2-2-.2zm10.7-3.2s5 3 5.4 2.5-1.2-7.5-1-8.2c.3-.6 4 7.9 2.2 9-1.4 1-2 .3-2 .3l-2.5-1.3zm13.8 12.6 1 .5.7.2-1.4.2-.3-1zm-4.8-16.4.7.3.7.3s-.4.3-.6.2h-.4zm-1.4-2.5s.5.3 1.1-.2q.9-.7.6-1c0-.2-1-.2-1.4-.5q-.4-.4-.3-.6h-1.1l-.4.1zm4.3 14.4s1.5 1 2 1 1.1.5 1 .6c0 .1-1.2.2-1.8-.1q-.8-.3-.7-.1zm-8.1-22.5h1.2c.2.2 0 1.2-.3 1.5l-1 .5-1.6-2.2zm-7.1-6.4h1.5q.8 0 1.5.6c.4.3.9 3.3.6 3.8-.2.6-3.6-2-3.7-2.1 0-.3-1.5-2.5-1.5-2.5zm-3.2-1.4s2.5.2 2.2-1.3a3 3 0 0 0-1.3-2.3l-2.9 2.1zm-6.5-2.8s.7.4 1.4 0c.7-.2 2.6-2.7 4-3s1.7-.3 2 0c.2.4 0 1.8-.2 2.2s-4.4 2-4.4 2l-1.5-.1-1.3-.5zm-.7-4.5c-.7-1.4-1.7-2-2.2-1.9-.4.1 1.4 1.5 1.7 3.5q.3 3.1.2 3.4l.8.1.2-.7.1-.5v-.5l-.1-1-.2-.9-.2-.6zm-5.8-2a15 15 0 0 0-5.5-3.7c-.2 0 4 2.5 5 4 .9 1.7.9 3.9 1.3 4.2s.8-.2.9-.2.3-.5.2-.7l-.2-1-.7-1-.4-.8zm-5.5-2.3c-2.4-2-6.6-3-10-3-3.5-.2-5.3.2-4.8 2s2 2.8 5 2.8c2.9 0 3.6-.3 5.2.2a10 10 0 0 1 3.6 2c.5.5-1.1-1.5-2.6-2.6l-2.5-1.7c-.1 0-.3-.7 1.7-.4s4.7 1.6 5.5 3.3.6 2.6.6 3 .7-.2.7-.2l.3-.9s0-.6-.3-1.4c-.4-.7-.5-1-1.4-2-.9-1.1-1-1-1-1zm-9.6 28.5c1.5 0 4.8-2.8 5.2-6.7s-1.9-11.9-2.5-12.7c-.5-.9 1-.4 1.7.4a25 25 0 0 1 2.5 10.6c0 4.2-.8 5.3-3 7.5-2.2 2-4 1.8-4 1.8zm5.1 11.6s.7 1 1.6.6c1.5-.5 3.8-1.7 3.8-3.8 0-1.4-1.8-2.7-1.9-3.2v-1l1.6.4.5 2.2s.6.7 1.3.4c.6-.2 2.5-1.6 2.2-3-.3-1.2-2-2.9-2.2-3.5v-1.2l1.6.2.4 2s.4.6 1.3.4 2.4-1.7 2-2.5l-1.5-2.6v-.9l.5.4s.6.2 1.8-.1c1.1-.4 2.3-1.2 2.3-2s-1-1.6-1-2v-.6h.8l1 1.2.1 1.4-.3 1.2-1.4 1.6-1.4.6h-.4l.8 1.4-.2 2-1.3 1.2-1.7 1-.1 1.9-1 2-2 1.2h-.7l-.2 1.2-1.4 2-2.3 1.5-1.7.3-1-1.4z"/>
+ <path fill="#d2a567" d="M343.4 191.4s4 1.1 3.8-1.4c0-1.3-3.8-4.5-4-5s-.2-1.3-.2-1.3l1.9 1.8s2.5.6 3.2-.9c.7-1.4.1-2.3 0-2.3l.6-.1 1.1.2-.1 2.2-1.3 5.5s.3 2.2-1.4 2.3c-1.7.2-3.6-1-3.6-1m3.7 29.5s0-1.1-.8-2c-.9-.7-2.5-1.4-2.8-1.6l2.8 3.5zm5.6.2s-2-2.4-2.3-3.3c-.5-.8-1.5-2.6-2.3-2.7-.8 0 .8 3 .8 3l3.2 2.9zm5.4 0-2.1-4.2c-.4-.9-1.3-3.4-2.3-4.1s.1 1.1.1 1.1l1.1 3.3 1.9 2.9zm3.9-2.4s-.1-2.7-.5-4.6c-.3-1.8-1.7-3.4-1.8-3.3v3.3zm8.1 2-2-4.7c-.5-1.6-1.8-4.1-2-4.2l.4 3 1.7 4.7zm7-8.5s-1.2-1.2-3.9-2.3-5.4-1.2-5.4-1.2l.3.4 1.3 1 2.8 1.5 3.7.9 1.3-.3z"/>
+ <path fill="#202020" d="M348.2 213.8s0 2.4 1.3 3.8c1.2 1.5 4 4 4.6 4.6s1 3.4 1.9 5.8 1 4.4 1.4 5.1 1.1 1.8.5 1.7q-.8-.2-1.4-1.7c-.3-.9-.2-.9-.2-2 0-1.3-1.8-7.5-2.7-8.1-.9-.7-4.8-4-6.4-6.3-1.5-2.3-1.2-2.8-1.2-2.8z"/>
+ <path fill="#202020" d="M354.6 229.3q-1-2.7-1.2-4.3a16 16 0 0 0-4.4-4.2c-.6-.3-1.9 0-2.4-.3l-3.7-4s-.5.5-.3.6c.1.1 3.4 3.7 4.6 4.8 1.2 1.2 1.9 3.7 2.7 5.7s.5 1.6.6 2.5q.3 1.5 1.3 1.5t.6-.4a10 10 0 0 1-2.2-3.5c-.7-1.7-1.5-4.9-2.5-6l-.3-.3 1.3-.2c.8 0 4.1 3 4.4 4 .3.8 0 1.2 1.4 4.2s2 3.7 2 3.7h.2s-1.2-2-2-3.8zm-5.2-19.9s2.5 1.5 3.2 1.7l1.2.3s.4 4.4 2.1 6.8c1.8 2.5 3.2 3.4 3.2 3.4s0 4.8 1.4 8 1.5 7.3 1.2 8c-.3.6-1.4-2-2-4.3l-2-6.2a13 13 0 0 0-2.5-4.4c-.8-.7-.2-.6.3-.2s1.7 2 2.5 4.5 1.1 5 1.5 5q.8 0 .8-.9c0-.4-.6-1.8-1-4.1a17 17 0 0 0-1.2-4.7c-.4-.6-1-.7-2.4-3.4a20 20 0 0 1-2.5-5.3c-.2-1.2 0-1-.2-1.3-.2-.1-.4 0-1.6-.6-1.1-.6-2-2.3-2-2.3"/>
+ <path fill="#202020" d="M355.7 208.5s1.4 1.2 2.3 1.5 2 .4 2 .4-.3 4.2 1.3 6.9 3.3 4.2 3.3 4.2.3 1 .8 6.8l.7 8.3c.1 2.3.2 10.6-.1 10.3-1.3-1-.2-5.4-.9-7.3s-1.6-2.1-2.8-7.4c-1.2-5.2-.4-6.4-1.3-8.3s-2-2.2-2-2.2 1.6.4 2.3 2 .7 6 1.3 8.2c1.2 4.9 2.9 7.4 2.9 7.4s-.4-6.2-.8-9.7-.5-6.4-1.1-7.7c-.7-1.4-2.1-2.4-3-4.2s-1.1-5.3-1.5-6.2-.6-.6-1.2-.8c-2-.8-2.2-2.2-2.2-2.2"/>
+ <path fill="#202020" d="M360.1 206.2s1.3 1.5 3.1 2.6c1.8 1 2.8.7 3 1 .3.2-.3 3.8 1.6 7.2s2.6 3.5 2.6 4l.6 13.9c.3 3.4.5 14.8-.9 14.8s-.1-8.5-.8-10.4-.7-1.4-1.3-3-.7-7.8-1.8-11.5c-.8-2.8-1.6-3.2-1.6-3.2s1.4.7 2 3 .8 10 1.5 11.1c.8 1.3 1.8 2.8 2 4a157 157 0 0 0-.4-15.6c-.3-1-3.5-6.6-3.7-9.7-.3-3.2-.4-3.5-.7-3.7s-1.1 0-2.6-1.5c-1.5-1.4-2.6-3-2.6-3"/>
+ <path fill="#202020" d="M367.3 208c0-.3 1 1.7 3.7 2.8 2.9 1.2 5.6 1 6 1.3.3.3 2 4.5 2.1 10.2s-1 5.1-1.8 10-1 14.8-1.5 16.3c-.2.5-.5.8-.8 1.7-.3 1 .2 2.8-.7 2.8s-1-1.4-1-2.1 1-3.5 1-6.2-.6-3-1-6.2-.4-13.5-.8-14.5c-.3-1-2.1-3.1-2.1-3.1s1.9 1.2 2.4 2.6c.4 1.3.5 12.7 1 15s.3-.5.5-1.8.9-7 .8-10-1.4-9.4-2.4-10.5l1.1 2q.1.3.8.7l1 .5s-.6 0-1-.3l-.6-.4a24 24 0 0 1 1.3 8c.1 5.2-.7 16.4.1 16.5s.7-6 1.5-11.2c.8-5 2-5.8 1.6-9.9s-1.4-8.6-2.3-9.2-3.4-.3-5.6-1.8c-2.2-1.4-3.4-2.9-3.3-3.2m-35.8 5.7s.8.4 1.7 0c1-.5 3.5-2.5 3.5-3.3v-1.6s0 .3.7.4c.8.1 2.8-1.4 3-2.4a8 8 0 0 0-.1-3.1c-.2-.4.6.3 1 0 .4-.4 2.4-1.7 2.4-3s-1.1-2.6-1.1-2.6 1 .2 1.6 0c.5-.1 2.5-1.3 2.4-2.4 0-1.2-.7-3-2.3-3.2 0 0 1.2.3 2.3-.1q1.5-.5 1.5-2.3c0-1.2-2.3-4-2.6-4.2s2.4.8 3-.3q1.1-1.6.7-2.5c-.2-.7-.8-.8-.8-.8s1.2.3 2.8-.5 3-2 3.8-1.9c.8 0-2.3 1.7-2.5 2.6q.1.6 2.3 2l.2.3c.7.3 3 .4 3.3.5.2.2-2.4.1-2.2.3a34 34 0 0 1 5.7 5.4l1 .5 1.3.3h-1.6l3.3 4.7q0 .3.9.8l1.1.2c.1.2-1.4 0-1.3.2l3.3 6s-3-5.3-6.7-9.5-4.7-4.7-4.8-4.4c-.2.4 2.7 4.1 4.3 6.7s3 5.9 3 5.9-3.7-7.8-9-12.6-5.8-5.5-6.3-5.4c-.6.2-1 3.8-.7 4.5s4.2 3.6 7.4 7.5c3.3 3.8 7.5 10.4 7.5 10.4s-3-4.7-8-10-6.9-6.6-7.3-6.5-.4 1-1 1.8c-.6.7-1.8.6-1.8 1s4.2 4.3 5 4.7c.9.5 1.4.3 2 .6l1.4 1-1.6-.5q-1.1-.4-1.3 0a21 21 0 0 0 4 4.6c.6.3 1 .1 1.7.4.8.3 2 1.1 2 1.1s-1.3-.7-2.1-.8q-1.3-.2-1.2.2c.1.4 2.6 3.6 2.5 3.6s-4-4.6-7.3-7.5-4.8-3.6-5-3.5 0 1-.9 1.3q-1.4.3-1.5.7c0 .3 3 3 5 5.4l4 4.5-4.5-4.3q-3.4-3.1-3.8-3c-.2.2-.2 1.3 0 1.6s4.6 5.4 4.4 5.5c-.1.2-5-6-5.4-6-.3 0-.5.7-.8 1s-1.8.4-1.8 1c0 .4 7 7.3 6.9 7.5 0 0-5.8-5-6-4.7s2.4 5 2.2 5.2c-.1 0-3.4-5-3.7-5s-.2.6-1 1.3c-1 .8-2 .4-2 .8 0 .3 4.8 5.7 4.7 5.8-.2.1-5-5.1-5-4.8q-.3 0-.2.7c.3 1.3 1.4 3.6 1.3 3.8 0 0-1.6-3.2-2-3-.4 0-.4.7-1.2 1.1s-1.3.4-1.3.7.8 1 1.2 1.7.7 2.4.7 2.4-.5-1.4-1.1-2.3q-1-1.4-1.9-1.5c-.9-.1-.8.5-.8.5z"/>
+ <path fill="#202020" d="M377 212s1.5 0 1.7-.4c.2-.3-.6 0-2-1.6s-5-12.1-9-17.4c-6.6-8.7-12.7-12.7-12.7-12.7s7.3 4.2 13 12.4c5.6 8.4 7 14.9 8.6 16.6s3.2 2 3 2.5q0 .7-.9 1l-2 .1zm-48-2.2.3.1c.3 0 2.3-1.9 2.2-2.5 0 0-1-.3-1.6-1-.7-.8-.9-1.9-.9-1.9s.7 1.3 1.2 1.6q1 .7 1.8.3c.3-.2 3.2-2.4 3-3.2 0 0-.9 0-1.8-.6s-1-2-1-2 .6 1.1 1.5 1.5q1.4.5 2 0c.2-.3 2-3 1.8-3.7 0 0-1 0-1.8-.5s-1.3-2.2-1.3-2.2.6 1.3 1.7 1.5c1.1.3 2-.4 2.2-1.2s.8-3.7-.2-4.5c0 0-1.4.5-2.4 0s-1.4-1.9-1.4-1.9.9 1.2 2 1.4q1.7 0 1.9-1a6 6 0 0 0-.1-3c-.4-1-1.1-.8-1.3-2.2 0 0-.3.5-1.8.5s-2.3-1.6-2.3-1.6 1.2 1 2.4 1a2 2 0 0 0 1.6-1.9c0-.7-.6-1.4-1-2.1-.2-.8-.3-1.7-.5-1.6s-.5.8-2 .6-1.8-1.3-1.8-1.3 1 .7 2 .7q1.3-.1 1.3-1c0-.6-.3-1.7-2.2-3.3l-3.5-2.7a22 22 0 0 0 6.6 5.3s1.7.6 2 0q.3-.9-.5-2.4c-.5-1-2-2.6-2-2.6s1.6 1.3 2.3 2.7c.8 1.3.4 2.2.5 2.6s3.3 1.6 4 1.1q1-.8-.2-2.3l-1-1.8s.7.8 1.2 1.8q1 1.5.8 2.1l-.6.9 2.3 1.3c1 .6 2.3 1 2.5.8q.3-.6.2-2.2c-.1-1-.7-2.7-.7-2.7s.7 1.6.8 2.7-.1 2 .1 2.4 1.1.5 1.1.5-.6.4-2 0c-1.5-.4-7.7-3.6-8-3.3s2.9 2.3 4.3 3.7c1.5 1.3 2.2 2.8 2.2 2.8s-1.1-1-2.2-1.6-4.4-2.3-4.7-2 1.3.5 1.4.7c.1.3-1 1.3-1 1.8s4.7 3.7 4.5 4c-.1.4-1.2 1.3-1.4 1.2-.1 0-2.5-1.8-2.5-1.6s1.4 1.5 1.4 1.7c0 .3-1 .8-.8 1.4s2.6 2.6 2.6 3.3-1.4 1.3-1.1 1.7l1.5 2s-1.4-.9-1.8-1.4-1.3-1.5-1.5-1.3-1 2-1 2.5c.2.4 1.3 1 1.5 2.3.2 1.1-.2 2.4-.3 2.4s-1.6-2-2-2.1q-.4 0-.9.6c-.5.6-1.2 2.1-1 2.4 0 .3 1.6.7 1.6 1.9a3 3 0 0 1-1 2.3l-2.1-2.4c-.2 0-2.2 2.3-2.3 2.6 0 .2 1.4 1.3 1.2 1.7-.3.4-1.3-.2-1.8.1l-1.7.7c-.2 0-.5-.6-.5-.6"/>
+ <path fill="#202020" d="m355 180 .5-1c.3-.3 1.5-1.7 1-2-.4-.2-2 .3-3 .2s-1.7.2-4.6-2.3c0 0-9.3-6.4-23.6-7.3-4.6-.2-6.6 1.4-6.8 2.2 0 .2 1.2-1.8 5.7-1.7 2 0 16.5 1.1 24 7 .4.3 2.9 2.7 5.2 2.4 2.3-.2 2.8-.5 2.7-.2 0 .4-.7 1.2-.9 1.6l-.3 1.1zm-25 2v-.2c-.2-.4-1.1-1.7-2.7-3.1a37 37 0 0 0-8-4.3c-.3-.1 6 2.9 7.7 4.5z"/>
+ <path fill="#d2a567" d="M330 192.2s-.4-.6-1.7-1.4l-2.5-1.1 3 .7a5 5 0 0 1 1.1 1.8zm-.8-5.3s-.4-.6-2.1-1.2-2.2-.5-2.2-.5 1.6-.7 2.8 0a3 3 0 0 1 1.5 1.6zm-1-4.5s-.4-.8-2-1.3q-2.4-.8-2.6-.7c-.2.1 1.6-.4 3.2.2 1.5.6 1.4 1.8 1.4 1.8m-2-2.8s-.4-.6-3.3-1.3c-3-.7-4-.7-4-.7s4.1-.4 5.2.1 2.2 1.9 2.2 1.9zm-5.3-3s-1.8-.6-3.5-.7-4.4.1-4.4.1 5-.8 6.3-.5c1.4.3 1.6 1 1.6 1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M304.5 238.4s.9 1.6 2.6 1.6c1.8.1 3.1 2.6 3.1 2.6l-1.9 1.9-4.6.2-1.5-2.4zm0-1.6c.2-.3-1.3-3.3-2.4-3.8s.4 1 .2 1.6-.4 1.4-.3 1.5c0 0 .9 1.4.4 2-.4.5 2.2-1.3 2.2-1.3z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.8 241.4s.8.4 1.4.2c.7-.2 1.3-.9 1.3-.9m-3.6-.5s2.6-1.9 2.4-2.9-.7-1-1-.9a7 7 0 0 0-2.1 1.7c-.1.3.7 2.1.7 2.1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301 241.5s.6 1.3 1.4 1.3 2-.7 2-1.2c.1-.5-.8-1.5-1.3-1.7-.6-.3-1.9.4-1.9.4z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.4 239.8c0 .4-1.7 1.2-2.3 1.2s-1.6-1.3-1.2-1.5l1.5-.4c.4-.2.5-.8.7-.8.3 0 1 .1 1.1.5q.4.6.2 1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301.8 240.9s-2.6 3.4-3.7 3.3c-1-.2.5-5 .5-5l1.2.6q1.4.3 2 1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297.2 238.4s3.3.6 3.4 1.1-1.5 1.3-2.5 1.3-.9-2.4-.9-2.4z"/>
+ <path fill="#202220" d="M289 243.4s.5 1.6 1.9 1.7 2.8-1.5 2.8-1.5l-3.4-1.3z"/>
+ <path fill="#4b4139" d="m289 243.4.4.9q.4.7 1.5.9h.1c1.4 0 2.7-1.6 2.7-1.6l-3.4-1.4zl1.3-1 3.3 1.3v-.1l-.2.2c-.4.4-1.4 1.2-2.4 1.2h-.1a2 2 0 0 1-1.4-.8l-.3-.6v-.1l-.1-.1z"/>
+ <path fill="#202220" d="M290 243s.5 1.2 2.4 1.2 3.3-1.5 3.3-1.5l-3-2.3z"/>
+ <path fill="#4b4139" d="M290 243s.5 1.2 2.4 1.3c2 0 3.4-1.5 3.4-1.5l-3-2.5-3 2.7zl2.8-2.5 2.9 2.3v-.1a5 5 0 0 1-3.2 1.4 3 3 0 0 1-2-.6l-.3-.4z"/>
+ <path fill="#4b4139" d="M290.2 243.3s.9.6 1.8.7 2.2-.3 2.2-.3l-1.1.4-.8.1-.8-.1-.6-.3zv-.2z"/>
+ <path fill="#202220" d="M292.4 241.6s.8 2 2.6 1.8c1.7-.2 1.7-1.2 1.7-1.2l-2-2.8z"/>
+ <path fill="#4b4139" d="m292.4 241.6.5 1q.6.8 1.8 1l.3-.1q1.2-.2 1.5-.7t.3-.6l-2-3zl2.4-2.1 1.9 2.7c0 .2-.3 1-1.8 1.1h-.2a2 2 0 0 1-1.7-.8l-.4-.6v-.2z"/>
+ <path fill="#4b4139" d="M292.6 242s1 1.3 2 1.3a3 3 0 0 0 1.5-.4v.1l-.5.3-.8.1h-.8l-.7-.5zm-3.2 2s.8.9 1.5.9a5 5 0 0 0 1.9-.6h.1l-.2.1-.8.4-.9.3-.7-.1-.6-.4-.3-.4z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297 238.3c.8-.2 2.4 2 2.4 3.2s-.5 2.7-1.3 2.7-2.6-1.7-3-2.5q-.8-1.2-.5-1.9c.3-.4 2.4-1.5 2.4-1.5zm-8 .2s-1.4-1-1.9-.5-.3 2.3 0 2.6c.4.4 2-.8 2-.8z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M288.8 239.7s-1.8.2-1.8 1 .9 1.6 1 1.8c.2.1 1.8-.7 1.8-.7z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M289.5 241.1s-1.8.6-1.8 1.2.8 1.7 1.3 1.7 1-1 1.2-1.3c.3-.2-.7-1.6-.7-1.6zm.8-5.1s-.3-.5-1-.2c-.8.3-1.6 1-1.5 2.3.1 1.1.6 2 .6 2l2.7-1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M290.5 238s-2.2.8-2.3 1.7q0 1.4 1 2c.7 0 2.6-1.8 2.6-1.8z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M292.5 241.7s-2.2 1.5-2.5 1.5-1.2-1.2-1-2 1.7-1.3 2.3-1.6c.6-.2 1.2 2.1 1.2 2.1zm2-8.2s-.7-.6-2-.5-2.4 2-2.6 2.8c-.2.9 0 2.6.5 2.8.5.3 3.3-2 3.3-2l.8-3z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M291.8 240.3c-1-.1-1.8-1.5-1.7-2.3s2-2.2 3-2c1 .1.8 2.5.8 2.5s-1.2 1.9-2.1 1.8z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M294.7 240s-.4 1.2-1.4 1.7q-1.4.5-2-.7c-.6-.8.2-1.2.6-1.6.5-.4 1.7-.7 1.7-.7l1.1 1.4z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M293.2 237.2s-1 .8-.4 1.8 1 1.4 1.8 1.5q1.1.2 1.9-.9c.6-.7 1.5-1 1.4-2q-.1-1.4-1-1.8c-.5-.3-2.2 0-3.7 1.4z"/>
+ <path fill="#202220" d="M296.2 233s-1-.5-1.9 0q-1.3.9-1.5 2.4l.2 2.3s1.2-.4 2-1q1-.8.8-1.1c0-.2-.4-.4-.4-1.2 0-1.4.8-1.5.8-1.5z"/>
+ <path fill="#4b4139" d="M296.2 233s-1.2-.3-1.9.1a3 3 0 0 0-1.3 1.9q-.3 1.1-.1 1v-1.4q.6-1.3 1.6-1.7c.8-.3 1.7 0 1.7 0z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="m328.8 257 1.6-.8 2-1.2.4 2.2-1.8 1.4h-1.5l-.9-.7.2-1z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2h1c1.1 0 1.2-.3 1.4-.3.2.1.5 1.3.5 1.3l-.4.7-1.5.9-1.3-.8-.1-1.8zm12.1-.8s-.3-.5-.9-1l-2.2-1.9v5l2.3-.1 1.1-1.5z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2s-.4-.5-1.3-.4-2 .9-2.1 1.5 0 2.6.5 3q.7.6 2.2.3c1-.3 6.4-3.6 6.4-3.6l-1.4.3c-.7.2-1.4-.1-1.4-.1s-.7.8-1.6 1q-1-.2-1.2-.9z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="m330 258.9-1.2.5-1.3.6.4 1.6 2.3.5 1.4-1.1v-1.6l-1.7-.5zm10.4-1.2-.8-.8-1-.5-1.3 1.5v1l1.2.7.9.2 1.1-.8z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M332.6 257s-1 .4-1.5.8l-1.2 1c0 .2 1.1 1.4 1.1 1.4l1.2.1 2.5-1.7-.2-1.6zm9.5 2-.5-.7q-.7-.6-1.2-.6c-.3 0-1.3 1.5-1.3 1.5v.4l.8 1 1.6.5 1.1-1.2z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="m338 260.8 1.2.2s0 .3.3.5.3 0 .3 0 .2 1.2 1.4 2c0 0 1.4.6 2 .2.8-.4.7 0 .7 0l2-2.4s0-.5-.5-.5c0 0 .4-1.6-1-2-1.2-.2-2.2.2-2.2.2s-1 1.8-1.6 1.6l-.8-.5-.7-.9s-.4.1-.9-.2-.9-1.1-.9-1.1-.7-.1-1-.4l-.5-.8-1.9 1.4s0 .5-1.1 1.3-1.7.8-1.7.8-.4 1.7-1.6 1.4-2-1.6-2-1.6-.9-.2-1.4.6c-.6.7-.9 1-.9 1.7 0 .8.5 1.8 1 2.2.3.3 1.5 1.3 3 .6 1.4-.8.9-2 .9-2l.8-.5c.9-.6 1.8-1.5 2.5-1.7"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M335.8 250.8v3.2s.4 2.9-.2 3.7c-.6 1-2.9.7-3.2 0-.3-.8-.2-3.2-.2-3.2z"/>
+ <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="M333.3 260.5s-.5.8 1 1q.6 0 .9-.4.4-.7.3-.8c-.1-.1-.2 1.2 1.2 1.2 1.4.1 1.3-1.3 1.3-1.3"/>
+ <path fill="#202220" d="M321.2 263.1s-.8-1.4.1-1.9 1.5 0 2.1 0 .4-1.4.3-1.7l-.7-1.2c-.2-.2-3.5.2-3.4 2.3 0 2.1 1.6 2.5 1.6 2.5m5 5.2s-1-1.5-.4-2.4 1-.3 1.2-.4q.5 0 0-1.6-.9-1.4-1.4-1.5c-.4 0-2.3 1.4-2 3.2a4 4 0 0 0 2.6 2.7m18.2-1.8s3.5 1.5 3.7-2c.2-2-1.5-3.3-2-3.3q-.5 0-1.3 1-1.1 1.2-.9 1.6c.3.3 1.3-.3 1.8.8.7 2-1.3 1.9-1.3 1.9"/>
+ <path fill="#4b4139" d="M326.2 268.3s-2.7-.6-2.7-3.3c0-1.8 2-2.6 2-2.6s-1.8 1-1.8 2.6c-.1 2.7 2.5 3.3 2.5 3.3m-5-5.2s-1.6-.3-1.7-2.6c-.2-2.3 3.5-2.2 3.5-2.2s-3.5.2-3.4 2.4 1.6 2.4 1.6 2.4m23.2 3.4s.7.3 1.5.3 1.8-.3 2-1.6c.4-1.3.3-2-.6-3.1-.6-.9-1.2-.8-1.2-.8s.6 0 1 .8c.6.8 1.3 1.6.8 3.1s-2 1.5-2.5 1.5z"/>
+ <path fill="#904720" d="m302.6 192.4-.6-.2.4-1 1.9-.7 1.8-.1 2-.1.8.6 1 2.3-3.6 2.2-.6.2-.2-1-.6-1.4z"/>
+ <path fill="#202020" d="m337 245.5-.3-5.5-14.8 4.6 5.8 5.5z"/>
+ <path fill="#d2a567" d="m309.4 235.9-1.2-1-1.4-.8h-1.1l-.2.3.2.5 1.3 1.6 2.3 1.2.8.7.5.2-1.1-2.7zm-.3 2.3.8.2.9 1 .5 1 .7 1.3.2.8-1.6-.3-4.8-1.5.4-1.2.8-.7.7-.3 1-.2z"/>
+ <path fill="#d2a567" d="M312.2 242.2h.8l.6-.5-.3-1.8.3-5.8-3.9-4.6-.8 2.6 1.1 4.7.9 2.8z"/>
+ <path fill="#ab6d29" d="M309.4 231.7s-.2.4.1 2c.3 1.5.9 4.9 2.2 7.2l-1.3-1.9s-2-4.6-1.7-8.2.7.8.7.8zm2.9 2.9s-.9 1-1 1.9v2.2s0-1 .8-1.3.7 2.3.8 2.6l.5-4.7zm.4 9.6-4.4-1q-3.5-1.5-3.4-2.3c0-.6 4 .1 4.6.2l2.4 1h1l1.9-.8.2 2zm-7.3-.8s1 .8.5 1a4 4 0 0 1-2.3.3l4.2 1 .9-.7z"/>
+ <path fill="#d2a567" d="M304.2 242.2c.2-.2.3.7 1.8.8s2.2-.2 2.2-.2l.7.4.8.2-.7 1.1-2.8-.8-1.5-.8z"/>
+ <path fill="#ab6d29" d="m314 240.3.8 1 .5-2.4v-2.5l-1.6-1z"/>
+ <path fill="#4d2a15" d="m309.7 236.1-1.3-2.1-1.7-3.1 1-1.8 1.3 1.8s-.4 1.3-.1 2.5c.2 1.2.8 2.7.8 2.7"/>
+ <path fill="#d2a567" d="M300.8 244s.6-.9 1.9-1l2.4.2 2.6 1.4.6.9-5-.7z"/>
+ <path fill="#8f4620" d="m314 235 .2 4c0 1 .7 2 .6 2.3q-.2.5-1 .9c-.6.2-2 0-2 0s1.3-.2 1.4-.5-.4-1.4-.5-2.4.1-2.2-.3-2.2q-.5.2-.8.6s.4-3.8.8-4.2 1.6 1.6 1.6 1.6z"/>
+ <path fill="#ab6d29" d="M304.7 243s-.5-.4-.5-.8c0-.3.6 1.6 3.4 1.5 2.8 0 2.6-.2 2.6-.2h1.3s-.3 1.3-.5 1.4l-2.2 1.4-.7.4v-.2l-.3-2.1-2.4-1z"/>
+ <path fill="#8f4620" d="M309.7 236.1s-3.2-3.3-4.3-5.5-.4-5.2-.4-5.2l3 4s-.4.7-.3 2c.2 1.2 2 4.7 2 4.7"/>
+ <path fill="#ab6d29" d="M307.6 248.3c0-.3-.2-1 .4-1.8 2-2.4 6.8-4 6.8-4v2.8l-6.2 3z"/>
+ <path fill="#8f4620" d="M308 246c.3-.1 1.4-1 1.4-1.3q0-.4-2.1-.7c-1.5-.3-2.6-1-2.6-1s1.7 1.4 2.4 1.7q.9.3.5.7zm8.3.7s-.9-1.3-1.2-2.1-.3-2.1-.3-2.2l-1 .7-2 .7s2 0 2 .6-3 1-3 1c0 .1 2.4-.4 2.3.1s-1.2.7-2.5 1.2l-2.3 1-.7.5s.6.4 1.5.3c.9 0 2.9-.5 2.9-.5l3.8-1.5z"/>
+ <path fill="#ab6d29" d="M316.3 246.7s-1-.3-1.8-4.8-.6-5.7-.6-5.7l1.8 1.3 1.7 3z"/>
+ <path fill="#8f4620" d="M316.9 239.3s-.9 2.5-.9 4q-.2 2 .3 3.4c.5 1.4 1.8 2.3 1.8 2.3l.7-.6.3-2 .1-3.4z"/>
+ <path fill="#202020" d="M319.4 242.7s.4 6.3-1.2 6.5c-.7 0-1.9-2.4-1.9-2.5 0 0 1.4 2.3 2 2.1 1-.4.6-6.6.6-6.6zm-3.1 4s-.3 0-.7-.8c-.4-.7 0 .6-3.4 1.8s-4.6.5-4.6.5 1.1 1 4.5 0 3.1-1.3 3.6-1.4z"/>
+ <path fill="#ab6d29" d="M310 238.7s.6.5 1.2 1.7l1 2h.2s-.4-1.3-1-2.2l-2.2-3.1z"/>
+ <path fill="#8f4620" d="M308 246.5s.3-1.1 0-1.4-.7 0-3-.2l-4.2-.9s1.6 1 3 1.4l3.5.8.5.1z"/>
+ <path fill="#202020" d="m308 246.5-.2-.5c-.3-.3-.7.1-3.5-.7s-3.5-1.3-3.5-1.3 1 1 3.4 1.5z"/>
+ <path fill="#ab6d29" d="M309.3 238.2s-2.1.1-2.8.7-1.6 2-1.6 2l1.3.1s-.1-1.2.5-1.9q1.1-.7 2.6-.9"/>
+ <path fill="#8f4620" d="M305.3 234.2s.8 1.2 1.7 1.5q1.5.6 2.2 1.2c.4.4.9 1.8.9 1.8s-3-1.3-3.7-2z"/>
+ <path fill="#8f4620" d="M308.2 235s-.3-.5-1.1-.9-1.4-.3-1.7-.1-.1.2-.1.2l1 1.7.7-.2s-1.6-1-1.3-1.3c.8-.7 2.5.5 2.5.5z"/>
+ <path fill="#202020" d="m316.3 231.1 17-8.7 8 11.1-14.7 4-7.7.6-3.8-2.7z"/>
+ <path fill="#4d2a15" d="m339 235.9 21 18.2-2.3 1.6-5-1.4-10.2-10.1-3.8-3.8z"/>
+ <path fill="#4d2a15" d="m366 250.5-12-9.1-15.3-11.5.4 5.5 17.4 16 5.7 2.7 3-.8 1.4-1.6z"/>
+ <path fill="#803f1d" d="M339 237.6s6 6.9 10.6 10.4 9 7.3 10 6.7c.8-.5.5-1 .5-1l-21.3-17.5z"/>
+ <path fill="#4d2a15" d="m353.8 255.1-2.1 1.7-2.5-1-13-13.2.7-2.5 1.8.3z"/>
+ <path fill="#202020" d="M366 250.5s-1.6 3.8-5 2.9-22-18.5-22-18.5v1.8s18.8 17.3 22.5 18 6.6-2.5 6.2-2.8z"/>
+ <path fill="#803f1d" d="M336.9 240.4s6 7.7 9.1 10.5c3.2 2.9 6 5 7.2 4.8s-.7-1.7-.7-1.7l-9.1-9-4.7-4.6s-1.8-.7-1.8 0"/>
+ <path fill="#202020" d="M338.4 240.4s15.2 15.5 16.4 15.9c2.5.7 6.2-2 6.2-2l-1.3-.7-.2.5s-.7 1.6-4 .9-16.6-15.1-16.6-15.1z"/>
+ <path fill="#4d2a15" d="m344 255.3-5.5-6.4-1.2-2.1-.3-2.7 11 11.1-1.5 1-1.4-.4z"/>
+ <path fill="#202020" d="M354.1 255.5s-1.3 2-3.2 1.6a5 5 0 0 1-2.8-1.7L337.5 245l-.3-1.6s11.7 12.3 13.7 12.8c1.6.4 2.7-1.4 2.7-1.4z"/>
+ <path fill="#202020" d="M348.2 255.1s-.5 1.6-2 1.4c-1.6-.3-2-.9-2-.9l-6.6-7.7-.1-2s6.8 9.3 8.3 9.8 2-1 2-1z"/>
+ <path fill="#b07229" d="M341.3 234.9s6.3 5.4 6.8 5.6c.5.3 2.7.4 2.8.7.2.3-1.4 0-1.5.3-.1.4 3.2 3 3.7 3.1.5 0 3.2 0 3.1.4 0 .3-1.8 0-1.9.4s2.9 2.7 3.4 2.8 3.9 0 3.9.4c0 .3-2.7 0-2.7.5.1.6 4.6 3.4 4.4 3.8s-5.4-3.5-5.5-3.3c-.2.2-.4 1.4-.7 1.6s0-1.6-.2-2.4-3.4-3.1-3.7-2.9 0 1.7-.4 1.7.1-1.7-.2-2.3a16 16 0 0 0-3.6-3c-.4 0-.1 1.3-.4 1.5s-.2-1.5-.6-2-7-6.5-6.7-7z"/>
+ <path fill="#4d2a15" d="M330.5 252.3s0 2.4-1 2.8c-1.1.3-3.1-4.4-3.1-4.4l-.5-4.4 3.1 3zm8.4-1.2V250c0-.6-.3-1.5-.3-1.5l-.2-2.4-.6-1.7-.4-1h-.7l-1.7 1.2-.5 1.6.8 3 .8 2.7 1.3.4 1.5-1z"/>
+ <path fill="#4d2a15" d="M336.8 255.3c.3-.1-.4-3.4-.4-3.4l-2-4.8-.5-1.7-1.5-.6-1 1.2.2 1.9s1.5 3.2 2.2 4.3 2.3 3.3 3 3.1"/>
+ <path fill="#202020" d="M335 245a6 6 0 0 1 1.4 2.6s1.3 3.6 1.1 4-1 .3-1 .3 1.8 1.8 2.3 1.6.3-2 .1-2.4-.7 0-1-.5c-.1-.4-.8-2.7-.8-4.2v-2.7c.2-.3 1.5 3 1.5 4.7l.6.7-.6-3.2-.7-2.3.3-1.5v-1s.6.5.9.5q.5.2.8-2c.2-1.5-.1-6-.1-6l-6.8 9z"/>
+ <path fill="#202020" d="M335 244.3s-.3 2.4.6 4.8l1.3 3c.2.3.2 2.9-.1 3.2 0 0-1.8-4.4-2.4-6.6q-.7-3-1-3.2l-.8-.2z"/>
+ <path fill="#4d2a15" d="M334.4 257c.2 0 0-1 0-1l-.2-2.3-2.4-4.9-2.6-2.3-1.4-2-.2 4s2 4 3.1 5c1.3 1.2 3.3 3.6 3.7 3.5"/>
+ <path fill="#202020" d="M324.7 246s.4 1.1.4 1.8v1.4l1.8 3.5c.9 1.5 1.7 3.1 2.4 2.8s1-1.5 1-1.7c.1-.1-.8 1.3-1.2 1.1a40 40 0 0 1-2.3-6.6l-1-.8-1.1-1.4zm7 5.5-1.7-3.1q-1-1.6-1.4-1.7c-.2 0-.5-2-.5-2s.7 1.3 1.6 1.7q1.4.8 2 .7l.2 2z"/>
+ <path fill="#5c3a1d" d="M327.4 248.3s.5 1.4 1.4 2.7 2.3 2.9 2.3 2.9-1.6-1.6-2.5-2.8l-1.4-2.8z"/>
+ <path fill="#202020" d="M332 246.7s.5-1.2.8-1.3l1.2-.3s-.7-.1-1.2-.8l-1.3-1.3.4 2zm-.4.4s2 4 2.4 5.5c.5 1.3.4 3.4.4 3.4s-.2-1.5-.6-2.7l-2.4-5c-.1-.3.2-1.2.2-1.2"/>
+ <path fill="#4d2a15" d="m334.2 244.4.5-6-.5-2.2-2.7-6s-.1.8-.8.8a6 6 0 0 1-3.1-1.8 9 9 0 0 0-.2 4.8l5.3 9.9z"/>
+ <path fill="#8b441f" d="M323.8 248.3s.8 1 1.3 1c.4-.2.3-2.1-.3-3.2-.6-1-7-9.6-8-10.1s7 12.3 7 12.3"/>
+ <path fill="#8b441f" stroke="#5c3a1d" stroke-width=".1" d="M328.1 244.8c.2.4.6 3.1-.5 3.4-1.5.3-8.5-9.4-9.6-10.7 0 0-4.4-2.8-4.5-3.5s4.7 1 4.7 1l9.5 9z"/>
+ <path fill="#202020" d="M323.8 248.3s-.8-1.3-.9-2.3l-.4-1.9c0-.3-5.2-7.7-5.7-8.2s-2.3-1.4-2.3-1.4l.3 2.4s1.6 3 4 5.7z"/>
+ <path fill="#4d2a15" d="M331.6 247c.7-.3.4-2.7.1-3.5l-4.4-9.4-1.3.4-2.3-1.8-1.4-1.5s.5 2.1.4 3.1v1.6l3.3 5.9zm4.7-5.2 1-1.3-.5-4.4-2.8-9.4s-.7.1-1.4-.3-1.4-1.3-1.4-1.3l.7 5.7 2.9 8 .2 2.3z"/>
+ <path fill="#202020" d="M327.7 244s-2.8-3-3.7-4.5l-1.7-3s-.8.3-1.8 0c-1-.5-2.2-1.8-2.2-1.8s-.8 1.5 3.2 5.6c4.6 4.6 6.2 3.7 6.2 3.7"/>
+ <path fill="#8b441f" d="M334.4 245c1.2-.4 1.1-5.4 0-8.7-1-3.3-2.9-6.2-2.9-6.2s2.3 5.4 2.8 7.5c.4 2.2 0 3.7-.4 3.6s-.4-1.3-1.3-3.4q-1.6-2.8-1.6-2.6c0 .2 3.3 8.8 2.3 8.6s-5.3-9.9-5.5-10.2-.4.4-.4.4 4 12.2 7 11"/>
+ <path fill="#4d2a15" d="m337 221.3 2 4.2.6 4.4.2 3.7s0 7.4-.8 7.6c-1 .1-1.4-.7-1.4-.9l-1.7-8.3-1.7-8.5.6-.6.2-1.2 1.3-.1z"/>
+ <path fill="#8b441f" d="M331.6 247c.8 0 0-2 0-2s-.6 1-1.2.3-1.3-3.1-1.3-3.1l-.5-1.5s-.6 1.6-1.3 1.6-4.6-6.4-4.6-6.4l-.4.6s5.4 11.1 9.3 10.6z"/>
+ <path fill="#202020" d="M329.1 242.2s.7-1.6.4-3c-.3-1.5-2.2-5.1-2.2-5.1s-.6.1-1.4-.2l-2.2-1.2a38 38 0 0 0 5.4 9.5m3.1-2.3s-.5-3.4-2-6.6c-1.6-3.1-2.6-4.1-2.6-4.1v3.5s1.5.5 2.6 2.4c1 2 2 4.8 2 4.8m4.3-5.8s-.3-3.7-.8-5.8l-1.2-5s0-.2.3-.4h.6c.8.3 1.1 2.2 1.1 2.2l-.1-3.1-.3-.5h-1.4s.3 1-.1 1.3c-.3.3-.6-.2-.7-.3l-.2.4.4 2-.1 1.7s.5 2.2 1.2 3.5c.6 1.4 1.3 4 1.3 4m3.3-.5s.6-5.3-.6-8.7-2.2-4.2-2.2-4.2l-.6.6s1.8 3 2.4 5.6zm-5.4 2.7s-.6-4.1-1.3-6.8l-1-3.6-1.1-1s.7 2.7.6 3.6l-.1 1.4s.5 1.4 1.3 2.6z"/>
+ <path fill="#904720" d="M337.2 242.9c1 0 .1-6-.3-7.5-.4-1.6-3-8.8-3-8.8s3 10.3 2.8 10.8c-.3.8-1.5-3.1-1.7-3-.2 0 2.2 6.9 1.3 7-.8 0-1.3-1.5-1.3-1.5l.1 1.5s.6 1.4 2.1 1.5"/>
+ <path fill="#904720" d="M338.5 239.9c.7 0-.2-5.7-.7-8.2l-2-7.5s1.5 3.5 2.3 7.5 1.4 9 .6 9.2c-.8 0-1.2-.8-1.2-.8v-.9s.3.7 1 .7"/>
+ <path fill="#312317" d="M328.8 246.5c0 .4 0 2.4-1 2.2s-2.9-1.9-3.3-3c0 0 2.2 2.5 3 2.4.8 0 .8-2.5.6-3.2 0-.6.6 1.6.6 1.6z"/>
+ <path fill="#d2a567" d="M334.1 219.5s1.4.9 2.4.3a4 4 0 0 0 1.8-3q.2-1.1-.7-2.4c-.7-.9 1 .7 1 2.3s0 4.3-2.5 5c-2.5.5-1.4-.2-1.4-.2z"/>
+ <path fill="#8f4620" d="M332.1 214.7s1.6 2.6 2.2 5q.9 3.3.2 3.3t-.7-.9c0-.6-1.7-7.4-1.7-7.4"/>
+ <path fill="#1e2121" d="m304.1 218 10.6 15.3 13.2-15-8.3-8.6z"/>
+ <path fill="#4d2a15" d="m317.5 208.5-.6 2.4 1.3 4.1 2.2 2.3 2.5 1.7.6-2 .6-2.2.7-.2 1.6.6 1-1.5 1.8-3.1-.4-1.2-.4-.9-2.7-4.6-.9 1.7-.8.5-1.6-.8-1.8 2.4-2.3-1z"/>
+ <path fill="#5c3818" d="M323 219s.4-.3.6-1.6c.2-1.2.2-4.9-.1-6.4s-1.3-4.4-1.5-4.2 1.5 3.3 1.3 7c-.3 3.6-.2 4.6-1 5-.7.3.6.2.6.2z"/>
+ <path fill="#5c3818" d="M323.6 212.8s1.7 2.5 2.5 1.6.5-4 0-5.3l-1.2-3 .5-.6.9 3.4c.3 1.4 1.3 5.2.1 6-1.1.6-2.8-1.5-2.8-1.5z"/>
+ <path fill="#8f4620" d="M317.9 214.6s.6-1 1.4-1q1.1.2 1 .3l.6 2 1.2 2.2 1 1-.5.6-.9.2-2.5-1.4-.7-1-.6-3z"/>
+ <path fill="#d2a567" d="M322 236.3c-.8.5-2.7-.5-3.7-1.4l-6.8-6.7-.8-3.2 2.2.6 3.9-1.7.7-1.3 4.6-2.4 2.6-1.4 5.5-.1 1.4-2.7s1.8 3.2 2.1 4.5c.4 1.4.3 5.4-.2 5.7s-2.3-1.2-2.6-1.3c-.2-.1 1.4 5.7 0 6s-3.6-2.2-3.6-2.2 1 5.2-.2 5.2a10 10 0 0 1-5-2.6s1.3 4.3 0 5z"/>
+ <path fill="#8f4620" d="m321 229.6 1.1 1.7c.3.4 0 2.9-.2 3.4-.3.9-1.6-1.2-2.3-3l-2.2-3.8c0-.4 3.5 1.7 3.5 1.7zm10.8-12.9s2 8.1 1 8.4-3.6-2.6-4-3l-4-6.4-.8-.8.2-.4 1.7.6z"/>
+ <path fill="#8f4620" d="M317.9 232.3c-.4.3-1.3-1-1.7-1.4l-3-3.3a12 12 0 0 1-2.2-2.5c0-.3-.8-1.1-.8-1.1l.7-1h.9s5.4 4.2 5.7 5c.4.6.6 4.1.4 4.3m8 0c-.2.3-3.7-2.3-5.2-4.4s-3-4-3.5-5l-.6-1.9 1 .2s8.8 10.8 8.4 11.2zm1.3-3.7c-.2.3-1.7-.9-2.7-2.1s-.4-2.9-.4-2.9 3.3 4.8 3.1 5m2-.5c-.5.3-2.5-2.2-4.2-5-1.3-2-1.6-2.3-1.8-2.5-.5-.3-1.4-.4-1.4-.4l-.2-.3 1-.2.6-.8 1-1.3 4.3 8.5s1 1.9.7 2"/>
+ <path fill="#ab6d29" d="M318.3 234.9c0 .3 0 .6-1.2.5a21 21 0 0 1-9.9-7.8l-3-5 1.1-1.4 9.6 11z"/>
+ <path fill="#8f4620" d="M318.3 234.9q-.1.7-1.1.5c-.6-.2-3-1-6.9-5.3a33 33 0 0 1-5.3-7.4l-.2-1.8 1.2-.5 6.5 10z"/>
+ <path fill="#4d2a15" d="M324.6 230.6s-2-1.5-3.2-3a24 24 0 0 1-3.8-5.7c.1-.7 1.2-.7 1.2-.7v-1.8l.2-.6 1.9.8 2.3 2.9.9 1.1s1.5 3.7 1.2 4-2.4-2-2.7-1.7 2.4 4.4 2 4.7m-3.7-1s.7 1 .4 1.7-.5 1-1.5-.4a16 16 0 0 0-2.3-3c0 .1.1 2.3-.3 2.3s-2-1.9-3-3.3l-2.5-3.9v-2l-.1-2.5.3.9.4.7 3.6 4.2 1-.7 2.1 4zm-13.5-6.1s2.8 4.8 5.3 7.5a17 17 0 0 0 5.6 3.9l-8.4-9.9zm21.2 2.8a12 12 0 0 1-3-3.4c-1-1.6-1.9-4-1.8-5l.4-3.4s2.8 3 3.4 4.3c.5 1.4 1.7 3.3 1.4 3.5-.2.2-2.1-1.3-2.4-1s2.3 4.8 2 5m3.2-3c-.3.1-1.8-1.6-2.1-2.6l-.6-3.2-1.2-3v-3.3l1.4-.2 1.9 2.7s.7 1.5.7 3.7.3 5.6 0 5.8zm-22.5 8a42 42 0 0 1-4-6l-1-2.9.5.4s.8 3.2 4.7 7.1c4 4 4.9 4.2 4.9 4.2s.7 2.2.4 3c0 0-2.9-2.6-5.5-5.7z"/>
+ <path fill="#202020" d="M313.6 235.9s-3.4-3-6-6.4a47 47 0 0 1-4.4-6.6l1.2-1a46 46 0 0 0 9.2 14m4.7-1-6-6.1c-2-2.2-3-4.4-3-4.4l1.6.6s.7 1.7 2 3.5zm-.8-7s-2.1-2.6-3.1-4.2l-2-3.8s2.8 3.3 3.6 3.5.9 0 .9 0-.4 1.2-.1 2.2zm.9-10.6s.3 1.9.1 3c-.2 1-.8 1-.8 1a16 16 0 0 0 4 4l-1.8-2.7c-.5-1-1.3-2-1-2.8.4-1 2.1.6 2.6 1l2.6 2.8s-.8-2.5-1.8-3.4z"/>
+ <path fill="#202020" d="m327 222.8-1.7-4.2-1.6-5.2v2.8c-.1 1.2-.5 3-1 3.3s-.7.3-1.7 0 .7.5.7.5 1 0 1.4-.5.5-1.5 1-1.4 1 1.7 1.3 2.4z"/>
+ <path fill="#202020" d="M323.7 213.4s2 2.3 3 1.3c.8-1 .3-4 .3-4s1.2.5 1.6.2c.4-.4.2-1.5.2-1.5s2.3 3.2 3.3 5.3c1.1 2 1.6 5.8 1.6 5.8s-1.8-3-2.7-5.8c-.9-2.6-2.1-3.8-2.3-3.5a5 5 0 0 0-.3 3c.2 1 1 2.1 1.5 3.5l1.1 3.4-1.6-2.5q-1-1.1-1.7-1.6c-.4-.4-1-1.2-1.7-1.4-.6-.3-1.8-.9-1.8-.4s-.3-1-.3-1z"/>
+ <path fill="#171717" d="M316.8 223.3a27 27 0 0 0 4.2 6.3s-2-1.8-2.8-3a16 16 0 0 1-1.4-3.3"/>
+ <path fill="#8f4620" d="M330.2 223.9c-.3 0-1.3-.3-1.4 0 0 .4.6 1.8 1.3 2.5q1 .9 1.1.6.2-.2-.2-1.4v-1.7c-.1-.3-.8 0-.8 0"/>
+ <path fill="#d2a567" d="m306 209.4-1.3.7-1.4 3 .4 5.3 2.1 3c.8 1.2 3.5 4.2 4.2 4s1.4-2.3 1.5-3.4l.2-3.2 1.8 2.3c1.1 1.3 2 2.4 2.6 2.3.5 0 2-3.2 2-3.6.1-.4-3.8-10-3.8-10l-1.8-1-6.6.6z"/>
+ <path fill="#ab6d29" d="m314.8 217.4 1 3.7c.5 1.2 0 2.3.3 2.3s2.3-2.7 2.3-4 0-2.5-.5-6.3.2-5 .2-5l-1.2-1-2 4.2zm-7-2.2.7 5c.3 1.2 1 3.3 1.4 3.2s1.6-3.3 1.7-4.4c0 0-.9-1.6-.8-5.5 0-4-.4-4.4-.4-4.4z"/>
+ <path fill="#45392d" d="M302.5 207.5s-3.1 4.6-3 7c0 2.5.4 2 1.1 4.2s1.1 5.6 1.2 5.9c0 .2.5-.2.5-.5z"/>
+ <path fill="#ab6d29" d="M302.5 208s-2.7 4.3-2.5 6.6.5 2.3 1.3 4.4c.8 2 .8 5.4.8 5.4s1-.2 1.9-.9c1-.7 1.8-2.1 1.8-2.1l-1-2.1-.6-2-.8-1 .2-4.1.7-3v-1l-1.8-.1z"/>
+ <path fill="#dbad6c" d="M317.2 215.3s-1.3-.3-1.9-.6-.8-1.1-.8-1.1l.4-.8z"/>
+ <path fill="#d2a567" d="M303 208.5s-2 4.3-1.7 7.2 1.9 6.6 2 6.7l.1-1v-8.7l.9-2.8v-1.5z"/>
+ <path fill="#8f4620" d="M307.8 209.5s.3 1.2.1 1.8c-.2.5-1.2 1.2-1.6 2s-1 2.8-1 2.8.4-1.1 1-1.8q1-1.2 1-.8c.2.4.4 2 .3 2.3q-.4.3-1 2c-.4 1.3 0 2.4 0 2.4l.5-2.2c.2-.6.7-1 .7-1l1 2.4s0-1.1.3-2c.1-.8 1-2 1.3-2s.8-.1-.3-.7c-.4-.2-.1-4.2.1-4.4s1.9-.2 1.7-.8l-1.6-2.2c-.1-.1-2.5 2.2-2.5 2.2"/>
+ <path fill="#dbad6c" d="m317 218.1-1.5-.3c-.5 0-.6-.6-.6-.6l.2-.6 1.2.7z"/>
+ <path fill="#8f4620" d="m304.4 218.6-.5 1.5c-.3.7-.4 1.6-.4 1.6l-.4-3.3-.3-2.4c-.2 0-.7.7-.7.7s0-1.6.3-2.3.5-1.8.3-2q-.6 0-1 .7l-.8 1.3s.3-1.3.6-1.9 1.8-2.2 2-2.8q.5-1.2.4-1.4h1s1 .8 1 1.5c0 .4-1 .9-1 1s-.8-.1-1 3.2.6 3.2.5 4.6m9.4-8.7s.2 1.8 0 2.4l-1.1 1.8c-.4.7-.4 2.4-.4 2.4l.5-1.4.7-1q.3.1.8 1.7l.8 2.5s-.2-1.2.1-1.2.5-.1.9.2l.9.8s0-.5-.7-1.1-1-.6-1.1-1.5q-.3-1.6-.2-2.2c0-.3.5.3.9.7l1.5 1.4-.7-1v-3q-.1-1.7.4-2.1c.3-.3.4-1.6.2-1.8-.1-.2-3.5 2.4-3.5 2.4"/>
+ <path fill="#1e2121" d="M324.6 206.1a24 24 0 0 0 1.5 7.1s-1-2-1.6-3.6-.9-3.5-1.3-3.6-1 .8-1 1.5.5 3.3 1.1 4.2-1-1.2-1.3-2.3l-.7-2.2s-.4 1-.3 2c.2 1.1 1.1 2.7 1.1 2.7l-1-1-.6-.7s0 1.5.4 2.1l1.2 1.7-1.3-1-.4-.8s.2 2.1.6 3.3l1.5 3s-1.2-1-2-2.9-1.2-7.3-1-8.1l1.1-1.9c.6-.8 1.3-4.7 1.3-4.7s.9 3.6 1.5 4.3q1 1 1.2 1zm-8.6-1 .8 1.3.6 1s-1 1.1-2.3 2c-1.2 1-2.8 2-3.1 1.5q-.5-.9-.4-1c.1-.1 1.4-.8 2.4-1.8a7 7 0 0 0 1.6-2.2l.5-.9zm-10.9 3.5s.2 2.2 1.2 2.2 3.7-2.9 3.9-3 .4-.8.4-1l-.2-.8s-3 3-4 3.2c-.9 0-1.3-.6-1.3-.6m.1-3-.3 2 .2.9c.1.1-2.2.7-2.5 0-.4-.6-.1-1.6-.1-1.6h1.5c.6-.2 1.2-1.3 1.2-1.3m20.3-3.1 1.5 3.2 1.4 2.8s-1.4-1.7-1.9-2l-1.2-1 .2-1.1z"/>
+ <path fill="#dbad6c" d="M302.1 207h1.3l.8-.2.9-1.2s-.5 1.4-.2 2.5c.3 1 1 1.1 1.2 1.1a4 4 0 0 0 2.2-1.1c.9-1 2.1-1.9 2.1-1.9s-.3 1.3.2 2.7q.7 1.8 2.2.4c1-.8 2-2.2 2.6-2.8l.7-1 1.1-1 1-5.4-.5-.7-1.4.7-1.7-.7-.5-.7-1 1.7-1 .6-.5.1-1.2.3-.5-1.1-.3-.8-.6-.3-2.4 2.5-1.4-.1-1.3 2.2-1 1.3-1 2.4z"/>
+ <path fill="#8f4620" d="M313.9 201.5s.2 1.3-.5 3.6-1.6 3.9-1.6 3.9 2.4-1.5 3.6-4.2c1.1-2.6.9-5.7.9-5.7zm3-2.5s.2.4 0 2.4l-.8 4 .6 1.2c.4.7 1.2 1.8 1.7 1.6s1.6-.9 2.2-2.2 1.1-2.7 1.4-2.9q.3-.1.4.2c0 .1.3 1.3.9 1.8.5.5 1.3 1.3 1.6 1 .4-.2.8-.9.7-1.2l-1.3-4-1.6-4-1-1.6-2.8.3z"/>
+ <path fill="#ab6d29" d="M321.7 195.3s.8 1.7.9 3.6c0 1.8-.4 3.8-.4 3.8s.2-2.3 0-3.7l-.7-2.7z"/>
+ <path fill="#4d2a15" d="M325.6 202.6v2.3c-.2.8-1.3-.5-2-3s-.5-3-1-4.3l-.9-2.2 1.5-.3zm-7 4.6s2.8-1.5 3.1-6.2c.2-2.1-1.2-5.7-1.2-5.7s0 3.8-1 6.2l-1.9 4s.7-.2 1-.6l.8-1.1s.1.7-.1 1.6l-.6 1.8zm-2.3-8.1s-.1 1-1.3 2c-1 .9-3.1 1.9-3.1 1.9s1.5-1.4 2-2.6.1-2 .1-2-.2.6-.8 1.1-1.6.6-1.6.6 0-.6.7-1.3l.2-.7c.3-1 1.1-2.3 1.1-2.3s.7 1.4 1.3 2z"/>
+ <path fill="#1e2121" d="M324.7 193.6a18 18 0 0 0 .9 9s-1.4-2.2-1.7-3c-.4-1-.4-2.3-.7-3l-1-1c-.3-.2-1-.1-1-.1s.8-.4.8-1.1v-1l1.4.3h1.3zm-6 9.8s1.4-2 1.8-4.6 0-3.5 0-3.5-.6 0-1.1-.5-1.3-1.8-1.3-1.8.2 1.4 0 3c-.4 1.6-1.8 3-1.8 3s.8.4 1.4 0c1.5-.9 1.4-2.5 1.4-2.5s.3.2.3 2.2-.7 4.7-.7 4.7"/>
+ <path fill="#8f4620" d="M301.2 206.9c-.3 0 1-2 1.8-3.4l2.1-3.4s.3.3.8.3a4 4 0 0 0 2.4-1.7 7 7 0 0 0 1-2.5c0-.3-.1 1.8 1 3 1 1.1.9 1 1.3 1 0 0 0 1.4-.4 2.7l-.8 3.3s.2-2.5-.3-3.2-.6 0-1 1c-.3.9-1.1 1.5-1.1 1.5s.6-1.1 1-2.3.2-1.2 0-1.2q0-.2-.6.4-.8.7-.9.6c-.1-.1.5-.4.7-1l1-1.8q.4-.5.4-1t-.2-.7-1.4 1.2l-1.3 1.3-.9 2.6-1 2.8-.6.4.9-2.4 1-3.4q-.5-.5-.8 0l-2 2.8c-1 1.4-1 3.1-1.2 3.2l-1-.1z"/>
+ <path fill="#874f20" d="M325.7 192.1c0 .2 0 1.2-1 1.5a4 4 0 0 1-2.3-.2c-.2 0-.2-1.4-.2-1.4z"/>
+ <path fill="#b27129" d="M306 195.4s-.2.9-.8 2c-.5 1.2-1.4 2.2-1.3 2.4s.6.7 1.4.6 1.1-4.8 1.1-4.8l-.1-.2z"/>
+ <path fill="#dbad6c" d="M318.4 192.7s-.3 6.4-2.1 6.4-2.7-3.2-2.7-3.2-.1 4.3-2.4 4.3c-1 0-2.1-3.4-1.9-4 0 0-.4 2.3-1.5 3.2-2.2 1.7-3.5.9-3.6.6 0-.3 1.8-2 2-4.6 0 0 .4.1 1-.6s.7-1.6 1.3-1.5c.5.2 3-1 3-1l1.4-1.7s.2.5 1.2-.2a4 4 0 0 0 1.3-1.7l2.7 2.3z"/>
+ <path fill="#b27129" d="m311.4 186.6 2.7 3.8.6-.5q.7.8.4 1.2c-.4 1-1.3 2.3-.5 3.7 0 0-.3-.8.1-1.8s.7-1.4 1-1.3c.2 0 .6 5.8 1 5.8.3 0 .9-2.7.9-4.5s.3-.3.5 0c.2.4 1.8 3 3.1 2.6s1.2-2.8 1.2-3.3-1-3.7-1-3.7l-6.1-3.9-.5 1.6c-.3 1-3.4.3-3.4.3"/>
+ <path fill="#8f4620" d="M320 186s.4.4 1 1.9.7 6.4-.1 6.4-2.3-1-2.6-1.6 0-3.1-.4-3.8a8 8 0 0 1-1.2-2.7l.1-2 1.4-.5z"/>
+ <path fill="#4d2a15" d="m319.6 184.5 2.6 3.9 2.3 3.3 1.2.4a2.5 2.5 0 0 1-3.2.5c-.9-.5-.4-2-1.5-4.5s-3.2-3.6-3.2-3.6l.7-.7z"/>
+ <path fill="#1e2121" d="M318.2 182.4s2.3 1.5 3.1 3.2 1.3 2.7 2.3 4.3 2.1 2.1 2 2.2c0 .1-.7.3-1.2 0a5 5 0 0 1-1.4-1.6l-2.4-4.2c-.5-.7-2.3-2-2.3-1.9s.5.5 1.5 2.1a7 7 0 0 1 1.2 3.1l-1.1-2c-1-1.5-2.8-3.3-2.9-3s1 1.9 1.5 2.9l1.3 3.3-1.8-3c-1-1.5-1.2-1.3-1.6-1.8l-1.4-1.8s1 .3 1.8-.3c1-.6 1.4-1.5 1.4-1.5"/>
+ <path fill="#8f4620" d="M312.3 186.7s1.5.3 2.3.2h1.1s.5.6.5 1.4-.5 2.1-.8 2.2c-.2 0-.2-1.3-.5-1.8z"/>
+ <path fill="#b27129" d="M313.1 190.6s.5 1.6.1 3.9-1.7 4.6-2 4.6-.2-2.6-.4-4v-.4l-.5 1.6.4-2.6-.1-.8 1.6-2z"/>
+ <path fill="#8f4620" d="M310.3 192.3c-.5.5-1.2.4-1.8.6s-.9 1-.9 1 .5-.3.7-.2c.3.1.5.1.1 1.2s-2.2 3-2.1 3c0 0 2-1.5 2.5-2.5.7-.9.6-1.4.8-1.8 0-.3.8-.7 1-.7q.3-.2.6.7l.6 2.6.8-2.6c.2-1 .2-2.9.2-2.9l-.6-.1c-.5-.1-1.5-1-1.5-1s.2 2-.5 2.7z"/>
+ <path fill="#dbad6c" d="M318.3 180.8s.6 1.5-.7 2.6q-.5.5-1.4.6l-1.7-.6-4-1.6-2-.6-1-.3.2-1.1h3l3 1.2 1.3.5 1.1.2h.9l.7-.2.4-.3z"/>
+ <path fill="#ab6d29" d="M318.3 180.8c0 .3-.3 1.1-.6 1.3-.3 0-.8.3-2 0s-2.3-1-3.6-1.3q-1.9-.6-3.3-.7c-1.4-.1-.5-.4-.5-.4s2.3-.3 4.3.5c2 .7 2.9 1.2 4 1.2 1.4 0 1.7-.6 1.7-.6"/>
+ <path fill="#4d2a15" d="M307.6 179.6h.9l.7-.3c.1-.1 0 .5-.2.7s-1 .1-1.2.1z"/>
+ <path fill="#dbad6c" d="M315.3 184.4s1.3 1.3 1 2.4l-2.7-1.2-4.2-1.7-2.3-.7-.3-.4.6-.8.2-.8 2.8.4 3 1z"/>
+ <path fill="#dbad6c" d="M312.4 186.3s2.4 3.1 1.8 4.1l-5.6-3.5-2 3.3-4.7-2.3s3.8-3 4.2-3.5l.5-.7 2 .4 3.4 1z"/>
+ <path fill="#ab6d29" d="M311 181.6s2 .5 3.3 1.2 3 .8 3 .8-.6.7-2 .8c-.4 0-1.4-.8-2-1.3s-2.6-1-2.6-1z"/>
+ <path fill="#4d2a15" d="M307.6 180.6s1.4.3 2.2.7c1 .3 1 .2 1.2.1q.4-.1.3-.2c-.1-.1.2 1-.5 1s-1-.3-1.8-.7c-1-.4-1.5 0-1.5 0v-1z"/>
+ <path fill="#ab6d29" d="M315.4 186s1 .7.9.9l-1.6.4a3 3 0 0 1-2-.4c-.6-.2-1-1.3-2.5-2l-2.8-.9-1.3-.2 1-.4 3.2.6 2.8.9 1.7.8.6.4zm-5.4 2 .6 2.6-.4 1.5-.8.6-.8-.3-.3-.5s.4-.6 0-1.1c-.3-.6-2-1.2-2-1.2s.7-1.3 1.4-1.6c.8-.3.4-1.2.4-1.2z"/>
+ <path fill="#4d2a15" d="M306.8 182.8s.5.4 1.5.5q.8 0 2.2.5l1-.3-.5.4c.9.2 2 .7 2.5.9a6 6 0 0 1 2 1.3l-2-1-3-.9c-2-.3-4-.2-4.3-.4-.4 0 .1-.1.4-.3.2-.2.2-.7.2-.7"/>
+ <path fill="#ab6d29" d="M314 189.8s.7.7 0 .9-2.4.2-3.2-.7l-.6-1.2-2.4-1.7c-.7-.5.3-.5.3-.5l3.6 1.5z"/>
+ <path fill="#4d2a15" d="M314 189.9s-1.2-1.8-4.9-3.3l1.2-.2h-2l-.8-.3c-2-.6-2-.6-2.2-.8q-.2-.3-.6.3l-.7 1a5 5 0 0 1 2.5-.1c1.1.3 1 .7 1 1-.1.5-1.4 2-1.3 2.1.2 0 1-1.5 2-1.3q1.3.6 1.2.8c-.1.2 0-.6-.2-.8s-1.3-1.3-1-1.3q.6 0 3.3 1.2c1.8.9 2 1.1 2.6 1.7z"/>
+ <path fill="#dbad6c" d="M308.1 187s2.8.8 2.7 3.8-2.3 2.4-2.5 1.3.3.5 1 .4q1.2-.3 1-2.2 0-1.4-1-2.2l-1.2-1z"/>
+ <path fill="#6c3f18" d="M296 179.9s.4.2-.4 2.3-1.3 2.8-2.5 4.2c-2.2 2.4-3.2 2.5-3 3.5s1.1.8 1.3.8 4.3-6 4.3-6l.9-3.5-.2-1-.3-.3z"/>
+ <path fill="#dbad6c" d="M306.1 175.6s1.2 1.8.8 5c-.3 3.4-4.7 6.3-4.7 6.3l-6.4 4.4-2.7-.2h-.8l-.9-.5-.5-1.2.9-1 2.3-2.3 1.4-2s.7-1.3.8-2.5l-.2-1.7.5.8.3 1.8-.2 2 1.6-1.2 2.2-1s.7 0 1-1.3c.5-1.2.9-3 .9-3.8l-.1-1.8h.3c.2 0 .7 1.2.7 1.7l.4 2.8 1-1 1-1.5z"/>
+ <path fill="#904720" d="M306.8 192.2s.5.4.3 1.6-1.1 1.8-1.6 1.8V194l-1.4-1.2-1.5-.4.3-.3c.1-.2 1.7-.8 1.7-.8z"/>
+ <path fill="#ab6d29" d="M305.7 192.2s.5.4 1.2.3 1-1.3.6-1.8-.2 1-.7 1.3c-.4.1-1-1.2-1.5-1.3-.7-.1-1.6.3-1.9.7s1 0 1 0l.7.3h.5z"/>
+ <path fill="#904720" d="M296.5 187.6s.8.3 1.7.1l3.1-1 1.8-1.3c.7-.7 3.1-2.2 3.4-5.1.2-3-.4-4.7-.4-4.7s3.5 3.8.5 8.2c-2 2.8-3.8 3.7-3.8 3.7s3.4-1 3.7-.2-.1 2-.2 2.3c0 0 1.9.4 2.2 1.4.1.6-2.2-.7-4-.2s-2.5 1.4-2.5 1.4-.4-.5-2-.5c-1.5 0-2.2.7-3.1.7-1 0-3.7-.6-4.2-1.4l1.8-2.2c.8-1.6 2-1.2 2-1.2"/>
+ <path fill="#ab6d29" d="M303.8 179.7s1.3-1.3 1.8-2.3l.5-1.8c0-.2.2 1-.6 2.3s-1.7 2-1.7 2z"/>
+ <path fill="#904720" d="M303.4 176.7s1.1 4.4 0 6.1c-1.3 1.8-6.5 4.1-6.5 4.1s4-2.1 5.2-4.6 1.1-4.5 1.1-4.5z"/>
+ <path fill="#1e2121" d="M298.2 187.7s1.7 0 2.6-.6l2.3-1.7s-1.2 1-1.6 1q-.6-.1-.5-.9s-.3.8-1 1.4c-.8.5-1.8.8-1.8.8m3.9-5.4s1.4-1.4 1.4-4.4-1.2-2.5-1.2-2.5 1 .7.7 3c-.2 2.3-1 4-1 4zm1.7.3s1.6-.3 2.1-1.3.6-2.7.6-2.7-.2 1.7-.7 2.3-2 1.7-2 1.7m-1 9.5s.8-1.5 1.9-1.1 1 1.2 1 1.2-.4-.6-1.2-.7-1.6.6-1.6.6zm-2.9-2.7 3.7-1 3-1s-1.2 1.3-3 2.3c-1.6 1-3 1-3 1s3.2-1.4 3.4-2c0 0-3 .9-4 .7z"/>
+ <path fill="#fff" d="M296.2 185.8a2.6 2.7 67.8 0 1-3 4.4"/>
+ <path fill="#f16e16" d="M296.1 186.1a2.3 2.4 67.8 0 1-2.7 3.8"/>
+ <path d="M295 187.4a1 1 0 1 1-.8 1.4"/>
+ <path fill="#d5d3ca" d="M295.2 188.6a.3.3 0 1 1-.6-.1l.3-.3a.3.3 0 0 1 .3.4"/>
+ <path fill="#ab6d29" d="M296.8 184.2s1.6-1.5 1.9-3.5q.3-3.1.1-3.2l.9 1 .3 1.4-.5 2.6 1.6-.8c.6-.8 1.5-4.2 1.2-6.3 0 0 .4 1-.2 3.8-.6 2.9-1 3.2-3.2 4.4a10 10 0 0 0-3.8 4.2l-2.3 3 1.6-2.6c.8-1.8 1.7-2.8 1.7-2.8z"/>
+ <path fill="#904720" d="M296.1 185.4s.7-2 .7-3.1-.7-2.4-.7-2.4 1-.1 1 2.2c.1 2.4-.4 2.6-1 3.3"/>
+ <path fill="#4d2a15" d="M299.2 182.8s.7-1.7.7-3c0-1.1-1-2.3-1-2.3s1.1.3 1.2 2.4c.1 2.2-.2 2.2-1 3z"/>
+ <path fill="#ab6d29" d="M292.1 191s-.6-.8-.5-1.3 0-.7 1.4-2.2a13 13 0 0 0 2.5-3c.3-.9 1.5-3 .6-4.6 0 0 .6 2.4-.8 4.3a16 16 0 0 1-3.3 3.7q-1.5 1-1.2 1.7 0 .9.3 1c.4.3 1 .3 1 .3z"/>
+ <path fill="#6c4119" d="M305.5 195.6s.3 0 .5-.3.2-1-.3-1.6a3 3 0 0 0-1.7-1.1l-2-.4s.4.8 1.3 1.3c.4.2 1.2 0 1.6.4s.6 1.7.6 1.7"/>
+ <path fill="#6c4119" d="M305.5 195.6s1.5-.5 1.6-2l-.1-1.2s.2.5.8.7l.6-.2s-1 2.8-3 2.7z"/>
+ <path fill="#bf802d" d="m294.8 195.3.8.8.9 1 3.7-1 1.2-1.2-1-1.6h-2.7l-3 2z"/>
+ <path fill="#f9c83a" stroke="#8f4620" stroke-width=".4" d="m303.8 194-.7-.9-.7-.6c-.6-.3-2.8-.3-2.8-.3l-1.6.3s-.5.5-1.3.3l-2.6-1-1.9-.7s-1.3-.6-1.6-.5-1.5 1.3-1.5 1.3-.2.7.3.7-.7.2-.7.2-2.8 1.6-3.2 4.4c-.5 2.7 4.6 6.8 6.5 4.7 0 0-2.8-2-2.2-3.7q.7-2.6 4-3c2.1 0 2.3-.3 3.2-1s2.7-1 4 .3-5 2.7-5 2.7l.7 1s7.7-2.7 7-4.1z"/>
+ <path fill="#fcf3d8" d="M289.4 200.7s-3.1-.8-2.9-3.7c.3-2.8 3-3.9 3.4-4s.3-1.6.8-1.8a2 2 0 0 1 2 .5l1.4.8s-5.5 2.4-5.5 5.6c0 2.1.8 2.5.8 2.5z"/>
+ <path fill="#fdeaaf" d="M303.8 193.8s-.4.2-.5 0c-.6-1-2-1.4-3-1.3-1.5 0-2.4.5-3.4.5s-.7-.1-1.8-.2c-1.1 0-3.5-1.8-4-1.6q-.9.5-.8 1.1c.1.4-1 .4-1 .1-.2-.2.7-1.7 1.7-1.7 2.6 0 4.6 1.7 5.8 1.7s1.7-.7 3.4-.7 3.5.8 3.6 2z"/>
+ <path fill="#513625" d="M295.2 195.8s1.3-.2 2.2-.6l2.2-.8-2 1.2-2 .5z"/>
+ <path fill="#f9c83a" d="M290.8 202.3c-.2 0-1.3 0-3-1.1-1.8-1.2-2.3-3.2-2.3-3.2s-.4-1.9 1.4-3.8 2.1-1.3 2.2-1.2v.1l-1.7 1.3-.7 1.3-.7 1.2v1.4l.8 1.5 2.5 1.5z"/>
+ <path fill="#8b5122" d="M289.8 191.4v-.2.3-.3.3-.3l-.3.2h.2v-.2l-.2.2.2-.2h-.2v.2l.2-.2h-.2.2-.2.2-.2.2l-.2-.1.2.1-.2-.1-.1.1-.4.5-.2.6v.1q0 .5.4.6h1.4l.1-.4-.3-.2-.7.1h-.3v-.4l.3-.5zl.1-.2-.3-.2-.2.3.3.2z"/>
+ <path fill="#f9c83a" d="m295.1 194.1-3.8 1.1c-.3.2 1.2 0 2.4 0l1.3.1.9-.2c1.4-.5 4.4-1.6 4.7-.3.2 1-4.1 2-4.1 2v.5l3.4-.9 1.9-1 .5-.9-1.7-1.2H298l-1.2.3z"/>
+ <path fill="#8f4620" d="M289.7 199.5c.3.8.9 2 1.6 2.3 0 .1-.5.5-1.7.1-1.2-.3-3-.7-4.1-4v.7l.7 1.3 1.1 1.2 1.9 1.1 1.2.3 1-.2.6-.4-1.1-1-1.4-2.3z"/>
+ <path fill="#fcca3d" d="M302.1 232.6v1.2h-.7v-1.5zm-4.7-34.4-1.2-1.4-.8.1 1.2 1.8z"/>
+ <path fill="#816c2a" d="m302 235.5-1.7-1-2.4-.6v.3h.2l2.1.6 1.7 1zm0-3.1h-3l-1.3.7.1.2a4 4 0 0 1 2.6-.7l1.4.1v-.3zm-.4-2.7-2.6 1.4-1.6 1.2.2.2.5-.4 2.6-1.6 1-.5zm-1.7-2.7s0 .7-.3 1.2l-.6.8-2.5 2.6.2.3 2.5-2.7.7-.8q.4-1 .3-1.4zm-2.1-1.2a4 4 0 0 1-.2 2.2l-1 2.2-.4.9-.2.3.2.2s1.3-2.2 1.7-3.5q.3-.7.2-1.5v-.9zm-2.1-.3v1.2q0 1-.2 1.7l-.7 1.8-.3 1 .3.1 1-2.8q.3-.8.2-1.8v-1.2zm-1.6 0v1.2l-.3 2-.5 2.5h.3l.2-.8.3-1.7c.3-1 .3-3.2.3-3.2zm-1.8.3v2.9l-.4 2.5h.3l.4-2.4.1-1.4v-1.6zm-1.3.2v.2l-.3 2.2-.6 1.9-.2 1h.3l.8-2.9.3-2.2v-.2zm-1.6 0v.7q.1 1-.4 2l-1.3 1.6-.7.4-.2.2.1.3s1.7-1 2.4-2.3q.5-1.2.5-2.2v-.7zm-.9-.3v.2l-1 1.9-1.3 1.1-.8.5.2.3s1.4-.8 2.1-1.7l1.1-2.2h-.3zm-1.5-.7v.1l-1 1.3q-.2.3-.9.6l-.6.4.1.3.7-.4 1-.7.7-.9.3-.6zm-.7-1-.3.3-.9 1-.5.4-.4.3.1.3.7-.4c.7-.6 1.5-1.7 1.5-1.7zm-.4-.6-.2.2-.9.6-.8.3v.4l.6-.3c.7-.3 1.5-1 1.5-1zm-.2-.7-.8.4-.6.3-.4.2v.3q.3 0 .5-.2l1.4-.7zm-.4-1.3-.5.5-.9.3v.3a2 2 0 0 0 1.2-.5l.5-.4zm.1-2.2-.6.5q-.5.4-.7 1h-.1v.5l.2-.2.2-.2q.1-.4.7-.9l.5-.5zm10.7-12.8h1.6l.1-.2v-.1h-.1v.3-.1h-.2.1-.1v-.2l.1.1v-.1.1-.1h-1.5zm0-1h.2l.6-.2q.6-.2 1-.6l.5-.3h.3v-.4l-.6.2-1 .7-.8.3zm0-1.5.7-.2 1.2-.8q.6-.4 1-.4v-.3l-.8.2-1.2.7-1 .5v.3zm-.6-1.4 1.5-1 1.6-1.2-.1-.3-1.7 1.2q-.8.8-1.5 1l.2.4zm-1-1.5 3.2-2.3-.2-.3-3.2 2.3zm-1.5-1.6a21 21 0 0 1 3.4-2.3l-.2-.2-1.5 1-1.9 1.3zm-1-1 2.6-1.8.8-.5-.1-.3-.8.5-2.7 2z"/>
+ <path fill="#78732e" d="m294.5 195.4.1.1 2.5 2.5q1.6 1.9 1.8 4.1v.5a10 10 0 0 1-2.5 5c-2 2.3-4.8 4.4-7 6.4a18 18 0 0 0-3 3.1 6 6 0 0 0-1.2 3.7 6 6 0 0 0 1.1 3.4 4 4 0 0 0 3.9 2c1.8 0 3.8-.7 5.6-.7q2.4-.2 4.4 1.9c1.3 1.4 1.7 3.6 1.7 5.7q0 2.4-.4 4.2l-.4 1.8h.3s.8-2.8.8-6c0-2.1-.4-4.5-1.8-6a6 6 0 0 0-4.6-1.9c-1.9 0-3.9.6-5.6.6a4 4 0 0 1-3.6-1.8 6 6 0 0 1-1-3.3v-.1q0-2.4 1.9-4.3c1.8-2 4.5-4 7-6.2 2.3-2.2 4.4-4.5 4.7-7.5v-.5c0-1.8-1.1-3.5-2.3-4.8l-2.3-2.2z"/>
+ <path fill="#a8ac71" d="m292.1 198.4-.4-.3-.3.1.6.5zm1 1-.3-.3h-.1l.2.4z"/>
+ <path fill="#78732e" d="m294.5 201-.2-.4-.2.2zm1 1.5-.1-.3h-.3l.4.5zm.7 1.5-.2-.4v.4zm0 1.5v-.4l-.2-.1v.5zm0 1v-.5l-.1-.1v.6zM284 221.1l.1-.7c.1-.3-.3.1-.3.1v.5z"/>
+ <path fill="#fff" d="m284 222.1-.3.1.1.5.1-.2z"/>
+ <path fill="#78732e" d="M284 223.9v-.4h-.2v.6z"/>
+ <path fill="#fff" d="M284 224.9v-.4h-.1v.4zm.3 1.4v-.4l-.2.1zm.4 1.4-.1-.5h-.2l.2.6z"/>
+ <path fill="#a8ac71" d="m285.6 229.7-.2-.3h-.2zm1.5 1.4-.5-.3c-.3-.3-.1.2-.1.2l.4.2zm9.8.8-.4-.3q-.2-.1.2.4c.1.3.2-.1.2-.1"/>
+ <path fill="#fff" d="m297.7 232.5-.3-.3v.3h.2z"/>
+ <path fill="#a8ac71" d="M297.9 233q-.2-.1-.2.1l.2.3zm0 1.3v-.5q0-.1-.1 0v.5z"/>
+ <path fill="#fff" d="m297.4 235.7.2-.4h-.2zm-14.8-52s.5-.2.1.4l.3-.5h-.5z"/>
+ <path fill="#f9c83a" d="m294.6 195 .4.3h-.5z"/>
+ <path fill="#8f4620" d="m295 195.3-.7.1c-.2 0 .2-.2.2-.2l.4.1z"/>
+ <path fill="#977c2e" d="M301 239.1s.3 0 .5-.3-.1.4-.1.4l-.3.1-.2-.2z"/>
+</svg>
diff --git a/apps/web/public/flags/my.svg b/apps/web/public/flags/my.svg
new file mode 100644
index 00000000..115f864d
--- /dev/null
+++ b/apps/web/public/flags/my.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-my" viewBox="0 0 640 480">
+ <g clip-path="url(#my-a)">
+ <path fill="#C00" d="M0 0h640v480H0z"/>
+ <path fill="#C00" d="M0 0h640v34.3H0z"/>
+ <path fill="#fff" d="M0 34.3h640v34.3H0z"/>
+ <path fill="#C00" d="M0 68.6h640v34.3H0z"/>
+ <path fill="#fff" d="M0 102.9h640V137H0z"/>
+ <path fill="#C00" d="M0 137.1h640v34.3H0z"/>
+ <path fill="#fff" d="M0 171.4h640v34.3H0z"/>
+ <path fill="#C00" d="M0 205.7h640V240H0z"/>
+ <path fill="#fff" d="M0 240h640v34.3H0z"/>
+ <path fill="#C00" d="M0 274.3h640v34.3H0z"/>
+ <path fill="#fff" d="M0 308.6h640v34.3H0z"/>
+ <path fill="#C00" d="M0 342.9h640V377H0z"/>
+ <path fill="#fff" d="M0 377.1h640v34.3H0z"/>
+ <path fill="#C00" d="M0 411.4h640v34.3H0z"/>
+ <path fill="#fff" d="M0 445.7h640V480H0z"/>
+ <path fill="#006" d="M0 .5h320v274.3H0z"/>
+ <path fill="#FC0" d="m207.5 73.8 6 40.7 23-34-12.4 39.2 35.5-20.8-28.1 30 41-3.2-38.3 14.8 38.3 14.8-41-3.2 28.1 30-35.5-20.8 12.3 39.3-23-34.1-6 40.7-5.9-40.7-23 34 12.4-39.2-35.5 20.8 28-30-41 3.2 38.4-14.8-38.3-14.8 41 3.2-28.1-30 35.5 20.8-12.4-39.3 23 34.1zm-33.3 1.7a71 71 0 0 0-100 65 71 71 0 0 0 100 65 80 80 0 0 1-83.2 6.2 80 80 0 0 1-43.4-71.2 80 80 0 0 1 126.6-65"/>
+ </g>
+ <defs>
+ <clipPath id="my-a">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+</svg>
diff --git a/apps/web/public/flags/mz.svg b/apps/web/public/flags/mz.svg
new file mode 100644
index 00000000..0f94c3a1
--- /dev/null
+++ b/apps/web/public/flags/mz.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-mz" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="mz-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#mz-a)" transform="scale(.9375)">
+ <path fill="#009a00" fill-rule="evenodd" d="M0 0h768v160H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 160h768v16H0z"/>
+ <path fill="#000001" fill-rule="evenodd" d="M0 176h768v160H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M0 336h768v16H0z"/>
+ <path fill="#ffca00" fill-rule="evenodd" d="M0 352h768v160H0z"/>
+ <path fill="red" fill-rule="evenodd" d="M0 0v512l336-256z"/>
+ <path fill="#ffca00" fill-rule="evenodd" d="m198.5 333-51.2-37.5L96.1 333l19.9-60.3-51.5-37.1 63.5.2 19.3-60.4 19.4 60.5 63.5-.3-51.5 37.1z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M102.8 290.9h37c3 3.3 9.5 4.7 15.8 0 11.6-6.4 34 0 34 0l4.4-4.7-10.7-35.2-3.9-4.2s-8.3-5-24-3.3-21.2-.5-21.2-.5-13.7 1.6-17.6 3.6l-4.4 4.4z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M110.3 281.8s35.2-4.4 45.4 9.1c-5.7 4-10.8 4.3-16.2.3.8-1.5 12.6-13.8 42.7-9.7"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="m148 246.6-.3 38.8m31.7-38.3L186 278"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="m117 246.6-3.7 16"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="m78.9 295.1 8.6 10.2q1.5.9 2.9 0l12.8-15.4 5.4-6.7q1.3-1.6 1-3l10.4-9.3 2.2.2c-1-.2-1.7-.7-1-1.8l2.4-1.8 1.8 2.3s-2.6 3.4-2.9 3.4h-2.8l-5.4 4.9 2.4 2 3.5 9.8 4.4-3.1-2.8-10 6.1-6.7-2.3-3.6 1.6-2s21.3 13.4 29.6 9.8c.2 0 .5-9.6.5-9.6s-22.2-2.3-22.7-6.7 5-5 5-5l-2.4-3.2.5-1.8 3.9 4.8 8.7-7.4 51.5 58.6c2.8-1.1 3.4-1.8 3.6-4.6L155 241.5l3.8-4.1c.8-.9 1-1.2 1-2.6l6-5.1a7 7 0 0 1 3.8 3L186 219c.4.4 1.7.8 2.6.4l26.9-25.9-29.3 20.7-1-.7c0-.9 1-1 0-2.6-1.2-1.4-2.9 1.3-3.1 1.3s-4.3-1.4-5.2-3.2l-.2 4.7-7.5 7-5.7-.3-8.2 8-1 3 1.3 2.7s-4.4 3.8-4.4 3.6c0-.3-.9-1.2-1-1.3l3.8-3.4.5-2.3-1.2-2c-.4.3-5.2 5.4-5.5 4.8l-14-15.5.8-2.9-8.7-9.5c-3.2-1.1-8.3-1.3-9.3 5.7-.8 1.6-7.4.2-7.4.2l-3.6.8L85.2 241l11.3 13.6 23.2-29.3.7-8.3 4.8 5.4q2.5.5 4.7-.5l13.7 15.3-2.3 2.3 2 2.2 2.4-1.6.9 1.3-3.1 2.1c-1.8-1.2-3.6-2.7-3.5-5l-7.7 6.4-.3 1.2-22.9 19-2 .3-.5 6 14.9-12.4v-1.8l1.5 1.3 11.6-9.3s.8 1 .5 1-10.3 9.3-10.3 9.3l-.2 1-1.8 1.6-1-.8-14 12.4h-2l-7.7 7.7c-2 .2-3.7.4-5.4 1.5z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/na.svg b/apps/web/public/flags/na.svg
new file mode 100644
index 00000000..35b9f783
--- /dev/null
+++ b/apps/web/public/flags/na.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-na" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="na-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#na-a)">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#3662a2" d="m-26.4.2.8 345.6L512.5 0z"/>
+ <path fill="#38a100" d="M666.4 479.6 665 120.3 122.3 479.8l544-.2z"/>
+ <path fill="#c70000" d="m-26 371.8.4 108.2 117.5-.1L665.4 95.4l-.7-94.1-116-1L-26 371.7z"/>
+ <path fill="#ffe700" d="m219.6 172-21.8-13.2-12.6 22.1-12.2-22.2-22 12.9.6-25.4-25.4.2 13.2-21.8-22.1-12.5 22.2-12.3-12.8-22 25.4.6-.1-25.5 21.7 13.2L186.3 44l12.2 22.2 22-12.9-.6 25.4 25.4-.2-13.2 21.8 22.1 12.5-22.2 12.3 12.8 22-25.4-.6z"/>
+ <path fill="#3662a2" d="M232.4 112.4c0 25.6-20.9 46.3-46.6 46.3s-46.6-20.7-46.6-46.3 20.8-46.2 46.6-46.2 46.6 20.7 46.6 46.2"/>
+ <path fill="#ffe700" d="M222.3 112.4a36.5 36.5 0 1 1-73 0 36.5 36.5 0 0 1 73 0"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/nc.svg b/apps/web/public/flags/nc.svg
new file mode 100644
index 00000000..fa155516
--- /dev/null
+++ b/apps/web/public/flags/nc.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-nc" viewBox="0 0 640 480">
+ <path fill="#009543" d="M0 0h640v480H0z"/>
+ <path fill="#ed4135" d="M0 0h640v320H0z"/>
+ <path fill="#0035ad" d="M0 0h640v160H0z"/>
+ <circle cx="240" cy="240" r="157.3" fill="#fae600" stroke="#000" stroke-width="5.3"/>
+ <path stroke="#000" stroke-width="6.4" d="M213.3 263.5h53.3M213.3 224h53.3M240 83.2V352"/>
+ <path fill="#000001" d="M176.6 384.4c64.2 26.3 124.4 1.7 124.4 1.7s-22.7-24.6-34.3-34.2c-11.4-9.4-44.8-9-56.2 0a489 489 0 0 0-33.9 32.5"/>
+ <ellipse cx="240" cy="312.5" fill="#000001" rx="17.6" ry="25.6"/>
+ <ellipse cx="240" cy="243.7" fill="#000001" rx="21.3" ry="13.5"/>
+ <circle cx="240" cy="181.3" r="21.3" fill="#000001"/>
+ <path fill="#000001" d="M265.6 101.9s1.8 3-2 10c-18.6 33.5-37.3 34.2-40.8 37.1-4 3.2-5.6 3-5.6 3 .3-2.9.5-14.6.7-15.7 2.9-15.7 26.5-15.5 45-31.5 2.9-2.5 2.7-3 2.7-3zm-62.4 72s4.3 12 4.8 24c1 19.2 19.4 19.7 32 19.7v-10.7c-9.5 0-17.7-1.4-24.5-15.4a123 123 0 0 0-12.3-17.6m-.5 154.6s6.7-8.3 14.6-27.7c4-10.1 13.8-16 22.7-16v-15c-20.3 0-30 7.5-31 18.6a329 329 0 0 1-6.3 40.1"/>
+ <path d="M276.8 173.9s-4.3 12-4.8 24c-1 19.2-19.4 19.7-32 19.7V207c9.5 0 17.7-1.4 24.5-15.5q5.4-9.3 12.3-17.6m.5 154.7s-6.7-8.4-14.6-27.8c-4-10.1-13.8-16-22.7-16V270c20.3 0 30 7.5 31 18.6a329 329 0 0 0 6.3 40"/>
+</svg>
diff --git a/apps/web/public/flags/ne.svg b/apps/web/public/flags/ne.svg
new file mode 100644
index 00000000..39a82b82
--- /dev/null
+++ b/apps/web/public/flags/ne.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ne" viewBox="0 0 640 480">
+ <path fill="#0db02b" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v320H0z"/>
+ <path fill="#e05206" d="M0 0h640v160H0z"/>
+ <circle cx="320" cy="240" r="68" fill="#e05206"/>
+</svg>
diff --git a/apps/web/public/flags/nf.svg b/apps/web/public/flags/nf.svg
new file mode 100644
index 00000000..fd61b25c
--- /dev/null
+++ b/apps/web/public/flags/nf.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-nf" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#fff" d="M194.8 0h250.4v480H194.8z"/>
+ <path fill="#198200" d="M0 0h194.8v480H0zm445.2 0H640v480H445.2z"/>
+ <path fill="#198200" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".7" d="M313.5 351.3v52.6l21.3.2s-6.8-45.8-3.1-52c3.7-6 7.2-5.2 7.2-5.2s13.9 4.2 15.4 3.5c1.5-.6-.2-5.2 7.2-4.6 2.4-.9 1.1-5 3.3-5.2s44.5 11.8 53.7.4c-2.4-6.4-10.7-.5-12.9-.2-2 0-10.3-4-15.1 0-4.4-3.3-24.4-5.5-24.4-5.5-2.6-2.6 47.6 1.3 50.5-.7 5.9-5.9-11-5.2-13.6-3.3a15 15 0 0 0-14.2-.6c-1.7-4.1-18-2.4-27-3.5-3-1.7-2.5-2.7-.5-3.8 19 .8 37.8 3.3 56.8 2.5 5.1-6.7-6.5-9.3-13.6-3.5-4.2-7-12.7-.3-18.4-1s-3-7.6 4.2-6.5 20.1-.4 22.5-3.7-1.4-6.7-13.3-3.5c-4-4-13 0-17.1 1.3-5.6-3.1-18.5-.5-22.8.6-4.3-2.6 22.5-7 22.5-7 10.4-.2 16.3-2 19.5-2.8 15.7-8.4-.2-9.3-8.4-3.2-5.1-4-10 .3-14.6 1.8a38 38 0 0 1-13.4 2c0-.6 12.6-8.3 12.6-8.3s15.3-1.1 18.4-1.5c3-.5 18.8-8.5-2.7-3.1-7.4.6-11.8.2-14.7.4-16.5-1.7 1.6-3.3 1.6-3.3s23.4-2.1 23.7-3.3c.4-9-19.1-4.8-19.3-4.8 0-6.5-18.2.2-18.2 0-3.5-2 2-4.1 2-4.1 4.8-1.2 12-1.6 13.9-3.1 0 0 13.6-.1 15.2-3.7-3.3-9.3-28.8 1.6-32.2 3.2-4.6 0 3-7.4 3.3-7.6.2-.3 21-1.1 30.9-14.5.7-8.1-11.6 4.6-11.6 4.6-1-10.6-13.4.7-20.6 1.5-7.3 1-7.5-3.3-2.5-4 5-.6 10.8-.1 13.6-7.8 2.9-7.7 11.4.4 13-2.4 1.5-2.9-3.1-5.3-3.1-5.3s6.4-6.6-4-6.3c-10.2.2-23.6-1.4-23.6-1.4s10.7-4.1 20.8-4c10 .3 4.6-7.1-5-7.1s-14.7-3.3-14.7-3.3l16.4-6.2-1-4.6s9.6-7.7-4-5.9l-15.2 2-27.4 4.1c-.2 0-7.4-2.2-.4-4s31.8-6.7 35.5-5.4-.4-9.2-13.6-10.5S331 184 331 184s-8.5-3.1-.6-5.7c7.9-2.7 20.4.9 20.4.9s14-4.2 2.4-6-15.3 1.6-20.6 1.8c-2.1-2.7 18.2-3.3 19.5-5.5-2.2-4-14.8 0-22.2 0-3-1.3-3.3-3.5.3-4.8 7.5-.3 14.6.1 22.1-.2-.2-4 0-8.7-.2-12.8-9.6-1.7-20.8 1.3-26.1 1 1.4-4.3 22-5.5 24.3-6.7 4.8-6-20.1 0-20.4 0-4.3-.6-4-3.4-1.3-5 6.4-.7 20.6 1 19.6-3.4-.8-4-10-1.9-13.6-1-3.8.9-9.3.2-9.3.2-2.3-3.2 21.5-1.9 21.3-4.4-.3-2.8-15.1-.8-20.2-.6-3.9-2.7 19-4.5 19.3-4.8.9-7.3-15.3 0-18.4 0s-1.5-4.6-1.5-4.6 6.3-2.9 6.1-3.3a22 22 0 0 0-5.2-2c-.5 0 0-5 0-5s5.2-4 4.8-5.1-6.2.9-6.2.9v-4.4s4.2-.4 4.6-2.4c.5-2-5-2.2-5-2.2l-2.2-23-2 21.5-7.2 1s5 2.9 6 5.8c.8 2.8-6.2 2-6.2 2s5.7 4.8 6.1 6.5c.5 1.8-7.9 2.2-7.9 2.2s7 5 7.5 7.9c.4 2.8 0 4.4 0 4.4s-11.6-10.1-19-7.3c-4 2 8.8 3 17.2 10.3 0 1.7-20.5-5-21.2-.8.4 1.1 21.9 4.2 23.4 7-7.8.3-24-1.7-23.4.9-1.7 3 15.2 1.3 22.3 3.7 2.1 2.4 1.9 4.4-1.7 4.6-6.9-3.3-22.1-5.7-22.2-1.5.1 1 15.8.4 21.5 4.1-7.6 1.8-33.4-3.5-33.5-1 .7 1.3 4.8 6.5 11.8 6.3s23.3 2.8 24.4 5-21.1-4.6-29.4-.6c-8.4 4 23.9 1.5 29.1 6.3 5.3 4.9-10.5-.4-10.5-.4s-22-3-25.2-1.5c-3.3 1.5-7 5-7 5s2.2 4.4 4.4 3.5-.7 2.7-.7 2.7 30.7 7.4 37.5 14-39-10.3-39-10.3-18.5 6.8 1 7.2c-2.2 3.3 1.2 5.3 1.2 5.3s32.4 6.8 35.7 12-22.1-5-27.9-7.9c-5.7-2.8-21.9 1.8-21.7 2.9.3 1 8 2.6 8.1 4.6.3 2-9.4 2.6-9.4 4.4 0 1.7 41 10.3 52 19.5s-32.2-11-32.2-11 2.4 3.3 0 4.2c-2.5.9-11-12.3-25-4.2-2.6 3.4 12.2 6 16 6.4-1.3 3.3-2.4 4.4 2.8 7.7s-10.3-4.8-10.3-4.4l1.1 5.7c-4.8-4-10.7-5.1-16.2-1.1 0 0-.2 4 5.5 6.4-3.1 6.3 3.5 4.3 14 10.3-15.6-4.1-16.9 3.5-5.7 5.2s41.9 2.9 49.1 12.3-10.3-3.6-12.3-4c-.4.3-.8 4.9-.8 4.9-4.7-2.7-9-5.2-14.6-6.3-.5.9-.3 2.1-.8 3-5-3.7-9.5-6.2-16.9-6.6l-.9 3.5s-6.1-7.7-18.2 0c-6.7 4.9 25.5 1.8 30.7 7.5 5.3 5.7 1.1 6.6 1.1 6.6l-13.1-4.9s-15.6-2.8-20 .7 64 12 66 21.5c1.4 5-16-5.4-31.1-9.9l-1.8 5s-6-6-12.7-7c-.2 0 1.3 6 1.3 6s-16.8-8-25.4-3.8 29.8 6.4 33.3 10.3-11.6-2.6-13 0c-1.2 2.7-19.9-4.8-19.6-1.3s2.6 5.5 2.6 5.5 38.8 3.7 40.1 8.3-21.5-2.6-21.5-2.6-2.2 3.3-.4 4.8c1.7 1.6-13.2-8.7-11.8-2-4.9-1.9-17.4-7.8-15.6-3.2s35.3 11.2 35.3 11.2-14.7 1-14 4.8c-19-11.5-18.5-4.2-18-4s-24.4-6.1-5.7 4 10 8.3 10.3 8.5c.2.2 2 5 1.5 5s-12.7-6.5-16.9-7-23.9 5.5-2.8 14.8 34-2.2 45.6-1c11.6 1.4 17 3.4 16 7-1.1 3.8-11.9-12.1-23.2 1.7-13-2.6-21.7-4-15 5.4-21-7.9-34 2.4-7.4 6.6 26 .8 42-6.4 42-6.4s4.5 8.1 10.8 2.4 6.6 2.2 6.8 2.2l6.2-2.6z"/>
+ <path fill="#fff" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M316 320.2v-3.7s-8.2-1.5-12.3-.7c-2.3-1.3-4.6-3.1-7.5-1.6-.5 1.2 5.3 4.3 7.2 4.3a41 41 0 0 0 12.7 1.7zm0 6s-8.3-3.1-11.6.4c.5 3.7 9.7 5.5 11.7 4.5 1.9-1 0-4.8-.1-5zm14 1.4v2.6s9.8 1.9 11.6-.2-8-3.5-11.7-2.4zm-.5-10.2.3 2.9s8.6 1.9 11.9-2.8-7.5 0-12.2-.1m.4-10v2s6.5 1 8-1.8c1.4-2.8-7.8 0-8-.2m-13.4-6c-1-1.3-4.5-4.8-13.8-5.8-6.5 0 11.7 9.5 13.8 5.9zm13.2-9.7-.2 2.7s22-6.6 27.1-6.1c4.6-1.3 5.6-4.5 5.4-4.5-4-2.9-22.9 2.3-32.3 7.9m.5-7.8-.3 2.6s15.5-3 19.7-6-19.2 3.5-19.4 3.4m-.6-7.6v2.6s10.3-.4 12.5-2.4c1.3-2.1-9.2-.3-12.5-.2m21.6 21.7s5.4.8 6.4-.8c-.2-2.8-6.4 1-6.4.8M330 266.6l.1 5.7s24.9-7.9 26.5-9.3c1.5-1.5 5-6-26.6 3.6m-.7-7.9v4.2s10-.8 14.6-4.5-14.6.4-14.6.3m-12-9.3.6 3.7-32.9-10.6c.1 0-1.6-5.4 32.3 6.9m.5-13.3c0 .4 0 3.6-.2 3.5 0 0-22.8-9.5-23.7-8.7-3-7 24 5.4 24 5.2zm11.1 6 .4 3.1s14-2.9 14.8-4.3-15.2 1.2-15.2 1.1zm.3 7.4c.2.7.4 3.3.4 3.3s5.6-.5 6.5-1.8c.8-1.3-6.9-1.5-6.9-1.5m-.8-17v3s15.4-3 17-4.4c1.7-1.5-17.3 1.4-17 1.4m0-8.5c0 .2-.5 3.1-.1 3.1s18.6-3 21.5-5.7c2.8-2.5-21 2.9-21.3 2.6zm-.2-14.9v3.3s11.8-2.5 14-5-14 2-14 1.7m-2-21.6.2 4.8s16-2.2 18.2-4.8c2.3-2.7-18.5 0-18.4 0m-7.4-36.5v3s-7.5-.3-5.7-1.6 5.7-1.1 5.7-1.4m7 4 .2 4.2s9.7-1 10.4-2.5-10.4-1.6-10.6-1.6zm-.6 6s.2 2.6.4 2.6 3.9-.3 4.7-1.3-4.7-1-5-1.3zm-8.2 11.8c0 .3.3 4 0 3.8s-21.2-6.1-23.2-6c-1.9 0-2.4-4.9 23.2 2.2m1.7 6.9c0 .7.5 4.6-.3 4.4-.7-.2-14.3-4.5-12.9-5.8s13.2 1.7 13.2 1.4m-1.2 29 .1 3.5s-23.7-7.2-24.5-8.4-3.1-6.8 24.4 4.9m1 8.5v3.3l-32.2-11.3s-2.6-8.4 32.1 8z"/>
+ <path fill="#fff" stroke="#000" stroke-linejoin="round" stroke-width=".8" d="m280.3 328.7-.2 3.5s-6.2-1.8-8.2-5.3c3.6-1 8.5 1.9 8.4 1.8z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ng.svg b/apps/web/public/flags/ng.svg
new file mode 100644
index 00000000..81eb35f7
--- /dev/null
+++ b/apps/web/public/flags/ng.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ng" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#008753" d="M426.6 0H640v480H426.6zM0 0h213.3v480H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ni.svg b/apps/web/public/flags/ni.svg
new file mode 100644
index 00000000..e4861f5a
--- /dev/null
+++ b/apps/web/public/flags/ni.svg
@@ -0,0 +1,129 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ni" viewBox="0 0 640 480">
+ <defs>
+ <linearGradient id="ni-f" x1="498.7" x2="500.6" y1="289.1" y2="283.4" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#510000"/>
+ <stop offset=".3" stop-color="#8a0000"/>
+ <stop offset="1" stop-color="#a00"/>
+ </linearGradient>
+ <linearGradient id="ni-g" x1="501.4" x2="502.9" y1="291.4" y2="287.4" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#ff2a2a"/>
+ <stop offset="1" stop-color="red"/>
+ </linearGradient>
+ <linearGradient id="ni-b" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#F5F549"/>
+ <stop offset="1" stop-color="#97C924"/>
+ </linearGradient>
+ <linearGradient id="ni-a">
+ <stop offset="0" stop-color="#025"/>
+ <stop offset=".5" stop-color="#04a"/>
+ <stop offset="1" stop-color="#025"/>
+ </linearGradient>
+ <linearGradient xlink:href="#ni-a" id="ni-h" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-b" id="ni-v" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-o" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-p" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-q" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-r" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-b" id="ni-u" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-x" x1="98.9" x2="125" y1="1440.2" y2="1440.2" gradientTransform="scale(4.45715 .22436)" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-j" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-l" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-m" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-i" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-b" id="ni-s" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse"/>
+ <linearGradient xlink:href="#ni-a" id="ni-y" x1="47.9" x2="61.7" y1="3054.2" y2="3054.2" gradientTransform="scale(9.12405 .1096)" gradientUnits="userSpaceOnUse"/>
+ <clipPath id="ni-c">
+ <path d="m500 226.4-63.7 110.3h127.4z"/>
+ </clipPath>
+ </defs>
+ <path fill="#0067c6" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#c8a400" d="m248 239.5 8 .5v-1.2l-3-.2.2-3.8 3.3-2.4.1-1.5-3.5 2.5q-.2-1.4-1.4-2-1.2-.4-2.3.3-1.1 1-1 2.5zm1.2-1.1.3-4q0-1 .8-1.8a1 1 0 0 1 1.5.5q.4 1.5.1 3.2l-.1 2.2zm-.2-11.2 7.8 1.8 1.8-7.6-1.1-.2-1.5 6.4-2.4-.5 1.4-5.8-1.1-.3-1.4 5.8-2-.5 1.4-6.2-1.2-.2zm2.8-10.5 7.6 2.7.4-1.1-3-1 1.2-3.5q.5-1.5-.1-3a3 3 0 0 0-2-1q-1.4.2-2 1.5-.9 1.6-1.3 3.4zm1.5-.7 1.2-3.4q.4-1 1.3-1.5a1 1 0 0 1 1.2.9c.2 1-.3 2-.6 3l-.7 1.9zm2.7-9 4.3 2.6q1.3.7 2.7.2a7 7 0 0 0 2.4-3c.4-1 .8-2.2.2-3.2q-1-1.3-2.7-2l-2.7-1.6-.6 1 4 2.4q1.1.6 1.1 1.9a6 6 0 0 1-1.2 2.5q-.7 1-2 1-1.2-.4-2.2-1.2l-2.7-1.5-.6 1zm5.8-9.3 6.3 4.8 3-3.8q1-1.4.7-3a3 3 0 0 0-2-1.4q-.8.1-1.2.4c.2-.9-.5-1.7-1.2-1.9-1-.3-2 .3-2.6 1l-2 2.5zm1.6-.3q1-1.5 2.2-2.8c.4-.4 1-1 1.5-.6.5.2.7.9.4 1.3q-.6 1.2-1.6 2.3l-.8 1.1zm2.6 2 2.3-3c.4-.4 1-1 1.6-.8q1 .3.8 1.3-.6 1.4-1.8 2.7l-1 1.3zm3-10.2 5.5 5.8 4.7-4.5-.8-.8-3.8 3.6h-.1l-4.7-5zm7-6.2 4.9 6.3 1-.7-5-6.3zm7.2-4.9a7 7 0 0 0-2 1.8 4 4 0 0 0-.1 4.2 4 4 0 0 0 1.6 1.5 4 4 0 0 0 2 .4 7 7 0 0 0 2.7-1 5 5 0 0 0 2-2q.6-1.2.3-2.4l-1 .4c.2 1.6-.8 2.4-2 3q-2.8 1.8-4.6-.5c-1.1-1.9 0-3.4 1.6-4.4 1.1-.7 2.2-1.2 3.2-.5l.9-.8a3 3 0 0 0-2-.6q-1.3 0-2.6 1zm9.5-4.7-.9 9 1.3-.5.2-2.8 4-1.6 2.2 1.8 1.2-.5-6.8-5.9zm1 1 2.7 2.2-3 1.2zm16.5-6 .5 8 4.3-.2q2-.1 3.1-1.4c1-1 1.2-2.7.7-4.1a4 4 0 0 0-2.7-2.4q-1.8-.2-3.6 0l-2.3.2zm1.2 1.1 3.5-.1a3 3 0 0 1 1.8.5q1.3 1 1.2 2.5a3 3 0 0 1-2 2.4l-1.9.3-2.2.1zm10-1.5-.5 8 7.8.4v-1.1l-6.6-.4.1-2.4 6 .3v-1.1l-5.9-.3.1-2.2 6.4.4v-1.2zm20.8 3.3-2.9 7.5 1 .4 2.4-6v-.2l.2.3 2.8 8 1.3.5 2.9-7.5-1-.4-2.3 6-.1.2-.2-.3-2.7-8zM353 176l-3.7 7-1-.5 3.6-7.1zm6 3.5a7 7 0 0 0-2.4-1 4 4 0 0 0-4 1.5 4 4 0 0 0-.6 2.1q0 1 .6 2.1.6 1 2 2a6 6 0 0 0 2.7 1 4 4 0 0 0 2.2-.7l-.8-.9c-1.4 1-2.5.3-3.6-.4q-2.9-1.9-1.4-4.5c1.2-1.8 3.1-1.3 4.7-.3 1 .7 2 1.5 1.8 2.7l1 .4a3 3 0 0 0-.3-2q-.6-1.2-1.9-2m7.6 5.7-8.3 3.4 1 .9 2.6-1 3.3 2.8-.7 2.7 1 .9 2.1-8.8zm-.3 1.4-.8 3.4-2.5-2zm6.4 4.2-6.2 5 .7 1 2.5-2 2.4 3-.7 4 .9 1.1.8-4.2q1.2.9 2.5.4 1.2-.6 1.4-1.8-.2-1.6-1.3-2.8zm-.2 1.6 2.6 3.2c.4.6.9 1.4.4 2-.3.6-1.1.6-1.6.2q-1.4-1.1-2.4-2.6l-1-1.1zm9.5 11.1-9 .4.7 1.2 2.8-.1 2.2 3.8-1.6 2.3.7 1.2 4.9-7.6zm-.7 1.2-2 3-1.5-2.8zm5.9 9.4q-.7-2.2-2.7-3.4a4 4 0 0 0-4.5 1q-1.3 1.7-.7 3.9.5 2.4 2 4.1l-.6.2.4 1.1 3.8-1.3-1.5-4.1-.8.3 1 3-1.2.5a7 7 0 0 1-2.1-3.8q-.6-1.8.5-3.2c1-1 2.6-1.3 3.7-.5s1.7 2.1 2 3.4q.5 1.5-.4 2.6-.2.1.1.4l.3.5a3 3 0 0 0 1.1-2.2 7 7 0 0 0-.4-2.5m2.3 6.3-4.5.8a4 4 0 0 0-1.9.8 3 3 0 0 0-.8 1.5v2.4q.4 1.4 1 2.3.5 1 1.2 1a4 4 0 0 0 2 0l4.5-.8-.2-1.1-4.4.8c-2 .4-2.6-.6-3-2.4s0-3 1.9-3.3l4.4-.9zm2.4 13.6-8.3-3.6.1 1.4 2.6 1 .3 4.4-2.4 1.5.1 1.3 7.7-4.7zm-1.2.7-3 1.9-.2-3.2zm-136.5 20-1.2.3 1.3 4.9 1.2-.3zm131.6 0 1.2.3-1.3 4.9-1.2-.3zm-119.2 20.5-9 1 .8 1.1 2.8-.3 2.4 3.6-1.4 2.5.8 1 4.3-7.8zm-.7 1.3-1.7 3-1.8-2.6zm4.1 3.6-5.7 5.3.8.8 4.8-4.5-2.6 7 1 .9 6.8-2-4.7 4.3.8.8 5.7-5.3-1.2-1.2-7 2 2.6-6.7zm8.3 8.4-4.8 6.5 6.2 4.6.7-.9-5.3-4 1.5-2 4.7 3.7.7-1-4.7-3.5 1.3-1.7 5 3.8.7-1zm7.8 5.8-3.7 7 1 .6 1.5-2.8 3.4 1.8.8 4 1.3.7-.9-4.2q1.5.5 2.5-.6.9-.9.6-2.1c-.2-1-1.3-1.6-2.1-2.1zm.5 1.5 3.6 2c.6.4 1.3.9 1.2 1.6 0 .7-.7 1-1.3.9q-1.7-.5-3.2-1.4l-1.5-.8zm8.6 3.2-3 7.4 1 .5 3-7.4zm7.2 2.5a7 7 0 0 0-2.6-.4 4 4 0 0 0-3.4 2.6 4 4 0 0 0 0 2.1q0 1.1 1 2a6 6 0 0 0 2.4 1.3 5 5 0 0 0 2.9.2 3 3 0 0 0 2-1.2l-1-.6c-1 1.3-2.3 1-3.6.5q-3.2-1-2.5-4c.7-2 2.7-2 4.4-1.5 1.2.4 2.3 1 2.4 2.1l1.2.2a3 3 0 0 0-.9-2 5 5 0 0 0-2.3-1.3m8 1.8-5.2 7.3 1.3.2 1.6-2.3 4.4.7.9 2.6 1.3.2-3-8.5zm.5 1.3 1.2 3.4-3.2-.5zm18.3-1.2q-1.4.2-2.4.9a4 4 0 0 0-1.7 3.9q.1 1 1 2 .6.7 1.8 1 1.1.3 2.8 0t2.6-1.2a3 3 0 0 0 1.1-2h-1.2c-.3 1.6-1.5 2-2.8 2.2q-3.3.6-4.1-2.3c-.4-2.1 1.3-3.1 3-3.5 1.3-.2 2.5-.3 3.2.7l1-.4a3 3 0 0 0-1.6-1.3 5 5 0 0 0-2.7 0m5.3-1 2.3 7.7 7.5-2.2-.4-1.1-6.3 1.9-.7-2.4 5.7-1.7-.3-1-5.7 1.6-.6-2 6-1.8-.3-1.1zm8.7-2.7 3.3 7.3 1-.5-2.8-6 7.8 3.5h.5l1-.5-3.4-7.3-1 .5 2.8 6-8-3.6zm8.8-4.1.6 1 2.8-2h.2l3.7 5.7 1-.7-3.7-5.6v-.1l2.9-2-.6-.9zm8-5.6 5.4 6 .9-.9-2.1-2.3 2.8-2.6 4 .6 1.2-1-4.3-.6q.8-1.2.2-2.6-.6-1.2-1.9-1.2c-1 0-2 .8-2.7 1.4zm1.6.1 3-2.8c.6-.4 1.4-.9 2-.5q1 .7.3 1.6-1 1.4-2.4 2.6l-1.1 1-1.8-2zm7.7-9.4 3.6 8.3.8-1-1-2.6 2.7-3.4 2.7.6.9-1-8.8-2zm1.4.3 3.5.7-2 2.5zm2.1-4.8 6.7 4.3 3.5-5.4-1-.6-2.7 4.3-.1.2h-.1l-5.7-3.8z"/>
+ <g clip-path="url(#ni-c)" transform="translate(-80)scale(.8)">
+ <path fill="#fff" d="m500 226.4-31.5 54.5-15.4 26.7h93.8l-14.7-25.4z"/>
+ <g id="ni-e">
+ <g id="ni-d">
+ <path fill="#17c0eb" stroke="#17c0eb" stroke-width=".1" d="m500 226.4-2.4 4 2.4 55 2.4-55z" opacity=".6"/>
+ <path fill="#fff" d="M500 277.5h-.1l.1 3 .1-3z"/>
+ </g>
+ <use xlink:href="#ni-d" width="100%" height="100%" transform="rotate(72 500 285.5)"/>
+ <use xlink:href="#ni-d" width="100%" height="100%" transform="rotate(144 500 285.5)"/>
+ <use xlink:href="#ni-d" width="100%" height="100%" transform="rotate(-144 500 285.5)"/>
+ <use xlink:href="#ni-d" width="100%" height="100%" transform="rotate(-72 500 285.5)"/>
+ </g>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(8 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(16 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(24 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(32 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(40 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(48 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(56 500 285.5)"/>
+ <use xlink:href="#ni-e" width="100%" height="100%" transform="rotate(64 500 285.5)"/>
+ <path fill="red" d="M500 265.8a44 44 0 0 0-29 10.8L456.4 302a45 45 0 0 0-.8 8.3h5a39.4 39.4 0 0 1 78.7 0h5a45 45 0 0 0-.7-8.3L529 276.6a44 44 0 0 0-29-10.8"/>
+ <path fill="#f60" d="M500 266.7a44 44 0 0 0-30.3 12.2l-12 20.9a44 44 0 0 0-1.3 10.4h4.3a39.4 39.4 0 0 1 78.6 0h4.3a44 44 0 0 0-1.3-10.5l-12-20.8a44 44 0 0 0-30.3-12.2"/>
+ <path fill="#ff0" d="M500 267.5a43 43 0 0 0-32 14.3l-8.7 15a43 43 0 0 0-2 13.5h3.3a39.4 39.4 0 0 1 78.7 0h3.5q0-7-2.1-13.4l-8.8-15.1a43 43 0 0 0-31.9-14.3"/>
+ <path fill="#0f0" d="M500 268.3a42 42 0 0 0-34.9 18.6l-2.8 4.9a42 42 0 0 0-4.3 18.5h2.7a39.4 39.4 0 0 1 78.6 0h2.7a42 42 0 0 0-4.3-18.5l-2.8-5a42 42 0 0 0-34.9-18.6z"/>
+ <path fill="#0cf" d="M500 269a41 41 0 0 0-41.2 41.3h1.9a39.4 39.4 0 0 1 78.6 0h1.9A41 41 0 0 0 500 269"/>
+ <path fill="#00f" d="M500 269.8a40.4 40.4 0 0 0-40.4 40.4h1.4a39 39 0 1 1 78 0h1.4A40.4 40.4 0 0 0 500 270z"/>
+ <path fill="purple" d="M500 270.7a39.6 39.6 0 0 0-39.6 40.3h.8v-.8a38.8 38.8 0 1 1 77.6.8h.8v-.8a39.6 39.6 0 0 0-39.6-39.6z"/>
+ <path fill="#510000" d="M500.4 288.1c-.7 0-1.2-.5-1.8-.6a2 2 0 0 0-.7 2.1c.3.1.3.4.9.9s.5.7.4 2c0 .4.1 1.5.6 1.6q.9.1 1.1-1.2.2-1 .7-1.6c.3-1.9-.2-2.6-1.2-3.2"/>
+ <path fill="red" d="M497.2 283.5c-.6 0-1.6 1-2 .5q-.4-.6 0-1.4a5 5 0 0 1 2.2-2.3q3.4-2 5 1c1.1 1.8 2.2 3.8 2.3 5.4 0 .5.3 1.4-.2 1.9-1.3 1.4-4.6-1.5-6.5-1-.6.1-1.4.6-2 .2-.4-.3 0-1 .3-1.3.6-.5 1.5-2.4 1.4-3.2 0-.4 0 .2-.5.2"/>
+ <path fill="url(#ni-f)" d="M497 282.6c-1.2.4-1 1-1.6 1.5.2.1.8.3 1.4-.3q.3-.3.7-.3l-.7.7a5 5 0 0 0-1.4 1.8c-.3.8-.4 1.7-.3 1.8 0 0 .4.8 1.5 1.2 2 .8 2.4 2.5 4.5 2.5 1.6 0 1.4-1.1 2.7-.9 1 .2 1.7-.7.6-1.2a14 14 0 0 0-5.4 0c-.4-4 0-2.6-.1-4.4-.1-1.7-.7-1.8 0-3.3-.5 1-1.2.8-2 .8z"/>
+ <path fill="#ff2a2a" d="m501 279.8-.1.6.3 1 .2 1q.1.4.7.6c.4.3 0 1 .3 1.1.2 0 .5-1 .5-1.2v-.7l-.5-.9-.2-.3-.8-.9-.3-.2-.2-.1z"/>
+ <path fill="url(#ni-g)" d="m501.3 287.4-2-.7c-1.3-.4-2.6-1.2-3.5-.8q-.4.1-.4.9c0 .5-.5 1.3 0 1s2.4.8 3 1.1c.3.2 1 .6 1.1 1 .2.6 0 1.8 0 2.4s.2 1.8.7 2q1 .1 1.3-1.3.3-1.2.8-1.9.6-.9 1.3-.9c.6 0 1.4.5 1.4-.2 0-.4-.4-.8-.2-1.4.1-.5-.4-.4-.9-.6z"/>
+ <path fill="#910000" d="M498.4 288.9c-.4-.2-2.3-1.5-3-1q-.4 0-.4-.3l.2-.9q0-.6.5-1c.7-.6 2.3.5 3.1.8z"/>
+ <path fill="#ff3a3a" d="M501.8 291.4c.9-1.6 1.5-1.4 2.6-1.4q.6 0 .4-.7c-.3.6-1.7 0-2.5.3-1.5.7-1.2 3.7-2 4 .8.7 1.1-1.7 1.5-2.2"/>
+ <g fill="url(#ni-h)">
+ <path fill="#fff" d="m453.1 307.6-10 17.3H557l-10-17.2h-93.8z"/>
+ <g id="ni-n" fill="url(#ni-i)">
+ <path id="ni-k" fill="url(#ni-j)" d="m449.7 321.4-4.7.3-.5.9q3.5-.6 7.2-.7c3.2 0 6.2.8 9.7.8h4.6c3.5 0 6.4-.8 9.7-.8s6.3.8 9.8.8h4.6c3.5 0 6.4-.8 9.7-.8s6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8s6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8q3.8.2 7.5.7l-.5-1-4.4-.2h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H522c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H498c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.2-.8-9.7-.8z"/>
+ <use xlink:href="#ni-k" width="100%" height="100%" y="-1.1" fill="url(#ni-l)"/>
+ <use xlink:href="#ni-k" width="100%" height="100%" y="-2.2" fill="url(#ni-m)"/>
+ </g>
+ <use xlink:href="#ni-n" width="100%" height="100%" y="-3.3" fill="url(#ni-o)"/>
+ <use xlink:href="#ni-n" width="100%" height="100%" y="-6.7" fill="url(#ni-p)"/>
+ <path fill="url(#ni-q)" d="M453.2 307.5v.2h93.7l-.1-.2zm-.2.3-.1.3H547l-.1-.3h-94zm-.2.4-.2.3h94.8l-.2-.3zm-.3.5-.3.5h95.6l-.3-.5zm-.4.7-.3.5h96.4l-.3-.5zm-.4.7-.2.4h97l-.2-.4zm-.4.7-.2.4H549l-.3-.4zm-.4.7-.3.6h98.8l-.3-.6H451z"/>
+ <path fill="url(#ni-r)" d="M457.4 312.3c3.4.7 3.7 0 3.7 0zm81.5 0s.3.7 3.7 0z"/>
+ </g>
+ <g fill="#ccd11e">
+ <g id="ni-t">
+ <path fill="url(#ni-s)" d="M530.6 297c-1.7 0-2.2.9-2.2.9-2.7 10.6-11.8 21.3-22.6 21.3h-8V330h61.4l-6.2-11c-9.7-1.4-17.6-11.3-20.1-21.1 0 0-.6-.9-2.3-.9"/>
+ <path fill="#97c924" d="M530.6 297.5q-1.1 0-1.5.3l-.3.3a34 34 0 0 1-8.4 14.7c-4 4.1-9 6.9-14.6 6.9h-7.7v9.9H559l-5.7-10q-7.2-1.2-12.4-6.8a34 34 0 0 1-8.4-14.7l-.3-.3a3 3 0 0 0-1.6-.3"/>
+ <path fill="#ede71f" d="M530.6 297.5h.4v10.8a13 13 0 0 1-2 6.4c-.5 1.6-1 1-2.3 2.9a25 25 0 0 1-5.2 1.2c-2.5.4-8 .8-10.9.1a23 23 0 0 0 9.8-6l2.1-2.5a34 34 0 0 0 3-4.4l1-2 1.3-2.9 1-3 .3-.3.6-.2z"/>
+ <path fill="#c6cb24" d="M530 298.9c-.5 6-2.3 13.2-6.7 17.8-1.6 1.3-3.7 2.6-5.6 2.3 6.7-5.5 10.8-14 12.2-20.1z"/>
+ <path fill="#9ecb34" d="M524.5 309.3c-1 2.7-4.8 6.7-8.8 10h-2.9c2.5-.2 8.3-5 11.7-10"/>
+ </g>
+ <use xlink:href="#ni-t" width="100%" height="100%" x="-15.3"/>
+ <g fill="#c6cb24">
+ <path fill="url(#ni-u)" d="M502.2 298c2.8 10.5 11.8 21.2 22.6 21.2h8.1V330h-65.8v-10.8h8c10.8 0 19.9-10.7 22.6-21.3 0 0 .6-.8 2.3-.8s2.2.8 2.2.8z"/>
+ <path fill="#97c924" d="M500 297.5q1.1 0 1.5.3l.3.3a34 34 0 0 0 8.4 14.7c4 4.1 9 6.9 14.6 6.9h7.7v9.9h-65v-10h7.7c5.5 0 10.6-2.7 14.6-6.8a34 34 0 0 0 8.3-14.7l.3-.3a3 3 0 0 1 1.6-.3"/>
+ <path fill="#ede71f" d="M499.3 297.5h-.3l-.6.3-.3.3-1 3-1.2 3-1 1.9a34 34 0 0 1-3 4.4l-2.1 2.4a23 23 0 0 1-9.8 6.1c2.8.7 4 0 6.5-.4q3.1-.4 6-1.2c1.5-2 1-1.3 1.5-2.9 1.2-2.2 3-4.2 3.4-6.7 1.6-3 1.9-8.6 1.9-10.2"/>
+ <path d="M499.3 298.9c-.4 6-2.3 13.2-6.7 17.8-1.6 1.3-3.6 2.6-5.6 2.3 6.8-5.5 10.9-14 12.3-20.1"/>
+ <path fill="#9ecb34" d="M493.8 309.3a31 31 0 0 1-8.8 10h-2.8c2.5-.2 8.2-5 11.6-10"/>
+ <path fill="#ede71f" d="m501 297.6.5.2.4.3 1 3 1.2 3 1 1.9a34 34 0 0 0 3 4.4l2.1 2.4a24 24 0 0 0 9.8 6.5c-7.3 0-10.4-.6-13-4a19 19 0 0 1-4.2-7c-.5-2-2-6.5-1.9-10.7z"/>
+ <path d="M501.5 298.9c.4 6 2.2 12 6.6 16.6 1.6 1.4 3.6 2.6 5.6 2.3a31 31 0 0 1-12.2-18.9"/>
+ </g>
+ <g id="ni-w">
+ <path fill="url(#ni-v)" d="M484.8 297c-1.8 0-2.3.9-2.3.9-2.5 9.8-11.8 22.3-21.5 23.8l-4.8 8.3h49v-11.3c-8.8-2.4-15.9-11.7-18.2-20.8 0 0-.5-.8-2.3-.8z"/>
+ <path fill="#97c924" d="M484.8 297.5q-1.2 0-1.6.3l-.3.3a43 43 0 0 1-8.1 15c-3.4 4.3-9.7 8.6-14 9l-4.3 7.5h48v-10.7a23 23 0 0 1-9.5-6 34 34 0 0 1-8.4-14.8l-.3-.3z"/>
+ <path fill="#93bc30" d="M483.4 298.9c-.6 9-5.6 20.5-11.3 22.4-1.9.7-5.1.9-6.2 1a36 36 0 0 0 17.6-23.4z"/>
+ <path fill="#ede71f" d="M484.8 297.5h-.5v10.8q.2 3.3 2 6.4l.2.5c.5 1.1.8 1.5 2.3 2.7a22 22 0 0 0 14.8 4q-1.7-1.4-3.4-2.4l4.5-.5a23 23 0 0 1-9.7-6.2l-1.4-1.5-.6-.8a35 35 0 0 1-3.2-4.5l-1-2-1.6-3.9-.6-2-.3-.3-.6-.2-1-.1z"/>
+ <path d="M485.4 298.9c.5 6 2.3 13.2 6.7 17.8 1.6 1.3 3.6 2.6 5.6 2.3a39 39 0 0 1-12.3-20.1"/>
+ <path fill="#9ecb34" d="M489.6 307.3a35 35 0 0 0 14.6 14.9h2.5c-4.4-2.4-11.5-5.8-17-15z"/>
+ </g>
+ <use xlink:href="#ni-w" width="100%" height="100%" x="-15.4" fill="#c6cb24"/>
+ </g>
+ <path fill="#fff" d="M556.5 324.7c-.6.2-4.4-.2-6.4 0l-1.3.3h-3.3c-3.6 0-6.7 1-10.1 1s-6.5-1-10-1H522c-3.6 0-6.7 1-10.1 1s-6.5-1-10-1h-3.4c-3.6 0-6.7 1-10 1-3.5 0-6.5-1-10.1-1H475c-3.6 0-6.6 1-10 1s-6.5-1-10.1-1h-3.4c-2.8 0-6.2.6-8.9.8l-6.3 10.9h127.4z"/>
+ <path fill="url(#ni-x)" d="M548 323.1h-.6c-3.2.1-5.6 1.1-11.2 1.1s-6.2-1-12.6-.8c-6 0-8.4 1.2-11.7 1.2s-8.4-.7-12.5-.3-8.8 1.3-12 1.3c-3.9 0-7.8-.7-11.8-.3s-6 1.5-11.1 1.5c-4.4 0-9-.7-12.8-.7-3.4 0-7.2 1-10 1.4l-.9 1.5c2.3-.3 8.6-1.3 10.8-1.3 2.4 0 10.7.5 15.3.3 4.7-.1 5.2-1.2 10.7-1.2 3.8 0 6.6.4 10.5.4 2.5 0 4.7-1.2 8.4-1.2l2.8-.1c3.1-.5 8.4 0 12 .2 3.3.2 5.5-.6 9-.7l4.4-.1c3.5-.2 6.4.6 9.7.6 3.2-.2 6.4-1 9.8-1l4.5-.2c2.3 0 5.9 0 8.3.5l-.8-1.4c-2.4-.1-5.3-.7-8.2-.7"/>
+ <g id="ni-A">
+ <path id="ni-z" fill="url(#ni-y)" d="M450.3 334.8c-3.4 0-6.4.8-9.6.9l-3.6-.3-.5.8h6c3.5 0 6.4-.8 9.6-.9 3.3.1 6.2 1 9.7 1h4.5c3.4 0 6.4-.9 9.6-1 3.3.1 6.3 1 9.7 1h4.5c3.5 0 6.4-.9 9.7-1 3.2.1 6.1 1 9.6 1h4.5c3.4 0 6.4-.9 9.7-1 3.2.1 6.2 1 9.6 1h4.5c3.5 0 6.4-.9 9.6-1 3.3.1 6.2 1 9.7 1h4.5l1.8-.1-.5-.8-3.2.3c-3.3 0-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.5 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5z"/>
+ <use xlink:href="#ni-z" width="100%" height="100%" y="-1.3"/>
+ <use xlink:href="#ni-z" width="100%" height="100%" y="-2.6"/>
+ </g>
+ <use xlink:href="#ni-A" width="100%" height="100%" y="-3.9"/>
+ <use xlink:href="#ni-A" width="100%" height="100%" y="-7.7"/>
+ <path fill="#97c924" d="m443.9 324.7-2.5 4.2c2.9-.5 7.1-1.7 10.7-1.7s8 .9 12.4 1c5 0 7-1.2 11-1.6s8 .5 12 .6c3.1 0 7.9-1.1 12-1.5 4-.5 7.7.3 12.5.3 4.9.1 5.7-1.2 11.6-1.3 6.4-.1 7 .9 12.6.9 4.2.2 7.9-.9 11.7-1.1s5.5 0 8.3 0l-1.9-3.2-101.3 2.3z"/>
+ <path fill="#fff" d="m550 324.6 4 .3 2.9.3-.4-.5c-.6.2-4.4-.2-6.4 0z"/>
+ </g>
+ <path fill="#c8a400" d="m320 179.9-25.7 44.5L268 270h104l-25.7-44.6zm0 2.4 25.2 43.7 24.7 42.8h-99.8l25.2-43.8z"/>
+</svg>
diff --git a/apps/web/public/flags/nl.svg b/apps/web/public/flags/nl.svg
new file mode 100644
index 00000000..e90f5b03
--- /dev/null
+++ b/apps/web/public/flags/nl.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-nl" viewBox="0 0 640 480">
+ <path fill="#ae1c28" d="M0 0h640v160H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#21468b" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/no.svg b/apps/web/public/flags/no.svg
new file mode 100644
index 00000000..a5f2a152
--- /dev/null
+++ b/apps/web/public/flags/no.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-no" viewBox="0 0 640 480">
+ <path fill="#ed2939" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M180 0h120v480H180z"/>
+ <path fill="#fff" d="M0 180h640v120H0z"/>
+ <path fill="#002664" d="M210 0h60v480h-60z"/>
+ <path fill="#002664" d="M0 210h640v60H0z"/>
+</svg>
diff --git a/apps/web/public/flags/np.svg b/apps/web/public/flags/np.svg
new file mode 100644
index 00000000..62428568
--- /dev/null
+++ b/apps/web/public/flags/np.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-np" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="np-a">
+ <path fill-opacity=".7" d="M0-16h512v512H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#np-a)" transform="translate(0 15)scale(.9375)">
+ <g fill-rule="evenodd">
+ <path fill="#ce0000" stroke="#000063" stroke-width="13.8" d="M6.5 489.5h378.8L137.4 238.1l257.3.3L6.6-9.5v499z"/>
+ <path fill="#fff" d="m180.7 355.8-27 9 21.2 19.8-28.5-1.8 11.7 26.2-25.5-12.3.5 28.6-18.8-20.9-10.7 26.6-9.2-26.3-20.3 20.6 1.8-27.7L49 409l12.6-25-29.3.6 21.5-18.3-27.3-10.5 27-9L32.2 327l28.4 1.8L49 302.6l25.6 12.3-.5-28.6 18.8 20.9 10.7-26.6 9.1 26.3 20.4-20.6-1.9 27.7 27-11.4-12.7 25 29.4-.6-21.5 18.3zm-32.4-184.7-11.3 8.4 5.6 4.6a94 94 0 0 0 30.7-36c1.8 21.3-17.7 69-68.7 69.5a70.6 70.6 0 0 1-71.5-70.3c10 18.2 16.2 27 32 36.5l4.7-4.4-10.6-8.9 13.7-3.6-7.4-12.4 14.4 1-1.8-14.4 12.6 7.4 4-13.5 9 10.8 8.5-10.3 4.6 14 11.8-8.2-1.5 14.3 14.2-1.7-6.7 13.2z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/nr.svg b/apps/web/public/flags/nr.svg
new file mode 100644
index 00000000..ff394c41
--- /dev/null
+++ b/apps/web/public/flags/nr.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-nr" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="nr-a">
+ <path fill-opacity=".7" d="M-54.7 0H628v512H-54.7z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#nr-a)" transform="translate(51.3)scale(.9375)">
+ <path fill="#002170" d="M-140 0H884v512H-140z"/>
+ <path fill="#ffb20d" d="M-140 234.1H884V278H-140z"/>
+ <path fill="#fff" d="m161.8 438-33-33-10.5 45.4-12-45-31.9 34 12.1-45L42 407.9l33-33-45.4-10.6 45-12-34-31.8 45 12L72 288l33 33 10.6-45.4 12 45 31.8-34-12 45 44.5-13.5-33 33 45.4 10.5-45 12 34 32-45-12.2z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/nu.svg b/apps/web/public/flags/nu.svg
new file mode 100644
index 00000000..4067baff
--- /dev/null
+++ b/apps/web/public/flags/nu.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-nu" viewBox="0 0 640 480">
+ <path fill="#fedd00" d="M0 0h640v480H0z"/>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+ <circle cx="160" cy="120" r="40.8" fill="#012169"/>
+ <path fill="#fedd00" d="m160 79.2 24 73.8-62.8-45.6h77.6L136 153M66.7 98.3l14 43.4L43.9 115h45.7l-37 26.8m200.7-43.5 14.1 43.4-36.9-26.8h45.7l-37 26.8M160 178.3l14.1 43.4-37-26.8h45.7l-37 26.8M160 18.3l14.1 43.4-37-26.8h45.7l-37 26.8"/>
+</svg>
diff --git a/apps/web/public/flags/nz.svg b/apps/web/public/flags/nz.svg
new file mode 100644
index 00000000..935d8a74
--- /dev/null
+++ b/apps/web/public/flags/nz.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-nz" viewBox="0 0 640 480">
+ <defs>
+ <g id="nz-b">
+ <g id="nz-a">
+ <path d="M0-.3v.5l1-.5z"/>
+ <path d="M.2.3 0-.1l1-.2z"/>
+ </g>
+ <use xlink:href="#nz-a" transform="scale(-1 1)"/>
+ <use xlink:href="#nz-a" transform="rotate(72 0 0)"/>
+ <use xlink:href="#nz-a" transform="rotate(-72 0 0)"/>
+ <use xlink:href="#nz-a" transform="scale(-1 1)rotate(72)"/>
+ </g>
+ </defs>
+ <path fill="#00247d" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+ <g transform="translate(-111 36.1)scale(.66825)">
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="translate(900 120)scale(45.4)"/>
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="matrix(30 0 0 30 900 120)"/>
+ </g>
+ <g transform="rotate(82 525.2 114.6)scale(.66825)">
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="rotate(-82 519 -457.7)scale(40.4)"/>
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="rotate(-82 519 -457.7)scale(25)"/>
+ </g>
+ <g transform="rotate(82 525.2 114.6)scale(.66825)">
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="rotate(-82 668.6 -327.7)scale(45.4)"/>
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="rotate(-82 668.6 -327.7)scale(30)"/>
+ </g>
+ <g transform="translate(-111 36.1)scale(.66825)">
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#fff" transform="translate(900 480)scale(50.4)"/>
+ <use xlink:href="#nz-b" width="100%" height="100%" fill="#cc142b" transform="matrix(35 0 0 35 900 480)"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/om.svg b/apps/web/public/flags/om.svg
new file mode 100644
index 00000000..4f1461a0
--- /dev/null
+++ b/apps/web/public/flags/om.svg
@@ -0,0 +1,115 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-om" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="om-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#om-a)">
+ <path fill="#ef2d29" fill-rule="evenodd" d="M-3.3-21.6H699v553H-3.3z"/>
+ <path fill="#009025" fill-rule="evenodd" d="M174.6 317.3h535.7V525H174.6z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M174.6-35.4h564.9v190h-565z"/>
+ <g stroke="#ef2d28">
+ <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 111.3 -13.4)">
+ <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.3" ry="11.8"/>
+ <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1.3" rx="10.7" ry="10.9"/>
+ <path stroke-width="1.3" d="m65 396 9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+ <ellipse cx="68.9" cy="426.8" stroke-width="1.3" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+ <path stroke-width="1.3" d="m39 474.8-10.7 10.6m17.8-10.6-10.7 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m-17.7-10.6L78 485.4m46-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m0-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6 10.7 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6M85 474.8l10.6 10.6m-46-10.6 10.5 10.6m-17.7-10.6 10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535 71 545.7M88.6 535 78 545.7M95.7 535 85 545.7m17.7-10.7L92 545.7m18-10.7-10.7 10.7M117 535l-10.6 10.7M88.6 535 78 545.7m46-10.7-10.6 10.7m17.7-10.7-10.6 10.7m17.7-10.7-10.6 10.7m17.7-10.7-10.6 10.7m0-10.7 10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7 10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535 39 545.7"/>
+ </g>
+ <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+ <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.3" ry="11.8"/>
+ <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1.3" rx="10.7" ry="10.9"/>
+ <path stroke-width="1.3" d="m65 396 9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+ <ellipse cx="68.9" cy="426.8" stroke-width="1.3" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+ <path stroke-width="1.3" d="m39 474.8-10.7 10.6m17.8-10.6-10.7 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m-17.7-10.6L78 485.4m46-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m17.7-10.6-10.6 10.6m0-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6 10.7 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6m-17.7-10.6 10.6 10.6M85 474.8l10.6 10.6m-46-10.6 10.5 10.6m-17.7-10.6 10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535 71 545.7M88.6 535 78 545.7M95.7 535 85 545.7m17.7-10.7L92 545.7m18-10.7-10.7 10.7M117 535l-10.6 10.7M88.6 535 78 545.7m46-10.7-10.6 10.7m17.7-10.7-10.6 10.7m17.7-10.7-10.6 10.7m17.7-10.7-10.6 10.7m0-10.7 10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7 10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535 39 545.7"/>
+ </g>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(-.32136 -.12684 -.20158 .20221 345.9 61.4)"/>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.2" d="m545.7 779.5-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4s-31.9-35.4-78-92z" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)"/>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="m547.3 786.9-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(-.19334 0 0 .17062 142.8 -8.1)"/>
+ <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a10 10 0 0 0 5 4.4 28 28 0 0 0 6.3 3.8 12 12 0 0 0 7.5.6l5.6-4.4c.4-2 .8-4.9 1.3-6.9a33 33 0 0 0-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(-.13978 0 0 .12414 123 20.4)"/>
+ <path fill="none" stroke-width="1.8" d="m389.4 681.7.6-.6c-1.5 1.5-.9.8 2.5-1.3q3.5-1.6 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 0 1 3.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(-.13978 0 0 .12414 124.9 19.7)"/>
+ <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 0 0 5.6 3.1q3.2 1.3 5.6 3.1c2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(-.13978 0 0 .12414 127 18.2)"/>
+ <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a26 26 0 0 1 1.2 8c0 3.7-1 4.4-1.2 7.6a19 19 0 0 1-3.8 7.5q-.3 1-1.2 1.2" transform="matrix(-.13978 0 0 .12414 127.4 17.8)"/>
+ <path fill="none" stroke-width="2.3" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8l-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a37 37 0 0 1 4.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 0 0 4.4-5c3.3-.8 5.5-.5 7.5 1.3a17 17 0 0 1 4.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(-.09924 0 0 .09799 109.5 38.8)"/>
+ <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7q-.9 4-.7 8.7c.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8q3.6.7 8.1.7c2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8q2.1-2.6 5-5.6c1.6-2.1 2.7-3.3 3.8-5.6q-1.7 3.8-3.1 7.5c-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(-.12338 0 0 .12229 111.4 19.3)"/>
+ <path fill="none" stroke-width="1.2" d="M541.3 799.2v.7q.2-2.6-.7 2.5c-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a10 10 0 0 0-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15 15 0 0 0 7 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a11 11 0 0 0 5.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a17 17 0 0 1 4.3-4.4 8 8 0 0 1 3.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8l5-3.8a24 24 0 0 1 7.5-3.8c2.9 0 5-.3 6.2 1.3q2.6 2 3.8 6.3c.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1q3.6-.2 6.2-1.2" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)"/>
+ <g fill-rule="evenodd" stroke-width="1.3" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)">
+ <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+ <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+ <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0 14.2 39m-14.2 0 14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+ </g>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(.32136 -.12684 .20158 .20221 -181.5 60.8)"/>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.2" d="m545.7 779.5-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4s-31.9-35.4-78-92z" transform="matrix(.19848 0 0 .17744 19.1 -14)"/>
+ <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="m547.3 786.9-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(.19334 0 0 .17062 21.6 -8.8)"/>
+ <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a10 10 0 0 0 5 4.4 28 28 0 0 0 6.3 3.8 12 12 0 0 0 7.5.6l5.6-4.4c.4-2 .8-4.9 1.3-6.9a33 33 0 0 0-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(.13978 0 0 .12414 41.4 19.7)"/>
+ <path fill="none" stroke-width="1.8" d="m389.4 681.7.6-.6c-1.5 1.5-.9.8 2.5-1.3q3.5-1.6 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 0 1 3.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(.13978 0 0 .12414 39.5 19)"/>
+ <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 0 0 5.6 3.1q3.2 1.3 5.6 3.1c2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(.13978 0 0 .12414 37.4 17.6)"/>
+ <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a26 26 0 0 1 1.2 8c0 3.7-1 4.4-1.2 7.6a19 19 0 0 1-3.8 7.5q-.3 1-1.2 1.2" transform="matrix(.13978 0 0 .12414 37 17.2)"/>
+ <path fill="none" stroke-width="2.3" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8l-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a37 37 0 0 1 4.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 0 0 4.4-5c3.3-.8 5.5-.5 7.5 1.3a17 17 0 0 1 4.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(.09924 0 0 .09799 55 38.2)"/>
+ <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7q-.9 4-.7 8.7c.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8q3.6.7 8.1.7c2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8q2.1-2.6 5-5.6c1.6-2.1 2.7-3.3 3.8-5.6q-1.7 3.8-3.1 7.5c-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(.12338 0 0 .12229 53 18.6)"/>
+ <path fill="none" stroke-width="1.2" d="M541.3 799.2v.7q.2-2.6-.7 2.5c-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a10 10 0 0 0-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15 15 0 0 0 7 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a11 11 0 0 0 5.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a17 17 0 0 1 4.3-4.4 8 8 0 0 1 3.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8l5-3.8a24 24 0 0 1 7.5-3.8c2.9 0 5-.3 6.2 1.3q2.6 2 3.8 6.3c.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1q3.6-.2 6.2-1.2" transform="matrix(.19848 0 0 .17744 19.1 -14)"/>
+ <g fill-rule="evenodd" stroke-width="1.3" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+ <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+ <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+ <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0 14.2 39m-14.2 0 14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+ <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+ </g>
+ <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+ <path stroke-width="1.3" d="M305.6 396.9c0 124 .5 170.7-5.6 177.1-5.8 6.9-167.1 0-167.1 35.4s132.8 71 172.7 71q79.8 0 79.7-106.4V397h-79.7z" transform="matrix(1.3333 0 0 1 -141.7 0)"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="matrix(1 0 0 .99999 0 35.4)"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="scale(1 .99999)"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="matrix(1 0 0 .99999 0 17.7)"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="matrix(1 0 0 .99999 0 53.1)"/>
+ <ellipse cx="256.9" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+ <ellipse cx="292.3" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+ <ellipse cx="327.8" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+ <ellipse cx="363.2" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+ <ellipse cx="398.6" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+ <ellipse cx="434.1" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+ <path stroke-width="1.3" d="M265.8 485.4 372 581.1m-95.6-95.7 95.7 85M290.5 489l81.6 70.9m-71-71 71 60.3M311.8 489l60.2 49.6M322.4 489l49.6 39m-39-39 39 28.3M343.8 489l28.4 21.2M354.3 489l17.8 14.2M365 489l7 7m-106.2 0L372 591.8m0-106.3L255 591.7m106.3-106.3-102.7 92.2m88.6-88.6-81.5 70.8m70.8-70.8-70.8 60.2M326 489l-60.2 49.6m49.6-49.6-49.6 39m39-39-39 28.3M294 489l-28.3 21.2m17.7-21.2-17.7 14.2m7-14.2-7 7m106.3 0L255 602.5m117-95.7L255 613m117-95.7L255 623.6m117-95.7L255 634.4m117-95.7L255 644.9m117-95.7L255 655.5m117-95.7L255 666.1m117-95.6L255 676.8m117-95.7-109.9 99.2M372 591.7l-99.2 88.6m95.6-74.4-78 70.9M365 620l-63.8 56.7m56.7-39-32 28.3m-60.1-159.4 102.7 92.1m-102.7-81.5 102.7 92.2M265.8 528l99.2 88.5m-99.2-78 99.2 88.7m-99.2-78 95.6 85m-99.2-77.9 95.7 85M262.2 567l88.6 78m-92.1-71 88.6 78M255 581l85 74.4m-85-63.8 81.5 70.9M255 602.3l71 63.7"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="matrix(1 0 0 .99999 0 70.9)"/>
+ <path stroke-width="1.3" d="m255.1 613 63.8 56.7m-63.8-46 56.7 49.5m-56.7-39 49.6 42.6m-49.6-32 35.5 32M255 655.5l28.4 24.8M255 666.1l17.7 14.2"/>
+ <ellipse cx="256.9" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+ <ellipse cx="292.3" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+ <ellipse cx="327.8" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+ <ellipse cx="363.2" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+ <ellipse cx="398.6" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+ <ellipse cx="434.1" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+ <path stroke-width="1.3" d="m113.4 652 127.5-74.4m-134.6 70.8 120.5-70.8m-124 63.7 109.8-63.7M99.2 634.3l95.7-56.7M92 627.2l88.6-49.6m-85 39 60.2-35.5M92 609.4l46-28.3m-46 17.7 32-17.7m0 74.4 120.4-70.9M134.7 659 248 591.7m-102.7 70.9 106.3-63.8m-95.7 67.3 88.6-53.1M170 666.1l78-46m-67.4 49.6 67.3-39m-56.7 42.5 53.2-31.9m-39 32 42.5-24.9m-28.3 28.4L248 659m-14 17.8 17.7-10.6"/>
+ <path stroke-width="1.3" d="M265.8 396.9v17.7a321 321 0 0 0 106.2 0v-17.7a321 321 0 0 1-106.2 0z" transform="matrix(0 1 -.99999 0 655.5 308.3)"/>
+ <path stroke-width="1.3" d="m49.6 623.6 42.5-35.4m-42.5 10.6 42.5 42.5"/>
+ <path stroke-width="1.3" d="m260.1 388 5.6 26.6c35.5 5.9 65.3 5.9 100.8 0l11.1-26.6c-35.4 5.9-82 5.9-117.5 0z" transform="matrix(0 .63333 -.8 0 423.8 416.3)"/>
+ <path stroke-width="1.3" d="M258.7 350.8v-17.9c-10.7.2-17.8-10.5-17.8-21.2l-35.4.1c0 10.6-7 21.3-17.7 21.3v17.7z" transform="matrix(1.4983 0 0 1 -15.6 53.1)"/>
+ <path stroke-width="1.4" d="M296 343.7h45.6V365H296zm3.9-21.3h37.9v21.3h-38zm0-21.2h37.9v21.2h-38zm3.8-28.4H334v28.4h-30.3zm-1.3-24.8h33v24.8h-33z"/>
+ <ellipse cx="237.4" cy="161.2" stroke-width="1.3" rx="42.5" ry="33.7" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+ <path stroke-width="1.3" d="M258.7 159.4c0 9.3 10.6 24.8 10.6 24.8-7.7 6.2-20.2 10.7-31.9 10.7s-26.3-2.6-31.9-10.7c0 0 10.6-15.4 10.6-24.7s-10.6-21.3-10.6-21.3a55 55 0 0 1 32-10.6c11.6 0 24 4.5 31.8 10.6 0 0-10.6 12-10.6 21.3z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+ <path stroke-width="1.3" d="M251.6 159.4c0 9.3 10.6 28.4 10.6 28.4-7.7 6-13 7-24.8 7s-19.2 1.1-24.8-7c0 0 10.6-19 10.6-28.4s-10.6-24.8-10.6-24.8c7.7-6 13-7 24.8-7 11.7 0 17.1 1 24.8 7 0 0-10.6 15.5-10.6 24.8z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 75.3 60.2)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 163.2 60.2)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 119.3 60.2)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 119.3 24.8)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0702 0 0 1 80 226.8)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0702 0 0 1 140.6 226.8)"/>
+ <path stroke-width="1.3" d="M212.6 311.8h49.6l-24.8 31.9z" transform="matrix(1.0702 0 0 1 64.8 53.1)"/>
+ <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.427 0 0 1.3333 40.7 167.7)"/>
+ </g>
+ <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 18.8 -19.1)">
+ <rect width="81.5" height="21.3" x="262.2" y="524.4" stroke-width="1.2" rx="4.3" ry="3.7"/>
+ <path stroke-width="1.2" d="M368.5 506.7c-9.8 0-17.7 8.3-17.7 18.5v16.1a18 18 0 0 0 17.7 18.5 18 18 0 0 0 17.7-18.5v-16a18 18 0 0 0-17.7-18.6zm0 7c-5.9 0-10.6 6.7-10.6 14.9v9.3c0 8.2 4.7 14.8 10.6 14.8s10.6-6.6 10.6-14.8v-9.3c0-8.2-4.7-14.8-10.6-14.8zm-92.1-3.5c-6 0-10.6 6.6-10.6 14.9v16.4c0 8.2 4.7 14.8 10.6 14.8s10.6-6.6 10.6-14.8V525c0-8.3-4.7-14.9-10.6-14.9zm0-7a18 18 0 0 0-17.7 18.5v23.2a18 18 0 0 0 17.7 18.5c9.8 0 17.7-8.3 17.7-18.5v-23.2a18 18 0 0 0-17.7-18.6z"/>
+ <path stroke-width="1.2" d="M248 517.3c-5.9 0-10.6 6.6-10.6 14.8v3.9c0 8.2 4.7 14.8 10.6 14.8 6 0 10.7-6.6 10.7-14.8v-3.9c0-8.2-4.8-14.8-10.7-14.8zm0-7a18 18 0 0 0-17.7 18.5v10.6a18 18 0 0 0 17.7 18.5c9.8 0 17.8-8.3 17.8-18.5v-10.6a18 18 0 0 0-17.8-18.6z"/>
+ <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8s10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 0 0-17.8 18.4V272a18 18 0 0 0 17.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 0 0-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -655.5 242.2)"/>
+ <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8s10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 0 0-17.8 18.4V272a18 18 0 0 0 17.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 0 0-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -425.2 245.7)"/>
+ <rect width="42.5" height="21.3" x="375.6" y="524.4" stroke-width="1.2" rx="2.3" ry="3.7"/>
+ <rect width="24.8" height="28.4" x="336.6" y="520.9" stroke-width="1.2" rx="1.3" ry="4.9"/>
+ <rect width="24.8" height="28.4" x="219.7" y="520.9" stroke-width="1.2" rx="1.3" ry="4.9"/>
+ <rect width="49.6" height="35.4" x="141.7" y="517.3" stroke-width="1.2" rx="2.6" ry="6.1"/>
+ <rect width="46.1" height="35.4" x="450" y="520.9" stroke-width="1.2" rx="2.5" ry="6.1"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pa.svg b/apps/web/public/flags/pa.svg
new file mode 100644
index 00000000..8dc03bc6
--- /dev/null
+++ b/apps/web/public/flags/pa.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pa" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="pa-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#pa-a)">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M92.5 0h477.2v480H92.4z"/>
+ <path fill="#db0000" fill-rule="evenodd" d="M323 3.6h358v221.7H323z"/>
+ <path fill="#0000ab" fill-rule="evenodd" d="M3.2 225.3h319.9V480H3.2zm211.6-47.6-42-29.4-41.7 29.6 15.5-48L105 100l51.6-.4 16-48 16.3 47.9h51.6l-41.5 30 15.9 48z"/>
+ <path fill="#d80000" fill-rule="evenodd" d="m516.9 413.9-42.4-27.7-42.1 28 15.6-45.6-42-28 52-.5 16.2-45.4 16.4 45.3h52l-41.8 28.5 16 45.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pc.svg b/apps/web/public/flags/pc.svg
new file mode 100644
index 00000000..5202d6d6
--- /dev/null
+++ b/apps/web/public/flags/pc.svg
@@ -0,0 +1,33 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-pc" viewBox="0 0 640 480">
+ <path fill="#003da5" d="M0 0h640v480H0z"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(164.3 311.5 242.2)"/>
+ <path id="pc-a" fill="#fff" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-width=".7" d="m472.9 262.8-8.4 1.5-1.1 8.5-4.1-7.5-8.4 1.6 5.8-6.2-4-7.5 7.7 3.6 5.8-6.2-1 8.5z"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-10.3 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-30.9 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-20.6 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-51.5 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-72.1 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-61.8 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-41.2 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-92.7 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-113.3 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-103 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-133.9 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-154.5 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-144.2 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-123.6 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-82.4 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-175.1 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(174.6 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(143.7 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(123.1 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(133.4 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(154 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(-164.8 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(112.8 311.5 242.2)"/>
+ <use xlink:href="#pc-a" width="1000" height="700" transform="rotate(102.5 311.5 242.2)"/>
+ <path fill="none" stroke="#00aec7" stroke-width="13.7" d="M444.9 313A151 151 0 0 1 293 392"/>
+ <path fill="#fff" d="M474.3 288.5S449 277.2 398 277s-105.2 13.9-135.1 13.5c-30-.3-38.8-.3-56.7-3.7 0 0 27 9 55.8 11.6 28.7 2.7 95.2-10.4 128.4-12.5 34-2.1 60.4-2.1 83.8 2.6"/>
+ <path fill="#00aec7" d="M275 303.2s19.2 1 56-3c37-4 63-9.4 92.1-10.2s61.2 4.4 68 6.1c0 0-48.5-1.3-68.8 1.6s-73 9.5-100.7 10.2-37.3-3.2-46.6-4.7m-80.5-27.8s51 13.6 97.2 4.7c52.3-10.2 83-10 106.4-10 23.4-.2 47.9 5.7 47.9 5.7s-96-100.2-196.5-153.3c0 0-7.5 84.5-55 152.9"/>
+ <path fill="#fff" d="M274.2 197.5s-1.4-5.3-8.3-4.5c0 0 4.4-2 6.4-1 2 1.1 2.4 1.4 2 5.5m-16.8-9.4s1.5-.5 2.2-.3c0 0 1 3.3 3.2 4.5 0 0-3.8-.3-5.4-4.2m22.2 5a13 13 0 0 0-8.7-4.8c-1.8 0-6 3.5-6 3.5-1-2-.5-3.4-.5-3.4 2 .2 3.7 1 3.7 1-.8-2.6-2-3.8-2-3.8 4-1 8.8 2.5 8.8 2.5a17 17 0 0 0-11-6.8c-1.2-.1-2.7 1.6-2.7 1.6-7.8 0-9.9 4.3-9.9 4.3 3.3 5.1 10 6.3 10 6.3-11.8-1.3-11.5 8-11.5 8l10.9-5.7c-4.2 24.1-21 35-22.4 36.3-1.4 1.4-.5 3 1.5 3.2 1.1 0 2.5 1 6.2-3.4a65 65 0 0 0 16.4-35.4l.2.2c1.2 2.9.4 5.4.6 7.3s4.4 6 4.4 6 2.3-4.5 2-7.1c-.5-2.7-5.5-7.6-5.5-7.6 7.8-1.5 8.2 11.6 8.2 11.6 3-3.5 2.4-7.3 2.4-7.3s6.3-4.6 4.9-6.4"/>
+</svg>
diff --git a/apps/web/public/flags/pe.svg b/apps/web/public/flags/pe.svg
new file mode 100644
index 00000000..33e6cfd4
--- /dev/null
+++ b/apps/web/public/flags/pe.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pe" viewBox="0 0 640 480">
+ <path fill="#D91023" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
+</svg>
diff --git a/apps/web/public/flags/pf.svg b/apps/web/public/flags/pf.svg
new file mode 100644
index 00000000..bea0354d
--- /dev/null
+++ b/apps/web/public/flags/pf.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pf" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="pf-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#pf-a)">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M80 0h480v480H80z"/>
+ <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M277.3 340.8s10.8-8.8 21.4-8.8 13.4 7.3 20.8 7.9c7.3.6 13.4-7.3 22.5-7.6s20.5 6.4 20.5 6.4l-39.8 12-45.4-10zm-22.9-13 135.4.7s-11.7-12.7-25.5-13c-13.8-.2-10 6-20.5 6.8-10.6.9-13.2-6.4-22.9-6.2s-15.2 6.2-22.5 6.5-16.7-7.3-22.3-7-25.5 8.7-25.5 8.7l3.8 3.6zm-17.3-16 167 .5c2.7-3.8-8.2-12.9-18.1-13.7-8.2.3-14 8.5-20.8 8.8s-14.4-8.5-22-8.2-15.5 8.2-23.1 8.2-13.2-8.5-22.9-8.5-14 9.3-21.4 8.8-13.8-9.4-20.8-9.4-18.7 10.5-21 10c-2.4-.7 2.9 4.3 3.1 3.4z"/>
+ <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="m301.3 218.9 38.4 10.2v-54.8c-17.6 1-32.2-33.4-1.2-35.7-30.5-4.4-34 3.5-37.5 12z"/>
+ <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-linecap="round" stroke-width="5" d="m277 258.7 86.7.3"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="4" d="m281.1 238 10.3 13.7m-10.3 0 11.1-13.5M287 237l-.3 8.5m10.8-7.6 10.3 13.8m-10.3 0 11.1-13.5m-5.2-1.2-.3 8.5m11.1-7.6 10.3 13.8m-10.3 0 11.1-13.5m-5.2-1.2-.3 8.5m11.7-7.6 10.2 13.8m-10.2 0 11.1-13.5m-5.3-1.2-.2 8.5m11-7.6 10.3 13.8m-10.2 0 11.1-13.5M354 237l-.3 8.5"/>
+ <path fill="#ef7d08" fill-rule="evenodd" d="m218.7 259.6 36.9.3v-23.1l-42.2-2.1zm-1.8-32 39.3 3.9-.3-16.4-38.4-15.3-.6 27.9zm8-32.7 30.1 14.6 4.3-4.5s-2.8-1.9-2.6-3.7c0-1.7 2.8-2 2.8-4 0-1.7-3-2-3.1-3.7-.2-2 2.4-4 2.4-4l-27.2-23.7-6.8 29zm198 65h-39l-.3-22.6 42.8-3.2zM384.2 232l46.3-5.6-10-26.7-36.6 15.6zm33.7-39.6L384.5 210c-.5-2-.9-3.8-3.2-5.3 0 0 2-1.2 2-3.2s-2.6-2.4-2.6-3.5 2.4-2.2 2.6-4.9c-.3-1.8-2.6-4.4-2.2-4.9l26-19.8zm-72.4 39.1 16.7-.7.3-6.7zm-51-.5-17.5-.5v-7l17.6 7.5zm0-2-17.5-9v-11.8s-2 .3-1.8-2c.1-4.9 12.9 8.9 19.4 13.4zm51-1.1v-7.7s15.8-14.2 19.1-16.9c0 3-1.8 5.2-1.8 5.2v11.2zM243 163.8l17.8 19.7c.4-1.8 4.5-2.1 8.6-1.8s7.3-.3 7.3 2.6-2 2.5-2 4.6 3 1.9 3 4.5-2.2 2.1-2.2 4.1c0 1.7 2.4 1.8 2.4 1.8l16.6 16.1v-17.2l-34.2-53.7zm27.4-20.4 23.3 47.5s.2-43.8 4.1-46.1l-6.5-12zm101 1.9-26 46.2V172s2.2-3.2-1.2-3-7.5-.2-7.5-.2l10.4-36.6zM398 165c-.3.5-17.5 18-17.5 18-.8-2-6-1-11-1s-5.6 1.6-5.3 2.9c.5 3.3 2.2.8 2.2 4 0 3.1-2.4 2-2.7 4.2.3 2.7 3.8 2 1.7 4l-19.9 19.2v-18.2l37.1-57.6z"/>
+ <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M309.8 268.4c-8.3 13.8-30.6 9.7-35.9 0-1.5-.4-.6-59.5-.6-59.5s-2.5-1.1-2.6-3 3.4-2 3.4-4.3-3.6-1.4-3.7-3.8c0-2.2 3.9-2 3.7-4-.2-2.4-4.3-2-4.5-4.2 0-1.7 3-3.2 3.8-4h-2.8l-6.4.1c-4.6 0 0 1 0 3.6 0 1.7-2.3 2.9-2.5 4.3-.1 1.6 3.2 2.6 3.3 4.5 0 1.6-3.3 1.7-3.2 3.3.2 2.5 3 3.1 2.9 4.7 0 1.5-3.6 2.1-3.7 3.3.2 2.4.6 60.8.6 60.8 5.7 29.8 38.8 37.3 48.2-1.8zm21.9 0c8.3 13.8 30.6 9.7 35.8 0 1.6-.4.7-59.5.7-59.5s2.5-1.1 2.6-3-3.2-2-3.2-4.3 3.4-1.4 3.4-3.8c0-2.2-3.5-2-3.3-4.2s3-2 3.1-4.2c.1-1.9-1.7-3-2.6-3.8h2.7l6.4.1c4.5 0 0 1 0 3.6 0 1.7 2.3 2.9 2.5 4.3 0 1.6-3.2 2.6-3.3 4.5 0 1.6 3.3 1.7 3.2 3.3-.2 2.5-3 3.1-3 4.7.1 1.5 3.7 2.1 3.7 3.3l-.5 60.8c-5.7 29.8-38.9 37.3-48.2-1.8z"/>
+ <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M301.7 295.6H339c.3-.3-8.4-13-18.6-12-11.5.3-19.3 12-18.7 12zm118.9-1h-51s6.6-3.8 8.4-7.4c3.3 1.8 2.4 3.6 9 3.9s12.9-7.5 19.2-7.2 14.4 11 14.4 10.8zm-201 0h51s-6.6-3.8-8.4-7.4c-3.3 1.8-2.4 3.6-9 3.9s-13-7.5-19.2-7.2c-6.3.3-14.4 11-14.4 10.8zm3.8-16 36.3.3s-2.3-5-2.6-11.1c-9.4-3.2-17 7-23.8 7.3-6.7.3-13.7-7.3-13.7-7.3zm194 0-36.4.3s2.3-5 2.6-11.1c9.4-3.2 17 7 23.8 7.3 6.7.3 13.7-7.3 13.7-7.3zM311 279l18.4-.5s.3-5.6-9.3-5.6-8.8 6.4-9.1 6.1zm-11.2-7.9a17 17 0 0 0 8.2-7.6l-12.6.3s-5.8 3.5-8.7 7.3zm40.8 0a17 17 0 0 1-8.2-7.6l12.6.3s5.8 3.5 8.7 7.3z"/>
+ <path fill="#de2010" fill-rule="evenodd" d="M-40 360h720v120H-40zm0-360h720v120H-40z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pg.svg b/apps/web/public/flags/pg.svg
new file mode 100644
index 00000000..7b7e77aa
--- /dev/null
+++ b/apps/web/public/flags/pg.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pg" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#000001" d="m1.6 0-.5 480h640z"/>
+ <path fill="red" d="m640.6 480 .5-480H1.1z"/>
+ </g>
+ <path fill="#fc0" stroke="#fc0" stroke-width="1.1" d="m178 54-3.8-.2c-1.2-2.8-4.5-3.8-6.6-2.6L156 51l7.1 3.1C165 59 171 60 171 60c-.6 8.8-8.9-1.1-15.9 3.9-5 3-5 6.5-7.7 12.3-.9 1.6-4.4 5.8-4.4 5.8l5.9-.5L147 84l7-1-1.5 1.4c1 .2 8-1.7 8-1.7L160 85l8-2.9s1.6 1.3 3 1.9l1-4 4 1 1-4c6 8 8 16 19 18l-1-4 8.7 4 .9-1.7c4.8 3.4 8.7 3.3 11.4 3.7l-2-5 2 1-3-8 3 1-4-6 1.5-1-.5-3c6 2 14 5 15 12 1 11-11 14-19 13 6 5 17 3 22-2 2-2 3-5 4-8 1 3 3 7 3 11-1 9-13 12-21 13 9 5 25-1 26-14 0-11-7-16-10-21l-1-5.4 3 1.4s-1.8-3.3-2-4c0 0-3.1-8.5-4.2-10.4l2.2.4-8.2-10.3 2.3-.2S215.6 44 213 43l3-1c-6-3-13-1-19 3l1-3-1.8.2v-3.5L198 36l-3-1 2-5-3 1 1-5s-2.2 1-3.6.9l1.6-3.4c-1-1.5 0-4.5 0-4.5-7 1-8 2-12 8-6 11-4 16-3 27z" transform="matrix(2.21989 0 0 2.21194 1.1 0)"/>
+ <path fill="red" fill-rule="evenodd" stroke="red" stroke-width="1.4" d="M215.8 70.4c.5.9 6.2 3.6 10.4 6-1.1-4.6-9.4-5.6-10.4-6z" transform="matrix(2.21989 0 0 2.21194 1.1 0)"/>
+ <path fill="#fff" fill-rule="evenodd" d="m175 399-14.2-9-19 9.1 4.3-16.2-14.5-15.1 16.7-1 10-18.4 6.1 15.5 20.7 3.8-13 10.6zm36.2-79-6.6-3-6.3 3.6 1-7.2-5.4-4.9 7.1-1.3 3-6.6 3.5 6.4 7.2.8-5 5.2zm32-45.2-14.5-7-13.9 7.8 2.3-15.7-11.8-10.8 15.7-2.8 6.6-14.4 7.6 14 15.8 1.8-11 11.5zm-65.8-63-17-8.5-16.5 9.1 2.8-18.6-13.8-13 18.7-3 8-17 8.7 16.7 18.8 2.3-13.3 13.4zm-60.8 65.4-17-10-17 10.3 4.3-19.3-15.1-13 19.7-1.8 7.7-18.3 7.9 18.2 19.8 1.6-14.9 13z"/>
+</svg>
diff --git a/apps/web/public/flags/ph.svg b/apps/web/public/flags/ph.svg
new file mode 100644
index 00000000..b910e24c
--- /dev/null
+++ b/apps/web/public/flags/ph.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ph" viewBox="0 0 640 480">
+ <path fill="#0038a8" d="M0 0h640v240H0z"/>
+ <path fill="#ce1126" d="M0 240h640v240H0z"/>
+ <path fill="#fff" d="M415.7 240 0 480V0"/>
+ <path fill="#fcd116" d="M26.7 42.4 41 55l16.6-9.2-7.4 17.5 14 13-19-1.6-8.1 17.2-4.3-18.5L14 71l16.3-10zm323.8 172.3.4 19 18 6.3-18 6.2-.4 19-11.5-15.1-18.2 5.5 10.8-15.6-10.8-15.6 18.2 5.5zM37.2 388.1l8 17.2 19-1.6-13.9 13 7.4 17.5-16.6-9.1-14.4 12.4 3.6-18.7L14 409l18.9-2.4zm114.2-249-6.2 6.2 3.1 47-3 .3-5.7-42.9-5.1 5 7.6 38.4a48 48 0 0 0-17.2 7.1l-21.7-32.4H96l26.4 34.3-2.4 2-31.1-35.5h-8.8v8.8l35.4 31-2 2.5-34.3-26.3v7.1l32.5 21.7q-5.2 7.8-7.1 17.2L66.3 223l-5.1 5 42.9 5.7q-.3 1.6-.3 3.1l-47-3-6.2 6.2 6.2 6.2 47-3.1.3 3.1-42.9 5.7 5 5 38.4-7.6a48 48 0 0 0 7.1 17.2l-32.5 21.7v7.2l34.3-26.3 2 2.4-35.4 31v8.8H89l31-35.4 2.5 2L96 312.2h7.2l21.7-32.5q7.8 5.2 17.2 7.1l-7.6 38.4 5 5 5.7-42.9q1.5.3 3.1.3l-3 47 6.1 6.2 6.3-6.2-3.1-47 3-.3 5.7 43 5.1-5.1-7.6-38.4a48 48 0 0 0 17.2-7.1l21.7 32.5h7.2l-26.4-34.3 2.4-2 31.1 35.4h8.8v-8.8l-35.4-31 2-2.4 34.3 26.3v-7.2l-32.5-21.7q5.2-7.8 7.1-17.2l38.3 7.6 5.1-5-42.9-5.7q.3-1.5.3-3.1l47 3 6.2-6.1-6.2-6.2-47 3-.3-3 42.9-5.7-5-5-38.4 7.5a48 48 0 0 0-7.1-17.2l32.5-21.7v-7.1l-34.3 26.3-2-2.4 35.4-31v-8.9H214l-31 35.5-2.5-2 26.4-34.3h-7.2L178 200.2q-7.8-5.2-17.2-7.1l7.6-38.3-5-5-5.7 42.8-3.1-.3 3-47z"/>
+</svg>
diff --git a/apps/web/public/flags/pk.svg b/apps/web/public/flags/pk.svg
new file mode 100644
index 00000000..4ddc19f8
--- /dev/null
+++ b/apps/web/public/flags/pk.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pk" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="pk-a">
+ <path fill-opacity=".7" d="M-52.3 0h682.6v512H-52.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#pk-a)" transform="translate(49)scale(.9375)">
+ <path fill="#0c590b" d="M-95 0h768v512H-95z"/>
+ <path fill="#fff" d="M-95 0H97.5v512H-95z"/>
+ <g fill="#fff">
+ <path d="m403.7 225.4-31.2-6.6-16.4 27.3-3.4-31.6-31-7.2 29-13-2.7-31.7 21.4 23.6 29.3-12.4-15.9 27.6 21 24z"/>
+ <path d="M415.4 306a121 121 0 0 1-161.3 59.4 122 122 0 0 1-59.5-162.1A119 119 0 0 1 266 139a156 156 0 0 0-11.8 10.9A112.3 112.3 0 0 0 415.5 306z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pl.svg b/apps/web/public/flags/pl.svg
new file mode 100644
index 00000000..0fa51452
--- /dev/null
+++ b/apps/web/public/flags/pl.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pl" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#fff" d="M640 480H0V0h640z"/>
+ <path fill="#dc143c" d="M640 480H0V240h640z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pm.svg b/apps/web/public/flags/pm.svg
new file mode 100644
index 00000000..19a9330a
--- /dev/null
+++ b/apps/web/public/flags/pm.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pm" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/pn.svg b/apps/web/public/flags/pn.svg
new file mode 100644
index 00000000..209ea71a
--- /dev/null
+++ b/apps/web/public/flags/pn.svg
@@ -0,0 +1,53 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pn" viewBox="0 0 640 480">
+ <path fill="#00247d" d="M0 0h640v480H0z"/>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M410.1 252.3a57 57 0 0 0-19 27.8c-5.7 27.3-13.3 33.4-25 27.5 0 14.7 12.9 15.8 18.5 7.3 0 13.7 5 25.6 16.2 35.8 4.8 4.3 5.7 1.4 3.4-3.4-2.2-4.7-2.2-20-6.7-28.8 7.2 5.1 17.8 2.2 17-12-9.3 5.4-18.5 5.2-19.5-7.7-1.1-15 4.7-37 15.1-46.5zm-11-108.6c.7-5.5-.5-11-4.5-14.5-7.6-6.7-15.1-4.5-20.7 1-8.3-4.6-12.8 11.4-22.2 8.7 1.5 5.2 4 7.4 8.8 5.6-5 4.5 0 10-5.9 15.4 10.6 3.4 16.2-2.5 15.8-12.7a9.6 9.6 0 0 0 13.7-.7c-5.6-1.8-5.6-6.7-3.4-11.2 3.4-6.8 19.3-6.5 18.4 8.4z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M423.6 222.1c-12 6.4-33.8 3.7-35.9-12-2-15.5 13.1-22.5 17.2-24.5 6.3-3.2 11.3 2.5 9.2 9 7-2.4 8.6-10.6 5.2-15.3 9.3.7 17.8-6.3 21.4-16.2-3.2 3-12 1-19.3.5 2.2-2.5 2.2-7.3 1.5-9.8-7.6 7.9-18.7 4.3-33.3 27a1023 1023 0 0 0 9.6-37.1c.8-15-15-15.2-18.4-8.4 3.7 4.2 1.7 9 .4 16.5-1.6 8.7-5 29-7.9 35.8-.9-10.6-7.9-11.3-9.2-16.5-2 1.4-3.2 5-2.7 7.5-2.5-2.7-11.1.7-14.3-3.4-3.3 6.7 2 13.5 7.7 16.5-3.3.2-4 4.1-7.7 4.1 4.9 5.7 9.9 8 15.6 8.4 5.8.4 10 2.6 13.5 9.6 5.7 11.3 27.2 18.6 47.4 8.3z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M453.4 208.4c-6.8 18.7-25.3 32-33.6 34-14.2 3.5-43.2 17.6-51 24.8a9 9 0 0 1-3.2-1.3c-3.8-2.7-7-11.5-.2-19 21.2-19.8 44-11.2 58.2-24.8-12 6.3-33.8 3.6-35.8-12a55 55 0 0 0 54.5-16.2 98 98 0 0 1 11 14.5z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M410.1 252.3c-10.7 9-16.2 31.4-15.1 46.5q.5 6.2 3.3 8.8c.8-8.6 6.7-30.7 22-40.6 12.8-8.3 32.9-27 40.3-48.5a17 17 0 0 0-7.9-9.2c-7.4 20.2-27.1 29.9-42.6 43z"/>
+ <path fill="#316d3a" stroke="#000" stroke-width=".4" d="M446.5 199.7a50 50 0 0 1-20.9 16.8 11 11 0 0 0 2.5-6.8 77 77 0 0 1-40.4.5 55 55 0 0 0 54.6-16.2 21 21 0 0 1 4.2 5.7z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M365.4 247c-17.2 16-5.8 30.2 1 33.3-1.9 11.3 8.7 10 8.5 19.4 4.3-2.4 5.4-9 4.7-14.2 5.5 5.9 19.2-.7 22.1 10.2 1.9-12-7.4-24-18.9-22.8 4.8-4.3 2-11.3-2.5-13.1-.9 8.8-10.8 8.8-14.6 6-3.9-2.6-7-11.4-.3-18.9z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M402.7 349.6c-1.8 1-1.7 3.5-.5 5 2.3 3.2-1.7 10.4 6 11.9 2.2.5 4-1 4.8-3.5 2.4-7.1-5.2-7.9-5.9-11.3-.6-3.4-2.8-3-4.4-2.1z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M409.2 362.9c-2.5 1.2-4.8 2.8-3.7 11 .4 3.3.2 11.4-2.8 11.5 1.8 1 5.7 2 7.3-.2 1.5 2.6 5 1.8 6.3-1.3 1.8 1.4 4.3-1 4.3-3.2 1.5 1 4.7-.4 3.9-5.3 2 .7 4.4-.7 5.3-1.9-2.8-.6-10-4.4-11.6-7.4-1.7-3.1-6-4.6-9-3.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M370 134.7q1.8-2.4 4-4.6m39 34.5q3.1-1.6 8.4-1M410 385.2c-.8-1.1-1.1-5.8-.6-8.7m6.9 7.4c-1.3-1-3.6-4.3-4-7.1m8.3 3.9a19 19 0 0 1-6.3-8.9m10.2 3.6c-1.9-.4-7.6-4.1-10-8"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M528.5 247.2c27.7 23.2 29.5 41.7 25.3 52.5-2.3-10.1-13.8-25.9-25.8-30z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M478.9 234h51.4v61c0 51.9-28.8 82.5-58.2 98.8A108 108 0 0 1 414 295v-61h36c0 3.2.4 8 4 12.7 8.6-.8 18.2-7.2 24.9-12.6z"/>
+ <path fill="#006ec7" stroke="#000" stroke-width=".4" d="M530.3 234v61q-.2 23.4-7 41.3L472 242.6l-51 93.7q-7-18-7.1-41.3v-61z"/>
+ <path fill="#f7e017" d="M524.8 331.9a116 116 0 0 1-3.8 10L472 251l-48.7 91c-1.3-2.8-2.9-7.3-3.8-10l52.7-97.6z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="m495.3 365.3 5 2.3a36 36 0 0 0 2.2-19.8c-2.9 7.4-12.8 7.2-15.5 11.7q2.5 1.4 4.5 2.9c-3.4 3.4-11.3 9-15.8 10.4v-48.4c0-3.4-1.2-6.2-1.2-9v-10c0-2.3-.4-5.6-2.4-5.6s-2.5 3.3-2.5 5.6v10c0 2.8-1.1 6-1.1 9v48.4c-2.5-7.2-12.2-4.8-16.7-12a14 14 0 0 1 5.4-.2c-3.4-11.5-12.7-12.4-14.4-15.8 0 4.8-2 15.8 1.1 20.6q1.1-1.4 3-2.5c3.9 8.3 21.1 8.3 25.2 22.1 3.3-5 15-11 23.2-19.7z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M472.1 325c3.8 0 16-1.2 20.4-1.2 1.2 0 2.1-1.8 2.1-3.9s-.9-3.8-2-3.8c-4.5 0-16.6-1.2-20.5-1.2s-16 1.2-20.4 1.2c-1.2 0-2.1 1.7-2.1 3.8s1 3.9 2 3.9c4.5 0 16.7 1.2 20.5 1.2zm-2.5-19.8q-1.2-1-3-1c-2.6 0-4.7 1.8-4.7 4.1 0 2.4 2.1 4.3 4.7 4.3 2.5 0 4.6-2 4.6-4.3 0-1.8 2.6-1.8 2.6 0 0 3.7-3.2 6.7-7.2 6.7s-7.3-3-7.3-6.7c0-3.6 3.3-6.6 7.3-6.6a8 8 0 0 1 3.3.8z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M451.7 323.8c1.1 0 2-1.8 2-3.9s-.9-3.8-2-3.8"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M453.4 323.8c1.1 0 2-1.8 2-3.9s-.9-3.8-2-3.8m11.1 8.4c1.4 0 2.5-2 2.5-4.6s-1-4.6-2.5-4.6m2.6 9.4c1.5 0 2.6-2.1 2.6-4.8s-1.1-4.8-2.6-4.8m8.7 9.7c1.5 0 2.6-2.2 2.6-4.9s-1.2-4.9-2.6-4.9m2.7 9.6c1.4 0 2.6-2 2.6-4.7 0-2.6-1.2-4.7-2.6-4.7m12.1 8.6c1.2 0 2.1-1.7 2.1-3.9s-.9-4-2-4m-43.7 47q2-1.4 4.8-2m41.1 2.4-1.4-1m3.8 3q5-5.1 7.3-11.7"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M461.8 277.2c0-1.2.9-1.6 2-2.4 1.2-1 1.7-1.4 2.9-1.4h14.8q1.4-.1 1.3 1.3v20q.2 1.4-1.3 1.4h-19.7v-19.2"/>
+ <path fill="#e5e5e5" stroke="#000" stroke-width=".4" d="M477.8 297.8c2 0 1.6 0 3-1.4s1.3-1.3 1.3-2.6v-18.4q.1-1.4-1.3-1.2h-13.7c-1 0-1.5.4-2.7 1.3-1 .8-1.8 1.2-1.8 2.2v20.1z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M479.3 297.4q.1 1.4-1.4 1.3h-14.8q-1.5.1-1.3-1.3v-20.1q-.2-1.4 1.3-1.3h14.8q1.5-.1 1.4 1.3z"/>
+ <path fill="#96877d" stroke="#000" stroke-width=".4" d="M508 222.3c2.8 3.2 3.8 7.5 2.2 11.8H506c1.8-5.5.7-10.6-7-11.3-11.4-1-24.8 21.2-44.9 23.9-5.8-7-5.5-20.3 2-26.6a82 82 0 0 0-17.7-28.6 55 55 0 0 0-10.7-.7c3-6.4 11.3-13 18.1-15.7l3.4-4.5c.7-8.7 42-4.7 50.7.7 0 9.8 3.9 42.2 8.2 51z"/>
+ <path d="M458 228.2c-1-15-7.1-27.4-15.7-35.8a24 24 0 0 0 18-3c7.5-5 27-13.6 34-9.9.6 1.3 1 4 .5 5.9-1.7-4.5-20.4 2.4-25.7 4.6-5 2.3-7.3 5.5-5.5 12.6-3-2.5-2-4.8-5-6.6 1.2 2.9 2.2 8.2 2.6 12.5-1.2-3-3.2-9.6-7.6-13.5a74 74 0 0 1 5.6 34.8c3 0 9.8-3 12.4-5-2.3 3.3-9.2 5.7-13.5 6.6a22 22 0 0 0-3.3 11.8c-.3-4.2 1-14.3 3.1-15zm50-5.9c-3.8-4.2-10.7-6.4-19.6-4a28 28 0 0 1 6.8-2.3c-.3-2.3-2.4-12.5-2.8-15l2.5-1c1.3 6.1 2.8 13.1 3.8 16 .8.1 2.6.5 4.2 1.3-.7-2.4-4.5-19.4-4.4-21.2l3.4-1.8a138 138 0 0 0 6 28z"/>
+ <path fill="#96877d" stroke="#000" stroke-width=".4" d="M506 234c1.7-5.3.6-10.5-7-11.2-6-.5-12.4 5.3-20 11.3zm-49.9-48.5a45 45 0 0 1-14.8-1.5q.3-1.4 1.1-3.2a47 47 0 0 0-8.5 6.8c5.4 1.2 16.6 1.7 22.2-2.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M456 220q1.9 5.6 2.1 10.3m-12.4-55.2c-2 3-3.8 6.2-4.4 9a48 48 0 0 0 14.8 1.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="m438.4 191.5 4 .9c4 1.1 12.3 1.1 18-3s21-16.7 38.3-18"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M433.9 187.6c5.4 1.2 16.6 1.7 22.2-2.1a76 76 0 0 1 38.4-14.8"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M528.5 247.2c19 13 33 25.7 37 46s11.7 25.7 21.2 20.3c-2.2 11.7-14 13-23.9 4 1 13.6-4.5 29.8-18.5 35.7-.9-8.1 4.5-14.6 3-21.2-.7-3-1-9.7 2.9-12.9-7.5 2.5-19.2-2.2-20.3-13.3 8.6 4 19.6 4.7 23.9-6.1s2.4-29.3-25.3-52.5zm23.9-105.6c5.9-15.3 21.2-13.7 26.4-7.2 15.1-8.6 17.2 10.8 30 7-.2 3.6-4.5 7-9.2 6.7 5 4.5-2 11.3 8.5 15.4-9 4.5-21.6-.2-25-12.7-3 5.9-13.5 5.9-17.8 1.2 9.2-2.5 8.6-11 3.4-14.5-5.3-3.4-14.5-2-16.3 4.1zm-45.7 33.8a82 82 0 0 0 22.3 34.8c10.8 10 27.1 7.4 36.3-2 .2 18.8-19.4 20.3-30.2 14.4-4.8-2.6-8.7-1.3-4.1 3 7 6.2 22.3 11 40.4 14.8 31.5 6.8 20.3 31.8 11 31.6 2.7 0 4.9-2.9 1-6.3-27.4-24.7-83-15-82.2-70-5.8 14.5-30 8.8-18.7-8.3 3.6 2.9 10 3.1 11.7-1.4 1.4-3.5.5-9.6-5.8-14.9 1 0 3.3 0 3-2.6.3 1.6 1.7 3.8 5.3 3 1 1.7 2 2.7 3.5 2.1.3 0 1.1-.5.8-2.1.2 3 3.8 4.1 5.7 3.9z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M535 222.6c13.1 8.5 28 8.5 41.5-7.2 4.3-5 11-9.3 15.8-9.7 4.8-.5 4.5-5 8.1-6-2.2-.6-3.1-3.3-6.5-3 8.5-2.9 6-9.7 10.1-13-3.4 1.3-8.6-3.7-13.5 2.7 1.3-3-.5-6.4-1.7-7.8.5 3.4-6.6 4-8 12.6-.7 4.8-3.4 4.6-3.8-2.9-.3-5.4-3-20.5-6-28.2-3.2-7.6-4-18.2.3-19.7a8 8 0 0 0-2.6-2.8c-5.3-3.4-14.5-2-16.3 4-5.8 15.4 10.6 24.2 9.3 40.9-2.5-12.4-22.6-15.6-22.4-27.8-6.5 3-5.6 8.4-3.1 12.7-4-6.3-13.3 4-21.2-4.5-1 11.3 9 15.5 17.1 16-4 7.2 1.4 13.3 6.8 15.3.2-12.6 26.1-7.5 26.4 14.2.2 18.5-19.7 20-30.3 14.2zm36.4 17.8c31.5 6.8 20.3 31.8 11 31.6-5.9-.2-11.5-5.1-11.8-9.4-6.8 3.6-5 10.7.2 13.5-14.2-1.6-20.2 7.7-20.5 18 2.6-4.8 10.4-5 13.4-4s10.5 1.5 13.5-2c-2.5 2.2 1.6 7.2-2 11 12-.4 17.1-11.5 15-16.3 15.4-14 12.5-36.8-18.8-42.4zm-24.1 107.2c2 1.2 1.8 4 .4 5.7-2.8 3.4 1.4 11.5-7.2 13q-3.9.3-5.2-4.2c-2.4-8 6.1-8.6 7-12.3s3.3-3.3 5-2.2z"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M539.6 362.1c2.7 1.4 5.1 3.4 3.7 12.4-.7 3.7-.8 12.8 2.5 13-2 1-6.4 1.9-8-.5-1.9 2.8-5.7 1.8-7-1.8-2.2 1.6-4.8-1.3-4.7-3.7-1.8 1-5.3-.7-4.2-6-2.2.6-4.9-1-5.8-2.4 3.1-.6 11.2-4.5 13.3-7.8 2-3.4 7-4.8 10.2-3.2z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M537.7 387c1-1.2 1.5-6.5 1-9.7m-8 7.9c1.5-1 4.2-4.5 4.8-7.7m-9.5 4a22 22 0 0 0 7.4-9.7m-11.5 3.7c2-.4 8.6-4.3 11.4-8.6"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M501.2 195.8c-.4 23 9.2 34.8 22.6 42.4-5-3-2.8-13.1-9.5-16.4 1.6-.1 4 2.1 8 1.2-2-4.2-5-10.8-12.4-11.7 2-.2 6 .5 8.8-.5-3.8-6-14-3.1-17.5-15zm-2.4-22q-1.2-.5-2.1-2.2c-3.6.8-5-1.5-5.3-3 .3 2.6-2 2.5-3 2.6 6.3 5.2 7.2 11.3 5.8 14.8-1.8 4.5-8 4.3-11.7 1.4-.5 9.6 12 12.7 16.5.7 0 2 2.6 1.8 3.2 4.5 3.2-5.2.8-12.7-3.4-18.8z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M479 128a27 27 0 0 1-8-18.9c.2-5 2.2-10.3 9.5-8-2.3 0-.7 4.4-3 4.9 1.8.7 4.4-.9 4.8-2 .4 1.6 3.4 1.2 3.6 3 1.1-.9-.1-5.3-1.8-6.2 1.2-.7 2-4.2 1.4-5.9-1.2.2-2.9 1.8-3.2 4.1.6-1.8-.1-6.3-3.3-7-.9 1.2-1.1 4.3.1 6-2.9-.7-7.2 1.2-8.2 3.7.2-3 .6-7.3 2.5-10 .6-.8-1-2.4-2.1-.3-2.2-4.3-8-6.5-10.7-4.4-2.6 2.2-6-1-8.2 2.4s-9.4 3.7-9 7.3c.2 2.2-.3 5.5-1.4 6.7-2.6 2.9 1.3 5 2 7.6-.5-8.5 13.1-25.2 26.8-18.7a30 30 0 0 0-2.7 11.6c-.6 7.7.6 18.5 8 24.9z"/>
+ <path fill="#c8102e" stroke="#000" stroke-width=".4" d="M483 101.1c0-2 3.5-4.7 8.2-4.6 5.7 0 10 5.2 14.6 4.7s2.4 2 1.4 2.8q-1.6 1-1.2 2.9c.3 1.2-.2 2-2 .9-4.1-2.6-8.2 1-13.6-1-4.5-1.7-7.2-2.7-7.4-5.7z"/>
+ <path fill="#96877d" stroke="#000" stroke-width=".4" d="M459.8 154.4a34 34 0 0 0-15-16.7l-.2-3.8a50 50 0 0 0 10.1-7.6c17 8 40-3.4 50.6-15.3l4 2.4-2 2.7-2.1-1.1a130 130 0 0 1-15.2 14.2c3.9 1 9.3 1.7 10.8 1.6 9.4-6.8 16.9-12.9 20.5-13.3l3 4-2.7 2-2.1-1.3a109 109 0 0 0-26.2 38.8c-6.3-1.4-28.9-.5-33.5-6.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M490 129.2q-2.4-.6-3.5-1.2a23 23 0 0 1-12.1 3.4"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M460.7 151.9c-1.5-8.4 1-17.8 5.2-20.6a34 34 0 0 0 34.8-.5"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M460.7 147.5c7.2-.2 23 1 26.7 1.5 3.9.6 10.3 2.2 9.4 4.1m-32.8-6.8 2.1-2-2-2.1-2.1 2z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M469 104.3c-2.6-3.6-9.8-4.8-11.3 0-.7 2.2-1.7 4.5-3.4 5.5s-1.3 4.1-.6 5.4c1.8 3.3.2 6.5 3.7 8.6 0-2.6 3.9-5.3 7.1-6 3.3-.6 8.3-3.6 9-6.8.6-3.4 1.8-6-4.5-6.7z"/>
+ <path fill="#96877d" stroke="#000" stroke-width=".4" d="M452.7 136.8h1v6.1l.5.3 5.3-3 .5.7-5.4 3.1v.6l5.4 3-.5.8-5.4-3-.5.3v6.2h-.9v-6.2l-.5-.3-5.3 3.1-.5-.8 5.3-3v-.7l-5.3-3 .5-.8 5.3 3 .5-.3z"/>
+ <path fill="#96877d" stroke="#000" stroke-width=".4" d="M460.7 151.8a10.7 10.7 0 1 1 .9-14 24 24 0 0 0-1.2 5.7 7.3 7.3 0 1 0-7.3 8c3.4 0 6.3-2.3 7.2-5.4 0 1.4 0 4.6.4 5.7z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M448.6 162c-.6-.8-1.9-3-1.7-4.5a6 6 0 0 1 3.8 1.5c-.1-1.2-.6-3.6-.3-4.8 1.2.5 3.8 2 4.7 3.6-.2-1.1-.7-4-.2-5.8 1.3.8 3.6 2.9 4 4.4.2-2.3 1-6 1.6-7 1 1 2.6 2 3.6 3.4.2-1.9 1.2-4 2.5-4.5 1 1 2.6 3.7 3 6.6 1-.3 2.3-2 2.9-3 .5 1 1.1 2.5.7 4.5 1.3-1.2 2.8-2.7 3-4.1 1 .7 2.7 2.4 3.1 4.2-.2-1.5 0-4.1-.5-5.6 1.6 1 3 2.5 3.3 4.2.5-1.6 1.5-4.4 2.4-5 .9 1.8 1.8 4 1.7 5.7.6-1.1 1.4-3.2 2.3-3.6.8 1.2.7 4 .5 5.4.8-1.1 2.3-2.5 3.2-3 0 .8.2 2.1 0 3.1a14 14 0 0 0 3.2-5.2c1.6.8 3.2 3.5 3.3 4.9 1.2-.5 3.4-2.5 4-3.6 0 .8.4 3 0 4.6.7-.7 1.3-2 1.7-2.6.4 1.1 0 3.8-.4 5.3a6 6 0 0 1 3.4-1.5 20 20 0 0 1-2.5 7.8c-10.8-3-33.5-4.1-56.3-5.4z"/>
+ <path fill="#f7e017" d="M486.4 102.3c0-.9 1.8-2.7 5.1-2.7 4 0 7.7 3 10.9 2.7s1.6.9 1 1.1q-1.2.5-1 1.2.6 1-1.4.4c-2.8-1-5.7.4-9.4-.4-3.2-.7-5.1-1-5.2-2.3"/>
+ <path fill="#f7e017" stroke="#000" stroke-width=".4" d="M452.1 168.8c-3.3 4-6.7 3.4-7.4.8s1.8-3.8.9-6.1 1.5-3.3 2.6-2.3 4.8-2.2 6.3 1.2c1.6 3.4 2.8 5.7 2 7-1 1.4-3.7.7-4.4-.6zm14.6-6.1c-.6-1.5 2.9-4.4 4.7-2.3 1.8 2 4.6-2.2 6.2 1s2 4.9 2.9 6.7c.7 1.8-4.3 2.7-5.9 1.2.2 1-4.4 1.9-5.6-1.2zm23.4 1.9c-.8-1.6 3.3-3.9 5.5-1 .5-1.2 4.6-1.4 4.9 2l.5 6.9c.1 1.3-2.5 2.6-4.3-.9-3.4.7-4.9-1.2-5.3-3.1s-.8-3-1.3-4z"/>
+ <path fill="#337321" stroke="#000" stroke-width=".4" d="M454.3 162.3c-.5-1.1 3-3.4 5.2-1.7s5.5-1.4 7 1.6c2.7 6.2 2.8 6.6 2 7.8s-4.5.7-5.4-1c-.1 1.2-3.3 1-4.9.1-1.8-1-3.1-4.8-3.9-6.8zm23.7.3c-.7-1.8 4.6-3.3 7-.2 1.1-1.1 3.7-1.2 5.1 2.2q2.2 4.8.7 6c-.8.6-3.5 1-4.4-.5-1.3.8-5.1.1-6-2q-1.2-3.2-2.3-5.5zm22.5 3.4c0-1.7 2.8-2.4 3.9 0 1 2.2 4.5.1 4.8 4 0 .7-.4 3.5-1.5 4.9-1 1.3-6.3 0-6.7-2.9z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M452.1 168.8c-1.2-1.7-2.9-4.4-5-1.5m16.1 1.7c-.8-.9-1.7-2.5-2-3.7m13.4 4c-.8-.6-2-1.7-2.6-2.9m1.6-3c2 .2 3.3 2 3.9 2.9s2 2.4 3 2.5m5.9 1.3q-1.2-1.6-1.5-2.8m.1-4.9 1.5 2.6m10.1 6.6a9 9 0 0 0-3.5-3.9m3.1-2.3c.1 3.3 4.5 3.6 4.7 6m3.5-5.4q.6 1 .6 3"/>
+</svg>
diff --git a/apps/web/public/flags/pr.svg b/apps/web/public/flags/pr.svg
new file mode 100644
index 00000000..ec51831d
--- /dev/null
+++ b/apps/web/public/flags/pr.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pr" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="pr-a">
+ <path fill-opacity=".7" d="M-37.3 0h682.7v512H-37.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#pr-a)" transform="translate(35)scale(.9375)">
+ <path fill="#ed0000" d="M-37.3 0h768v512h-768z"/>
+ <path fill="#fff" d="M-37.3 102.4h768v102.4h-768zm0 204.8h768v102.4h-768z"/>
+ <path fill="#0050f0" d="m-37.3 0 440.7 255.7L-37.3 511z"/>
+ <path fill="#fff" d="M156.4 325.5 109 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ps.svg b/apps/web/public/flags/ps.svg
new file mode 100644
index 00000000..362d4359
--- /dev/null
+++ b/apps/web/public/flags/ps.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="flag-icons-ps" viewBox="0 0 640 480">
+ <path fill="#009639" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v320H0z"/>
+ <path d="M0 0h640v160H0z"/>
+ <path fill="#ed2e38" d="m0 0 320 240L0 480Z"/>
+</svg>
diff --git a/apps/web/public/flags/pt.svg b/apps/web/public/flags/pt.svg
new file mode 100644
index 00000000..2767cd4e
--- /dev/null
+++ b/apps/web/public/flags/pt.svg
@@ -0,0 +1,57 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-pt" viewBox="0 0 640 480">
+ <path fill="red" d="M256 0h384v480H256z"/>
+ <path fill="#060" d="M0 0h256v480H0z"/>
+ <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6">
+ <path d="M339.5 306.2c-32.3-1-180-93.2-181-108l8.1-13.5c14.7 21.3 165.7 111 180.6 107.8z"/>
+ <path d="M164.9 182.8c-2.9 7.8 38.6 33.4 88.4 63.8s92.9 49 96 46.4l1.5-2.8q-.9 1.6-4.3.6c-13.5-3.9-48.6-20-92.1-46.4-43.6-26.4-81.4-50.7-87.3-61a6 6 0 0 1-.6-3.1h-.2l-1.2 2.2zm175.3 123.8q-.7 1.3-3.5.8c-12-1.3-48.6-19.1-91.9-45-50.4-30.2-92-57.6-87.4-64.8l1.2-2.2.2.1c-4 12.2 82.1 61.4 87.2 64.6 49.8 30.8 91.8 48.9 95.5 44.2z"/>
+ <path d="M256.2 207.2c32.2-.3 72-4.4 95-13.6l-5-8c-13.5 7.5-53.5 12.5-90.3 13.2-43.4-.4-74.1-4.5-89.5-14.8l-4.6 8.6c28.2 12 57.2 14.5 94.4 14.6"/>
+ <path d="M352.5 193.8c-.8 1.3-15.8 6.4-37.8 10.2a381 381 0 0 1-58.6 4.3 416 416 0 0 1-56.2-3.6c-23.1-3.6-35-8.6-39.5-10.4l1.1-2.2c12.7 5 24.7 8 38.7 10.2A412 412 0 0 0 256 206a392 392 0 0 0 58.3-4.3c22.5-3.7 34.8-8.4 36.6-10.5zm-4.4-8.1c-2.4 2-14.6 6.3-36 9.7a388 388 0 0 1-55.8 4c-22 0-40.1-1.6-53.8-3.6-21.8-2.8-33.4-8-37.6-9.4l1.3-2.2c3.3 1.7 14.4 6.2 36.5 9.3a385 385 0 0 0 53.6 3.4 384 384 0 0 0 55.4-4c21.5-3 33.1-8.4 34.9-9.8zM150.3 246c19.8 10.7 63.9 16 105.6 16.4 38 .1 87.4-5.8 105.9-15.6l-.5-10.7c-5.8 9-58.8 17.7-105.8 17.4s-90.7-7.6-105.3-17v9.5"/>
+ <path d="M362.8 244.5v2.5c-2.8 3.4-20.2 8.4-42 12a434 434 0 0 1-65.4 4.4 400 400 0 0 1-62-4.3 155 155 0 0 1-44.4-12v-2.9c9.7 6.4 35.9 11.2 44.7 12.6 15.8 2.4 36.1 4.2 61.7 4.2 26.9 0 48.4-1.9 65-4.4 15.7-2.3 38-8.2 42.4-12.1m0-9v2.5c-2.8 3.3-20.2 8.3-42 11.9a434 434 0 0 1-65.4 4.5 414 414 0 0 1-62-4.3 155 155 0 0 1-44.4-12v-3c9.7 6.5 36 11.2 44.7 12.6a408 408 0 0 0 61.7 4.3c26.9 0 48.5-2 65-4.5 15.7-2.2 38-8.1 42.4-12m-107 68.8c-45.6-.2-84.7-12.4-93-14.4l6 9.4a250 250 0 0 0 87.4 14.3c34.7-1 65-3.7 86.3-14.1l6.2-9.8c-14.5 6.9-64 14.6-93 14.6"/>
+ <path d="m344.9 297.3-2.8 4c-10 3.6-26 7.4-32.6 8.4a296 296 0 0 1-53.7 5c-40.4-.6-73.5-8.5-89-15.3l-1.3-2.1.2-.4 2.1.9a287 287 0 0 0 88.2 14.5c18.8 0 37.5-2.1 52.6-4.8 23.2-4.7 32.6-8.2 35.5-9.8l.7-.4zm5.3-8.8-2 3.5c-5.4 2-20 6.2-41.3 9.2-14 1.9-22.7 3.8-50.6 4.3a347 347 0 0 1-94.2-14L161 289a390 390 0 0 0 95.4 14c25.5-.5 36.4-2.4 50.3-4.3 24.8-3.8 37.3-8 41-9.1v-.2l2.6-1z"/>
+ <path d="M350.8 237.6c.1 30-15.3 57-27.6 68.8a99 99 0 0 1-67.8 28.2c-30.3.5-58.8-19.2-66.5-27.9a101 101 0 0 1-27.5-67.4c1.8-32.8 14.7-55.6 33.3-71.3a100 100 0 0 1 64.2-22.7 98 98 0 0 1 71 35.6c12.5 15.2 18 31.7 20.9 56.7M255.6 135a106 106 0 0 1 106 105.2 105.6 105.6 0 1 1-211.4 0c-.1-58 47.3-105.2 105.4-105.2"/>
+ <path d="M255.9 134.5c58.2 0 105.6 47.4 105.6 105.6S314.1 345.7 256 345.7s-105.6-47.4-105.6-105.6S197.8 134.5 256 134.5zM152.6 240c0 56.8 46.7 103.3 103.3 103.3S359.2 296.8 359.2 240s-46.7-103.3-103.3-103.3S152.6 183.2 152.6 240"/>
+ <path d="M256 143.3a97 97 0 0 1 96.7 96.7 97 97 0 0 1-96.7 96.8c-53 0-96.7-43.6-96.7-96.8a97 97 0 0 1 96.7-96.7M161.6 240c0 52 42.6 94.4 94.4 94.4s94.4-42.5 94.4-94.4-42.6-94.4-94.4-94.4a95 95 0 0 0-94.4 94.4"/>
+ <path d="M260.3 134h-9.1v212.3h9z"/>
+ <path d="M259.3 132.8h2.3v214.7h-2.2V132.8zm-9 0h2.4v214.7h-2.3z"/>
+ <path d="M361.6 244.2v-7.8l-6.4-6-36.3-9.6-52.2-5.3-63 3.2-44.8 10.6-9 6.7v7.9l22.9-10.3 54.4-8.5h52.3l38.4 4.2 26.6 6.4z"/>
+ <path d="M256 223.8c24.9 0 49 2.3 68.3 6 19.8 4 33.7 9 38.5 14.5v2.8c-5.8-7-24.5-12-39-15-19-3.6-43-6-67.9-6-26.1 0-50.5 2.6-69.3 6.2-15 3-35.1 9-37.6 14.8v-2.9c1.3-4 16.3-10 37.3-14.3 18.9-3.7 43.3-6.1 69.6-6.1zm0-9.1a383 383 0 0 1 68.3 6c19.8 4 33.7 9 38.5 14.6v2.7c-5.8-6.9-24.5-12-39-14.9-19-3.7-43-6-67.9-6a376 376 0 0 0-69.2 6.2c-14.5 2.7-35.4 8.9-37.7 14.7v-2.8c1.4-4 16.6-10.3 37.3-14.3 19-3.7 43.3-6.2 69.7-6.2m-.6-46.2c39.3-.2 73.6 5.5 89.3 13.5l5.7 10c-13.6-7.4-50.6-15-94.9-14-36.1.3-74.7 4-94 14.4l6.8-11.4c15.9-8.3 53.3-12.5 87.1-12.5"/>
+ <path d="M256 176.7a354 354 0 0 1 61.3 4.3c16 3 31.3 7.4 33.5 9.8l1.7 3c-5.3-3.4-18.6-7.3-35.6-10.5s-38.7-4.3-61-4.2c-25.3-.1-45 1.2-61.8 4.2a109 109 0 0 0-33.3 10.3l1.7-3.1c6-3 15.3-6.7 31.1-9.6 17.5-3.2 37.4-4.1 62.4-4.2m0-9c21.4-.2 42.6 1 59.1 4a96 96 0 0 1 30.6 10l2.5 4c-4.2-4.7-20-9.2-34.1-11.6-16.4-2.9-36.7-4-58.1-4.2a361 361 0 0 0-59.5 4.4 97 97 0 0 0-29.6 9.1l2.2-3.3c5.8-3 15.2-5.8 27-8.1a357 357 0 0 1 59.9-4.4zM308.4 284a276 276 0 0 0-52.5-4c-65.5.8-86.6 13.5-89.2 17.3l-5-8c16.8-12 52.4-18.8 94.6-18.2q32.9.5 56.6 5l-4.5 8"/>
+ <path d="M255.6 278.9c18.2.3 36 1 53.3 4.2l-1.2 2.2c-16-3-33.2-4-52-4-24.3-.2-48.7 2.1-70 8.2-6.7 1.9-17.8 6.2-19 9.8l-1.2-2c.4-2.2 7-6.6 19.6-10 24.4-7 47.2-8.3 70.5-8.4m.8-9.2a327 327 0 0 1 57.3 5l-1.3 2.3a299 299 0 0 0-56-4.9c-24.2 0-49.9 1.8-73.3 8.6-7.5 2.2-20.6 7-21 10.7l-1.2-2.2c.2-3.4 11.5-7.9 21.7-10.8 23.5-6.9 49.3-8.6 73.8-8.7"/>
+ <path d="m349.4 290.5-7.8 12.3-22.7-20.1-58.6-39.5-66.2-36.3-34.3-11.7 7.3-13.6 2.5-1.3 21.3 5.3 70.4 36.3 40.6 25.6L336 272l13.9 16z"/>
+ <path d="M158.6 195.5c6-4 50.2 15.6 96.6 43.6 46.1 28 90.3 59.6 86.3 65.5l-1.3 2.1-.6.5c.1-.1.8-1 0-3.1-2-6.5-33.4-31.5-85.3-62.9-50.7-30.1-92.9-48.3-97-43.1zM351 290.4c3.8-7.6-37.2-38.5-88.1-68.6-52-29.5-89.6-46.9-96.5-41.7L165 183l.4-.5c1.2-1 3.3-1 4.2-1 11.8.2 45.5 15.7 92.8 42.8 20.8 12 87.6 55 87.3 67 0 1 .1 1.2-.3 1.8l1.7-2.6z"/>
+ </g>
+ <g transform="translate(0 26.7)scale(1.06667)">
+ <path fill="#fff" stroke="#000" stroke-width=".7" d="M180.6 211a59 59 0 0 0 17.5 41.7 59 59 0 0 0 41.8 17.6 59 59 0 0 0 42-17.4 59 59 0 0 0 17.4-41.8v-79.2l-118.7-.2z"/>
+ <path fill="red" stroke="#000" stroke-width=".5" d="M183 211.1a56 56 0 0 0 16.8 40 57 57 0 0 0 40.2 16.8 57 57 0 0 0 40.2-16.6 56 56 0 0 0 16.7-40v-77H183v76.8m91-53.7v48.9l-.1 5.1a33 33 0 0 1-10 24 34 34 0 0 1-24 10c-9.4 0-17.7-4-23.9-10.2a34 34 0 0 1-10-24v-54z"/>
+ <g id="pt-e">
+ <g id="pt-d" fill="#ff0" stroke="#000" stroke-width=".5">
+ <path stroke="none" d="M190.2 154.4c.1-5.5 4-6.8 4-6.8.1 0 4.3 1.4 4.3 6.9z"/>
+ <path d="m186.8 147.7-.7 6.3h4.2c0-5.2 4-6 4-6 .1 0 4 1.1 4.1 6h4.2l-.8-6.4zm-1 6.4h17q.5 0 .6.7 0 .8-.6.8h-17q-.5 0-.6-.8 0-.7.7-.7z"/>
+ <path d="M192 154c0-3.3 2.3-4.2 2.3-4.2s2.3 1 2.3 4.2H192m-5.8-9h16.3q.5.1.6.8 0 .5-.6.6h-16.3q-.5 0-.6-.7 0-.5.6-.6zm.4 1.5H202q.5 0 .6.7t-.6.7h-15.5q-.6 0-.6-.7t.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2q0 .6-.5.6h-4.4q-.5 0-.6-.5zm4.6 2.7.3 6.4h-4.3l.3-6.5h3.7"/>
+ <path id="pt-a" d="M191 141.6v3.4h-4v-3.4z"/>
+ <use xlink:href="#pt-a" width="100%" height="100%" x="10.6"/>
+ <path id="pt-b" d="M186.3 139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2q0 .6-.5.6h-4.3l-.6-.6z"/>
+ <use xlink:href="#pt-b" width="100%" height="100%" x="10.6"/>
+ <path fill="#000001" stroke="none" d="M193.9 140.6c0-.6.9-.6.9 0v1.6h-.9z"/>
+ <path id="pt-c" fill="#000001" stroke="none" d="M188.6 142.8c0-.6.8-.6.8 0v1.2h-.8z"/>
+ <use xlink:href="#pt-c" width="100%" height="100%" x="10.6"/>
+ </g>
+ <use xlink:href="#pt-d" width="100%" height="100%" y="46.3"/>
+ <use xlink:href="#pt-d" width="100%" height="100%" transform="rotate(-45.2 312.8 180)"/>
+ </g>
+ <use xlink:href="#pt-d" width="100%" height="100%" x="45.7"/>
+ <use xlink:href="#pt-e" width="100%" height="100%" transform="matrix(-1 0 0 1 479.8 0)"/>
+ <g id="pt-f" fill="#fff">
+ <path fill="#039" d="M232.6 202.4a8 8 0 0 0 2.2 5.7 7 7 0 0 0 5.3 2.4q3.2-.2 5.3-2.4a8 8 0 0 0 2.2-5.7v-10.8h-15z"/>
+ <circle cx="236.1" cy="195.7" r="1.5"/>
+ <circle cx="244.4" cy="195.7" r="1.5"/>
+ <circle cx="240.2" cy="199.7" r="1.5"/>
+ <circle cx="236.1" cy="203.9" r="1.5"/>
+ <circle cx="244.4" cy="203.9" r="1.5"/>
+ </g>
+ <use xlink:href="#pt-f" width="100%" height="100%" y="-26"/>
+ <use xlink:href="#pt-f" width="100%" height="100%" x="-20.8"/>
+ <use xlink:href="#pt-f" width="100%" height="100%" x="20.8"/>
+ <use xlink:href="#pt-f" width="100%" height="100%" y="25.8"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/pw.svg b/apps/web/public/flags/pw.svg
new file mode 100644
index 00000000..9f89c5f1
--- /dev/null
+++ b/apps/web/public/flags/pw.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-pw" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="pw-a">
+ <path fill-opacity=".7" d="M-70.3 0h640v480h-640z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#pw-a)" transform="translate(70.3)">
+ <path fill="#4aadd6" d="M-173.4 0h846.3v480h-846.3z"/>
+ <path fill="#ffde00" d="M335.6 232.1a135.9 130.1 0 1 1-271.7 0 135.9 130.1 0 1 1 271.7 0"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/py.svg b/apps/web/public/flags/py.svg
new file mode 100644
index 00000000..abccd879
--- /dev/null
+++ b/apps/web/public/flags/py.svg
@@ -0,0 +1,157 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-py" viewBox="0 0 640 480">
+ <path fill="#0038a8" d="M0 319.7h640V480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <path fill="#d52b1e" d="M0 0h640v160H0z"/>
+ <g fill="none" stroke="#000" transform="translate(-116.4)scale(1.45455)">
+ <circle cx="300" cy="165" r="42.2" stroke-width="1.1"/>
+ <circle cx="300" cy="165" r="34.7" stroke-width=".5"/>
+ <circle cx="300" cy="165" r="26.6" stroke-width=".4"/>
+ </g>
+ <path d="m287.3 263.7-7.1 4.2-2.2-3.7-.7-1.6a2 2 0 0 1 .1-1.3q.3-.6 1-1 .5-.3 1.1-.3l1.1.2.8.6v-1.3l.3-.5 1.5-2.3 1.4 2.5-1.4 2.4-.3.8.1.6.1.2 3-1.7zm-5.5.3-.6-1-.4-.5-.5-.2-.5.1-.4.6q0 .3.4.9l.5 1zm-6.7-5.5-2.2-6.5 1.7-.6 1.3 4.1 1.3-.4-1.3-3.8 1.6-.5 1.3 3.7 1.5-.5-1.4-4.2 1.8-.5 2.2 6.6zm-2.9-9.7-.4-4.2q-.2-1.4.4-2.1.6-.9 1.8-1t2 .6q.7.7 1 2.2l.1 1.4 3-.4.4 2.6zm3.3-3-.1-.6q0-.7-.4-1l-.7-.2-.6.4q-.2.2-.2 1l.1.7zm-3.5-12.5.3-2.6 4.8.6 1.4.4q.6.3 1 .8t.6 1q.3.9.1 1.9l-.2 1.3q-.2.7-.5 1.1a3 3 0 0 1-1.8 1.3h-1.4l-4.9-.5.3-2.5 5 .5q.6 0 1-.2t.6-1a1 1 0 0 0-.3-1q-.4-.5-1-.6zm1-6 1.7-4.6q.3-1.2 1.1-1.5a2 2 0 0 1 1.6-.2q.7.3 1 .9.3.4.3 1 .5-.7 1.1-1a2 2 0 0 1 1.4 0 2 2 0 0 1 1.5 1.8v1l-.3 1-1.5 4.2zm4-1.4.4-1.1v-.8q0-.2-.4-.5h-.6l-.5.8-.4 1zm3 1 .5-1.2q.2-.6 0-1l-.4-.4h-.7l-.5.9-.4 1.2zm-3-9.6 1.3-2.2 5.4 3.2 2-3.4 1.8 1-3.4 5.6zm5-7.6 1.6-2 6.4 5.3-1.6 2zm11.1-4.3 2.2-1q.4 1 .5 1.7l-.3 1.5-1.2 1.5a4 4 0 0 1-2 1.1 4 4 0 0 1-2 0 5 5 0 0 1-2-1.6q-1.5-1.5-1.3-3.1a4 4 0 0 1 1.6-2.9 4 4 0 0 1 2.3-1q1-.2 2.3.5l-1.4 1.9-.6-.3h-.7l-.6.4a2 2 0 0 0-.6 1.4q.1.6.8 1.4.9 1 1.6 1.2.6.1 1.2-.4t.6-1q0-.7-.4-1.3m8.8-3.2-2.5 1.4.3 1.4-2.3 1.2-1.2-8.7 2.5-1.3 6.6 5.8-2.4 1.3zm-1.3-1.3-2.2-2.2.6 3zm7.8-8.5 3.8-.6h1.8q.8.1 1.3.7c.5.6.7.7.9 1.2q.4.7.4 1.5.3 1.4.1 2l-.6 1.4-1 .9-1.5.5-3.7.6zm2.9 1.4.8 4.5.6-.1q.8-.1 1-.4.4-.2.5-.7v-1.4q-.3-1.3-.8-1.7-.4-.5-1.5-.3zm7.8-2.8 6.8.3v1.8l-4.3-.2-.1 1.3 4 .2-.1 1.7-4-.2v1.6l4.4.2-.1 1.9-7-.3zm10 .8 2.4.6-1.5 6 4 1-.6 2-6.3-1.6zm13.2 4.4 3.7 2.2q1.2.7 1.4 1.6t-.3 2a3 3 0 0 1-1.7 1.3q-1 .2-2.3-.6l-1.2-.7-1.6 2.6-2.2-1.3zm.4 4.4.6.3 1 .3.6-.4v-.7q0-.4-.6-.8l-.6-.3zm7.2 9.6-2.1-2-1.2.7-2-1.7 8-4 2 2-3.4 8.1-2-1.8zm.8-1.7 1.4-2.8-2.7 1.6zm1 5.5 6.9-4.7 2.3 3.5 1 1.7-.1 1.2a2 2 0 0 1-1 1.1q-.5.4-1 .4l-1.2-.2-.8-.5.2.7-.2.6-.2.6-1.3 2.3-1.6-2.3 1.3-2.6.3-.7-.2-.7-.1-.2-2.8 2zm5.5-.6.7.9.4.4q.3.3.5.2l.5-.1.3-.6-.3-.9-.7-.9zm2.6 12.4-1-2.8-1.5.2-1-2.5 8.9-.1 1 2.6-6.5 6-1-2.6zm1.5-1.2 2.4-2-3.1.3zm2.1 9 1.7-.2.6 3.9-3.5.5-1.3-1.8-.6-2a5 5 0 0 1 .1-2.5 4 4 0 0 1 1.3-1.6 5 5 0 0 1 2.2-.9 5 5 0 0 1 2.4.2 4 4 0 0 1 1.7 1.4q.5.9.8 2.2v2l-.6 1.3q-.4.5-1.2.9l-.8-2.4q.4-.1.7-.6t0-1a2 2 0 0 0-.7-1.2q-.5-.5-2-.2a3 3 0 0 0-1.7.7q-.6.7-.4 1.5 0 .5.3.8l.5.8h.8zm5.4 12-.2 2.6-5-.4-1.3-.4-1-.8-.6-1.1-.2-1.8.2-1.3.5-1.2.8-.8 1-.4 1.4-.2 5 .5-.3 2.5-5-.4q-.8 0-1.1.3a1 1 0 0 0-.5 1q0 .7.3 1 .3.5 1 .5zm-9.1 8.8.9-2.8-1.2-.8.8-2.5 7 5.6-1 2.6-8.8.4.9-2.5zm1.9 0 3 .1-2.5-1.8zm3 6.8-1.5 2.4h-3.3l1.5 2.9-1.4 2.4-2.5-5.2-3-1.8 1.4-2.2 3 1.8z"/>
+ <g fill="#009b3a" stroke="#000" stroke-width=".1">
+ <path d="M328.1 211.3s23.4 10.1 19.3 30.9-17 20.6-22.2 23c-5 2.2-8.6 5.5-10.6 5s-4.7-2-4.7-2-.2 3.5 3.9 4c4.1.7 9.5-5.3 12-6 2.6-.6 18.5-2.4 22.4-23.5 4.5-22.6-20-30.7-20-31.4z"/>
+ <path d="M339.9 215.8a3.2.8 75.1 0 1-1.5 0 3.2.8 75.1 1 1 1.5 0z"/>
+ <path d="M339.1 216a3.3.7 63.3 1 1-1.4.5 3.3.7 63.3 0 1 1.4-.5zm-2.3 1.5a3.1.8 17 0 1-.2 1.6 3.1.8 17 0 1 .2-1.6z"/>
+ <path d="M337.1 216.7a3.3.7 34.2 1 1-.7 1.3 3.3.7 34.2 1 1 .7-1.3z"/>
+ <path d="M338.1 216.3a3.3.7 46.2 1 1-1 1 3.3.7 46.2 0 1 1-1z"/>
+ <path d="m339.7 219.2-1 .6c-.3 0-.6-.3-1.2 0s-1 .9-1.1 1.2q-.1.6.9.1t1.2-1.1l1.3-.7.8-1.3c.3-.4 1.2-1 1.6-1.8q.4-1-.2-.9a3 3 0 0 0-1.2 1.3c-.2.4 0 1-.3 1.4zm7.3 2.4a1 4.8-1.6 1 1-2.2-.5 1 4.8-1.6 1 1 2.2.5z"/>
+ <path d="M345.8 221.5a5 1 77.5 1 1-2.2.1 5 1 77.5 1 1 2.1 0z"/>
+ <path d="M342 222.7a4.7 1.1 35 1 1-.7 2.2 4.7 1.1 35 1 1 .7-2.2z"/>
+ <path d="M342.8 221.6a5 1 50.9 0 1-1.4 1.6 5 1 50.9 1 1 1.4-1.5z"/>
+ <path d="M344.3 221.5a5.1 1 61.8 1 1-1.8 1 5.1 1 61.8 1 1 1.8-1z"/>
+ <path d="m345.6 226.4-1.8.4c-.3 0-.6-.7-1.5-.5q-1.4.4-2 1.2-.4.8 1.2.6c1.2-.2 1.6-1 2.2-1l2-.4c.2-.4 1-1.2 1.5-1.6s2-1 2.7-1.8.7-1.6 0-1.5a5 5 0 0 0-2 1.3c-.5.6-.4 1.5-.9 2zm5.1 4.9a1 4.8 8.7 1 1-2-1 1 4.8 8.7 1 1 2 1z"/>
+ <path d="M349.6 231a1 5-2 1 1-2-.3 1 5-2 1 1 2 .3z"/>
+ <path d="M345.7 231.4a4.7 1.1 46 1 1-1 2 4.7 1.1 46 1 1 1-2z"/>
+ <path d="M346.7 230.5a5 1 61.8 1 1-1.7 1.3 5 1 61.8 1 1 1.7-1.3z"/>
+ <path d="M348.1 230.7a5.1 1 72.5 1 1-1.9.7 5.1 1 72.5 1 1 2-.7z"/>
+ <path d="M348.5 235.8h-1.7c-.3 0-.5-.8-1.4-.8a3 3 0 0 0-2.1.8q-.6.7 1 .8c1.6.1 1.7-.5 2.3-.6h2l1.8-1.2c.6-.4 2.1-.6 3-1.3.7-.6.9-1.4.3-1.4a5 5 0 0 0-2.3.9c-.5.4-.6 1.3-1.2 1.7-.4.2-1.6 1.1-1.7 1m2.5 6.4a1 4.8 31.3 0 1-1.4-1.7 1 4.8 31.3 0 1 1.4 1.7"/>
+ <path d="M350.1 241.3a1 5 20.6 0 1-1.8-1.1 1 5 20.6 0 1 1.8 1.1m-3.7-1.2a4.8 1 70 0 1-1.8 1.5 4.8 1 70 0 1 1.8-1.5"/>
+ <path d="M347.6 239.7a1 5.1-4.9 0 1-2 .5 1 5.1-4.9 1 1 2-.5"/>
+ <path d="M349 240.4a1 5.2 5.5 1 1-2-.1 1 5.2 5.5 1 1 2 .1"/>
+ <path d="M347.3 245.3s-1.4-.5-1.6-.7-.1-.8-1-1.3a3 3 0 0 0-2.2 0q-.8.2.6 1c1 .6 1.8.2 2.3.4l1.8.9c.5-.2 1.6-.3 2.2-.4s2.1.4 3.2 0c.9-.3 1.3-1 .7-1.2a5 5 0 0 0-2.3 0c-.7.1-1.1 1-1.8 1-.5 0-1.9.4-2 .3m1 7.7a1.3 5.5 48.5 1 1-1.1-2.4 1.3 5.5 48.5 1 1 1 2.4"/>
+ <path d="M347.3 251.9a1.2 5.8 37.5 1 1-1.5-2 1.2 5.8 37.5 1 1 1.5 2"/>
+ <path d="M343.7 249.2a1.3 5.5-3.5 1 1-2.4 1 1.3 5.5-3.5 1 1 2.4-1"/>
+ <path d="M345.1 249.2a1.2 5.9 11.6 0 1-2.3-.2 1.2 5.9 11.6 1 1 2.3.1"/>
+ <path d="M346.3 250.4a1.2 6 22.1 1 1-2.1-.8 1.2 6 22.1 1 1 2.1.8"/>
+ <path d="m343 255.3-1.6-1.4c-.2-.3.1-1-.7-1.8s-1.8-1-2.4-1q-1 .2.3 1.6c1 1 2 .8 2.4 1.2q1 .7 1.7 1.6l2.6.4c.7 0 2.2 1.1 3.5 1.1 1 0 1.8-.5 1.2-1a5 5 0 0 0-2.6-1c-.8 0-1.5.8-2.2.6l-2.3-.3m-2.3 7.3a1.4 6 79.8 1 1 .3-2.9 1.4 6 79.8 1 1-.3 2.9"/>
+ <path d="M340.5 261a1.3 6.4 68.5 0 1-.5-2.6 1.3 6.4 68.5 0 1 .5 2.7"/>
+ <path d="M338.4 256.4a1.4 6 26.2 0 1-2.8-.5 1.4 6 26.2 1 1 2.8.5"/>
+ <path d="M339.9 257.2a1.3 6.5 41.8 0 1-2.3-1.5 1.3 6.5 41.8 0 1 2.3 1.5"/>
+ <path d="M340.3 259.1a1.3 6.5 52.7 1 1-1.6-2 1.3 6.5 52.7 0 1 1.6 2"/>
+ <path d="m334.4 261.7-.7-2.2c-.1-.4.6-.8.3-2a4 4 0 0 0-1.9-2.3q-1-.5-.5 1.6c.4 1.4 1.4 1.9 1.7 2.6l.8 2.4 2.2 1.9c.6.5 1.5 2.4 2.7 3.1 1 .7 2 .5 1.8-.2a6 6 0 0 0-2-2.4c-.7-.6-1.8-.3-2.5-.8-.4-.5-2-1.6-2-1.7"/>
+ <path d="M330.8 268a1.8 6.1 89 0 1 0-3.5 1.8 6.1 89 0 1 0 3.5"/>
+ <path d="M330 262.5a1.7 6.3 37.6 0 1-2.7-2.2 1.7 6.3 37.6 1 1 2.6 2.2"/>
+ <path d="M330.8 265.3a1.7 6.2 66.5 0 1-1.2-3.3 1.7 6.2 66.5 0 1 1.2 3.3m1.7-53.4a3.8.8 41.1 0 1-1.5.8 3.8.8 41.1 1 1 1.5-.8m-1.9 1.5a3.9.8 8.2 0 1 .3 1.6 3.9.8 8.2 1 1-.3-1.6"/>
+ <path d="M331.4 212.4a4 .7 26.8 1 1-.8 1.3 4 .7 26.8 0 1 .8-1.3M303.7 262s5.1 1.1 9.6 2.7 11.3 7.2 13.1 7.6c2 0 4.9-.7 6-3.6-3.2.8-5 2.1-8 .5-1.1-.4-4.6-3.6-8.5-5.3-3.8-1.7-11.5-3.6-11.5-3.6l-.7 1.7m5.5-46.5 5.9-3.1-6.5 1.7-.8 1.1 1.4.3"/>
+ <path d="M314.8 217c-2.3-.5-5.8-1.3-8-1.4 1.5-1.7 3.6-4.7 5-6.4-1 1.7-2.3 4-2.8 5.5 1.5.9 4 1.6 5.8 2.2"/>
+ <path d="m308.1 215.9 5.3-4.1-6.1 2.7-.6 1.3h1.4"/>
+ <path d="M313.7 216.9c-2.3-.5-5.8-1.3-8-1.5 1.4-1.7 3.5-4.7 4.8-6.6-.8 1.8-2.2 4.1-2.7 5.8 1.6.9 4.1 1.6 6 2.3"/>
+ <path d="m307.3 216.2 6.1-2.6-6.6 1.1-.9 1 1.3.5"/>
+ <path d="M313 217c-2.3-.3-6-.7-8.2-.6 1.3-2 3-5.3 4.1-7.3-.6 1.9-1.7 4.4-2 6.1 1.7.8 4.3 1.2 6.1 1.7"/>
+ <path d="m306.6 216.2 4.2-5-5.3 3.9-.3 1.3 1.4-.2"/>
+ <path d="M313 217.3c-2.5 0-6.4-.3-8.8 0 1.2-2.3 2.7-6 3.6-8.3-.4 2.1-1.3 5-1.4 6.9 1.8.6 4.6 1 6.6 1.4"/>
+ <path d="m305.8 217.4 5-4.9-6.1 3.5-.4 1.4h1.5"/>
+ <path d="M311.9 217.4c-2.7 0-6.8-.1-9.5.2 1.8-2.5 4.2-6.6 5.6-9.1-1 2.3-2.4 5.4-3 7.5 1.9.7 4.8 1 6.9 1.4"/>
+ <path d="m304 217.8 6.6-5.5-7.4 3.9-.8 1.6h1.6"/>
+ <path d="M311 217.6c-2.7.4-6.9.8-9.4 1.5 1.3-2.7 3.1-7 4.2-9.7-.6 2.4-1.7 5.6-2 7.8 2 .4 5 .3 7.1.4"/>
+ <path d="m303.2 218.9 5-7-6.3 5.7-.3 1.7 1.6-.4"/>
+ <path d="M309.4 218.4c-2.6.3-6.8.5-9.4 1 1.5-2.6 3.5-6.8 4.8-9.4-.8 2.3-2 5.5-2.4 7.7 2 .5 5 .5 7 .7"/>
+ <path d="m302.3 219.6 6.4-5.5-7.3 3.9-.7 1.6h1.6"/>
+ <path d="M308.7 218.7c-2.7.6-6.9 1.3-9.4 2.1 1.2-2.7 2.8-7.1 3.8-9.8-.5 2.4-1.4 5.6-1.6 7.8 2 .3 5 0 7.2-.1"/>
+ <path d="m301.2 220 4-7.7-5.4 6.6-.1 1.7 1.5-.7"/>
+ <path d="M308.7 219.1c-3 .8-7.4 1.8-10 2.8 1-3.1 2.1-8 2.9-11.1-.3 2.7-.9 6.3-.8 8.8 2.3.2 5.5-.3 7.8-.5"/>
+ <path d="m300.4 221.7 5.2-7.6-6.6 6.1-.3 2 1.7-.5"/>
+ <path d="M307.5 220c-2.8.9-7.2 2.1-9.8 3.3.8-3.2 1.8-8.1 2.4-11.2-.1 2.7-.5 6.3-.3 8.7 2.2.1 5.4-.6 7.7-.8"/>
+ <path d="m299.4 222.8 3.9-8.4-5.6 7.2v2l1.7-.8"/>
+ <path d="M306.4 221.2c-2.8.6-7.3 1.5-10 2.4 1.1-3 2.5-8 3.4-11-.4 2.7-1.1 6.4-1.1 8.7 2.2.3 5.4-.1 7.7-.2"/>
+ <path d="m298.4 223.6 6.4-6.6-7.5 4.9-.6 1.8 1.7-.1"/>
+ <path d="M305.2 222.3c-2.9.4-7.3.8-10 1.5 1.3-3 3-7.8 4-10.8-.6 2.7-1.5 6.3-1.7 8.7 2.2.5 5.4.4 7.7.6"/>
+ <path d="m297.2 223 4.3-8.3-5.9 7v1.9l1.6-.7"/>
+ <path d="M305.5 221.3c-3 1.3-8 3-10.9 4.6 1-3.7 2-9.5 2.6-13.1 0 3.1-.5 7.4-.3 10.1 2.5 0 6-1.1 8.6-1.6"/>
+ <path d="m296.6 225.4 5.2-9.4-6.9 8-.2 2.2 1.9-.8"/>
+ <path d="M304.3 222.5c-3 1.4-7.8 3.4-10.6 5.1.8-3.6 1.5-9.5 2-13 0 3-.2 7.3.1 10 2.5-.3 6-1.5 8.5-2.1"/>
+ <path d="m295.5 226.8 3.8-10.1-5.7 9 .2 2.3 1.7-1.2"/>
+ <path d="M303 223.3c-3 1.5-7.8 3.5-10.6 5.3.7-3.7 1.4-9.5 1.9-13.1 0 3-.2 7.3.2 10 2.5-.3 6-1.6 8.5-2.2"/>
+ <path d="m294.7 228 5.8-8.9-7.4 7.3-.3 2.2 1.9-.6"/>
+ <path d="M302.7 222.8c-2.7 2.2-7 5.4-9.4 7.8 0-3.8-.5-9.5-.8-13 .6 2.9 1.3 7 2.3 9.5 2.4-.9 5.5-3 8-4.2"/>
+ <path d="m295 228.5.6-10.7-2.8 10.4.8 2 1.4-1.7"/>
+ <path d="M302 223.8c-2.8 2.2-7 5.3-9.5 7.7 0-3.7-.5-9.5-.8-13 .7 3 1.3 7 2.3 9.5 2.4-.8 5.5-3 8-4.2"/>
+ <path d="m294.3 230.3 2.7-10.5-4.7 9.6.3 2.2 1.7-1.3"/>
+ <path d="M301.6 224c-2.5 2.6-6.6 6.4-8.9 9-.4-3.7-1.5-9.6-2.2-13.2 1 3 2.1 7.1 3.4 9.5 2.3-1.1 5.4-3.6 7.7-5.2"/>
+ <path d="m294.3 231.6.5-11.1-2.7 10.8.8 2 1.4-1.7"/>
+ <path d="M300.8 226c-2.7 2.2-7 5.5-9.6 8 0-3.8-.7-9.8-1-13.5.7 3 1.5 7.3 2.5 9.9 2.5-1 5.7-3.1 8.1-4.5"/>
+ <path d="m293.5 232.9 3.8-10.5-5.8 9.3.2 2.3 1.8-1.1"/>
+ <path d="M300.8 226c-2.5 2.5-6.3 6.4-8.5 9.1-.4-3.8-1.5-9.8-2.1-13.4 1 3 2 7.2 3.2 9.6 2.3-1.2 5.1-3.7 7.4-5.3"/>
+ <path d="m293.6 233.4-.4-11-1.8 11 1 1.9 1.2-1.9"/>
+ <path d="M299.6 226.8c-2.4 2.6-6.1 6.5-8.2 9.3-.5-4-1.8-9.8-2.5-13.5 1 3 2.3 7.2 3.5 9.6 2.2-1.2 5-3.8 7.2-5.4"/>
+ <path d="m293 234.5 1.2-11.2-3.3 10.6.7 2.2 1.4-1.6"/>
+ <path d="M299 227.2c-2 2.9-5.5 7-7.4 10-.8-3.8-2.5-9.5-3.5-13 1.3 2.8 2.8 6.8 4.2 9.1 2.1-1.4 4.7-4.2 6.8-6"/>
+ <path d="m293 235.6-.8-11.3-1.4 11.2 1 2 1.1-2"/>
+ <path d="M298.9 227.9c-2 3-5.3 7.3-7 10.4-1-3.8-3-9.5-4.2-13 1.4 2.8 3.1 6.8 4.7 9 2-1.5 4.5-4.5 6.5-6.4"/>
+ <path d="m293.6 236.6 1.2-11.3-3.2 10.6.6 2.3 1.4-1.6"/>
+ <path d="M298.4 229c-1.7 3.1-4.5 8-6 11.3-1.3-3.6-3.8-9-5.3-12.4 1.7 2.6 3.7 6.3 5.5 8.4 1.9-1.8 4-5.2 5.8-7.4"/>
+ <path d="m293.3 237.6-3.2-10.8 1 11.3 1.5 1.6.6-2.1"/>
+ <path d="M298.4 230.2c-1.8 3.2-4.8 8-6.3 11.3-1.3-3.6-3.8-9-5.4-12.3 1.7 2.6 3.8 6.3 5.6 8.3 2-1.8 4.2-5.1 6-7.3"/>
+ <path d="m293.4 239.6-1.2-11.3-1 11.3 1.1 2 1.1-2"/>
+ <path d="M298.6 231.2c-1.9 3.1-5 7.9-6.5 11.1-1.3-3.6-3.7-9-5.2-12.4 1.7 2.6 3.7 6.4 5.5 8.4 2-1.7 4.3-5 6.2-7.1"/>
+ <path d="m293.3 240.5-2.1-11-.1 11.2 1.3 1.8.9-2"/>
+ <path d="M297.8 232.8c-2 3-5.3 7.5-7 10.7-1.1-3.7-3.3-9.4-4.6-12.8 1.5 2.7 3.4 6.6 5 8.8 2.1-1.6 4.6-4.7 6.6-6.7"/>
+ <path d="m292.3 241.7 1-11.3-3.1 10.7.7 2.2 1.4-1.6"/>
+ <path d="M297.9 233c-1.7 3.3-4.6 8.3-6 11.6-1.4-3.5-4-8.8-5.7-12 1.8 2.4 4 6 5.8 8 2-1.9 4-5.3 5.9-7.5"/>
+ <path d="m292 242.7-3.5-10.6 1.3 11.2 1.5 1.6.6-2.2"/>
+ <path d="M297.4 233.9c-1.2 3.6-3.2 9-4 12.7-2-3.2-5.5-7.8-7.6-10.7 2.1 2.1 4.9 5.2 7 6.7 1.6-2.3 3.2-6 4.6-8.7"/>
+ <path d="m295 243.5-3.7-10.4 1.6 11.2 1.5 1.4.6-2.2"/>
+ <path d="M297.4 235c-1.2 3.6-3.2 9.1-4 12.7-2-3.2-5.4-7.7-7.6-10.5 2.1 2 4.9 5 7 6.6 1.6-2.3 3.2-6.1 4.6-8.8"/>
+ <path d="m295 245.3-4.8-9.7 2.8 10.8 1.7 1.2.4-2.3"/>
+ <path d="M297 235.9c-.7 3.7-2 9.5-2.5 13.2-2.3-2.9-6.3-7-8.7-9.4 2.3 1.7 5.4 4.4 7.7 5.5 1.3-2.5 2.4-6.5 3.5-9.3"/>
+ <path d="m295.4 246.8-2.6-10.9.4 11.3 1.4 1.7.8-2"/>
+ <path d="M297 237c-.4 3.9-1.2 9.8-1.2 13.5-2.6-2.5-6.9-6-9.5-8.1 2.4 1.4 5.7 3.6 8.1 4.4 1-2.6 1.8-6.8 2.6-9.7"/>
+ <path d="m295.5 247.6-6.9-7.8 5.2 9.5 2 .6-.3-2.3"/>
+ <path d="M297.2 238.4c-.4 3.8-1.2 9.7-1.3 13.4-2.6-2.5-6.9-6-9.5-8.2 2.5 1.4 5.8 3.7 8.1 4.5 1.1-2.6 1.8-6.8 2.7-9.7"/>
+ <path d="M296.3 249.4 291 240l3.3 10.7 1.7 1.1.3-2.3"/>
+ <path d="M297.5 240c-.3 3.8-.8 9.7-.8 13.5a117 117 0 0 0-9.8-7.6c2.6 1.2 6 3.3 8.3 4 1-2.7 1.6-7 2.3-10"/>
+ <path d="m297 251.2-6.6-8.3 4.8 9.8 1.8.8v-2.3"/>
+ <path d="M297.6 241.8c-.3 3.8-.8 9.7-.7 13.5-2.7-2.4-7.1-5.6-9.9-7.6 2.6 1.3 6 3.3 8.4 4 1-2.7 1.5-7 2.2-10"/>
+ <path d="m297.5 252.6-4.5-10 2.5 11 1.6 1.3.4-2.3"/>
+ <path d="M297.7 242.9c.2 3.9.2 9.8.6 13.6a134 134 0 0 0-10.4-6.2c2.6.9 6.1 2.4 8.6 2.8.7-2.9.8-7.1 1.2-10.2"/>
+ <path d="m298.3 252.2-8.3-5.7 7 7.8 2 .1-.7-2.2"/>
+ <path d="M298 243.3c.3 3.9.7 9.8 1.3 13.5-3-1.9-7.8-4.3-10.8-5.8 2.7.8 6.3 2.2 8.8 2.5.5-2.9.4-7.1.7-10.2"/>
+ <path d="m299.3 254.3-7-8 5.3 9.6 1.9.7-.3-2.3"/>
+ <path d="M298.6 244.8c.5 3.8 1 9.7 1.9 13.4-3-1.7-8-3.8-11-5.1 2.7.6 6.4 1.8 8.8 2 .4-3 .2-7.2.3-10.3"/>
+ <path d="m300.6 255.7-8.3-5.9 7 8 2 .1-.7-2.2"/>
+ <path d="M298.9 246.4c.7 3.8 1.7 9.7 2.7 13.3-3.1-1.5-8.2-3.1-11.3-4.1 2.8.3 6.5 1.2 9 1 .2-2.9-.3-7-.4-10.2"/>
+ <path d="m301.6 256.9-7-8.2 5.2 9.7 2 .8-.2-2.3"/>
+ <path d="M299.3 247.4c1.1 3.7 2.6 9.5 4 13-3.3-1-8.4-2-11.6-2.6 2.8 0 6.5.3 9-.1 0-3-1-7.1-1.4-10.2"/>
+ <path d="m302 256.9-9.7-2 9.1 4.5 1.9-.7-1.4-1.8"/>
+ <path d="M300 248.6c1 3.7 2.5 9.4 3.8 12.9-3.2-1-8.3-2-11.5-2.6 2.8 0 6.5.3 9 0 0-3-1-7.2-1.3-10.3"/>
+ <path d="m303.5 257.9-9.2-4.5 8.2 6.7 2-.2-1-2"/>
+ <path d="M299.5 249.2c1.8 3.4 4.5 8.7 6.5 11.7-3.4-.2-8.6 0-11.8 0 2.7-.5 6.4-1 8.7-2-.7-2.9-2.4-6.7-3.4-9.7"/>
+ <path d="m305 258.9-9.6-2.6 9 5 1.8-.5-1.3-2"/>
+ <path d="M300.4 250.7c1.9 3.3 4.6 8.6 6.7 11.6-3.4-.2-8.6 0-11.8.2 2.6-.7 6.4-1.2 8.6-2.2-.6-2.9-2.4-6.7-3.4-9.6"/>
+ <path d="m306.1 259.7-8.9-5.3 7.8 7.4h2l-.9-2.1"/>
+ <path d="M301.2 251.5c2.1 3.1 5.3 8 7.6 10.9a90 90 0 0 0-11.6 1.7c2.6-1 6.2-2 8.4-3.3-1-2.8-3.1-6.5-4.4-9.3"/>
+ <path d="m306.8 260.5-9.6-.3 9.5 2.9 1.7-1.1-1.6-1.5m5.6-46.6 6.9-1.1-6.9.1-1.2.6 1.2.4"/>
+ <path d="M316.2 215.4c-2-.6-5-1.6-7.1-2l7.4-3.5c-1.5 1-3.8 2.2-5 3.2 1.2.8 3.3 1.6 4.7 2.3"/>
+ <path d="m312 214.1 6.8-1.8-7 .9-1 .7 1.3.2"/>
+ <path d="M316.5 215.9c-2.4-.3-6-.7-8.3-.7 1.8-1.6 4.2-4.1 5.7-5.7-1 1.5-2.6 3.4-3.3 4.8 1.6.7 4.1 1.1 5.9 1.6"/>
+ <path d="m309.6 214.6 7-.8-6.8-.2-1.3.6 1 .4"/>
+ <path d="m314.7 216.1-7.5-1.3 6.9-3.8c-1.4 1-3.4 2.4-4.4 3.4 1.3.6 3.5 1.2 5 1.7"/>
+ <path d="m309 214.6 6.1-2.7-6.7 1.8-.8.8h1.4"/>
+ <path d="M314.5 216.9c-1.7-.7-4.5-2-6.2-2.5l4.4-4.8c-.8 1.3-2 3-2.6 4.4 1.2 1 3 2 4.4 2.9"/>
+ <path d="m309.3 215 4.8-2-5.2.6-.6 1 1 .4m-4 44.6h-9.8l10 2.5 1.6-1-1.8-1.5"/>
+ <path d="m307.1 260.2-10-2.3 9.6 4.7 2-.6-1.6-1.8"/>
+ <path d="m308.8 260.9-10-.5 10 3 1.7-1-1.7-1.5"/>
+ <path d="M302.5 253.9c2.5 2.8 6.4 7.4 9.1 9.9-3.3.5-8.3 1.8-11.4 2.7 2.4-1.2 6-2.6 8-4-1.4-2.6-4-6-5.7-8.6"/>
+ <path d="m310.1 261.4-10-3.3 9.4 5.6 2-.4-1.4-2"/>
+ <path d="M303.4 254.5c2.8 2.6 7 6.7 10 9-3.2.9-8 2.8-11 4 2.3-1.4 5.6-3.2 7.4-5-1.6-2.4-4.5-5.5-6.4-8"/>
+ <path d="m311 262-9.5 1.9 10 .6 1.4-1.3-2-1.2"/>
+ <path d="m309 261.4-9.8.8 10.1 1.7 1.6-1.2-2-1.3"/>
+ <path d="m310.8 262-10.2-1.7 10 4 1.8-.7z"/>
+ <path d="m312.5 262.5-10 .2 10.2 2.3 1.6-1.1z"/>
+ <path d="M305.7 256c2.8 2.6 7 6.8 9.9 9.2-3.3.7-8.3 2.4-11.3 3.4 2.4-1.3 5.8-2.9 7.7-4.5-1.6-2.5-4.4-5.7-6.3-8.2z"/>
+ <path d="m313.9 262.9-10.2-2.6 9.8 5 1.9-.6z"/>
+ <path d="M306.6 256.5c3 2.4 7.6 6.2 10.7 8.2-3.2 1.1-7.8 3.5-10.6 4.9 2.2-1.7 5.3-3.7 7-5.5-1.8-2.4-5-5.3-7-7.6z"/>
+ <path d="m314.8 263.4-9.3 2.6h10l1.3-1.5-2-1z"/>
+ </g>
+ <path fill="#fedf00" stroke="#000" stroke-width=".4" d="m327.6 249.5-7.6-5.3-7.6 5.3 2.9-8.4-6.7-5.2h8.6l2.8-8.4 2.8 8.4h8.6l-6.7 5.2z"/>
+</svg>
diff --git a/apps/web/public/flags/qa.svg b/apps/web/public/flags/qa.svg
new file mode 100644
index 00000000..901f3fa7
--- /dev/null
+++ b/apps/web/public/flags/qa.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-qa" viewBox="0 0 640 480">
+ <path fill="#8d1b3d" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0v480h158.4l97.8-26.7-97.8-26.6 97.7-26.7-97.7-26.7 97.7-26.6-97.7-26.7 97.8-26.7-97.8-26.6 97.7-26.7-97.7-26.7 97.7-26.6-97.7-26.7 97.8-26.7-97.8-26.6L256.1 80l-97.7-26.7 97.8-26.6L158.3 0z"/>
+</svg>
diff --git a/apps/web/public/flags/re.svg b/apps/web/public/flags/re.svg
new file mode 100644
index 00000000..64e788e0
--- /dev/null
+++ b/apps/web/public/flags/re.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-re" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/ro.svg b/apps/web/public/flags/ro.svg
new file mode 100644
index 00000000..fda0f7be
--- /dev/null
+++ b/apps/web/public/flags/ro.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ro" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#00319c" d="M0 0h213.3v480H0z"/>
+ <path fill="#ffde00" d="M213.3 0h213.4v480H213.3z"/>
+ <path fill="#de2110" d="M426.7 0H640v480H426.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/rs.svg b/apps/web/public/flags/rs.svg
new file mode 100644
index 00000000..6d4f74d7
--- /dev/null
+++ b/apps/web/public/flags/rs.svg
@@ -0,0 +1,292 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-rs" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="rs-a">
+ <path fill-rule="evenodd" d="M60 0h1200v900H60z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#rs-a)" transform="translate(-32)scale(.53333)">
+ <path fill="#fff" d="M0 0h1350v900H0z"/>
+ <path fill="#0c4076" d="M0 0h1350v600H0z"/>
+ <path fill="#c6363c" d="M0 0h1350v300H0z"/>
+ <g transform="matrix(1 0 0 1.00437 0 -.3)">
+ <path fill="#21231e" d="M473.4 259.4v-.2h1v.2l-.5.5-.6-.6zm1 0v.5h-.5l.4-.6zm-93 5.2-1 .2.3-.6 4.2-.2 4-.3 4-.2 3.8-.3 4-.2 3.6-.3 3.7-.2 3.7-.2 3.5-.2h3.4l3.3-.3 3.2-.2 3.2-.2 3-.2h3l3-.2 3-.2 2.7-.2h2.8l2.7-.2 2.5-.2h2.5l2.4-.3h2.2l2.2-.2h2.2l2-.2h2l2-.2h5.3v1h-5.5l-1.8.2h-2l-2 .2h-2.2l-2.2.2-2.4.2h-2.4l-2.5.2-2.5.2H446l-2.8.3h-2.8l-3 .3-2.8.2h-3l-3 .3-3.3.2-3.3.2-3.3.2h-3.5l-3.5.3-3.6.2-3.5.3-3.8.2-3.8.2-4 .3-4 .2-4 .3-4.2.2.5-.6zm-1 .2-.3-.5h.7zm6.4 31-6.5-31 1-.2 6.5 31-.5.7zm.5.5h-.4l-.2-.4.5.3zm95-4-.2 1h.2-5.8l-3 .2h-3l-2.8.2h-3l-3 .2h-6l-3 .2h-3l-3 .2h-3l-3 .2h-3.2l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-2.8.2h-5.8l-2.7.2h-2.7v-1h5.8l2.7-.2h5.8l3-.2h3l2.8-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3.2l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l2.8-.2h3l2.8-.2h.2zm-.2 0h.2zm94.5 3.4 1 .2-.5.3h-2.8l-2.8-.2h-8.8l-2.8-.2h-3l-3-.2H551l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3.2-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2H485l-3-.2.2-1h2.8l3 .2h3l2.8.2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3.2l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h5.8l2.7.2h3l2.7.2h2.8l-.5.5zm1 .2v.3h-.5l.5-.4zm6.5-31.2-6.5 31h-1l6.5-31.2.6-.4zm-.4-.6h.5v.6zm-93.7-4.8h1l-.6-.5h5.4l2 .2h2l2 .2h2l2.4.2h2.4l2.4.3h5l2.6.3h2.7l3 .3 2.8.2h3l3 .3 3 .3 3.3.2 3.3.2 3.4.2h3.4l3.6.3 3.6.2 3.7.2 3.6.3 4 .2 3.8.3 4 .2 4 .3 4.2.2v1l-4.3-.2-4-.3-4-.2-4-.3-3.7-.2-3.8-.2-3.6-.3-3.6-.2-3.5-.2h-3.4l-3.3-.3-3.3-.2-3.2-.2-3-.2h-3l-3-.2-3-.2h-2.7l-2.6-.3h-2.6l-2.6-.3h-2.5l-2.4-.2-2.3-.2h-2.2l-2.2-.2h-2l-2-.2h-2l-1.8-.2h-3.3l-.5-.6zm.4.5h-.5v-.6l.4.5zm.5-.8v.2h-1v-.2l.3-.5.6.5zm-1 0v-.4h.3l-.4.4zm-8 .3.2-1h8.8l.3.2v.8h-.5v.2h-.3l-.2-1h.2v.7h.2-8.2zm-8.1.2v-1l-.2 1h-.4l-.2-.2-.3-.3v-.5l.2-.2h9.4v1h-8.8l.2-.2v-.8h-.2.4v1zm0-1v1l-.6-.5.5-.5zm-.6.5v-.5h.5l-.6.5z"/>
+ <path fill="#edb92e" d="M583.5 264.2q4.6-10 11.2-18.7-17.6 13.2-18.7-4-1.2-.2-2.6-.2-13.5 21-26.2-5.8-17.4 27.6-29.2-1-20 25-33.6.2v-2q.6.4-1 0l-.3-.3-1 .2-.8-.2-.2.4q-1.9.2-1 0v2q-13.8 24.6-33.7-.4-11.8 28.6-29.2 1-12.5 27-26 6-1.6 0-2.7.2-1.1 17-18.8 4c4.6 5.5 8 12 11.3 18.6q50.9-2.2 101.3-5 50.8 2.8 101.5 5z"/>
+ <path fill="#21231e" d="m595 246-.6-1 .7 1-.3.4-.4.5-.4.4-.5.6-.4.5-.3.6-.4.6-.4.6-.5.5-.3.6-.4.6-.4.4-.3.6-.3.6-.3.6-.4.6-.3.5-.3.6-.4.5-.3.6-.3.7-.4.6-.3.6-.3.5-.3.6-.2.8-.3.6-.4.6-.2.6-.3.6-.3.6-.3.6-1-.4.3-.6.3-.7.3-.6.2-.5.4-.6.3-.7.2-.6.3-.6.3-.6.4-.6.3-.6.3-.6.3-.6.5-.6.3-.6.4-.6.3-.6.4-.5.2-.5.4-.6.4-.7.3-.6.4-.5.4-.6.5-.6.4-.5.3-.6.4-.6.4-.6.5-.5.4-.6.4-.5.7.7zm-19.2-4 .3-1 .5.5v1l.2 1v1l.3.7.2.8.3.7.3.7.2.6.4.5.3.5.4.4.5.3.4.3.4.3.5.2h.4l.5.2h1.9l.7-.2.7-.2.8-.3.8-.3.8-.3 1-.5.8-.6 1-.5 1-.7 1-.7 1-.7 1-1 .7 1-1 .7-1 .8-1 .7-1 .6-1 .5-1 .5-1 .5-.8.4-1 .3-.7.3-.8.2h-.8l-.8.2h-2l-.7-.3-.5-.2-.6-.3-.5-.5-.6-.4-.5-.4-.5-.5-.3-.5-.4-.7-.3-.7-.2-.7-.3-.8-.2-1v-.8l-.2-1v-1l.2.3zm.3-1 .4.2v.3zm-2.2.6-.8-.6.4-.2h2v.2h.4l-.2 1h-1.2v-.2h-1.2l.4-.2zm-.8-.6v-.2h.4zm-25.3-5.2-1-.6h1l.8 1.7.8 1.4.8 1.5.8 1.2.8 1.2.8 1.2.8 1 .8 1 .8.8.8.8.8.7.7.5 1 .4.7.3.8.3.7.3h2.3l.8-.2.8-.2.8-.3.8-.4.8-.6.8-.6.8-.7.8-.6 1-1 .7-1 .8-1 .8-1 1-1.4.8.6-.8 1.3-1 1-.7 1.2-1 1-.7 1-1 .7-.8.6-.8.6-1 .6-.7.4-1 .4-.8.2-1 .2h-3l-1-.4-.7-.3-1-.5-.7-.5-1-.6-.7-.7-1-.8-.8-1-.8-1-.8-1-.8-1.2-.8-1.3-.8-1.3-.8-1.5-.8-1.6-.8-1.7h1zm-1-.6.6-.7.4.8h-1zm-28.3-.5-.8-.6 1 .2.6 1.7.7 1.5.7 1.5.8 1.4.7 1.3.8 1.2.8 1 .8 1 .8.7.8.7.8.6 1 .5.7.4.8.2 1 .2h2.5l1-.3.8-.2 1-.4.8-.6 1-.7 1-.6 1-1 1-1 1-1 1-1.2 1-1.3 1-1.6 1-1.5 1.2-1.8 1 .6-1.2 1.7-1 1.5-1.2 1.5-1 1.3-1 1.3-1 1.2-1.2 1-1 1-1 .8-1 .7-1 .6-1 .4-1 .4-1 .4h-3l-1-.2-1-.3-.8-.6-1-.5-.8-.8-1-.8-.7-.8-1-1-.8-1-.8-1.3-.8-1.4-.8-1.5-.8-1.5-.7-1.7-.8-1.7h1zm-.8-.6.5-.6.5.8h-1zm-33.8.7h1v-.2l.8 1.5 1 1.4.8 1.2 1 1.2.8 1 1 1 .8 1 1 .8.8.7 1 .6 1 .4 1 .4.8.3 1 .3 1 .2h2l1-.2 1-.3 1-.3 1.2-.4 1-.6 1.2-.6 1-.6 1.3-.8 1-1 1.3-1 1.2-1 1-1.3 1.4-1.3 1.2-1.4 1.2-1.5.8.7-1.3 1.5-1 1.5-1.3 1.3-1.2 1.3-1.2 1-1.2 1-1 1-1.3 1-1.2.7-1 .6-1.3.6-1 .5-1.3.3-1.2.3h-1l-1.2.2h-1l-1.2-.2-1-.2-1-.3-1-.4-1-.5-1-.7-1-.6-1-1-1-.8-1-1-1-1.2-.8-1.2-1-1.3-.8-1.5-1-1.5v-.3zm0 .3v-.3zm1-2.3v2h-1v-2l.8-.5.3.5zm-1 0v-.8l.8.2-.8.5zm-1 .3 1-.4-.4-.3h1l-.2.2v.4l.4-1h.2v.2l.2.2v.6h-1.8l-.5-.3zm.5.3h-.3v-.3zm.3-1 .2.3-1 .4v-.4l.2-.7.6.2zm-.6-.4.4-.2.2.4zm-1 1 .2-1h.8l.2 1h-1zm-.4-.4-1-.4.7-.3h.8v1h-1zm-1-.4.3-.4h.3zm0 .4v-.4l1 .4-.2.4-.4.3zm.8.4v.3h-.4zm-1-.3h-1l.7.4v.2h.2v-.8h-.2.2l.2-.2h.4l.2 1h-1.9v-.2h-.2v-.5h.2v-.2h.2l.8.4zm-.7-.5.7-.3v.7zm-.3 2.5v-2h1v2.3zm1 0v.2zm-33.6 0-1-.5h1l1 1.4 1.3 1.4 1.3 1.3 1.2 1.2 1.2 1 1.2 1.2 1 1 1.2.7 1 .7 1.2.7 1 .6 1.2.4 1 .3 1 .3h1l1 .2h1l1-.2 1-.2 1-.2 1-.4 1-.5 1-.7.8-.7 1-.8.8-1 1-1 .8-1 1-1.2.8-1.2.8-1.4 1-1.5.8.5-1 1.5-.8 1.4-1 1.2-.8 1.2-1 1.2-1 1-.8 1-1 .8-1 .7-1 .8-1 .5-1 .4-1 .4-1 .3-1.2.2h-2.2l-1-.2-1.3-.3-1-.3-1.2-.5-1-.6-1.2-.6-1.2-.8-1.2-.8-1.2-1-1.2-1-1.2-1-1.2-1.4-1.2-1.3-1.3-1.5-1-1.5h.8zm-1-.5.3-.8.7.7zm-28.3 1.5-1-.4h1l1 1.6 1 1.4 1.2 1.5 1 1.2 1 1.2 1 1 1 1 1 1 1 .7 1 .8 1 .6.8.4 1 .3.8.4h2.8l.8-.2.8-.3.8-.5 1-.5.7-.6 1-.7.7-.8.8-1 .8-1 .8-1.3.8-1.3.8-1.4.8-1.5.7-1.6.8-1.8 1 .4-.8 1.7-.7 1.7-.8 1.5-.8 1.4-.8 1.3-1 1.2-.7 1-1 1-.7 1-1 .7-.8.7-1 .4-.8.5-1 .2-1 .2h-3l-1-.3-1-.3-1-.4-1-.6-1-.7-1-.8-1-1-1-1-1-1-1-1.4-1-1.3-1.2-1.5-1-1.5-1.2-1.7h1zm-1-.4.5-.8.5.7h-1zm-25.6 6.5v-1l.3.2 1 1.3.7 1.2.8 1 .8 1 .8.8 1 .8.7.8 1 .6.7.5.7.3.8.3.8.2.8.2h2.3l.8-.4.8-.3.8-.4.7-.5 1-.6.7-.8.8-.8.8-.8.8-1 1-1 .7-1.2.7-1.2.8-1.3.8-1.6.8-1.5.8-1.7 1 .4-1 1.7-.7 1.5-1 1.4-.7 1.3-.8 1.3-.8 1.2-.8 1-1 1-.8 1-.8.8-.8.7-1 .6-.7.5-1 .5-1 .3-.7.3h-2.6l-1-.2-.8-.2-1-.4-.8-.4-1-.6-.8-.6-.8-.7-1-1-.7-.8-1-1-.8-1-1-1.3-.7-1.4.4.2zm0-1h.2v.2l-.3-.2zm-2.2.8h-1l.4-.5h1.2v-.2h1.5v1H389v.2h-.4zm-1 0v-.4h.4zm-18 3.6-.6.7.6-1 1 1 1.2.6 1 .7 1 .6 1 .4.8.5 1 .4.7.3.8.3.8.3.8.2h.7l.7.2h1.7l.4-.2.5-.2.4-.3.4-.3.4-.3.4-.4.3-.5.2-.5.3-.6.3-.7.3-.7.3-.8v-.8l.3-1v-.8l.2-1h1v1l-.2 1-.2 1-.2 1-.2.7-.2.8-.3.8-.4.7-.2.6-.5.6-.4.5-.6.5-.5.4-.7.2-.6.2-.6.2h-3.3l-.8-.3-.8-.3-1-.3-.8-.4-1-.5-.8-.5-1-.5-1-.6-1-.7-1-.8-1.2-.8.7-.8zm11 18.5v1l-.4-.3-.3-.6-.2-.6-.3-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.5-.4-.6-.4-.7-.3-.6-.4-.6-.3-.5-.4-.6-.4-.7-.4-.5-.3-.6-.4-.6-.4-.6-.4-.6-.3-.5-.4-.7-.3-.6-.3-.5-.4-.6-.4-.5-.4-.5-.4-.5-.4-.6-.4-.5-.4-.6-.4-.5.7-.8.4.5.4.6.4.5.4.6.4.5.4.5.4.5.4.6.4.6.4.5.3.6.4.6.4.5.4.6.4.6.3.6.5.6.3.6.3.6.5.6.3.6.3.6.5.6.3.7.3.7.4.6.3.6.4.5.4.6.3.7.3.7.3.6-.5-.3zm0 1h-.3v-.3zm101.4-6v1l-3.2.2h-3.2l-3 .3h-3.3l-3 .3-3.3.2H460l-3 .3-3.3.3h-3.2l-3 .3H444l-3 .3h-3.3l-3.3.2-3 .2h-3.3l-3.2.3h-3l-3.3.3-3.3.2h-3l-3.3.3h-3.2l-3 .2-3.3.2h-3.3l-3.2.2h-3l-3.3.3H384l-3 .2-.2-1h3.2l3.2-.3h3l3.3-.2 3.2-.2h3l3.3-.3h3.2l3-.3h3.3l3.2-.3h3l3.3-.2h3.2l3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3h3l3.3-.3 3.2-.2h3l3.3-.3 3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3 3-.3h.2zm101.2 5v1h-3l-3.3-.2-3-.2h-3.3l-3-.3h-3.3l-3.2-.3h-3l-3.3-.2-3.3-.2h-3l-3.3-.3-3.2-.2h-3l-3.3-.3h-3.3l-3-.3h-3.3l-3.2-.3-3-.3h-3.3l-3.3-.3h-3l-3.3-.3h-3l-3.3-.2-3-.2-3.2-.2h-3.2l-3.2-.3h-3l-3.3-.2.2-1h3l3.3.3 3.2.2 3 .2 3.3.2h3l3.3.3h3.2l3 .2 3.3.2 3.2.2h3l3.3.3h3l3.3.2 3.2.2h3l3.3.3h3.3l3 .3h3.3l3.2.3h3l3.3.3h3.3l3 .3h3.3l3.2.2h3.2l3 .2 3.3.2h3.2zm0 1v-1l.5.7zm.5-.3-.2.3h-.4z"/>
+ <path fill="#edb92e" d="m459.4 276.2 22.7-11.5 23 11.5-23 11.4z"/>
+ <path fill="#edb92e" d="M474 259.2v.2q-26.4 1-93.2 5.3l6.5 31c29.6-.8 64.3-2 94.8-3 30.7 1 65.3 2.2 95 3l6.5-31q-66.9-4.2-93-5.3v-.2q2.6-.5-8.4-.2c-7-.2-10-.2-8 .2z"/>
+ <path fill="#edb92e" d="m597.3 236.7-3.7-.6c-7 17.5-13.4 18-14.6 1.4 1.6-.6 1-3.3 2.8-2.2 1 .5 2-1 1.3-2q-2.9-2.2-5.4.4c-.8-2.7-3-4-5.4-2.8-1 .5-.7 2.5.4 2.4 1.8-.2 1 1.6 1.6 3-12.5 16.4-19 14.4-17.4-7.3-3-.7-6.5-1.3-9.6-2.4-11.5 23.3-19.7 24.3-26.4 3.4 1.4-1 1-3.8 3-3 1.3.6 2.3-1.5 1.2-2.4-2.4-2-5-1.3-6.8 1.3-1.4-3-4-4-6.6-2.2-1.2.7-.5 3 .8 2.6 2.3-.7 1.3 2.4 3 3.5-5 19.6-30.8 21-26.6-8.2q-3.5 0-6.6.2l-6.7-.2c4.2 29-21.5 27.8-26.6 8 1.6-1 .6-4 3-3.4 1.2.3 2-2 .7-2.7-2.6-1.7-5.2-.7-6.6 2.2-1.7-2.7-4.3-3.4-6.7-1.4-1 1 0 3 1 2.5 2.2-.8 1.8 2 3.2 3-6.7 21-15 20-26.4-3.4-3 1-6.5 1.7-9.5 2.3 1.6 21.6-5 23.6-17.4 7 .6-1.2 0-3 1.7-2.8 1 0 1.5-2 .4-2.4-2.4-1-4.5 0-5.3 2.8q-2.5-2.7-5.5-.4c-.8 1 .4 2.5 1.3 2 1.8-1 1.2 1.6 2.8 2.2-1.2 16.5-7.6 16-14.6-1.3l-3.7.7c0 4 1.3 8.5 3.8 11.7 10.6 13.5 18.5 10.4 18.8-4.7 14 16.4 24.4 14.3 26.2-3 11.7 21.8 30.5 11.4 31-2 5 19.4 33.5 19.2 35.4-3 1.8 22.2 30.3 22.4 35.4 3 .4 13.4 19.2 23.8 31 2 1.7 17.3 12.3 19.4 26 3 .4 15 8.3 18.2 19 4.7 2.4-3.2 3.8-7.6 3.7-11.7z"/>
+ <path fill="#21231e" d="m593.7 235.6 3.7.6-.2 1-3.6-.6-.4-.7zm-.5.3v-.4h.5zm-14.3 1 .2 1 .3-.6.2 1.4v1.4l.3 1.3.2 1.2.2 1 .3 1 .3 1 .3.7.3.7.3.6.3.5.3.5.4.2.3.2h1.3l.4-.3.4-.2.5-.4.4-.3.6-.6.5-.6.6-.7.7-1 .6-.8.7-1.2.6-1.2.6-1.3.7-1.3.5-1.5.7-1.6 1 .3-.8 1.6-.6 1.4-.7 1.4-.5 1.3-.7 1.3-.6 1-.6 1-.7 1-.7.8-.6.8-.6.6-.5.5-.6.3-.7.4-.5.2h-1.2l-.6-.2-.5-.2-.5-.4-.5-.4-.4-.6-.3-.6-.3-.8-.4-.8-.3-1-.2-1-.3-1-.2-1.3-.2-1.3-.2-1.5v-1.6l.3-.5zm-.5.4v-.4h.4zm3.5-2.7-.5 1v-.2h-.4v.2h-.2v.2l-.2.2v.3l-.2.3-.2.3v.2h-.2v.3h-.3v.2h-.3l-.2.2-.3-1v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.4l.2-.2v-.3l.2-.2.2-.2h.2l.2-.2h1l.2.2zm.8-1 .6-1v.2h.2l.2.3v1.6h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.5v.2h-.8l-.3-.2.5-1v.2h.4v-.2h.2v-.2h.2v-.8zm.6-1v.2zm-6.3 1 1-.3-.8-.2h.2l.2-.3.2-.2.2-.2.3-.2h.2l.2-.2h.2v-.2h.4l.2-.2h2.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2.2.2-.6.8-.3-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-2.1v.2h-.3v.2h-.2l-.3.2v.2h-.3v.2l-.3.2zm1 .3-.7.5-.2-.8 1 .3zm-5.6-2.7-.4-1h.5l.3-.2h2.1l.4.2h.4l.2.3h.2v.2l.3.2h.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2l.2.3v.2l.2.2v.2l-1 .3v-.5h-.2v-.3l-.2-.2v-.2h-.3v-.3h-.2v-.4h-.3v-.2h-.3v-.2h-.6v-.2h-2l-.2.2zm0 1.4.2 1h-.6v-.2h-.2l-.2-.2-.2-.2-.2-.2V231l.2-.2.2-.2.3-.2.4 1h-.2v1.2h.2zm2.2 3.7-.8-.6v.5-.2h-.2v-1h-.2v-1l-.2-.2h-.7v-1.2h.6l.3.2.2.2h.2v.2l.2.3v.4h.2v1.5h.2v.8zm0-.5h.2l-.2.4zm-18-6.6.3-1 .3.6v2l-.2 1.8v4.9l.3 1.4v1.3l.3 1 .2 1 .3 1 .4.8.3.8.4.5.5.5.4.3.4.3.5.2h1l.6-.2.7-.3.7-.4.8-.5 1-.4.7-.8 1-.8 1-1 1-1 1-1 1-1.4 1-1.4 1.3-1.4.8.6-1.2 1.5-1 1.3-1.2 1.3-1 1-1 1.2-1 1-1 .8-1 .8-.8.6-1 .5-.7.4-.8.3h-.8l-.8.2h-.7l-.7-.2-.6-.3-.6-.5-.5-.5-.4-.7-.5-.7-.4-1-.2-1-.2-1-.2-1.2-.2-1.3V229l.5.6zm.3-1h.3v.6zm-9.3-1.6-1-.4.7-.3.3.2h.3l.3.2h.3l.2.2h.3l.4.2h.6l.3.2h.3l.4.2h.6l.3.2h.5l.3.2h.7l.3.2h.6l.3.2h.5l.3.2h.8l.3.2h.3l-.3 1h-.8l-.2-.2h-.6l-.3-.2h-.8l-.3-.2h-.6l-.4-.2h-.7l-.4-.2h-.3l-.3-.2h-.6l-.3-.2h-.2l-.3-.2h-.6l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.2l.7-.4zm-1-.4.3-.4h.4l-.6.4zm-26.2 3.2.6.8.3-.6.6 2 .5 1.7.7 1.6.6 1.6.7 1.4.7 1.2.6 1 .7 1 .7 1 .7.6.6.6.7.4.7.4.7.2h1.4l1-.2.6-.2.8-.4 1-.6.7-.6 1-.8 1-1 .8-1 1-1.2 1-1.3.8-1.4 1-1.6 1-1.7 1-1.8 1-2 1.2-2 1 .3-1.2 2.2-1 2-1 1.8-1 1.8-1 1.6-1 1.5-1 1.3-1 1.2-1 1-1 1-1 1-.8.7-1 .5-.8.4-1 .2-.8.2h-1.8l-.8-.3-.8-.3-.8-.5-.8-.6-.7-.8-.8-1-.7-1-.7-1-.7-1.4-.7-1.4-.7-1.5-.7-1.7-.6-1.7-.7-1.8.2-.6zm-.2.6v-.4l.2-.2zm3.8-3.6-.3 1h-.3l-.2-.2h-.2v.2h-.2v.2h-.2v.5h-.2v.4l-.2.3-.2.2v.2l-.2.3-.3.3-.2.3h-.2l-.5-.7.2-.2.2-.2v-.5h.2v-.4h.2v-.3l.2-.3v-.2l.2-.2.2-.3.2-.2h.2v-.2h.5v-.2h.7l.2.2zm.7-1.6.6-.8.2.2.2.2v.2l.2.3v1.3l-.2.3v.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2h-1.1l.4-1h.7v-.2h.2v-.6h.2v-.7h-.2v-.2zm-7 1 1-.3h-1l.2-.3v-.3h.3l.2-.3.2-.3.2-.2.3-.3.3-.3h.2l.2-.3h.3l.2-.2h.5l.2-.2h2.2l.3.2h.2l.3.2h.3l.3.3h.2l.3.3.3.2-.6.8-.2-.2h-.2l-.2-.3-.4-.2h-.2l-.2-.2H521v.2h-.5l-.2.3h-.2v.2h-.2l-.2.3-.2.2-.3.3v.2l-.2.3-.2.2h-1zm1 .2-.6.7-.3-1 1 .2zm-7-2-.4-1h.3l.2-.2h.3l.4-.2h.2l.3-.2h.4l.3-.2h1.6l.2.2h.2l.3.2h.2l.2.3.3.2.2.2v.2l.3.2.2.2.2.2v.2l.3.2.2.3.3.4v.3l-.8.4-.2-.4-.2-.2v-.2l-.3-.2v-.2l-.3-.2-.3-.3h-.2v-.2h-.3l-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-1.2l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2zm.5 1.7.3 1h-.5l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2v-.2l-.2-.2V224l.2-.2.2-.3.3-.2.5 1h-.2v1.2h.2v.2h.4zm3.7 4-1-.2.2.5h-.2l-.2-.2h-.2v-.3h-.2l-.2-.3v-.4l-.2-.2v-.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.6l-.4-1h1.1l.3.2h.2v.4h.2v.3l.2.2v.2h.2v.5l.2.3v.5h.2v.4h.2l.2.2.2.2.3.6zm-.3-.5.3.2v.3zm-27-7.2v-1l.6.5-.3 2.7-.2 2.4v2.2l.2 2 .3 2 .4 1.7.5 1.5.7 1.4.6 1 .8 1.2 1 1 1 .7 1 .6 1 .5 1 .4 1.3.3h2.4l1.3-.2 1.2-.3 1.2-.5 1.2-.5 1-.7 1.2-1 1-.8 1-1 1-1.3 1-1.3.8-1.3.8-1.5.6-1.7.5-1.7 1 .2-.6 2-.7 1.6-.8 1.6-1 1.5-1 1.4-1 1.3-1 1-1.2 1-1.2 1-1.2.8-1.3.7-1.2.5-1.3.3-1.4.2h-2.5l-1.2-.3-1.3-.4-1.2-.5-1-.7-1-1-1-1-1-1-.8-1.5-.7-1.5-.6-1.6-.4-1.8-.3-2-.2-2.2V227l.2-2.6.3-2.7.5.6zm0-1h.7v.5l-.6-.5zm-6.6 1.2.2-1h4l.2-.2h2.1v1h-4.1l-.2.2h-2zm-6-.8h-1l.5-.4h5.1l.2.2h1.2v1h-4l-.3-.2h-2l.5-.6zm-1 0v-.5h.5zm-26.4 7.8.5.8.3-.5.6 1.7.5 1.7.7 1.5 1 1.4.8 1.4 1 1.2 1 1 1 1 1.2 1 1.2.6 1.2.5 1.2.5 1.2.3 1.2.2h2.4l1.2-.3 1-.3 1.2-.4 1-.7 1-1 .8-.8 1-1 .6-1.3.6-1.5.6-1.6.4-1.8.3-2v-2l.2-2.3-.2-2.5-.3-2.7h1l.3 2.6.2 2.5v2.2l-.2 2.2-.3 2-.5 1.8-.5 1.6-.7 1.5-.8 1.4-1 1.2-1 1-1 .8-1 .7-1.2.5-1.3.4-1.3.3H463l-1.2-.2-1.3-.3-1.3-.5-1.3-.6-1.3-.7-1.2-1-1.2-1-1-1-1-1.2-1-1.3-1-1.5-.7-1.6-.7-1.7-.6-2 .2-.5zm-.2.5v-.3l.2-.2zm3.7-4-.2 1-.2-.2h-.7v.2l-.2.2v.4l-.2.2v.5l-.2.2v.2l-.2.3v.2l-.2.2v.2h-.2v.3h-.3l-.2.2h-.2l-.4-.7.2-.2.2-.2h.2v-.3l.2-.2v-.5l.2-.2v-.5l.2-.3v-.3l.2-.2.3-.3.2-.2h.2l.2-.2h1.1zm.4-1.8.6-1v.2h.3v.3h.2v.2l.2.2v1.5l-.2.2v.2l-.2.2-.3.2-.2.2h-.9l.3-1h.4v-.4l.2-.2v-.8h-.2v-.2h-.2zm-6.7 2 .8-.6h-.8v-.2l.2-.3.3-.4v-.2l.3-.2.2-.2.2-.2.2-.2.2-.2.2-.2h.2l.3-.3.3-.2h.2l.3-.2h.5l.2-.2h1.6l.4.2h.2l.3.2h.2l.3.2.2.2h.3l-.6 1-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.5l-.2-.2h-1.3l-.2.2h-.3v.2h-.3l-.2.3-.2.2-.3.3-.3.3-.2.2v.2l-.2.2-.2.2v.3h-.2zm1 0-.5.7-.5-.8h1zm-7-1.2-.8-.8.2-.2.2-.2h.3l.2-.3h.2l.2-.2h.3l.3-.2h2.5l.3.2h.2l.3.2.2.2h.2l.2.3h.2l.2.2.2.2.2.3.2.2h.2v.4l.3.2-.8.6-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.2-.2h-.2l-.2-.2v-.2h-.2l-.2-.2h-.4l-.2-.2H441l-.2.2h-.2l-.2.2h-.2l-.2.3h-.2l-.2.3zm.5 1.6.4 1h-1.3l-.2-.2-.3-.2h-.2v-.2l-.2-.3v-.2l-.2-.2v-1.6l.2-.2.2-.2v-.2l.8.8-.2.2v1l.2.2.2.2h.4zm3.8 3.6-1-.4.2.6h-.2v-.3h-.3v-.2h-.2v-.3h-.2v-.5h-.2v-.6h-.2v-.5l-.2-.2-.2-.2h-.2v-.2h-.5v.2l-.5-1h.4l.2-.2h.6l.2.2.3.2h.2v.2l.2.2.2.3v.2l.2.2v.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.6zm-.2-.6.3.2v.4l-.2-.6zm-26.6-2.5-.3-1 .5.4 1 2 1 2 1.2 2 1 1.6 1 1.6 1 1.5 1 1.4.8 1.2 1 1 .8 1 1 .8.7.6 1 .6.6.4.8.2.8.2h1.3l.7-.2.7-.4.7-.4.7-.6.7-.7.8-.7.6-1 .7-1 .8-1.3.6-1.4.7-1.5.7-1.5.7-1.8.6-2 1 .5-.7 2-.6 1.6-.7 1.7-.6 1.5-.7 1.4-.7 1.3-.7 1.2-.7 1-.8.8-.7.8-.7.6-.8.5-1 .4-.7.4H432l-1-.2-.7-.3-1-.5-1-.6-.8-.8-1-1-.8-1-1-1-1-1.2-1-1.3-1-1.5-1-1.6-1-1.8-1-1.8-1-2-1-2.2.5.3zm-.3-1h.3l.2.4zm-9 3h-1l.4-.6h.7l.3-.2h.6l.4-.2h.9l.3-.2h.5l.3-.2h.6l.4-.2h.3l.3-.2h.6l.3-.2h.5l.3-.2h.3l.4-.2h.3l.3-.2h.3l.3-.2h.3l.2 1h-.7l-.3.2h-.3l-.3.2h-.3l-.3.2h-.5l-.3.2h-.3l-.4.2h-.6l-.4.2h-.6l-.3.2h-.6l-.2.2h-.6l-.3.2h-.7l-.3.2h-.8v.2h-.4zm-1 0v-.5h.4zm-17.4 7 1 .3v-.5l1 1.4 1 1.4 1.2 1.3 1 1 1 1 1 1 1 .8.8.8 1 .6.6.4.8.4.7.3h.6l.6.2h.4l.5-.2.3-.2.5-.2.4-.5.3-.5.4-.7.2-.7.3-1 .2-1 .2-1v-2.7l.2-1.5v-5l-.2-1.8h1v2l.2 1.8v4.9l-.2 1.4v1.4l-.3 1.2-.3 1-.3 1-.2 1-.4.7-.4.7-.6.5-.5.5-.7.3-.7.2H402l-.6-.2-.8-.4-1-.5-.7-.5-1-.6-1-.8-1-.8-1-1-1-1-1-1.2-1-1.3-1.2-1.4-1-1.6-.2-.5zm0 .4v-.3.4zm2-3.7v1h-.6v.8l-.2.3v1h-.2v.3l-1-.4v-.4l.2-.2v-.9h.2v-.5l.2-.2v-.2h.4v-.2h1zm.3-1.4.3-1 .2.2h.2v.2h.2v.7h.2v1.2l-.2.2v.3l-.2.2-.2.2h-.2l-.2.2h-.5v-1h.4v-.2h.2v-.8l-.2-.2zm-5.7 2.7.7-.8-.8.2v-.2l.2-.3v-.3l.2-.3v-.2l.2-.2.2-.2v-.2l.3-.2v-.2l.3-.2h.2v-.3h.3l.3-.2.2-.2h.4v-.2h2.5l.3.2h.2l.3.2-.4 1-.3-.2h-.5l-.2-.2h-1.3l-.3.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.3l-.2.2v.2h-.2v.5l-.2.2-1 .3zm1-.3-.4.8-.7-.5zm-5.8-.2-.7-.6v-.2l.3-.2h.3l.2-.2h.2l.2-.2.3-.2h.2l.2-.2h2.1l.2.2h.2l.2.2h.2l.2.2.3.2.2.2h.2l.2.3v.2l-.7.8v-.2h-.3v-.2l-.3-.2-.3-.2h-.3v-.2h-.2l-.2-.2h-2v.2h-.3l-.2.2-.2.2zl-.2.2zm-.7-.6v-.2zm1.4 1.7.6 1h-1.3l-.3-.2-.2-.2v-.2h-.2l-.2-.2v-.3l-.2-.2v-.8l.2-.3h.2l.7.5v.8h.2v.2h.2v.2h.2zm3.6 2.7h-1l.3.5v-.2h-.3v-.2h-.3v-.3h-.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.2l-.2-.3v-.2h-.7l-.6-.8h.2l.2-.2h1.1l.3.2.2.2v.2h.2v.4l.2.2v.5h.2v.2l.2.2.2.2h.2zm-.4-.5h.4v.4zm-14.7-.4v-1l.4.3.8 1.5.6 1.5.7 1.3.7 1.3.6 1.2.6 1 .6 1 .6 1 .5.6.6.7.5.7.6.4.5.5.3.2.5.2h1.1l.3-.3.3-.2.4-.4.3-.4.4-.5.3-.6.3-.8.3-.8.2-1 .3-1 .3-1.3.2-1.3v-1.4l.2-1.4h1v1.5l-.2 1.4-.2 1.3-.2 1.2-.2 1-.2 1-.3 1-.4.8-.4.8-.4.6-.4.6-.5.4-.5.4-.5.2-.6.2h-1.1l-.6-.3-.7-.4-.6-.4-.5-.6-.6-.6-.7-.7-.7-.7-.6-1-.6-1-.6-1-.6-1.2-.6-1.2-.7-1.4-.7-1.5-.6-1.7zm0-1h.3v.3zm-3.8.6 3.6-.6v1l-3.6.6-.5-.5zm-.5.5v-.4h.4zm4.7 11.4-.8.7-.3-.3v-.3l-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.4l-.3-.3-.2-.4-.2-.4v-.4l-.2-.4v-.4l-.3-.4v-.4l-.2-.3v-.4l-.2-.4v-.9l-.2-.3v-.8l-.2-.5V238l-.2-.5v-.7h1v1.9l.2.4v1.1l.2.5v.7l.2.3v.4l.2.4.2.3v.4l.2.5.2.3v.4l.2.3.2.4.2.2v.3l.3.4.2.2v.3l.3.3.2.4.2.3.2.3.2.3zm18.7-4.7-.8.7 1-.3-.2 1.4v1.4l-.2 1.3-.2 1.2-.2 1-.3 1-.2 1-.3 1-.4.7-.4.8-.4.7-.6.6-.5.5-.5.4-.7.3-.6.3h-.7l-.8.2h-.7l-.8-.2-.8-.2-.8-.2-1-.4-.7-.5-1-.7-1-.6-.8-.8-1-1-1-1-1-1-.8-1-1-1.3.8-.6 1 1.3 1 1 .8 1 1 1 1 .8.7 1 1 .5.7.6.8.5.8.4.7.2h.7l.7.3h1.4l.6-.2.4-.2.6-.2.4-.3.5-.5.4-.5.4-.6.4-.7.3-.8.3-.8.3-1 .4-1 .2-1 .2-1.2v-1.2l.2-1.3v-1.3l1-.4zm-1 .4V242l1 1zm27.3-3.2-1 .4 1-.2-.2 1.6v1.5l-.4 1.3-.4 1.3-.4 1.2-.4 1.2-.5 1-.7 1-.6 1-.6.7-.6.7-.8.6-.7.5-1 .4h-.8l-1 .3h-2.8l-1-.3-1-.4-1.2-.4-1-.6-1.2-.6-1.2-.8-1-.8-1.3-1-1.2-1-1.3-1.2-1.2-1.3-1.3-1.5-1.3-1.5.7-.7 1.2 1.5 1.3 1.4 1.2 1.2 1.2 1.2 1 1 1.3 1 1 .8 1.2.7 1 .7 1 .6 1 .4 1 .3 1 .2h1l.8.2h.8l1-.2.7-.3.7-.4.7-.5.7-.4.6-.6.6-.7.5-.8.5-1 .4-1 .5-1 .2-1.2.4-1.3.3-1.3v-1.5l.3-1.6h1zm-1 0 .2-1.5.8 1.5zm31.8-1.8-.8.3h1v1l-.3 1.4-.4 1.2-.4 1.2-.5 1-.6 1.3-.6 1-.7 1-.8 1-1 1-1 .7-1 .7-1 .7-1 .6-1.2.5-1.2.4-1.2.3h-3.8l-1.3-.2-1.3-.4-1.4-.4-1.3-.7-1.3-1-1.3-.8-1.3-1.2-1.3-1.2-1-1.5-1.3-1.6-1.2-1.8-1-2 .8-.5 1 2 1.2 1.6 1.2 1.7 1.2 1.4 1 1.3 1.3 1 1.2 1 1.3.7 1.2.6 1.2.5 1.3.5 1.2.2h3.6l1.2-.3 1-.3 1-.3 1.2-.5 1-.6 1-.7.7-.8 1-1 .6-.7.6-1 .6-1 .6-1 .4-1 .4-1.2.3-1V239h1zm35.6-3-1 .2h1l-.2 2-.4 2-.6 1.6-.6 1.7-.8 1.6-1 1.3-1 1.3-1 1-1.3 1-1.3 1-1.3.8-1.3.6-1.5.6-1.5.3-1.5.2h-1.5l-1.6.2-1.4-.2-1.6-.2-1.5-.3-1.5-.5-1.4-.6-1.4-.7-1.4-1-1.3-1-1.2-1-1-1.2-1-1.4-1-1.4-1-1.6-.6-1.6-.5-1.8 1-.3.5 1.7.6 1.6.8 1.5 1 1.3 1 1.3 1 1.2 1.2 1 1.2 1 1.3.8 1.3.7 1.4.5 1.4.5 1.4.3 1.5.2h4.4l1.5-.3 1.4-.4 1.3-.5 1.3-.5 1.3-.7 1-1 1.2-.8 1-1 1-1.3 1-1.4.6-1.4.7-1.7.5-1.7.4-1.8.2-2h1zm35.5 3-1 .2h1l-.4 1.8-.7 1.6-1 1.6-1 1.4-1 1.4-1 1.2-1.3 1-1.2 1-1.4 1-1.3.6-1.5.6-1.4.5-1.6.3-1.5.2-1.5.2h-1.6l-1.5-.2-1.4-.3-1.5-.4-1.4-.6-1.4-.6-1.3-.8-1.4-1-1.2-1-1-1-1.2-1.3-1-1.4-.7-1.7-.7-1.7-.5-1.7-.4-2-.4-2 1-.2.3 2 .3 1.8.5 1.7.6 1.6.8 1.3 1 1.4.8 1.2 1 1 1.2 1 1.2.8 1.3.7 1.3.6 1.4.6 1.4.3 1.4.2h4.5l1.4-.2 1.5-.3 1.4-.5 1.3-.5 1.3-.7 1.3-.8 1-1 1.2-1 1-1 1-1.4 1-1.3.7-1.5.6-1.6.5-1.7h1zm31 2h-1l1 .2-1.2 2-1.2 1.7-1.2 1.6-1.2 1.5-1.3 1.2-1.4 1.2-1.3 1-1.3.7-1.3.6-1.3.5-1.4.5-1.3.2H530l-1.3-.3-1.2-.3-1.2-.4-1-.5-1-.6-1-.7-1-.8-1-1-.7-1-.8-1-.6-1-.6-1-.5-1.2-.3-1.2-.3-1.2-.2-1.3v-1l1-.2v1.2l.2 1.2.3 1 .4 1.2.5 1 .6 1 .7 1 .7 1 .7 1 1 .8.8.7 1 .6 1 .6 1 .5 1 .4 1 .4 1.3.2 1.2.2h2.4l1.2-.3 1.2-.4 1.3-.4 1.2-.6 1.3-.7 1.2-1 1.2-1 1.2-1.2 1.2-1.3 1.2-1.6 1-1.6 1.2-2 1 .2zm-1-.2.8-1.5.2 1.6h-1zm27.2 3.2h-1l1 .3-1.4 1.5-1.3 1.4-1.2 1.2-1.3 1-1.2 1.2-1.2 1-1.2.8-1 .8-1.2.6-1 .6-1.2.4-1 .4-1 .2-1 .2h-2l-1-.3h-.8l-.8-.5-.8-.5-.7-.6-.8-.7-.6-.8-.6-1-.6-1-.5-1-.5-1-.4-1.4-.3-1.3-.3-1.4-.2-1.6-.3-1.6 1-.2.2 1.6.2 1.5.3 1.3.3 1.3.4 1.2.4 1 .5 1 .5 1 .6.8.6.7.6.6.6.5.7.6.6.3.8.2h.8l.8.2h.8l1-.2 1-.2.8-.3 1-.4 1-.6 1.2-.6 1-.6 1.2-.8 1.2-1 1-1 1.4-1.2 1.2-1.2 1.3-1.4 1.3-1.5zm-1-.4 1-1v1.4zm19 4.8.7.7-1 1.2-1 1-1 1-1 1-1 1-.8.7-1 .6-.8.6-.8.4-1 .4-.7.3-1 .3-.7.2h-1.5l-.7-.2-.6-.3-.6-.3-.6-.4-.6-.5-.5-.6-.4-.7-.4-.8-.4-.8-.3-1-.3-1-.3-1-.3-1-.2-1.3V246l-.2-1.3v-1.3h1v2.6l.2 1.3.2 1 .2 1.2v1l.4 1 .4.7.3.8.5.6.4.5.4.5.4.5.5.3.5.3.6.3h.6l.6.2h.6l.7-.2h.6l.7-.4.8-.5 1-.4.7-.5 1-.6.7-1 1-.7.8-1 1-1 1-1 1-1.2zm4-10.7v-1l.6.4v2.9l-.2.4v.7l-.2.4v.5l-.2.4v.3l-.2.4v.3l-.3.4v.4l-.2.4-.2.4v.3l-.3.3-.2.4-.2.3-.2.4-.2.3-.2.4-.2.4-.2.3-.2.4-.2.4-.3.3-1-.6.3-.2.3-.3.2-.3.2-.4.2-.3.2-.3.2-.3v-.5l.3-.3v-.3l.2-.5.2-.3v-.4l.3-.3v-.4l.2-.3v-.7l.2-.4v-.3l.2-.4v-.5l.2-.4v-1l.2-.4v-1.8l.5.5zm0-1h.6v.4l-.5-.5zm0 0v1zm0 1"/>
+ <path fill="#edb92e" d="M482 263h-22.5l-1.3.2H451l-1.3.2h-4.4l-1.2.2h-2.3l-6.3.4h-.3l-9 .4h-.8l-18.2 1.3h-.2l-26.4 2.4c-5 .6-6-5.3 0-6l26.3-2.2a984 984 0 0 1 37-2.2h2.4l15.4-.5h40.6l15.2.5h3.3a984 984 0 0 1 37 2.3l26.2 2c5.8.7 5 6.6 0 6l-26.4-2.3h-.3l-18.3-1.2h-.6l-9.2-.5h-.3q-3.3 0-6.4-.3h-2.3l-1.2-.2h-4.5l-1.3-.2H506l-1-.2z"/>
+ <path fill="#0c4076" d="M482 105a17.3 17.3 0 0 1 .1 34.7c-9.3 0-17-7.8-17-17.3s7.7-17.3 17-17.3z"/>
+ <path fill="#edb92e" d="M485.3 85c1.6-.2 3-1.5 3-3.2s-1.4-3-3-3.2c0-1.7-1.4-3-3.2-3a3 3 0 0 0-3 3c-1.6 0-3 1.5-3 3.2a3 3 0 0 0 3 3v6.5h-5.5a3 3 0 0 0-3-3c-1.8 0-3 1.3-3.2 3a3 3 0 0 0-3 3c0 1.8 1.3 3.2 3 3.2a3 3 0 0 0 3 3c1.8 0 3.2-1.2 3.2-3h5.5V119h6.3V97.6h5.5a3 3 0 0 0 3 3c1.8 0 3-1.4 3.2-3 1.7 0 3-1.5 3-3.2a3 3 0 0 0-3-3c0-1.8-1.4-3.2-3-3.2-2 0-3.2 1.4-3.2 3h-5.5V85z"/>
+ <path fill="#21231e" d="M487.8 81.8h1v1h-.2v.5h-.2v.3l-.2.3-.2.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.8l-.2.2h-.3v-1h.7V84h.2l.3-.2h.2v-.2h.2v-.2l.2-.2V83h.2l.2-.2v-.4l.2-.2zm-3-3.2h1l-.5-.5h.2l.3.2h.4l.3.2h.3l.2.2.2.2h.2v.2h.2l.2.2.2.3.2.2v.2h.2v.4h.2v.5l.2.2v.7h-1V81h-.2v-.4l-.2-.2V80h-.4v-.2h-.2v-.2h-.2l-.3-.2h-.2V79h-.8l-.4-.6zm.4.5h-.4v-.4zm-3-3v-1h.7l.2.2h.2l.3.2h.2l.2.2.2.2h.2v.3l.2.2.2.3.2.2v.2h.2v.4h.2v.8h.2v.3h-1V78h-.2v-.5h-.2v-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.4zh-.4zm-3.2 3v-1l-.5.6v-.8l.2-.2V77h.2v-.6h.2v-.2l.2-.2.2-.2.2-.2h.2v-.2h.3v-.2h.3l.3-.2h.4l.2-.2h.4v1h-.5v.2h-.3l-.2.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2v.5h-.2v1l-.6.5zm.5-.4v.5h-.5zm-3 3.2h-1V81l.2-.3v-.5l.2-.2v-.2l.2-.2.2-.3.2-.2h.2l.2-.2h.2v-.2h.3v-.2h.5l.3-.2h.7v1h-.7l-.2.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2v.4l-.2.2v.8zm3 3h-1l.5.6h-1V85h-.7v-.2h-.3v-.2h-.2l-.2-.2-.2-.2V84h-.2v-.2l-.2-.2-.2-.3v-.5h-.2v-1h1v1h.2v.4h.2v.2h.2v.2l.2.2h.2v.2h.2l.3.2h.7v.2h.2zm-.5-.4h.5v.5l-.5-.6zm-.5 7V85h1v6.3l-.5.5-.5-.5zm1 0v.4h-.5l.5-.5zm-6-.6h5.5v1h-5.5l-.5-.5zm0 1h-.5v-.5zm-3-3v-1h1.2v.2h.3l.3.2.3.2.3.2v.2l.2.2.2.3.2.3.2.3v.4l.2.2v.8h-1v-.7l-.2-.2V90h-.2v-.2h-.2v-.2l-.2-.2-.2-.2h-.2V89h-.4l-.2-.2h-.8zm-3.2 3v-1l-.5.4v-.8l.2-.3V90l.2-.3v-.2h.2v-.2l.2-.2h.2v-.3h.2l.2-.2.2-.2h.2V88h.7v-.2h1.1v1h-1l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2v.4h-.2v.8l-.2.2v.3l-.5.5zm.5-.5v.5h-.5zm-3 3h-1V93h.2v-.2h.2v-.3l.2-.3.3-.3v-.2h.2v-.2h.2v-.2h.2l.2-.2h.2V91h.7l.2-.2h.8v1h-.7l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.5h-.2v.7zm3 3.2h-1l.5.5h-1v-.2h-.5l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2v-.2h-.3v-.2l-.2-.2V96h-.2v-.4l-.2-.3v-.8h1v.9h.2v.2l.2.3h.2v.2h.2v.2h.2v.2h.2l.2.2h.5v.2h.4l.6.5zm-.5-.5h.5v.5zm3 3v1h-1l-.2-.2h-.3v-.2h-.3v-.2h-.2l-.2-.2-.2-.3v-.2h-.2v-.3h-.2V99h-.2v-.5l-.2-.2V98h-.2v-.5h1v.7h.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.2l.3.2h.6zm3.2-3v1l.5-.4v.8l-.2.2v.3h-.2v.3l-.2.3-.2.2-.2.2-.2.2-.3.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.8v-1h.9v-.2h.2l.2-.2h.2v-.2h.2l.2-.2V99h.2v-.2l.2-.3v-.2l.2-.2v-.4zm-.5.6V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6zm0-1h.5v.6zm-.5 22V97.6h1V119l-.5.5-.5-.5zm.5.5h-.5v-.5zm6.3 0H479v-1h6.3l.5.5zm.5-.5v.5h-.5zm0-21.4V119h-1V97.6l.5-.5.5.6zm-1 0V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6zm0-1h.4v.6zm3 3v1h-1l-.3-.2h-.2l-.3-.2-.2-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2v-.2l-.2-.2V99h-.2v-.2h-.2v-1l-.2-.2h1v.4l.2.2v.2l.2.3v.2h.2v.2h.2l.2.2v.2h.2l.3.2h.2v.2h1.1zm3.2-3v1l.5-.5v.7h-.2v.5l-.2.3v.4h-.2v.3h-.2v.2h-.2v.2h-.3v.2l-.3.2h-.3l-.2.2h-.3l-.2.2h-.8v-1h.9v-.2h.2v-.2h.2l.2-.2.2-.2V99h.2v-.2l.2-.2v-.2l.2-.2v-.6l.6-.6zm-.5.5V97h.5l-.5.5zm3-3h1v.9l-.2.3v.2h-.2v.6h-.2l-.2.2v.2h-.2v.2h-.3v.2h-.2v.2h-.3l-.3.2h-.2l-.3.2h-.7v-1h.8V97h.2v-.2h.2l.2-.2.2-.2h.2V96l.2-.3v-.2h.2v-.7l.2-.3zm-3-3.2h1l-.5-.6h.7l.2.2h.4l.3.2.3.2.3.2.2.2.2.3.2.2v.5h.2v.3h.2v.7l.2.3v.4h-1v-.6h-.2v-.4l-.2-.2-.2-.2v-.2h-.2l-.2-.2-.2-.2h-.2V92h-.5l-.2-.2h-.5l-.5-.5zm.5.5h-.5v-.5zm-3-3v-1h1.1l.2.2h.4v.2h.3v.2l.3.2.2.3h.2v.3h.2v.4l.2.2v.4h.2v.7h-1v-.8h-.2V90l-.2-.2-.2-.2-.2-.2-.2-.2h-.2V89h-.5v-.2h-.6zm-3.2 3v-1l-.6.5v-.9l.2-.2V90l.2-.3.2-.3.2-.3h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.3l.2-.2h.3l.2-.2h1v1h-1l-.3.2h-.2v.2h-.2l-.2.2v.2l-.2.2-.2.2v.2l-.2.2v.7l-.7.6zm.5-.5v.5h-.6zm-6-.5h5.5v1h-5.5l-.5-.5zm0 1h-.5v-.5zm.5-7v6.5h-1V85l.4-.6.6.5zm-1 0v-.4h.4zm.5 0v-.4zm-.5 0v-.4h.4z"/>
+ <path fill="#21231e" d="M499.8 122.4h-1v-1.7l-.2-1v-.7l-.3-.8-.2-.8-.2-.8-.3-.8-.3-.7-.4-.6-.4-.7-.4-.7-.5-.7-.5-.6-.5-.6-.6-.5-.7-.6-.6-.6-.6-.5-.5-.6-.7-.4-.7-.4-.6-.4-.8-.3-.7-.4-1-.3-.7-.2h-.8l-.8-.2h-.8l-1-.2h-1v-1h2l.8.2h1l.8.3.8.4.8.2.8.4.8.3.8.4.7.4.7.6.7.5.7.6.6.6.6.6.6.6.6.6.5.7.5.7.5.7.4 1 .4.6.4.8.3.8.3 1 .3.7.2.8v1l.2.7v2zM482 140.2v-1h1.8l1-.2.7-.2.8-.2.8-.2 1-.3.6-.2.8-.3.7-.4.8-.3.7-.4.6-.5.7-.5.6-.5.6-.6.5-.5.5-.6.5-.6.5-.6.4-.7.4-.6.4-.8.3-.7.3-1 .3-.6.3-.8.2-.8v-1l.2-.7v-1.6h1v2.8l-.2.8-.2.8-.3 1-.3.7-.3.8-.3.8-.3 1-.4.6-.5.7-.5.7-.5.7-.6.6-.6.7-.6.6-.6.5-.7.6-.7.5-.7.6-.7.4-.8.4-.8.4-.8.3-.8.4-.8.2-1 .2-.8.2h-.8l-1 .2h-1zm-17.5-17.8h1v1.8l.2.7v.8l.3.8.2.8.3.7.3 1 .3.6.5.8.4.7.3.8.5.6.5.6.5.7.6.5.5.6.5.5.7.5.6.5.7.4.7.4.7.5.7.3.7.3.8.4.8.2.8.2.8.2h1.8l.7.2v1h-1.8l-.7-.2-1-.2-.8-.2-.8-.2-1-.3-.7-.2-.8-.4-.8-.4-.7-.4-.7-.5-.7-.4-.7-.5-.7-.4-.7-.6-.5-.7-.5-.6-.5-.7-.5-.7-.5-.7-.4-.7-.4-1-.3-.7-.5-.8-.2-.8-.3-1-.2-.7v-1l-.2-.8v-1.8zm17.6-17.8v1h-1.7l-.7.2h-.8l-.8.3-.8.3-.8.3-.7.3-.8.2-.8.4-.7.4-.7.4-.6.5-.7.4-.6.5-.6.5-.6.6-.5.7-.5.6-.5.7-.4.7-.5.7-.4.7-.2.8-.3.8-.3.8-.2.8-.2.8v.8l-.2 1v1.7h-1v-2.8l.2-1 .2-.8.3-1 .2-.8.4-.8.2-.8.4-.7.4-1 .5-.6.5-.7.5-.7.6-.6.6-.6.7-.6.6-.6.6-.5.7-.4.7-.5.7-.3.8-.4.8-.3.8-.4 1-.2.7-.3h1l.8-.2h.8l1-.2h.8z"/>
+ <path fill="#edb92e" d="M499 118.8a18 18 0 0 1 0 6q-8.3-.3-17-.3-8.3 0-17 .3a18 18 0 0 1 .3-6l16.8-.3q8.6 0 17 .3z"/>
+ <path fill="#21231e" d="M499.8 122.4h-1V120h-.2v-1l1-.2v1.7l.2.2v1.6zm-.7 3 .2-1-.6.3v-.8l.2-.2v-1.1h1v2.2h-.2zm.6-.5v.3h-.5l.6-.4zm-17.5 0v-1H494l.4.2h4.8v1h-10.6l-.5-.2h-6zm-17.4 0 1-.3-.5-.4h4.7l.4-.2H482v1h-11l-.5.2H465l-.5-.3zm.6.3h-.5v-.4l.5.3zm-.7-3h1v2.4l-1 .3v-2.6zm.8-4v1l.5-.3v.8l-.2.2v2.5h-1v-3h.2v-.4l.5-.5zm-.5.5v-.4h.5zm17.3-.8v1h-9.1l-.5.2H466l-.7.2v-1h2.5l.5-.2h9l.5-.2h4.2zm17.5.8-1 .2.4.4h-3.6l-.5-.2h-10.3l-.5-.2h-2.1v-1h10l.5.2h6.1l.5.6zm-.5-.5h.4v.5z"/>
+ <path fill="#edb92e" d="M468.8 133.2c-3.6-2.3-4.3 1.2-4.2 4.7.4 13.2 3 25.8-.6 42-1.4 6.4-3.7 10-1.5 11.3q8.6 5 7.4 7.7c1.5 3.2 5.7 2.6 12 1.6 6.6 1 10.7 1.6 12.4-1.6-1-1.6 1.7-4.5 7.4-7.7 2.2-1.2 0-5-1.5-11.3-3.5-16.2-1-28.8-.7-42 0-3.6-.5-7-4-4.8a29 29 0 0 1-26.8 0z"/>
+ <path fill="#21231e" d="M465 138h-1v-1.5l.2-.3v-1.6l.2-.3v-.3h.2v-.4l.2-.2v-.3h.2l.2-.3.2-.2.2-.2h.2l.2-.2h1.8l.4.2.4.2h.3l.4.3-.4 1-.4-.3h-.2l-.3-.2h-.3l-.2-.2h-1.2v.2h-.2v.2l-.2.2v.2l-.2.2v.4l-.2.3v.4l-.2.2v2.5zm-.5 42-1-.2.3-1.5.3-1.4.3-1.6.2-1.4.2-1.5.2-1.4v-2.5l.2-1.4V154l-.2-1.2v-2.5l-.2-1.2V148l-.2-1.2v-1.2l-.2-1.3V142l-.2-1.3V138h1v3.5l.2 1.2v2.6l.2 1.2v1.3l.2 1.2v2.5l.2 1.2v1.3l.2 1.3v13.3l-.2 1.4v1.4l-.3 1.5-.2 1.4-.2 1.6-.2 1.4-.2 1.5-.3 1.6zm-1.8 11-.4.8-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.3V188l.2-.3v-.4l.2-.3v-.4l.2-.4v-.5l.3-.4.2-.4v-.5l.3-.3v-.5l.3-.5v-.6l.3-.4.2-.6v-.6l.3-.6 1 .3-.2.7v.6l-.3.5v.6l-.2.5-.2.4v.6l-.3.4v.5l-.3.4v.4l-.2.4v.4l-.2.4v.4l-.2.3v.4l-.2.4v1.9zl.2.2zm7.6 7.8-1 .4v-.4h.2v-1l-.2-.2v-.2l-.2-.2v-.4l-.3-.2-.2-.2-.2-.3h-.3l-.2-.4-.3-.2-.3-.3h-.3l-.4-.4-.4-.3-.3-.2-.5-.2-.4-.3-.3-.3-.5-.3-.5-.3-.4-.3-.5-.3-.6-.2.5-1 .6.4.5.3.5.3.4.3.5.4.4.3.5.3.5.2.3.3.4.3.4.3.3.4.2.2.3.3.3.2.2.2.2.3.3.2.2.2v.2l.3.3v.2l.3.2v.5l.2.2v1.1l-.2.3v-.5zm-1 .4v-.4zm13 1-.2 1h.2-1.2l-.5.2h-1.2l-.6.2h-1l-.5.2h-4.7l-.4-.2h-.3l-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3h-.2l-.2-.4-.2-.4 1-.4v.2l.2.3.2.2.2.2.2.2h.2l.2.2h.2l.3.2h.3l.3.2h.3l.2.2h4.3l.5-.2h1l.6-.2h1.1l.5-.2h.8zm-.2 0h.2zm12-1 1-.4v.4l-.3.4-.2.3h-.2l-.3.4-.2.2-.3.2-.3.2-.3.2-.4.2h-.3l-.3.2h-.4l-.4.2H486l-.6-.2h-.5l-.6-.2h-1.2l-.5-.2h-.6l.2-1h1.8l.5.2h.6l.6.2h1.1l.5.2h4.2l.3-.2h.3l.2-.2h.3l.2-.2.2-.2.3-.3.2-.2.2-.2v-.3l.3-.2v.5zm1-.4v.4zm6.5-8 .5 1-.5.3-.5.4-.5.3-.4.2-.4.2-.4.3-.4.3-.4.3-.4.3-.3.3-.3.3h-.3l-.2.4-.3.2-.3.3h-.2l-.2.4-.2.2-.2.2v.2l-.3.2v.7h-.2v1.2l-.8.5v-.2l-.2-.2v-1.3l.2-.2v-.3l.3-.3v-.3l.3-.2.2-.3.2-.3.3-.3.2-.2.3-.3.3-.4.4-.2.3-.3.4-.2.4-.3.4-.3.4-.2.4-.3.5-.3.5-.3.5-.2.5-.3.5-.3.5-.3zm-1.7-10.7 1-.2v.6l.3.6.2.6.2.5v.7l.3.5v.5l.2.4v.6l.2.5.2.5v.4l.2.3v.4l.2.4v.5l.2.3v.7l.2.3v1.8l-.2.3v.2l-.3.3h-.2l-.2.3-.3.2-.5-1h.2l.2-.2v-.4h.2v-2.5l-.2-.3v-.3l-.2-.3v-.4l-.2-.4v-.4l-.2-.4v-.4l-.3-.5v-.6l-.2-.4v-.6l-.3-.5v-.6l-.3-.6v-.5l-.2-.6-.2-.6zm-.7-42h1v5.9l-.2 1.4v1.2l-.2 1.2v1.3l-.2 1.3v2.5l-.2 1.2v2.6l-.2 1.2v9.3l.2 1.4v1.4l.2 1.3.2 1.5.2 1.5.2 1.4.2 1.5.3 1.3.3 1.5-1 .3-.3-1.5-.3-1.5-.2-1.4-.2-1.5-.2-1.3-.2-1.5v-1.4l-.2-1.4V167l-.2-1.3v-10.3l.2-1.3v-2.5l.2-1.3V149l.2-1.2v-1.3l.2-1.2V143l.2-1.2zm-3.3-4.4-.5-1h.4l.3-.2.2-.2h.3l.4-.2h1.2l.3.2h.2l.2.3v.2l.2.2h.2v.4l.2.2v.3h.2v.7l.2.3v1.5l.2.3v1.1h-1v-2.4l-.2-.3v-.8l-.2-.3v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-1.1l-.2.2h-.3l-.3.2-.3.2zm-27 0 .4-1 .8.5.7.5.7.4.7.2.7.3.8.2.8.3 1 .2.7.2 1 .2h.7l1 .2h.8l1 .2h4.6l.7-.2h1l.8-.3h.8l1-.3.7-.2.8-.3.8-.2.8-.3.7-.4.8-.3.7-.4.7-.3.5 1-.7.3-.7.4-.8.4-.7.3-1 .4-.7.3-.7.3-1 .2-.7.2-1 .2h-.8l-1 .2h-1l-.8.2h-4.6l-1-.2h-.8l-1-.2-.8-.2-1-.2-.7-.2-.8-.3-.8-.3-.8-.3-.8-.2-.8-.4-.7-.4-.7-.4z"/>
+ <g id="rs-b">
+ <path fill="#edb92e" d="M363 212c-2-4-.3-9.8.3-11 .3-.8-.6-2.2-1-2.8-13-18.3-13.2-20-4.3-26.8 8-6 26.2-12 39.2-16.2 2.7-2 4.4-5 6.8-7.2-25 1.8-52 12-65.5 23.8-7.2 6.2 1.5 19 12.2 38 6.7 5 9.8 7 12.3 2.3z"/>
+ <path fill="#21231e" d="m362.8 200.7 1 .4v.2l-.2.2v.3l-.2.3v.5l-.2.2v.6l-.2.4v.7l-.2.3v1.6l-.2.4v2.5l.2.4v.4l.2.4v.4l.2.4v.3l.3.4-1 .3v-.4l-.3-.5v-.4l-.2-.4v-.4l-.2-.5v-.8l-.2-.6v-2.9l.2-.4v-1.2l.2-.3v-.4l.2-.2v-.6l.2-.3v-.6l.2-.2v-.2l.2-.2zm-1-2.2 1-.6v.2h.2v.4h.2v.4h.2v.2l.2.2v.4h.2v1.2l-1-.3v-.6l-.2-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2zm-4-27.5.5 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.3.5v1.7l.2.6.2.8.2.7.4.8.4.8.4 1 .5 1 .6 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.6-1-.3-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7zm39-16.2.7.8h-.2l-1.2.5-1.2.5-1.2.4-1.4.3-1.3.4-1.4.5-1.4.4-1.3.5-1.5.5-1.4.5-1.3.5-1.3.5-1.4.5-1.4.5-1.3.5-1.4.5-1.4.5-1.3.6-1.3.6-1.3.5-1.2.7-1.2.5-1.2.6-1 .5-1.2.6-1 .4-1 .6-1 .6-1 .5-1 .7-.7.6-.7.6-.6-1 .8-.5 1-.6.8-.7 1-.6 1-.6 1-.4 1-.6 1.2-.6 1.2-.5 1-.7 1.4-.6 1.3-.5 1.3-.6 1.3-.5 1.2-.4 1.4-.5 1.3-.5 1.3-.5 1.4-.5 1.3-.5 1.4-.5 1.4-.5 1.4-.4 1.4-.5 1.3-.4 1.3-.4 1.3-.4 1.3-.5 1.2-.4 1.3-.5 1.3-.4 1.2-.3zm.7.8h-.2zm6.6-7v-1l.4.8-.2.2-.3.2-.3.3-.2.3-.2.2-.2.2v.3l-.3.2-.2.2-.2.2-.2.3-.3.3-.2.3-.2.2-.2.3v.3l-.3.2-.2.3-.2.2-.3.2-.2.3-.2.2-.2.2h-.2l-.3.4-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.6-.8v-.2l.3-.2.3-.2.2-.2.2-.2.2-.2.3-.2.2-.2.2-.2v-.2l.3-.3.2-.2.2-.2.2-.2v-.2l.3-.2.2-.2.2-.3.2-.3v-.3l.3-.2.2-.2.2-.3.2-.2v-.2l.4-.3.2-.2.2-.2.2-.3.2-.2h.3l.2-.3.4.8zm0-1 1.4-.2-1 1-.4-1zM338.8 172l-.7-.8 1.5-1 1.4-1.2 1.4-1 1.5-1.2 1.5-1 1.7-1 1.7-1 1.7-1 2-1 1.8-1 2-1 2-1 2-.8 2-1 2.2-.7 2-.8 2.3-.8 2.3-1 2.2-.6 2.3-.7 2.3-.6 2.4-.5 2.3-.6 2.4-.7 2.4-.5 2.4-.4 2.4-.4 2.4-.4 2.3-.3 2.3-.3 2.4-.3 2.3-.2v1l-2.3.2-2.3.3-2.3.3-2.3.3-2.4.4-2.3.4-2.4.4-2.3.5-2.3.6-2.3.5-2.3.6-2.3.7-2.2.7-2.2.7-2.2.8-2.2.8-2.2.8-2 1-2 .7-2.2 1-2 1-2 1-1.8.8-1.8 1-1.8 1-1.7 1-1.6 1-1.5 1-1.6 1-1.5 1.2-1.4 1-1.2 1.2zm12.2 37.3-.5.8-.2-.2-1-1.6-1-1.8-1-1.7-1-1.7-.8-1.7-1-1.6-.8-1.5-.8-1.5-1-1.5-.7-1.5-.8-1.4-.7-1.3-.7-1.4-.5-1.3-.6-1.3-.6-1.2-.4-1.2-.5-1.2-.3-1-.3-1-.4-1.2v-1l-.2-1v-2.8l.3-.8.3-.8.4-.7.5-.8.5-.7.6-.6.8.8-.6.5-.5.6-.4.7-.3.6-.3.7-.2.8v4.5l.4 1v1l.5 1 .4 1 .4 1.3.5 1.2.4 1.2.6 1.3.7 1.3.7 1.4.7 1.4 1 1.4.7 1.5 1 1.5.8 1.5 1 1.6.8 1.7 1 1.7 1 1.7 1 2 1 1.6h-.3zm-.5.8-.2-.2.2.3zm12.5 1.3v1l.5-.2-.3.4-.2.4-.3.4-.3.3-.3.2-.2.3-.3.2-.3.2h-.3l-.5.2h-2.1l-.4-.2-.5-.2-.4-.2-.3-.2-.5-.2-.4-.3-.5-.3-.5-.3-.4-.4-.6-.3-.5-.3-.5-.4-.6-.4-.5-.4-.6-.4-.5-.5.5-.8.7.4.5.3.6.5.6.3.5.5.4.4.5.2.4.3.4.3.5.3.4.3.4.2.5.2.4.2h.5l.3.2h1.5l.2-.2h.3l.2-.3.2-.2.3-.2.2-.3v-.3l.4-.4.2-.4.4-.4zm-.4.3v-.4h.4zm.4.6v-1l.5.3zm.5-.7.3.6h-.8z"/>
+ <path fill="#edb92e" d="m359 213.6-1-4.7q-1-4.3.5-8.3c-3-4.2-6.4-8.8-8.8-13.3-1.7-3.3-3-7-2-10.6 1-4 4.5-6.6 7.6-9 3.7-2.8 8.6-5.3 13.6-7.5q16.6-7 26.5-7l-4.2 3.8c-12 4-26.4 9.2-33.3 14.5-9 6.8-8.6 8.4 4.3 26.7.4.6 1.3 2 1 2.7-.6 1.2-1.8 7.2 0 11.4-1 2-2.6 1-4.2 1.2z"/>
+ <path fill="#21231e" d="m357.4 209 1-.2v.7l.2.2v.7h.2v.8l.2.3v.3l.2.3v.7h.2v.6h.2l-1 .4v-.3l-.2-.3v-.2l-.2-.3v-.5l-.2-.3v-.6h-.2v-.5l-.2-.3v-.7l-.2-.3v-.2zm.6-8 1-.6v.5l-.2.4v.2l-.2.2v1l-.2.2v.8l-.2.2v4.7l.2.3-1 .2v-.6l-.2-.2V203h.2v-1l.2-.2v-.5l.2-.2v-.2l.2-.3v.5zm1-.6v.5zm-9.7-12.8 1-.5v.6l.3.4.3.4v.4l.4.5.2.4.3.4v.5l.4.4.3.4.2.4.2.4.3.4.2.4.3.5.3.4.3.3.3.4.2.4.2.5.3.5.3.4.3.4.3.4.3.4.2.4.3.4.2.4.3.4.3.4.3.4.3.4-1 .6-.2-.4-.3-.4-.3-.4-.3-.4-.4-.4-.3-.4-.2-.4-.2-.4-.3-.4-.3-.4-.3-.5-.4-.4-.3-.3-.3-.4-.2-.4-.3-.5-.3-.5-.3-.4-.4-.4-.3-.4-.2-.5-.2-.4-.3-.5-.2-.4-.3-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.5-.3-.5-.2-.4zm-2-11 1 .4-.2.3v4.1l.2.4v.3l.2.3v.7l.3.3v.4l.2.4v.6l.3.3v.3l.3.3v.2l.3.3v.3l.2.3-1 .6v-.3l-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.3v-.3l-.3-.3-.2-.3v-.3l-.2-.2v-.4l-.2-.3v-.3l-.2-.3v-.7l-.2-.4V180l-.2-.4V178l.2-.2v-.7l.2-.3zm7.7-9.2.6.8-.3.2-.3.3-.3.2h-.3l-.3.3-.2.3-.2.2-.3.3-.3.3-.3.2-.3.3-.2.2-.3.3-.4.3-.2.2-.3.3v.3l-.4.3-.2.3-.2.2-.3.3-.3.3-.2.3-.2.4v.3l-.3.3-.2.3v.3l-.3.3v.3l-.2.3v.4l-1-.3v-.4l.2-.4v-.4l.2-.4.2-.4v-.3l.3-.4.2-.2.2-.3.2-.3v-.3l.4-.5.2-.3.2-.2.3-.3.4-.3.2-.3.3-.2.2-.2.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.2-.2.3-.2.3-.3.3-.2h.4l.3-.4.3-.2zm13.7-7.5.4.8-.4.2-.4.2-.5.2-.5.2-.4.2-.5.2-.4.3-.6.2-.5.2-.5.2h-.5l-.4.3-.5.3-.3.2-.4.2-.5.3-.4.2-.4.2-.4.3-.5.2-.3.2-.4.3-.4.2-.5.2-.4.2-.2.3-.4.2-.4.2-.4.2-.3.3-.4.3-.4.2-.6-.8.3-.3h.4l.4-.4.4-.3.4-.2.4-.2.4-.2.4-.3.4-.2.4-.2.4-.2.4-.3.5-.2.5-.2.4-.2.4-.2.4-.3h.4l.5-.3.4-.3.6-.2.4-.2.5-.2.5-.3.4-.2.5-.2h.4l.4-.3.5-.2.5-.2.4-.2h.5zm27-6.4-.6-.7.5.7H394l-.6.2h-1.8l-.7.2h-.8l-.7.2h-.7l-.8.3-.8.2h-.7l-.8.2-.8.2-1 .2-.8.2-.8.3-1 .3-.8.3-1 .3-.8.2-1 .3-.8.3-1 .3-1 .5-1 .3-.8.4-1 .4-1 .4-1 .4-1 .4-.5-1 1-.4 1-.4 1-.4 1-.4 1-.3 1-.5 1-.3 1-.4 1-.3.8-.3 1-.3.8-.4 1-.2.8-.3h1l.8-.4.8-.2.8-.2.8-.2h.8l.8-.3.8-.2h.7l.7-.2h.8l.7-.2h1.4l.5-.2h1.9l.4.8zm-.3-1h1.4l-1 1zm-4.4 4 4-3.7.8.6-4 3.8-.3.2zm.7.8-.2.2zM358.3 172l-.6-1 .7-.5.7-.5 1-.5.7-.5.8-.5 1-.5.8-.4 1-.5 1-.4.8-.5 1.2-.4 1-.5 1-.3 1-.5 1.2-.5 1-.4 1.3-.5 1-.4 1.2-.5 1-.5 1.3-.5 1-.4 1.3-.4 1.2-.5 1.2-.4 1.2-.4 1.2-.5 1-.4 1.3-.3 1.2-.4 1-.3 1.2-.4.3 1-1.2.3-1 .3-1.3.4-1 .4-1.3.5-1.2.4-1.2.3-1.2.4-1 .4-1.2.6-1.2.4-1 .4-1.3.5-1 .3-1.3.5-1 .4-1.2.5-1 .4-1 .6-1.2.5-1 .5-1 .5-1 .5-1 .5-.8.5-1 .4-.8.4-.8.5-.8.4-.7.5-.7.4zm4.4 26-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.5-1-.4-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7.6 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.2.6v2.2l.3.8.3.7.4.8.4.8.4 1 .6 1 .5 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7zm1 3-1-.3v-1h-.2v-.2l-.2-.2v-.2h-.2v-.4l.7-.7.2.2v.4h.2v.2l.2.2v.2l.2.2v.4h.2v1.4zm.2 11.6-1-.5v.6l-.2-.4-.2-.5v-.4l-.2-.4v-.6l-.2-.4v-.5l-.2-.4v-5.4l.2-.4v-.7l.2-.4v-.5l.2-.3v-.4l.2-.2 1 .3v.2l-.2.2v.6l-.2.2v.6l-.2.3v1.1l-.2.4v5.1l.2.4v.8l.3.4v.4l.2.4zv.4zm0-.4v.4zm-5 1v1zh.2l.2-.2h1.4v.2h1.5l.2-.2h.2v-.2h.2v-.2l.2-.2.2-.3 1 .6-.2.2-.2.2v.2l-.2.2h-.2v.2l-.3.2h-.4l-.2.2h-.3v.2h-3v-1zm0 1v-1l.6.2-.5.7zm.6-.8.2.7h-.7l.6-.6z"/>
+ <path fill="#edb92e" d="M468 132.2q.3-3.6-.3 1.6-.5-1-1.4-1-1.6-.1-1.8 5.2l.2 2.8c-33-.7-52.7 4.3-57.7 14-4.2 7.8 3 21 13.6 36 1.3 1.8 1.2 1.6 0 3-1.8 2.3-3.8 6-2.3 9.2a24 24 0 0 1-21 1.5c-1-3-3.4-4.4-5.4-5.8-.5-.2-2-1-2-1.4l-10.2-31.6c-9.5-30.7 75.3-33.5 88.3-33.5"/>
+ <path fill="#21231e" d="m467.3 134 1-.4-1 .2V132h.2v-1.2l.2-.2.6-.3.3.3v1.6h-1V131l.4.2h.6v-.2 1l-.2.2v1.8h-1zm1 0-.2 1.6-.7-1.5h1zm-2-.7v-1h.7v.2h.4v.2h.2v.2h.2v.2h.2v.2h.2v.2l-1 .5v-.2h-.2v-.2h-.2v-.2zM465 138h-1v-1.8l.2-.3v-.9l.2-.3v-.7h.2v-.3l.2-.3.2-.3.2-.2h.2v-.2h.2v-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v2l-.2.3v.4zm-.3 3.3v-1l-.5.5v-2.3h-.2v-.4l1-.2v1.8l.2.2v1zm.5-.5v.5h-.5zM407.4 155l-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.3-.7 1.2-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9v1H453l-2.8.2h-2.6l-2.6.2-2.5.2-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.2.6-1 .7-1 .7-1 .7-1 .7-.6.8-.7.8-.6.8-.6 1zm13.6 35.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5zm0 3.8-.8-.7.2-.3.2-.2h.2v-.2l.2-.2v-.4l-.2-.2v-.2h-.2v-.3h-.2v-.3h-.2l.8-.7.2.3.2.3v.2h.2v.4h.2v.2l.2.2v1l-.2.2v.2h-.2v.2l-.2.2-.2.2-.2.3zm-2.5 9-.4-.8-.2.7v-.3l-.2-.5v-.3l-.2-.3v-3.5l.2-.3v-.3l.2-.4.2-.3v-.3l.2-.3.2-.3v-.3l.3-.2v-.3l.3-.2.2-.3v-.2l.3-.3.2-.2v-.3l.3-.2.2-.2.8.7-.2.2-.2.2v.2h-.3v.3l-.3.3-.2.2v.3l-.3.3v.3l-.2.2-.2.3v.7l-.2.2v.2l-.2.3v.6l-.2.4v2.7l.2.3.2.3-.3.6zm.3-.5v.4l-.3.2zm-22 1.8 1-.3-.2-.3.6.2.7.3.5.2.6.2h.8l.6.2.6.2h.7l.6.2h5.7l.7-.2h.5l.7-.3h.6l.7-.2.6-.2.7-.2.7-.2.6-.2.6-.3.6-.3.6-.2.7-.4.6-.3.5 1-.6.2-.7.4-.6.4-.7.2-.6.3-.7.2-.6.2-.6.2-.7.2-.6.2h-.6l-.7.3h-.7l-.6.2h-.7l-.7.2h-5l-.7-.2h-.7l-.6-.3h-.7l-.7-.3-.6-.3-.7-.3-.6-.2-.8-.3-.3-.4zm.4.3-.2-.2v-.2zm-5.6-5.8.6-1 .2.2.2.2h.2l.2.2.2.2h.2l.2.2v.2h.3v.3h.3l.2.3h.2l.2.3.3.3.2.2.2.2.2.2v.2l.3.2v.2l.3.2.2.2v.2l.3.3.2.2.2.2v.2l.3.3v.3l.2.3-1 .3-.2-.2v-.3h-.2v-.3l-.2-.3-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.2-.3-.3-.2-.2-.3-.3h-.2l-.2-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.2l-.2-.2h-.2l-.2-.3h-.2zh-.2zm-2-1.7.8-.3h.2v.2h.2l.2.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10.2-31.7 1-.3.2 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm88.2-33.6h1l-.5.5h-5.4l-2.5.2h-2.8l-3 .2-3.3.2-3.5.2-3.7.3-3.8.3-4 .4-4 .5-4 .6-4.2.6-4 .7-4.2 1-4 .8-4 1-3.7 1-3.7 1.3-3.4 1.4-3.3 1.4-3 1.5-2.6 1.6-2.3 1.7-2 2-1.6 1.8-1.2 2.2-.8 2.2-.4 2.3v2.5l.7 2.7-1 .3-.6-2.8v-2.8l.3-2.6 1-2.4 1.2-2.2 1.8-2 2-2 2.5-2 2.7-1.6 3-1.5 3.3-1.6 3.5-1.3 3.6-1 4-1.2 3.8-1 4-1 4-.7 4.2-.6 4.2-.6 4-.6 4-.5 4-.4 4-.4 3.7-.4 3.5-.2 3.3-.2 3-.2h3l2.4-.2h5.4l-.6.4zm1 0v.5h-.5l.7-.5zm-.5 0h-.4zm.7 0v.5h-.6z"/>
+ <path fill="#fff" d="M405 190.2c3.5 0 6.4 2.8 6.4 6.4 0 3.5-3 6.4-6.4 6.4s-6.4-3-6.4-6.4c0-3.6 3-6.4 6.4-6.4"/>
+ <path fill="#21231e" d="M412 196.6h-1a6 6 0 0 0-3.4-5.3 6 6 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-7 7v-1c2.2 0 4.3-1.4 5.2-3.4a6 6 0 0 0 .7-2.6h1c0 2.3-1.4 4.6-3.4 6a7 7 0 0 1-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.4 5.3a6 6 0 0 0 2.6.5v1a7 7 0 0 1-5.8-3.3 7 7 0 0 1-1-3.6zm7-7v1a6 6 0 0 0-5.2 3.3 6 6 0 0 0-.7 2.6h-1c0-2.4 1.4-4.7 3.4-6a7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M350.8 203.6c3.2 0 6 2.7 6 6s-2.8 6-6 6-6-2.7-6-6 2.7-6 6-6"/>
+ <path fill="#21231e" d="M357.2 209.6h-1c0-2-1-4-2.8-4.8a5 5 0 0 0-2.6-.7v-1a7 7 0 0 1 5.4 3 7 7 0 0 1 1 3.6zm-6.4 6.4v-1c2 0 4-1.2 4.8-3a6 6 0 0 0 .6-2.4h1c0 2-1.2 4.3-3 5.4a6 6 0 0 1-3.4 1m-6.5-6.4h1c0 2 1.2 4 3 4.8q1.2.6 2.5.6v1a7 7 0 0 1-5.5-3 7 7 0 0 1-1-3.4m6.5-6.5v1c-2 0-4 1.3-5 3a6 6 0 0 0-.5 2.6h-1c0-2.2 1.2-4.4 3-5.5a6 6 0 0 1 3.5-1z"/>
+ <path fill="#fff" d="M345 192.7c3.4 0 6 2.7 6 6s-2.6 6-6 6c-3.2 0-5.8-2.7-5.8-6s2.6-6 6-6z"/>
+ <path fill="#21231e" d="M351.5 198.7h-1c0-2-1.2-4-3-5a5 5 0 0 0-2.4-.5v-1q3.6.1 5.5 3a7 7 0 0 1 1 3.5zM345 205v-1c2 0 4-1 4.8-2.7a6 6 0 0 0 .7-2.6h1c0 2.2-1.2 4.3-3 5.5a6 6 0 0 1-3.4 1zm-6.3-6.3h1c0 2 1.2 4 3 4.8a5 5 0 0 0 2.4.6v1c-2 .2-4.2-1-5.3-3a7 7 0 0 1-1-3.3zm6.4-6.5v1c-1.8 0-3.7 1-4.6 2.8a6 6 0 0 0-.7 2.7h-1c0-2.2 1.2-4.4 3-5.5a6 6 0 0 1 3.4-1z"/>
+ <path fill="#fff" d="M339.8 181.7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6"/>
+ <path fill="#21231e" d="M346.2 187.7h-1c0-2-1.2-4-3-5a5 5 0 0 0-2.4-.5v-1c2.2 0 4.3 1.2 5.4 3a7 7 0 0 1 1 3.5m-6.4 6.4v-1q3.2 0 4.7-2.7.7-1.2.7-2.6h1c0 2-1 4.3-3 5.4a6 6 0 0 1-3.4 1zm-6.4-6.3h1c0 2 1 4 3 4.8q1 .6 2.4.6v1a6 6 0 0 1-5.4-3 7 7 0 0 1-1-3.3zm6.4-6.5v1c-2 0-4 1.2-4.8 3a6 6 0 0 0-.6 2.5h-1c0-2.2 1-4.4 3-5.5a6 6 0 0 1 3.4-1"/>
+ <path fill="#edb92e" d="M444.3 202.2c3.4-.3 2.5 5.8 2 7.2q-1.3 2.6-3 .2c-.8-1.3-2.4-7.2 1-7.5z"/>
+ <path fill="#21231e" d="m446.6 209.6-1-.4h.2v-.7l.2-.3v-.5l.2-.3V204h-.2v-.3l-.2-.2v-.2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.3v-1h.7l.3.2h.3l.3.2v.2l.3.3.2.2.2.3v.2l.2.3v.7l.2.3v3.7l-.2.3v.5l-.2.3v.5h-.2zm-3.7.3.8-.7.2.3v.2h.2v.2h.2v.2h.7l.2-.2v-.2h.2v-.2h.2v-.3l1 .3v.2l-.2.2v.3h-.2v.2l-.2.2-.2.2h-.4v.2H444v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.3h-.3zm1.2-8.4v1h-.4v.2h-.3v.2h-.3v.3l-.2.2v.4h-.2v3.2l.2.2v.6l.2.2v.3l.2.2v.2l.2.2v.2h.2l-1 .7v-.5l-.2-.2v-.2l-.2-.4v-.2l-.2-.3v-.2l-.2-.3v-.7l-.2-.3v-3l.2-.3v-.3l.3-.3.2-.2.2-.3h.2l.2-.3.3-.2h.4l.2-.2z"/>
+ <path fill="#fff" d="M444.5 205.5c8-.6 6 13.8 4.4 17q-2.8 6.3-6.7.5c-2-3-5.8-17 2.2-17.5z"/>
+ <path fill="#21231e" d="m449.4 222.7-1-.4.2-.3.2-.4v-.4l.3-.5.2-.5v-.6l.2-.6.2-.7V217l.2-.7v-5.1l-.3-.7v-.6l-.3-.7-.3-.6-.3-.5-.3-.5-.3-.4-.3-.4-.4-.4-.5-.2-.5-.2-.5-.2h-1.4v-1h1.5l.6.2.7.2.5.4.6.4.4.4.4.5.4.7.3.6v.7l.3.6.2.7v.7l.3.8v6.3l-.3.7v.7l-.2.6v.6l-.3.6v.5l-.3.5v.4l-.3.3zm-7.5.5.8-.5.2.3.2.3.3.3.2.3h.2v.4h.3l.2.3.2.2h.4l.2.2h1v-.2h.3l.2-.3v-.2l.2-.2.2-.2h.2l.2-.4v-.3l.3-.3.3-.3.2-.4 1 .4-.3.4-.2.5-.2.3-.2.4-.2.3-.2.3-.2.2-.2.2-.2.3-.3.2h-.2v.3h-.4l-.2.2H445l-.4-.2h-.2l-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.3-.2-.3-.3-.3-.4-.2-.4zm2.5-17.2v-1zh-.6l-.7.2-.5.2-.5.3-.4.3-.5.4-.3.4-.3.4-.3.6-.2.5v.6l-.2.5v.7l-.2.7v.6l.2.7v1.4l.2.7v.8l.3.7v.6l.3.7.2.6.2.5.2.6.2.7.2.5.2.4.2.4.2.4.2.3-1 .5v-.3l-.3-.5-.2-.4-.2-.4v-.6l-.4-.5-.2-.7-.2-.6-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7V213l-.2-.7v-.8l.2-.7v-.6l.2-.7v-.7l.4-.6.2-.6.4-.6.4-.5.4-.5.5-.4.6-.3.7-.3.7-.2h.8v1zm0-1v1z"/>
+ <path fill="#edb92e" d="M379.7 210.8c3.3-1 4 5 3.6 6.6q-.5 2.9-2.7 1c-1-1.2-4-6.5-1-7.6z"/>
+ <path fill="#21231e" d="m383.8 217.5-1-.2v-2.8l-.2-.3v-.7l-.2-.3v-.3l-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.3-.3h-.3l-.3-.2h-.6l-.4-1h1.5l.2.2.3.2.2.2.3.2.2.3.2.2v.3l.3.3v.4l.2.3v.3l.2.3v.3l.2.4v.6l.2.3v2.5zm-3.5 1 .7-.6h.2v.2h.2l.2.2h.2v.2h.4l.2-.2v-.2h.2v-.6h.2v-.3l1 .2v.4h-.2v.4l-.2.3v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-1v-.2h-.3l-.2-.2h-.2v-.2h-.2zv-.2zm-.7-8.2.3 1h-.3l-.2.2h-.2v.2l-.2.2v.2l-.2.2v1.8l.2.4v.3l.2.3v.2l.2.3.2.3v.3l.2.3.2.3v.2l.3.2v.2l.2.2.3.3.2.2-.7.6h-.2v-.4l-.3-.2v-.2l-.3-.2v-.3l-.3-.2v-.2l-.2-.3v-.3l-.3-.3v-.4l-.2-.3v-.3l-.3-.3v-.7l-.2-.3V212l.3-.2.2-.3.2-.3.3-.2.2-.2h.2l.4-.3z"/>
+ <path fill="#fff" d="M380.7 214c7.7-2.5 9.2 12 8.4 15.5q-1.3 6.6-6.2 2c-2.6-2.4-9.7-15-2-17.5z"/>
+ <path fill="#21231e" d="m389.6 229.6-1-.2v-.8l.2-.4v-2.9l-.2-.7V223l-.3-.7v-.7l-.3-.8-.2-.7-.2-.6-.2-.7-.3-.7-.2-.6-.3-.6-.3-.4-.4-.5-.3-.4-.4-.3-.4-.4-.4-.4-.5-.2h-.5l-.5-.2h-1.1l-.6.3-.4-1 .7-.2h2.2l.7.2.7.2.5.4.5.5.5.4.4.5.4.5.4.6.3.7.3.6.3.6.3.7.2.8.2.8.2.7v.8l.3.7v1.5l.2.7v4.4zm-7 2.3.5-1 .5.4.2.2.3.3h.3l.3.3h.2l.3.3h.3l.2.2h1.4l.2-.2.2-.2.2-.3.3-.3v-.6l.2-.2v-.3l.2-.4v-.2l.2-.4 1 .2v.4l-.2.4v.4l-.2.4-.2.3v.3l-.2.3-.2.4v.3l-.3.2h-.2v.3l-.3.2h-.2l-.2.3h-.8l-.3.2h-.5l-.3-.2h-.2l-.3-.2h-.4l-.3-.3-.3-.2h-.3l-.3-.3-.3-.3-.2-.2-.3-.3zm-2-18.5.3 1-.7.2-.6.3-.4.3-.4.4-.4.4-.3.5-.2.5v.5l-.2.6v2.5l.2.6.2.7.2.6.2.7.3.7v.7l.4.6.3.7.4.6.4.6.3.6.4.6.4.5.3.4.3.4.4.4.2.4.3.3-.5 1-.3-.4-.3-.3-.4-.4-.4-.5-.3-.5-.4-.5-.4-.6-.3-.7-.5-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.7-.3-.7-.3-.7-.2-.8-.2-.8v-.7l-.2-.7V218l.2-.7.2-.6.2-.6.3-.5.4-.5.6-.5.6-.4.7-.2.6-.3zm0 .5v-.5z"/>
+ <path fill="#edb92e" d="M464.2 137.8c-17.2-1.6-35 .2-52.3 7-14.8 6-13.4 23.2 4.6 47q-2.6 4.6-2.7 11h4.8c-1.3-2.8 0-6.4 1.8-9 1-1.5 1.3-1.2 0-3-10.7-15-17.8-28.2-13.6-36 5-9.7 24.6-14.7 57.7-14q0-1.4-.2-2.7l-.3-.2z"/>
+ <path fill="#21231e" d="m412 145.4-.3-1 1.7-.6 1.6-.6 1.7-.6 1.6-.5 1.6-.4 1.6-.5 1.6-.4 1.7-.4 1.5-.4 1.7-.4 1.6-.4 1.7-.3 1.6-.3 1.8-.3h1.6l1.7-.3 1.7-.2 1.7-.2 1.6-.2h3.3l1.6-.2h11.5l1.6.2h1.6l1.6.3v1l-1.7-.2h-4.9l-1.6-.2h-9.7l-1.6.2H443l-1.5.3-1.7.2-1.6.2-1.6.2H435l-1.7.4-1.6.3-1.7.3-1.6.4-1.6.3-1.7.5-1.5.4-1.6.4-1.8.5-1.6.6-1.6.6-1.7.6-1.6.6-1.6.6zm5 46.7-1-.4.2.5-1.7-2-1.5-2.3-1.5-2-1.3-2.2-1.3-2-1.2-2-1-2-1-2-1-2-.7-1.7-.6-1.8-.5-1.8-.6-1.7-.4-1.6-.3-1.7-.2-1.6v-4.4l.2-1.3.3-1.3.4-1.2.5-1.2.5-1.2.7-1 .8-1 .8-1 1-.7 1-.8 1.3-.8 1.4-.6 1.3-.5.4 1-1.2.5-1.2.6-1 .7-1 .8-1 1-1 .8-.6 1-.7 1-.5 1-.5 1-.3 1.2-.3 1.2-.2 1.2v3.8l.2 1.5.3 1.7.3 1.6.5 1.6.6 1.6.7 1.8.8 1.8 1 2 .8 1.8 1 2 1.2 2 1.2 2 1.4 2 1.4 2.2 1.5 2 1.7 2.3zm0-.5.2.3-.2.3v-.5zm-3 11v1l-.6-.6v-2.5l.2-.4v-1l.2-.4v-.7l.2-.5v-.4l.2-.2v-.4l.2-.3v-.3l.2-.3v-.4l.2-.3v-.3l.2-.3v-.3l.3-.3v-.3l.2-.2.2-.3v-.3l.3-.3v-.4l1 .5v.4l-.3.2v.3l-.2.2-.2.3v.3l-.2.3v.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.2.4v.7l-.2.3v.8l-.2.4v.8l-.2.4v1.4l-.2.4v.7l-.5-.6zm0 1h-.6v-.6l.5.5zm4.3-.4 1-.4-.5.8h-4.6v-1h4.6l-.5.7zm1-.4.3.7h-.8l.4-.7zm1-9 .7.6-.2.2v.3l-.2.2-.2.2v.2l-.3.3v.4l-.2.3-.2.2v.3l-.2.3v.2l-.2.3v.7l-.2.2v.5l-.2.3v2.2l.2.3v.4l.2.2-1 .5v-.5l-.2-.3v-.7l-.2-.3v-2.7l.2-.3v-.3l.2-.2v-.3l.2-.3v-.3l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.3v-.3l.3-.3v-.3h.3l.2-.3zm0-2.5.7-.5.2.3.2.3v.2h.2v.4h.2v.4l.2.2v.5l-.2.2v.2h-.2v.2l-.2.2v.2h-.2v.3l-.2.2-.8-.6v-.2l.2-.2.2-.2v-.2h.2v-.4h.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.3h-.2zm-13.8-36.5 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8zm57.7-13.7h1l-.5.5h-14.5l-2.6.2H445l-2.5.3-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.3.6-1 .7-1 .7-1 .7-.8.7-.8.8-.7.8-.6.8-.6 1-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.2-.7 1.3-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9l-.6.6zm1 0v.5h-.5zm-1-2.3.7-.7v1.9h.2v1h-1v-2.3l-.2-.2v-.4.3zm.7-.7v.3-.2zm-1.2-.4.8.7v-.6.2h.2v.2l-.7.7v-.4h-.2v-.6zm0 .7-.3-.2.3-.4zm.8 0-.8-.6h.4zm-.4-.7h1l-.6.8-.4-.7z"/>
+ <path fill="#fff" d="M380.6 142.7c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 0 1 6.2-6z"/>
+ <path fill="#21231e" d="M387.2 148.8h-1c0-2-1.2-4-3-5a6 6 0 0 0-2.6-.6v-1c2.2 0 4.5 1.2 5.6 3a7 7 0 0 1 1 3.6m-6.6 6.7v-1c2 0 4-1.2 5-3a7 7 0 0 0 .6-2.7h1a7 7 0 0 1-3 5.7 7 7 0 0 1-3.6 1m-6.7-6.7h1c0 2 1.2 4.2 3 5a6 6 0 0 0 2.6.7v1a7 7 0 0 1-5.6-3 7 7 0 0 1-1-3.7m6.6-6.7v1.2c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.6h-1c0-2.2 1-4.4 3-5.6a7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M392.6 138.7c3.4 0 6.2 2.8 6.2 6.2 0 3.3-2.8 6-6.2 6a6 6 0 0 1-6-6c0-3.5 2.6-6.3 6-6.3z"/>
+ <path fill="#21231e" d="M399.3 145h-1c0-2.2-1.3-4.3-3.2-5.2a6 6 0 0 0-2.4-.6v-1a7 7 0 0 1 5.7 3 7 7 0 0 1 1 3.7zm-6.7 6.6v-1c2 0 4-1.3 5-3a6 6 0 0 0 .7-2.7h1c0 2.2-1.2 4.4-3.2 5.6a7 7 0 0 1-3.4 1zM386 145h1c0 2 1.2 4 3 5a6 6 0 0 0 2.6.6v1a7 7 0 0 1-5.6-3.2 7 7 0 0 1-1-3.5zm6.6-6.8v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.7h-1c0-2.4 1.2-4.7 3.2-5.8a7 7 0 0 1 3.4-1z"/>
+ <path fill="#edb92e" d="m394.2 144 2 2.4q-14.6 8.1-13 16.7.1 1.4 9.8 31.7 6.7 4.7 10 8.4c-.2.4.8 1.2.5 1.5.7 3-2.8 2.4-5 1.7-1.2-3-4.6-6-6.6-7.5-.5-.2-2-1-2-1.4l-10.2-31.6c-3-9.8 3.6-16.8 14.4-21.7z"/>
+ <path fill="#21231e" d="m396.3 147-.5-1v.7h-.2v-.2h-.2v-.2l-.2-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l.8-.7.2.2h.2v.4h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v1zm.2-1 .3.6-.5.3zm-12.7 17-1 .2v-3.9l.2-.6.2-.5.2-.6.2-.5.3-.5.2-.5.3-.6.4-.5.3-.6.4-.6.5-.5.4-.6.6-.5.5-.5.6-.5.6-.6.5-.5.7-.4.7-.5.6-.5.8-.5.8-.5 1-.5.7-.5.8-.5.5 1-1 .4-.7.5-.8.4-.8.5-.8.4-.7.5-.7.4-.6.5-.7.4-.6.5-.6.4-.5.5-.6.4-.5.6-.5.5-.4.5-.3.5-.3.5-.3.5-.2.5-.2.5-.2.5-.2.5-.2.5v.5l-.2.5v3.1zm9.5 31.3-.6.8-.2-.2-.6-1.8-.7-1.8-.5-1.8-.6-1.7-.5-1.6-.5-1.5-.5-1.5-.5-1.5-.4-1.4-.4-1.2-.4-1.3-.4-1.3-.4-1-.3-1.3-.4-1-.3-1-.3-1-.3-1-.3-.8-.2-.8-.2-.8-.2-.6-.2-.7v-.5l-.3-.5v-.5l-.2-.4v-.8h-.2v-.3h1v.3l.2.3v.4l.2.3v.5l.2.5.2.6.2.7.2.7.2.7.2 1 .3.7.2 1 .2 1 .3 1 .3 1 .4 1 .4 1.2.3 1.2.3 1.3.5 1.3.4 1.4.5 1.5.4 1.5.7 1.6.5 1.6.5 1.7.6 2 .6 1.7.5 1.8-.2-.2zm-.6.8-.2-.2.2.3zm10.7 8.4-.7-.6v.6l-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.3-.3-.2-.3-.2-.2-.2-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.2-.4-.3-.4-.3-.4-.3-.3-.3-.5-.3-.4-.2-.3-.3-.4-.2-.4-.3-.5-.3-.4-.3-.3-.3.6-.7.4.3.4.3h.5l.4.4.3.3.4.3.4.3.5.3.3.2.4.3.3.4.4.3.2.2.4.2.3.3.2.2.3.3.3.3.3.2.4.3.3.2.3.3.3.3.2.2.3.3.3.3.3.3.2.2.3.2.2.3.2.2.2.3v.6zm0-.6.3.3-.3.4v-.6zm.6 1.6-1 .2.2-.5v.2h-.2v.2-.2l-.2-.2v-.2h-.2v-1.2l.8.6v-.2h.2v.2l.2.2v.2l.2.2v.7l-.2.2.2-.6zm-1 .2v-.3l.2-.2-.2.6zm-5 1.8 1-.4-.4-.3h.4l.2.2h.7l.4.2h2.3v-.2h.2v-1.4l1-.2v1.6l-.2.3v.2l-.2.2h-.2l-.2.2h-.4l-.2.2h-3l-.3-.2h-.5l-.3-.2h-.5l-.3-.4zm.2.3h-.2v-.3zm-6.6-7.5.6-1 .2.3h.2l.2.3h.2l.3.3.2.3.2.2.2.2.2.2h.2l.2.3.3.2v.3l.4.2.2.3.2.2.3.3.3.2.2.3.3.3.2.2.2.3.2.4.2.3.2.3.2.2.2.3v.3l.3.3v.4l.3.3v.3l-1 .4v-.3l-.2-.4-.2-.3v-.2l-.3-.2v-.3l-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3-.2-.2-.3v-.2l-.3-.3-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.2zm.6-1 .3.3-.3-.2zm-2.7-.7 1-.3.2.2h.2v.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10-31.7.8-.3.3 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm15-22-.7.5h.6l-1 .6-1 .4-1 .5-.8.4-1 .5-.7.4-1 .5-.7.5-.8.5-.7.6-.7.6-.5.6-.7.6-.5.6-.6.7-.5.6-.4.7-.4.6-.4.7-.3.7-.3.7-.3.7v.8l-.2.7v.7l-.2.8v2.6l.3.8v1l.3.7-1 .3-.2-1v-.8l-.3-1V159l.2-1 .2-.7.2-.6.3-.8.4-.7.5-1 .4-.6.4-.7.6-.7.5-.7.6-.6.8-.6.6-.6.8-.6.7-.6.7-.5.8-.6 1-.5.7-.5 1-.5 1-.5.8-.5 1-.5 1-.5.6.2zm-.5-.3.4-.2.2.4z"/>
+ <path fill="#edb92e" d="m356 217-.4 2q-4.2.8-7.3.3 5.1-4.9 7.6-2.4z"/>
+ <path fill="#21231e" d="m355 218.8.4-2 1 .2-.3 2-.3.4-.6-.6zm1 0v.5h-.3zm-8 .2.7.7-.3-1 .2.2h4.1l.3-.2h1l.2-.2h.7l.2-.2h.3l.2 1h-.8l-.4.2h-.5l-.4.2h-1.3v.2h-3.7l-.4-1zm.2 1-1-.3.8-.7zm8.2-3-1-.2.2.5v-.2h-.6v-.2h-.6l-.2-.2H353v.2h-.6l-.2.3-.2.2h-.3l-.2.2-.3.2-.2.2-.3.2-.3.2-.2.2-.3.2-.4.3h-.3l-.3.4-.3.3-.7-.7.3-.3.3-.3.3-.3.2-.2.3-.2.3-.2.3-.3h.4l.3-.3h.3l.2-.3h.3l.3-.3h.6l.3-.2h.5l.4-.2h1.3l.2.2h.3l.2.2h.2l.2.2.3.3v.5zm0-.5v.5zm-.5.4h.4-.5zm.3-.5.2.2v.3z"/>
+ <path fill="#edb92e" d="M355.6 212.3c1.8.4 2 .7 2.7 1 1 0 2.4 0 3.3-1 4-2.2 4 2 2.5 5-1 2.4-.5 5 .6 7 1.2 2.2 1 3.2 0 4l-1.6 1q-1.6 1.8-2-.6c-3.8-1.6-5-5.3-6.2-8.6-1.7-4.7-7.8-5.8.8-7.7z"/>
+ <path fill="#21231e" d="M358.4 212.7v1h-.7v-.2h-.4l-.2-.2h-.4l-.2-.2h-.8l-.3-.2.2-1h.4l.2.2h.4l.2.2h.4v.2h.8v.2zm3-.7.5 1v-.2l-.2.2h-.3v.2h-.2l-.2.2h-.2l-.2.2h-2.1v-1h2.2l.2-.2h.2v-.2h.2zm3 5.6-.8-.4v-.3l.3-.4v-.5l.2-.2v-.6l.2-.3v-2.2h-.2v-.2h-.2v-.2h-1.2l-.3.2-.3.2-.3.2-.6-1 .4-.2.3-.2h.5l.3-.2h1.8l.2.2.2.2v.2l.2.3v.4l.2.3v2.4l-.2.3v.3l-.2.4v.3l-.2.3v.3zm.6 6.3-1 .4v-.4l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.5l-.2-.2v-.8l-.2-.2v-2.3l.2-.2v-.3l.2-.3v-.3l.2-.2 1 .4-.2.2v.4l-.2.2v.8l-.2.2v2l.2.2v.5l.2.2v.4h.2v.2l.2.2v.4h.2zm0 4.6-.6-1h.2v-.2h.2v-1.6l-.2-.3v-.3l-.2-.2v-.2l-.2-.2v-.2l.8-.5v.2l.2.2v.2l.2.2v.2l.2.2v.2l.2.3v1.7l-.2.2v.2h-.2v.2h-.2v.2l-.2.2zm-1.6 1-.8-.7v-.2h.2l.2-.2h.2v-.2h.4v-.2h.2v-.2h.4v-.2h.2l.6.8h-.2v.2h-.4v.2h-.2l-.2.2h-.2v.2h-.2zm-.8-.7v-.2zm-1.8 0 .4-.8.3.4v.5h.2v.2h.4v-.2h.2v-.2h.2l.8.6-.2.2-.2.2-.3.2h-.2v.2h-1.1l-.2-.2v-.2l-.2-.2v-.4h-.2v-.7zm.4-.8h.3v.4zm-7-8 1-.3.2.2v.3l.2.3v.4l.2.3v.3l.3.3.2.4v.3l.2.3.2.3v.3l.3.3v.2l.2.3v.2l.3.3.2.3.2.2v.3l.3.2.2.3.2.2.2.2.2.2h.2l.3.3.3.2.3.2.3.2h.3l.2.2-.4 1-.3-.2-.4-.2-.2-.2-.4-.2-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.2-.3-.2-.3-.3-.4-.2-.3-.2-.3-.2-.3v-.4l-.2-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.4v-.2l-.2-.3-.2-.3v-.3l-.2-.4v-.3zm1.4-8.4v1l-.6.2-.7.2h-.6l-.5.3h-.4l-.4.3h-.3v.3l-.2.2v.2h-.2v.2l.2.3.3.2.2.3.2.2.2.3.3.2v.3l.4.3.2.3.3.5.2.3.2.4.3.4.2.4v.5l.3.4-1 .3v-.4l-.3-.5-.2-.4-.2-.3-.3-.3-.2-.3v-.2l-.4-.3-.2-.3-.3-.3v-.4l-.3-.2-.3-.3-.3-.4v-.2l-.2-.3-.2-.4v-.6l.3-.3v-.2l.3-.3h.3l.4-.3.4-.3.5-.2h.4l.7-.3.8-.2zm0 1v-1zm0-1"/>
+ <path fill="#edb92e" d="M357 212.5c3.5 1.2 4-.7 6-.6-.8 5-1.7 7.7-7 5-3-1.6-6.7.7-7.4 2.3-.3.6-2-.6-2.6-2-2.6-5.8 6.7-6.4 11-4.8z"/>
+ <path fill="#21231e" d="m363.6 212-1-.2.5.6H362v.2h-.3l-.2.2h-.2l-.3.2h-.3v.2h-.7l-.2.2h-2l-.4-.2h-.3l-.3-.2.3-1h.3l.3.2h.4l.2.2h1.3l.2-.2h.2l.2-.2h.5l.2-.2h.2l.3-.2h.5l.2-.2h.4l.6.6zm-.5-.6h.7v.6zm-7.2 6 .4-1 .5.4.5.2h.4l.4.3h.3l.4.2h1.7l.2-.2.3-.3.2-.3v-.2l.2-.2.2-.3v-.3l.2-.3v-.3l.2-.2v-.4l.2-.4v-.4l.2-.4v-.9l.2-.5 1 .2v.5l-.2.5v.8l-.2.5v.4l-.2.4v.4l-.3.4v.3l-.2.4-.2.4v.2l-.3.3-.2.3-.2.2-.3.2-.2.2h-.2l-.3.2h-.3l-.3.2h-1.6l-.4-.2-.4-.2h-.4l-.4-.3-.5-.3-.5-.3zm-6.8 2-1-.3h.2v-.3h.3v-.3l.3-.2v-.2l.3-.2h.3l.2-.3.2-.2h.3l.2-.3h.3l.2-.3h.3l.3-.2h.3l.2-.2h.3l.4-.2h2.3l.3.2h.3l.3.2h.2l-.4 1h-.3l-.2-.2h-.5l-.3-.2h-1.8l-.3.2h-.3l-.3.2h-.3l-.2.3h-.2l-.3.2h-.2l-.2.2h-.2v.2l-.2.2h-.2v.3h-.2v.2h-.2v.2zm-3.5-2 1-.3v.4h.2v.4h.2v.2l.2.2h.2v.2l.2.2h.2v.2h.4v.2l.8.5v.2l-.3.2h-1v-.2h-.2l-.3-.2h-.2v-.2l-.2-.2-.2-.2h-.2v-.3h-.2v-.2h-.2v-.3h-.2v-.4h-.2zm11.8-5.4-.3 1-.4-.2h-.5l-.3-.2h-.5l-.5-.2h-5l-.5.2-.4.2h-.4l-.4.3-.4.3-.3.2v.2l-.4.2-.2.2v.3l-.3.2v1.6l.3.4.2.5-1 .5-.2-.5-.2-.6V215l.2-.6.2-.4.2-.4.3-.3.2-.4.3-.3.4-.3.4-.2.4-.2.5-.2h.5l.5-.3h1.1l.5-.2h3.3l.6.2h.5l.4.2.5.2h.3zm0 .5v-.5z"/>
+ <path fill="#fff" d="M458.8 124.5c3.4 0 6.2 2.7 6.2 6 0 3.5-2.8 6.3-6.2 6.3s-6-2.8-6-6.2a6 6 0 0 1 6-6z"/>
+ <path fill="#21231e" d="M465.5 130.6h-1c0-2-1.3-4.2-3.3-5a6 6 0 0 0-2.4-.6v-1a7 7 0 0 1 5.7 3 7 7 0 0 1 1 3.6m-6.7 6.7v-1c2 0 4-1.2 5-3a6 6 0 0 0 .6-2.7h1c0 2.3-1 4.5-3 5.7a7 7 0 0 1-3.6 1m-6.6-6.7h1c0 2 1.3 4.2 3.2 5a6 6 0 0 0 2.4.7v1a7 7 0 0 1-5.6-3.2 7 7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.6h-1c0-2.2 1.2-4.4 3.2-5.6a7 7 0 0 1 3.4-1"/>
+ <path fill="#fff" d="M446.3 124.5a6 6 0 0 1 6 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z"/>
+ <path fill="#21231e" d="M453 130.6h-1c0-2-1.3-4-3.2-5a6 6 0 0 0-2.5-.6v-1c2.3 0 4.5 1.2 5.6 3a7 7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.3 5-3a7 7 0 0 0 .6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a7 7 0 0 1-3.5 1zm-6.6-6.7h1c0 2 1.2 4.2 3 5a6 6 0 0 0 2.6.7v1a7 7 0 0 1-5.6-3.2 7 7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.6h-1a7 7 0 0 1 3-5.6 7 7 0 0 1 3.6-1"/>
+ <path fill="#fff" d="M433.8 125.5a6 6 0 0 1 6 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z"/>
+ <path fill="#21231e" d="M440.4 131.6h-1c0-2-1.2-4-3-5a6 6 0 0 0-2.6-.6v-1a7 7 0 0 1 5.6 3 7 7 0 0 1 1 3.6m-6.6 6.7v-1c2 0 4-1.3 5-3a6 6 0 0 0 .6-2.7h1a7 7 0 0 1-3 5.7 7 7 0 0 1-3.6 1m-6.6-6.7h1c0 2.2 1.3 4.3 3.2 5.2a6 6 0 0 0 2.4.5v1a6 6 0 0 1-5.6-3.2 7 7 0 0 1-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.6h-1c0-2.3 1.3-4.6 3.3-5.7a7 7 0 0 1 3.3-1z"/>
+ <path fill="#fff" d="M422.3 127.7c3.3 0 6 2.8 6 6.2 0 3.3-2.7 6-6 6s-6.2-2.7-6.2-6 3-6.3 6.3-6.3z"/>
+ <path fill="#21231e" d="M429 134h-1a6 6 0 0 0-3.3-5.2 6 6 0 0 0-2.4-.6v-1c2.2 0 4.4 1.2 5.6 3.2a7 7 0 0 1 1 3.5zm-6.7 6.5v-1c2 0 4-1.2 5-3q.6-1.5.6-2.6h1c0 2-1.3 4.3-3.3 5.5a7 7 0 0 1-3.4 1zm-6.7-6.6h1q.2 3.2 3 4.8a5 5 0 0 0 2.7.7v1a7 7 0 0 1-5.7-3 7 7 0 0 1-1-3.6zm6.7-6.8v1c-2 0-4.2 1.3-5 3.2a6 6 0 0 0-.7 2.5h-1q.1-3.9 3.3-6a7 7 0 0 1 3.3-.8z"/>
+ <path fill="#fff" d="M346.3 159.4a6 6 0 0 1 6 6.2c0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 0 1 6-6.2"/>
+ <path fill="#21231e" d="M353 165.6h-1c0-2-1.3-4-3.2-5a6 6 0 0 0-2.5-.7v-1c2.2 0 4.5 1 5.6 3a7 7 0 0 1 1 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a7 7 0 0 0 .6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a7 7 0 0 1-3.5 1zm-6.7-6.7h1c0 2 1.3 4.2 3.2 5a6 6 0 0 0 2.5.7v1a7 7 0 0 1-5.6-3 7 7 0 0 1-1-3.7zm6.7-6.7v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.6h-1a7 7 0 0 1 3-5.7 7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M356.8 152.8c3.4 0 6.2 2.7 6.2 6 0 3.6-2.8 6.3-6.2 6.3s-6-2.6-6-6a6 6 0 0 1 6-6.2z"/>
+ <path fill="#21231e" d="M363.5 159h-1c0-2.2-1.3-4.2-3-5a6 6 0 0 0-2.7-.7v-1a7 7 0 0 1 5.7 3 7 7 0 0 1 1 3.6zm-6.7 6.6v-1a5.7 5.7 0 0 0 5.7-5.7h1a7 7 0 0 1-3 5.6 7 7 0 0 1-3.7 1zm-6.6-6.7h1c0 2 1.2 4 3 5a6 6 0 0 0 2.6.6v1a7 7 0 0 1-5.6-3 7 7 0 0 1-1-3.7zm6.6-6.8v1c-2 0-4 1.3-5 3.2a6 6 0 0 0-.6 2.5h-1c0-2.3 1.2-4.6 3-5.8a7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M368.8 147c3.4 0 6 3 6 6.3 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 0 1 6-6.2z"/>
+ <path fill="#21231e" d="M375.4 153.3h-1c0-2-1.2-4.2-3-5a6 6 0 0 0-2.6-.7v-1a7 7 0 0 1 5.6 3 7 7 0 0 1 1 3.7m-6.6 6.7v-1c2 0 4-1.3 5-3a6 6 0 0 0 .6-2.7h1a7 7 0 0 1-3 5.7 7 7 0 0 1-3.6 1m-6.7-6.7h1c0 2 1.4 4 3.2 5a6 6 0 0 0 2.6.7v1a7 7 0 0 1-5.7-3.2 7 7 0 0 1-1-3.5zm6.8-6.7v1c-2 0-4 1.2-5 3a6 6 0 0 0-.6 2.7h-1c0-2.3 1-4.5 3-5.7a7 7 0 0 1 3.6-1"/>
+ <path fill="#fff" d="M338.2 169.5a6 6 0 0 1 6 6.2c0 3.4-2.6 6.2-6 6.2s-6.2-3-6.2-6.3 2.8-6.2 6.2-6.2z"/>
+ <path fill="#21231e" d="M344.8 175.7h-1c0-2-1.3-4.2-3.2-5a6 6 0 0 0-2.4-.7v-1a7 7 0 0 1 5.6 3 7 7 0 0 1 1 3.7m-6.6 6.7v-1c2 0 4-1.3 5-3a6 6 0 0 0 .6-2.7h1c0 2.3-1.2 4.5-3.2 5.7a7 7 0 0 1-3.4 1m-6.7-6.7h1c0 2 1.2 4 3 5a6 6 0 0 0 2.7.7v1a7 7 0 0 1-5.7-3.2 7 7 0 0 1-1-3.5m6.7-6.7v1c-2 0-4 1.2-5 3a6 6 0 0 0-.7 2.7h-1c0-2.3 1.2-4.5 3.2-5.7a7 7 0 0 1 3.5-1"/>
+ <path fill="#edb92e" d="m454.2 276.3-22 12.8-23.4-10 22-12.8z"/>
+ <path fill="#21231e" d="m431 266.7-22 12.8-.4-1 22-12.7h.5v1zm-.4-1h.5-.4zm23.5 11-23.3-10 .4-1 23.4 10v1h-.3zm.4-1 1 .5-1 .5zm-22.4 13 22-13 .5 1-22 12.8h-.5zm.5.8-.2.2h-.3zm-23.4-11 23.4 10-.4 1-23.3-10v-1h.4zm-.3 1-1-.4 1-.4v1z"/>
+ <path fill="#c6363c" d="M431 270.6c5.8-.3 10.5 2.5 10.8 6.3.2 3.7-4.2 7-9.8 7.4-5.7.3-10.4-2.5-10.7-6.3-.2-3.6 4.2-7 9.8-7.4z"/>
+ <path fill="#21231e" d="M442.3 277h-1v-.7l-.2-.3v-.6l-.3-.3v-.2l-.3-.2-.2-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2h-.5l-.3-.3-.3-.2-.5-.2-.4-.2h-.3l-.4-.2h-.4l-.5-.3h-.9l-.5-.2h-.8l-.5-.2h-1l-.5.2v-1h3.6l.4.2.5.2h.5l.4.2.5.2.5.2.4.2.3.2.4.2.4.2.4.2.4.3.3.3.4.3.3.3.3.3.2.4.2.3.2.3.2.4v.3l.3.4.2.4v.8zm-10.3 8v-1l.4-.2h.9l.5-.2h.4l.4-.2h.5l.4-.3h.5l.4-.2.4-.2.4-.2.3-.2.4-.2.4-.3.4-.2.3-.2.3-.3.3-.2.3-.3v-.3l.3-.3.2-.4.2-.2v-.3l.2-.2v-.6l.2-.3v-1.1l1-.2v1.6l-.2.4v.3l-.3.5v.3l-.3.4-.3.3v.3l-.4.4-.3.3-.3.3-.3.2-.3.3-.4.3-.4.2-.4.3-.4.3-.4.2-.4.2-.5.2h-.4l-.4.2-.5.2h-.4l-.5.2h-.4l-.5.2h-1zm-11.2-6.8h1v.5l.2.3v.3l.2.3.2.3v.2l.3.3.2.2v.3l.4.2.2.3.3.2.2.2.3.2.4.2.2.2h.4l.4.3h.4l.4.2.4.2h.4l.5.2h1l.4.2h2.3v1H428l-.5-.2h-.4l-.5-.3h-.6l-.4-.3h-.4l-.5-.3-.3-.2-.3-.3-.4-.2-.4-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.3v-.3l-.3-.3-.2-.3-.2-.4-.2-.3v-1l-.2-.4zm10.3-8 .2 1h-1.5l-.5.2h-.5l-.5.2-.4.2h-.5l-.4.3-.5.2-.4.2-.3.2-.4.2-.3.2-.3.3-.4.2-.3.3-.3.2-.2.3-.3.2-.2.3-.2.3-.2.4-.2.3v.3l-.3.3v.8l-.2.3v.6l-1 .2V277l.2-.4v-.3l.2-.4v-.5l.3-.3.2-.4.3-.3.2-.3.3-.3.2-.4.4-.3.4-.3.3-.3.4-.3.5-.2.3-.3.5-.3.4-.2.4-.2.6-.2h.4l.5-.2h.5l.5-.3h.5l.5-.2zl.5-.2z"/>
+ <path fill="#edb92e" d="m382.4 270 23.8 9-19.7 13c-5-1.6-9-19-4-22z"/>
+ <path fill="#21231e" d="m406 279.4-23.8-9 .4-1 23.7 9v1zm.3-1 1 .4-1 .5v-1zm-20 13.3 19.6-13.2.4.8-19.6 13.3h-.4zm.5 1h-.4zm-4.2-23.3-.4 1h.5l-.4.2-.4.3-.4.4-.2.5-.2.4-.2.7-.2.8v1.5l-.2.8v2.8l.3.8v1l.2.8.2 1 .2 1 .3.7v1l.5 1 .3.7.3.7.5.8.4.6.3.6.4.6.4.5.5.4.4.2.3.3.4.2-.3 1-.6-.3-.5-.3-.5-.3-.5-.5-.4-.6-.6-.6-.4-.7-.4-.7-.4-.7-.4-1-.3-.8-.3-1-.3-.8-.4-1-.2-.8-.2-1-.2-1v-.8l-.3-1v-5.2l.3-.8.2-.7.3-.6.3-.6.4-.5.4-.5.5-.4h.6zm-.5 0h.6-.5zm.4.4.2-.4zm-.3-.4h.6-.5z"/>
+ <path fill="#0c4076" d="M382.8 274.3c5.7-.6 10.5 2 11 5.8.3 3.8-4 7.4-9.6 8-3.6.3-6-3-6.3-6.3-.5-3.4 1-7 4.8-7.4z"/>
+ <path fill="#21231e" d="M394.2 280h-1v-.5l-.2-.3v-.3l-.2-.4-.2-.3-.2-.2-.2-.2-.2-.3-.2-.2-.3-.3-.2-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4-.2-.3-.2h-.4l-.5-.3h-.4l-.4-.2h-.8l-.5-.2h-3.6l-.2-1h3.8l.4.2h.5l.4.2.4.2h.4l.5.3.4.2h.5l.4.3.2.2.4.3.3.2.2.3.3.3.3.3.2.2.3.3.2.3.2.3v.5l.3.4v.2l.2.4v.4zm-10 8.4v-1h1l.5-.2h.4l.6-.2.5-.2h.5l.4-.3.4-.2h.4l.4-.3.3-.3.4-.2.2-.2.4-.3.3-.2.2-.3.3-.2.2-.3.3-.3.2-.3.2-.2.2-.3v-.4l.3-.3v-.8l.2-.4v-1h1v1.6l-.2.3v.3l-.2.4-.2.3-.2.4-.2.3-.2.4-.3.4-.2.3-.3.3-.3.3-.5.3-.3.3h-.4l-.4.4-.4.2-.4.3h-.4l-.4.3-.5.2h-.5l-.4.3-.5.2h-.6l-.5.2h-.7l-.5.2h-.5zm-6.8-6.7h1v.7l.2.3v.3l.2.4v.3l.2.2v.2l.2.3.2.2v.3l.3.2.2.3v.2l.2.2h.2l.2.3h.2l.2.3.2.2h.3l.2.2h.2l.2.2h.2l.3.2h1.4v1h-2.1l-.3-.2h-.4l-.3-.3-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.3-.2-.2v-.2l-.3-.3-.2-.3v-.2l-.3-.4v-.3l-.3-.3-.2-.3v-.3l-.2-.3v-.6l-.2-.3v-.3zm5.4-8v1h-.2l-.4.2h-.8l-.3.3-.3.2-.3.2-.2.2h-.2l-.2.2v.2l-.3.2v.3h-.3v.3l-.2.3-.2.2v.7l-.2.3v.4l-.2.3v2.2h-1V279l.2-.3v-.3l.2-.2v-.3l.2-.3.2-.3v-.4l.3-.3.2-.3.2-.2v-.3l.3-.2.3-.2h.2l.3-.3.4-.2.3-.2h.3l.3-.2h.7l.4-.2h.4z"/>
+ <path fill="#fff" d="M457.5 280.4c1.7 0 3.2 1.5 3.2 3.2s-1.5 3.3-3.2 3.3-3.2-1.6-3.2-3.4 1.4-3.2 3.2-3.2z"/>
+ <path fill="#21231e" d="M461.2 283.6h-1v-.6l-.2-.2v-.2l-.2-.3v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7v-1h1l.3.2.2.2h.2l.3.2v.2h.2v.2h.2v.3h.2v.2l.2.2v.2h.2v.2l.2.3v.5l.2.2v.2zm-3.7 3.8v-1h.4l.3-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.2l.2-.2v-1h1.2v.8l-.2.2v.3l-.2.2v.2l-.2.2-.2.3h-.2v.3h-.3l-.2.2-.3.2-.3.2h-.6v.2h-.6v.2h-.3zm-3.7-3.8h1v1h.2v.2l.2.2v.2l.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h1v1.2h-.7l-.2-.2h-.5v-.2h-.3l-.2-.2-.3-.2-.2-.2h-.2v-.3h-.2l-.2-.3-.2-.3v-.2l-.2-.3v-.3l-.2-.3zm3.7-3.7v1h-.9l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.3v.5h-.2v.8h-1v-1.2l.2-.2v-.3h.2v-.3l.2-.2.2-.2v-.2h.4v-.2l.2-.2h.2v-.2h.5v-.2h.4v-.2h1z"/>
+ <path fill="#fff" d="M408.7 283c1.8 0 3.2 1.6 3.2 3.4s-1.5 3.2-3.3 3.2a3 3 0 0 1-3.2-3.2c0-1.8 1.4-3.3 3.2-3.3z"/>
+ <path fill="#21231e" d="M412.4 286.4h-1v-.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4l-.2-.2h-.8v-1.2h.7v.2h.7v.2h.3v.2h.3v.2h.3l.2.2.2.3h.2l.2.3.2.3v.3h.2v.6l.2.2v.9zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.3h.2v-.5l.2-.2v-.4h1v.8l-.2.2v.3l-.2.2v.3h-.2v.3h-.2l-.2.3h-.2v.2h-.3l-.2.2h-.2v.2h-.3v.2h-.5l-.2.2h-.8zm-3.7-3.6h1v.8h.2v.5h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.5v.2h.7v1h-1.2v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.3h-.3v-.3h-.2v-.3l-.2-.2v-.2l-.2-.3v-.8zm3.7-3.8v1h-.7v.2h-.5v.2h-.2l-.2.2v.2h-.2l-.2.2v.2l-.2.2v.2h-.2v.7l-.2.3v.4h-1v-1l.2-.2v-.3l.2-.3.2-.3v-.3h.3v-.3h.2l.2-.2.2-.2h.2v-.2h.6l.3-.2h.5l.3-.2h.2z"/>
+ <path fill="#fff" d="M407 268.3c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2a3 3 0 0 1-3.2-3.2c0-1.8 1.4-3.2 3.2-3.2"/>
+ <path fill="#21231e" d="M410.7 271.5h-1v-.7l-.2-.2v-.3l-.2-.2h-.2v-.4h-.2v-.2h-.2l-.2-.2h-.2l-.2-.2h-.5v-.2h-.4v-1h.8v.2h.3l.3.2h.2l.3.2h.2v.2l.3.2.2.2.3.3.2.3v.3h.2v.4l.2.2v1zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.4h.2v-1h1v1.2l-.2.2-.2.3v.3h-.2l-.2.3h-.2v.3h-.3v.2h-.2v.2h-.2l-.2.2h-.5l-.3.2h-.7zm-3.7-3.7h1v.8l.2.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.5l.2.2h.5v1h-.9l-.3-.2h-.2l-.3-.2-.3-.2h-.2l-.2-.2-.2-.3h-.3v-.3l-.2-.3v-.3h-.2v-.4l-.2-.2v-.8zm3.7-3.7v1h-.8v.2h-.5l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.3l-.2.2v.7h-1v-1.2h.2v-.6h.2v-.3h.2v-.3h.3l.2-.2v-.2h.3v-.2h.3l.2-.2h.4v-.2h.5l.2-.2z"/>
+ <path fill="#fff" d="M457.3 266.2c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2a3 3 0 0 1-3.2-3.2c0-1.8 1.6-3.2 3.3-3.2z"/>
+ <path fill="#21231e" d="M461 269.4h-1v-.8h-.2v-.3l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2h-.2l-.2-.2h-.2l-.3-.2h-.7v-1h1.1l.2.2h.3l.3.2.3.2.2.3h.2v.2h.2v.2h.2v.3h.2v.3l.2.2v.5l.2.2zm-3.7 3.7v-1h1.2v-.2h.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.8h1v1.1l-.2.2v.2l-.2.2-.2.3-.2.3-.2.2-.2.2-.2.2h-.2v.2h-.3v.2h-.4l-.2.2h-1zm-3.7-3.6h1v.5l.2.2v.3l.2.2v.2h.2l.2.2v.2h.2v.2h.2l.3.2h.2l.2.2h.7v1h-1l-.3-.2h-.3l-.3-.2-.3-.2v-.2l-.3-.2-.2-.2v-.2h-.2v-.3h-.2v-.6l-.2-.2v-.7zv-.2zm3.7-3.7v1h-.7v.2h-.4l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2v.4h-.2v.8h-1.2v-.5l.2-.3v-.4l.2-.2v-.2h.2v-.3h.2v-.3h.2v-.2h.3v-.3l.3-.2.3-.2h.3l.2-.2z"/>
+ <path fill="#edb92e" d="M371 237.4c2.3-.8 6 4.6 7 4.5 1.2-3-1.2-10.5-5.5-16.3-3-1-3.2-3-3.8-7.3-.2-1.3-2.7-.4-2.7 2 0 2.3-.3 3.6.3 5.6q.4 1.2-.8 2.3c4.5 1.8 5.6 4 5.4 9z"/>
+ <path fill="#21231e" d="m377.6 241.8 1 .3-.5.4h-.4l-.3-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.2-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.3-.2-.2-.3h-.3l-.3-.3h-.2l-.3-.3-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-.4l-.4-1h1.3l.3.2h.3l.3.2.2.2h.3l.3.3.2.2h.3l.3.3.3.3v.2l.4.2.2.3.3.2v.2l.4.3.2.2.2.2.2.2.2.2.2.2h.2v.2h.3v.2zm1 .3-.2.4h-.3l.5-.3zm-6.3-15.8.4-1 .2.2.3.5.4.5.4.6.4.7.4.5.3.6.5.6.3.6.3.6.4.6.3.6.2.6.2.6.2.5.2.6.2.7.2.5v.6l.3.5v.6l.2.4v.5l.2.4v3.3l-.2.3-1-.2v-.3l.2-.3v-3.6l-.3-.5v-.4l-.2-.5-.2-.5-.2-.5v-.5l-.4-.6-.2-.7-.2-.5-.3-.6-.2-.6-.3-.5-.3-.5-.4-.6-.3-.7-.4-.5-.4-.6-.4-.6-.3-.5-.5-.5-.4-.5.3.2zm.4-1 .2.2-.3-.2zm-4.5-6.7h1v.7l.2.3v1l.2.3v.5l.2.3v.5l.2.2v.4h.2v.3l.2.2v.2h.2v.3h.2l.2.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.2l.3.2-.4 1h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2l-.3-.2-.2-.2-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2v-.3l-.2-.2v-.9l-.2-.3v-.6l-.2-.3V219l-.2-.5zm-1.7 1.8h-1v-1l.2-.2.2-.2v-.4h.2l.2-.3h.2l.2-.2.3-.2h.2l.2-.2h1.2v.2h.2v.3l.2.2v.2h-1.6v.2h-.2v.2h-.2v.2h-.2v.3l-.2.2v.8zm.3 5.6-1 .2v-.6l-.2-.2V224h-.2v-3.6h1v4.2l.2.2v.7l.2.2zm-1 2-.5.8v-1l.2-.2v-.2h.2v-.4h.2v-.4l-.2-.2v-.2l1-.3v1.8h-.2v.4h-.2v.2h-.2v.2l-.2.2h-.2zm-.5.8-.8-.3.7-.6v.8zm5 8.6h1zv-.5l.2-.5v-2l-.2-.3v-.7l-.2-.3v-.6l-.2-.3v-.2l-.2-.3-.2-.3v-.2l-.3-.3v-.2l-.3-.2-.2-.2-.3-.2-.2-.2-.3-.2h-.3l-.3-.3-.2-.2-.3-.2-.4-.2h-.3l-.4-.2.4-1 .4.2.5.2.4.2.3.2.3.2.4.2.3.2.3.2.3.2v.2l.4.3.2.3.3.3v.2l.3.3v.4l.3.3v.3l.3.3v.7l.2.3v.7l.2.4v2.9h-1zm1 0h-1l.5-.5.6.4zm-1 0v-.4h.5l-.4.4z"/>
+ <path fill="#edb92e" d="M368.8 218.5c-.4 1-.6 1.8-.7 3.4q0 1.5 1.2 3 1.2 1.6 3 2.6 1.2.9 2.3 3 1.1 2.3 1.2 4c0 3.5.8 6.7 2.4 7.3 1.2.3 1.6.2 2.4 0-.2-.6 0-1.5-.7-2.4a8 8 0 0 1-1.4-3.7c0-1-.5-1.6-.2-3.3.4-1.2 1-1.6 1-2.7-.3-2-2-6-4.3-6s-3.4-.3-4.6-3.4c-.3-1-1-1.6-1.2-2z"/>
+ <path fill="#21231e" d="m368.6 222-1-.2v-1.2l.2-.2v-1h.2v-.7h.2v-.4l1 .3v.4h-.2v1l-.2.2v1.5zm1 2.8-.8.6v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.5l-.2-.2v-.7l-.2-.2v-.7h1v1.1h.2v.7h.2v.4h.2v.4h.2v.2zv.2zm3 2.4-.6 1v-.2h-.4v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.3v-.2h-.2l-.2-.2v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2.8-.6.2.2.2.2v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.3l.2.2.2.2h.2v.2zm2.4 3.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l-.2-.2h-.2l.5-1h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.3h.2v.3h.2zm1.2 4.2h-1v-.8l-.2-.2v-.8h-.2v-.5h-.2v-.4h-.2v-.5h-.2v-.2l-.2-.2 1-.4v.4h.2v.4h.2v.5l.2.2v.3h.2v.6h.2v1h.2zm2 6.8-.3 1h-.3l-.2-.2-.3-.3v-.2l-.3-.2h-.2l-.2-.3v-.2h-.2v-.3l-.2-.2v-.3l-.2-.2v-.3l-.2-.2v-.5l-.2-.3v-.8l-.2-.3V236l-.2-.3v-1.5h1v2.1l.2.3v1.4l.2.2v.8l.2.2v.2l.2.2v.4l.2.2v.2l.2.2.2.2v.2h.2v.2h.2l.2.2zm1.7.8 1-.3-.5.5h-.4v.2h-1.4l-.2-.2h-.4l.3-1h.7v.2h1.2v-.2zm1-.3v.4h-.5l.4-.5zm-1.7-2 .8-.7h.2v.4h.2v.4h.2v.8l.2.2v1l-1 .4V241l-.2-.2v-.8h-.2v-.2zm-1.5-4h1v.8h.2v.8l.2.2v.2l.2.2v.2h.2v.5h.2v.2h.2v.2l-.7.7v-.2l-.2-.2v-.4h-.2v-.5h-.2v-.2l-.2-.3v-.2l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-.5zm-.2-3.4 1 .2v3l.2.2-1 .2v-.8l-.2-.2zm1-2.5h1v.7h-.2v.6l-.2.2v.2l-.2.2v.2h-.2v.6h-.2v.2l-1-.2v-.4h.2v-.4l.2-.2v-.2l.2-.2v-.2l.2-.2v-.9zm-4-5.5v-1h1.1l.3.2h.2l.2.2h.3l.2.2.2.2v.2l.3.2v.2l.3.2.2.3v.2l.3.3.2.2.2.3v.2l.2.3v.2l.2.3v.3l.2.2v.3l.2.2v.5l.2.3v.8h-1v-1l-.2-.2v-.4l-.2-.3-.2-.4v-.2l-.2-.2v-.3l-.3-.3v-.2l-.2-.2v-.3l-.2-.2-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2h-.8zm-5-3.7 1-.4v.3l.2.3v.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2h.2v.2h.2v.2h.4v.2h.7v.2h1.7v1H373l-.3-.2h-.4v-.2h-.3v-.2h-.3v-.3h-.3v-.2l-.2-.2-.2-.3-.2-.2v-.2l-.2-.2-.2-.4-.2-.2v-.3l-.2-.2zm-.4-2-1-.5h1.2v.4h.2v.2h.2v.2h.2v.4h.2v.2l.2.2v.2l.2.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2zm-1-.5.5-1 .5 1zm.6.2.4.2zm-.5-.2.4-1 .5 1z"/>
+ <path fill="#edb92e" d="m360 227 2-1a6 6 0 0 1 4-.2c5.5 1.7 8 11.6 1.8 14q-1.8.2-3.4-3.3a21 21 0 0 0-4-6.8c-1-1-1-2-.4-2.6z"/>
+ <path fill="#21231e" d="m362 225.5.3 1h-.4v.2h-.4v.2h-.8v.2h-.2l-.2.2-.7-.7.2-.2v-.2h.4v-.2h.8v-.2h.4v-.2h.4zm4-.2-.2 1h-.5v-.2h-2.1v.2h-.7l-.2.2-.5-1h.4l.3-.2h.8v-.2h1.6l.2.2h.4zm2 15-.2-1h-.2l.5-.2h.6l.4-.4.4-.3.3-.4.3-.5.2-.4.2-.3.2-.5v-.5l.2-.5V232l-.3-.4-.2-.5-.2-.5v-.5l-.4-.4-.2-.5-.4-.3-.3-.5-.4-.3-.3-.5-.4-.3-.5-.3-.3-.4-.5-.2h-.4l.2-1h.6l.5.3.7.3.4.4.6.3.5.4.5.6.3.4.4.5.3.5.3.6.3.5.3.7.2.6v.6l.3.5v3.4l-.2.5-.2.6-.3.6-.2.5-.3.5-.4.5-.4.4-.4.3-.6.3-.6.3zm-4-3.6 1-.4v.4l.2.2.2.3.2.3v.2h.2v.5h.2v.2l.2.2.2.2h.2v.2h.2l.2.2h.8v1.2h-.8v-.2h-.5l-.2-.2-.2-.2-.2-.2-.2-.2v-.2h-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.3-.3-.3zm-4-6.6.7-.6.2.2v.2h.2l.2.3v.3h.2l.2.3v.2l.2.2h.2v.3l.3.2v.2l.2.2.2.2v.4l.2.2.2.3v.3l.2.2.2.3v.3l.2.3v.3l.3.3.2.4v.3l.3.3v.3l-1 .4v-.6l-.2-.2v-.3l-.3-.2v-.3l-.2-.2v-.5l-.3-.3v-.2l-.2-.2v-.3l-.3-.2-.2-.3v-.2l-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2-.3-.3v-.2l-.2-.2h-.2v-.2l-.2-.2zm0-3.4v1l.3-.2v.2h-.2v.8h.2v.4l.2.2.2.2v.2l-.7.7h-.2v-.2l-.2-.2-.2-.2v-.3h-.2V227h.2v-.2h.2zm-.4 0h.4zm.4 1v-1l.3 1zm.3 0h-.2.3z"/>
+ <path fill="#edb92e" d="M362.8 227.7c5.4-2 9.4 8.3 4.3 10.2-2.6 1-2.8-2.4-3.4-4.3-.7-2.5-6-4-.8-6z"/>
+ <path fill="#21231e" d="m367.3 238.4-.4-1h.3l.3-.3.3-.2.2-.3.2-.3.2-.3v-.5l.2-.4v-2.7l-.2-.4-.2-.5-.2-.4-.2-.4-.3-.4-.3-.4-.2-.3-.4-.4-.3-.2-.3-.2-.4-.2-.4-.2h-.4l-.3-.2h-1.3l-.4.2-.4-1h.6l.5-.2h1.6l.5.3.5.2.4.2.4.4.5.4.4.4.3.4.3.5.2.4.3.6.3.5.2.6.2.6v.5l.2.5v1.6l-.2.5v.5l-.3.5-.2.4-.3.5-.4.3-.4.4-.4.2-.5.2zM363 234l1-.4.2.2v.6l.2.2v.8l.2.2v.4l.2.2v.2l.2.3.2.3v.2h.2v.2h.2l.2.2h1.2l.3.8h-.3l-.3.2h-1.2l-.2-.2h-.2v-.2l-.3-.2-.3-.3v-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.4h-.2v-.8l-.2-.2v-.8l-.2-.2v-.2zm-.4-6.7.4 1h-.5l-.3.3h-.4l-.2.3h-.2l-.2.2v.2h-.2v.4h.2v.3l.2.2v.2h.3v.3l.3.2h.2l.2.2.2.2.2.2.2.2.2.3.2.3.2.2v.3l.3.2v.6l-1 .3v-.7l-.2-.2h-.2v-.3l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.2h-.2v-.3l-.3-.3v-.2l-.2-.2v-.8l.2-.3v-.3l.3-.2.2-.2.3-.3.3-.2h.4l.4-.3.6-.2z"/>
+ <path fill="#0c4076" d="M363.4 229.3c2.6-1 6.2 5 3 6.5-2.3 1-4-.3-4.8-2-.7-2 0-3.8 1.7-4.5z"/>
+ <path fill="#21231e" d="m366.5 236.3-.4-1h.3l.2-.2h.2v-.2l.2-.2v-2l-.2-.3v-.3h-.2v-.4l-.3-.3-.2-.2-.3-.4-.2-.2-.2-.2h-.2v-.2l-.3-.2h-1.1l-.3-1h1.5l.4.3.3.2.2.3.2.2.3.2.2.2.2.3v.3l.3.3.2.4.2.3v.4l.2.4v2.6l-.2.3-.2.4-.2.3-.2.2h-.4l-.3.3zm-5.4-2.5 1-.3.2.3.2.3v.2l.2.3.2.2.2.2h.3v.2h.2l.3.2h.4v.2h1.3l.3-.2.5 1h-.7l-.2.2h-1.9l-.2-.2h-.2v-.2h-.3l-.2-.2-.3-.2-.3-.3-.3-.3h-.2v-.3l-.2-.3-.2-.3v-.2zv-.2zm2.2-5 .3 1h-.3l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.7l-.2.2v1.1l.2.2v.3l-1 .3v-.7l-.2-.3v-1.5l.2-.2v-.3l.2-.2.2-.3.2-.3v-.2l.3-.2v-.2h.3l.2-.2.3-.2h.2zm.2.5-.2-.5z"/>
+ <path fill="#fff" d="M400 179.7c3.6 0 6.4 2.8 6.4 6.4s-2.8 6.5-6.3 6.5-6.3-3-6.3-6.4 3-6.3 6.4-6.3z"/>
+ <path fill="#21231e" d="M407 186h-1c0-2-1.4-4.3-3.3-5.2a6 6 0 0 0-2.6-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1a6 6 0 0 0 5.3-3.3 6 6 0 0 0 .6-2.6h1c0 2.4-1.3 4.7-3.3 6a7 7 0 0 1-3.6 1zm-6.8-7h1a6 6 0 0 0 3.3 5.4 6 6 0 0 0 2.6.6v1a7 7 0 0 1-5.7-3.3 7 7 0 0 1-1-3.6zm7-7v1.2a6 6 0 0 0-5.3 3.2 6 6 0 0 0-.8 2.7h-1a7 7 0 0 1 3.3-5.8 7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M395.4 169c3.5 0 6.4 3 6.4 6.4 0 3.6-3 6.4-6.4 6.4s-6.3-2.8-6.3-6.4c0-3.5 3-6.4 6.4-6.4z"/>
+ <path fill="#21231e" d="M402.3 175.4h-1c0-2.2-1.3-4.3-3.2-5.3a6 6 0 0 0-2.6-.5v-1q3.8.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1c2.3 0 4.4-1.4 5.4-3.3a6 6 0 0 0 .6-2.6h1c0 2.4-1.2 4.7-3.2 6a7 7 0 0 1-3.6 1zm-6.7-7h1a6 6 0 0 0 3.2 5.3q1.2.6 2.6.6v1a7 7 0 0 1-5.8-3.2 7 7 0 0 1-1-3.6zm6.8-7v1c-2 0-4.2 1.4-5.2 3.3a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-6a7 7 0 0 1 3.6-1"/>
+ <path fill="#fff" d="M410.7 131.5c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 0 1 6.2-6z"/>
+ <path fill="#21231e" d="M417.3 137.7h-1c0-2.2-1.2-4.2-3-5a6 6 0 0 0-2.6-.7v-1a7 7 0 0 1 5.6 3 7 7 0 0 1 1 3.7m-6.6 6.6v-1c2 0 4-1.2 5-3q.6-1.5.6-2.6h1c0 2.2-1.2 4.5-3 5.6a7 7 0 0 1-3.6 1m-6.7-6.7h1c0 2.2 1.3 4.2 3.2 5a6 6 0 0 0 2.5.7v1a7 7 0 0 1-5.6-3 7 7 0 0 1-1-3.6zm6.7-6.6v1c-2 0-4 1.2-5 3a6 6 0 0 0-.7 2.6h-1a7 7 0 0 1 3-5.6 7 7 0 0 1 3.7-1"/>
+ <path fill="#fff" d="M400.4 136.2c3.5 0 6.3 3 6.3 6.4s-2.8 6.4-6.3 6.4-6.4-3-6.4-6.4 2.8-6.4 6.4-6.4"/>
+ <path fill="#21231e" d="M407.2 142.6h-1a6 6 0 0 0-3.3-5.3 6 6 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.6zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.3a6 6 0 0 0 .6-2.7h1c0 2.3-1.2 4.7-3.2 6a7 7 0 0 1-3.6 1m-7-7h1c0 2.2 1.4 4.3 3.3 5.3a6 6 0 0 0 2.7.5v1a7 7 0 0 1-6-3.2 7 7 0 0 1-1-3.7zm7-7v1a6 6 0 0 0-5.3 3.3 6 6 0 0 0-.5 2.6h-1c0-2.4 1.2-4.7 3.2-6a7 7 0 0 1 3.7-1z"/>
+ <path fill="#fff" d="M392.8 145.3c3.5 0 6.3 2.8 6.3 6.4 0 3.5-2.7 6.4-6.2 6.4s-6.4-2.8-6.4-6.3c0-3.6 3-6.4 6.4-6.4z"/>
+ <path fill="#21231e" d="M399.6 151.7h-1a6 6 0 0 0-3.2-5.3 6 6 0 0 0-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 0 1 1 3.7m-6.8 7v-1c2 0 4.2-1.4 5.2-3.4a6 6 0 0 0 .6-2.6h1c0 2.3-1.2 4.6-3.2 6a7 7 0 0 1-3.6 1m-7-7h1c0 2 1.4 4.3 3.3 5.2a6 6 0 0 0 2.8.6v1a7 7 0 0 1-6-3.3 7 7 0 0 1-1-3.6zm7-7v1a6 6 0 0 0-5.3 3.3 6 6 0 0 0-.6 2.7h-1c0-2.4 1-4.7 3.2-6a7 7 0 0 1 3.6-1z"/>
+ <path fill="#fff" d="M391.5 156.7c3.6 0 6.4 2.8 6.4 6.4s-3 6.5-6.5 6.5-6.3-3-6.3-6.4 2.8-6.3 6.3-6.3z"/>
+ <path fill="#21231e" d="M398.4 163h-1c0-2-1.3-4.2-3.2-5.2a6 6 0 0 0-2.7-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 0 1 1 3.7zm-7 7v-1a6 6 0 0 0 5.4-3.3 6 6 0 0 0 .6-2.6h1c0 2.5-1.3 5-3.4 6a7 7 0 0 1-3.5 1zm-6.7-7h1c0 2.3 1.3 4.4 3.2 5.4q1.1.6 2.5.6v1a7 7 0 0 1-5.8-3.2 7 7 0 0 1-1-3.7zm6.8-6.8v1c-2 0-4.2 1.3-5.2 3.2a6 6 0 0 0-.6 2.7h-1c0-2.3 1.2-4.6 3.2-5.8a7 7 0 0 1 3.5-1z"/>
+ <path fill="#edb92e" d="M474.4 198q-4-7.5-8.6-9.6 6.4-19.8 2.7-51-.4-4.8-2.2-4.6-1.6-.1-1.8 5.2c.8 11.6 1.7 21.6 1.2 30.2-.5 7.6-2.3 14-4.2 21.2-.3 1 .4 1.7 3.8 3.7q4 2.4 4.7 5h1.5q3.8 1 3 0z"/>
+ <path fill="#21231e" d="m465.3 188.2 1 .3-.3-.6h.3l.3.2.3.2.2.2h.3l.3.3h.3l.4.4.2.2.3.2.2.3.3.3.3.3.3.3.3.2.3.3.3.3.2.3.2.5.3.3.3.4.2.3.3.4.3.3.2.4.3.4.3.5.2.5.3.4.3.4.3.5.3.5-1 .5-.3-.5-.2-.4-.3-.5-.2-.5-.3-.4-.3-.3-.2-.4-.3-.4-.3-.5-.3-.4-.2-.2-.3-.4-.4-.3-.2-.2-.3-.3v-.3l-.4-.3-.3-.4-.2-.3-.2-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.3-.2h-.3l-.3-.3-.4-.2-.3-.6zm.3.6h-.4v-.6zm2.4-51.5h1l.2 2 .2 1.8.2 2 .2 2v1.8l.2 1.8v1.8l.2 1.8v15l-.3 1.5-.2 1.5v1.5l-.3 1.5-.2 1.5-.2 1.4-.2 1.5-.2 1.3-.3 1.4-.3 1.3-.3 1.4-.3 1.3-.4 1.3-.3 1.3-.4 1.2-1-.3.4-1.2.4-1.3.4-1.3.3-1.3.3-1.2.3-1.3.3-1.4.2-1.3.3-1.4.3-1.5.2-1.4V172l.3-1.6V169l.2-1.7v-1.6l.2-1.6v-13.6l-.2-1.8v-2l-.2-1.7-.2-2-.2-1.8-.2-2-.2-2zm-1.7-4v-1h.6v.2h.3v.2h.2l.2.3h.2v.5h.2v.3l.2.2v.3l.2.2v.4l.2.4v.9l.2.3v.4h-1v-.9l-.2-.2v-.6l-.2-.2v-.5h-.2v-.5h-.2v-.2l-.2-.2h-.2v-.2h-.4zM465 138h-1v-1.7l.2-.3v-1l.2-.3v-.7h.2v-.3l.2-.3v-.3h.2l.2-.2.3-.2.2-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v1.6l-.2.4v.7zm1.2 30.2h-1V154l-.2-1v-2.8l-.2-1v-2l-.2-1v-1l-.2-1v-2l-.2-1V139l-.2-1 1-.2v1l.2 1.2v2l.2 1v2.2l.2 1v2l.2 1v2l.2 1v2.8l.2 1v12zm-4.3 21.3-1-.3.2-.6v-.7l.3-.8.2-.6.2-.7v-.7l.2-.7.2-.6.2-.7v-.6l.3-.6v-.6l.2-.6.2-.7v-.5l.2-.6.2-.8v-.6l.2-.7.2-.7v-.7l.2-.6v-.7l.2-.6v-.7l.2-.7v-.7l.2-.6V169l.2-.8h1v1.5l-.2.7v1.5l-.2.6v.7l-.2.8v.7l-.2.6v.8l-.2.7-.2.6v.8l-.2.6-.2.7v.7l-.3.7v.6l-.3.7v.6l-.3.6-.2.6v.6l-.3.7-.2.5-.2.7v.6l-.3.7-.2.7-.2.6v.7zm3.6 3-.5 1-.2-.2h-.3l-.3-.3-.3-.2h-.4l-.2-.3h-.2l-.3-.3h-.3v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2v-.2h-.2l-.2-.2v-.2l-.2-.2v-1l1 .2v.5h.2v.2l.2.2h.2v.2h.2l.2.2.3.3h.2l.2.2.2.2h.2l.2.3h.3l.3.3.3.2h.3zm4.2 5.2.4 1-.7-.4v-.2l-.2-.2v-.3l-.2-.2v-.3l-.2-.3-.3-.3-.2-.3-.3-.2-.3-.3v-.2h-.3v-.2h-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.2l.6-1 .2.2h.2l.3.3.2.2.2.2h.2v.3h.4l.2.3.3.3.3.3.2.2.3.3v.3l.3.2h.2v.3l.3.2v.2h.2v.3l.2.2v.2l.2.3v.3l.2.2v.2l-.6-.3zm.4 1h-.5l-.2-.4zm1.4-1.2-.3 1h-1l-.4-.8h.2l.2-.2zm3.3.5h-1l.7-.4.2.2v.8l-.2.2h-.2v.2h-1.8l-.2-.2h-.3l-.2-.2h-.5l.3-1h.7l.2.2h1v.2h.7v.4zm-1 0v-1l.7.6-.8.4zm0 0h1l-1 .3z"/>
+ <path fill="#edb92e" d="M458.4 214.6c1.6-1 2-.8 2.4-1.4q.8-1.4.4-3.5c-.8-5.3 2.4-4.6 6-2.2 1.7 1 3.5 4 5 5.3s2.8 1.5 3.2 2v9.2c-.4.6-1.7.7-3.2 2-1.5 1.5-3.3 4.2-5 5.4-3.6 2.3-6.8 3-6-2.2q.4-2.1-.4-3.5c-.5-.7-.8-.4-2.4-1.4a7 7 0 0 1-2.3-2.2c-.4-.8 0-1.7 0-2.6s-.4-1.8 0-2.6q.9-1.2 2.4-2.2z"/>
+ <path fill="#21231e" d="m460.4 213 .8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2 1-.2v2.9l-.2.3v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2v-2.6zm6.7-2.8-.6 1-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.2h-.3l-.3-.2h-.3v-.2h-.4l-.2-.2h-1.1v.2h-.2v.2l-.2.2v.6l-.2.3v2l-1 .2v-3l.2-.4v-.3l.3-.2.3-.2.2-.2h.2l.2-.2h.2l.2-.2h1.5v.2h.5l.3.2h.3l.4.3h.3l.3.2.4.2.3.2.3.2zm5 5.4-.6.7-.3-.2-.3-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2v-.2h-.2v-.3l-.3-.2-.3-.3-.2-.2v-.2l-.3-.2v-.2h-.3l-.2-.3-.3-.2-.2-.2h-.2l-.2-.2v-.2h-.3v-.2h-.2l.6-1 .2.2.3.2v.2h.3v.3h.3l.2.2.2.2v.2l.3.2h.2v.3l.3.3.2.2v.2l.3.2.3.3h.2v.3l.3.2.2.2.2.2.3.3v.2h.3v.3h.3v.3h.2zm3.5 2.4h-1.2v.3h-.2l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2v-.2h-.3v-.2h-.3v-.2l-.3-.2-.3-.2-.2-.3.7-.6h.2v.2h.2v.2h.2v.2h.2v.2h.3l.2.2.2.2h.2l.2.2h.2l.2.2h.2v.2h.4v.2l.2.2v.2zm-.2-.2v.2zm0 4.8h-1v-4.5l1-.2v4.5zm-1 0h1zm1 5-1-.7v.3-4.4h1zm0-.4v.2zm-3.3 2.5-.7-.8h.2v-.2l.3-.2.3-.2h.3v-.2h.3v-.2h.2l.2-.2h.2v-.2h.4v-.2h.4v-.2l1 .5-.2.2-.2.2h-.2v.2h-.4l-.2.2h-.2v.2h-.4v.2h-.3v.2h-.2l-.2.2-.2.2v.2h-.3zm-5 5.3-.7-.8h.2v-.2l.3-.2.3-.2.2-.2.3-.3.2-.2.2-.2.2-.2v-.2h.3v-.3l.2-.3.2-.2v-.2l.3-.2.3-.2v-.2l.3-.2.2-.2v-.2h.3v-.3l.3-.2.2-.2h.2v-.3h.3v-.3l.8.8-.2.2-.2.2-.2.2v.2h-.3v.3l-.3.2-.3.2-.2.2-.2.2-.2.2v.2l-.3.2v.2l-.2.2h-.2v.3h-.3l-.2.3v.2h-.2l-.2.3-.2.2-.3.3-.3.3-.3.2zm-6.8-2.7 1 .3v2.6l.2.2v.2h.2v.2h1.7v-.2h.4l.3-.2h.3l.3-.3.3-.3h.3l.2-.3.3-.2.3-.2.6.8-.4.2-.3.3-.3.2h-.4l-.3.3-.3.2h-.3l-.2.3h-.4l-.3.2h-.4l-.3.2h-.9l-.3-.2h-.3l-.2-.3-.2-.2-.2-.2v-.3l-.2-.2v-.7l-.2-.3zm-.3-3 .8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.5h-.2v-.4h-.2zm-2.3-1.3.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2v.2h.2l.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2zm.7-.8.5.2zm-3-1.7.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.1zm.3-2.8.8.6v.4l-.2.2v1.8h-1V217h.2v-.4zm2.4-2.4.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm.7 1 .5-.3z"/>
+ <path fill="#21231e" d="M475.5 220.2v1q-5.8.7-9.7 4.3c1.8-2.7 5.7-4.7 9.7-5.3m0-1.6v-.8q-5.8-.8-9.7-4.4c1.8 2.7 5.7 4.6 9.7 5.2"/>
+ <path fill="#edb92e" d="M461.2 207.3q1.6.6 3.4 2c1.6 1.5.6 4-1.5 6.6q-1 1.2-1 3.5.1 2.1 1 3.5c2.2 2.5 3.2 5 1.6 6.6q-1.6 1.4-3.4 2v-2.4q.4-2.1-.4-3.5c-.5-.7-.8-.4-2.4-1.4a7 7 0 0 1-2.3-2.2c-.4-.8 0-1.7 0-2.6s-.4-1.8 0-2.6q.9-1.2 2.4-2.2c1.6-1 2-.8 2.4-1.4q.8-1.4.4-3.5v-2.4z"/>
+ <path fill="#21231e" d="m465 209-.8.6-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.4v-.2h-.5v-.2h-.2l-.2-.2h-.2l-.2-.2h-.2l.4-1h.2l.2.2h.2l.2.2h.3l.2.2h.2v.2h.3l.2.2h.2v.2h.3v.2h.2l.2.2.2.2.2.2zm-1.5 7.2-.8-.6.2-.3v-.2h.2l.2-.3.2-.3v-.2l.3-.2v-.5l.2-.2v-.2h.2v-.3l.2-.2v-.4h.2v-1.6l-.2-.3-.2-.2-.2-.2.7-.7.3.3v.2l.2.2v.2h.2v.5l.2.2v1l-.2.2v.4l-.2.2v.5l-.2.3v.3l-.3.2v.5l-.3.2v.3l-.3.2-.2.3v.2l-.3.2-.3.3-.2.2zm-1 3.3h-1v-.7l.2-.2v-1.2h.2v-1h.2v-.4l.2-.2v-.2h.2v-.2l1 .6h-.2v.4h-.2v.2l-.2.2v.9h-.2v1.4h-.2v.5zm1 3.2-.8.6v-.2h-.2v-.2h-.2v-.4h-.2v-1.1l-.2-.3V220h-.2v-.5h1v1.1l.2.2v.4l.2.2v.4l.2.2v.2h.2v.2zm1.5 7.3-.8-.8h.2v-.2h.2v-.3l.2-.2v-1.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2-.3-.3v-.3l-.3-.2-.2-.2v-.2l-.3-.3-.3-.2.8-.6.2.2h.2v.4l.2.2.2.3h.2v.3l.3.3v.5l.3.3v.3l.2.2v.5l.2.2v.5l.2.2v.7l-.2.4v.4l-.2.2v.2l-.2.2v.2l-.3.2v.2zm-4.3 1.7 1-.2-.7-.4h.7v-.2h.4l.2-.2h.2l.2-.2h.2v-.2h.4v-.2h.2l.2-.2.2-.2h.2v-.2h.2v-.2l.8.8h-.2v.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.4v.2h-.4v.2h-.5v.2h-.2l-.2.2h-.2l-.7-.3zm.7.4-.6.3v-.6l.6.4zm-.7-3 1 .3v2l-1 .3v-2.4zm-.3-3 .8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.4h-.2v-.4h-.2zm-2.3-1.3.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2l.2.2.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2zm0 0-.3-.2zm-2.3-2.4.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm0 0 .3.5zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.2zm.3-2.8.8.6v.4l-.2.2v1.8h-1V217h.2v-.4zm2.4-2.4.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2h.2zm2.4-1 .8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2 1-.2v2.9l-.2.2v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2zm.5-2v-1l.5.6v2.1l-1 .2V207l.5.6zm0-1h.6v.6zm0 0v1h-.2zM361 226.3l.7-.3q-2.4-3.2-1.3-6.3c-1.3 1.6-1 4.2.6 6.6"/>
+ <path fill="#edb92e" d="M410.7 200c1.4 1.6 1.2 2 2 2.5q1.4.8 3.3 0c5-2 5 2 3.5 6.4-.7 2-2.8 4.3-3.7 6.2-1 1.7-.7 3-1 3.5l-4 .6-4 .5c-.6-.3-1-1.6-2.6-3s-4.4-3-6-4.6c-3-3.5-4.6-6.8.2-6.7q2 .1 3-1c.4-.7 0-1 .4-3q.5-1.9 1.4-3c.6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2q1.6.6 2.7 2.3z"/>
+ <path fill="#21231e" d="m413 202-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.3-.3.8-.6.3.2.2.3v.2h.2v.4h.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm2.9 0 .2 1h-.5l-.2.2h-.8v.2h-1.2l-.3-.2h-.2l-.2-.2h-.2l.5-1v.2h.8v.2h1l.2-.2h.4l.2-.2zm4 7-1-.3v-.4l.2-.4v-.5l.2-.4v-.3l.2-.3v-.7l.2-.4v-1.7l-.2-.2v-.4h-.2l-.2-.3h-.2l-.3-.2H417l-.4.3h-.4l-.3-.8.3-.2h.5l.4-.2h1.8l.3.2h.3l.2.3.2.4v.2l.3.3.2.4v3.3l-.2.4v.4l-.2.4v.4l-.2.4v.4zm-3.7 6.4-1-.5v-.2l.2-.2.2-.2v-.2l.2-.2v-.4l.2-.2.2-.2v-.2l.2-.2.2-.2.2-.3.2-.2.2-.3.2-.2v-.2l.2-.2h.2v-.3l.2-.2v-.2l.2-.2.2-.3v-.2l.2-.2v-.2l.2-.3 1 .3v.2l-.2.3v.2l-.2.2-.2.3v.2l-.2.2v.3l-.3.2-.2.2v.2l-.2.2-.2.2v.2l-.2.2-.2.2v.2l-.3.2v.2l-.2.2-.2.2v.2l-.2.2v.4h-.3v.3l-.2.2-.2.2v.2zm-1.5 3.8-.2-1-.3.2v-.4h.2v-1l.2-.2v-.4l.2-.3v-.4l.2-.3v-.2h.2l1 .4-.2.2-.2.3v.3h-.2v.7h-.2v.9l-.2.2v.4l-.2.2v.2zm.3 0h-.2.3zm-4.3.6v-1h1.1v-.2h1.2v-.2h1.1l.3-.2.2 1h-.4l-.3.2h-.9l-.2.2h-1.3v.2h-.7zm0 0v-1 .5-.5zv-.5zm-4 .5.4-1h-.2 1.3l.3-.2h1.9l.2-.2.2 1h-.8v.2h-1.4v.2h-2zm.2 0h-.3.2zm-3-3 .5-1 .2.3.3.3h.2l.2.3.2.2.2.3.2.2v.2h.2v.2h.2v.2l.2.2v.2h.2v.2h.2v.2l-.4 1v-.2h-.2l-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.3v-.2h-.2v-.2h-.3v-.3zm-6-4.8.7-.6.2.2.3.3.3.3h.2v.3l.3.2h.3l.2.3h.2l.2.3.3.3.2.2.2.2h.2v.2l.3.2h.2l.2.3.2.2.3.3h.2l.2.3.3.2.2.2h.2v.2l-.5.8h-.3v-.2l-.3-.2h-.2v-.2l-.3-.2h-.3l-.2-.2-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.3h-.2v-.2h-.3l-.2-.2-.2-.2h-.2v-.3h-.3l-.2-.3-.2-.2h-.2v-.3h-.3v-.3l-.3-.2h-.2v-.3l-.3-.2zm.4-7.5v1H397l-.2.2h-.4l-.2.2v.2h-.2v1.5l.2.3v.3l.2.2.2.3.2.4.2.3.2.3.2.3.2.3.3.3v.2l.4.3.3.4-.8.5-.4-.3-.3-.3-.2-.4-.2-.4-.2-.3-.3-.4-.2-.3v-.4l-.3-.4v-.3l-.3-.3v-.3l-.3-.3V206l.2-.2.2-.2.2-.2.3-.2h.2l.3-.2h.7l.4-.2h.8zm2.5-.8.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.5l-.2.2h-1.1v-1h1.4l.2-.2h.2l.2-.2h.2v-.2zv-.2zm.4-2.8 1 .2v.4h-.2v2h-.2v.4l-.2.2-1-.4h.2v-1.4l.2-.3v-.8zm1.4-3.2.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.4l-.2.2v.4l-1-.2v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4zm.8.6.5-.7zm1.8-1.5.2 1H404v.2h-.4v.2h-.2l-.8-.5.2-.2.2-.2h.2v-.2h.4l.2-.2zm.2 1h-.7.6zm2.7-1.2-.5 1H406l-.2.2h-.4l-.2-1h.8l.2-.2h2.1zm3 3h-1v.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2l.3.3zm-.2-.4h.2v.3-.4zm-.8.3h1l-1 .2v-.3zm0 .2v-.3.2z"/>
+ <path fill="#21231e" d="M410 219.4h-.7q-2.1-5.7-6.3-9.5c2.8 1.4 5.5 5.3 7 9.4zm1.4-.2.8-.2q-.8-5.9 1.5-11c-2 2.5-2.8 7-2.3 11.2"/>
+ <path fill="#edb92e" d="M418.3 202q-.2 2.2-1 4.3c-1 2-3.8 1.3-6.6-.7q-1.4-.9-3.4-.6t-3 1.7c-1.5 2.6-3.4 4-5.2 2.6q-1.6-1.6-2.7-3.5.8-.3 2-.3 2.1.1 3-1c.5-.7 0-1 .6-3q.2-1.9 1.2-3c.6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2q1.6.6 2.7 2.3c1.4 1.6 1.2 2 2 2.5q1.6.8 3.3 0 1.4-.6 2.3-.5z"/>
+ <path fill="#21231e" d="m417.7 206.5-1-.4.2-.2v-.5l.2-.2v-.4l.2-.2v-.9l.2-.2v-1.2h.2v-.4h1v1.1l-.2.3v1h-.2v.7h-.2v.7h-.2v.3l-.2.3zm-7.2-.5.5-.8.3.2h.2l.3.3h.2l.3.3h.2l.3.2.2.2h.2l.3.2h.4v.2h.7l.2.2h1v-.2h.2l.2-.2.2-.3.2-.2 1 .5-.2.2-.2.3-.3.3v.2h-.2l-.2.2h-.2l-.3.2h-2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.2l-.3-.2-.2-.2h-.2l-.3-.3-.2-.2h-.3l-.3-.3-.2-.2zm-3-.4-.3-1h1.1v-.2h1.3v.2h.6v.2h.4v.2h.2l.2.2-.5.8h-.2v-.2h-.4v-.2zm-2.7 1.3-.8-.6v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.2l.2-.2h.3v-.2h.8l.2-.2h.5l.2 1h-.7v.2h-.4v.2h-.4l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2zm-6 2.7.6-.8h.3v.2h.5l.2.2h.5l.3-.2h.3v-.2h.3v-.2h.2v-.3h.3v-.3h.3v-.3l.3-.3.2-.2.2-.2v-.2h.3v-.4l.3-.2.8.5v.2l-.3.2v.3l-.3.2h-.2v.3l-.3.2-.2.2-.2.2-.3.3h-.2l-.2.3h-.2v.3h-.3l-.3.2h-.4l-.3.2h-1.2l-.2-.2h-.2l-.2-.2-.2-.2h-.2zm-2.7-4.4.5 1 .3-.8v.3h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.4h-.2v-.2h-.2V205zm0 .8-.4-.4.5-.3v.8zm2.4-1v1H397v.2h-.4l-.5-1h1.2v-.2zm2.5-.8.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.7l-.2.2h-1.2v-1h1.4l.2-.2h.4v-.2h.2v-.2h.2v-.2zm.4-2.8 1 .3v.3l-.2.3v1.7h-.2v.7h-.2l-1-.4h.2v-1.4h.2v-1.3zm1.4-3.2.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.7h-.2v.5l-1-.3v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4zm0 0 .4-.5zm2.6-1 .2 1h-.6v.2h-1v.2h-.2l-.2.2-.8-.6.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm0 0h.6zm3 0-.6.8H406v.2h-.5l-.2-1h.8v-.2h2.1zm-.6.8.3.2zm3.3 1.6-.6.6-.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2zm2 2.5-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.2-.3.7-.6.3.2.2.3v.2h.2v.2l.2.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1-.2-.2h.2zm3.5-1 .2 1h-.5l-.2.2h-.8v.2h-1.3l-.2-.2h-.2l-.2-.2h-.2l.5-1v.2h.6l.2.2h1.1l.2-.2h.4l.2-.2zm2.8 0h-1l.5.5h-1l-.2.2h-.4l-.2.2h-.2l-.3-1 .2-.2h.8v-.2h1.5l.5.4zm-.5-.5h.6l-.2.5-.5-.5z"/>
+ <path fill="#edb92e" d="M391.8 221.2c.7-1 1-.8 1.2-1.3q.2-1.4-1-3.2c-2.2-4.6.3-4.2 3.6-2.4q1.5.7 3 2 1.4 1.5 2.7 2.4c1.6 1.2 2.7 1.2 3 1.7q1.4 3 1.8 4.2.6 1.2 1.6 4.2c0 .4-1 .5-1.8 2-.7 1.2-1.2 3.5-2 4.7q-2 2.6-3.4 2.4-1.5 0-1.8-4.2a4 4 0 0 0-1.5-3c-.5-.6-.6-.4-2-1.2a9 9 0 0 1-2.4-2q-.7-1-1-2c-.3-1-.8-1.6-.7-2.4a4 4 0 0 1 .8-2z"/>
+ <path fill="#21231e" d="m392.5 219.7 1 .3v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.8-.5v-.2l.2-.2.2-.2.2-.2h.2v-.2h.2zm-.8-2.7 1-.5v.4l.2.2v.4l.2.3v.2l.2.2v2l-1-.3v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.4zm4.2-3-.6.8h-.3l-.2-.3h-.3l-.3-.3h-.3l-.3-.2h-.3l-.2-.2h-.5l-.2-.2h-.6v1.5l.3.4.2.3.2.4.2.5-1 .5v-.4l-.3-.4-.2-.4v-.7l-.2-.2v-1.5l.2-.2h.2l.2-.2h.2l.2-.2h1.2l.2.2h.6l.3.3.3.2h.3l.3.2.2.2.4.2h.3zm2.8 2-.7 1v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2zm2.8 2.4-.6.8h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2l.6-1v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2zm3.3 2-1 .3v.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.3v-.2h-.3v-.2h-.3v-.2h-.3v-.2l.6-.8.2.2h.2v.2h.3l.2.2h.2l.2.2h.2v.2h.4l.2.2h.4v.2h.2l.2.2h.2v.3zm-.2-.3v.2zm1.7 4.5-1 .4v-.7l-.2-.2v-.4l-.2-.2v-.5h-.2v-.4l-.2-.3v-.3h-.2v-.5h-.2v-.5h-.2v-.3l1-.4v.4l.2.3v.2l.2.3v.2l.2.3v.3l.2.3v.4h.2v.4l.2.2v.4h.2v.4zm0 0-1 .4h.3l.3.2-.5-.5.6.5-.5-.5.6.5-.5-.5.2.4-.2-.3v.2l1-.5v.2-.4.4l-.4-.5.6.5-.5-.5.6.5-.5-.5h.4v.3zm0-.2v.2zm1.6 4.7-1-.2v.3-.5l-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.2l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.4l-.2-.2 1-.5v.4h.2v.5h.2v.5l.2.2v.3l.2.3v.5l.2.2v.3l.2.2v.2l.2.2v.6zm0-.3v.3zm-1.7 2.4-1-.4.2-.2v-.2h.2v-.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2l1 .2v.4h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2zm-2.2 5-.7-.7.2-.3v-.2h.2v-.3l.2-.2v-.4l.2-.2v-.5h.2v-.4h.2v-.5h.2v-.2l.2-.3v-.2l.2-.3v-.2l.2-.2 1 .5-.2.2v.3h-.2v.4h-.2v.5l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3h-.2v.3h-.2v.3l-.2.2v.2zm-3.7 2.7.2-1h.4v-.2h.2l.2-.2h.2v-.2h.2l.2-.2.2-.2.2-.2.2-.2.2-.3.2-.2v-.2h.2v-.3l1 .7h-.2v.3h-.3v.3h-.2v.3h-.4v.4h-.2v.2h-.2l-.2.2-.2.2-.2.2h-.3v.2h-.4v.2h-1zm-2.2-5h1v.3l.2.2v1.1h.2v.5l.2.2v.3l.2.2v.2h.2v.2h.2v.2h.2v1h-.8v-.2h-.2l-.2-.2-.2-.2v-.3h-.2v-.2l-.2-.2v-.3l-.2-.3v-.4h-.2v-1l-.2-.2v-1zm-1.2-2.6.7-.6.2.2v.2h.2v.2l.2.2v.2h.2v.3l.2.2v.2h.2v.7h.2v.6l-1 .2v-1h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2zm-2-1 .4-.8h.3v.2h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2l-.6.7h-.2l-.2-.2h-.4v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3zm-2.5-2 .7-.6.2.2.2.2.2.2.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2-.5 1v-.2h-.2v-.2h-.4v-.2l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2zm-1.2-2.3 1-.4v.2h.2v.4h.2v.5h.2v.4h.2v.2l.2.2-.7.7h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.8h-.2v-.2zm-.6-2.5h1v.8h.2v.4l.2.2v.2l.2.2v.2l-1 .5v-1h-.2v-.4h-.2v-.6h-.2v-.8zm1 0v.2zm.4-1.5v-1l.3.8v.4h-.2v.2h-.2v.8h-.2v.2h-1v-.9l.2-.2v-.4l.2-.2v-.2h.2v-.4h.2v-.2h.2l.4.7zm0-1h1l-.7.8-.2-.8zm0 0v1l-.4-.8.4-.3zm0 1h-1l.6-.8.4.7z"/>
+ <path fill="#21231e" d="m406.5 226 .2 1q-2.1.6-3.6 1.8c-1.5 1.2-1.7 2-2.3 3.2q.4-2.1 2-3.7a7 7 0 0 1 3.8-2.2zm-.6-1.6-.5-1q-2.4 0-4.7-1t-4.4-2.8q1.6 2 4.3 3.3 2.5 1.1 5.2 1.5z"/>
+ <path fill="#edb92e" d="M391.4 213.8c1 .4 1.6.8 2.8 1.8q1.2 1 1.5 3 0 1.7-.3 3.8-.3 1.4.5 3.6.5 2.3 2 3.5c2.3 2.5 4 5 3.4 6.7a4 4 0 0 1-1.5 1.8q-.7-.8-1.4-2.2a8 8 0 0 0-1.5-3.5c-.5-.6-.7-1.3-2-2.2-1-.5-2-.3-2.6-1-1.2-1.6-3-5.5-1.3-7.2s2.3-2.7 1-5.6q-.6-1.5-.6-2.4z"/>
+ <path fill="#21231e" d="m394.5 215.2-.7.8-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2l-.2-.2h-.4l.3-1h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2v.2zm1.7 3.2-1 .2v-.6h-.2v-.7h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l.7-.8h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.4l.2.2v.4h.2v.8h.2v.2zm-.3 4h-1V221h.2v-2.4l1-.2v3.3l-.2.2zm-1 0v-.3zm1.4 3.5-1 .2v-.5l-.2-.3v-.4l-.2-.3v-.8h-.2v-1.4h1v1.9h.2v.7h.2v.7h.2zm1.8 3.2-.7.7v-.2l-.2-.2h-.2v-.4h-.2v-.2l-.2-.3v-.2h-.2v-.2l-.2-.3v-.2h-.2v-.5l-.2-.2-.2-.3v-.4h-.2l1-.4v.2l.2.2v.2l.2.3.2.2v.3l.2.2v.2h.2v.2h.2v.4h.2v.2h.2v.2h.2v.2zm3.6 7.2-1-.4.2-.2v-1.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.3v-.3l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2-.2-.3-.3h-.2l.7-.8.3.2.2.2.2.3.3.4.3.2.2.2v.3l.3.3.3.2.2.3v.2l.3.2.2.3v.2l.2.2.2.2v.2l.2.2v.2l.2.3v.7l.2.2v1.2l-.2.2zm-2.4 1.8 1-.4-.8-.2.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l1 .4v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2l-.2.2zm.8.2-.5.3-.3-.5zm-2-2.5 1-.3v.4h.2v.4h.2v.2h.2v.2l.2.2v.2h.2v.4l-.8.4v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.4l-.2-.2v-.2zv-.3zm-1.5-3.3.8-.7v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.5h.2v.4l.2.2v.4l.2.3v.7l-.8.2v-.4h-.2v-.5l-.2-.2v-.5h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm-2-2.2.4-1 .3.2.2.2h.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2l-.7.7-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2zm-2.7-1.3.8-.6h.2v.2h.2v.2h.9l.2.2h.4l.2.2h.2l.2.2-.4 1v-.2h-.4l-.2-.2h-.9v-.2h-.4l-.2-.2h-.2l-.2-.2-.2-.2zm-1.2-7.8.7.7v.3h-.2v.3h-.2v2.2l.2.3v.5l.2.2v.2l.2.3v.2l.2.2v.2l.2.2v.2l.3.2v.2h.2v.3l.2.2-.7.7-.2-.3-.2-.3v-.2l-.2-.2v-.2h-.3v-.3l-.2-.3-.2-.4v-.2l-.2-.3v-.2l-.2-.2v-.6l-.2-.3v-2.1l.2-.3v-.2h.2l.2-.3.2-.3zm.7-5 1-.5v.5l.2.2v.3l.2.2v.7h.2v1.7l-.2.2v.2l-.2.2v.2h-.2v.3h-.2v.2l-.2.2-.3.3h-.2l-.2.3-.8-.6.2-.3h.2l.2-.3.2-.3.2-.2v-.3l.2-.2v-.2l.2-.3v-.7l-.2-.2v-.5l-.2-.2-.2-.4v-.2zm0-3v1l.4-.7v1.4h.2v1.1h.2l-1 .6v-.9h-.2v-.7l-.2-.2v-1l.4-.7zm-.6.5-.3-.7h.7l-.5.6zm.4.3v-1zm0-1"/>
+ <path fill="#edb92e" d="M434 226.2c-1.2 1-1.5 1-2 1.6q-.3 1.3.3 3.3c1.5 5-1.4 4.4-5 2.6-1.6-1-3.6-3.2-5.2-4.4-1.5-1-2.6-1-3-1.6l-1-4.3q-.1-1.2-1-4.4c.4-.7 1.4-1 2.5-2.5 1-1.7 2.2-4.7 3.6-6 3-3.2 6-4.5 6 1.3 0 1.4.3 3 1 3.6s1 .3 2.5 1q1.6 1 2.6 2c.7 1 .5 2 .7 2.8 0 1 .5 1.7.2 2.6q-.6 1.4-2 2.4z"/>
+ <path fill="#21231e" d="m432.6 228-1-.5h.2v-.4h.4v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.4v.2zm0 2.9-.8.3v-.2l-.2-.2v-.7h-.2v-2.3h.2v-.2l1 .4v.2h-.2v2.1h.2v.7zm-5.4 3 .5-.8h.3l.3.3h.3l.3.3h.2l.3.2h.2l.3.2h.7l.2.2h.7v-.2h.2v-.4l.2-.3v-1.1l-.2-.3v-.3l-.2-.4 1-.4v.4l.2.4v.8l.2.3v1.1l-.2.4v.2l-.3.2-.2.2h-.2l-.2.2-.4.2h-1.2l-.3-.2h-.6l-.3-.3-.2-.2h-.3l-.3-.2-.4-.2-.3-.2zm-5.4-4.3.6-1 .2.2.3.2.2.3h.2v.3h.3v.3l.3.2.2.2h.2v.3h.3l.2.3.2.3.2.2.3.3h.2v.2l.2.2h.2l.2.2v.2h.3v.2h.2l.2.2.3.2-.5 1-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2l-.2-.2h-.2v-.3h-.3l-.3-.3h-.2v-.3l-.3-.3h-.2l-.2-.3-.3-.3h-.2v-.2h-.3l-.2-.3-.3-.3-.3-.2-.3-.2h-.2zm-3.4-2 1-.2v-.2h.2v.2h.4l.2.2h.4v.2h.7l.2.2h.2l.2.2.3.2h.2l.2.2-.6 1v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2v-.3zm.2.3v-.3zm-.6-4.2v-1l.5.4v.4l.2.2v1h.2v1.3h.2v1h.2v.5l-1 .2v-.7l-.2-.3v-.7l-.2-.3v-.7h-.2v-.8l-.2-.2v-.6l.4.4zm0-1h.5v.4zm-.5.6 1-.2v-.2l-.5-.2v1h-.3zm-.8-4.7 1 .4v-.2 1.1h.2v1.1l.2.3v.8l.2.2v.9l-1 .2V222l-.2-.2v-.8l-.2-.3v-.7h-.2v-.8l-.2-.2v-.3zm0 .3v-.3zm2.4-2.8 1 .5-.2.2-.2.2-.2.3-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2l-1-.3h.2v-.4h.2v-.2h.4v-.2h.2l.2-.2.2-.2.2-.2h.2v-.2l.2-.2.2-.2v-.2h.2zm3.7-6.2.8.7h-.2v.3h-.2v.3l-.3.3v.2l-.2.2v.2h-.2v.3l-.2.3v.4l-.3.2v.2l-.2.2v.2l-.2.2v.2l-.2.2v.3l-.2.3v.2l-.2.2v.2h-.2v.2l-.2.2-.2.2-1-.4.2-.2.2-.3v-.2h.2v-.3l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.3l.2-.2v-.2h.2l.2-.3v-.2l.2-.2v-.3l.2-.2v-.2l.3-.2v-.2l.2-.2.2-.3v-.2l.2-.2h.2zm6.8 1.8h-1v-1.4l-.2-.4v-.6l-.2-.2v-.4l-.2-.2h-.3v-.2h-1.2l-.3.2-.3.2h-.2l-.3.3-.2.3-.3.2-.2.2-.3.2-.2.2-.3.2-.2.3-.8-.7.3-.3.3-.3.3-.2.2-.3.3-.3.4-.2.3-.2.2-.2h.2l.3-.3h.2l.3-.2h.3l.2-.2h1.2l.3.2.3.3.2.2.2.2.2.3v.6l.2.5v.4l.2.3v1.5zm1 3.3-.8.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.6l-.2-.2v-.7l-.2-.2V212h1v2h.2v.3l.2.2v.2h.2v.2zm2.2 1-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2zm-.8.6.4.5zm1.5 2.3-1 .2V220l-.2-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2.2h.2v.2zm0 3-.8-.4v-2.1l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l1 .4-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2zm-.7-.8"/>
+ <path fill="#21231e" d="m418 222.6-.2-1a14 14 0 0 0 7.8-5.3c-1.2 3-4.3 5.3-7.7 6.3zm.2 1.5q0 .6.3 1 5 0 9.2 3c-2-2.3-5.8-3.8-9.5-4"/>
+ <path fill="#edb92e" d="M432.7 233.3a11 11 0 0 1-3.4-1.5c-1.6-1.3-1.2-3.8.3-6.4q.6-1.4.2-3.5a6 6 0 0 0-1.4-3.5c-2.4-2.3-3.8-4.8-2.6-6.6q1.4-1.8 2.8-2.7.4 1 .4 2.5c0 1.4.3 3 1 3.6s1 .3 2.5 1q1.6 1 2.6 2c.7 1 .6 2 .7 2.8 0 1 .5 1.7.2 2.6q-.6 1.4-2 2.4c-1.2 1-1.5 1-2 1.6q-.3 1.3.3 3.3.4 1.4.4 2.3z"/>
+ <path fill="#21231e" d="m429 232.2.6-.8h.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.4l.2.2h.4l.2.2h.2l-.3 1h-.4v-.2h-.4l-.2-.2h-.3v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2l-.3-.2h-.2v-.2zm0-7 1 .5v.2h-.2l-.2.4v.2l-.2.2v.2l-.2.3v.4l-.2.2v.5l-.2.2v1.5l.2.3v.2h.2v.3l.2.2.2.2-.6.8-.2-.2-.3-.3v-.2h-.2v-.3l-.2-.2v-.4l-.2-.3V228h.2v-.7l.2-.3.2-.3v-.3l.2-.2v-.3l.3-.3v-.5zm.3-3.3 1-.2v.8h.2v1.9l-.2.2v.7h-.2v.2l-1-.4h.2v-.6h.2V222zm-1.3-3.2.7-.7v.2h.2v.4h.2v.2l.2.2v.2l.2.2v.2l.2.2v.5h.2v.7l.2.2v.8h-1v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm-2.7-7.2 1 .6h-.2v.7l-.2.2v.7l.2.2v.4l.2.2v.2l.2.2v.2l.2.2v.2l.3.2v.2l.2.2.2.2v.2l.3.3.2.3v.2l.3.2.2.2h.2l-.7.8-.2-.2-.2-.2-.3-.2-.2-.2v-.3l-.2-.2-.2-.2-.2-.2-.2-.2v-.2l-.3-.2-.2-.3h-.2v-.3l-.2-.2v-.3l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-1l.2-.3v-.2l.2-.2v-.2zm3.8-2.5-.8.4.7.3h-.2l-.2.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-1-.6h.2v-.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2zm-.6 0 .5-.5v.6h-.6zm1 2.8h-1v-2.1h-.2v-.4l1-.3v1h.2v2zm1 3.3-.7.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.7l-.2-.2v-.7l-.2-.2V212h1v1.7h.2v.6l.2.2v.2h.2v.2l.2.2zm2.3 1-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2zm-.8.6.4.5zm1.5 2.3-1 .2V220h-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2h.2v.2zm0 3-.8-.4v-2.2l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2h.2v-.4h.2v-.2l1 .4-.2.2v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2zm-1.7 1.4-1-.5v-.2h.2v-.2h.2v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2zh-.2v.2zm0 2.9-1 .3v-.7h-.2v-3h.2l1 .4h-.2v2.6h.2v.2zm-.2 2.8.3-1-.6.5v-1h-.2v-.9l-.2-.2 1-.5v.9h.2v1h.2v.7zm.7-.5v.7l-.7-.2zm-.5 0-.2.5zm.5 0v.7l-.7-.2z"/>
+ <path fill="#edb92e" d="M410.6 216.4c4 0 8 3.4 8.4 7.7.6 4.4-2.2 7.7-6 7.8-4 0-7.5-3-8.3-7.3-.7-4 1.8-8 6-8z"/>
+ <path fill="#21231e" d="m419.5 224-1 .2v-.8l-.2-.4v-.3l-.2-.4v-.3l-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.3h-.3l-.4-.2h-.3l-.3-.2h-1.5v-1h1.9l.4.2h.3l.4.3h.4l.4.3.4.2.3.2.5.2.3.3.3.2.4.2.3.3.3.3.3.3.3.4.2.3.2.4.3.4.2.4.2.4.2.4v.4l.2.4v.4l.2.4v.8zm-6.6 8.3v-1h.9l.2-.2h.6l.3-.2h.4l.2-.2.3-.2h.2l.2-.3h.2l.2-.3.3-.3.3-.2v-.2l.3-.3.2-.2v-.3l.3-.3.2-.4v-.3l.2-.3v-.7l.2-.3V224l1-.2v2.5l-.2.4v.8l-.3.4v.3l-.2.3v.4l-.3.3-.2.3-.3.3h-.2l-.2.4-.3.2-.3.3h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.2.2h-.4l-.3.2H413zm-8.7-7.7 1-.2v.7l.2.5v.3l.3.4v.3l.3.3.2.4.2.3.2.3.2.3.2.3.3.3.2.3h.3l.2.3.3.3.2.2.3.2.3.2h.4l.3.3.3.2h.3l.3.2h.7l.3.2h1.2v1h-2l-.3-.2h-.4l-.4-.3h-.4l-.4-.3-.3-.2-.4-.2-.3-.2-.4-.2-.4-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4v-.4l-.2-.4-.2-.4v-.8zm6.2-8.7v1h-1l-.3.2h-.4l-.3.2h-.3l-.3.3h-.2l-.2.3-.3.2-.2.2v.2l-.3.2-.2.2-.2.3-.2.3v.2l-.2.3v.4l-.3.3v.6l-.2.3v.7l-.2.3v.7l.2.4v.8l-1 .2v-3.3l.2-.3v-.3l.2-.4v-.3l.3-.4v-.3l.3-.3.2-.3.2-.3.2-.3h.2l.2-.4.3-.2.3-.2.3-.2.3-.2.3-.2.3-.2h.3l.4-.2h.4l.3-.2h.9z"/>
+ <path fill="#edb92e" d="M411 218.6c2.8-.2 5.7 2.4 6 5.5.5 3.3-1.5 5.8-4.4 5.8-2.8 0-5.5-2.3-6-5.3s1.3-5.8 4.3-6z"/>
+ <path fill="#21231e" d="m417.6 224-1 .2v-.6l-.2-.3v-.2l-.2-.3v-.4l-.2-.2v-.2l-.2-.3-.2-.3v-.2l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.3-.3h-.2l-.2-.2-.4-.2h-.5v-.2h-1.1v-1h1.1l.4.2h.3l.2.2h.2l.3.2h.3l.2.3h.3l.2.2.3.2h.2l.3.3.2.3.2.2.2.2v.2l.3.3h.2v.4l.3.3v.3l.3.2.2.3v.3l.2.3v.8l.2.3zm-5 6.3v-1h1.1l.2-.2h.4l.2-.2h.2v-.2l.3-.2h.3v-.2l.3-.2v-.2h.2l.2-.3v-.2l.2-.2.2-.3v-.7l.2-.2v-1.6h1v2.2l-.2.3v.2l-.2.3v.2l-.3.3-.2.2v.3l-.3.2-.2.2-.2.2-.3.2-.2.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.2l-.2.2zm-6.5-5.8h1l.2.4.2.4v.2l.2.3.2.3v.3l.3.2.2.2.2.2v.2l.3.2.2.2.3.3.2.2.2.2h.2v.3h.3l.2.2h.7l.2.2h1.1v1H411l-.4-.2h-.2l-.3-.2h-.2l-.2-.3h-.3l-.2-.3-.4-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.3v-.2l-.3-.2-.2-.2-.2-.3v-.3l-.2-.3v-.3l-.2-.2v-.7zm5-6.4v1h-.6l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2h-.2l-.2.3v.2l-.3.2-.2.3v.2h-.2v.3l-.2.2v.2l-.2.2v.7l-.2.2v1.7h-1V222h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2h.2l.2-.3.2-.2.2-.2.2-.2h.2l.2-.2h.3l.2-.3h.2l.2-.2h.6l.3-.2h.6z"/>
+ <path fill="#0c4076" d="M411.2 220.7c2 0 3.6 1.5 4 3.5.2 2-1 3.6-3 3.6a4 4 0 0 1-3.7-3.4c-.3-2 1-3.6 2.7-3.7"/>
+ <path fill="#21231e" d="m415.6 224-1 .3v-.4l-.2-.2v-.4h-.2v-.3l-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2h-.6v-.2h-.6v-1h1l.2.2h.2l.3.2h.3v.2h.3l.2.3v.2h.3l.2.2.2.2.2.3.3.2v.4h.2v.3l.2.3v.4zm-3.3 4.3v-1h.7l.2-.2h.4v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5l.2-.2v-1.1l1-.3v2h-.2v.3l-.2.3-.2.3-.2.2h-.2v.2l-.2.2h-.2v.2h-.3l-.2.2h-.4v.2h-1zm-4.3-3.8 1-.2v.5l.2.3v.4h.2v.2l.2.2.2.2.2.3.2.2.2.2h.3v.2h.4l.3.2h.8v1h-1.3l-.2-.2h-.2l-.3-.2h-.2v-.2h-.2v-.2l-.3-.2-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2v-.2h-.2v-.5l-.2-.2v-.5zm2.7-3.8h1l-.5.5h-.7l-.2.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.5h-.2v1.3l-1 .3v-1.8h.2v-.5h.2v-.3h.2v-.3h.3v-.3h.3v-.2h.3v-.2h.3v-.2zl.2-.2h.4l-.5.5zm1 0v.5h-.5zm0 0h-1l.5-.5zm-1 0v-.5h.5z"/>
+ </g>
+ <path fill="#fff" d="M482 183c4 0 7 3 7 7s-3 6.7-7 6.7c-3.6 0-6.7-3-6.7-6.8 0-4 3-7 6.8-7z"/>
+ <path fill="#21231e" d="M489.5 189.8h-1c0-2.3-1.4-4.6-3.5-5.6a6 6 0 0 0-3-.7v-1q4.1.1 6.4 3.5a7 7 0 0 1 1 3.8zm-7.4 7.4v-1q4-.2 5.8-3.4a6 6 0 0 0 .7-3h1c0 2.6-1.5 5.2-3.7 6.5a7 7 0 0 1-3.7 1zM475 190h1a6.4 6.4 0 0 0 6.3 6.2v1a7 7 0 0 1-6-3.4 7 7 0 0 1-1.2-4zm7.3-7.5v1a6 6 0 0 0-5.5 3.5 6 6 0 0 0-.7 3h-1q.2-4.2 3.5-6.4a7 7 0 0 1 3.8-1z"/>
+ <path fill="#fff" d="M482 171c4 0 7 3 7 7a6.8 6.8 0 1 1-13.7-.2c0-3.7 3-6.7 6.8-6.7z"/>
+ <path fill="#21231e" d="M489.5 178h-1c0-2.4-1.4-4.7-3.6-5.8a6 6 0 0 0-3-.6v-1q4.1.1 6.4 3.4a7 7 0 0 1 1 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6 6 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.4a7 7 0 0 1-3.7 1zM475 178h1a6.4 6.4 0 0 0 6.3 6.3v1a7 7 0 0 1-6-3.4 7 7 0 0 1-1.2-4zm7.3-7.4v1a6 6 0 0 0-5.5 3.5 6 6 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7 7 0 0 1 3.8-1z"/>
+ <path fill="#fff" d="M482 159.6c4 0 7 3 7 7a6.8 6.8 0 1 1-13.7-.2c0-3.7 3-6.8 6.8-6.8z"/>
+ <path fill="#21231e" d="M489.5 166.5h-1c0-2.4-1.4-4.7-3.6-5.7a6 6 0 0 0-3-.7v-1c2.6 0 5 1.5 6.4 3.6a7 7 0 0 1 1 4zM482 174v-1c2.5 0 4.7-1.5 5.8-3.6q.6-1.5.7-3h1c0 2.6-1.4 5-3.5 6.4a7 7 0 0 1-4 1zm-7.2-7.5h1c0 2.4 1.4 4.7 3.6 5.7a6 6 0 0 0 2.7.7v1a7 7 0 0 1-6-3.6 7 7 0 0 1-1.2-4zm7.3-7.4v1a6 6 0 0 0-5.5 3.6 6 6 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.4a7 7 0 0 1 3.8-1z"/>
+ <path fill="#fff" d="M482 127c4 0 7 3.2 7 7s-3 6.8-7 6.8a7 7 0 0 1 .1-13.8z"/>
+ <path fill="#21231e" d="M489.5 134h-1c0-2.4-1.4-4.7-3.6-5.8a6 6 0 0 0-3-.6v-1q4.1.1 6.4 3.4a7 7 0 0 1 1 4zm-7.4 7.3v-1q4-.2 5.8-3.4a6 6 0 0 0 .7-3h1c0 2.5-1.5 5-3.7 6.3a7 7 0 0 1-3.7 1zM475 134h1c0 2.3 1.4 4.6 3.5 5.6a6 6 0 0 0 2.8.7v1a7 7 0 0 1-6-3.4 7 7 0 0 1-1.2-4zm7.3-7.4v1a6 6 0 0 0-5.5 3.5 6 6 0 0 0-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7 7 0 0 1 3.8-1z"/>
+ <path fill="#fff" d="M482 137.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+ <path fill="#21231e" d="M489.5 144h-1c0-2.3-1.4-4.6-3.5-5.7a6 6 0 0 0-3-.6v-1c2.7 0 5.2 1.4 6.5 3.6a7 7 0 0 1 1 3.7m-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6 6 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7 7 0 0 1-3.7 1zM475 144h1c0 2.4 1.4 4.7 3.5 5.7a6 6 0 0 0 2.8.7v1a7 7 0 0 1-6-3.5 7 7 0 0 1-1.2-4zm7.3-7.4v1a6 6 0 0 0-5.5 3.6q-.7 1.6-.7 2.8h-1c0-2.5 1.4-5 3.5-6.2a7 7 0 0 1 3.8-1.2z"/>
+ <path fill="#fff" d="M482 148.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+ <path fill="#21231e" d="M489.5 155h-1c0-2.3-1.4-4.6-3.6-5.7a6 6 0 0 0-3-.6v-1q4.1.1 6.4 3.4a7 7 0 0 1 1 4zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6 6 0 0 0 .7-3h1c0 2.6-1.5 5-3.7 6.4a7 7 0 0 1-3.7 1zM475 155h1c0 2.4 1.4 4.7 3.5 5.7a6 6 0 0 0 2.8.7v1a7 7 0 0 1-6-3.4 7 7 0 0 1-1.2-4zm7.3-7.4v1a7 7 0 0 0-5.5 3.5 6 6 0 0 0-.7 3h-1c0-2.5 1.4-5 3.5-6.3a7 7 0 0 1 3.8-1z"/>
+ <path fill="#edb92e" d="M487 195.5c1 1.6.7 2 1.4 2.4q1.3.8 3.4.4c5.3-1 4.5 2.3 2.2 6-1 1.7-3.8 3.5-5.2 5s-1.6 2.8-2 3.2h-9.2c-.5-.4-.7-1.7-2-3.2-1.5-1.5-4.2-3.3-5.3-5-2.4-3.7-3-7 2.2-6q2 .4 3.4-.5c.6-.6.3-1 1.3-2.5a7 7 0 0 1 2.2-2.3c1-.5 1.8-.2 2.6-.2 1 0 2-.3 2.8.2a7 7 0 0 1 2.2 2.3z"/>
+ <path fill="#21231e" d="m488.7 197.5-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8-.3-.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2.7-1v.2h.2v.2h.8l.2.2h1.9zm2.6 6.6-.8-.6.2-.3.2-.3.2-.4.2-.3v-.3l.3-.3v-.2l.2-.2v-.6l.2-.2v-1.3l-.2-.2h-.2v-.2h-.5l-.2-.2h-2l-.2-1h2.8l.3.2h.2l.2.2.2.2.2.2.2.2v.3l.2.3v1.7l-.2.3v.3l-.3.2v.4l-.3.3v.2l-.3.4v.3l-.3.2-.3.4zm-5.3 5.2-.6-.7.3-.2v-.2h.3l.2-.3v-.2h.3l.2-.2h.2v-.3h.2l.2-.3.2-.2h.2l.2-.3h.2v-.3l.3-.2h.2l.2-.3v-.2l.2-.2.2-.2h.2v-.3h.3v-.4h.3v-.3h.2v-.3l1 .6-.2.2-.2.3v.3l-.2.2h-.2l-.2.3v.2l-.3.2-.3.3v.2h-.3l-.2.3-.2.2h-.2l-.2.3-.2.2-.3.3-.3.3h-.2v.3l-.3.2h-.2v.3l-.3.2h-.2v.3h-.2l-.2.3zm-2.3 3.3v-1l-.3.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l.2-.2.2-.3.3-.3.8.6v.2l-.2.2-.2.2-.2.3v.2h-.2v.2l-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2l-.2.2v.2h-.5zm.3 0h-.2zm-5 .2v-1h4.7v1h-4.5zm0-1h.2zm0 0v1zm-4.7.8.6-.8h-.4 4.2l.2 1h-4.7l-.3-.2zm.3 0h-.2zm-2.4-3.2.7-.7v.2l.2.2.2.3.2.3.2.2v.2h.2v.4h.2v.4h.2v.4h.2v.4h.2v.2l-.5.8-.2-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.2-.3-.2-.2zm-5.4-5.2 1-.6v.2l.2.3h.2v.3l.2.2h.2v.3h.3v.3l.2.2h.2l.2.3.2.2v.2l.3.2h.3l.2.3h.2l.2.2v.2h.2l.2.3h.2l.2.3h.2v.3l.3.2h.2v.3h.3v.3l-.6.8-.2-.2-.3-.3-.3-.2-.3-.2v-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2v-.3l-.3-.2h-.2l-.2-.3v-.2h-.3l-.2-.3v-.2h-.3l-.2-.3v-.2l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2zm2.7-6.7v1l-.6-.2h-2.1l-.2.2h-.2v.2h-.2v.4l-.2.2v1.1l.2.2v.3l.2.3v.2l.2.3.2.4v.3l.3.3.3.4.2.3.2.3-1 .6v-.4l-.3-.3-.2-.4-.2-.4v-.3l-.3-.4v-.4l-.3-.3v-.4l-.2-.3v-.6l-.2-.3v-1l.2-.2v-.2l.3-.2.2-.2.2-.2.4-.2h.3l.3-.2zm3-.5.8.8-.2.2h-.2l-.2.2h-.4l-.2.2h-3v-1h2.5l.2-.2h.4v-.2zm1.4-2.3.7.6v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm0 0 .2-.4zm2.3-2.4.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm2.8-.3v1h-2.4l-.5-.7h.2v-.2h.4l.2-.2zm3 .3-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2zm0 0 .3.2zm2 3.2v-1l-.4.8-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2zm.4-.8.5.8h-1zm-.4-.2v1l-.4-.2zm-.4.8-.5-.8h1l-.4.8z"/>
+ <path fill="#21231e" d="m481.4 212.8-1-.2q-.7-5.6-4.3-9.6c2.8 1.8 4.8 5.7 5.4 9.8z"/>
+ <path fill="#edb92e" d="M494.2 198.3q-.6 1.7-2 3.5c-1.5 1.6-4 .5-6.5-1.6q-1.4-1-3.6-1a6 6 0 0 0-3.4 1c-2.5 2-5 3.2-6.6 1.6q-1.4-1.7-2-3.5h2.5q2 .6 3.4-.4c.6-.6.3-1 1.3-2.5a7 7 0 0 1 2.2-2.3c1-.5 1.7-.2 2.6-.2s2-.3 2.8.2q1.2.8 2.2 2.3c1 1.6.7 2 1.3 2.4q1.5.8 3.5.4 1.5-.3 2.4 0z"/>
+ <path fill="#21231e" d="m492.6 202-.7-.6v-.2l.2-.2.2-.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.3v-.4l1 .5v.4l-.2.2v.2l-.2.2v.4h-.2v.2l-.2.2v.3h-.2v.2h-.2v.2h-.2v.3l-.2.2-.2.2h-.2zm-7.3-1.4.7-.7h.2l.2.2.3.2.2.2.3.3h.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2h.4l.2.2h1.6l.2-.2.2-.2h.2v-.2l.8.7-.2.3h-.2v.3h-.3l-.3.2h-.3l-.2.2h-1.9l-.3-.2h-.3l-.2-.2h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.3l-.2-.3h-.3l-.2-.3-.2-.2-.2-.2-.2-.2-.3-.2zm.7-.7.5.3zm-4-.2v-1h2v.2h.7v.2h.4l.2.2h.2l.2.2h.2v.2h.2l-.7.8h-.2v-.2h-.2v-.2h-1v-.2h-1v-.2zm-3 .8-.7-.7v-.2h.2l.2-.2h.2v-.2h.2l.2-.2h.5v-.2h1.2v-.2h1v1h-1.5v.2h-.5l-.2.2h-.4v.2h-.2zm-7.3 1.5.7-.6.3.2.2.2h.2v.2h1.7v-.2h.5l.2-.2h.2v-.2h.3l.2-.2.2-.2h.3l.2-.3h.2l.2-.3.3-.2v-.2h.3l.7.6-.3.2-.2.2-.3.2-.2.2-.2.2h-.3l-.2.3h-.3l-.2.2h-.2l-.3.2h-.2l-.2.2h-.2l-.2.2h-.3l-.3.2H473l-.4-.2h-.2l-.2-.2-.2-.2zm-1.7-4 .2 1 .3-.7v.2l.2.2v.3l.2.2v.4l.2.2v.2h.2v.4h.2v.4h.2v.2h.2v.2h.2v.2l.2.2-.7.7h-.2v-.2h-.2v-.2h-.2v-.5h-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.4h-.2l.4-.8zm-.4.7-.2-.6.6-.2zm3-.6-.2 1-.2-.2H470l-.2-1h2.4zm3-.5.7.8-.2.2h-.2l-.2.2h-.4l-.2.2h-2.8v-1h2.3l.2-.2h.4v-.2h.2zm.7.8-.5.4zm.6-3 .7.5v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2zm2.3-2.5.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm2.8-.3v1h-2.3l-.5-.7h.2v-.2h.4l.2-.2zm3 .3-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2zm0 0 .3.2zm2.4 2.4-.8.6-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2zm1.3 2.3-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8-.3-.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.4v-.2h-.2l.7-1v.2h.2v.2h.8l.2.2h1.9zm3 .5-1-.4.3.8H492l-.2-1h2.4l.5.7zm-.5-.7h.6l-.3.7zm0 .5.4.2zm0-.5h.6l-.3.7z"/>
+ <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+ <path fill="#21231e" d="m483 212.8.8-.2q.8-5.6 4.3-9.6a15 15 0 0 0-5 9.8z"/>
+ <use xlink:href="#rs-b" width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)"/>
+ <path fill="#edb92e" stroke="#21231e" d="M577 293.6c2 .3 3 1.5 3 2.8s-1 2.6-3 3l-1.6.2c-60.8 5.2-125.7 5.2-186.5 0l-1.6-.3c-2-.3-3-1.6-3-3 0-1.2 1-2.4 3-2.7l1.5-.3c60.7-5.2 125.6-5.2 186.4 0q.8 0 1.5.3z"/>
+ <path fill="#21231e" d="M412 298.4h-.2v-.2h-.2v-1h.4v-.2.2-.2h2.3l.7-.2h3l.7-.2h3l.7-.2h3l.8-.2h3.3l.7-.2h3.8l.7-.2h.8v1.2h-2.9l-.7.2H428l-.7.2h-2.7l-.8.2H421l.7.2h3.7l.7.2h2.9l.7.2h3.7l.7.2h1.5v1.2h-3.7l-.7-.2h-3.8l-.7-.2h-2.9l-.7-.2H420l-.6-.2h-2.9l-.7-.2H413zv-.2zm46.8-3.3v1.3H453l-.7.2h-6.6l-.7.2h-5l-1 .2h-3.5v-1.2h3.5l.8-.2h5.2l.7-.2h5.9l.7-.2h6.8zm23.3 0v1h-13.7l-.7.2h-8.8v-1h1.4l.8-.2H482zm23.5 0v1.3h-11.1l-.7-.2H482v-1zm23.3 1v1h-5.2l-.8-.2h-5.2l-.7-.2h-6.5l-.8-.2h-4.3V295h.7l.7.2h7.5l.8.2h5l.8.2h5.1l.6.2h2.3zm23.4 1v.2h.4v1h-.2l-.2.2h-3l-.7.2h-2.2l-.7.2h-3.8l-.8.2h-2.8l-.7.2H534l-.8.2h-3.6l-.8.2v-1.2h2.2l.7-.2h3.7l.8-.2h3.7l.7-.2h1.8-1.4l-.8-.2h-2.7l-.7-.2H533l-.6-.2h-3.6V296h6.5l.7.2h3l.8.2h2.8l.7.2h3l.7.2h3l.7.2h1.5zm-116.7 1.4h.2l.2.2v.8h-.2v.2h-.2zm93.3 1.2h-.2l-.2-.2v-.2h-.2v-.8h.2v-.2h.4v1.2zm-50.3-36.2v-1h3.8v1h-4zm-1.2-1h1.2v1h-1.2zm-.6 0h.6v1h-.6zm-1 0h1v1h-1zm-.8 0h.6v1h-.7v-1zm-.5 0h.4v1h-.5v-1zm-.8 0h.8v1h-.8zm-1.2 0h1.2v1h-1.2zm-1 0h1v1h-1zm-.2 0h.2v1h-.2zm-1 0h1v1h-1zm-2.5 1v-1h2.6v1zm-.3-1h.2v1h-.2zm-.2 0h.2v1h-.2zm-1 0h1v1h-1zm-.5 0h.4v1h-.4zm-.4 0h.4v1h-.4zm-1.2 0h1.2v1h-1.2zm0 0v1zm0 1h-.2zm-1.2-1h1.2v1l-1.2.2v-1zm-.4 0h.4v1.2h-.4v-1zm-.8.2h.8v1h-.8zm0 0h.3-.2zm-.3 0h.3v1h-.3zm0 1h-.5zm-1-1h1v1h-1zm-1 0h1v1h-1zm-.2 0v1zm-1 0h1v1h-1zm-.6 0h.5v1h-.4v-1zm0 0v1zm-4.2 1.2v-1h3.5v-.2h.4v1h-2.7l-.2.2h-.8zm-.6-1h.5v1h-.6v-1zm-1.7 0h1.6v1h-1.7zm-.2 0h.3v1h-.2v-1zm-1.3 0h1.4v1h-1.3zm-1 0h1v1h-1zm-.6 0h.7v1h-.6zm0 0v1.2-1zm-1.6.2h1.5v1h-1.5zm0 0v1zm-1.2 0h1.2v1h-1.2zm0 0v1zm-1.2 0h1l.2 1H444v-1zm-.8 0h.8v1h-.7zm-1.6.2h1.6v1h-1.5zm0 0v1zm-6.2 1.3v-1h1.7l.2-.2h3.9v1H436l-.2.2zm-.4-1h.3v1h-.2zm-9 1.4v-1h1.3l.3-.2h3.2l.3-.2h3.5v1h-5.1l-.3.2H426zm-.3-1h.2v1h-.3v-1zm-.5 0h.5v1h-.4zm-18.2 2.2v-1h1.8l.5-.2h1.7l.5-.2h2.4l.6-.2h2.6l.6-.2h2.2l.6-.2h2.8l.6-.2h1.2v1h-2.1l-.6.2h-2.7l-.6.2h-2.3l-.6.2h-2.8l-.6.2h-2.2l-.5.2H408l-.6.2h-.6zm-.3-1h.3v1h-.2zm0 0v1zm-26.3 3.4v-1h.7l1-.2h.8l.8-.2h1.6l.8-.2h1l.7-.2h1.6l.8-.2h1.8l.8-.2h.8l1-.2h1.7l.7-.2h1.7l.8-.2h1.8l.7-.2h1.6l1-.2h1.5l1-.2v1H405l-.7.2h-1.7l-.8.2H400l-.7.2h-.8l-1 .2H396l-.8.2h-1.7l-.8.2H391l-.8.2h-.8l-.8.2H387l-1 .2h-.7l-.8.2H383l-1 .2h-.8l-.8.2zm0-7v1h-.5l-.5.2h-.5l-.3.2-.4.2-.3.2h-.2l-.3.3-.2.2-.3.3v.5l-.2.2v1.1h.2v.3l.2.2.2.2.3.3.3.2h.2l.3.2h.3l.4.2h1v1h-1.6l-.4-.2-.4-.2-.3-.2-.3-.2-.3-.2-.4-.2-.2-.3-.2-.2v-.3l-.3-.3-.2-.3v-1.6l.2-.3.2-.3.2-.4.2-.3.2-.3.4-.3.3-.2.4-.2.3-.2h.4l.5-.2h.6l.5-.2zm26.3-2.3v1H405l-.7.2h-1.7l-.8.2H400l-.7.2H396l-.8.2h-1l-.7.2H392l-1 .2h-1.6l-.8.2h-.8l-.8.2h-1.7l-.8.2h-.8l-.8.2H381l-.8.2v-1h1.7l.8-.2h.8l.8-.2h.8l.8-.2h1.7l.8-.2h1.6l1-.2h.8l.8-.2h1.8l.7-.2h1.7l1-.2h.7l.8-.2h1.8l.7-.2h1.6l1-.2h2.5zm0 1v-1zm37-3.2v1.2H439l-1 .2h-2.3l-1.3.2H431l-1.2.2h-2.2l-1.3.2H424l-1.2.2h-2.3l-1 .2H417l-1.2.2h-1.2l-1 .2h-2.3l-1.3.2h-1l-1.2.2h-1.2v-1h2.2l1.2-.2h1l1.2-.2h2.2l1.3-.2h1l1.2-.2h2.3l1-.2h2.3l1.3-.2h2.4l1.2-.2h2.3l1-.2h3.5l1.2-.2h3.5l1-.2h2.5zm1 1-1 .2v-1h1v1zm.2 0h-.3v-1l.2 1zm.2 0h-.3l-.2-1h.4v1zm1.2 0h-1.2v-1h1.2zm0 0v-1zm15.4-1.4v1h-5.5l-.5.2h-6.5l-.4.2h-2.6v-1h5l.5-.2h7.7l.5-.2zm.8 1h-.8v-1h.8zm0 0v-1zm1.4 0h-1.4v-1h1.4zm.2 0h-.2v-1h.2zm0 0h-.2zm0 0v-1zm1.2 0h-1.2v-1h1.2zm.5 0h-.6v-1h.4v1zm.6 0h-.7l-.2-1h.8zm1 0h-1v-1h1zm.2 0h-.3v-1h.2v1zm.4 0h-.4v-1h.4zm3-1 .2 1H468v-1h3.3zm1.2 1h-1v-1l1-.2v1zm0 0v-1.2 1zm1.3-.2h-1.2v-1h1.2zm3.5-1v1h-3.5v-1zm0 1v-1zm1.3 0h-1.2v-1h1.2zm3.6-1v1h-3.5v-1h3.7zm3.8 0v1H482v-1zm1 1h-1v-1h1.2v1zm.2 0v-1zm3.6-1v1H487v-1h4zm1 1h-1v-1h1.2v1zm.2 0v-1zm1 0h-1v-1h1zm3.3-1v1H493v-1h3zm.5 1h-.4v-1h.5zm.3 0h-.3v-1h.3zm1 0h-1v-1h1zm.6 0h-.7v-1h.8zm.5.2h-.6v-1h.5v1zm1 0h-1v-1h1zm0 0v-1zm0 0h.3zm.3 0h-.2v-1h.3zm1.3 0h-1.3v-1h1.4zm0 0v-1zm0 0h.2zm1 0h-1v-1h1zm15.2-.6v1h-6l-.4-.2H504l-.6-.2h-.9v-1h6l.4.2h6.6l.4.2h1.7zm0 1v-1zm1.3 0h-1v-1h1zm.4 0h-.3v-1h.5v1zm.2 0h-.2v-1h.2zm1 .2h-1v-1h1zm37 1v1h-2.3l-1.2-.2h-1l-1.2-.2h-2.2l-1.3-.2H546l-1-.2h-1.3l-1-.2h-2.3l-1.3-.2H537l-1-.2h-4l-1-.2h-2.6l-1-.2H524l-1-.2h-2.4v-1h4.7l1.2.2h3.3l1.3.2h2.3l1.3.2h2.3l1 .2h2.4l1 .2h2.3l1.3.2h2.3l1 .2h2.3l1.2.2h1.2l1 .2h1.3l1 .2h1.3zm0 1v-1zm26.4 1.4v1H582l-.8-.2h-.8l-.8-.2H578l-.7-.2h-.8l-.8-.2H574l-.8-.2h-.8l-.8-.2h-1.8l-.7-.2h-1.5l-.8-.2H565l-.8-.2h-1.7l-.8-.2H560l-.8-.2h-1.6v-1h3.5l.8.2h1.6l1 .2h1.7l.7.2h1.7l.8.2h1.8l.7.2h.8l.8.2h1.8l.8.2h.8l.8.2h1.8l.7.2h.7l.8.2h1.8zm0 7v-1h1.6l.3-.2h.3l.3-.2.2-.2.2-.2h.2v-.3l.2-.2v-.2h.2v-1.4l-.2-.3v-.2h-.3l-.2-.3-.3-.2h-.2l-.3-.3-.4-.2h-.4l-.4-.2h-.4l-.5-.2v-1h.5l.6.2h.5l.5.3.4.3.4.2.3.2.4.3.3.3.2.3v.3l.3.2v.3l.2.3v1.3l-.3.3v.3l-.3.3-.3.4-.3.2-.3.2-.2.2-.3.2-.4.2h-.3l-.4.2H584zm-26.5-2.4v-1h1.8l.8.2h1.8l.8.2h1.8l.7.2h1.7l1 .2h.7l.8.2h1.8l.7.2h1.6l.8.2h1l.8.2h1.6l.8.2h1l.7.2h1.5l.8.2h1l.7.2v1h-1l-.8-.2h-1.6l-.8-.2h-.8l-.8-.2h-1.7l-.8-.2h-.8l-1-.2h-1.6l-.8-.2h-.8l-1-.2h-1.4l-.8-.2H566l-.7-.2h-1.6l-1-.2H561l-1-.2h-1.6zm0-1v1zm-.2 0h.3v1h-.4v-1zM539 265v-1h2.9l.5.2h3l.5.2h2.3l.6.2h2.2l.6.2h2.3l.5.2h2.4l.5.2v1h-1.7l-.5-.2h-2.3l-.6-.2H550l-.7-.2H547l-.6-.2h-2.9l-.6-.2H540l-.6-.2h-.6zm-.4-1h.5v1h-.4v-1zm-.2 0h.2v1h-.2zm-9.2.5v-1h4l.3.2h3.2l.3.2h1.3v1h-1.6l-.3-.2H533l-.4-.2h-3.3zm-.3-1h.2v1h-.3zm-6.4.7v-1h4.5l.2.2h1.7v1h-4.4l-.2-.2h-1.7zm0-1v1zm-1.5 0h1.7v1H521zm-.7 0h.8v1h-.7zm-1-.2h1v1H519zm-.2 0h.2v1-1zm-1 0h1v1h-1zm-.2 0v1zm-1.4 0h1.4v1h-1.4zm-.2 0h.2v1h-.2zm-.6 0h.6v1h-.7v-1zm-1 0h1v1h-1zm-1.4-.2h1.4v1h-1.4zm-.2 0h.2v1h-.2zm-1.6 0h1.6v1h-1.6zm-.6 0h.6v1h-.6zm-4.2 1v-1.2h3.3l.2.2h.8v1zm0-1.2v1zm-.5 0h.6v1h-.5zm-1 0h1v1h-1zm0 0v1zm-1.3 0h1.2v1h-1.3v-1zm-1 0h1v1h-1zm0 1h.6zm-.2-1h.3v1h-.3zm0 0h-.3zm-.8 0h.8v1h-.8zm-.4 0h.4v1h-.4zm-1.2 0h1.3v1H500v-1zm0 1h.2zm0-1v1zm-1 0h1v1h-1zm-.5 0h.4v1h-.6v-1zm-.4 0h.5v1h-.4zm-1 0h1v1h-1zm-.2 0h.2v1h-.2zm-.3 0h.3v1h-.3zm-2.6.8v-1h2.3v1H494zm-1-1h1v1h-1zm-.2 0h.2v1h-.2zm-1 0h1v1h-1zm-1.2 0h1.2v1h-1.3v-1zm-.8 0h.8v1h-.8zm-.4 0h.4v1h-.5v-1zm-.7 0h.7v1h-.7zm-1 0h1v1h-1zm-.7 0h.6v1h-.6zm-1.2 0h1.2v1H486v-1zm-3.7 1v-1h3.9v1h-4.1zm.4 1.8L460 276.6l-.4-1 22.7-11.3h.4v1zm-.5-1h.4-.5zm22.7 12.4-23-11.4.4-1 22.7 11.5v1h-.3zm.4-1 1 .6-1 .4zm-23 11.6 22.7-11.5.4 1-22.6 11.4h-.5v-.8zm.4 1h-.3zM460 275.7l22.8 11.5-.5 1-22.8-11.6v-1h.4zm-.4 1-1-.5 1-.5z"/>
+ <path fill="#0c4076" d="M482 269c5.8 0 10.4 3.2 10.4 7s-4.6 7-10.3 7-10-3.2-10-7 4.5-7 10-7z"/>
+ <path fill="#21231e" d="M493 276h-1v-.3l-.2-.3v-.5l-.2-.3v-.3l-.3-.3-.2-.4v-.3l-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.3-.2-.2-.2-.4-.2-.4-.2-.3-.2-.4-.2h-.5l-.4-.3h-.4l-.5-.2h-.8l-.5-.2h-1.9v-1.2h1.7l.6.2h.5l.5.2h.5l.5.2h.4l.5.3.4.2.5.2h.5l.4.3.3.2.4.2.3.3.4.3.3.2.3.3.3.3.2.4.3.3.2.4.2.4.2.4v.3l.2.5v.4l.2.2v.8zm-11 7.4v-1h1.6l.5-.2h1.1l.5-.2h.5l.4-.3h.4l.5-.3h.4l.3-.3h.4l.4-.3.3-.2.4-.3.3-.2.3-.2.3-.3.2-.3.2-.2.3-.3v-.3l.3-.3h.2v-.4l.2-.3v-.7l.2-.3v-.3h1v.4l-.2.4v.4l-.2.4v.3l-.2.3-.2.3-.2.4-.2.3-.3.3-.2.3-.3.2-.3.3-.3.3-.4.3-.3.3-.4.2-.4.3-.5.2-.4.2-.4.2h-.4l-.5.3h-.4l-.5.3h-.5l-.5.2h-1.1l-.5.2zm-10.6-7.4h1v1l.2.3v.3l.2.2.2.3v.4l.3.3.2.3.3.2.2.3.3.3.3.2.3.2.2.3.3.2.4.2h.2l.4.3h.4l.4.3h.5l.3.3h.9l.5.2h1.5l.6.2h.5v1h-1.9l-.5-.2h-.5l-.5-.2-.5-.2h-.4l-.5-.3h-.4l-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.3-.2-.4-.2-.4-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.3-.2-.4v-.3l-.2-.4-.2-.4v-.8l-.2-.4v-.4zm10.7-7.4v1h-1.3l-.5.2h-.3l-.5.2h-.5l-.4.2h-.4l-.6.3h-.4l-.4.3-.4.2-.3.2-.5.2-.3.2-.3.2-.4.2-.3.3-.3.2-.2.3-.3.3-.2.3-.2.3v.3l-.2.2v.3l-.2.3v.7l-.2.3v.3h-1V275l.2-.5.2-.4v-.2l.3-.4.3-.3.2-.3.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.3-.3.4-.2.4-.2.4-.2h.4l.4-.3.5-.2.5-.2h.5l.5-.2h1l.5-.2h1.1l.6-.2h.5z"/>
+ <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+ <path fill="#21231e" d="M490.4 219.4h-1v-1l-.2-.3v-.4l-.2-.3v-.4l-.2-.4v-.3l-.3-.3-.2-.3-.2-.3v-.3l-.3-.2-.2-.3-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.2h-.4l-.4-.2H482V211l.6.2h1.2l.4.2h.4l.4.2.3.2.4.2h.4l.4.3.3.3.4.2.4.2.3.3.3.3.2.3.3.2.2.3.3.3.2.3.2.5.2.3v.4l.3.4v.8l.2.4v.8l.2.4zm-8.3 8.3v-1h1.5l.3-.2h.3l.3-.2.4-.2h.3l.3-.2h.3l.2-.3.3-.2.2-.2.3-.2.3-.2.2-.3.2-.2.2-.2v-.3l.3-.3.2-.3.2-.4v-.3l.2-.4v-.7l.2-.4v-.8l.2-.4v-.4h1v1.2l-.2.4v.5l-.2.4v.3l-.3.4v.3l-.3.4-.2.3-.2.4-.3.4-.2.3-.3.3-.2.3-.3.3-.3.2-.3.3-.3.3-.3.2-.3.2-.3.2h-.4l-.3.2-.4.2h-.4l-.4.2H482zm-8-8.3h1v1.8l.2.3.2.3v.3l.2.3.2.3.2.2.2.3.2.3.2.3.2.3.2.3.3.2.2.3.3.3.3.2.4.2h.3l.3.3h.3l.4.3h.3l.3.2h.7l.4.2h.7v1h-1.6l-.4-.2h-.3l-.4-.3h-.4l-.4-.3-.4-.3-.3-.2-.5-.2-.3-.2-.3-.2-.4-.2-.3-.3-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.4v-.4l-.2-.5v-.4l-.2-.3zm8-8.3v1.2h-1.3l-.4.2h-.3l-.3.2h-.4l-.3.3h-.3l-.3.2-.3.2-.2.2-.3.2-.2.3-.3.3-.2.2-.2.3-.2.3-.2.4-.2.3-.2.3-.2.3v.3l-.2.3-.2.3v.7l-.2.3v1.1h-1v-1.6l.2-.4v-.4l.2-.4.2-.4v-.4l.3-.3v-.4l.3-.2.2-.3.3-.3.2-.3.3-.4.3-.3.3-.3.2-.2.3-.2.4-.3.2-.2h.4l.3-.2.3-.2h.4l.4-.2h.5l.4-.2h1.1z"/>
+ <path fill="#edb92e" d="M482 213.7c3.3 0 5.8 2.6 5.8 5.7 0 3.2-2.5 5.8-5.7 5.8-3 0-5.5-2.6-5.5-5.8 0-3 2.5-5.7 5.6-5.7z"/>
+ <path fill="#21231e" d="M488.3 219.4h-1V218h-.2v-.7l-.2-.2v-.2l-.2-.3-.2-.2v-.2l-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.3h-.4l-.2-.3h-.2l-.3-.2h-.6l-.2-.2H482v-1h1.8l.3.2h.3l.2.2h.3l.3.3h.4l.2.3h.2l.3.3.3.2.2.2.2.2.2.3v.2l.3.3v.2l.3.3v.2l.2.3.2.3v.6l.2.2v1.3zm-6.2 6.3v-1h1.1l.2-.2h.3l.2-.2h.2l.2-.2h.4l.2-.2.2-.2h.2l.2-.3.2-.2h.2v-.2l.3-.2v-.2l.3-.3.2-.3v-.2l.2-.3v-.2l.2-.3v-1.3h1v2l-.2.3-.2.3-.2.4-.2.3v.2l-.3.2v.2l-.3.2-.2.3h-.2l-.2.3h-.2l-.2.3-.3.2h-.2l-.2.3-.3.2h-.2l-.3.2h-.3l-.3.2h-1.4zm-6-6.3h1v1.3l.2.3v.2l.2.3v.2l.2.2.2.4.2.2v.2h.3l.2.3.2.3v.2h.3l.2.3h.3l.2.2h.2v.2h.4l.2.2h.2l.3.2h.9v1h-1.5l-.3-.2h-.3l-.3-.2h-.2l-.3-.3-.3-.2-.3-.2-.3-.2h-.2l-.2-.3h-.2l-.2-.4-.2-.2-.2-.2-.2-.3-.2-.3v-.3l-.2-.3h-.2v-.4l-.2-.3v-.6l-.2-.3v-.9zm6-6.2v1H481l-.2.2h-.4l-.3.2-.3.3h-.5l-.2.3h-.2v.3l-.3.2h-.2l-.2.3v.3l-.2.2v.2l-.2.3v.2l-.2.2v.2l-.2.3v.4l-.2.2v.7h-1V218l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.2.2-.2.2-.2h.3l.2-.3h.2l.3-.2h.2l.3-.2h.3l.3-.2h.5l.3-.2h.6z"/>
+ <path fill="#0c4076" d="M482 215.8c2 0 3.7 1.6 3.7 3.6S484 223 482 223c-1.8 0-3.4-1.6-3.4-3.6s1.6-3.6 3.5-3.6z"/>
+ <path fill="#21231e" d="M486.2 219.4h-1v-.8h-.2v-.3l-.2-.2v-.2l-.2-.2-.2-.2-.2-.3h-.2l-.3-.2h-.2l-.2-.2h-.2v-.2H482v-1h1.4v.2h.5v.2h.3v.2h.3v.3h.3v.2l.2.2.2.3.2.3v.2l.2.2.2.3v.4l.2.2v.6zm-4 4.2v-1h.6v-.2h.5l.3-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.4h.2v-1h1v1l-.2.2v.2l-.2.2v.2l-.2.2-.2.3-.2.2-.2.2-.3.2-.3.3h-.3l-.3.2-.3.2h-1l-.3.2zm-4-4.2h1v1.3l.2.2v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.4l.2.2h.8v1.2h-.7l-.2-.2h-.3v-.2h-.5l-.2-.2-.3-.3h-.2v-.2l-.2-.2h-.2v-.2l-.2-.3-.2-.3v-.2l-.2-.2-.2-.3v-1.4zm4-4v1h-1l-.2.2h-.2l-.2.2h-.2v.2h-.2l-.2.3-.2.2-.2.2-.2.3v.4h-.2v1h-1V218l.2-.2.2-.3v-.2l.2-.2.2-.2.3-.3.2-.2.2-.2h.2l.2-.2h.2l.2-.2h.3l.3-.2h.9z"/>
+ </g>
+ <path fill="#c6363c" d="M314.6 301.2v271.3c0 48.5 18.8 92.6 49.2 124.6A163 163 0 0 0 482 749a163 163 0 0 0 118.5-51.7c30.4-32 49.2-76 49.2-124.5V301.2h-335z"/>
+ <path fill="#fff" d="M313.4 300v277l.2 4.6.3 4.5.3 4.6.5 4.4.5 4.5.7 4.3.8 4.4 1 4.3 1 4.2 1 4.3 1.2 4.2 1.3 4 1.4 4.2 1.4 4 1.7 4 1.6 4 1.8 4 2 3.8 1.8 3.8 2 3.7 2 3.7 2.2 3.6 2.2 3.6 2.4 3.5 2.4 3.6 2.4 3.4 2.6 3.3 2.6 3.2 2.7 3.2 2.8 3 3 3.2 1.6-1.7-2.8-3-2.7-3-2.6-3.3-2.5-3.2-2.7-3.3-2.4-3.3-2.5-3.4-2.2-3.5-2.3-3.5-2-3.6-2-3.6-2-3.7-2-4-1.8-3.7-1.7-3.8-1.6-4-1.7-4-1.4-4-1.5-4-1.2-4-1.2-4.2-1-4-1-4.3-.8-4.3-.8-4.3-.7-4.3-.6-4.2-.4-4.5-.4-4.4-.2-4.5-.2-4.5V302.5h332.7V577l-.2 4.5-.3 4.4-.3 4.3-.5 4.5-.6 4.3-.7 4.4-1 4.3-.8 4.3-1 4.2-1 4-1.2 4.3-1.3 4-1.3 4-1.4 4-1.6 4-1.6 4-1.7 3.8-1.7 3.8-2 4-2 3.6-2 3.6-2 3.6-2.3 3.5-2.3 3.5-2.3 3.4-2.5 3.3-2.6 3.3-2.6 3.2-2.6 3.2-2.7 3-2.8 3-3 3-2.8 3-3 2.7-3 2.6-3.3 2.6-3 2.6-3.4 2.4-3.3 2.5-3.3 2.3-3.4 2.2-3.5 2.2-3.5 2-3.5 2-3.6 2-3.7 1.7-3.7 1.8-3.8 1.7-3.8 1.5-3.8 1.4-4 1.3-3.8 1.3-4 1-4 1-4 1-4 1-4.2.6-4 .6-4.3.5-4 .4-4.3.4-4.3.2H482v2.4h4.5l4.3-.2 4.3-.3 4.4-.4 4.2-.4 4.2-.6 4.2-.8 4-.8 4.2-1 4-1 4-1.2 4-1.2 4-1.4 4-1.4 3.8-1.6 3.7-1.6 3.8-1.7 3.7-2 3.7-1.8 3.5-2 3.5-2 3.6-2.3 3.4-2.2 3.4-2.4 3.3-2.5 3.3-2.4 3.2-2.6 3.2-2.7 3-2.7 3-2.8 3-3 3-3 2.8-3 2.8-3 2.7-3.3 2.6-3.2 2.5-3.3 2.5-3.4 2.4-3.5 2.3-3.4 2.3-3.6 2-3.6 2.2-3.7 2-3.7 2-3.8 1.7-4 1.8-3.8 1.6-4 1.6-4 1.4-4 1.4-4 1.3-4.2 1.2-4.2 1-4.3 1-4.2 1-4.3.7-4.4.7-4.3.5-4.5.5-4.4.4-4.5.3-4.4V577l.2-4.5V300z"/>
+ <g fill="#fff" stroke="#21231e">
+ <path d="M483.7 734.8c1.4-.2 4 0 5.7-1.4 2.5-2 1.5-9.8 1.3-14.8q-1.5-38-3.5-128-3-.2-5 .2a12 12 0 0 0-5 0q-2 89.8-3.6 127.8c-.2 5-1.2 13 1.3 14.8 1.7 1.5 4.2 1 5.6 1.4h3z"/>
+ <path d="M499.6 734c-1.5 0-4 .5-6-.8-2.6-1.7-2.8-9.7-3-14.7a6148 6148 0 0 0-7.6-127.6q3-.8 5-.5.4 0 .7-.2c9.6 59.2 13.2 101.2 19.7 126.5 1 3.5 2.8 12.2-.2 15-1.7 1.7-4.2 1.6-5.6 2z"/>
+ <path d="M518.2 731.4c-1.5 0-3.8.8-6-.3-2.7-1.4-2.6-9.4-3.8-14.2-6.6-25.3-10.2-67.3-19.7-126.5q3-.9 5-1h.2c15 57.6 19.6 98.2 31.4 123.2 1 3.5 4 12.7 1.2 16-1.5 1.7-4 1.8-5.4 2.3l-3 .6z"/>
+ <path d="M537 726c-1.5.3-4 1.6-6 .7-3-1.2-3.5-9.7-5.6-14.2-11.8-25-16.3-66-31.7-124q2.9-1 5-1.3c1.3-.6 1-1 3-1.2 18 57.3 23.7 97 40.5 121.8 2.7 4 4.7 12 3 14.5-1.5 2-4 2.3-5.3 3zm-72.2 8c1.4 0 3.8.5 5.8-.8 2.7-1.7 3-9.7 3-14.7a7227 7227 0 0 1 7.7-127.6q-3-.8-5-.5l-.7-.2c-9.6 59.2-13.2 101.2-19.7 126.5-1 3.5-3 12.2 0 15 1.8 1.7 4.3 1.6 5.7 2l3 .3z"/>
+ <path d="M446 731.4c1.6 0 4 .8 6-.3 2.8-1.4 2.7-9.4 4-14.2 6.4-25.3 10-67.3 19.6-126.5q-3-.9-5-1h-.3c-15 57.6-19.6 98.2-31.4 123.2-1.2 3.5-4.2 12.7-1.3 16 1.5 1.7 4 1.8 5.4 2.3l3 .6z"/>
+ <path d="M427.3 726c1.5.3 4 1.6 6 .7 3-1.2 3.5-9.7 5.6-14.2 11.7-25 16.2-66 31.6-124q-2.9-1-5-1.3c-1.3-.6-1-1-3-1.2-18 57.3-23.7 97-40.5 121.8-2.6 4-4.6 12-2.8 14.5 1.4 2 4 2.3 5.2 3l3 .8zm99.7-43c-1.3 0-3.3 1-5.4 0-2.8-1.4-4.6-9-6-14-12-23.5-23-65.3-40.8-123.4 1.8-.7 3-1 4.5-1q1.5-.8 4.3-1.2c19.3 57.5 28 99 46.7 122 3 3.8 5.4 12 4 14.4-1.2 1.8-3.4 2-4.6 2.6z"/>
+ <path d="M512 685.8c-1.5 0-3.6.6-5.6-.5-2.6-1.6-3.5-9.4-4.5-14.3q-7.5-37.5-26.3-126 2.6-1 4.5-.8 1.7-.7 4.5-.8c15 58.7 18.3 102.6 32.4 125 2.6 4.2 4 12.5 2.3 14.8-1.3 1.7-3.5 1.7-4.8 2.2l-2.7.4z"/>
+ <path d="M496.4 687.6c-1.4-.2-3.5.3-5.4-1-2.4-1.7-2.4-9.6-2.8-14.6q-3.1-38-11.6-127.6 2.8-.6 4.6-.3 1.7-.4 4.5-.4c8 59.6 12.8 102.8 18 127.2 1 5 2.4 12.6.4 14.8-1.4 1.5-3.6 1.4-5 1.8l-2.6.2z"/>
+ <path d="M437.2 682.8c1.4 0 3.4 1 5.5 0 2.8-1.4 4.6-9 6-14 12-23.5 23-65.3 40.8-123.4-1.8-.7-3-1-4.5-1q-1.5-.8-4.3-1.2c-19.3 57.5-28 99-46.7 122-3 3.8-5.4 12-4 14.4 1.2 1.8 3.4 2 4.6 2.6z"/>
+ <path d="M452.4 685.8c1.4 0 3.5.6 5.5-.5 2.5-1.6 3.4-9.4 4.4-14.3q7.3-37.5 26.2-126-2.6-1-4.5-.8a12 12 0 0 0-4.4-.8c-15 58.7-18.3 102.6-32.4 125-2.5 4.2-4 12.5-2.2 14.8 1.3 1.7 3.5 1.7 4.7 2.2z"/>
+ <path d="M468 687.6c1.3-.2 3.4.3 5.3-1 2.4-1.7 2.4-9.6 2.8-14.6q3-38 11.7-127.6-2.8-.6-4.6-.3-1.5-.4-4.4-.4c-8 59.6-12.8 102.8-18 127.2-1 5-2.4 12.6-.4 14.8 1.5 1.5 3.7 1.4 5 1.8l2.7.2z"/>
+ <path d="M483.5 688c1.3 0 3.5.2 5.2-1.3 2.3-2 1.4-9.8 1.2-14.8-1.2-25.4-2-68-3.3-128a14 14 0 0 0-4.6 0q-1.7-.4-4.4 0c-1.2 60-2 102.6-3.2 128-.2 5-1 12.8 1.2 14.7 1.6 1.5 4 1 5.2 1.4z"/>
+ <path d="M516.5 648c-1 0-2.5 1-4 0-2.3-1.5-3.7-9.2-4.8-14-9.2-23.5-17.5-65.4-31.2-123.5q2-1 3.4-1 1.1-.9 3.3-1c14.7 57.4 21.3 99 35.7 121.8 2.4 3.8 4 12 3 14.5-.8 1.8-2.5 2-3.4 2.5z"/>
+ <path d="M505 651c-1 0-2.7.6-4.3-.6-2-1.5-2.7-9.4-3.4-14.3q-5.6-37.5-20-126 1.9-.8 3.4-.7 1.4-.6 3.4-.8c11.5 58.7 14 102.6 25 125.2 2 4 3 12.4 1.6 14.6-1 1.7-2.7 1.8-3.6 2.2l-2 .5z"/>
+ <path d="M493 652.7c-1 0-2.6.4-4-1-2-1.7-2-9.6-2.2-14.5q-2.2-38.1-9-127.7 2.2-.5 3.6-.3 1.4-.6 3.5-.4c6 59.6 9.7 102.7 13.6 127 .7 5 2 12.8.4 15-1.2 1.5-3 1.4-4 1.7z"/>
+ <path d="M447.8 648c1 0 2.5 1 4 0 2.3-1.5 3.7-9.2 4.8-14 9.2-23.5 17.5-65.4 31-123.5q-1.7-1-3.2-1-1.4-.9-3.4-1c-14.7 57.4-21.3 99-35.7 121.8-2.4 3.8-4.2 12-3 14.5.8 1.8 2.5 2 3.4 2.5z"/>
+ <path d="M459.4 651c1 0 2.6.6 4-.6 2.2-1.5 3-9.4 3.6-14.3q5.6-37.5 20-126a8 8 0 0 0-3.4-.7q-1.4-.6-3.4-.8c-11.4 58.7-14 102.6-24.8 125.2-2 4-3 12.4-1.7 14.6 1 1.7 2.7 1.8 3.6 2.2l2 .5z"/>
+ <path d="M471.3 652.7c1 0 2.6.4 4-1 2-1.7 2-9.6 2.2-14.5q2.3-38.1 9-127.7a10 10 0 0 0-3.6-.3q-1.4-.6-3.6-.4c-6.2 59.6-9.8 102.7-13.7 127-.7 5-2 12.8-.4 15 1.2 1.5 3 1.4 4 1.7l2 .2z"/>
+ <path d="M483.2 653.2c1-.2 2.7 0 4-1.4 1.7-2 1-9.7 1-14.7q-1.3-38-2.5-128-2.2-.2-3.6.2-1.2-.4-3.4 0-1.4 89.7-2.4 128c0 5-.8 12.7 1 14.6 1.2 1.5 3 1.2 4 1.4h2z"/>
+ <path d="M475 559q-.3 6.5-.3 14l-10.6 2.3c0 4.8 12 55.4 18 55.4 6.3 0 18.2-50.6 18.2-55.5l-10.6-2v-.2q0-7.5-.2-14c-2.2 2-4.7 5.2-7.3 8-2.4-2.8-5-6-7-8z"/>
+ </g>
+ <g id="rs-d">
+ <path fill="#edb92e" stroke="#21231e" d="M412 584.5c-3 .2-7 2-18.5 12-5 10.2-10 20.5-17 29.4q-3.4 2.1-6 3.2a84 84 0 0 1-17-.5c-4.4-4-11.3-1.2-9 3.2-1.8 1.6 2.2 7.8 5.3 5.2 3-2.4 13-.2 16.4-1.4-1.3 3-10.4 5-16.8 5.5-5.8.2-5.4 6-3 10.5 2.7 1.8.5-.4 1.4.8 2.6 4 8.2 3.4 8.4-.4.2-4 13.8-9 15.8-12-2.5 6-8.2 11.5-11 17.3-3 3-5 3.7-1 10 4.4-.6 4.6-1.7 7.3.8 6-.6 7-2.4 6-7.2-1-5 3.2-14 4.6-16.6 1.2-2.4 1.5-4.8 2.8-6.3 2.2-2.5 12.6-7.7 15.2-6.3 5 2.7 8.7 1 9.3-3.7-1.6-1.2-.4-8-3.8-8.2-2.8-.3-4.4.6-7 2.7-4 3.2-6 5-7.4 4.6-3-.7 5.8-5 13.8-15.6 11-14.5 11.8-22 11.3-27z"/>
+ <use xlink:href="#rs-c" width="1350" height="900" transform="matrix(-1 0 0 1 801.6 0)"/>
+ <path fill="#edb92e" stroke="#21231e" d="M345.2 634.5c-4-2.3-6.3-2.2-8-.5-.7 1-1.8.5-1.2-1 2.7-6.3 7-7 10.7-4.2l2.8 2.7c-.6 1-3.8 2.3-4.3 3zm57.4-5.6c4.3-3 8.3-3.6 10.5-2 1.3 1 2.5.3 1.4-1.2-4.4-6.2-9.6-6.5-13.5-3q-1.7 1.5-2.8 3c1.3 1.6 4.3 3.2 4.4 3zM369 664.4c.2-.2-1-5.4-2.6-7q-2.2 1.4-4.3 3.5c-4.2 4.5-4 11 2.5 16.7 1.6 1.5 2.4 0 1.7-1.7-1-2.7.3-6.3 3-11.5zM352.6 651c-4 1.6-5.4 3.7-5.2 6.4 0 1.5-1 2-1.5.3-4.8-11.2.2-13.3 7.5-13 .4 2-.7 6.2-.8 6.2z"/>
+ <path fill="#21231e" d="m384 621.3 1 .6h-.2v1.8h.2v.4h.2v.2h.2l.2.3.3.2v.2h.4l.2.3h.2l-.6 1h-.2l-.3-.2h-.2l-.2-.2-.2-.2-.3-.3-.3-.3v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2V622l.2-.3v-.2zm6.5.8-.8 1-.2-.2-.3-.2-.2-.2-.2-.2h-.3l-.2-.3-.2-.3-.3-.2-.2-.2-.3-.2h-.7l-.2-.2h-.7v.2h-.2l-.2.2v.2h-.2v.3l-.2.2-1-.7v-.3l.2-.2.2-.2.2-.2.3-.3h.3l.2-.2h.4v-.2h.8l.2.2h.4l.2.2h.2l.2.2h.2l.2.3h.2l.2.3h.2l.3.3.2.3.2.2.3.2.2.2h.3z"/>
+ <path fill="#21231e" d="m387.3 617.6 1 .6v.4h-.2v.8l.2.2v.2l.2.2v.2l.2.2.2.3.3.2h.2l.2.2h.2l.2.2.2.2h.2l-.6 1h-.2l-.3-.2-.3-.3h-.2l-.2-.2-.2-.2-.2-.3v-.2h-.2l-.2-.2v-.2h-.2v-.5h-.2V618h.2v-.3zm6.5.8-.7 1-.2-.3h-.2l-.2-.3-.3-.2-.3-.3h-.2l-.2-.3-.2-.2-.3-.2-.3-.2h-.3v-.2h-.8l-.2.2-.2.2-.2.2v.2l-.3.2-1-.6.2-.3v-.2h.3v-.3h.3l.3-.3h.2l.2-.2h.2v-.2h1.4l.2.2h.2v.2h.3l.3.3h.2l.2.2h.2l.2.3h.2l.3.3v.2l.3.2.3.2z"/>
+ <path fill="#21231e" d="m391 612.8 1 .6-.2.2v.6h-.2v1l.2.3v.3h.2v.4h.2l.2.3v.2h.2l.2.2.2.2.3.3.3.2h.2l.2.2-.6 1-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2v-.2l-.3-.2v-.2l-.3-.2v-.2l-.3-.2v-.4l-.2-.3v-.2h-.2v-.7h-.2v-1l.2-.3v-.4l.2-.3zm7 1-.8 1-.3-.3-.3-.2-.3-.3-.3-.2v-.2l-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7l-.2.2-.2.2-.3.3v.2h-.2v.4l-1-.6v-.3l.2-.2.2-.3v-.2l.3-.2.2-.2v-.2h.3l.2-.2h.3l.2-.2h1.2l.2.2h.2l.2.2.3.2h.3l.2.3.2.2h.3l.2.3.3.2.2.2.3.2.2.2.3.2.2.3.3.2z"/>
+ <path fill="#21231e" d="m394.8 607.7 1 .5v.5l-.2.3v1.7l.2.2v.3l.2.2v.2l.2.2.3.3v.2l.3.2.2.2h.2l.2.3.2.2.3.2v.2l-.6.8-.3-.2v-.2l-.4-.2-.2-.3-.3-.3v-.2l-.3-.3-.2-.2v-.2l-.3-.3v-.2l-.3-.2-.2-.2v-.2l-.2-.2v-.3l-.2-.3v-2.1l.2-.2v-.2l.2-.3zm7.6 1.3-1 .8-.2-.3-.3-.3-.3-.2-.3-.3-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2h-.2l-.2-.2h-.3v-.2h-.7v.2l-.3.2-.2.3-.2.2v.2l-.3.2v.2l-1.2-.5.2-.3.2-.3v-.2l.3-.3.2-.2.2-.2.3-.2.3-.2h.5l.3-.2h.8l.3.2h.2l.3.2h.2l.2.3.3.3.2.2.3.2.2.2h.3l.2.3.3.3.2.2.3.3.3.4.3.3.4.3z"/>
+ <path fill="#21231e" d="m399 602.6 1.2.6v.2l-.2.2-.2.3v2.1l.2.2v.2l.2.2.2.2v.2l.2.2.2.2.2.2v.2l.3.2.2.2.2.2.3.2.2.2.3.2-.8 1-.3-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2-.2-.3v-.2l-.3-.2-.2-.2v-.2l-.3-.2v-.3h-.2v-.4l-.2-.2v-.2l-.2-.3v-2.6l.2-.2v-.2l.2-.2v-.2zm7.7 1.4-1 .8-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.2-.2-.2-.3-.3-.3-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2h-1.3l-.3.2v.2h-.2v.3l-.3.2-.2.3v.2l-1.2-.6.3-.3.2-.3.2-.2.2-.3v-.2l.4-.2h.2l.2-.2h.2l.2-.2h1.7l.2.2.2.2h.2l.2.3h.3l.3.3.2.3h.3l.2.3.3.3.2.2.3.3.3.4.4.3.3.3z"/>
+ <path fill="#fff" stroke="#21231e" d="m462.6 580.6-9.5-5.4c-4 3-6.8 13.5 0 22.2 8.5 11 12 18.7 14 27.5 6.2-8 8.3-16.3 4.4-24.5-5.3-11-8.7-17-8.8-20z"/>
+ <path fill="#fff" stroke="#21231e" d="m470.4 573-9.5-5.4c-4 3-12.5 13.2-5.6 22 8.5 10.8 17.3 19 19.4 27.7 6.2-8 8.8-16.2 5-24.4-5.4-11-9.4-17.2-9.4-20z"/>
+ <path fill="#fff" stroke="#21231e" d="m449.4 569.2-9.5-5.4c-4 3-7 13.5-.2 22.2a65 65 0 0 1 14 27.5c6.2-8 8.4-16.3 4.4-24.4-5.3-11-8.7-17-8.8-19.8z"/>
+ <path fill="#fff" d="M405.5 469c.2 8.7-1.4 66.5-1.8 74.7s-4 13.7-8 17q-5.3-7.5-6-19.3c-.4-4 .4-58.7.7-70q9.4-25.5 15-2.4z"/>
+ <path fill="#21231e" d="M404 543.8h-1l.2-1v-2.6l.2-1.7v-4l.2-2.3v-5l.2-2.7v-2.8l.2-3v-3l.2-3v-6.2l.2-3v-6.2l.2-3v-5.8l.2-2.7v-7.4l.2-2V469h1v11.7l-.2 2.5v8.3l-.2 2.8v6l-.2 3.2v3l-.2 3.2v6l-.2 3v3l-.2 2.8v5.3l-.2 2.5v2.3l-.2 2v3.6l-.2 1.5v2zm-8.7 17 .8-.5h-.6l.3-.4.4-.4.4-.3.4-.3.3-.4.5-.4.3-.3.3-.5.4-.4.4-.4.3-.4.4-.5.3-.4.2-.5.2-.5.3-.5.3-.5.2-.6.2-.5.3-.6.2-.5.2-.5v-.7l.3-.6v-.6l.3-.7v-.7l.2-.7v-.7l.2-.8v-1.5h1v2.3l-.2.7v.8l-.3.6v.8l-.3.7-.2.6-.2.8-.2.6-.2.6-.2.6-.3.6-.4.5-.2.6-.3.5-.2.5-.3.5-.3.5-.3.5-.4.4-.4.5-.3.4-.5.5-.3.4-.4.3-.3.4-.4.3-.2.4-.4.3-.4.3h-.7zm.7.2-.4.3-.3-.4h.7zm-7-19.5h1v.6l.2.8v1.4l.2.7v.6l.2.7v.6l.3.6v1.5l.3.5v.7l.3.6.2.6.2.6.2.6.2.5.2.7.2.6.2.5.3.6.2.5.3.4.2.6.3.5.3.5.3.5.2.4.3.4.3.5.3.3-.7.6-.3-.6-.4-.4-.3-.5-.3-.5-.3-.5-.3-.6-.2-.6-.3-.5-.4-.7-.2-.5-.3-.6v-.6l-.3-.5-.3-.5-.2-.6-.2-.7-.2-.6v-.7l-.3-.6-.2-.6v-.7l-.3-.5v-.7l-.2-.7-.2-.6v-.6l-.2-.7v-1l-.2-.8v-1.5zm1-70.2.8.3v8l-.2 2.3V492l-.2 2.7v11.6l-.2 3v19l-.2 2.2v11h-1v-20.9l.2-2.7v-14.6l.2-2.8V489l.2-2.6v-8.9l.2-2v-4.2zm16-2.3h-1l-.4-1.3-.3-1.3-.4-1-.5-1.2-.4-1-.2-1-.4-.7-.4-.8-.4-.6-.4-.4-.4-.4-.4-.3-.3-.3h-.3l-.4-.2h-.7l-.4.3-.4.3-.5.5-.5.4-.5.5-.5.7-.5.7-.5.8-.5 1-.6 1-.5 1.2-.6 1.3-.6 1.3-.6 1.5-.6 1.6-1-.3.7-1.6.6-1.5.7-1.3.6-1.4.5-1.2.6-1 .5-1 .5-1 .5-.8.6-.7.5-.7.6-.6.6-.4.5-.4.6-.3.5-.2h1.1l.5.3.5.3.5.5.5.5.4.6.4.6.5.8.4.8.4 1 .5 1 .3 1 .4 1.4.4 1.3.4 1.4zm0 0"/>
+ <path fill="#fff" d="m368 454.8-2.6 79.6c-.8 7 8.4 49 13.5 57.4 12.3-5.3 15-33.8 12.6-61.6s.4-51.8 2.3-56.8c0-6.3-1-12.8-1-19.3-8 .5-17.2.4-25 .8z"/>
+ <path fill="#21231e" d="m365 534.4 2.4-79.6h1l-2.5 79.6h-1zm13.7 57 .3.8-.6-.2-.5-1-.6-1-.5-1.2-.7-1.4-.5-1.6-.6-1.6-.6-1.8-.6-2-.5-2-.6-2-.7-2.2-.6-2.2-.6-2.3-.4-2.3-.6-2.3-.5-2.3-.6-2.3-.6-2.3-.4-2.2-.5-2.2-.4-2.2-.3-2-.4-2.2-.3-2-.3-1.8-.3-1.7-.2-1.6v-1.4l-.3-1.3v-2.8h1v4.1l.2 1.5.2 1.6.3 1.7.3 1.8.3 2 .4 2 .4 2.2.5 2.2.4 2.2.4 2.3.5 2.2.4 2.3.6 2.3.5 2.4.6 2.3.7 2.2.5 2.2.6 2 .6 2.2.6 2 .6 2 .5 1.7.7 1.5.6 1.5.5 1.4.5 1.2.5 1 .5 1-.6-.3zm.3.8-.4.2-.2-.4zm12-62h1l.3 2.5v2.7l.3 2.6v2.6l.2 2.6v12.5l-.3 2.4-.2 2.5-.2 2.3v2.3l-.4 2.3-.4 2.2-.3 2-.6 2-.4 2-.6 2-.5 1.7-.8 1.7-.6 1.5-.7 1.5-1 1.5-.7 1.3-1 1.2-1 1-1 1-1 1-1 .6-1.3.6-.3-1 1-.4 1-.7 1-.7 1-1 1-1 .7-1 .8-1.3.8-1.4.7-1.5.6-1.5.6-1.6.5-2 .5-1.7.5-2 .4-2 .3-2 .3-2 .3-2.3v-2.3l.4-2.3V558l.3-2.3V538l-.2-2.6-.2-2.6-.2-2.6zm2.4-56.8h1v.2l-.2.5-.2.7-.2.7-.2 1-.2.8-.2 1-.2 1.2v1.2l-.3 1.3-.2 1.3-.2 1.4v1.6l-.3 1.6v1.7l-.3 1.7v2l-.2 1.8v2l-.2 2V520l.2 2.5.2 2.5.2 2.6v2.5l-1 .2v-2.6l-.3-2.5-.2-2.5V520l-.2-2.5v-20.1l.2-2v-2l.3-2v-1.7l.2-1.7.2-1.8.2-1.6v-1.4l.3-1.5.2-1.3v-1.2l.3-1V477l.3-1 .2-.8.2-.7.2-.7.2-.5zm1 0v.2zm-1.5-18.8v-1l.4.4v3.7l.2.6v2.5l.2.6v1.8l.2.6v2.4l.2.6v3.6l.2.6v2.4h-1V468l-.2-.5V465l-.2-.5v-1.9l-.2-.6v-1.7l-.2-.6v-3l-.2-.6V454l.5.6zm0-1h.4v.4l-.5-.4zm-24.6 1.2h-1l.4-.5h3.9l.8-.2h12.8l.8-.2h4.7l.8-.2h1.7v1h-4.1l-.7.2h-8l-.8.2h-7.1l-.8.2h-3.9l.4-.4zm-1 0v-.4h.4zm.5 0h.4-.5zm-.6 0v-.4h.4z"/>
+ <path fill="#fff" d="m353 468 1.8 79.5c-.4 7 11 48.5 16.4 56.5 12.6-9.8 10-49.8 8.2-62-4-24-3.2-52-2-56.5 0-6.3-.2-13.8-.6-20.4q-12 1.6-23.7 2.8z"/>
+ <path fill="#21231e" d="m354.3 547.5-1.7-79.6 1-.2 1.7 79.6h-1zm16.6 56 .5 1-.7-.2-.5-1-.6-1-.6-1.2-.5-1.2-.7-1.6-.6-1.6-.7-1.8-.7-1.8-.7-2-.5-2-.7-2.2-.7-2.2-.6-2.2-.7-2.3-.7-2.2-.7-2.3-.6-2.3-.6-2.3-.5-2.3-.6-2.2-.6-2.2-.5-2-.6-2-.4-2-.4-2-.4-1.6-.3-1.6-.3-1.3-.2-1.3v-1.2l-.2-1v-.8h1v1.8l.2 1 .2 1.3.2 1.5.2 1.5.3 1.7.4 2 .4 1.8.4 2 .5 2 .6 2.2.4 2.2.6 2.3.7 2.3.6 2.3.7 2.2.6 2.3.7 2.3.7 2.3.7 2.2.7 2 .7 2.2.8 2 .7 1.8.6 1.7.8 1.7.6 1.4.6 1.3.6 1.2.5 1 .6.7h-.7zm.5 1-.4.2-.2-.4h.7zM379 542l1-.2v1.2l.2 1.4.2 1.5.2 1.8.2 1.7v2l.3 2 .2 2v2l.2 2.3v12l-.2 2.4v2.3l-.3 2.4-.4 2.4-.3 2.4-.3 2.2-.4 2.2-.5 2.2-.4 2-.6 2-.7 2-.8 1.6-.8 1.7-1 1.5-1 1.3-1 1.4-1.2 1-.6-.8 1-1 1-1 1-1.4.8-1.4.8-1.6.8-1.7.6-1.8.6-2 .5-2 .6-2 .4-2.2.4-2.3.3-2.3.2-2.4v-2.3l.3-2.4V569l.2-2.2V560l-.2-2.3v-2.2l-.2-2v-2l-.2-2-.2-1.6-.2-1.8-.2-1.5v-1.3l-.3-1.2zm-2-56.7h1v.6l-.2.7-.2.7v1l-.2.8v2.4l-.2 1.3v2.8l-.2 1.6v15.2l.2 2v2.3l.3 2v2.4l.3 2.3v2.2l.3 2.2.4 2.3.2 2.4.3 2.2.2 2.3.3 2.2.4 2.3-1 .2-.5-2.3-.3-2.4-.3-2.3-.4-2.3-.2-2.4-.2-2.3-.2-2.3-.2-2.3-.2-2.2v-2.3l-.3-2.2V512l-.2-2v-16l.2-1.4v-1.3l.2-1.2v-2l.3-1v-.8l.2-.6v-.7.2zm-.2-20v-1l.5.6v3.4l.2.7v3.8l.2.6v6l.2.6v5.3h-1V480l-.2-.7v-5.7l-.2-.6v-4.5l-.2-.7v-2.4l.4.4zm0-1h.4v.6l-.5-.4zm-23.7 4v-1l.8-.2h.8l.7-.2h2.2l.7-.2h.8l.7-.2h.8l.7-.2h1.4l.7-.2h.8l.7-.2h.6l.8-.2h1.7l.6-.2h.7l.8-.2h.8l.7-.2h1.5l.8-.2h.7l.7-.2h.8l.7-.2v1h-.6l-.6.2h-.8l-.7.2h-1.6l-.7.2h-.8l-.8.2h-.8l-.7.2h-1.5l-.7.2h-.8l-.7.2h-.7l-.8.2H362l-.7.2h-.7l-.8.2h-.7l-.6.2H357l-1 .2h-.6l-.7.2h-.8zm.2-1v1l-.6-.6.5-.6zm-.6.4v-.6h.5l-.4.5z"/>
+ <path fill="#fff" d="m342.2 486.7 21-.5c-2 8.6-.5 35.6 3.2 56.2 3.3 19.3 8 69.3-12 81.3-12.5-26.4-3-52-9.2-75-5-24.3-6-44.6-3-62"/>
+ <path fill="#21231e" d="m363 486.7-20.8.5v-1l21-.5.4.6zm0-1h.7v.6zm3.8 56.6-1 .2-.3-2-.3-2-.3-2-.4-2-.3-2-.2-2-.2-2.2-.2-2-.2-2.2-.2-2-.2-2-.2-2-.2-2.2v-2l-.3-2v-2l-.2-2V499l-.2-1.7v-4.5l.2-1.4v-1.2l.2-1.2v-1l.3-1v-1l1 .3v.8l-.2 1v1l-.2 1.3v5.4l-.2 1.6v4.9l.2 1.8v4l.2 1.8v2l.3 2v2l.3 2 .2 2v2l.3 2.2.3 2 .2 2.2.3 2 .3 2 .3 2 .3 2.2.2 2 .3 2 .3 2zM354 624l.8-.6-.7-.2 2-1.2 1.5-1.4 1.5-1.6 1.4-1.8 1.3-2 1-2 1-2.3 1-2.6 1-2.5.6-2.8.6-2.7.4-2.8.4-3 .4-3 .3-3 .2-3v-3l.2-3v-6.2l-.2-3-.2-3v-3l-.4-3-.2-2.7-.3-2.7-.2-2.5-.4-2.5-.2-2.4-.3-2.2-.3-2-.3-2h.8l.4 1.8.3 2 .3 2.3.3 2.3.4 2.5.3 2.7.3 2.7.2 2.8.2 3 .2 2.8.2 3v15.5l-.3 3-.3 3.2-.4 3-.4 2.8-.5 3-.8 2.7-.7 2.7-.8 2.6-1 2.4-1 2.4-1.2 2.2-1.3 2-1.4 2-1.6 1.5-1.7 1.5-1.8 1.3zm.7 0-.5.4-.3-.5h.7zm-10-75.2 1-.2.5 2.2.4 2.2.4 2.2.3 2.2.3 2.2.2 2.3v2l.2 2.4v25.4l.2 2.4v2.4l.3 2.4.3 2.4.3 2.4.5 2.4.4 2.4.5 2.4.7 2.5.7 2.4.8 2.5 1 2.5 1 2.4-.8.5-1.2-2.6-1-2.5-.8-2.6-.8-2.5-.7-2.5-.5-2.5-.5-2.4-.4-2.5-.2-2.3-.3-2.5-.2-2.4V594l-.2-2.4V564l-.2-2.3-.2-2.3-.2-2.2-.4-2.2-.3-2-.5-2.3-.5-2v-.2zm-2.5-62.6v1l.5-.4-.3 1.6-.2 1.7-.2 1.7-.2 1.7-.2 1.7v1.8l-.3 1.8v3.5l-.2 2v7.3l.2 2v1.8l.2 2v2l.2 2 .2 2 .2 2 .2 2 .3 2 .2 2 .3 2.3.3 2 .3 2.2.4 2.2.4 2.2.4 2 .4 2.4.4 2.2-1 .2-.4-2.2-.4-2.3-.4-2.2-.4-2-.3-2.3-.4-2.2-.3-2-.3-2.2-.2-2-.3-2.2-.2-2-.2-2-.2-2v-2l-.2-2v-2l-.2-1.8v-13l.2-1.8v-1.8l.2-1.7.2-1.7.2-1.7.2-1.7.2-1.7.3-1.7.5-.4zm-.5.4v-.4h.5zm.5 0v-.4zm-.5 0v-.4h.5z"/>
+ <path fill="#fff" d="M422 454.4c0 8.7-3.2 66.5-4 74.6s-4.5 13.6-8.4 16.6q-5.1-7.5-5.5-19.3c0-4 2.3-58.7 3-70 7-17 11.8-17.4 15-2z"/>
+ <path fill="#21231e" d="M418.5 529h-1v-1l.2-1v-1.5l.2-1.7v-2l.2-2v-2.3l.3-2.4v-2.5l.3-2.7.2-2.8v-3l.3-3 .2-3 .2-3v-3l.3-3.2.2-3 .2-3.2v-3l.3-3V474l.3-3v-2.5l.2-2.4V464l.2-2v-2l.2-1.8v-3.7h1v5.6l-.2 2v2l-.2 2.3v2.6l-.3 2.6-.2 2.7v2.8l-.3 3-.2 3v3l-.3 3-.2 3v3.2l-.3 3-.2 3.2-.2 3v3l-.2 2.7-.2 2.6v2.6l-.3 2.4v2.3l-.3 2v2l-.2 1.5v1.5l-.2 1.2v1zm-9.3 17 .8-.6-.7-.2.4-.2.3-.3.4-.4.3-.3.4-.3.4-.4.4-.3.3-.4.4-.4.4-.4.3-.5.4-.4.3-.6.3-.4.3-.5.3-.5.3-.5v-.5l.4-.6.2-.5.3-.7v-.6l.3-.6.2-.5.2-.7.2-.6V532l.3-.8v-.8l.2-.7v-.7h1v1.6l-.2.7-.2.7v.7l-.2.7-.2.7-.2.8-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.3.5-.2.5-.3.5-.3.5-.5.5-.3.5-.3.4-.4.4-.4.4-.3.4-.5.4-.4.4-.2.4-.4.3-.4.4-.3.4-.4.3-.4.3h-.8zm.7 0-.5.4-.3-.5h.7zm-6.4-19.7h1v2.8l.2.8v.7l.2.7v1.2l.3.6v.8l.2.6.2.7v.7l.3.6v.6l.3.5.2.6.2.6.2.6v.6l.3.5.3.6.2.4.2.5.3.5.3.5.2.5.3.4.4.4.3.5.3.4-.8.5-.3-.6-.4-.4-.3-.5-.3-.6-.3-.6-.3-.5-.3-.6v-.6l-.4-.5-.2-.6-.2-.6-.2-.4-.2-.6-.2-.6-.2-.6-.2-.6-.2-.7-.2-.6v-.7l-.3-.7v-.6l-.2-.7v-.6l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-1.5zm3-70 .8.3v-.2 2.6l-.2 1.6v2l-.2 2v2l-.2 2.4v2.5l-.2 2.6v2.8l-.3 2.8v2.8l-.2 3v2.8l-.2 3v3l-.2 2.8v3l-.3 2.7v2.7l-.2 2.7v7.3l-.2 2v3.8l-.2 1.6v3.3h-1v-6.8l.2-2V513l.2-2.4V508l.2-2.6.2-2.8v-2.8l.2-3V494l.2-3 .2-2.8v-3l.2-2.8v-3l.3-2.7V474l.2-2.5V469l.2-2.4v-4.2l.2-1.8V459l.2-1.5v-1.2zm16-2h-1v.2l-.3-1.4-.3-1.2-.3-1.2-.4-1-.3-1-.4-1-.3-1-.4-.6-.5-.6-.4-.5-.2-.5-.4-.4h-.4l-.3-.2h-1.1l-.4.2-.5.2-.4.4-.5.5-.5.6-.6.7-.5.7-.5 1-.6.8-.5 1-.6 1.2-.7 1.2-.6 1.4-.6 1.4-.6 1.6-1-.4.7-1.6.8-1.4.6-1.4.6-1.2.6-1.2.6-1 .6-1 .6-1 .6-.7.5-.7.6-.6.6-.6.6-.4.5-.3h.6l.5-.3h1.2l.5.3.5.4.5.4.4.5.4.6.4.5.4.8.3 1 .4.8.3 1.2.3 1 .4 1.3.3 1.4.3 1.3zm-.5 0h.6-.5zm.6 0"/>
+ <path fill="#fff" d="M385 407.2c-.6 18.7-1 59-.8 62.6a51 51 0 0 0 6.7 22.6c4-3 7.7-8.5 8.4-16.6.6-6.7.8-39.5 1-56-4.3-2.6-8.7-6-12.2-9.7l-3.2-2.8z"/>
+ <path fill="#21231e" d="M384.7 469.8h-1v-23.4l.2-2.4v-19.6l.2-2.4v-9l.2-2v-3.8h1v7.8l-.2 2.4v9.4l-.2 2.5v12.5l-.2 2.4v25.4zm6 22.2.5.8h-.7l-.3-.6-.3-.5-.4-.6-.4-.4-.3-.6-.4-.6-.3-.7-.3-.6-.2-.6-.3-.7-.3-.7-.3-.7-.3-.7-.3-.8-.2-.7-.3-.7-.3-.8-.2-.8-.2-.7-.2-.8v-.8l-.3-.8v-.8l-.3-.8v-.8l-.2-.8v-.8l-.2-.8v-.7l-.2-.7v-1.5h1v2.5l.2.8v.8l.3.7v.8l.2.8.2.8.2.8v.7l.2.7.3.8.2.7.2.8v.8l.4.7.2.7.3.7v.7l.4.6.3.7.3.7.2.6.3.6.3.5.3.6.4.6.3.6.3.5.3.4h-.7zm.5.8-.4.3-.3-.3zm7.7-17h1l-.2.8v.8l-.2.7v.8l-.3.7-.2.7v.7l-.2.5-.2.7-.2.6-.3.6v.6l-.4.6-.2.6-.3.5-.2.5-.3.6-.3.5-.3.5-.4.4-.4.5-.3.4-.5.6-.3.4-.4.4-.3.4-.4.4-.3.3-.3.4-.4.2-.4.3-.4.3-.6-.8.4-.3.3-.3.4-.3.4-.2.4-.4.4-.3.3-.3.4-.4.4-.4.3-.5.4-.4.3-.3.3-.5.3-.5.3-.4.3-.5.2-.6.3-.5.2-.5.3-.6.2-.6.2-.5.2-.6.2-.8.2-.6.2-.6v-.7l.3-.7v-.7l.2-.8v-.7l.2-.8zm1-55.5.6-.8.2.4v18.8l-.2 2.2v14.6l-.2 2v8.9l-.2 1.5v4.3l-.2 1v2.6h-1V471l.2-1.5v-6.3l.2-1.8v-12l.2-2v-20.8l.2-1.7v-5.1l.2.3zm.6-.8h.2v.4l-.2-.5zm-12.4-9.8v1l.4-1 .3.4.2.5.4.3.3.3.3.5.3.3.4.3.3.4.4.4.3.3.4.4.4.3.4.3.3.3.4.3.3.4.4.3.4.3.5.3.3.2.4.2.4.3.4.3.4.3.4.3.4.3h.4l.4.4.4.3.4.2.4.2.4.3-.6.8-.4-.3-.4-.2-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.4-.3-.3-.4-.3-.3-.3-.4-.3-.4-.3-.5-.2-.4-.3-.2-.3-.4-.4-.4-.3-.3-.3-.4-.3-.4-.5-.4-.3-.4-.3-.3-.5-.5-.3-.3-.4-.3-.3.2-.8zm-.3.8-1-.8h1.2l-.3.8zm-2.5-3.3h-1l1-.3.2.2.2.2v.2h.3v.3h.4v.2l.3.2.3.2v.2h.3v.2h.2v.2h.3l.2.2v.2h.2v.2l-.2.8v-1l-.3 1h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2l-.2-.2-.3-.3h-.3v-.3h-.3v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l1-.4zm-1 0v-1.4l1 1z"/>
+ <path fill="#fff" d="M400 419.3c-.4 20-.2 51.7 0 54.3a34 34 0 0 0 5.4 19.3c4-3.2 8-8.8 8.8-17 .5-5 2-26.4 2-42.8-5.3-1.7-12-10.4-16.3-14z"/>
+ <path fill="#21231e" d="M400.4 473.5h-1v-12.9l-.2-1.7v-33.7l.2-2v-4h1v14.5l-.2 2v37.1l.2.5v.3zm4.7 19 .7.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.3-.5-.2-.5-.3-.5-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6v-.6l-.3-.7v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-1.5l-.2-.7v-1.4h1v2.8l.2.7v.7l.2.7v.7l.2.7v.7l.2.6v.7l.3.6v.6l.3.5v.6l.3.7.3.6.2.6.2.5.2.5v.6l.4.5.2.7.3.5v.5l.4.5.2.5.3.5.2.5.3.5.3.4zm.7.8-.4.3-.3-.4zm8-17.3h1v1.7l-.3.7v.7l-.3.8v.7l-.2.7-.2.7-.2.5-.3.7v.6l-.4.6-.2.6-.3.5-.2.6-.3.6-.4.6-.2.5-.3.5-.4.5-.2.4-.4.6-.3.4-.3.5-.3.4-.4.3-.4.3-.4.4-.3.3-.5.4-.4.3-.3.3-.6-.8.5-.3.3-.3.4-.4.4-.3.3-.4.3-.4.3-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.3-.3.3-.6.3-.4.2-.5.3-.5.2-.5.3-.6.2-.6.2-.6.2-.6.2-.7.2-.7.2-.7v-.7l.3-.8v-.7l.2-.7v-.8zm2.4-42.3.4-1 .3.5v7.9l-.2 1.6v5.1l-.2 1.6v1.7l-.2 1.7v4.6l-.2 1.6v2.9l-.2 1.3v1.4l-.2 1.3v2.5l-.2 1v2.2l-.2 1v1.6l-.2.7v1.1h-1v-2l.2-.8v-1.8l.2-1v-2.2l.2-1.2v-2.7l.2-1.3v-1.5l.2-1.4V457l.2-1.6v-1.6l.2-1.6V449l.2-1.6V443l.2-1.6V433l.5.5zm.4-1h.3v.5zm-16-13.4h-1l.8-.4.5.2.4.4.5.4.5.4.5.5.4.4.4.4.5.5.4.6.5.4.4.5.5.4.5.6.5.5.5.5.5.6.6.5.5.6.7.5.5.6.5.5.6.5.5.5.5.4.6.4.4.4.5.3.4.3.5.3.4.3.5.2.4.2-.3 1-.5-.2-.5-.3-.5-.2-.6-.3-.6-.4-.6-.3-.5-.4-.6-.4-.5-.4-.6-.5-.5-.5-.5-.5-.5-.5-.6-.5-.5-.5-.7-.5-.5-.6-.5-.5-.6-.5-.5-.6-.5-.4-.5-.5-.5-.5-.5-.5-.5-.5-.5-.4-.4-.4-.5-.4-.4-.5-.6-.4-.4-.3-.4-.4.8-.3zm-1 0v-1l.8.6-.8.2z"/>
+ <path fill="#fff" d="M387 405.6 373 385c-2.8 10.2-6.3 82.8-2.2 88.8a36 36 0 0 0 6.4 19.3c4-3 9.8-8.5 8-16.7-1.6-8.2.4-62.3 2-70.7z"/>
+ <path fill="#21231e" d="m373.3 384.7 14.2 20.6-.8.5-14.3-20.5v-.4zm-1 .2.4-1 .5.7-.8.2zm-1.2 88.7h-1l.2.3-.5-.8-.3-1.2-.3-1.5v-1.8l-.3-2-.2-2.5v-2.6l-.2-2.8v-20.3l.2-3.7V431l.2-4 .2-3.6v-3.8l.3-3.7.2-3.7.2-3.4.3-3.5.2-3.2.3-3 .2-3 .3-2.5.3-2.4.2-2 .3-2 .3-1.3.4-1 1 .2-.3 1-.2 1.5-.3 1.8-.3 2-.2 2.4-.3 2.5-.3 2.8-.2 3-.3 3.3-.3 3.3-.2 3.4-.2 3.6-.2 3.7v3.7l-.3 3.8v3.8l-.2 3.7v3.8l-.2 3.6v19.6l.2 2.6.2 2.3.2 2v1.8l.4 1.5.3 1 .3.7zm0-.2v.2zm5.7 19.2.6.8-.7-.2-.3-.4-.3-.6-.3-.5-.3-.6-.3-.5-.2-.6-.3-.6-.3-.5-.3-.6-.4-.5-.2-.6-.3-.6v-.6l-.4-.6-.2-.6-.2-.6-.3-.6-.3-.6-.2-.7v-.6l-.3-.5-.2-.7v-.7l-.3-.6v-.6l-.2-.7v-.6l-.2-.7v-1.5l-.2-.7v-.7h1v1.4l.2.7v.6l.2.6v.7l.2.6v.7l.2.6.2.6v.6l.3.6.2.7.2.6.2.7v.6l.3.6.2.5.3.6.2.6.3.6.2.5.3.6.3.5.3.5.3.6.3.4.2.5.3.4.3.4.3.5.4.5h-.7zm.6.8-.4.3-.4-.5zm7.4-17 1-.3v.8l.2.7v3l-.2.7-.2.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.3.5-.4.6-.3.4-.4.5-.5.4-.3.5-.4.4-.4.4-.4.4-.5.5-.4.4-.3.5-.4.3-.4.4-.5.3-.4.3-.3.4-.4.3-.6-.8.4-.3.5-.3.4-.2.3-.4.3-.3.4-.3.4-.4.4-.3.4-.4.4-.5.4-.3.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.5.3-.5.2-.6v-.6l.3-.5.2-.5.2-.7v-.6l.2-.6v-3.1l-.2-.7zM387 406v-1l.6.7-.2 1-.2 1v1.4l-.3 1.7-.2 2-.2 2v2l-.3 2.4v2.5l-.3 2.6v2.8l-.2 2.7-.2 2.8v3l-.2 2.8v3l-.2 3v8.5l-.2 2.8v13.5l.2 2v1.5l.2 1.4v1l.2 1-1 .2v-1l-.2-1v-1.5l-.2-1.7v-4l-.2-2v-15.5l.2-3V441l.2-3v-2.8l.2-3 .2-2.7v-2.8l.2-2.7.2-2.5V419l.3-2.3v-2.2l.3-2v-2l.3-1.5.3-1.4v-1.2l.3-1 .5.7zm0-1h.7v.7zm0 0v1l-.3-.2.4-.7zm0 1h-.2v-.2l.3.3z"/>
+ <path fill="#fff" d="M358 451.2q-1.2 17-1 23 .3 11.6 5.5 19.2c4-3 9-8.5 8.4-16.6-2-31.5 1.4-61 5.4-89.6-3.4-2.5-9-5-12.5-7.6q-10.4 57.3-6 71.6z"/>
+ <path fill="#21231e" d="M357.4 474h-1v-7.4l.2-.7V463l.2-.7V459l.2-1v-1.8l.2-1v-3l.2-1h1v2l-.2 1v2l-.2 1v2.8l-.2.7v3.2l-.2.7v4.2l-.2.6v4.3zm4.8 19 .6.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.2-.5-.3-.5-.3-.6-.2-.4-.3-.6-.2-.5-.3-.6-.2-.7-.2-.6-.2-.6-.2-.5-.2-.6v-.7l-.3-.6v-.7l-.3-.6v-.7l-.2-.6-.2-.6v-.7l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-.7h1v2.2l.2.7v1.2l.2.7v.6l.2.6v.7l.2.5.2.7v.6l.3.6v.6l.3.6.2.6.2.6.2.6.2.6.2.5.2.6.2.6.3.6.2.5.2.5.2.5.3.5.3.5.3.5.3.5.3.4zm.6.8-.4.3-.3-.3h.8zm7.6-17h1v3.7l-.3.7v.6l-.2.7v.7l-.4.6-.2.6-.2.6-.3.6-.3.6-.3.5-.2.6-.3.5-.4.5-.2.5-.4.4-.4.5-.4.4-.3.6-.4.4-.5.4-.4.4-.3.4-.4.3-.4.3-.5.4-.4.3-.2.3-.6-.8.3-.3.4-.3.3-.3.3-.2.4-.4.4-.3.4-.3.4-.4.3-.4.4-.5.3-.4.3-.4.4-.4.3-.5.3-.5.3-.5.2-.5.3-.5.3-.5.2-.6.3-.6.2-.5.2-.6.2-.8v-.6l.2-.6v-.7l.2-.6zm5.7-89.2.7-.8.2.5-.5 2.6-.4 2.6-.3 2.7-.3 2.7-.4 2.7-.3 2.7-.3 2.7-.4 2.8-.3 2.8-.3 2.7-.3 2.8-.2 2.8-.2 2.8-.3 2.7-.2 2.8v3l-.3 2.7-.2 2.8-.2 2.8v2.8l-.2 3v8.5l-.2 3v8.6l.2 3v3l.2 2.8.2 3h-1l-.2-3v-3l-.2-2.8v-5.8l-.2-3V451l.2-2.8v-3l.2-2.7v-2.7l.3-3 .2-2.7.2-2.8V428l.3-2.7.3-2.8.3-2.8V417l.4-2.8.3-2.7.3-2.8.4-2.7.3-2.7.4-2.7.4-2.7.4-2.8.3-2.7.5-2.7.4-2.7v.6zm.7-.8.2.2v.3l-.3-.5zm-12.3-7-1-.3.8-.3.3.2.4.2.2.3h.3l.4.3.3.3.4.2.4.2.5.3.4.2.3.2.4.3.4.2.5.3.5.2.4.2.4.2.4.2.5.3.4.2.5.2.4.2.3.2.4.3h.4l.5.4.4.2.3.2.3.3.4.3.3.3.4.2-.6.8-.2-.2-.4-.3h-.3l-.3-.3-.3-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.4-.2-.5-.2-.5-.3-.4-.2-.4-.2-.4-.2-.4-.2-.4-.3h-.4l-.4-.4-.4-.2-.4-.2-.4-.3-.4-.3-.3-.3-.4-.2-.4-.2.8-.3zm-1-.3.2-.8.6.5zm-6 71.4.8.6-.8-.2-.3-1v-1l-.3-1-.2-1.3v-1l-.2-1.4V443l-.2-1.6v-5l.2-1.8v-2l.2-2 .2-2 .2-2.3.2-2.3.2-2.5.3-2.4.3-2.5.3-2.6.4-2.8.4-2.8.4-3 .4-2.8.5-3 .6-3.2.5-3.2.6-3.3.6-3.5.6-3.5.6-3.5 1 .2-.6 3.5-.6 3.5-.6 3.4-.5 3.3-.4 3.3-.5 3-.4 3-.4 3-.4 3-.4 2.7-.3 2.7-.3 2.7-.3 2.5-.2 2.4-.3 2.4-.3 2.3v2.2l-.3 2v2l-.2 2v9.8l.2 1.4v1.2l.3 1 .2 1.2v1l.4 1-1-.3zm.8.6-.5.6-.3-.8zm0 0-.7-.7 1 .3zm-.7-.7 1-1v1.3z"/>
+ <path fill="#fff" d="m343.6 471.8 4 14.7c.2 7.7 5 14 8.3 19 4-3 7.5-8 6.5-16-5.8-46.5-3.8-77.3 6-115-22 15-32.3 46.6-25 97.3z"/>
+ <path fill="#21231e" d="m347 486.6-3.8-14.7 1-.3 3.8 14.6zm8.6 18.7.6.7h-.7l-.3-.6-.3-.5-.4-.5-.4-.5-.3-.5-.5-.6-.3-.6-.4-.5-.3-.7-.4-.5-.2-.6-.4-.5-.3-.6-.2-.5-.4-.6-.3-.7-.2-.6-.3-.6-.3-.5-.3-.7-.3-.6-.3-.7-.2-.7-.2-.6-.2-.7-.2-.7-.2-.7v-.6l-.2-.7v-.8l-.2-.8v-.7h1v1.4l.2.7v.7l.2.7.2.6v.6l.3.7v.5l.4.7.2.6.3.6v.6l.4.7.3.6.3.6.3.4.3.6.4.6.3.6.3.5.4.6.3.5.4.5.3.6.3.4.4.5.3.4.4.5.3.4.3.5.4.3h-.8zm.6.7-.4.3-.3-.4h.8zm5.8-16.5h1v5.5l-.2.6v.7l-.3.6v.4l-.3.6-.2.6-.3.5-.2.6-.2.5-.3.6-.3.5-.3.6-.3.4-.2.4-.3.4-.4.5-.2.3-.3.4-.4.4-.3.3-.3.4-.4.4-.4.3-.3.3-.7-.8.4-.3.4-.4.3-.3.4-.3.4-.3.3-.4.4-.3.4-.4.3-.4.3-.4.3-.4.3-.4.3-.4v-.5l.4-.3.2-.5.2-.5.2-.5.2-.5.2-.5.2-.6v-.6l.2-.5v-.6l.2-.7v-5.1zm6.8-114.7-.6-1 .8.7-1 3.5-.8 3.5-.8 3.4-.7 3.4-.7 3.4-.7 3.3-.6 3.5-.6 3.4-.4 3.2-.5 3.3-.3 3.4-.4 3.2-.4 3.4-.4 3.3-.2 3.3-.2 3.4-.2 3.4v3.6l-.2 3.5v14.7l.3 3.7.3 4 .2 3.8.3 4 .4 3.8.3 4 .5 4.2.4 4.3.6 4.4h-1l-.6-4.2-.4-4.3-.5-4.2-.3-4-.4-4-.3-4-.2-3.8-.2-3.8v-3.7l-.2-3.7v-14.3l.2-3.4.2-3.4.2-3.4.2-3.4.3-3.3.3-3.4.4-3.3.4-3.3.6-3.4.5-3.3.7-3.4.6-3.3.7-3.4.7-3.4.8-3.5.8-3.4.8-3.5 1-3.6.8.6zm-.6-1 1-.6-.2 1.3zm-24 98h-1l-.7-4.6-.5-4.6-.5-4.5-.3-4.3-.3-4.2-.2-4.2v-8l.2-3.8.2-3.7.3-3.7.4-3.4.5-3.4.6-3.3.8-3.3.7-3 1-3 1-3 1-2.8 1-2.8 1.2-2.5 1.3-2.5 1.4-2.4 1.5-2.3 1.4-2 1.6-2.2 1.7-2 1.7-2 2-1.6 1.8-1.7 2-1.6 2-1.5.6.8-2 1.4-2 1.6-1.8 1.6-1.8 1.7-1.8 2-1.6 2-1.6 2-1.5 2-1.4 2.3-1.4 2.4-1.4 2.4-1.2 2.6-1 2.7-1 2.7-1 3-1 3-.7 3-.7 3-.6 3.4-.5 3.3-.5 3.5-.3 3.6-.3 3.7-.2 3.8v12l.4 4.4.3 4.3.5 4.5.5 4.6.6 4.7zm-.6 0h.5-.4zm-.4 0"/>
+ <path fill="#fff" d="m344.8 486.2-20.3-6.7c-2.5 20.2 1.4 45.6 7 79 4.6 29 2 51.6-1.5 66.2 21.6-3 30.7-30.7 20-83-3-13.7-5.8-31.3-5.2-55.5"/>
+ <path fill="#21231e" d="m324.7 479 20.2 6.7-.4 1-20.2-6.7-.3-.6zm-.6.4v-.6l.7.2zm8 79-1 .3-.6-3-.5-3.2-.6-3-.5-3-.5-3-.5-2.8-.4-3-.4-2.7-.4-2.7-.4-2.7-.4-2.7-.3-2.7-.4-2.6-.3-2.6-.3-2.4-.2-2.5-.3-2.3-.2-2.4-.2-2.4v-2.4l-.3-2.3V500l-.2-2v-10.7l.2-2 .2-2v-2l.4-2 1 .3-.2 2-.2 1.8v2l-.2 2v4l-.2 2v4.3l.2 2.3v2.3l.2 2.3.2 2.3.2 2.2.2 2.4.3 2.4.2 2.5.3 2.5.3 2.5.3 2.6.4 2.8.4 2.6.3 2.7.4 3 .6 2.7.4 2.8.4 3 .5 3 .4 2.8.5 3 .4 3 .5 3.2zm-2 65.8v1l-.5-.6.4-1.4.2-1.4.3-1.5.3-1.5.3-1.6.4-1.6.3-1.7.2-1.8.2-1.7.2-1.8.2-2 .2-1.8v-2l.3-2 .2-2v-2l.2-2v-13.4l-.2-2.3-.2-2.4-.2-2.4-.2-2.5-.3-2.5-.3-2.6-.3-2.6-.4-2.6-.4-2.7 1-.2.3 2.7.4 2.7.3 2.5.3 2.6.3 2.6.2 2.5.2 2.6v2.4l.3 2.4v6.8l.2 2.3v4.3l-.2 2v2l-.2 2v2l-.2 2-.2 2-.2 1.8-.3 1.8v1.8l-.4 1.7-.2 1.8-.3 1.6-.2 1.6-.3 1.5-.3 1.5-.4 1.5-.3 1.4-.5-.8zm0 1h-.6v-.6zm19.4-83.5 1-.2 1 5 .8 4.6.7 4.6.5 4.5.5 4.3.4 4 .3 4 .2 4v7.2l-.2 3.4-.2 3.2-.4 3-.4 3-.6 3-.6 2.6-.7 2.6-1 2.4-1 2.3-1 2.2-1 2-1.2 1.8-1.3 1.7-1.4 1.5-1.4 1.4-1.5 1.3-1.5 1-1.8 1-1.8.7-2 .7-2 .5-2 .2v-1l2-.3 1.8-.6 1.8-.6 1.7-.8 1.6-1 1.5-1 1.5-1 1.4-1.5 1.3-1.5 1.3-1.6 1-1.8 1.2-2 1-2 1-2.2.7-2.3.6-2.4.7-2.7.5-3 .4-2.8.4-3 .2-3.3v-3.5l.2-3.5v-3.7l-.3-3.8-.3-4-.3-4-.4-4.3-.7-4.4-.8-4.5-.8-4.7-1-5zm-4.8-55 .3-1 .3.5V503l.2 2 .2 1.8v2l.2 1.8v1.8l.2 1.8.2 1.7.2 1.8.2 1.7.2 1.7.2 1.6.2 1.6.2 1.6.2 1.5.3 1.5.3 1.5.3 1.5.2 1.4.3 1.4.3 1.4.3 1.4.3 1.3v1.3l.4 1.2-1 .2-.2-1.3-.3-1.3-.4-1.2-.2-1.4-.3-1.4-.2-1.4-.2-1.4-.3-1.5-.2-1.5v-1.5l-.4-1.6-.2-1.5-.2-1.6-.2-1.7-.2-1.7-.2-1.7-.2-1.8-.2-1.8v-1.7l-.3-2-.2-1.7v-2l-.3-1.8v-4l-.2-2v-13l.3.5zm.3-1 .3.2v.2l-.4-.5z"/>
+ <path fill="#21231e" d="M343.6 584h1v.7h-.8v-.2h-.2v-.4zm-4.3-40 1-.4.4 1.2.2 1.2v1l.4 1.3.2 1.3.2 1.2.2 1.2.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3v1.4l.3 1.3v2.6l.3 1.3v1.3l.2 1.2v2.6l.2 1.3v9.1h-1v-7.6l-.2-1.2v-2.7l-.2-1.3V570l-.2-1.3v-1.3l-.2-1.3v-1l-.3-1.4v-1.3l-.3-1.3-.2-1.3v-1.2l-.3-1.3-.2-1.3-.2-1.3-.2-1.3v-1.2l-.4-1.2-.2-1.2-.2-1.2-.2-1.2-.3-1.2-.2-1.2-.2-1.2zm-5.5-50.4h1.2v6.4l.2 1.5v3.3l.2 1.5v1.6l.2 1.5v1.6l.3 1.5v3.1l.3 1.5.2 1.7v1.5l.3 1.6.2 1.5.2 1.6.2 1.4.2 1.6.3 1.5v1.6l.4 1.6.2 1.6.3 1.6.2 1.5.3 1.6.3 1.5.3 1.5.4 1.6-1 .3-.5-1.7-.4-1.6-.3-1.6-.3-1.5-.3-1.5-.2-1.6-.3-1.6-.2-1.5-.3-1.6-.2-1.6-.2-1.4-.3-1.6-.2-1.5-.2-1.6v-1.7l-.3-1.5-.2-1.6v-1.5l-.2-1.6v-1.4l-.2-1.6-.2-1.6V508l-.2-1.7V503l-.2-1.4v-6.4l-.2-1.6zm1.2 0h-1.2v-.2h.2v-.2h.2v-.2h.8v.2h.2v.4z"/>
+ <path fill="#fff" d="m344 367.3 13.2 2.2-4.6 23.3c-5 24.3-8.2 53-4.5 84.2q2.2 17.5 7.6 28.5c-14.6-1.6-24-15.8-22.7-40.6q-3.9-43.4 3.2-69.4c1.4-5 5.8-24.2 7.8-28.3z"/>
+ <path fill="#21231e" d="m357 370-13-2.3v-1l13.3 2.3.4.6zm.3-1h.5v.6zm-4.2 24-1-.3.2-.3v-.4l.2-.5v-.6l.2-.7v-.6l.3-.7v-.8l.2-.8v-1l.3-.7.2-1 .2-1v-.8l.2-1 .2-1 .2-1 .2-1 .2-1 .2-.8v-1l.3-.7.2-1v-.7l.3-.7v-.7l.3-.6v-.6l.2-.5v-.4l.2-.3v-.3l1 .2v.6l-.2.5v.5l-.3.6v.5l-.2.7-.2.8-.2.8v1l-.3.7-.2 1v.8l-.2 1-.2 1-.2 1-.2.8-.2 1-.2 1v1l-.3 1-.2.7-.2 1v.7l-.2.7v1l-.2.5-.2.6v.7l-.2.5v.7zm-4.4 84h-1l-.3-2.8-.3-3-.3-3-.2-2.8v-2.8l-.3-3V457l-.2-3v-11l.2-2.7v-2.7l.2-2.7.2-2.8.2-2.6.2-2.6.3-2.6.2-2.6.3-2.6.3-2.5.4-2.5.4-2.5.4-2.5.3-2.4.4-2.4.3-2.4.5-2.4.4-2.3.5-2.3.4-2.3 1 .2-.4 2.2-.4 2.3-.5 2.3-.4 2.4-.4 2.4-.5 2.4-.4 2.4-.2 2.4-.4 2.5-.3 2.5-.2 2.5-.3 2.6-.3 2.5-.2 2.5-.2 2.7-.2 2.6-.2 2.6v2.6l-.2 2.7v2.7l-.2 2.7v11.5l.2 3v2.7l.3 3 .2 2.7.3 3 .3 2.8.3 3zm7 29v-1l-.4.8-.4-.7-.3-.6-.3-.8-.4-.7-.3-1-.3-.6-.3-.8-.4-.8-.3-.8-.2-.8-.2-.8-.3-1-.2-.7-.3-1-.2-.8-.3-1-.2-1-.2-.8v-1l-.3-1-.2-.8-.2-1-.2-1v-1l-.3-1-.2-1v-1l-.3-1-.2-1v-1l-.2-1.2-.2-1 1-.2v1l.3 1v1.2l.2 1v1l.3 1 .2 1 .2 1v1l.2 1 .2 1 .2 1 .2 1 .3.8.3 1 .2.8.2 1 .3.7.2 1 .3.7.2.8.3 1 .3.7.3.8.3.7v.8l.4.8.4.7.3.7.4.7.3.6.3.7-.5.7zm.4-.7.4.8h-1l.6-.7zM332.4 465l1-.2v8.8l.2 2 .2 2 .3 2 .4 1.8.4 1.7.4 1.8.5 1.7.5 1.5.6 1.5.6 1.5.7 1.3.8 1.3.7 1.3.8 1 1 1 .8 1.2 1 1 1 .8 1 .8 1 .8 1 .7 1.2.6 1.2.4 1.2.5 1.2.3 1.2.3 1.3.3h1.4l-.2 1h-1.3l-1.4-.4-1.3-.4-1.3-.4-1.2-.5-1.2-.5-1.2-.7-1-.6-1.2-.8-1-.8-1-1-1-1-1-1-1-1.2-.7-1.2-.8-1.3-.8-1.2-.7-1.4-.7-1.5-.5-1.6-.6-1.6-.5-1.7-.4-1.6-.4-1.8-.3-2-.2-1.8-.2-2-.2-2v-8.9zm3.3-69.6 1 .3-.5 1.6-.4 1.7-.4 1.7-.3 1.7-.3 1.8-.3 1.8-.3 1.8-.2 2-.2 1.8-.3 2-.2 2v2l-.3 2v2l-.2 2-.2 2.3v4.3l-.2 2.2v9.6l.2 2.5v2.4l.2 2.5v2.5l.2 2.6.2 2.6.2 2.5.2 2.6.2 2.8h-1l-.2-2.6-.2-2.6-.2-2.7-.2-2.7v-2.5l-.2-2.6v-2.5l-.2-2.4v-18.5l.3-2v-2.2l.3-2v-2.2l.3-2 .3-2 .3-2 .2-1.8.3-2 .4-1.8.4-1.8.3-1.8.5-1.7.4-1.7.3-1.7.4-1.6zm8.3-28.6v1l.4-.3-.2.4-.2.4-.2.6-.2.6-.3.7-.2.8-.2 1-.2.8-.3 1-.3 1-.2 1-.3 1-.3 1-.3 1.2-.4 1-.3 1.2-.3 1-.2 1.2-.3 1-.3 1.2-.3 1-.3 1-.3 1-.2 1-.3 1-.3 1-.2.8-.2.8-.2.7v.6l-.2.6v.5l-1-.3v-.5l.2-.7.2-.6.2-.8v-1l.4-.7.2-1 .2-.8.3-1 .2-1 .3-1 .2-1.2.3-1 .3-1.2.3-1 .4-1 .2-1.2.3-1 .2-1.2.3-1 .3-1 .3-1 .4-1 .2-1 .3-1v-.8l.4-.8.2-.7.3-.7v-.6l.3-.5.2-.5.5-.2zm-.5.2.2-.3h.3zm.5.3v-.5zm-.5-.3.2-.3h.3z"/>
+ <path fill="#fff" d="m336 370.4 6.4 7.4c-1.8 1.4 1.3 7-.4 18-1 6.4-4.8 13.8-5.6 22-2.5 26.5-2.5 59.8 5.4 81-14.5-1.6-19.5-14.8-20-39.6-.4-20.6-.4-44.7 4.7-72.7q1.5-9.7 9.4-16z"/>
+ <path fill="#21231e" d="m342 378.2-6.5-7.5.8-.6 6.5 7.5v.7h-.7zm.8-.7.4.4-.5.2v-.7zm-.3 18.5h-1l.2-1.2v-1l.2-1V385l-.2-.6v-1.2l-.2-.6v-1l-.2-.4v-2.8l.2-.3.3-.4v-.2l.7.8v.2h-.2v.5h-.2v2.2l.2.4v1.1l.2.6v1.1l.2.7v8.1l-.2 1v1l-.3 1zm-5.6 21.7h-1v-1.8l.2-.7.2-.7v-.7l.3-1v-.6l.3-.8.2-.7.2-.8.2-.7.2-.7.2-.7.2-.6.2-.7.2-.7.3-.7v-.7l.3-.6.2-.7.2-.7.2-.6v-.7l.3-.6.2-.6.2-.5.2-.7v-.6l.2-.6v-.6l.2-.6v-.5h1v1.2l-.3.6v.7l-.2.6v.7l-.3.7-.2.6-.2.6v.7l-.3.7-.2.6-.3.7-.2.6-.2.6-.2.7-.2.7-.2.7-.3.7-.3.7-.2.8-.2.7-.2.7v.7l-.2.6-.2.7v.7l-.3.8v.7l-.2.7v1.5zm4.8 81.6v-1l-.4.7-.8-2-.6-2-.7-2.3-.6-2.2-.5-2.3-.5-2.4-.5-2.4-.4-2.4-.4-2.5-.4-2.5-.3-2.5-.3-2.6-.2-2.7-.2-2.7-.2-2.6v-2.7l-.2-2.7V455l-.2-2.8v-10.9l.2-2.7V436l.2-2.8v-2.7l.3-2.6.3-2.7.2-2.6.2-2.6.2-2.4h1l-.3 2.6-.2 2.6-.2 2.5-.2 2.6v2.6l-.2 2.6v2.7l-.2 2.6v2.7l-.2 2.7V455l.2 2.7v2.7l.2 2.7.2 2.5.2 2.7.2 2.6.3 2.5.3 2.6.4 2.4.4 2.4.4 2.5.4 2.3.5 2.4.7 2.2.6 2.2.6 2.2.6 2 .7 2-.5.7zm.5-.6.3.7h-.8zm-21-39.5h1v2.2l.2 2.3v2l.2 2.2.2 2v2l.3 1.7.3 1.8.3 1.8.2 1.6.4 1.5.4 1.6.4 1.5.5 1.4.4 1.2.6 1.3.6 1.2.6 1 .7 1 .6 1 .8 1 .8 1 .8.6 1 .7 1 .7 1 .6 1 .5 1 .4 1 .4 1.3.3 1.3.2 1.3.2-.2 1-1.4-.2-1.3-.3-1-.4-1.3-.4-1.2-.5-1-.6-1.2-.5-1-.7-1-.7-.8-.7-1-1-.7-1-.7-1-.6-1-.7-1.2-.6-1-.5-1.4-.5-1.3-.5-1.5-.5-1.5-.4-1.5-.3-1.7-.4-1.5-.4-1.8-.3-1.8-.2-2v-2l-.3-2v-2l-.2-2.3v-2.2l-.2-2.3zm4.7-72.8 1 .2-.5 2.6-.4 2.6-.3 2.5-.4 2.6-.3 2.4-.4 2.5-.3 2.4-.3 2.4-.2 2.4-.2 2.5-.3 2.3v2.4l-.3 2.4-.2 2.3v2.4l-.2 2.2v2.3l-.2 2v4.5l-.2 2.2V459h-1v-26.9l.2-2.2v-2l.2-2.4v-2.3l.2-2.3.2-2.3.2-2.4.2-2.3.2-2.4.2-2.5.3-2.3.3-2.4.3-2.5.4-2.5.3-2.6.4-2.5.4-2.6.6-2.6.4-2.6zm10.3-16.3-.8.7h.7l-.4.5-.5.4-.5.4-.4.4-.4.5-.4.3-.4.4-.4.5-.4.4-.4.5-.3.5-.4.5-.3.5-.3.4-.3.4-.3.5-.2.4-.3.5-.2.4-.3.5-.2.4-.2.6-.2.5-.2.5-.2.6-.2.5-.2.7v.5l-.3.6v.6l-.2.6v.6l-1-.2v-.6l.2-.6.2-.6v-.6l.3-.6v-.6l.3-.5.2-.6.2-.6.2-.4.3-.6v-.5l.4-.5.2-.6.3-.5.2-.6.3-.5.3-.6.4-.5.3-.6.4-.5.2-.6.4-.4.4-.5.4-.4.4-.4.5-.4.4-.5.5-.4.4-.4.5-.6.6-.4h.7zm-.7 0 .4-.3.3.4z"/>
+ <path fill="#fff" d="m372.3 390-13.4-1.6c-2.6 12.7-4.5 21.7-5 26.2-1 9 1.8 17 5 23 5-3 7.2-9.4 9.2-18.6s2.7-19.2 4-29z"/>
+ <path fill="#21231e" d="m359 388 13.3 1.5v1l-13.5-1.6-.4-.7.5-.4zm-.6.3v-.4h.5l-.6.3zm-4 26.4h-1l.2-.6v-.8l.2-.6v-1l.2-.6v-.7l.3-.6v-.7l.2-.7v-.7l.3-.7v-1l.2-.7.2-.8.2-1v-.7l.3-1 .2-.8v-1l.2-1 .2-1 .2-1 .2-1 .2-1 .3-1 .2-1 .2-1.2.2-1.2v-1l.4-1.3 1 .2-.3 1.2v1l-.3 1.3-.3 1-.2 1.2-.2 1-.2 1-.2 1-.2 1-.2 1-.2 1v1l-.3 1-.2.8-.2.8v1l-.3.7v.8l-.3.7v.8l-.2.7-.2.7v.6l-.2.7v1.3l-.2.5v1.1l-.2.5v.9zm4.3 22.6.5.8h-.7l-.3-.7-.3-.6-.4-.6-.3-.5-.3-.6-.2-.7-.3-.7-.2-.6-.3-.7-.2-.7-.3-.7-.2-.8-.2-.7v-.7l-.3-.7-.2-.7-.2-.7v-.8l-.3-.7v-.7l-.2-.8v-.8l-.2-.7v-.8l-.2-.8v-6.1h1v6.6l.2 1v1.4l.3.7v1.6l.3.8.2.7v.8l.3.7.2.7.3.7.2.6.2.7.2.6.2.6.2.6.3.7.3.5.2.6.3.7.3.6.3.6.3.5-.7-.2zm.5.8-.5.4-.2-.5h.7zm8.6-19h1l-.3 1-.2.8-.2 1v.7l-.3.8-.2.7-.2.8-.2.7v.8l-.4.7-.2.7-.3.6v.7l-.4.6-.2.7-.3.6-.2.5-.3.5-.3.6-.3.5-.4.7-.3.5-.4.5-.5.4-.3.6-.4.4-.4.4-.4.4-.5.3-.4.5-.4.3-.4.3-.5-.7.4-.3.5-.3.4-.3.3-.4.4-.3.4-.4.4-.4.4-.5.3-.4.4-.4.4-.5.3-.4.4-.5.2-.4.3-.6.2-.5.3-.6.2-.7.3-.7.2-.6.3-.7.2-.6.2-.7v-.8l.3-.7.3-.7.2-.8.2-.8.2-.8.2-.8.2-.8.2-1zm4.5-28.5v-1l.5.5v1l-.3 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2.8v1l-.2 1-.2.8v1l-.2.8-.2 1v.8l-.2 1-.2.8-.2.8v1l-.3.8v1l-.3.7h-1l.3-1v-.8l.3-1 .2-.7v-1l.3-.8v-1l.3-.8.2-1v-1l.3-.8v-1l.2-.8v-1l.2-.8v-1.8l.2-1v-1l.2-.8v-1l.2-.8v-1l.3-1v-1.8l.2-1v-.8l.2-1v-.8l.3-1v-1l.6.7zm0-1h.6l-.2.5zm0 0v1zm0 1"/>
+ <path fill="#fff" d="M407 418.6h-11.8q-.7 16.6-.5 22.3c.4 7.5 2.3 14 5.5 18.7 3.6-3 7-8.3 7.6-16.2.6-8-.6-16.5-.7-25z"/>
+ <path fill="#21231e" d="M395.2 418.2h12v1h-12l-.5-.5zm-.5.5v-.5h.5zm.5 22.2h-1v-11.4l.2-.8v-4.4l.2-.8v-5h1v7.8l-.2.7v5.6l-.2.7v7.7zm4.7 18.4.6.7h-.8l-.3-.5-.3-.4-.3-.4-.4-.5-.2-.4-.3-.5v-.4l-.4-.6-.2-.5-.3-.5v-.6l-.3-.6-.2-.5-.2-.6-.2-.6v-.5l-.2-.6-.2-.7-.2-.6v-.6l-.2-.6-.2-.6v-.7l-.2-.5v-.7l-.2-.7v-.5l-.2-.7v-2.6l-.2-.7h1v1.1l.2.7v1.4l.2.7v.7l.2.6v.7l.2.6v.6l.3.6v.7l.3.6v.7l.3.5v.6l.2.6.2.5.2.5.2.5.3.6.3.5.2.6.3.5.2.6.3.5.2.6.3.5.3.6.4.4.2.5h-.7zm.6.7-.5.5-.2-.5h.8zm6.7-16.6h1v1.6l-.2.7v1.4l-.3.8v.6l-.3.7-.2.7-.2.6-.2.6-.2.5-.2.5-.3.6v.5l-.4.7-.2.5-.3.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.3-.4.4-.4.4-.3.5-.4.3-.4.4-.4.3-.3.3-.4.3-.7-.6.2-.3.4-.2.3-.3.2-.4.3-.2.4-.3.2-.4.3-.3.3-.4.3-.4.4-.5.3-.4.2-.4.2-.4.3-.5.2-.5.3-.5.2-.5.3-.5.2-.6.2-.4v-.6l.3-.6v-.6l.3-.6v-.7l.3-.6v-1.4l.2-.7V444zm0-24.3v-1l.4.6v5.6l.2 1v4.6l.2.8v2.8l.2.8v9.2h-1v-11.8l-.2-.8V429l-.2-1v-3l-.2-1v-5.3l.4.5zm0-1h.4v.6l-.5-.5z"/>
+ <path fill="#fff" d="m420 424.2-12 .6q0 16.5.3 22.2a37 37 0 0 0 6.2 18.6c3.5-3 6.8-8.6 7-16.5s-1-16.3-1.5-24.8z"/>
+ <path fill="#21231e" d="m408 424.3 12-.6v1l-12 .6-.4-.5.5-.5zm-.4.5v-.5h.5l-.4.5zm1.2 22.2h-1v-4l-.2-.6v-17.8h1V445l.2.4zm5.4 18.2.6.8h-.7l-.2-.5-.3-.5-.3-.5-.3-.5-.4-.5-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.2-.5-.3-.7-.2-.6-.2-.6v-.4l-.3-.6-.2-.6v-.7l-.3-.6-.2-.5v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-2h.8v.7l.2.7v1.4l.2.7.2.7v.7l.2.7v.6l.3.6v.7l.2.6v.5l.3.6.2.7.2.5v.6l.3.6.2.5.2.5.2.5.2.5.2.6.2.6.3.5.2.6.2.4.3.5.3.5.3.4.3.5.3.3h-.8zm.6.8-.4.4-.3-.5h.8zm6.2-17h1v2.3l-.2.7v.7l-.2.7-.2.6v.7l-.3.6v.6l-.2.5-.2.6-.2.7-.2.6-.3.5-.3.6-.3.5-.2.4-.3.5-.4.4-.3.4-.3.5-.3.4-.3.4-.3.5-.2.4-.3.3-.3.4-.4.3-.3.4-.3.3-.4.3-.6-.8.3-.3.3-.4.3-.3.4-.3.3-.4.4-.3.4-.4.2-.5.3-.4.2-.3.3-.4.3-.5.2-.4.3-.5.2-.6.3-.5.2-.6.2-.5.2-.6.2-.6.2-.6.2-.5.2-.6v-.5l.3-.7v-.6l.2-.7v-.6l.2-.8zm-1-25.3v1l.5-.5v2.4l.2.8v1.5l.2.7v3.4l.2.7v1.5l.2.8v.8l.2.8v2.5l.2.7v2.3l.2.8v5.3h-1v-7.4l-.2-.7v-1.6l-.2-.8V437l-.2-1v-1.5l-.2-.7v-1.6l-.2-.8v-1.6l-.2-.8v-1.6l-.2-.8v-2.2l.4-.6zm-.5.6v-.6h.5zm.5.4v-1z"/>
+ <path fill="#fff" d="m395 412.4-12-.8q-1.8 16.4-2.2 22-.4 11.6 4 19.3c3.8-2.8 7.7-8 8.8-15.7 1.2-8 .8-16.4 1.4-25z"/>
+ <path fill="#21231e" d="m383 411 12 1v1l-12-1-.4-.5.5-.4zm-.4.5v-.5h.5l-.4.5zm-1.3 22.2h-1V431l.2-.4V429l.2-.6v-1.2l.2-.6v-2.2l.2-.7v-1.4l.2-.8v-.8l.2-.8v-1l.2-.8v-1l.2-.8v-1l.3-1v-1l.2-1v-1l1 .2v2l-.3 1v1l-.2 1v.8l-.2 1v.7l-.2 1v.8l-.2.8v.8l-.2.8v1.3l-.2.7v1.4l-.2.6v1.1l-.2.6v1.7l-.2.5v2.7zm3.2 18.8.5.8-.7-.2-.2-.4-.2-.5-.2-.4-.3-.5-.2-.4v-.5l-.3-.5-.3-.5v-.6l-.3-.5v-.7l-.3-.6v-.6l-.3-.4v-.6l-.3-.7V443l-.2-.5v-.7l-.2-.6V440l-.2-.8v-5.5h1v6.8l.2.7v.7l.2.6v.6l.2.5v.6l.2.7.2.6v.6l.3.5v.5l.3.6.2.5.2.7.2.5.2.5.2.5.2.5.3.5.2.5.2.5.2.4h-.7zm.5.8-.4.3-.3-.5.8.3zm8.2-16h1l-.2.8v.8l-.3.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.2.6-.3.5-.3.6-.3.5-.4.5-.3.5-.3.4-.3.5-.3.4-.4.6-.3.4-.4.4-.3.3-.4.4-.3.5-.4.3-.5.3-.3.4-.4.3-.4.3-.3.3-.5-.8.3-.3.4-.2.3-.3.4-.3.2-.3.4-.2.3-.4.3-.3.3-.3.3-.4.2-.4.4-.5.3-.4.2-.3.3-.5.3-.5.3-.4.4-.5.2-.5.3-.6v-.5l.4-.6.2-.5.2-.5.2-.6.2-.7.2-.7.2-.6.2-.7v-.7l.2-.7.2-.8zm1.8-24.4v-1l.5.5v1.5l-.2.8v5.6l-.2.7v9l-.2.8v2.2l-.2.8v.7l-.2.8v1l-.2.6v.8l-1-.2v-.7l.2-.8v-1.5l.2-.7V432l.2-.8V428l.2-.8V421l.2-.7v-4.8l.2-.8v-2.3l.6.5zm0-1h.5v.5z"/>
+ <path fill="#fff" d="m384 399.6-13.2-5.4c-2.2 8.8-5.2 37.8 0 50 4.5-3 9-8.4 10.3-17 1.6-9 2-18.2 3-27.6z"/>
+ <path fill="#21231e" d="m371 393.7 13 5.4-.3 1-13-5.4-.4-.6zm-.7.3.2-.5.5.2zm.3 50 .6.7-.7-.2-.5-1.2-.5-1.3-.3-1.4-.4-1.5-.3-1.5-.3-1.6-.2-1.7-.2-1.7v-1.8l-.2-1.8v-3.6l-.2-2V418l.2-2v-1.8l.2-1.8.2-1.8V409l.3-1.8.2-1.7V404l.3-1.6.2-1.5.3-1.4.2-1.3.2-1.2.2-1v-1l.3-1 1 .3-.2 1v.8l-.3 1.2-.3 1.2-.2 1.3-.2 1.4-.2 1.5-.2 1.6-.2 1.6v1.7l-.3 1.7v1.7l-.2 1.8v1.8l-.2 1.8v3.8l-.2 2v5.4l.2 1.8v1.7l.2 1.8.2 1.7.2 1.6.3 1.6.3 1.5.3 1.3.5 1.4.4 1.2.4 1h-.8zm.6.7-.5.3-.2-.5zm9.4-17.7h1v1l-.3.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.7-.3.7-.3.5-.3.7-.2.6-.3.6-.3.6-.3.6-.5.5-.3.7-.4.5-.4.5-.3.5-.3.4-.4.5-.4.5-.5.4-.4.3-.3.4-.4.4-.4.4-.5.4-.5.3-.4.4-.4.3-.6-.8.4-.4.4-.3.4-.3.4-.3.4-.4.4-.3.4-.4.4-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.4-.4.3-.6.3-.5.3-.6.3-.6.2-.6.3-.7.3-.5.2-.6.3-.8.2-.7.2-.7.3-.7v-.7l.3-.7.2-.8v-.8zm3-27 .4-1 .4.6v1l-.2.8v1.7l-.2 1v1l-.2.8v1.8l-.2.8v1.7l-.2 1v1.7l-.2 1v1.6l-.2 1v.7l-.2 1v.8l-.2.8v1l-.2.7v.8l-.2 1v.8l-.2 1v.7l-.3.8v.8h-1v-.8l.2-1v-1.5l.2-.8v-1l.2-.8v-1l.2-.7v-1l.2-.7v-1l.2-.7v-1.6l.2-1v-.7l.2-1V410l.2-.8v-1.8l.2-.8v-1.8l.2-1v-1.5l.2-1v-.8l.2-1zm.4-1 .4.3v.3l-.4-.5zm0 .6-.3.4.2-.4zm0-.5.4.3v.3l-.4-.5z"/>
+ <path id="rs-c" fill="#edb92e" stroke="#21231e" d="M387.8 701.2c8 6.3 15.2-8.3 8-27.6-5-14.2-30.6-8.7-16.4 10.5.7 1 1.6.6 1.5-.4-1-4 1.6-6.3 5.5-5.5 10.5 2 11 22-.6 17.6-2.2-.2-.4 4 1.7 5.6z"/>
+ <path fill="#edb92e" stroke="#21231e" d="M400 639.2c-1 3.4-5 7.6-8 10.8-4.5 4.8-3.4 12.2-.2 16 3.5 4.4 5 9.2 5.8 13 .5 2.3 1.5 7.4.8 15.5-.4 4-2.7 6-5 7.7q-1.5 1.5 4.3 6c.4.2 1.5 1 2 3 .2.4 2 .4 2.2 0 .4-2 1.6-2.8 2-3 3.7-3 5.4-5 4.2-6-2.2-1.7-4.6-3.8-5-7.7-.6-8 .3-13.2.8-15.5.8-3.8 2.3-8.6 6-13 3-3.8 4.2-11.2-.5-16-3-3.2-7-7.4-8-10.7q0-1.1-.7-1-.6-.1-.7 1z"/>
+ <path fill="#edb92e" d="M395 685.5h11.6c2 0 3.6 1.6 3.6 3.5 0 2-1.6 3.5-3.6 3.5H395c-2 0-3.5-1.5-3.5-3.5s1.6-3.5 3.6-3.5z"/>
+ <path fill="#21231e" d="M406.6 686H395v-1h11.6zm4 3h-1v-1l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.3v-.2h-.2v-.2h-.3l-.2-.2h-.5v-.2h-.6v-1h1l.2.2h.4v.2h.3l.2.2h.2v.2h.2v.2l.3.2.2.2v.2l.3.2.2.3v.3l.2.3v.4l.2.2zm-1 0h1zm-3 4v-1h.8l.3-.2h.2l.2-.2.2-.2h.3v-.2l.2-.2v-.2l.2-.2.2-.3v-.3l.2-.2v-.8h1v1.2l-.2.2v.4h-.2v.3l-.2.3h-.2v.3h-.2v.3h-.3l-.3.2v.2h-.3l-.2.2h-.2l-.3.2h-.4l-.2.2h-.8zm-11.5-1h11.6v1H395v-1zm-4-3h1v1l.2.2v.3h.2v.2h.2v.2h.2v.2h.2v.2h.2l.3.2h.2l.2.2.3.2h.6v1h-1.2v-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.3-.2-.3-.3-.2-.3-.2-.3-.2-.2v-.2l-.2-.2v-.4l-.2-.2zm1 0h-1zm3-4v1H394v.2h-.3l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2-.2.2v.2l-.2.2v.5h-.2v.6h-1v-1.2l.2-.2v-.2h.2v-.3h.2v-.2l.2-.2v-.2h.2l.2-.2v-.2h.3v-.2h.3v-.2h.3l.3-.2h.2l.2-.2h.5l.2-.2h.7z"/>
+ <path fill="#fff" d="m417 579.2.5-11c-4.4-2.2-15.2 0-19.7 10.2a65 65 0 0 1-18 25.2c10 1.8 18.4-.2 23.7-7.4 7.3-9.8 11.2-15.7 13.6-17z"/>
+ <path fill="#21231e" d="m418 568.3-.4 11h-1l.4-11 .7-.5zm-.3-.5.3.2v.3zm-19.5 10.8-1-.4.6-1 .5-.8.5-1 .6-.7.5-.8.5-.8.7-.7.6-.6.7-.7.7-.5.7-.6.6-.4.7-.5.8-.4.8-.4.7-.3.8-.3.7-.2.7-.3h.7l.8-.3h1.2l.7-.2h2l.7.2h.5l.6.2.5.2.4.2-.4 1-.4-.3h-.5l-.5-.2h-.5l-.5-.2h-3l-.7.2h-.6l-.7.3-.7.2-.7.2-.7.2-.8.3-.7.3-.7.4-.7.4-.5.5-.7.5-.7.6-.5.6-.6.6-.7.7-.6.6-.5.7-.6.8-.5 1-.3.7zM380 603l-.2 1-.2-.8.6-.6.6-.5.7-.5.6-.6.7-.6.6-.6.5-.6.6-.6.6-.7.6-.7.5-.6.7-.7.5-.7.6-.7.5-.7.6-.8.4-.8.5-.7.5-.8.5-1 .5-.8.6-.8.6-1 .5-.8.6-1 .6-1 .5-1 .5-1 .5-1 .6-1 .5-1.2.5-1.2 1 .4-.6 1.2-.5 1-.6 1.2-.5 1-.4 1-.6 1-.5 1-.5 1-.6 1-.5 1-.6.8-.6.8-.5.8-.5.8-.6.8-.5.8-.6.7-.4.7-.6.8-.6.6-.5.7-.7.7-.6.6-.6.7-.4.6-.6.5-.6.6-.7.7-.6.5-.5.6-.6.6-.8.5-.2-1zm-.2 1h-1l.8-.8zm23.4-8 .8.5-.6.7-.5.6-.7.6-.6.6-.6.6-.5.5-.6.6-.7.5-.7.5-.7.4-.8.3-.7.4-.7.3-.7.3-.7.2-.7.3-.8.2-.8.2h-.8l-.8.2h-.8l-1 .2h-6.1l-1-.2-.8-.2-1-.2.2-1 1 .2.8.2h1l.8.2h6.6l.8-.3h.8l.7-.3.8-.2.7-.2.7-.3.7-.2.7-.2.8-.4.6-.3.7-.3.7-.4.6-.5.6-.5.5-.5.5-.5.6-.5.5-.6.7-.6.5-.7zm13.4-16.8h1l-.2.4-.2.2h-.2l-.3.3-.2.3-.3.2-.2.3-.3.3-.3.4-.3.3-.2.4-.4.5-.3.4-.3.3-.4.5-.3.5-.4.5-.5.6-.3.5-.4.5-.5.7-.5.6-.5.7-.5.7-.5.7-.5.6-.6.8-.6.8-.5.8-.6 1-.7.7-.7 1-.6.8-.8-.6.6-1 .7-1 .6-.7.7-1 .6-.7.6-.8.5-.7.5-.7.5-.7.5-.7.5-.8.5-.6.5-.6.4-.6.4-.6.4-.6.4-.5.4-.5.3-.5.3-.4.4-.5.3-.4.3-.4.3-.3.4-.3.3-.3.2-.2.3-.3.3-.2.4-.2h.2l.3-.2zm1 0v.3h-.2z"/>
+ <path fill="#fff" d="m425.2 580.6-11.8-5q-7.5 14.9-9.5 20.2c-2.8 7-3.5 13.8-2.3 19.5a22 22 0 0 0 14-11.6c3.8-7 6-15.3 9.5-23z"/>
+ <path fill="#21231e" d="m413.6 575.2 11.7 5-.3 1-11.8-5-.3-.8.6-.2zm-.7.2v-.4l.6.2zm-8.7 20.6-1-.4.2-.3.2-.4.2-.5v-.4l.2-.3.2-.5.2-.4.2-.5.2-.5.3-.5.2-.5.3-.6.2-.5.3-.6.3-.5.3-.7.2-.6.3-.6.3-.7.4-.8.3-.7.4-.8.2-.7.4-.8.4-.8.4-.8.4-.8.4-.8.4-1 .4-.8.5-.8.4-1 .8.5-.4.8-.5 1-.5.8-.4.8-.3 1-.4.7-.4 1-.5.7-.4.7-.3.8-.3.7-.4.6-.3.7-.3.7-.3.6-.2.7-.3.6-.3.5-.3.6-.3.6-.3.6-.2.5-.3.5-.3.5-.2.5-.2.4-.2.5v.5l-.2.4-.2.3v.3l-.3.4zm-2.7 18.8.2 1-.6-.4v-.5l-.2-.7v-.6l-.2-.5v-1.7l-.2-.5v-3.7l.2-.6v-1.2l.2-.7v-.6l.2-.5v-.7l.2-.6.2-.7v-.6l.3-.8v-.6l.3-.7.2-.7.2-.7.2-.7.2-.7.2-.7 1 .4-.3.6v.7l-.4.6-.2.6-.2.6-.2.7v.5l-.3.6v.8l-.3.6v.6l-.2.7v.6l-.2.6v.5l-.2.6v1.9l-.2.5v3.5l.2.5v1.2l.2.5v.7l.2.5-.6-.4zm.2 1h-.5v-.4zm13.5-12.4 1 .5-.5.6-.3.6-.4.6-.3.6-.4.6-.4.5-.5.6-.5.6-.4.5-.4.6-.5.4-.4.5-.5.4-.5.3-.4.4-.6.4-.5.4-.5.4-.5.3-.5.4-.5.3-.4.2-.5.2-.4.2-.5.2-.4.3h-.4l-.5.2-.5.2h-.5l-.4.3h-.5l-.2-1h.9l.4-.3h.4l.4-.3h.5l.4-.3.5-.2.4-.2.5-.2.5-.2.5-.3.5-.3.4-.3.4-.4.4-.3.5-.4.4-.4.4-.4.6-.4.4-.5.4-.4.5-.6.3-.4.4-.5.4-.6.5-.6.4-.5.2-.7.4-.6.4-.6.3-.6zM425 581l.3-.8.3.6-.3.7-.3.8-.3.7-.3.7-.3.8-.2.7-.3.7-.2.7-.3.7-.3.8-.3.7-.2.6-.3.8-.4.7-.3 1-.2.6-.2.7-.3.8-.3.8-.2.7-.3.7-.3.8-.3.7-.2.7-.3.7-.3.8-.3.7-.5.7-.3.7-.3.6-.5.6-.3.7-1-.6.5-.6.3-.7.3-.6.3-.6.4-.7.3-.6.3-.7.3-.7.2-.7.3-.7.2-.7.3-1 .3-.6.3-.7.3-.7v-.8l.4-.7.3-.7.3-.8.2-.7.3-.7.3-.8.3-.7.3-.7.3-.7.3-.7.2-1 .3-.6.3-.8.3-.7.4-.8.3-.8zm.3-.8.5.2-.2.4z"/>
+ <path fill="#fff" d="m428.6 580.6-12.7-2q-3.7 16.1-4.4 22-1.4 11.3 2.7 19.4c4.3-2.3 8.8-7 10.7-14.7 2-7.8 2.2-16.3 3.6-24.7z"/>
+ <path fill="#21231e" d="m416 578.2 12.6 2v1l-12.8-2-.4-.6zm-.6.4v-.5l.6.2-.6.4zm-3.3 22h-1l.2-.5V599l.2-.6v-.5l.2-.6v-.5l.2-.6v-.6l.2-.5v-.6l.2-.6v-.6l.2-.6.2-.7v-.6l.3-.7v-.7l.2-.8v-.8l.3-.8.2-.8v-.8l.3-1 .2-.7.2-1 .2-.8.2-1 .2-1 .2-1 .2-1 1 .3-.2 1-.2 1-.2 1-.2 1-.2.8-.2 1-.2.7-.2 1-.2.7v.8l-.3.8-.2.8v.8l-.2.7v.6l-.2.7-.2.7v.6l-.2.6-.2.7v.4l-.2.6v.6l-.2.5v1.1l-.2.6v.4l-.2.4v1.2zm2 19 .5.8-.7-.2-.2-.5-.3-.5-.2-.5v-.6l-.3-.4-.2-.5-.2-.5-.2-.6v-.6l-.2-.6v-.6l-.3-.6v-.6l-.2-.6v-.6l-.2-.6v-2.8l-.2-.6v-5.4l.2-.7v-1.5h1v3.1l-.2.7v5.1l.2.6v1.2l.2.6v.6l.2.6v.6l.3.6v.5l.2.6v.7l.3.5v.5l.3.6.2.5.2.5.2.5.3.5.2.5-.7-.2zm.5.8-.5.3-.2-.5zm10-15.2 1 .2-.2.7-.2.8v.7l-.3.7-.3.7-.2.5-.3.6-.4.7-.3.6-.3.6-.3.4-.3.6-.4.5-.3.5-.4.5-.4.5-.4.4-.4.5-.4.3-.4.4-.4.4-.4.5-.4.3-.4.4-.4.3-.4.3-.4.3-.4.4-.5.3-.4.3-.4.2-.5.2-.5-.8.4-.2.4-.3h.4l.4-.4.4-.3.4-.3.4-.3.4-.3.4-.3.4-.3.3-.3.4-.4.4-.4.5-.4.3-.4.4-.5.3-.4.4-.6.2-.5.3-.6.3-.5.3-.6.4-.6.3-.5.3-.6.2-.6.3-.5.2-.6.3-.8.2-.7.2-.6zm4-25v1l.5-.5v.8l-.2.8v.7l-.2.8v.8l-.2.8v.8l-.2.8v.7l-.2.8v.8l-.2.8v1.7l-.2.7v.8l-.2.8v.8l-.2.8v.7l-.2.8v1l-.2.6v.8l-.2.8-.2.7v.7l-.2.7-.2.8v.7l-.3.7-.2.7-1-.2.2-.8.2-.7v-.7l.2-.8v-.7l.3-.7v-.8l.2-.8v-.7l.2-.8v-1.5l.2-.8v-.7l.2-.8v-1l.2-.7v-.7l.2-.8v-1.6l.2-.8v-.8l.2-.7v-1l.2-.7v-.8l.2-.8v-.8l.2-1v-.7l.3-.8.5-.4zm-.4.3v-.4h.5l-.4.5zm.5.6v-1z"/>
+ <path fill="#fff" d="M430.4 563.4h7.6c4.4 2 9 12.2 3.7 22a66 66 0 0 0-9.5 29.2c-7.4-6.8-10.8-14.7-8.2-23.3 3.4-11.7 6.8-25.2 6.4-28z"/>
+ <path fill="#21231e" d="M438 564h-7.6v-1h7.8zm0-1h.2zm4 22.5-.8-.5.5-1 .4-.8.4-.8.3-1 .3-.8.2-1v-.7l.3-1V574l-.2-1v-.6l-.3-.8-.2-.7-.3-.8-.2-.7-.3-.6-.3-.7-.3-.6-.3-.6-.3-.4-.3-.5-.4-.3-.4-.4-.3-.4-.4-.4-.5-.3-.4-.3-.3-.2.5-1 .4.4.5.2.5.4.4.4.4.4.4.4.4.5.4.6.3.6.3.6.3.6.3.7.2.7.3.7.2.6.2.8v.7l.3 1v.8l.2.8v3.5l-.2 1v1l-.4.8-.3 1-.3 1-.4.8-.4 1-.5 1zM432 615l.5-.7-.8.3v-.8l.2-1v-2.3l.3-1v-.7l.2-.8.2-1 .2-.8v-1l.2-.7.3-1 .2-.8.2-1 .2-.7.3-1 .3-.8.3-1 .4-1 .4-.8.4-1 .4-1 .4-1 .4-1 .5-1 .4-1 .5-1 .5-1 .5-1.2.6-1 .6-1.2 1 .5-.7 1-.6 1.2-.7 1-.5 1-.5 1.2-.5 1-.4 1-.5 1-.5.8-.4 1-.3 1-.3 1-.4.8-.3 1-.3.8-.2.8-.3 1-.4.8-.2.8-.2 1-.2.7-.2 1v.7l-.3.8v1l-.3.7v.8l-.2.8v1l-.2.7v1.8l-1 .2zm.7-.3v1l-.8-.7.7-.3zm-9.2-23.6 1 .4-.3.8-.2.8v.8l-.2.7v.8l-.2.8v3l.2.8.2.8v.7l.3.7.3.7.2.8.3.7.4.7.4.6.3.7.5.7.4.7.4.7.5.6.4.7.5.7.4.6.6.7.6.6.6.7.7.6.5.7-.6.7-.8-.6-.7-.7-.6-.7-.7-.6-.6-.7-.6-.7-.4-.7-.6-.7-.4-.7-.5-.8-.3-.7-.5-.7-.3-.8-.5-.7-.3-.7-.3-.8-.4-.7-.2-.7-.2-.8-.2-.7v-.8l-.2-.8v-.8l-.2-.8v-2.5l.2-.8v-.8l.3-.8.3-1 .2-.7zm7-28v1l.4-.7v1.8l-.2.5v1.1l-.2.7-.2.7v.8l-.3.8v.8l-.2 1-.2.8-.2 1-.3 1v1l-.4 1-.2 1-.3 1-.2 1-.2 1-.3 1.2-.3 1-.3 1.2-.3 1-.3 1.2-.3 1.2-.3 1-.3 1.2-.2 1-.4 1.2-1-.3.4-1 .3-1 .5-1.2.3-1 .3-1.2.4-1.2.3-1 .3-1.2.3-1 .3-1.2.3-1 .2-1 .2-1 .3-1.2.2-1 .2-1 .2-1 .2-.8.2-1 .2-.8.2-.8v-.8l.3-.7v-.8l.2-.7v-.6l.2-.6v-2l.4-.6zm-.6.5v-.6h.4l-.5.5zm.4 0v-.6.4zm-.5 0v-.6h.4l-.5.5z"/>
+ <path fill="#fff" d="m433.8 558.2-12-4.3q-6.5 15-8.4 20.5-3.4 11-1 19.6a21 21 0 0 0 14-11.6c3.3-7.3 4.5-16.3 7.4-24.2"/>
+ <path fill="#21231e" d="m422 553.4 12 4.3-.4 1-12-4.4-.3-.6zm-.7.3.2-.4h.4l-.7.4zm-7.4 21-1-.3v-.4l.2-.4v-.4l.3-.4v-.4l.3-.5.2-.5v-.5l.3-.5.2-.5.2-.6.3-.6.2-.5.2-.6.3-.6.2-.6.2-.6.3-.7.3-.6.3-.7.4-.7.3-.8.3-.8.3-.7.4-.8.3-1 .4-.8.3-1 .4-.8.5-1 .4-.8.3-1 1 .5-.5 1-.4 1-.4.8-.3 1-.4.8-.4.8-.4.8-.3.8-.4.8-.4.8-.3.7-.3.8-.3.8-.3.7-.3.6v.8l-.4.6-.2.6-.3.6v.6l-.3.6-.2.5-.2.5-.2.5v.5l-.3.5-.2.4v.5l-.3.4v.3l-.2.3v.4zm-1.8 19 .3 1-.6-.4-.3-.6v-.5l-.2-.6v-.5l-.2-.5v-.6l-.2-.7V583l.2-.7V581l.3-.6v-.7l.2-.6v-.6l.3-.6.2-.7v-.6l.3-.7.2-.6.2-.6 1 .3-.3.6-.2.7-.2.7-.2.6v.7l-.2.6v.7l-.2.6-.2.6v.6l-.2.6v1l-.2.7v6.5l.2.6v1.1l.2.4.2.6v.5l.2.5zm.3 1h-.5v-.4l.5.3zM426 582l.8.6-.3.6-.4.7-.2.5-.4.6-.4.7-.4.6-.4.5-.4.5-.4.5-.5.5-.5.5-.5.4-.4.4-.5.4-.4.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.4.2-.5.3h-.5l-.5.4-.5.2-.5.2-.5.2h-.4l-.6.3-.4.2h-.5l-.3-.8.4-.2h.5l.5-.3.5-.2h.4l.5-.3.4-.2.4-.3.5-.2.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.6-.3.4-.4.5-.3.4-.4.4-.5.4-.4.4-.4.4-.4.4-.5.4-.5.4-.5.4-.5.4-.6.3-.6.3-.6.3-.6.3-.7zm7.6-23.4.4-1 .3.7-.3.8-.3.8-.2.8-.3.7-.2.8-.2 1-.2.6-.2.8-.3.8v.8l-.3.7-.2.8-.2.8-.2.8v1l-.3.6-.2.8-.2.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.8-.2.7-.3.8-.3.7-.2.7-.3.8-.3.7-.3.7-.2.6-1-.5.4-.5.3-.7.3-.7.3-.6.3-.7.3-.8.2-.8.2-.7.3-.8.2-.7.2-.8.2-.7v-.8l.4-.8.2-.8.2-.8.2-.8.2-.8.2-.7.2-.7.2-.8.2-.8.2-.8.2-1 .2-.6.2-.8.3-.8.3-.8.2-.7.3-.8.3-.8.3-.7.3.6zm.4-1 .4.3v.3zm-.2.6-.2.4zm.2-.5.4.2v.3l-.4-.6z"/>
+ <path fill="#fff" d="m425.6 549.7-2.6-16.4c-2.8-.7-6.5 5.8-10 9.5q-1.6 1.3-2.6 2.8a23 23 0 0 0-3.4 8 62 62 0 0 1-13 27.6c10.2-.2 18-3.8 21.8-12 5-11 7.7-17.7 9.8-19.5"/>
+ <path fill="#21231e" d="m423.4 533.3 2.7 16.4h-1l-2.5-16.3.6-.6.4.5zm-.3-.4h.4v.2l-.3-.4zm-9.7 10.2-.8-.7.4-.4.2-.2.3-.4.4-.4.2-.4.3-.4.4-.4.2-.5.3-.4.4-.5.2-.4.3-.3.4-.5.2-.4.3-.4.4-.3.2-.3.3-.4.3-.3.4-.3.3-.4.3-.2.3-.2.4-.2.4-.3h.3l.4-.3h.3l.4-.2h1.1l-.2 1h-1l-.3.2-.2.2-.3.2-.3.2-.3.2-.3.3v.4l-.5.3-.3.3-.3.3-.4.4-.3.4-.3.5-.4.4-.3.3-.3.4-.3.4-.4.5-.3.5-.3.4-.4.4-.3.4-.4.4-.3.4-.4.4-.4.4-.3.4zm-2.5 2.7-.8-.7v-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l1 .6h-.2l-.2.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2zm-3.3 7.7-1-.2v-.6l.2-.4v-.3l.2-.3v-.8l.2-.3v-.3l.2-.3v-.3h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2l.2-.2v-.2l.3-.2v-.3h.2v-.3l.3-.3v-.2l.3-.2v-.2l.2-.3.2-.2.8.6-.3.3v.2l-.2.2-.2.2v.4l-.2.2-.2.2v.3l-.2.3v.2l-.2.3-.2.2v.2l-.2.3v.2l-.2.3v.2l-.2.3v.2l-.2.3v.5l-.2.3v.2l-.2.3v.5l-.2.3v.7zm-13.4 27v1l-.3-.8.5-.8.5-.7.5-.6.5-.8.5-.7.5-.7.4-.6.6-.7.4-.7.5-.8.4-.7.4-.7.4-.8.4-.7.4-.7.4-.8.4-.8.4-.8.4-1 .4-1 .3-.8.3-1 .3-.8.4-1 .3-1 .4-1 .3-1 .3-1.2.3-1 .3-1.3.2-1.3.3-1.2 1 .2-.3 1.2-.3 1-.4 1.3-.3 1.2-.4 1-.4 1-.3 1.2-.4 1-.4 1-.4 1-.3 1-.5.8-.4 1-.3.8-.4.8-.4 1-.5.8-.4.8-.3.7-.5.8-.4.8-.5.8-.4.7-.6.7-.5.7-.5.7-.5.7-.5.8-.5.7-.5.6-.5.8-.5.7-.4-.8zm0 1h-1l.7-.8zm21.3-12.8 1 .4-.5.7-.4 1-.4.6-.4.7-.5.7-.4.6-.5.6-.5.6-.5.6-.6.5-.6.4-.6.5-.7.4-.6.4-.8.4-.7.4-.7.4-.7.3-.7.3-.8.3-.8.2-.8.2-1 .2-.7.2-1 .2-.7.2h-1l-.8.2h-1l-.8.2h-2v-1h2.8l1-.2h.8l.8-.2 1-.2h.7l1-.3.7-.2.7-.3.8-.2.7-.3.7-.3.7-.3.6-.3.7-.3.6-.4.7-.5.6-.4.6-.4.5-.4.6-.6.5-.5.5-.4.5-.6.5-.6.4-.7.5-.6.4-.6.3-.7.3-.8zm9.8-19.2h1v.3l-.3.3v.2l-.3.2-.2.2-.2.2-.2.3-.3.4-.2.2-.2.4v.4l-.4.5-.2.5-.3.5-.2.5-.3.6-.2.6-.3.6-.3.6-.4.7-.3.8-.3.8-.4.7-.3.8-.4 1-.4.7-.4 1-.4.8-.4 1-.4 1-.5.8-.3 1-.5 1-1-.4.6-1 .4-1 .5-1 .4-1 .5-1 .4-.8.3-1 .4-.7.4-.8.4-.8.4-1 .3-.6.4-.7.4-.7.3-.6.4-.7.3-.6.2-.4.2-.6.3-.5.2-.5.3-.4.2-.5.3-.3.2-.4.2-.3.2-.4.2-.3.2-.3.2-.2.3-.2.3-.2-.2.4zm1 0v.3z"/>
+ </g>
+ <use xlink:href="#rs-d" width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)"/>
+ <path fill="#fff" stroke="#21231e" d="m536.4 415 4.8-1.5a66 66 0 0 1-21.4-22c-7.8-12 3.3-33 8-44.3a53 53 0 0 0 21.2-31c1-7.3-19-4.7-33 2-17 8-19.3 5.7-25.4 7-2.2 10.5 2.4 11.4 6.7 11-9.4 15-13.3 29.8-15 51.4-2-21.6-6-36.5-15.3-51.5 4.3.6 9-.3 6.7-10.7-6-1.4-8.4.8-25.4-7.2-14-6.5-34-9-33-1.8 3 13.7 11.8 24 21.3 31 4.6 11.2 15.7 32.4 8 44.2a67 67 0 0 1-21.5 22q2.5 1 5 1.5c-1.2 1.5-11 4.5-12.3 3.7-7.6-5.3-15-18-21.4-25.2-18.2-20.8-27.3-36.7-24-49.6 4.5-14 20.8-29.6-.8-27-21.7 2.8-39.6 32.5-45.4 68.3l-4.7 33.5c11.8-4.3 17-8.5 20.2-13.7q-2.1 7.5-3.2 14.2c9.7-1.7 16.7-6.4 19.2-15q1.6-5.3 3.6-9c3 1 7 1 11.6 0 1.7 4 15 19 22.2 30 8 12.2 20.2 21.6 24.2 22 2 .4 2.7-4 2.2-10.2 21 .2 42.3.3 63-.4q31.1.9 63 .4c-.6 6 0 10.6 2 10.3 4-.5 16.2-10 24.3-22.2 7-10.8 20.5-25.7 22.2-30a20 20 0 0 0 11.6.2q2 3.7 3.5 9c2.5 8.6 9.5 13.3 19.2 15q-1-6.6-3.2-14c3.2 5 8.4 9.3 20.2 13.6-1.4-9-2.7-20.3-4.8-33.5-5.8-35.8-23.7-65.5-45.4-68.2-21.6-2.6-5.3 13-.7 27 3.3 12.8-5.8 28.7-24 49.5-6.5 7.3-13.8 20-21.4 25.2-1.2.8-11-2.2-12.2-3.8z"/>
+ <g id="rs-e">
+ <path fill="#edb92e" d="M440.6 356.8c-2 1.8-8.8 1.8-18 2.4q-22.3.7-25.3-13.5c5.6 6.6 12.2 10 19.7 8 10.2-2.5 16-4.3 18.3-3.8 1.6.4 4 3.3 5.3 6.8z"/>
+ <path fill="#21231e" d="M422.6 359.7v-1h1.8l.7-.2h2.5l.8-.2h2.8l.8-.2h3l.5-.2h1l.4-.2h.5l.4-.2h.4l.5-.2h.3l.3-.2h.4l.3-.2h.2v-.3h.3l.6.7h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.3.2h-.4l-.4.2h-.5l-.5.2h-1l-.5.2h-1.5l-.6.2H432l-.6.2h-2.8l-.8.2h-2.3l-1 .2H423zm-25-14.3-.7.6.8-.4.2 1 .2.7.3.8.3 1 .3.6.5.7.4.7.4.6.5.6.4.6.6.6.6.5.6.4.7.5.6.3.8.5.8.4.8.3 1 .4.8.2 1 .3 1 .2 1 .2h1l1 .3h1.2l1.2.3h6.6v1H416l-1-.2h-1.3l-1-.3h-1.2l-1-.3-1-.3-1-.3-1-.2-1-.4-.8-.3-.8-.4-1-.4-.7-.5-.7-.5-.7-.5-.7-.6-.6-.5-.6-.6-.4-.8-.5-.7-.3-.7-.4-.8-.4-.7-.4-1-.3-.7-.3-1-.2-.8 1-.4zm19.3 8 .2 1h-.8l-.7.2h-1.4l-.7.2h-2.8l-.6-.2-.7-.2h-.7l-.6-.3h-.7l-.6-.3-.8-.3-.6-.3-.6-.2-.6-.3-.6-.4-.6-.3-.6-.4-.6-.4-.6-.6-.6-.4-.6-.5-.5-.6-.6-.6-.4-.6-.6-.5-.5-.6-.6-.7.7-.6.5.6.5.6.6.6.5.5.5.5.6.5.4.5.6.5.6.4.5.5.7.4.6.3.6.3.4.3.6.2.6.3.6.2.7.2h.5l.6.3.7.2h.6l.7.2h4.7l.6-.3h.7zm18.5-4-.3 1h-2.6l-.4.2h-.9l-.5.2-.5.2h-.5l-.6.2h-.5l-.6.3h-.5l-.7.3-.7.2h-.6l-.7.3-.7.2-.8.2-.8.2h-.8l-.8.3-1 .3-.8.2-1 .2-.8.3-.3-1 1-.2.8-.2 1-.2.7-.2 1-.2.7-.2.8-.2.7-.2.8-.2.7-.2.7-.2.6-.2h.6l.6-.3h.6l.6-.3h.6l.5-.2h.6l.5-.2h.6l.4-.2h.9l.3-.2zm5.4 7.8-.7-.8-.2.6v-.7l-.3-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.2-.2-.3v-.3l-.3-.2-.2-.3v-.2l-.2-.2-.2-.3v-.2l-.3-.2h-.2v-.3h-.2l-.2-.3v-.2h-.3l-.2-.2v-.2h-.2v-.2h-.4v-.2h-.2l.3-1h.2l.2.2.2.2h.2l.2.2.2.2h.2v.3l.3.2.2.2h.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.3v.2l.3.2.2.3.2.3v.3l.3.4.2.3v.3l.3.3v.3l.3.3v.3l.2.3v.6zm0-.6.2.3-.3.2v-.6zm-21.5-35.4v1.5h-.4v-.4h-.2v-.7l.2-.2h.2v-.2zm15.3 4-.5 1.3-.6-.2-.5-.2h-.6l-.5-.2-.4-.2-.5-.2-.4-.2-.5-.2-.4-.2h-.5l-.4-.3-.5-.2h-.4l-.4-.3h-.5l-.4-.3h-.5l-.4-.2h-.4l-.5-.2h-.4l-.3-.2h-1.3l-.4-.2H420v-2h2.9l.5.2h1l.4.2h.5l.3.2.5.2h.5l.4.2.5.2h.5l.4.3h.6l.5.3.6.2h.5l.6.3.5.2.6.2h.5l.6.3.6.2.5.2.6.2h.5zm9 2.5v1.5H442l-.3-.2h-.4l-.3-.2h-.3l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.5l-.3-.2-.4-.2h-.3l-.4-.2h-.2l-.3-.2h-.3l-.3-.3h-.7l-.2-.2h-.4l-.2-.2.4-1.5h.2l.2.2h.2l.2.2h.3v.2h.4l.3.2h.3l.3.2h.4l.3.2.3.2h.4l.3.2h.4l.3.2h.4l.4.2h.3l.4.2h.4l.3.2h.6l.3.2zm0 1.5v-1.5h.4v.2h.2v.2h.2v.9h-.2v.2h-.2v.2h-.2zm23.4 7.5.2-1.2h.2v.2h.2v.8h-.6zm-10-2 .4-1.2h.5l.3.2h.4l.3.2h1.1l.2.2h.6l.2.2h.6l.3.2h.7l.4.2h.8l.3.2h.9l.2.2h.9l.5.2h.8l-.2 1.3h-.9l-.4-.2h-.6l-.4-.2h-.7l-.4-.2h-1.4l-.3-.2h-.7l-.3-.2h-.6l-.3-.2h-.5l-.4-.2h-.5l-.3-.2h-.5l-.2-.2h-.5l-.2-.2zm.4-1.2-.3 1h-.2v-.8h.8z"/>
+ <path fill="#21231e" d="m431.5 332-.7 1.3-.4-.3-.4-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.3-.4-.3-.4-.2-.3-.4-.3-.3-.2-.3-.3-.3-.3-.4-.2-.3-.3-.4-.2-.3-.3-.4-.2-.4-.2-.3-.3-.5-.2-.4-.2-.2v-.4l-.3-.4-.2-.3-.2-.4-.2-.3v-.4l-.2-.3-.2-.3-.2-.4 1.4-.7.2.2.2.4v.3l.3.2.2.4.2.3v.3l.3.3.2.4.2.3.2.4v.3l.3.4.3.3.2.4.2.4.2.4.3.3.2.4.3.4.2.3.3.4.3.3.3.3.3.2.3.3.3.3.2.2.4.3.3.2.2.2.3.2zm7.6-5.3 1.5.8-.2.4-.2.3-.2.4-.2.4-.3.5-.3.4-.2.2-.3.4-.3.3-.3.2-.3.3-.3.3-.3.3-.2.4-.3.2-.3.2-.4.2-.3.2-.3.2h-.3l-.5.2h-.3l-.3.2h-2.2l-.4-.2-.3-.2h-.2l.7-1.5h.5l.2.2h1.7l.3-.2h.2l.3-.2h.2l.3-.3.2-.2.3-.2h.2l.3-.3.2-.3.3-.2.2-.3.3-.4.2-.3.3-.3.2-.4.2-.3.3-.4.2-.5.2-.4v-.3z"/>
+ <path fill="#21231e" d="m429.6 331-2.2-2.3q-1.6-1.9 2-5.4l4.2 2q-1.4 4.5-4 5.6zm-6.3 82-.4 1h-.4v-1zm23.8-3.6 1 1-.7.5-.6.4-.7.5-.6.4-.7.5-.7.3-.7.4-.7.4-.7.4-1 .3-.6.3-.8.2-.7.2-1 .2-.7.2h-.8l-.8.2h-5l-1-.2h-.8l-.8-.3h-1l-.8-.4h-1l-.7-.3-1-.3-.8-.3.3-1 .8.2 1 .3 1 .3.7.2 1 .2.7.2h.8l1 .2h.7l.7.2h4.8l.7-.2h1l.6-.3.7-.2h.7l.7-.4.7-.3.7-.3.8-.3.6-.4.7-.4.7-.5.6-.5.6-.5.5-.5zm3-2.8 1 .8h-.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2l-1-.8h.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2l.2-.2.2-.2v-.2zm1 .8-1-.8.2-.2h.7v.2h.2z"/>
+ <path fill="#21231e" d="m452.2 401.3-1.2-.2v-.2h.2l.2-.2h.6v.4h.2zm-5.5 16 .3 1-.7-.8.2-.4.2-.4.2-.5v-.4l.3-.4.2-.5.2-.5v-.5l.3-.4.2-.5.2-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.2-.5.2-.6v-.5l.2-.6v-.5l.2-.4v-.6l.2-.6v-.5l.2-.7v-.6l.2-.6 1.2.3v.6l-.2.5v.6l-.2.6v.6l-.2.6v.5l-.2.6-.2.4v.6l-.2.5v.6l-.3.6v.5l-.3.6v.6l-.3.5v.5l-.2.5-.2.5v.5l-.3.5-.2.5v.5l-.2.4-.2.5-.2.6-.2.5-.2.6-.2.5-.2.5-.2.5-.7-.8zm-.4.2 1 .5v.2h-.2v.2h-.4l-.2-.2v-.2h-.2v-.4zm15.2-9.5 1 .7-.3.4-.4.6-.3.4-.4.4-.2.4-.4.4-.4.4-.4.4-.4.3-.4.4-.5.3-.4.4-.6.3-.4.3-.5.3-.5.3-.5.3-.5.2-.5.3-.5.3-.6.2-.5.3-.7.2-.5.3-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.3-1.2.6-.2h.6l.5-.3.6-.2.6-.2.6-.2h.6l.5-.3.6-.3.4-.2.5-.2.4-.3.5-.2.4-.3.5-.3.4-.4.5-.3.3-.3.5-.3.4-.3.4-.3.4-.2.4-.4.4-.3.4-.3.4-.3.3-.4.3-.4.3-.4.3-.4.2-.4.3-.4zm1 .7-1-.7h.2v-.2h.7v.2h.2z"/>
+ <path fill="#21231e" d="M461.3 400.2H460v-.2h.2v-.2h1v.4zm4.4 15.7.7 1-.8-.3-.3-.4-.3-.4-.2-.5-.3-.5-.2-.4-.3-.4-.2-.5-.3-.5-.2-.4-.2-.5v-.5l-.3-.5-.2-.5-.2-.5-.2-.5v-.5l-.2-.5-.2-.5v-.6l-.3-.5v-.5l-.3-.6v-.4l-.2-.6v-.6l-.2-.5v-.7l-.2-.6v-.6l-.2-.5v-1.2h1v.5l.2.6v.6l.2.5v1.4l.2.5.2.6v.5l.2.5v.6l.3.5v.4l.2.5.2.4v.5l.2.4.2.5.2.4.2.5.2.4.2.4.2.5.2.4.2.5.3.4.3.4.2.4.3.5.2.3.3.4.3.3h-1zm0 .7 1-.7v.8l-.2.2h-.2v.2h-.4v-.2h-.2zm7.6-12.6 1 .4v.6l-.2.5v.5l-.2.5-.2.5-.2.5-.2.5-.2.5-.2.4-.2.4-.2.4-.3.5v.4l-.4.4-.2.5-.3.4v.3l-.4.3-.3.4-.3.4-.2.3-.3.3-.3.4-.3.3-.4.3-.3.3-.3.3-.3.2-.3.3-.3.4-.3.2-.3.3-.7-1 .3-.3.3-.2.3-.3.3-.2.2-.3.3-.3.2-.2.3-.3.3-.4.3-.3.2-.4.3-.4.4-.3.2-.4.3-.4v-.4l.4-.3.2-.5.3-.4v-.3l.3-.4.2-.4.2-.6.2-.4v-.5l.3-.4.2-.4.2-.5v-.4l.3-.5v-.4zm1 .4-1-.3v-.2h.8v.2h.2z"/>
+ <path fill="#edb92e" d="M406 317.8c-16.7 1.8-16 12.6-.4 28 3 3 4 3 4.6-.2 1.2-5.3 7-8.5 10.2-4.4 2 2.7 1.6 4.3 8.6 3.3 9 7.5 16.2 12.8 4.5 12.3-5-.2-9 2.8-15.7 2.5 2 4 2.3 4.3 3.4 4.6 6.5 1.2 13.3-2.8 19.8-1.6 14.3 2.6-23-38.6-22.4-40.3 1-4-9-11.5-12.7-4.2z"/>
+ <path fill="#21231e" d="m406 345.5-.7.7-1.4-1.5-1.5-1.4-1.2-1.4-1.2-1.4-1-1.3-1-1.3-.8-1.3-.8-1.2-.8-1.2-.6-1.2-.5-1-.5-1.2-.3-1-.3-1v-1l-.2-1v-1l.2-1 .2-.8.4-.8.4-.8.6-.7.6-.7.8-.6.8-.6 1-.5 1-.5 1-.4 1.4-.4 1.3-.3 1.3-.2 1.6-.2v1l-1.5.2-1.4.2-1.2.3-1.2.3-1 .4-1 .5-1 .4-.6.5-.7.7-.6.6-.4.6-.4.6-.4.7-.2.8-.2 1v1.7l.2.8.2 1 .4 1 .4 1 .5 1 .5 1.3.7 1 .8 1.3 1 1.4.8 1.2 1 1.3 1.2 1.3 1.2 1.3 1.4 1.4 1.4 1.5zm3.8 0 1 .2v.3l-.2.3v.5l-.2.2v.2l-.2.2v.2l-.2.2-.3.3v.2h-.3l-.2.2H408l-.2-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2l-.3-.4h-.2l-.2-.3-.3-.3-.2-.2.7-.7.2.2.3.3.2.2.3.2.2.2.2.2h.2l.2.2.2.2h.3v.2h.6l.2-.2v-.2l.2-.2v-.2l.2-.4v-.4l.2-.3zm11-4.6-.8.5-.3-.4h-.3l-.3-.4-.2-.2-.3-.2h-.3l-.3-.2h-.5l-.3-.2h-1.5l-.3.2-.4.2h-.2l-.4.3-.3.2-.2.2-.4.2-.3.2-.2.3-.3.3-.2.4-.3.3-.2.4-.3.5-.2.4-.2.3v.5l-.2.4v.5l-1-.2v-.5l.2-.5.2-.5.2-.5.3-.5.2-.4.2-.4.3-.4.3-.4.3-.4.4-.3.4-.3.4-.3.4-.2.3-.2.3-.2.5-.2h.4l.4-.2h.4l.4-.2h1l.4.2h.6l.4.3.4.3.3.2.4.3.4.5.4.4zm8.6 3.2-.7.7h.4-.5l-.6.2h-4.5l-.2-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.3l-.3-.3v-.2l-.3-.2v-.2h-.3l-.2-.3-.2-.3v-.2l-.3-.2v-.3l-.3-.2.8-.6h.2v.4l.3.2.2.3.3.3v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.3l.2.2h.2l.2.2h5.4zm-.4 0 .2-.2.2.2zm4.5 13v-1h4.1l.5-.2h.4l.3-.3h.2v-1l-.2-.3-.2-.4-.3-.5-.4-.4-.5-.4-.4-.4-.4-.5-.6-.5-.6-.6-.6-.6-.7-.5-.6-.6-.7-.7-.7-.7-.8-.6-.8-.7-.8-.7-1-.7.8-.8.8.7.8.5.8.7.8.7.7.5.8.6.8.7.7.6.6.6.7.4.6.6.5.5.5.5.4.5.4.4.4.4.3.4.2.4v2.3l-.4.3-.3.2-.4.3-.6.2h-.6l-.7.2h-3.6zm-15.2 2-1 .4.5-.8h3.4l.6-.2h.5l.5-.2h.5l.5-.2h.5l.4-.2h.5l.5-.2.4-.2h.6l.4-.2.5-.2h.4l.4-.2h.5l.3-.2h.5l.4-.2h.5l.5-.2h2.6v1H431l-.4.2h-.9l-.4.3h-.8l-.4.2h-.5l-.4.3h-.6l-.5.2h-.5l-.5.3h-.5l-.5.2h-.5l-.5.2h-.5l-.6.2h-.6l-.6.2h-3l.5-.7zm-1 .4-.3-.8h.8l-.4.8zm4 4-.2.8h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.3-.3-.2-.2v-.2h-.2v-.4l-.3-.2v-.3h-.3v-.4l-.3-.3v-.4l-.3-.4 1-.5v.5l.2.3.2.3v.4l.3.3.2.2v.2l.3.2v.2l.2.2v.2h.2v.3l.2.2v.2l.2.2h.2v.2h.4v.2h.4zm19.8-1.7v1l-.7-.2h-4.7l-.6.2h-.7l-.6.2h-.7l-.6.2-.6.2h-.6l-.6.2h-.7l-.7.3-.6.2h-.6l-.6.2h-.6l-.6.2h-4.6l-.6-.2.3-1 .6.2h4.8l.6-.2h.6l.5-.2h.6l.7-.2.7-.2h.6l.6-.2.6-.2h.7l.5-.2h.6l.7-.2h.7l.6-.2h4.9zm-23-40 1 .3.3.3.5.7.6.8.8 1.2 1 1.2 1 1.3 1 1.5 1.3 1.5 1.3 1.7 1.4 1.8 1.4 1.8 1.5 1.8 1.5 2 1.5 1.8 1.4 2 1.4 2 1.3 1.7 1.3 2 1.2 1.7 1 1.7 1 1.6.8 1.5.6 1.4.4 1.3.3 1.2v2l-.6.7-.8.5H441v-1h2l.4-.3.3-.4V360l-.3-1.2-.4-1.2-.6-1.3-.8-1.5-1-1.6-1-1.7-1-1.8-1.3-1.8-1.4-2-1.4-2-1.4-1.8-1.5-2-1.4-1.8-1.5-1.8-1.4-1.8-1.3-1.8-1.3-1.6-1.2-1.6-1-1.5-1.2-1.3-1-1.2-.7-1-.6-1-.5-.7-.3-.4v-.6zm-12-3.7v-1l-.5.2.4-.6.3-.7.5-.6.5-.4.5-.3.6-.3.5-.2.5-.2h2.6l.6.2.6.2.5.3.6.2.6.3.4.4.5.2.4.4.4.4.5.5.4.4.3.4.3.4.3.5.2.5.2.5v.5l.2.5v1l-1-.3v-1l-.2-.4v-.4l-.3-.4-.2-.4-.3-.4-.3-.4-.5-.4-.3-.4-.5-.4-.4-.4-.5-.3-.4-.3-.5-.3h-.7l-.5-.3-.5-.2h-.5l-.6-.2h-2l-.4.3-.5.2-.4.3-.5.5-.4.4-.3.4-.3.6-.4.3zm.4-.3-.2.2h-.2zm-.5-.2v.5zm.4.2-.2.2h-.2z"/>
+ <path fill="#21231e" d="m407 317.2-1.3.4v-.6h.2v-.2h.8v.2h.2v.2zm7.6 10.6-.8 1-.4-.4-.3-.4-.3-.3-.3-.3-.4-.3-.3-.2-.3-.4-.3-.3-.2-.2-.3-.4-.3-.3-.3-.2-.4-.4-.3-.3-.2-.2-.2-.4-.2-.3-.3-.3-.2-.3v-.4l-.4-.3-.2-.4-.2-.4-.2-.4-.2-.4v-.4l-.3-.3-.2-.4v-.3l-.3-.3v-.4l-.3-.4 1.2-.4v.7l.3.3v.3l.3.4v.3l.3.4v.3l.3.4.2.3.2.3.2.4v.3l.3.3.2.4.3.3.2.3.3.4.2.3.3.3.3.3.4.4.2.3.3.3.2.3.3.3.4.2.2.3.3.3.4.4.2.3.4.3zm-.8 1 .8-1v.2h.2v.7h-.4v.2zm-9.5-4.6q1.3.1 1.2 1.5c-.1 1.4-.8 1.3-1.5 1.2q-1.3-.4-1.2-1.6c.1-1.2.8-1.3 1.5-1.2zm-45.9 38.4h.2v-.2h.4v.2h.2v.2l.2.2v.4h-.2zm-22.7 56 .2-1V416l.4-1.5.3-1.5.4-1.7.6-1.8.5-2 .7-2 .6-2 .6-2 .6-2.2.8-2.2.7-2.2 1-2 .7-2.3 1-2.3.7-2.2 1-2.2.8-2 1-2.2.8-2 1-2 .8-2 1-1.7.8-1.5 1-1.6.7-1.5 1-1.3.7-1.2.8-1 .8-.8.8-.6.7 1-.6.5-.7.8-.7 1-.8 1-1 1.3-.7 1.5-1 1.5-.7 1.7-1 1.7-.8 2-1 1.8-.8 2-1 2-.8 2.3-1 2-.7 2.3-1 2.3-.7 2.3-.8 2.2-.7 2.2-.8 2.2-.6 2-.6 2-.6 2.2-.6 2-.5 1.8-.4 1.8-.4 1.6-.5 1.6-.2 1.4-.2 1.3v1H336zm5.6 80.5-.7-2-.7-2-.7-2.2-.6-2.2-.6-2.2-.4-2.4-.4-2.3-.5-2.4-.4-2.5-.3-2.4-.3-2.5-.3-2.7-.2-2.6-.3-2.6-.2-2.5-.2-2.6v-3l-.2-2.7v-18.5l.3-2.7v-2.5l.2-2.6v-2.7l.3-2.6.2-2.5.2-2.5h1.2l-.3 2.6-.2 2.5-.2 2.6-.2 2.6v2.6l-.2 2.6v2.6l-.2 2.7v18.8l.2 2.6v2.6l.3 2.6.3 2.6.3 2.6.3 2.5.2 2.5.3 2.5.4 2.4.3 2.5.5 2.3.5 2.3.5 2.3.6 2.2.6 2 .7 2.2.7 2-1 .4zm1-.4v.8h-.8v-.2l1-.6z"/>
+ </g>
+ <use xlink:href="#rs-e" width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)"/>
+ <path fill="#21231e" d="M473 398.4h-.2v.5h-.2v.8l.2.7v1.6l.2.8.2.8v.7l.3.8v.8l.3.7.2.8.3.7.2.7.2.7.3.7.3.8.3.7.3.7.2.7.3.6.4.6.2.7.4.5.4.7.4.7.4.5.5.6.4.8.5.6.4.6.5.6.6.6.2.2h.8v-.2l.6-.6.5-.6.5-.6.4-.6.5-.7.5-.5.4-.6.3-.8.4-.6.3-.7.4-.8.4-.6.3-.7.4-.8.3-.7.3-.7.3-.7.3-.6.2-.7.3-.7.3-.7.2-.8v-.7l.3-.7.2-.7v-.7l.3-.8v-1.4l.2-.8v-2.1h-1v.4l-.2 1v1.4l-.2.7v.7l-.2.7-.2.7v.8l-.3.7-.2.7-.2.7v.6l-.3.7-.3.7-.2.7-.3.7-.4.6-.2.7-.4.7-.3.6-.3.7-.4.6-.4.7-.3.6-.4.6-.5.6-.4.6-.4.7-.4.7-.4.6-.5.6h-.2l-.5-.7-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.3-.7-.4-.6-.4-.7-.3-.6-.3-.7-.4-.7-.2-.6-.3-.7-.2-.7-.2-.7-.2-.7-.2-.7-.2-.8-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7v-2.3l-.2-.8v-.4h-.2v-.2h-.5z"/>
+ <path fill="#c6363c" d="M549.2 422v108.6a72 72 0 0 1-19.7 49.8 65 65 0 0 1-94.7.1 73 73 0 0 1-19.7-49.8V422z"/>
+ <use xlink:href="#rs-f" width="1350" height="900" transform="matrix(-1 0 0 1 964.3 -90)"/>
+ <path fill="#fff" stroke="#21231e" d="M549.2 488.6v28h-53v83a64 64 0 0 1-14 1.5 59 59 0 0 1-14-1.5v-83h-53v-28h53V422h28v66.6z"/>
+ <use xlink:href="#rs-f" width="1350" height="900" transform="translate(0 -90)"/>
+ <path id="rs-f" fill="#fff" stroke="#21231e" d="M459 567.3V528c-8.4-2.3-29.3-10.6-30.3 7.6-.5 8.4 10.4 14 13.3 6.5 1.4-3.4 0-6-2-6.7-2.4-.8-4.6 1-4 3.6-8.8-4.7 8-14.6 15.5-1.7 2.2 3.7-3.7 7.6-3.7 10.4 0 2.7 5.8 7 3.7 10.3-7.7 12.8-24.3 3-15.5-1.6-.6 2.7 1.6 4.5 4 3.6 2-.8 3.4-3.3 2-6.8-3-7.5-13.8-2-13.3 6.5 1 18.2 22 10 30.4 7.6z"/>
+ <use xlink:href="#rs-f" width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)"/>
+ <path fill="#21231e" d="M414 421v113.3l.2 1.7v2l.4 1.7.2 1.8.3 1.7.4 1.8.3 1.8.4 1.7.6 1.7.5 1.7.6 1.5.6 1.7.5 1.6.7 1.6.7 1.6.7 1.6.8 1.6.8 1.5.8 1.5 1 1.5.8 1.5 1 1.4.8 1.4 1 1.4 1 1.4 1 1.3 1 1.5 1.2 1.2 1 1.3 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1 1.3 1.3 1 1 1.4 1 1.3 1 1.4 1 1.5 1 1.4 1 1.3.8 1.4.8 1.5.8 1.4.8 1.6.7 1.5.6 1.5.7 1.5.6 1.6.5 1.6.5 1.5.5 1.6.5 1.8.4 1.6.4 1.7.4 1.8.2 1.7.3 1.7.2h1.7l1.6.2h8.9l1.7-.3 1.8-.3 1.7-.3 1.7-.2 1.7-.4 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.5 1.5-.6 1.6-.7 1.6-.7 1.6-.7 1.5-.8 1.4-.8 1.6-.8 1.4-1 1.5-.7 1.4-1 1.2-1 1.4-1 1.3-1 1.2-1 1.3-1 1.2-1.3 1.2-1 1-1.3 1.3-1.2 1.2-1.2 1-1.3 1.2-1.2 1-1.4 1-1.2 1-1.4 1-1.4 1-1.4 1-1.4.7-1.5 1-1.5.7-1.5.8-1.5.8-1.6.7-1.6.6-1.6.6-1.6.6-1.6.5-1.7.5-1.6.5-1.8.4-1.7.6-1.7.3-1.8.2-1.8.3-1.7.3-1.8v-.9l.3-2 .2-1.7V421zm2.3 2.2H548V536l-.3 1.6-.2 1.8-.2 1.7-.3 1.8-.3 1.7-.4 1.7-.3 1.7-.5 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.6 1.5-.8 1.6-.7 1.6-.7 1.5-.7 1.6-.7 1.4-.8 1.5-.8 1.4-1 1.3-.8 1.4-1 1.3-1 1.3-1 1.3-1 1.3-1 1.2-1.2 1.2-1 1.2-1.2 1-1.2 1.3-1.2 1-1.2 1-1.2 1-1.3 1-1.2 1-1.4 1-1.4 1-1.3.8-1.4 1-1.5.7-1.4.8-1.3.7-1.5.8-1.5.6-1.4.7-1.5.7-1.6.5-1.5.6-1.5.5-1.6.4-1.6.4-1.6.5-1.6.3-1.6.3-1.7.4H489l-1.8.3h-1.7l-1.6.2h-3.6l-1.6-.2H477l-1.6-.3h-1.6l-1.7-.4-1.5-.2-1.6-.3-1.7-.4-1.6-.3-1.6-.4-1.4-.5-1.6-.6-1.5-.5-1.5-.6-1.5-.6-1.4-.6-1.4-.8-1.4-.7-1.4-.8-1.4-.8-1.4-1-1.3-.7-1.4-1-1.3-1-1.2-1-1.3-1-1.2-1-1.2-1-1-1-1.3-1.3-1-1-1.2-1.3-1-1.2-1-1.3-1.2-1.4-1-1.3-1-1.3-1-1.3-.8-1.4-.8-1.4-1-1.5-.7-1.5-.8-1.4-.7-1.5-.8-1.4-.6-1.5-.6-1.5-.6-1.5-.5-1.6-.6-1.6-.5-1.6-.5-1.7-.4-1.6-.4-1.8-.4-1.7-.3-1.7-.3-1.7-.2-1.6-.2-1.8-.2-1.7v-5.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ru.svg b/apps/web/public/flags/ru.svg
new file mode 100644
index 00000000..cf243011
--- /dev/null
+++ b/apps/web/public/flags/ru.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ru" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v160H0z"/>
+ <path fill="#0039a6" d="M0 160h640v160H0z"/>
+ <path fill="#d52b1e" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/apps/web/public/flags/rw.svg b/apps/web/public/flags/rw.svg
new file mode 100644
index 00000000..06e26ae4
--- /dev/null
+++ b/apps/web/public/flags/rw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-rw" viewBox="0 0 640 480">
+ <path fill="#20603d" d="M0 0h640v480H0z"/>
+ <path fill="#fad201" d="M0 0h640v360H0z"/>
+ <path fill="#00a1de" d="M0 0h640v240H0z"/>
+ <g transform="translate(511 125.4)scale(.66667)">
+ <g id="rw-b">
+ <path id="rw-a" fill="#e5be01" d="M116.1 0 35.7 4.7l76.4 25.4-78.8-16.3L100.6 58l-72-36.2L82 82.1 21.9 28.6l36.2 72-44.3-67.3L30 112 4.7 35.7 0 116.1-1-1z"/>
+ <use xlink:href="#rw-a" width="100%" height="100%" transform="scale(1 -1)"/>
+ </g>
+ <use xlink:href="#rw-b" width="100%" height="100%" transform="scale(-1 1)"/>
+ <circle r="34.3" fill="#e5be01" stroke="#00a1de" stroke-width="3.4"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sa.svg b/apps/web/public/flags/sa.svg
new file mode 100644
index 00000000..596cf48b
--- /dev/null
+++ b/apps/web/public/flags/sa.svg
@@ -0,0 +1,25 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sa" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="sa-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#sa-a)" transform="translate(80)scale(.9375)">
+ <path fill="#165d31" d="M-128 0h768v512h-768z"/>
+ <path fill="#fff" d="M65.5 145.1c-.8 12-2 33 8.3 35.2 12.3 1.2 5.5-20.8 10-24.8.8-2 2.3-2 2.4.5v18.7c0 6 4 7.8 7 9 3.2-.2 5.4 0 6.6 3l1.6 32.3s7.4 2.2 7.8-18.1c.3-12-2.4-21.9-.8-24.2 0-2.3 3-2.4 5-1.3 3.2 2.2 4.6 5 9.6 4 7.6-2.2 12.2-5.9 12.3-11.7a47 47 0 0 0-3.5-16.6c.4-1-1.4-3.7-1-4.7 1.3 2.2 3.4 2 3.8 0-1.3-4.2-3.3-8.3-6.5-10-2.7-2.4-6.7-2-8 3-.8 5.7 2 12.4 6.1 18 .9 2.1 2.1 5.7 1.6 8.9q-3.4 1.8-6.3-1.2s-6-4.5-6-5.6c1.6-10.2.3-11.4-.6-14.3-.6-3.9-2.5-5.2-4-7.8-1.5-1.6-3.5-1.6-4.5 0-2.7 4.6-1.4 14.5.5 19 1.4 4.1 3.5 6.7 2.5 6.7-.8 2.3-2.5 1.7-3.8-1a67 67 0 0 1-2.1-17.4c-.5-4.6-1.1-14.4-4.2-17-1.8-2.4-4.5-1.2-5.5 1a82 82 0 0 0 .3 13.4c2 7.4 2.7 14 3.7 21.5.3 10.1-5.8 4.4-5.5-.7a45 45 0 0 0-.3-19.4c-1-2.6-2.1-3.2-4.6-2.8-1.9 0-6.8 5.3-8.2 14.3 0 0-1.2 4.6-1.7 8.7-.7 4.6-3.7 8-5.9-.6-1.8-6.3-3-21.6-6-18z"/>
+ <path fill="#fff" d="m99 194.2-32 15.4c.3-7.3 15.1-20.4 25.3-20.5 6.5.1 4.9 2.5 6.6 5.1z"/>
+ <path fill="#fff" d="M93.3 204.2c-16.8 43.5 39.5 49.6 45.8 1.8.6-2 3-3.9 3.4-.7-1.3 43.3-43.6 46.2-50.8 32.6a42 42 0 0 1-2.5-14.6c-1-8.5-5.5-5.2-6.2 3.2-.7 4.7-.5 6-.5 10.5 2.2 34.2 56.7 19.5 65.6-8.7 4.7-15.6-.8-27.1 1.7-27.1 5.4 5.8 13 .8 14.7-1.2.7-1 2.5-1.7 3.7-.4 4.2 3 11.6 1.6 13.2-3.7q1.4-8 1.8-16.2c-3.5 1-6 1.7-6.3 3.2l-.7 4.6c-.3 1.5-3.2 1.5-3.4-.4-1.3-6-6.7-6.7-10 2.5-2.1 1.8-6.1 2.2-6.5-.5.5-6.2-2-7-7-4.1l-4.8-36.2c2 0 4 1.5 5.9-.9-2-6.5-6.5-19.7-9-20.7-1.1-1.4-2.1-.5-3.7-.1-2.6.8-5 3-4.2 7.4 3 18.8 5 33.1 8.1 52 .5 2.1-1.3 5-3.7 4.7-4-2.7-5-8.2-12-8-5 0-10.6 5.5-11.3 10.7-.9 4.2-1.2 8.7 0 12.3 3.5 4.2 7.7 3.8 11.4 2.9 3-1.3 5.5-4.3 6.6-3.6.7.9.1 10.9-14.3 18.5-8.7 4-15.7 4.8-19.4-2.3-2.3-4.5.2-21.4-5.6-17.5"/>
+ <path fill="#fff" d="M165 160c3.3-1.2 19.3-19.6 19.3-19.6l-2.4-2q-1.3-1.1 0-2.2c4-2.4 2.7-7.4.7-9.8a10 10 0 0 0-8.7.1c-2.8 2.7-3.4 7-1.2 9.6 2.1 1 4.2 3.2 2.8 4.4-6.6 7-24.5 19.1-22.4 19.5.4.6 11.5.6 11.8 0zm-97 65c-6 9.6-6.5 23.9-3.2 28.2 1.8 2 4.7 2.9 6.8 2.2 3.8-1.6 5.5-9.3 4.6-12q-1.8-3-3.6-.7c-2.6 5.4-3.7 1.7-4-1.3a70 70 0 0 1 .8-15.2c.7-4.2 0-3-1.4-1.2m257.1-15.3c-5.8-12.6-13.9-25-16.4-29.7a558 558 0 0 0-24.8-36c-6.2-7.4 10.2 3.1-2-11.7l-8.9-7.5c-2-1.4-6.8-4-7.6.2-.4 3.8-.2 5.8.4 8.9.5 2 3.5 5.5 5 7.5a565 565 0 0 1 53.8 86.5c2.6-1.3 2-16.1.5-18.2"/>
+ <path fill="#fff" d="M299.6 251.5c-1.2 1.3 2.8 6.8 8 6.8 8.6-1 16.2-5.8 23.2-18.6a33 33 0 0 0 5.3-14.2 317 317 0 0 0-5.8-72.4c-.3-2 0-4.4.2-5 .6-.7 2.5 0 3.5-1.7 1.5-1.5-4-14-7-18.7-1-2.2-1.5-3.6-3.3.2a27 27 0 0 0-3 13.6c4.1 28.5 5.4 53.4 8 81.9.3 2.8-.1 6.8-2 8.4a80 80 0 0 1-27.1 19.7m116.5-.1c-6.2 3.6-6.2 7.7-1.2 7.8 8.6-1 18.8-1.7 25.8-12.3a41 41 0 0 0 4.2-16 303 303 0 0 0-4.7-71.4c-.2-2-1.1-6.7-.8-7.3.6-1.4 3.4.1 4.4-1.5 1.4-1.5-7.3-12.7-10.4-17.5-1-2.2-1.4-3.6-3.3.2a22 22 0 0 0-1.8 13.6c4.6 31 8 54.2 8.7 81.6-.4 2.6-.5 4-1.7 7.3-2.7 3.4-5.7 7.8-8.5 9.9-2.8 2-8.8 4-10.7 5.6"/>
+ <path fill="#fff" d="M420.7 223.7q.1-10.9-.1-19a34 34 0 0 0-3-13.5c-1.8-4.1-.7-7.4-1.6-11.8-.8-4.4-.6-11-1.8-16.1-.4-2-1.4-8.5-1.1-9.2.5-1.4 2.4 0 3.4-1.6 1.4-1.5-5-18-8.2-22.7-1.1-2.1-3.3-1.4-5.8 2-2.5 2.3-1.6 7.4-.6 12.3 6.1 32.3 10.8 61.6 9.8 92.3-.4 2.6 9-7.8 9-12.7m-45.7-40c-3.9-.2-12-7.7-14.4-12a8 8 0 0 1 .4-6.5c1.5-1 3.7-2 5.4-1 0 0 1.7 2.4 1.4 2.7 2 1 3 .5 3.2-.4.1-1.5-.6-2.4-.6-4 .9-4.6 6-5.3 8-2.4 1.4 1.8 2 5.5 2.1 8 0 1.3-2-.2-3.3 0-1.1.4-1.4 1.8-1.5 3-.2 3.3-.6 8.6-.7 12.5zm-71.8 48c1-9.8-.4-27.3-.5-33.1A477 477 0 0 0 299 154c-1.2-8.4 3.4.9 2.8-4-1.5-8.3-6.1-14-11.6-21.5-1.7-2.5-1.7-3-4.4.6-3 6.7-.4 11.4.4 16.7 3.9 17.2 6.2 33 7.3 48.7a393 393 0 0 1 .4 49c3 .1 7.6-4.7 9.3-11.8"/>
+ <path fill="#fff" d="M434 216c-6.9-11.6-17.2-24-20-28.7a658 658 0 0 0-29.2-37.8c-8.5-9 4-1.5-1.6-8.5-4.7-5.1-6-6.8-10.1-9.9-2-1.3-3.2-3.8-4 .5a83 83 0 0 0-.2 11.2c0 1.7 1.8 5 3.4 7 20.7 25.5 43.4 51.5 61.6 84.2 2.6-1.3 1.7-16 0-18z"/>
+ <path fill="#165d31" d="M122.6 194.7c-.5.9-1.6 2-1.2 3.1q1 1.4 2.6 1.3c1.1 0 2.7.3 3-.3q1-1.2.6-3.3c-1.2-3-4.4-1.8-5-.8"/>
+ <path fill="#fff" d="M354.2 362.5c9.2.4 15.2.5 23.3 1.4l9.6-1c10.6-1 11 15.1 11 15.1 0 9.5-3.7 10-8.4 11-2.7.4-4-1.6-5.5-3.6a14 14 0 0 1-7 .4l-11.5-.5c-4-.3-6.2.5-10.3.1-.8 1.3-2 3.1-4.4 2.6-2-.3-4.5-6-3.8-10.5 1.5-3.2 1-2.1 1-3.5-37.6-1-75.5-2.7-112.3-2.2-28.8.1-57.2 1.3-85.7 2.5-15.2-.2-26.8-2.6-34.8-14.3.8 0 38.8 2.1 49.9 1.4 20.5-.2 39.3-1.9 60.2-2.5 41.2.7 82.1.7 123.3 3.6-4-2.7-4-9 2-10.6.5-.4.8 3.1 1.7 3 4.9-.3 2.7 6.3 1.7 7.6M188.6 135.3c-6.2 17.8 3.6 37.4 10.4 35.5 5 2 8-7.4 10-17.6 1.5-2.9 2.5-3.2 3.2-1.7-.2 13.6 1 16.7 4.5 20.8 7.8 6 14.3.8 14.8.3l6-6.1q2.2-2.2 5.1-.3c1.9 1.7 1.6 4.6 5.6 6.6 3.4 1.4 10.5.4 12.2-2.5 2.2-3.9 2.8-5.2 3.8-6.6 1.6-2.1 4.3-1.2 4.3-.5-.3 1.2-1.9 2.3-.8 4.5 2 1.4 2.4.5 3.5.2 4-2 7-10.6 7-10.6.1-3.2-1.7-3-2.9-2.2l-3.1 2.1c-2 .3-5.7 1.6-7.6-1.3-1.9-3.4-1.9-8.3-3.3-11.8 0-.2-2.6-5.5-.2-5.8 1.2.2 3.7.9 4.1-1.2 1.2-2.1-2.6-8-5.3-11-2.3-2.5-5.5-2.8-8.6-.2-2.2 2-1.9 4.2-2.3 6.3a10 10 0 0 0 2 8.7c2.2 4.2 6.1 9.7 4.8 17.5 0 0-2.3 3.6-6.3 3.1-1.7-.3-4.4-1-5.8-11.8-1.1-8 .2-19.4-3.2-24.7-1.3-3.3-2.2-6.4-5.2-.9-.8 2.2-4.3 5.5-1.8 12.2a36 36 0 0 1 2 19c-1.5 2.2-1.8 2.9-3.7 5-2.6 3-5.5 2.2-7.7 1.1-2-1.3-3.6-2-4.6-6.5.2-7 .6-18.5-.7-20.9-1.9-3.8-5-2.4-6.3-1.2a48 48 0 0 0-11.5 23.5c-1.8 5.8-3.7 4.1-5 1.8-3.2-3-3.5-26.7-7.4-22.8"/>
+ <path fill="#fff" d="M207.4 174.1c2.9-2 1.6-3.4 5.8.8a72 72 0 0 1 9.2 31.3c-.2 2.6 1.6 4.2 2.5 3.6.4-6 15.1-14.4 28.6-15.6 2-.5 1-4.4 1.3-6.4-.8-7.5 4.2-14.3 11.2-14.8 9.6 1.4 12.8 6.5 13 14.2-1.1 15-16.7 17.5-25.4 18.7-1.3.5-1.9 1.1 0 1.8l36.6.2 1.9 1c.2 1-.6.2-2 2.6a30 30 0 0 0-3.7 11.5c-10.9 3.6-22.2 5-33.6 6.5-4 2-6 4.7-5.2 7.7 1.4 3.3 10.2 6.7 10.2 6.8 1.7 1 3.6 3.5-.5 8.6-17.8-.8-31.7-8.4-36.5-19.1-1.4-1.1-3 0-4 1.4-7 9-13.8 17-25.7 21.4-7 1.8-14.3-1.1-17.7-5.7-2.3-2.7-2.2-5.6-3-6.2-3.9 1.7-36.9 15.7-32.7 9.1 8-8.5 22-14.9 34.2-23.3.9-2.9 2.5-12.5 7.3-15.6.3 0-.7 5.6-.6 8 0 2-.2 2.7.2 2.2.9-.5 15.7-12.2 17-15.8 1.4-2 .3-7.2.3-7.4-2.8-7.2-6.7-7.8-8.1-11.4-1.3-4.7-.7-10.1 2-11.7q3.7-3.1 7.9.5c3 2.7 5.6 8 6.4 11.9-.5 1.5-4-1-5-.3a16 16 0 0 1 3.7 7.8c2 8.2 1.4 11.4-.6 16.7-6.6 13.9-15 18-22.4 23.2-.2 0-.3 3.5 2.4 5.4 1 1 4.9 1.5 9.4 0a55 55 0 0 0 22.3-23.3 51 51 0 0 0-2.4-22.2c-2.9-6.7-6.3-16.2-6.3-16.4-.1-4.2.2-5.6 2-7.7m-95.8-38.6c4.2 2 12.2 1.1 11.8-5.7l-.2-3.1c-.8-2-3.2-1.5-3.7.5-.2.7.3 1.8-.3 2.1-.4.4-1.7.2-1.7-1.7q-.1-1-.7-1.6-.2-.2-.9-.2c-.6 0-.6.1-.9.6l-.3 1.6q-.1.9-.8 1c-.6 0-.5 0-1-.2q-.4-.3-.5-1l-.3-1.6q-.3-.4-1-.6c-2.3 0-2.5 2.7-2.3 3.7-.2.2-.3 4.9 2.8 6.2"/>
+ <path fill="#fff" d="M235.1 187.7c4.2 2 14.3.9 11.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.6-.2.6.3 1.7-.4 2-.3.4-1.7.2-1.6-1.6q-.1-1-.7-1.7-.3-.2-1-.2c-.5 0-.5.2-.8.7q-.3.7-.3 1.6-.2.8-.9 1c-.5 0-.4 0-.8-.3q-.5-.3-.6-.9l-.3-1.6q-.3-.5-1-.6c-2.3 0-2.5 2.6-2.4 3.6-.1.2-.2 5 3 6.2zm72-21.6c4.2 2 12.1 1.1 11.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.5-.2.7.3 1.8-.4 2.2-.3.3-1.7.1-1.6-1.8q-.1-1-.7-1.6-.3-.2-1-.2t-.8.7l-.3 1.5q-.1 1-.9 1c-.8 0-.4 0-.8-.2q-.5-.3-.6-.9 0-1-.3-1.7-.4-.4-1-.5c-2.3 0-2.5 2.6-2.4 3.6-.1.2-.2 4.9 3 6.2zm37.3 54.3c-7.3 8.3-4.1 22-2.4 25 2.4 4.8 4.3 7.9 9 10.3 4.3 3.1 7.7 1.2 9.5-1 4.3-4.5 4.4-16 6.4-18.2 1.4-4.2 5-3.5 6.7-1.6a17 17 0 0 0 6.2 5.3c4 3.5 8.8 4.2 13.6 1 3.2-1.9 5.3-4.2 7.2-8.9 2-5.6 1-31.6.5-47l-4.2-21.5c0-.2-.5-10.2-1-12.5 0-1-.3-1.3.7-1.2 1.1 1 1.2 1 2 1.3 1 .2 2-1.7 1.3-3.3l-10-18.6c-.8-.8-1.9-1.6-3.2.2a7 7 0 0 0-2.4 5.5l1.3 13.3 4 22.6c1.3 16 1.6 29.2 2.9 45.3-.2 6.8-2.3 12.7-4.3 13.6 0 0-3 1.7-5-.2-1.5-.6-7.4-9.9-7.4-9.9-3-2.7-5-2-7.1 0-6 5.8-8.6 16.4-12.7 23.8-1 1.7-4 3-7.2-.1-8.2-11.3-3.4-27.3-4.4-23.2M309 126.7c3.8 1.5 6.4 9.2 5.6 13-.8 4.5-2.8 9.5-4.2 8.9-1.6-.6 1-4.6-.5-8.8-.8-2.8-6-7.8-5.4-9.2-1-3.1 2.2-4.5 4.5-4z"/>
+ <path fill="#fff" d="M356.6 225c.7-9.2-.6-14.8-.8-20.2s-6.1-46.6-7.3-50.6c-1.5-7.8 5.7-1 4.9-5.6-2.5-5.6-8.6-13.9-10.5-18.8-1.2-2-.7-4-3.3-.5a42 42 0 0 0-2.3 19.2c6.2 32.3 12.5 59.1 11.5 89.8 3 0 6.3-6.7 7.8-13.3m64.4-85.3c3.5 1.7 5.5 11.3 5.1 14-.7 5-2.5 10.4-3.8 9.7-1.5-.6.3-7.4-.4-9.5-.8-3-5.5-8.4-5-10-1-3.4 2-4.8 4.1-4.2m-255.7 67.9c3.3 1.3 5.3 8.3 5 10.3-.8 3.7-2.5 7.7-3.8 7.1-1.3-.4.3-5.4-.3-7-.3-3.7-4.9-5.7-4.8-7.3-.8-3 2-3.5 4-3.1z"/>
+ <path fill="#165d31" d="M244.9 218.2c4.2.2 6.3 3.6 2.4 5-4 1.3-7.7 2.4-7.8 8 1.5 8-2 5.2-4 4.2-2.4-1.8-9.2-6-10.2-15-.1-2.1 1.6-4 4.3-4 4 1.1 10 1.2 15.3 1.8"/>
+ <path fill="#fff" d="M77.4 124.4c4.8 1.4 5.1 8.6 4.8 10.7-.7 3.8-2.4 7.9-3.6 7.4-1.4-.5 0-5.7-.7-7.3-.7-2.2-4.8-6.4-4.4-7.6-.9-2.5 2-3.7 3.9-3.2m95.9 33.6c-3.8 2-5.2 8-2.9 11.6 2.2 3 5.6 1.9 6 1.9 3.7.4 5.9-6.9 5.9-6.9s.1-2-4.2 1.9c-1.9.3-2-.4-2.5-1.4a9 9 0 0 1 .5-5.7c.7-1.8-.7-2.6-2.8-1.4m28-36.4c-2 1.3-5.7 5.2-5.8 9.6-.1 2.5-.6 2.5 1 4 1.3 1.8 2.4 1.7 4.8.4a5 5 0 0 0 2.3-3.4c.6-2.8-3 1.4-3.4-1.8-.8-3 1.5-4.2 3.7-7 0-2 0-3.3-2.7-1.8zm22.4 4a60 60 0 0 0-1.6 11.1c-.6 2.8 3 4 4.5.4 2.4-6.5 2.4-9.3 2.6-12-.7-4.3-3.6-4.2-5.5.5m142 72.3c.4-.5 20-14.4 20-14.4 2-.7 1.5 7.2.6 7.1a78 78 0 0 1-20.7 14.3c-1 .7-1.9-5.3 0-7zm17.7-.2c3.5 1.7 4.9 11.8 4.5 14.5 0 5.4-3.3 9.6-4.7 9-1.4-.7.2-6.7-.5-8.8-.8-3-3.7-8.5-3.2-10.1-1-3.4 1.8-5.2 4-4.6zm-116 43.4a26 26 0 0 1 5.6-4.9c2-1 3.8.8 3.7.7.3 2-1.2 3.7-.7 6.3.4 1 .7 2.2 2.6 1.8 3.1-2.5 6-2.7 9-2.8 2.5.1 2.6 4.2 1 4.2-5.7 1.2-8.2 2.8-12.3 4.3-2 1.2-3.6-.3-3.6-.4s-1.1-1.1-.4-3.7q.3-3.2-2.4-3c-1.2.8-2.4 1.2-3-.3q-.6-1.4.5-2.2m136.6 5.4c.8 1 1.4 2-.1 3.8l-3.7 3.2c-.6 1-1 2.8 1 3.3 3.6 1 12-4.5 12-4.6 1.4-1 1-3 .8-3-.8-.9-2.6-.3-3.8-.5-.6 0-2.5-.2-1.6-2a11 11 0 0 0 1.6-2.9q.9-1.7-2-2.7c-2.1-.4-3-.2-5.3 0q-1.6.2-1.9 2.3c.1 2.3 1.5 2.2 3 3z"/>
+ <path fill="#165d31" d="M268.1 189.7c-.5 1-2.3 1-4 0s-2.7-2.6-2.1-3.5 2.3-.9 4 0 2.6 2.6 2.1 3.5m-89-53.6c-1 .3-2.4-.6-3-2s-.3-2.6.7-2.9 2.3.7 3 2 .3 2.7-.8 3zM355.2 375c9.4.4 18.2 0 27.5.5 1.7 1.5.5 5-.6 4.8l-7.8-.3c-.1-3-7.7-2.5-7.5.1-4.1.5-7.8-.1-12-.3-1.2-1.5-1-4.2.4-4.8"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sb.svg b/apps/web/public/flags/sb.svg
new file mode 100644
index 00000000..6066f94c
--- /dev/null
+++ b/apps/web/public/flags/sb.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sb" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="sb-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#sb-a)" transform="scale(.9375)">
+ <path fill="#0000d6" d="M0 507.2 987.4 0H0z"/>
+ <path fill="#006000" d="M1024 0 27.2 512H1024z"/>
+ <path fill="#fc0" d="M1024 0h-54.9L0 485.4V512h54.9L1024 27.6z"/>
+ <path fill="#fff" d="m71.4 9.1 11.8 34.5h38.5L90.6 64.7l11.9 34.4L71.4 78 40.3 99.2l11.9-34.4-31.1-21.3h38.4zm191.1 0 11.9 34.5h38.5l-31.2 21.2 12 34.4L262.4 78l-31 21.3 11.9-34.4-31.2-21.3h38.5zm0 144.5 11.9 34.5h38.5l-31.2 21.2 12 34.4-31.2-21.3-31 21.3 11.9-34.4-31.2-21.3h38.5zm-95-71.4 11.9 34.4h38.4l-31 21.3 11.8 34.4-31-21.3-31.2 21.3 12-34.4-31.2-21.3h38.5zm-96.1 71.4 11.8 34.5h38.5l-31.1 21.2 11.9 34.4-31.1-21.3-31.1 21.3 12-34.4L21 188h38.4z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sc.svg b/apps/web/public/flags/sc.svg
new file mode 100644
index 00000000..9a46b369
--- /dev/null
+++ b/apps/web/public/flags/sc.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sc" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0Z"/>
+ <path fill="#d92223" d="M0 480V0h640v160z"/>
+ <path fill="#fcd955" d="M0 480V0h426.7z"/>
+ <path fill="#003d88" d="M0 480V0h213.3z"/>
+ <path fill="#007a39" d="m0 480 640-160v160z"/>
+</svg>
diff --git a/apps/web/public/flags/sd.svg b/apps/web/public/flags/sd.svg
new file mode 100644
index 00000000..12818b41
--- /dev/null
+++ b/apps/web/public/flags/sd.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sd" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="sd-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#sd-a)" transform="scale(.9375)">
+ <path fill="#000001" d="M0 341.3h1024V512H0z"/>
+ <path fill="#fff" d="M0 170.6h1024v170.7H0z"/>
+ <path fill="red" d="M0 0h1024.8v170.7H0z"/>
+ <path fill="#009a00" d="M0 0v512l341.3-256z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/se.svg b/apps/web/public/flags/se.svg
new file mode 100644
index 00000000..8ba745ac
--- /dev/null
+++ b/apps/web/public/flags/se.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-se" viewBox="0 0 640 480">
+ <path fill="#005293" d="M0 0h640v480H0z"/>
+ <path fill="#fecb00" d="M176 0v192H0v96h176v192h96V288h368v-96H272V0z"/>
+</svg>
diff --git a/apps/web/public/flags/sg.svg b/apps/web/public/flags/sg.svg
new file mode 100644
index 00000000..c4dd4ac9
--- /dev/null
+++ b/apps/web/public/flags/sg.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sg" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="sg-a">
+ <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#sg-a)">
+ <path fill="#fff" d="M-20 0h720v480H-20z"/>
+ <path fill="#df0000" d="M-20 0h720v240H-20z"/>
+ <path fill="#fff" d="M146 40.2a84.4 84.4 0 0 0 .8 165.2 86 86 0 0 1-106.6-59 86 86 0 0 1 59-106c16-4.6 30.8-4.7 46.9-.2z"/>
+ <path fill="#fff" d="m133 110 4.9 15-13-9.2-12.8 9.4 4.7-15.2-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.5 52 5 15.1-13-9.2-12.9 9.3 4.8-15.1-12.8-9.4 15.9-.1 4.9-15.1 5 15h16zm58.5-.4 4.9 15.2-13-9.3-12.8 9.3 4.7-15.1-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.4-51.6 4.9 15.1-13-9.2-12.8 9.3 4.8-15.1-12.9-9.4 16-.1 4.8-15.1 5 15h16zm-46.3-34.3 5 15.2-13-9.3-12.9 9.4 4.8-15.2-12.8-9.4 15.8-.1 5-15.1 5 15h16z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sh-ac.svg b/apps/web/public/flags/sh-ac.svg
new file mode 100644
index 00000000..c43b301e
--- /dev/null
+++ b/apps/web/public/flags/sh-ac.svg
@@ -0,0 +1,689 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sh-ac" viewBox="0 0 640 480">
+ <path fill="#012169" d="M0 0h640v480H0Z"/>
+ <path fill="url(#sh-ac-ac-h)" d="M395.4 250.5s-18.2-20.1-32-22.9c-14-2.7-22.7-.3-26.8 3-4.2 3.5-18 14.4-19.5 22.6l18.1.9s3.8-8 15.8-7.5 13.9 4.8 13.1 5.8c-.7 1-1.1 4.3 3.7 6.6s6.9 7.4 6.9 7.4l8.5-4.4s1.8-2.8 2.6-3.3 3.5-.8 4.2-1.5c.7-.8 3.4-2.6 3.4-2.6z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#d5ccc0" d="M527.1 277.7s12.3 9.4 13.2 12.7c1 3.3-6.8 8.2-6.8 8.2l.9 1.6 4.2-2c.6 0 1-.8 1.1-1 .1-.3.8-1.1 1.9-1.4s1.2-.2 1.5-.5c.2-.4 1.2-1.3 1.9-1.7q.9-.5.7-.8l1-1.4-.3-.6s-7-8-15.6-12l-3.7-1z"/>
+ <path fill="#fdf2e8" d="M503 292.9s8.6-14.5 15.4-15.6c0 0-3 0-5.7 2-3 2.2-9 7.4-11.8 13.5"/>
+ <path fill="#494037" d="M546 292.5c.4-.7-.3-1.5-1-1.6-.8 0-2.3-.1-2.3.4s-.3 3 .4 3 2.5-1.2 2.9-1.8m-5 1.7q-.2 1-1.2 1.1-.8.1-.9 1c0 .3-1.9-.1-2-1.2-.2-1.2-.3-3.2.6-3.3.9-.2 3.5 1.9 3.5 2.4m-2.2 4c0-.6-1.6-.5-1.7-1s-1.4-2.5-1.9-1.8-.3 1.4-1 1.6-1.5.8-1.3 1.1l1.3 2zm-7.1-2.5c.4.4 1 1.2 2 .1.8-1 1-1.4-.3-1.5-1.2-.1-3.2-.4-3 0 0 .4.8 1 1.3 1.4m-3.7-2.1c-.1-.8 1.7-.2 1.5.4s1 1.9.3 1.6-1.6-.5-1.8-2m2.3-2.2c.2-1.2 1.5-.3 1.8.2s2.6 2 1 1.8-3.2-.3-2.8-2m.1-3q-.1 1.9 2.2 2c1.6-.1 3.3-1 3.2-2 0-1.1-1.5-2.8-2.5-3.3s-3.2-1.7-3.2-.6c0 1 .4 2.7.3 4zm7 .8c.3-.8 1.4-2.7 2-2.7a8 8 0 0 1 3.4 1.7q.7 1.1-.5 2.1t-3.1.9c-1-.1-2-1-1.8-2m.1-6.3s-.1 4-1.5 2.7-3.4-1.4-3.5-3q0-2.2 1.4-2.1c.8 0 3.6 2.4 3.6 2.4m-11 4.6c0 1-.3 1.3.6 1.3 1-.1 3 0 2.8-.7-.3-.8-1.2-1.7-2-1.7q-1.4-.1-1.3 1zm1.7-4.8c.6.1 3.4.8 3.3-.2 0-1 .4-1.3.6-2q.4-1.2-.9-1.7c-.7-.5-2.9-.8-3.4-1-.6 0-1.1 1.3-.3 2 .8.5 0 2.7.7 2.9m-4-2.5c.8.4 2.6 1.1 2.5.6 0-.5.2-1.6-.4-1.6s-3.3.5-2.2 1zm-2 8c.7-.3 2.5-1.2 2.1-1.7s-4.2 0-4.2.7.4 2 2.1 1m1.7.4c.5-.1 1.8-.4 1.8 0q.2.9-1 .9c-.8-.2-1.7-.7-.8-.9m.2-4c1.3-.3 2.7-1 0-1.3-2.6-.3-5.9-.6-5.3.3.5.9 2.1 2.5 3.3 2 1.1-.3.9-.6 2-1m-3-3.2c.9.3 2.1-.4 1.5-1.5-.5-1-2.6 1.2-1.6 1.5zm-3.2-4c1.2.4 2.3 1.5 2.1 2.4s-.3 2.8-2 2.7c-1.5-.1-3.2.4-4-.3s-2.3-1.8-1-3.2c1.4-1.3 5-1.6 5-1.6zm-5 8.5c-1.1-.6 1.7-2.2 2.3-2.5s1.9.4 2 .8 1.3 1.2 2 1.4c.7.3 0 1.4-.7 1.5s-2.2 2-2.9 1.4-2.2-2.4-2.7-2.6m-.6-2.3c-.1-.7 0-1.5-1.5-.9s-3.3 1.7-3.5 2.4-1 2.8-.2 2.7 2.1 1.7 2.7.4 2.3-1.2 2.4-2.9.3-.6.1-1.7m2.1 5c-.6-1-2-1-2.9-.2s-2.2 2-1.5 2c.7.1 2.6 1 3.7.3s1-1.5.7-2.1m-10.5 4.2c-.4-1.2 1.4-2.7 1.4-3.7.1-1 .8-1.5 1.8-.4 1 1 2 2.8 2.1 3.6 0 .8-.1 0-1.4.4-1.4.3-3.9.1-3.9.1"/>
+ <path fill="#494037" d="M504.2 290.1s.4.7.2 1.2c-.1.6-1 1-1 1z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M546.4 291.2s-10.6-11.7-18.6-13.3-13.2-.2-15.6 1.7c-2.4 2-10.4 8.3-11.3 13.2l10.5.4s2.2-4.6 9.2-4.3 8 2.8 7.6 3.4-.6 2.5 2.2 3.8c2.7 1.3 4 4.3 4 4.3"/>
+ <path fill="url(#sh-ac-ac-d)" d="M122 250.5s18.2-20.1 32-22.9c14-2.7 22.7-.3 26.8 3 4.2 3.5 17.9 14.4 19.5 22.6l-18.2.9s-3.7-8-15.7-7.5-14 4.8-13.2 5.8 1.2 4.3-3.6 6.6-7 7.4-7 7.4l-8.4-4.4s-1.8-2.8-2.7-3.3c-.8-.4-3.5-.8-4.2-1.5-.6-.8-3.4-2.6-3.4-2.6z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#d5ccc0" d="M406.7 277.7s-12.3 9.4-13.2 12.7c-1 3.3 6.9 8.2 6.9 8.2l-1 1.6-4.2-2c-.6 0-1-.8-1.1-1-.1-.3-.8-1.1-1.9-1.4s-1.2-.2-1.5-.5a8 8 0 0 0-1.9-1.7q-.8-.5-.7-.8l-1-1.4.4-.6s6.9-8 15.5-12l3.7-1z"/>
+ <path fill="#fdf2e8" d="M430.8 292.9s-8.6-14.5-15.4-15.6c0 0 3 0 5.7 2 3.1 2.2 9 7.4 11.8 13.5"/>
+ <path fill="#494037" d="M387.9 292.5c-.5-.7.2-1.5 1-1.6.7 0 2.2-.1 2.2.4s.3 3-.4 3-2.4-1.2-2.8-1.8m5 1.7q.1 1 1 1.1t1 1c0 .3 1.9-.1 2-1.2.3-1.2.4-3.2-.6-3.3-.9-.2-3.4 1.9-3.4 2.4m2.1 4c0-.6 1.6-.5 1.7-1s1.4-2.5 1.9-1.8.3 1.4 1 1.6 1.5.8 1.3 1.1l-1.3 2zm7.1-2.5c-.4.4-1 1.2-1.9.1q-1.6-1.4.2-1.5c1.2-.1 3.2-.4 3 0 0 .4-.8 1-1.3 1.4m3.7-2.1c.1-.8-1.7-.2-1.5.4s-1 1.9-.3 1.6 1.6-.5 1.8-2m-2.2-2.2c-.3-1.2-1.6-.3-1.9.2s-2.6 2-1 1.8 3.2-.3 2.9-2m-.2-3q.3 1.9-2.2 2c-1.6-.1-3.3-1-3.2-2 0-1.1 1.5-2.8 2.5-3.3s3.2-1.7 3.3-.6c0 1-.5 2.7-.4 4zm-7 .8c-.2-.8-1.4-2.7-2-2.7a8 8 0 0 0-3.4 1.7q-.7 1.1.5 2.1 1.3 1 3.1.9c1-.1 2-1 1.8-2m-.1-6.3s.1 4 1.5 2.7 3.4-1.4 3.5-3q0-2.2-1.4-2.1c-.8 0-3.6 2.4-3.6 2.4m11 4.6c0 1 .3 1.3-.6 1.3-1-.1-3 0-2.7-.7.3-.8 1-1.7 2-1.7q1.2-.1 1.3 1zm-1.7-4.8c-.6.1-3.4.8-3.3-.2 0-1-.3-1.3-.6-2q-.3-1.2.9-1.7c.7-.5 2.9-.8 3.5-1 .5 0 1 1.3.2 2-.8.5 0 2.7-.7 2.9m4.1-2.5c-.8.4-2.7 1.1-2.6.6 0-.5-.2-1.6.5-1.6s3.2.5 2.1 1m1.9 8c-.7-.3-2.5-1.2-2.1-1.7s4.2 0 4.2.7-.4 2-2.1 1m-1.6.4c-.6-.1-1.9-.4-1.9 0q-.2.9 1 .9c.8-.2 1.7-.7.9-.9m-.3-4c-1.3-.3-2.6-1 0-1.3s5.9-.6 5.3.3c-.5.9-2.1 2.5-3.3 2-1-.3-.8-.6-2-1m3-3.2c-.9.3-2-.4-1.5-1.5.5-1 2.6 1.2 1.6 1.5zm3.2-4c-1.2.4-2.2 1.5-2 2.4 0 .8.3 2.8 1.9 2.7s3.2.4 4-.3 2.3-1.8 1-3.2c-1.4-1.3-5-1.6-5-1.6zm5 8.5c1.1-.6-1.7-2.2-2.3-2.5s-1.9.4-2 .8-1.3 1.2-2 1.4c-.6.3 0 1.4.7 1.5s2.2 2 3 1.4c.6-.6 2-2.4 2.6-2.6m.6-2.3c.1-.7 0-1.5 1.5-.9s3.3 1.7 3.5 2.4 1 2.8.2 2.7-2.1 1.7-2.7.4-2.3-1.2-2.4-2.9-.3-.6-.1-1.7m-2 5c.5-1 2-1 2.8-.2.9.8 2.2 2 1.5 2-.7.1-2.6 1-3.7.3q-1.3-1.1-.7-2.1zm10.4 4.2c.4-1.2-1.4-2.7-1.4-3.7s-.8-1.5-1.8-.4c-.9 1-2 2.8-2 3.6-.1.8 0 0 1.4.4 1.3.3 3.8.1 3.8.1"/>
+ <path fill="#494037" d="M429.6 290.1s-.3.7-.2 1.2 1.1 1 1.1 1z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M387.4 291.2s10.6-11.7 18.7-13.3 13.1-.2 15.5 1.7c2.4 2 10.4 8.3 11.3 13.2l-10.5.4s-2.2-4.6-9.2-4.3-8 2.8-7.6 3.4.6 2.5-2.1 3.8a9 9 0 0 0-4 4.3"/>
+ <path fill="#fff" d="M410.2 291.7s.7 60.8 1.6 66.4 4.4 40.5 54.6 61.5c0 0 38.8-16.5 48.7-39.4s8-66 8-66v-23.4z"/>
+ <path fill="#1b81b6" d="M522.8 311.5s-8.2-5.2-16.2-5.2-13.4 9.3-20 9.3-10-7.2-20.2-7.2c-10 0-11.4 7.2-18 7.2s-14-9.3-20.9-9.3c-7 0-15.9 6-15.9 6l.1 21s9-6 15.9-6 14.3 9.3 21 9.3c6.5 0 7.8-7.2 18-7.2 10 0 13.5 7.2 20.1 7.2s12-9.3 20-9.3 16.3 5.1 16.3 5.1l-.1-21m-100.7 74a19 19 0 0 1 5.7-1c7 0 14.3 9.3 21 9.3 6.5 0 7.8-7.2 18-7.2 10 0 13.5 7.2 20.1 7.2s12-9.3 20-9.3q2.6 0 5.2.7c6 1.3-34.9 34.5-45.3 34.5s-50-32.4-44.7-34.2m97.6-18a32 32 0 0 0-13-3.4c-7.9 0-13.3 9.3-19.9 9.3s-10-7.2-20.2-7.2-11.4 7.2-18 7.2-13.9-9.2-20.9-9.2a31 31 0 0 0-13.4 4.6c-1.5.9-2.5-16-2.5-16s9-6 15.9-6 14.3 9.3 21 9.3c6.5 0 7.8-7.3 18-7.3 10 0 13.5 7.3 20.1 7.3s12-9.4 20-9.4 16.3 5.2 16.3 5.2-1.2 16.6-3.3 15.7"/>
+ <path fill="url(#sh-ac-ac-i)" d="m643.2-61.7-1.3 1.6q.7-.7 1.2-1.6m-88.7-17.2 1 3zm50.2-50.6-49.2 53.7a55 55 0 0 0 8.6 15.4l39-42 .5.5 1.4-1.2 38.3 41.4q5.9-8 8.6-17z" transform="translate(-136.2 449.1)"/>
+ <path d="m415.5 372.3.4.4 51-54.8 50.7 54.8.4-.4-.5-.3v.2c-.3.6-1.6 3.8-3.6 7.5-1.9 3.7-4.5 8-7.3 11.2l.4.4.4-.4-40.5-44.1-41.2 44 .4.5.5-.4v-.1l-4.9-7a49 49 0 0 1-5.7-11.7zl.4.4zl-.6.1a52 52 0 0 0 6.3 12.8c2.4 3.7 4.5 6.4 4.5 6.4l.4.5 40.8-43.6 39.9 43.6.5-.5c3.2-3.4 6-8.2 8-12.1s3.2-7 3.2-7l.1-.4-51.8-55.9-52 55.9v.3zm51 45.8h.9l-.5-.2zM411 290.8l-.9.9h1z"/>
+ <path d="m470.3 289.9-.8 1.8h53l-1 37.5-.6 19.2-.1 2.4v2.4l-.4 4.7a61 61 0 0 1-1.9 9.2q-2.5 9.1-7.7 17a73 73 0 0 1-12.2 14.4q-7 6.4-15.2 11.3a108 108 0 0 1-8.3 4.5 87 87 0 0 1-8.2 3.6l.5.2h-1l.5-.2a87 87 0 0 1-8.2-3.6 108 108 0 0 1-8.3-4.5q-8.1-4.9-15.2-11.3-7-6.3-12.2-14.3t-7.8-17a61 61 0 0 1-1.8-9.3l-.4-4.7v-2.4l-.2-2.4-.7-19.2-1-37.5h-.8l.8-.9v.9h37.3l-1-1.8h-38v1l1 57.6.2 2.4v2.4l.4 4.9a63 63 0 0 0 1.7 9.6 64 64 0 0 0 8 17.9 78 78 0 0 0 12.5 15q7.2 6.7 15.5 11.8a111 111 0 0 0 8.5 4.8 103 103 0 0 0 9 4l.7.2.6-.2a70 70 0 0 0 9-4 111 111 0 0 0 8.6-4.8 100 100 0 0 0 15.5-11.8 76 76 0 0 0 12.6-15 64 64 0 0 0 7.9-17.9 63 63 0 0 0 1.8-9.6l.3-5v-2.3l.1-2.4q.4-9.6.5-19.2l.7-38.5v-1z"/>
+ <path fill="#979696" d="m516.8 366.1-.9 3 1.5 1.6 1.1-3.6.1-.3zm2.7-35.5v.5q0 9.7-.5 18.4l2 1v-2.1l.6-16.8zm1.3-38.8h-.2c0 .1-.4 7.2-.7 18l2.3 1.2.5-19.2z"/>
+ <path fill="#2a647e" d="M519.8 309.8q-.4 9-.4 20.8l2.1 1v-2.4l.6-18.2zm-.9 39.7q-.4 8.7-2.2 16.6l2 .7a61 61 0 0 0 1.6-9l.4-4.6v-2.4l.1-.4zm-14 40.4a112 112 0 0 1-38 26.6v1.4q4.1-1.6 8.2-3.6a108 108 0 0 0 8.3-4.5q8.1-4.9 15.1-11.3a79 79 0 0 0 7.3-7.6l-.8-1"/>
+ <path fill="url(#sh-ac-ac-j)" d="M651.8-78.7A58 58 0 0 1 642-60l.8 1 4.2-6a63 63 0 0 0 6.2-12.3z" transform="translate(-136.2 449.1)"/>
+ <path d="m505.8 389.1-.3.1-.1.3-.4.4.8 1 .8-1zm10.2-19.9q0 .7-.3 1.3l1.4 1.5.4-1.2zM467 418v.2h.5z"/>
+ <path d="m521.8 320.1-.2 9v2.5l-.7 16.8v2l-.1.4v2.4l-.5 4.7a61 61 0 0 1-1.7 9v.2l-1.6 4.8a63 63 0 0 1-6.2 12.3 69 69 0 0 1-5 6.7 79 79 0 0 1-7.3 7.6 99 99 0 0 1-15.1 11.3 108 108 0 0 1-8.3 4.5 87 87 0 0 1-8.2 3.6l.5.2h-.5v.6c8-3.5 13.3-6 18.9-9.5 35.5-22.5 35.6-45.8 35.9-78.1zm1-28.5-2 .2h1.8l-.3 11.3z"/>
+ <path fill="#fff" d="m417.2 367.1-1.7.9 1.7-1"/>
+ <path fill="#00b5d2" d="m414.8 350.8-1.8 1.1.4 6a61 61 0 0 0 1.8 9.2l.3.9 1.7-1q-2-7.7-2.4-16.2"/>
+ <path d="m413 351.9-.3.2q.5 8.5 2.4 16l.4-.1a61 61 0 0 1-2.1-10.1l-.4-4.7z"/>
+ <path fill="#00b5d2" d="m414 311-2.3 1.4.3 11.4.1 5.4.2 3.7 2-1.2v-.6q0-11.2-.3-20.1"/>
+ <path d="M412 323.8v9.2l.3-.1-.2-3.7zm6.6 45.2-.6.6z"/>
+ <path fill="#00b5d2" d="m428.5 389.6-.9 1a79 79 0 0 0 7.6 8q7 6.4 15.2 11.2a107 107 0 0 0 8.3 4.5 87 87 0 0 0 8.2 3.6l-.5.2.5-.2v-1.3a112 112 0 0 1-38.4-27"/>
+ <path fill="url(#sh-ac-ac-l)" d="m603-131.2-48.6 52.3 1 3-1-3-1.5 1.6a63 63 0 0 0 6.3 12.4l3.9 5.4.9-1a55 55 0 0 1-8.6-15.3l49.2-53.7z" transform="translate(-136.2 449.1)"/>
+ <path d="m427.8 388.7-1 1 .8.8.9-1zm-9.8-19-1.4 1.6.1.5 1.5-1.6-.2-.6m48.8-52.5L418.5 369l-.6.6.2.6 48.7-52.3 1.5 1.7.4-.4zm0 100.8-.5.2h.5z"/>
+ <path d="m416.6 371.3-.5.5c4.3 13.5 13.2 25.6 32 37.4 5.5 3.5 10.7 6 18.8 9.5v-.6h-.5l.5-.2q-4.1-1.6-8.2-3.6a108 108 0 0 1-8.3-4.5q-8.1-4.9-15.2-11.3a79 79 0 0 1-7.6-8 69 69 0 0 1-4.6-6.3 63 63 0 0 1-6.3-12.4z"/>
+ <path fill="url(#sh-ac-ac-m)" d="m604.9-103.1-1.4 1.2L642-60l1.2-1.6z" transform="translate(-136.2 449.1)"/>
+ <path d="m467.3 347.2-.3.3 38.4 42q0-.2.2-.3l.1-.2z"/>
+ <path fill="#405d66" d="m505.6 389.2-.2.3z"/>
+ <path fill="#24ab5f" d="m505.6 389.2-.2.3z"/>
+ <g transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#405d66" d="M327.5 416v.1z"/>
+ <path fill="#24ab5f" d="M327.5 416v.1z"/>
+ <path fill="#fff" stroke="#000" stroke-miterlimit="10" stroke-width="1.4" d="m248.3 298.1-20.7-7.2a13 13 0 0 0-9.4 1.5c-2.2 1.6-6.4 1.5-6 .6.6-1 3-2.6 3-3.8 0-1.3 7.4-3.6 7.4-3.6l-6.1 1.2c-2.6.7-2.5-.8-5.2-.6-2.6.2-6 3.8-7.2 5.6a3.6 3.6 0 0 1-5.5.6c-1.6-1.6-6.9-2.4-9.4-1.5-2.6 1-19 6.5-20.7 7.2-1.8.8-1.3 2.5 5 2.6 6.1.1 12.8-.6 14.7-1.9s5 1.4 6.9 3 4.7 1.8 6.3 0c1.7-1.7 2.5-1 2.6 1.3s2.3 3.2.5 3.9-6.1 4.2-5.3 5q.7.8 1.4.7c0 7 7.8 5.7 7.8 5.7s7.8 1.3 7.8-5.7q.7.1 1.3-.7c.8-.8-3.4-4.3-5.2-5s.3-1.6.4-3.9 1-3 2.6-1.2c1.6 1.7 4.5 1.6 6.4 0s5-4.4 6.8-3.1c2 1.3 8.6 2 14.8 2 6.2-.2 6.8-1.9 5-2.7z"/>
+ <circle cx="210.7" cy="288.5" r=".5"/>
+ <path fill="#fed468" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M206.3 303.4s-.6 2.7 0 4.7c.2.6-1.5 2-.3 2.2s2.6.1 2-.8c-.8-1-1-4.2-.9-5.5m3.6-.6s.6 2.7 0 4.7c-.2.6 1.4 2 .3 2.2-1.2.3-2.6.1-2-.8s.9-4.2.9-5.5"/>
+ <path fill="#b5b5b6" d="M189.3 293.3c.3-1.4 4-.9 5 0a17 17 0 0 0 6.3 2.3c1.4 0 .8 1.8-1.3 1.4-2-.4-4.7-2.7-6-2.8s-4.5 1.6-4-1zm13.8 7.6c-1.7.3 2.4-4.9 2-2.5s-.4 3.7-.2 5-.4 2.6-1-.7-.2-1.9-.8-1.8m21.8-8.3c-.3-1.4-3.7.6-4.7 1.4-1 .9-4.9 2.3-6.3 2.3s-1 2.4 1.2 2c2-.4 5-2.7 6-3.3 2.8-1.7 4.3.1 3.8-2.4m-11.6 8.3c1.8.3-2.4-4.9-2-2.5s.5 3.7.3 5 .3 2.6.9-.7c.5-3.3.2-1.9.8-1.8m-6.8 10.4c1-1.4 3.1 1 3.6 0q1-1.5 3-.6c1.4.7 1.7 1.8.3 1.7-2.6-.2-1.4 1.4-4 1.2-2.5-.2-4.4-.4-3-2.3zm-35-14.3s-1.7 3.2 2 2.1c3.6-1 6.2.4 9.5-.8 3.3-1.1 8-2.3 8.7-.5q1 2.5-1.2.9c-1.6-1-3.3.3-4 .7a82 82 0 0 1-13 1.3c-2.9-.2-7.2-1-5.4-2.4s3.3-1.3 3.3-1.3zm73.6 0s1.7 3.2-2 2.1c-3.6-1-6.2.4-9.5-.8-3.3-1.1-8-2.3-8.7-.5q-1 2.5 1.2.9c1.6-1 3.3.3 4 .7a82 82 0 0 0 13 1.3c2.9-.2 7.2-1 5.4-2.4s-3.4-1.3-3.4-1.3"/>
+ <path fill="#fff" stroke="#000" stroke-miterlimit="10" stroke-width="1.4" d="m348.3 298.1-20.7-7.2a13 13 0 0 0-9.4 1.5c-2.2 1.6-6.4 1.5-6 .6.6-1 3-2.6 3-3.8 0-1.3 7.4-3.6 7.4-3.6l-6.1 1.2c-2.6.7-2.5-.8-5.2-.6-2.6.2-6 3.8-7.2 5.6a3.6 3.6 0 0 1-5.5.6c-1.6-1.6-6.9-2.4-9.4-1.5-2.6 1-19 6.5-20.7 7.2-1.8.8-1.3 2.5 5 2.6 6.1.1 12.8-.6 14.7-1.9s5 1.4 6.9 3 4.7 1.8 6.3 0c1.7-1.7 2.5-1 2.6 1.3s2.3 3.2.5 3.9-6.1 4.2-5.3 5q.7.8 1.4.7c0 7 7.8 5.7 7.8 5.7s7.8 1.3 7.8-5.7q.7.1 1.3-.7c.8-.8-3.4-4.3-5.2-5s.3-1.6.4-3.9 1-3 2.6-1.2c1.6 1.7 4.5 1.6 6.4 0s5-4.4 6.8-3.1c2 1.3 8.6 2 14.8 2 6.2-.2 6.8-1.9 5-2.7z"/>
+ <circle cx="310.7" cy="288.5" r=".5"/>
+ <path fill="#fed468" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M306.3 303.4s-.6 2.7 0 4.7c.2.6-1.5 2-.3 2.2s2.6.1 2-.8-1-4.2-.9-5.5m3.6-.6s.6 2.7 0 4.7c-.2.6 1.4 2 .3 2.2-1.2.3-2.6.1-2-.8s.9-4.2.9-5.5"/>
+ <path fill="#b5b5b6" d="M289.3 293.3c.3-1.4 4-.9 5 0a17 17 0 0 0 6.3 2.3c1.4 0 .8 1.8-1.3 1.4-2-.4-4.7-2.7-6-2.8s-4.5 1.6-4-1zm13.8 7.6c-1.7.3 2.4-4.9 2-2.5s-.4 3.7-.2 5-.4 2.6-1-.7-.1-1.9-.8-1.8m21.8-8.3c-.3-1.4-3.6.6-4.7 1.4-1 .9-4.9 2.3-6.3 2.3s-.9 2.4 1.2 2c2-.4 5-2.7 6-3.3 2.8-1.7 4.3.1 3.8-2.4m-11.6 8.3c1.8.3-2.4-4.9-2-2.5s.5 3.7.3 5 .3 2.6.9-.7c.5-3.3.2-1.9.8-1.8m-6.8 10.4c1-1.4 3.1 1 3.6 0q1-1.5 3-.6c1.4.7 1.7 1.8.3 1.7-2.6-.2-1.4 1.4-4 1.2-2.5-.2-4.4-.4-3-2.3zm-35-14.3s-1.7 3.2 2 2.1c3.6-1 6.2.4 9.5-.8 3.3-1.1 8-2.3 8.7-.5q1 2.5-1.2.9c-1.6-1-3.3.3-4 .7a82 82 0 0 1-13 1.3c-2.9-.2-7.2-1-5.4-2.4s3.3-1.3 3.3-1.3zm73.6 0s1.7 3.2-2 2.1c-3.6-1-6.2.4-9.5-.8-3.3-1.1-8-2.3-8.7-.5q-1 2.5 1.2.9c1.6-1 3.3.3 4 .7a82 82 0 0 0 13 1.3c2.9-.2 7.2-1 5.4-2.4s-3.4-1.3-3.4-1.3"/>
+ <path fill="#fff" stroke="#000" stroke-miterlimit="10" stroke-width="1.5" d="M311 433.1c-2.3-1-23.7-8.2-27-9.4-3.5-1.2-10 .1-12.5 2-2.8 2-8.4 2-7.7.7s3.8-3.4 3.8-5 9.7-4.8 9.7-4.8l-8 1.7c-3.3.8-3.2-1-6.7-.8s-8 5-9.5 7.4a4.8 4.8 0 0 1-7.3.7c-2-2.1-9-3.1-12.3-2-3.4 1.3-24.8 8.5-27.2 9.5s-1.7 3.3 6.5 3.4 17-.8 19.4-2.5c2.5-1.8 6.5 1.9 9 4s6.3 2.3 8.4 0 3.2-1.3 3.4 1.6c0 3 3 4.3.6 5.1-2.4 1-8 5.6-6.9 6.7q.8 1 1.8.8c0 9.2 10.2 7.6 10.2 7.6s10.2 1.6 10.2-7.6q1 .1 1.8-.8c1-1.1-4.5-5.8-7-6.6-2.3-1 .6-2.2.7-5.2s1.3-3.9 3.4-1.6 5.9 2.1 8.3 0 6.6-5.8 9-4a48 48 0 0 0 19.5 2.5c8.1-.1 8.8-2.4 6.5-3.4z"/>
+ <circle cx="261.8" cy="420.5" r=".6"/>
+ <path fill="#fed468" stroke="#000" stroke-miterlimit="10" stroke-width=".8" d="M256 440s-.9 3.6 0 6.2c.2.8-2 2.6-.4 3 1.5.3 3.4 0 2.5-1.2a18 18 0 0 1-1-7.1m4.7-.9s.7 3.6 0 6.2c-.3.8 1.8 2.6.3 3s-3.4 0-2.5-1.2a18 18 0 0 0 1-7.1"/>
+ <path fill="#b5b5b6" d="M233.7 426.8c.4-2 5.1-1.2 6.5 0 1.4 1 6.4 3 8.3 3 1.8 0 1 2.3-1.7 1.8s-6.2-3.5-7.8-3.6c-1.7-.1-6 2-5.3-1.3zm18.1 10c-2.3.3 3.2-6.4 2.7-3.3s-.7 4.9-.3 6.5-.6 3.4-1.3-.9-.3-2.5-1.1-2.3m28.5-11c-.4-1.8-4.7.8-6 2-1.5 1-6.5 3-8.3 3-2 0-1.2 3 1.5 2.5s6.6-3.5 8-4.3c3.6-2.2 5.5.2 4.8-3.1zm-15 11c2.2.3-3.3-6.4-2.8-3.3s.7 4.9.4 6.5c-.4 1.6.5 3.4 1.2-.9s.3-2.5 1.1-2.3zm-9.1 13.6c1.4-1.8 4.1 1.2 4.8 0q1.1-2 3.9-.7c1.8.8 2.2 2.2.4 2.1-3.4-.2-1.9 1.9-5.2 1.6s-5.8-.6-4-3zm-46-18.7s-2.2 4.2 2.6 2.7c4.8-1.4 8.3.5 12.6-1 4.4-1.6 10.6-3.1 11.4-.7.7 2.4.6 2.4-1.5 1.2-2.1-1.3-4.4.3-5.4.8s-13.4 2-17.1 1.8-9.4-1.3-7-3.1 4.4-1.7 4.4-1.7m96.8 0s2.2 4.2-2.6 2.7c-4.8-1.4-8.3.5-12.6-1-4.4-1.6-10.6-3.1-11.4-.7s-.6 2.4 1.5 1.2c2.1-1.3 4.4.3 5.4.8s13.4 2 17 1.8c3.7-.2 9.4-1.3 7-3.1-2.3-1.8-4.3-1.7-4.3-1.7"/>
+ <path fill="url(#sh-ac-ac-n)" d="m204 137.3 13 29.7h83.6l12.8-29.7-54.6-126.5Z"/>
+ <path fill="#83c453" d="m204 137.3 13 29.7h2.6l-13-29.8 52.2-121.7L311 137.2 298 167h2.6l12.8-29.7-54.6-126.5Z"/>
+ </g>
+ <path d="m466.9 151.7 31.8 73.6-7.4 17.3h-48.7l-7.4-17.3zm0-3-1 2.6-31.8 73.5-.2.5.2.5 7.5 17.2.3.7H492l.3-.7 7.5-17.2.2-.5-.2-.5-31.8-73.5-1-2.5z"/>
+ <g transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#fff" d="M445.7 110.8c21.5 8.8 19.6 23.8 10.3 26.8-8 1-13.9 1-18.8.3v-.3c16.3-3.5 8.5-26.8 8.5-26.8m-80.5 75.5c-.3-.7-4.9-12.5-16.5-29-15.1-21.4-16-28.6-16-28.6l4.7 2s-.9-1.7-1-4.3c-.4-4 .8-9.8 8.3-15.1 3.4-2.4 9-1.6 9-1.6s-1 3-1 6.9c0 3.8.1 8.8 8 23.5l3 5.7.2.1c-3.2 2.8-6.2 4.2-6.2 4.2a10 10 0 0 0 9 1.6c5.5 12 10 25 10 33.5 0 11.2-7.5 31.3-35.6 35 11.1-1.6 17.2-10.1 17.6-20.9 1.2-11.5-9.5-17.1-21.3-15.4 0 0 4.8-6 13.8-6 8.7 0 13.7 7.8 14 8.4M161.7 205q6.1 2 13 2a52 52 0 0 0 30.1-12l22.3 28.8c-7.7 3.8-10.7 17.6-10.7 17.6a19 19 0 0 1-3.5-19.7l-.4 1c-2.5 5.5-12.3 7.1-12.3 7.1.6-6.6 4.3-18 4.3-18s-4 4-12.9 9-30.5 3.4-42.3-10.4c-9.2-10.7-8.5-25.1-6.4-36.7l-.2 2.9c0 16.1 8.2 24.8 19 28.4m-8-104.4c6.2.7 12 3.8 12.8 13.3-6.3-1.2-17.5 8.7-17.5 20.3 0 5.3 2.3 9.7 4.8 13 3.1 3.9 6.4 6.1 6.4 6.1a22 22 0 0 1-17.5-11.7c.2.5 1.7 6.5-2 13.8-11 20.6-26.5 18.2-26.5 18.2a52 52 0 0 0 11.6-18.5c1.5-4 8.8-18 11-22 2-4-.3-7.3-3.2-4.5 0 0-20.8 16.8-30.4 19.8-3 1-7.6 1.3-12.5 0a26 26 0 0 1-14-10.1c22.7-.6 57.5-23.7 58.6-24.4-.7.3-13.2 4.9-24.9 1.3-12-3.6-27.7 6.3-27.7 6.3s1.7-7 7-10.2c5.4-3.3 19-3.7 19-3.7s-3-1-6-5.5 2-12.2 2-12.2a33 33 0 0 0 11 12.2c4.4 2.9 18.4-.5 24-.7 2.6 0 8.5-1.4 14-.8"/>
+ <path fill="#dedede" d="m209.7 201.5-2.7 7.2 4.8-4.8zm8 10.6-5 10 7-7.6zm-70.3-89s-4.9 4.7-3.9 13 3 2.4 2.7 0c-.1-.7-1-2.4-.6-4.4.7-4.3 2.9-10 1.8-8.5zm6.1-9.3s-10.8 9.2-16 9.9 1 2.2 2.7 2.8 3.3-.9 3.3-1.7c0-.9 12.8-11.8 10-11m-17-6.8s4.9-3 13.7-1.8c8.9 1.2 16.4 2.4 8.8 2.8s-25 6.7-25 6.7 14.6-6.2 7-6.3c-7.8-.2-4.6-1.4-4.6-1.4z"/>
+ <path fill="#2b5f31" d="M170 109.4s-1 17.3-11 32.1-14.4 27.7-14.4 35 17 24.6 17 24.6 4-18 10.7-19.1c6.7-1-1.7-4.6-8.6 0-7 4.6-10.2 5.7-8-.6s12.8-19.1 18-26.3c5.3-7.1 16-22.3 10.7-20.5s-5.2 2.6-4.6-1c.6-3.7 2-16.8-3.6-22.5-5.6-5.8-5.8-6-6.3-1.7z"/>
+ <path fill="#294527" d="m157.9 173.7-7.1-4.8c-2.7-1.7-2-6.3 3.5-2.8 5.5 3.6 6 4.6 6 4.6m-13.6-1.8s7.7 5.2 9 7.7c0 0-3.3 9.2-2.6 12.5s6.8-7.3 11-7.1c4.1.2-2.3 4.6-2.5 8.7s.2 13.2.2 13.2-5.2 0-10.5-5c-5.4-4.8-6.2-20.6-4.6-30m23-50.3s4.9 4 5.4 10.6-3.7-3.8-5.3 1.5c-1.7 5.4 6 4.4 2.5 7-3.6 2.5-7.6-5-7.6-5s5-9 5-14.1"/>
+ <path fill="#172716" d="M169.8 120s5.6 5.4 6.4 9c.9 3.4.5 8-1.6 3.7a36 36 0 0 0-6.7-8.4zm-18.5 79s-2-8.1-1-15.7-2.7-10.2-2.8-3.4-.8 15-.8 15z"/>
+ <path fill="#294527" d="M78.1 113.9s-5.5 10.3-4.7 15.2c1.8 10.7 12 17 12 17S59.2 140 58.7 128s19.4-14 19.4-14"/>
+ <path fill="#fff" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M301.2 96s3.8-1.3 5.2-.7 3.7 1.7 5.3.7l2.9-11.7s-4.4-1.7-7.4-.8-4.1-1.3-4.1-1.3"/>
+ <path fill="#2b5f31" d="M370.5 114.2s6.6 26-9.7 33.7c0 0-4.2 4 2.8 4.3s13.1-10.5 13.1-10.5l2.4 9.4 4.2-3.2-4.2-27z"/>
+ <path fill="#294527" d="M456 137.6s-23.5 5.8-54.4-13.9c-17.3-11.6-15.6-12.9-15.6-12.9s-13.8-9.2-17-3.6c-3.3 5.6 8.7 13 11.4 26.2 2.6 13.3 4.5-.7 4.5-.7l-2.2-4.4s26.7 20.5 35.9 22.6c9.3 2.2 36.8-14.7 37.4-13.3"/>
+ <path fill="#294527" d="M373.7 105.8s9.4 8.7 21.4 12.4c7.1.9 13.6-.4 20.8 0s16.3-1 19.6 1.7c0 0-10-13-25.3-12.7s-36.5-1.5-36.5-1.5z"/>
+ <path fill="#2b5f31" d="M423.1 118.6s-2.3-9.7-19-10.1c-16.5-.4-28-1.3-5.7-3.6 17.4-5.9 10-13.7 10-13.7s12 .3 10.8 8.2c-1.1 8-3.4 8-3.4 8s15.8 2 22.4 14.2c0 0-4.4-5.1-15-3z"/>
+ <path fill="#172716" d="M412.4 109.9s5.2 1.3 4.7 4-2.7 1.8-3.9.8-3.5-4.2-.8-4.8"/>
+ <path fill="#294527" d="M346.2 110.4s12.9-4.3 19.5 2.4c8.3 8.2-2.1-8.5 13.4-6.3s-16-5.8-26.9-2.1-14.8 13.8-14.8 13.8 6-7 8.8-7.8"/>
+ <path fill="#2b5f31" d="M454.8 138.3s-6 1-10 3-19 6-25.2 3-4.5-4.5-2.7-5.7-.5-3.2-3-1.3c-2.3 2-6.7 1.3-4.3-.8 2.3-2.1 1.1-4.4-.7-3-1.8 1.6-5.1-5-7.3-3.8s-2 4.4-5.6 3.9-19-19.7-16.4 1c2.7 20.8-1.7 13 1.2 18.6s7.3 13.2 16.8 13.9c.8.2-2.3-2.2-5.4-12.5l-4.1-13.4-3.7-9.3-2-4.5 11 8.5s13 10.2 18.3 12.3 11.8 4 14.8 4c2.9-.1 28.3-14 28.3-14z"/>
+ <path fill="#2b5f31" d="m399.9 124.6-7.8 3.6c-1.5.9 2.1 6.2 4.5 3.5l5.6-5.6 2 .3-6.3 6c-1.2 1.5-.2 1.6 2 3s16.8 13.3 31.5 10.5c0 0-2.2 4.3.5 4.4L427 152s-8.6.7-19.5-6.2-25.2-18.5-25.2-18.5l11.5-8.5z"/>
+ <path fill="#294527" d="M431.9 150.3s-19.2-2.4-33.7-13c-14.4-10.6-19.1-15.6-19.1-15.6s8 17 5 17.8c-3.6 1-6.4 4.1-2.2 4.4 4 .2 2 3 .3 3s-5 1.5-1.8 1.5c3 0-3.4 3.9 0 11.2 3.3 7.3 15.2 12 22.5 13l-4.5-5.3s-6.8-.5-11.8-6.5c-2.6-2.8 6 4.7 4.1-3.7-.6-4.7-3.9-7.7-5.8-7.7s2-2.5 5.4-.4l-1.3-4.7s-4.6.8-3.3-.9c1.4-1.7 2.6-1.4 2.6-1.4l-5-13 13.3 10s17.1 13 29.5 13.3z"/>
+ <path fill="#172716" d="m420.1 149 9.5-6.5c1.1-.8 1.5-1.6-1.4-2.4-2.8-.9-5.8-2.1-7-1.2a56 56 0 0 0-5.3 5.7c-.7 1 2 2.6 4.2 4.4"/>
+ <path fill="#294527" d="M413.5 96.3s2.9.6 2.4 4.5-8.3 5.7-8.3 5.7z"/>
+ <path fill="url(#sh-ac-ac-z)" d="M234.5 90.4 234 81l-.2-5.3-1-18.7s-1.7-.8-2.7 0l.7 18.9.2 5 .4 9.8"/>
+ <path fill="url(#sh-ac-ac-y)" d="m283.7 84.1-.4-11-.1-4.6-.5-14s-1.8-.7-2.8 0l.3 14.1.2 5.4.2 10.3"/>
+ <path fill="url(#sh-ac-ac-x)" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="m299.1 109.2 2.2-10.9.8-4.4 2.7-13.7s-1.6-1.2-2.7-.6l-2.9 13.7-1 5.3-2.1 10"/>
+ <path fill="url(#sh-ac-ac-w)" d="m259 84.4-.4-10.2-.2-5.4-.8-19.6c1-.8 2.9 0 2.9 0l.8 19.5.3 5.8.4 9.8"/>
+ <path fill="#fff" d="m269.7 85 25.4-1s-1.7 3.9-6.1 3.8c-4.4 0-2-.7-4 1-1.9 1.6-5.9 2-7.9.4-2-1.5-.6.5-3.4-1a15 15 0 0 1-4-3.1zM223 76.2l23-1s-1.6 3.8-5.5 3.7c-4 0-1.8-.7-3.6.9-1.7 1.5-5.3 2-7.1.4-1.9-1.4 0 .9-3 .7-2.9-.2-5.6-4.6-3.8-4.7"/>
+ <path fill="#bbbaba" d="M230.6 79.6s6 1.3 5.4-.3q-1-2.4.5-2.2c1.2.1 2.2 1.6.4 2.6-1.7 1-5.2 2.2-6.3-.1m-.8-3.7s-6 1.1-5.8 3.4c0 0-3-.7-2.4-1.7s8.2-1.7 8.2-1.7"/>
+ <path fill="url(#sh-ac-ac-v)" d="m303.9 129.9 7-12.7c2.2-4-.7-4.8-1.8-6-1.2-1.1-1-7.4-1-7.4s-13.7-1.7-21.5-1.7a59 59 0 0 0-17.2 3.5l15.5 32.9 16.7.4z"/>
+ <path fill="#804e2d" d="M295.6 102.6s-10.4 1.2-14.5 14.6c-1 3.8 3 11.9 3 11.9s-6-5-6-11-.7-13.7-7.6-12.7 10.2-4 21-3.1"/>
+ <path fill="#523822" d="m290.6 110.9 2.5-5h-2.5l-2.7 4.7zm5.3.4 2.4-4.8h-2.4l-2.5 4.5zm4.1.3 2.1-4.2h-2l-2.3 4zm5 .2 1.8-3.8H305l-2 3.6zm-16.5 17.3 2-4.2h-2l-2.3 4zm4.9.3 2-4h-2l-2.1 3.8zm-6.4-8 2.4-6.5H287l-2.6 6.2zm6 0 2.2-6H293l-2.5 5.8zm5.4.3 2-5.6h-2l-2.3 5.4zm5.6 0 2-5.1h-2l-2 4.9z"/>
+ <path fill="url(#sh-ac-ac-u)" d="M241.8 138.5c-10.8-4.4-8.7-11.4-17.8-18-7-4.9-24-21-24-21s17.6 12.6 28.5 15.8c2.5.8 3.9 2.2 10.2 2.2v-1.9h4.4v1.9h11c3.9 0 8.9.7 10.6-2.8l4.7-9.1s8.3-1.2 17.5-1.2c0 0-7 9.2-7 12.8s2.5 13.8 14 22l-51.4-.7"/>
+ <path fill="#806245" d="m239.5 138.4 16.4-.3s-8.5-2.8-14-3.5-10.7-6-10.7-6"/>
+ <path fill="#804e2d" d="M239.1 129.9s-6.7-4.7-7.4-6.5 2-.5 3.8.7 8.2 1.3 11.9 3a93 93 0 0 1 11.3 7.5s2.8 2.6 9.3-1.2c6.4-3.8-.6 4.8-.6 4.8s-21 2.5-28.3-8.3"/>
+ <g fill="none" stroke="#291c11" stroke-miterlimit="10" stroke-width=".3">
+ <path d="M228 120s3.2 6.2 7.7 11.2 32.7 8 32.7 8"/>
+ <path d="M268.2 137.6s-20.4-1.6-32.9-6.9"/>
+ <path d="M267 136.1s-20.4-1.6-33-6.9"/>
+ <path d="M265.8 134.6s-20.4-1.7-33-7"/>
+ </g>
+ <path fill="#804e2d" d="M255.7 129s12.3-.8 12.2 0-1.8 4.7-4.6 4.7-9.4-4.5-7.6-4.6z"/>
+ <g fill="none" stroke="#291c11" stroke-miterlimit="10" stroke-width=".3">
+ <path d="M264.8 132.7s-20.4-1.3-33-6.5"/>
+ <path d="M263.7 131.1s-20.4-1.2-33-6.5"/>
+ <path d="M262.7 129.2s-20.4-.8-32.9-6"/>
+ <path d="M261.6 127s-20.3-.1-32.8-5.4"/>
+ <path d="M260.9 125s-20.5.3-33-5"/>
+ </g>
+ <path fill="#379cd1" d="M321.3 153.2s-9.1 3-11.5-1 .6 8.4 9.2 6.8 10-9 10-9z"/>
+ <path fill="#dce8f7" d="M201.5 139.3s-11.4-2.6-12.6 3.4 1.2 14.5 10 14.4c8.7-.2 21.5-12.1 21.2-15.4 0 0 13.5 6 18.5 3.4 5-2.5 8.8-9.8 8.8-9.8s7 8.8 17 7.4c10-1.3 10.2-8.1 10.2-8.1s10 11.6 16.1 11.2 12.4-8.6 12.4-8.6 3.8 17.7 11.6 17.5c7.9-.2 19-10 12.8-15.4-9.8-8.6-13-1.7-13-1.7s-1.9 4-4 .9c-2-3.2-10-11.6-12.8-12s-2 .8-1.1 3.6 3.1 9.2-3.7 9.5c-5 .1-17.8-13.2-23.5-13.2-5.8 0-3.7-.8-1.9 5.3 1.9 6.2-.3 5.7-4.2 5.7s-12.3-7-14.6-7.8c-2.3-.9-11.6-2-11.6-2s4.5 4.7 4.8 7 .5 5.5-5.4 5.5c-5.8 0-11-1.9-13.5-3.9-2.6-2-7.4-4.1-10.6-3.3-3.2 1-2.4.8-1.7 1.4.8.6 6.8 5.2 1.8 10.8s-7.5 4.4-7.5 4.4 1.7-9-3.5-10.2"/>
+ <path fill="#1b81b6" d="M316.5 141.2s5.7-4 10-.6c0 0-1.4-5.1-5.6-5.3-4.2 0-4.4 6-4.4 6z"/>
+ <path fill="#379cd1" d="M200.7 147.3s2 3.8-.7 4-7.5.3-5.8-4.8 6.7-4 7.6-2.7c1 1.2 2.4 6.7 2.4 6.7s-2.5-5.5-3.5-3.2"/>
+ <path fill="#1b81b6" d="M199.1 147.2s1.8-.7 1.8.9-.2 2.8-2.8 2.8c-2.7 0-4-2.6-3.2-3.9s3.6.7 3.6.7"/>
+ <path fill="#379cd1" d="M204 160.6c-5.6-.1-14.8-5.5-16.3-10.8l.8-.8a14 14 0 0 0 12.5 5c5-.3 10.7-3.5 14.1-7.9q2.8-3.7 2.4-6.6-.3-.6-.1-1l.2-.7h.7c.4 0 .6 0 3.2 1.9a17 17 0 0 0 13.5 3.5c4.1-.7 8.1-3.2 9.5-5.9q1-1.8.2-3.4-1-1.6-.4-2.7a1 1 0 0 1 1-.6c1.9 0 6 4.5 6.7 5.3 2 2.3 5.9 4.8 9.3 4.8h.7c3.3-.4 9.5-2.6 10.9-4.6q.3-.6.1-.8c-.9-2.6-.8-3.5-.4-4a1 1 0 0 1 1-.6c.7 0 1.5.4 3 2.1l.2.2c2.6 3 8.9 10 14.4 10.1 2.7 0 5.5-1.3 7.5-3.5q2-2.4 2-4.3-.2-1.5.4-2.1a1 1 0 0 1 1-.4c1.6 0 2.9 3.2 3.1 5.5.4 4 4 16 9.4 19.5l-.9.8c-.4-.1-10-2.6-11.1-13v-.2l-.2-1c-2.6 2-8.4 5.8-12.7 5.8h-.4c-5.1-.3-11.1-6.9-13.3-9.3l-6 6.5h-16l-5.1-6.2-4 6.2-8.5 1-3.6 1.9-10.3-4c-.8.8-2.3 4-3.2 5.4-1 1.6-10.7 8.7-10.7 8.7H204z"/>
+ <path fill="#1b81b6" d="M187.7 149.5s4.4 6.2 13.4 5.6c9-.5 18.6-9.6 17.4-16 0 0-1.2-1.2 2.4 1.5 3.6 2.6 7.7 4.7 14.2 3.6 6.5-1 12.7-6.1 10.5-10.6s3.4.3 5.7 3 7 5.5 10.8 5.1 13-3.4 11.9-6.6c-1.1-3.3-1-4.7 1.8-1.5 2.8 3 9.3 10.6 15.3 10.6 6.1.1 11-5.6 10.6-8.9-.3-3.2 2.1-.5 2.5 3.2s3.9 16.4 9.8 20.3c0 0-10.3-3.2-11.5-12.3l.2-2.6s-7.6 6.6-13.3 6.4c-5.8-.3-13.5-9.7-13.5-9.7l-5.5 6-16-.1-5.6-4.6-4.4 4.8-8.1 2.6-3.4 1-11-4.3s-.8 3.8-2 5.7c-1.3 2-10.8 9-15.9 8.9s-15-6.1-16.3-11z"/>
+ <path fill="#172716" d="M292.9 190.6s-2.2 17.8 1.2 24.5c3.5 6.8 18.3 9.5 13.2 3.5-5-6-14.4-28-14.4-28"/>
+ <path fill="#405d66" d="m291.3 246 4 4.2h-11.8z"/>
+ <path fill="#9bc4c4" d="m290 244.8 2.1 2-9.7 3.4z"/>
+ <path fill="#fff" d="M274.5 243.7s7.3 4 7.4 6.5c.2 2.6.5 0 .5 0l8-5.1-6.1-4.5z"/>
+ <path fill="#9bc4c4" d="M275.5 244.3s10.3-2.9 11.3-2.1l-4.6-3-9 3.8z"/>
+ <path fill="#689f9e" d="M274 244s6.4-3.5 10.7-2.9l-8.4-4.9-5.4 6.8z"/>
+ <path fill="#2b5f31" d="M309.4 188.6c5.2 6.1 12.5 17 34.3 17.2 21.9.3 9.4 1.8 6 5.8-3.3 4-17.4 9-25.8 4.1-3.2-1.8-8.7-4.1-8.7-4.1l6 9v11.9L309.9 220l-13.7-38 5.5-.6zm-33.2.5s.6 7.7 5.7 16.9 7.6 16.5 22 19.9-10.8-2.2-11.3-17.7 0-21 0-21zM262 168.4s-8.9 11.5-5.6 24.5.8 1.5 6.4-5c5.5-6.7 10.3-10.7 10.3-10.7z"/>
+ <path fill="#294527" d="M307.9 198.3s6.2 1.2 10.4 5.6a22 22 0 0 0 15 6.6c4-.3 16 0 11.4 2.6s-7.8 6.6-21.1 1.7-15.7-16.5-15.7-16.5"/>
+ <path fill="#294527" d="M269.4 163s-9.6 10-9.4 12.7c.2 2.5 2.8 5.8 5.8 5.7 3-.2 7.4-4.2 7.4-4.2s.6 14.5 7.3 17 11.6 2.9 11.7 0v-8.8s2.8 10.9 5 16.6c2.2 5.6 23.8 36.2 20.9 28s-10.2-21.9-13.5-28.9c-3.2-7-9.4-23.3-3.4-17.8s7.8 8 7.8 8l-9-17.2s-14.8-13.8-30.6-11.2"/>
+ <path fill="#3e7438" d="M314 210s-20.7-35.2-12.8-19.4 14 21.2 14 21.2"/>
+ <path fill="#172716" d="M314.7 209.1s-12-23.6-13.5-25.8c-1.6-2.2-3.9-1.2-1.1 3.5l13 22z"/>
+ <path fill="#3e7438" d="M291.5 170.7s-1.1 4.8-1 7.3c.2 2.4 3 .3 3.8-1.4l1.6-4.7zm-23.4-3.3s.8-2.6 2-4h-3.5s-7.5 8.8-7.9 14.6c-.3 5.8 5.7 7.4 5.7 7.4l1.6-2.1s-4.5-1.5-4.8-5.3q0-4.3 2-6.3z"/>
+ <path fill="#5fa654" d="M294.3 168.4s5-3.9 6.9-7.4c1.8-3.5 1 4.6 1.6 7 .6 2.2 5.2 5.8 7 0 1.7-6 3.6-9 .2-10.6-3.4-1.7-8.7-6.3-11-5.7-2.3.7-4.4 4-4.4 4z"/>
+ <path fill="#3b7f3d" d="M292.9 170.2s4.8-5.7 6.2-10c1.3-4.5 3.6-6.2 3.8-4.2s.7 10.4 1.1 12.8 4.7 0 5.6-3.3 2.5-6.6 2.8-5c.2 1.8 1 6.9-1.5 9.7s-6 5.7-9.3 4.5-8.7-4.5-8.7-4.5"/>
+ <path fill="#32517f" d="M275.2 148.7s4.6-2 8.3 0c3.6 1.9 10.5 4.5 10.5 4.5s2 9.3.8 13.6c-1.3 4.3-3 3.9-4.6 2.7s-5.5-4.4-10.5-5.9l-2.9-.7s5.3-1.5 2.3-8-3.9-6.2-3.9-6.2"/>
+ <path fill="#fff" d="M256.6 147.7s17-2.5 19.8 2.4c2.7 4.8 6.9 13.4-1.2 13.4s-12.8-1-12.8-1z"/>
+ <path fill="#3b7f3d" d="M257.4 149.4s4.6 9.7 4.7 12c0 2.4-5 2.8-7.7 2.9a108 108 0 0 0-10.2 1.3l-3.7-13.8s.4-2.9 3.7-3.1 13.2.7 13.2.7"/>
+ <path fill="#5fa654" d="M245.5 164.5s2.7-1.2 0-6.4c-2.5-5.3-5.6-7.6-1.3-8 4.4-.4 4.5 3.7 6.5 6.5s7.3 6 5.9.5c-1.5-5.5-.4-7.8 1.1-7.7 0 0-3.3-3-4.9-2.6s-8.1.3-9.2.3c-2.8-.3-6.5 3.8-6.5 3.8s7.4 9.2 7.1 11.7c-.2 2.6 1.3 1.9 1.3 1.9"/>
+ <path fill="#32517f" d="M220.9 157s6.5 7.7 7 9.8 2 2.2 6.2-.3 4-.4 7.1-2.4c3-1.9 1.2-5-.7-7-2-2-14.7-5.5-17.1-4a5 5 0 0 0-2.5 4z"/>
+ <path fill="#6488bd" d="M232.5 155.9s-.2 6.2 4.9 5.5c5-.7 2.3-5 1.2-6.4-1.1-1.3-3.3-5.3-6.4-4.9-3.1.5-6.1.4-5 1.6 1.2 1.2 5.3 4.2 5.3 4.2"/>
+ <path fill="#161341" d="M227.1 151s8.6 3.8 10 6.4c1.4 2.5-2 3.2-3.3 1.6s-4-4.2-5.7-4.7c-1.6-.5-4.3-3.6-1-3.4z"/>
+ <path fill="#491918" d="M295.4 250.2s-8.2-10.4-20.9-14.5 18-10.3 23.1-9.2c5.1 1 12.9 4.9-2.2 23.7"/>
+ <path fill="#fff" d="M295.4 250.2h5.8s11.3-10 12-18l-10 4s-3.9 8.4-7.8 14"/>
+ <path fill="#9bc4c4" d="m302.5 237 10.8-5s-10.7 11.9-14.6 13.4c0 0 1 .3 3.8-8.3z"/>
+ <path fill="#689f9e" d="M273.4 192.7H211l21.2 31.8s-11.5 14.8-4 25.9l8.2 12.2 27.3-9.4s8.4-24.5 29.3-26.7l-3-8.2s-12.8-9.6-14.8-25.6z"/>
+ <path fill="#405d66" d="M251.2 199s-6.7-1-15.1 2.1c-8.4 3-6.3-1-4.5-2.3s-5.7.2-4.4.5c1.4.4-1.7.9 1 3.6 2.5 2.8.3 2.3-2.3 2.8-2.7.5-3.8.8-5-3.7s.5-6 5.6-6h27.7z"/>
+ <path fill="#fff" d="M256 235.7s1.6-1.2 2.9 0c1.3 1.3 5 7.2 2.3 4.9-2.6-2.4-6-5-5.1-4.9z"/>
+ <path fill="#405d66" d="M243.3 241.6c0 1.6.3 3.6 5.8 2.2s3.9-1.9 1.6-5.6c-2.2-3.8-18.7-30.5-21.1-30.3s13.7 22.7 13.7 33.7m21.1-45.6s3.3 8.4 3.5 15.8 2.5 6.1 1.7-1.9-1.9-10.7 1-11c2.8-.2 1 4.8 1.5 11.9s-1 10.6-2.3 11.5l4.8-3 4-1.9 7.3-2.6s-8.7-9.8-10-18.8z"/>
+ <path fill="#689f9e" d="m275.8 196.8-1.2 14v8.5l4.7-2.2c1.2-.4 0-11.8 0-11.8s-2.9-4-3.5-8.5"/>
+ <path fill="#405d66" d="M256 196s-18.8 6.5-22.7 9c-3.9 2.4 3.9-1 5.6 2.2l9.8 19.5c.9 1.5 5.8.3 3.8-3.3-2.1-3.7-9-17.9-10-18.4-1.1-.6 6.3-6.6 24.7-8.2s-11.1-.8-11.1-.8z"/>
+ <path fill="#9bc4c4" d="M235.5 261.4s-2.5-19.6 4.2-16.7 5.9-13.6-16.7-37.3c-12-12.5-6.4-11.6-1.4-11.6l50.5.2s-8.2-8.4-14.1-1.1c-.5.6-1-6.4-1.9-6.5l-3-.3c-18.6-1.5-39.5.7-47.4 1.7s-.8 5.6.8 7.6l22.6 29s-8.3 9-5.8 15.9c2.6 6.8 12.2 19 12.2 19z"/>
+ <path fill="#689f9e" d="M261.7 189.8c-.2.2 7-8.2 10.5-7.8s.7 13.8.7 13.8-7.4-3-12.9-3.1"/>
+ <path fill="#405d66" d="M261.2 190.6s12.4-12.6 11-4.2c-1.3 8.5.4 9.3-2.8 9.5s6.4 0 6.4 0-1.6-8-1.3-18.7c0 0-9.5 6.5-13.3 13.4"/>
+ <path fill="#689f9e" d="M219.2 186s2.7-18.8 30.8-21.9c13.3-1.4 15.8.8 15.8.8s-9.7 7.2-9.7 21.5z"/>
+ <path fill="#405d66" d="M232.6 169.5s-12.1 6.7-13.4 15.7c-.3 2.6 2.8 1.1 6.7 1.2 3.8.2-1.5-2.5-2.1-3.1s-2.8-3.4 6.8-9c8.8-5.1 11.3-9.1 27.6-8.2.6 0-3.7 14.4-3.1 14.4 1 .1 7.7-14 8.9-14l3.2-3.8s-32.6 2.9-34.6 6.8"/>
+ <path fill="#fff" d="M227.8 185.7s3.1-8.1 6-10.8c3-2.7 4-.2 2 1.7s-.3 4.1 2 .6c2.4-3.5 4-6.4 7.8-7s1.5.9-2 3.4c-3.4 2.5 6.3 1.5 10 6.3 3.6 4.8.6 6.5.6 6.5zm-7-.5s0-4 4.7-9 11-10 11-10-7.6.2-24.7 14.5c-4 3.5 9 4.5 9 4.5"/>
+ <path fill="url(#sh-ac-ac-s)" d="M220.9 181.4c1.8.8 28.6 5 35.4 5l-.6-5z"/>
+ <path fill="#405d66" d="M235.7 166.2s-7.6 6.7-10.5 10.4c-2.8 3.6 9.2-8.9 25.5-12.5m-35 20.2 40.4 1.8v1.5l-55.9 1m22.4 16.1-7.4-7.3c-.6-.7-.1-2.5 4.5-2.5h56l.5 2.5s-48.5.2-50.5 0c-2-.1 3.5 5.2 4.2 5.7s-6.4 2.5-7.3 1.6"/>
+ <path fill="#405d66" d="M235 197.5s-2.6 2.4-4 3.2c-1.6.9 2.3.2 6-1 3.3-.9 6.9-2.9 8.6-2.9m16.5-7.7s9.8-8.5 12.3-8.5l.1-5.7s-5.3 2.5-12.4 14.2m-12.7-24.7s7.7 1.5 8.8 3.7c1.2 2-1.6-.3-9.5 3.3-7.8 3.7-3.3 2.3-1.3 3 2 .5 6 2 9.3 4.8l.6-2s-2-2.4-6.6-3.9c0 0 6.3-2.1 10-2.6l1.7-2.3s-3.5-1.5-3.7-2.2c-.1-.8.7-2 3.7-1.4s2.4 1 2.4 1l2.4-2.3-3.9-.8-6 1.4zm25.1 18.9s-2.8 6.1-9.8 6.9c-7 .7 2.5.6 9.8 0m4 30.2s2-1.3 2.7-1.3 7.2 8.2 7.2 8.2m2.9-.6-7.8-7.6 5-1.7s5 4.5 7.8 5.8 6 2.8 4.5 4c-1.4 1.4 0 0 0 0s-4.6-1.7-9.5-.5m-10.8-10v-9.2l-2-3.6-.5 13.7m-2.8 1.4v-19H274v19.7m-46.8-10.2s2-2 5.1-1.2 1 3.5-2.5 3.4c-3.4-.2-2.6-2.2-2.6-2.2m3.2 5s1.8-1.8 4.5-1.1.8 3.1-2.2 3c-3.1-.1-2.3-2-2.3-2zm3 4.9s1.7-1.5 4.2-1c2.4.6.7 2.8-2 2.7s-2.1-1.7-2.1-1.7zm3.2 4.9s1.4-1.3 3.6-.8c2.1.5.6 2.5-1.8 2.4s-1.8-1.6-1.8-1.6m3.1 5s1.2-1.2 3-.7c2 .4.6 2-1.4 2-2-.1-1.6-1.4-1.6-1.4zm11 1.6s1.4-1.3 3.5-.8c2.2.5.6 2.5-1.7 2.4-2.4-.1-1.8-1.6-1.8-1.6m3.1 5s1.2-1.2 3-.7.6 2-1.5 2c-2 0-1.5-1.3-1.5-1.3m-21.2-6.3 9 14.6c.6.7 2.3 2 5.3 1s4.2.1 1.8 1.4c-2.3 1.2-6.5 2.8-9.2 0-2.8-3-7.1-14.7-7.8-16-.6-1.4.9-1 .9-1"/>
+ <path d="M256.6 179.9h-31c-4.4 0-8 1.2-5.7 1.5s36.4 0 36.4 0"/>
+ <path fill="#689f9e" d="M235 191.6s17.4-1 21-1.8l.6 2.9s-26.7-.3-21.6-1.1"/>
+ <path fill="#fff" d="M256 189.8h-45c-3.5 0-6.1 5.1-6.1 5.1h-13.3l11.3-8.6 52.8.5z"/>
+ <path fill="#fff" d="m204.9 195 24.2 31.3s-6 10.1-5.9 14.3 1.6 6 1.6 6 3-11.6 6.8-17 3.4-7.2-4.4-14.5c-7.7-7.3-21.4-21.7-21.4-21.7m51.4 10.5c2 .2 3.7.5 4 2.5q.8 2.9-2 3.4c-2 .4-7.3 1.4-8.5 1.9-1.1.5-1.3-.8-2-1.8s-3.5-3.9 0-5c3.5-1 8.5-1 8.5-1m4 11.8c2.5 0 5.1 1.9 4.6 4.3s2 3.7 2 3.7l-9 6.9c-1.7 1.3-2.1-2.5-3-4.7-1-2.3-4.5-5.7-1.6-7.6s7-2.6 7-2.6m14 19.3s-8-7.3-8-7.6-6.4 3-7.2 3.8c-.8.9-.6 2 2 3.9 2.7 1.8 8.1 6 8.1 6zm-5.8-12.4c-1.5 1.1-3.5 6 .5 2.9s11.5-6.8 18.1-8.5l-2-2.2s-9 2.2-16.6 7.8m-15.7 20.5c1 3 1.2 6.7 5 5.8 1.4-.3 1.7-.4 1.7-1.6 0-.7-2.2-1.3-2.7-3-1-3.7-5.3-5.6-4-1.2"/>
+ <path fill="#689f9e" d="M295.2 215.4s6.5 7 8.7 8.7c2.1 1.8-1.2 1.4-4.3.5-3.2-1 1.6 3.2 1.6 3.2s3.4 2 2.9 4.2-1.2 4.4-1.9 5.7 3.9 2.5 10.3-4.7-9.6-15.5-17.3-17.6"/>
+ <path fill="#331312" d="M276.2 236.3s31.5-14.4 24.4 6.7c0 0 8-13.6-.5-16a26 26 0 0 0-24.9 8z"/>
+ <path fill="#6488bd" d="M229.4 168.7s-2.2-6.9-4-8.9c-2-2-3.7-4.9-2.3-4.7a28 28 0 0 1 5.6 2c1 .5.2-3.5-3.9-5.8 0 0-6.7 1.3-7.3 2.6s-3.6 2.3-3.6 2.3 1.5 1 4.8 2.8 8.2 8.2 8 9.1 1.8 1 2.7.6"/>
+ <path fill="#161341" d="M230.9 168c-.3-1.8-.6-4.6-3-7-2.5-2.3-3.3-5-.7-3 2.7 2 5.3 6.1 14 6.1 0 0-3.1 2.2-6.2 2.3-3 .2-4.1 1.5-4.1 1.5z"/>
+ <path fill="#1f411d" d="M242.5 164.1s3.2 1.3 3-1.2-5.7-9.7-7-11c-1.1-1.2 2.3-4.8 4-4.8 1.6 0-4.2 1-5.4 1.6s-2.6 1-.6 3.7c2 2.6 7.1 7.8 6 11.7m3.8-17s3.4 3 5.7 8.3 3.5 1.9 1-2.7c-2.4-4.5-3.6-5.3-3.6-5.3zm9 16.6s-7.3-5.9-9-9-.2 2.1 1.4 5.1c1.7 3 1.5 4 1 4.3-.5.5 4.8-.8 6.7-.4zm3.6-5.6c0-1.1.3-3.8 1.1-1.5s3.6 5.9 2 6c-1.4.2-4.7 1.5-4.7 1.5s1.8-1.4 1.6-6"/>
+ <path fill="#dedede" d="M260.4 156.2s2.5 4.3 4 2.8c1.5-1.6 5.6-3.2 7.7-2s5.2 5 5.1 2.8c-.1-2.1-1.8-5-3.2-7.2s.3-5 1.8-3.3c1.6 1.8 6.4 12 2.2 13.3-4.1 1.3-14.7 0-14.7 0z"/>
+ <path fill="#bbbaba" d="M265.2 162.9s-.5-2.7.6-2.8c1 0 3.6 2.8 3.6 2.8zm11.9-11.6s1.9 8.4-.3 11.6c0 0 3.8-.5 2.9-4.8a22 22 0 0 0-2.6-6.8"/>
+ <path fill="#6488bd" d="M277.8 152.8s2.8-2.6 2.7 0c0 2.5 2.4 11.7 2.5 6.2.1-5.6-1.7-7.2 2-6.4 3.6.8.5-3.2-1.5-4q-3-1-4.1-1c-.8.1-2.8 2.6-1.6 5.2"/>
+ <path fill="#6488bd" d="M292.3 152.3s-.6 6.2-1 7.8c-.6 1.6-2.5-.5-3.3-2.7s-2.6-5.8-2-1.7c.5 4 3.1 8.5 4.6 8.4s2.7-8.8 2.7-11.4z"/>
+ <path fill="#161341" d="M279.7 157.1s2.3 4.2 3.5 7.8l-5.2-2s1.6-1.7 1.7-5.8m5.2 8.5s-.6-7.7-1.4-9.6c-.8-2 .6-1.5 1.9 2.2s3.6 8.7 4.8 11.3c0 0-3.5-3.2-5.3-3.9m3-14.7s-.6 2.6.1 4 2.6 7.5 2.6 4c-.1-3.3-1.5-5.4-1-7.3zm6.1 2.3s-.8 4.6-.7 6.7 1.5 5.6 1 8.5 1.7-9.3-.3-15.2"/>
+ <path fill="#1f411d" d="M296 172.3s2.7-2.6 3.6-6.7 2.2-1.8 1.6 3.9 4.8 5 6 4.2c0 0-6 2.9-8 .7s-3.1-2-3.1-2zm4-20.6s5.6 4 5.3 8.9c-.4 4.8.5 10 1.9 4.3s.2-8.9.2-8.9-5-4.5-7.3-4.3zm10.8 6.4s2.7 8.6-2.4 14.8c0 0 5.5-4.6 5-8-.7-3.4-2.6-6.8-2.6-6.8"/>
+ <path fill="#172716" d="M282.8 164.8c-3.8 1-6.7 4.3-8.3 5.9-1.5 1.6-4.1.4-6-1.2-1.8-1.6 1.6-6.2 1.6-6.2s9-.7 12.7 1.5"/>
+ <path fill="#172716" d="M289.6 169.4s-.5 9.4-1.1 12-4.4.7-7-1.5c-2.7-2.3-2-7.8 0-9.6 1.9-1.8 1.6-4.4.4-5.2 0 0 3.8.1 7.7 4.3m3.3.8s1.2 4.8.1 9c-.8 3 2.3 9.6 3.7 11.5s4.4-.3 2.8-3.1-2.5-17.9 1.5-9.2 16 28 32.6 27c16.5-.8 0 0 0 0s-11.5-1.6-24.8-17.5c-4.2-5-6.8-12.5-6.8-12.5m-37.3-3.5s.2 2.3 1.5 3.5 2 3.9-.4 1.8-3.3-4.9-3.3-4.9l1.5-1.4s.5-.2.7 1m-8.1 20.8s4.1-1.5 6-4.3c1.7-2.8 0 0 0 0l-4.4 7.8s-1-1.4-1.6-3.5m21.2-8.8 6.9 5.2-7.3-2.1z"/>
+ <g fill="#b2d9bd">
+ <ellipse cx="292.5" cy="179.3" rx="1.9" ry="1"/>
+ <ellipse cx="292.2" cy="176" rx="1.5" ry=".8"/>
+ <ellipse cx="293.7" cy="173.1" rx=".8" ry=".4"/>
+ <ellipse cx="303.9" cy="189.9" rx="2" ry=".8"/>
+ <ellipse cx="306.5" cy="195.2" rx="1.9" ry="1"/>
+ <ellipse cx="309" cy="199.9" rx="1.9" ry="1.1"/>
+ <ellipse cx="311.6" cy="204.9" rx="1.8" ry="1.5"/>
+ </g>
+ <path fill="#3e7438" d="M270.1 178.3s8-10.2 9.3-11c1.2-.6 2-1-1.1 9.5-3 10.5-.6 14.5-.6 14.5s2.8 7.2 7.5 8.4 5.5 1.1 5.8 4-1.3 5.2-5.3 4.4c-4.1-1-.8 1 1.4 3.7s14.9 15 9.1 11.3a49 49 0 0 1-19.5-23.8c-3.8-11.5-2.1-24-2.1-24zm22.5 6.9s4 8.1 6.1 13c2.2 4.9 6.4 14.7 8.5 15s7.5-1 7.7 0c0 1.1-1.2 2.4-3 2.5s-4.5.8-3.5 1.7.9 1.8 4.3 2q5.1 0 5.2 1.3c0 .7-5.8 1.4-4.5 2.7l8 7.8-.3 4.5s-26.7-26.5-28.5-50.5m21.4 24.4s2.5-.2 4.5 1.2 6.9 5.9 11.3 4 7.3-8.8 7.3-8.8h3.8s-1.4 7.3-4.3 8.8 5.6 2.8 10.8-9.3c0 0 7.6-2 11.6-5.6 0 0 1.6 13.5-13 19.2-16.8 6.5-32-9.5-32-9.5l10.4 7.8m-67.8-36.7s3.8 6.3 3.3 8.4-3.3 3.8-3.3 3.8-1.7-7.2 0-12.2"/>
+ <ellipse cx="277.7" cy="171.8" fill="#b2d9bd" rx="2.4" ry="1.1"/>
+ <ellipse cx="281" cy="168.5" fill="#b2d9bd" rx=".9" ry=".3"/>
+ <path fill="#405d66" d="M272.1 243.2s2.7-6.3 8-5.2c5.4 1.2-5.3-2.3-5.3-2.3l-5.4 6.5c-.4.6 2.7 1 2.7 1"/>
+ <path fill="#294527" d="M296 213c-1-2.3-2.4-8.6-2.3-11.2s-.2-5.3 2.2.8a101 101 0 0 0 5.7 12.2c.7 1.1-4.5 1.6-5.7-1.7z"/>
+ <path fill="#2b5f31" d="M294.3 201c0 1.1.3 4.6 1 7.4.8 2.8 4.4 4.5 3.4 2-1-2.3-4.5-11.4-4.4-9.4"/>
+ <ellipse cx="295.1" cy="204.4" fill="#3e7438" rx=".5" ry="4.4" transform="rotate(-9.5 295 204.3)"/>
+ <path fill="#095378" d="M188 151.3s5.7 6.4 15.7 7c10 .4 16.8-8.5 18-12.4 0 0-2.2 14.4-16.2 14.9-13.1.4-17.4-9.5-17.4-9.5z"/>
+ <path fill="#2b5f31" d="M299.4 213.8c-.4-.6 3 .8 3.1 2 .2 1-2-.3-3.1-2"/>
+ <path fill="#095378" d="m221.6 145.9-1.5-2.5s8.2 5.8 13.6 6c5.4 0-6 1.2-12-3.5zm25.4-1.2s-1.7 2-3.8 1.8 3.4-3.8 3.7-6c.3-1.6-1-2 4.4 1.2 3.6 2.2 8 5.3 10 5.4 1.8 0-4.7.6-4.7.6l-7.9-6zm23.5 1.2q4.3-5.4 4.7-7 .2-1.5 2.4 1.7c1.7 2 6.8 7.3 14.1 9.5 0 0-9.2-.8-15-8.5 0 0-1.9.7-3.3 2.3s-3 2-3 2zm33-3.4s1.4 6 3 7.6-2.6-.2-1.4 3.1c0 0-3.7-4.4-1.6-10.7m7.7 7.6s3 4.3 7.1 4.5c4.2.3 6 .4 10.7-4.5 2.5-2.6 1.8-4.7.6-4.2-1 .5-1.5 2.7-2.4 3.4-1 .8-9.4 8.1-16 .8"/>
+ <ellipse cx="198.9" cy="148.3" fill="#161341" rx="1.4" ry="1.2"/>
+ <path fill="#161341" d="M197.1 138.6s7.4.5 7.8 11.5c0 0 2-6.9.1-9-2.9-3.6-7.9-2.5-7.9-2.5"/>
+ <path fill="#379cd1" d="M314 144.3s1.7-3 3.7-3.7c1.9-.8 1.6-6.9-1.9-3.9l-4 3.6zm3.9-.7c-1 .8-2.1 2.6-1.4 2.9s5 1.1 4.8-1c-.1-2-3.4-2-3.4-2"/>
+ <path fill="#1b81b6" d="M318.5 143.9s-1.8-.1-1 .4c.6.5 3.9 1.9 3.8 1.2 0-.6.2-2.5-2.8-1.6"/>
+ <path fill="#161341" d="M320.3 144s-2.2-.6-1.5 0 2.8 2 2.7 1.2c0-1-1.2-1.3-1.2-1.3z"/>
+ <path fill="#fff" d="M212.2 157s-9 6.9-6.1 13.2c2.8 6.4 10.8 6.4 10.8 6.4l10.2-7.6s-3.1-10.3-14.9-12"/>
+ <path fill="#806245" d="m270.8 113.9 3.6-6.5h-3l-3.2 6.2zm6.7.6 3.6-6.5h-3l-3.2 6.2z"/>
+ <path fill="#523822" d="M297.3 138.3s-8.1-2.3-10.6-5.6 7 6.8 7 6.8z"/>
+ <path fill="#dedede" d="M227.8 76s-4.6.8-4.6 2c0 1.3 5.5 3.2 4 .8-1.4-2.4 0 0 0 0l1.5.8s-1.5 2.8-4.2 1.3-6-4.5-4.4-4.6l7.7-.4m9.1-.2s4.8 3 6.2 2.4c1.5-.8 0 0 0 0s-3.8 1.4-6.9-.5c-3-2-.3-1.7.7-2"/>
+ <path fill="#dedede" d="M226.9 78.6s1.4 0 3.2.7c1.8.8 3.6 2.1 2 1.7s-4.6-2-5.2-2.4"/>
+ <path fill="#bbbaba" d="M243.8 75.4s.5 2.6-3 2.7c-3.4 0 1.6 1.6 3.6-1s1.6-1.5-.6-1.7"/>
+ <path fill="#fff" d="m250 69 25.4-1.2s-1.8 4.2-6.1 4.2c-4.3-.1-2-.9-4 .9-1.9 1.7-5.8 2.1-7.8.5s0 1-3.2.8c-3.3-.3-6.3-5-4.2-5.2z"/>
+ <path fill="#bbbaba" d="M258.4 72.8s6.7 1.4 6-.3q-1.2-2.6.6-2.4c1.2.1 2.3 1.7.4 2.8-2 1-5.7 2.5-7-.1m-1-4s-6.4 1.2-6.3 3.7c0 0-3.3-.8-2.6-1.9s9-1.8 9-1.8z"/>
+ <path fill="#dedede" d="M255.3 68.8s-5 1-5 2.3c0 1.4 6 3.5 4.4.9-1.6-2.7 0 0 0 0l1.7.8s-1.7 3.1-4.8 1.5-6.5-5-4.8-5.1zm10-.3s5.3 3.4 7 2.6c1.5-.8 0 0 0 0s-4.3 1.6-7.7-.5-.4-1.8.8-2.1"/>
+ <path fill="#dedede" d="M254.3 71.7s1.5 0 3.5.8 4 2.4 2.2 1.9-5-2.2-5.7-2.7"/>
+ <path fill="#bbbaba" d="M273 68.2s.5 2.9-3.3 3c-3.8 0 1.7 1.8 4-1.1 2.1-3 1.7-1.7-.8-1.9z"/>
+ <path fill="#fff" d="m250.5 84.6 23.8-1.1s-1.6 4-5.7 3.8c-4 0-1.8-.7-3.7 1-1.8 1.6-5.5 2-7.4.4-1.9-1.5 0 1-3 .7-3-.2-5.9-4.7-4-4.8"/>
+ <path fill="#bbbaba" d="M258.4 88.1s6.3 1.4 5.6-.2q-1-2.5.5-2.3c1.2.1 2.3 1.6.4 2.6s-5.3 2.4-6.5 0zm-.9-3.8s-6 1.2-6 3.6c0 0-3-.8-2.4-1.8.5-1 8.4-1.8 8.4-1.8"/>
+ <path fill="#dedede" d="M255.5 84.3s-4.8 1-4.8 2.3 5.7 3.2 4.2.8l1.6.7s-1.6 3-4.5 1.4c-2.8-1.5-6.2-4.6-4.5-4.8zm9.4-.2s5 3.2 6.5 2.5-4 1.4-7.2-.6-.4-1.6.7-1.9"/>
+ <path fill="#dedede" d="M254.5 87s1.5 0 3.3.9c1.9.7 3.8 2.2 2.1 1.7a23 23 0 0 1-5.4-2.5"/>
+ <path fill="#bbbaba" d="M272 83.8s.6 2.7-3 2.8 1.6 1.7 3.7-1c2-2.7 1.7-1.6-.7-1.8"/>
+ <path fill="#fff" d="m269.6 69 23.4-1.1s-1.6 4-5.6 3.9-1.8-.8-3.6.8-5.5 2-7.3.5c-1.9-1.5 0 .5-3 .3-2-.2-5.8-4.3-3.9-4.4"/>
+ <path fill="#bbbaba" d="M277.3 72.5s6.2 1.4 5.6-.2q-1.2-2.5.5-2.3c1.1.1 2.2 1.6.4 2.6s-5.3 2.4-6.5 0z"/>
+ <path fill="#dedede" d="M283.8 68.5s4.8 3.2 6.3 2.5-3.9 1.4-7-.5c-3.2-2-.4-1.7.7-2m-10.3 3s1.4 0 3.3.8c1.8.7 3.6 2.2 2 1.7a22 22 0 0 1-5.3-2.5"/>
+ <path fill="#bbbaba" d="M290.7 68.3s.6 2.6-3 2.7c-3.4 0 1.7 1.7 3.7-1s1.7-1.6-.7-1.7m-13 20.5s6.7 1.4 6-.3q-1.2-2.5.5-2.2c1.3.1 2.4 1.6.5 2.6-2 1-5.8 2.4-7-.1"/>
+ <path fill="#dedede" d="M285 84.6s5.3 3.2 7 2.5c1.5-.8 0 0 0 0s-4.3 1.4-7.7-.6-.4-1.6.8-1.9m-11.2 3.3s1.6 0 3.5.8c2 .8 4 2.2 2.3 1.8s-5.1-2-5.8-2.6"/>
+ <path fill="#bbbaba" d="M292.6 84.3s.6 2.7-3.2 2.8 1.7 1.7 4-1 1.8-1.6-.8-1.8"/>
+ <path fill="#fff" d="m221.6 90.8 28-1.3s-1.9 4.7-6.7 4.6-2.2-1-4.3 1c-2.2 2-6.6 2.4-8.8.6s0 1-3.6.8-7-5.6-4.6-5.7"/>
+ <path fill="#bbbaba" d="M230.8 95s7.4 1.6 6.7-.3q-1.4-3 .6-2.7c1.4.2 2.6 2 .5 3.1-2.2 1.2-6.4 2.8-7.8-.1m-1-4.5s-7.2 1.4-7 4.2c0 0-3.7-.9-3-2 .7-1.3 10-2.2 10-2.2"/>
+ <path fill="#dedede" d="M227.4 90.5s-5.6 1.1-5.6 2.7c0 1.5 6.7 3.8 4.9.9-1.8-3 0 0 0 0l1.9.9s-1.7 3-5.3 1.7c-3.4-1.4-7.3-5.5-5.4-5.7zm11.2-.2s5.8 3.7 7.5 2.9c1.8-1 0 0 0 0s-4.2 2.6-8.4-.6c-3.5-2.8-.4-2 .9-2.3"/>
+ <path fill="#dedede" d="M226.2 93.8s1.8 0 4 .9 4.4 2.2 2.4 2c-2.3 0-5.6-2.3-6.4-3"/>
+ <path fill="#bbbaba" d="M247 90s.6 3-3.6 3.2c-4.3 0 1.9 2 4.3-1.2 2.5-3.2 2-1.8-.8-2z"/>
+ <path fill="url(#sh-ac-ac-r)" d="m234.8 96.8.5 9.2v1.4l.4 9.8-3.2-.6-.8-19.8"/>
+ <path fill="url(#sh-ac-ac-q)" d="m280.8 90.4.3 12.2h3.2l-.4-13.2"/>
+ <path fill="url(#sh-ac-ac-p)" d="m259.1 89.5.8 28 1.7-.4q1.8-.7 1.7-.8l-1-26.8"/>
+ <path fill="none" stroke="#48484a" stroke-miterlimit="10" d="M238.7 117.5h4.4"/>
+ <path fill="none" stroke="#c8102e" stroke-miterlimit="10" stroke-width=".3" d="M229.5 50.6v2m-1.3-1h2.5"/>
+ <path fill="#dedede" d="M211.9 175.4s.8-2 0-6 6.8 0 11.9 0c5 0-6.8 7.2-6.8 7.2z"/>
+ <path fill="#bbbaba" d="M215 176.6s.6-3.5 0-4.9c-.4-1.3 1.2-.7 2.9.7s8.8-1.2 8.3-5.6l1 2.4z"/>
+ <path fill="#dedede" d="M206 165s4.5-4.3 9-1.4c4.4 3 10.6 2.8 7.7-1.7s-8.5-4.9-10.6-4.8-3.9 2.6-6.1 8"/>
+ <path fill="#bbbaba" d="M211.8 157.8s3.6-.3 4.5.6c1 1 3.1 4.6 1.7 3.5-4-2.9-9.7-.6-8.7-2 1-1.6 2.5-2 2.5-2"/>
+ <path fill="#dedede" d="M257.7 150s2.8-1.7 4.4-1.2 3.7 2.1 5.5 3 6.8 5.6 5.6 2.7c-1.2-3 0-6.5 0-6.5s-18-2.7-15.5 2"/>
+ <path fill="#bbbaba" d="M263.9 147.7s4 1.3 5 2.4c.8 1 2.2 2.4 1.8.6s.2-3.7-1.6-3.6c-2 0-5.2.6-5.2.6"/>
+ <path fill="#dedede" d="M258.7 151s3.2.8 3.8 1.7c.6 1-1.4 1.5-1 4.4"/>
+ <path fill="#3e7438" d="M368.6 140.6c-1.7 3.2-6.4 10.2-3.4 8 13.5-9.8 8.9-25.3 7.3-31.2s-11.8-11.7-17.7-11.7-6.8 2.5-9.9 5.4c0 0 2.6-2 7.4-1.6 4.7.3 16.2 4.7 18.8 15.2s-2.5 15.9-2.5 15.9m2-36.5s6.9 4.2 13.2 5l12.3.5-9 6.7 7.1.3 8-6.7s14.8-1.2 22.8 4l8 5.2 4.7 1.4s-7.5-9.4-20-11c-12.5-1.4-13.5-1-13.5-1s12.4-5.4 8.6-16.5l-2.4-.6s4.7 11.9-9.3 15c-14 3.2-15-.4-15-.4zm6.1 39.6s2.4-5 2.5 2 4 14.2 9 18c5 3.7 10.2 3.6 10.2 3.6l3.2 3.6s-22.2-1.4-24.9-27.2m1-23.5s1.9 11 1.9 14 6.8 5.1 4.6 0c-2.1-5.1-3-8.8-3-8.8s13.4 11.7 26 18 13.9 6 17.7 6 19.8-8.2 19.8-8.2h-3.5S428.6 148 425 148c-3.7 0-11.9-2-25.3-10.6s-10.4-9.3-10.4-9.3l8.1-4.2-4.4-3.3-6.5 5s-9-7.3-8.7-5.3z"/>
+ <path fill="#172716" d="M380.5 152.5c-.4-.6-.1-1.6 2.5-1.6s3.7 1 4.6 3.7 3.5 5.9.5 6-4.3-2.8-7.6-8.1"/>
+ <path fill="#2b5f31" d="M396.6 105.8s12.5 1.3 14.6-7.6c1-4.5-.7-5.8-.7-5.8s8.6.6 7 8c-1.1 5.7-5.8 7.5-5.8 7.5s5.8.4 9.8 1.2-5-2.3-5-2.3 2.7-3 2.7-7.4-5.1-8.2-10.3-8.2c-.6 0-1.7-.1-.2 1.4 1.5 1.6 4.8 7-12 13.2z"/>
+ <path fill="#172716" d="M404.9 118.6s-16-2.8-18.3-3.4c-2.2-.6-.6.7 9.4 7.7s18 7.7 18 7.7a138 138 0 0 1-18.6-11.6zm-41.6 27.8s-2.4 3.7-1 3.7 9.2-1 11-3.3c0 0-5.7 6.2-11 5.3s-4.6-2-4.6-2z"/>
+ <path fill="#294527" d="M368.7 145s2 2 5-.3c3.2-2.3.9-10 .9-10z"/>
+ <g fill="#b2d9bd">
+ <ellipse cx="392.9" cy="107.8" rx=".8" ry=".4"/>
+ <ellipse cx="397.4" cy="107.7" rx="1" ry=".5"/>
+ <ellipse cx="401.8" cy="107.5" rx="1.2" ry=".6"/>
+ <ellipse cx="406.3" cy="107.4" rx="1.4" ry=".7"/>
+ <ellipse cx="377" cy="129.8" rx="1.2" ry=".7"/>
+ <ellipse cx="376.7" cy="126.7" rx="1.2" ry=".7"/>
+ <ellipse cx="378.9" cy="122.5" rx="1.3" ry=".8"/>
+ <ellipse cx="375.9" cy="119.9" rx="1.2" ry=".7"/>
+ <ellipse cx="373.3" cy="117.7" rx="1.1" ry=".6"/>
+ <ellipse cx="385.9" cy="115.1" rx="1.3" ry=".8"/>
+ <ellipse cx="383" cy="112.6" rx="1.2" ry=".7"/>
+ <ellipse cx="380.3" cy="110.3" rx="1.1" ry=".6"/>
+ <ellipse cx="371" cy="115.7" rx=".8" ry=".5"/>
+ <ellipse cx="377" cy="108.2" rx=".8" ry=".5"/>
+ <ellipse cx="403.3" cy="105.4" rx=".8" ry=".5"/>
+ <ellipse cx="377.1" cy="132.6" rx="1" ry=".6"/>
+ <ellipse cx="377.4" cy="135.5" rx=".8" ry=".4"/>
+ </g>
+ <path fill="#3e7438" d="M79.1 141.2s-16.3-6.6-17.1-13.1 14.5-11.5 14.5-11.5L78 114s-19.4 2-19.4 14 27.8 18.8 27.8 18.8z"/>
+ <path fill="#2b5f31" d="M75 119.2s-6.7 2.1-5.5 2.3 4.6.3 4.6.3l-.4 1.3s-9.7.5-9.7 2.3-1.5 5.3 12.5 12.8l1 2.3S62 133.9 61.7 128c-.2-6.3 8.7-9 13.5-11.1 4.7-2.2-.3 2.3-.3 2.3"/>
+ <path fill="#b2d9bd" d="M60.5 130.9s1.7 3.7 3.7 5.2 5.4 2.5 5.4 2.5l-4-3.7c-1.2-1.2-5.1-4-5.1-4"/>
+ <path fill="#172716" d="M68.7 123.6c.2.9-2.8 5.3-.3 7.6 2.5 2.4.4 2.9-1.5 1s-4.6-4.5-3-7.7 4.7-1.8 4.8-1z"/>
+ <path fill="#3e7438" d="M180.6 126.4s-1.2-10.8-8.9-15.5c0 0-.7 14.7-7.2 23.8-2.6 3.6-5.8 8.5-8.6 13.7-.4.5 4.2 4.4 4 5-.3.4-5.4-2.5-5.6-2-3.7 7-6.6 14.3-6.6 19.5 0 10-1.2 19 1 25.3s-7.7-11.6-6-24.1 9.4-21.2 9.4-21.2l8.2 2.4-6-6.7s15.3-21.5 12.2-34.9-12.2-11-12.2-11 17 0 24.2 12.8c2.9 6 2.1 12.9 2.1 12.9"/>
+ <path fill="#3e7438" d="M149.4 160.6s2.2 1.8 4.3 3c2 1.3 4 5.5-2.2 2.5-6-3-2.1-5.5-2.1-5.5m10.7 43.8c.1-17.5 10.6-23 10.6-23s-8.3 1.5-15 11.3c-6.8 9.8-5-3.3-3.8-11.3s14.8-17.3 14.8-17.3-10.4 14-11 19.2l5-2.6s8.4-3.6 14.2-2.7 5.5 2.7 5.5 2.7-7.2.8-10.7 4.5a28 28 0 0 0-8 18.7z"/>
+ <path fill="#172716" d="M157.9 204s1.2-7.2 2.2-10.6-2.4-7.3-7.7 6.5"/>
+ <path fill="#294527" d="M176.2 138.4c-1.4 1 .2 3.3 2.2 3.3s-10.5 14-17.2 26.7l4-3.2 18.2-23.7s7.7-12.9-7.2-3z"/>
+ <path fill="#3e7438" d="M179.6 134.2s-3.2 2.6-3.4 4.2 9.7-1.4 9.6-4.2c-.2-2.8-.4-3.7-.4-3.7s-3.2 3.3-5.8 3.7"/>
+ <path fill="#294527" d="M167.9 136.8c-1.2-1.2-5.2.6-13.8 18.9l-1.2-1.7s6-11.8 12.4-20.4zm-4.4 28.8s-5.3-4.9-6.1-3.5c-.9 1.4-1.2 1.8.7 3.5l3.5 3.3z"/>
+ <path fill="#3e7438" d="M153 154s2.4 3.9 4.7 5.8c2.4 2 1.4 6.2-2.4 2.9l-5-4.6z"/>
+ <g fill="#b2d9bd">
+ <ellipse cx="152.3" cy="192.7" rx="1.9" ry="1"/>
+ <ellipse cx="176.2" cy="138.4" rx="1.9" ry="1"/>
+ <ellipse cx="173.8" cy="142.7" rx="1.9" ry="1"/>
+ <ellipse cx="171.4" cy="147" rx="1.9" ry="1"/>
+ <ellipse cx="168.9" cy="151.3" rx="1.8" ry=".9"/>
+ <ellipse cx="166.5" cy="155.6" rx="1.5" ry=".8"/>
+ <ellipse cx="152" cy="189.3" rx="1.5" ry=".8"/>
+ <ellipse cx="153.5" cy="186.4" rx=".8" ry=".4"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" d="M114.2 108.7s.7 2.1.5 3.2m4.3-3.2s.6 2 .5 3m5.2-3.7s.6 1.8.5 2.7m18 28.2s2.1-.8 3.2-.7m-3.5-4.5s2-.2 3 0m-2.4-4.6s1.9 0 2.7.5m-1.2-3.8s1.7.6 2.4 1.3m-18.1-20s.5 1.6.4 2.5m85.5 105.9s1.8 1 2.4 1.8m-4.8 1.4s1.7 1 2.3 1.9M206 208s1.6.9 2 1.6m.7-5.4s1.5.9 2 1.6M136 106.4s.5 1.5.4 2.3m2.3 16.3s1.7 1.4 2.2 2.4m1.2-4.8s1.6 1.3 2 2.2m1.7-5.6s1.4 1.1 1.8 2m.9-5s1.3 1 1.7 1.8m2.7-5.8s1.2 1 1.5 1.7"/>
+ <path fill="#dedede" d="M337.4 120s10.4-7.6 15.4-5.6l.9-4.5s-7-1.6-12 4c-5 5.4-4.3 6-4.3 6zm5.1 18 9.7 13.7L345 139zm28.2 45.9s-1.6 0-3.7 11c-2 11-3.3 12.4-3.3 12.4s10.4-7.7 7-23.4M359 202s1 10.6-2.4 13.7c-3.4 3.2-8.5 3.2-8.5 3.2s7.1-3.3 11-16.9z"/>
+ <path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" d="M366.1 202.4s2.2-.2 3.3.1m-1.8-4.7s2-.3 3 0m-2.1-4.5s1.8-.2 2.7.1m-1.8-4.5s1.6-.3 2.4 0"/>
+ <path fill="none" stroke="#c8102e" stroke-miterlimit="10" stroke-width="1.3" d="m309.7 83.6-3 11.5m-3.2-7 9.4 1.8"/>
+ <path d="M287.2 215.6q-6.8.8-12.8 4.2a58 58 0 0 0-11 7.9l-.2-.3c3.3-3 7-6 11-8.2s8.3-4 12.9-4.5z"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10">
+ <path stroke-width=".6" d="M219.2 76.3s2.5 4.8 6.3 4.8 3.2-1.5 3.2-1.5"/>
+ <path stroke-linecap="round" stroke-width="1.3" d="m246 75-26.8 1.3"/>
+ <path stroke-width=".6" d="M235.7 77s1.3 1.8 4.5 1.8c5.3-.2 5.8-3.7 5.8-3.7"/>
+ <path stroke-width=".6" d="M226.2 78s3.5 3 6.4 3 4.8-1.4 5.3-2.5M247 85s2.5 4.7 6.3 4.7 3.2-1.5 3.2-1.5"/>
+ <path stroke-linecap="round" stroke-width="1.3" d="M273.9 83.7 247 85"/>
+ <path stroke-width=".6" d="M263.6 85.7s1.3 1.8 4.5 1.8c5.3-.3 5.8-3.8 5.8-3.8"/>
+ <path stroke-width=".6" d="M254.1 86.7s3.5 3 6.4 3 4.8-1.4 5.3-2.6m5-15.3c.8.6 1.7 1.7 2.8 1.7 2.4 0 2.1-1 2.1-1"/>
+ <path stroke-linecap="round" stroke-width="1.3" d="m293 68-18.3.9"/>
+ <path stroke-width=".6" d="M282.7 70s1.3 1.8 4.5 1.8c5.3-.3 5.8-3.8 5.8-3.8"/>
+ <path stroke-width=".6" d="M273.2 71s3.5 3 6.4 3 4.8-1.4 5.3-2.6"/>
+ <path stroke-linecap="round" stroke-width="1.4" d="m295 83.6-20.7 1"/>
+ <path stroke-width=".6" d="M283.4 85.9s1.4 2 5.1 2c6-.3 6.6-4.3 6.6-4.3"/>
+ <path stroke-width=".6" d="M271.3 86.7s5.3 3.7 8.5 3.7 5.5-1.6 6-3m-39.8-18s2.7 5.1 6.8 5.1 3.5-1.6 3.5-1.6"/>
+ <path stroke-linecap="round" stroke-width="1.4" d="m275 68-29 1.4"/>
+ <path stroke-width=".6" d="M263.9 70.2s1.3 2 4.8 2c5.7-.4 6.3-4.2 6.3-4.2"/>
+ <path stroke-width=".6" d="M253.6 71.3s3.8 3.2 6.9 3.2 5.2-1.5 5.7-2.8M217 91.2s3 5.8 7.5 5.8 4-1.8 4-1.8"/>
+ <path stroke-linecap="round" stroke-width="1.5" d="M249.3 89.7 217 91.2"/>
+ <g stroke-width=".6">
+ <path d="M237 92.1s1.4 2.2 5.4 2.2c6.3-.3 7-4.6 7-4.6"/>
+ <path d="M225.4 93.3s4.3 3.7 7.7 3.7 5.9-1.8 6.4-3.2m35.2-7s-.2 2 1 2.5"/>
+ <path d="m231.7 96.8.8 19.8 3.2.6-.4-9.8M231 80.8l.4 9.8m2.4-15-.9-18.7s-1.8-.8-2.8 0l.7 18.9m3.2 5.1.5 9.5m.8 17-.5-10.6m48.4-28.3-.5-14s-1.8-.7-2.8 0l.3 14.1m3.5 15.5-.4-11m-2.5 17.3.3 12.2h3.2l-.4-13.2M280.4 74l.2 10.3m-19.3-15.6-.8-19.5s-1.9-.8-2.9 0l.8 19.6m3.6 15.5-.4-9.8m-2.5 15 .8 28 1.7-.4q1.8-.7 1.7-.8l-1-26.8m-3.7-15.3.3 10.2"/>
+ <path d="M231.2 56.5v-6h-3.5v2l3.5.1"/>
+ </g>
+ </g>
+ <path d="M293.7 139.4a39 39 0 0 1-7.7-7 31 31 0 0 1-5.2-9.1 21 21 0 0 1-1.2-5.2v-1.3q0-.8.3-1.4l1-2.4a65 65 0 0 1 5.7-8.8l.3.5-4.4-.1-4.4.1-4.3.4-2.2.3-1 .2h-.6q-.3 0-.5.3l.2-.2-3.7 7.3-1 1.9a5 5 0 0 1-1.4 1.7 8 8 0 0 1-4 1.3h-17v-2.3l.5.5-4.4.2.7-.7-.2 1.9v.5h-.5a24 24 0 0 1-5.5-.5q-1.4-.3-2.6-.9l-2.5-1a59 59 0 0 1-9.9-4.4l-9.3-5.6-9-6 .3-.4 5.2 5 5.3 5q5.2 4.9 10.9 9.4c1.8 1.5 4 2.7 5.7 4.3a32 32 0 0 1 4.8 5.6q2 3.1 4.4 5.3a18 18 0 0 0 5 3q.3.1.3.4l.1 1-.2.5-.8.6h-.5l-2.5-1.3a16 16 0 0 1-3-2.4c-1.9-1.9-3-4.1-4.2-6.3a22 22 0 0 0-6.5-8.4l-2.8-2.1-10.9-9.5-10.7-9.6.4-.5a149 149 0 0 0 18.3 11.5q4.8 2.5 9.9 4.1l2.6 1 2.5.7q2.6.5 5.2.5l-.5.5-.1-1.9v-.6h.6l4.4.2h.5v2.3l-.5-.5h12.4q2 .2 4 0 2 0 3.7-1c1.7-1 1.5-2 2.1-3.3l3.9-7.3v-.1h1.3l1-.1 2.3-.2 4.3-.3 8.8-.6h.5l-.3.5q-3.1 4-5.6 8.7c-.7 1.5-1.5 3.1-1.3 4.8q.3 2.5 1.2 5a32 32 0 0 0 12.6 15.8z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M269.4 105.6s9.3-3.5 17.2-3.5a229 229 0 0 1 21.5 1.7s-.2 6.3 1 7.4 4 2 1.8 6l-7 12.7"/>
+ <path d="M215 177q-3.5-1-6.3-3-1.5-1.2-2.5-2.6c-1-1.4-1-2.2-1.2-3.5a9 9 0 0 1 .3-3.6 14 14 0 0 1 7.2-7.9l.3-.2h.2a22 22 0 0 1 5 1.5 17 17 0 0 1 5.4 3.6l2.3 3q1.5 2.2 2.3 4.7l.2.6-.5.3q-6.1 3.7-12.4 7l-.2.1zm0-1 11.8-7.5-.4 1q-.8-2.2-2.1-4.2l-2.2-2.8-.8-.8a15 15 0 0 0-4-2.4 24 24 0 0 0-4.5-1.5h.4a16 16 0 0 0-6.3 7q-.6 1.5-.8 3.1l.2 1.6q.2.8.6 1.4a9 9 0 0 0 2.2 2.5 16 16 0 0 0 5.9 2.7z"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.8">
+ <path d="M212.9 157c.2-.6 2.1-1.4 3.5-1.4s-1-1.8 4.6-3.5c5.5-1.8 5.1 0 5.1 0s.4-1.5 2.8-1.5c2.3 0 5-1 5.9 0 .8 1 4.8 5.7 5.7 6.5s2.9 4.8 2.1 6.5q-1.1 2.3-6.9 2.6c-3.7.2-8.1 4.4-8.5 3"/>
+ <path d="M235 150.9c.6-1.8 2-2.3 3.4-2.3s.3-1.5 5.2-1.5c4.8 0 3 .4 5.8.3 2.8 0 5.5-1.8 7.5 1.2 2 2.9 5.2 11 5.5 13.2s-7.4 2.8-9.8 2.3c-2.3-.5-8.7 1.9-10.5.2"/>
+ <path d="M256 147.6s8.7-1 14-.8c5.2.4 8.6 4.6 9.4 9 .7 4.5.4 8.1-5 7.6-9-.7-12.3-.8-12.3-.8"/>
+ <path d="M274.5 148.3s5.7-1.4 8.1 0a42 42 0 0 0 8 3.6c1.1.4 4.8.2 4.8 5.2s0 14.7-4 13c-4.2-1.8-4.5-4.4-8.2-5.2-3.5-.8-5.4-2-5.4-2"/>
+ <path d="M294.6 154a6 6 0 0 1 6.1-2.2c2.9.6 5.9 4.3 8.7 5.3s5.6 7.7 2.3 12.4-9.6 7.6-12.5 4.9c-2.8-2.7-5.6-2.5-6.6-4.2"/>
+ </g>
+ <path d="m226 171-8 6.1-4 3.2-1.8 1.6-.7.7v.1-.2l.4.2 1 .2 2.5.1h.6l.9.2v.1l.3.1c.1.1.6.7.6 1.3q-.1.7-.4.9l-.3.3-.5.2-3.4 1.1-4 .5H208l-5 .1.9-.3-11.7 8.1-.5-1.6 13.3-.5h.6l.5.6 23.8 31.7.4.5-.4.5c-1.3 3.2-2.9 6.3-3.9 9.3l-.6 2.2c0 .6-.1 1.4 0 1.6l1.8 4.2 2.5 4.4 2.6 4.4 5.4 8.8-1.7-.6 27.9-8.9-.6.6a51 51 0 0 1 9.7-16.6 35 35 0 0 1 7.3-6.3q4.2-2.7 9-3.7a29 29 0 0 1 4.9-.7h1.2l3.7.3q2.6.3 4.6 2.6a7 7 0 0 1 1 5.2c-.4 3.3-1.8 6.3-3.3 9.1a65 65 0 0 1-5.2 8l-.8-1.4 6.4-.6-.8.3c2.4-3.1 5.1-6 7.3-9.3a30 30 0 0 0 2.9-5 12 12 0 0 0 1-5.4q0-.7-.2-1.2l-.5-1.2-1.7-2.3a26 26 0 0 0-4.3-4 27 27 0 0 0-10.7-5v-.6q6.3.8 11.6 4.3a27 27 0 0 1 4.8 4l2 2.5.8 1.5q.4.9.5 1.8.2 3.5-1 6.5a37 37 0 0 1-2.9 5.6 38 38 0 0 1-7.9 9.6l-.4.3h-6.9l-2 .1 1.3-1.5a63 63 0 0 0 5-7.8q2.4-4.1 3.2-8.5.3-2.4-.8-4-1.2-1.5-3.5-1.9l-2.2-.2H294l-4.5.6c-6 1.3-11.3 4.9-15.4 9.5q-6 7-9.3 16l-.1.3-.4.2-27.5 10-1 .5-.7-1a110 110 0 0 1-12-17.2l-1.2-2.5q-.6-1.2-1-2.9-.3-2 .2-3.4.4-1.6 1-2.8a28 28 0 0 1 6.2-8.8v1l-24.7-31 1.2.5-13.3-.5h-2.7l2.2-1.6 10.8-9 .4-.4h5.6l1.3.1h1.2l2.3-.3 2.7-.7s0-.1 0 0l-.2.6.1.7.3.3h.1l.1.1h-.6l-2.6-.3-1.4-.3q-.8-.2-1.7-1.1a2 2 0 0 1-.4-1.5l.4-1 1-1.2 2.1-1.7 4-3 8.4-6z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.8" d="M267.9 163s-11.8 8.7-11.8 21.4 2.1 11.8 2.1 11.8 8-17 16.3-21.3c0 0-1 18.2 3.4 27.7s13.3 20 23.7 22.6-5.2-4.6-7.9-11.8c-2.6-7.2-1.1-26.2-1.1-26.2s2.8 15.4 10.3 26.4a200 200 0 0 0 18.2 22.1l.9-13.8-8.8-13.2s10 11.9 23.8 11.9c13.7 0 21.3-9.3 21.7-21.3 0 0-5.5 6.8-19.2 6.8-13.8 0-28-9.6-38-30.7"/>
+ <path d="M311 157.6q3.2.5 6.3.3c2-.1 4.2-.6 5.2-1.7 2.8-3.2 5.6-6.4 5.5-10q0-2.9-1.5-5.3a9 9 0 0 0-1.8-2.1l-2.3-1.6c-3.2-1.6-7.4.6-10.3 3.6l-.4.8-.5-.8-3.3-4.7a35 35 0 0 0-3.7-4.1 18 18 0 0 0-4.4-3.2c-1.6-.8-3.2-1.2-5-2.2l.5-.8c1.9 1.4 2.4 3.5 3 5.6q.4 1.5.4 3.3.1 1.7-1 3.6-1.2 1.7-3.2 2l-1.8.3H291a12 12 0 0 1-6-2.8q-2.4-2.2-4.4-4.3a24 24 0 0 0-4.5-3.7 19 19 0 0 0-5.3-2.1l-5.7-1.1.3-.9a27 27 0 0 1 3.3 5l.9 3a4 4 0 0 1-1 3.2q-1.3 1.4-3 1.5a14 14 0 0 1-9-1.4c-1.7-1.2-3-2.8-4.3-4a14 14 0 0 0-4.6-3 50 50 0 0 0-11.2-2l.4-.8a29 29 0 0 1 5.7 7.1q.8 1.5.4 3.4a4 4 0 0 1-1 1.6l-1.4 1q-1.5.6-3.1.7-1.5.2-3 .1l-3.1-.2a19 19 0 0 1-6-1.9q-2.7-1.7-4.9-3.5a8 8 0 0 0-5-1.8l-5.6.3.1-.9a14 14 0 0 1 4 4.4 6 6 0 0 1 .2 6 12 12 0 0 1-4 4.3q-2.5 1.6-5.1 2.7l-1.1.5.4-1v-.1q1.2-3.6.4-7.1-.5-1.8-1.8-2.8a7 7 0 0 0-3.2-1.2q-3.8-.5-7 1a8 8 0 0 0-3.8 5.5 12 12 0 0 0 .4 6.9l.8 1.4.5.6.6.6 3 2.1c4.2 2.6 9.3 3.8 14.3 3.4v.3l-.4.3h-.5l-2.9.2-3.9-.3a26 26 0 0 1-7.4-2.4l-3.4-2.1-.7-.6-.8-.9-1-1.9a12 12 0 0 1-.5-8 11 11 0 0 1 1.8-3.8 9 9 0 0 1 3.1-2.8 11 11 0 0 1 4-1.1 15 15 0 0 1 4 .1q2 .4 3.8 1.6 1.7 1.4 2.2 3.5.5 2 .2 4a17 17 0 0 1-.9 3.9l-.6-.7q2.6-1 4.9-2.7c1.5-1 3-2.3 3.7-3.9q1.2-2.6-.1-5a13 13 0 0 0-3.7-4l-1-.3 1-.6a11 11 0 0 1 6.1-1.4 10 10 0 0 1 6 2.2c1.7 1.3 3 2.6 4.7 3.5q2.4 1.4 5.3 1.8l2.9.3h2.8q1.5-.2 2.7-.7t1.6-1.5a4 4 0 0 0-.3-2.4q-.5-1.3-1.3-2.5a32 32 0 0 0-3.8-4.5l-1-.8h1.3q6-.4 11.9 1.1a18 18 0 0 1 5.6 3c1.6 1.2 3 2.7 4.3 3.4l2 .8a13 13 0 0 0 4.9.2q1-.2 1.5-.5t.4-1.2l-.4-2.3a37 37 0 0 0-2-5.2l-.8-.6 1.2-.2q3-.6 6.2.1a21 21 0 0 1 5.8 2.4 26 26 0 0 1 5 3.8q2.1 2.3 4.2 4.2a9 9 0 0 0 5 2.4c1.8.2 3.9 0 4.8-1.4q.7-1 .7-2.4 0-1.5-.3-2.9-.8-2.8-2-5.5l-.5-.8h.9q3 .2 5.8 1.6 2.6 1.5 4.7 3.6a32 32 0 0 1 6.7 9.7l-.8-.1a14 14 0 0 1 2-2.8q1.2-1.2 2.8-2.2a9 9 0 0 1 3.5-1.3 9 9 0 0 1 3.9.4 10 10 0 0 1 3.3 1.8 12 12 0 0 1 2.6 2.8 13 13 0 0 1 2.2 7.1q-.2 4.1-2.3 7.2L327 156l-1.2 1.2-1.2 1.2a8 8 0 0 1-3.7 1.6 11 11 0 0 1-3.6.2l-3.4-.6-3.2-1z"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10">
+ <path d="M219.2 152.7s3-4 2.4-6.8c0 0 6 4.1 10.2 3.8m12.4-3s3.8-1.8 4.5-5c0 0 3.6 4.4 7 5m14.3.1s5.1-3.9 5.8-6.2c0 0 7.5 8.8 13.3 9.5s13.7-6.2 13.7-6.2-2.1 10.1 9.5 14.3m-.6-17.6c1.2 2.1 3.9 6.5 6.9 6.5s3.8-3.7 1.1-3.7-2.9 1-2.9 1"/>
+ <path stroke-width="2" d="M274.5 235.7a49 49 0 0 1 20.9 14.5m0 0h-13.5s1.6-3-12.5-8"/>
+ <g stroke-width="1.8">
+ <path d="M366.6 151.7c5.6 12 10.1 25 10.1 33.5 0 11.4-7.8 32-37 35.2"/>
+ <path d="M358.7 199.3c1.2-11.5-9.5-17.1-21.3-15.4 0 0 4.8-6 13.8-6s14 8.4 14 8.4-4.5-12-16.5-29c-15.1-21.4-16-28.6-16-28.6l4.7 2s-5.4-10.4 7.3-19.4c3.4-2.4 9-1.6 9-1.6s-1 3-1 6.9c0 3.8 0 8.8 8 23.5l3 5.7"/>
+ <path d="M336.3 126.4c-2-7.8 5.8-23 21.9-23 14.5.2 27.5 3.7 36.5 2.5s20.3-9.2 13-14.7c0 0 11.5-.1 11.5 8.2 0 8.4-4.7 8-4.7 8s17.7.5 23.7 14.2c0 0-6.2-3.4-13.7-3.4s-29.3.7-29.3.7 10 8.8 22.5 13.1c12.5 4.4 18.7 8 38.3 5.6 0 0-26 14.7-30 14.7s-18-2-43.4-24.7c0 0 3.8 7.3 6.1 15.8 2.4 8.5 6.9 24.7 15.4 29.3 0 0-11.4-.1-19.7-7.7s-7.7-23.3-7.7-23.3-8 16-19 8.4c0 0 13.9-6.5 13.9-19.4a20 20 0 0 0-17.9-21"/>
+ </g>
+ <path stroke-linecap="round" d="m340.9 137.3 5.3 2.2m-.3 4 2.3 1.7m1.1 2.7.8 1m2.1 2.8v1.5"/>
+ <g stroke-width="1.8">
+ <path d="M153.9 147.2c6.2-10.1 12.7-20 12.7-31 0-21-21.2-15-26.9-14.8s-19.6 3.6-24 .7a33 33 0 0 1-11-12.2s-5 7.8-2 12.2c3 4.5 6 5.5 6 5.5s-13.6.4-19 3.7c-5.3 3.3-7 10.2-7 10.2s15.7-10 27.7-6.3 25-1.3 25-1.3-35.7 23.8-58.7 24.4M205 194.9s-13.8 12-30.2 12-32-8-32-30.3c0-9.4 4.2-17.8 9-25.9"/>
+ <path d="M166.5 113.9c-6.3-1.2-17.5 8.7-17.5 20.3s11.3 19.1 11.3 19.1c-13-1.4-17.6-11.7-17.6-11.7s2 6.2-2.1 13.8c-10.8 20.6-26.4 18.2-26.4 18.2A52 52 0 0 0 126 155c1.5-4 8.7-18 10.8-22s-.2-7.3-3.1-4.5c0 0-20.7 16.8-30.4 19.8-6 1.9-18.1 1.5-26.5-10.1s1.4-24.4 1.4-24.4-19.4 2.3-19.4 14 30 21.4 38.4 21.4m47.7 15.7c-3 12-7.2 31.7 4.6 45.4 11.7 13.8 33.3 15.4 42.2 10.4s12.9-9 12.9-9-3.7 11.4-4.3 18c0 0 10.9-1.7 12.7-8.1 0 0-4.7 10.1 3.5 19.7 0 0 3-13.8 10.7-17.6"/>
+ <path d="M161.7 205c1.1-24 18.7-24.3 18.7-24.3s-.5-2.7-9.3-2.7-15.7 6.3-15.7 6.3c-1.7-6 22.7-34 27.3-41.6s2.7-12.2 2.7-12.2c-1.2 2.2-5.8 3.7-5.8 3.7s1.6-3 .8-13.7c-1-14.5-16.7-20-26.7-19.9"/>
+ </g>
+ </g>
+ <path fill="#291c11" d="m290.4 105.4 3.2.2v.5l-3.2.7.9-.5-3.4 5.1-.7-.3 2.8-5.4.2-.3zm5.2.6 3 .2v.5l-3 .7.8-.5-3.2 4.8-.6-.3 2.7-5.2v-.2zm4.4.9h2.9v.6l-3 .6.8-.5-3 4.7-.7-.3 2.6-5 .1-.2zm-12.2 17.5 3.2.2v.6l-3.2.8 1-.7-2.5 5.2-.8-.3 1.8-5.4.1-.4zm5.2.6 3 .2v.6l-3 .8 1-.8-2.4 5-.8-.3 1.7-5.2.1-.3zm11.8-17.5h2.4v.6l-2.4.5.8-.5-2.7 4.8-.5-.3 2.1-5 .1-.1zm-18.6 6.8h3.8v.8l-3.8.9 1.1-.8-3.2 6.7-.8-.3 2.4-7 .2-.3zm6.3.6h3.6v.7l-3.6.9 1-.7-3 6.3-.8-.3 2.3-6.6.1-.3zm5.2.7h3.5v.7l-3.5.8 1-.7-2.9 6-.8-.2 2.3-6.3.1-.3zm5.9.5 2.8.1v.7l-2.8.7 1-.8-2.4 6.1-.8-.2 1.7-6.3.1-.3zm-32.3-9.2 3.9.1v.7l-3.9.8 1-.6-4 6.2-.8-.4 3.4-6.6.1-.2zm6.6.6 3.8.1v.7l-3.8.9 1-.7-4.1 6.2-.8-.4 3.4-6.5.2-.3z"/>
+ <path fill="none" stroke="#291c11" stroke-miterlimit="10" stroke-width=".5" d="M286.9 104.4s4.3-2.2 8.5-1.8"/>
+ <path fill="#291c11" d="M264.4 120.4q1.2-.5 2.4-.4a28 28 0 0 1 7.5.6q2.4.5 4.6 2a12 12 0 0 1 3.6 3.5l-.2.1a12 12 0 0 0-3.6-3.3q-2.1-1.3-4.5-1.9a22 22 0 0 0-7.3-.5l-2.5.2z"/>
+ <path fill="none" stroke="#291c11" stroke-miterlimit="10" stroke-width=".6" d="M265 114c-.8 1.5-.4 2.4 4 3.2s9.3 2.9 11.2-1.6"/>
+ <path fill="none" stroke="#291c11" stroke-miterlimit="10" stroke-width=".6" d="M260.7 117.3c2-.2 4.2-1 6.3-.5m7 1.5c3 .6 6 1.5 6.6 3.4"/>
+ <path fill="#291c11" d="M265.8 120.6a65 65 0 0 1-36.2-1.6 70 70 0 0 1-8.2-4.1l-7.8-4.9a158 158 0 0 1-14.5-11l.3-.4a224 224 0 0 0 14.9 10.4q7.5 5 15.8 8.6a48 48 0 0 0 17.6 3.3q9 0 18-.9z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.8" d="M456 137.6c9.4-3 11.2-18-10.3-26.8 0 0 7.8 23.3-8.4 26.8"/>
+ <path fill="#74948f" d="M317.5 463.3c1.1-2.1 4-8.4 6.3-8 2.5.2 5.2.3 6.7-2.5s8.7-12.4 12.3-13 14.2-9.3 28.1-16c11.4-5.5 19.5-13 29.5-12.8 9.9.3 5.8 7.8 16.4 7.8s35.2 4.5 41.6 16.4a42 42 0 0 0 20 20c5.6 2.3 26.6 8.6 18.6 11.3s-11.6 2.2-18.8 6.2a38 38 0 0 1-23.9 5.6c-9.5-1-10.6-1.6-14 .2s-22.5 2.2-24.3 0c-1.7-2.2-3.1 1.5-8 0s-23.9 1.5-32.6-1.5c-8.6-3-17.6-1.8-25.9-2-8.2-.3-34-8-32-11.8z"/>
+ <path fill="#3c4544" d="M451.8 428.3s8.7 15.9 7.7 21c-1 5.2-3 .7 5.5 5.2s16.5 4.9 11 6.4c-5.5 1.6-15.7-2-12.3 5 3.3 6.8 3 6.6-3.2 6.3-7-.4-15.7-3.7-20.2 1-4.5 4.6-13.6 6.8-13.6 6.8s10.8.3 13.5-1.5c2.8-1.8 8-1.3 15.2-.2a51 51 0 0 0 25.6-7c3.8-2.8 20.4-4.8 17.6-7a85 85 0 0 0-20.2-9c-8.6-2.8-15.6-12.5-17.8-16.3s-4.7-8.3-8.8-10.7"/>
+ <path fill="#202926" d="M353.2 462.8s4.8-1.6 8.1 2c3.4 3.7 9.7 10 16.4 10s11-1.1 14.1-3.8c0 0-9.1 2.6-13.6 1.7s-10.7-6.6-14.7-10.2c-4-3.7-10.3.3-10.3.3m45.5 5s6.8-1 10.1 1.5c3.4 2.5 10.7 8 14.4 5.5 3.6-2.5 18.3-9 18.3-9s4.4 4 4 4.9c-.3.8-.3 1.9 4.3 2 4.7.1 12.4 2 17.2 0s6.4-.3 5.8 1.3c-.5 1.6-3.4 2.7-3.4 2.7l7.1-3 7.2-3.5s-8.2-3.9-12-4.4-10.4-2.1-8 0c2.3 2.2-3 7.5-7 5-4-2.6-9.7-8.3-11.5-9.9s-1.6-1.2-4 0c-2.4 1.3-15.5 8.4-18 9.6a11 11 0 0 1-11.4-.5c-4.6-3-9.3-3.7-13.1-2.1z"/>
+ <g fill="#cfdcd9">
+ <path d="M424.2 419.3c-4.8-.4-6 .9-2.5 2.5s4.6 6.9.2 8.2-7.2 4.7-11.6 1-7.5-7.8-7.5-7.8 2.5-.4 4.5-2.5c2-2.2 13-2 16.9-1.4"/>
+ <path d="M392.7 412.3s8.3-.3 10.1 3.5c1.9 3.9.7 6.9-4.1 5.9-4.9-1-6-.7-2.2 3 3.8 3.6 9.3 9 16.2 10.6 6.8 1.7 13.8 3.5 9.1 4.4-4.6.8-14.3-1.4-19-1.4s-6.8 3-15 3.7-12.6 3.3-14 5.7c-1.3 2.3 3.4.1 10.4.6s22.6 0 25.3 1.7 15.5 2.3 19.2 4.2c3.6 1.8 9.1 0 9.1 0s-1.5 1-7.3 5.7c-5.8 4.6-13.2 7.8-16.7 7-3.5-.9-15.8-8.2-18.6-8s-16 6.4-17.9 7c-1.8.4-14.3-6-18.8-8s-7.5 0-12.5 2a67 67 0 0 1-13 3.6c-1.2 0-4.2 1.7-6.5 1.7s-8.5.6-8.8-.7a23 23 0 0 1 2.7-6.4s1.4-3.1 6.3-2.8 3.7-2.5 5.2-4.7c1.6-2.1 7.3-10.3 12.9-11.5 5.5-1.1 9.8-7.6 48-26.8"/>
+ <path d="M382.2 467.8c2.6-1.7 4.6-3.6 10.5-3.1 5.8.5 9 1.6 4.6 3.1-4.3 1.5-5 3.4-9.6 2.7-4.7-.7-7.6-1.3-5.5-2.7m-36.7 1.5c4.3.5 9-1 10.8-2.3s2.4-2.5-2.3-2.4c-4.8 0-15.8 3.9-8.5 4.7"/>
+ </g>
+ <path fill="#74948f" d="M363.5 430.7c4.6-1.5 4.3-3.3 12-1.3 7.8 2.1 7.8 2.4 10.3 3.3s5.7 2.3 0 2.5-4-1.5-8 1c-4 2.6-9.8 3.2-12.5 3.6-2.8.5-9.4 2.2-11.3 1.5s-7.2-.3-9 1.3-6 .4 1.8-4.6c8-5 21.6-13 24.1-14.2 2.5-1.3-13.5 8.9-7.4 6.9m-33.7 23.1c3.7-1.3 6.6-2 4 0s-8 4.1-10 3.2q-3-1.5 0-1.8c2.2-.2 5-1 6-1.4"/>
+ <path fill="#202926" d="M334.8 446.7s-3 4.6-1 3.8 6.2-1.1 3.2.1-1.7 1.5-3.1 2l-4.4 1.6z"/>
+ </g>
+ <path d="M500.8 414.6q.7-1.6 1.8-3.3.4-.8 1.4-1.4l.7-.2h1.4q.8 0 1.5-.3l.5-.5.2-.4.3-.4a32 32 0 0 1 4.7-5.8l1.6-1.1 1-.4.8-.3 3.1-1.8 3.2-2q3-2 6.4-3.7l3.3-1.7 3.2-1.7q3.3-2 6.5-3.7 3.4-1.7 7.3-1.7l1.8.3 1.7 1 1.2 1.5q.6.6 1.4 1.1a7 7 0 0 0 3.4.7 51 51 0 0 1 18 4.3q3.4 1.6 5.7 4.7l1 1.6 1 1.6 2.1 3q2.4 2.8 5.5 4.8l3.3 1.5 3.5 1.2 3.5 1.4q1.6.7 3.3 1.7l.7.8q.2.3 0 .7 0 .3-.3.5l-1 .5-.8.3-3.6 1a22 22 0 0 0-6.8 2.6 22 22 0 0 1-14.5 3l-3.6-.5h-1.8l-1.6.6q-1 .4-1.9.5a27 27 0 0 1-5.6.4h-3.7l-2-.3-.9-.3-.6-.3-.1-.2h-.1l-.2-.1h-.3l-.8.4q-1 .3-2 .2l-1-.2-.9-.1-1.8-.1-7.4.2a36 36 0 0 1-9.3-1l-1.7-.4-3.6-.5h-9.3l-1.9-.2-3.6-.8a70 70 0 0 1-7.3-2.2 37 37 0 0 1-5.1-2.4l-.8-.7-.4-.5.1-.9zm.8.5.2.3.6.5 1.5.8q1.6.9 3.4 1.4l7 2.1a48 48 0 0 0 7.2 1h7.4a26 26 0 0 1 7.4 1.4q3.5.6 7.2.5t7.4-.1l3 .2.7.2q.9 0 1.7-.2l.8-.3.6-.1q.4 0 .7.2l.3.3.1.1.3.1.8.3 1.7.2 3.7.1 3.7-.1 1.8-.3q1 0 1.6-.4a6 6 0 0 1 3.8-.6l3.7.4a21 21 0 0 0 14-2.8 23 23 0 0 1 7-2.6l3.6-1q1-.1 1.6-.6.3-.1.1-.4l-.5-.6-6.6-3-3.5-1.3-3.4-1.6q-3.2-2-5.6-5l-2.2-3-1-1.5-.9-1.6q-2-3-5.5-4.6-3.3-1.7-6.9-2.6a51 51 0 0 0-7.2-1.4l-3.7-.2q-1.9.1-3.7-.7-.9-.6-1.4-1.3l-1.2-1.4q-1.4-1.1-3.3-1.2-3.6 0-7 1.8-3.2 1.6-6.4 3.6l-3.2 1.8a85 85 0 0 0-9.6 5.5l-3.2 2-3.2 1.9-1 .3-.7.3-1.4 1a25 25 0 0 0-4.5 5.7l-.3.4-.2.4-.8.8q-1 .6-2 .5h-1.6q-.6.4-1.1 1.2-1 1.4-1.8 3.2"/>
+ <path fill="#74948f" d="M428 415.8c-.6-2-1.3-4.4-4.5-5.3s-2.5.5-4.3-2.7-6.7-10.5-12-12.4c-5.2-1.8-4.8-9.5-11.5-11.7-6.8-2.3-19.4-2-24.7 2.4-5.2 4.5-14 2.7-16.6 5-2.8 2.4-6.4 14.5-12.3 15.5-5.8 1-15.3 3-14.9 6.2s6.2 6 10.1 5.8 12.2 1.4 19 4.3c6.8 3 11-1 15.5 0s9.5 2.6 14.2 1.1c4.6-1.4 6.6-3 12.8-2.6s11.7.8 15.2 0c3.4-.8 14.7-3.4 14-5.6"/>
+ <path fill="#3c4544" d="M368.7 417.8s3.4-2 9-1.5 6.4 4 12 3.1c5.7-.7 4 2.6 0 2-3.9-.5-28.2-1.2-21-3.6"/>
+ <path fill="#cfdcd9" d="M365.8 395.4c1.2-2.5 6.2-10.3 7.7-8.6 1.4 1.8 8.8.5 12.2-.2 3.3-.8 3.5 4.2 4.5 4.4s4.6-.7 3 1c-1.6 1.8-2.6 3.6-3.6 3.4-1-.1 1 1.3 0 2.3s1.5 2.8-3.3 3.2a23 23 0 0 0-11.7 3.8c-2.6 2-6.7 1.9-8.8 3.5s-1 1.5 2.4 1.3c3.5-.1 8.5-.7 10.2.7 1.7 1.5 4.2 2.8 6 2.6s7.8 3.3 3 4-14-1.5-16.8-1c-3 .4-6.9-.8-8 1.1-1.2 2-6.2.9-7.6.8-1.5-.2-.3 1.2 1.6 1.7s2 1.7-.9.9c-2.9-.9-4.6-1.5-6.7-1.7-2-.2-5-.5-6-1.2-1-.8-4.7 1.5-2.1-1.3 2.3-2.7 7-4 7-4s.8-1.3 4.6-.1 4 2.6 7.4-4.7c3.4-7.2 5-10.2 5.9-11.9m23.4-12c1.3.7 1.4 1.5 3 1.5s3 1.7 1.4 1.6c-1.5-.1-3.4-1-4.4-1.5s-1.4-2.1 0-1.5z"/>
+ <path fill="#cfdcd9" d="M390.6 407.6c.7-1.7-5.4-4.2-8.9-3.5-3.4.8-6 1-3.3 1.7 2.6.7 5 1.2 7.1 3.6 2.2 2.3 3.6 2 5.1-1.8"/>
+ <path fill="#3c4544" d="M396.5 384s5.5 6.2 5.6 8.9-4.7 3.4 1 3.3c5.8 0 8.3 4 12 9.7s1.8 8.8 5.6 6.9-.9 4.5-2.7 5c-2 .4-9.4 3.6-14.3 3.6s7.2.7 10.3 0c3-.7 15.2-3.5 13.8-6.2s-1.5-3.7-3.7-4.4c-2.3-.6-3.4-.3-4.1-1.7-.8-1.3-3.8-7.6-7.8-10.4s-6.6-3.7-7.7-5.2c-1-1.4-3.8-7.8-8-9.5M331 409.3s-4.2 1.5-3.9 3 3.2 4.4 5.2 5.4 4.6.9 4.6.9-10.8-3.5-5.9-9.3"/>
+ <path fill="#3c4544" d="M351.1 396.2c-1.4 7.4 2.5 14.5-6.6 13.1-9.1-1.3-15.9.8-12.4-.3 4-1.4 5.1-1 8.7-2.1s5.2-1.4 10.3-10.7m48.7 7.5c-3-1.4-5.6-3.2-7.5-3-2 .1 2.4-4 6.3-1 4 3.1 2.4 4.6 1.2 4"/>
+ <path fill="#cfdcd9" d="M369.3 389.9c-3 1.4-8.2 2.8-10.7 3.8s-6 4.3-2.1 5c3.9.6 5 2.8 3.3 5.3s-3.5 4.2-2.3 3.8c1.1-.4 1 2.8-.5 4.6s3.5-4.9 9.8-13.8 2.5-8.7 2.5-8.7"/>
+ <path fill="#74948f" d="M369.4 394.6c-.8-4 4.7.6 7 .4 2.4-.2 2 .8-.7 2s-3.9.4-5.2 1.6-.7-1.7-1.1-4"/>
+ <path d="M427.6 415.9a9 9 0 0 0-1.4-3.2 5 5 0 0 0-2.8-1.8l-1.7-.3-1-.2-.6-.3-.3-.5-1.8-3.1q-2-3.1-4.3-5.9a20 20 0 0 0-5.6-4.5l-.8-.3-.8-.4-1.6-1q-1.4-1.5-2.3-3c-1.2-2.2-2.2-4.4-4-6-1.9-1.5-4.4-2-6.7-2.4a39 39 0 0 0-14.4.4 15 15 0 0 0-6.5 3q-3.1 2.3-6.8 2.8t-7.2 1q-1.9.3-3 1.7l-1.9 3-3.5 6.5-2.2 3q-1.3 1.5-3 2.3l-1 .3-1 .2-1.7.3-3.5.8-3.5 1q-1.7.6-3.3 1.4l-1.2 1-.3.6v.6a5 5 0 0 0 2 2.6 12 12 0 0 0 6.3 2.4h3.7q1.9.2 3.7.6a62 62 0 0 1 7.1 1.7l3.5 1.2 1.8.7 1.6.6a12 12 0 0 0 7 .4l3.5-.8a10 10 0 0 1 3.9 0q3.6.9 7 1.5 3.6.6 7-.4 3.4-1.4 7-2.3 3.8-.6 7.5-.2l7.3.3h3.6l1.7-.2 1.8-.4a103 103 0 0 0 10.4-3l1.5-.9q.5-.2.6-.5zm1-.3v.7l-.4.6-.8.7-1.7.9-3.5 1.3-7 1.9q-.9 0-1.9.4l-1.8.2h-3.7q-3.8 0-7.4-.3l-3.6-.1q-1.8 0-3.5.3-3.4 1-6.9 2.3-3.7 1-7.5.5l-7.2-1.5c-2.2-.5-4.5.3-7 .8a15 15 0 0 1-3.7.3 13 13 0 0 1-3.8-.7l-1.7-.7-1.7-.7-3.4-1.1a61 61 0 0 0-7-1.8l-3.6-.4-1.8-.1h-1.8a13 13 0 0 1-7-2.7l-1.5-1.4q-.6-.8-1-1.8V412q.2-.6.6-1 .7-.9 1.6-1.3 1.6-.9 3.4-1.4l3.6-1 3.6-.7 1.8-.3 1-.2.7-.2a8 8 0 0 0 2.8-2l2.2-2.9 3.7-6.3q.8-1.5 2-3.1l.6-.7.8-.5 1.8-.6 3.6-.5 3.6-.5q3.7-.5 6.6-2.7 3-2.4 6.6-3.2a35 35 0 0 1 14.7-.4l3.6.8q1.8.5 3.3 1.7t2.4 2.9l2 3.1q.8 1.5 2 2.8l1.5 1 .8.3.9.4a23 23 0 0 1 5.8 4.6 43 43 0 0 1 4.4 5.9l1.9 3.1.4.5h.8l1.9.4q1.9.4 3.2 2.1 1.2 1.6 1.7 3.5"/>
+ <path fill="#202926" d="M421.7 411.7c-1.9-.2.4.5-3.4-5.6a98 98 0 0 0-19.4-20.6c-5-3.3-6-.9-7.5-1.4-1.6-.5 1.6 1.4 2 2 .2.6-1.4 2.1 2.7 2.9 4.2.7 1.6 1.8.7 3.6-.8 1.8 2.5 2.7 3.7 3 1.1.3 2.3 2.1 1.7 3-.6 1 3 1.2 5 .8s6.2 4.1 7.7 4.7c1.4.5 3.2 2.3 3 3.4 0 1.2-2.2-.8-2.8-1.4-.7-.5-3-.6-4-.8-1.1-.2-1.2 1.6-.6.8s1.2.8 2.8.6c1.6-.1 2 1.2 3.7 2 1.6 1 1 2.7 0 2.4s-2 1-4.2.6-2 0-3.1 0c-1.3-.1-4.3.4-6 1-1.5.8-3.9-.7-5.4-.4s-2.8.8-1.5 1.6c1.4 1 3.3 0 4.4.2 1 .2 3.4.3 4.7 0s6.2-.2 8 .6c1.9.8.3 2 0 2.3-.2.4-3.8-.4-5.3-.8s-4.1 1.4-5.6.8-2.5-.5-4.2.9-4.5-.5-8 .7c-3.3 1.1-7.3.6-7.3.6-2.8.8 8 .5 11.6 1s3.8-1.3 4.1-1.6c.4-.3 2.5-1.4 3.3 0 1 1.3 2.5.4 4.6-.4s2.5 0 3.7.4 5.2-.3 7.8-.6c2.7-.3 1.3.2-1.6 1.4-3 1.3-4 2.2 0 1s11-1.8 10.6-5.3c-.4-2.3-4-3.2-5.9-3.4"/>
+ <path fill="url(#sh-ac-ac-Z)" d="M97 396.3c1.2-.7 1-4.5.7-8.7-.3-4.3-3.2.5-4.2-1.9s-3.4-3.1-3.4 0-6.4 1.5-2.8 5.3 8 6.5 9.8 5.3z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-aa)" d="M20.6 450.5c1.4 3.2-6.3 7.7-7.7 8.2-1.3.5-3.3.6-2.3-1 1-1.4-2.3-1-4.9-.7s-5-.8-3.1-2.2 1-2.2-.7-2.8-.8-2.6 2.4-2.4c3.3.1-.9-2.6 4.1-2.1s-.6-4.5 3-3.3a20 20 0 0 1 9.2 6.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ab)" d="M22.2 449.6s-6.3-5.7-6.5-7.8-.2-4.2 1.1-2.7-.2-1 1.1-3.9c1.3-2.8 2.8-2.4 2.9 0 0 2.4.9 4.3 1.4 3.3s3.9-.8 3.2.6-.4 5.6.1 3.9 1.1-1 .7.9l-1.1 4.4s-1.3 1.6-2.9 1.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ac)" d="M37 450.6s-11.2 4-12.8 6.3c-1.5 2.3-2.7 4.9-.3 3.6 2.5-1.2-.8 1.1-1 5-.1 3.7 2 3.8 3.5 1 1.6-2.7 3.8-4.5 3.8-3.1s4.3 2.5 4.3.6c.1-1.9 2.9-6.7 2.5-4.5s.8 1.6 1.3-.8l1.3-5.4s-.5-2.4-2.7-2.7z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ad)" d="M32.1 448.5s-2.7-2-3.6-4.5c-1-2.5.4-2.5 1.4-1.6 1 1 .8-2.4 1.5-4.6s1.8-2 1.9 0 1.4 7.4 1.7 5c.4-2.3 1.8 1.2 0 3.4-1.6 2.1-2.1 3-2.9 2.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ae)" d="M99.9 399.1s-.4-6.7 2.6-8c3-1.4 2 2 2.8 1.7a22 22 0 0 1 6.3-.8c2.7 0 1.7 2.7.7 3.7s-3.2 3.3-2.2 3c1-.4 3 2-1 2.7-4 .6-7.2.2-9.2-2.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-af)" d="M98 400.3s-5.3-1-9.4-.5-3.1 1.1-.4 1.8c2.7.8 1.3 1.4-1 2.8s-3.6 5 0 3.9c3.7-1 3.4 1.2 3 2.7s-.3 3 1.9 1 10-11 5.8-11.7z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ag)" d="M123.4 400.3s-6.7-2.6-7.4-4.6c-.6-2 5.2 1.1 3.7-1.7s-1.9-7.7 0-5.8c1.8 1.8 3-2 2.8-3.7-.1-1.7 2.3-4 2.8-.9.6 3.2.9 4.8 1.7 3.1.9-1.7 4-1.7 3.3.9s-2.6 4.6-1 3.6 1.7 1.1 0 2.8-1.8 3-3.1 4-1.2 3-2.8 2.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ah)" d="M133.4 392.6c.1-4-.7-5.8-1.9-8.7s.6-6.9 1-5.5c.4 1.3.8-3 2.5-4.4 1.7-1.3 2.7.2 2.5 2.2-.1 2-.1 3.6 1 2.4 1-1.3 3.8-.4 3 1.2-.8 1.5 1.5 4.8 1.7 1.7.2-3.2 2.1-10 3-8 1 2 3.3.3 5-1 1.8-1.2 2.4 1.3 2.1 2.3s-1.6 3.5 0 3 2.7.4 1.6 2a14 14 0 0 1-5.5 4.1c-1.4.3-3.2 2.5 1 2.3 4.1-.2 4.5 3.7 2.3 3.2s.7 2.3 2.7 1.5c2-.9 6.3.6 1.7 2.3s1.8 3.7-4.2 4-13.2 2-16.5 0-3-4.6-3-4.6" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ai)" d="M137.7 403.7c2.6-.2 5.4-4.4 7.6-4 2.2.2 4.4.5 1.7 1.8-2.7 1.2-.7 2.7 2.5 2 3.2-.5 7.6 0 5.6.4s-1.3 1.9.2 1.9 1.8 3.9-.5 2.7-8-.7-6.2.6c1.9 1.3-.1 3-1.8 2s-6.7-4.3-4.7-2.5 1.5 4.8-2.2 1.5c-3.6-3.3-10.7-6-2.2-6.4" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-aj)" d="M150.4 423.6c2.3.7 4.3.7 3-.4-1.3-1 0-1.4 3.3 0 3.4 1.4 2-2.2-1-2.7s.3-1.5 2.7-1.6c2.4 0 .6-1.7-2.1-1-2.8.8-2-2 1-5 3-2.8-.8-1.9-4 1.4-3 3.4-2.1 1.9-2-.6 0-2.5-1.1-2-1.7-.7-.5 1.2-.4 4.2-.9 2.5s-1.3.3-.7 3.4c.1.7-2.7-2.7-2.4-.3.2 2.3-1.1 2.2-1.1 4.7s0 4.4 2.3 3c2.2-1.3 4.6-.7 3.6-2.7" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ak)" d="M163.2 418c1.2-3.6 3.3.1 2.1 1.8s1.4 3 3.7.7 7.1-1.1 4.5 1.3-1 1.5 2 1.4c3 0 7.4.6 5 1.9-2.3 1.2-2.5 1.9.7 2q5 .1 5.5 2c.3 1.6-.8 1.8-2.7 2.2-1.8.4.4 1.6 1 4.2.7 2.7.4 1.8-2.3 1.7-2.7 0-2.7.5-2.5 1.8s-.7 3-2.3 1.1c-1.5-2-3.2-2.3-3.2-1 0 1.4-1.6 4.4-3.2 2.3-1.7-2-3.1.2-3.2.7-.1 1.9-2.4.4-4.2-2-1.9-2.3-2.7-4.5-3.2-2.9s-.4 1.2-1.8-1.7 0-6.2-3.9-7-2.4.4-.8-1.7c1.7-2.2 5.8 0 8.8-8.9z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-al)" d="M140.7 433s5.5 3.6 2.4 5c-3.2 1.4-5.8 3.8-3.2 3.8 2.7 0 6 .3 2.8 2.2s-1.5 6.3 0 5.1c1.5-1.1 1.7.5 1.3 3.4s3.7 6.9 3.7 2.6c0-4.2.5-7 1.5-3.6s6.5 6.6 4.5 2-1.3-7.6.4-5.4c1.7 2.3 5.6 4.8 4.1 1.3s-4-6.3-1.5-5.4 9.7 2.2 4.2-1-6.4-3.9-4.2-3.7c2.2 0 2.6-1.2-1.5-2-4.1-1-1.4-3.7-6-4.3s-10.4-1.6-8.5 0" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#174520" d="M326.8 407.3s-3.2-1.8-2.5-1c.6 1-4.2.5-2.8 1.2 1.4.8.6 1.2 0 1.7s-.3 1.1.7.5 2-.9 2-.3 2.2-1.1 2.6-2.1m2.5-1.8s-1.4-.8-2-2c-.6-1.4.1-1.1.4-.7.2.5 0-1.2 0-2.3.1-1 1-1.3 1-1.3s.3 2.3.6 2.7c.3.3 1.2 2.2 1.4 1.4.3-.8-.5 2.4-.5 2.5zm6 .8-.8-1.7c-.1-.3.5.6.4-.3 0-1 .5-.9.5.1-.1 1 0 .6.4.3s-.4 1.6-.4 1.6zm1.3 2.5s-3.6 1.5-4.8 2.5q-1.9 1.4-.5 1c1-.3-.3.5-.6 1.4-.3 1-1.8 4.3-.9 2.9s3-3.1 4-3.5c.8-.3.4.9.7 0 .4-1 1.6-2.4 2.1-3.1s0-1.2 0-1.2m36.8-30.1s-2.1-.4-3.4-.3c-1.3 0-1.8.4-.6.7s1.9.7 1 1.4c-1 .7-.5 2.7.3 1.8s2.1 0 2.7-3.6m-.9-4s.5-3.6 0-3c-.4.5-2.5-1.9-2.5-1.2s-1.2 1.4-1 2a10 10 0 0 0 2.4 2.2c1 .6 1.1 0 1.1 0m2.3 3s1.2-4.2 1.3-3.6q0 .9.8.6c.6 0-.2.8.5.5s5-1.8 2.9-.7c-2.2 1.1-3.4 2.3-2.2 2.2 1.2-.2 1 1.5 1.6 1.5s-2.6 1.8-4.9-.6zm13.7.7s-1.4-1.4-1.3-2.5.9-1 .7-2 .2-1.5.3-2.9.5-.5.6.6c0 1 1 1.2.8 2-.2.7 2 1.6-1.1 4.8m6.4-4s0-3.5-.5-4.6.4-.8.5-.6 0-3.2.5-1.5 1.5.4 1.4 1.3.5 1.6 1.2 1c.8-.4 1.3-1.7 3.6-2.8s3-.6 2.3 0-3.7 2.7-3.4 3.5 3.3 0 2.2 1.2c-1 1.3-4.8 1-2.6 1.1s.2 1.6-1 1.4c-1-.3-3.4.7-2.3 1.2 1 .4 1.1 2-.3 1.3-1.4-.8-2-.8-1.6-2.5m3.4 6.4s1.5-1.3 1.4-.8c0 .4-1.4 1 0 .9q2.4 0 4 .5c.7.2-1.2.3-.5.4s-3 0-2.1.7-4.4-1.2-3.3.3c1 1.6-3.7-1.8.5-2m2.6 17.6s.7 1.1 0 1.9-1.4.8-.4 1 2.2-1 1.7.3-1 2.8.1 1.4c1-1.5-.2 3 .5 1.7s.7 4 1 2 1.8-2.7.7-3.7c-1-1 1.5-1 .5-1.6s-.2-1.8-.8-1.7-2.7-2.2-3.3-1.3m8.3-4.8s2.3-1.5 2-1 3-.9 2-.2 4.6.6 3 1c-1.6.2 5.2 1 3.4 1.1-1.7.2 2.9 1.4 1.5 1.6q-2.1-.1-1.4 1.2c.3 1-1.3 1.3-2.5.2-1.3-1-1.5 1.7-2-.2-.3-1.9-1.6 1-2-.5-.4-1.6-1.7.7-1.8-.6 0-1.3-1.5 0-1 1.3.6 1.5-1.1-1.5-1.2-3.9m-7.6-.6s.5-2.7 1.7-3.6 2.1-.6 1.6-.2-.5 1.2 0 1.2.5.7-.7.7c-1.3 0-2.4 1-1.6 1 .8.2.2.8-1 1z" opacity=".2"/>
+ <g stroke="#174520" stroke-miterlimit="10">
+ <path fill="none" stroke-width=".3" d="M373 376c.5-.4.4-2.6.3-5.1s-1.9.3-2.4-1c-.6-1.5-2-2-2 0 0 1.7-3.8.8-1.7 3s4.7 3.8 5.7 3zm-44.6 31.5c.9 1.9-3.6 4.5-4.4 4.8s-2 .3-1.4-.6-1.3-.6-2.8-.4c-1.6.2-3-.5-1.9-1.3s.6-1.3-.3-1.6c-1-.4-.5-1.6 1.4-1.4 1.9 0-.5-1.5 2.4-1.3 2.9.3-.4-2.6 1.7-1.9 2.5.8 5 2.9 5.3 3.7zm1-.5s-3.7-3.3-3.8-4.6c-.2-1.2-.1-2.4.6-1.5.8.8 0-.6.7-2.3s1.6-1.4 1.6 0 .6 2.5.9 2c.3-.7 2.2-.6 1.9.3s-.3 3.2 0 2.2.6-.5.4.6l-.7 2.5s-.7 1-1.6.8zm8.5.5s-6.4 2.4-7.4 3.7-1.6 2.8-.1 2.1c1.4-.7-.5.7-.6 2.9s1.1 2.2 2 .6c1-1.6 2.2-2.6 2.2-1.8s2.5 1.4 2.5.3 1.7-3.8 1.5-2.5.4.8.7-.5l.8-3.2s-.3-1.4-1.6-1.6zm-2.8-1.2s-1.5-1.1-2-2.6c-.6-1.4.1-1.5.7-1s.5-1.3.9-2.6q.8-1.8 1.1 0c0 1.2.8 4.3 1 3 .2-1.4 1 .6 0 1.9s-1.2 1.7-1.7 1.3zm39.4-28.7s-.2-4 1.6-4.7c1.7-.8 1.2 1.2 1.6 1s2-.4 3.6-.4 1 1.5.5 2.1-1.9 2-1.3 1.7c.6-.2 1.7 1.3-.6 1.6q-3.5.8-5.4-1.3zm-1.1.7s-3-.6-5.4-.3-1.8.7-.2 1c1.5.5.7.9-.6 1.7s-2.1 2.8 0 2.2 2 .7 1.7 1.6c-.2.9-.2 1.8 1 .6 1.3-1.2 6-6.4 3.5-6.8zm14.8 0s-3.9-1.5-4.3-2.7 3 .7 2.2-1c-.9-1.6-1.1-4.4 0-3.4 1 1.1 1.7-1.1 1.6-2 0-1 1.4-2.5 1.7-.6s.5 2.8 1 1.8 2.3-1 1.8.5-1.5 2.7-.5 2.1 1 .6 0 1.6-1 1.7-1.9 2.3c-.7.6-.7 1.8-1.6 1.4zm5.8-4.5c.1-2.3-.4-3.3-1-5s.3-4 .5-3.3.5-1.7 1.5-2.5 1.5.1 1.4 1.3c0 1.1 0 2 .6 1.4.6-.8 2.2-.3 1.7.6-.4 1 1 2.9 1 1 .1-1.8 1.3-5.8 1.8-4.6s1.9.2 3-.5c1-.8 1.3.7 1.1 1.3s-.9 2 0 1.7q1.7-.4 1 1.1a8 8 0 0 1-3.3 2.5c-.7.1-1.8 1.4.6 1.3s2.6 2.2 1.4 1.8c-1.3-.3.4 1.4 1.5.9s3.7.4 1 1.3c-2.6 1 1.1 2.2-2.4 2.4s-7.7 1.2-9.6 0c-2-1.1-1.8-2.7-1.8-2.7zm2.5 6.4c1.6 0 3.2-2.5 4.5-2.3s2.5.3 1 1c-1.6.8-.5 1.7 1.4 1.3s4.4-.1 3.3.2-.8 1 0 1c1 0 1.1 2.4-.2 1.7s-4.7-.5-3.6.3c1 .7-.1 1.8-1 1.2s-4-2.5-2.8-1.5.9 2.8-1.3.9c-2-2-6.2-3.5-1.3-3.8zm7.4 11.6c1.4.5 2.5.5 1.8-.2q-1.1-1 2 0c1.9.8 1-1.3-.7-1.5-1.7-.3.2-1 1.6-1s.3-1-1.3-.6-1-1.2.7-2.8c1.7-1.7-.5-1.2-2.3.8-1.9 1.9-1.3 1-1.3-.4 0-1.5-.6-1.2-1-.4-.2.7-.2 2.4-.5 1.4s-.7.2-.4 2c.1.4-1.5-1.5-1.4-.2s-.6 1.3-.6 2.8 0 2.5 1.3 1.7c1.3-.7 2.7-.4 2.1-1.6z"/>
+ <path fill="none" stroke-width=".3" d="M411.4 388.5c.7-2 1.9.2 1.2 1.1s.8 1.8 2.2.5c1.3-1.4 4.1-.7 2.6.7-1.6 1.4-.6.9 1.1.8s4.3.4 3 1.1q-2.2 1 .3 1.2 2.9 0 3.2 1.2c.2.9-.4 1-1.5 1.2-1 .2.2 1 .6 2.5s.2 1-1.4 1-1.5.2-1.4 1c0 .8-.5 1.8-1.4.7s-1.8-1.4-1.8-.6-1 2.5-2 1.3-1.7.1-1.7.4c-.1 1.1-1.4.2-2.5-1.1s-1.6-2.7-1.9-1.7-.2.7-1-1 0-3.7-2.3-4.1-1.4.2-.4-1c1-1.3 3.3 0 5-5.2zm-13.1 8.8s3.2 2.1 1.4 3c-1.9.7-3.4 2.1-1.9 2.1 1.6 0 3.5.2 1.6 1.3s-.8 3.6 0 3c1-.7 1 .3.8 2s2.2 4 2.2 1.5.2-4 .8-2.1c.6 2 3.8 3.8 2.6 1.1s-.7-4.4.3-3c1 1.2 3.2 2.7 2.4.6-1-2-2.3-3.6-.9-3 1.4.4 5.6 1.2 2.4-.7s-3.7-2.2-2.4-2.2c1.3.1 1.5-.6-.9-1.1s-.8-2.1-3.5-2.5-6-1-5 0z"/>
+ <g stroke-width=".5">
+ <path fill="url(#sh-ac-ac-am)" d="M91.9 386.6c-.2-.6-.3.1-.3.1 2.3 7 5.9 13.2 9 19.9.7 1.7 2.7 7.3 3.6 9l1.2 2.4 2.3-4.4-4.6-8c-3.4-6.5-11-18.5-11.2-19z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-an)" d="M175.4 430a57 57 0 0 0-28.6-2.8s.5-2.6 2.4-5.2 2-3.4 0-1.7c-2 1.8-4.7 7.3-4.7 7.3h.1c-12 2.4-19.3 8-19.3 8l1.4 2.6s.4-2.2 10.5-5.5c12.1 1.3 12.6 7.2 12.5 10.8s1.2 7.3 1.2-1.6-10.6-10-10.7-10.1l5-1.4c20-5.1 43 4.3 30.2-.3zm-38.1 2.7 2.8-.9z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-ao)" d="m124.8 409 .5-.4c3-2.6 11.4-2.6 14.4-3 3.3-.3 9.8-.3 4.3-.8a46 46 0 0 0-16.1.8v.1l5-6c4.6-5.8 12.9-17 13.4-18 .4-.8-.5-.3-.5-.3q-7.3 8.4-14.8 16.3l-5.6 5.8q.2-.2.5-6.1c.2-4.3-2.8-10.3-1.8-5.8 1 4.4-.1 13.2-1.4 14.5a69 69 0 0 1-7.5 6.3q-2.2 1.6-4.3 2.4l1.5 3.9q2.9-1.3 5.2-3 3.9-3 7-6.4v.1zm-1.4-3.5-.4.3 1-.9z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-Y)" d="M24.8 449.4s-2.5-4-3.3-6-2-3-1 .5c1.2 3.5 2.8 5.6 2.8 5.6h.3c-9.7.8-13 2-14.6 2.5s-1.8.8 4.4 0 29.9-1.3 33.6-.8l1-2.3c-5 .2-20.1.2-23.4.5z" transform="translate(316.5 145.5)scale(.58162)"/>
+ </g>
+ </g>
+ <path fill="url(#sh-ac-ac-X)" d="M413.4 400.2c-1.2-.4-2.2-4-3.1-8.2-1-4.2 3.1-.5 3.4-3 .2-2.6 2.3-4 3.3-1s6.5-.5 4.2 4.2-5.7 8.5-7.8 8" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-W)" d="M346 430.5c.4 3.5-8.3 5.6-9.7 5.7-1.5 0-3.4-.5-2-1.7s-1.9-1.6-4.5-2c-2.6-.5-4.5-2.4-2.3-3.2 2.2-.7 1.6-1.7.2-2.8s0-2.7 3-1.6 0-2.7 4.5-.8c4.7 2 .7-4.5 3.9-2.3a19 19 0 0 1 6.9 8.7" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-V)" d="M347.8 430.1s-4.3-7.2-4-9.3c.4-2 1.1-4.1 1.9-2.3s.1-1 2.2-3.4c2-2.3 3.3-1.5 2.7.8-.6 2.4-.4 4.4.4 3.6s4 .4 3 1.5-2.1 5.3-1.1 3.8 1.3-.6.3 1l-2.3 3.9s-1.6 1.2-3.1.4" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-U)" d="M361.6 435.4s-11.8.6-14 2.3c-2.2 1.8-4 3.9-1.3 3.4s-1.2.8-2.4 4.4c-1.3 3.6.7 4.3 3 2.1s5-3.3 4.5-2 3.4 3.7 4 2c.6-1.9 4.7-5.7 3.6-3.6-1 2 .3 1.6 1.6-.4l2.8-4.9s.2-2.4-1.8-3.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-T)" d="M357.6 432s-2-2.7-2.2-5.4 1.1-2.3 1.8-1.1 1.5-2.1 2.8-4 2.3-1.4 1.8.6-.8 7.5.2 5.3c1-2.1 1.4 1.6-.9 3.2s-3 2.2-3.5 1.4" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-R)" d="M411.6 403.7s-1.7-6.6-5-7-1.3 2.6-2.1 2.5c-.8 0-3.6.3-6.2 1.1s-.9 3.1.4 3.7c1.2.6 4 2.3 3 2.2s-2.3 3 1.7 2.3c4-.6 7-1.9 8.2-4.8" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-Q)" d="M413.8 404.2s4.6-2.6 8.8-3.2c4-.7 3.3.1.9 1.6s-1 1.7 1.6 2.3c2.6.7 5 3.7 1.2 3.8s-2.8 2-2 3.4 1.2 2.8-1.5 1.5c-2.6-1.2-12.8-7.6-9-9.4" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-P)" d="M383.4 401.2s6.7-2.6 7.4-4.6c.6-2-5.2 1.1-3.7-1.7s1.9-7.7 0-5.9c-1.8 1.9-3-2-2.8-3.6.1-1.7-2.3-4-2.9-.9-.5 3.2-.8 4.8-1.6 3.1s-4-1.7-3.3.9 2.6 4.6 1 3.6-1.8 1.1 0 2.8c1.6 1.7 1.8 3 3.1 4s1.2 3 2.8 2.3" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-O)" d="M373.4 393.5c-.1-4 .7-5.8 1.9-8.7 1.1-3-.6-6.9-1-5.6s-.8-3-2.5-4.3-2.7.2-2.5 2.2c.1 2 .1 3.6-1 2.4-1-1.3-3.8-.4-3 1.1.8 1.6-1.5 5-1.7 1.8s-2.1-10-3-8c-1 2-3.3.3-5-1-1.8-1.2-2.4 1.3-2.1 2.3s1.5 3.5-.1 3-2.6.4-1.5 2c1.2 1.5 4.2 3.9 5.5 4.1 1.4.3 3.2 2.5-1 2.3-4.1-.2-4.5 3.7-2.3 3.2s-.7 2.3-2.7 1.5c-2-1-6.3.6-1.7 2.3s-1.9 3.7 4.1 4 13.3 2 16.6 0 3-4.6 3-4.6" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-N)" d="M369.1 404.5c-2.7 0-5.4-4.3-7.6-4s-4.4.6-1.7 1.8.7 2.8-2.5 2.2-7.6-.2-5.6.3 1.3 1.9-.2 1.9-1.8 3.9.5 2.7 8-.7 6.2.6c-1.9 1.3.1 3 1.8 2s6.7-4.3 4.7-2.6c-2 1.8-1.5 4.9 2.1 1.6 3.7-3.3 10.8-6 2.3-6.5" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-M)" d="M487.2 446.1c1.9.2 3.4-.2 2.2-.8q-1.7-1 2.6-.6c2.8.5 1-2-1.3-1.9-2.4.2 0-1.2 1.8-1.6s.2-1.5-1.8-.4c-2 1-1.8-1.3 0-4 1.7-2.8-1-1.4-2.9 1.7s-1.3 1.8-1.7-.1-1.2-1.4-1.4-.3.4 3.3-.2 2.1-1 .5 0 2.8c.3.5-2.5-1.6-1.9.1s-.4 2 0 3.9.8 3.3 2.3 1.9c1.5-1.5 3.4-1.4 2.3-2.8" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-b)" d="M496 439.5c.3-2.9 2.5-.4 2 1.1s1.5 2.1 3-.1c1.3-2.2 5.2-2.1 3.6.2s-.5 1.3 1.8.7 5.7-.8 4.1.6c-1.5 1.3-1.6 1.9.9 1.4s4-.5 4.6.6c.5 1-.4 1.5-1.7 2-1.3.7.5 1.2 1.5 3.1s.6 1.4-1.5 1.8c-2 .4-2 .8-1.6 1.8s0 2.5-1.5 1.2c-1.6-1.2-2.9-1.2-2.7-.2.3 1-.4 3.6-2 2.4s-2.4.6-2.3 1c.2 1.5-1.8.8-3.6-.7s-2.9-3-3-1.7c0 1.4 0 1-1.6-1-1.5-2-1.2-4.8-4.3-4.7s-1.7.8-.8-1.1 4.4-1 5-8.4z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-K)" d="M481.4 455s4.9 1.8 2.7 3.4c-2.1 1.7-3.7 4-1.7 3.5s4.7-.8 2.5 1.2c-2.1 2 0 5 1 4 .9-1.2 1.3 0 1.5 2.3.3 2.2 4 4.6 3.3 1.3s-.9-5.4.5-3 6.2 4 3.8.7c-2.3-3.2-2.3-5.6-.6-4.2 1.7 1.5 5 2.7 3.3.3s-4.1-4.1-2-3.9c2 .3 7.7 0 3-1.5s-5.6-1.8-3.9-2.1 1.8-1.3-1.5-1.3-1.7-2.5-5.4-2.2c-3.6.4-8.2.7-6.5 1.5" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#174520" d="M516.2 395.2s-2.5-2.6-2.2-1.6c.4 1-4-.8-3 .3 1.2 1.1.3 1.2-.5 1.6-.8.3-.5 1 .6.7s2.2-.3 2 .3c-.1.6 2.4-.5 3.1-1.3m3-1s-1.2-1.2-1.4-2.6.4-1 .5-.4.4-1.1.8-2.2c.4-1 1.2-1 1.2-1s-.3 2.3-.1 2.7.4 2.5 1 1.8l-1.3 2.3zm5.5 2.5-.3-1.8c-.1-.3.2.7.5-.2.2-1 .7-.7.3.2-.3 1 0 .6.4.4s-1 1.4-1 1.4zm.4 2.8s-3.9.4-5.3 1q-2.2.9-.7.8c1.5-.1-.5.4-1 1.2s-3 3.5-1.8 2.5c1.3-1.1 3.8-2.1 4.8-2.2 1 0 .2 1 .8.2s2.2-1.8 3-2.4c.6-.5.2-1 .2-1zm32.1-18.6s2-1 3.2-1.2c1.2-.4 1.8-.2.8.4s-1.6 1.2-.5 1.7 1.2 2.4.2 1.8-2 .6-3.7-2.7m-.3-4s-1.5-3.3-1-3c.7.4 2-2.4 2.2-1.8s1.6 1 1.5 1.6-1 2-1.7 2.8c-.6.9-1 .3-1 .3zm-1.3 3.4s-2.4-3.6-2.3-3c.2.8 0 .7-.6.9-.6.1.4.7-.3.6s-5.4-.2-3 .2 4 1.2 2.8 1.4-.5 1.8-1.2 2c-.6 0 3 .8 4.6-2zm-16.4-1.4s1.3-1.4 1.2-2.5c0-1.1-.8-.9-.6-2 .2-1-.3-1.5-.3-2.8 0-1.4-.6-.6-.6.5s-1 1.2-.8 2c.2.7-2 1.6 1 4.8zm-6.4-4s-.1-3.4.5-4.5-.4-1-.5-.7 0-3.2-.5-1.5-1.6.5-1.4 1.3c.1.8-.6 1.6-1.3 1.1s-1.2-1.8-3.5-2.8-3-.7-2.3-.1 3.6 2.7 3.4 3.5-3.3 0-2.3 1.2c1 1.3 4.8 1 2.6 1.2s-.2 1.5 1 1.3c1.1-.3 3.4.7 2.4 1.2s-1.1 2 .2 1.3c1.4-.8 2-.8 1.7-2.5m-3.5 6.4s-1.5-1.3-1.4-.8 1.5 1 0 .9c-1.4-.1-3 .3-3.9.5s1.2.3.5.4 2.9 0 2 .7c-.7.7 4.5-1.2 3.4.3-1 1.6 3.7-1.8-.6-2m69.3 29.2s.8.7.4 1.4c-.4.8-1 1-.1.9s1.5-1.2 1.3 0-.2 2.2.3 1 .4 2.4.7 1.2 1.3 2.9 1.2 1.3.9-2.3-.2-3c-1-.6 1-1 .1-1.2-1-.4-.5-1.4-1-1.1-.3.2-2.3-1.3-2.7-.5m5.6-5.1s1.4-1.6 1.3-1.2 2.2-1.2 1.5-.5 3.7-.3 2.5.2 4-.1 2.8.3 2.4.6 1.4 1c-1 .3-1.3.4-.9 1.1s-.7 1.2-1.8.7-1 1.5-1.5.1-1.1 1.1-1.7 0-1.2.8-1.5-.1-1.2.2-.5 1.2-1.2-1-1.6-2.8m-6 .9s0-2.2.7-3.1c.8-.9 1.5-.8 1.2-.5q-.5.8.2 1 1 .3-.4.6c-1 .3-1.7 1.2-1 1.1q.8.1-.7.9" opacity=".2"/>
+ <g stroke="#174520" stroke-miterlimit="10">
+ <g fill="none" stroke-width=".3">
+ <path d="M556.9 378.2c-.7-.2-1.3-2.3-1.8-4.8-.6-2.4 1.8-.2 2-1.7 0-1.5 1.3-2.3 1.9-.6s3.8-.3 2.4 2.5-3.3 5-4.5 4.6zM517.7 396c.2 2-4.8 3.2-5.7 3.2-.8.1-2-.2-1.1-.9s-1.1-1-2.6-1.2c-1.5-.3-2.6-1.4-1.4-1.8s1-1 .1-1.7 0-1.6 1.8-1 0-1.5 2.6-.4c2.7 1.2.4-2.6 2.3-1.3 2.1 1.5 3.8 4.2 4 5zm1-.3s-2.5-4.2-2.3-5.4.7-2.4 1.1-1.3 0-.6 1.3-2c1.2-1.4 2-.9 1.6.5s-.2 2.5.2 2 2.3.3 1.7 1-1.2 3-.6 2.1.8-.3.2.6l-1.3 2.3s-1 .7-1.9.2zm8 3s-6.8.4-8 1.4-2.4 2.3-.9 2c1.6-.3-.6.5-1.3 2.6-.8 2 .4 2.5 1.7 1.2s2.9-1.9 2.6-1.1 2 2 2.4 1 2.7-3.2 2-2c-.5 1.2.3 1 1-.2l1.6-2.9s.1-1.4-1-2zm-2.3-1.9s-1.1-1.6-1.2-3.1c-.1-1.6.6-1.4 1-.7s.9-1.2 1.6-2.3 1.4-.8 1 .4c-.2 1.1-.4 4.3.2 3s.8 1-.5 2q-1.8 1.3-2 .7zm31.4-16.5s-1-3.8-2.8-4c-2-.2-.8 1.5-1.3 1.5s-2 .1-3.6.6c-1.5.5-.5 1.8.2 2.2.7.3 2.4 1.3 1.8 1.2-.6 0-1.3 1.7 1 1.4q3.5-.4 4.7-2.9zm1.3.4s2.7-1.5 5.1-2c2.4-.3 2 .2.5 1-1.4 1-.5 1 1 1.4s3 2.1.7 2.2c-2.2 0-1.6 1.2-1.2 2 .5.7.7 1.6-.8.8-1.5-.7-7.5-4.4-5.3-5.4zm-17.6-1.8s3.8-1.5 4.2-2.7c.4-1.1-3 .7-2.1-1s1-4.4 0-3.4-1.8-1.1-1.7-2c.1-1-1.3-2.4-1.6-.6-.3 1.9-.5 2.8-1 1.8s-2.3-1-1.9.5c.5 1.5 1.5 2.7.6 2.1s-1 .7 0 1.6 1 1.7 1.8 2.4.7 1.7 1.7 1.3zm-5.9-4.4c0-2.4.4-3.4 1.1-5.1s-.3-4-.5-3.3-.5-1.7-1.5-2.5-1.6.1-1.5 1.3.1 2-.5 1.4-2.2-.3-1.8.7-.9 2.8-1 1c0-1.9-1.2-5.8-1.8-4.7-.5 1.2-1.8.2-2.9-.5s-1.3.7-1.2 1.3 1 2 0 1.7q-1.6-.4-.9 1.2a8 8 0 0 0 3.2 2.4c.8.1 1.9 1.4-.5 1.3-2.5-.1-2.7 2.2-1.4 1.9s-.4 1.3-1.6.8c-1.1-.5-3.6.4-1 1.4 2.7 1-1 2.1 2.4 2.3 3.5.1 7.8 1.2 9.7 0 2-1.1 1.7-2.6 1.7-2.6zm-2.5 6.4c-1.5-.1-3.1-2.6-4.4-2.4s-2.6.3-1 1c1.6.8.4 1.7-1.4 1.3-1.9-.3-4.5 0-3.3.2 1.1.3.8 1.1-.1 1.1s-1 2.3.3 1.6 4.7-.4 3.6.3c-1.1.8 0 1.8 1 1.2 1-.5 4-2.5 2.8-1.5s-1 2.8 1.2 1c2.2-2 6.2-3.6 1.3-3.8zm68.7 24.1c1.1 0 2-.2 1.3-.5q-1-.6 1.5-.4c1.6.3.6-1.2-.7-1-1.4 0 0-.8 1-1 1-.3.1-.9-1-.3s-1.1-.7 0-2.3c1-1.6-.6-.8-1.7 1-1 1.8-.8 1-1 0-.3-1.2-.7-.8-.8-.2s.2 2-.2 1.2c-.4-.7-.5.3 0 1.6.2.3-1.4-.9-1 .1s-.3 1.1 0 2.2.4 2 1.3 1.1 2-.8 1.3-1.6z"/>
+ <path d="M605 401.1c0-1.7 1.4-.2 1 .6s1 1.3 1.8 0 3-1.3 2.1 0c-1 1.4-.3.8 1 .5s3.4-.5 2.5.3q-1.6 1.2.5.9 2.1-.5 2.6.3t-1 1.2c-.7.4.4.7 1 1.8s.3.8-.9 1-1.1.5-1 1c.3.6 0 1.5-.8.8q-1.6-1-1.6-.1c.2.6-.2 2-1.2 1.3s-1.3.4-1.3.7c.1.8-1 .4-2.1-.5-1-.9-1.7-1.7-1.7-1 0 .8 0 .6-1-.5-.8-1.2-.6-2.8-2.4-2.8-1.8.1-1 .5-.6-.6s2.6-.6 3-4.9zm-8.5 9s2.8 1 1.5 2-2.1 2.3-1 2 2.7-.4 1.5.7 0 3 .5 2.3q.8-.9 1 1.4c.1 1.3 2.3 2.7 1.9.8-.5-2-.5-3.2.3-1.8.7 1.4 3.5 2.3 2.2.4-1.4-1.8-1.4-3.2-.4-2.4s3 1.5 2 .1-2.5-2.4-1.3-2.2 4.6 0 1.8-1q-4-1-2.3-1.1c1-.2 1-.8-.8-.8-2 0-1-1.5-3.2-1.2-2 .2-4.8.3-3.7.8z"/>
+ </g>
+ <path fill="url(#sh-ac-ac-J)" stroke-width=".5" d="M415.5 389.3c0-.6.3 0 .3 0-.1 7.4-1.7 14.4-2.7 21.7-.2 1.8-.4 7.7-.8 9.6l-.5 2.7-3.5-3.4 2-9.1c1.4-7.2 5.1-20.9 5.2-21.5z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-I)" stroke-width=".4" d="M507.4 446.7c-9-1.1-16.5.4-22.3 2.8 0 0 0-2 .9-4.4q1.6-3.6-.3-1.3c-1.2 1.7-2.3 6.4-2.3 6.4-8.6 4-13.3 9.5-13.3 9.5l1.5 1.8s0-1.7 7.1-6c9.5-1.2 10.9 3.3 11.5 6s2.2 5.4.6-1.4c-1.5-6.8-9.9-5.9-10-5.9l3.6-1.9c14.4-7.5 33.6-4.4 23-5.6zm-28.6 8.7 2-1.1z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <g stroke-width=".5">
+ <path fill="url(#sh-ac-ac-H)" d="m382.3 410.3-.1-.1q3.1 3.4 7 6.4 2.3 1.7 5.2 3l1.5-3.9q-2.3-.8-4.3-2.4-4-2.8-7.6-6.3c-1.2-1.3-2.4-10-1.4-14.5 1.1-4.5-2 1.5-1.8 5.8q.4 5.9.6 6.1l-5.6-5.8q-7.6-8-14.8-16.3s-1-.5-.5.4 8.8 12 13.4 17.8l5 6.1a46 46 0 0 0-16.1-.9c-5.5.5 1 .5 4.3.8 3 .4 11.3.4 14.4 3l.4.4zm.5-4.5 1 .9-.4-.3z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-C)" d="M362.2 433.6h-.1z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-B)" d="M350.3 430.7s-1.2-4.6-1.3-6.8c-.2-2.1-1.2-3.4-1.1.3s1 6.2 1 6.2h.2c-9.5-2-12.9-1.9-14.6-1.8-1.8 0-2 .2 4.2 1.2s27.3 6.8 30.7 8.4l1.6-1.9c-4.8-1.2-17.6-5-20.9-5.7z" transform="translate(316.5 145.5)scale(.58162)"/>
+ </g>
+ </g>
+ <path fill="url(#sh-ac-ac-bx)" d="M504.8 392.7c-1.6 14.4.8 27-1.8 33.8-2.5 6.9-10.4 2.7-14.6-1.4l-18-17.5a196 196 0 0 1-15.2-15.8c-2.4-3.5-8.6-10.9-14.2-18.3q-3.3-4.3-6-8.4c-6.2-9.4-8.8-17.7-11.4-21.5s-5.2-4.7-8.8-13-1-18.3-1.5-20.2c-.2-1-1.2-3.4-2.2-10-1-7.3-2-19.8-1.5-41 0-4.1 8-16.2 12.3-18l4.3-1.6a15 15 0 0 1 12.3.6c6.5 3.4 22.1 19.6 27.2 26.3a217 217 0 0 1 26.2 49.2c8.2 22.6 11 37.9 11 48-.1 10 3.5 14.4 2 28.8z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-S)" d="M439.6 393.6c.3-7.5 1.1-14.5 1.4-20 5.6 7.3 11.8 14.7 14.2 18.2 1.6 2.3 8.3 9 15.3 15.8 3 8.9-1 16 1.6 20.1a37 37 0 0 1 4.2 17c-.3 4.7 3 7.4 3 9-.1 1.5-.2 8.6-4 8.5-3.8-.2-11-3.8-13.8-6.6A64 64 0 0 1 452 441l-5.6-10.4a73 73 0 0 1-6.8-37" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-L)" d="M452 441c.5 1-7.6 6-9.5 7.5s-3.5 3.3-4.9 1.3c-1.3-2-6.7-7.5-8.5-25-1.8-17.4 3.3-37.6 3.3-37.6l7.2 6.4a73 73 0 0 0 6.8 37z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#e6c7ac" d="M573 362.7q-.5 5-.9 11.7l-4.2-3.7c-27.7-25.5-27.2-46.5-26.8-52.3 1.4 1 3 3 5.2 4 4 1.9 9.6.3 9.3-2.2.5 3.9 1.1 5.3 1.2 5.8.3 1-1.2 6.9.9 11.7 2.1 4.9 3.6 5.4 5.1 7.6s3 7 6.7 12.5l3.5 5z"/>
+ <path fill="url(#sh-ac-ac-e)" d="M381 199c-1.8-1.4-3.3-2.3-2.3-2.8 0 0 10.8-8 19.8-3.2s23 14.8 23 24.5a45 45 0 0 0 4.7 22.3l-4.3 1.7c-4.4 1.7-12.2 13.8-12.3 17.8-.5 21.3.4 33.8 1.5 41.1.5 4.3-9.2 7-16 3.7-3.6-1.8-6.5-5-8.8-6.8q-2.5-2.3-4-1.1-.8.7-1.1 1.5c-1.2 2.2-6.5 18.4-7.8 23-1.4 4.6 1.5 6.1 1.3 9.6s2.5 6.7 0 14.3-8.8 9.2-10.5 6.8a259 259 0 0 1-12.5-21c-1.8-4 .7-15.2.5-21.3s2-22.7 5.2-24.5c3.2-1.7 6.1-8.6 13.5-15.2 7.4-6.7 12.2-5.8 12.9-8.3.6-2.6 5.9-3.3 5.9-3.3s.2-1.3 3.7-3.2l2.2-3.4c-1.4-4.4.7-12.8.7-12.8-4-4-12.6-13.6-13-18.3-.5-6.5-5-19.6-2.3-21zm18.9 5.8c.3-2.4.4-3.4-1.3-4.6-2-1.5-4.2-1.2-5.5-1-1.4.3 0 2.4 1.7 4.1s4.9 2.8 5 1.5z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#f0ceb8" d="M548.3 261.9c1 .7.9 1.3.7 2.7 0 .8-2 .1-3-.9s-1.7-2.2-.9-2.3c.8-.2 2-.4 3.2.5m-1.8 1.2q.4-.2.3-.6t-.6-.3q-.4 0-.4.6.2.3.7.3"/>
+ <path fill="#f0ceb8" d="M546.8 262.5q0 .4-.3.6-.5 0-.7-.3 0-.4.4-.6.4 0 .6.3"/>
+ <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3">
+ <path d="M545.6 275s-2.2-3.9-3.1-4.7c-.9-.7-1.6-4-1.7-5-.2-1.9-1.6-3.2-2.7-4-1.1-.9-2-1.4-1.4-1.7 0 0 6.3-4.6 11.5-1.9 5.3 2.8 13.4 8.6 13.5 14.3-.3 8 2.6 13 2.6 13"/>
+ <path d="m548 285.3-1-1.1c-2.3-2.4-7.4-8-7.6-10.7-.3-3.8-3-11.4-1.3-12.3m8.9 23s-1.3 4.8-.5 7.4l-1.2 2m8.1 0s-3.3-2.4-7.4-.4l-.7.3c-2 1.2-2.2 2-2.2 2s-3 .3-3.4 1.8-3.2 1-7.5 4.8c-4.3 4-6 8-7.9 9s-3.1 10.6-3 14.1c0 3.6-1.3 10-.3 12.4a131 131 0 0 0 7.3 12.2c1 1.4 4.6.5 6-4 1.5-4.3 0-6.2 0-8.2.2-2-1.5-3-.7-5.6.8-2.7 3.9-12 4.6-13.4l.6-.9c1-1.2 3-2.6 4.4-3.2 1.7-.8 8.1-5.4 8.1-5.4m4.3 11c-.7-4.2-1.2-11.4-1-23.8.1-2.4 4.7-9.4 7.2-10.4l2.5-1c2.1-.6 4.5-1 7.2.4 3.8 2 12.9 11.4 15.8 15.3s10.4 15.4 15.2 28.6c4.8 13.1 6.4 22 6.4 27.9s2.1 8.4 1.2 16.8.4 15.6-1 19.6c-1.6 4-6.1 1.6-8.6-.8l-10.4-10.1c-4-4-8-8-8.9-9.3-1.4-2-5-6.3-8.2-10.6l-3.5-4.9c-3.6-5.4-5.2-10.3-6.7-12.5s-3-2.7-5.1-7.6-.6-10.6-.9-11.7c0-.5-.7-2-1.2-5.8z"/>
+ <path d="M541.1 318.4c1.4 1 3 3 5.2 4 4 1.9 9.6.3 9.3-2.2m-16.8-2.5q1-.6 2.3.7m0 0c-.4 5.8-.9 26.8 26.8 52.3l4.2 3.7.2.1"/>
+ <path d="M573 362.7q-.5 5-.9 11.7c-.2 6.9.3 14.6 4 21.5l3.2 6c3.5 6.2 4.7 7.7 5.6 8.6 1.6 1.6 5.8 3.7 8 3.8s2.2-4 2.3-5-1.9-2.4-1.7-5.2a22 22 0 0 0-2.5-9.9c-1.4-2.4.8-6.5-1-11.6m-41.7-120.7c1 .7.9 1.3.7 2.7 0 .8-2 .1-3-.9s-1.7-2.2-.9-2.3c.8-.2 2-.4 3.2.5"/>
+ <path d="M546.8 262.5q0 .4-.3.6-.5 0-.7-.3 0-.4.4-.6.4 0 .6.3m21.1 108.2s-2.9 11.7-1.9 21.9 4.2 13.4 5 14.5 1.7 0 2.8-.8 5.8-3.7 5.5-4.3q0 0 0 0"/>
+ </g>
+ <path fill="url(#sh-ac-ac-g)" d="m409.8 273 5.3 29.3 1.9 14.6s1 9 4 13.5c3.1 4.5 7 10.3 11.3 18.8s7.5 15.3 24.1 34.8c16.7 19.6 26.6 30 26.6 30s14.2 14.3 17.7 15c1.2.5-1.5 1.4-2.7 1.3-1.2-.2-4.2-1-5.7-2.1s-24.7-23.4-24.7-23.4S456 394 440 372.1c-15.9-21.7-12.2-24.7-18.3-31a34 34 0 0 1-9-22l.6-8.6s-3.4-16.2-3.5-22.5z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#f0955d" d="M568.3 340.8c-.8-3-4.7-10.4-5-11.7q-.5-2-1.4-1.5l-3 .9q.3 3.6 1 6.2c.8 2.7 4.8 7.6 5.5 8.9l1 2 1.3-.4c1.7-.6 1.4-1.4.6-4.4m-5.2-18.6c-.3-1.9-3.6-10.6-3.7-12.3-.2-1.6-1.2-2.1-2-1.9l-1.9.6c1 5.2 2.4 12.4 2.8 15.3q0 1.2.3 2.3c4.8-1.5 4.7-2.2 4.5-4m18.9 43c.1-1.4-5-6.7-6.9-9a20 20 0 0 1-4-7.7c-.2-1.9-.6-1.9-1.7-1.5l-2 .7a88 88 0 0 0 5.8 10.4l7.8 9.6c1.1-1 .9-1.5 1-2.5m25.7 28c.3-.3-6.1-6-8.9-8.6a88 88 0 0 1-10.2-12.5c-.8-1.8-1.6-1-2.4-.8l-1.5.8c3.3 4 6.3 7.6 7.4 8.7 2 2.1 10.7 11.4 14.5 13.7q1-.9 1.1-1.2z"/>
+ <g mask="url(#sh-ac-ac-be)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M433 335.8c-1.4-5-8.1-17.8-8.6-20.1s-1.3-2.9-2.3-2.6l-5.4 1.6c.5 4 1 7.8 1.9 10.6 1.3 4.6 8.3 13.1 9.5 15.3l1.8 3.6 2.1-.8c2.9-1 2.3-2.5 1-7.6m-9-31.9c-.4-3.3-6-18.3-6.4-21.2-.3-2.8-1.9-3.7-3.3-3.3l-3.3 1c1.7 9 4.2 21.5 4.8 26.3l.5 4c8.3-2.5 8.1-3.8 7.7-6.8m32.5 74c.3-2.5-8.6-11.6-11.8-15.5-3-4-6.6-10.2-7-13.4-.3-3.2-1-3.2-2.8-2.5l-3.4 1.2c3 5.9 7 14 10 17.9 2 2.7 7.4 9.4 13.3 16.5 2-1.6 1.6-2.6 1.7-4.3zm44.3 48.1c.5-.6-10.6-10.5-15.3-15a152 152 0 0 1-17.6-21.3c-1.4-3-2.7-1.8-4-1.4l-2.8 1.4c5.8 6.9 11 13 12.9 14.9 3.5 3.7 18.3 19.6 24.9 23.5 1.3-1 1.6-1.6 1.9-2z"/>
+ </g>
+ <path fill="#f0955d" d="M554.6 306.8c3.7-.4 4-1.7 3.8-3-.1-1.4-1.6-6-1.4-8.2 0-2.2 3.5-7.2 6.3-8.3 3.2-1.3 2.3-2.1 2-2.6 0 0-3.8 1.2-5.2 2.4a21 21 0 0 0-5.5 10.4c-.4 4.1 0 9.3 0 9.3"/>
+ <g mask="url(#sh-ac-ac-bu)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M409.5 277.4c6.3-.7 6.7-3 6.5-5.3s-2.7-10.2-2.5-14 6.1-12.4 11-14.3c5.3-2.1 3.9-3.6 3.3-4.4 0 0-6.5 2-8.8 4.1s-8.9 10.6-9.5 17.8c-.7 7.2 0 16 0 16z"/>
+ </g>
+ <path fill="#f0955d" d="M570.4 302.5q1.3-.4 3 .2l5 3c.7.1 1.7 2.4 1.7 2.4s.5 1.5.4 2.7l-.4 6.9a11 11 0 0 1-3.4 3c-1.6 1-7.8 3-9.1 3.3s-2.6-1.3-2.6-2.7-1-6.5-1.5-8c-.4-1.6-2.4-8-.3-8.7 2.2-.8 7.2-2 7.2-2z"/>
+ <g mask="url(#sh-ac-ac-bt)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M436.7 270c1.2-.3 3.5-.5 5.2.3 1.6.9 7.6 4.7 8.6 5 1 .4 2.8 4.3 2.8 4.3s.8 2.7.7 4.7-.3 11-.7 11.8c-.4.7-3 3.6-5.8 5.2a100 100 0 0 1-15.7 5.6c-2.2.4-4.5-2.3-4.5-4.6 0-2.4-1.8-11-2.5-13.8-.7-2.6-4.2-13.6-.5-15 3.7-1.3 12.4-3.4 12.4-3.4z"/>
+ </g>
+ <path fill="#fdf2e8" d="M556.4 282.5s-7.1.4-6.2 1.5 1.5 2.9 3 2.4 6.2-3.7 3.2-3.9"/>
+ <g fill="#d5ccc0">
+ <path d="M537.5 264s.8-.5 1.3 1.8c.5 2.4 1.8 6.1 2.6 7.5.7 1.5 6.6 10 7.2 11s-.6 2.5-1 1.8c-.3-.6 0 3.3.4 4 .3.7.4 2.2 1.5 2.3 1 0 0 0 0 0s-3.4.4-3.5 2.2c0 1.7-2.5-.4-1.3 1.5 1.2 2 .4 5.4-.7 3.5-1-1.9-3.2-3.9-3.3-2.6s-1.2 1.5-1.6 1.6-3.4 1.6-5 3a65 65 0 0 0-6.9 7.2c-1.3 2-3.9 3.3-5.2 8.7-1.3 5.5 0 0 0 0s1-5.4 2-6.2c1-.9 4-4.6 4.9-5.6.8-1 4.6-5 6.8-6s4-1.8 4-2.2.9-1.4 1.9-1.7 1.2 0 1.6-.7 2.1-1.7 2.1-1.7l.7-1s.6-.4.4-1.2l.1-5.1c.1-1.4.6-1.8 0-2.3-.4-.6-4.5-4.8-5.7-7.2a20 20 0 0 1-2-6.4c0-1.4-1.3-6.2-1.3-6.2"/>
+ <path d="M548.8 311.2s1.2 0 2.7-.4c1.4-.3 3.4.2 3.3-1.5l-.2-12.1s-.6-2.3 2.4-6c3-3.9 4.1-5 5.1-5.4l.3-.1s-1.8-1.4-2-4.5c-.3-3-.7-9.3-1.1-6.7s.8 5.2-.8 6.1c-1.6 1-5.9 1.5-7.2 1s-2.6-2.8-2.6-2.8l-2.8-3.3c-.3-.5-1.4.4-.2 1.4s3 3 3.1 4c0 1-1 1.6 1 2.6 1.9 1 1.6.6 3.3.3s3.7-.8 4-1.1 1.7-.3.5.6c-1.1 1-2.7 3-4.4 3q-2.6.2-3.4-.5c-.6-.4-1.6-.3-.8.2s1.7 1 3.4 1.3c1.4.2 2.5.8 4.2-1.2 1.7-1.9 2.3-2.1 2.3-3.6s1.3 1.3.2 3.5-5 4-6.6 4.5-2.9 1.7-1.9 1.9 2.8 1 3 1.5 0 1-.8 2.5c-.8 1.6-3.6 10.9-5.6 13s-4.1 5.3-2.4 4.2l4.3-2.9m-11 7.5a54 54 0 0 0-7.1 14.6c-.5 3.3 2.6 5.3 2.3 8.5s-1.9 9.5-3.3 7.7-4.5-3.5-3.4-1.7c1.2 1.7 2 4.3 4 3 2.1-1.5 4.6-3.7 4.4-8.1s-.8-4.3-1-6.3a9 9 0 0 1-.5-3.4c.1-.9 4.7-14.3 4.7-14.3z"/>
+ <path d="M551.2 312s-.8 2.7-2 1.8-2.7 0-2.3.5.1 1.8-1.4 1.7q-2.2-.1-2.3.5c0 .6-.5 1.6-1.2 1.5s2 2.9 2.5 3.3l-4-3.4c-1-.8-1.7-.4-.5-1.4l8.4-5.3s.7 1.2 2.8.8"/>
+ </g>
+ <path fill="#fdf2e8" d="M542.5 270.3c.1-1.8 2.5-3.6 4.5-1.6s3 6.7 5.6 5.5 7-3.2 6.6-.7c-.6 2.4-3 5.3-5.1 5-2.2-.4-6.2-1.5-11.6-8.2m6.2 8.5c-.6-1.3 2.7.9 5.3.7s2.2 1 .8 1.5-2.6 1.1-3.3.7c-.8-.4-2.4-2-2.8-3zm6.8 8.3s-1.7 2.6-2.5 2.5-2-2.6-2-2.6 3.1 1.3 4.5 0zm-18.9-27s5.4-3 8.4-2.5 7.1 3.6 8 4.2c.8.6 3.1 3.7 4 3.5q1.4-.2-.5-1.9c-1.3-1-7.4-6.3-10.9-6.5s-7.3 1.8-8.1 2c-.8.3-.9 1.1-.9 1.1m24.8 13.3s-.8 1.5-.7 2.6c0 1 2 9.7 2 9.7l1.6-.4s-3.2-9-2.9-11.9"/>
+ <path fill="#d5ccc0" d="M554.7 309.3s-1.6.3-1.4 3.1.4 8-.5 8.8-7.6 1.3-5.2 1.6 6.7.4 7.7-1.3l.2-1.9z"/>
+ <path fill="#ad5f38" d="m569.8 302.7 5.2 2.8-7-2.4zm-4.9 1.3 6.1 2.6-8.2-1.7m-.6 1.9 7.3 1.6-7.1-.1m.5 2.5 11.6-1.7-10.8 5m.3 1 11.4-3.2-10.6 7.6m.1.9 10.8-6.1-10 8.8m1 .7 5.4-4.7-2.8 4.4m2.6-.8 4.7-6.7-1.8 5.6m2-1 2-3.9-.5 3"/>
+ <path fill="#f0955d" d="M576.4 289.1s-3.3 2-3.5 2.4c-.3.5-.5 5.8-.4 6s1.2 3 1.6 3.1c.3.2 7 4.1 7.5 4.2.5 0 3.7-.2 4.2-.4.4-.1 2.8-2 2.8-2"/>
+ <g mask="url(#sh-ac-ac-bs)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M447 247s-5.7 3.3-6.1 4c-.5.9-.8 10-.6 10.4.2.3 2 5 2.6 5.4.7.3 12.2 7 13 7.1 1 .1 6.4-.3 7.2-.6s4.8-3.4 4.8-3.4"/>
+ </g>
+ <path fill="#f0955d" d="M575.1 288s-2.4 2.3-3.4 2.5c-1 .1-7.3-.8-7.6-1.2-.4-.4 2.3-3 6.2-4.5"/>
+ <g mask="url(#sh-ac-ac-br)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M444.7 245s-4 4-5.8 4.3-12.6-1.4-13.1-2 3.9-5 10.6-7.8"/>
+ </g>
+ <path fill="#f0955d" d="m562.6 290.8 7.3.8c.6 0 1 2.9.9 5l-.3 4.3-9.3 3c-.5.1-1.9-4.1-1.7-7.5.2-3.3 2.5-5.7 3-5.6z"/>
+ <g mask="url(#sh-ac-ac-bq)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="m423.2 249.8 12.5 1.4c1 0 1.8 5 1.6 8.6l-.4 7.5-16.2 5c-.7.3-3.1-7-2.8-12.8.4-5.7 4.2-9.8 5.3-9.7"/>
+ </g>
+ <path fill="#f0955d" d="m590.7 305.7-5.8.5q-1.5.2-1.5 1.8c0 1.6-1 9-1.2 9.8s-.1 1.7 1.2 3c1.4 1.2 4 3.1 4.8 3.5.6.4 2.5 1 5 .2l6.6-2"/>
+ <g mask="url(#sh-ac-ac-bp)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M471.6 275.5s-8.4.6-10 .9q-2.6.4-2.7 3.1a263 263 0 0 1-2 16.8c-.4 1.3-.2 3 2.1 5a73 73 0 0 0 8.2 6.2 11 11 0 0 0 8.6.4l11.3-3.6"/>
+ </g>
+ <path fill="#f0955d" d="M578.2 322.4c.9-.4 2.3-1 3.7.2s4.8 5.5 5.2 6.2q.5.8.3 2.2l-.8 7.5c-.3 1.1-.7 3.1-3.2 4.2-2.5 1-8.6 4.5-10.8.3s-6.3-13.6-6.6-14.6q-.8-1.3 2-2.1z"/>
+ <g mask="url(#sh-ac-ac-bo)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M450.1 304.2c1.4-.7 3.8-1.7 6.3.3 2.4 2 8.3 9.6 9 10.7s.7 2 .4 3.8-1 10.8-1.4 12.8c-.5 2-1.2 5.4-5.4 7.3s-14.7 7.7-18.6.5a351 351 0 0 1-11.4-25c-.6-1.6.2-2.6 3.5-3.7z"/>
+ </g>
+ <path fill="#f0955d" d="M584.2 344.3c1.9-.8 4.3-1.3 5.4.7 1 2 4.3 8.2 5.4 9.6 1 1.4 1.6 6.2.1 7.5a73 73 0 0 1-7.3 5c-.8.4-3.5 0-4.2-2s-6.6-11.2-8.3-12.6c-1.6-1.3-1.6-4.4 1.1-5.1a84 84 0 0 0 7.8-3z"/>
+ <g mask="url(#sh-ac-ac-bn)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M460.4 342c3.2-1.5 7.4-2.4 9.2 1.1s7.5 14 9.3 16.5c1.7 2.4 2.8 10.6.3 12.8-2.6 2.2-11.2 8-12.6 8.6-1.4.7-6 0-7.4-3.4a120 120 0 0 0-14-21.6c-2.9-2.3-3-7.7 1.8-8.9a111 111 0 0 0 13.4-5.2z"/>
+ </g>
+ <path fill="#f0955d" d="M594.8 366.7c1.2-.5 1.5-.8 2.4 0 .8 1 7.9 7 9 7.8 1.3.8 1.3 1.4 1.2 2.7 0 1.4.7 9.1.6 10.8 0 1.6 0 2.1-1.8.5a182 182 0 0 1-12.8-13c-1-1.6-4.2-7.3-2.6-7.6s2.6-.7 4-1.2"/>
+ <g mask="url(#sh-ac-ac-bm)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M478.6 380.3c2-.8 2.6-1.3 4 .2a313 313 0 0 0 15.7 13.2c2.2 1.5 2.1 2.4 2 4.8-.2 2.3 1.2 15.6 1 18.4s0 3.8-3.2 1a312 312 0 0 1-22-22.4c-1.5-2.7-7.2-12.5-4.4-13s4.5-1.2 6.9-2.2"/>
+ </g>
+ <path fill="#f0955d" d="M610.1 373.1s-2.5-.2-3-.9-6.3-5.5-7.2-6.3q-1.6-1.1-1.6-2c0-.6 0-4.6-.2-5.5s1.1-1 2.3-1 8.5.5 8.5 1"/>
+ <g mask="url(#sh-ac-ac-bl)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M505 391.4s-4.5-.4-5.3-1.5-10.8-9.6-12.4-10.9-2.8-2.5-2.8-3.5 0-7.8-.3-9.4 2-1.8 4-1.7 14.6.8 14.7 1.6"/>
+ </g>
+ <path fill="#f0955d" d="m609 356.7-9.3-.4c-1.1-.1-1.6-1.1-2.5-2.9l-2.3-4q-.3-1 1.4-1.6c1-.3 7.4-2.6 10.5-5.2"/>
+ <g mask="url(#sh-ac-ac-bk)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M502.8 363.1s-13.8-.5-15.7-.7c-2-.2-2.8-1.8-4.4-4.9l-4-7c-.4-.9.7-2 2.4-2.6s12.7-4.5 18-9"/>
+ </g>
+ <path fill="#f0955d" d="M605.9 339.3s-2.6 2.9-5.4 4.2a30 30 0 0 1-5.3 2c-.8.1-2.2.2-3-.8-.9-1-2.3-2.5-2.8-2.8s0-1.8.2-3l1-11c0-.9.8-1 1.8-1.3s7.5-2.7 8-2.6"/>
+ <g mask="url(#sh-ac-ac-bj)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M497.6 333.2s-4.4 5-9.2 7.2a51 51 0 0 1-9 3.4c-1.5.3-3.9.5-5.3-1.2a39 39 0 0 0-4.8-4.8c-.8-.6.1-3.2.3-5.3s1.6-17.5 1.6-19c0-1.3 1.6-1.5 3.2-2s13-4.8 13.9-4.6"/>
+ </g>
+ <path fill="none" stroke="#af6d4a" stroke-miterlimit="10" stroke-width=".6" d="M565.3 284.7c.3.5 1.2 1.3-2 2.6-2.8 1-6.2 6.1-6.3 8.3-.2 2.2 1.3 6.8 1.4 8.1.1 1.4-.1 2.7-3.8 3"/>
+ <path fill="#ad5f38" d="M561.2 292h6.5l-5.3-1.2m-1.8 2 8.7.4-9.4 1m-.4 2.2 8.2-1.2-8 3.7m.1 1 7.6-2.3-7 5m2 .8 4.5-3.2-2 2.4m-.3-13.1 6-.7-4.5-1.7s-2.6 2.1-1.5 2.4m3.4-3.7 3.2 1.4-4.1-.8m4.4-1.1.5 1.1-2.2-1.4s.6-.1 1.7.3m2.7 5.2 1.3.3-2.4.4m-.4 1.3 1.6-.2-1.7 1.6m0 2.4 3-2-2.9 3.8m.6 1 5-2.5-3.4 4.5s-1.3-.8-1.6-2m4.7 3.8 1.6-5-3.2 4.2m3.6 1.8.9-4.5 1 5.4m1.5 0 .2-3.3 1.8 3m1.2-.5-.3-2.3 1.1 1.6m-.7 2.7 2 .7-5.2.5s1.4-1.3 3.2-1.2m-3.4 3 6-1-6.2 3m-.2 1.8 6.2-1.6-6.8 3.7m-.1 2 8-4-8.1 6.3m1.2 1.4 7.5-6.4-5.7 8m2.3 1.6 5.2-7-2 8.3m3-.7 2-6v5.4m2-.6.7-4 1.5 3.3zm-.2 1.7h2.2l-4.8.9m-2.6.8 6.5.3-8.2 2s.1-2.4 1.7-2.3m-2 4.3h8l-8 2.6m0 1.6 6.6-1.8-7.4 4.5m0 1.7 7.4-3.8-7.4 6.2m1.1 1 6.8-5.5-4.7 7.7m2.6.3 5.3-7.9-2 6.8m3-1.4 2.5-6.2.3 4.1m-5.6 6 5.3-.5-9.1 3s1.3-2.1 3.8-2.4zm-3.2 3.5 7.3-2.3-6.4 4m1 2.3 5.4-5.3-3.8 7m2.1.3 4.2-6.5-2.3 6.6m1.9.1 2.3-6.1-.7 6.2m-8.3 6.8 5-2.6-4.2 4.3m1.2 1.3 4.3-3.3-2.8 4.3m1.3 1.1 4.3-6.2-2.8 7.5m1.3 1.1 3.1-9.3-1.5 10.8m.9.4 1-6 .5 6.3m-37-48.6 6.3.7-12.7 2m-.7.5 13.4-.5-12.4 3 12.9-1.2-12.2 3m.6 2 13.4-3.2-12 5.3m1 3.1 9-5.7-7.6 8m1 1.8 9.1-7.6-6.1 9.3s-2.2-.3-3-1.7m4.5 1.6 6.4-9.1-3 8.1m2.7-1.2 1.6-5.9.7 4m-11.2 8 8.7-2.3-9 4.5 10.4-3.5-9 5.3s-1.3-1.2-1.1-4"/>
+ <path fill="#ad5f38" d="m575.6 352.8 10.8-3-9.4 4.8m.5.6 9.9-3.1-8.2 5.5m1 1.4 7.4-4.7-6 7.2m.7 1.1 6.7-7-6.1 8.4m.7 1.3 6.2-8.7-3.5 10.6s-1.9-.7-2.7-2zm4.5 1.6 2.8-8.4-.4 6.9m1.4-1 .9-4.9 1.2 3.6m-3.3 7.3 4.1-2.4-2.9 5m.6 1 4.3-3-3 5m1 1.3 4.2-5.5-2.9 6.8m1.5 1.6 3.8-6.8-2.2 8.4m1.1 1 3.3-8.1-1.5 9.9m1.8 1.8 1.6-10.6 1 12.9"/>
+ <path fill="#d5ccc0" d="M575.6 366.2s-2.5 12.3-.8 23.1-1.7-1.9-1.8-2.3a84 84 0 0 1 0-24.3zm9.3 44.3s9.4 5 8.6 1.3-2-4.5-2.4-6.4c-.5-1.8-.5-5 .6-3.8s.7-4-.5-5.5-3-6.2-2-6.2 1.2-3.8.7-5.1c-.4-1.4-4.7 2.8-10-13.1l10.1 10.8s1.3 3.2.6 6.9c-.6 3.6.9 5 1.6 7.4.7 2.3 1.6 6.3 1.3 7.6-.3 1.4 1.7 4 1.6 5.4s-.6 4.6-1.9 4.5c-1.2-.2-6.6-1.6-8.3-3.8"/>
+ <path fill="#fdf2e8" d="M589.8 389.1c.2-.6.6-1.8-.5-1.5-1.1.2-.5 2.5-.1 2.3q.4-.2.6-.8m2.6 12c0-.8 0-2-1-1.5s.3 2.5.6 2.3q.4-.2.4-.9z"/>
+ <path fill="#d5ccc0" d="M572.3 380.5s-1.1-4.6-3.5-3.2c-2.3 1.4-3 10.4-3 10.4s.1-9.1 2.3-16.9l4.2 3.7zm3 13.8s-2 12.4-3.3 11a49 49 0 0 1-6-13.3s1 8.1 4 13.6c1.8 3.3 3 1.6 4.7.3s4-2.6 4.6-4z"/>
+ <path fill="#c6ac95" d="M552.7 322.8s2 1.6 1.7 3.6-.9 4.2.5 7.4c1.5 3.2 2 6 3.6 8l6.3 7.4s-1.4-3.4-2.7-4.8c-1.3-1.5-5.4-6-5.4-10.5l.1-7.8-1.2-5.3s-1 2.1-2.9 2m-5.7.1s-5.5 2-5.5 4.8-.7-7.1-.4-9.1c0 0 4.2 3.9 5.9 4.3"/>
+ <path fill="#caa178" d="M552.4 323s1.2 2.5 1.3 5.2-5 3.8-8.1 3.9c-3.2 0-3.4-.2-3.4-.2s-1.6-10.2-1.1-13.3c0 0 3.4 3.4 6.2 4.2 2.7.7 5.1.1 5.1.1z"/>
+ <g mask="url(#sh-ac-ac-bi)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M405.7 305.1s2 4.4 2.2 9.1-8.5 6.6-14 6.6c-5.4.1-5.7-.2-5.7-.2s-2.9-17.6-2-23c0 0 6 6 10.6 7.2 4.8 1.3 8.9.3 8.9.3"/>
+ </g>
+ <path fill="#caa178" d="M542.6 333s4.7-.2 7.4-.6c2.7-.5 3.5.5 4 2s2.3 5.6 3 7c.6 1.3-.3 3.6-2 4.6l-5.6 2.5s-5-8.8-6.8-15.5"/>
+ <g mask="url(#sh-ac-ac-bh)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M389 322.5s7.9-.4 12.6-1.2 6 1 6.8 3.6c.8 2.5 4 9.6 5.2 12 1.1 2.3-.5 6.2-3.5 7.8s-9.6 4.5-9.6 4.5-8.7-15.3-11.6-26.7z"/>
+ </g>
+ <path fill="#caa178" d="m551.5 351.9 5.4-4.3c1-.8 2.6-.8 4.1 1.5s3.8 7.4 4.8 8.7q1.6 2.1.2 3.8l-3.1 4.2s-8-8.4-11.4-14z"/>
+ <g mask="url(#sh-ac-ac-bg)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M404.2 354.9s7.5-5.9 9.2-7.4c1.8-1.4 4.5-1.4 7 2.6 2.6 4 6.6 12.7 8.3 15s2 4.8.4 6.5-5.4 7.1-5.4 7.1-13.9-14.3-19.5-23.8"/>
+ </g>
+ <path fill="#caa178" d="M572.6 367.3c-2.1-3.4-3-5.5-4.2-4.8s-4.4 4.4-4.4 4.4l8.3 7.6z"/>
+ <g mask="url(#sh-ac-ac-aX)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M440.4 381.5c-3.6-5.9-5.2-9.6-7.3-8.4a57 57 0 0 0-7.4 7.7l14.2 13z"/>
+ </g>
+ <path fill="#c6ac95" d="m569.7 362.9 3 4.4.3-4.6s-5.3-6.7-6.1-8.6c0 0 0 3.9 1.1 5.6q.6.8 1 2.7.4 0 .7.5"/>
+ <path fill="#b28f6b" d="M569.7 362.9q-.4-.5-.6-.5c.5 2.5.6 5.8-1.7 7.8l4.9 4.3.4-7.2z"/>
+ <path fill="none" stroke="#9f8d79" stroke-miterlimit="10" stroke-width=".6" d="M549.3 286.2s4 2.5 6.4.7c4.2-3 3.5-8.4 3.5-8.4"/>
+ <g fill="#494037">
+ <path d="M553.2 260.8c-1.2-.2-3 .8-2.2 1.3s.9 2.1 2 2q1.5-.4 1.3-2.5c0-1.4 0 0 0 0zm2.9 2.3s-2 2.6-1.2 3.6 2 1.8 2 1c-.2-.9 2.4-.3 2-1.7-.2-1.4 0 0 0 0zm-.6 7.6q1.2.4 1.4-.5c0-.8 1-.5 1.1-1.2 0-.7-1.5 0-2.4-.5-1-.3-2 0-2 .7s-.7 1.4.2 1.4zm5-2.5s-1.2 1-1.1 1.6 2.4 3.2 2.3 2.2-1.2-3.8-1.2-3.8m-9.5-8.9c0 1-2.6 1-3.2.4s-2-2.3.4-2c2.4.4 0 0 0 0zm-8.4-2.3c-.8.7-.2 1.1.6.8.7-.3 3.8-.4 2.4-1-1.5-.5-3 .2-3 .2m-1.6 3a3 3 0 0 0 1 3c1 .8 2.1.9 2-.4-.3-1.3-.4-2.2.5-2.1s1.9-1 0-1.1-3.4-.3-3.5.6m2.8 4.8c-.7-.1-2.4 2.6-1 2.7q2.4.1 1.8-1c-.5-.7 0-1.5-.8-1.7m2.4 1.3c.2-.6 1.8.2 1.8.8 0 .5.9 3-1.3 1.7q-.8-.6-.5-2.5m-2.8 3.4c.3.4 1.2 1 1.5 2s2.3.8 2.3.1.5-1.9-.5-2c-.7.3-2-.7-2.8-.9q-.7.2-.5.8m10.8 2.1c.3-.7 2.6-.4 2.4 1q-.2 2.5-1.1 2.4c-.7 0-.1-1-.2-1.7 0-.7-1.5-.8-1.1-1.7m3.2 2.9q.9.3 1-1c.1-1.3 1-.1 1.2-.7 0-.5-.5-1.1-1.2-.7s-2 2-1 2.4m4.4.8s-1-.2-1 .3-.1 2 .2 1.6 1-.1 1-.5zm-12.4-1.6c-.6.7-.5.3-.8 1s-1.7 1-1.5 0c.1-1.1-1-1.8-.2-2 .7-.1 2.6-.8 2.6-.3s.8.2 0 1.3zm1.4-1.3c.1.6.5 1.2-.1 1.8s1.3 1.6 1.9 1.4.5-1.2 0-1.3.2-1.8-.5-1.8c-.8 0-1.4-.7-1.3 0zm-1.8-2q.2 1 1.4.6c.7-.3 1.4-.7 1-1.5s-1-2.3-1.3-1.7-1 1.7-1 2.7zm3.3-3.9c.8 0 .2 1.5 1.1 1.2s.7-2 .1-2.2c-.5-.1-2.6-.1-2.6.6s.6.4 1.4.4m-2.6 9.2c-.3.4-1 1.2-.1 1.5s2-.4 1.6-.7c-.4-.4-1.1-1.3-1.5-.8m4.8 0c-.6.1-.7 1.7 0 1.7.5 0 2-.7 1.4-1s-.6-.8-1.4-.7m-4 13c.7.8 2.1 1 2.1.7s-.4-1.9-1-1.8c-.4 0-1.6.5-1 1.2zm3.9 1c.3-.3 1.4-.9 1.8-.7.4 0 .6 1.6-.1 1.6-.8 0-2.3-.3-1.7-.8zm-3 3c-.1-.7-.2-1.1.8-1.1 1.1 0 .9.7 1.4 1.2s.8 1-.5.5l-1.8-.6m7.8-6c0-.6-1.2-.4-1.1 0 0 .3 1.1.9 1.1 0m1.4-1.8c.1-.2.9-1.2 1-.8.2.5-.3.5-.5.8q-.5.4-.5 0m2.5-3.4c-.8-.3-1.4 1.2-.8 1.5.6.2 2.2 2.2 1.8 1.1m-9.5 17c-1-2.4-1.6-5-4.6-2.4s-3.8 4.9-1.5 5.3 4.7 1.8 5.5.2.6-3 .6-3zm-7-5.8c.4.4 1.1.3 1 1 0 .7 2.4.3 2-1.7s-4.2-.4-3 .7m-5.2 4.1a21 21 0 0 0-5.4-.2c-.5.2-.2 2.5 1.6 2.6s5.4-2 3.8-2.4m.2 3.7c-.4 1.7 1 2 2.3 1.2 1.2-.7 2-1.7 1.2-2.1s-3-1-3.5.9m4 9.6-3.5-3.4c-.8-1-.5-2.6 1.2-2.5s4.4 4.4 4.1 4.6m-5 3.2c-.2-1.5-2.2-4.4-5.3-5.2s-1.5.6-1.8-1-2.2-.2-3 .8q-1 1.6 1.7 1.9c1.7.2 5.9 3 6.5 4.6m-1.1-8.3c.2-1 1.2-2.8 1-3.5s-2.4-.6-3.5-1-2.3.5-2.2 1.5-1.3 1.5-.2 2 4.7 1.7 4.9 1m-5-7.4.7 2c.3 1-1.5 1.8-2.2 1.6s-3.1 1.4-3.4.5c-.2-1 3-2.6 4.9-4.1m-6 5.4s3.3-1.2 3.2.1-.2 3.5-1.3 3.6-2.6.7-3 1.4-2.8 1.2-3 0l4-5.1m15.3-11.2s1.8 0 1.3 1.3l-.4 1.6c0 .3-1.1-1-2.2-1.6m-3.4 2s.4.3.8 0c.3-.4.4-1.2 1-1s.5-.7.5-.7-1.5.3-2.3 1.6m4.7 3c.5 0 2-.3 1.5-1s-2.1-.5-2.1 0-.2 1.1.6 1m2.2-3.5q1 .3 1 1-.3.8-1.4.6c-.7 0-.2-1.7.4-1.6m-23.2 15.4c.9-.6 2.5-.3 2.4 1.2a9 9 0 0 1-1.5 4.2c-.6.7-2.5.8-2.3-.1zm5.1-.5c.5-.7 3.7-1 3 .2s-1 3-.5 3.2 1.5 2 .3 1.6-1.6-1.2-2.7-1.1c-1 0-1.5-1.8 0-3.9zm-3.9 7c.4 0 .6 1.3 1.1.8s.7 1.8-.4 1.6c-1-.2-.5 1.8-1.3 1.5-.7-.2-1-1.5-.4-2 .6-.3.2-1.8 1-1.8zm1.7-2.2c.2.6 1 1.8 1.8 1.9s4-.5 2.6-.8-2-1.7-3.2-1.6c0 0-1.8-.8-1.2.5"/>
+ <path d="M532.7 312.3c-.8.8 0 2.8 1 3 1.1.2.8 1.5 0 1.6-.9 0-2 2.6-2 2.7s1.4 2.6 2.2 2.8c.9.3 2.4 1.2 2.8.2l1.7-4.4 1.5-1.6s-.9-1.8-2.6-2.8-4.2-2-4.6-1.5m-5.8 8.3c0 1.2.7 2.3 2.4 2.3 1.8 0 2.7-2.8.1-3-2.6 0-2.5 0-2.5.7m4.5 2.4c-1-1-.9 2.8.5 3s1.4 2.1 2.1.9 2.6-3 .2-3.5c-2.4-.3-2 .3-2.8-.4m.4 3.9c.5.3 2 1.6 1.7 2.4s-.3 3.3-1 3.2c-.5 0-2.2.2-2-1.5s.6-4.5 1.3-4.1m-1.5 7.1c.3-.8 3-.5 3-.5l.6 1.9s.5 1.6.5 2.2-1.6 1-2.2.6a5 5 0 0 1-1.5-2.4c-.2-.8-.8-.6-.4-1.8m4.6 7c-.2-1.2-2-1.5-2.8-1-.9.4-.6.8-.2 2.1.5 1.3 1.2 3.5 2 2.7q1.5-1.2 1-3.7zm-6.6 8.8c.8.6 3 .2 2.8-2-.2-2-2.4-4.8-3.9-5.7s-3.4.5-3.1 1zm-7.3-12.2 2.4 4.3s1.7-1.6.9-2.6"/>
+ <path d="M524.3 339.3c-.9-1 .4-2.7-.7-2.8s-2.7.8-2.6 1.1m.3-5.2c0 1.3.2 2.6 1.7 2.3s.8-1.6 1-3.4c.4-1.7-.4-1.8-1.2-2-.8-.3-1.7-.3-1.8.6 0 .9.5.6.3 2.5m1.3-7.2c-.1 1.3-.7 2 .8 2.2s1.8.5 1.8-1c.1-1.5 1.6-1.2 1.4-.5-.3.8-.2 2 1 1.9 1.3-.1 4-1.1 2.7-2.3a6 6 0 0 0-5.2-1.7c-2.2.3-2.5 1.4-2.5 1.4m3.8 3.1c-1 .1-1.1 3-1.1 3.8s.2 2 1.5 2 2.4-.2 2.5-2.3-.5-3.7-3-3.5zm0 8.3c0 .5.3 2.1 1 2.9s2 1 2.4 1 1.1-1.2.8-1.8c-.2-.7-1.7-1.8-2-2.7-.2-.8-2.4-.7-2.2.6"/>
+ </g>
+ <g fill="none" stroke="#9f8d79" stroke-miterlimit="10" stroke-width=".6">
+ <path d="M559.3 275.1s.4 5.7-1.6 6l-5.2.9c-1.5.2-3.5-2.5-3.9-3.4-.4-1-1.3-.8-3-3.6m9.1 35s-1.6 1.7-3.5 2-2.8-.8-2.8-.8m6.4 1.3s-3.2 3-5.7 2.8c-2.5 0-3-2.5-3-2.5"/>
+ <path d="m555 315.6-2.4 1.3c-.8.5-1.7 1.1-4.1 1s-4.6-2.3-6.3-2.9"/>
+ <path d="M539.7 316.5s2 .8 3.4 2.3 7.5 4.2 12.3.2m-4-9.9s1.5-1.1 1.9-1.2m.2 1s-.7-.2-1.5-.2"/>
+ </g>
+ <path fill="#494037" d="M547.8 307.6c1.4.5 1.4 3 2.4 2.3 1.1-.8 2.2-1.8 2-2.8s-2.8-2.6-4.2-2.2-1 2.4-.2 2.7"/>
+ <g fill="none" stroke-miterlimit="10" stroke-width=".6">
+ <path stroke="#af6d4a" d="M576.4 289.1s-3.3 2-3.5 2.4c-.3.5-.5 5.8-.4 6s1.2 3 1.6 3.1c.3.2 7 4.1 7.5 4.2.5 0 3.7-.2 4.2-.4.4-.1 2.8-2 2.8-2M575 288s-2.4 2.4-3.4 2.6c-1 .1-7.3-.8-7.6-1.2-.4-.4 2.3-3 6.2-4.5m-7.7 6 7.3.8c.6 0 1 2.9.9 5l-.3 4.3-9.3 3c-.5.1-1.9-4.1-1.7-7.5.2-3.3 2.5-5.7 3-5.6zm28.1 14.9-5.8.5q-1.5.2-1.5 1.8c0 1.6-1 9-1.2 9.8s-.1 1.7 1.2 3c1.4 1.2 4 3.1 4.8 3.5.6.4 2.5 1 5 .2l6.6-2m-21.6-.1c.9-.4 2.3-1 3.7.2s4.8 5.5 5.2 6.2q.5.8.3 2.2l-.8 7.5c-.3 1.1-.7 3.1-3.2 4.2-2.5 1-8.6 4.5-10.8.3s-6.3-13.6-6.6-14.6c-.4-.9 0-1.5 2-2.1zm6 22c1.9-.9 4.3-1.4 5.4.6 1 2 4.3 8.2 5.4 9.6 1 1.4 1.6 6.2.1 7.5a73 73 0 0 1-7.3 5c-.8.4-3.5 0-4.2-2s-6.6-11.2-8.3-12.6c-1.6-1.3-1.6-4.4 1.1-5.1a84 84 0 0 0 7.8-3zm10.6 22.3c1.2-.5 1.5-.8 2.4 0 .8 1 7.9 7 9 7.8 1.3.8 1.3 1.4 1.2 2.7 0 1.4.7 9.1.6 10.8 0 1.6 0 2.1-1.8.5a182 182 0 0 1-12.8-13c-1-1.6-4.2-7.3-2.6-7.6s2.6-.7 4-1.2zM610 373s-2.5-.2-3-.9-6.3-5.5-7.2-6.3q-1.6-1.1-1.6-2c0-.6 0-4.6-.2-5.5s1.1-1 2.3-1 8.5.5 8.5 1m0-1.7-9.2-.4c-1.1-.1-1.6-1.1-2.5-2.9l-2.3-4q-.3-1 1.4-1.6c1-.3 7.4-2.6 10.5-5.2m-1-3.3s-2.5 2.9-5.3 4.2a30 30 0 0 1-5.3 2c-.8.1-2.2.2-3-.8-.9-1-2.3-2.5-2.8-2.8s0-1.8.2-3l1-11c0-.9.8-1 1.8-1.3s7.5-2.7 8-2.6"/>
+ <path stroke="#af6d4a" d="M565.3 284.7c.3.5 1.2 1.3-2 2.6-2.8 1-6.2 6.1-6.3 8.3-.2 2.2 1.3 6.8 1.4 8.1.1 1.4.7 2.6-2.9 3m15-4.2c.7-.2 2-.3 3 .2l5 3c.6.1 1.6 2.4 1.6 2.4s.5 1.5.4 2.7l-.4 6.9a11 11 0 0 1-3.4 3c-1.6 1-7.8 3-9.1 3.3s-2.6-1.3-2.6-2.7-1-6.5-1.5-8c-.4-1.6-2.4-8-.3-8.7 2.2-.8 7.2-2 7.2-2zm-2.2 38.3c-.8-3-4.7-10.4-5-11.7q-.5-2-1.4-1.5l-3 .9q.3 3.6 1 6.2c.8 2.7 4.8 7.6 5.5 8.9l1 2 1.3-.4c1.7-.6 1.4-1.4.6-4.4zm-5.2-18.6c-.3-1.9-3.6-10.6-3.7-12.3-.2-1.6-1.2-2.1-2-1.9l-1.9.6c1 5.2 2.4 12.4 2.8 15.3q0 1.2.3 2.3c4.8-1.5 4.7-2.2 4.5-4zm18.9 43c.1-1.4-5-6.7-6.9-9a20 20 0 0 1-4-7.7c-.2-1.9-.6-1.9-1.7-1.5l-2 .7a88 88 0 0 0 5.8 10.4l7.8 9.6c1.1-1 .9-1.5 1-2.5zm25.7 28c.3-.3-6.1-6-8.9-8.6a88 88 0 0 1-10.2-12.5c-.8-1.8-1.6-1-2.4-.8l-1.5.8c3.3 4 6.3 7.6 7.4 8.7 2 2.1 10.7 11.4 14.5 13.7q1-.9 1.1-1.2z"/>
+ <path stroke="#000" d="M554.6 303c.2 3 3.2 16.7 3.7 20.9s.8 8.1 1.6 10.8 4.8 7.6 5.5 8.9 5.1 10.9 7.8 14.5a583 583 0 0 0 19 22.7c2.4 2.6 15.2 16.4 16.2 13.9"/>
+ <path stroke="#b49578" d="M552.4 323s1.2 2.5 1.3 5.2-5 3.8-8.1 3.9c-3.2 0-3.4-.2-3.4-.2m0 1s5-.1 7.8-.5 3.5.5 4 2 2.3 5.6 3 7c.6 1.3-.3 3.6-2 4.6l-5.6 2.5m2.1 3.4 5.4-4.3c1-.8 2.6-.8 4.1 1.5s3.8 7.4 4.8 8.7q1.6 2.1.2 3.8c-1.4 1.7-3.3 4.5-3.3 4.5m1.3.8s3.2-3.7 4.4-4.4 2.1 1.4 4.2 4.8"/>
+ </g>
+ <path fill="#494037" d="M577.6 368.6c-1.2-.6-2.8-.4-2.2.8s2.7 3 3.6 3.1c1 0 1.1-.7.8-1zm-2.5 2.9c-1 .1-1.1 4.3-.7 5 .5.9 1.3 1.7 2.1.2s1.7-2.6 1-3.4c-.8-.8-2-1.9-2.4-1.8m-3 5.9c.2-.8-.1-4 1-2.7 1.2 1.4.2 4 1 4.3s2.4 1.3.8 2c-1.5.8-2.4 2.2-2.5 1.3zm1.9 6.3c0 1 .5 4.1 1.1 5s2.1 1.6 2.3.2.5-3 1-3.3c.7-.3-.2-1.3-1.9-2.2q-2.5-1.2-2.5.3m3 7.6c-.1 1 1.8 1.3 1.7 2.3 0 1 .4 3 1.3 2.5s1.2-2.3 1.3-2.8c0-.5-.2-2.3-1.5-2.8s-2.6-.9-2.8.8m4 5c-.6.2-.8 3.2-.1 3.8s2.3 1.3 2.2-.1.9-1.6 1-2.2-1-2.2-3-1.6zm.1-6.1c-.5.8.5 2.1 1 2.7s1 1.3 1.8.4 1.9-2.2.5-3.2q-2.1-1.6-3.3 0zm1.5-6.2c-.4 1-1.5 2.8-1 3.2s.9 1.2 1.9 1.2 2.9-1.3 3.2-1.8-1.5-2.2-2.2-3c-.6-.8-1.2-1-1.9.4m2.6 4.6c-.6.4.8 1.5.7 2.3 0 .9.1 1.7 1.7.8s3.3-1.6 2.1-2.9-2.4-1-3-1q-1 .3-1.5.8m5.3 3.5q0-.8-1.5.7c-1 1-3.3 2-2 2.3q2 .8 2 1.8c0 .5 1 1.9 1.5 1.4s2-.3 2-.3-2-4.4-2-6z"/>
+ <path fill="#494037" d="M585.7 394.5c-.5-.7-1-1.6-1.3-.3-.3 1.2-.7 2.2-.3 2.6s1.5.9 1.4 1.4c0 .4 2 1.1 2.2 0q0-1.7-.5-2.3c-.2-.3-1-.6-1.5-1.4m-1.8 5.1c-1 1-1 2.5-1 3.4 0 1 0 2.6.6 3.2s2.1 2.6 4 2.7q2.8.1 1.5-2.1c-.8-1.6-4-8.2-5.1-7.2m1 10.9s2.1-.5 3 .1c1 .6 1.4 1.5 2 1.9.5.4.8 1.4-.8.6-1.5-.7-4.2-2.6-4.2-2.6m8.3-10c-.8-1-1.2-1-2.6-1-1.5.1-2.9-1-3 .3s1.7 3.2 1.6 4 1.2 2.3 1.1 3c0 .9 1 1 1.7.5s1.7-.1 1.6-1.6zm1.1 8.4c-1-.3-2.4-.4-2.9-.1-.5.2-.9 1.3-.1 2.3.7 1 1.6-.6 2-.7.5-.2 1.9-1.2 1-1.5m-16.2-32.1c.2 1 2.8 3 3.1 1.7.4-1.2 1.6-2.5.7-3.5s-2.7-2-3-1.2-.9 2.5-.8 3m-1 2q-.5 1.3-.6 2.2c0 .5 1.3 1.6 1.7 1.7.5.2 2.3 3.1 2.7 2.5.3-.7 1.4-4.4.7-4.7-.8-.3-4.3-2.5-4.5-1.8zm7-2.2s-1.3.2-1.5 1.2-.4 1.8.6 2.8c1 1.1 2.8 2.3 3.5 1.7l1.4-1.7zm3.9 5.7c-1.5 0-2 1-1.1 1.4.9.6 1.9 1.5 2.1 2.2s1.4.3 1.4-1.2a2.5 2.5 0 0 0-2.4-2.4m-15.8 18c0-1.5-.2-4.7-1.2-2.8-1 1.8 1.5 6 1.2 2.8m-4.1-5c0 1 1.1 1.8 2 .4 1-1.3-.8-.4-.9-1.5 0-1-1 .2-1.1 1.2zm-.7-4c-.5-1 0-3 1-2.7.8.3 1.8 2 1.2 1.9-.7 0-1.4 2.4-2.2.9zm3.3 0c0 .7-.4 2.5.5 2.5s2-1.2 1.3-2.3c-.5-1.2-1.7-1-1.8-.1zm-3-11c.3 1.4 1.8 1.2 1.7 2.3 0 1.1-.6 4 .6 2.8a5 5 0 0 0 1.3-4.2c-.2-.8-.2-2.3-1-2.4-1 0-3-.3-2.5 1.6zm-1.7 3.4s1.3-1.7 1.5-.4 1.3 2.6 1.1 3c-.2.5-2.9 1.9-2.8.4z"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6">
+ <path d="M545.6 275s-2.2-3.9-3.1-4.7c-.9-.7-1.6-4-1.7-5-.4-3.7-5.2-5-4.1-5.7 0 0 6.3-4.6 11.5-1.9 5.3 2.8 13.4 8.6 13.5 14.3-.3 8 2.6 13 2.6 13"/>
+ <path d="M548 285.3s-8.3-8.3-8.6-11.8c-.3-3.8-3-11.4-1.3-12.3"/>
+ <path d="M547 284.1s-1.3 4.9-.5 7.5l-1.2 2"/>
+ <path d="M553.4 293.5s-3.3-2.3-7.4-.3c-2.8 1.3-3 2.2-3 2.2s-3 .4-3.3 2c-.4 1.4-3.2.9-7.5 4.7-4.3 4-6 8-7.9 9s-3.1 10.6-3 14.1c0 3.6-1.3 10-.3 12.4a131 131 0 0 0 7.3 12.2c1 1.4 4.6.5 6-4 1.5-4.3 0-6.2 0-8.2.2-2-1.5-3-.7-5.6.8-2.7 3.9-12 4.6-13.4a13 13 0 0 1 5-4.1c1.7-.8 8.1-5.4 8.1-5.4m3.4-12.8c0-2.4 4.6-9.4 7.1-10.4s5.9-2.6 9.7-.6a81 81 0 0 1 15.8 15.3c3 4 10.4 15.4 15.2 28.6 4.8 13.1 6.4 22 6.4 27.9s2 8.4 1.2 16.8c-1 8.4.4 15.6-1 19.6-1.6 4-6.1 1.6-8.6-.8-2.4-2.4-17.3-16.5-19.3-19.4s-8.1-10-11.7-15.5-5.2-10.3-6.7-12.5-3-2.7-5.1-7.6-.6-10.6-.9-11.7c-.2-1.1-2.7-6.2-2.1-29.7z"/>
+ <path d="M538.8 317.7c1.4-1.3 3.9 2.9 7.5 4.6 4 2 9.6.4 9.3-2.1"/>
+ <path d="M541.1 318.4c-.5 6-1 28.9 31.2 56.1"/>
+ <path d="M573 362.7c-.5 8.4-2.9 21.9 3 33.2s7.7 13.5 8.9 14.6c1.6 1.6 5.8 3.7 8 3.8s2.2-4 2.3-5-1.9-2.4-1.7-5.2a22 22 0 0 0-2.5-9.9c-1.4-2.4.8-6.5-1-11.6"/>
+ </g>
+ <path d="M548.3 261.8c1 .8 1 1.4.8 2.8-.1.7-2 0-3-1s-1.8-2.2-1-2.3 2-.3 3.2.5"/>
+ <path fill="#fff" d="M546.8 262.5q0 .4-.3.6-.5 0-.7-.3 0-.4.4-.6.4 0 .6.3"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6" d="M568 370.7s-3 11.7-2 21.9 4.2 13.4 5 14.5 1.6 0 2.8-.8 5.9-3.7 5.5-4.4"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M609 357c0-5.8-1.7-14.7-6.5-27.8a126 126 0 0 0-15.2-28.6c-3-4-12-13.3-15.8-15.3-2.7-1.4-5-1-7.2-.3 0 0-2.9-5-2.6-13-.1-5.7-8.2-11.5-13.5-14.3-5.2-2.7-11.5 1.9-11.5 1.9-.6.3 0 1 1 1.8-1.5.8 1.4 8.3 1.7 12 .2 2.8 5.3 8.3 7.6 10.7 0 0-.4 1.5-.6 3.3l-.6 3.1c-2.4-2.5-11.1-11.3-18-12.6-8-1.6-13.2-.2-15.6 1.7-2.1 1.8-8.5 6.8-10.6 11.3h12a10 10 0 0 1 7-2c7 .3 8 2.8 7.6 3.4s-.6 2.5 2.2 3.8a9 9 0 0 1 4 4.3l-2.2 1.7c-4.3 4-6 8-7.9 9s-3.1 10.6-3 14.1c0 3.6-1.3 10-.3 12.4a131 131 0 0 0 7.3 12.2c1 1.4 4.6.5 6-4 1.5-4.3 0-6.2 0-8.2.2-2-1.5-3-.7-5.6.8-2.7 3.9-12 4.6-13.4q0-.5.6-.9l1.9.3.4.4c-.4 5.8-.9 26.8 26.8 52.3 0 0-2.9 11.8-1.9 21.9s4.2 13.4 5 14.5 1.7 0 2.8-.8 5.9-3.7 5.5-4.4c3.4 6.2 4.7 7.7 5.6 8.6 1.6 1.6 5.8 3.7 8 3.8s2.2-4 2.3-5-1.9-2.4-1.7-5.2a22 22 0 0 0-2.5-9.9c-1.4-2.4.8-6.5-1-11.6l10.5 10c2 2.1 5.7 4.2 7.7 2.3l.2-.2.6-1.2c1.5-4 .1-11.2 1-19.6s-1.1-11-1-16.8z"/>
+ <path fill="url(#sh-ac-ac-bw)" d="M12.5 392.7c1.6 14.4-.7 27 1.9 33.8 2.5 6.9 10.4 2.7 14.5-1.4l18-17.5a196 196 0 0 0 15.2-15.8c2.4-3.5 8.7-10.9 14.3-18.3q3.2-4.3 6-8.4c6.1-9.4 8.8-17.7 11.4-21.5s5.2-4.7 8.8-13 1-18.3 1.5-20.2c.2-1 1.2-3.4 2.2-10 1-7.3 2-19.8 1.5-41.1 0-4-8-16.1-12.3-17.8l-4.3-1.7a15 15 0 0 0-12.3.6 139 139 0 0 0-27.2 26.3A217 217 0 0 0 25.5 316c-8.3 22.6-11 37.9-11 48 0 10-3.5 14.4-2 28.8z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-D)" d="M77.7 393.6c-.2-7.5-1-14.5-1.3-20-5.6 7.3-11.9 14.7-14.3 18.2a196 196 0 0 1-15.2 15.8c-3 8.9 1 16-1.6 20.1a37 37 0 0 0-4.2 17c.2 4.7-3 7.4-3 9 .1 1.5.2 8.6 4 8.5 3.8-.2 11-3.8 13.8-6.6a64 64 0 0 0 9.5-14.6l5.6-10.4a73 73 0 0 0 6.7-37" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="url(#sh-ac-ac-E)" d="M65.4 441c-.5 1 7.5 6 9.5 7.5s3.5 3.3 4.8 1.3c1.4-2 6.7-7.5 8.5-25 1.8-17.4-3.2-37.6-3.2-37.6l-7.3 6.4a73 73 0 0 1-6.7 37z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#e6c7ac" d="m360.9 362.7.8 11.7 4.2-3.7c27.7-25.5 27.3-46.5 26.8-52.3-1.3 1-3 3-5.2 4-3.9 1.9-9.5.3-9.2-2.2-.6 3.8-1.2 5.3-1.3 5.8-.3 1 1.3 6.9-.9 11.7-2 4.9-3.6 5.4-5.1 7.6s-3 7-6.7 12.5l-3.4 5z"/>
+ <path fill="url(#sh-ac-ac-F)" d="M135.1 296.2q.7.7 1 1.5a336 336 0 0 1 7.9 23c1.3 4.6-1.5 6.1-1.3 9.6s-2.5 6.7 0 14.3 8.8 9.2 10.5 6.7 10.7-16.8 12.4-21c1.8-4-.6-15.1-.4-21.2s-2-22.7-5.2-24.5c-3.2-1.7-6.2-8.6-13.5-15.2-7.4-6.7-12.2-5.8-13-8.3-.6-2.6-5.8-3.3-5.8-3.3s-.2-1.3-3.7-3.2l-2.2-3.4c1.4-4.4-.7-12.8-.7-12.8 3.9-4 12.5-13.6 13-18.3.5-6.5 5-19.6 2.3-21 1.8-1.5 3.2-2.4 2.3-3 0 0-10.8-7.9-19.8-3-9 4.7-23 14.7-23.1 24.4a45 45 0 0 1-4.6 22.3l4.3 1.7c4.3 1.7 12.2 13.8 12.3 17.8.5 21.3-.5 33.8-1.5 41.1-.6 4.3 9.1 7 16 3.7 3.5-1.8 6.5-5 8.8-6.8q2.5-2.3 4-1.1m-17.6-91.4c-.3-2.4-.4-3.4 1.3-4.6 2-1.5 4.1-1.2 5.4-1 1.4.3.1 2.4-1.6 4.1s-5 2.8-5 1.5z" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#f0ceb8" d="M385.5 261.9c-1 .7-.9 1.3-.7 2.7.1.8 2 .1 3-.9s1.7-2.2 1-2.3c-.8-.2-2.1-.4-3.3.5m1.8 1.2q-.4-.2-.3-.6t.6-.3q.5 0 .4.6-.2.3-.7.3"/>
+ <path fill="#f0ceb8" d="M387 262.5q0 .4.3.6.5 0 .7-.3 0-.4-.4-.6-.4 0-.6.3"/>
+ <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3">
+ <path d="M388.2 275s2.3-3.9 3.1-4.7c.9-.7 1.6-4 1.8-5a6 6 0 0 1 2.7-4c1-.9 1.9-1.4 1.3-1.7 0 0-6.2-4.6-11.5-1.9-5.3 2.8-13.3 8.6-13.4 14.3.2 8-2.7 13-2.7 13"/>
+ <path d="m385.8 285.3 1-1.2c2.3-2.3 7.4-7.9 7.6-10.6.3-3.8 3-11.4 1.4-12.3"/>
+ <path d="M386.9 284.1s1.2 4.9.4 7.5l1.2 2m-8.1 0s3.3-2.4 7.4-.4l.7.3c2.1 1.2 2.2 2 2.2 2s3 .3 3.5 1.8c.3 1.5 3.2 1 7.4 4.8 4.3 4 6 8 8 9 1.8 1 3 10.6 3 14.1-.2 3.6 1.2 10 .2 12.4a131 131 0 0 1-7.3 12.2c-1 1.4-4.6.5-6-4-1.5-4.3 0-6.2 0-8.2-.2-2 1.5-3 .7-5.6-.8-2.7-3.9-12-4.5-13.4l-.7-.9c-1-1.2-3-2.6-4.4-3.2-1.7-.8-8.1-5.4-8.1-5.4m-4.2 11c.6-4.2 1.1-11.4.9-23.8 0-2.4-4.7-9.4-7.2-10.4l-2.5-1c-2-.6-4.5-1-7.2.4a81 81 0 0 0-15.8 15.3c-3 4-10.4 15.4-15.2 28.6a85 85 0 0 0-6.4 27.9c0 5.8-2 8.4-1.2 16.8 1 8.4-.4 15.6 1.1 19.6s6 1.6 8.5-.8l10.4-10.1c4.1-4 8-8 8.9-9.3 1.4-2 5-6.3 8.3-10.6l3.4-4.9c3.6-5.4 5.2-10.3 6.7-12.5s3-2.7 5.1-7.6c2.2-4.8.6-10.6.9-11.7 0-.5.7-2 1.3-5.8z"/>
+ <path d="M392.7 318.4c-1.3 1-3 3-5.2 4-3.9 1.9-9.5.3-9.2-2.2m16.7-2.5q-.9-.6-2.3.7m0 0c.5 5.8 1 26.8-26.8 52.3l-4.2 3.7-.2.1"/>
+ <path d="m360.9 362.7.8 11.7c.2 6.9-.3 14.6-4 21.5l-3.2 6a37 37 0 0 1-5.5 8.6 17 17 0 0 1-8 3.8c-2.3 0-2.3-4.1-2.4-5 0-.9 1.9-2.4 1.7-5.2a22 22 0 0 1 2.5-9.9c1.5-2.4-.8-6.5 1-11.6m41.7-120.7c-1 .7-.9 1.3-.7 2.7.1.8 2 .1 3-.9s1.7-2.2 1-2.3c-.8-.2-2.1-.4-3.3.5"/>
+ <path d="M387 262.5q0 .4.3.6.5 0 .7-.3 0-.4-.4-.6-.4 0-.6.3m-21 108.2s3 11.7 1.9 21.9c-1 10.1-4.2 13.3-5 14.5s-1.6 0-2.8-.8-5.8-3.7-5.5-4.3q0 0 0 0"/>
+ </g>
+ <path fill="url(#sh-ac-ac-G)" d="m107.6 273-5.3 29.3c-.2.7-2 14.6-2 14.6s-1 9-4 13.5-6.9 10.3-11.2 18.8c-4.4 8.5-7.5 15.3-24.2 34.8-16.6 19.6-26.4 30-26.4 30s-14.2 14.3-17.8 15c-1.2.5 1.6 1.4 2.8 1.3 1.2-.2 4.1-1 5.7-2.1 1.5-1.1 24.6-23.4 24.6-23.4s11.7-10.8 27.6-32.6c15.9-21.7 12.2-24.7 18.3-31a34 34 0 0 0 8.9-22l-.5-8.6s3.4-16.2 3.5-22.5v-15" transform="translate(316.5 145.5)scale(.58162)"/>
+ <path fill="#f0955d" d="M365.5 340.8c.8-3 4.7-10.4 5-11.7q.5-2 1.4-1.5l3.1.9q-.4 3.6-1 6.2c-.8 2.7-5 7.6-5.6 8.9l-1 2-1.3-.4c-1.7-.6-1.4-1.4-.6-4.4m5.2-18.6c.3-1.9 3.6-10.6 3.8-12.3q.3-2.3 2-1.9l1.8.6c-1 5.2-2.4 12.4-2.8 15.3l-.2 2.3c-4.9-1.5-4.8-2.2-4.6-4m-18.9 43c-.1-1.4 5-6.7 6.9-9a19 19 0 0 0 4-7.7c.3-1.9.6-1.9 1.7-1.5l2 .7a88 88 0 0 1-5.8 10.4c-1.2 1.6-4.3 5.5-7.8 9.6-1-1-.9-1.5-1-2.5m-25.7 28c-.3-.3 6.1-6 8.9-8.6a88 88 0 0 0 10.2-12.5c.8-1.8 1.6-1 2.4-.8l1.6.8c-3.4 4-6.4 7.6-7.5 8.7-2 2.1-10.7 11.4-14.5 13.7q-1-.9-1.1-1.2z"/>
+ <g mask="url(#sh-ac-ac-bd)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M84.4 335.8c1.3-5 8-17.8 8.5-20.1s1.3-2.9 2.4-2.6l5.4 1.6c-.5 4-1 7.8-1.9 10.6-1.3 4.6-8.3 13.1-9.5 15.3l-1.8 3.6-2.1-.8c-3-1-2.4-2.5-1-7.6m9-31.9c.4-3.3 6-18.3 6.3-21.2.4-2.8 2-3.7 3.4-3.3l3.3 1c-1.7 9-4.2 21.5-4.8 26.3l-.5 4c-8.3-2.5-8.2-3.8-7.7-6.8m-32.6 74c-.2-2.5 8.7-11.6 11.8-15.5s6.7-10.2 7-13.4c.4-3.2 1-3.2 2.9-2.5l3.3 1.2c-2.9 5.9-7 14-9.9 17.9-2 2.7-7.4 9.4-13.4 16.5-1.9-1.6-1.5-2.6-1.7-4.3zM16.6 426c-.5-.6 10.5-10.5 15.3-15 4.7-4.3 16.2-18.3 17.6-21.3 1.3-3 2.7-1.8 4-1.4l2.7 1.4a404 404 0 0 1-12.8 14.9c-3.5 3.7-18.4 19.6-25 23.5-1.3-1-1.5-1.6-1.8-2z"/>
+ </g>
+ <path fill="#f0955d" d="M379.2 306.8c-3.6-.4-4-1.7-3.8-3s1.6-6 1.4-8.2c0-2.2-3.5-7.2-6.3-8.3-3.1-1.3-2.3-2.1-2-2.6 0 0 3.9 1.2 5.2 2.4a21 21 0 0 1 5.5 10.4c.4 4.1 0 9.3 0 9.3"/>
+ <g mask="url(#sh-ac-ac-bc)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M107.9 277.4c-6.3-.7-6.8-3-6.5-5.3s2.7-10.2 2.4-14c-.2-3.8-6-12.4-11-14.3-5.3-2.1-3.8-3.6-3.2-4.4 0 0 6.5 2 8.8 4.1s8.9 10.6 9.5 17.8 0 16 0 16z"/>
+ </g>
+ <path fill="#f0955d" d="M363.4 302.5c-.7-.2-2-.3-3 .2l-5 3c-.7.1-1.7 2.4-1.7 2.4s-.5 1.5-.4 2.7.2 6.4.4 6.9a11 11 0 0 0 3.4 3c1.6 1 7.8 3 9.1 3.3s2.6-1.3 2.6-2.7 1-6.5 1.5-8c.4-1.6 2.5-8 .3-8.7-2.1-.8-7.2-2-7.2-2z"/>
+ <g mask="url(#sh-ac-ac-bb)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M80.7 270a7 7 0 0 0-5.2.3c-1.7.9-7.7 4.7-8.7 5-1 .4-2.7 4.3-2.7 4.3s-.8 2.7-.7 4.7c0 2 .3 11 .6 11.8.4.7 3 3.6 5.9 5.2a100 100 0 0 0 15.7 5.6c2.2.4 4.4-2.3 4.5-4.6 0-2.4 1.8-11 2.5-13.8.7-2.6 4.2-13.6.5-15-3.7-1.3-12.4-3.4-12.4-3.4z"/>
+ </g>
+ <path fill="#fdf2e8" d="M377.4 282.5s7.1.4 6.3 1.5c-1 1.1-1.6 2.9-3 2.4-1.5-.5-6.3-3.7-3.3-3.9"/>
+ <g fill="#d5ccc0">
+ <path d="M396.4 264s-.8-.5-1.4 1.8a41 41 0 0 1-2.5 7.5c-.8 1.5-6.6 10-7.3 11s.6 2.5 1 1.8 0 3.3-.3 4c-.4.7-.5 2.2-1.5 2.3-1.1 0 0 0 0 0s3.3.4 3.4 2.2c0 1.7 2.5-.4 1.3 1.5-1.2 2-.4 5.4.7 3.5 1-1.9 3.2-3.9 3.3-2.6.2 1.3 1.2 1.5 1.6 1.6s3.4 1.6 5 3a68 68 0 0 1 6.9 7.2c1.3 2 3.9 3.3 5.2 8.7 1.3 5.5 0 0 0 0s-1-5.4-2-6.2c-1-.9-4-4.6-4.8-5.6-.9-1-4.7-5-6.9-6s-3.9-1.8-4-2.2c0-.5-.8-1.4-1.9-1.7s-1.2 0-1.6-.7a9 9 0 0 0-2.1-1.7l-.6-1s-.7-.4-.5-1.2 0-3.8-.1-5.1c0-1.4-.6-1.8 0-2.3.4-.6 4.5-4.8 5.7-7.2a20 20 0 0 0 2-6.4c0-1.4 1.4-6.2 1.4-6.2"/>
+ <path d="M385 311.2s-1.2 0-2.7-.4c-1.4-.3-3.4.2-3.2-1.5l.1-12.1s.6-2.3-2.4-6c-3-3.9-4.1-5-5.1-5.4l-.3-.1s1.8-1.4 2-4.5c.3-3 .7-9.3 1.2-6.7s-.9 5.2.7 6.1c1.6 1 5.9 1.5 7.2 1s2.6-2.8 2.6-2.8l2.8-3.3c.3-.5 1.4.4.2 1.4s-3 3-3.1 4c0 1 1 1.6-1 2.6-1.9 1-1.6.6-3.2.3s-3.7-.8-4-1.1-1.7-.3-.6.6c1.1 1 2.7 3 4.5 3q2.5.2 3.3-.5c.6-.4 1.6-.3.8.2s-1.7 1-3.4 1.3c-1.3.2-2.5.8-4.2-1.2-1.7-1.9-2.3-2.1-2.3-3.6s-1.3 1.3-.2 3.5 5 4 6.7 4.5c1.5.6 2.8 1.7 1.8 1.9s-2.8 1-3 1.5 0 1 .8 2.5c.9 1.6 3.7 10.9 5.6 13 2 2.1 4.2 5.3 2.5 4.2l-4.4-2.9m11 7.5a54 54 0 0 1 7.2 14.6c.5 3.3-2.7 5.3-2.4 8.5s1.9 9.5 3.3 7.7 4.5-3.5 3.4-1.7c-1.1 1.7-2 4.3-4 3-2-1.5-4.6-3.7-4.4-8.1s.8-4.3 1-6.3q.6-2.1.5-3.4c0-.9-4.7-14.3-4.7-14.3z"/>
+ <path d="M382.7 312s.7 2.7 1.9 1.8 2.8 0 2.3.5 0 1.8 1.4 1.7q2.2-.1 2.3.5c0 .6.5 1.6 1.2 1.5s-2 2.9-2.5 3.3l4-3.4c1-.8 1.7-.4.5-1.4s-8.4-5.3-8.4-5.3-.7 1.2-2.7.8"/>
+ </g>
+ <path fill="#fdf2e8" d="M391.3 270.3c-.1-1.8-2.5-3.6-4.5-1.6s-3 6.7-5.5 5.5c-2.7-1.2-7.2-3.2-6.6-.7.5 2.4 2.9 5.3 5 5 2.2-.4 6.2-1.5 11.6-8.2m-6.2 8.5c.6-1.3-2.6.9-5.3.7s-2.2 1-.8 1.5 2.6 1.1 3.3.7c.8-.4 2.4-2 2.8-3zm-6.8 8.3s1.8 2.6 2.5 2.5c.8-.2 2-2.6 2-2.6s-3.1 1.3-4.5 0zm19-27s-5.5-3-8.5-2.5-7 3.6-8 4.2c-.8.6-3.1 3.7-4 3.5q-1.3-.2.5-1.9c1.3-1 7.4-6.3 10.9-6.5s7.3 1.8 8.1 2c.8.3 1 1.1 1 1.1m-25 13.3s1 1.5.8 2.6c0 1-2 9.7-2 9.7l-1.6-.4s3.2-9 2.9-11.9z"/>
+ <path fill="#d5ccc0" d="M379.1 309.3s1.6.3 1.4 3.1c-.1 2.9-.3 8 .5 8.8s7.6 1.3 5.2 1.6-6.7.4-7.6-1.3c-1-1.7 0 0 0 0l-.3-1.9z"/>
+ <path fill="#ad5f38" d="m364 302.7-5.2 2.8 7.1-2.4zm4.9 1.3-6.1 2.6 8.2-1.7m.6 1.9-7.3 1.6 7.2-.1m-.5 2.5-11.7-1.7 10.8 5m-.2 1-11.5-3.2 10.6 7.6m0 .9-10.9-6.1 10 8.8m-1 .7-5.4-4.7 2.8 4.4m-2.6-.8-4.7-6.7 1.8 5.6m-2-1-2-3.9.5 3"/>
+ <path fill="#f0955d" d="M357.4 289.1s3.3 2 3.5 2.4c.3.5.5 5.8.4 6s-1.2 3-1.6 3.1c-.3.2-7 4.1-7.5 4.2-.5 0-3.7-.2-4.2-.4-.4-.1-2.8-2-2.8-2"/>
+ <g mask="url(#sh-ac-ac-ba)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M70.4 247s5.7 3.3 6 4c.5.9.8 10 .7 10.4-.2.3-2 5-2.7 5.4-.6.3-12.1 7-13 7.1-.8.1-6.3-.3-7-.6-.9-.2-5-3.4-5-3.4"/>
+ </g>
+ <path fill="#f0955d" d="M358.7 288s2.4 2.3 3.4 2.5c1 .1 7.3-.8 7.6-1.2.4-.4-2.2-3-6.1-4.5"/>
+ <g mask="url(#sh-ac-ac-a9)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M72.6 245s4.2 4 5.9 4.3 12.5-1.4 13.1-2-3.9-5-10.6-7.8"/>
+ </g>
+ <path fill="#f0955d" d="m371.2 290.8-7.2.8c-.6 0-1 2.9-1 5l.3 4.3 9.4 3c.4.1 1.8-4.1 1.6-7.5-.2-3.3-2.5-5.7-3-5.6z"/>
+ <g mask="url(#sh-ac-ac-a8)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="m94.2 249.8-12.5 1.4c-1 0-1.8 5-1.6 8.6l.4 7.5 16.1 5c.8.3 3.2-7 2.8-12.8-.3-5.7-4.2-9.8-5.2-9.7"/>
+ </g>
+ <path fill="#f0955d" d="m343 305.7 6 .5q1.4.2 1.4 1.8c.1 1 1 9 1.2 9.8s.1 1.7-1.2 3c-1.4 1.2-4 3.1-4.7 3.5s-2.6 1-5 .2l-6.7-2"/>
+ <g mask="url(#sh-ac-ac-a7)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M45.8 275.5s8.3.6 10 .9q2.6.4 2.7 3.1a263 263 0 0 0 2 16.8c.4 1.3.2 3-2.2 5a73 73 0 0 1-8 6.2 11 11 0 0 1-8.7.4l-11.4-3.6"/>
+ </g>
+ <path fill="#f0955d" d="M355.6 322.4c-.9-.4-2.3-1-3.7.2a47 47 0 0 0-5.2 6.2q-.5.8-.3 2.2c.2 1 .6 6.3.9 7.5.2 1.1.6 3.1 3.1 4.2 2.5 1 8.6 4.5 10.8.3s6.3-13.6 6.6-14.6q.8-1.3-2-2.1z"/>
+ <g mask="url(#sh-ac-ac-a6)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M67.3 304.2c-1.5-.7-3.9-1.7-6.3.3s-8.3 9.6-9 10.7-.7 2-.5 3.8c.3 1.7 1 10.8 1.5 12.8s1.1 5.4 5.4 7.3c4.2 1.8 14.7 7.7 18.6.5s10.8-23.4 11.4-25-.2-2.6-3.5-3.7c-3.4-1.1-17.6-6.7-17.6-6.7"/>
+ </g>
+ <path fill="#f0955d" d="M349.6 344.3c-1.9-.8-4.3-1.3-5.3.7s-4.4 8.2-5.5 9.6-1.6 6.2-.1 7.5c1.4 1.3 6.4 4.6 7.3 5s3.5 0 4.3-2 6.6-11.2 8.2-12.6c1.6-1.3 1.6-4.4-1.1-5.1a84 84 0 0 1-7.8-3z"/>
+ <g mask="url(#sh-ac-ac-a5)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M57 342c-3.2-1.5-7.4-2.4-9.2 1.1s-7.5 14-9.3 16.5c-1.8 2.4-2.8 10.6-.3 12.8s11.1 8 12.5 8.6c1.5.7 6 0 7.4-3.4 1.4-3.5 11.4-19.3 14.2-21.6s2.8-7.7-2-8.9c-4.6-1.2-13.3-5.2-13.3-5.2z"/>
+ </g>
+ <path fill="#f0955d" d="M339 366.7c-1.1-.5-1.5-.8-2.4 0-.8 1-7.9 7-9 7.8-1.3.8-1.3 1.4-1.2 2.7 0 1.4-.7 9.1-.6 10.8 0 1.6 0 2.1 1.8.5s12-11.4 12.8-13c1-1.6 4.2-7.3 2.6-7.6s-2.6-.7-4-1.2"/>
+ <g mask="url(#sh-ac-ac-a4)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M38.8 380.3c-2-.8-2.6-1.3-4.1.2A313 313 0 0 1 19 393.7c-2.2 1.5-2.1 2.4-2 4.8.1 2.3-1.2 15.6-1 18.4s0 3.8 3.1 1 20.5-19.7 22-22.4c1.6-2.7 7.2-12.5 4.5-13a28 28 0 0 1-6.9-2.2z"/>
+ </g>
+ <path fill="#f0955d" d="M323.7 373.1s2.5-.2 3-.9 6.3-5.5 7.2-6.3q1.6-1.1 1.7-2l.1-5.5c.2-1-1.1-1-2.3-1s-8.5.5-8.5 1"/>
+ <g mask="url(#sh-ac-ac-a3)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M12.4 391.4s4.4-.4 5.2-1.5S28.5 380.3 30 379c1.6-1.3 3-2.5 2.9-3.5s0-7.8.3-9.4-2-1.8-4-1.7-14.7.8-14.7 1.6"/>
+ </g>
+ <path fill="#f0955d" d="m324.9 356.7 9.2-.4c1.1-.1 1.6-1.1 2.5-2.9l2.3-4q.3-1-1.3-1.6a38 38 0 0 1-10.5-5.2"/>
+ <g mask="url(#sh-ac-ac-a2)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M14.5 363.1s13.8-.5 15.8-.7 2.7-1.8 4.4-4.9l4-7c.4-.9-.7-2-2.4-2.6a68 68 0 0 1-18-9"/>
+ </g>
+ <path fill="#f0955d" d="M328 339.3a19 19 0 0 0 10.6 6.1c.8.2 2.2.3 3-.7.9-1 2.3-2.5 2.8-2.8s0-1.8-.2-3c0-1.2-1-10.2-1-11 .1-.9-.8-1-1.8-1.3s-7.5-2.7-8-2.6"/>
+ <g mask="url(#sh-ac-ac-a1)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M19.8 333.2A33 33 0 0 0 38 343.8c1.4.3 3.9.5 5.3-1.2a39 39 0 0 1 4.7-4.8c.9-.6 0-3.2-.3-5.3l-1.6-19c0-1.3-1.5-1.5-3.2-2-1.6-.6-13-4.8-13.8-4.6"/>
+ </g>
+ <path fill="none" stroke="#af6d4a" stroke-miterlimit="10" stroke-width=".6" d="M368.6 284.7c-.4.5-1.2 1.3 1.9 2.6 2.8 1 6.2 6.1 6.3 8.3.2 2.2-1.2 6.8-1.4 8.1-.1 1.4.2 2.7 3.8 3"/>
+ <path fill="#ad5f38" d="M372.6 292h-6.5l5.3-1.2m1.8 2-8.7.4 9.4 1m.4 2.2-8.2-1.2 8 3.7m-.1 1-7.6-2.3 7 5m-2 .8-4.5-3.2 2 2.4m.3-13.1-6-.7 4.5-1.7s2.6 2.1 1.5 2.4m-3.4-3.7-3.1 1.4 4-.8m-4.4-1.1-.5 1.1 2.2-1.4s-.6-.1-1.7.3m-2.7 5.2-1.3.3 2.4.4m.4 1.3-1.5-.2 1.6 1.6m0 2.4-3-2 2.9 3.8m-.5 1-5-2.5 3.3 4.5s1.4-.8 1.7-2m-4.7 3.8-1.6-5 3.1 4.2M354 304l-1-4.5-1 5.4m-1.5 0-.1-3.3-2 3m-1-.5.2-2.3-1 1.6m.6 2.7-2 .7 5.2.5s-1.3-1.3-3.2-1.2m3.4 3-6-1 6.2 3m.2 1.8-6.2-1.6 6.8 3.7m.1 2-8-4 8.2 6.3m-1.3 1.4-7.4-6.4 5.6 8m-2.3 1.6-5.2-7 2 8.3m-3-.7-2-6v5.4m-2-.6-.7-4-1.5 3.3zm.2 1.7h-2.2l4.8.9m2.6.8-6.4.3 8.1 2s-.1-2.4-1.7-2.3m2 4.3h-8l8 2.6m.1 1.6-6.7-1.8 7.4 4.5m0 1.7-7.4-3.8 7.4 6.2m-1.1 1-6.8-5.5 4.8 7.7m-2.7.3-5.3-7.9 2 6.8m-3-1.4-2.5-6.2-.3 4.1m5.6 6-5.3-.5 9.1 3s-1.3-2.1-3.8-2.4zm3.2 3.5L331 348l6.4 4m-1 2.3L331 349l3.7 7m-2.1.3-4.1-6.5 2.2 6.6m-1.9.1-2.3-6.1.7 6.2m8.3 6.8-5-2.6 4.2 4.3m-1.2 1.3-4.3-3.3 2.8 4.3m-1.3 1.1-4.2-6.2 2.7 7.5m-1.3 1.1-3-9.3 1.4 10.8m-.9.4-1-6-.5 6.3m37.1-48.6-6.4.7 12.7 2m.7.5-13.4-.5 12.4 3-12.9-1.2 12.2 3m-.6 2-13.4-3.2 12 5.3m-1 3.1-8.9-5.7 7.5 8m-1 1.8-9.1-7.6 6.2 9.3s2-.3 3-1.7zm-4.5 1.6-6.3-9.1 3 8.1m-2.8-1.2-1.5-5.9-.8 4m11.2 8-8.7-2.3 9 4.5-10.4-3.5 9 5.3s1.3-1.2 1.1-4"/>
+ <path fill="#ad5f38" d="m358.2 352.8-10.7-3 9.3 4.8m-.5.6-9.9-3.1 8.2 5.5m-1 1.4-7.4-4.7 6 7.2m-.7 1.1-6.6-7 6 8.4m-.7 1.3-6.1-8.7 3.4 10.6s2-.7 2.7-2zm-4.5 1.6-2.8-8.4.4 6.9m-1.4-1-.9-4.9-1.1 3.6m3.2 7.3L339 368l2.9 5m-.6 1-4.3-3 3.1 5m-1 1.3-4.3-5.5 2.9 6.8m-1.5 1.6-3.8-6.8 2.2 8.4m-1.1 1-3.3-8.1 1.5 9.9m-1.8 1.8-1.6-10.6-1 12.9"/>
+ <path fill="#d5ccc0" d="M358.2 366.2s2.6 12.3.9 23.1 1.6-1.9 1.7-2.3a84 84 0 0 0 0-24.3zm-9.2 44.3s-9.5 5-8.7 1.3 2-4.5 2.4-6.4c.5-1.8.5-5-.6-3.8-1 1.2-.7-4 .5-5.5s3-6.2 2-6.2c-.8 0-1.1-3.8-.7-5.1.5-1.4 4.7 2.8 10-13.1l-10.1 10.8s-1.2 3.2-.6 6.9c.6 3.6-.9 5-1.6 7.4-.6 2.3-1.6 6.3-1.2 7.6.3 1.4-1.8 4-1.7 5.4 0 1.4.7 4.6 2 4.5 1.2-.2 6.5-1.6 8.3-3.8"/>
+ <path fill="#fdf2e8" d="M344 389.1c-.1-.6-.6-1.8.5-1.5 1.1.2.5 2.5.2 2.3q-.5-.2-.7-.8m-2.6 12c0-.8 0-2 1-1.5s-.3 2.5-.6 2.3q-.4-.2-.4-.9z"/>
+ <path fill="#d5ccc0" d="M361.5 380.5s1.1-4.6 3.5-3.2 3 10.4 3 10.4-.1-9.1-2.3-16.9l-4.2 3.7zm-3 13.8s2 12.4 3.4 11a49 49 0 0 0 6-13.3s-1 8.1-4 13.6c-1.8 3.3-3 1.6-4.7.3s-4-2.6-4.7-4z"/>
+ <path fill="#c6ac95" d="M381.1 322.8s-2 1.6-1.7 3.6.9 4.2-.5 7.4c-1.5 3.2-1.9 6-3.6 8l-6.3 7.4s1.4-3.4 2.7-4.8c1.3-1.5 5.4-6 5.4-10.5l-.1-7.8 1.2-5.3s1 2.1 2.9 2m5.8.1s5.4 2 5.4 4.8.7-7.1.4-9.1c0 0-4.2 3.9-5.8 4.3"/>
+ <path fill="#caa178" d="M381.4 323s-1.2 2.5-1.3 5.2c0 2.8 5 3.8 8.1 3.9 3.2 0 3.4-.2 3.4-.2s1.6-10.2 1.1-13.3c0 0-3.4 3.4-6.1 4.2-2.8.7-5.2.1-5.2.1z"/>
+ <g mask="url(#sh-ac-ac-a0)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M111.7 305.1s-2 4.4-2.2 9.1 8.5 6.6 14 6.6c5.4.1 5.7-.2 5.7-.2s2.8-17.6 2-23c0 0-6 6-10.7 7.2s-8.8.3-8.8.3"/>
+ </g>
+ <path fill="#caa178" d="M391.2 333s-4.7-.2-7.4-.6c-2.7-.5-3.5.5-4 2s-2.3 5.6-3 7c-.6 1.3.3 3.6 2 4.6l5.6 2.5s5-8.8 6.8-15.5"/>
+ <g mask="url(#sh-ac-ac-aZ)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M128.5 322.5s-8-.4-12.7-1.2-6 1-6.8 3.6c-.8 2.5-4 9.6-5.2 12-1.1 2.3.5 6.2 3.5 7.8s9.5 4.5 9.5 4.5 8.8-15.3 11.7-26.7"/>
+ </g>
+ <path fill="#caa178" d="m382.3 351.9-5.4-4.3c-1-.8-2.6-.8-4 1.5-1.6 2.3-3.9 7.4-4.9 8.7q-1.5 2.1-.2 3.8c1 1 3.1 4.2 3.1 4.2s8.1-8.4 11.4-14z"/>
+ <g mask="url(#sh-ac-ac-bf)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="m113.2 354.9-9.3-7.4c-1.7-1.4-4.5-1.4-7 2.6s-6.5 12.7-8.3 15c-1.7 2.3-2 4.8-.3 6.5s5.4 7.1 5.4 7.1 13.8-14.3 19.5-23.8"/>
+ </g>
+ <path fill="#caa178" d="M361.2 367.3c2.1-3.4 3-5.5 4.2-4.8s4.4 4.4 4.4 4.4l-8.3 7.6z"/>
+ <g mask="url(#sh-ac-ac-aY)" opacity=".4" transform="translate(316.5 145.5)scale(.58162)">
+ <path fill="#652e11" d="M77 381.5c3.6-5.9 5.1-9.6 7.2-8.4a57 57 0 0 1 7.5 7.7l-14.2 13z"/>
+ </g>
+ <path fill="#c6ac95" d="m364.1 362.9-3 4.4-.2-4.6s5.2-6.7 6-8.6c0 0 0 3.9-1.1 5.6q-.6.8-1 2.7-.3 0-.7.5"/>
+ <path fill="#b28f6b" d="M364.1 362.9q.4-.5.7-.5c-.6 2.5-.7 5.8 1.6 7.8l-4.9 4.3-.4-7.2z"/>
+ <path fill="none" stroke="#9f8d79" stroke-miterlimit="10" stroke-width=".6" d="M384.5 286.2s-4 2.5-6.4.7c-4.2-3-3.5-8.4-3.5-8.4"/>
+ <g fill="#494037">
+ <path d="M380.6 260.8c1.3-.2 3 .8 2.2 1.3s-.9 2.1-2 2q-1.5-.4-1.3-2.5c0-1.4 0 0 0 0zm-2.9 2.3s2 2.6 1.2 3.6-2 1.8-2 1c.2-.9-2.4-.3-2-1.7zm.7 7.6q-1.4.4-1.4-.5c0-.8-1.2-.5-1.2-1.2s1.5 0 2.4-.5c1-.3 2 0 2 .7s.7 1.4-.2 1.4zm-5-2.5s1.1 1 1 1.6c0 .6-2.3 3.2-2.2 2.2s1.1-3.8 1.1-3.8m9.6-8.9c-.2 1 2.5 1 3.2.4.6-.7 1.9-2.3-.5-2-2.4.4 0 0 0 0zm8.3-2.3c.8.7.2 1.1-.6.8-.7-.3-3.8-.4-2.3-1 1.4-.5 2.9.2 2.9.2m1.7 2.9a3 3 0 0 1-1 3c-1 .8-2 .9-1.9-.4s.3-2.2-.6-2.1-1.9-1 0-1.1 3.4-.3 3.5.6m-2.8 4.8c.7-.1 2.4 2.6 1 2.7-1.4 0-2.3-.2-1.8-1 .6-.7 0-1.5.8-1.7m-2.4 1.3c-.2-.6-1.8.2-1.8.8 0 .5-.9 3 1.3 1.7q.9-.6.5-2.5m2.8 3.4c-.3.4-1.2 1-1.5 2s-2.3.8-2.3.1-.5-1.9.5-2c.7.3 2-.7 2.8-.9q.9.2.5.8m-10.7 2.1c-.4-.7-2.7-.4-2.5 1q.3 2.5 1.1 2.4c.7 0 .2-1 .2-1.7s1.6-.8 1.2-1.7m-3.3 2.9q-.9.3-1-1c-.1-1.3-1-.1-1.2-.7 0-.5.5-1.1 1.2-.7s2 2 1 2.4m-4.4.8s1-.2 1 .3.2 2-.2 1.6-1-.1-1-.5zm12.4-1.6c.6.7.5.3.8 1s1.7 1 1.5 0c-.1-1.1 1-1.8.2-2-.7-.1-2.6-.8-2.6-.3s-.7.2 0 1.3zm-1.4-1.3c0 .6-.5 1.2.1 1.8s-1.2 1.6-1.9 1.4-.5-1.2 0-1.3-.2-1.8.5-1.8c.8 0 1.4-.7 1.3 0zm1.8-2q-.2 1-1.4.6c-.7-.3-1.4-.7-1-1.5s1-2.3 1.3-1.7q.8 1 1.1 2.7zm-3.2-3.9c-1 0-.3 1.5-1.2 1.2s-.7-2-.1-2.2c.5-.1 2.6-.1 2.6.6s-.6.4-1.3.4m2.6 9.2c.2.4.9 1.2 0 1.5s-2-.4-1.6-.7c.4-.4 1.1-1.3 1.6-.8m-5 0c.7.1.8 1.7.2 1.7s-2-.7-1.5-1 .6-.8 1.4-.7zm4 13c-.6.8-2 1-2 .7s.5-1.9 1-1.8 1.6.5 1 1.2zm-3.8 1c-.3-.3-1.3-.9-1.7-.7-.4 0-.7 1.6 0 1.6.8 0 2.4-.3 1.7-.8zm3.1 3c0-.7.2-1.1-1-1.1-1 0-.7.7-1.2 1.2s-1 1 .5.5zm-7.8-6c0-.6 1.2-.4 1.1 0 0 .3-1.1.9-1.1 0m-1.4-1.8c-.1-.2-.9-1.2-1-.8-.2.5.3.5.5.8q.5.4.5 0m-2.5-3.4c.8-.3 1.4 1.2.8 1.5-.6.2-2.2 2.2-1.8 1.1m9.5 17c1-2.4 1.7-5 4.7-2.4s3.8 4.9 1.4 5.3c-2.3.4-4.7 1.8-5.5.2s-.6-3-.6-3zm7-5.8c-.4.4-1.1.3-1 1 0 .7-2.4.3-2-1.7s4.2-.4 3 .7m5.2 4.1c1.8-.3 5-.4 5.4-.2s.3 2.5-1.5 2.6-5.4-2-3.9-2.4m-.2 3.7c.5 1.7-1 2-2.2 1.2-1.3-.7-2.1-1.7-1.3-2.1s3.1-1 3.5.9m-4 9.6s2.7-2.4 3.5-3.4c.9-1 .5-2.6-1.2-2.5s-4.4 4.4-4.1 4.6m5 3.2c.2-1.5 2.2-4.4 5.3-5.2s1.6.6 1.8-1c.3-1.6 2.2-.2 3 .8q1 1.6-1.7 1.9c-1.7.2-5.9 3-6.4 4.6m1-8.3c-.2-1-1.2-2.8-1-3.5s2.4-.6 3.6-1c1.1-.5 2.2.5 2.2 1.5s1.3 1.5 0 2c-1.1.5-4.6 1.7-4.7 1zm5-7.4-.7 2c-.2 1 1.5 1.8 2.2 1.6s3.1 1.4 3.4.5c.2-1-3-2.6-4.9-4.1m6 5.4s-3.3-1.2-3.2.1.2 3.5 1.3 3.6 2.6.7 3 1.4c.5.7 2.8 1.2 3 0l-4-5.1M389.4 294s-1.8 0-1.4 1.3l.4 1.6c0 .3 1.1-1 2.2-1.6m3.4 2s-.4.3-.8 0c-.3-.4-.4-1.2-1-1s-.5-.7-.5-.7 1.5.3 2.3 1.6m-4.7 3c-.5 0-2-.3-1.5-1s2.1-.5 2.2 0c0 .4 0 1.1-.7 1m-2.2-3.5q-1 .3-.9 1c0 .6.8.6 1.4.6s.1-1.7-.5-1.6m23.2 15.4c-.9-.6-2.5-.3-2.3 1.2a9 9 0 0 0 1.4 4.2c.6.7 2.5.8 2.3-.1zm-5.1-.5c-.5-.7-3.7-1-3 .2s1.1 3 .5 3.2-1.5 2-.3 1.6 1.6-1.2 2.7-1.1c1 0 1.5-1.8.1-3.9m4 7c-.5 0-.7 1.3-1.2.8s-.6 1.8.4 1.6.6 1.8 1.3 1.5c.7-.2 1-1.5.4-2-.5-.3-.2-1.8-1-1.8zm-1.8-2.2c-.2.6-1 1.8-1.8 1.9s-4-.5-2.6-.8 2.1-1.7 3.2-1.6c0 0 1.8-.8 1.2.5"/>
+ <path d="M401.1 312.3c.8.8 0 2.8-1 3s-.8 1.5 0 1.6c.9 0 2 2.6 2 2.7s-1.3 2.6-2.2 2.8c-.9.3-2.4 1.2-2.8.2l-1.7-4.4-1.5-1.6s.9-1.8 2.6-2.8 4.2-2 4.6-1.5m5.8 8.3c0 1.2-.6 2.3-2.4 2.3s-2.7-2.8-.1-3c2.6 0 2.6 0 2.5.7m-4.5 2.4c1-1 .9 2.8-.5 3s-1.4 2.1-2 .9c-.8-1.2-2.7-3-.3-3.5 2.4-.3 2 .3 2.8-.4m-.4 3.9c-.5.3-2 1.6-1.7 2.4s.4 3.3 1 3.2 2.2.2 2-1.5-.6-4.5-1.3-4.1m1.5 7.1c-.3-.8-3-.5-3-.5l-.6 1.9s-.5 1.6-.5 2.2 1.6 1 2.2.6 1.4-1.7 1.5-2.4c.2-.8.8-.6.4-1.8m-4.6 7c.3-1.2 2-1.5 2.9-1s.5.8 0 2.1-1 3.5-2 2.7q-1.3-1.2-.9-3.7zm6.6 8.8c-.8.6-3 .2-2.8-2 .2-2 2.4-4.8 4-5.7 1.4-1 3.3.5 3 1zm7.3-12.2-2.3 4.3s-1.8-1.6-1-2.6"/>
+ <path d="M409.6 339.3c.8-1-.5-2.7.6-2.8s2.7.8 2.6 1.1m-.3-5.2c0 1.3-.2 2.6-1.7 2.3s-.8-1.6-1-3.4c-.4-1.7.4-1.8 1.2-2 .8-.3 1.7-.3 1.8.6s-.4.6-.3 2.5m-1.3-7.2c.2 1.3.7 2-.8 2.2s-1.7.5-1.8-1-1.6-1.2-1.3-.5c.2.8.1 2-1 1.9-1.3-.1-4-1.1-2.7-2.3a6 6 0 0 1 5-1.7c2.3.3 2.6 1.4 2.6 1.4m-3.8 3.1c1 .1 1.1 3 1.1 3.8s-.2 2-1.5 2-2.4-.2-2.5-2.3.5-3.7 3-3.5zm0 8.3c0 .5-.3 2.1-1 2.9s-2 1-2.3 1c-.4 0-1.2-1.2-1-1.8.3-.7 1.9-1.8 2.1-2.7.3-.8 2.4-.7 2.3.6z"/>
+ </g>
+ <g fill="none" stroke="#9f8d79" stroke-miterlimit="10" stroke-width=".6">
+ <path d="M374.5 275.1s-.4 5.7 1.6 6l5.2.9c1.5.2 3.5-2.5 4-3.4.3-1 1.3-.8 2.9-3.6m-9.1 35s1.6 1.7 3.5 2 2.8-.8 2.8-.8m-6.4 1.3s3.2 3 5.7 2.8c2.5 0 3-2.5 3-2.5"/>
+ <path d="m378.8 315.6 2.4 1.3c.8.5 1.7 1.1 4.2 1 2.3-.1 4.5-2.3 6.2-2.9"/>
+ <path d="M394.1 316.5s-2 .8-3.4 2.3-7.5 4.2-12.3.2m4-9.9-1.8-1.2m-.3 1s.7-.2 1.5-.2"/>
+ </g>
+ <path fill="#494037" d="M386 307.6c-1.4.5-1.3 3-2.4 2.3s-2.2-1.8-2-2.8 2.9-2.6 4.2-2.2 1 2.4.2 2.7"/>
+ <g fill="none" stroke-miterlimit="10" stroke-width=".6">
+ <g stroke="#af6d4a">
+ <path d="M357.4 289.1s3.3 2 3.5 2.4c.3.5.5 5.8.4 6s-1.2 3-1.6 3.1c-.3.2-7 4.1-7.5 4.2-.5 0-3.7-.2-4.2-.4-.4-.1-2.8-2-2.8-2m13.5-14.5s2.4 2.4 3.4 2.6c1 .1 7.3-.8 7.6-1.2.4-.4-2.2-3-6.1-4.5m7.6 6-7.2.8c-.6 0-1 2.9-1 5l.3 4.3 9.4 3c.4.1 1.8-4.1 1.6-7.5-.2-3.3-2.5-5.7-3-5.6zm-28.1 14.9 5.8.5q1.5.2 1.5 1.8c.1 1 1 9 1.2 9.8s.1 1.7-1.2 3c-1.4 1.2-4 3.1-4.7 3.5s-2.6 1-5 .2l-6.7-2m21.6-.1c-.9-.4-2.3-1-3.7.2a47 47 0 0 0-5.2 6.2q-.5.8-.3 2.2c.2 1 .6 6.3.9 7.5.2 1.1.6 3.1 3.1 4.2 2.5 1 8.6 4.5 10.8.3s6.3-13.6 6.6-14.6c.4-.9 0-1.5-2-2.1zm-6 22c-1.9-.9-4.3-1.4-5.3.6s-4.4 8.2-5.5 9.6-1.6 6.2-.1 7.5c1.4 1.3 6.4 4.6 7.3 5s3.5 0 4.3-2 6.6-11.2 8.2-12.6c1.6-1.3 1.6-4.4-1.1-5.1a84 84 0 0 1-7.8-3zM339 366.6c-1.1-.5-1.5-.8-2.4 0-.8 1-7.9 7-9 7.8-1.3.8-1.3 1.4-1.2 2.7 0 1.4-.7 9.1-.6 10.8 0 1.6 0 2.1 1.8.5s12-11.4 12.8-13c1-1.6 4.2-7.3 2.6-7.6s-2.6-.7-4-1.2zm-15.3 6.4s2.5-.2 3-.9 6.3-5.5 7.2-6.3q1.6-1.1 1.7-2l.1-5.5c.2-1-1.1-1-2.3-1s-8.5.5-8.5 1m0-1.7 9.2-.4c1.1-.1 1.6-1.1 2.5-2.9l2.3-4q.3-1-1.3-1.6a38 38 0 0 1-10.5-5.2m.9-3.3a19 19 0 0 0 10.6 6.1c.8.2 2.2.3 3-.7.9-1 2.3-2.5 2.8-2.8s0-1.8-.2-3c0-1.2-1-10.2-1-11 .1-.9-.8-1-1.8-1.3s-7.5-2.7-8-2.6"/>
+ <path d="M368.6 284.7c-.4.5-1.2 1.3 1.9 2.6 2.8 1 6.2 6.1 6.3 8.3.2 2.2-1.2 6.8-1.4 8.1-.1 1.4-.7 2.6 3 3m-15-4.2c-.7-.2-2-.3-3 .2l-5 3c-.7.1-1.7 2.4-1.7 2.4s-.5 1.5-.4 2.7.2 6.4.4 6.9a11 11 0 0 0 3.4 3c1.6 1 7.8 3 9.1 3.3s2.6-1.3 2.6-2.7 1-6.5 1.5-8c.4-1.6 2.5-8 .3-8.7-2.1-.8-7.2-2-7.2-2zm2.1 38.3c.8-3 4.7-10.4 5-11.7q.5-2 1.4-1.5l3.1.9q-.4 3.6-1 6.2c-.8 2.7-5 7.6-5.6 8.9l-1 2-1.3-.4c-1.7-.6-1.4-1.4-.6-4.4zm5.2-18.6c.3-1.9 3.6-10.6 3.8-12.3q.3-2.3 2-1.9l1.8.6c-1 5.2-2.4 12.4-2.8 15.3l-.2 2.3c-4.9-1.5-4.8-2.2-4.6-4zm-18.9 43c-.1-1.4 5-6.7 6.9-9a19 19 0 0 0 4-7.7c.3-1.9.6-1.9 1.7-1.5l2 .7a88 88 0 0 1-5.8 10.4c-1.2 1.6-4.3 5.5-7.8 9.6-1-1-.9-1.5-1-2.5zm-25.7 28c-.3-.3 6.1-6 8.9-8.6a88 88 0 0 0 10.2-12.5c.8-1.8 1.6-1 2.4-.8l1.6.8c-3.4 4-6.4 7.6-7.5 8.7-2 2.1-10.7 11.4-14.5 13.7q-1-.9-1.1-1.2z"/>
+ </g>
+ <path stroke="#000" d="M379.2 303c-.2 3-3.2 16.7-3.7 20.9s-.8 8.1-1.6 10.8c-.7 2.7-4.8 7.6-5.5 8.9s-5.1 10.9-7.8 14.5-16.4 20-18.9 22.7-15.3 16.4-16.3 13.9"/>
+ <path stroke="#b49578" d="M381.4 323s-1.2 2.5-1.3 5.2c0 2.8 5 3.8 8.1 3.9 3.2 0 3.4-.2 3.4-.2m0 1s-5-.1-7.8-.5-3.5.5-4 2-2.3 5.6-3 7c-.6 1.3.3 3.6 2 4.6l5.6 2.5m-2.1 3.4-5.4-4.3c-1-.8-2.6-.8-4 1.5-1.6 2.3-3.9 7.4-4.9 8.7q-1.5 2.1-.2 3.8c1 1 3.3 4.5 3.3 4.5m-1.3.8s-3.1-3.7-4.4-4.4c-1.2-.7-2 1.4-4.2 4.8"/>
+ </g>
+ <path fill="#494037" d="M356.2 368.6c1.2-.6 2.9-.4 2.2.8s-2.7 3-3.6 3.1c-1 0-1.1-.7-.8-1zm2.5 2.9c1 .1 1.1 4.3.7 5-.5.9-1.3 1.7-2.1.2s-1.6-2.6-1-3.4c.8-.8 2-1.9 2.4-1.8m3 5.9c-.2-.8.1-4-1-2.7-1.2 1.4-.2 4-1 4.3s-2.4 1.3-.8 2c1.5.8 2.4 2.2 2.5 1.3zm-1.9 6.3c0 1-.5 4.1-1.1 5s-2.1 1.6-2.3.2-.4-3-1-3.3.3-1.3 1.9-2.2q2.5-1.2 2.5.3m-3 7.6c.1 1-1.8 1.3-1.7 2.3 0 1-.4 3-1.3 2.5s-1.2-2.3-1.2-2.8.1-2.3 1.4-2.8 2.6-.9 2.8.8m-4 5c.6.2.9 3.2.1 3.8-.7.6-2.3 1.3-2.2-.1.2-1.5-.9-1.6-.9-2.2s1-2.2 3-1.6zm-.1-6.1c.5.8-.5 2.1-1 2.7s-1 1.3-1.8.4c-.7-.8-1.9-2.2-.5-3.2q2.1-1.6 3.3 0zm-1.5-6.2c.4 1 1.5 2.8 1 3.2s-.9 1.2-1.9 1.2-2.9-1.3-3.2-1.8 1.6-2.2 2.2-3 1.3-1 1.9.4m-2.6 4.6c.6.4-.8 1.5-.7 2.3 0 .9 0 1.7-1.6.8s-3.3-1.6-2.2-2.9 2.4-1 3-1q1 .3 1.5.8m-5.3 3.5q0-.8 1.5.7c1 1 3.3 2 2 2.3q-2 .8-2 1.8c0 .5-1 1.9-1.5 1.4s-2-.3-2-.3 2-4.4 2-6z"/>
+ <path fill="#494037" d="M348.1 394.5c.5-.7 1-1.6 1.3-.3.3 1.2.7 2.2.4 2.6-.4.4-1.6.9-1.5 1.4s-2 1.1-2.2 0a4 4 0 0 1 .5-2.3c.2-.3 1-.6 1.5-1.4m1.8 5.1c1 1 1 2.5 1 3.4 0 1 0 2.6-.6 3.2s-2.1 2.6-4 2.7q-2.8.1-1.5-2.1c.8-1.6 4-8.2 5.1-7.2m-1 10.9s-2.1-.5-3 .1c-1 .6-1.3 1.5-2 1.9-.5.4-.8 1.4.8.6s4.3-2.6 4.3-2.6zm-8.2-10c.7-1 1.1-1 2.5-1 1.5.1 2.9-1 3 .3s-1.6 3.2-1.6 4c.1.8-1.1 2.3-1 3 0 .9-1.1 1-1.8.5s-1.7-.1-1.6-1.6zm-1.2 8.4c1-.3 2.4-.4 3-.1.5.2.8 1.3 0 2.3-.7 1-1.6-.6-2-.7-.5-.2-1.9-1.2-1-1.5m16.2-32.1c-.1 1-2.8 3-3.1 1.7-.4-1.2-1.6-2.5-.7-3.5s2.7-2 3-1.2.9 2.5.8 3m1 2 .6 2.2c0 .5-1.3 1.6-1.7 1.7-.4.2-2.3 3.1-2.6 2.5s-1.5-4.4-.7-4.7c.7-.3 4.2-2.5 4.4-1.8zm-7-2.2s1.4.2 1.5 1.2.4 1.8-.6 2.8c-1 1.1-2.8 2.3-3.4 1.7l-1.5-1.7zm-3.9 5.7c1.5 0 2 1 1.1 1.4-.8.6-1.8 1.5-2.1 2.2s-1.4.3-1.4-1.2a2.5 2.5 0 0 1 2.4-2.4m15.8 18c0-1.5.2-4.7 1.2-2.8 1 1.8-1.5 6-1.2 2.8m4.1-5c0 1-1 1.8-2 .4s.8-.4.9-1.5c0-1 1.1.2 1.1 1.2zm.7-4c.6-1 0-3-1-2.7-.8.3-1.8 2-1.1 1.9.6 0 1.3 2.4 2.1.9zm-3.3 0c0 .7.4 2.5-.5 2.5s-1.9-1.2-1.3-2.3c.6-1.2 1.8-1 1.8-.1zm3-11c-.3 1.4-1.8 1.2-1.7 2.3 0 1.1.6 4-.6 2.8a5 5 0 0 1-1.2-4.2c.2-.8.1-2.3 1-2.4.9 0 2.8-.3 2.5 1.6zm1.8 3.4s-1.4-1.7-1.6-.4-1.3 2.6-1.1 3c.2.5 3 1.9 2.8.4z"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".6">
+ <path d="M388.2 275s2.3-3.9 3.1-4.7c.9-.7 1.6-4 1.7-5 .4-3.7 5.2-5 4.1-5.7 0 0-6.2-4.6-11.5-1.9-5.3 2.8-13.4 8.6-13.4 14.3.2 8-2.7 13-2.7 13"/>
+ <path d="M385.8 285.3s8.3-8.3 8.6-11.8c.3-3.8 3-11.4 1.4-12.3"/>
+ <path d="M386.9 284.1s1.2 4.9.4 7.5l1.2 2"/>
+ <path d="M380.4 293.5s3.3-2.3 7.4-.3c2.8 1.3 3 2.2 3 2.2s3 .4 3.3 2c.4 1.4 3.3.9 7.5 4.7 4.3 4 6 8 8 9 1.8 1 3 10.6 3 14.1-.2 3.6 1.2 10 .2 12.4a131 131 0 0 1-7.3 12.2c-1 1.4-4.6.5-6-4-1.5-4.3 0-6.2 0-8.2-.2-2 1.5-3 .7-5.6-.8-2.7-3.9-12-4.5-13.4a13 13 0 0 0-5-4.1c-1.8-.8-8.2-5.4-8.2-5.4m-3.3-12.8c-.1-2.4-4.7-9.4-7.2-10.4s-5.9-2.6-9.7-.6a81 81 0 0 0-15.8 15.3c-3 4-10.4 15.4-15.2 28.6a85 85 0 0 0-6.4 27.9c0 5.8-2 8.4-1.2 16.8 1 8.4-.4 15.6 1.1 19.6s6 1.6 8.5-.8c2.4-2.4 17.3-16.5 19.3-19.4s8.1-10 11.7-15.5 5.2-10.3 6.7-12.5 3-2.7 5.1-7.6c2.2-4.8.6-10.6.9-11.7.2-1.1 2.7-6.2 2.2-29.7z"/>
+ <path d="M395 317.7c-1.4-1.3-3.9 2.9-7.5 4.6-4 2-9.5.4-9.2-2.1"/>
+ <path d="M392.7 318.4c.5 6 1 28.9-31.2 56.1"/>
+ <path d="M360.9 362.7c.4 8.4 2.8 21.9-3.2 33.2a64 64 0 0 1-8.7 14.6 17 17 0 0 1-8 3.8c-2.3 0-2.3-4-2.4-5 0-.9 1.9-2.4 1.7-5.2a22 22 0 0 1 2.5-9.9c1.5-2.4-.8-6.5 1-11.6"/>
+ </g>
+ <path d="M385.6 261.8c-1 .8-1 1.4-.8 2.8.1.7 2 0 3-1s1.8-2.2 1-2.3-2-.3-3.2.5"/>
+ <path fill="#fff" d="M387 262.5q0 .4.3.6.5 0 .7-.3 0-.4-.4-.6-.4 0-.6.3"/>
+ <g fill="none" stroke="#000" stroke-miterlimit="10">
+ <path stroke-width=".6" d="M365.9 370.7s3 11.7 1.9 21.9c-1 10.1-4.2 13.4-5 14.5s-1.6 0-2.8-.8-5.9-3.7-5.5-4.4"/>
+ <path stroke-width="1.2" d="M325 357a82 82 0 0 1 6.3-27.8 126 126 0 0 1 15.2-28.6c3-4 12-13.3 15.8-15.3 2.7-1.4 5.1-1 7.2-.3 0 0 3-5 2.7-13 0-5.7 8.1-11.5 13.4-14.3 5.3-2.7 11.5 1.9 11.5 1.9q.7.5-1.1 1.8c1.6.9-1.3 8.3-1.6 12-.2 2.8-5.3 8.3-7.5 10.7l.5 3.3.6 3.1c2.4-2.5 11.2-11.3 18-12.6 8.1-1.6 13.2-.2 15.6 1.7 2.1 1.8 8.5 6.8 10.7 11.3h-12a10 10 0 0 0-7-2c-7 .3-8.2 2.8-7.7 3.4s.6 2.5-2.1 3.8a9 9 0 0 0-4 4.3l2.1 1.7c4.3 4 6 8 8 9 1.8 1 3 10.6 3 14.1-.2 3.6 1.2 10 .2 12.4a131 131 0 0 1-7.3 12.2c-1 1.4-4.6.5-6-4-1.5-4.3 0-6.2 0-8.2-.2-2 1.5-3 .7-5.6-.8-2.7-3.9-12-4.5-13.4l-.7-.9-1.8.3-.5.4c.5 5.8 1 26.8-26.8 52.3 0 0 3 11.8 1.9 21.9-1 10.1-4.2 13.4-5 14.5s-1.6 0-2.8-.8-5.9-3.7-5.5-4.4a37 37 0 0 1-5.5 8.6 17 17 0 0 1-8 3.8c-2.3 0-2.3-4-2.4-5 0-.9 1.9-2.4 1.7-5.2a22 22 0 0 1 2.5-9.9c1.5-2.4-.8-6.5 1-11.6l-10.5 10c-2 2.1-5.7 4.2-7.6 2.3l-.3-.2-.6-1.2c-1.5-4-.1-11.2-1-19.6s1.1-11 1.1-16.8z"/>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/sh-hl.svg b/apps/web/public/flags/sh-hl.svg
new file mode 100644
index 00000000..2150bf60
--- /dev/null
+++ b/apps/web/public/flags/sh-hl.svg
@@ -0,0 +1,164 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sh-hl" viewBox="0 0 640 480">
+ <path fill="#006" d="M640 480V0H0v480z"/>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+ <path fill="#128bbf" d="M581.1 197c-.2 67.8-11 141-99.4 175.8-88.5-34.9-99.3-108-99.5-175.8z"/>
+ <path fill="#e8ece9" d="M481.7 372.8c40-15.8 65-41.6 79.3-69-2.2-.8-6.8-.9-8.6-.2-2.2-.2-85.5-6.3-95.3-9.9-8.6-3-41 2.7-56.2 8 14.1 29.3 38.6 54.5 80.8 71z"/>
+ <path fill="#69522b" d="M419.8 330.7c1.4-.4 4-.3 5-.2 1.2.3 1.4.4 1.8-1 .4-1.2 1.4-.9 2.2-.3.7.7 2.7.4 3.5-.7q.9-1.4 1.7-.2c.8.7 1 .5 1.9.3.7-.2 2-1 2.7-2.3.6-1.2 1.6-1.6 2.1-1q.8 1 1.9 1c.8-.2 1 .6.9 1.5s.3 1.2 2.1-.3c1.7 1.6 2.2 1 2.2-.7a36 36 0 0 0-1-9c-.7-.9-1.4-3.3-1.5-5.3-.2-3.7-.2-3.9-4.7-6.1 0-1.3-.3-1.9-3.4-1.7 0-.4-.5-1.7-1.1-2.2s-.8-.8-.5-2.3c1.3.1 2.8-.1 3.5-1.2s3.3-.8 4.8-.2q2.1 1 6.4.3 1.8-1.2 5-2.9c1.9-1 2.4-1.5 2.5-3 .3-3.9-1-8.3-2.1-10.4s-1.5-4.6-3-7.9c-1.6-3.5-1.6-4.4-3.5-6.5-.5-.6-1-1.1-1.2-2.3a6 6 0 0 0-1.8-4c-3.3-3-4.6-12.6-5.9-19.8-.7-4-.2-13.7-2-15.2-2.9-2.4-4.3-2-6.3-2.7-1.4-2-2-5.8-3.3-9.3-2 .4-3.5 2.5-5 3.3-1.3.7-1.6.7-1.6 2.7s-1 4.6-3 7.6-5.2 2.2-8 6.7c-6-7.2-6-9.3-6.5-11.3s-1.4-2.5-4.8-5.4c0-.9-.4-4.3 0-6.3-2.6-2-4.4-1.7-5.6-.2s-2 3.8-4 4.7c-1 1.4-4.4 4.9-7.1 9 2.5 37.7 11 75 36.7 104.8"/>
+ <path fill="#bca76b" d="M581.1 197c.1-25.6-1.3-50.4-.7-72.1-33-14.7-76.6-17.7-98.7-17.7s-65.8 3-98.8 17.7c.6 21.7-.8 46.5-.7 72z"/>
+ <path fill="#cfa763" d="M387.6 226.6c1 1.7 3 4.7 3.2 6.3.8-1.6 1.4-2.3 1.5-3.2s1.3-3 1-4c-.5-1-.8-1.8.3-1 1.2.7 1 2 .8 4-.8 5.3-3 6.4-3.3 10 3.2 7.4.8 10.1 4.3 17.5.5.3 2-.3 2.4-.2 1.9-1.3 3.2-.8 5.9-.3 2.6.6 4 2.4 4 4s0 2 .5 3 1.7 2.5 1.4 3.6c-.2 1 .3 1.7.6 2.3s-.1 1.7-.5 2.5q-.7 1 1.1 3.3c1.3 1.6 4.4 8.4 4.4 12.4s.2 5.9 1.8 6.6c1.7.8 2.2 1.4 2 3.1s.8 10.7 1 12.1.7 1.1 1.4 1.9 1 1.6 3.2 1.6 4.3-.3 5.7 0c2 2.6 3.2 6.3 3.6 8.5.5 2.3.4 5.4 1.2 5.4s1.5.1 1.3-2.7-.4-3.2-1.4-4.6-1.5-2-1-3a5 5 0 0 0 .4-3.3c-.2-1-.5-2.7 1.3-.5l3 3.4q.7 1.4.6 3.5-.1 2 .9 1.2c.8-.7 1.7.4 1.3 1.8q-.6 2.1 1.4 2.7 1.9.5 2.2 1.7c.3 1 1.4 1.4 1.4-.5 0-2-.7-6-1.3-7.4-.5-1.3-1-4-1-5.7-.2-1.6-.5-2-1.3-2.4q-1.2-.4-1.5-1.6c-.1-.7-.8-1-1.2-1q-.8 0-1.2-1-.4-.6-1.1-.6c-.6 0-1.4.3-1.7-.6s-.7-2-1.2-2.8-1-.9-1.1-3.3c0-2.4-.1-2.8-.9-3.6-.7-.9-2-3.2-2.6-4.1-.5-1-1-2-1 0 0 2.1 0 3.2 1.2 4 1.3.7 1.7.7 1.1 1.8-.5 1 0 1.8.2 2.6.3.7.7 1.5 0 2.3s-1.3.5-1.2-.7q0-2-.8-3.6c-.6-1-1-1.6-1.7-1-.6.5-1.2-.1-.7-.6q.5-.6 0-1t0-1.3c.6-.7.6-1 .3-2.5s-2.7-9.1-3.8-10.8-1-3 .4-1.3 2.6 3.2 2.8 4.6q.1 2 .8 2.8.7.9 1-.8c.2-1.2 1-.8-.4-3-1.6-2.3-4.4-6.1-5.5-13-1-6.7-1.5-11.2-2.6-13-1-2-1.4-2.3-1.5-4s0-3.5-.8-4.8c-.7-1.3-1.3-1.5-1.4.4 0 2 .1 6.3.7 7s.2 2.7 0 3.8c0 1-1.7 2.2 1.8 4.3 1.4.9 1.2 2 1 2.8q-.1 1.3-1.2-.5t-2.3-2.8c-.7-.7-.9-1.1-.7-2.6 0-1.5.4-2.6 0-3.1s-.7-.1-1 .7c-.1.9-.3 3.3-.8 3.9q-.5 1-1-1.2t1-6a16 16 0 0 0 .5-8.3c-.7-3.3-.4-4.3-2.9-7s-5.3-5.2-6.5-8.6-1.4-6.3-2.7-7.8a18 18 0 0 0-4.4-4v-5q.1-1.8-2-1.7-1.9.6-3 3c-1 1.7-1.6 1-2.8 3.7-1.2 2.9-3 4.3-3 7.3z"/>
+ <path fill="#cfa763" d="M395.4 258.2c.9.5 1.7 1 3 .3s2.9-2.6 4.6-.7c1.7 1.8 2.7 4.8 2.7 7.2s0 6.8 2.7 9.3 4.2 5 4.3 8.3a56 56 0 0 0 1.6 9.5 8 8 0 0 0 2 3.7c.8.8 1.5 3.3 1.6 6 .1 2.5-.3 4.3 0 5.6s0 2.4-1 1.8c-1-.7-1.2-1-1.7-2-.6-1.2-1.2-1-.7.7s2.2 3.1 3.6 3.1 1.9.2 2.7 1c1 1 1 1.4 2.5 1.4 1.6 0 1.8 0 3.2.4s1.4.2 2.2 0q1.1-.3 2 1.8a34 34 0 0 1 1.9 6.4c0 1 0 2.2.8 3.3.7 1 .5 2.1-.4 1.5s-.8-.5-1.5-.4c-.7.2-1-.2-2-.7-.8-.6-.3-.4-1.1-1.7q-1.5-2.1-1.5-.8c0 1.3 0 2.2-.7 1.6q-.9-.7-1.5 0c-.6.6-.8 1-1.5 0-.6-1.2-1.4-1.2-2-1.4s-.7-.2-1-1.2q-.7-1.3-2.2-1.2-1.3 0-1.4-1-.4-1-1-1.4c-.5-.4-.3-1.1-.4-1.9s-.8-.4-1.2-.6-.8-.1-.8-1.2-.4-1.4-.7-2.2c-.4-.7 0-1.5.2-2.3.2-1 0-1.4-.6-2.2s0-1.5-1.8-3c-1.7-1.5-2.6-.2-3.2-3.8-.5-3.6-1.6-11-2.6-12.1q-1.3-1.8-2.6-2.4c-1-.3-1.6 0-1.7-2.1-.1-2-.8-4.7-2-6l-2.6-2.2c-.6-.6-.9-1.6 0-3.4s.5-4.3.4-5.5-.4-2.7-.2-4 .1-2.9-.2-3.8-.8-1-.2-1.7"/>
+ <path fill="#d7c99c" d="M428.5 317.3c-.7 1.3-1.5.8-2.1.2s-1.4-.7-1.1-1.9.2-1.4-.6-2l-.4-.2h-1c-1.5 0-1.6-.5-2.5-1.3l-.5-.5v.8c0 1.2 0 1-1.2 1.3s-1-1.2-1.2-2.2l-.2-.5c-1.3-.3-2.7-1.7-3.2-3.1-.5-1.6.1-1.9.7-.8s.7 1.4 1.7 2 1.3-.4 1-1.7l-.1-1.4q-.3-.6-1-1c-1.7-.7-1.2-1-1-2.3q.1-2-1.4-.7-1.4 1.2-1.2-2.2c.2-3.4-1.4-2.2-1.7-.7s-.9.6-1.5-1.6-1.6-2.7-1.7-.6q0 2.6-1.7 1.1l.5 3.4c.6 3.6 1.5 2.3 3.2 3.8s1.2 2.2 1.8 3q1 1 .6 2.2c-.2.8-.6 1.6-.2 2.3.3.8.7 1.1.7 2.2 0 1 .4 1 .8 1.2l.9.1q.3-.6.8-1c1.3-1.4 3.3 0 4 1.6q1 2.6 2.3.8c1-1.3.7-1 1.8.1 1 1.2 1.5 1 1.5 1s1-.5 1.9.2c.7.6 1.2.5 2.6-1.5s-.7-1.4-1.3-.1"/>
+ <g fill="#7fb8c1" stroke-width="4.2">
+ <path d="M429.4 332.4c2.6-.2 9.7-2.3 10.5-3 1.7 1.3 4.8 2.9 6 2.9q-3.6.6-4.7-.2c.3.7 1.2 1.9 1.7 2-2.4-.1-5-.6-6-1.5-2 .9-5.5 1-7.5-.2m4.7 3.2c1 .3 5.6 1 6.2 1-1.6 1.3-.3 2.6 2.3 2.4-1.3.1-2.6.6-1.7.8 2.2.4 8.3-1.2 9.5-1.9-2 2.7-12.1 5.1-16.3-2.3m4.2 6.6c1.2-.6 4.3-.4 5.8.3-1.7.6-4.9.6-5.8-.3"/>
+ <path d="M443 342.1c2.2-.4 8.5 1.1 10.7-.2-.8 2-4.7 2.2-6.1 1.8s-2.7-1-3.6-.9c.5-.3-.3-.3-1-.7m2.2 3c1.7.3 7.7-.4 9.6-1.1 2 .6 5.8 1.7 6.7 1.5-1.9 1.2-5.4.5-6.6 0a11 11 0 0 1-9.7-.3z"/>
+ <path d="M448.1 346.2q3.5.6 6.8-.7c.8.4 2.5.8 4.2.7 1 .6 2.5 1.5 4 1.6-1.5.6-7 0-8-.6a22 22 0 0 0-8.5 1.5c0-.7.4-1.8 1.5-2.5m-2.9-12.2c1.9.6 8.7.3 12.2-1.3 1.4-.6 2.2.4.6 1-5.6 2-10 2.7-13.3 1-1.3-.7-1.4-1.3.5-.7m33.4-9.2c-8.4 4-14 5-25.6 1.5-1-.3-1.8 0-.6.8 1.2.7 7.6 2.5 9.1 2.6 1.6 0 1 .8 0 1-.8.3-1.1 1 .1.5a22 22 0 0 1 11.1.8q1.8.8 1.5 0 0-.7 1.5-.9 1.6-.1.7-.7-1-.3-.2-.7t-.3-.7c-.8-.1-1.3-.3-.6-.7q1.4-.6 2.8-.8c.2-.6-.1-2.1.5-2.7"/>
+ <path d="M464.7 325.8c4.8.3 13.6-1.8 18.3-6.4 1.6 1 3.9 2 5 2.3 1.3.2 2.4 1.3.5 1.3s-4.5-.8-5.6-1.3c-6.3 3.8-13.5 5-18.1 4.6-1.3 0-1.6-.6-.1-.5m-7.6-13.5c-.6.1-3.4.8-4.2.7-.7 0-1.5.2-1.4.7 0 .5.2.9-1 .8-1-.2-2 .3-2.3.6s-.5.7.7.8c1.1 0 1.7.2 3-.4s2.6-1.5 4-1.6c1.4 0 2.8-1.9 1.2-1.6"/>
+ <path d="M453.2 315.6c1.2.8 7 2.8 9.2 2.6s1.7.9.1 1.2a13 13 0 0 1-10.1-2.9c-1.4-1-.1-1.4.8-.9"/>
+ <path d="M481 318.5c-4.4 1.4-9 1-10.9.4-1.8-.4-3.5-.6-2.3.6s5.3 2 7.6 1.4c-8.1 1.9-10.2 1.7-12.2 1.4a37 37 0 0 0-7.4-.1c-1.2 0-2.9 0-3.6-.5s-.9-1.3 1.2-1c2.1.2 2.4-.3.6-.5-1.9-.3-4.4.5-2 2 2.6 1.6 8 0 11.5.9a20 20 0 0 0 18-4c.3-.2 1-1-.4-.6zm-10.4-4.5c-1 0-2.6-.5-3.5-.9s-2-.4-1.2.8c1 1.3 5 2 6.4 1.4s.8-1.3 2.2-.4 3 1.4 4 1.4 1.4 0 .2-.6q-1.7-.7-1.8-1.4c0-.5-.3-.8.8-.5 1 .3 2.2 1 3 .5s2.4-1.4 3.7-1.4l.4-.8c-2-.2-3.3.4-3.8.6q-.9.4-2.6.2c-1-.2-2.4-.3-2.7-.5q-.6-.4.6-.7c.8-.2 1.1-.8 0-.5-1.3.2-4.5 0-6.2-.5s-2.4-.6-3-.3c-.8.3-.7 1 .4 1 1 .1 3.3.4 4.1 1.1q1.3 1.1-.2.4c-.9-.3-2.6-.1-.8 1.1m39.3-2.9c-3.2 2.4-7.1 3-11.8 3.2-1.4.1-1 .5.2.6 4.9.5 10.5-1.3 12.4-3.2.5-.6.5-1.5-.8-.6m-22.2 5.5a41 41 0 0 1 7.9 1.9q1.7-.2 1.3-.9c-.2-.4-.4-.9 1.8-.8h8c.8-.2 2.5-1.5 3.3-1.6-2 .1-10.1.6-11.2.4q-1.3-.1-2.2.4-.7.7-1.8.2c-.9-.3-2.3-.7-3.1-.2s-2.5 0-4 .6"/>
+ <path d="M506.8 316.9c.7-.3 2.4-1.6 3.2-1.7 1.4-.1 3 .5 3.8.6s1.6 0 1-.6c-.5-.6 0-1.7 2.2-1.4s3.4.7 5.6.4 3.1 1.4 7.2-.2c-.3 1.6.5 1.8 1.2 1.4q1.1-.6 3 .8c1.9 1.4 9.2 1 11 .7 2-.3 2.9.7 1.5 1.1q-2 .8-1.4 1.5c.3.5.6 1-1.1.8s-2 .3-3 1c-.8.6-1 .8-3.4.4s-2.9-.1-4.2.1-1.6.2-3-.2c-1.2-.5-4-.9-5.8-.3-1.7.5-3 1-4.5.6-1.6-.4-1.7-.2-.7-1.2s1.2-.8 3-1c1.9-.3 3.3-.8 2-1.6-1.3-.7-1.7-.6-3.5.2-1.7 1-2.6 1.4-4.5.4-2-1.1-3-.9-4.3-.6s-3.5-.4-5.3-1.2m6.5 3.2c-2.5.4-3.2-1.2-5.8-.9-.8.1-2.3 1.2-.3 1s4.2 1 6.2.8 1-1 0-.9zm-2.9 2c1.3-.6 4 .3 5.2.1 1.1-.2 2.2.5 1 .9s-4-.7-5.4-.3c-1.3.3-2.6-.1-.8-.8zm-26 6.9c1.8 0 8.3-.2 10.8-5.6q.2-.8 1.2 0c.9.4 3.9 2.2 9.5 2.7 1.5.2 3.2 1 0 .7-3-.2-8-1-9.8-2-2.8 4.3-7.9 4.9-11.7 4.8-2.3 0-1.7-.7 0-.6"/>
+ <path d="M498.4 321.6c-.9 1.2-3.9 3.3-5.2 3.4-1.4 0-5.5-.3-6.5-.7s-2.3-.2-.8.8 5.1 1.7 6.6 1.4c1.4-.3 3.1-.8 4.3-.1s3.2 2 4.5 1.8a11 11 0 0 1 4.6 0c.8.5 2.2 1.6.1 1s-3.8-.2-4.8-.6c1 1.5 3.5 4 5.6 4 .5 0 .9.8-.2 1.3 1 .5 3.4.9 4.7-.3q-.5.7.4 1c.5.3 1.2.6.2.7-1 .2-3.2.4-3.9.2a20 20 0 0 0 13.2 2.4c1.1-.2 1.7-.7 0-.6-3.7.1-3.9 0-4.5-.3q-1.1-.6.5-1c1-.4 3.6-.8 4.7-.8 1 0 2.2-.4 0-.4s-5 0-6-.4c-1.2-.3-2-.8-.9-1.6 1.2-.7 2.4-.5 3-1.2-3.7 0-8-2-5.6-3.7q.9-.5-.6-.5c-.9-.1-3.6-.9-4.7-1.6-1.2-.6-.4-1.1.5-1.3-2.1.4-6.4-.8-9.2-2.9m32 0c-2 1.4-5.7 2-7.3 2q-2.4.2-.5.7c1.2.1 2.6.3 3.1.1s.9-.2 1.7.2a6 6 0 0 0 4 .1c1.6-.5 4.1-.7 5.1-.6s2.2 0 .1-.5c-2-.6-5.4-.2-6.2 0s-3 0-1.9-.3a13 13 0 0 0 2.9-1.4zm-1.1 4.1a13 13 0 0 1-6.6 2.6c2.2.8 4.2 3.1 5.6 3q-1.1.8-2.5 1.2c1.4.4 3.8 0 5.8-1.1 3.2.9 7.5.3 8.9-1-2.1 0-4.7-.7-5.8-1.6q1.6-.2 2.5-1.3c-2.5.5-6.7-.7-7.9-1.8"/>
+ <path d="M525.8 332.5c1-.1 1.8-.8 2.5-1.2-1.8.6-9.6-.6-12-2.7-2.3-2-2.3-.5-.7 1 1.7 1.4 4.6 3.6 10.2 2.9m5.8 5c-1 .5-5.7.8-7.2.5q-2.3-.5-1.8.4c.4.6.6 1.2-.7 1s-3.5.1-4.4.4-2 1.2-.1.8c2-.3 3.7-.7 5.2-.3s6.7.5 7.7 0 .4-.4-.1-.4-.7-.3 0-.6 1.2-1.3 1.4-1.8m-45.3-6.3c-2 .9-8.5 2.6-10.2 2.7q-3.4 1.5-5 1.5a8 8 0 0 0 4.9 1c-.7.6-2.2 1.4-2.7 1.7 1.7-.2 3.8.2 4.7.3a13 13 0 0 1-7.1 1.5q.8 1.4 2.3 1.5c-2.1.6-4.6.6-6 .2q.9 1.6 2 1.8c-1.8.2-4 .5-5.8-.5q2.1 2.7 9.2 1.9c4.7-.5 8.6-2.6 9.7-3.5-2 .3-4.6.4-5.9.1a34 34 0 0 0 9.3-4q-1.7 0-3-.8a29 29 0 0 0 8.5-1c-2-.5-3.1-1.7-3.7-2.5a37 37 0 0 0 18.2.6c.9-.2 1-1.3-.8-1.2-3 .2-8.9-.7-10.4-1.4 1.4 1 3.1 1.7 4.3 2-2.8.7-6.7 1.2-12.5-2z"/>
+ <path d="M473.3 338.1c.5-.3 2-1 2.7-1.7a8 8 0 0 1-4.9-1q1.6 0 5-1.5c-4-.1-6.6-.1-8-.9-1.5-.7-4-.5-5-.3s-.7 1.8 3.4 1.4a14 14 0 0 1-8.1 1.2q.8 2.3.3 3.6a28 28 0 0 0 11.2 2.7c-2.6-1-4-2.1-1.8-2.3 2.1-.2 3.3-.7 5.2-1.2m-6.8 7c5.2-.4 12.2-.5 17.8-5.2 1.4-1.2 2.3-.8 1 .5-3 2.6-10.3 6.1-17.2 6.2-2.9 0-4.2-1.3-1.6-1.5m39-8.5c-1.3.5-5 1-6 1-1-.3-2.7-.3-3.5.2q-1.6.9.2 1l3.5.2c-1 .5-1.6 1.3-1.8 1.6 1.7-.4 5 .3 5.8.8q-1.1.3-2-.3c2.9 3 11.6 3 13 2.5q-1 .9-2 1.1c2.5.5 5.3.4 8.1-1.2-1 .2-3.7-.1-4.4-.2a5 5 0 0 1 2.1-1.2c-1-.2-4.5-.1-5.3.3q.6-1 1.6-1.7c-4.3 0-9.5 0-11.4-1 3 .2 6.4-1.5 7.8-1.5-2.4-.1-5-.6-5.7-1.6m-10.9 2.4c-2.1.4-5.3 1.3-6.2 1.7-.9.5-1.8.8.1.8l.7-.2c-.8 0-1.7 0-.3-.4 1.5-.5 3.3-1.5 5.7-2zm-4.3 5c.8 0 4 0 5.4-1.1 1.3 1 4 2.4 5.6 2.4 1.7 0 1.6.5 0 .6-1.4.2-4.3-.7-5.7-1.8-2 .8-3.6.2-5.3-.1m-25.2 14.5c3.4 1.3 7.9 2.3 11.1 1.2 1.9 1.6 5.7 1.7 7.7 1.3 2.1-.4 4-.7 6.2.1s7 .8 8.3 1.9c-1.2 0-3.7 0-4.3.2q-.9.2.8 1a23 23 0 0 0-12 3.1c.7-1.7 2.8-4 6.3-4-2-.6-8.3-.7-10.3.5a6 6 0 0 1-1.3-2.1c-3.3 1.9-9.9-.8-12.5-3.2m-8.6-6c4-.6 6.7-1.9 8-3 .6.6 3.6 1.2 6.8.3-.7.4-.7 1.4-.5 1.9-2 0-6.1 1-7.5 1.7-1.3.7-5.3 1.2-6.6.5q-2-1.1-.2-1.4"/>
+ <path d="M470.8 351.7c-2 0-6.1 1-7.5 1.7q.5 1 .5 2a48 48 0 0 1 16.3-1.7c-1.6.1-4.7 1.8-6.4 2a33 33 0 0 1 9.4.8q1.7.5.5 1.8c-1.2 1.3-1.2 1 .6 1s5.3-.2 7-1.8c-.7-.7-2.4-.4-3-.9a8 8 0 0 0 3-1.8c-3 0-4 0-5-.3s-1.7-.5-.5-1.1a7 7 0 0 0 2.2-1.6c-2.2.6-5.5 1-8.3-1.1 1 .2 3.5 0 4.4-.3q-1.4-.8-2.5-.9c2.3-1 6.7-2 12.1.2 2.7-.3 5.7-.2 7.7.4 1-.9 2.8-3 3.7-3.5-6.4.6-18-.6-17.7-4-2 2.7-6.8 4.2-9 3.8-.1 1 .7 2.2 1.5 2.8-2.2.5-5.9.8-7.6.5 1 1 2.8 1.8 3.9 1.7-2.3 0-3.5.4-5.3.3"/>
+ <path d="M484.2 359.3c1.7 0 5.3-.2 7-1.8-.7-.7-2.4-.4-3-.9a8 8 0 0 0 3-1.8c4.6-.3 8.7-.1 10.6-.7s7-.3 8-.6c-4.4.7-5.2 1.1-5.5 1.8s1.4 1.3 2.5 1.3c-2 0-4.4 2-4.6 2.8-2.7-1.5-3.9.2-4.2.8-1-.4-4.7-.3-6.5 1.3-2.4-.7-4-1.1-6.4-.7 1.5-.4 1.2-1.3-1-1.5zm20.8-12.7h5.9a7 7 0 0 0-2 1.4c3.7-.5 8.8-.7 10.2-.5-1.8-.3-3.6.9-4.5 1.5-1 .5-.4 1 .8 1 1.3.2 3 1.2.7.9s-6.8-.3-7.9-.2c-1 .2-1.7-.3-.1-.6q2.3-.4 3.4-1.1c-1.3.3-3.8.3-4.6 0s-1.2-.6-.3-.8.2-.5-.7-.4c-1 0-3.3 1-4.6 2.3q2.2-2.3 3.7-3.5m-16.5 2.5q2.4 3 7.2 3.2c.7 0 2 1 .4 1-4.6.2-6.9-.9-8.9-3.8-.4-.6.4-1.4 1.3-.4m58-24.6c-1.4 1-3.2 2.5-2 4.8l.4-.2a132 132 0 0 0 13.8-20.1v-.7a19 19 0 0 1-4.8 3c.6 1.6-2.4 4-4 4.6.6 1 .4 2.7-1 3 .3 1-.8 1-2 1.5q-2 .7-2.5 1.6c.7-.4 1.7-.7 2.2-.5s.7 1-.3 1.2q-1.5.4-2 1.1c1.5-.5 3.5-.2 2.1.7zm-96-24.6c1.7 1.1 4.6 3 8.3 2.7 1.9 1.5 4.7 2.7 6 3-2.5 1-5.2 1.9-5.9 2.7-1.1-1-2.6-1-3-1.5q-1.4 1.4-.2 1.9a22 22 0 0 0 7.6 1c1.3-.4 1.7.7.6 1-3 1.1-8.7.1-10.6-3s-3.7-4.3-9-1.4c-.6-1.6-.6-2-1.6-2s-3-1.3-1.5-1.2c1.5 0 5.8-.6 9.3-3.2"/>
+ <path d="M451.8 306.8c-.9.3-3.4 1.7-4.4 1.8-.9 0-2.5 1.4-.8 1.4s3.8-1.7 5-2c1.2 0 1.3-1.4.2-1.2m7.2 5.1v1.5c-.2.4-.2.9.5.4s1.2-1.2 1.9-.9c.7.4 2.5.4 3.3.3q1.4-.1-.1-.8a8 8 0 0 0-3-.6 5 5 0 0 1-2-.3q-.9-.3-.6.4m25.8.2-.4.8c2 0 7 .4 8.5 1.4 1.5-1.2 1.3-1.6 2.3-1.4 1.1.3 2.5.6 3.1.3q.8-.4 1.7-.1c.6 0 2-.2 2.9-.7s2.5-1.1 3.4-1.1c1 0 2.2-.2.4-.5a14 14 0 0 0-5.4.6c-1 .3-3.7.5-5.3.5-1.7 0-3.9.8-5.8.3s-4.4-.1-5.4-.1m30.9-.8c2.4 1.2 7.2 2.1 11 2 .6 0 2 .6.3.8q-6.3.7-11.6-2.2c-1-.5-.6-1 .3-.6m2.5 0q5.6-.3 7.6 1c2-.7 5.9-1 6.8-.9.8.2 1.8-.2-.2-.7s-6.7-.6-8.2-.3-6 .4-7.5.2q.8 0 1.5.7m14.3 1.4c1.7-.9 6.8 0 8.3-.7-1.1 1.3 3.5 1.4 7.4.4-1.5 1-4.8 1.1-6.2 1.7s-2.2.2-3.2-.3c-1.1-.5-3.9-1.4-6.3-1z"/>
+ <path d="M548.2 312.4c-4 1-8.5 1-7.4-.4-1.5.7-6.6-.2-8.3.7 1.8-1 3.2-.2 4.5-2.4.8.2 2.7.3 3.3-.6 1.2.3 3.2.8 3.8 1.4s1.5-.2.8-1.1c1.7-.7.6.7 4.8-.3.9-.2 3-.6 3.7-.6a26 26 0 0 1-5.2 3.3"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width="2" d="M581.1 197c-.2 67.8-11 141-99.4 175.8-88.5-34.9-99.3-108-99.5-175.8z"/>
+ <g stroke-width="4.2">
+ <path fill="#cfa763" d="M421.7 227.5a22 22 0 0 1-5.1 5c-2 1.4-4.7 2.5-3.2 5 1.4 2.4 2.6 2.7 2.9 4.6s.7 3.4 2.2 3.9c1.4.4 2 .1 2 3.1s0 4.2 1.3 5.3c1.3 1.2 1.2 2.4 1.7 5 .6 2.8.6 8.7 2.4 12.8 1.7 4 5.6 11.6 5.2 13.2-.5 1.6-1 2.7.7 4.6s3 4.6 3 6.2c.2 1.6.5 2.2 2.2 1.6a7 7 0 0 0 3.2-1.9q1-1 3.4.3c1.6.9 4 1.7 5.5.9 1.4-1 2.1-2.2 3.4-2.2 2-1.4 2.8-4.5 3.2-5.3.5-.9.2-.9-.7-1.8s-.4-2.3-.6-3.7q0-2-2.4-6.8c-1.8-3.1-2.8-7-4-8-1.1-1-1.7-3.5-1.8-4.6-.2-1.2-1.5-2.2-2.4-3-.8-1-1.7-2.2-2.7-7.3s-1.8-8.6-1.8-9.5q.2-1-1-1.2c-.8-.3-1.3-1.8-1-2.5s-.3-1.4-.6-2.3 0-2.4.6-3.3.5-3.3-.1-5.3-1.2-3.8-3.5-4c-2.3-.4-2.8-1-3.6-2.8-.9-1.9-1.8-5.2-2-6-.4-.6-.8-.8-2.5.7-1.8 1.4-2.3 1.9-2.3 4.6 0 1.7.2 2.3.8 3.3s.7 1.3 1.2 4 2.9 7-.3 9.5-2.8 3-2.6 4.8-.9 2.8-1.5.4q-.8-3.5 1.8-5c1.7-1.2 3.3-2.6 2.1-4.2a17 17 0 0 1-1.7-7q0-2.9-1.4-1z"/>
+ <path fill="#d7c99c" d="M395.8 264.2q0 1.9.3 3.5c.1 1.2.4 3.7-.4 5.5-1 1.9-.7 2.8 0 3.4 1.8-.5 2-2.5 1.6-3.4q-.7-1.7.2-3.3.9-1.4 0-2.3c-.4-.7-.4-.7.2-2.7.5-1.8-.8-1.8-1.9-.7m18.6 28c-.4-1.4-1.6-6.3-1.7-9.6q0-4.7-4.2-8.3c-2.1-2-2.6-5-2.7-7.4q-2.4-1.5-2.1 1.2c.1 2 2 2.9 1.8 5.7-.3 2.8-.3 2.1 1 3.5q2.3 2.1 1.2 3.2c-.7.6-.8 1.6.2 2s1.1 1.4 1 2.4.8 1.2 1.4 2c.5.7.6 2.4 0 3.4s-.6 2.6.4 1.7c1-.8 1.5 0 2.2 1.3.7 1.2 1.3.8 2 .5l-.5-1.7zm-8.5-60c-1.1 0-1.8 1-1.2 4.3.4 2-1.2 1.5-1.8.5-.5-1-1-3.1-2.1-5s-.6 1.3-.8 3c-.1 1.7 1 1.7 2 3.2 1 1.4.2 2-1 2s-.5 2.3-.2 3.9-.3 1.9-1.2.6-.3-3.4-.1-5.8.3-1.9-1.3-2.4-1.4-1-.8-2.4 1.2-2.1.5-2.8q-1.2-1.1.5-1.3c1.2-.2.8-1 1.8-1.3s1.4.1 1.6-1.7c.1-1.6.6-2.6 1.8-2 .7 2.3 1.6 6 2.3 7.2m26.5 25.8c.4-3.1.1-6.3 1.4-7.4s3-3.5 2.8 1.4-.3 4.6-1.3 5.8c-1 1.1-1.9 1.4-.9 3.3s1.2 2 1 4.9c-.1 2.8-.1 4 1 5.4s1.5 1.6 1.8 3.2a10 10 0 0 0 2.6 4.9c1.3 1.1 2.8 4.5 2.9 6.8s2.2 2.8 4 4.4c2 1.6-.4 2.8-1.8 2-1.5-.7-.9 0-1.8 1s-1.1 1.2-1.9-.5c-.7-1.8-3.1-3-4.3-3.3-1.2-.5-2.2-2.3-3.2-4.2a6 6 0 0 0-4.2-3q.8 2 .6 2.7c-.5 1.6-1 2.7.7 4.6s3 4.6 3 6.2c.2 1.6.5 2.2 2.2 1.6a7 7 0 0 0 3.2-1.9q1-1 3.4.3c1.6.9 4 1.7 5.5.9 1.4-1 2.1-2.2 3.4-2.2 2-1.4 2.8-4.5 3.2-5.3.5-.9.2-.9-.7-1.8s-.4-2.3-.6-3.7q0-2-2.4-6.8c-1.8-3.1-2.8-7-4-8-1.1-1-1.7-3.5-1.8-4.6-.2-1.2-1.5-2.2-2.4-3-.8-1-1.7-2.2-2.7-7.3l-1.7-8.5q-1.5 2.4-2 1c-.5-1.4-1.1-2.1-1.7-1.2-.6.8-.7-.8-.7-1.5s-.1-.8-.9-.8c-.7 0-.1-1.2-.4-3.3-.3-2.2-.7-2.5-1 .1s-1.8 4.2-1.2 4.7q.8 1-.3 3.5a5 5 0 0 0 .2 3.9c.4 1.1-.3 3.3-.6 5.2-.3 1.8 1.2 3.7 1.6.5m-12-8.9c0 3 0 4.2 1.4 5.3 1.3 1.2 1.2 2.3 1.7 5s.6 8.7 2.4 12.8l2 4.3c.9-.8 1.7-2 2-2.8.5-1-.8-3-1.9-4.7s.2-2.3 1.2-4.5c1-2.1-.1-2.3-1.7-2.9-1.6-.5-1.6-2-2.5-4.3s-.7-3.3-.2-4.6q.9-2-1-2.6c-1.1-.3-.8-1.1-.4-2.6.4-1.4.7-1.7-1-1.3q-1.7.5-2 1z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m447.9 248-3.5 38m14-14.8a272 272 0 0 1-5.3 20m50.7-38.3c2.7 2.5 6.2 3 10.1 5m7.4 11.9-2 14.6m0-14-3.4 15M456 271.7q-2.6 9.3-5.9 17.8"/>
+ <path fill="#666" d="m531.4 307-.3.1h-.6l-.3.1h-.3l-.3.1-.2.2-.2.2-.2.3-.2.2-.3.4-.1.1-.2.2-.1.2a5 5 0 0 1-2.7 1.2 8 8 0 0 1-3.1 0q-2.2.1-3.6-.7c-1-.5-2.2-.1-3 .3-.6.3-.7 1-1.4 1.1-.4.6-2.2.5-3 .3q-2 0-3.7-.8c-.7-.5-2-.9-2.8 0q-.8.8-2.2 1c-1.5 0-3.3.3-4.5-.3-1.3-.1-1.7-.8-3-1.2-1.3-.2-1.9.5-2.8.8q-1 .8-3.2.6c-1.4 0-3 .2-4-.4-1 0-1.8-.7-2.7-1.1-.8-.7-2.3 0-3 .4-1.3.2-1.7 1.1-3.3 1-1.3-.1-2.1-.7-3.3-1-1.1-.5-2-1.3-3.8-1.2q-1 1-2.9 1-1.5 0-2.8-.2c-2.1 0-3.1-2.3-4.6-3.5L451 299c.4-1.3.6-1.6-.1-2.5.2-1.3-.7-1.5-.3-2.8.6-1-1-.9-1.4-1.4-1-.2-1.3-.9-2.2-1.2l-2.3-1.3-2.2-1.1-1.8-1.3-1.7-1.4-1.8-1.1q-.9-.8-2-1.3c-.9-.3-1.7-1-2.8-1.2-.7 0-.9-1.6.4-1.5 1 0 1.5.6 2.2 1q1.6.8 3.5 1.2l2.3 1c.8.6 1.8.7 2.7 1.3.9.4 2 .8 2.4 1.3.8.3 1.2.8 2 1.1l1.3 1q1 .3 2 1 1 .4 1.7 1c.6.2 4.8 2.3 4.6 2 4.1.8 6 1 10 1.7l30.1.4 10.9-4.5 3.3-5.3 16.1-2.9c-.3-.3 28.2-1 28.8 1.4.3 1 1 3 .1 3.5-.6.3-27-3.3-27.3-1-.2 1 0 7.5.2 8.5l.4 3 .5 3.2.4 3z"/>
+ <g fill="none" stroke="#000" stroke-width=".5">
+ <path d="M449.8 266.6c-4.8 5.5-9.6 9.9-14.8 14.1m41.5-36.6 15.7-13.5m-22.7 26.9c3.1 2.2 6.6 4.1 11.4 5.3M467.3 237c2 3 4.2 6 11 7.9m-15.5-38.7a27 27 0 0 1-9.9 7.6m15.6 11.4a24 24 0 0 0 8.5 4.6m-8.5 42.5a229 229 0 0 0 4.7 20.3"/>
+ <path d="M467.2 292.5c8.1-8.4 15-17.3 19.6-27.6m16.6-30.1c2.6 2.7 5.3 4.8 9.5 6m1.8-16c2.2 4 4.9 6.9 7.4 10.1m-31.5-22.5c-.2 4-2.6 7.9-4.3 11.3"/>
+ <path d="M496.3 214.3c-3 3.3-5.7 6.7-9.7 8.7m10.2-22.7a36 36 0 0 1-7 3.7m36.6 26.2c-2.4 2.9-4.8 6.2-8.7 8.7m9.2 15c-3.1 3-5.9 6.4-9.4 8.6m27.1 8.3q-8.1 6.6-17.2 11.5m3 .5c5-3.2 9.7-7.6 14.2-12m-15.8-40c1 2.6 3.3 5.5 5.6 7.3"/>
+ </g>
+ <path fill="#bca76b" stroke="#472b1f" stroke-width=".4" d="m525.5 205-.5 77.9 5.7-.3-2.4-77.9z"/>
+ <g stroke="#000">
+ <path fill="#333" stroke-width="1.3" d="m529.2 305.4 3.1 2.6c2.7 2.4 4.2 2.4 7.8 0 1.3.2 2.6 1 4 .7q2.1-.1 3.9-.5c1.4-.4 1.7-2.1 2.2-3.4.7-1.3 1.3-3 2.4-4.1 1.3-1 2.7-1.8 3.6-3.2q1.3-1.8.7-4.2l-.3-4c-.2-1.9 1.3-3.2 1-5-.7-.7-2.2-1-3.3-1.3a45 45 0 0 0-6.3-1l-5.3-.3-5-.3q-3-.1-5.8.1c-1.3.3-3 .2-4.2.8a14 14 0 0 0-.7 4l-.3 3.6c0 2.3-.3 4.5.4 6.6l1 5.2c0 1.4 0 2.7 1 3.7z"/>
+ <path fill="none" stroke-width=".5" d="m535.7 267.5 7.8 14.5m11.5.7q-3.3-3.6-5.4-8.5"/>
+ </g>
+ <path fill="#472b1f" d="m554.5 260.2 2.6 1.8h.1c-.8-.7-1.6-1.6-2.7-1.8m-5.3.7-.3.1-3.6 14zm17 .6q-1.3.1-2.6.8l1.5-.5 2-.3h-1zm-16.6 12.7-.7.1a3 3 0 0 1 1.8.5zm1.4.7q1.3 1 2.8 1.6zm8.3.8-4.8 1q2.5-.2 4.8-1"/>
+ <path fill="#fff" d="m549.3 260-4 15 4.3-.9 4.5 2.6 6.8-1.4 3.5.5c1-4.8.7-10.4 3.5-14.5l-2.8.5-4.5 1.5-3.6-1.3-2.8-2z"/>
+ <path fill="#c8102e" d="M555.9 261.9a9 9 0 0 0-1.6 4.4l-3-.9h-3.4v.1l-1 3.6s2.7-.4 4-.2c.8.1 2.4 1 2.4 1l-1.3 5.6.9.5 1.8.5.8-.1q.5-3.2 1.5-5.4s2.8.7 4.3.6l3.8-.3.5-3.6c-.5.1-2.9.7-4.2.6a13 13 0 0 1-3.3-1.3q.5-1.8 1.4-3.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M546.4 260c-1.9-5-4.1-13.1-5-19.6"/>
+ <g stroke="#472b1f">
+ <path fill="none" stroke-width="1.3" d="M548 261.2s4.4-1 6.3-.7c2 .4 3.1 2.6 5.2 3 2.3.3 4.2-1.8 6.6-2l3.3.3-1.6 5.5-1.3 4.6v4.1s-3.7-1-5.7-.6c-2.5.2-4.4 1.5-6.8 1.3-1.8-.4-2.6-1.9-4.5-2.3-1.3-.4-5 .6-5 .6z"/>
+ <g fill="#bca76b" stroke-width=".3">
+ <path d="m548.8 261-1.8.1-5.6 20 2.6.2z"/>
+ <path d="M547 261.1c-.8-.4-1.3-1.7-1-2.5.5-1 2-1.1 3-.8 1.1.3 2.6 1.4 2.2 2.5-.4 1.3-3 1.5-4.2.8z"/>
+ </g>
+ </g>
+ <path fill="#472b1f" d="M567.7 261.6c-2.7 4-2.5 9.3-3.5 14l2.3.4v-4l1.4-4.7 1.5-5.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M535.4 245.3c2.9 2 5.7 7 9.7 11m-4.4-18.3a78 78 0 0 1-4-21m-4.2 53.2 4.4 11.6m0-70.3c-3.9-1-7.5-3.6-8-5.8m-17 9.6c2.5.2 11.2-6.2 12.5-9.6m9.6 62.8 6.1 13m-6.6-8.6 4.5-1.6m-3.7 4 4.7-2m-2.8 7 5.2-2.2m-10.5-23.5 6.3 6.7m-19.5 9.5-4.3 14.5m3.1-11.3h4.4m-5.4 3.6 5 .1m-6.2 3.6 5.5 1"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".4" d="M528.8 203c-1-.3-3.8-.4-4.9.5-.5.4 0 2 .7 2 1.4 0 3.3 0 4-.3.5-.5.9-2 .2-2.2z"/>
+ <path stroke-width=".5" d="M513 215.2c1.9 7.6 9.9 6.3 9.6-.6"/>
+ <path stroke-width=".7" d="M520.4 214.8c2.5 8.8 13 7.4 12.5-.6"/>
+ <path stroke-width=".5" d="M529.3 214.7c2.4 6.4 5.7 5.2 9.7-.7m2.3-2.3-29.6 1.7v2l30-1.6zM514 241.4c2 8.2 10.3 7 10-.6"/>
+ <path stroke-width=".7" d="M521.8 241c2.4 9.7 13.3 8.2 12.9-.4"/>
+ <path stroke-width=".5" d="M531 241c2.4 7 5.8 5.7 10.1-.6m2.4-2.4-30.7 1.2v2.2l31-1.1zm-30.2 26.9c2 8.6 10.5 7.2 10.2-.7"/>
+ <path stroke-width=".7" d="M521.2 264.6c2 12.7 13.8 8.1 13.2-1"/>
+ <path stroke-width=".7" d="M530.6 264.3c2.7 7.2 6.2 5.8 10.4-.8"/>
+ <path stroke-width=".5" d="m543.5 261-31.5 1.8v2.2l31.8-1.7z"/>
+ <path stroke-width=".3" d="m533 226.9-11.7.3v3l11.8-.1zm0 24.7-11.6.3v3l11.8-.1z"/>
+ </g>
+ <g stroke="#000">
+ <path fill="none" stroke-width=".7" d="m503.7 265.1 8.7 20.8M460 271.7c-1 6.5-2.5 14.8-4.2 21.1"/>
+ <path stroke-width=".4" d="M556.9 284.3a88 88 0 0 0-26.5-1.3c-5.8.4-11.7.6-17.1 2.3q-1.3.4-2.1 1c-1.6 1.5-1.7 4-3 5.7s-6 4.5-7.9 5.7c-12.5.2-26.5 0-42.3-2.3l-2-2.5-1-.9 2.4 1h5.6l13.7-.4s11.5 0 17.2-.3l9.8-.8q1.2.1 2-.4c1-.6 1.3-1.8 2-2.9.6-.8 1-2 2-2.6 2.4-1.7 5.6-1.6 8.2-2.1 3.3-.7 6.2-.8 9.5-1.3l11.2-1q3.6-.2 7.3 0c3.6.2 7.7 0 10.9 1.8.6.2 1.7.9 1.3 1.5-.3.4-.8-.2-1.3-.2z"/>
+ <path fill="none" stroke-width=".5" d="M499.5 200.3c1.9 1.5 5.3 2.7 8.7 3.2M495.6 253q-6 4.2-12.4 6.2m23.5 30.8-6.9-18m1.4-5.9 8 20.6m-9-15.3 5.3-1.8"/>
+ </g>
+ <path fill="#bca76b" stroke="#472b1f" stroke-width=".4" d="m496.6 197.6-1.6 95.8 5.7-.3-1-95.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M503.5 212.4q3.2 6.4 10.9 10"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".5" d="M484.8 206.6c1.8 8.2 10.3 7 10-.6"/>
+ <path stroke-width=".7" d="M492.6 206.3c2.3 9.6 13.2 8.1 12.8-.5"/>
+ <path stroke-width=".5" d="M501.7 206.3c2.4 7 6.6 7.6 10.2-.7m2.5-2.5-30.9 1.4v2.2l31.1-1.3zm-29.6 22.8c1.8 8.2 10.3 7 10-.6"/>
+ <path stroke-width=".7" d="M492.6 225.6c2.3 9.6 13.2 8.1 12.8-.5"/>
+ <path stroke-width=".5" d="M501.7 225.6c2.4 7 9.5 5.8 10.2-.7m2.5-2.5-30.9 1.4v2.2l31.1-1.3z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M494 236.5c-2.7 1.9-5.2 4-8.9 5.2"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".5" d="M483.9 244c1.8 8.2 10.2 7 10-.5"/>
+ <path stroke-width=".7" d="M491.6 243.6c2.4 9.7 13.3 8.3 13-.4"/>
+ <path stroke-width=".5" d="M500.8 243.6c2.4 7 8.7 4.8 10.1-.5m2.5-2.5-30.8 1.3v2.2l31.1-1.3z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".5" d="M487.9 265.8c-.8 9.5-4.6 18-7.1 27m10.5-26.9c-.8 9.2-3.7 17.8-6 26.5m8.9-27.3a175 175 0 0 1-4.6 27.2"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".5" d="M484.3 261.3c1.8 8.3 10.2 7.1 10-.5"/>
+ <path stroke-width=".7" d="M492 261c2.4 9.6 13.3 8.2 12.9-.5"/>
+ <path stroke-width=".5" d="M501.2 261c2.4 7 8.6 5.7 10.1-.6m2.5-2.5-30.8 1.3v2.2l31-1.3z"/>
+ <path stroke-width=".3" d="m504 216-11 .5v3h11zm-.4 18.8-9.9.2v2.8h9.9zm.5 18.1-10.5.4v2.9h10.6z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".5" d="m487.7 269.3 5.7 1.1m-7 4.2 6.6.2m-7.7 3.7 6.9 2m-8.7 4 8-.3m-9.5 5.3 8.5-.2m-10.4-23.7c-1 9.7 5.3 18.9 8.4 27m17.5-5 5.4-1.7m-6.7-1.3 6.1-2.6m-8-2 6.3-1.9m-7.8-2.5 6.2-1.6"/>
+ <path d="M468 309.7q-1.2-.1-2.2-.4l-2-.7-2-1.3-1.7-1.4-2-1.9-1.8-2q-1-.9-1.8-1.9c-.5-.5-.6-1.5-1-2-.8-.2-1.9-.3-2-1.4-.2-.6-.3-1.3-1-1.2-.4 0-.5.5-.3.2-.4-.2-.3.7-.3.2l-.5 1q-.6 1.3.6 1.6c.8.1 1 1 1.7 1.4q.8 1 1.9 1.8l1.5 2q.6.8 1.5 1.5l1.3 1.7 1.8 1.5 1.8 1 2 .9q1.1.4 2.5.4 1.2.1 2.3-.5c.7-.5 0-.4-.4-.5zm44.8-21.8a27 27 0 0 1-4.6 7.8c6.6 1.3 11.9-.5 17.8-1.5q-.8-4-.4-8.3c-4.7.5-8 1.6-12.8 2"/>
+ <path fill="#333" d="M513.4 288.6c-.8 2.1-1.5 4.3-3.1 6.1 5.4 1.2 9.8-.5 14.7-1.4-1-2-.7-4-.4-6.2z"/>
+ <path d="m456.5 298.2 19.1 1.4c15.4.5 33-.2 48.2-2 .6 0 1.7-.2 1.9.4s-.8 1.6-1.5 1.7c-17.5 2.3-35.2 1.4-52.8 1.3l-10.4-1.1z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M463.5 255.3c-5 3.8-9.8 7.6-15.4 9.8m16.1-27.9c-4.5 3.3-9 7.3-13.7 9.2"/>
+ <path fill="#bca76b" stroke="#472b1f" stroke-width=".4" d="m462.6 204.3-.1 89.5 4.9-.4-2.9-89.6z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M464.5 203.8c4 4.4 7.2 6.8 10.5 9.6"/>
+ <path fill="#bca76b" stroke="#472b1f" stroke-width=".5" d="M465.8 201.2c-1-.5-3.7-.6-4.7.7-.6.6-.1 2.9.6 2.9 1.4 0 3.2.1 3.8-.5s1-2.7.3-3z"/>
+ <path stroke="#000" stroke-width=".9" d="M463 305.3q.3-1 1.4-1 1.4-.2 2.3.1l1.4.7 1.3 1c1.6.5.8-1.3 1.7-1.4s1.6-.3 2.2 0q.8.3 1.2 1l.9.8c.1.5 1.9 1.3 2 .2.3-.7.1-2 1.3-1.9q2 .1 3.7.4.9.3 1.7 1c.5.2.4.8.8.7 1.3 1 1-.7 1.4-1.3.3-.5 1.2-.3 1.6-.7q1.2-.4 2.6-.4l1.8 1q.6.4 1 1.3c.1.6.7 1.1 1.2.6.3-.6.8-.6 1.3-1q.8-.1 1.2-.8c.3 0 .6-.7 1-1q.9-.4 2.4-.4 1.5.3 2.3.8.4.6 1 1c.3.5 1 0 1.4-.2l1.4-.8q.6-.6 1.9-.7c1-.1 1.5.4 2.2.5q1.3.3 2 .8 1 .8 1.8.2c.7 0 .2-1.3.4-1.6.8-.6 2.7-.6 3.7-.2l2.4.2q.6.3.8 1.2c.3.5 1.8.5 2.3.1.4 0-.1-.7-.3-.9l-.8-1c.7-.4 1 .3 1.7.4l1.2.8q.7.5 2 .4c.8.3.5 1.5-.5 1.2-.7.3-1.9 0-2.7.1h-4.2l-2.6.3-2.4.1q-1.5.2-3 .1l-2.5.3-2.4.1c-1.2.3-2.7 0-4 .1l-2.3.2-2.5.2-2.6.1c-1.5.3-3 0-4.5.1l-2.5-.2H487c-.6-.3-1.7 0-2.3-.3h-9.9c-.5-.3-1.5 0-2.3-.2h-3.7c-1-.2-2 0-2.9-.4-1.3-.2-3-.6-2.8-1.7z"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".4" d="M452.1 215.4c1.6 5.7 9 4.8 8.7-.4"/>
+ <path stroke-width=".5" d="M458.8 215c2.1 6.8 11.7 5.9 11.3-.2"/>
+ <path stroke-width=".4" d="M467 215c2 5 5.7 5.5 8.8-.3m2.1-1.7-27 1v1.4l27.2-.8z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M459.5 226c-2.4 2-6.8 4.7-8.8 4.5"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M454.7 218.5a672 672 0 0 1-20.5 64.3"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".4" d="M451.9 232c1.5 6.3 9.1 5.3 8.9-.4"/>
+ <path stroke-width=".7" d="M458.2 231.9c2 8.4 12 7 11.6-.4"/>
+ <path stroke-width=".5" d="M467 231.8c2.3 5.2 6.7 5.7 10-.3m1.2-2.6-27.5 1.3v2l27.8-1zM450.3 248c1.8 7.7 10 6.5 9.7-.5"/>
+ <path stroke-width=".8" d="M457.9 248c2.4 11 13.8 9.5 13.4-.7"/>
+ <path stroke-width=".5" d="M466.8 247.8c2.4 6.4 6.6 7 9.9-.5m2.3-2.4-31.5 1.3.2 1.8 31.6-.9zm-29.2 21.7c1.8 8.2 10.7 7 10.5-.4"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M473.1 270.9q2.9 11.7 6.5 21.7m-8.9-22c1 7.6 3.1 14.9 5.3 22"/>
+ <g fill="#bca76b" stroke="#472b1f">
+ <path stroke-width=".7" d="M457.9 266.3c2.2 11 13.8 10.1 13.6-.5"/>
+ <path stroke-width=".7" d="M467.6 266.3c2.6 7 7 7.6 10.6-.5m2.5-2.9-34.9 1.3v2.6l35.5-1.3z"/>
+ <path stroke-width=".3" d="m469.4 223.5-10 .3v2.2h10.2zm0 16.3-10 .2v2.3h10.2zm.7 17.7-10.8.3v2.2h11z"/>
+ </g>
+ <g fill="none" stroke="#000">
+ <path stroke-width=".5" d="m474.1 273.2-5.7 1.2m6.6 3.1-5.7 1.2m7 3.6-5.8-.3m7.5 4.8-6 1m-20.8-1.9 6 1.2m-4.3-6.1 5.4 1.2m-4-5 5 1.3m-4-4.7 4.5.9"/>
+ <path d="M526.9 293.9c10-.5 22-1.7 30.2 1.5m-29.5 1.8c9.2-1.4 20-2.1 28 .9m-27 5.8a53 53 0 0 1 22-.3m-21.3 1.9a48 48 0 0 0 20.8.2"/>
+ </g>
+ <path d="m431.5 282.1 21.7 13 .5-.5-6.8-4.7c-5-3-9.8-6-15.4-7.8"/>
+ <g fill="none" stroke="#000">
+ <path stroke-width=".5" d="m535.7 292.8-.2-7.2m2.4 0v7.5m4 0v-7.7m4.6.7v7.4m2.7-7.5v7.6m3.6-6.8v7m1.8-7.1v7.9m-18 1.4v6.8m-2.3-6.5v6.5m6-6.7-.3 6.5m2.5-6.6-.1 6.5m3.4-6.5-.4 6.2m3.5-5.4-1.2 5.8"/>
+ <path d="M527 286c10-1.2 19.9.3 29.8 1.3"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-width="2" d="M581.1 197c.1-25.6-1.3-50.4-.7-72.1-33-14.7-76.6-17.7-98.7-17.7s-65.8 3-98.8 17.7c.6 21.7-.8 46.5-.7 72z"/>
+ <path fill="#69737c" stroke="#000" stroke-width=".7" d="M475.7 155.4s3.6 5.4 4.6 8.2q.7 2.3.5 4.4c-.2 2.7-1.2 5.3-2 7.8-.6 1.8-2 3.2-1.2 4.9.3.8.7 1.6 1.6 1.5.5-.1.8-.8 1.2-1.2l1-.6c.5-.2 1.2.1 1.6-.3q.6-.6.3-1.4c-.3-.3-.8 0-1.3 0s-1.2.5-1.7.2-.8-1.7-.8-1.7l1.6-4.4c.5-1.2 1.3-2.3 1.5-3.6V168c0-.7-.2-1.4.3-2 .2-.2 1 .2 1.2-.2.6-1.5-2.1-2.5-2.8-4l-.2-1.7c-.5-1.3-2-3.5-2-3.5z"/>
+ <path fill="#66452b" stroke="#000" stroke-width=".7" d="M486.9 159.6s3.1 4 3.5 6.3l-.4 1.6c0 .8.5 1.6.5 2.5-.2 2.7-1.6 5.2-2.3 7.8l-1.4 6.7 2-.2.4-3.4 1.5-5.8 1-4 1.3-2.5c.2-1.2.6-2.5 0-3.6q-.4-.5-1-.7a10 10 0 0 1-1.6-2.5c-.5-1-1-3-1-3-.5.3-2.5.8-2.5.8z"/>
+ <path fill="#fff" d="m471.9 152.3 2.3 1.9 3.8 2.3 1.9.2 2 .7 2.6-.1 1.9 2 .4.3 2.2-.3.8-.9 4-6-1-10-19 1.1z"/>
+ <path fill="#fff" d="M492.4 135.4a41 41 0 0 1 7.1 7c1.5 1.8 2.4 4.3 4.8 5.4 3.2 3.4 16.9 7.4 17 8.5-3.2-1.3-4.6 3-7.7 2.3-2.8.8-5.2-1-7.6-2-3.8-.2-7.6 0-10.9 1.9-1.8 1-3.9-.5-5.3 0l-.2.2-.2.2m-17.5-6.5c-2.2-1.1-3.8-3.2-5.9-4.4-1.5-2.2-3.6-4.5-3.5-7.4-.2-3-1-7.2.4-10-1-2.3-2.4-3-3.6-5.1-.8-3.1-3.9-4.9-2-7.2 2-1.9 3.5-4 6.2-5a12 12 0 0 1 6.6.5c2.7.3 4.2 2.6 5.7 4.7a23 23 0 0 1 3.4 9.1c1.3 2.6 4.7 3.2 7.2 4.3 2 1 4.2 1.9 6 3.5"/>
+ <path d="M507.4 153.2c-1-.1-3.6 1-3-.7-2.6-.2-5.4.4-8-.5a47 47 0 0 0-8.3-2.9c-2.7 0-6 .5-8.1-1.7-2.2-1.3-5.4-.4-7.4-2.3a9 9 0 0 1-3.3-6.8c-.3-2.6-1.3-6.1 1.6-7.7 2-.6 3.8 0 5-2a10 10 0 0 1 6.7 1.7c2.5 1.2 5.3 2 7.7 3.4 2.3 1.5 4.2 3.5 6.4 5.2 1.7 2 3.7 3.7 4.8 6.1 1.3 2.6 4 4 6.3 5.4 1.3.4 4.6 2 1.5 2.3l-2 .5z"/>
+ <path fill="#69737c" d="M480.5 144.6a8 8 0 0 1-4-1.3c-.7-.5-3-1.8-1.5-2.8 1.1-.1 2.5.5 3.5-.4 1.6-.3 3.2-.3 4.7-1 1.4-.8 3-.3 4.4-.8 1-.5.8-2.6 2.4-2.2 1.5-.4 1 2.4-.2 1.5-.9 1.1 1.4 1.5 2 2.2 1.2 1.4-1.5 1.7-1.7 2.7-1.7.5-3-1.6-4.6-1-.3.5 0 1.7-1.1 1.4-1.5-.9-2.7.1-4 .3.4.3-.6 1.5 0 1.4zm29.1 10c-.8-.4-1.8 0-2.7 0q-.9 0-1.7-.2c-.9 0-2.5-1-2.8.3 0 .5 1.5.8.3 1q-1.6 0-3.3-.8c-.5-.4-1.4-1-1.1 0s-.6 1.3-1.4 1.3a5 5 0 0 1-3-1.1c-.6.6.8 1.6 1.6 1.7.8.6-1.2.4-1.7.3q-1-.3-2 .2c-1 .2-1 1.1.1 1 1 .3 2.2.7 3.3.2a9 9 0 0 1 3.6-1.4l3-.5h4.1q1.7.4 3-.5c.7-.2 2.4-.9 1.2-1.4z"/>
+ <path d="M506 156.5q.8 0 1.4-.2l1.7-.6c.7 0 1-1 .3-1.1l-1.3-.7-1.4-.8 1-1.2 1.5-.3h1.2l1.7.7 1.7.8 1.5.4q.8.4 1.7.6c.6.2.8.8 1.5.7q1 .2 1.8.7.8.3 1 .9c-.5 0-1-.5-1.5-.3-.5 0-.8.5-1.3.4-.2.6-1 .5-1.4 1.1l-1.9 1.1a2 2 0 0 1-1.6 0l-1.8-.2q-1 .2-1.9-.1t-1.4-.9l-2.1-.7-.6-.3zM465 113l-1.6.2q-1.4.3-2.4 1.4a13 13 0 0 1-2.6 2.4l-1.2 1.3q1.1.7 1.9-.2 1-1.1 2.3-1.7c.8-.2 1.6.2 2.4.2a5 5 0 0 0 2 .8l1.6.3 2.2.6q1.4.2 2.6 0h.6l-.2.6q0 .8.5 1.5l.8 1.3.7 1.6.6 1.3q.1.8.7 1.3l1 1.4.8 1.3c.3.3.7.8 1.2.7l1.6-.2h-.2q-.7-.5-1-1.3l-.2-1.5q0-.8-.4-1.5l-.4-1.2-.5-1.3-.7-1.5-.7-1.4-.8-1.3-.6-.5q0-.3-.3-.7-.7-.7-1.1-1.5-1.1-1-2.5-1.3l-3-.9-2.5-.2h-.5z"/>
+ <path fill="#69737c" d="M474.6 126.5c0-.7-1-.5-1.3 0L472 128c-1 .7-2 .8-3 1.4q-.5.9-1.5 1.5-1.2.5-1.8 1.5c-.1.5-.5 1.3 0 1.7.7.3 0 1 .1 1.4.3.5 1.2.7 1.7.4q1-.7 1.8-1.5 1-1.3 2.3-2a3 3 0 0 0 1.5-1c.5-.4 0-1 .8-1.2q.9-.5 1.3-1.3c.4-.6-.3-1.1-.2-1.7q0-.3-.3-.7z"/>
+ <path fill="#66452b" stroke="#000" stroke-width=".7" d="M485.2 185h-3.7c-.6-.2-1-1.2-1.9-.8q-1 .3-1.9 1a5 5 0 0 0-1.6 1.3c-.1.4-1.2.8-.2.8.8.1 1.3-.8 2-.9.7-.3 1.5 0 2-.1h1.8l2 .2c.9 0-.4.6-.7.8q-1 .4-2.3.5t-2.3.3l-2 1.2c-.4.2-1.4.7-.4.7q1 0 1.9-.3l3.4-.9 2.3-.6c.5 0 1.7-.3 1.3.6a4 4 0 0 1-1.8 1.3q-.8.6-1.9.8c-.5-.2-1.7.2-.8.8.4.7 1.3.2 1.8 0l2-.9 2.2-1 2-.8q1-.5 1.7-1.5.4-.9 1.3-1.2c.7-.2 1.4 0 2-.2.8 0 .6-1.4-.1-1.5l-1.8-1.2q-1-.5-2.3-.4a2 2 0 0 0-1.6 1c-.4.5-.5 1.4-1.3 1.2q-.6.1-1.1-.2zm-18 4.6s.6-2.5 1.5-3.4c2-1.9 7.2-3.2 7.2-3.2-2.3 1-5 .2-7.2.9-1.8.5-4.9 2.9-4.9 2.9s1.2-2.5 2-3.5c2.7-2.9 6.8-3.2 10-2.7l3.6.4s.6.4.3 1c-.5 1.1-2.2 1.8-3.4 2.3-3.2 1.7-7.2 3-9.2 5.3z"/>
+ <path fill="#69737c" stroke="#000" stroke-width=".7" d="M478 180.6c-2.9 1.9-9.5 5.4-9.3 5.6 0 0 5.7-1.3 8.3-2.6.9-.4 2.2-.7 2.5-1.7q.1-.8-.5-1.4a1 1 0 0 0-1 0z"/>
+ <path fill="#69737c" d="M491.7 165.4c-.6 0-.7 1.3-.8 2 0 .5 0 1.4.5 1.4s.8-1 .8-1.7c0-.5.1-1.6-.5-1.7"/>
+ <path fill="#69737c" stroke="#000" stroke-width=".7" d="M488.8 184.3c0-.5-.7-.2-1-.1q-1 .2-1.9.9l-1.4.9-2.9 1.5-1.3.5q-.4.2.1.2 1 .3 2-.1l2.2-.7 1.6-.7c.3-.2 1.3-.4 1.6-.5.6-.4.4-.8 1.1-.8.5 0 .5-.7 0-.8v-.3z"/>
+ <path fill="#69737c" stroke="#000" stroke-width=".7" d="M482.3 190.4q.8 0 1.5-.3l1.9-.6.8-.4a4 4 0 0 0 1.2-1.4l.7-1.3q0-.6-.6-.3l-1 .8-1 .8-1 1.4-.6.4-1.6.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="m489.2 152.9.4 1 .2 1.5c0 .5-.5.8-.6 1.3v1c-.2.5 0 1-.2 1.6-.3.5-1 .1-1.5.2q-.8.3-1.1-.3l-1.2-1.2q-.8-.7-1.3-1.5l-.9-1.4-.2-.5m1.7 2.7h-2.6c-.3 0-1 0-1.2-.3q-.4 0-.8-.3h-.7q-.4-.7-.9-1.1l-.7-.5-.5-.6-.5-.8-.4-.8v-.2m3 4c-.1.5-.8 0-1.1-.2l-.8-.3-.7-.4-.8-.5-1-.5-1-.8q-.8-.4-1.2-1-.7-.3-.7-1l-.3-1.2-.1-.5"/>
+ <path fill="#bca76b" d="m507.4 157 1.2-.2 1.2-.2q.5-.5 1.1-.5.8 0 1.3-.2a1 1 0 0 1 1-.4q.6 0 1.1.2l1.1.3 1 .5c.4.2-.2.5-.3.6-.4.2-.8 0-1.1.3q-.6.3-.8.8-.4.4-1 .4h-1q-.5.2-1 0l-1-.2q-.5-.4-1-.5l-1.5-.7z"/>
+ <path stroke="#000" stroke-width=".5" d="M459.6 122.7c-.9-.2-1.8.2-2.6.2h-5.2c-1.3.3-2.6.9-3.9 1l-5.3.1c-1.3.1 0-1.5.8-1.5q2.4-.8 4.9-1.2l3.7-.7 3-.8q1.7-.4 3.2-.2l3.3-1c1-.5 2-.2 3-.8.5-.8 1.5-.7 2.5-.7q1.6.2 2.5 1.4c.7 1-1.4.9-.8 2q-.7.4-1.6.4c-.9 0-1.1 0-1.5-.2l-2.2-1.3c-.8-.2-.9 1.3-1.8 1.1-1.2.5-2.6.3-3.9.4q1.3.4 2.4 1.2c.3.4-.2.4-.5.5z"/>
+ <path fill="#fff" d="m464.8 119.1.8-.3.5-.8s.7 1 .3 1.4-1.6-.3-1.6-.3m2.2-2c.1 0-.7-.6 0-.8.6-.7 1.6-.1 2.4.1q2.4.6 4 2.4c1.5 1.6 1.8 3.8 3 5.7l1 2.8c.3.7 1.4 1.5.8 2.3-.7.4-1.4-.2-2-.3-1-.1-.5.9 0 1 .7.3 1 1.3 0 1.2l-2.6-.3c-.7-.4.2-1 .6-1.3s1.2-.7 1-1.4c0-1.2-.8-2.3-1-3.5q-.3-1.4-.9-2.7c-.4-2-2.2-3.3-4-3.9l-2.3-1.1z"/>
+ <path fill="#bca76b" d="m473.5 118.1.8.4.8 1.2.2.7q.1.4.5.7l.3 1 .4 1 .3.7q.3.5-.2.6l-.6-.3-.7-1-.2-.6-.3-1-.4-.7-.4-1c-.1-.3-.7-1.1-.6-1.5zm-5.9-2.2-.4-.3-.6-.3c-.4.1-.1-.3-.3-.2l-.2-.5-.3-.4s-.2-.2 0-.2l.6.1.5.1h1.1l.3.1q.3.1.4.4l.3.5v.4l-.5.2-.6.2z"/>
+ <path fill="#fff" d="m467.1 115.6-1 .1-.4.4-.6.2-.5-.3-.3-.3-.4-.2q-.2 0-.2-.4v-.5l.4-.2h1l.7-.1.4.3zm1.6-.9.7-.2.7.1q.5 0 .8.3l.8.4.7.3.7.4.6.6q.1.4-.3.4l-.7-.4-.7-.2-.7-.3-1-.4-.5-.1-.9-.5q-.2-.1-.2-.4"/>
+ <path d="M472.4 120c-1 0-2 .4-3 0-.7 0-1.3.6-2 .8-.8-.1-1 1.1-1.7 1-.7 0-1.4-.5-2-.3q2 .8 3.8 2a6 6 0 0 0 2 1.3c.7.3 1.3.8 1 1.5-.2.8-1.4 1-1.4 1.8-.1.8-1 1.2-1.3 1.8s-1 1-1 1.6c.1.8 1 .2 1-.4.2-.5.7-1.4 1.4-1 .5.7 1.2-.6 1.8-.3q.7.9 1.3.1c.5-.2 1.2-.5.7-1 0-.7.8-.7 1.2-1 .5-.2 1-1 .5-1.4-.5-.7 0-1.7-.6-2.3-.5-.7 0-1.7-.4-2.4q-.4-1.2-1.2-1.8z"/>
+ <path fill="#69737c" d="M499.2 147.2c-1 0-2 .9-3.2 1s.4.8.8 1c1.1.8 2.4 1 3.6 1.5q1.8.9 3.7.6c1.1-.3.3-1.4 0-2-.7-1-2-1.5-2.8-2.4q-1.2-.7-2 .3z"/>
+ <path fill="#fff" d="m498.4 149.7-1.2.1q-.8.2-1.5-.1l-1.4-.5q-.7-.3-1.1-.8c-.3-.4.3-.4.6-.4q.7-.3 1.6-.2l1.7.8q.8.3 1.3.8zm5.6-.4c.1.5-.7 0-1 .2a3 3 0 0 1-1.6-.3q-1.4-.7-2.7-1c-.4-.1-1.3-.5-.6-1a3 3 0 0 1 1.7-.8l1.8.6q.9.4 1.7 1t.8 1.3z"/>
+ <path fill="#69737c" d="M488.6 143.8a5 5 0 0 1-2.8.7c-.9.3-2.3-.5-2.6.6-.4 1 .7 1.4 1.3 1.8 1.8 1 3.8 1 5.7 1 .6 0 2.3-.2 1.4-.8q-1.5-1.2-2.5-2.7zm9.8.6-1.2-.3-1.4-.8-2-1q-.5-.4 0-.6c.4 0 .6-.5 1-.1q.6.3 1.1 1t1.4.8q.8.4 1 1zm-1.4 1.8s-1.7.5-2.5.2q-1-.2-1.8-.6-1.2-.5-2-1.3c-.5-.5 0-1.4.8-1.2.4-.1.2-1 1-.6s1.7.8 2.4 1.4l1.5 1.3zm-13.2-12.4c1.2.3 2.6.8 3.3 2 1 1.1-1 1.9-2 1.1q-2.2-1.1-4.5-2c-1.6.3.6 1.2 1 1.5q1.3.9 1.3 2c-1 .8-2.3 0-3.4-.2-1.2-.1-2-1.2-2.7-2q-.9-1-2-.6c0 1 .8 1.3 1.3 2.2.4.5 2 1.8.5 1.9a5 5 0 0 1-2.9-2.2c-.7-.7-1.2-2.2.2-2.4q2-1 4.2-1c1.5-.2 3.1 0 4.7-.4.2 0 1.2-.5 1 0z"/>
+ <path fill="#fff" d="m471.9 134.7-.4 1v1.2l.4 1q.3.6.8.8.3.4.8.6l.7.4 1 .2q.5 0 .7-.3.3-.3-.2-.5-.4 0-.7-.5l-.7-.7q0-.4-.4-.8l-.6-.7-.7-.7-.6-.8zm10.4 4-2.6-.5a5 5 0 0 1-2.2-1.6q-1-1-2-1.7c-.9-.3-1.2.9-.7 1.3l1.6 2 2 1.4a7 7 0 0 0 3.1.8q1.2-.1 1.6-1-.2-.7-.8-.6zm-2.4 5.4q-.9 0-1.7-.3a3 3 0 0 1-1-1.2q-.8-.9-1.5-1.1c-.5-.1-1.2.2-1 .8q.1.7.8 1.3 1 .7 2 1.1.6.3 1.2.2c.5 0 1 .2 1.2-.3zm5.9-1.7q.8.4.5 1.3-.6.8-1.7.8l-1.6-.1-1.7-.8c-.6-.2-.7-.9-1-1.3s.5-.7.9-.6c.5.2 1 .8 1.4 1l1.5.5c.4 0 1 .2 1.2-.2l.4-.6zm5-1.3c.5.4.2 1.3-.5 1.5h-1.4l-2-1q-.8-.3-1.3-.9c-.2-.6.5-1 1-.8q1.2.2 2.4.8.7.4 1.7.5z"/>
+ <path fill="none" stroke="#000" stroke-width=".7" d="M492.4 135.4a41 41 0 0 1 7.1 7c1.5 1.8 2.4 4.3 4.8 5.4 3.2 3.4 16.9 7.4 17 8.5-3.2-1.3-4.6 3-7.7 2.3-2.8.8-5.2-1-7.6-2-3.8-.2-7.6 0-10.9 1.9-1.8 1-3.9-.5-5.3 0l-.2.2-.2.2m-17.5-6.5c-2.2-1.1-3.8-3.2-5.9-4.4-1.5-2.2-3.6-4.5-3.5-7.4-.2-3-1-7.2.4-10-1-2.3-2.4-3-3.6-5.1-.8-3.1-3.9-4.9-2-7.2 2-1.9 3.5-4 6.2-5a12 12 0 0 1 6.6.5c2.7.3 4.2 2.6 5.7 4.7a23 23 0 0 1 3.4 9.1c1.3 2.6 4.7 3.2 7.2 4.3 2 1 4.2 1.9 6 3.5"/>
+</svg>
diff --git a/apps/web/public/flags/sh-ta.svg b/apps/web/public/flags/sh-ta.svg
new file mode 100644
index 00000000..ba390631
--- /dev/null
+++ b/apps/web/public/flags/sh-ta.svg
@@ -0,0 +1,76 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sh-ta" viewBox="0 0 640 480">
+ <path fill="#006" d="M640 480V0H0v480z"/>
+ <path fill="#8fc5ff" stroke="#fff" stroke-width="4.3" d="M574.5 199.7c0 63.7-10.2 132.5-93 165.3-82.6-32.8-92.7-101.6-93.1-165.3z"/>
+ <path fill="#366cc9" stroke="#000" stroke-width="4.3" d="M481.4 364.7A134 134 0 0 0 555 302h-7.8c-2.3-.4-79.4-7.8-88.7-11.7-7.9-2.8-38.4 2.7-52.4 7.8a133 133 0 0 0 75.4 66.5z"/>
+ <path fill="#5d3100" stroke="#000" stroke-width=".4" d="M423.6 325.6h4.7c1.1 0 1.1 0 1.5-1.2s1.6-.8 2.4-.4 2.3 0 3-.8c.9-.8.9-.8 1.7 0s1.1.4 2 0c.3 0 1.9-.8 2.3-2s1.5-1.5 2-.7q.5 1 1.9.8.9-.1.7 1.5c0 .8 0 1.2 2-.4 1.6 1.6 2 .8 2-.8 0-1.5 0-7.8-.8-8.2s-1.2-3.1-1.6-5c0-4 0-4-3.9-6 0-1-.8-1.5-4-1.5.5-.4 0-1.5-.7-2-.8-.3-.8-.7 0-2.3.8 0 2.4 0 2.7-1.2.8-.7 3.2-.7 4.7 0 1.6.8 3.2.8 5.9 0l4.7-2.3c2-1.2 2.3-1.6 2.3-3.1 0-4-1.1-7.8-2-9.8-1-2-1-4-2.7-7.4-1.5-3.2-1.5-4-3-5.9-.9-.8-1.3-1.2-1.3-2.3a6 6 0 0 0-2-4c-3-2.7-3.8-11.7-5.4-18.3-.8-4 0-13-1.5-14.5-2.8-2-4-1.6-6-2.3-1.5-2-1.9-5.5-3.4-9-2 .4-3.2 2.3-4.3 3-1.2.9-1.6.9-1.6 2.8 0 1.6-1.2 4-2.7 7-1.6 3.2-5.1 2-7.9 6.3-5.4-6.6-5.4-8.6-5.8-10.5 0-2-1.2-2.4-4.3-5.1v-6c-2.8-2-4.3-1.5-5.5 0-1.2 1.2-2 3.1-3.9 4-.8 1.5-4 4.6-6.3 9 2.4 35.1 10.2 70.3 34 98.5z"/>
+ <path fill="#ff0" stroke="#fff" stroke-width="4.3" d="M574.5 199.7c0-24.3-1.2-47.8-.8-68a249 249 0 0 0-92.3-16.9c-20.7 0-61.4 3.1-92.2 16.8.7 20.3-.8 43.8-.8 68z"/>
+ <path fill="#cf6200" d="M393.5 227.4c1 1.6 2.9 4.3 3 6 .8-1.6 1.4-2.2 1.5-3.1 0-1 1.3-2.7.8-3.7s-.7-1.7.4-1 .9 2 .7 3.8c-.7 5-2.7 6-3 9.3 2.9 7 .7 9.6 4 16.6.5.2 1.8-.3 2.2-.2 1.8-1.2 3-.9 5.5-.3 2.4.5 3.7 2.2 3.7 3.8s0 1.9.6 2.8 1.4 2.3 1.3 3.4q-.3 1.5.5 2c.3.5-.2 1.8-.4 2.4q-.6 1 1 3.2c1.2 1.5 4 7.9 4 11.6 0 3.9.3 5.6 1.8 6.3s2 1.3 1.8 2.9.7 10 .9 11.4c.1 1.3.7 1 1.4 1.7s1 1.5 3 1.5h5.2c2 2.5 3 6 3.5 8.1.5 2.2.4 5 1 5 .8 0 1.5 0 1.3-2.5-.2-2.6-.4-3-1.3-4.4q-1.6-1.8-1-2.7.7-1.3.5-3.1c-.2-1-.6-2.6 1.2-.6l2.7 3.3c.5.6.7 2 .6 3.3q-.3 2 .9 1c.7-.6 1.5.5 1 1.8q-.4 1.9 1.5 2.6 1.7.4 2 1.6c.3.8 1.3 1.3 1.3-.6a27 27 0 0 0-1.2-6.9c-.5-1.2-.9-3.8-1-5.4-.2-1.5-.4-1.9-1.1-2.1q-1.2-.6-1.5-1.6c0-.7-.7-1-1.1-1q-.7 0-1.2-.8-.3-.8-1-.6c-.5-.1-1.3.2-1.6-.6-.2-.8-.6-2-1.1-2.6s-.9-.9-1-3.2 0-2.6-.8-3.4-2-3-2.5-3.8c-.4-1-1-1.9-1 0 0 2 0 3 1.3 3.7 1.2.7 1.5.7 1 1.8-.6 1 0 1.7.2 2.4s.6 1.4 0 2q-1 1.2-1.1-.5a6 6 0 0 0-.9-3.3c-.4-1-.9-1.6-1.5-1-.6.4-1.1-.2-.7-.6q.6-.6 0-1-.5-.3.1-1.2c.6-.9.5-.9.2-2.3s-2.5-8.6-3.5-10.2c-1-1.7-.9-2.8.3-1.3 1.3 1.6 2.5 3 2.7 4.4q0 2 .7 2.6.6.9 1-.8c0-1.1 1-.7-.4-2.8-1.5-2.1-4.1-5.7-5.2-12.2-1-6.4-1.4-10.5-2.4-12.2-1-1.8-1.3-2.2-1.4-3.8s0-3.3-.7-4.5-1.2-1.4-1.3.4 0 6 .6 6.6c.6.7.2 2.6 0 3.5-.2 1-1.7 2.1 1.7 4.1 1.3.9 1 2 1 2.6q-.3 1.2-1.2-.4a7 7 0 0 0-2.1-2.6c-.7-.5-.9-1-.7-2.5q.4-2.3 0-3-.5-.6-.9.8c-.2.8-.3 3-.9 3.6-.5.6-.5.2-.8-1.1q-.4-2.1.8-5.7c.7-2.2 1.2-4.8.6-7.8s-.4-4-2.6-6.5c-2.4-2.6-5.1-5-6.1-8.1-1.2-3.2-1.4-6-2.7-7.4a17 17 0 0 0-4-3.7v-4.7q0-1.8-1.8-1.6-1.9.4-3 2.8c-.8 1.6-1.4.9-2.6 3.5s-2.6 4-2.6 6.8z"/>
+ <path fill="#cf6200" d="M400.8 257.1c1 .6 1.7.9 3 .3 1.1-.6 2.5-2.4 4.3-.6a11 11 0 0 1 2.4 6.7c0 2.3 0 6.5 2.6 8.8q3.9 3.4 4 7.8a53 53 0 0 0 1.4 9q.6 2 1.9 3.5c.7.8 1.4 3.1 1.5 5.5.1 2.5-.3 4.1 0 5.4.4 1.2 0 2.2-.8 1.7-1-.5-1.2-1-1.8-2q-1-1.6-.5.7c.5 2.3 2 3 3.3 3s1.7.1 2.6 1c.8.8.9 1.2 2.3 1.2s1.6 0 3 .4c1.3.3 1.3.2 2 0q1.1-.3 1.9 1.7c.4 1.3 1.7 5 1.7 6s0 2 .7 3c.7 1.1.5 2-.3 1.5-.7-.6-.8-.5-1.3-.3q-.7.2-1.9-.8c-.8-.4-.3-.3-1.1-1.5q-1.2-2-1.3-.7 0 2.1-.8 1.4t-1.4 0c-.5.6-.7 1-1.3 0s-1.3-1-2-1.3c-.5-.1-.5-.1-.8-1s-1.3-1.2-2-1.2q-1.3 0-1.4-1c0-.6-.6-1-1-1.3s-.2-1-.3-1.7-.7-.5-1.1-.6c-.5-.2-.7-.1-.7-1.2s-.5-1.3-.7-2c-.4-.8 0-1.5.2-2.2.1-1 0-1.4-.6-2-.6-.8 0-1.5-1.7-3-1.7-1.3-2.5-.1-3-3.4a44 44 0 0 0-2.4-11.4c-1-1-1.5-2-2.5-2.3s-1.4 0-1.5-2-.7-4.4-2-5.6l-2.3-2.2c-.6-.4-.9-1.4 0-3 .9-1.8.5-4.2.4-5.3s-.4-2.6-.2-3.8 0-2.7-.2-3.5-.7-1-.2-1.7zm24.5-28.8a22 22 0 0 1-4.7 4.6c-1.9 1.4-4.3 2.4-3 4.7 1.4 2.3 2.5 2.6 2.7 4.3q.3 2.9 2 3.7c1.5.4 2 .2 2 3s0 4 1.2 5 1 2.2 1.6 4.7c.6 2.6.6 8.2 2.2 12 1.5 3.7 5.3 11 4.8 12.4s-.8 2.6.7 4.4c1.7 1.7 2.7 4.3 3 5.8 0 1.5.3 2 2 1.5a6 6 0 0 0 2.9-1.7q.8-1 3.1.2c1.5.9 3.8 1.6 5.2.9 1.3-.9 2-2.1 3.2-2.1 1.9-1.4 2.6-4.2 3-5s.1-.8-.7-1.6-.4-2.2-.5-3.5q-.1-2-2.3-6.5c-1.6-3-2.7-6.6-3.7-7.5s-1.6-3.3-1.7-4.4c-.1-1-1.4-2-2.2-2.8-.9-.9-1.6-2-2.6-6.8s-1.6-8-1.6-9c0-.8-.2-.8-1-1.2s-1.2-1.6-.8-2.2c.1-.7-.4-1.4-.7-2.2s0-2.3.6-3.2c.5-.8.4-3-.1-5-.5-1.8-1.1-3.4-3.3-3.8-2.1-.2-2.6-.8-3.3-2.6-1-1.7-1.8-4.8-2-5.5s-.7-.8-2.3.6-2.2 1.7-2.2 4.3c0 1.7.4 2.2.9 3.1.5 1 .7 1.3 1 3.8s2.7 6.6-.2 9c-3 2.2-2.6 2.8-2.5 4.4s-.8 2.7-1.3.5c-.6-2.4 0-3.7 1.6-4.8s3.1-2.5 2-4a19 19 0 0 1-1.7-6.6c-.1-1.6-.3-2.2-1.3-.9"/>
+ <path fill="#00b800" d="m401.2 262.8.3 3.3c0 1.1.4 3.5-.5 5.2q-1 2.4 0 3.1h.1c1.7-.5 2-2.3 1.5-3.2a3 3 0 0 1 .2-3q.8-1.3 0-2.2c-.5-.7-.5-.7 0-2.6.6-1.7-.7-1.7-1.6-.6m17.4 26.3c-.3-1.2-1.5-6-1.5-9q-.2-4.4-4-7.8c-2-1.8-2.4-4.7-2.6-7q-2.2-1.3-1.9 1.2c0 1.8 2 2.6 1.7 5.3s-.3 2 1 3.3c1.1 1.2 1.7 2.6 1 3-.7.5-.7 1.5.2 1.8 1 .4 1 1.4.9 2.4s.9 1.1 1.3 1.7c.6.7.6 2.4 0 3.3-.4 1-.5 2.5.4 1.7s1.4 0 2.1 1.2c.6 1 1.2.7 2 .5l-.7-1.6zm13 23.6c-.4 1.2-1.1.9-1.7.3s-1.3-.6-1-1.8c.2-1.1 0-1.3-.7-1.9l-.3-.3h-.8c-1.5 0-1.6-.3-2.5-1.2l-.5-.4v.8c0 1.1 0 .8-1 1.2s-1-1.1-1.2-2l-.1-.6a4 4 0 0 1-3-2.9c-.5-1.6 0-1.7.6-.7s.7 1.3 1.6 2c.8.5 1.2-.5.8-1.7v-1.3a2 2 0 0 0-.8-1c-1.8-.7-1.2-.8-1.2-2.2q.4-1.8-1.2-.6c-1 .7-1 0-1-2.2 0-2-1.4-2-1.7-.6-.3 1.5-.9.5-1.4-1.5s-1.5-2.6-1.5-.6q0 2.5-1.6 1.2l.4 3.1c.5 3.3 1.3 2 3 3.5 1.6 1.4 1.1 2.2 1.7 2.9q.8 1 .6 2-.6 1.2-.3 2.2c.3.8.8 1 .8 2.1 0 1 .2.9.7 1.2h.8l.7-1c1.3-1.2 3 0 3.7 1.7q.9 2.4 2.3.6c1-1.2.6-1 1.6.1s1.4 1 1.4 1 1-.4 1.8.2c.7.6 1 .5 2.4-1.4 1.3-2-.6-1.4-1.2-.2zm3.8-55.8c.4-3 .1-5.9 1.3-7 1.3-1 2.7-3.3 2.7 1.4-.2 4.6-.4 4.3-1.3 5.4s-1.8 1.4-1 3.1c1.1 1.7 1.2 2 1.1 4.6-.1 2.7-.1 3.9.9 5.2 1.1 1.4 1.4 1.4 1.7 3a8 8 0 0 0 2.4 4.5c1.2 1.2 2.6 4.2 2.7 6.4s2 2.7 3.8 4.3-.4 2.5-1.7 1.8c-1.4-.6-.9 0-1.7 1s-1 1.1-1.7-.6c-.7-1.6-3-2.7-4.1-3.1s-2-2.2-3-4a5 5 0 0 0-3.9-2.6q.6 1.7.5 2.4c-.4 1.5-.8 2.6.7 4.4 1.7 1.7 2.7 4.3 3 5.8 0 1.5.3 2 2 1.5a7 7 0 0 0 2.9-1.7q.8-1.1 3.1.2c1.5.8 3.8 1.6 5.2.8 1.3-.9 2-2 3.2-2 1.9-1.4 2.6-4.3 3-5 .4-1 .1-1-.7-1.7-.8-.8-.4-2.2-.6-3.5q.1-2-2.2-6.4c-1.7-3-2.7-6.6-3.7-7.5s-1.7-3.3-1.7-4.4c-.2-1-1.4-2-2.2-2.9s-1.7-2-2.6-6.7q-1.2-5.7-1.5-8-1.5 2.4-2 .8c-.5-1.2-.9-1.8-1.5-1s-.7-.8-.7-1.5 0-.7-.9-.7 0-1-.3-3.2c-.3-2-.7-2.2-.9.2s-1.7 4-1.1 4.4q.6.9-.3 3.3a5 5 0 0 0 0 3.6c.4 1-.2 3.2-.4 4.9s1.1 3.5 1.5.6zm-24.8-24.2c-1 0-1.7 1-1.1 4 .4 2-1 1.6-1.6.6-.5-1-1-3-2-4.7-1.1-1.7-.6 1.1-.7 2.8-.2 1.7.9 1.7 1.8 3s.2 1.9-.8 1.9-.7 2.2-.4 3.6c.3 1.5-.3 1.8-1 .6-1-1.3-.3-3-.2-5.4.2-2.3.3-1.8-1.2-2.3-1.5-.6-1.3-.9-.6-2.2.5-1.4 1-2 .3-2.7q-1-1 .6-1.2c1-.2.6-1 1.6-1.2 1-.3 1.4 0 1.5-1.7q.1-2.4 1.7-1.9c.7 2.3 1.5 5.8 2.1 6.8m13.7 16c0 2.8 0 4 1.2 5s1 2.2 1.6 4.7c.6 2.6.6 8.2 2.2 12l1.8 4a8 8 0 0 0 2-2.6c.3-.8-.9-2.8-1.8-4.3-1-1.8.1-2.3 1-4.4 1-1.9 0-2-1.6-2.6-1.4-.5-1.4-2-2.2-4.1-.8-2.2-.7-3.1-.2-4.4q.8-1.9-.9-2.4c-1.1-.3-.8-1-.4-2.4s.7-1.6-1-1.3c-1.2.4-1.5.7-1.9 1z"/>
+ <path fill="#5d3100" d="M439.9 254.3q-.1 2.3-.6 3t.3 2.2q.8 1.1.3 3.4t1 3c.8.4 1.2 0 1 2a6 6 0 0 0 1.7 4.7c1 .8 1.7 2.1 1.5 3q.1 1.2 1.7 2c1 .4.8.5.8 1s.4.6 1.4.9q1.4.3 3.2 2.4c1.2 1.6 3 2.3 2.7.7s0-2.8-1.6-3.5-2.9-4.7-3.5-7.4a17 17 0 0 0-4-7.1c-.3-2 0-2.9-1.2-3.8a4 4 0 0 1-1.7-3.2c0-.8-.6-2-1.2-2.4q-.8-.5-.8-1.8c0-.8-.8-.7-1 1z"/>
+ <path fill="#00d860" d="M432.7 327a39 39 0 0 0 9.7-2.8c1.7 1.1 4.5 2.6 5.7 2.6q-3.6.7-4.4-.2c.3.7 1 1.9 1.6 2-2.3 0-4.8-.6-5.6-1.4-2 .8-5.2 1-7-.2m4.3 3c.9.3 5.2 1 5.8 1-1.4 1.2-.2 2.4 2.1 2.2-1 .2-2.4.6-1.5.8a24 24 0 0 0 8.9-1.8c-2 2.5-11.4 4.8-15.3-2.2m4 6.1a9 9 0 0 1 5.3.3c-1.4.6-4.5.6-5.4-.2z"/>
+ <path d="M445.3 336.1c2-.3 8 1 10-.2-.7 1.9-4.3 2.2-5.7 1.7q-2-.6-3.4-.8c.6-.3-.2-.3-1-.7z"/>
+ <path fill="#00d860" d="M447.4 339a31 31 0 0 0 9-1.1c1.7.6 5.4 1.6 6.2 1.5-1.7 1-5 .4-6 0a11 11 0 0 1-9.2-.4"/>
+ <path fill="#00d860" d="M450 339.9q3.3.6 6.5-.5c.7.2 2.3.6 3.9.6 1 .5 2.3 1.3 3.7 1.5a17 17 0 0 1-7.5-.7 19 19 0 0 0-8 1.5 3 3 0 0 1 1.5-2.3z"/>
+ <path d="M447.4 328.6c1.7.5 8.2.2 11.3-1.3 1.4-.7 2.2.4.7.8-5.2 2-9.5 2.6-12.5 1-1.2-.6-1.4-1.2.5-.6z"/>
+ <path fill="#00d860" d="M478.6 319.8c-7.9 3.7-13 4.8-23.9 1.4-1-.2-1.7 0-.6.7a40 40 0 0 0 8.5 2.6c1.4.1.9.7 0 1-.8.2-1 .8.1.4s7.8-.7 10.5.7q1.6.9 1.3 0 0-.6 1.4-.8c.8-.1 1.4-.4.7-.6q-1-.4-.3-.7.9-.5-.2-.7c-.7-.2-1.3-.4-.6-.7a9 9 0 0 1 2.6-.7c.2-.5-.1-2 .5-2.6"/>
+ <path d="M465.6 320.7a26 26 0 0 0 17-6c1.6 1 3.7 2 4.9 2.2 1.1.2 2 1.2.3 1.2s-4-.7-5.2-1.2a30 30 0 0 1-17 4.3c-1.1 0-1.4-.5 0-.4z"/>
+ <path fill="#00d860" d="M452.3 296.3c1.6 1.1 4.3 2.9 7.8 2.6a17 17 0 0 0 5.7 3c-2.4.8-5 1.7-5.6 2.4-1-1-2.5-.8-2.8-1.4-1 1-.9 1.3-.2 1.8a22 22 0 0 0 7 .9c1.2-.4 1.7.7.6 1-2.7 1-8 0-9.8-2.9-2-2.9-3.5-4-8.5-1.3-.5-1.5-.5-1.7-1.5-1.7s-2.8-1.3-1.4-1.3 5.4-.6 8.7-3z"/>
+ <path fill="#00d860" d="M453.6 303c-1 .1-3.3 1.4-4.1 1.5-.9.2-2.4 1.4-.9 1.4 1.7 0 3.7-1.7 4.8-1.7s1.2-1.5.2-1.3zm5 5c-.7.2-3.3.8-4 .8s-1.5 0-1.4.6.3.9-.9.7c-1-.2-1.9.3-2.1.6s-.5.6.6.7c1 0 1.6.3 2.9-.4q1.7-1 3.6-1.4c1.3 0 2.6-1.8 1.2-1.5z"/>
+ <path d="M454.9 311.1c1.1.9 6.6 2.6 8.5 2.6 2-.1 1.7.7.2 1a12 12 0 0 1-9.6-2.7c-1.2-1 0-1.4.8-.9z"/>
+ <path fill="#00d860" d="M480.8 314a21 21 0 0 1-10.2.3c-1.7-.6-3.3-.6-2 .6 1 1.1 4.8 1.8 7 1.3-7.6 1.7-9.6 1.6-11.4 1.3a38 38 0 0 0-7-.2 6 6 0 0 1-3.3-.4c-.7-.5-.9-1.1 1.1-.9q3 0 .6-.5c-1.8-.3-4.1.4-1.8 2 2.4 1.4 7.4-.2 10.7.8a19 19 0 0 0 16.7-3.8c.3-.2.9-1-.4-.6zm-20.6-6.3q.3.9 0 1.4c-.2.4-.1.9.5.4s1-1.2 1.8-.8c.7.3 2.3.3 3 .2q1.4 0 0-.7a7 7 0 0 0-2.9-.6q-1 .1-1.9-.3c-.9-.4-.6 0-.5.4"/>
+ <path fill="#00d860" d="M471 309.7c-.8 0-2.4-.6-3.1-1-.8-.3-2-.3-1.2 1 .9 1.2 4.6 1.7 6 1.2 1.3-.6.8-1.2 2-.4q2.1 1.3 3.7 1.3c1.6 0 1.3 0 .3-.6s-1.6-.7-1.8-1.2-.2-.9.9-.5c1 .3 2 .8 2.8.4s2.2-1.3 3.5-1.3l.2-.8c-1.8 0-3 .5-3.5.6q-.7.4-2.4.2c-1.7-.2-2.2-.3-2.5-.5q-.6-.4.5-.6c.8-.2 1-.7 0-.6-1 .2-4.2.2-5.8-.3q-2-.7-2.8-.3c-.7.2-.6 1 .3 1 1 0 3.2.3 4 1q1 1-.2.4c-.9-.4-2.5-.2-.9 1"/>
+ <path fill="#00d860" d="m484.3 307.8-.3.8c1.9 0 6.4.4 8 1.3 1.4-1.1 1.1-1.5 2-1.2 1 .3 2.4.5 3 .3a2 2 0 0 1 1.5-.2c.6 0 2-.2 2.7-.6.8-.5 2.4-1 3.3-1s2-.3.3-.6-4.2.3-5 .6c-1 .3-3.5.5-5 .5s-3.6.7-5.3.3c-1.8-.4-4.2-.2-5.3-.2z"/>
+ <path d="M507.9 307c-3 2.2-6.8 2.7-11.1 3-1.3 0-.9.4.2.5 4.6.5 9.8-1.2 11.6-3 .5-.6.4-1.4-.7-.6z"/>
+ <path fill="#00d860" d="M487.1 312.2a47 47 0 0 1 7.3 1.7q1.7-.2 1.3-.9c-.3-.4-.4-.8 1.7-.6h7.5c.8-.3 2.3-1.5 3-1.5-1.8 0-9.5.4-10.4.3q-1.3-.1-2.1.4c-.6.3-.9.5-1.7.1-1-.3-2.1-.7-3-.1-.6.4-2.3 0-3.6.6"/>
+ <path fill="#00d860" d="M504.9 312.4c.7-.3 2.3-1.5 3-1.6 1.4-.1 2.8.4 3.5.6s1.5 0 1-.6 0-1.6 2-1.3c2.2.2 3.2.6 5.3.4s2.9 1.3 6.7-.2c-.2 1.5.5 1.6 1.2 1.3q1-.5 2.7.7c1.3 1 8.7 1 10.4.7s2.6.6 1.3 1-1.6 1-1.3 1.5.6.9-1 .7-2 .3-2.7.8-1 1-3.3.5-2.7-.1-3.9 0c-1.2.2-1.5.3-2.8-.1a10 10 0 0 0-5.5-.3c-1.6.6-2.7 1-4.2.6-1.5-.3-1.5-.2-.6-1 .8-1 1-1 2.8-1.1s3-.7 1.9-1.4c-1.3-.7-1.6-.6-3.3.1-1.6.8-2.4 1.4-4.3.4s-2.6-.9-4-.5c-1.2.3-3.2-.5-4.9-1.2m6.1 3c-2.4.4-3-1.1-5.4-.9-.8.2-2.2 1.2-.3 1s4 .9 5.8.8 1-1 0-.9zm-2.6 1.7c1.1-.4 3.6.5 4.8.3s2 .4.8.9-3.7-.7-5-.4c-1.1.4-2.4-.1-.7-.8zm-24.4 6.7c1.7 0 7.8-.3 10.2-5.3q.1-.7 1 0c.7.5 3.6 2.1 8.8 2.6 1.5 0 3 .8.1.7-3-.2-7.6-1-9.1-2-2.7 4.1-7.4 4.6-11 4.5-2.1 0-1.6-.6 0-.5"/>
+ <path fill="#00d860" d="M497.1 316.8c-.8 1.1-3.6 3-4.8 3.2-1.3 0-5.2-.2-6.1-.6-1-.3-2.1-.3-.8.7a11 11 0 0 0 6 1.3c1.6-.3 3.1-.8 4.2 0 1 .6 3 1.8 4.2 1.6 1.2-.3 3.5-.3 4.3 0 .8.4 2.1 1.6.1 1s-3.6-.2-4.5-.6c1 1.4 3.3 3.7 5.2 3.7.5 0 .9.9 0 1.3.8.4 3 .9 4.3-.3q-.5.7.3.9c.5.2 1.1.6.2.8s-3 .3-3.6 0c2 1.3 7 3.4 12.3 2.3 1-.1 1.6-.6 0-.5-3.5 0-3.7 0-4.3-.3q-.9-.6.6-1l4.3-.7c1 0 2.1-.3 0-.3-2 0-4.6 0-5.7-.4-1-.3-1.7-.9-.6-1.6 1-.7 2.1-.5 2.6-1-3.3 0-7.4-2-5.2-3.6q.8-.4-.4-.5a22 22 0 0 1-4.5-1.4c-1-.5-.4-1.1.5-1.3-2 .3-6-.7-8.6-2.6zm29.8 0c-1.8 1.3-5.3 2-6.8 2q-2.2.2-.5.5c1.2.1 2.5.4 3 .2s.9-.2 1.6.2a6 6 0 0 0 3.8 0c1.5-.4 3.7-.6 4.7-.6 1 .1 2 .1 0-.4-1.8-.5-5-.2-5.8 0s-2.8 0-1.7-.2q1.7-.6 2.6-1.4zm-1 4a12 12 0 0 1-6.1 2.3c2 .8 3.8 3 5.2 2.8q-1 .8-2.3 1.2a8 8 0 0 0 5.4-1c3 .8 7 .2 8.3-1-2 0-4.3-.6-5.4-1.6q1.6-.1 2.3-1.1c-2.3.4-6-.7-7.3-1.8z"/>
+ <path fill="#00d860" d="M522.7 327c.8 0 1.7-.6 2.3-1a19 19 0 0 1-11.1-2.6c-2.2-1.9-2.2-.4-.7.9a11 11 0 0 0 9.6 2.8zm5.4 4.7c-.9.5-5.3.9-6.7.5q-2.2-.5-1.8.5c.3.6.6 1-.6.8a12 12 0 0 0-4 .5c-1 .2-2 1-.2.7 1.9-.2 3.5-.6 5-.3 1.3.3 6.1.4 7 0s.4-.3 0-.3q-.9 0 0-.7 1-.5 1.3-1.7m-42.3-5.8a62 62 0 0 1-9.6 2.5q-3 1.4-4.6 1.4c.7.6 3.5 1.2 4.5.9-.6.7-2 1.3-2.5 1.7 1.7-.3 3.5.2 4.4.3a12 12 0 0 1-6.7 1.4c.6.6 1.3 1.3 2.2 1.3a11 11 0 0 1-5.5.2q.8 1.5 1.8 1.8c-1.7.1-3.7.4-5.4-.6q2 2.6 8.6 1.8c4.4-.5 8-2.4 9-3.2-1.8.2-4.3.3-5.4 0a32 32 0 0 0 8.6-3.7 5 5 0 0 1-2.8-.9 27 27 0 0 0 8-.8 6 6 0 0 1-3.5-2.3 34 34 0 0 0 17 .5c.8-.2.8-1.3-.7-1.1-2.8.2-8.3-.6-9.8-1.3a10 10 0 0 0 4 1.7c-2.5.8-6.2 1.3-11.6-1.7z"/>
+ <path fill="#00d860" d="M473.6 332.4c.5-.4 2-1 2.5-1.7-1.1.3-3.8-.3-4.5-1q1.6 0 4.6-1.3c-3.6-.1-6-.1-7.5-.9-1.4-.8-3.7-.4-4.7-.2-1 .1-.6 1.7 3.3 1.3a13 13 0 0 1-7.6 1q.8 2.2.3 3.5c2.1 1.2 7.7 2.7 10.5 2.5-2.5-.9-3.8-1.9-1.8-2.2 2-.2 3.2-.6 5-1z"/>
+ <path d="M467.3 339c4.8-.4 11.4-.5 16.6-5 1.3-1 2.2-.6.9.5a29 29 0 0 1-16 6c-2.7 0-3.9-1.3-1.5-1.6z"/>
+ <path fill="#00d860" d="M503.7 331a19 19 0 0 1-5.6.8 6 6 0 0 0-3.3.2q-1.3.9.2 1l3.3.2a5 5 0 0 0-1.8 1.5c1.8-.4 4.7.3 5.6.8a3 3 0 0 1-2-.4c2.7 3 10.9 3 12.2 2.4q-1 .9-1.7 1 3.4 1 7.5-1l-4.2-.2a5 5 0 0 1 2-1.2c-1-.2-4.2-.1-5 .3a4 4 0 0 1 1.5-1.7c-4 0-8.9 0-10.6-1 2.7.4 5.9-1.3 7.2-1.3-2.2 0-4.6-.5-5.2-1.5zm-10.1 2c-2 .5-5 1.4-5.9 1.8-.8.5-1.6.7.1.7l.6-.1c-.7 0-1.5 0-.1-.5s3-1.3 5.2-1.7zm-4 4.9c.7 0 3.7 0 5-1 1.2.8 3.7 2.2 5.2 2.2q2.3.1 0 .6a11 11 0 0 1-5.4-1.7c-1.8.7-3.3.1-5-.1zM466 351.6a17 17 0 0 0 10.3 1.1c1.8 1.5 5.3 1.6 7.2 1.2s3.7-.6 5.9 0c2 .8 6.4.9 7.7 1.9l-4.1.1q-.9.3.8 1a22 22 0 0 0-11.3 3 6 6 0 0 1 6-3.8c-1.8-.6-7.7-.7-9.7.5a6 6 0 0 1-1.2-2c-3.1 1.7-9.2-.9-11.7-3zm-8-5.8a14 14 0 0 0 7.3-2.8c.7.6 3.5 1.2 6.5.3-.6.4-.7 1.3-.5 1.7a23 23 0 0 0-7 1.8c-1.2.6-5 1.1-6.2.4q-1.7-1-.2-1.4z"/>
+ <path fill="#00d860" d="M471.3 345.1a23 23 0 0 0-7 1.8l.5 1.7a44 44 0 0 1 15.3-1.6c-1.6.1-4.5 1.8-6.1 1.9 4-.3 7.8.5 8.8.8q1.6.4.5 1.8c-.8.9-1.1.7.5.9 1.6 0 5-.3 6.5-1.8-.7-.6-2.2-.3-2.7-.9a7 7 0 0 0 2.7-1.6 25 25 0 0 1-4.6-.3c-.8-.2-1.5-.5-.4-1.1a7 7 0 0 0 2-1.5c-2 .5-5.1 1-7.8-1 1 .2 3.3 0 4.1-.3a5 5 0 0 0-2.2-.8c2-1 6-1.9 11.3.1a27 27 0 0 1 7.1.4c1-.8 2.6-2.8 3.5-3.2-6 .4-16.8-.6-16.5-3.8-2 2.6-6.5 4-8.4 3.6-.2.8.6 2 1.3 2.6-2 .4-5.5.8-7.1.4 1 .9 2.6 1.7 3.6 1.7-2 0-3.2.4-4.9.2"/>
+ <path fill="#00d860" d="M483.7 352.3c1.8 0 5-.2 6.6-1.7-.7-.6-2.2-.3-2.7-.9a7 7 0 0 0 2.7-1.6c4.4-.4 8.1-.2 10-.7 1.8-.5 6.5-.3 7.4-.5-4.1.7-4.9 1-5 1.7-.2.7 1.2 1.1 2.2 1.1-1.7 0-4.1 1.9-4.4 2.7-2.4-1.4-3.4.2-3.8.8-1-.4-4.4-.3-6.1 1.2-2.2-.7-3.7-1-6-.7 1.5-.3 1.2-1.3-.8-1.4zm19.5-12c1.4 0 4.4.2 5.5 0l-1.8 1.3c3.5-.4 8.2-.7 9.6-.4-1.8-.3-3.5.9-4.4 1.4q-1 .8.9 1c1.2.2 2.7 1 .6.8-2-.2-6.4-.3-7.4-.2-1 .2-1.6-.3 0-.6a10 10 0 0 0 3.1-1c-1.2.3-3.5.3-4.3 0q-1.4-.4-.3-.8c.9-.3.3-.4-.6-.3-.9 0-3 1-4.3 2.1q2-2.2 3.4-3.2z"/>
+ <path d="M487.8 342.7a9 9 0 0 0 6.8 3c.6 0 2 .9.3 1-4.3.2-6.4-.9-8.3-3.6-.4-.6.3-1.4 1.2-.4m25.5-35.6c2.2 1 6.7 2 10.2 1.9.7 0 1.8.6.3.7a18 18 0 0 1-10.8-2c-.9-.5-.6-1 .3-.6"/>
+ <path fill="#00d860" d="M515.5 307.1c3.5 0 6.1 0 7 .9 2-.5 5.7-.9 6.4-.7s1.8-.3-.1-.7-6.2-.6-7.6-.3-5.7.4-7 .2q.7 0 1.3.6m13.4 1.3c1.6-.8 6.3 0 7.7-.6-1 1.2 3.3 1.3 7 .4-1.4.8-4.5 1-5.8 1.6s-2 .1-3-.3a11 11 0 0 0-5.9-1z"/>
+ <path fill="#00d860" d="M543.6 308.2c-3.7.8-8 .8-7-.4-1.4.6-6-.2-7.7.6 1.8-1 3-.1 4.2-2.2.8.1 2.6.2 3.2-.6 1 .3 3 .7 3.5 1.3s1.3-.2.7-1c1.7-.6.6.7 4.5-.3.9-.2 2.8-.6 3.5-.6a24 24 0 0 1-5 3.2z"/>
+ <path fill="#ff0" stroke="#000" stroke-width=".4" d="m471.6 291.1-.7-86.8c0-3.9-2-3-2 0v86zm28.2-91.4 3.1 91.4-.4.8h-2l-1.9-92.2zm26.6 77.4-1.6-74.3c0-2.4-2-2-2 .4l1.6 73.9z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="m484.2 214.9-27.4-.4c-1.2 5.5 5.5 5 7.8 4q4.7 2.9 7 0c2.4 1.9 5.5 1.5 6.7 0 3.1 2.7 6.6 0 5.9-4zm2 13.3h-27.5c-5 4.7 1.2 7 6.7 3.9.8 1.6 3.9 2.3 6.2 1.2 2.4 1.5 5.5.4 7-1.2 2.8 1.2 6.3 1.6 7.9-4zm-.9 17.6h-26.6c-.3 4.3 5.1 3.9 7 2.7 2 3.2 6.7 2.4 8.3.4 2.7 2 5 1.6 6.2 0 2.8 2.4 5.5-.8 5.1-3.1zM487 263l-30.1-.4c-1.6 5 3.1 5.9 5 4.7.9 2.7 4.8 2 6 0 1.5 1.2 3.5.4 4.2-.8.4 2.7 4 3.1 6.7.8 5.5 3.9 10.5-.8 7.8-4.3zm26.2-7h-24.6q1.6 7 7.4 3c3.1 3.2 7.8 2 9 .5 5.5 4.3 8.2-.8 8.2-4zm-2.4-17.2-24.2-.8c.4 6.2 6.3 5.8 9.4 3.5 2 2.7 5.9 2 7.8 0 2.7 3.1 7.8 1.2 7-2.7zm3.2-19.2h-26c0 4.3 5.8 6.6 10.1 2.7 1.2 5.1 5.9 3.5 7.9 1.6 3 3.9 9.7-.8 7.8-4zm-1.6-13-23.5.5c0 3.9 5.5 5.5 7.5 2.3 1.2 2 5 1.6 6.2 0 1.6 2.8 4 .8 4.7 0 2.8 2 5.5.8 5.1-2.7zm27 8.7-28.2-.4c0 2.7 2.8 4 4.7 2.7 0 3.2 4 4 6.7 1.6 1.5 2.7 6.6 3.1 8.6 0 3.9 3.5 8.6.8 7.8-4zm-.4 23h-27.4c0 4 4.3 5.1 7 3.2.5 3.1 4 3.5 6 1.6 2.7 2.7 6.6 3 9 0 3 1.1 5.8-1.6 5.4-4.7zm-1.6 20.8h-21.9c0 3.9 4.7 3.9 6.7 2 2.3 2.7 5.5 2.7 7.4.7 2.7 2.4 7.4 1.6 7.8-2.7z"/>
+ <path stroke="#000" stroke-width=".4" d="M502.5 292c-11.7 0-23.8 0-32-.9-8.2-.7-10.6-2.3-16.4-5.8L432 272c-1.9-.8-3.8.4-1.1 2l21.9 14.4a60 60 0 0 1 13.3 11.7c4.7 5.1 7.8 5.1 10.1 4.3 2.4-.7 5.5-2 9-1.1 3.2.7 7.8 1.1 10.2.7 2 2 7 1.6 9.8.8q3.9-1.1 6.6-.4h6.7c2 0 7-1.1 10.5-.7 4 .7 7.4 0 9.8 0a19.5 19.6 0 0 1 7.8-.4c2.4-1.6 3.1-3.6 4-5.5 2.3-.4 3-.8 3.4-2l2.4-6.2h.8v-2.4l-1.6-2.3.8-4 2-.7-.8-4-34.4.9a8 8 0 0 0-2.4 4.3l-10.2 1.5c-1.1.4-2.3.4-3.5 2z"/>
+ <path stroke="#000" stroke-width=".4" d="m543.6 276.7 5-19.2c.8-2-1.1-2.3-1.9 0l-5 19.2z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M563.5 255.2c-4.3 2-6.6 3.1-8.6 2.3s-4.3-1.2-5.8-.4v.4a1928.6 1928.8 0 0 1-4.3 14.9c3 1.2 8.6 1.2 9.7 0 1.6-1.6 5.1-1.2 7-1.2 1.2-1.6 1.6-3.5 1.2-4.3s0-2.7 0-4c0-1 1.6-5.4.8-7.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".4" d="M465 218.4a208 208 0 0 1-31.3 54.8m7.8 4.7a213 213 0 0 0 44.6-49.3m-27.4 16.8c-1.1 10.6-4.3 29.3-5.8 39.1m10.1-15.6c-3.9 3.9-9 10.1-13.2 13.6m49.6-34.8c-3.1 3.2-6.6 7-10.2 7.9m12.2-7a27 27 0 0 0 10.5 7.4m-12.5-24.3a33 33 0 0 1-11.7 6.7M501 232c2.3 2.3 5 5 8.6 6.7m-21.1-19.2a27 27 0 0 0 10.5-5.9m1.2 0a30 30 0 0 0 10.5 6.3m-21.5-13a16 16 0 0 0 9.4-5.4m1.2-.8c2.7 2.4 7.8 5.5 10.6 5.9m12.5 3.1c-1.6 2-5.9 5.1-8.6 5.1m10.5-5c1.2 1.9 4.3 5 6.3 5m-18.8 23.5a28 28 0 0 0 11-7.5m2 .4a22 22 0 0 0 7.3 7m-16 20.4c1.6 0 5.9-2.4 7-5m2.4-1.3a27 27 0 0 0 7.8 6.7m-73.1 3.5c5-1.6 14.9-7.8 20-13.7m-9.4 7.4c3.9 2.8 9 6 12.5 6.7m-24.3-17.6a31 31 0 0 0 9.4-5.9m2-.4c1.1 1.6 9.3 6.7 12.9 6.7m-14.9-23a38 38 0 0 1-9.8 5.4m11.8-5.5c2.7 2 8.6 5.5 12 5.5M469 207c-2.3 2.3-6.2 6.2-9.4 7.4m11.4-7c1.5 2.7 6.2 6.6 9.3 7m31.3 10.2c7.5 12.9 20.7 29 34 37.5m-55-52c10.9 15.6 32 49.7 52.3 62.2m4-13.3a72 72 0 0 1-19.2 18m17.5-13.7c-6.6-11-10.1-24.6-15.6-43m-54.7 48.5 7.8 23.4m-9.4-23.8 7.4 23.4m-9.3-24.6 7 24.2m-7.8-23.8 5.4 23.8m0-.7h6.7m-.8-2.4h-6.2m5.4-2h-6.2m5.4-1.9H474m5-2.3h-5m-.4-2h5m-5.4-1.6h5m-5.4-2h4.7m-5-1.5h4.2m-4.7-2h4m-4.4-1.5h4m-4.3-1.2h3.9m-4-1.5h3.6m-10.2 0-4.7 19.5m5.9-19.5-4 20.3M467 268l-3.2 21.5m4.7-22-2.3 22.8m2.7-1.6h-7.8m7.8-2h-9m9-2.3h-8.2m7.8-2h-7.4m7.8-2h-7.4m7.4-2.3h-6.6m6.6-2h-6.6m6.2-1.9h-5.8m5.8-2h-5m5-1.9h-4.7m4.7-1.2h-4.3m4 21.6v-23.1m25.3-7.8L478 291.5m16.8-32-13.3 32.4m14.1-32.8L485 291.9m11.8-32-8.6 32m.4-1.1h-9.8m10.5-3.2H480m9.7-2.3h-7.8m9.4-2.4h-7.8m8.2-2.3h-7.4m8.2-2.4h-7m7.7-2.7H487m6.6-2h-5.8m6.6-2.3h-5.5m6-1.6h-5.2m5.5-1.5h-5.5m5.1-1.6h-3.9m4-1.2h-3.6m3.9-1.5H492m3.9-1.6h-3.1m3-1.2h-2.7m13.3-.4 6.7 22m-5.5-21.6 8.2 21.2m-7-21.2 9.8 20.8m2.3-2-11-19.2m11 19.6h-7.8m7-3.1h-7.8m6.7-2.4h-7.5m5.9-2.7h-6.7m5.1-2.4H510m4.3-2.7h-5.1m3.9-2.7h-4.7m3.1-2.4h-3.9m12.5.4-7 20.3m9-21-6.3 20.7m2.8-.4 4.7-19.6m1.1.8-3.9 18.4m-6.6-1.2h6.6m-5.8-2.3h6.6m-5.9-2.8h6.3m-5-2.3h5.8m-5.1-2.8h5.5m-4.7-2.3h5m-3.9-2.8h4.7m-3.9-2.3h4m3.5.4 3 14m-1.9-14.8 4.3 14.5m-2.7-14.5 4.7 14.5m-2.8-13.7 5.1 13.7m-.4-1.2h-6.6m5.9-2h-6.3m5.5-1.9h-5.9m5-2.4h-5.8m4.7-2H528m4.7-1.9h-5m4.3-2h-4.7"/>
+ <path fill="#00b800" d="M467.6 299.2c3.1-2 8.5-1.7 11.3.4 3.3-1.8 9.2-1.3 11.9 1.2 4.2-3 7.7-3.4 11.7-.6a10.5 10.5 0 0 1 11.9.2c3.7-1.7 7.7-3.1 11.2.6a9 9 0 0 0-11.3.7c-3.5-3.5-9.7-2.2-11.8.3a7.7 7.7 0 0 0-11.5.2c-3.7-3-9.1-3.2-12-1a13 13 0 0 0-11.4-2"/>
+ <path fill="#cf6200" d="M523.1 294.8c-16.1 2.8-51.4 1-59-1.1-2.7-.6-2-1.6.3-1 8.9 2 27.9 2 38.3 1.4l6.2-8.5c1-1.3 1.4-1.4 3.5-1.7l8.7-1.5v1.2q-.3.5-.7.7c0 2 .4 7.1.9 9l1.1-.3c.7-.2 1.4 1.7.7 1.8"/>
+ <path fill="#cf6200" d="M549.6 295.6h2.2c.6 0 1.6-.5 1.9-1.5l2.2-6.3-1.7-2.5.9-5.3 2-.9c.2-.3 0-1.6-.4-2l-31.6 1c-1 0-1.4 0-1.7 1.3a24 24 0 0 0 8 23.2c.5.4 1.2 0 .3-.7a26 26 0 0 1-4.3-5.7h5.2c.4 1.7 1.7 5.2 2 5.9.2.7.8.7.4-.3-.6-2-1-4.5-1.3-5.7h5.3l.4 5.2c0 .7.6.7.6-.1V296l4.8-.2-.4 5.2c-.1.9.3 1.2.5 0l.7-5.2 3.3-.2c0 1.2-1.1 4.4-1.4 5.2-.3 1 .2 1 .5.1a31 31 0 0 0 1.6-5.2z"/>
+ <path d="M526.5 294.8c-.5-1.1-2.3-5.1-2.4-8h7c.2 2.1.8 6.8 1.2 7.9zm5.8-8.2c.1 1.8 1 7.5 1.2 8h5.6l-.4-8.1zm-7.9-7a33 33 0 0 0-.2 6l6.7-.3-.6-5.9zm7.3-.2.4 6 6.6-.2-.3-6zm8-.3.2 6 5.7-.1c0-1.3.3-5.2.2-6.1zm7.2-.2-.2 6 6.2-.2c.3-1.3.9-4.7.9-6zm6.3 7.2-6.6.2-.6 8 6.3-.2 2.3-6c-.5-1-.9-1.3-1.4-2m-13.3.4.2 8 4.8-.2.6-8zm-27-1.6-2.6.4-6.3 8.8 9.3-.2zm1.2-.3.4 9.2 5.6-.4-1-9.6z"/>
+ <path stroke="#000" stroke-width=".4" d="M486.9 263h-30.1v-.8l30 .4zm23.5-24.2q.4 0 0 0l-23.5-.4q-.6 0 0 0h23.5zm-25 6.6c.3 0 .3.4 0 .4h-26.7c-.3 0 0-.4 0-.4zm.7-17.2c.4 0 .4.4 0 .4h-27.7c-.4 0-.4-.4 0-.4zm-2-13.7q.6.2 0 .4h-27c-.3 0 0-.8 0-.8l27.4.4z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="m512.3 206.7-23.5.4z"/>
+ <path stroke="#000" stroke-width=".4" d="M513.5 220q.6 0 0 0H488q-.6 0 0 0zm25.4 18v.4h-27.4q-1.2 0 0 0H539zm0-23.1c.8 0 .8.4 0 .4H511c-.4 0-.4-.4 0-.4h28.2zM513 255.6c.4 0 .4.4 0 .4h-25v-.4zm24.2 3.5q.6 0 0 0h-21.9z"/>
+ <path fill="#ef072d" stroke="#000" stroke-width=".4" d="M557.3 263a12 12 0 0 0 0-5.5 4 4 0 0 1-2.4 0l-1.2-.8a25 25 0 0 1-1.5 7.5c-1.2 0-4 0-5.1-.8l-1.2 3.9a14 14 0 0 0 5.9 0q.1 3.5-1.6 5.9c2 0 4 0 4.3-1.2 1.2-1.6 1.2-4 1.6-5.1l2-.4 1.9-.8 2.7-.4V263l.8-1.6-6.2 2z"/>
+ <path stroke="#000" stroke-width=".4" d="M460.3 130.8c-3.1 0-10.2 0-11.7.8-1.2.8-1.6 1.2.8 1.6 2.3.4 6.6 2 9 3.1 2.3 1.6 3.9 4 3.9 7.8a23.5 23.5 0 0 0 11.7 24.7c.4.4.8.7.4 2.3l-1.2 4.3c0 .8-.4 1.6.8 1.2l-4 6.2c-6.2-.7-11.6 0-11.6 7 0 .9 0 1.6.7 0 1.2-1.5 2.4-3 5.1-3.8q-2.4 4.1-2 6.6c0 1.2.8 2 1.6 0 .4-1.6 2-3.1 3.2-4.3.7-.4.7-.4.3.8a6 6 0 0 0 1.2 4.3q1.3 1.1.8-.8c0-1.6 0-4.3 2-5 2.3-1.6 4.6-.9 5.4.7 1.2 2 2 0 .8-1.6-1.2-1.5-2.3-3.5-3.9-3.5l4-6.6q.2-1.3 1.5-.8c0 .4.8.4 1.1-.8l2.8-5.5 2.3-.7 4 5.8v2.4c0 1.5-1.6 5-2 6.2-4.7 0-7 0-8.6 2.8-.8 1.1.4 1.5 1.5 1.1a8 8 0 0 1 4-1.1c.7 0 1.1.7 0 1.1-2.8 1.2-4.7 3.2-4.7 5.9 0 .8.7 1.2 1.1 0a9 9 0 0 1 5.1-4c0 2 .4 5.2 2 6 1.1.7 1.1 0 .8-1.2-.8-2 0-4 1.1-5.1 2-2.3 6.7.8 7.9 1.6.7.7 1.5 1.1.7-1.2-.4-2.7-4.3-4-7.8-4.7l4.7-16.4c2 1.2 4-2 7-.8a83 83 0 0 1 14.9 8.6c1.6 1.2 2 .8 2.7 0 .8-.4 2 0 3.2 0 .7.4 1.5.8.4-1.6a28 28 0 0 0-9.4-10.1c3.1 0 7 0 7-.8s-4.7-2.4-6.6-2.4a13 13 0 0 0 6.2-3q1.4-1.3-3.1-1.3c-8.2 0-12.5 0-16.8-2.3-7-4-11.4-8.6-14.9-10.2-1.5-1.1-2.7-3.5-3.9-5.4-2-6-2-9-7-11s-11.8.4-14.5 3.1z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M460.7 132.4h-6.6s-.8 0 0 0l5.8 1.6c1.2 0 .8 1.1 0 .7-.8-.3-1.5 0-.8.8 4 2.8 4.7 4 4 14.5l1.9 1.6c.8 0 .4.7 0 .3s-2 0-.8.8 2 .8.8.8-2.3.8 0 .4c2 0 3.1.8 0 1.2-2.3 0-1.6.8 0 .8 2.7 0 2 .7 1.2.7s-1.2.8.8.8h2.7c.4 0 .8 0 0 .4-.8 0-.8.8.4.8s2 0 .8.4c-.4 0-1.2.4 0 .8 2.7 0 3 .7 2.3 1.1s-1.2.4 0 .4 2.4.4 1.2.8c-.8 0-1.2.8 0 .8s2 .8 1.2 1.2-1.2.8 0 .8q1.8 0 .7.7-.9 1.2-2 0c0-.7-.7-.7-.7 0l-.8-1.1c-.4-1.2-1.2-1.2-1.2 0s-.7.4-1.5 0a13 13 0 0 0 15.6 3c.4 0 .8 0 1.2 1.3l2.3 4.3c.4.7 1.2 0 1.2-.8l2.4-6.7c0-1.1 1.5-2 1.1 1.2 1.2-.8 5.9-1.2 9.8 0a48 48 0 0 1 10.6 5.9 2 2 0 0 0 2 .4c1 0 1.5 0-.5-2s-1.1-2.7 0-2 2 .4.8-.7l-3.9-3.5c-.4 0-.4-.8-2.3-.8h-6c-.7 0-1.5 0 .9.8 2.3.7 6.6 3.9 7.8 4.6 1.2.8 1.6 2.4-.4.8a102 102 0 0 0-14-7.8c-10.6 1.2-19.2 2.4-25.5-4.3-3.1-3.5-3.1-11 2-14q-1.1-1.5-.4-1.6v-2.4q-1.4-.7-1.6-2c-1.2 0-2-1.9-3.9-1.1-2 .8-2.3 0-3.1-.4-.4-.8-.8-.8-2-.8s-2 0-2-.8q0-1 2.4 0c2.7 1.2 5 2 7-.7 1.6-2.4-.7-4.3-3.9-5.1-3.5-.8-5.8 2-7.4 3.1z"/>
+ <path fill="#fff" stroke="#000" stroke-width=".4" d="M477.9 131.2a11 11 0 0 0-4-2.3c-1 0-1 .8-.7 1.2v2.3c.8.4 1.2 1.2 0 1.2-.8.8 0 3.5 1.2 2.7h.8s0 1.2.7 1.2c.8 0 0 .8 0 1.2h.8c.8 0 .4 1.5-.4 2q1.7-.2 1.6.7c.4.8 1.6 1.2 1.6 2.3 0 1.2 0 1.2-1.6.8s-1.6 0-2 .8-.7 1.2 0 1.2c.8 0 1.6.4.4.8-1.1.3-2.3 0-2.7 1.1 0 1.2 0 1.6.8 1.2l2.7-1.6 2 .4c.8.4 0 2-.8 1.2s-1.6 0-2 .4l-2 .8c-.7 0-1.5 0-1 2 0 5.4 4.2 9.3 12 9.3h13q-3.5-2.4-5.2-2.3H492c.4-.4 0-1.2-.4-1.2s-1.2-.8-2 0l-3.9 2c-.8 0-2 0-.8-.8l3.6-1.6c.7 0 .3-.8.3-.8s0-1.2 1.2-.8c2.4 1.6 5.9 3.6 7 3.6 1.2 0 1.6-.8.8-1.2-.7-.4-1.1-1.2-1.1-1.6s.4-.8 2 0c1.5 1.2 3.8 2 5 2.4s2 .4 0-.8l-9-6.7c-1.2-1.1-1.2 0-.8.8s-1.1 1.2-2 .4c-.7-.8-1.1-1.2 0-1.6 1.2-.3.9-.7-.3-2q-2.3-1.5-1.6 0 .8 2-.8 1.7c-1.1-.4-2.3-1.2-1.1-1.6.7-.8 2-1.2 0-2.4s-.8 0-1.2.8-1.6.8-2 0-1.1-1.1-.7-1.5c.3-.4.3-.8 1.1 0 .8.7 1.6 0 .4-1.2s-1.5-.8-1.2 0-.7 1.6-2.3 0c-.8-.4-.8-1.2 0-1.6q1.2 0 0-1.1c-2.7-4.7-1.6-8.3-4.7-11.8z"/>
+ <path fill="#cf6200" d="M478 132c-.2.4-.3.3-.8.7s-.7 1.5.3 1.4a2 2 0 0 0 1.4-.8zm-3-2.6q-1.3 1.2-.6 1.2.6-.2 0 .6c-.4.5.6.8 1 .3q.6-.7.7 0c.1.5 1 0 1.3-.3q-1.2-1-2.5-1.8zm-1.5 4.4c-1 .5-.7 3.2.9 2.4q.8-.2.9.3v.7a5 5 0 0 0 1.7-1.2c.9-1.2 0-1-1.4-1s-1.7-.3-.4-1.1.3-1.2-1.3-1q.3.4-.4.9m5.9 6c-.8-.9-.3-1.2.5-1.7l.4-.3-.7-2.6c-.3.2-.8 1.1-1 1.5q-.2 1.1-1 1c-.7-.3-1.3.4-1.4 1.1h.5q.3.3.2 1c1.9 0 2.2 1.1 2.5 2q.6 1.3 1 .3.3-1-1-2.3"/>
+ <path fill="#ff0" d="M479.9 150.4c-.4.8-.4.7-1.5.7-1 .1-2.4.3-3 .9-.3.3-2.2.5-2.2 1.3q-.2 1.4.8 1.6 1.2 0 .7.8c-.4.6-.6 1.5.8 1.7 1.4 0 2.5-.3 2.8.4.4 1 0 2.1.3 2.7q.4.6 2.7 1.2c1 .2 4.8.5 6 .3 1-.2.6-.8-.5-.8q-1.8-.1-2.3-1.2c-.3-.9-.5-1.3.2-2 .6-.8 1.2-1.3.8-2.5s-1-2.5-2.3-2.9-.9-2.3-2.3-2.4q-.7 0-1 .2"/>
+ <path fill="#cf6200" d="M473.3 161.4c1.2.2 2.1.5 1.2.8s-1.5.8-.3.9 2.3.6 1.3.8-1 1 .1 1 1.7.4.9 1c-.9.4-1.4.7-2-.1q-.7-1.3-.9-.5t-.9-.7c-.3-.8-1.2-1.2-1-.5.3.7-.6.9-1.5.5a11 11 0 0 0 2.9 2.4c1.2-.4 2.6 0 3 0 .6 0 2.1.4 3 .9s1.5-.4 1.1-1.3-.4-.7-.8 0q-.7.4-.6-1.4c0-.8-.6-.7-.7-.1-.2.5-.7-.4-.5-.9q.3-.8-.4-.6-.6.4-.6-1c-.1-1.1-.5-1-.6-.5q-.2.4-1.3-1c-.5-.6-1-.2-2.1.1z"/>
+ <path fill="#ff0" d="M485.6 167.8c-5.5 2.2-9.5 1.2-12.5-.8 1.2-.4 2.6 0 3.1 0s2.1.4 2.9.9 1.5-.4 1.1-1.3q1 1.6 2.2 1.5zM473.8 142q-.5-1.6-1.3-1.3-.7 0-1.6-.4c-.6-.3-1.5 0-1.6 1.3s-1 1.8-2 2.6q-1.5.9-1.5 2.6c0 1.2-.3 1.4-1 2.4l-1.1 1.3 1.2.7c.8.4.5.9-.2.7s-1.5.2-.2.4c1.2.3 1.7 1 .6 1-1.3-.3-2.6.8-.3.5 2.3-.2 3.1.9.5.9-2.7 0-1.7.9-.2.9 2.5 0 1.7.7 1 .7s-.9 1 .8.7l.6-1c.3-.8.5-3.1 1.5-3.8s1.4-1.7 1.4-2.3 1.5-3.7 2.3-4.4c1-.7 1.4-2.3 1-3.4z"/>
+ <path fill="#cf6200" d="M471.8 142.2c-.9-.7-1.9-.2-1.9 1q-.1 1.4-1.4 2a4 4 0 0 0-1.8 2.3c0 1 .2 1.5-.4 2.3q-1 1-.4 1.8c.6.4.6.4.7 1 .3.6 1.4 0 1.4-.7s.3-.7 1-1.1c.8-.4 2-2.4 1.7-2.9-.2-.5-1-1 0-1.7 1-.8 1.8-1 1.8-1.6q0-1 .5-1.3c.3-.3-.6-.7-1.2-1z"/>
+ <path d="M471.8 141.2c-.6-.2-1 1.1-.1 1.3s1-.9 0-1.2zm-.1 1.7c-.7.1-1.5 1-.4 1 1.2-.2 1.6-1 .3-1zm-1.4 1.7c-.7.3-.5 1.3.5.6s1.2-1.5-.5-.6m-1 1.4c-.7.3-.7 1.3.4.6 1-.6 1.3-1.5-.4-.6"/>
+ <path d="M467.9 146.7c-.7.3-.3 1.2.7.6s1-1.5-.7-.6m.8.9c-.8.3-.3 1.2.7.6s1-1.5-.8-.6z"/>
+ <path d="M467.4 147.9c-.6.4-.2 1.2.9.6 1-.6.9-1.5-.9-.6m.9 1c-.8.3-.4 1.2.7.6 1-.7 1-1.5-.8-.6z"/>
+ <path d="M467 149.5c-.6.3-.2 1.2.9.6 1-.6.8-1.5-.8-.6z"/>
+ <path d="M467 150.3c-.5.4-.1 1.4 1 .7 1-.7.8-1.5-1-.7"/>
+ <path fill="#cf6200" d="M466.6 158.9c-.7 0-1.2 1.1-.3 1.3q1.2.2 1.1.9c0 .6.3 1.7 1.2 1.7 1 0 1.8-1 1-1.3q-1.5-.3-1.7-1.4c0-.7-.8-1.2-1.3-1.2"/>
+ <path fill="#ff0" d="m491.5 153 .5.6c.7.5 2 0 1.7-.5-.1-.4-.8-2 1-.8l9.2 6.5c1.9 1.4.6 1.6-.2 1.1l-5-2.3c-1.5-.9-1.7-.5-2-.3q-.2.6.6 1.4c-.9.1-2.3 0-2.8-1-.5-1.2-1.7-2.6-2.6-3.7q-.4-.6-.3-.9z"/>
+ <path fill="#00d860" d="M542 319.5c-1.3.9-3 2.4-1.9 4.5l.4-.1a124 124 0 0 0 12.9-19v-.6a18 18 0 0 1-4.5 2.7c.6 1.7-2.3 3.8-3.7 4.4.6 1 .4 2.6-1 2.9.3.8-.7.8-2 1.4q-1.6.6-2.1 1.5c.6-.4 1.6-.7 2-.5s.6.9-.3 1.1q-1.2.5-1.8 1c1.3-.3 3.2-.2 2 .7"/>
+ <path stroke="#000" stroke-width=".4" d="M481.8 151.2c-1.6-1.2-2-.4-1.6 0s0 1.5-1.1 2h-4c-.7 0-1.9 1.5 0 1l6.3-1c.8 0 1.6-.9 0-2zm2.7 2.3c-1.1-1.2-1.5-.8-1.1 0s-.4 1.2-1.2 1.2l-5.5 1.5c-1.5 0-1.5 1.2.4 1.2 2 0 5.9-2 6.3-2s.8-1.1 1.1-.7 1.2 0 0-1.2zm1.2 3.1-3.9 2c-1.2 0-2 1.2 0 1.2s4-2 4.7-2.4l1.6-.8s1.5-.4 0-1.5c-1.6-1.2-3.2 0-2.4.4s0 1.1 0 1.1z"/>
+ <path d="M469.7 131.2c-2.5-1.7-5.2 1.7-2.5 3.6 2.4 1.7 5-2 2.6-3.6z"/>
+ <path fill="#fff" d="M466.6 132.7h.7c0 .8.7 2 1.8 1.7-.9.7-2.6-.2-2.5-1.7m9.6 37c.8.3 3.4.5 4.4.5l-1.2 2.2q-.4 1.2-.5-.3c0-1-.6-1.7-1.1-.6l-1 2c-.3.4-.7.5-.6-.6q.2-1.7 0-3.2"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M574.5 199.7c0 63.7-10.2 132.5-93 165.3-82.6-32.8-92.7-101.6-93.1-165.3zm0 0c0-24.3-1.2-47.8-.8-68a249 249 0 0 0-92.3-16.9c-20.7 0-61.4 3.1-92.2 16.8.7 20.3-.8 43.8-.8 68z"/>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/sh.svg b/apps/web/public/flags/sh.svg
new file mode 100644
index 00000000..7aba0aec
--- /dev/null
+++ b/apps/web/public/flags/sh.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sh" viewBox="0 0 640 480">
+ <path fill="#012169" d="M0 0h640v480H0z"/>
+ <path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
+ <path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
+ <path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
+ <path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
+</svg>
diff --git a/apps/web/public/flags/si.svg b/apps/web/public/flags/si.svg
new file mode 100644
index 00000000..1bbdd94f
--- /dev/null
+++ b/apps/web/public/flags/si.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-si" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="si-a">
+ <path fill-opacity=".7" d="M-15 0h682.6v512H-15.1z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#si-a)" transform="translate(14.1)scale(.9375)">
+ <path fill="#fff" d="M-62 0H962v512H-62z"/>
+ <path fill="#d50000" d="M-62 341.3H962V512H-62z"/>
+ <path fill="#0000bf" d="M-62 170.7H962v170.6H-62z"/>
+ <path fill="#d50000" d="M228.4 93c-4 61.6-6.4 95.4-15.7 111-10.2 16.8-20 29.1-59.7 44-39.6-14.9-49.4-27.2-59.6-44-9.4-15.6-11.7-49.4-15.7-111l5.8-2c11.8-3.6 20.6-6.5 27.1-7.8 9.3-2 17.3-4.2 42.3-4.7 25 .4 33 2.8 42.3 4.8q9.7 2.1 27.3 7.7z"/>
+ <path fill="#0000bf" d="M222.6 91c-3.8 61.5-7 89.7-12 103.2-9.6 23.2-24.8 35.9-57.6 48-32.8-12.1-48-24.8-57.7-48-5-13.6-8-41.7-11.8-103.3q17.4-5.6 27.1-7.7c9.3-2 17.3-4.3 42.3-4.7 25 .4 33 2.7 42.3 4.7a284 284 0 0 1 27.4 7.7z"/>
+ <path fill="#ffdf00" d="m153 109.8 1.5 3.7 7 1-4.5 2.7 4.3 2.9-6.3 1-2 3.4-2-3.5-6-.8 4-3-4.2-2.7 6.7-1z"/>
+ <path fill="#fff" d="m208.3 179.6-3.9-3-2.7-4.6-5.4-4.7-2.9-4.7-5.4-4.9-2.6-4.7-3-2.3-1.8-1.9-5 4.3-2.6 4.7-3.3 3-3.7-2.9-2.7-4.8-10.3-18.3-10.3 18.3-2.7 4.8-3.7 2.9-3.3-3-2.7-4.7-4.9-4.3-1.9 1.8-2.9 2.4-2.6 4.7-5.4 4.9-2.9 4.7-5.4 4.7-2.7 4.6-3.9 3a66 66 0 0 0 18.6 36.3 107 107 0 0 0 36.6 20.5 104 104 0 0 0 36.8-20.5c5.8-6 16.6-19.3 18.6-36.3"/>
+ <path fill="#ffdf00" d="m169.4 83.9 1.6 3.7 7 1-4.6 2.7 4.4 2.9-6.3 1-2 3.4-2-3.5-6-.8 4-3-4.2-2.7 6.6-1zm-33 0 1.6 3.7 7 .9-4.5 2.7 4.3 2.9-6.3 1-2 3.4-2-3.4-6-.9 4-3-4.2-2.7 6.7-1z"/>
+ <path fill="#0000bf" d="M199.7 203h-7.4l-7-.5-8.3-4h-9.4l-8.1 4-6.5.6-6.4-.6-8.1-4H129l-8.4 4-6.9.6-7.6-.1-3.6-6.2.1-.2 11.2 1.9 6.9-.5 8.3-4.1h9.4l8.2 4 6.4.6 6.5-.6 8.1-4h9.4l8.4 4 6.9.6 10.8-2 .2.4zm-86.4 9.5 7.4-.5 8.3-4h9.4l8.2 4 6.4.5 6.4-.5 8.2-4h9.4l8.3 4 7.5.5 4.8-6h-.1l-5.2 1.4-6.9-.5-8.3-4h-9.4l-8.2 4-6.4.6-6.5-.6-8.1-4H129l-8.4 4-6.9.6-5-1.3v.2l4.5 5.6z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sj.svg b/apps/web/public/flags/sj.svg
new file mode 100644
index 00000000..bb2799ce
--- /dev/null
+++ b/apps/web/public/flags/sj.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sj" viewBox="0 0 640 480">
+ <path fill="#ef2b2d" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M180 0h120v480H180z"/>
+ <path fill="#fff" d="M0 180h640v120H0z"/>
+ <path fill="#002868" d="M210 0h60v480h-60z"/>
+ <path fill="#002868" d="M0 210h640v60H0z"/>
+</svg>
diff --git a/apps/web/public/flags/sk.svg b/apps/web/public/flags/sk.svg
new file mode 100644
index 00000000..676018e6
--- /dev/null
+++ b/apps/web/public/flags/sk.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sk" viewBox="0 0 640 480">
+ <path fill="#ee1c25" d="M0 0h640v480H0z"/>
+ <path fill="#0b4ea2" d="M0 0h640v320H0z"/>
+ <path fill="#fff" d="M0 0h640v160H0z"/>
+ <path fill="#fff" d="M233 370.8c-43-20.7-104.6-61.9-104.6-143.2 0-81.4 4-118.4 4-118.4h201.3s3.9 37 3.9 118.4S276 350 233 370.8"/>
+ <path fill="#ee1c25" d="M233 360c-39.5-19-96-56.8-96-131.4s3.6-108.6 3.6-108.6h184.8s3.5 34 3.5 108.6C329 303.3 272.5 341 233 360"/>
+ <path fill="#fff" d="M241.4 209c10.7.2 31.6.6 50.1-5.6 0 0-.4 6.7-.4 14.4s.5 14.4.5 14.4c-17-5.7-38.1-5.8-50.2-5.7v41.2h-16.8v-41.2c-12-.1-33.1 0-50.1 5.7 0 0 .5-6.7.5-14.4s-.5-14.4-.5-14.4c18.5 6.2 39.4 5.8 50 5.6v-25.9c-9.7 0-23.7.4-39.6 5.7 0 0 .5-6.6.5-14.4 0-7.7-.5-14.4-.5-14.4 15.9 5.3 29.9 5.8 39.6 5.7-.5-16.4-5.3-37-5.3-37s9.9.7 13.8.7 13.8-.7 13.8-.7-4.8 20.6-5.3 37c9.7.1 23.7-.4 39.6-5.7 0 0-.5 6.7-.5 14.4s.5 14.4.5 14.4a119 119 0 0 0-39.7-5.7v26z"/>
+ <path fill="#0b4ea2" d="M233 263.3c-19.9 0-30.5 27.5-30.5 27.5s-6-13-22.2-13c-11 0-19 9.7-24.2 18.8 20 31.7 51.9 51.3 76.9 63.4 25-12 57-31.7 76.9-63.4-5.2-9-13.2-18.8-24.2-18.8-16.2 0-22.2 13-22.2 13S253 263.3 233 263.3"/>
+</svg>
diff --git a/apps/web/public/flags/sl.svg b/apps/web/public/flags/sl.svg
new file mode 100644
index 00000000..a07baf75
--- /dev/null
+++ b/apps/web/public/flags/sl.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sl" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#0000cd" d="M0 320.3h640V480H0z"/>
+ <path fill="#fff" d="M0 160.7h640v159.6H0z"/>
+ <path fill="#00cd00" d="M0 0h640v160.7H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sm.svg b/apps/web/public/flags/sm.svg
new file mode 100644
index 00000000..e41d2f77
--- /dev/null
+++ b/apps/web/public/flags/sm.svg
@@ -0,0 +1,75 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sm" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#19b6ef" d="M0 240h640v240H0z"/>
+ <path fill="#fff" d="M0 0h640v240H0z"/>
+ </g>
+ <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M317 339.2C369.6 300 426 220 359.9 177.8c-12.3-2.4-26-1.7-32.7 3.6-3.5-2-6.3-1.8-9.8 1.9-2.5-3-5-4.4-10-2.9a41 41 0 0 0-31.5-3C218 211.8 253.4 294 317 339.1z"/>
+ <g stroke="#3a9d4f">
+ <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M414 250.1s6-8 6.2-8c5.9-3.4 6.5-7.9 6.5-7.9 5.9-1.8 4-6.7 4.5-7.3a6 6 0 0 0 1.4-7.1c0-.8 2-8.4-.8-9.4.1-8-4.8-7.3-8.8-2-4.2 1.2-5.1 4.7-3.6 8.5-5.5 0-5.7 8-4.1 12.4-7.3-.2-3.3 8-3.5 8.4-2.4 1.2 1.9 12.8 2.3 12.4zm-46 68.2 3.6 2.2c.8 2.8 3.4 4.6 5.3 4.1 1 4.3 5.6 3.7 9 1.2 2.7 4 6 4 10.6 2.7 4 3 9.3 1.7 12.8-1.4 3.7 3 6.2.8 8.1-2.5 3 .8 5.2.3 6.3-2.6 5.7-.5 2.9-5.9-1.8-8.2 3.7-3.2 7.9-10 2-11-1.8-1.3-5.3-1-7.9.2-.7-3-4.8-3.7-9.4-.4-1.5-3.3-7-1.7-9.5.6-3.3-2.8-7.2-2.8-12.9.4zm0-8.7c.6-3.8-2-10.6 2-11.2-.7-6.3.3-13.3 7.5-12.7 1.2-5.9 1-11.4 7.8-12.2 0 0 5.5-19.1 11.2-5.9 2.2 3.9 1.8 10.2-2.7 9 .9 4.7-.7 8.9-5.9 8.7 2.3 3.4 1.6 7.9-1 10zm33.1-23.9 6-1.2c6-4 8.5-5.7 11.5-1.2 5.1-1 10-.6 9.8 3.4 6 .5 6 4.3 5.3 7.4 1 5.3-1.4 12.3-5 3.8-11.9-7.2-18.6-6.2-37.3-2zm3.1-5.9c.2-.2 17.5-4.7 15.7-10 4.9-.8 5.9-5.7 6-5.7 10.3-3.2 9.7-9.1 9.7-9.1 2.9-3.1 8-6.3 6.9-11.8.3-6.3.9-10.2-7.6-6.1-6.3-.6-8.5 3-10.3 8.5-3-3.5-7.8 2.1-8.4 7.1 0 0-7.7 7.6-7.7 7.8l-6.5 12z"/>
+ <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M404.5 266.4c-4.1-3.1-6.4-6.9-5.7-10.6-2.7-3.7-4.6-5.9-2-9.2l-2-7.5c-5.4-2-3.1-6.5-1.7-8.1q-3.8-5.4-.2-10.4c0-6.5 4.6-4 8.3 0 0 0 6.4 4.5 1.7 8.5 4.7 1.7 6 5.7 3.4 7.4 4.1 1.8 4.7 5.5 2.5 8 4.1 3.2 2.6 7.4 3.8 11.1z"/>
+ <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M411.8 236c-.2-.1-6.9-8.7-5-9.3-.5-2.6-2.5-5.5-1.3-8.1-3.3-3.4-3.4-7.3-.8-10.4-2.2-3-1.2-7.1 1.8-9.8-1-5 2.6-6.2 5.7-7.1 2.3-8 6-6 8.2.2 3.2 2.8 2.7 7 1.6 10.2 3.8 2.5 1.5 5.7-.2 7z"/>
+ <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="m410.8 193.1-5.7-5.7c1.5-3 2.7-8.3-1.6-10.8-2.4-5.7-14.2-12.9-16.1.8-1.8-4.1-5.6-8.2-8.3-3.4-6.2-5.3-9.5-3.7-6.3 3 0 0-2.9 4.5 4.6 8 .6.6-2.4 8.1 6.6 8.3-1.7 2.6 1 6.2 4.6 6-2.5 3.1 1.8 6.5 4.5 5.2-1.1 3.5-1 5.2 3.9 5.7l5.5 6.3 4.5 6.1z"/>
+ <path fill="none" stroke-linecap="round" stroke-width="2.2" d="M414.3 246.5c.3-.3 11-24.8 12.4-32.2M415.4 203s1.8 20-3.1 34.6m-29.7-54.7s21.9 21 24 29.7m-8.7-32s1.4 17.3 7.5 34.3m31 28.4S414.6 261.8 404 278m11.8 30s-28.8 4-41.4 4.3m32 8s-35.8-.8-38.4-3.4m20.5-43c0 .4-18.2 30.3-18.8 40"/>
+ </g>
+ <path fill="#65c7ff" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M316.9 333.4c-37.8-35.6-76.5-102.4-38-136.2 6.8 3.8 14.9.4 26-4 3.4 3.7 7.7 4.6 12 1.8a9 9 0 0 0 10.7-2.1c11 6.3 24.9 9.6 28.2 3.3 37.8 36-.6 103.2-39 137.3z"/>
+ <path fill="#8fc753" fill-rule="evenodd" d="M317 332.4a213 213 0 0 1-42.3-57.6c2-1.7 2.9-2.2 3.9-5 5.8.8 8.9 1 16.5-.4 1.6 5.8 1.9 10.6 5.5 15.4l7.7-15a34 34 0 0 0 16.5 0c3.2 4.2 2 10.7 7.7 15.6 3.4-10 6.7-10.6 10.1-16 5 1.8 8.2 1 12.3-.3 2 2.5 1 2.4 5 6a194 194 0 0 1-42.8 57.3z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M272.6 164.3a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.8 0zm-3.5-7.7a3.4 3.4 0 1 1-6.6 0 3.4 3.4 0 0 1 6.7 0zm-4-7.1a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm-2.8-7a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm.5-7.6a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm17.6-12.5a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M273.8 123.6a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm-7.3 4.3a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm22.4-5.4a3.4 3.4 0 1 1-6.6 0 3.4 3.4 0 0 1 6.6 0zm9.4.8a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm8.2-.5a3.4 3.4 0 1 1-6.6 0 3.4 3.4 0 0 1 6.7 0z"/>
+ <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M325.9 117.5a8.6 8.6 0 1 1-17.2 0 8.6 8.6 0 0 1 17.2 0z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M335 122.7a3.4 3.4 0 1 1-6.8 0 3.4 3.4 0 0 1 6.7 0zm8.6.7a3.4 3.4 0 1 1-6.6 0 3.4 3.4 0 0 1 6.7 0zm8.5-.4a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm7.1-.3a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm8.9 1a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm7 4.4a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0z"/>
+ <path fill="#e40000" fill-rule="evenodd" stroke="#ac0000" stroke-width="2.4" d="m269.4 151.7 8.6 16.5h79.2l9.2-15.9c-5.4-3.7-9-6.5-16.7-4.8-4.3-6.2-9-7.3-16-6.7-2.1-2.1-4-3.4-7.6-4l-16.6.5c-4.4.4-7.8 3.8-8 3.8-7-.9-13.5-.7-15.2 6.2-6.5-1.6-11 .2-16.9 4.4z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M378 135.3a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm.6 8a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm-2.5 7.2a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm-3 6a3.4 3.4 0 1 1-6.8 0 3.4 3.4 0 0 1 6.7 0zm-3.7 7.5a3.4 3.4 0 1 1-6.7 0 3.4 3.4 0 0 1 6.7 0zm-46.8-9.6a5 5 0 1 1-10 0 5 5 0 0 1 10 0z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M323.6 143a6 6 0 1 1-12 0 6 6 0 0 1 12 0z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M322.7 132a5.4 5.4 0 1 1-10.8 0 5.4 5.4 0 0 1 10.8 0z"/>
+ <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M315.5 109v-4.2l-3.6-.1.2-3.2h3v-2.8h4.5v2.5h3.5l-.1 3.4h-3.6v4.5h-4z"/>
+ <path fill="none" stroke="#fd0" stroke-width="3.3" d="M277.6 168.2c-7.1-12-17.6-28.4-11-35.5 8.9-10.1 29.9-1 43.3-6.8 1 11.4-2.2 30.4 2.9 34.3l-4.8 4.2c-3-3.7-8.4-8.8-15.2.2-4-3.4-8.3-2.8-10.4 1.7-2 .3-1.9 1.1-4.8 1.9zm80-.5c7.2-12 17.6-28.3 11.1-35.4-9-10.1-30-1-43.3-6.9-1 11.5 2.2 30.5-3 34.4l4.8 4.2c4.7-6.5 10.4-6.7 15.3.2 3.9-3.4 7.9-3 10.4 1.7 2 .3 1.8 1 4.8 1.8z"/>
+ <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M277.3 177.1a437 437 0 0 1 79.3 0l3.1-9c-27.7-5-46.8-5.6-83-.6z"/>
+ <path fill="#c76e2e" fill-rule="evenodd" d="m314.1 329.4.6-4.2c2.9.8 5 .5 7.4-.4l2.4-3.7-1.8-2.1c-1.6.3-3 1.8-4 3.1-1.6.1-3-.7-4.6-1l-1.5-6.4c-1.5-1.8-4.7-1.7-4 1.5l.3 2.5c.6 1.5.9 3.6 1.9 4.7v2.6zm1.2-18.3c-2 1-4.6-.8-7.3-1.9-2.5-.1-4.4 2-7.4 1.3.6-1.6 1.9-1.9 2.8-2.8-.7-4.1 1.5-5.5 2.1-5.5s3.1.6 3.1.6l2.4.3c1.5 2.7 3.5 5 4.3 8"/>
+ <path fill="#ffe100" fill-rule="evenodd" stroke="#e9bf00" stroke-width="2.4" d="M300.8 366c7-11.4 56.2-34.4 102.4-84.2-47 45.3-76.4 56.4-114.8 84l12.4.3z"/>
+ <path fill="#9d4916" fill-rule="evenodd" stroke="#68300e" stroke-width="1.1" d="M368.4 313.2a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0zm34.4-34.9a4 4 0 1 1-8.1 0 4 4 0 0 1 8 0zm11.4-29.6a3.6 3.6 0 1 1-7.1 0 3.6 3.6 0 0 1 7.1 0zM403 210.3a3.6 3.6 0 1 1-7.1 0 3.6 3.6 0 0 1 7.1 0z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#a9a9a9" stroke-width="1.1" d="M279.1 269.6v-15.2l-1.5-1.2v-3.6l2.8-.3.5-17-1.8-1-.2-2.8s2 .8 2 .3l.5-3.4s-1.3-.2-1.3-.7 1.6-1.8 1.6-1.8-.8-.8-1-1.3l-.8-2.8.8-2.9-.5-1.5-1.3-2.3 1.8-1.8-.5-2.8a10 10 0 0 1 1.5-2.9c.3-.2 2.3-3 2.3-3l4.4-1 5.1.7 2.8 1.8.5 4.6s-.5 2.8-.7 2.8l-2.3 1s-2.6.3-2.9 0 .8 3.2.8 3.2v3l-.2 3.9s0 1.8-.3 2-.8 1-.8 1l-.2 4 4 1-.2 2.3-2.8.2.5 15.7 4.1.7v4.4l-1.8 1-.5 15.7zm62.4.3v-15.2l-1.5-1.3v-3.6l2.8-.2.5-17-1.8-1-.2-2.8s2 .7 2 .2l.5-3.3s-1.3-.3-1.3-.8 1.6-1.8 1.6-1.8-.8-.7-1-1.3l-.8-2.8.8-2.8-.6-1.5-1.2-2.3 1.8-1.8-.6-2.9a10 10 0 0 1 1.6-2.8l2.3-3 4.4-1.1 5.1.8 2.8 1.8.5 4.6s-.5 2.8-.7 2.8l-2.3 1s-2.6.3-2.9 0 .8 3.1.8 3.1v3.1l-.3 3.9s0 1.7-.2 2l-.8 1-.2 3.9 4 1-.2 2.3-2.8.3.5 15.6 4.1.8v4.4l-1.8 1-.5 15.7zm-31.6.5v-15.2l-1.5-1.2v-3.7l2.8-.2.5-17-1.8-1-.2-2.8s2 .8 2 .3l.5-3.4s-1.2-.2-1.2-.7 1.5-1.9 1.5-1.9-.8-.7-1-1.2l-.8-2.9.8-2.8-.5-1.5-1.3-2.3 1.8-1.8-.5-2.9a9 9 0 0 1 1.5-2.8c.3-.2 2.3-3 2.3-3l4.4-1 5.1.7 2.8 1.8.6 4.6s-.6 2.8-.8 2.8l-2.3 1s-2.6.3-2.8 0 .7 3.1.7 3.1v3.1l-.2 3.9s0 1.8-.3 2l-.8 1-.2 3.9 4 1-.2 2.3-2.8.3.5 15.7 4.1.7v4.4l-1.8 1-.5 15.7H310z"/>
+ <path fill-rule="evenodd" d="M283 269.5v-12h6.6V270zm31.4 1 .3-12.2h6v11.9l-6.3.2zm31-.3-.4-11.5 6.5-.2v12l-6-.3zm-60.8-36h3.8v6.1h-3.8zm30.3.2h5.3v6h-5.3zm31 .5h4.6v5.7H346z"/>
+ <path fill="none" stroke="#a8a8a8" stroke-width="1.1" d="M286.6 207c4 4.6 4.3 4.6 4.3 4.6m26.2-4.6c.8 1.5 2 4.8 3.6 5.1m29.3-4.4s1.3 3.6 3 4.1"/>
+ <path fill="#b97700" fill-rule="evenodd" d="M282.2 194c12-3.9-2.8-11.6-5.3 0-3.8.7-4.3 3.5-12.7 2.3-20.4 33-5.3 86.5 54.1 141.8-106.4-90.6-63.2-157.6-33.7-155 16 1 8 21-2.4 11z"/>
+ <path fill="none" stroke="#7d6c00" stroke-width="2.4" d="M285.6 177s9.7 2.7 9.7 6.8m0-7.5s6.8 3 8.3 5.6m45.1-4.5s-8.6 1.2-10.5 3.8m-2.6-3s-5 4.1-4.5 5.3m3.4 12.7c-.8-.3-4.2-4.9-3.4-10.5m-29.8 7.5s2.3-2.6 2.3-7.5m13.5-1.9.4 11m9.4-1.6c0-.7 3-7.9-.4-11.3m-20.3-1.5s-2.6 7.2-.7 13.2m20-6.8s-4.2 1.2-6 3m-11.8-1.9c0-.3 4.6-1 6 1.6"/>
+ <path fill="#c76e2e" fill-rule="evenodd" d="M300.6 301.9c.2 0 3.8-.7 3.8-2.4 1.8-1.2.5-4.5.5-4.5l-3.4-.6-4.6-5.2c-.2-1.6.3-3.1-.7-4.8-3.2.8-5 3.5-6 6.5.7 1 .8 2 2.3 2.9 1.5.2 2.5-.7 3.9-.4.7 1.3.5 2.4.8 3.6 1.9 1.3 2.3 3.2 3.4 4.9m-4.1-22.2v-6.2l-4.4-.2c-.6 1-1.6 1.4-2.2 2.2l-3.1 1.6c1.3 1.5 2.9 2.4 3.8 3.2q3.3 1 5.9-.6m-13.8 9.1-2.4-4a7 7 0 0 1 4.7.3s1 2.5.3 3.4c-.4.9-2.7.5-2.6.3m36.5 4.1a5 5 0 0 0 2.7-3.3l-4.5-5.1-4-.1q-1.6-1.4-3.6-1.2s1.2 2 2.8 2.3c1.2 2.6 6.2 7.4 6.6 7.4m4.3.6c0-.1 4-1.4 6-1.3-.1-1.6 3-5.3 3-5.3l5.6 7.3c-1 .8-2.8.6-4.2.8 0 0-2.7 2.6-3 2.7s-5.2 1.3-7.6-.2c-1-2 .3-4.3.2-4m3.2-12.8a14 14 0 0 0 0-7.6h-6.4l-4.2 2s1.3 4.2 3 3.8c.7 2.1 2.9 1.6 4 2.4zm24.9-6.4c-1 2.7-1.4 5.5-.2 8 1.2.3 2.6 1 3.6.8l5.1-9.2q-5.3-1.7-8.6.4z"/>
+ <path fill="#b97700" fill-rule="evenodd" d="M353.1 193.2c-12-3.9 2.8-11.7 5.3 0 3.9.6 4.4 3.5 12.8 2.3 20.3 33 5.2 86.5-54.2 141.8 106.5-90.6 63.2-157.6 33.7-155.1-16 1-8 21 2.4 11"/>
+ <path fill="#c76e2e" fill-rule="evenodd" d="M354.3 284.7c-.2 0-3 2-3 2l-4.2 1.7-4.4.1-1-3 3.4-3q-4.4-.6-8 2.8s0 3.3 2 5c1.1 1.4 4.5 4 4.5 4a7 7 0 0 0 5.4-1zm-23.2 30.1c1.4.4 11.3-12.7 11.3-12.7a10 10 0 0 0-4.9-5.4s-4.8 5.7-4.9 7.6c-.8 1.7-3 8.3-2 9.2-.1.2-.5 2.9.5 1.3"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M266.4 317.4c-14.8-12.9-34.8-20-62.7-10.3 7.5 3.2 15.6 4.3 22.5 7.9z"/>
+ <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M223.4 308.3c29.3.6 37.8 7.9 36.3 6.7"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.2" d="M267 319c-8.8 1.6-20.8 10-24.4 9.7-9.5-1.1-18.5-5-27.7-8-3.8-1.2-7.7 0-11.6 0 32.8-15.5 44-13.4 63.7-1.8z"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M245.4 296s-11 1.6-15.9 1.9c-4.8-.3-12-4.8-19.8-13-4-4.6-13.4-4-13.4-4 20.6-4.4 36.7-.2 49 15.2zm-15-21.2c-14.9-1-33.5-14.3-37.7-30.2 0 .2 5.5 3.5 4.6 4.3 24.4 6.2 26 11.2 33.1 25.9zm25 25.5c2.1-13.5 2.7-22.4-3.6-30.4-5.3-6-6.6-9.7-10.4-18.3-1.1 17.8-5 32.5 14 48.7zM232 263c11-16.1 13-28.3 11.2-47.5-.3 1.5-4 11-4.2 11-16.5 10.3-9.2 26.5-7 36.5z"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M222.2 185c11 16.1 9.4 31.3 7.6 50.5-.3-1.5-4-11-4.2-11-16.5-10.3-5.5-29.5-3.4-39.5z"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M231.3 210c26.8-13.6 16.5-30.7 21.4-44-18.6 13.9-21 28.6-21.3 44z"/>
+ <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M235 206.6c3.4-9.5 10-25.6 10.7-25.6M227 226.4c-.6-6.7-4-24.7-4.3-26.5"/>
+ <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M228.3 256.5c-15-1-31-21.3-35.3-37.1 0 .2 5.5 3.4 4.6 4.2 21.4 9.6 23.6 18.2 30.7 32.9zm-4.4-14c-11-16.1-13-28.3-11.3-47.5.3 1.5 4 11 4.3 11 16.4 10.3 9.1 26.5 7 36.5zm9.9-28.3c27.7-12.3 19.2-25.2 27.4-38.7-18.6 13.8-27.1 23.4-27.4 38.7z"/>
+ <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M235 211.4a71 71 0 0 0 15.2-20.7"/>
+ <g fill-rule="evenodd">
+ <path fill="#ffe100" stroke="#e9bf00" stroke-width="2.4" d="m333.6 366.4 13.4.2c-44.7-42-130.5-60.2-118.6-137.4-12.3 83.7 70.1 91.5 105.2 137.2z"/>
+ <path fill="#9d4916" stroke="#68300e" stroke-width="1.1" d="M235.4 212.7a4.3 4.3 0 1 1-8.6 0 4.3 4.3 0 0 1 8.6 0zm-2.6 23.6a4 4 0 1 1-8.1 0 4 4 0 0 1 8 0zm3.8 33.7a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0zm31.3 37.2a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0zm4.5 10.7a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0z"/>
+ </g>
+ <g fill="#fff" fill-rule="evenodd">
+ <g stroke="#000" stroke-width="1.1">
+ <path d="M288.2 349a16 16 0 0 1-4.8-5.8l-14-1.5-.2 8z"/>
+ <path stroke-linejoin="round" d="M185.3 339.6c8.2 1.5 20.5-.8 24.5 4.5 4.8 5.4-15.1 13.9-12.3 18.6 6.2 6.5 12.5 3.8 19.4.2 1.7-3.5 3-9.8 3.8-11.7-2.5-5.7-9.3-8.6-7.5-17.3 11.3-4.2 33.2-3.9 35.6-2.2 1.8 3.6.1 5.2.5 8.1-1.9 3.7-6.7 9.8-6.7 13.1 12 4.2 15-.6 25.8-.4 12.6.2 20.2 3.6 23-1.4-2-4.4-13.5-.8-17.8-3.6-2.2-.7-3.6-2.5-5.5-4.4s-7.2-2-8-6.9c2.2-10.2 17-8.6 19.3-10.2l38.4 2.7c7-.2 11 12.3 1.5 16-9.4 3.8-37.1-5.5-49.2.9-.6-2.6-9.3-6.6-9.9-6.7-3.7 1-10.9.7-10.9.7-1.7 3.2-3.8 5.6-5.5 8.9-8-3.5-15.5 2.7-24.2.9l-13.6 1.5-8.6-.8-13.2 3.8 9.4-8.3z"/>
+ <path d="M184.7 338a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0zm-1 18a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.3 0z"/>
+ </g>
+ <g stroke="#000" stroke-width="1.1">
+ <path d="M346.3 349.1c2.3-2.1 3.8-3.5 4.7-5.8l14-1.6.3 8z"/>
+ <path stroke-linejoin="round" d="M449.1 339.6c-8.1 1.5-20.4-.7-24.4 4.5-4.9 5.5 15 14 12.2 18.6-6.2 6.6-12.5 3.9-19.4.3-1.6-3.5-2.9-9.8-3.8-11.7 2.6-5.8 9.3-8.6 7.6-17.3-11.4-4.3-33.3-4-35.6-2.3-1.9 3.7-.2 5.3-.6 8.2 2 3.6 6.8 9.8 6.8 13-12 4.3-15.1-.6-25.8-.3-12.6.2-20.3 3.5-23-1.5 1.9-4.3 13.4-.8 17.8-3.5 2.2-.8 3.6-2.5 5.5-4.5s7.2-2 8-6.8c-2.2-10.2-17-8.7-19.4-10.2l-38.4 2.6c-7-.2-10.9 12.3-1.5 16.1s37.2-5.6 49.2.8c.7-2.6 9.3-6.5 10-6.7 3.6 1.1 10.8.7 10.8.7 1.8 3.3 3.8 5.7 5.6 9 8-3.6 15.5 2.7 24.2.8l13.5 1.5 8.7-.7 13.2 3.7-9.4-8.2 8.2-6z"/>
+ <path d="M449.7 338a3.6 3.6 0 1 0 7.3 0 3.6 3.6 0 0 0-7.3 0zm1 18a3.6 3.6 0 1 0 7.2 0 3.6 3.6 0 0 0-7.2 0z"/>
+ </g>
+ <path d="M317 329.3c-3.2-.6-4.4-.4-6.6-.6l-5.1 15.8c8 .7 15.3.7 15.3.7-4.8-1-3.7-15.8-3.6-15.9"/>
+ </g>
+ <g font-family="Trebuchet MS" font-size="9" font-weight="bold">
+ <path d="M283.4 340.2v-10.7h1.8v9h5v1.7z" aria-label="L"/>
+ <path d="M291.7 340.7V330h1.9v10.7z" aria-label="I"/>
+ <path d="M300 341.5h-3.3V331l3.2-.2q1.7 0 2.5.7 1 .8 1 2.1 0 1.2-1.3 2 2 .7 2 2.9 0 1.5-1.2 2.3-1 .8-2.8.8zm-1.3-9.1v2.5h1q1.7 0 1.7-1.4 0-1.1-1.7-1.1zm0 4v3.5h1q1.2 0 1.7-.4.7-.3.7-1.3t-.5-1.3q-.5-.5-1.9-.5z" aria-label="B"/>
+ <path d="M308.6 333v2.7h3.4v1.7h-3.4v3.1h5v1.7h-6.9v-10.7h6.7v1.7z" aria-label="E"/>
+ <path d="m322.2 342.4-2.8-4.5H318v4.5h-1.8v-10.7h1.2l1.6-.2q4.2 0 4.2 3.2 0 1-.5 1.7-.7.8-1.5 1.1l3.3 4.9zm-4.2-9v2.8h.9l1.6-.2q.7-.3.7-1.3 0-.8-.5-1.2-.7-.3-2-.3h-.7z" aria-label="R"/>
+ <path d="M329.9 333v9h-2v-9h-3.4v-1.6h8.9v1.6z" aria-label="T"/>
+ <path d="m340.7 340.5-.8-2.1h-3.7l-.7 2.1h-2.1l4.3-10.8h.8l4.4 10.8zM338 333l-1.1 4h2.5z" aria-label="A"/>
+ <path d="m344.4 339.7.6-1.7q1.2.7 2.2.7 1.7 0 1.7-1.2l-.4-1-1.6-1.1-1.7-1-.7-1-.1-1.2q0-1.3.8-2.2 1-.6 2.3-.6 1.9 0 2.9.6l-.7 1.7q-1-.8-2.2-.8-.6 0-1 .3-.3.3-.3 1 0 .8 2 1.8 1.2.5 1.7 1l.6 1 .2 1.4q0 1.3-1 2.1t-2.7.9-2.6-.9z" aria-label="S"/>
+ </g>
+ <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M231.3 318.6c10.1 1.2 24.1.3 30.2 0M216 284.2c8.6 6.7 27.1 10.7 26.8 10.7m10.7 1.8c-2.8-14-5.8-17.4-8.3-26.2m-43.5-15.8c14.3 6.4 16.5 10.6 25.6 17m5.2-14c1.2-17.3 3.6-21.9 7.9-25.9m-38.7-2c5.2 5.7 22.2 23.7 22.2 23.7m-7-39.6c6.4 4.5 6.4 21 6.4 21"/>
+</svg>
diff --git a/apps/web/public/flags/sn.svg b/apps/web/public/flags/sn.svg
new file mode 100644
index 00000000..7c0673d6
--- /dev/null
+++ b/apps/web/public/flags/sn.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sn" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#0b7226" d="M0 0h213.3v480H0z"/>
+ <path fill="#ff0" d="M213.3 0h213.3v480H213.3z"/>
+ <path fill="#bc0000" d="M426.6 0H640v480H426.6z"/>
+ </g>
+ <path fill="#0b7226" d="M342 218.8h71.8l-56.6 43.6 20.7 69.3-56.6-43.6-56.6 41.6 20.7-67.3-56.6-43.6h69.8l22.7-71.3z"/>
+</svg>
diff --git a/apps/web/public/flags/so.svg b/apps/web/public/flags/so.svg
new file mode 100644
index 00000000..a581ac63
--- /dev/null
+++ b/apps/web/public/flags/so.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-so" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="so-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#so-a)" transform="translate(80)scale(.9375)">
+ <path fill="#40a6ff" d="M-128 0h768v512h-768z"/>
+ <path fill="#fff" d="M336.5 381.2 254 327.7l-82.1 54 30.5-87.7-82-54.2L222 239l31.4-87.5 32.1 87.3 101.4.1-81.5 54.7z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sr.svg b/apps/web/public/flags/sr.svg
new file mode 100644
index 00000000..5e71c400
--- /dev/null
+++ b/apps/web/public/flags/sr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sr" viewBox="0 0 640 480">
+ <path fill="#377e3f" d="M.1 0h640v480H.1z"/>
+ <path fill="#fff" d="M.1 96h640v288H.1z"/>
+ <path fill="#b40a2d" d="M.1 144h640v192H.1z"/>
+ <path fill="#ecc81d" d="m320 153.2 56.4 173.6-147.7-107.3h182.6L263.6 326.8z"/>
+</svg>
diff --git a/apps/web/public/flags/ss.svg b/apps/web/public/flags/ss.svg
new file mode 100644
index 00000000..b257aa0b
--- /dev/null
+++ b/apps/web/public/flags/ss.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ss" viewBox="0 0 640 480">
+ <path fill="#078930" d="M0 336h640v144H0z"/>
+ <path fill="#fff" d="M0 144h640v192H0z"/>
+ <path fill="#000001" d="M0 0h640v144H0z"/>
+ <path fill="#da121a" d="M0 168h640v144H0z"/>
+ <path fill="#0f47af" d="m0 0 415.7 240L0 480z"/>
+ <path fill="#fcdd09" d="M200.7 194.8 61.7 240l139 45.1L114.9 167v146z"/>
+</svg>
diff --git a/apps/web/public/flags/st.svg b/apps/web/public/flags/st.svg
new file mode 100644
index 00000000..1294bcb7
--- /dev/null
+++ b/apps/web/public/flags/st.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-st" viewBox="0 0 640 480">
+ <path fill="#12ad2b" d="M0 0h640v480H0z"/>
+ <path fill="#ffce00" d="M0 137.1h640V343H0z"/>
+ <path fill="#d21034" d="M0 0v480l240-240"/>
+ <g id="st-c" transform="translate(351.6 240)scale(.34286)">
+ <g id="st-b">
+ <path id="st-a" fill="#000001" d="M0-200V0h100" transform="rotate(18 0 -200)"/>
+ <use xlink:href="#st-a" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#st-b" width="100%" height="100%" transform="rotate(72)"/>
+ <use xlink:href="#st-b" width="100%" height="100%" transform="rotate(144)"/>
+ <use xlink:href="#st-b" width="100%" height="100%" transform="rotate(-144)"/>
+ <use xlink:href="#st-b" width="100%" height="100%" transform="rotate(-72)"/>
+ </g>
+ <use xlink:href="#st-c" width="100%" height="100%" x="700" transform="translate(-523.2)"/>
+</svg>
diff --git a/apps/web/public/flags/sv.svg b/apps/web/public/flags/sv.svg
new file mode 100644
index 00000000..cbc674a6
--- /dev/null
+++ b/apps/web/public/flags/sv.svg
@@ -0,0 +1,593 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-sv" viewBox="0 0 640 480">
+ <path fill="#0f47af" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 160h640v160H0z"/>
+ <g transform="translate(-92.7)scale(.8)">
+ <g fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".3">
+ <path d="M515 353.4c1.5 0 3.2 0 10.1-1.7 7-1.7 12.7-5.9 14-6.5s3.3-.4 3.3-.4a8 8 0 0 0-5.8-2.8c-3 0-1.9 0-4.4 1.1-2.6 1-8 4.3-17 4.3h-.1c-9 0-14.7-3.2-17.2-4.3-2.6-1-1.4-1-4.4-1s-5.1 1.9-6 2.7c0 0 2-.2 3.4.4s7.1 4.8 14 6.5 8.6 1.7 10.1 1.7z"/>
+ <path d="M488.4 347.4c.7-.4-.2-1.6-.2-1.6l2.7-.6c-1.3-.6-3.3-.4-3.3-.4q-.5.7-.5 1.3t.2 1.3c.3.3 1 0 1 0z"/>
+ <path d="m491 345.2-2.8.6s.9 1.2.2 1.7l4.8-1-2.3-1.3zm50.7 2.2c-.7-.4.1-1.6.1-1.6l-2.7-.6c1.4-.6 3.3-.4 3.3-.4.6.4.5.9.6 1.3q0 .7-.3 1.3c-.3.3-1 0-1 0z"/>
+ <path d="m539.1 345.2 2.7.6s-.8 1.2-.1 1.7l-4.8-1z"/>
+ </g>
+ <path d="m495.8 343.3-1.2 3 .6.3q1.5.5 2.2-.9.5-1.6-1-2.1zm.3.6q1.3.6.9 1.7-.6 1-1.7.5h-.1z"/>
+ <path fill-rule="evenodd" d="m497.6 347.6-.4-.1 1.4-3 .3.1z"/>
+ <path d="M500.2 345.3q-1 0-1.5 1-.5 1.6.8 2.3 1.4.5 2.2-1a2 2 0 0 0-.9-2.2zm0 .5h.5q1 .6.5 1.6c-.2.6-1 1-1.5.7q-.9-.6-.5-1.6.3-.6 1-.7"/>
+ <path fill-rule="evenodd" d="M503.8 347.4q0-.4-.3-.5-.5-.1-.7.2l.2.6.3.2q.5.5.3 1.2a1 1 0 0 1-1.3.6 1 1 0 0 1-.6-1.2h.4q-.2.6.4.9.5 0 .7-.4.2-.6-.2-.8l-.2-.2q-.5-.3-.3-1 .4-.7 1-.5t.7.8zm2.4.1-.5 1.9q-.2.8.4 1.2.9 0 1-.8l.6-1.9.3.2-.5 1.9q-.4 1.1-1.5 1-1.1-.6-.7-1.6l.6-2zm4.4 4.5-1.8-3-.5 2.4h-.4l.7-3.4 1.8 3 .4-2.4h.4zm.8 0 .4-3.2h.3l-.4 3.2z"/>
+ <path d="M514.2 348.9a1.6 1.6 0 0 0-1.7 1.6q.1 1.6 1.6 1.8c.8 0 1.6-.7 1.6-1.7q-.2-1.5-1.5-1.7m0 .5q1 .2 1 1.2a1 1 0 0 1-1.1 1.2q-1-.1-1.1-1.3.1-1 1.1-1.2z"/>
+ <path fill-rule="evenodd" d="m519 352.1-2.4-2.3.1 2.4h-.4l-.2-3.4 2.5 2.4-.2-2.4h.4zm2.1-.5-.6-3.2h.4l.6 2.8.9-.2v.4zm1.8-.3-.8-3.2h.4l.7 3.1z"/>
+ <path d="M523.9 347.7h-.4l-.4.2.9 3.1.7-.1q1-.3.8-1.2-.2-.7-.8-.6l.1-.8q-.3-.7-1-.6zm0 .4q.3-.1.5.4t-.4.6h-.1l-.3-1zm.5 1.3q.5-.1.6.4.2.5-.4.6l-.3.1-.3-1h.4z"/>
+ <path fill-rule="evenodd" d="m527.2 348 .2.3-1.2.4.4 1.2 1.2-.5.1.4-1.5.6-1.1-3.1 1.6-.6v.3l-1.1.5.3.8z"/>
+ <path d="m528.6 346.2-.8.2-.4.1 1.2 3h.3l-.4-1.4 1.4.9.5-.1-1.5-1q.6-.4.4-1.1a1 1 0 0 0-.7-.6m0 .4.3.3q.1.7-.5.8l-.5-1h.1l.5-.1z"/>
+ <path fill-rule="evenodd" d="m529.2 345.8 1.7-.8.2.3-.7.3 1.2 2.7-.3.1-1.2-2.6-.7.3z"/>
+ <path d="m532.2 344.2.2 3.7.4-.2v-.8l1.3-.7.6.6.4-.3zm.4.9 1 .8-.8.5-.1-1.3zm2.7-2.2-1 .3-.5.3 1.7 2.8.5-.3q1.5-.8.7-2.3-.6-.9-1.4-.8m.2.5q.5 0 .8.5.4 1.1-.6 1.7l-1.3-1.9h.1z"/>
+ <g id="sv-a" stroke="#000" stroke-miterlimit="2.6">
+ <path fill="#e60000" fill-rule="evenodd" stroke-width=".1" d="M485 355.2q1 0 1-1a1 1 0 0 0-1-.8q-.7 0-.8.9c-.1.9.4.9.9.9zm-5 6.3q.8 0 .9-1a1 1 0 0 0-1-.8 1 1 0 0 0-.9.9q.1.8 1 .9zm-12-19.9q.9 0 1-.9a1 1 0 0 0-1-.9 1 1 0 0 0-.8 1q0 .7.9.8zm-7.3 3.7q.9 0 1-1-.1-.9-1-1a1 1 0 0 0-1 1q0 1 1 1zm-1.4-22.3a1 1 0 0 0 1-1q0-.9-1-1a1 1 0 0 0-1 1 1 1 0 0 0 1 1zm-6.2 1.8a1 1 0 0 0 1-1 1 1 0 0 0-1-1 1 1 0 0 0-1 1 1 1 0 0 0 1 1zm3.2-19.8a1 1 0 0 0 1-1 1 1 0 0 0-1-1 1 1 0 0 0-1 1q0 .9 1 1zm-5.5-18.3q.9 0 1-1a1 1 0 0 0-1-1 1 1 0 0 0-1 1q0 1 1 1zm7 1.8a1 1 0 0 0 1-1q0-.9-1-1a1 1 0 0 0-1 1 1 1 0 0 0 1 1zm7-15.2q.9 0 1-1-.1-.9-1-1a1 1 0 1 0 0 2zm-5.3-4.2a1 1 0 0 0 1-1 1 1 0 0 0-1-1 1 1 0 0 0-1 1 1 1 0 0 0 1 1zm10.5-10.3a1 1 0 0 0 1-1 1 1 0 0 0-1-1 1 1 0 0 0-1 1 1 1 0 0 0 1 1zm-21.5 46.3q1 0 1-1c0-1-.4-1-1-1a1 1 0 0 0-1 1q.1 1 1 1z"/>
+ <path fill="none" stroke-width=".3" d="M486 358.9s-.8-3.2-.7-3.9l.8-.6m-1.4 5.7s-2.8.1-3.7.4l-.3.8m-13.4-15.5s-.2-3.8.6-4c0 0 .7-.4 1.2-1m-4.7 3.8s-2.1-.3-2.7 0c0 0-.2.6-.6.8m-.8-23-.7.5c-.8.3-2.3 4-2.3 4s-2.4-1.9-3.4-2h-1.1m-4.8-20.2s.6.6 1.2.3c0 0 3 2 3.1 2.7 0 0 3.2-3.2 3.8-2.9 0 0 .3.5 1-.1m-5.8-18.6s.3.5.9.8c0 0 1.4 2 1.4 3.5 0 0 2.5-2.3 3.3-2.1 0 0 .9.3 1.5 0m.3-19.5s.6.8 1 .2c0 0 1.8 2.2.8 4 0 0 2.5-.7 3.3-.3 0 0 .3 1 1.2.5"/>
+ <g fill="#1f601a" fill-rule="evenodd" stroke-width=".3">
+ <path d="m532.8 378.3-4.5-.3c-.6 0-2-2.7-2.6-3.1-.6-.5-10.8-5.5-17.5-6.5a95 95 0 0 1-19-6 88 88 0 0 1-26-19.2c-2.9-4.2-6-14-7.2-19.2-.7-2.5-4-12.4-4-19.2a84 84 0 0 1 2.2-19.4 111 111 0 0 1 15.3-26.8s-12 18.7-14.2 25.9a81 81 0 0 0-2.5 21.5c.1 4.2 3.6 19.6 8.7 30.9 4.1 9 7.7 10.2 14 15.2 3 2.4 8.8 6.2 13.6 8.6s15 5.5 17.8 5.9c2.7.5 16.4 4.5 18.2 5.4s6.5 5 7.7 6.3z"/>
+ <path d="M464.1 343.4q.3-2.1 1-2.8a14 14 0 0 0 2.2-3.5c.3-1.2 0-2.2 0-2.8l.4-2.7s-.7-2.5-1.3-3-2.2-2.6-2.5-3.2c0 0 .2 1.3-.3 1.9a7 7 0 0 0-.6 3c0 .9.3 3 0 4q-.6 1.7-.4 3.5zm-.5-1.5s-3.4-4.4-3.4-6.2q0-2.7-.6-3.3c-.3-.4-2.3-2.7-.5-5.6.8-1.2 1-1 1.4-2.4.6-1.6 1.8-1.6 2-3.3 0 0 .4 2 .5 3.6.2 1.7-.1 2.3-.2 3.2-.2.9.4 2 .4 3.3 0 1.4-.2 1.9-.2 2.7 0 .4-.5 6.2.6 8zm38.6 23.5-4-.5c-.7 0-2.5-.5-3.5-.9a10 10 0 0 1-4-2.8c-2.8-3-2.5-4.5-3-4.6-1-.2 1.5-.4 2.8-.3 1.1.2 2.8 1 3.8 2 1.2 1.1 3 2.3 3.5 2.7s1 .7 1.7 1.5c.7 1 .6 1.5 2.7 3z"/>
+ <path d="M506.2 367.5s-7.2-3.2-8-3.8l-2.8-2.6c-.7-.8-3.8-2.4-4.3-3.4-.3-.7-2.3-3.3-3.4-5.4-.5-1 4.9.3 4.9.3 4.4 1.8 2.4.6 4.8 2.4q2.3 1.6 2.9 2.9c.6 1.3 1.2 3.5 1.9 4.7q.7 1.7 4 5z"/>
+ <path d="M510.2 368.4s-6-1.5-8.8-5.2c-2-2.6-2-1.8-2.7-2.7q-1.7-1.4-4-4.5c.2.3-1.6-5.9-1.6-6.6 0-.4 2.3.3 4.2 1 1.5.7 2.4 2 3.8 2.8 1.6 1 1.8 3.7 2.5 4.9q1.4 2.5 1.2 3.5c0 1.4.8 1.8 1.2 3 .5 1.3 2.1 1 4.2 3.8zm-9.6-2-5.9-2.4c-.8-.1-1-.6-2.1-.9-.9-.2-1.7-.9-3.8-.4-.9.2-4.6 1-5.5.6s1.3 2.5 2.3 3.1c1.1.7 2.9 1 4.4.8h4.4c.7 0 1.2.2 2.3-.1s1.3-.8 3.9-.7z"/>
+ <path d="M504 366.4s-5.7-1.4-6.7-1.4l-4.8.4c-1 .2-4.5-.2-5.5.4-1 .4-5.6 1-6.8.8-1.2-.3 2.4 3.2 3.9 3.6 4.6 1.3 3.2 1.1 6.2.4 1.8-.5 4.4-.6 5.4-.8.9-.1.7-.7 2-1.2 1.1-.5 3.2-1.8 6.3-2.2z"/>
+ <path d="M508.7 368.8s-5.7-2.4-10.2-1.1l-4.2 1c-1.4.1-2.6-.6-5 .4-1.2.4-6.2 2.5-7.5 2.4s4 3.3 5.4 3.1c4.6-.6 9 1 11 0l4-1.5q1.3-.8 2.1-1.7c.6-.4 1-1.6 4.4-2.6zm-30.6-13.1s-3.3-3.6-4-4.1l-3-2.4c-.6-.6-1.3-2-3.4-2.5-1-.2-3.1-.6-3.8-1.4s.1 3 .8 4a8 8 0 0 0 3.6 2.5c1.5.5 3.3 1.5 4 1.9q.7.5 2 .8c1.1.2 1.6 0 3.8 1.2z"/>
+ <path d="M481.3 357.2s-5.7-4-6.5-4.4l-3.5-1.3c-1.1-.3-4-2.3-5-2.3-1.2 0-3.3-.1-4.3-.8s-.1 2.7 1 3.7c3.6 3.2 1.1 2.2 4.1 2.8l5.1 1.7c1 .3 1-.3 2.3-.2s3.8-.2 6.8.8zm1.3 1.1s-2.3-1.6-6.9-2.4c-3-.5-3-.6-4.1-1-1.4-.4-1.7-.4-4.3-.5-1.2-.1-6.2 1.5-7.4.8-1-.6 1.3 1.5 2.6 2 2 .8 1.8 2 4 2.8s4.7 1.6 6 1.4c1-.2 1.8-.7 3.3-.8s4-2.3 6.8-2.4zm.5-1.2s1.1-5.5.1-6.8a5 5 0 0 1-1.2-2.9 11 11 0 0 0-1.6-4.3c-.6-.8-1.8-4.2-1.5-5.1 0 0-3.2 3.1-3 5.1v2.4c-.2.9.7 3.9 1.3 4.8.6 1 .3 3.6 1 4.2.5.6 4.1 3 4.9 2.6z"/>
+ <path d="M482.6 358.3c.3.1-2-1.8-3-2.3s-5.3-1.6-5.6-2.7c-.3-1-3.7-4.6-3.9-5.6 0-.6-.7-2-.6-2.8.2-.7.5-2.6 1-3.6.4-1.1 1.4-3.6 2.5-4l1.2 3.8c.3 1 .6 2.3 1 2.9s2 3.4 2.1 4.5l1.1 5.3c.1.7 3 3.8 4.2 4.4zM464 343.4c.1.8-2.3-.8-3.5-.8s-4.8.5-5.7-.4-2.2-2.6-2.7-2.9-2.1-3-2.6-4.5-3.6-4.2-4-4.5c0 0 4.3-.9 7 .9s3 1.4 3.5 1.6 5.3 4.3 5.6 5.8 2.2 4 2.4 4.8z"/>
+ <path d="M464.1 343.4s-3.9-2.7-4.8-2.6c-1 .2-5.2-3-5.4-5-.2-1-2.2-2.5-2.6-3.1-1-1.8-1.7-5.9-3.2-7l5.2 1.3c2 .3 3.6.6 4.3 2.2q1.1 2.7 2 3.2c.6.2 1.5 2.3 1.8 4.4a32 32 0 0 0 2.7 6.6zm-7.4-20.5c.7 1 .6-6 .9-6.8a11 11 0 0 1 1.7-2.8c.6-.6.6-2.7.9-3.3s.1-4.7-.3-5.8L458 306c-.6.7-1.7 1-2 2-.3.8-.9.8-1.3 1.8a6 6 0 0 0-.6 3.6c.3 1.2.1 1.6.1 2.7 0 1 1.5 5.6 2.4 6.9z"/>
+ <path d="M456.9 323.5s-.3-2 .4-2.7c.8-.8 1.5-.8 1.8-1.2l.5-1.7c.3-.6 1-1.6 1-2 .3-1.7 1.3-3.6.5-5.3 0 0-1.7.5-2.1.8s-1.8 1.6-2 2.8c-.1 1.3-.3 1.5-.7 2.2-.5.8-1 3-.3 4.4a7 7 0 0 1 .9 2.7zm-4.4-23s-.3-4.4.9-5.8 1.5-3.9 4.2-5.3v1.9c.2.7.5 2.8 0 3.6-.4.7-2 2-2 2.7 0 .6-1 2.1-1.7 2.4z"/>
+ <path d="M452.5 302.8s0-3 .9-4q1.3-1.2 1.8-2c.5-.5 1-2 2-2.7 1-.6 2.8-2.1 3-2.7 0 0 .4 3.8-.6 5.8s-1 3-2.3 3.4c-1.2.5-1.4.8-1.8 1q-.8.7-1.8.8c-.6 0-1.2.4-1.2.4zm3.5 20.6c.1.8.7-2-2.4-2-3.2 0-5.8-1.2-6.8-2.3l-2.1-2.3a9 9 0 0 1-1.8-3.1c-.2-.9-1-4.2-1-4.8 0 0 1.7.3 2.5.9.7.6 2 .6 2.8 1s1.4 1.7 1.9 2.1 1.7.5 2.3 1.4 1.7 2.9 1.9 3.8c0 .9 1.2 1.8 2 2.2.6.5.5 2.3.6 3z"/>
+ <path d="M455.6 322.1s-2-2.5-3.1-2.5c-1 0-3.8-2.7-4-4 0-1.1-1-3.4-1.6-3.9a4 4 0 0 1-1.5-3.3c.2-1.8.2-4.8.2-4.8s.6 1.8 1.5 2.3 2.5 1 2.8 1.6 1.5.6 2 2.5c.5 1.7.5 1.6.8 2.2q.6.9 1.3 2.6c.3 1.2 2 4.3 1.7 7.3zm-3-16.6c-.2.8 1.1-1.6-1.7-2.4a10 10 0 0 1-5.6-4l-1.3-2.6a9 9 0 0 1-.7-3.4c0-.9.2-4.1.5-4.6 0 0 1.4.7 2 1.4.4.8 1.7 1.2 2.3 1.8s.7 1.9 1 2.5c.3.5 1.5.9 1.8 1.8s.7 3.1.6 4 .6 2 1.2 2.6-.1 2.2-.2 3z"/>
+ <path d="M452.6 304.3s-1.3-2.9-2.2-3.2-2.5-2.7-2.6-3.9-.3-3.4-.7-4c-.5-.6-1.3-2.4-.6-4l1.6-3.7 1.3 2.1c.8 1.6 1.6 1.7 1.7 2.3.1.7 1 1 1.4 2.3.5 1.7 0 1.6 0 2.3.2.6.7 1.5.6 2.7 0 1.1.6 4.5-.5 7.1zm2.3-18.2q.3-.7 2.1-1.2c1-.3 2.7-2.7 3.5-3.3s1-1.6 2-2.1 1.4-2.4 1.7-4.2l-3.3.7a7 7 0 0 0-2.8 1.8c-.6.8-1.2 2-1.9 2.3s-1.3 2.1-1.3 3.3z"/>
+ <path d="m454.8 284.8-.2-2.6c0-.9-.6-3.3.7-5.3 1-1.3 4.3-3.9 5.2-4 0 0 .6 2.4.4 3.1s-1 3.8-1.6 4.1-2.4 3.9-4.5 4.7z"/>
+ <path d="M454 286.1c-.4.7-.1-2.2-1-3s-1-1.8-1-3 .2-2 .3-2.9c.2-.7 2.5-3.9 2.3-4.8l1.7 3.8c.4 1-.3 2.1-.2 3 .2.9.9 2.6.3 3.5L454 286zm8-15.5s.2-.4 1.5-.4 3.3-.1 3.9-.8q1-1 2.3-1.7a5 5 0 0 0 1.8-2.2c.1-.6 1.2-1.8 1.6-1.8 0 0-1.6-.2-3.4.3s-4.4 1.4-5 2.6-2.7 4-2.7 4z"/>
+ <path d="M462.5 270.3c.3 1 2.8-1 3.4-1.8l1.5-2 1.8-2.4c1-1.6.7-4.6.3-4.3l-2.5 1.4c-.5 0-1.4.4-1.7 1.1q-.4 1.4-1 2.3c-.5.5-3.2 2-1.8 5.7z"/>
+ <path d="M461.6 270.3s2-1.5 2.8-2.3c1-.8.5-2 1-2.6.3-.6 1.4-2 1.1-3l-.9-3.4-1.8 1.8c-.8.8-.9 1.4-1.2 2.3s-1 1.5-1.2 2.2c-.3.8 0 2.3.2 3.2z"/>
+ </g>
+ <g fill="none" stroke-width=".1">
+ <path d="M494.8 365.2s-10-.1-10.8-1.3m16.6 2.6s-6.5 1.7-10 1.3-5.1.3-5.9.3c-.7 0-4.5-1.5-4.5-1.5m27 2.2-6 1.3c-1 .3-6.2 2.2-7.7 2.2h-5a18 18 0 0 1-6.3-.4m6.2-15s3.7 2.3 4.4 3c.5.8 3.8 3.5 4.5 3.5m-9-11.1s6.5 5.6 7.6 6.3 7.4 7 8.1 7.8M493.6 350s5.1 4 5.7 5.7 2.2 3.6 2.2 3.6 2 4.2 2.8 4.8 2.3 2.2 4.1 3.4m-44-21.3s5.4 4.6 6.9 5.4m-9.1-2.5s5.4 3.7 7.8 4.6c2.4 1 4.4 1.7 9.6 2.4m2.1 2.2s-6-.3-7 0-5.8-.8-7-1.1l-6.6-1.4m11.4-17.9s-.3 3.3.2 4.7c.4 1.3 2.6 5.3 2.4 6.2-.1.9 1.2 5 2.4 5.7m1.2-16s-1 3.3-.6 4.4c.5 1 1.2 3 1.2 4.2s.8 3 1 3.8c.4.7-.1 3.3.7 4l1.6 2.2m-36.1-26.3s4.8 1.9 5.4 3c.6 1.3 1.5 1.6 2 2.2m10.3-9.7s1.3 4.9 1 6c-.3 1.2-.3 3.7-.3 4.6s-1.4 4.5-1.3 5m-1.3-19.6-.6 4c-.1 1.2 0 3.2-.3 4s-.8 4.8 0 6.6M449 326.2l4.8 4.2c.9 1 5 5.3 5.1 6.4.1 1 3 4.3 3.9 5m-20.5-32.5s4 4 4.2 4.9 2 2.3 2.8 2.8m11.4-6s-1.5 2.3-1.5 3-.6 2.7-1.2 3.5c-.4.5-1.7 2.7-1.5 4m3-16.8-1 3.6c-.2 1.5-1 3-1.3 4-.3.8-1.5 5.2-1 7.9m-10.4-15.7s.4 2.1 1.5 3.2c1 1 2.7 2.6 2.8 3.4.2 1 1.6 5.4 3 7a5 5 0 0 1 1.7 3m-10.5-32s.4 2.6.7 3.4 1.5 4 2.7 5.1m9.5-7.7-.9 3c-.1 1-1 2-1.2 2.4l-.7 2m5.5-5.3c-.1.9-1.8 3.6-2 4-.1.5-1 2.6-1.9 3.2s-3.6 2.6-3.4 3.4m-4.4-16.5s-.2 3.3.4 4.5l1.7 4c.3.9.3 2.4.4 3.4.2 1.1.6 3 1.2 3.8m11.8-25.9-3.2 3.5c-1 1-4.8 5-5 5.8m4.6-11.6s-2.1 4.7-2.6 5.4l-.9 2m-2-7.5s.2 3.6 0 4.5a8 8 0 0 0 0 2.9c.2.4-.4 3.7-.5 4.5m18-21.3s-4.8 2.9-5.5 3.6m2.7-7.3-3.3 4.8-.8 1.4m.3-6.7s-1 2.6-1.2 3.6a36 36 0 0 1-2.2 5.6"/>
+ <path stroke-width=".3" d="M469.2 258s-.4 1 1.4.7"/>
+ </g>
+ </g>
+ <use xlink:href="#sv-a" width="100%" height="100%" transform="matrix(-1 0 0 1 1030 0)"/>
+ <path fill="#00209f" fill-rule="evenodd" d="M514.6 366.1s.7-1.8 2.2-.1c0 0 1.9 4.2.5 4.3-1.4.2-2.7.5-2.9-.3-.1-.7.2-3.9.2-3.9"/>
+ <path fill="#00209f" fill-rule="evenodd" d="M516.5 365.5s.5-6.4 1.4-6.7 3.6-1.8 5.3-.5 0 8-.5 8.7-1.5 2.5-5 2l-.4-1.6s1.8-.2 3-.8q1.7-.9 1.5-1.8c-.2-.9 0-4.2-1-4.5l-2.3-.8-1.7 6.5z"/>
+ <path fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M514.4 370s-6.2 3.7-3 9l-2.1-1.3s-1.2 2.2-.1 3.4c0 0-4.3-3.8-1-8.3 3.4-4.6 6-4.3 6-4.3z"/>
+ <path fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M514.4 367s-2.7-1.8-6.6-.7c0 0-1.7-5.6-1-7.4.2-.8.8-.9.8-.9s-2-1.2-1.3 4c.6 5.4 1.6 6.8 1.6 6.8s5.2.3 6.4-.3l.1-1.4z"/>
+ <path fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M514.4 367s-5.4-9-6.8-9c0 0-1.5-.2 2-.6 1.2-.1 3.2 0 4 1.7 1 1.6 1.7 5.5 2 6.1 0 0-1 .3-1.2 1.9z"/>
+ <path fill="#011322" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M514.4 367s-3.6-1.6-4-2c-.5-.5-1.2-5.6-.8-5.3 0 0-1.5-1.7-2-1.7-.3 0-1.3.8-1 2.6s.7 4.5 1.2 5.7c0 0 2.9-1.2 6.6.8z"/>
+ <path fill="#00209f" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M517.7 370s2 1.3 2 3.5.9 6.4 2.7 7.3c0 0 .5-1.7 1-2 0 0 1.9 2.1 2.5 2.1 0 0-1-2-1-2.9s-1-4.3-2-5.2c-.8-1-2.6-3-5.2-3.8z"/>
+ <path fill="#011322" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="m518.5 359.5-1.7 6.5.5 1.4s.6-.2.9-1c.3-.7 1.2-6.3 1.7-6.5z"/>
+ <path fill="#011d33" fill-rule="evenodd" d="M514.4 369.3s-3 1-4.1 3.2c0 0-.4-1.5 4-3.6v.4zm3.4 0s2 .8 2.6 2l-2.6-1.5zm-3.4-1.7s-4.6.7-5.6.5c0 0 1.3.3 5.6 0zm7.4-2.8s.5 2.3.9 2.2c.4-.2 1.2-3.9 1.2-5.6q-.2-2.4-1.4-2c-.7 0-1 1.5-1 2.2z"/>
+ <path fill="#011d33" fill-rule="evenodd" d="M516.8 366s1.9 4.1.5 4.4c-1.4.2.6.1-.4-2.7-.4-1.1-1-2.5-1.3-2.5 0 0 1.1.4 1.2.8"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M514.6 366.1s.7-1.8 2.2-.1c0 0 1.9 4.2.5 4.3-1.4.2-2.7.5-2.9-.3-.1-.7.2-3.9.2-3.9z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M516.5 365.5s.5-6.4 1.4-6.7 3.6-1.8 5.3-.5 0 8-.5 8.7-1.5 2.5-5 2l-.4-1.6s1.8-.2 3-.8q1.7-.9 1.5-1.8c-.2-.9 0-4.2-1-4.5l-2.3-.8-1.7 6.5z"/>
+ </g>
+ <g transform="translate(-92.7)scale(.8)">
+ <path fill="#00209f" fill-rule="evenodd" d="M509.8 255.9c-.4-1-.4-7.4-.4-8.4a68 68 0 0 1 3.8-11.2c.6-1 .5-1.2.7-1.8l.9-1.2a11 11 0 0 1 1.3 4.1s-.6 4.1-1.1 6c-.4 1.7-1.6 4.3-1.8 4.8-.6 1.2-.5 2.4-.2 2.5z"/>
+ <path fill="#fff" fill-rule="evenodd" d="m515 247.3.5.6c1.3-1.5 1.4-4.5 1.4-4.5l-.9-6s-.5 4-1 6c-.4 1.7-1.6 4.3-1.8 4.8-.9 2.2-.2 2.4-.2 2.5z"/>
+ <path fill="#00209f" fill-rule="evenodd" d="M515.5 247.9c1.3-1.5 1.4-4.5 1.4-4.5s1 5 .4 6-.5.7-.4 1.3z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".3" d="M517 250.7c-.2-.6-.2-.3.3-1.3s-.4-6-.4-6l-.9-6c0-1.3-.6-3-1.2-4.1l-.9 1.2c-.2.6 0 .8-.7 1.8s-3.6 9.5-3.8 11.2c0 1 0 7.5.4 8.4"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="m515 234.1-.2-1.3c0-.2.6.9 1 .7.9.3 1.9 1.5 2.1 1.8-.4.5-1.3 1.6-2 1.4-.5-.2-.4-1-.5-1.5q-.3-.4-.4-1z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="m515 233.3.4.4.7.2q.7.5 1.6 1.5m-2-1.4q1 .6 1.8 1.7"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="m514 233.4 1.3-.6c.1 0-.7.8-.4 1.2 0 .9-.7 2.2-1 2.5-.6-.1-1.2-.1-1.8-1.1-.2-.4.4-.8.8-1.1.2-.2.7-.8 1.2-.9z"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="m514.9 233.2-.3.5.1.7c-.2.7-.5 1-.9 2"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="M514.4 234q-.1 1.2-1 2.3h.2"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="M515.4 232.8c.6-.7 1.7-1.4 2.3-1l.6.6q.3.4 0 .8c-.3.8-1.4.4-2 0-.2 0-.6-.4-.8-.3l-.3.1.3.1 1.8.9c.5.2 1.5-.5 1.4-1 0-.5-.9-1.5-1.3-1.5q-1.5.1-2.5 1.4z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="M514.9 232.8c-.6-.7-1.7-1.4-2.2-1l-.6.6q-.4.4-.1.8c.3.8 1.4.4 2 0 .2 0 .6-.4.8-.3l.4.1-.4.1-1.8.9c-.5.2-1.4-.5-1.4-1s1-1.5 1.4-1.5q1.4.1 2.4 1.4z"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="M515 232.4q-.4 0-.6.3 0 .5.4.6.6.2.9-.3 0-.5-.6-.6z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M515 226.3s.4 2.4 1.6 4c1.2 1.8-1.4 1.6-1.6 2.2 0 0-.8-1.7-1.6-2.2 0 0 1.3-2 1.6-4"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="M515 226.3s.4 2.4 1.6 4c0 0-1.4 1.6-1.6 2.2 0 0-.8-1.7-1.6-2.2 0 0 1.3-2 1.6-4"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".1" d="m515 228.8.7 1.8s-.6.4-.7.7c0 0-.3-.8-.6-1 0 0 .6-.8.6-1.5z"/>
+ <path fill="#fff" fill-rule="evenodd" d="m515 344.5-.3-.2c-.4-.2-1.2-.2-1.3-.5-1-1.1-.4-3.4 0-4.8 1-2.6 1-5 1.6-7.4.6 2.4.7 4.8 1.6 7.4.4 1.4 1.1 3.7.1 4.8q-.5.3-1.3.5z"/>
+ <path fill="#00209f" fill-rule="evenodd" d="M515 331.5c.6 2.5.7 5 1.6 7.6.4 1.3 1 3.4.3 4.5q.6 0 1-.3.3 0 .4-.2l.4-.5c.3-.2.6 0 .9-.2l.1-.2q.9-.4 1.3-1.1.2-.6 0-1.3l-.2-.8-.5-1.1-.6-1.2-.3-.5-.3-.6-.4-.4-.4-.3s-.3-.1-.2-.2l-.3-.1-1-2-.2-1.1zm0 0c-.5 2.5-.7 5-1.6 7.6-.3 1.3-1 3.4-.2 4.5q-.6 0-1.1-.3-.2 0-.3-.2l-.5-.5c-.2-.2-.5 0-.8-.2l-.2-.2q-.8-.4-1.2-1.1l-.1-1.3.2-.8.6-1.1.6-1.2q0-.3.3-.5l.3-.6.4-.4.4-.3.2-.2.2-.1 1-2q.3-.5.2-1.1z"/>
+ <g id="sv-b" fill="none" stroke-miterlimit="2.6" stroke-width=".2">
+ <path stroke="#011322" d="M514.3 331.6s-1 4-1.6 5c-.6 1.1-3 3-1.4 6"/>
+ <path stroke="#011d33" d="M514.4 331.6s-1 4-1.6 5.1-3 3-1.4 6"/>
+ <path stroke="#022743" d="M514.5 331.6s-1 4.1-1.6 5.2c-.6 1-2.9 3.1-1.3 6"/>
+ <path stroke="#033054" d="M514.6 331.6s-1 4.2-1.6 5.3-2.9 3-1.2 6.1"/>
+ <path stroke="#053a65" d="M514.7 331.6s-1 4.3-1.6 5.3-2.8 3.2-1.2 6.3"/>
+ <path stroke="#011d33" d="M514.2 331.6s-1 4-1.6 5c-.6 1.1-3 3-1.4 6"/>
+ <path stroke="#022743" d="M514 331.6s-.9 3.8-1.6 5c-.6 1-3 3-1.4 5.9"/>
+ <path stroke="#033054" d="M514 331.6s-1 3.7-1.7 5c-.5 1-3 3-1.4 5.9"/>
+ <path stroke="#053a65" d="M513.8 331.6s-.8 3.6-1.6 5c-.6 1-3 3-1.4 5.9"/>
+ <path stroke="#00209f" d="M513.8 331.6s-.9 3.4-1.7 5c-.6 1-3 2.9-1.4 5.8"/>
+ <path stroke="#00209f" d="M514.8 331.6s-1 4.3-1.6 5.4c-.6 1-2.8 3.3-1.1 6.3"/>
+ </g>
+ <use xlink:href="#sv-b" width="100%" height="100%" transform="matrix(-1 0 0 1 1030 0)"/>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="m518.6 335.2.5.5.3.5.3.5.6 1.2.5 1.1.3.8-.1 1.3q-.4.7-1.3 1.1l-.1.2c-.3.2-.6 0-.9.2l-.4.5-.3.2q-.5.3-1.1.3l-.2.3c-.2.2-1 .2-1.3.4l-.4.2-.3-.2c-.4-.2-1.2-.2-1.3-.4l-.2-.3-1.2-.3s-.2 0-.3-.2l-.4-.5c-.3-.2-.6 0-.8-.2l-.2-.2q-.9-.4-1.2-1.1l-.1-1.3.2-.8.5-1.1.7-1.2q0-.3.3-.5 0-.3.3-.5l.4-.5"/>
+ <g id="sv-c">
+ <g fill-rule="evenodd">
+ <path fill="#fff" d="M487.4 293.6c-1.5-3.7-3-11.3-3-13 .3-7.1.2-9.3.9-16.5l7.3 8.3c-.2 2.8-.2 3.7 0 5.5.1.7.5 3.9 1 5.1z"/>
+ <path fill="#00209f" d="M493.6 283c-.5-1.3-.9-4.5-1-5.1-.2-1.8-.2-2.7 0-5.5l4.5 5zm-18.6 7-.3-4.4c0-5.1-.6-8 0-13.4.4-4.2 1.5-9.8 1.3-14.4q0-2 .2-3.9l9 10.1c-.6 7.3-.5 9.5-.8 16.6 0 1.7 1.5 9.3 3 13l-2 3.2zm6.3 13.7c-.6-1-1-3.9-1.2-4.5-.3-1.5-.3-2.3-.2-5l5 3.3zm-14.3 24a5 5 0 0 1-1.8-2.2c-.7-1.8-.5-1.7-1-3.6l-.5-3.4c-.2-1.2-1.8-4.8-1.8-6.2-.2-4.8-1.8-8-1.4-13.2.3-4 1.2-9.4.7-13.5l.1-3.6 10.3 6.7c-.4 6.8-.2 8.8-.2 15.4 0 1.6 1.3 8.1 3 11zm17 3.8c1.9 1.7 5.4 2.6 6 3 1.2 1 3 2.3 6.3 2.4 2.3.2 3.3-.4 5.7-.7 2.8-.3-.3.1 2.3-.5 1.4-.3 1.4-.5 3.2-1 1.3-.3 2.7-.6 3.5-1.8q.5-.5.6-1.4h1.8c.2.5-.3 1.5-.5 1.8l-.5.7c-.2.6-.2.4-.7.9l-.8.6q-.5.5-1.1.7c-1.8.3-2.5.7-4.2 1.1-1.6.5-.7.4-2 .7l-2.4.7-2.4.6c-2.9.7-5.7.5-8.6.3-1.1 0-4-.7-5-1.4-1.8-1.2-5.7-1.7-7.4-2.9-.3-.2-1.4-.7-1.6-1-1.7-1.3-3-1.7-4.8-2.8z"/>
+ <path fill="#00209f" d="M497.7 331.5h14q-.2.9-.7 1.5-1.4 1.4-3.5 1.7c-1.4.4-2.9-.4-4.4-.4-3.7-1.1-4.1-2.3-5.4-2.8"/>
+ <path fill="#fff" d="M497.7 331.5c1.3.6 2 1.7 5.4 2.8 1.3 0 2.8.6 4 .6-1.5.3-1.5.5-2.8.8-2.6.6.5.2-2.3.5-2.4.3-3.4 1-5.7.8a11 11 0 0 1-6.3-2.5c-.6-.4-4.1-1.3-6-3z"/>
+ </g>
+ <g fill="none" stroke-miterlimit="2.6" stroke-width=".2">
+ <path stroke="#022743" d="M476.6 259.7s1.7 15 7.5 14.4"/>
+ <path stroke="#022847" d="M484.2 274c-3 .2-4.9-3.5-6-7a46 46 0 0 1-1.5-7.3"/>
+ <path stroke="#032b4c" d="M484.2 274c-3-.1-4.9-3.8-5.8-7a44 44 0 0 1-1.7-7.4"/>
+ <path stroke="#032d4f" d="M484.2 274c-2.9-.3-4.9-4.1-5.8-7.2a48 48 0 0 1-1.7-7.2"/>
+ <path stroke="#032f53" d="M484.2 273.9c-2.9-.5-4.9-4.4-5.8-7.2a43 43 0 0 1-1.7-7.2"/>
+ <path stroke="#043258" d="M484.2 273.8c-3-.6-4.9-4.6-5.7-7.1-1.1-3.2-1.8-7.1-1.9-7.2"/>
+ <path stroke="#04345b" d="M484.2 273.8c-2.9-.9-4.9-4.9-5.6-7.2a46 46 0 0 1-2-7.2"/>
+ <path stroke="#04365e" d="M484.3 273.7c-3-1-5-5-5.7-7.3a49 49 0 0 1-1.9-7"/>
+ <path stroke="#043862" d="M484.3 273.7c-3-1.2-5-5.4-5.6-7.3a48 48 0 0 1-2-7.1"/>
+ <path stroke="#053b67" d="M484.3 273.6c-3-1.3-5-5.6-5.6-7.3-1-2.8-2-6.8-2-7"/>
+ <path stroke="#053d6a" d="M484.3 273.6c-3-1.6-5-6-5.5-7.4a50 50 0 0 1-2.1-7"/>
+ <path stroke="#053f6e" d="M484.3 273.5c-3-1.7-5-6.2-5.4-7.4a46 46 0 0 1-2.2-7"/>
+ <path stroke="#064172" d="M484.4 273.5c-3-2-5-6.4-5.5-7.5a66 66 0 0 1-2.2-7"/>
+ <path stroke="#00209f" d="M476.7 259a47 47 0 0 0 2.3 6.9c.3.8 2.4 5.4 5.4 7.5"/>
+ <path stroke="#022743" d="M476.9 256.3s4.8 12 8 10.6"/>
+ <path stroke="#022a49" d="M484.8 266.9c-1.3.5-3.3-1.8-5-4.6l-3-6"/>
+ <path stroke="#032d4f" d="M484.8 266.8c-1.2.5-3.2-1.8-4.9-4.6l-3-6"/>
+ <path stroke="#033054" d="M484.8 266.8c-1 .4-3.2-1.7-4.9-4.7l-3-5.9"/>
+ <path stroke="#043359" d="M484.8 266.8c-.8.3-3.1-1.7-4.8-4.8-2-3.4-3-5.8-3-5.8"/>
+ <path stroke="#043760" d="M484.9 266.7c-.7.3-3.1-1.7-4.8-4.8l-3.1-5.8"/>
+ <path stroke="#053a65" d="M484.9 266.7c-.6.3-3-1.7-4.8-4.9l-3.2-5.8"/>
+ <path stroke="#053d6a" d="M484.9 266.7c-.4.2-3-1.6-4.7-5L477 256"/>
+ <path stroke="#064171" d="M484.9 266.7c-.2 0-2.9-1.6-4.7-5L477 256"/>
+ <path stroke="#00209f" d="M477 255.9s1 1.4 3.3 5.7a14 14 0 0 0 4.5 5m8 12.1 3.8-.7m-4-3.1 4.1 2.2"/>
+ <path stroke="#064171" d="m492.5 275 4.2 2"/>
+ <path stroke="#053e6c" d="m492.5 275.2 4.2 2"/>
+ <path stroke="#053b67" d="m492.5 275.4 4.2 1.8"/>
+ <path stroke="#043862" d="m492.6 275.6 4.2 1.6"/>
+ <path stroke="#04355c" d="m492.6 275.8 4.2 1.4"/>
+ <path stroke="#043258" d="m492.6 276 4.3 1.2"/>
+ <path stroke="#032f53" d="m492.6 276.1 4.3 1.2"/>
+ <path stroke="#032c4d" d="m492.6 276.3 4.4 1"/>
+ <path stroke="#022a49" d="m492.6 276.5 4.4.9"/>
+ <path stroke="#064171" d="m492.8 278.5 3.9-.5"/>
+ <path stroke="#053e6c" d="m492.8 278.3 4-.4"/>
+ <path stroke="#053b67" d="m492.8 278.1 4-.3"/>
+ <path stroke="#043862" d="m492.8 278 4-.2"/>
+ <path stroke="#04355c" d="M492.8 277.7h4"/>
+ <path stroke="#043258" d="m492.8 277.5 4.1.2"/>
+ <path stroke="#032f53" d="m492.8 277.3 4.2.3"/>
+ <path stroke="#032c4d" d="m492.7 277.1 4.3.4"/>
+ <path stroke="#022a49" d="m492.7 276.9 4.4.6"/>
+ <path stroke="#022743" d="m492.7 276.7 4.4.7m-22.1.4s.2 3.2.9 4.5c1 1.9 3.9 4.7 7.2 6.8"/>
+ <path stroke="#022847" d="M483.2 289.1a27 27 0 0 1-5.5-4.6l-1.7-2.3c-.7-1.4-1-4.5-1-4.5"/>
+ <path stroke="#032b4c" d="M483.3 289.1a27 27 0 0 1-5.4-4.7 9 9 0 0 1-1.7-2.3c-.8-1.4-1.2-4.5-1.2-4.5"/>
+ <path stroke="#032d4f" d="M483.3 289.1a31 31 0 0 1-5.3-4.7l-1.7-2.4c-.8-1.5-1.3-4.5-1.3-4.5"/>
+ <path stroke="#032f53" d="M483.4 289a31 31 0 0 1-5.3-4.7l-1.7-2.4c-.8-1.5-1.4-4.4-1.4-4.4"/>
+ <path stroke="#043258" d="M483.5 289c-2.1-1.3-4-3.5-5.3-4.8a10 10 0 0 1-1.6-2.4c-1-1.5-1.6-4.4-1.6-4.4"/>
+ <path stroke="#04345b" d="M483.6 289c-2.1-1.4-4-3.6-5.3-4.9l-1.6-2.3a21 21 0 0 1-1.7-4.5"/>
+ <path stroke="#04365e" d="M483.6 289c-2-1.4-4-3.7-5.1-5l-1.7-2.3c-1-1.7-1.8-4.5-1.8-4.5"/>
+ <path stroke="#043862" d="M483.7 289c-2-1.4-4-3.8-5.1-5l-1.6-2.4a26 26 0 0 1-2-4.5"/>
+ <path stroke="#053b67" d="M483.8 289c-2-1.5-4-4-5-5.1l-1.7-2.4c-1.1-1.8-2-4.5-2-4.5"/>
+ <path stroke="#053d6a" d="M483.9 289c-2-1.5-4-4-5-5.2l-1.7-2.4c-1-1.8-2.1-4.5-2.1-4.5"/>
+ <path stroke="#053f6e" d="M484 289c-2-1.5-4-4.2-5-5.3l-1.7-2.4-2.2-4.4"/>
+ <path stroke="#064172" d="M484 289c-2-1.6-3.9-4.3-4.9-5.4l-1.6-2.4-2.4-4.4"/>
+ <path stroke="#00209f" d="M475 276.7s3 5.3 4.3 6.8c1 1 2.8 4 4.8 5.5"/>
+ <path stroke="#011d33" d="m475.2 290 10.2 6.6 2-3-1-2.7"/>
+ <path stroke="#011e34" d="m475.2 289.9 10.2 6.5h.1l1.7-3s0-.3-.3-.7l-.6-1.7"/>
+ <path stroke="#022037" d="M475.2 289.9c2.9 1.9 4.1 2.7 10.2 6.4l.1-.1 1.6-2.9-.2-.7-.6-1.6"/>
+ <path stroke="#022139" d="M475.2 289.9c2.8 1.8 4.3 2.8 10.2 6.3l.1-.1 1.5-2.9-.2-.7-.5-1.5"/>
+ <path stroke="#02223b" d="M475.2 289.8c2.7 1.8 4.5 2.9 10.2 6.3l.1-.2 1.4-2.8-.1-.7-.5-1.4"/>
+ <path stroke="#02233d" d="M475.3 289.8c2.5 1.7 4.6 3 10.1 6.1h.1c0-.3 1.3-2.9 1.3-3l-.1-.5-.4-1.5"/>
+ <path stroke="#022540" d="M475.3 289.8c2.4 1.6 4.7 3 10.2 6v-.1l1.2-2.8v-.6l-.4-1.3"/>
+ <path stroke="#022541" d="M475.3 289.8c2.3 1.6 5 3 10.2 5.9v-.2l1.1-2.8v-.5l-.4-1.3"/>
+ <path stroke="#022743" d="M475.3 289.8a110 110 0 0 0 10.2 5.8v-.2l1-2.8v-.5l-.3-1.2"/>
+ <path stroke="#022847" d="M475.3 289.7a93 93 0 0 0 10.2 5.8v-.2c0-.3 1-2.8 1-2.8v-.5q-.4-.5-.3-1"/>
+ <path stroke="#022a49" d="M475.3 289.7a81 81 0 0 0 10.2 5.6v-.1c0-.4.8-2.8.8-2.8s.2-.1 0-.4v-1"/>
+ <path stroke="#032a4a" d="M475.3 289.7a80 80 0 0 0 10.2 5.5v-.2l.7-2.7s.2-.1 0-.4v-1"/>
+ <path stroke="#032b4c" d="M475.4 289.7a68 68 0 0 0 10 5.4l.2-.2.5-2.7s.2-.1.1-.4v-.8"/>
+ <path stroke="#032d4f" d="M475.4 289.7a62 62 0 0 0 10 5.3l.2-.2.4-2.8s.3 0 .2-.3v-.7"/>
+ <path stroke="#032e50" d="M475.4 289.7c1.7 1 6 3.6 10.1 5.2v-.2l.4-2.7s.3 0 .2-.3q-.1-.3.1-.7"/>
+ <path stroke="#032f53" d="M475.4 289.6a54 54 0 0 0 10.1 5.1v-.2l.3-2.7.2-.2q-.1-.3.2-.6"/>
+ <path stroke="#033156" d="M475.4 289.6c1.5 1 6.3 3.8 10.1 5v-.2l.2-2.7s.4 0 .3-.2 0-.2.1-.6"/>
+ <path stroke="#043258" d="M475.4 289.6a45 45 0 0 0 10.1 4.9l.1-.2v-2.7s.4 0 .3-.2l.3-.4"/>
+ <path stroke="#043359" d="M475.4 289.6c1.3.9 6.7 4 10.1 4.7l.1-.2-.1-2.6s.4 0 .3-.1c0-.3.2-.1.3-.4"/>
+ <path stroke="#04355c" d="M475.4 289.6c1.2.8 6.8 4 10.1 4.6l.1-.2-.3-2.6.5-.1c-.1-.3.2 0 .3-.4"/>
+ <path stroke="#04365e" d="M475.4 289.6c1.1.7 7 4 10.1 4.5l.1-.2c0-.7-.3-2.6-.4-2.6h.5c0-.3.2 0 .4-.3"/>
+ <path stroke="#043760" d="M475.4 289.6c1 .6 7.2 4.1 10.1 4.4l.1-.3c0-.6-.4-2.5-.5-2.6 0 0 .6.2.5 0 0-.1.3.2.5-.1"/>
+ <path stroke="#043862" d="M475.4 289.6c1 .5 7.3 4.2 10.1 4.3l.2-.3-.7-2.6s.6.2.5 0c0-.1.4.3.6 0"/>
+ <path stroke="#053a65" d="M475.5 289.5c.8.5 7.4 4.3 10 4.2l.2-.2c0-.8-.7-2.6-.8-2.6s.6.2.6 0c0 0 .3.4.6 0"/>
+ <path stroke="#053b67" d="M475.5 289.5c.7.5 7.6 4.4 10 4.1l.2-.3c0-.7-.8-2.4-.9-2.5l.6.1c0-.1.5.3.7 0"/>
+ <path stroke="#053c68" d="M475.5 289.5c.6.4 7.8 4.4 10 4l.2-.3a6 6 0 0 0-1-2.5l.7.1c0-.1.4.4.7.1"/>
+ <path stroke="#053e6c" d="M475.5 289.5c.5.3 8 4.5 10 3.9l.2-.3c0-.8-1-2.5-1.1-2.5l.7.1s.5.6.8.3"/>
+ <path stroke="#053f6e" d="M475.5 289.5c.4.2 8 4.6 10 3.8l.2-.4c0-.8-1.1-2.4-1.2-2.5l.7.3s.6.6.9.2"/>
+ <path stroke="#053f6f" d="M475.5 289.5c.3.2 8.2 4.6 10 3.6l.2-.3c0-.9-1.2-2.4-1.3-2.5l.7.3s.6.6 1 .4"/>
+ <path stroke="#064171" d="M475.5 289.4c.2.2 8.4 4.8 10 3.6l.2-.3c0-1-1.3-2.4-1.4-2.5l.8.3s.6.7 1 .4"/>
+ <path stroke="#064374" d="M475.5 289.4c.1 0 8.6 4.9 10 3.5l.2-.3c0-1-1.4-2.4-1.6-2.5l1 .3s.6.8 1 .6"/>
+ <path stroke="#00209f" d="M475.6 289.4s9.7 5.5 10.1 3c0-1-1.6-2.4-1.6-2.4l.9.3s.6 1 1 .6"/>
+ <path stroke="#011d33" d="m474.4 315.1-7.5 12.6a5 5 0 0 1-1.8-2.2c-.6-1.7-.5-1.7-1-3.6l-.4-3.4c-.3-1.2-1.9-4.8-2-6.2"/>
+ <path stroke="#011d33" d="M461.8 312.3c0 1.4 1.6 5 1.9 6l.5 3.5c.4 1.9.3 1.8 1 3.6a5 5 0 0 0 1.7 2.2l7.5-12.5"/>
+ <path stroke="#011e34" d="M461.8 312.3c0 1.4 1.6 5 1.8 6l.6 3.4c.4 1.8.3 1.8 1 3.6.2.8 1.2 1.8 1.7 2.1l7.5-12.3"/>
+ <path stroke="#011e34" d="M461.8 312.3c0 1.4 1.6 4.9 1.8 6l.6 3.3c.4 1.8.3 1.8 1 3.5a6 6 0 0 0 1.7 2.2l7.5-12.2"/>
+ <path stroke="#011f36" d="M461.8 312.3c0 1.3 1.6 4.8 1.8 5.9l.6 3.3c.4 1.8.3 1.8 1 3.5a6 6 0 0 0 1.7 2.1l7.5-12"/>
+ <path stroke="#011f36" d="M461.8 312.3c0 1.3 1.6 4.8 1.8 5.9l.6 3.3c.4 1.7.3 1.7 1 3.4.2.8 1.2 1.8 1.7 2.1l7.5-11.9"/>
+ <path stroke="#022037" d="M461.8 312.3c0 1.3 1.5 4.7 1.8 5.8l.6 3.3c.4 1.7.3 1.7 1 3.4.2.8 1.2 1.7 1.7 2 .2.1 7.4-11.6 7.5-11.7"/>
+ <path stroke="#022037" d="M461.8 312.3c0 1.3 1.5 4.6 1.8 5.7l.6 3.3c.4 1.7.4 1.7 1 3.3.2.8 1.2 1.8 1.7 2.1.2 0 7.3-11.5 7.5-11.6"/>
+ <path stroke="#022139" d="M461.8 312.3c0 1.3 1.5 4.6 1.8 5.7l.6 3.2c.4 1.7.4 1.7 1 3.3.3.8 1.2 1.7 1.7 2 .2.1 7.3-11.3 7.5-11.4"/>
+ <path stroke="#022139" d="M461.8 312.3c0 1.3 1.5 4.6 1.8 5.6l.6 3.2c.4 1.7.4 1.7 1 3.3a5 5 0 0 0 1.7 2c.3 0 7.3-11.2 7.5-11.3"/>
+ <path stroke="#022139" d="M461.8 312.3c0 1.3 1.5 4.5 1.8 5.6l.6 3.1c.5 1.7.4 1.7 1 3.3.3.8 1.2 1.7 1.7 2 .3 0 7.2-11 7.5-11.2"/>
+ <path stroke="#02223b" d="M461.8 312.3c0 1.3 1.5 4.4 1.8 5.5l.6 3c.5 1.8.4 1.8 1 3.3a5 5 0 0 0 1.7 2c.3.1 7.2-10.9 7.5-11"/>
+ <path stroke="#02223b" d="M461.8 312.3c0 1.2 1.5 4.4 1.8 5.4l.6 3.1c.5 1.7.4 1.7 1 3.2a5 5 0 0 0 1.7 2c.3.1 7.2-10.8 7.5-10.9"/>
+ <path stroke="#02233d" d="M461.8 312.3c0 1.2 1.5 4.3 1.8 5.4l.6 3c.5 1.7.4 1.7 1 3.2a5 5 0 0 0 1.8 2c.3 0 7-10.6 7.4-10.8"/>
+ <path stroke="#02233d" d="M461.8 312.3c0 1.2 1.4 4.3 1.8 5.3l.6 3 1 3.2a7 7 0 0 0 1.8 2c.3 0 7-10.6 7.4-10.7"/>
+ <path stroke="#02233e" d="M461.8 312.3c0 1.2 1.4 4.3 1.8 5.3l.6 3 1 3a6 6 0 0 0 1.8 2c.3.1 7-10.3 7.4-10.5"/>
+ <path stroke="#02233e" d="M461.8 312.3c0 1.1 1.4 4.2 1.8 5.2l.6 3 1 3a5 5 0 0 0 1.8 2c.4 0 7-10.3 7.4-10.4"/>
+ <path stroke="#022540" d="M461.8 312.2c0 1.2 1.4 4.2 1.8 5.3l.6 2.9 1 3a5 5 0 0 0 1.8 2c.4 0 7-10.1 7.4-10.3"/>
+ <path stroke="#022540" d="M461.8 312.2c0 1.2 1.4 4.2 1.8 5.2l.6 2.9 1 3c.4.7 1.3 1.5 1.8 1.8.4.2 7-9.8 7.4-10"/>
+ <path stroke="#022540" d="M461.8 312.2c0 1.2 1.4 4.1 1.8 5.1l.7 2.9c.4 1.5.4 1.6 1 3a5 5 0 0 0 1.7 1.8c.4.1 7-9.7 7.4-9.9"/>
+ <path stroke="#022541" d="M461.8 312.2c0 1.2 1.4 4 1.8 5l.7 3 1 2.9a5 5 0 0 0 1.7 1.8c.4.1 6.9-9.6 7.4-9.8"/>
+ <path stroke="#022541" d="M461.8 312.2c0 1.1 1.4 4 1.8 5l.7 2.8 1 3c.3.6 1.2 1.5 1.7 1.8.5 0 6.9-9.5 7.4-9.7"/>
+ <path stroke="#022743" d="M461.8 312.2c0 1.1 1.4 4 1.8 5l.7 2.7c.4 1.5.5 1.5 1 2.9a6 6 0 0 0 1.7 1.8c.5.1 6.8-9.3 7.4-9.5"/>
+ <path stroke="#022743" d="M461.8 312.2c0 1.1 1.4 4 1.8 5l.7 2.6 1 3a5 5 0 0 0 1.7 1.6c.5.2 6.8-9 7.4-9.3"/>
+ <path stroke="#022845" d="M461.8 312.2c0 1.1 1.4 3.9 1.8 4.8l.7 2.8 1 2.8a5 5 0 0 0 1.7 1.7c.6.2 6.8-9 7.4-9.2"/>
+ <path stroke="#022845" d="M461.8 312.2c0 1.1 1.4 3.8 1.8 4.8l.7 2.7c.4 1.4.5 1.4 1 2.7a5 5 0 0 0 1.7 1.8c.6.2 6.7-8.9 7.4-9"/>
+ <path stroke="#022847" d="M461.8 312.2c0 1 1.3 3.7 1.8 4.7l.7 2.7 1 2.7a5 5 0 0 0 1.7 1.7c.6.2 6.7-8.7 7.4-8.9"/>
+ <path stroke="#022847" d="M461.8 312.2c0 1 1.3 3.7 1.8 4.6l.7 2.7 1.1 2.7a5 5 0 0 0 1.6 1.7c.7.2 6.7-8.6 7.4-8.8"/>
+ <path stroke="#022847" d="M461.8 312.2c0 1 1.3 3.7 1.8 4.6l.7 2.6 1.1 2.7a5 5 0 0 0 1.6 1.7c.7.1 6.7-8.4 7.4-8.7"/>
+ <path stroke="#022a49" d="M461.8 312.2c0 1 1.3 3.6 1.8 4.6l.7 2.5 1.1 2.7q.7 1 1.7 1.6c.6.2 6.6-8.2 7.3-8.5"/>
+ <path stroke="#022a49" d="M461.8 312.2c0 1 1.3 3.5 1.8 4.5l.7 2.5 1.1 2.6q.7 1.1 1.7 1.6c.7.3 6.5-8 7.3-8.3"/>
+ <path stroke="#032a4a" d="M461.8 312.2c0 1 1.3 3.5 1.8 4.4l.7 2.5c.5 1.3.5 1.4 1.2 2.6q.6 1.1 1.6 1.6c.7.2 6.5-8 7.3-8.2"/>
+ <path stroke="#032a4a" d="M461.8 312.2c0 1 1.3 3.4 1.7 4.4l.8 2.4 1.2 2.6a5 5 0 0 0 1.6 1.6c.7.2 6.5-7.8 7.3-8.1"/>
+ <path stroke="#032b4c" d="M461.8 312.2c0 1 1.2 3.4 1.7 4.3l.8 2.4 1.2 2.6q.6 1 1.6 1.5c.7.3 6.4-7.6 7.3-8"/>
+ <path stroke="#032b4c" d="M461.8 312.2c0 1 1.2 3.3 1.7 4.3q.5 1.1.8 2.3l1.2 2.6q.6.9 1.6 1.5c.8.2 6.4-7.5 7.3-7.8"/>
+ <path stroke="#032c4d" d="M461.8 312.2c0 1 1.2 3.3 1.7 4.2l.8 2.4 1.2 2.4q.6 1 1.6 1.6c.8.2 6.4-7.4 7.3-7.7"/>
+ <path stroke="#032c4d" d="M461.8 312.2c0 .9 1.2 3.2 1.7 4.1l.9 2.4c.4 1.2.5 1.3 1.1 2.4a5 5 0 0 0 1.6 1.5c.8.3 6.3-7.2 7.3-7.5"/>
+ <path stroke="#032c4d" d="M461.8 312.2a13 13 0 0 0 1.7 4l.9 2.4c.4 1.2.5 1.2 1.1 2.4a5 5 0 0 0 1.6 1.4c.9.4 6.3-7 7.3-7.3"/>
+ <path stroke="#032d4f" d="M461.8 312.2c0 .9 1.2 3.1 1.7 4l.9 2.3c.4 1.2.5 1.3 1.1 2.3q.6 1 1.6 1.5c.9.3 6.3-6.8 7.3-7.2"/>
+ <path stroke="#032d4f" d="M461.8 312.2c0 .8 1.2 3 1.7 4l.9 2.2c.4 1.2.6 1.2 1.1 2.4a5 5 0 0 0 1.6 1.4c1 .3 6.3-6.7 7.3-7.1"/>
+ <path stroke="#032e50" d="M461.8 312.2c0 .8 1.2 3 1.7 4l.9 2.1c.4 1.2.6 1.2 1.1 2.3a5 5 0 0 0 1.6 1.5c1 .2 6.3-6.6 7.3-7"/>
+ <path stroke="#032e50" d="M461.8 312.2c0 .8 1.1 3 1.7 3.8l.9 2.2c.4 1.2.6 1.3 1.1 2.3a5 5 0 0 0 1.6 1.4c1 .3 6.2-6.4 7.3-6.8"/>
+ <path stroke="#032f53" d="M461.8 312.2c0 .8 1.1 3 1.7 3.8l.9 2.1c.4 1.1.6 1.2 1.2 2.3a5 5 0 0 0 1.5 1.4c1 .3 6.2-6.3 7.3-6.7"/>
+ <path stroke="#032f53" d="M461.8 312.2a11 11 0 0 0 1.7 3.7l.9 2.2 1.2 2.1a5 5 0 0 0 1.5 1.4c1 .3 6.2-6 7.3-6.5"/>
+ <path stroke="#033054" d="M461.8 312.2a12 12 0 0 0 1.7 3.7l.9 2 1.2 2.2a5 5 0 0 0 1.6 1.4c1 .3 6-6 7.2-6.4"/>
+ <path stroke="#033054" d="M461.8 312.2c0 .7 1 2.7 1.7 3.6l1 2 1 2.2a5 5 0 0 0 1.7 1.3c1 .4 6-5.8 7.2-6.2"/>
+ <path stroke="#033054" d="M461.8 312.2c0 .7 1 2.7 1.7 3.6l1 2c.4 1 .6 1.1 1.1 2a5 5 0 0 0 1.6 1.4c1 .3 6-5.7 7.2-6.1"/>
+ <path stroke="#033156" d="M461.8 312.2c0 .7 1 2.7 1.7 3.5l1 2c.3 1 .6 1.1 1.1 2l1.5 1.4c1.1.3 6-5.6 7.3-6"/>
+ <path stroke="#033156" d="M461.8 312.2c0 .7 1 2.6 1.7 3.4l1 2c.3 1 .6 1.1 1.1 2l1.5 1.3c1.2.3 6-5.3 7.3-5.8"/>
+ <path stroke="#043258" d="M461.8 312.2c0 .7 1 2.6 1.7 3.4l1 1.9c.3 1 .6 1 1.2 2q.6.8 1.4 1.3c1.2.3 6-5.2 7.3-5.7"/>
+ <path stroke="#043258" d="M461.8 312.2a8 8 0 0 0 1.7 3.3l1 2c.3.9.6 1 1.2 2q.6.8 1.4 1.1c1.2.4 6-5 7.3-5.5"/>
+ <path stroke="#043359" d="M461.8 312.2c0 .6 1 2.4 1.7 3.3l1 1.8c.4 1 .6 1.1 1.2 2q.6.8 1.4 1.2c1.3.3 6-5 7.3-5.4"/>
+ <path stroke="#043359" d="M461.8 312.2c0 .6 1 2.4 1.7 3.2l1 1.9c.4.8.6 1 1.2 1.8q.7.8 1.5 1.2c1.2.4 5.8-4.7 7.2-5.2"/>
+ <path stroke="#04345b" d="M461.8 312.2c0 .6 1 2.4 1.7 3.1l1 1.9c.4.9.7 1 1.2 1.8q.7.8 1.5 1.2c1.2.4 5.8-4.6 7.2-5.1"/>
+ <path stroke="#04345b" d="M461.8 312.2c0 .6 1 2.3 1.7 3l1 1.9c.4.8.7 1 1.2 1.8q.7.8 1.5 1.2c1.3.4 5.8-4.5 7.2-5"/>
+ <path stroke="#04345b" d="M461.8 312.2c0 .6 1 2.2 1.7 3l1 1.8c.4.9.7 1 1.2 1.8q.7.8 1.5 1.1c1.3.4 5.8-4.3 7.2-4.8"/>
+ <path stroke="#04355c" d="M461.8 312.2c0 .5 1 2.2 1.7 3l1 1.7c.4.8.7 1 1.2 1.8q.7.7 1.5 1c1.3.5 5.7-4.1 7.2-4.6"/>
+ <path stroke="#04355c" d="M461.8 312.2c0 .5 1 2.1 1.7 3l1 1.6c.4.8.7 1 1.3 1.7q.6.9 1.4 1.1c1.3.5 5.7-4 7.2-4.5"/>
+ <path stroke="#04365e" d="M461.8 312.2c0 .5 1 2.1 1.7 2.9l1 1.6c.4.9.7 1 1.3 1.7q.6.8 1.4 1.1c1.4.4 5.7-3.9 7.2-4.4"/>
+ <path stroke="#04365e" d="M461.8 312.2c0 .5 1 2 1.7 2.8l1 1.6c.4.8.7 1 1.3 1.7q.6.7 1.4 1c1.4.5 5.6-3.7 7.2-4.2"/>
+ <path stroke="#043760" d="M461.8 312.2c0 .5 1 2 1.7 2.8l1 1.5c.4.8.7 1 1.3 1.7q.6.6 1.4 1c1.4.4 5.6-3.6 7.2-4.1"/>
+ <path stroke="#043760" d="M461.8 312.2c0 .5 1 2 1.7 2.7l1 1.6c.4.7.7.8 1.3 1.6q.6.6 1.4 1c1.5.4 5.6-3.5 7.2-4"/>
+ <path stroke="#043862" d="M461.8 312.2c0 .5 1 1.9 1.7 2.6l1 1.6c.4.7.7.9 1.3 1.5q.6.6 1.4 1c1.5.5 5.5-3.3 7.2-3.9"/>
+ <path stroke="#043862" d="M461.8 312.2c0 .4 1 1.8 1.7 2.6l1 1.5c.4.7.7.9 1.3 1.5l1.4 1c1.5.4 5.5-3.2 7.2-3.8"/>
+ <path stroke="#043862" d="M461.8 312.2c0 .4.9 1.8 1.7 2.5l1 1.5c.4.7.8.8 1.3 1.5l1.4 1c1.5.4 5.5-3 7.2-3.7"/>
+ <path stroke="#043963" d="M461.8 312.2c0 .4.9 1.7 1.7 2.4l1 1.5c.4.7.8.8 1.3 1.5l1.4.9c1.5.5 5.5-2.8 7.2-3.5"/>
+ <path stroke="#043963" d="M461.8 312.2c0 .4.9 1.7 1.7 2.4l1 1.4c.4.7.8.8 1.3 1.5l1.4.9c1.6.5 5.5-2.7 7.2-3.4"/>
+ <path stroke="#053a65" d="M461.8 312.2c0 .4.9 1.6 1.7 2.3l1 1.4 1.3 1.4 1.4 1c1.6.4 5.4-2.6 7.2-3.3"/>
+ <path stroke="#053a65" d="M461.8 312.2c0 .3.8 1.6 1.7 2.3l1 1.3c.5.7.8.8 1.4 1.4q.5.6 1.4.9c1.6.5 5.3-2.4 7.1-3"/>
+ <path stroke="#053b67" d="M461.8 312.2c0 .3.8 1.5 1.7 2.2l1 1.3 1.4 1.4q.6.6 1.4.8c1.6.5 5.3-2.2 7.1-2.9"/>
+ <path stroke="#053b67" d="M461.8 312.2c0 .3.8 1.5 1.7 2.1q.4.8 1 1.3c.5.7.8.8 1.4 1.4l1.4.8c1.6.5 5.2-2 7.1-2.8"/>
+ <path stroke="#053c68" d="M461.8 312.2c0 .3.8 1.4 1.7 2.1l1 1.3 1.4 1.3q.6.5 1.4.7c1.7.6 5.2-1.9 7.1-2.6"/>
+ <path stroke="#053c68" d="M461.8 312.2c0 .3.8 1.4 1.7 2l1 1.3 1.4 1.2 1.4.8c1.7.5 5.2-1.8 7.1-2.5"/>
+ <path stroke="#053c68" d="M461.8 312.2a6 6 0 0 0 1.7 2l1 1.2 1.4 1.2 1.4.8c1.7.5 5.1-1.7 7.1-2.4"/>
+ <path stroke="#053d6a" d="M461.8 312.2c0 .2.8 1.2 1.7 2l1 1 1.4 1.3 1.4.8c1.8.5 5.1-1.5 7.1-2.3"/>
+ <path stroke="#053d6a" d="M461.8 312.2a6 6 0 0 0 1.7 1.9l1 1.1 1.4 1.1 1.4.8c1.8.5 5.1-1.3 7.1-2"/>
+ <path stroke="#053e6c" d="M461.8 312.2c0 .2.7 1.1 1.7 1.8l1 1.1 1.5 1.1 1.3.8c1.8.5 5.1-1.2 7.1-2"/>
+ <path stroke="#053e6c" d="M461.8 312.2c0 .2.7 1.1 1.6 1.8l1.1 1 1.5 1.1 1.3.7c1.8.6 5-1 7.1-1.8"/>
+ <path stroke="#053f6e" d="M461.8 312.2c0 .1.7 1 1.6 1.7l1.1 1 1.5 1 1.3.8c1.8.6 5-1 7.1-1.7"/>
+ <path stroke="#053f6e" d="M461.8 312.2c0 .1.7 1 1.6 1.6l1.2 1q.6.7 1.4 1 .6.5 1.3.7c1.9.6 5-.7 7.1-1.5"/>
+ <path stroke="#053f6f" d="M461.8 312.2c0 .1.7 1 1.6 1.6l1.2 1 1.4 1 1.3.6c2 .5 5-.6 7.1-1.4"/>
+ <path stroke="#053f6f" d="M461.8 312.2c0 .1.7.9 1.6 1.5l1.2 1 1.4 1 1.3.6c2 .5 5-.5 7.1-1.3"/>
+ <path stroke="#053f6f" d="M461.8 312.2q.1.3 1.6 1.5l1.2.9 1.4 1 1.3.5c2 .6 5-.3 7.1-1"/>
+ <path stroke="#064171" d="M461.8 312.2s.7.8 1.6 1.4l1.2.9 1.5.9 1.2.6c2 .6 4.9-.2 7.1-1"/>
+ <path stroke="#064171" d="m461.8 312.2 1.6 1.4 1.2.8 1.5.9 1.3.5c2 .6 4.8 0 7-.8"/>
+ <path stroke="#064172" d="M461.8 312.2s.7.7 1.6 1.3l1.2.8 1.5.8 1.3.6c2 .6 4.7.2 7-.7"/>
+ <path stroke="#064172" d="M461.8 312.1q.1.3 1.6 1.3l1.2.8 1.5.8 1.3.6c2 .6 4.7.3 7-.6"/>
+ <path stroke="#064374" d="M461.8 312.1q0 .3 1.6 1.3l1.2.7 2.8 1.3c2 .6 4.7.5 7-.4"/>
+ <path stroke="#064374" d="M461.8 312.1s.6.6 1.6 1.2l1.2.7 2.8 1.3c2 .6 4.7.6 7-.3"/>
+ <path stroke="#00209f" d="m461.8 312.1 1.6 1.2 1.2.7 1.5.6a12 12 0 0 0 8.3.4m-12.6-2.9s6.5 5.1 12.6 3"/>
+ <path stroke="#022743" d="M461.6 292.2s1.2 8 1.7 9.3c.4 1 3 5.6 6.9 6.7"/>
+ <path stroke="#022a49" d="M461.6 292.2s1.3 8 1.8 9.2c.5 1 2.8 5.4 6.8 6.8"/>
+ <path stroke="#032b4c" d="M461.6 292.1s1.4 8 1.9 9.2a14 14 0 0 0 6.7 6.9"/>
+ <path stroke="#032e50" d="M461.6 292.1s1.5 8 2 9.1 2.5 5 6.6 7"/>
+ <path stroke="#033054" d="M461.6 292.1s1.6 7.9 2 9a15 15 0 0 0 6.7 7"/>
+ <path stroke="#043359" d="M461.6 292.1s1.6 7.8 2.2 9a16 16 0 0 0 6.5 7"/>
+ <path stroke="#04355c" d="M461.6 292s1.7 7.8 2.3 9c.5 1.1 2 4.3 6.4 7"/>
+ <path stroke="#043760" d="M461.7 292s1.7 7.8 2.3 9c.5 1 1.9 4 6.3 7"/>
+ <path stroke="#053a65" d="M461.7 292s1.8 7.7 2.4 8.9c.5 1 1.7 3.8 6.2 7.1"/>
+ <path stroke="#053c68" d="M461.7 292s1.9 7.7 2.5 8.8 1.6 3.5 6.1 7.2"/>
+ <path stroke="#053f6e" d="M461.7 292s2 7.6 2.6 8.8c.5 1 1.4 3.2 6 7.2"/>
+ <path stroke="#064172" d="M461.8 292s2 7.5 2.6 8.7 1.3 3 6 7.2"/>
+ <path stroke="#00209f" d="M461.8 292s2.1 7.5 2.7 8.6 1.1 2.8 5.9 7.3"/>
+ <path stroke="#022743" d="M462 287.2s1.1 11.4 9.3 14.6"/>
+ <path stroke="#022a49" d="M462 287.2c.1 0 .5 3.7 2.2 7.2 1.3 2.8 3.5 5.9 7 7.4"/>
+ <path stroke="#032b4c" d="M462.1 287.2s.5 3.8 2.2 7.2a15 15 0 0 0 7 7.4"/>
+ <path stroke="#032e50" d="M462.1 287.2s.7 3.9 2.3 7.1c1.1 2.3 3.3 5.7 6.9 7.4"/>
+ <path stroke="#033054" d="M462.2 287.2s.7 4 2.3 7c1 2.2 3.2 5.7 6.8 7.5"/>
+ <path stroke="#043359" d="M462.2 287.2c0 .1.8 4 2.4 7 1 2 3.1 5.6 6.7 7.5"/>
+ <path stroke="#04355c" d="M462.2 287.2c0 .1 1 4.2 2.5 7a18 18 0 0 0 6.6 7.4"/>
+ <path stroke="#043760" d="M462.2 287.1c0 .3 1 4.4 2.6 7 .8 1.5 3 5.4 6.5 7.5"/>
+ <path stroke="#053a65" d="M462.2 287.1a30 30 0 0 0 2.6 6.9c.8 1.4 3 5.4 6.5 7.5"/>
+ <path stroke="#053c68" d="M462.3 287.1c0 .3 1.2 4.5 2.6 6.8.7 1.3 2.8 5.4 6.4 7.7"/>
+ <path stroke="#053f6e" d="M462.3 287.1a30 30 0 0 0 2.8 6.8c.6 1 2.6 5.2 6.2 7.6"/>
+ <path stroke="#064172" d="M462.3 287.1a31 31 0 0 0 2.9 6.7c.5.8 2.5 5.2 6 7.7"/>
+ <path stroke="#00209f" d="M462.3 287.1c0 .3 1.6 4.9 3 6.6.4.7 2.4 5.2 6 7.8"/>
+ <path stroke="#022743" d="M462.2 284s2.4 9.2 9 11.5"/>
+ <path stroke="#022847" d="M462.2 284s.9 3.3 3 6.4c1.5 2.2 3.6 4.2 6 5"/>
+ <path stroke="#032a4a" d="M462.2 284s1 3.2 3 6.4c1.6 2.1 3.7 4.3 6 5"/>
+ <path stroke="#032c4d" d="M462.2 284s1 3.1 3.2 6.3c1.5 2.2 3.7 4.4 5.8 5.1"/>
+ <path stroke="#032f53" d="M462.2 283.9s1 3.1 3.3 6.3a15 15 0 0 0 5.7 5.2"/>
+ <path stroke="#033156" d="M462.2 283.9s1 3 3.3 6.2c1.7 2.3 4 4.7 5.7 5.3"/>
+ <path stroke="#043359" d="M462.2 283.8s1 3 3.4 6.2a17 17 0 0 0 5.6 5.4"/>
+ <path stroke="#04355c" d="M462.2 283.8a27 27 0 0 0 9 11.6"/>
+ <path stroke="#043760" d="M462.3 283.8s1 2.9 3.5 6.1a21 21 0 0 0 5.4 5.4"/>
+ <path stroke="#043963" d="M462.3 283.8s1 2.8 3.5 6a23 23 0 0 0 5.4 5.5"/>
+ <path stroke="#053b67" d="M462.3 283.7s1.1 2.8 3.6 6a28 28 0 0 0 5.3 5.6"/>
+ <path stroke="#053e6c" d="M462.3 283.7s1.2 2.7 3.7 6a39 39 0 0 0 5.2 5.6"/>
+ <path stroke="#053f6f" d="M462.3 283.7s1.2 2.7 3.8 5.9a44 44 0 0 0 5.1 5.7"/>
+ <path stroke="#064172" d="M462.3 283.6s1.3 2.7 3.9 6c2 2.5 4.9 5.6 5 5.7"/>
+ <path stroke="#00209f" d="M462.3 283.6s1.3 2.6 3.9 5.8c2.1 2.7 5 5.9 5 5.9m8.7 1.3 4.6.8m-4.1 2.6 4-1.7"/>
+ <path stroke="#064171" d="m479.9 296.7 4.5.7"/>
+ <path stroke="#053e6c" d="m479.9 296.9 4.6.5"/>
+ <path stroke="#053b67" d="m479.9 297 4.6.4"/>
+ <path stroke="#043862" d="m479.9 297.2 4.7.3"/>
+ <path stroke="#04355c" d="M479.9 297.4h4.7"/>
+ <path stroke="#043258" d="M480 297.6h4.6"/>
+ <path stroke="#032f53" d="m480 297.7 4.7-.2"/>
+ <path stroke="#032c4d" d="m480 297.9 4.7-.3"/>
+ <path stroke="#022a49" d="m480 298 4.8-.5"/>
+ <path stroke="#064171" d="m480.3 299.8 4.2-1.6"/>
+ <path stroke="#053e6c" d="m480.3 299.6 4.3-1.5"/>
+ <path stroke="#053b67" d="m480.3 299.5 4.3-1.4"/>
+ <path stroke="#043862" d="m480.3 299.3 4.3-1.3"/>
+ <path stroke="#04355c" d="m480.2 299.1 4.5-1.2"/>
+ <path stroke="#043258" d="m480.2 299 4.5-1.2"/>
+ <path stroke="#032f53" d="m480.2 298.7 4.6-.9"/>
+ <path stroke="#032c4d" d="m480.1 298.6 4.7-.9"/>
+ <path stroke="#022a49" d="m480.1 298.4 4.7-.7"/>
+ <path stroke="#022743" d="m480 298.2 4.9-.6"/>
+ <path stroke="#032b4c" d="m484.2 331.6-2.6.2-9.9-.2"/>
+ <path stroke="#032e50" d="m484.3 331.6-2.7.3-9.8-.2"/>
+ <path stroke="#033054" d="m484.3 331.6-2.8.4c-.5.1-9.6-.3-9.6-.3"/>
+ <path stroke="#043359" d="m484.3 331.7-2.8.5c-.7.1-9.6-.5-9.6-.5"/>
+ <path stroke="#04355c" d="m484.3 331.7-3 .6c-.7.2-9.3-.5-9.3-.5"/>
+ <path stroke="#043760" d="m484.3 331.7-3 .7c-.8.3-9.2-.6-9.2-.6"/>
+ <path stroke="#053a65" d="m484.4 331.8-3.1.8c-1 .2-9.1-.7-9.1-.7"/>
+ <path stroke="#053c68" d="m484.4 331.8-3.1 1c-1.2.2-9-.8-9-.8"/>
+ <path stroke="#053f6e" d="m484.4 331.9-3.2 1c-1.2.3-8.9-.9-8.9-.9"/>
+ <path stroke="#064172" d="M484.4 332s-1.8.7-3.2 1-8.8-1-8.8-1"/>
+ <path stroke="#00209f" d="M472.5 332s7.1 1.4 8.6 1.1 3.3-1.1 3.3-1.1"/>
+ <path stroke="#022a49" d="m486 337 4.8.7 2.7-.2 2.2-.5"/>
+ <path stroke="#032d4f" d="M485.8 337s4.7.7 5 .6l2.7-.1 2-.5"/>
+ <path stroke="#033054" d="M485.5 336.9s4.9.8 5.3.7l2.6-.2 2-.4"/>
+ <path stroke="#043359" d="M485.3 336.7s4.9.9 5.6.8l2.5-.2 1.7-.3"/>
+ <path stroke="#043760" d="M485 336.6s5 1 5.9.8l2.5-.2 1.5-.3"/>
+ <path stroke="#053a65" d="M484.8 336.5s5.1 1 6.1.8l2.4-.2 1.4-.2"/>
+ <path stroke="#053d6a" d="M484.5 336.4s5.3 1 6.4.9c.7-.2 2-.3 2.4-.3l1.2-.2"/>
+ <path stroke="#064171" d="M484.2 336.3s5.4 1.1 6.8.9q1.2-.3 2.2-.3h1.1"/>
+ <path stroke="#022743" d="m486.3 337.2 4.4.6 2.9-.1 2.4-.6"/>
+ <path stroke="#00209f" d="M484 336.2s5.5 1.2 7 .9 3-.3 3-.3m11.8 0 4.3-1.6c2.6-1 3-3.6 3-3.6"/>
+ <path stroke="#00209f" d="m505.5 336 3.1-1.3c3.8-1.4 3.4-3.2 3.4-3.2"/>
+ <path stroke="#053e6c" d="m505.2 336.1 3.4-1.3 1.8-.8c.5-.3 1.2-1 1.3-1.2.4-.5.4-1.3.4-1.3"/>
+ <path stroke="#043862" d="m505 336.3 3.6-1.4 1.8-.7 1.4-1.2c.3-.5.4-1.5.4-1.5"/>
+ <path stroke="#043258" d="m504.7 336.5 4-1.5 1.6-.7 1.5-1.2c.2-.3.5-1.6.5-1.6"/>
+ <path stroke="#032c4d" d="m504.4 336.7 4.2-1.5 1.7-.7 1.6-1.3.6-1.6"/>
+ <path stroke="#053e6c" d="m505.5 336.9 4.6-1.8q1.4-.6 2-1.5c.6-.9.9-2 .9-2"/>
+ <path stroke="#043862" d="m505.1 336.9 5-2c.6-.1 1.7-1 2-1.4.4-.6.7-2 .7-2"/>
+ <path stroke="#043258" d="m504.8 336.9 5.4-2 1.9-1.4c.3-.5.6-2 .6-2"/>
+ <path stroke="#032c4d" d="m504.5 336.9 5.7-2.1 1.8-1.4.7-1.8"/>
+ <path stroke="#022743" d="m504.2 336.9 6-2.3 1.7-1.2.6-1.8"/>
+ <path stroke="#032b4c" d="m511.3 331.6-2.8.2-10.3-.2"/>
+ <path stroke="#032e50" d="m511.3 331.6-2.8.3-10.2-.2"/>
+ <path stroke="#033054" d="m511.3 331.6-2.9.4c-.5.1-10-.3-10-.3"/>
+ <path stroke="#043359" d="m511.3 331.7-3 .5c-.6.1-9.8-.5-9.8-.5"/>
+ <path stroke="#04355c" d="m511.4 331.7-3 .6c-.9.2-9.8-.5-9.8-.5"/>
+ <path stroke="#043760" d="m511.4 331.7-3.1.7c-1 .3-9.7-.6-9.7-.6"/>
+ <path stroke="#053a65" d="m511.4 331.8-3.2.8c-1 .2-9.5-.7-9.5-.7"/>
+ <path stroke="#053c68" d="m511.4 331.8-3.3 1c-1.1.2-9.3-.8-9.3-.8"/>
+ <path stroke="#053f6e" d="m511.4 331.9-3.3 1c-1.3.2-9.2-.9-9.2-.9"/>
+ <path stroke="#064172" d="M511.4 332s-1.9.7-3.3 1c-1.5.3-9.2-1-9.2-1"/>
+ <path stroke="#00209f" d="M499 332s7.5 1.4 9 1.1c1.6-.3 3.5-1.1 3.5-1.1"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="m475 290-.2-3.3c0-5.2-.7-9-.1-14.5.4-4.2 1.5-9.8 1.3-14.4q0-2 .2-3.9l21 23.5M467 327.7a5 5 0 0 1-1.9-2.2c-.6-1.7-.4-1.7-.9-3.6l-.5-3.4c-.2-1.2-1.8-4.8-1.9-6.2-.1-4.8-1.7-8-1.3-13.1.3-4 1.2-9.5.7-13.6l.1-3.6 23.6 15.6m28.5 33.9c.2.5-.3 1.5-.5 1.9l-.5.6c-.2.6-.2.4-.7.9l-.8.6q-.5.5-1.1.7c-1.8.3-2.5.7-4.2 1.1-1.6.5-.8.4-2 .7l-2.4.7-2.4.6c-2.9.7-5.7.5-8.6.3-1.1 0-4-.7-5-1.4-1.8-1.2-5.7-1.7-7.4-2.9-.3-.2-1.4-.7-1.6-1-1.7-1.3-3-1.7-4.8-2.8"/>
+ <g stroke="#000" stroke-miterlimit="2.6" stroke-width=".1">
+ <path fill="#fc0" fill-rule="evenodd" d="m484.9 297.6.6-.8-24-15.6-.4.6zm-23.7-16.7c-.2-1 0-2.1.7-2.3h.8q.5-.1.7.4c.3.8-.7 1.3-1.4 1.6q-.4 0-.7.3l-.1.4.3-.3 1.7-.7c.6-.3.7-1.4.3-1.7s-1.8-.3-2 0q-1 1.1-.6 2.7z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M460.8 281.3c-1 0-2.1.4-2.2 1v.9q0 .5.6.6c.8.2 1.2-.8 1.4-1.6q0-.4.2-.7l.4-.2-.3.3-.5 1.9c-.2.6-1.3.8-1.6.4-.5-.3-.6-1.7-.3-2q1.1-1 2.7-1-.2.4-.4.4z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M460.6 281q-.4.1-.1.6c0 .2.5.3.6.2q.6-.4.4-1-.4-.2-.9.1z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M455.6 277.8s2.5 1 4.5 1c0 0 .1 1.8.5 2.3 0 0-1.8-.3-2.6 0 0 0-1.1-2.4-2.4-3.3z"/>
+ <path fill="none" d="M457.6 279s1 .4 1.8.4c0 0 0 .8.2 1 0 0-.7-.2-1 0 0 0-.4-1-1-1.4z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="m460.8 282.9.6-1.1c0-.2 0 1 .4 1 .5.8.7 2.3.7 2.7-.7.2-1.3.6-2.3.2-.3-.3 0-1 0-1.4z"/>
+ <path fill="none" d="M461.3 282.2v.6c0-.2.3.2.3.3.3.7.5 1.1.6 2.4m-.7-2.2c.2 1 .4 1 .4 2.4v-.1m-.5-1.4.2 1.4-.3.2"/>
+ <path fill="#fc0" fill-rule="evenodd" d="m497.1 277.4.7-.6-21.4-23.7-.4.5z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M476.6 253c0-.9.6-2 1.2-2l.9.1q.4.2.5.6c.1.9-1 1.2-1.7 1.3l-.8.1-.2.3.3-.1 2-.3c.5-.1.9-1.3.6-1.6-.3-.5-1.6-.8-2-.5q-1 .9-1.2 2.5c0-.2.4-.1.4-.3z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M476.1 253.4c-.9-.3-2.1-.2-2.3.5l-.2.8q-.1.5.4.7c.7.4 1.4-.5 1.7-1.2q0-.4.4-.7h.4l-.3.2-1 1.7c-.2.5-1.4.5-1.7 0s0-1.7.3-2q1.3-.8 2.8-.2-.2.2-.5.2z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M476 253q-.4.2-.3.6t.6.3q.7-.2.6-.8-.3-.4-.9-.1z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="M472 248.7s2 1.6 4 2c0 0-.3 1.9 0 2.4 0 0-1.7-.7-2.6-.5 0 0-.4-2.6-1.5-4z"/>
+ <path fill="none" d="M473.6 250.4s.8.6 1.6.9v.9s-.7-.3-1-.2c0 0-.2-1-.6-1.6z"/>
+ <path fill="#fc0" fill-rule="evenodd" d="m475.7 254.9 1-1c0-.1-.4 1 0 1.3.4.8.1 2.3 0 2.7-.7 0-1.3.3-2-.4-.4-.3 0-.9.3-1.3q.1-.7.7-1.3z"/>
+ <path fill="none" d="M476.4 254.4v.5l.2.7v2.2m-.3-2.5q.2 1.3-.1 2.5m0-1-.2 1h-.3"/>
+ </g>
+ </g>
+ <use xlink:href="#sv-c" width="100%" height="100%" transform="matrix(-1 0 0 1 1030 0)"/>
+ </g>
+ <path fill="#fc0" stroke="#000" stroke-miterlimit="2.6" stroke-width=".3" d="m319.3 197.9-40.2 67.3h80.5z"/>
+ <path fill="#fff" stroke="#fff" stroke-miterlimit="2.6" stroke-width=".1" d="M319.3 202.3 283 263h72.7z"/>
+ <path fill="#007e93" stroke="#007e93" stroke-miterlimit="2.6" stroke-width=".2" d="M293.8 245 283 263h72.7l-10.9-18z"/>
+ <g fill="none" stroke-miterlimit="2.6" stroke-width=".1">
+ <path stroke="#086aad" d="M313 212.9a9 9 0 0 1 6.2-2.2h.2c2.3 0 4.7.6 6.3 2.2"/>
+ <path stroke="#0863aa" d="M313 213a9 9 0 0 1 6.2-2.2h.2c2.4 0 4.8.5 6.3 2.2"/>
+ <path stroke="#095fa8" d="M313 213a9 9 0 0 1 6.2-2.2h.2c2.4 0 4.9.6 6.4 2.3"/>
+ <path stroke="#0a58a5" d="M312.9 213.1a9 9 0 0 1 6.3-2.2h.2c2.5 0 5 .6 6.5 2.3"/>
+ <path stroke="#0a52a2" d="M312.8 213.2q2.6-2.4 6.5-2.3h.1q4 0 6.5 2.4"/>
+ <path stroke="#0b4d9f" d="M312.8 213.3q2.6-2.4 6.5-2.3h.2c2.5 0 5 .6 6.5 2.4"/>
+ <path stroke="#0c479d" d="M312.7 213.4q2.6-2.6 6.6-2.4h.2q4-.1 6.6 2.5"/>
+ <path stroke="#270a7f" d="M312.3 214c1.9-2 4.2-2.5 7-2.5h.2q4.8 0 7.3 3.2"/>
+ <path stroke="#241183" d="M312.3 214c1.9-2 4.2-2.6 7-2.6h.2q4.7 0 7.2 3.2"/>
+ <path stroke="#221786" d="M312.4 214c1.8-2 4.1-2.6 7-2.6s5.7 1 7.2 3"/>
+ <path stroke="#1f1f8a" d="M312.4 213.8q2.8-2.7 6.9-2.5h.1q4.7 0 7.2 3"/>
+ <path stroke="#1a258d" d="M312.5 213.7q2.6-2.6 6.8-2.4h.1q4.6-.1 7 2.9"/>
+ <path stroke="#172d91" d="M312.5 213.7q2.7-2.7 6.7-2.5h.2q4.5-.1 7 2.8"/>
+ <path stroke="#143393" d="M312.5 213.6q2.6-2.6 6.7-2.4h.2q4.3-.2 7 2.7"/>
+ <path stroke="#113b97" d="M312.6 213.5q2.6-2.6 6.6-2.4h.1q4.4-.2 7 2.7"/>
+ <path stroke="#ff0a00" d="M315.3 209a7 7 0 0 1 4-1.2q2.2 0 4 1"/>
+ <path stroke="#f10" d="M315.3 209a7 7 0 0 1 4-1 7 7 0 0 1 4 1"/>
+ <path stroke="#ff1500" d="M315.3 209a7 7 0 0 1 4-1q2.3-.1 4 1"/>
+ <path stroke="#ff1a00" d="M315.2 209.2a7 7 0 0 1 4.1-1.2q2.4 0 4.1 1"/>
+ <path stroke="#ff2000" d="M315.2 209.2a7 7 0 0 1 4.1-1.1q2.4 0 4.1 1"/>
+ <path stroke="#ff2700" d="M315.1 209.3a7 7 0 0 1 4.2-1.2q2.3 0 4.2 1.1"/>
+ <path stroke="#ff2f00" d="M315.1 209.4a7 7 0 0 1 4.2-1.2q2.3 0 4.2 1"/>
+ <path stroke="#f30" d="M315 209.4a7 7 0 0 1 4.3-1.1 8 8 0 0 1 4.3 1"/>
+ <path stroke="#ff3c00" d="M315 209.5a7 7 0 0 1 4.3-1.2q2.4 0 4.3 1.1"/>
+ <path stroke="#ff4100" d="M315 209.6a7 7 0 0 1 4.3-1.2 8 8 0 0 1 4.3 1.1"/>
+ <path stroke="#ff4600" d="M315 209.7a7 7 0 0 1 4.3-1.3 8 8 0 0 1 4.4 1.2"/>
+ <path stroke="#fff500" d="M314 211.2a10 10 0 0 1 10.7 0"/>
+ <path stroke="#ffeb00" d="M314.1 211.1a9 9 0 0 1 5.2-1.5q3.2 0 5.3 1.6"/>
+ <path stroke="#ffe000" d="M314.1 211a9 9 0 0 1 5.2-1.5c1.9 0 4 .5 5.3 1.6"/>
+ <path stroke="#ffd600" d="M314.2 211a9 9 0 0 1 5.1-1.6q3 0 5.2 1.6"/>
+ <path stroke="#ffcf00" d="M314.2 210.9a9 9 0 0 1 5.1-1.5 9 9 0 0 1 5.2 1.5"/>
+ <path stroke="#ffc400" d="M314.3 210.8c1.3-1 3.3-1.5 5-1.5a8 8 0 0 1 5.1 1.5"/>
+ <path stroke="#ffba00" d="M314.3 210.7q2.3-1.5 5-1.5c2.7 0 3.7.5 5 1.5"/>
+ <path stroke="#ffb000" d="M314.4 210.6a8 8 0 0 1 5-1.4q2.7 0 5 1.4"/>
+ <path stroke="#ffa600" d="M314.4 210.5a8 8 0 0 1 5-1.4 8 8 0 0 1 4.8 1.4"/>
+ <path stroke="#ff9c00" d="M314.5 210.4a8 8 0 0 1 4.8-1.4q2.8 0 4.9 1.4"/>
+ <path stroke="#ff9100" d="M314.6 210.3a8 8 0 0 1 4.7-1.4q2.7 0 4.8 1.4"/>
+ <path stroke="#ff8700" d="M314.6 210.2a8 8 0 0 1 4.7-1.3q2.7 0 4.8 1.3"/>
+ <path stroke="#ff7d00" d="M314.6 210.2a8 8 0 0 1 4.7-1.4q2.6 0 4.7 1.3"/>
+ <path stroke="#ff7500" d="M314.7 210a8 8 0 0 1 4.6-1.2q2.6 0 4.7 1.2"/>
+ <path stroke="#ff6b00" d="M314.8 210a8 8 0 0 1 4.5-1.3 8 8 0 0 1 4.6 1.2"/>
+ <path stroke="#ff6100" d="M314.8 209.9a7 7 0 0 1 4.5-1.3q2.5 0 4.6 1.3"/>
+ <path stroke="#ff5700" d="M314.9 209.8a7 7 0 0 1 4.4-1.3 8 8 0 0 1 4.5 1.3"/>
+ <path stroke="#ebf605" d="M313.9 211.4a10 10 0 0 1 5.4-1.7c2 0 4.1.6 5.5 1.7"/>
+ <path stroke="#d6ec09" d="M313.8 211.5a9 9 0 0 1 5.5-1.7c2 0 4.2.6 5.6 1.7"/>
+ <path stroke="#c2e30e" d="M313.8 211.6a9 9 0 0 1 5.5-1.7c2 0 4.2.5 5.6 1.7"/>
+ <path stroke="#add912" d="M313.7 211.7a9 9 0 0 1 5.6-1.8c2 0 4.2.6 5.6 1.8"/>
+ <path stroke="#99cf16" d="M313.6 211.8a9 9 0 0 1 5.7-1.8c2 0 4.3.6 5.7 1.8"/>
+ <path stroke="#85c61a" d="M313.6 211.9a9 9 0 0 1 5.7-1.9c2 0 4.3.7 5.7 1.9"/>
+ <path stroke="#70bc1f" d="M313.5 212a8 8 0 0 1 5.8-1.9c2 0 4.4.6 5.8 1.8"/>
+ <path stroke="#5cb323" d="M313.5 212.1a8 8 0 0 1 5.8-2c2.1 0 4.4.7 5.8 2"/>
+ <path stroke="#47a928" d="M313.4 212.2a8 8 0 0 1 5.9-2c2.1 0 4.4.7 5.9 1.9"/>
+ <path stroke="#0d74a4" d="M313.1 212.7a9 9 0 0 1 6.2-2 9 9 0 0 1 6.3 2"/>
+ <path stroke="#127a97" d="M313.1 212.7a9 9 0 0 1 6.2-2.2 9 9 0 0 1 6.2 2.1"/>
+ <path stroke="#17808b" d="M313.2 212.6a9 9 0 0 1 6.2-2 9 9 0 0 1 6 2"/>
+ <path stroke="#1a847d" d="M313.2 212.6a9 9 0 0 1 6.1-2.1 9 9 0 0 1 6.1 2"/>
+ <path stroke="#1e8a6d" d="M313.2 212.5a9 9 0 0 1 6.1-2c2.3 0 4.6.6 6 2"/>
+ <path stroke="#238f5e" d="M313.3 212.5a9 9 0 0 1 6-2.1c2.2 0 4.6.6 6 2"/>
+ <path stroke="#2b944e" d="M313.3 212.4a8 8 0 0 1 6-2c2.2 0 4.6.6 6 2"/>
+ <path stroke="#2f9b3e" d="M313.3 212.3c2-1.6 3.7-2 6-2s4.5.7 6 2"/>
+ <path stroke="red" d="M323.2 208.8a7 7 0 0 0-3.9-1 7 7 0 0 0-4 1"/>
+ <path stroke="#2a007c" d="M326.9 214.9q-2.6-3.4-7.5-3.4-4.4-.2-7.2 2.7"/>
+ <path stroke="#0671b0" d="M325.6 212.7c-1.5-1.5-4-2-6.3-2a9 9 0 0 0-6.2 2.1"/>
+ <path stroke="#0c419a" d="M326.2 213.7c-1.6-2-4.1-2.6-6.9-2.6q-4-.1-6.7 2.3"/>
+ <path stroke="#ff0" d="M324.8 211.3a9 9 0 0 0-5.5-1.6c-1.8 0-4 .5-5.4 1.6"/>
+ <path stroke="#ff4d00" d="M323.7 209.7a8 8 0 0 0-4.4-1.2 7 7 0 0 0-4.4 1.2"/>
+ <path stroke="#33a02c" d="M325.2 212.2a10 10 0 0 0-5.9-2 8 8 0 0 0-6 2"/>
+ </g>
+ <g fill="none" stroke-miterlimit="2.6" stroke-width=".1">
+ <path stroke="#fef2ec" d="M312 214.5a16 16 0 0 1 7.3-1.8c2.6 0 5.4 1 7.6 2.1l7.7 13a15.3 15.3 0 0 1-30.6 0z"/>
+ <path stroke="#fef2ea" d="M319.3 212.9c2.6 0 5.3 1 7.5 2.1l7.6 12.7c0 8.3-6.8 15.2-15 15.2-8.4 0-15.1-6.7-15.2-15.1l7.9-13a16 16 0 0 1 7.2-2z"/>
+ <path stroke="#fef0e6" d="M319.3 213.3c2.5 0 5.2 1 7.3 2l7.4 12.4c0 8.1-6.6 14.9-14.7 14.9a14.7 14.7 0 0 1-14.7-14.8l7.6-12.7a16 16 0 0 1 7-1.8z"/>
+ <path stroke="#feede3" d="M319.3 213.7c2.4 0 5 .9 7 2 .2 0 7.3 11.9 7.3 12a14.4 14.4 0 0 1-14.3 14.4c-7.9 0-14.2-6.3-14.3-14.3 0-.2 7.3-12.3 7.4-12.4a16 16 0 0 1 6.9-1.7z"/>
+ <path stroke="#fee8dc" d="M319.3 214.3q3.6.2 6.8 2c.2 0 6.8 11.2 6.8 11.5 0 7.5-6.1 13.7-13.6 13.7s-13.6-6-13.7-13.7c0-.3 6.9-11.7 7.1-11.8q3-1.6 6.6-1.7z"/>
+ <path stroke="#fee6d5" d="M319.3 214.7q3.6.1 6.6 1.9c.2.2 6.6 10.8 6.6 11.2 0 7.3-6 13.3-13.2 13.3s-13.2-6-13.2-13.3c0-.4 6.5-11.3 6.8-11.5q2.9-1.5 6.4-1.6z"/>
+ <path stroke="#fee3cf" d="M319.3 215.3q3.5.2 6.2 1.8c.4.2 6.4 10.2 6.4 10.7 0 7-5.7 12.7-12.6 12.7-7 0-12.6-5.6-12.7-12.7 0-.4 6.2-10.7 6.6-11a13 13 0 0 1 6-1.5z"/>
+ <path stroke="#fee0cc" d="M319.3 215.7q3.3.1 6 1.8a76 76 0 0 1 6.2 10.3c0 6.7-5.5 12.3-12.2 12.3a12 12 0 0 1-12.3-12.3c0-.5 6-10.3 6.4-10.6q2.6-1.5 5.9-1.5z"/>
+ <path stroke="#fedec6" d="M319.3 216.1q3.2.2 5.9 1.7c.4.3 6 9.4 6 10a12 12 0 0 1-12 11.9 12 12 0 0 1-11.7-11.9c0-.6 5.6-10 6-10.2a13 13 0 0 1 5.8-1.5z"/>
+ <path stroke="#fdcdaa" d="M319.3 218.8q2.5 0 4.5 1.3c.9.5 4.6 6.7 4.6 7.7a9 9 0 0 1-9.1 9.2 9 9 0 0 1-9.2-9.2c0-1 3.9-7.4 4.7-8a10 10 0 0 1 4.5-1z"/>
+ <path stroke="#fdcdaa" d="M319.3 219a9 9 0 0 1 4.4 1.2c1 .6 4.5 6.6 4.5 7.6a9 9 0 1 1-17.9 0c0-1 3.7-7.2 4.6-7.7a9 9 0 0 1 4.4-1.1z"/>
+ <path stroke="#fdc59e" d="M319.3 220a8 8 0 0 1 4 1.1c1 .6 4 5.5 4 6.7a8 8 0 0 1-8 8 8 8 0 0 1-8-8c0-1.2 3-6.3 4.1-6.8q1.8-1 3.9-1z"/>
+ <path stroke="#fdc59e" d="M319.3 220.2a8 8 0 0 1 3.9 1 16 16 0 0 1 3.8 6.6 8 8 0 0 1-7.7 7.8 7.7 7.7 0 0 1-7.8-7.7c0-1.4 3-6.1 4-6.8a8 8 0 0 1 3.8-1z"/>
+ <path stroke="#fef0e9" d="M319.3 213c2.5 0 5.2 1 7.4 2.2l7.5 12.5a15 15 0 0 1-14.9 15 15 15 0 0 1-14.9-14.9l7.7-13a16 16 0 0 1 7.2-1.7z"/>
+ <path stroke="#feede3" d="M319.3 213.5c2.5 0 5.1 1 7.1 2 .2.1 7.4 12.1 7.4 12.3a14.5 14.5 0 0 1-29 0l7.5-12.6a15 15 0 0 1 7-1.7z"/>
+ <path stroke="#feebdf" d="M319.3 214c2.4 0 5 .8 7 1.9.1 0 7 11.6 7 11.9 0 7.7-6.3 14.1-14 14.1s-14-6.3-14-14.1c0-.2 7-12.1 7.2-12.2a15 15 0 0 1 6.8-1.7z"/>
+ <path stroke="#feebdd" d="M319.3 214c2.4 0 4.9 1 6.9 2 .1.2 7 11.5 7 11.8a14 14 0 0 1-14 14 14 14 0 0 1-13.8-14c0-.2 7-11.9 7.2-12q3-1.6 6.7-1.7z"/>
+ <path stroke="#fee8d9" d="M319.3 214.5c2.3 0 4.8.9 6.7 2 .2 0 6.7 11 6.7 11.3 0 7.4-6 13.5-13.4 13.5s-13.4-6-13.5-13.5c0-.3 6.7-11.5 7-11.7q3-1.5 6.5-1.6z"/>
+ <path stroke="#fee6d3" d="M319.3 215q3.5 0 6.5 1.8c.3.1 6.5 10.6 6.5 11 0 7.1-5.9 13.1-13 13.1a13 13 0 0 1-13-13c0-.5 6.4-11.3 6.7-11.4a14 14 0 0 1 6.3-1.6z"/>
+ <path stroke="#fee3d2" d="M319.3 215.1q3.4.2 6.4 1.8c.3.2 6.4 10.5 6.4 10.9 0 7-5.8 13-12.8 13a13 13 0 0 1-12.9-13c0-.4 6.3-11 6.7-11.1a14 14 0 0 1 6.2-1.6z"/>
+ <path stroke="#fee0cc" d="M319.3 215.5q3.4.2 6.1 1.8c.5.2 6.3 10 6.3 10.5 0 6.8-5.6 12.5-12.4 12.5a12.5 12.5 0 0 1-12.5-12.5c0-.5 6-10.6 6.5-10.8a13 13 0 0 1 6-1.5z"/>
+ <path stroke="#fedec8" d="M319.3 216q3.2.1 6 1.6c.4.3 6 9.6 6 10.2a12 12 0 0 1-12 12 12 12 0 0 1-12-12 88 88 0 0 1 6.2-10.4q2.5-1.5 5.8-1.5z"/>
+ <path stroke="#fddbc5" d="M319.3 216.3q3.1.2 5.8 1.7a87 87 0 0 1 5.8 9.8c0 6.4-5.2 11.7-11.6 11.7s-11.6-5.2-11.6-11.7c0-.6 5.5-9.7 6-10a12 12 0 0 1 5.6-1.5z"/>
+ <path stroke="#fddbc2" d="M319.3 216.5q3 .2 5.7 1.7c.5.3 5.7 9 5.7 9.6 0 6.3-5.1 11.5-11.4 11.5s-11.4-5.1-11.5-11.5c0-.7 5.4-9.6 6-9.9a12 12 0 0 1 5.5-1.4z"/>
+ <path stroke="#fdd9bf" d="M319.3 216.7q3.1.1 5.6 1.6c.5.4 5.6 8.8 5.6 9.5a11.2 11.2 0 0 1-22.4 0c0-.7 5.2-9.4 5.8-9.7a12 12 0 0 1 5.4-1.4z"/>
+ <path stroke="#fdd9bf" d="M319.3 217q3 0 5.4 1.5a55 55 0 0 1 5.6 9.3c0 6-5 11-11 11s-11-4.8-11-11c0-.7 5-9.2 5.7-9.5a12 12 0 0 1 5.3-1.4z"/>
+ <path stroke="#fdd6bc" d="M319.3 217.1q3 .1 5.3 1.6c.7.3 5.5 8.3 5.5 9.1 0 6-4.9 10.9-10.8 10.9a11 11 0 0 1-10.8-10.9c0-.8 5-9 5.6-9.3a11 11 0 0 1 5.2-1.4z"/>
+ <path stroke="#fdd6b9" d="M319.3 217.3q2.8.2 5.2 1.5c.7.4 5.3 8.2 5.3 9 0 5.8-4.7 10.7-10.5 10.7a10.6 10.6 0 0 1-10.6-10.7c0-.8 4.8-8.8 5.5-9.2a11 11 0 0 1 5-1.3z"/>
+ <path stroke="#fdd4b8" d="M319.3 217.6q2.8.1 5.2 1.4c.6.4 5.2 8 5.2 8.8 0 5.7-4.7 10.5-10.4 10.5s-10.4-4.7-10.4-10.5c0-.8 4.6-8.6 5.3-9a11 11 0 0 1 5-1.2z"/>
+ <path stroke="#fdd4b6" d="M319.3 217.7q2.8.1 5 1.5c.8.4 5.2 7.7 5.2 8.6 0 5.6-4.6 10.3-10.2 10.3a10 10 0 0 1-10.2-10.3c0-.9 4.5-8.4 5.2-8.8a11 11 0 0 1 5-1.3z"/>
+ <path stroke="#fdd2b2" d="M319.3 218q2.7.1 5 1.4c.7.4 5 7.5 5 8.4 0 5.5-4.6 10-10 10s-10-4.4-10-10a39 39 0 0 1 5.1-8.6 11 11 0 0 1 4.9-1.3z"/>
+ <path stroke="#fdd1b0" d="M319.3 218.2q2.7.1 4.9 1.4c.7.4 4.9 7.3 4.9 8.2 0 5.4-4.5 9.9-9.8 9.9s-9.8-4.4-9.8-9.9c0-.9 4.2-8 5-8.4a10 10 0 0 1 4.8-1.3z"/>
+ <path stroke="#fdd0b0" d="M319.3 218.4q2.6.1 4.8 1.3c.8.5 4.7 7.1 4.7 8.1a9.5 9.5 0 1 1-19.1 0c0-1 4.1-7.8 5-8.3a10 10 0 0 1 4.6-1.1z"/>
+ <path stroke="#fdd0ad" d="M319.3 218.6a10 10 0 0 1 4.7 1.3c.8.5 4.6 7 4.6 8 0 5-4.2 9.3-9.3 9.3s-9.4-4.1-9.4-9.4c0-1 4-7.6 4.8-8a10 10 0 0 1 4.6-1.2z"/>
+ <path stroke="#fdcaa6" d="M319.3 219.2q2.3 0 4.4 1.2c.9.5 4.3 6.3 4.3 7.4a9 9 0 0 1-8.7 8.8 9 9 0 0 1-8.8-8.7c0-1.2 3.6-7.1 4.5-7.7a9 9 0 0 1 4.3-1z"/>
+ <path stroke="#fdcaa4" d="M319.3 219.4a9 9 0 0 1 4.3 1.2c.9.5 4.2 6 4.2 7.2a8.6 8.6 0 0 1-8.5 8.6 8.6 8.6 0 0 1-8.6-8.5c0-1.2 3.5-7 4.4-7.5a9 9 0 0 1 4.2-1z"/>
+ <path stroke="#fdc8a4" d="M319.3 219.6q2.3 0 4.2 1.2a19 19 0 0 1 4.1 7 8.4 8.4 0 0 1-16.7.1c0-1.2 3.3-6.7 4.3-7.3a9 9 0 0 1 4-1z"/>
+ <path stroke="#fdc8a1" d="M319.3 219.8q2.2.1 4 1.1c1 .6 4.1 5.7 4.1 7a8 8 0 0 1-8.1 8.1 8 8 0 0 1-8.2-8.1c0-1.3 3.2-6.6 4.2-7.1q1.8-1 4-1z"/>
+ <path stroke="#fdc39b" d="M319.3 220.4q2 0 3.7 1a15 15 0 0 1 3.8 6.4 7.5 7.5 0 0 1-7.5 7.6 7.5 7.5 0 0 1-7.6-7.5c0-1.4 2.8-6 3.9-6.6a8 8 0 0 1 3.7-1z"/>
+ <path stroke="#fdc398" d="M319.3 220.6q2 0 3.6 1a13 13 0 0 1 3.7 6.3c0 4-3.3 7.3-7.3 7.3a7.3 7.3 0 0 1-7.4-7.3 14 14 0 0 1 3.8-6.4 8 8 0 0 1 3.6-1z"/>
+ <path stroke="#fdc097" d="M319.3 220.8a8 8 0 0 1 3.6 1 13 13 0 0 1 3.5 6c0 4-3.2 7.2-7.1 7.2a7 7 0 0 1-7.2-7.1c0-1.5 2.5-5.6 3.7-6.3a7 7 0 0 1 3.5-.8z"/>
+ <path stroke="#fdc095" d="M319.3 221a7 7 0 0 1 3.5 1c1.1.7 3.4 4.4 3.4 5.9a7 7 0 0 1-7 7 7 7 0 0 1-6.9-7c0-1.5 2.4-5.4 3.6-6a7 7 0 0 1 3.4-.9z"/>
+ <path stroke="#fdbe92" d="M319.3 221.2a7 7 0 0 1 3.4 1c1.1.6 3.3 4.2 3.3 5.7a6.7 6.7 0 1 1-13.5 0c0-1.5 2.3-5.2 3.5-5.9q1.4-.8 3.3-.8z"/>
+ <path stroke="#fdbe90" d="M319.3 221.4q1.7 0 3.3 1c1.1.6 3.2 4 3.2 5.5a6.5 6.5 0 0 1-6.5 6.5 6.5 6.5 0 0 1-6.6-6.5c0-1.6 2.1-5 3.4-5.7a7 7 0 0 1 3.2-.8z"/>
+ <path stroke="#fdbb8f" d="M319.3 221.6q1.7 0 3.2.9c1.2.7 3 3.8 3 5.4a6.3 6.3 0 0 1-6.2 6.3 6.3 6.3 0 0 1-6.4-6.3 9 9 0 0 1 3.3-5.5q1.5-.8 3-.8z"/>
+ <path stroke="#fdbb8d" d="M319.3 221.8q1.7 0 3 .9a8 8 0 0 1 3 5.2 6 6 0 0 1-6 6 6 6 0 0 1-6.1-6c0-1.6 1.8-4.6 3-5.3a6 6 0 0 1 3-.8z"/>
+ <path stroke="#fdb98a" d="M319.3 222a6 6 0 0 1 3 .8c1.2.8 2.9 3.5 2.9 5a6 6 0 0 1-6 6 6 6 0 0 1-5.8-6c0-1.6 1.6-4.3 3-5a6 6 0 0 1 2.9-.8z"/>
+ <path stroke="#fdb98a" d="M319.3 222.2a6 6 0 0 1 2.8.8 7 7 0 0 1 2.9 4.9 5.7 5.7 0 0 1-11.4 0 7 7 0 0 1 2.9-5 6 6 0 0 1 2.8-.7z"/>
+ <path stroke="#fcb687" d="M319.3 222.4q1.6 0 2.8.8a7 7 0 0 1 2.6 4.7 5.5 5.5 0 1 1-11 0c0-1.7 1.5-4 2.9-4.8a6 6 0 0 1 2.7-.7z"/>
+ <path stroke="#fcb685" d="M319.3 222.6q1.5 0 2.7.8a6 6 0 0 1 2.5 4.5 5.3 5.3 0 0 1-5.2 5.3 5.3 5.3 0 0 1-5.3-5.3 6 6 0 0 1 2.7-4.6 5 5 0 0 1 2.6-.7z"/>
+ <path stroke="#fcb485" d="M319.3 222.8q1.5 0 2.6.7a5 5 0 0 1 2.4 4.4 5 5 0 1 1-10.1 0c0-1.8 1.1-3.6 2.6-4.4a5 5 0 0 1 2.5-.7z"/>
+ <path stroke="#fcb482" d="M319.3 232.8a5 5 0 0 0 4.8-4.9c0-2.7-2.2-4.9-4.8-4.9a5 5 0 0 0-5 4.9 5 5 0 0 0 5 4.9z"/>
+ </g>
+ <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-miterlimit="2.6" stroke-width=".1" d="M319.3 232.8a5 5 0 0 0 4.9-4.9 5 5 0 0 0-4.9-4.8 5 5 0 0 0-4.9 4.8 5 5 0 0 0 5 4.9z"/>
+ <g stroke="#000" stroke-width=".1">
+ <path fill="none" d="m320.4 223.1.5-2.6m-1 2.6.2-2.7m-.8 2.6v-2.6m-.5 2.7-.3-2.7m-.2 2.7-.6-2.6m.1 2.8-.8-2.6m.3 2.7-1-2.4m.6 2.6-1.4-2.3m1 2.6-1.6-2.1m1.2 2.5-1.9-2m1.5 2.3-2-1.8m1.7 2.2-2.2-1.5m1.8 2-2.2-1.4m2 1.8-2.4-1m2.2 1.5-2.5-.9m2.4 1.4-2.6-.6m2.5 1-2.6-.2m2.6.8h-2.7m2.7.5-2.6.3m2.7.2-2.6.6m2.7-.1-2.5.8m2.7-.3-2.4 1m2.6-.6-2.8 1.8m3.1-1.3-5.7 4m6-3.6-6.1 5.4m6.5-5-5.1 5.6m5.5-5.3-3.9 5.1m4.3-4.8-4 7m4.5-6.8-2.3 5m2.7-4.8-2.2 7m2.7-6.9-1 4.7m1.6-4.6-.7 7.2m1.7-7.2.2 2.6m.3-2.7 1.5 6.8m-1-7 1.3 4.1m-.8-4.2 3 6.7m-2.6-7 3.3 5.8m-2.8-6 4.7 6.2m-4.3-6.5 4.1 4.8m-3.8-5.2 6.2 5.7m-5.9-6 3.4 2.4m-3-2.9 2.2 1.3m-2-1.7 2.4 1m-2.2-1.5 2.5.8M324 229l2.6.5m-2.5-1 2.6.2m-2.6-.8h2.6m-2.6-.5 2.6-.2m-2.7-.3 2.6-.5m-2.7 0 2.5-.8m-2.7.4 2.4-1.1m-2.6.6 2.3-1.3m-2.6.9 2.1-1.6m-2.4 1.1 2-1.7m-2.4 1.4 1.8-2m-2.2 1.6 1.6-2m-2 1.8 1.3-2.3m-1.8 2 1.1-2.4m-1.6 2.3.9-2.5m-2.4-4v-2M317 217l-.4-2m-1.8 2.7-.8-1.8m-1.2 3-1.2-1.7m-.5 3.2-1.6-1.3m.2 3.2-1.8-1m.8 3.2-2-.7m1.5 3-2-.3m2 2.5-2 .2m2.5 2.1-2 .7m22.2 1.5 1.8 1m-.8-3.1 1.9.6m-1.5-2.9 2 .2m-2-2.5 2-.2m-2.4-2.1 2-.6m-3-1.5 1.8-1m-3.1-.9 1.5-1.4m-3.2-.2 1.2-1.6m-3.2.5.8-1.9m-3 1.1.4-2"/>
+ <path fill="#e60000" fill-rule="evenodd" stroke-miterlimit="2.6" d="M322.1 230.2s-.7-.4-1-.4l-3 .1q-.8.3-.8.5 0 .4 1.4.6 1.5 0 2.2-.2z"/>
+ <path fill="#e60000" fill-rule="evenodd" stroke-miterlimit="2.6" d="M317.4 229.5s.1-1.4 1-3l-.4.8s-.6.3-.9 0q-.3-.4.1-1 .2-.7.5-1t1-.3c.7 0 1.2 0 1.7.8l1 1.7c.6.8.6 1.9.6 1.9l.2.8s-.7-.4-1.1-.4l-3 .1-.8.5s-.3-.6.1-1z"/>
+ <path fill="none" stroke-miterlimit="2.6" d="M317.4 229.5s.6-.3 2.3-.3c2 0 2.1.2 2.3.3"/>
+ <path fill="#fc0" fill-rule="evenodd" stroke-miterlimit="2.6" d="M319.2 237.1v-7.2s.2-.2.8 0v7.1s.2 5.5-.4 5.5-.4-1.3-.4-5.4z"/>
+ </g>
+ <g fill="#e60000">
+ <path fill-rule="evenodd" d="m311.8 231 .1.3-1.4.6.2.5h-.2q0-.3-.6-.3v-.2zm-1.5-.5-.3-.4q0-.6.6-.8t.9.5q.1.5-.5.8v-.2q.3-.2.2-.6t-.6-.3q-.4.2-.3.6l.3.3v.2l-1.2.1-.2-1h.3l.2.8zm-.6-4q-.5 0-.5.6 0 .4.3.5.4 0 .4-.2l.2-.6q0-.5.6-.5.7.2.5 1l-.2.6q-.3.2-.6.1v-.2q.6 0 .6-.6 0-.4-.3-.6-.4-.1-.4.4l-.2.5q0 .3-.5.4-.7 0-.6-.8c0-.8.5-.8.7-.8v.3zm0-1.3.5.2.4-1.1h.3l-.4 1.2.7.3.4-1.3h.2l-.4 1.6-2.1-.7.5-1.5.2.1z"/>
+ <path d="m311 222-.4.4-.5.8 1.9 1.1.1-.2-.8-.5.4-.6q.2-.6-.2-.9h-.5zm.2.4h.1q.3.2.1.6l-.3.4-.6-.3.3-.5q.1-.3.4-.2"/>
+ <path fill-rule="evenodd" d="m313.6 222.1-.2.2-1.4-1.3-.5.5-.2-.1 1.2-1.3.2.2-.5.5zm.7-.6-1.3-1.7.2-.2 1.3 1.7zm0-2.3.3.6 1-.5.2.2-1 .6.2.6 1.2-.6.1.2-1.4.8-1-2 1.4-.7.1.2zm4 .6-.3-1.2v-.6l-.3 2h-.3l-1-1.6.2.5.2 1.3h-.2l-.5-2.1h.4l1 1.6.2-2h.4l.5 2z"/>
+ <path d="M319 217.6v2.2h.8q.8 0 .8-.6 0-.4-.4-.5.4-.2.3-.5 0-.5-.5-.6zm.3.3h.5q.4 0 .4.4t-.4.2h-.5zm0 .9h.5q.4 0 .5.4 0 .3-.5.4l-.5-.1zm2.1-1-.5 2.1.2.1.3-.9.7.2q.4.2.2.5v.5l.3.1v-1.1l.3-.4q.2-.7-.5-.8zm.3.4.6.2q.4-.1.3.4t-.5.2l-.6-.1z"/>
+ <path fill-rule="evenodd" d="m324 219-.3.6 1 .6-.1.2-1-.5-.4.6 1.1.6-.1.2-1.4-.8 1-1.8 1.5.8-.2.2z"/>
+ <path d="M326.6 220.7 325 222l.6.7q.7.6 1.4 0 .8-.7.2-1.4zm0 .4.3.4q.5.4-.1 1t-1 0l-.3-.4z"/>
+ <path fill-rule="evenodd" d="m328.2 223-.7.4.6 1-.3.2-.5-1.1-.6.3.6 1.2h-.3l-.7-1.3 2-1 .7 1.4-.3.1zm-.8 4v-.3l1.5-.2-.1-.5h.2q0 .4.5.5v.2z"/>
+ <path d="m328 227.6-.4.2-.2.5q0 .8.6.8.3 0 .6-.3l.4.2q.4.1.6-.6 0-.7-.6-.7-.3 0-.4.4-.1-.4-.5-.5zm0 .4q.3 0 .4.4 0 .3-.4.4-.4-.1-.3-.5 0-.4.4-.3zm1 0q.3 0 .3.4t-.3.4l-.3-.4q0-.3.3-.3z"/>
+ <path fill-rule="evenodd" d="M328.7 229.5c.7.2.6.7.6 1q-.2.5-.8.4-.5 0-.6-.7v-.2q0-.5-.3-.5l-.3 1.1h-.3l.4-1.4q.6.1.7.7v.3l.5.5q.3.1.5-.4-.1-.4-.4-.5zm-2.1 2.1.1-.3 1.4.7.2-.5.2.1q-.2.5.1.7v.2z"/>
+ </g>
+ <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".2" d="M319.3 202.3 283 263h72.7z"/>
+ <g fill="none" stroke-miterlimit="2.6">
+ <path stroke="#000" stroke-width=".1" d="M321.3 255.5a6 6 0 0 0 3.2 0c1.5-.3 3-1.2 4.8-1 1.4 0 3.2 1.2 5.3 1.2 2.2 0 3-.7 4.8-1.1 1.3-.3 2-.2 3.4.2 1.6.3 2.5 1.2 5.2 1"/>
+ <path stroke="#fff" stroke-width=".4" d="M293.2 258.1c1.3-1 3.4-1.3 5-1 2.2.5 3.1 1 5.4 1 1.7 0 3.2-1.1 5-1.1 2.8 0 2.9.6 5.4 1a6 6 0 0 0 2.2 0l2.5-.8c.8-.4 2.8-.4 3.8-.3 1.8.2 2.6.9 3 1q1.4.4 3.2 0c1.5-.4 3-1.4 4.9-1.2 1.3.2 3 1.4 5.2 1.4s3-.8 4.8-1.2c1.4-.3 2-.2 3.4.1 1.6.4 2.5 1.5 5.2 1.2"/>
+ <path stroke="#fff" stroke-width=".3" d="M289.1 256a8 8 0 0 1 5-.8c2.2.4 3.1 1 5.4 1 1.7-.1 3.2-1.1 5-1.1 2.8 0 2.9.5 5.4 1h2.2l2.5-.9c.8-.3 2.8-.3 3.8-.2 1.8.2 2.6.8 3 .9q1.4.4 3.2 0c1.5-.4 3-1.2 4.9-1 1.3 0 3.1 1.2 5.2 1.2 2.2 0 3-.8 4.8-1.1 1.4-.3 2-.1 3.4.1 1.6.4 2.5 1.3 5.2 1"/>
+ <path stroke="#fff" stroke-width=".5" d="M285.4 262a6 6 0 0 1 5-1c2.1.5 3 1.1 5.4 1 1.7 0 3.2-1.3 4.9-1.3 2.9 0 3 .7 5.5 1.3a6 6 0 0 0 2.2 0 8 8 0 0 0 2.5-1c.8-.5 2.8-.4 3.8-.3 1.8.2 2.5 1 2.9 1q1.4.6 3.3.2c1.5-.6 3-1.6 4.8-1.4 1.3.1 3.1 1.6 5.3 1.6s3-1 4.7-1.5c1.4-.3 2-.1 3.5.2 1.6.4 2.5 1.6 5.2 1.3"/>
+ <path stroke="#fff" stroke-width=".3" d="M286.4 258.6c1.2-.9 3.4-1.2 5-.9 2.1.5 3 1 5.4 1q1-.1 2.2-.5"/>
+ <path stroke="#000" stroke-width=".2" d="M297.4 255c.3 0 1.3-.5 2.8-.5 2.9 0 1 0 3.6.5.7 0 2.5 0 3-.4m25.4 8.2q1.4-.3 2.6-.8c.7-.3 2.7-.3 3.8-.2 1.8.2 2.5.8 2.9.8a6 6 0 0 0 3.2 0c1.6-.3 3-1.2 5-1 1.2.1 3 1.3 5.2 1.3"/>
+ <path stroke="#fff" stroke-width=".3" d="M336.7 254.8c2.1 0 2.9-.8 4.8-1.2 1.3-.2 2 0 3.3.2 1.7.3 2.5 1.3 5.2 1"/>
+ <path stroke="#000" stroke-width=".1" d="M285.5 262.2a8 8 0 0 1 5-.8c2.2.4 3.1.9 5.4.9 1.7 0 3.2-1.1 5-1.1 2.8 0 2.9.6 5.4 1h2.2l2.5-.8c.8-.4 2.8-.3 3.8-.2 1.8.1 2.5.7 3 .8"/>
+ <path stroke="#000" stroke-width=".5" d="M290 259.6c1.3-.9 3.5-1.2 5.1-.9 2.2.4 3.1 1 5.4.9 1.7 0 3.1-1 4.8-1 3 0 3 .5 5.6 1h2.2l2.5-.9c.7-.3 2.8-.3 3.8-.2 1.8.2 2.5.8 3 .9q1.4.4 3.2 0c1.5-.4 3-1.3 4.8-1 1.5 0 3.3 1.2 5.3 1.2 2.2 0 3-.8 4.8-1.2 1.3-.2 2 0 3.4.2 1.6.3 2.5 1.3 5.2 1"/>
+ </g>
+ <g fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".2">
+ <path d="M291 249.5c.4 0 1.2-.6 1.5-.8l.8-1 1.5-1a11 11 0 0 0 3.5-3.1 18 18 0 0 1 5.7-5.2q1.4-.5 2.7 0l.8.7q1.5 1 3.9 1.8c1.5.4 1.9 1.4 3 2.5q1 .8 2 1.3l.4.4 2 1.4 3.2 3.1.4.7q1.1 1.2 2.6 2l2.7 1.6c-9.2.4-17.7-.2-27 0H299l-1.8.1h-8.8z"/>
+ <path d="m327.3 253.7-2.3-1.4q-1.5-.8-2.6-2l-.4-.7-3.2-3.1-2-1.4-.3-.4-2-1.3-1.9-2 1.3-.7q1-.5 2.2 0l.7.5q1.2 1 3.2 1.5c1.3.4 1.6 1.2 2.6 2.1q.7.7 1.6 1.1l.3.3 1.7 1.3 2.7 2.5.3.6q1 1 2.1 1.6l2.3 1.4h-6.2z"/>
+ <path d="m319.1 242.4.9.3c1.3.4 1.6 1.2 2.6 2.1q.7.7 1.6 1.1l.3.3 1.7 1.3 2.7 2.5.3.6q1 1 2.1 1.6l2 1.2 5-.1-2-1.3q-1-.6-1.9-1.5l-.3-.5-2.4-2.3-1.6-1.1-.2-.3-1.5-1c-1-.8-1.2-1.6-2.4-2a9 9 0 0 1-2.9-1.3l-.6-.4q-1-.5-2 0z"/>
+ <path d="m327.6 244.4.8.9 1.5 1 .2.3 1.6 1 2.4 2.4.3.5q.9 1 2 1.5l1.3.8h6q-.8-.7-1.7-1l-1.5-1.3-.3-.4-2-1.9-1.2-.9-.2-.2-1.2-.8c-.7-.7-1-1.3-1.9-1.6a7 7 0 0 1-2.4-1l-.4-.4q-1-.4-1.7 0z"/>
+ <path d="m343.3 252.5-1.3-.8-1.5-1.2-.3-.4q-.9-1-2-1.9l-1.2-.9-.2-.2-1.2-.8q-.7-.8-1.5-1.4l1-.7q.8-.2 1.5 0l.4.4q.8.6 2 1c.9.2 1 .7 1.7 1.3q.4.4 1 .6l.2.3 1 .7 1.7 1.6.2.4 1.3 1 1.5.9z"/>
+ </g>
+ <path fill="none" stroke="#00633b" stroke-width=".1" d="M303.2 239c.4 0 .2-.2.6 0m-1.5.5c.5 0 .7-.4 1 0m-1.4.3c.2 0 .3-.2 1 .2m-1.5.4h1m-1.6.4c.5-.1.7.2 1.3.1m-1.9.5h1.4m-2 .6h.7c.5 0 .4.1.8 0m-1.9.5q1 0 1.4.2m-2.3 1.1h1.4m-11 10c1.8-.4 4 0 6-.3m3.8-10.3c.5-.2.4 0 1 0h.7m-2.4 1.1h1.5m-.3.5h-1.6m1.2.6a3 3 0 0 0-1.7 0m-.8.4h2.1m-2.6.6c.7-.3 1.4 0 2.2 0m-3 .4h2.8m-.2.4-3.5.1m2.8.5-1.5.1h-.3l-1.7.1m-.2.4h2.8l.6.3m-3.9 0h1.6l2 .4m-4 0 1.6.2 2.1.1m-4.4 0c.7.3 1.5 0 2.2.2l2.1.2m-4.8.2 3.4.2 1.2.1m-5 .2c1.1.2 2.2 0 3.3.3l1.5.2m-5.2.3.3-.1h2.6l2.2.2m-5.5.5h5.2m-5.5.5 5.5.1m-5.8.4 2.4.1q.9.2 1.7.1h1.5m7.4-7.6h.2m-.4.2h.2m-.4.3h.4m-.5.2h.4m-.8.3.8.1m-1 .4 1-.1h-.1m-1.3.5h1.3m-1.6.4h1.4m-1.6.4h1.6m-2 .5 1 .2h.8m-1.8.2 1.6.2m-2 .2q.8 0 1.4.2h.6m-2.5.4q.8-.2 1.8.1h.6m-2.5.4q1-.3 2 0h.3m-2.7.5 2.6.1m-2.9.2c.7.3 1.5 0 2.2.2q.4.2.8 0m-3.5.4q.5-.2 1-.1l2.3.2m-3.6.4h3.6m-4 .4c1 .3 1.8 0 2.7.3h1.2m-4.1.3 4 .2m3.3-7.5h.3m-.5.3h.5m-.6.4h.6m-.8.5h.8m-1 .5 1-.1m-1.1.4h1m-1.2.6h1.3m-1.3.4h1.4m-1.6.6h1.5m-1.7.5.6-.1h1m-1.7.6c.6-.2 1.2.2 1.8-.2m-2 .8h2m-2 .5h2m-2.5.5 2.8-.2m-2.7.7 3.1-.1m-3.3.7c1 .1 1.3 0 2.3-.1l1.2-.2h.6m-4 .6c1.5-.2 3 .1 4.6-.3m-11.3 0h1.2m4.7.3h.4m5.4-.1c1.3-.2 2.5.2 3.8 0m-4.4-.5q1.1-.2 2.3.1l.1.2h2m-8.9-.3h-.8m-4.1-.2-1.7.1m12.1-11.8h.3m-.2.3h.3m-.2.6.4-.1m-.3.4h.6m0 .4h-.5m.3.6.5-.1m.3.4h-.8m.2.4.8-.1m.2.6h-.9m.2.6q.6 0 1-.2m0 .3-.9.2m.2.6 1.2-.2m.1.5h-.9l-.3.1m.2.8.8-.3h.6m.2.4-1.4.2m.1.6 1.6-.3m-1.5 1 1.8-.4m.4.4q-1 0-2 .3m.2.6s.1.1.2 0a4 4 0 0 1 2-.3m0 .4c-.5.4-1.3.2-2 .3h-.2m.2.5 2.3-.2m.5.5h-1.8q-.4 0-.8.3m0 .5h.4q1.2-.6 2.5-.4m.2.5h-2.1l-.8.3m.3.5 1-.3h2.4m0 .4q-.7-.2-1.3 0l-2 .3m.4.4 1.6-.4h1.3m-3 .7q1.4 0 2.6-.3h.9m0-.3c1.4.1 2.8-.1 4.1.2m-3.8.3.4-.1h3.4m-.4-2.9h.2m-.1.4q.1-.2.4 0m-.3.4h.7m-.5.6c.2-.3.6 0 .8-.2m-.6.8c.3-.3.7 0 1-.3m-1 .7c.5-.2 1 0 1.4-.3m-1.2.7c.7-.3 1.5.1 2.1-.4m-2 .7h2.6m.6 0h4.6m-5.3-.6c1.4.2 3.4 0 5.1.2m-12.6-10.6 1.1-.2m-.8.4 1.2-.1m-.7.6.8-.2h.4m-.9.4h1.5m.2.3-1.2.1m.8.5 1-.2m.5.4h-1.2m.6.5 1-.2m.6.5h-1m.5.5 1.2-.1m.4.2-1 .2m.5.5 1.3-.2m.4.5h-1l-.4.1m2.6.8-1.5.1m.5.6 1.6-.3m-.4 1.7h.8c.8-.2 1-.4 1.7-.3m.5.4-2.2.2-.4.1m.4.4c.8-.2 2-.1 2.7-.3m.8.5-2 .1-1 .1m.7.5h.3q1-.5 2.6-.4m.5.5h-1.9l-.9.2m.8.5c.8-.2 2.3-.3 1.4-.3h1.9m.2.3h-1.5c-.4.2-.3.3-1.4.3m.4.2 1.2-.1 1.5-.1m-2.4.4h2.7m-16.2-11h.7l.3-.2h.3m-1.7-.2h.8l.2-.1h.4m5.5 6q.1-.2.6-.1c-.1-.2.3 0 .4-.1h.5m0 1.5q.8 0 1.7-.3m.8.6c-.6.1-1.6 0-2.1.3m-8-8.4c-.6 0-.7.2-1.1.2m8 1.6 1-.2m-.7.5q.6 0 1-.2m-.7.5.7-.1h.4m-.7.4h1.2m.3.2-1.2.2m.4.4 1.3-.2m.5.3-1.3.1m.4.4c.3 0 1.2 0 1.3-.2m.5.5h-1.2m.4.4 1.3-.1m.4.2c-.2.2-.9.2-1.1.3m.6.4 1.2-.2m.4.4h-1q0 .2-.3.1m2.4.8-1.4.1m.5.5 1.5-.3m-.3 1.7.6-.1c.8-.1.9-.3 1.6-.3m.4.4-2 .2-.4.1m.4.3q1.3 0 2.5-.2m.7.4-1.7.1-1 .2m.6.4h.3q1-.4 2.4-.3m.5.4H332l-.9.2m.6.4 1.5-.2h1.7m.2.3h-1.4c-.2 0-.3.2-1.5.2m.4.3 1.3-.2h1.4m-2.1.4 1.7-.1h.7m-15-10.1q.3-.2.5-.1l.5-.1h.3m-1.7 0q.1-.3.6-.2l.4-.1h.4m5.2 5.5c.2-.1 0-.2.4-.1-.1-.2.3 0 .4-.1h.5m0 1.5 1.5-.4m.8.6q-1 0-1.8.2m-7.5-7.6a2 2 0 0 0-1.4.5m8.6 2.5.9-.1m-.7.3 1-.1m-.7.4.7-.1h.3m-.7.3h1.1m.2.2h-.9m.5.4.8-.2m.4.3h-1m.3.4 1-.2m.4.4h-1m.4.3 1-.1m.3.2-.9.2m.3.3 1.1-.1m.3.3h-1m1.9.7-1.2.1m.4.3 1.2-.2m-.3 1.2h.6l1.2-.2m.3.3-1.5.2h-.4m.3.3 2-.2m.6.3H336l-.9.2m.5.4.6-.2 1.6-.1m.3.3H337l-.9.3m.6.2 1.2-.2h1.3m.2.2h-1q-.3.2-1.3.2m.3.2 1-.1 1.1-.1m-1.7.4h1.4l.5-.1m-11.5-7.7.5-.2h.6m-1.4 0q.2-.2.5-.2h.6m3.8 4.2.5-.1h.7m0 1 1.1-.2m.6.4-1.5.2m-5.6-5.9q-.5 0-.8.4m7 .9 1-.1m-.7.3.9-.1m-.6.4.6-.1h.3m-.6.4 1-.2m.2.2c-.2 0-1 0-1 .2m.4.2s.7-.2.9-.1m.4.2-1 .1m.3.2 1-.1m.3.3-1 .1m.4.3 1-.1m.3.1-1 .2m.4.3 1-.1m.3.3h-1m1.8.6-1 .1m.2.3 1.3-.2m-.4 1.2.5-.1c.6 0 .7-.2 1.2-.1m.2.2-1.7.2m.2.3 1.9-.2m.5.3H342l-.8.2m.4.3.5-.1 1.5-.2m.4.3h-1.2l-1 .2m.6.3 1.2-.2h1.2m.2.2h-1l-1.2.2m.3.1 1-.1h1m-1.7.3h1.3l.5-.1m-10.6-7.1.4-.1h.6m-1.3-.1.4-.1h.4l.2-.1m3.6 3.9h.4l.3-.1h.3m0 1q.6 0 1.1-.2m.6.4-1.5.1m-5-5.4q-.6 0-.9.3"/>
+ <g fill="#fc0">
+ <path d="m287.6 298.6.6 4.5q-1.8-.4-2.7 1.2c-.9 1.7-.1 3 1.5 3.7l2.1 1.2 4-7.8-1.6-.8-1.6 3.1-.4-4.1zm.6 5.9.9.3h.1l-1 2.2-.3-.1q-1.2-.5-.8-1.7.5-.9 1.1-.7"/>
+ <path fill-rule="evenodd" d="m280.7 302.7 1-1.6-2.3-1.6.8-1.2 2.3 1.6 1.4-2-2.5-1.6.9-1.3 3.8 2.7-4.8 7.2-3.9-2.6.8-1.2z"/>
+ <path d="m279 292.5-2 2.5-.7-.6q-2.1-1.9-4 .2c-1.3 1.5-.8 2.9.6 4.1l1.9 1.6 5.6-6.7-1.3-1.1zm-4.4 2.8q.5 0 1 .6l.3.2-1.6 1.8-.2-.2q-1.2-.7-.4-1.9.5-.5 1-.5z"/>
+ <path fill-rule="evenodd" d="m268.4 294.6-1.2-1.3 3.6-3.3c.8-.7 1.9-1.8.9-3-1-1-2.3 0-3 .6L265 291l-1.2-1.3 3.9-3.5c1.6-1.4 3.4-1.8 5 0s1.1 3.6-.5 5z"/>
+ <path d="M265.1 278.1q-.7 0-1.5.5c-.8.5-1.4 1.5-.9 2.5q-1-.3-1.9.3-2 1.5-.4 3.6l1.3 1.8 7.2-5-1.6-2.2q-.9-1.3-2.2-1.5m0 1.9q.8 0 1.3.9l.2.3-1.8 1.2-.2-.2c-.4-.6-.9-1.4 0-2zm-2.5 2.5q.5 0 .8.6l.1.2-1.7 1.2v-.2q-.9-.8.1-1.5z"/>
+ <path fill-rule="evenodd" d="m264.6 275.3-7.7 4.2-.8-1.6 6.3-3.4-1.1-2.2 1.2-.7zm-11.4-3.5 8-3.5.6 1.6-8 3.5zm-1-9.5a3 3 0 0 0-.3 2.2c.6 1.5 2.3 2 3.7 1.5s2.5-1.8 2-3.4a3 3 0 0 0-1.5-1.6l1.9-.6q.9.7 1.1 1.8a4.5 4.5 0 0 1-2.9 5.6c-2.4.7-5-.3-5.8-2.8a5 5 0 0 1-.2-2.1z"/>
+ <path d="m256.4 250.6-8.2 5 .2 1.3 9.4 2-.3-1.9-2-.4-.5-3.1 1.7-1zm-2.7 3.6.4 2.1-3.3-.4zm-2-19.9c-2.2 0-4 1.6-4.2 4l-.2 2.6 8.7.7.2-2.5a4.3 4.3 0 0 0-4-4.8zm-.3 2h.6q2.6 0 2.4 3v.2l-5.2-.4v-.3q.2-2.4 2.2-2.5"/>
+ <path fill-rule="evenodd" d="m250.2 229.5 1.9.4.6-2.8 1.4.3-.6 2.8 2.3.5.6-2.9 1.5.3-1 4.6-8.5-1.8 1-4.6 1.4.3zm3.3-11.4 1.8.6 1-2.6 1.4.6-1 2.6 2.2.8 1-2.7 1.4.5-1.7 4.4-8.1-3.1 1.7-4.4 1.4.5zm8.9-2.3-7.8-4 .8-1.5 6.4 3.3 1.2-2.2 1.3.6zm1.9-15.9q-.9 0-1.4.7a1 1 0 0 0 0 1.5c1.3.8 3-2.4 5.3-.7 1.4 1 1.7 2.7.6 4.2q-1.3 1.4-3 1.2l-.2-1.6q1.1.4 2-.5.5-1-.4-1.7c-.7-.5-1.4 0-2 .4q-1.5 1.2-3.1.2a2.6 2.6 0 0 1-.6-3.6 4 4 0 0 1 2.3-1.5z"/>
+ <path d="m268.1 192.3-1 1 4 8.7 1.3-1.4-.7-1.7 2.1-2.3 1.8.8 1.3-1.4-8.7-3.8zm1.4 2.4 2.8 1.3-1.4 1.4z"/>
+ <path fill-rule="evenodd" d="m278.3 195-5.5-6.8 1.4-1.1 4.5 5.6 2-1.6 1 1.2zm4.5-14 1.6-1 1.8 9.5-.8.5-7.8-5.7 1.6-1 5 3.8z"/>
+ <path d="m290.6 176.8-1.3.6.5 9.6 1.7-.7v-2l2.8-1.4 1.4 1.4 1.7-.7zm.3 2.9 2.2 2.2-1.8.8-.3-3zm9.4-6-1.4.3-2.4.7 2.5 8.3 2.4-.6a4.3 4.3 0 0 0 3-5.5q-1-3-4-3.1zm0 1.9q1.6 0 2.2 2c.4 1.4 0 2.7-2 3.2l-.2.1-1.5-5 .3-.1zm10.5-4.3h-.5a4.4 4.4 0 0 0-3.8 5.1 4.4 4.4 0 0 0 5 4 4.5 4.5 0 0 0 3.9-5.1 4.5 4.5 0 0 0-4.6-4m-.2 1.9c1.4-.2 2.5 1 2.7 2.3.2 1.1-.7 2.8-2 3-1.4.1-2.6-1.2-2.8-2.4-.1-1.3.7-2.7 2.1-2.9m7.4-2.4v8.8h1.7V176l2.2 3.5h2.1l-2.5-3.7c1.2-.1 1.9-1.2 1.9-2.4q-.1-2.7-3-2.6zm1.8 1.6h.3q1.4-.2 1.4 1.2t-1.5 1.2h-.2z"/>
+ <path fill-rule="evenodd" d="m336.6 174.3-.5 2 2.7.6-.3 1.4-2.8-.7-.5 2.3 2.8.8-.4 1.4-4.5-1.2 2.1-8.4 4.5 1.1-.3 1.5zm6.6 0 1.2.5 2.1 7.5 2.2-5.5 1.7.7-3.3 8.3-1.2-.5-2.2-7.5-2.2 5.5-1.6-.6zm9.3 14.3 4.7-7.4 1.5 1-3.9 6 2.1 1.4-.8 1.2z"/>
+ <path d="m365.4 186.6-8.4 4.7 1.4 1.2 1.8-1 2.4 2-.6 2 1.5 1.1 3-9.1zm-1.3 2.5-1 3-1.6-1.3zm14.3 11.2-9.2 2.3 1 1.5 2-.4 1.8 2.5-1 1.7 1 1.5 5.3-8-.9-1.2zm-1.8 2-1.8 2.6-1.1-1.6z"/>
+ <path fill-rule="evenodd" d="m375.4 211.9-.8-1.6 8.7-2.7.6 1.1-4.1 4.6 6-.6.6 1.1-7.3 5.3-.9-1.6 4.6-3.1-6 .6-.2-.5 4-4.3zm11.6 8.3-1.8.6 1 2.7-1.5.5-.9-2.7-2.2.7 1 2.8-1.5.5-1.5-4.5 8.3-2.7 1.5 4.4-1.4.5z"/>
+ <path d="m390.3 225.7-8.6 1.8.4 1.8 3.4-.8-3 3 .6 2 3-3.2a2 2 0 0 0 2.7 1.2q2.7-.7 2-3.4zm-1.1 2.1v.2q.4 1.5-.8 1.7-1.4.3-1.5-1.2v-.2z"/>
+ <path fill-rule="evenodd" d="m392 236-8.6 1-.2-1.7 8.7-1zm-1.8 9.5a3 3 0 0 0 .8-2c0-1.7-1.5-2.7-3-2.6-1.5 0-3 1-2.9 2.6q0 1.2 1 2h-2a5 5 0 0 1-.6-2 4.5 4.5 0 0 1 4.4-4.5c2.5 0 4.7 1.7 4.8 4.4a4 4 0 0 1-.5 2z"/>
+ <path d="m383.7 247.1-.2 1.9 1.8.9-.4 3.1-2 .5-.2 1.8 9.3-2.2.2-1.4zm3 3.6 2.7 1.2-3 .7.3-2z"/>
+ <path fill-rule="evenodd" d="M384 272.1a3 3 0 0 0 1.6-1.5c.7-1.6-.4-3-1.8-3.6-1.3-.5-3-.1-3.7 1.4a3 3 0 0 0 .2 2.2l-2-.7a5 5 0 0 1 .3-2.1 4.5 4.5 0 0 1 5.8-2.5c2.4.9 3.7 3.4 2.8 5.9a5 5 0 0 1-1.3 1.7zm-1.4 4.7-1.7-.9-1.3 2.5-1.3-.7 1.3-2.5-2-1.1-1.5 2.6-1.3-.7 2.3-4.2 7.6 4.2-2.2 4.1-1.3-.7zm-1.7 6.4-.7 1-7.7.3 4.7 3.5-1 1.4-7.3-5.2.8-1 7.7-.3-4.8-3.5 1.1-1.4zm-9 8.7 1.2-1.3 1 1-3.7 4-1-1 1.2-1.4-5.2-5 1.2-1.3z"/>
+ <path d="m362.8 290.7-1.4 1.1 2.3 2.8-4-1.3-1.6 1.4 4.3 1.1q-1.1 1.7.2 3c1.1 1.5 2.6 1.3 4 .2l1.8-1.6zm1.7 5 1.5 1.8-.2.1c-.6.5-1.2.8-1.8 0q-.9-1 .4-1.8zm-7.1-.4-1.6 1 .3 1.9-2.7 1.6-1.5-1.1-1.6 1 7.7 5.7 1.1-.7-1.7-9.5zm-1 4.5.8 3h-.1l-2.4-2z"/>
+ <path fill-rule="evenodd" d="m348.7 300.3 3.8 8-1.6.7-3-6.5-2.4 1-.6-1.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sx.svg b/apps/web/public/flags/sx.svg
new file mode 100644
index 00000000..ac785617
--- /dev/null
+++ b/apps/web/public/flags/sx.svg
@@ -0,0 +1,56 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-sx" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="sx-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#sx-a)" transform="scale(.9375)">
+ <path fill="#ed2939" fill-rule="evenodd" d="M0 0h768v256H341.3z"/>
+ <path fill="#002395" fill-rule="evenodd" d="M0 512h768V256H341.3z"/>
+ <path fill="#fff" fill-rule="evenodd" d="m0 0 341.3 256L0 512z"/>
+ <path fill="#ff0" d="m172.3 193.2.1-4s-2.1-3.4.4-7c0 0-5.3-2.8-4-7.2 0 0-4.8-1.2-4.5-6.4 0 0-5-.3-5.6-4.7 0 0-5.1.8-7.4-3.4 0 0-5 1-6.4-2.5 0 0-4.9 1.6-7.7-2.5 0 0-5.2 2.1-7.3-1.8-2.1 3.9-7.3 1.8-7.3 1.8-2.8 4.1-7.7 2.4-7.7 2.4-1.4 3.5-6.3 2.5-6.3 2.5-2.3 4.3-7.4 3.4-7.4 3.4-.5 4.4-5.6 4.8-5.6 4.8a6 6 0 0 1-4.4 6.4c1.3 4.3-4 7.1-4 7.1 2.6 3.7.5 7 .5 7l-.1 3.7z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M377.2 843.1v-3.5s-1.8-3 .4-6c0 0-4.6-2.5-3.5-6.3 0 0-4.2-1-3.9-5.6 0 0-4.5-.3-5-4.1 0 0-4.4.7-6.3-3 0 0-4.4.8-5.6-2.2 0 0-4.3 1.5-6.8-2.1 0 0-4.5 1.8-6.3-1.6-1.9 3.4-6.4 1.6-6.4 1.6-2.4 3.5-6.7 2-6.7 2-1.2 3.1-5.5 2.3-5.5 2.3-2 3.7-6.5 3-6.5 3-.4 3.7-4.9 4-4.9 4a5 5 0 0 1-3.7 5.6c1 3.8-3.5 6.2-3.5 6.2 2.2 3.2.3 6.2.3 6.2v3.2z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="red" d="M170.3 188.2c-13.3-1.3-28.6-4.5-40.4 2.2-8-4.7-19-4.4-28.4-3.5-5.1 1-11.1 1-16.5 1.8l-.8.1c-9.7.7-18.5-2.2-27-6 2.8 15.2 5.7 30.7 7.2 46.6C67.6 253 53.3 272.7 59 296c3.5 11.2 15.8 17.7 27 19a215 215 0 0 1 32.2 4.5 32 32 0 0 1 5.5 1.9 20 20 0 0 1 6.6 4.7c6-6.3 15-8.1 23.7-9 15.8-1.9 35.3-.9 45-15.2v-.8c5.3-8 4.6-20 2.3-29-.2-3.1-1-5.9-1.5-8.9-9.6-25.5-1.3-54.2 2.8-80a61 61 0 0 1-16.4 5.5c-4.5.6-9.5.4-14 .1z"/>
+ <path fill="#80cfe1" d="M190.2 261.5c0 1.6.9 3 1.2 4.5 1.9 11.2 3.6 26-7.8 32.9-12.8 8-29.4 4.6-44.1 8.9-3 .8-7 3.5-9 5.4-1.4-.9-2.7-2.2-4.4-3-12.1-6.4-27.9-4.3-41.5-7.8-6.9-2.1-14-7.5-15.8-14.5-4.4-18.4 6.2-34.1 5-52.4-.8-14-3.2-27.3-6.4-40.4 10.7 5 23 5.8 35 3.4A52 52 0 0 1 130 201c4.6-2 10-2.9 15-3.4 9.3 1 19.4 2.6 29.1 2.6q9.7-.8 18-4.7c-3.3 21.6-9.8 44.2-1.9 66"/>
+ <path fill="#fff" d="M171 265.8v-20.4h2.4l-31-20-.1-10.5h3l-15.6-11-15.4 11h3v10.5l-30.9 20h2.5v20.3H171"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M376 906.5v-17.8h2.1l-27-17.5-.1-9h2.6l-13.6-9.8-13.5 9.7h2.6l.1 9.1-27 17.5h2.2v17.7z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#fff" d="M180.6 292.5v6.3H80.5v-6.4z"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M384.4 929.8v5.5H297v-5.6h87.4z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#fff" d="M87.1 292.1v-21.5h4l-.2 21.7.2-21.6-5.8-.1v-4.7l89.4.2v4.5h-5.4v21.8l-.1-21.8h4l.2 21.6"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M302.8 929.4v-18.8h3.5l-.2 19 .2-18.8-5-.2v-4l78 .1v4h-4.8l.1 19-.2-19h3.6l.1 18.8" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M319.6 924.8v-13.1H309v13l10.5.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M312 914.4v7.6h4.8v-7.6h-4.9m59 10.4-.1-13h-10.4v13h10.5" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M363.2 914.5v7.6h4.8v-7.6h-4.8m7.6-11v-13h-10.5v13z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M363.1 893.2v7.6h4.8v-7.6h-4.8m-43.6 10.3v-13.1H309v13h10.5z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M311.9 893.1v7.6h4.8v-7.6h-4.8m26.6 10.4v-13.1H328v13h10.5" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M330.8 893.1v7.6h4.8v-7.6h-4.8m22.3 10.4v-13l-10.5-.1v13l10.5.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M345.4 893.1v7.6h4.9v-7.6h-4.9" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#fff" d="m147.7 257.8.2 34.6H113l-.1-34.6z"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="m355.7 899.5.1 30.2h-30.3l-.1-30.2zm-30.5 8.6h30.6M329 929.7v-21.4m23.1 21.4v-21.3m14.7-21.8-17-12.4h-19.3l-17 12.4h53.3M332 863.8v7.6h16.2v-7.6H332" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M336.4 865.7v3.8h7.4v-3.8h-7.4M340 855l9 6.4h-17.9l9-6.4" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#fff" d="M171.4 202c2.9 0 3.6 12 3.6 18 2.6.8 8.1 4.3 10.6 7.4h-28.2c2.4-3.1 7.9-6.6 10.4-7.3 0-6 .6-18.2 3.6-18"/>
+ <path fill="none" stroke="#000" stroke-width="1.2" d="M376.3 850.8c2.6 0 3.2 10.5 3.2 15.8 2.2.6 7.1 3.7 9.2 6.4h-24.6c2.1-2.7 7-5.8 9.1-6.4 0-5.3.6-15.8 3.1-15.8m-49.5 49.5h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m4.5 0h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m5 0h2.1l-.6 1.2s1 1.4 0 3l.6 1h-2.1l.5-1s-1-1.8 0-3l-.6-1.2zm5.5 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2.1l.6-1s-1-1.8 0-3zm4.9 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1m4.9 0h2.2l-.7 1.2s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#ff0" d="M130.5 336.8c13 0 29-2.7 36.5-6.5l16.5-1.5.4 20.1c-14 7.7-46.2 9.4-53.3 9.3s-39.7-1.6-53.8-9.3l.2-20.2 16.5 1.5a98 98 0 0 0 37 6.6"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="M340.7 968.4c11.4 0 25.3-2.3 31.9-5.7l14.3-1.2.3 17.5c-12.1 6.7-40.3 8.2-46.4 8.1s-34.7-1.4-47-8.2l.2-17.5 14.4 1.3c6.6 3.4 21 5.7 32.3 5.7" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#ff0" d="m34.4 251 14.5 4.6-4.4 23.5-13.7 2.2s-2.3-12.4 3.6-30.3"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m256.9 893.6 12.6 4-3.8 20.5-12 1.9s-2-10.8 3.2-26.4z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#7e7e7e" d="m44.5 278.9-13.7 2.4 8.7-12.4z"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m265.7 917.9-12 2 7.6-10.7 4.4 8.7" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#ff0" d="m25.7 268 14 1c.3 11.8 1.8 57 55.8 59.5L93.8 345c-65.7.6-70.7-55.5-68-77"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m249.3 908.4 12.2.8c.3 10.4 1.5 49.8 48.7 52l-1.5 14.4c-57.4.6-61.7-48.4-59.4-67.2zm44.8 70.1 14.4-3.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#ff0" d="m225.4 251.2-14.4 4.6 4.6 23.4 13.8 2.2s2.2-12.3-4-30.2"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m423.5 893.7-12.6 4 4 20.5 12 2s2-10.8-3.4-26.5z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#7e7e7e" d="m215.6 279 13.7 2.5-8.8-12.4-5 9.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m414.9 918 12 2.1-7.7-10.7-4.3 8.6" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#ff0" d="m234.3 268.1-14 1c-.2 11.8-1.3 57-55.3 59.5l2 16.4c65.7.8 70.2-55.4 67.4-76.9"/>
+ <path fill="none" stroke="#000" stroke-width=".3" d="m431.2 908.5-12.2.8c-.2 10.4-1 49.9-48.2 52l1.6 14.3c57.4.7 61.3-48.3 58.8-67zm-44.2 70-14.4-3" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+ <path fill="#009fc5" d="M121.8 346.7q-.7.3-1.5.2l-2.6-.1.2-3.3 2.6.2q.8 0 1.2.3.7.3.7 1.4 0 .9-.7 1.3m-4.3 5 .2-3.9 3 .2q1.5.1 2.3-.7.8-.6.8-1.8a3 3 0 0 0-.6-2 3 3 0 0 0-2-.9l-4.4-.3-.6 9.4zm9.4-7.7h3.2l1.1.2q.7.4.7 1.4t-.5 1.3l-1.4.3h-3.1zm0 8.2v-4l3 .1q.8 0 1.2.2.7.3.7 1.2v2.3l.2.3h1.6v-.2l-.4-.5-.1-.8v-1.3q0-.9-.4-1.2l-.8-.6q.7-.3 1-.8t.4-1.4q0-1.6-1.4-2.2l-1.8-.4h-4.5v9.4zm10-2a5 5 0 0 1-1-2.6q0-2 .8-3a3 3 0 0 1 2.4-1 3 3 0 0 1 2.4.8q1 1 1.1 2.6a5 5 0 0 1-.6 2.8q-.7 1.3-2.5 1.3c-1.8 0-2-.2-2.7-.9m-1.5-5.9a6 6 0 0 0-.8 3.3q.1 2.1 1.4 3.4a5 5 0 0 0 3.6 1.3 4 4 0 0 0 3.5-1.8 6 6 0 0 0 1-3.6 5 5 0 0 0-1.2-3.1q-1.3-1.5-3.9-1.4-2.4 0-3.6 1.9m44-13.5q1.5-.2 2.5.1 1.5.5 2.2 2.3l-1.3.2a2 2 0 0 0-1.2-1.3 4 4 0 0 0-2-.2 3 3 0 0 0-2 1.3q-.8 1-.5 3a5 5 0 0 0 1.2 2.6q1 .9 2.6.7a3 3 0 0 0 2-1.1q.8-.9.5-2.5l-3 .5-.1-1 4.2-.7.8 5h-.9l-.5-1-1 1q-.8.7-2 .9a4 4 0 0 1-3.2-.7 5 5 0 0 1-1.9-3.4 5 5 0 0 1 .7-4 4 4 0 0 1 3-1.7m9.4-.7 3-1.1 1.1-.2q.9 0 1.2 1t0 1.5q-.4.5-1.3.8l-2.8 1zm3 7.7-1.4-3.7 2.8-1 1.1-.3q.8.1 1.2 1l.6 1.4.3.7.2.3 1.5-.6v-.2q-.5 0-.6-.4-.3-.2-.4-.7l-.5-1.2q-.3-.7-.7-1l-1-.2.6-1.2-.2-1.4q-.6-1.6-2-1.6l-1.9.3-4.2 1.5 3.4 8.8 1.2-.4m11-4.7-5.3-7.8 5.8-3.8.7 1-4.8 3 1.6 2.4 4.5-2.8.6.9-4.5 2.8 1.8 2.7 5-3.2.6 1zm4.7-13.8 1.5-1.7q1.2-1.2 2.3-1 1.3 0 2.6 1.3a5 5 0 0 1 1.4 2q.2.9 0 1.6l-.7 1-1.5 1.6zm8.1 3.6q1.6-1.7.7-4a7 7 0 0 0-1.7-2.1 5 5 0 0 0-3.1-1.4q-1.8-.2-3.1 1.3l-2.6 2.8 7.2 6.3 2.6-2.8m5.6-7.3-8.3-5 .7-1 8.3 4.9zm3.3-5.6-9-3.6 2.6-6.3 1.1.4-2.1 5.2 2.7 1 2-4.7 1 .4-2 4.8 3 1.2 2.3-5.2 1 .4zm4-11-9.4-2 .4-1.5 8.7-3-7.7-1.7.3-1.1 9.4 2-.3 1.4-8.7 3 7.7 1.7zm-.8-12 .1-1.2q.8 0 1.4-.2 1-.6 1.2-2.1l-.1-1.4q-.3-1.1-1.3-1.2t-1.2.3q-.4.4-.7 1.5l-.5 1.2q-.3 1.2-.8 1.7-.6.9-1.8.7a3 3 0 0 1-2-1q-.9-1-.7-2.6.1-1.5 1-2.4.8-1 2.4-.8l-.1 1.2q-.8 0-1.2.3-.9.5-1 1.9-.1 1 .4 1.6t1 .6q.8.1 1.1-.4l.7-1.7.4-1.3q.3-.9.8-1.4.8-.7 2-.7 1.7.2 2.2 1.4t.5 2.7a4 4 0 0 1-1.2 2.6q-1 .9-2.6.7M32 286.7l.3 1.2q-.9.1-1.3.6-.8.8-.5 2.4l.4 1.2q.6 1 1.7.9.7-.1 1-.7l.3-1.6v-1.3q0-1.3.3-1.8.5-.9 1.7-1.2 1.3-.2 2.2.6 1 .6 1.3 2.2a4 4 0 0 1-.3 2.6q-.5 1.1-2.1 1.4l-.2-1.1 1-.6q.7-.7.5-2.1-.2-1.2-.8-1.5l-1.2-.3a1 1 0 0 0-1 .7l-.1 1.8-.1 1.3-.4 1.6a2 2 0 0 1-1.7 1.2q-1.6.3-2.5-.8a5 5 0 0 1-1.2-2.4 4 4 0 0 1 .5-2.9 3 3 0 0 1 2.2-1.3m-.6 12.3 9.3-2.8 2.1 6.5-1.1.4-1.8-5.3-2.8.8 1.7 5-1.1.3-1.6-5-3.2 1 1.8 5.4-1 .3zm4.1 11.3 8.5-4.5 1 1.6-5.9 6.1 8.5-1.4.9 1.5-8.5 4.5-.6-1 5-2.7.9-.4 1.3-.7-8.5 1.5-.6-1.1 5.8-6.2-.3.2-1 .5-.9.5-5 2.6zm15.8 12.5q-.6-.2-1.2-.8l-1.8-1.8 2.4-2.2 1.8 1.8.7 1q.3.8-.5 1.5t-1.4.5m-6.8.8 3-2.7 2 2.1q1.2 1 2.2 1a3 3 0 0 0 2-.8 3 3 0 0 0 .8-2q0-1-.9-1.9l-3-3-7 6.4zm8.4 7.5 5.1-8 6 3.6-.6 1-5-3-1.5 2.5 4.5 2.7-.5 1-4.6-2.8-1.7 2.7 5 3-.6 1zm15-1.6 3.1 1 1 .5q.6.6.2 1.5-.2 1-.9 1.1l-1.5-.1-2.9-1zm-2.6 7.9 1.3-3.8 2.8.9q.8.2 1.1.5.5.5.3 1.4l-.5 1.5-.1.7v.3l1.5.5v-.2l-.2-.7.2-.7.4-1.2q.2-.9 0-1.2 0-.5-.6-.9.8 0 1.3-.5t.7-1.2q.6-1.5-.6-2.5l-1.6-.9-4.3-1.3-3 8.9z"/>
+ <path fill="#bc715f" d="M78.5 175.6c1-2.7 11.3-10 44.8-6.8 0 0 5.7 3.5 9 3 2-.2-1 .2-3.6-1.9-2.5-2-3-6.3 2.7-6.1 5.8.1 27.3 1.3 27.7 3.3s-11.4 2.7-15.7 2.6c-4.4-.1-4 2.1.4 2 13.7-.6 28.6-5.4 44.3 5.8 1.9 1.3-4.7 1.5-9.8-.6 0 0-14 .7-20-.3 0 0-4.5 3.8-10.6 3.4.8 2-2.2 9.2-21 3.7-3.2 1-14.5 2.9-13.3-.5-3 0-8.2 1-9-.7s9.2-4.2 11-6c0 0-21.2.2-25.2-1.3 0 0-12.5 2.8-11.7.4"/>
+ <path fill="#008737" d="M85.3 205.2c.4-.6.6-1.8 1.6-1.7 2 .5 3.5 4.4 6 1.9 1-.2 1.3 1 2 1.2.5 2.1 2.3-.5 3.5-.3q4.3-1.8 9.4-1c0 2.2-1.6 4.5-3.6 5.7 0 2 2 3.4 1.9 5.5-.3.8 0 2-1.2 2.3-1.6-.3-3-.4-4.3-1.3q-.2-.3-.6-.3c-.2.7 1 1.4 1.4 2.1-.8 1.3-2 .1-3.1.1-.3.8 0 1.7-.8 2.2-1.3 0-1.6-1.5-2.4-2.2-.9.9.6 1.4.8 2.1-.6 2.8-.5 5.5-3.2 7.3l-1.9.9c-.5-1.4-.2-3.5-.5-5q-1.4 2.7-3.5 4.9c-2-.6-3-2.8-3.4-4.7a6 6 0 0 1 1.3-6.2c-.5-1-2.5-.8-2.8-2.4-3-2-4.5 3.3-6.4.6a9 9 0 0 1 2-7.6c-.5-1-1.9-.8-2.7-1.4-1.8-1.6-4.5-3.2-4.3-6a14 14 0 0 1 14.7 3.3"/>
+ <path fill="#ff0" d="M87.9 204.9c-.1 2.3 1.5.6 2.8 2-1-.4-1.7 1.7-2.7.5l-.6.6c.4.8 1 .9.4 1.8-1 .4-1.3-1-1.8-1.5q.2-.4-.2-.8-.8.7-2 .6c-.2-.4-.7-1-.2-1.4.8-1 2 .4 2.6-.3.1-.7-.5-1.5.3-2 .5.1 1.2-.2 1.4.5m6.2 1.9c.1.4-.2 1 .4 1.4q1.3-.5 2 .6.2.8-.4 1.2l-1.2-.3q0-.2-.4-.6-.8 0-1.2.6c.3.4 1 .7.8 1.2-.7.7-1-.6-1.8-.2-.6-.2.1-1.3-.7-1.7-1 0-.3 1.6-1.6 1q-.8-.8-.4-1.7a2 2 0 0 1 1.9.2c.8-.9.8-4.1 2.7-1.7m-7.8 3.3c.5.8-.2 1.8.5 2.6 1-2 2 .4 3.2.2.4.5.1 1.1.2 1.6-1.5.4-3.3.9-4.6-.3l-.4.4c.8.7 1.5 1.6.9 2.8-1.1.2-2.9.3-3.4-.9-.3-1 .7-1.6-.4-2.4-.7 1-.7 2.2-2.2 1.3a2 2 0 0 1-.8-2.5c1-1.6 2.8 0 3.8-.7.2-1.4-.3-2.6 1-3.3 1-.2 1.5.6 2.2 1.2"/>
+ <path fill="#fff" d="M90.6 211c-.5 2.3-2.2-.1-3-.2 1-2 1.7.6 3 .2m5.4 2.5c-1.2.3-1-1.2-1.6-1.8l.5-.4z"/>
+ <path fill="#ff0" d="M94.4 213c.3.8-.8 1.5.2 2l.8-.7q1.4.1 2.4 1.2c.6 1.7-1.1 1.7-2 2.2h-1c.2-.6-.5-.8-.6-1a1 1 0 0 0-1.1.3c.2 1 1.5 2 .2 2.9-1.2 0-3 .4-2.9-1.2-.4-1 1.2-2.3-.5-2.4-.6 1.3-1.2 2.4-2.7 1.3l.2-1.8c1.4 0 3.1.3 3.7-1.3.4-1.1-.7-2.2.3-3 1.5-.4 2.3.6 3 1.5"/>
+ <path d="M93.4 215.6c.3.9-.6 1-1.1 1.4q-.8 0-1.4-.6c-.3-1 .5-1.2 1-1.6.7-.3 1 .5 1.5.8"/>
+ <path fill="#fff" d="M92.5 216.2q-.2.2-.6.2l-.2-1q1-.1.8.8"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/sy.svg b/apps/web/public/flags/sy.svg
new file mode 100644
index 00000000..97c05cfc
--- /dev/null
+++ b/apps/web/public/flags/sy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="flag-icons-sy" viewBox="0 0 640 480">
+ <path d="M0 0h640v480H0Z"/>
+ <path fill="#fff" d="M0 0h640v320H0Z"/>
+ <path fill="#007a3d" d="M0 0h640v160H0Z"/>
+ <path fill="#ce1126" d="m101 300 39-120 39 120-102-74.2h126M461 300l39-120 39 120-102-74.2h126M281 300l39-120 39 120-102.1-74.2h126.2"/>
+</svg>
diff --git a/apps/web/public/flags/sz.svg b/apps/web/public/flags/sz.svg
new file mode 100644
index 00000000..eb538e44
--- /dev/null
+++ b/apps/web/public/flags/sz.svg
@@ -0,0 +1,34 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-sz" viewBox="0 0 640 480">
+ <path fill="#3e5eb9" d="M0 0h640v480H0Z"/>
+ <path fill="#ffd900" d="M0 90h640v300H0Z"/>
+ <path fill="#b10c0c" d="M0 120h640v240H0Z"/>
+ <g fill="#ffd900" stroke="#000" transform="translate(-43.2)scale(1.2)">
+ <g id="sz-a">
+ <path fill="#fff" d="m492.9 154.3-24.3 8.6 24.2 8.5 24.3-8.5z"/>
+ <rect width="357.1" height="5.7" x="122.8" y="160" rx="3.1" ry="2.9"/>
+ <path d="M471.4 165.7a3 3 0 0 0 2.9-2.8 3 3 0 0 0-2.9-2.9m-2.8 5.7a3 3 0 0 0 2.8-2.8 3 3 0 0 0-2.8-2.9m-2.9 5.7a3 3 0 0 0 2.9-2.8 3 3 0 0 0-2.9-2.9"/>
+ </g>
+ <use xlink:href="#sz-a" width="100%" height="100%" x="-23.3" y="17.1"/>
+ <rect width="485.7" height="8.6" x="59.8" y="195.7" stroke-width="1.1" rx="4.2" ry="4.3"/>
+ </g>
+ <path fill="#fff" stroke="#000" stroke-width="1.2" d="M488.2 240c-34.3 34.3-80 102.9-171.4 102.9-80 0-137.1-68.6-171.4-102.9 34.2-34.3 91.4-102.9 171.4-102.9 91.4 0 137.1 68.6 171.4 102.9z"/>
+ <path d="M304.8 173c9.2 10.2 1.5 14.3 11.2 15 10.2.7 4.4 10.8 13 11.2 6 .2-.6 24.2 5.1 32 5.9 8.3 10.8 2.5 11 8.4 0 6.2-16 5.5-16.3 24.5-.5 10.9-13.6 11.6-14.2 18.6-.8 6.6 25.8 10.3 25.4 16.2-.3 6-28.7 5-30 11.7-.6 6 39 11 42.2 28.5-6 2-22.7 3.7-35.4 3.8-80 0-137.1-68.6-171.4-103 34.3-34.2 91.4-102.8 171.4-102.8 0 0-23.7 21.7-12 35.8z"/>
+ <g stroke="#fff" transform="translate(-43.2)scale(1.2)">
+ <g id="sz-d" stroke-width="6.9">
+ <g id="sz-c">
+ <path id="sz-b" d="M214 192.4v-22.9m13.8 0v22.9m13.8-22.9v22.9"/>
+ <use xlink:href="#sz-b" width="100%" height="100%" y="38.1"/>
+ </g>
+ <use xlink:href="#sz-c" width="100%" height="100%" x="41.6"/>
+ </g>
+ </g>
+ <use xlink:href="#sz-d" width="100%" height="100%" x="104.8" stroke="#000" transform="translate(-43.2)scale(1.2)"/>
+ <g fill="#a70000">
+ <path fill="#333" stroke="#000" d="M570.4 236c-5.2 8.9 4-3 26.4 12a22 22 0 0 1 7.8 15.3c-1-.7-1.9-2.3-3-3.2-1.6 1.6 1.6 9 2 12.5-3.5-2-3.2-2.8-4.3-5.2.2 2.8-.7 10.8.8 14-2.8-.8-2.6-3-4-3.5 1 3.5-.9 7.2-.4 11.2-1.6-1.6-3.4-2.9-4.1-3.5-.2 2-3.1 6.8-3.2 8.6a5 5 0 0 1-2-3 59 59 0 0 0-8 12.4c-4.7-4-16.6-14-18.2-19.4-1.4 3-3.4 4-7.2 6.2-1.6-8.4-7.5-17.8-4.4-25.1l-6.1 4.2a50 50 0 0 1 28-33.6z"/>
+ <path fill="#b3b3b3" d="M551 280.5c2.2-4.3 4.2-5.7 5.6-8.5 2.4-4.8 2.8-8.8 5-8.2 2 .6 2 2.6-.7 7.4s-4 5.8-9.9 9.3m14.6 10.2c-.2-3.2.7-4.6.6-6.7-.4-3.8-1.9-6.3.1-6.5 2-.1 2.9 1.1 2.9 4.8 0 3.8-.6 4.8-3.6 8.4m11.1 6.4c-.9-4.5-.2-6.5-.8-9.5-1-5.2-2.9-8.6-1-9.1s3 1.2 3.7 6.5c.6 5.2.3 6.7-1.9 12.2zm11.5-32c-2.7-2-4.3-2.2-6-3.5-3-2.4-4.6-4.8-5.6-3.6s-.3 2.6 3 4.7 4.2 2.3 8.6 2.4m-1.9 15.2c-1.4-3-3-3.7-3.8-5.6-1.6-3.4-1.6-6.3-3.5-5.6-1.7.8-1.9 2.3 0 5.6 2 3.2 3 3.8 7.2 5.6z"/>
+ <path fill="#333" stroke="#000" stroke-width="1.3" d="M53.8 244.6c-.4-2.6.2-3-1.4-5 2.4 1 2.4 3.7 5.3 1.8 1-.5 1.5-.5.2-3.5 3 .2 12.7 3.5 14.3 3.6 4.1.2 11.6-4.3 16.8 1.2 5 5 3.2 10.3 3.2 17.2-2-1-1-1.3-3.2-3.9 1.6 6.2 0 17.1 0 23.6-.8-1.6-.7-.9-1.5-2.5-2 5.9-4.6 7-4.6 14.1-.8-2.8 0-2.2-.9-3.6-2 4.5-16 8.3-10.6 12.8-4.8-2.8-7-2.6-9-5q-1.5.9-2.6 3.2c-8.5-3.8-5.5-12.2-12.1-17.9-1.2 2.4-.7 2.1-2 5.9-1.2-5.3-1.6-8.7-3.1-12.6-1.3 2.2-1.2 1.3-3.6 4.6-1-6.4-2.5-8-2-12.3-2.4 1.8-.8 1-3.3 3.2 2.4-16.5 12.6-28.8 20-25z"/>
+ <path fill="#b3b3b3" d="M43.4 271.7c2.1-5.4 4-7 5.5-10.4 2.5-6.1 2.9-11 5-10.3 2 .8 2 3.2-.8 9.2s-4 7.2-9.7 11.5m8.2 13.3c.8-4.8 2.2-6.4 2.8-9.6 1-5.4.5-9.4 2.4-9.2 2 .2 2.4 2.3 1.1 7.6-1.3 5.5-2.2 6.8-6.4 11.2zm9.8 9.4c.3-4.6 1.4-6.5 1.6-9.5.3-5.2-.8-9 1-9 2 0 2.6 1.9 2 7.1s-1.2 6.6-4.6 11.4M82.6 264c-4-4-6.4-4.8-9-7.4-4.6-4.6-6.9-8.8-8.6-7.3s-.6 3.7 4.3 8c4.8 4.5 6.5 5.1 13.4 6.7zm-2.4 15.6c-2.6-4-4.6-5.1-6.3-7.8-3-4.5-4-8.4-5.7-7.5s-1.3 3 1.9 7.5 4.5 5.2 10.1 7.8"/>
+ <path fill="#333" stroke="#000" d="M261.4 155.4c-4.8 9.2 8.3-3 28.8 12.4a35 35 0 0 1 9.2 19.3 62 62 0 0 1-12-5.3s9 9.2 9 19.6c-3.2-2-4.8-1.7-6-4.1 0 3.3 3 5.5 3 10.7a42 42 0 0 0-6.3-4.2c3 5.3-5.5 15.5-1.2 18.8a27 27 0 0 1-18.1-11c-1.6 1-1.8 2.7-1.9 4.6.3.1-11.3-8.7-10.2-12a10 10 0 0 0-2.2 5.8 32 32 0 0 1-9.6-13.8c-1.8 2.4-2 2.4-3.9 5-1.4-8.7-1.4-8.4 1.4-15.8l-5.6 4.3a50 50 0 0 1 25.6-34.3z"/>
+ <path fill="#b3b3b3" d="M249.6 200.2c.8-6.3 2.4-8.6 3-12.8.8-7-.2-12.4 2.4-12.2 2.4.2 3.2 2.8 2 10-1.3 7.1-2.4 8.8-7.3 15.1zm13.3 11.6c-.5-5.2.5-7.6.1-11-.5-6-2.4-10.2-.2-10.5s3.4 1.6 3.6 7.8c.2 6-.3 7.7-3.5 13.7m20.8 9.6c-2.3-4.7-4.3-6-5.7-9-2.6-5.3-3.2-9.5-5.1-8.8-2 .8-1.9 3 1 8.2 2.8 5 4.1 6.1 9.7 9.6zm7.1-41.5c-5.8-3-8.7-3-12.4-5-6.5-3.4-10.3-7.1-11.6-5-1.4 2 .4 4.1 7.1 7.2s8.8 3.2 16.8 2.8zm2 17.3c-4-3.4-6.6-4-9.3-6.2-4.8-4-7.1-7.7-8.6-6.2-1.6 1.6-.6 3.6 4.4 7.3s6.7 4.1 13.6 5.1z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tc.svg b/apps/web/public/flags/tc.svg
new file mode 100644
index 00000000..12589710
--- /dev/null
+++ b/apps/web/public/flags/tc.svg
@@ -0,0 +1,50 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-tc" viewBox="0 0 640 480">
+ <path fill="#002868" d="M640 480V0H0v480z"/>
+ <g fill="none" stroke="#000">
+ <path fill="#fcd116" stroke-width="8" d="M590 174.6v90c0 60-30 124.6-105 159.6-75-35-105-99.6-105-159.6v-90z"/>
+ <path stroke="#fff" stroke-width="7" d="M590 174.6v90c0 60-30 124.6-105 159.6-75-35-105-99.6-105-159.6v-90z"/>
+ <g stroke-linecap="round" stroke-linejoin="round" stroke-width="2.2">
+ <path fill="#fcad56" stroke-width=".3" d="M447.1 273.7c-2.7 4.7-7.4 5.7-11 4.2-3.7-1.5-7.1-10.3-10.9-15-3.6-4.7-4.6-2.7-7-5.4a38 38 0 0 0-12-7.4c-3.3-1.5-6.7-2.9-9-8.6a10 10 0 0 1 5.2-5.1c1.9-.7 3.4-3.4 3.6-5.8.3-2.2 2.3-4.7 5-6.6-1.3.2-3.9-.3-5.1-1.1-1.1-1-3-.8-4.1 0q-1.7 1.2-4.6.8c.8-.6 2.2-2 2.3-3.2s1.6-1.9 4.5-1.9c2.8 0 4.6-3.2 6.9-3.2-1.6 0-1.3-2.8-.4-3-4-.7-3.5-4-1.9-4-.1-.4-.6-1-2.5-1.5-1.7-.7-.9-2.3.5-3.3-1.2-2.5-.1-4.4 1.9-6-2.8-.1.3-4 1-6.1.8-2 1.1-2.3 2-1 1 1.1 3.3 3.7 5.9 4.5q3.7 1 4.5 4.2c.5 2.3 1.5 3.4 4.2 4.4 2.9.9 6.8 3.3 6.3 8.6a9 9 0 0 1 5.2 1.9"/>
+ <path fill="#ffa1a1" stroke-width=".3" d="M454 206a8 8 0 0 0 3.1 6.4c1.9 1.5 3.5 2.7 3.1 4.6-.3 2 .4 3.2 2 4.5 1.8 1.2 3 2.7 2.6 5.2s-.2 4 .8 5.9 2.8 3.4 2 6.4-.4 7 .6 9c1 1.9 0 3.4-1.7 6.7-1.8 3.3-2.8 4.5-6.4 5.8-3.7 1.1-4 3.4-4 7.2q0 6.2-7.5 5.3c-5 4.1-8.1-.8-9.4-6.9s-1.4-12.8-8.8-18.1c-7.3-5.5-4.4-14.8 1.7-18.5s5.4-14.4 4.6-21c-.6-6.6 3.8-10.4 7.2-14 4.5 1.7 10.1 8.6 10.1 11.5"/>
+ <path fill="#f1b2dc" stroke-width=".3" d="M443.4 248.6c-1.4-3.2-2.9-6.5.7-13.5 3.8-7.1 1.4-12.5.3-16.1-1.1-3.5-1.4-6.8 0-8.3 1.5-1.3 2.1-2.2 2.2-4.6.1-2.2 2-1.5 2.3-.4s.5 3-1.5 6.4 5.6 12 2.1 21.1c-2.4 6.4.8 14.5 2 20.2s2 19-6.3 21c5.7-2.7.4-20.5-1.8-25.8"/>
+ <path stroke-width=".3" d="M406.3 247.6c1.3.3 2-.5 2.4-1.4s.7-1.3 2-1.5c1.2 0 3.2-.3 3.7-1.3s1.9-.2 3.2-2.7c1.3-2.6 2.1-5.6 5.5-6.7m9.3-21.8c-1.3 0-4.9.2-6.4 3.4m-10.4-18.9c3 .9 1.8 2.9 3.3 4 2.7 2.2.2 4.4 2.5 5s2.1 1 1.6 3.5c-.8 2.9 2 3 1 4.9m-13 9.9c1.8-1.6 6.1-2.9 7.1-4.6m-7.2-4c2.6-.2 6.1.8 6.6-.2m-7-2.7c1.3 0 3.9-.9 4.4-2.6m-6.3-1.4c1.5 0 3.4-.1 5.3-1.5m-7.3-3.4c1.1-.9 3.1.1 5-1.1m-3.1-4.9c.9 0 2.8-.2 2.8.9"/>
+ <g fill="#9e540a" transform="translate(535 249.6)scale(.125)">
+ <g id="tc-b">
+ <path d="M-55-233s-70-59-128-99-128-89-128-99c11-8 70 30 151 79 82 50 128 99 128 99zm-5 40s-68-41-135-70c-70-29-175-29-186-39 0-10 122-16 209 19 89 41 135 70 135 70zm-1 68s-74-34-146-50c-70-16-170-10-182-19 0-10 124-30 217 0 94 29 134 49 134 49zm-4 69s-56-38-130-46c-70-7-163 46-175 36 0-10 81-69 182-59 99 10 146 49 146 49zm23-218s-71-65-71-109c0-39 43-99 62-99-10 20-43 60-43 99 0 40 75 89 75 89z"/>
+ <path d="M-42-274s14-65 14-109c0-59-42-113-38-128 15 15 57 59 57 128 0 60-10 89-10 89z"/>
+ <g stroke="none">
+ <use xlink:href="#tc-a" width="100%" height="100%" stroke="#fcd116" stroke-width="12"/>
+ <path id="tc-a" d="M-25-295c0-19-7-36-19-49-16-19-40-25-65-21-30 5-54 23-69 51-20 37-22 77-23 116 0 135 5 190 9 323 1 39 8 119-10 182-7 27-15 52-27 78 8-33 12-50 16-75 11-65 8-126 6-186-4-123-11-186-15-335-1-45 3-79 24-115 22-37 60-64 103-64 18 0 33 3 48 12 30 16 44 49 44 82z"/>
+ </g>
+ <path d="M-19 187s-28 50-49 86-38 44-54 33c-15-11-2-40 10-54s79-79 79-79z"/>
+ <path d="M-12 191s-11 57-20 98c-8 41-22 55-39 50-18-4-15-37-8-54s49-103 49-103z"/>
+ <path d="M0 193v100c0 42-10 59-29 58-18-1-22-33-18-52 3-18 28-111 28-111z"/>
+ </g>
+ <use xlink:href="#tc-b" width="100%" height="100%" transform="scale(-1 1)"/>
+ <g id="tc-c">
+ <path d="M0 192c-53-1-58-20-58-20s-7-24-8-39c-1-2-15-32-11-45-5-12-17-41-6-46-5-14-13-30-14-45-4-11-14-35-6-43 0 0-19-40-10-50 0 0-9-39 0-49 0 0 0-40 10-50 0 0 0-39 9-49 0 2 28-55 94-55l-1 85h1z"/>
+ <path fill="none" d="M0-26c-85-1-103-20-103-20M0-76c-85 0-113-20-113-20M0-125c-85-1-113-20-113-20M0-175c-85-1-103-20-103-20m102-19c1 0-64 0-74-10l-19-19M0 152c-25 0-53-4-66-19m66-21c-47 0-75-19-75-19s-1-2-2-5M0 63c-62-1-79-14-83-21M0 23C-85 23-94 3-94 3l-3-6"/>
+ </g>
+ <use xlink:href="#tc-c" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <g transform="translate(485 299.6)scale(.125)">
+ <g id="tc-d">
+ <path fill="#009e49" d="M0 712c-43 40-126 14-152-4-27 9-99-19-118-50-52 7-70-67-61-86 14-28-11-46 7-65 25-24-14-47 10-63 24-17-6-45 18-63 25-19-13-45 13-58s-3-47 19-60-13-46 17-61c29-15 3-41 26-52 25-13 2-40 25-49 26-11 7-40 29-48 19-7 7-25 19-41H0"/>
+ <path d="M-99 18c-20 20 4 35-16 59-21 25-2 38-19 60s8 33-11 58c-19 24 4 39-17 59-20 21 4 39-17 61-20 23 4 38-16 58-21 21 3 43-17 63-20 21 4 47-19 71-22 24 4 43-14 61-19 19-2 38-15 51s-15 31-10 39M-60 25c-18 25 10 36-7 56-17 21 7 28-6 52s10 30-7 54 9 43-9 67c-19 24 9 37-8 61-16 25 8 38-7 56-15 19 11 37-8 60-18 22 8 39-7 59-15 21 6 43-7 60-13 16 9 41-10 63-18 22 4 37-7 52s-20 37-9 43"/>
+ </g>
+ <use xlink:href="#tc-d" width="100%" height="100%" transform="scale(-1 1)"/>
+ <path stroke="#009e49" d="M0 712V12"/>
+ <path d="M0 48c-9 39 13 73 0 106-13 32 9 45 2 71-8 26 9 45-2 73s15 50 0 87c-15 36 10 45 0 82-11 42 19 64 0 94s17 37 2 71c-15 33 9 46-2 80"/>
+ <path fill="#fcd116" d="M15 174c-5 11 15 37 4 57-12 19 6 49-6 73s19 54 7 82c-13 28 6 63 0 89-5 26 13 76 0 94-13 19 13 24-2 70s-25 7-16-7c19-31-21-41-2-71s-11-52 0-94c10-37-15-46 0-82 15-37-11-59 0-87s-6-47 2-73c7-26-15-39-2-71 10-32 20 9 15 20m-84 32c-7 12 12 35-5 58-12 16 8 35-9 58-11 16 11 36-4 59-10 13 7 38-5 57-12 20 6 36-15 62-12 14 9 49-4 60s-1 54-10 60c-8 7 0 38-22 45 11-15-11-30 7-52 19-22-3-47 10-63 13-17-8-39 7-60 15-20-11-37 7-59 19-23-7-41 8-60 15-18-9-31 7-56 17-24-11-37 8-61 18-24-8-43 9-67s-6-30 7-54c24 9 12 61 4 73m-50-65c-10 16 4 35-11 55-15 21 0 47-15 64-15 16 4 48-15 61s-7 52-22 65 0 50-17 69-9 58-19 67c-9 9 13 28-3 41-17 13-17 39-39 56 13-13-4-32 15-51 18-18-8-37 14-61 23-24-1-50 19-71 20-20-4-42 17-63 20-20-4-35 16-58 21-22-3-40 17-61 21-20-2-35 17-59 19-25-6-36 11-58 8-10 8-19 8-27 12-31 12 23 7 31"/>
+ <path fill="#ce1126" d="M-139 35c0-210 29-283 139-283s139 73 139 283z"/>
+ <path fill="#000001" d="M-139 35c0-210 29-283 139-283-50 0-81 39-89 65-9 26-4 24 7 14s6 12-4 24c-9 12-18 47-5 36 13-12 23 1 9 21-14 19-26 65-12 49s17 10 8 23c-8 13-7 25 0 19 8-6 7 21 0 32zm191-4C52 0 53-73 36-97c-12-19-12-39 2-17s21 11 11-11c-12-28-28-59-24-65 5-7 8-4 18 11s12-7 1-22c-11-14-10-17 13-7 41 17 61 66 61 231z"/>
+ <path fill="#ce1126" d="M0 65c-44 0-92-7-124-20-38-15-40-28-27-44 10-12 30-5 50 4 19 8 73 14 101 14s82-6 101-15c20-8 40-15 50-3 13 16 11 29-27 44C92 58 44 65 0 65"/>
+ </g>
+ </g>
+ </g>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+</svg>
diff --git a/apps/web/public/flags/td.svg b/apps/web/public/flags/td.svg
new file mode 100644
index 00000000..fa3bd927
--- /dev/null
+++ b/apps/web/public/flags/td.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-td" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#002664" d="M0 0h214v480H0z"/>
+ <path fill="#c60c30" d="M426 0h214v480H426z"/>
+ <path fill="#fecb00" d="M214 0h212v480H214z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tf.svg b/apps/web/public/flags/tf.svg
new file mode 100644
index 00000000..fba23356
--- /dev/null
+++ b/apps/web/public/flags/tf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-tf" viewBox="0 0 640 480">
+ <defs>
+ <path id="tf-a" fill="#fff" d="m0-21 12.3 38L-20-6.5h40L-12.3 17z"/>
+ </defs>
+ <path fill="#002395" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h292.8v196.8H0z"/>
+ <path fill="#002395" d="M0 0h96v192H0z"/>
+ <path fill="#ed2939" d="M192 0h96v192h-96z"/>
+ <path fill="#fff" d="m426 219.6 15.4 24.6h44V330l-33-51.6-44.4 70.8h21.6l22.8-40.8 46.8 84 46.8-84 22.8 40.8h21.6L546 278.4 513 330v-47.4h19.8l14.7-23.4H513v-15h44l15.4-24.6zm51.6 105h-48v16.8h48zm91.2 0h-48v16.8h48z"/>
+ <use xlink:href="#tf-a" width="100%" height="100%" x="416" y="362" transform="scale(1.2)"/>
+ <use xlink:href="#tf-a" width="100%" height="100%" x="371" y="328" transform="scale(1.2)"/>
+ <use xlink:href="#tf-a" width="100%" height="100%" x="461" y="328" transform="scale(1.2)"/>
+ <use xlink:href="#tf-a" width="100%" height="100%" x="333" y="227" transform="scale(1.2)"/>
+ <use xlink:href="#tf-a" width="100%" height="100%" x="499" y="227" transform="scale(1.2)"/>
+</svg>
diff --git a/apps/web/public/flags/tg.svg b/apps/web/public/flags/tg.svg
new file mode 100644
index 00000000..9d6ea6c5
--- /dev/null
+++ b/apps/web/public/flags/tg.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tg" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="tg-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#tg-a)" transform="scale(.9375)">
+ <path fill="#ffe300" d="M0 0h767.6v512H0z"/>
+ <path fill="#118600" d="M0 208.1h767.6V311H0zM0 .2h767.6v102.9H0z"/>
+ <path fill="#d80000" d="M0 .3h306.5v310.6H0z"/>
+ <path fill="#fff" d="M134.4 128.4c0-.8 18.9-53 18.9-53l17 52.2s57.4 1.7 57.4.8-45.3 34.3-45.3 34.3 21.4 60 20.5 58.2-49.6-36-49.6-36-49.7 34.3-48.8 34.3c.8 0 18.8-56.5 18.8-56.5l-44.5-33.4z"/>
+ <path fill="#118600" d="M0 409.2h767.6V512H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/th.svg b/apps/web/public/flags/th.svg
new file mode 100644
index 00000000..1e93a61e
--- /dev/null
+++ b/apps/web/public/flags/th.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-th" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#f4f5f8" d="M0 0h640v480H0z"/>
+ <path fill="#2d2a4a" d="M0 162.5h640v160H0z"/>
+ <path fill="#a51931" d="M0 0h640v82.5H0zm0 400h640v80H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tj.svg b/apps/web/public/flags/tj.svg
new file mode 100644
index 00000000..f8c9a037
--- /dev/null
+++ b/apps/web/public/flags/tj.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-tj" viewBox="0 0 640 480">
+ <path fill="#060" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h640v342.9H0z"/>
+ <path fill="#c00" d="M0 0h640v137.1H0z"/>
+ <path fill="#f8c300" d="M300.8 233.6a8.6 8.6 0 0 1 16 4V272h6.4v-34.3a8.6 8.6 0 0 1 16-4 20.2 20.2 0 1 0-38.4 0"/>
+ <path fill="#fff" d="M305.4 224.7a14 14 0 0 1 14.6 6.5 14 14 0 0 1 14.6-6.5 14.7 14.7 0 0 0-29.2 0"/>
+ <path id="tj-a" fill="#f8c300" d="M316.8 258.3a26 26 0 0 1-43.8 16.6 27 27 0 0 1-41 12c2.5 25 40 19.9 42.8-4.4 11.7 20.7 37.6 14.7 45.2-10.6z"/>
+ <use xlink:href="#tj-a" width="100%" height="100%" fill="#f8c300" transform="matrix(-1 0 0 1 640 0)"/>
+ <path id="tj-b" fill="#f8c300" d="M291.8 302.6c-5.3 11.3-15.7 13.2-24.8 4.1 0 0 3.6-2.6 7.6-3.3-.8-3.1.7-7.5 2.9-9.8a15 15 0 0 1 6.1 8.1c5.5-.7 8.2 1 8.2 1z"/>
+ <use xlink:href="#tj-b" width="100%" height="100%" fill="#f8c300" transform="rotate(9.4 320 551.3)"/>
+ <use xlink:href="#tj-b" width="100%" height="100%" fill="#f8c300" transform="rotate(18.7 320 551.3)"/>
+ <path fill="none" stroke="#f8c300" stroke-width="11" d="M253.5 327.8a233 233 0 0 1 133 0"/>
+ <g fill="#f8c300" transform="translate(320 164.6)scale(.68571)">
+ <path id="tj-c" d="m301930 415571-790463-574305h977066l-790463 574305L0-513674z" transform="scale(.00005)"/>
+ </g>
+ <g id="tj-d" fill="#f8c300" transform="translate(320 260.6)scale(.68571)">
+ <use xlink:href="#tj-c" width="100%" height="100%" transform="translate(-70 -121.2)"/>
+ <use xlink:href="#tj-c" width="100%" height="100%" transform="translate(-121.2 -70)"/>
+ <use xlink:href="#tj-c" width="100%" height="100%" transform="translate(-140)"/>
+ </g>
+ <use xlink:href="#tj-d" width="100%" height="100%" fill="#f8c300" transform="matrix(-1 0 0 1 640 0)"/>
+</svg>
diff --git a/apps/web/public/flags/tk.svg b/apps/web/public/flags/tk.svg
new file mode 100644
index 00000000..05d3e86c
--- /dev/null
+++ b/apps/web/public/flags/tk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tk" viewBox="0 0 640 480">
+ <path fill="#00247d" d="M0 0h640v480H0z"/>
+ <path fill="#fed100" d="M108.1 354.6c-6.7-.1 62.8-37 120.9-84.4 76.2-62.1 240.3-161.4 288.6-177.6 5-1.7-10.3 8.6-12.3 11.9-51.5 61-10.4 176 54 233.9 19.4 14.8 18.4 15.6 54.3 17v3.4zm-4.2 6.7s-4.9 3.5-4.9 6.1c0 2.9 5.5 6.7 5.5 6.7l498.5 5.5 9.2-6.1-12.8-7.9z"/>
+ <path fill="#fff" d="m106.8 109.1-4 12.2 10.4-7.5 10.3 7.5-3.9-12.2 10.3-7.5h-12.8l-3.9-12.2-4 12.2H96.4zm78.1 57.4 8.6-6.3h-10.7l-3.3-10.1-3.3 10.1h-10.6l8.6 6.3-3.3 10.1 8.6-6.3 8.7 6.3zm-145.2 13-4-12.2-3.9 12.2H19l10.3 7.5-3.9 12.2 10.3-7.5 10.4 7.5-4-12.2 10.4-7.5zm78.1 122.3-4.6-14.2-4.6 14.2h-15l12.1 8.7-4.6 14.3 12.1-8.8 12.1 8.8-4.7-14.3 12.1-8.7z"/>
+</svg>
diff --git a/apps/web/public/flags/tl.svg b/apps/web/public/flags/tl.svg
new file mode 100644
index 00000000..3d0701a2
--- /dev/null
+++ b/apps/web/public/flags/tl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tl" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="tl-a">
+ <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#tl-a)" transform="scale(.9375)">
+ <path fill="#cb000f" d="M0 0h1031.2v512H0z"/>
+ <path fill="#f8c00c" d="M0 0c3.2 0 512 256.7 512 256.7L0 512z"/>
+ <path fill="#000001" d="M0 0c2.1 0 340.6 256.7 340.6 256.7L0 512z"/>
+ <path fill="#fff" d="M187.7 298.2 127 284.7l-31 52.8-5-59.7-60.7-13.3 54.9-24.9-3.3-59.3 40.2 43.4 55.4-25.3-28.9 54 39.2 45.8z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tm.svg b/apps/web/public/flags/tm.svg
new file mode 100644
index 00000000..4154ed76
--- /dev/null
+++ b/apps/web/public/flags/tm.svg
@@ -0,0 +1,204 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tm" viewBox="0 0 640 480">
+ <path fill="#00843d" d="M0 0h640v480H0Z"/>
+ <path fill="#fff" d="M357.6 53A59.7 59.7 0 1 1 295 153.7a59.7 59.7 0 0 0 62.3-100.1ZM301 97l6.4-20.8-17.7 12.9h21.9l-17.8-12.9Zm0-30.6 6.4-20.8-17.7 12.9h21.9l-17.8-13.2ZM331.2 82l6.4-20.8-17.8 12.9h22L324 61.2Zm-61 30.3 6.9-20.8-17.8 12.8h22l-17.8-12.8Zm30.3 15.4 6.8-20.7-17.7 12.8h21.9L293.7 107z"/>
+ <path fill="#d22630" d="M86.6 0h129.6v480H86.6Z"/>
+ <g fill="#383739">
+ <path d="M118 0h-4.2l-8.3 7.6-3-3.4h3l-.8-3h-4.9l-10.2 9V14h5v-3l2.2 2.2-5.3 4.6L94 20l-7.5 6.8v5L99 20.3l-2.2-2.6 4.9-4.6L97.5 9l2.7-3 5.6 5.2ZM87 0v8.7L89.5 6V2.3h3L95.3 0Zm22.6 0h-3l.4 2.3z"/>
+ <path fill="#ffc72c" d="M117.6 0h-3.8l-8 7.6-3.7-3.8h3.4l-.8-2.7h-4.5l-9.9 9.5v3h3.8V9.8l3.4 3.4-5.3 4.6 2.3 2.2-7.6 7.6v3.8L98.3 20 96 17.8l5.3-4.6-4.5-4.1 3.8-3.4 5.2 5.3 11.4-11Zm-31 0v8.3l2.2-2.6V1.9h3.4L94.5 0Zm22.6 0h-1.8v1.5z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M86.6 55.6v4.9l7.2 6.8-2.7 2.2 5.3 5-2.3 1.8v-3h-4.5v3.8l10.2 9.5h5l.7-3.8H102l3-2.7 8.3 7.6-8.3 6.8-3-2.7h3l-.8-3.7h-4.9l-9.8 10.2v3.7h5v-3.7l2.2 2.2-5.3 4.6 2.6 2.6-7.5 6.8v4.6L99 107.7l-2.2-2.6 4.9-4.6-4.2-4.1 2.7-2.7 5.6 4.6 12.5-11.4-12.5-11.3-5.6 5.3-2.7-2.7 4.2-4.1-5-5L99 67 87 55.6zm0 22.6v18.2l2.6-3v-3.8h3l2.7-2.3-2.7-2.3h-3v-3.7zm20.8 6.5v4.9l2.6-2.3z"/>
+ <path fill="#ffc72c" d="M86.6 56.3v3.8l7.5 7.2-2.2 2.2 5.3 5-3.4 2.6v-3.4H90v3l9.8 9.5h4.5l.8-2.7h-3.8l4.2-3.8 8.7 7.6-8.7 7.6-3.8-3.8h3.4l-.8-2.3h-4.5l-9.8 9v3.1h3.8v-3.8l3.4 3.4-5.3 4.6 2.2 2.6-7.5 7.2v3.8l11.3-11.4-2.3-2.2 5.3-4.6-4.5-4.1 3.8-3.4 5.6 5.3 11.8-11-12.1-11-5.7 5.3-3.4-3 4.5-4.1-5.3-5 2.7-2.2zm0 22.7v16.6l2.2-2.2v-3.8h3.4l2.3-2.3-2.3-1.9h-3.4v-3.8zm21.1 6.4v3.4l2-1.5Z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M86.6 145.9v5.3l7.2 6.8-2.7 2.3 5.3 4.5-2.3 2.3v-3h-4.5v3.7l10.2 9h5l.7-3H102l3-3 8.3 7.2-8.3 7.6-3-3.4h3l-.8-3.4h-4.9l-10.2 9.4v3.8h5.3v-3l2.3 1.9-5.3 4.9L94 198l-7.5 6.9v4.9L99 198.4l-2.2-2.6 4.9-5-4.2-3.7 2.7-3 5.6 4.9 12.5-11.4-12.5-11.3-5.6 5.3-2.7-3 4.2-3.8-5-5 2.3-2.2-12-11.3zm0 22.7v17.7l2.6-2.6v-3.8h3l2.7-2.3-2.7-2.6h-3v-3.4zm20.8 6.4v5l2.6-2.7z"/>
+ <path fill="#ffc72c" d="M86.6 146.3v3.7l7.5 7.6L92 160l5.3 4.5-3.4 3v-3.7H90v3.7l9.8 8.7h4.5l.8-2.6h-3.8l4.2-3.8 8.7 7.6-8.7 7.9-3.8-3.8h3.4l-.8-2.6h-4.5l-9.8 9.4v3h3.8v-3.7l3.4 3-5.3 4.9 2.2 2.3-7.5 7.5v3.8l11.3-11.3-2.3-2.3 5.3-5-4.5-3.7 3.8-3.8 5.6 6 11.8-11.3-12.1-10.5-5.7 5.2-3.4-3.4 4.5-3.7-5.3-5 2.7-2.2zm0 22.6v17l2.2-2.6v-3.8h3.4l2.3-1.9-2.3-2.2h-3.4v-3.8l-2.2-2.3zm21.1 6.8v3.4l2-1.8Z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M86.6 236.2v4.6l7.2 6.8-2.7 2.2 5.3 5-2.3 2.2v-3h-4.5v3.8l10.2 9h5l.7-3.4H102l3-2.6 8.3 7.2-8.3 7.1-3-3h3l-.8-3.4h-4.9l-10.2 9.5v3.8h5.3v-3l2.3 1.8-5.3 5L94 288l-7.5 6.8v5L99 288.3l-2.2-2.7 4.9-4.9-4.2-3.8 2.7-3 5.6 5.3 12.5-11.3-12.5-11.4-5.6 5-2.7-2.7 4.2-3.8-5-5.3 2.3-2.2-12-11.4zm0 22.7v17.8l2.6-3v-3.5h3L95 268l-2.7-2.7h-3V262zm20.8 6.4v5l2.6-2.7z"/>
+ <path fill="#ffc72c" d="M86.6 236.6v3.8l7.5 7.5-2.2 2 5.3 4.8-3.4 3V254H90v3.4l9.8 9h4.5l.8-2.6h-3.8l4.2-3.8 8.7 7.6-8.7 8-3.8-3.9h3.4l-.8-2.6h-4.5l-9.8 9v3.5h3.8v-3.8l3.4 3-5.3 5L94 288l-7.5 7.6v3.7L97.9 288l-2.3-2.3 5.3-4.9-4.5-3.8 3.8-3.7 5.6 5.6 11.8-11.3-12.1-10.6-5.7 5.3-3.4-3.4 4.5-3.8-5.3-5.3 2.7-2.2zm0 22.7v17l2.2-2.7V270h3.4l2.3-2-2.3-2.2h-3.4V262l-2.2-2.2zm21.1 6.8v3.4l2-2Z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M86.6 326.6v4.5l7.2 6.8-2.7 2.3 5.3 4.9-2.3 1.9v-3h-4.5v3.7l10.2 9.5h5l.7-3.4H102l3-3 8.3 7.5-8.3 7.2-3-3h3l-.8-3.4h-4.9l-10.2 9.4v3.8h5.3v-3.4l2.3 2.2-5.3 5 2.6 2.2-7.5 6.8v4.6L99 378.3l-2.2-2.2 4.9-5-4.2-4.1 2.7-2.7 5.6 5.3 12.5-11.3-12.5-11.3-5.6 4.9-2.7-2.7 4.2-4.1-5-5L99 338zm0 22.6V367l2.6-3v-3.4h3l2.7-2.7-2.7-2.2h-3v-3.8zm20.8 6.5v4.5l2.6-2.3z"/>
+ <path fill="#ffc72c" d="M86.6 327v3.7L94 338l-2.2 2.3 5.3 4.9-3.4 3v-3.8H90v3.4l9.8 9h4.5l.8-2.6h-3.8l4.2-3.7 8.7 7.5-8.7 8-3.8-3.8h3.4l-.8-2.7h-4.5l-9.8 9.1v3.4h3.8v-3.8l3.4 3-5.3 5 2.2 2.2-7.5 7.6v3.4L97.9 378l-2.3-2 5.3-4.9-4.5-4.1 3.8-3.4 5.6 5.3 11.8-11-12.1-11-5.7 5.4-3.4-3 4.5-4.2-5.3-5 2.7-2.2Zm0 22.6v17l2.2-2.3v-3.7h3.4l2.3-2.3-2.3-1.9h-3.4v-3.8l-2.2-2.6zm21.1 6.4v3.8l2-1.9Z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M184.5 0h4.5l7.6 7.6 3.8-3.8h-3l.7-3h4.9l10.2 9v3.8H208v-3l-2.3 2.3 5.3 4.5-2.6 2.3 7.6 6.8v4.9L203.4 20l2.2-2.6-4.9-4.5 4.2-4.2-2.7-3-5.6 5.6Zm31.7 0v8.7l-3-2.7V2.3h-3L207.5 0Zm-23.8 0h3l-.3 2.3z"/>
+ <path fill="#ffc72c" d="M185.2 0h3l8.8 7.6 3.7-3.8h-3.4l.8-2.7h4.5l9.9 9.5v3h-3.8V9.8l-3 3.4 4.9 4.6-2.3 2.6 7.6 7.2v3.8L204.5 20l2.3-2.2-5.3-4.6 4.5-4.1-3.8-3.4-4.9 5.6L185 0Zm31 0v8.3l-2.6-2.6V1.9h-3.4l-2-1.9Zm-23.4 0h2.3v1.5z"/>
+ <path d="M216.2 55.6v4.9l-7.5 6.8 2.6 2.2-5.3 5 2.3 1.8v-3h4.5v3.8l-10.2 9.5h-4.9l-.7-3.8h3l-3-2.7-8 7.6 7.6 6.8 3.4-2.7h-3l.7-3.7h5l10.1 9.8v3.8H208v-3.4l-2.3 2.2 5.3 4.6-2.6 2.6 7.6 6.8v4.6l-12.5-11.4 2.2-2.6-4.9-4.6 4.2-4.1-2.7-2.7-5.6 4.6L184 86.9l12.5-11.3 5.6 5.3 2.7-2.7-4.2-4.1 5-5-2.3-2.2 12.5-11.3zm0 22.6v18.2l-3-3v-3.8h-3l-2.7-2.3 2.7-2.3h3v-3.7zm-21.1 6.5.3 2.6-.3 2.3-2.7-2.3z"/>
+ <path fill="#ffc72c" d="M216.2 56.3v3.8l-8.3 6.8 2.3 2.3-5 4.9 3 2.6v-3.4h3.9v3l-9.9 9.5h-4.5l-.7-2.7h3.7l-4.1-3.7-8.7 7.5 8.7 7.6 3.8-3.8H197l.7-2.3h4.5l9.9 9.1v3h-3.8v-3.7l-3 3.4 4.9 4.5-2.3 2.6 7.6 7.2v3.8L204 107l2.3-2.3-5.3-4.5 4.5-4.2-3.7-3.4-5.3 5.3-12.1-11 12-11 5.7 5.4 3.4-3-4.5-4.2 5.3-5-2.6-2.2zm0 22.7v16.6l-2.6-2.2v-3.8h-3.4l-2-2.3 2-1.9h3.4v-3.8zm-21.5 6.4.4 2v1.4l-2.3-1.5Z"/>
+ <path d="M216.2 145.9v5.3l-7.5 6.8 2.6 2.3-5.3 4.5 2.3 2.3v-3h4.5v3.7l-10.2 9h-4.9l-1.1-3h3l-3-3-7.6 6.8 7.6 7.6 3.4-3.4h-3l.7-3.4h5l10.1 9.4v3.8H208v-3l-2.3 1.9 5.3 4.9-2.6 2.3 7.6 6.8v4.9L203.4 198l2.2-2.6-4.9-5 4.2-3.7-2.7-3-5.6 5.3-12.5-11.4 12.5-11.3 5.6 5.3 2.7-3-4.2-3.8 5-5-2.3-2.2 12.5-11.3zm0 22.7v17.7l-3-2.6v-3.8h-3l-2.7-2.3 2.7-2.6h3v-3.4zm-21.1 6.4.3 2.3-.3 2.6-2.7-2.6z"/>
+ <path fill="#ffc72c" d="M216.2 146.3v3.7l-8 7.6 2.4 2.3-5 4.5 3 3v-3.7h3.9v3.7l-9.9 8.7h-4.5l-.8-2.6h3.8l-4.5-3.4-8.7 7.5 8.7 8 3.8-3.8H197l.7-2.7h4.5l9.9 9.5v3h-3.8v-3.8l-3 3 4.9 5-2.3 2.2 7.6 7.6v3.8L204 198l2.3-2.2-5.3-5 4.5-3.7-3.7-3.8-5.3 5.7-12.1-11.4 12-10.5 5.7 5.2 3.4-3.4-4.5-3.7 5.3-5-2.6-2.2zm0 22.6v17l-2.6-2.6v-3.8h-3.4l-2-1.9 2-2.2h3.4v-3.8l2.6-2.3zm-21.5 6.8.4 1.6v1.8l-2.3-1.8Z"/>
+ <path d="M216.2 236.2v4.6l-7.5 6.8 2.6 2.2-5.3 5 2.3 2.2v-3h4.5v3.8l-10.2 9h-4.9l-.7-3.4h3l-3-2.6-8 7.2 7.6 7.1 3.4-3h-3l.7-3.4h5l10.1 9.5v3.8H208v-3l-2.3 1.8 5.3 5-2.6 2.2 7.6 6.8v5l-12.5-11.4 2.2-2.7-4.9-4.9 4.2-3.8-2.7-3-5.6 5.3L184 268l12.5-11.4 5.6 5 2.7-2.7-4.2-3.8 5-5.3-2.3-2.2 12.5-11.4zm0 22.7v17.8l-3-3v-3.5h-3l-2.7-2.2 2.7-2.7h3V262zm-21.1 6.4.3 2.3-.3 2.6-2.7-2.6z"/>
+ <path fill="#ffc72c" d="M216.2 236.6v3.8l-8 7.5 2.4 2-5 4.8 3 3V254h3.9v3.4l-9.9 9h-4.5l-.8-2.6h3.8L197 260l-8.7 7.6 8.7 8 3.7-3.9h-3.4l.8-2.6h4.5l9.9 9v3.5h-3.8v-3.8l-3 3 4.9 5-2.3 2.2 7.6 7.6v3.7L204.5 288l2.3-2.3-5.3-4.9 4.5-3.8-3.8-3.7-5.2 5.6-12.1-11.3 12-10.6 5.7 5.3 3.4-3.4-4.5-3.8 5.3-5.3-2.7-2.2zm0 22.7v17l-2.6-2.7V270h-3.4l-2-2 2-2.2h3.4V262l2.6-2.2zm-21.5 6.8.4 1.5v1.9l-2.3-2Z"/>
+ <path d="M216.2 326.6v4.5l-7.5 6.8 2.6 2.3-5.3 4.9 2.3 1.9v-3h4.5v3.7l-10.2 9.5h-4.9l-.7-3.4h3l-3-3-8 7.5 7.6 7.2 3.4-3h-3l.7-3.4h5l10.1 9.4v3.8H208v-3.4l-2.3 2.2 5.3 5-2.6 2.2 7.6 6.8v4.6l-12.5-11.4 2.2-2.2-4.9-5 4.2-4.1-2.7-2.7-5.6 5.3-12.5-11.3 12.5-11.3 5.6 4.9 2.7-2.7-4.2-4.1 5-5-2.3-2.2zm0 22.6V367l-3-3v-3.4h-3l-2.7-2.7 2.7-2.2h3v-3.8zm-21.1 6.5.3 2.2-.3 2.3-2.7-2.3z"/>
+ <path fill="#ffc72c" d="M216.2 327v3.7L208 338l2.3 2.3-5 4.9 3 3v-3.8h3.9v3.4l-9.9 9h-4.5l-.7-2.6h3.7l-4.1-3.7-8.7 7.5 8.7 8 3.8-3.8H197l.7-2.7h4.5l9.9 9.1v3.4h-3.8v-3.8l-3 3 4.9 5-2.3 2.2 7.6 7.6v3.4L204 378l2.3-2-5.3-4.9 4.5-4.1-3.7-3.4-5.3 5.3-12.1-11 12-11 5.7 5.4 3.4-3-4.5-4.2 5.3-5-2.6-2.2zm0 22.6v17l-2.6-2.3v-3.7h-3.4l-2-2.3 2-1.9h3.4v-3.8l2.6-2.6zm-21.5 6.4.4 2v1.8l-2.3-1.9Z"/>
+ </g>
+ <path fill="#ffc72c" d="M96.8 424.8c.7 2.7 3 4.6 3.8 7.6.7-3 1.5-5.7 1-8.7-.7-2.3-2.6-3.8-2.6-6.4-2.2 1.8-2.6 4.5-2.2 7.5m-.4 11.4a18 18 0 0 0 7.2 5.6c-.8-2.2 0-3.8 1.5-5.6 1.1-2 1.9-3.8.7-6.5a14 14 0 0 1-1.8 3.4 10 10 0 0 0-2.3 5.3c-1.5-1.1-1.9-2.6-2.7-4.1a13 13 0 0 0-5.2-5.3c.7 2.6 1 4.9 2.6 7.2m10.2 7.5-.8 3.8-4.1-3c-1.9-2-4.2-2.7-5.7-5a9 9 0 0 0 3.8 7.2l8 5c-.4-2.7.7-5 1.4-7.6a7 7 0 0 0-1.5-6c0 1.8-.7 3.7-1.1 5.2zm5.3 8.7 3 5.3q-3.7-1.4-7.5-3.8c-2.7-1.5-5.7-2.2-8.4-4.5a13 13 0 0 0 9.1 9c3.4.8 6 .4 9.8 2a27 27 0 0 0-2.6-7.6l-2.3-5.3a6 6 0 0 0-1.1 5zm9.8 7.2a12 12 0 0 0 3.8 3.8c-3.8 0-6.8-2-10.6-2.3-2.2 0-4.5.8-6.8.4 3 1.9 5.7 3.8 9 3.8 4.2.7 8.4 0 13.3 0a17 17 0 0 1-4.9-5.7c-1.9-3-3.8-5-7.2-5.3l3.8 5.3zm13.3 6c-6.5 1.2-12.9 2.7-19.7 2.7a30 30 0 0 0 22.3.4c3.8-1.2 7.2-2.3 10.2-2 4.5 0 9.8 2.3 15.9 8.4l2.3-1.9a36 36 0 0 0-31-7.6"/>
+ <path fill="#383739" d="M102.8 56.3 92.2 50V34.8l10.6-6.5V20l9.5-5.6h8l15-8.7h31.8l15.1 8.7h7.6l10.6 5.6v8.3l10.2 6.5v15l-10.2 6.5v8l-9.9 6h-8l-15 8.3h-31.8l-15.1-8.3H113l-10.6-6z"/>
+ <path fill="#00843d" d="m135.3 6-15 8.7h-7.6l-9.9 5.7v8l-10.2 6.4v15l10.2 6.1v8.4l9.9 5.6h7.5l15.1 8.3h31.8l15.1-8.3h7.6l9.8-5.6v-8.4l10.2-6V34.8l-10.2-6.5v-7.9l-9.8-5.7h-7.6L167.1 6Zm.8 3.4h30.2l15.2 8.4h7.5l7.6 4.1v8.3l10.2 6.5V48l-10.6 6.4v8l-7.2 4.5h-7.5l-15.2 8.3h-30.2L121 67h-7.6l-7.6-4.5v-8L95.6 48V36.7l10.6-6.5V22l7.6-4.1h7.5z"/>
+ <path fill="#ffc72c" d="M151.2 42.3V9.4h-15.1l-14.8 8.7h-7.5l-7.6 3.8v8.3L96 36.7V42h55.2v32.8h15.1l15.2-8.3h7.5l6.8-4.1V54l10.6-6.4v-5.3z"/>
+ <path fill="#fff" d="M96 42.3v5.3l10.6 6.4v8.4l6.8 3.7h8l15 8.7h14.8V42h55.2v-5.3l-10.6-6.5v-7.5L189 18h-7.5l-15.2-8.7h-15v33Z"/>
+ <g fill="#383739">
+ <path d="m118.7 21.2-2.6-2.7-2.3 1.5 2.6 2.7-3.7 1.9h7.5l6 6 2-2.3-6.1-5.6v-3.8Z"/>
+ <path d="m130.8 20-2.6-2.2-2.3 1.5 2.6 2.2-3.8 2h7.6l6 6 2-2.3-5.7-5.7v-3.7zm-12.9 7.6-2.6-2.3-2.6 2 2.6 2.2-3.4 1.9h7.6l6 6 1.9-2.3-6-5.6v-3.8z"/>
+ <path d="M151.2 9.4h-6.4l-3.4 3h-6.8l-4.6 2.7 1.2 2.7 4.1-2.3h2l6.7 7.6 7.2-4.2Z"/>
+ <path fill="#d22630" d="m116 18.9 2.3 2.3-1.9 1.1-2.2-1.9zm6.1.8v3l5.7 5.6-1.5 1.6-6-5.7h-6.1l7.5-5zm6-1.6 2.3 2-1.9 1.4-2.2-2.2Zm6.1 0V22l5.7 5.3-1.5 1.9-6-6.4h-6.1l7.5-4.6z"/>
+ <path fill="#d22630" d="m115.3 26 2.3 2-2 1.1-2.2-1.9Zm5.7 0v4l6 5.2-1.5 1.6-6-5.7h-6Zm30.2-16.6h-6.4l-3.4 3.8H135l-4.6 2 .8 2.2L135 15h2.6l6 7.6 7.6-3.8Z"/>
+ <path d="m118.7 63.5-2.6 2.3-2.3-1.5 2.6-2.3-3.7-2.3h7.5l6-5.7 2 2.3L122 62v3.8z"/>
+ <path d="m130.8 64.3-2.6 2.6-2.3-1.5 2.6-2.3-3.8-2.2h7.6l6-5.7 2 1.9-5.7 5.6v3.8zm-12.9-7.6-2.6 2.3-2.6-1.6 2.6-2.2-3.4-2.3h7.6l6-5.7 1.9 2-6 5.6v3.8z"/>
+ <path d="M151.2 75.2h-6.4l-3.4-3.4h-6.8l-4.6-2.3 1.2-3 4.1 2.3h2l6.7-7.6 7.6 4.6z"/>
+ <path fill="#d22630" d="m116 65.4 2.3-2.3-1.9-1.1-2.2 2.3zm6.1-.4v-3.4l5.7-5.7-1.5-1.5-6 5.7h-6.1l7.5 5zm6 1.5 2.3-2.2-1.9-1.2-2.2 2.3zm6.1-.4v-3.7l5.7-5.3-1.5-1.5-6 5.6h-6.1l7.5 5z"/>
+ <path fill="#d22630" d="m115.3 58.6 2.3-2.3-2-1.1-2.2 2.2Zm5.7-.4v-3.4l6-5.7-1.5-1.5-6 5.7h-6Zm30.2 16.6h-6.4l-3.4-3.4H135l-4.6-2.2.8-2 3.8 2h2.6l6.4-7.6 7.2 4.2z"/>
+ <path d="m114.5 31.7-3-1-4.1 2.6v.7l-6.5 8.3 6.5 8v.7l3.7 3 3.4-1-1.8-1.6v-2.3l.7-.7h3.4V36.3H113l-.3-.8V33Z"/>
+ <path fill="#d22630" d="m107.7 33.6 3.8-2.6 2.3.7-1.5 1.2v2.6l.7 1.2h3.4V48H113l-.7 1.1v2.7l1.5.7-2.3 1.2-3.8-2.7v-.7l-6.4-8 6.4-8.3Z"/>
+ </g>
+ <g fill="#383739">
+ <path d="m183.7 21.2 2.7-2.7 2.2 1.5-2.2 2.7 3 1.9h-7.2l-6 6-2-2.3 6.1-5.6v-3.8Z"/>
+ <path d="m171.6 20 2.7-2.2 2.2 1.5-2.2 2.2 3 2H170l-6 6-2-2.3 6.1-5.7v-3.7zm12.9 7.6 2.6-2.3 2.7 2-2.7 2.2 3.4 1.9H183l-5.7 6.4-1.9-2.3 6-5.6V26z"/>
+ <path d="M151.2 9.4h6.4l3.8 3h6.4l5 2.7-1.2 2.7-4.5-2.3h-1.9l-6.8 7.6-7.2-4.2Z"/>
+ <path fill="#d22630" d="m186.4 18.9-2.3 2.3 1.9 1.1 2.3-1.9zm-5.7.8v3l-6 5.6 1.5 1.6 6-5.7h6l-7.5-5zm-6.8-1.6-2.3 2 2 1.4 2.2-2.2Zm-5.7 0V22l-5.6 5.3 1.5 1.9 6-6.4h6l-7.5-4.6z"/>
+ <path fill="#d22630" d="m187.1 26-2.2 2 1.8 1.1 2.3-1.9Zm-5.6 0v4l-6.1 5.2 1.5 1.6 6-5.7h6.1ZM151.2 9.5h6.4l3.4 3.8h6.5l4.5 2-.8 2.2-3.7-2.3h-2.3l-6.8 7.6-7.2-3.8Z"/>
+ <path d="m183.7 63.5 2.7 2.3 2.2-1.5-2.2-2.3 3-2.3h-7.2l-6-5.7-2 2.3 6.1 5.7v3.8z"/>
+ <path d="m171.6 64.3 2.7 2.6 2.2-1.5-2.2-2.3 3-2.2H170l-6-5.7-2 1.9 6.1 5.6v3.8zm12.9-7.6L187 59l2.7-1.6-2.7-2.2 3.4-2.3H183l-6-5.7-2 2 6 5.6v3.8z"/>
+ <path d="M151.2 75.2h6.4l3.8-3.4h6.4l5-2.3-1.2-3-4.5 2.3h-1.9l-6.8-7.6-7.2 4.6z"/>
+ <path fill="#d22630" d="M186.4 65.4 184 63l2-1 2.3 2.3zm-5.7-.4v-3.4l-6-5.7 1.5-1.5 6 5.7h6zm-6.4 1.5-2.3-2.2 1.9-1.2 2.3 2.3zm-5.7-.4v-3.7l-6-5L164 56l6 5.7h6l-7.5 5z"/>
+ <path fill="#d22630" d="m187.1 58.6-2.2-2.3 1.8-1.1 2.3 2.2zm-5.6-.4v-3.4l-6.1-5.7 1.5-1.5 6 5.7h6.1Zm-30.3 16.6h6.4l3.4-3.4h6.5l4.5-2.2-.8-2-3.7 2h-2.3l-6.8-7.6-7.2 4.2z"/>
+ <path d="m187.9 31.7 3-1 4.2 2.6v.7l6.4 8.3-6.4 8v.7l-3.8 3-3.4-1 1.9-1.6v-2.3l-.8-.7h-3.4V36.3h3.8l.4-.8V33Z"/>
+ <path fill="#d22630" d="m194.7 33.6-3.8-2.6-2.3.7 1.5 1.2v2.6l-.7 1.2H186V48h3.4l.7 1.1v2.7l-1.5.7 2.3 1.2 3.8-2.7v-.7l6.4-8-6.4-8.3Z"/>
+ </g>
+ <path fill="#383739" d="m108.9 49.1-1.5-1.5V47l-3.8-4.6 3.8-4.5V37l1.5-1.5 3.4 2.7h-2l2.7 2.6h6l5-3.8v-9.8h11.7l14-8.7v-2.2l-2.3-1.2-2.6 2v1l-2-2.6 3.9-3 4.1-2.7h1.5l3.8 2.7h.8l3.8 3-2 2.6-.3-1-2.7-2h-.7l-2.3 1.5V19l14 8.7h12.1v9.8l4.5 3.8h6l2.7-2.6h-1.5l3-2.7 1.6 1.5v.8l3.7 4.5-3.7 4.5v.8l-1.6 1.5-3-2.6h1.5l-2.6-2.7h-6l-4.6 3.8v9.8h-12.5l-14 8.3v2.3l2.3 1.5h.4l2.6-1.5v-1.1l2 2.6-3.5 2.7h-.4l-4.1 3H150l-3.8-3h-.8l-3.7-3 2.2-2.3v1.1l2.7 1.5h.4l2.2-1.5v-2.3l-14-8.3h-11.7V48l-4.9-3.8h-6L110 47h1.9z"/>
+ <path fill="#ffc72c" d="m151.2 70 1.9 1-1.9 1.2zm-4.5 1.8 3.8 3h.7v-2.2L149 71l2.3-1.6V65l-15.1-9h-11v-9.1l-5.6-4.6h-8.7l-2 2.7-2.2-2.7H104l3.7 4.2v.7l1.2 1.6 2.2-2h-1v-.3l2.6-3h6.4l5.3 3.7v9.9h11.3l14.4 8.7v2.6l-2.3 1.5h-1.1l-2.3-1.5v-.7l-1.5 1.5 3 2.6zm-37.8-31.7 1.5 1.9H107zm42.3-27.6-1.5 1.1 1.5 1.1zM192 42.7l1.5 1.5 2-1.9zm-36.3-30.2-3.7-3h-.8v2.2l2.3 2-2.3 1.4V19l15.1 9h11v9.9L183 42h8.7l1.8-2.3 2.3 2.3h2.7l-3.8-3.8V37l-1.2-1-2.2 1.8h1.1l-2.6 3.4h-6.5l-4.9-3.8V27.2h-12l-14-8.3v-2.6l2.2-1.6h1.1l2.3 1.6v.7l1.5-1.9-3-2.6z"/>
+ <path fill="#fff" d="m151.2 72.2-1.5-1.1 1.5-1.2zm-40.8-29.9-1.5 2-2-2zm45.3 29.5-3.7 3h-.8v-2.2l2.3-1.5-2.3-1.6V65l15.1-9h11v-9.1l5.7-4.6h8.7l1.8 2.7 2.3-2.7h2.7l-3.8 4.2v.7l-1.2 1.6-2.2-2h1.1v-.3l-2.6-3h-6.5l-4.9 3.7v9.9h-12L152 65.8v2.6l2.2 1.5h1.2l2.2-1.5v-.7l1.5 1.5-3 2.6zm37.8-31.7L192 42h3.4zm-46.8-27.6 3.8-3h.7v2.2l-2.3 2 2.3 1.4V19l-15.1 9h-11v9.9l-5.6 3.8h-8.7l-2-2.3-2.2 2.3H104l3.7-3.8v-1.1l1.2-1.2 2.2 2h-1l2.6 3.3h6.4l5.3-3.8v-9.8h11.3l14.8-8.3v-2.6l-2.3-1.6H147l-2.3 1.6v.7l-1.5-1.9 3-2.6h.8zm4.5 2.6 1.9-1.1-1.9-1.1z"/>
+ <path fill="#00843d" d="M151.2 42.3V19.7l-15.1 9h-10.6v9.1l-5.3 4.2h31v22.6l15.1-9H177v-8.7l5.3-4.6z"/>
+ <path fill="#d22630" d="m120.2 42.3 5.3 4.6v8.7h10.6l15.1 9V42h31l-5.3-4.2v-9h-10.6l-15-9.1v22.6z"/>
+ <path fill="#383739" d="m135.3 31.4-2.6-2.7-2.3 2 2.3 2.2-3 1.9h7.1l6 6 2-2.2-6-5.7V29zm31.8 21.9 2.6 2.3 2.7-1.6-2.7-2.2 3-2.3h-6.4l-6.4-5.7-1.9 2 6 5.6v3.8zm-31.8 0-2.6 2.3-2.3-1.6 2.3-2.2-3-2.3h7.1l6-5.7 2 2-6 5.6v3.8zm31.8-22 2.6-2.6 2.7 2-2.7 2.2 3 1.9h-6.4l-6.4 6-1.9-2.2 6-5.7V29z"/>
+ <path fill="#d22630" d="m169.7 55.2-2.2-2.3 1.9-1.1 2.2 2.2zm-5.6-.4v-3.4l-6-5.7 1.4-1.5 6 5.7h6.1zm-31.8-25.3 2.3 1.9-2 1.1-2.2-1.9zm5.7 0v3.8l6 5.3-1.5 1.5-6-5.7h-6l7.5-4.5z"/>
+ <path fill="#00843d" d="m169.7 29.5-2.2 1.9 1.9 1.1 2.2-1.9zm-5.6 0v3.8l-6 5.3 1.4 1.5 6-5.7h6.1zm-31.8 26 2.3-2.2-2-1.1-2.2 2.2zm5.7-.3v-3.4l6-5.7-1.5-1.5-6 5.7h-6z"/>
+ <path fill="#383739" d="M167 42.3 151.3 53l-15.9-10.6 16-10.6Z"/>
+ <path fill="#fff" d="M151.2 32.1 136.1 42h30.2zv20l15-9.8H136l15.1 9.9z"/>
+ <path fill="#383739" d="M155.4 45.7v3h-8v-3h-5.6v-7.1h5.6v-3h7.6v3h5.7V46z"/>
+ <path fill="#d22630" d="M147.4 36v3h-5.6v3h9.4v-6zm3.8 6h9.5v-3H155v-3h-3.8zm-9.4.3v3.4h5.6v2.7h3.8v-6zm9.4 6h3.8v-2.6h5.7v-3.4h-9.5z"/>
+ <path fill="#383739" d="M178.4 162.9v-4.5h12.9v-5h12.5v-41.9h-12.5v-5h-12.9V102h-12.8v-4.5h-28.8v4.5H124v4.6h-13v4.9H98.7v42H111v5.2h13v3.8h12.8v4.6h28.8v-4.6z"/>
+ <path fill="#ffc72c" d="M137.2 97.9v4.1h-12.5v4.6H112v4.9H99.4v41.6H112v4.5h12.8v5h12.9v4.5h28v-4.6h12.8V158h12.9v-5H204v-41.5h-12.8V107h-13.6v-4.6h-12.9V98zm3.8 3.4h20.8v4.5h12.8v4.6h12.9v4.9h12.9v34.4h-12.9v5.3h-12.9v3.7h-12.8v4.6h-21.2v-4.6h-12.8V155h-12.9v-5h-12.5v-34.3H115v-5h12.9v-4.9h12.8z"/>
+ <path fill="#d22630" d="M128.5 158.7v-4.5h-13.2v-4.5h-12.9v-34h12.9v-5h13.2v-4.5h12.9v-4.5h20.4v4.1h12.8v4.6h12.9v4.9h12.9v34h-12.9v4.5h-13.6v5H161v4.9h-20.4v-5z"/>
+ <path fill="#383739" d="m131.2 109.6-3.4-2.6v4.9l-3 1.9v-3l-3 3-3.1-3v3l-3.8-2v4.2l-2.6 2.3v-2.6l-3.8 2.2-3-2.2v2.6L102 116v13.3h-3.8v6.8h3.8v13.2l3.4-2.3v3l3.4-2.6 3.4 2.6v-3l2.6 2.3v4.5l3.8-2.2v3l3-3 3 3v-3.4l3 1.9v4.9l3.5-2.7v3.4l3.4-3 3 3V155l3 2.2v5.3l4.6-4.1v4.5l6-3.8 6 3.8v-4.2l4.6 3.8v-4.9l3-2.3v3.4l3-3 3.8 3V155l3 2.6v-5l3-1.8v3l3.1-3 3 3v-2.6l3.8 2.2V149l2.6-2.3v3l3.8-2.6 3 2.7v-3l3.5 2.2v-12.8h3.7v-6.5h-3.7v-13.2l-3.4 2.3V116l-3.5 2.3-3.4-2.3v2.7l-2.6-2.3v-4.1l-3.8 1.8v-3l-3 3-3-3v3l-3-1.8v-5l-3.5 2.7v-3.4l-3 3-3.8-3v3.4l-2.6-2.3v-4.9l-4.5 3.8V102l-6 3.8-6.1-3.8v3.8l-4.6-3.8v5l-3 2.2v-3.4l-3 3-3.4-3z"/>
+ <path fill="#00843d" d="M105.8 119v-3l3 2.3 3.1-2.3v3l3-2.6v32.1l-3-2.2v2.6l-3-2.3-3 2.3v-2.6l-3.5 2.2v-13.2h-3.7v-5.7h3.7v-13.2zm25.8-12 3 2.6 2.6-2.6v3.4l3.4-2.7V157l-3.4-2.3v3.4l-2.6-2.7-3 2.7v-3.4l-3.4 2.6v-49.1l3.4 2.3zm39.3 0-2.7 2.6-3-2.6v3.4l-3.4-2.7V157l3.4-2.3v3.4l3-2.7 2.7 2.7v-3.4l3.4 2.6v-49.1l-3.4 2.3zm25.7 12v-3l-3 2.3-3-2.3v3l-3.1-2.6v32.1l3-2.2v2.6l3-2.3 3 2.3v-2.6l3.5 2.2v-13.2h3.8v-5.7H200v-13.2z"/>
+ <path fill="#ffc72c" d="m119 111.9 2.7 2.2 2.7-2.2v2.6l3.8-2.2v40.4l-3.8-2.3v3l-2.7-2.6-2.6 2.6v-3l-3.8 2.3v-40.4l3.8 2.2zm26.5-5-4.5-3.7v59l4.5-4.2v4.5l5.7-3.8 5.7 3.8v-4.9l4.5 3.8v-57.8l-4.5 3.7V102l-5.7 3.8-5.7-3.8zm37.8 5-2.6 2.2-2.6-2.2v2.6l-3.8-2.2v40.4l3.8-2.3v3l2.6-2.6 3 2.6v-3l3.4 2.3v-40.4l-3.8 2.2z"/>
+ <g fill="#383739">
+ <path d="m107.4 126.6 1.5.8c.3 0 1.1 0 1.5-.8 1.1-1.1 1.1-3.4 1.1-4.9l-1.9 1.9-.7-1.9-1.2 1.9-1.5-1.9c0 1.5 0 3.8 1.2 5zm13.6-3.4-1.2-1.1v-2l-2.2 2.4 3.7 3.7 4.6-3.7-2.3-2.3v1.9l-1.1 1.1v-3.8l1.9-1.5-2.7-2.2-2.6 2.2 1.9 2zm12.4-3.8-.7-1.1V116l-2.7 2.3 4.6 4.2 3.8-3.8-2.3-2.7v2.3l-.8.8v-3.8l2-1.2-2.7-2.2-2.7 2.2 1.5 1.6z"/>
+ <path fill="#fff" d="m108.9 122.5.7 1.5 1.5-1.5c0 1.8-.3 3.4-1 3.7a1.5 1.5 0 0 1-2.4 0c-.7-.3-1.1-1.9-1.1-3.7l1.5 1.5zm26-7.2v4.9l1.6-1.9v-1.1l1.5 1.5-3.8 3.8-3.8-3.8 2-1.5v1.5l1.4 1.9v-5l-1.5-1 2.3-2 1.9 2z"/>
+ <path fill="#d22630" d="M122.1 119.4v4.6l1.9-1.5v-1.6l1.5 1.6-3.8 3.7-3.8-3.7 1.6-1.6v1.6l1.5 1.5v-4.6l-1.5-1.5 2.2-1.5 2 1.5z"/>
+ <path d="m195 126.6-1.5.8q-.5.2-1-.8c-1.6-1.1-1.6-3.4-1.6-4.9l1.9 1.9.7-1.9 1.2 1.9 1.5-1.9c0 1.5 0 3.8-1.1 5zm-13.2-3.4.8-1.1v-2l2.3 2.4-3.8 3.7-4.6-3.7 2.3-2.3v1.9l1.1 1.1v-3.8l-1.8-1.5 2.6-2.2 2.6 2.2-1.5 2zm-12.8-3.8.7-1.1V116l2.7 2.3-4.2 4.2-4.5-3.8 2.6-2.7v2.3l.8.8v-3.8l-1.5-1.2 2.6-2.2 2.7 2.2-2 1.6z"/>
+ <path fill="#fff" d="m193.5 122.5-.7 1.5-1.5-1.5c0 1.8.4 3.4 1.1 3.7a1.5 1.5 0 0 0 2.3 0c.7-.3 1.1-1.9 1.1-3.7l-1.1 1.5zm-26-7.2v4.9l-1.5-1.9v-1.1l-1.6 1.5 3.8 3.8 3.8-3.8-1.9-1.5v1.5l-1.5 1.9v-5l1.5-1-1.9-2-2.2 2z"/>
+ <path fill="#d22630" d="M180.3 119.4v4.6l-1.5-1.5v-1.6l-1.5 1.6 3.8 3.7 3.8-3.7-2-1.6v1.6l-1.4 1.5v-4.6l1.5-1.5-2.3-1.5-1.9 1.5z"/>
+ <path d="m156.1 121-1.1-2.3 3.4-3-3.4-2.7v1.9l-1.1 1.1v-3.7l3-2-5.7-4.5-5.7 3.8 3 2.7v3.4l-1-1.2v-1.9l-3.5 2.7 3.8 3-1.5 1.9z"/>
+ <path fill="#d22630" d="m147 120.6 1.2-2-3.8-3 2.7-1.8v1.1l1.8 1.9v-4.5l-2.6-2 5-3.7 4.8 3.8-2.6 1.9v4.9l1.9-2v-1l2.6 1.8-3.8 3 1.5 2z"/>
+ <path d="m148.6 110.4 2.6 1.9 2.7-2-2.7-1.8Z"/>
+ <path fill="#00843d" d="m151.2 108.9 1.9 1.5-1.9 1.1-1.9-1.1z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M107.4 138.3a2 2 0 0 1 1.5-.7c.3 0 1.1 0 1.5.7 1.1 1.2 1.1 3.4 1.1 5l-1.9-1.6-.7 1.5-1.2-1.5-1.5 1.5c0-1.5 0-3.7 1.2-4.9m13.6 3.4-1.2 1.2v1.9l-2.2-2.3 3.7-3.8 4.6 3.8-2.3 2.3v-2l-1.1-1v3.7l1.9 1.5-2.7 2.3-2.6-2.3 1.9-1.9zm12.4 3.8-.7 1.1v2.3l-2.7-2.3 4.6-4.1 3.8 4.1-2.3 2.3v-2.3l-.8-.7v3.8l2 1.1-2.7 2.3-2.7-2.3 1.5-1.5z"/>
+ <path fill="#fff" d="m108.9 142.5.7-1.5 1.5 1.5q0-3-1-3.8a1.5 1.5 0 0 0-2.4 0q-1 .8-1.1 3.8l1.5-1.5zm26 7.2v-5l1.6 2v1.5l1.5-1.6-3.8-3.7-3.8 3.7 2 1.6v-1.6l1.4-1.8v4.9l-1.5 1.1 2.3 1.9 1.9-1.9z"/>
+ <path fill="#d22630" d="M122.1 145.5V141l1.9 1.5v1.5l1.5-1.5-3.8-3.8-3.8 3.8 1.6 1.5v-1.5l1.5-1.5v4.5l-1.5 1.5 2.2 1.5 2-1.5z"/>
+ <path d="M195 138.3a2 2 0 0 0-1.5-.7q-.5-.2-1 .7c-1.6 1.2-1.6 3.4-1.6 5l1.9-1.6.7 1.5 1.2-1.5 1.5 1.5c0-1.5 0-3.7-1.1-4.9zm-13.2 3.4.8 1.2v1.9l2.3-2.3-3.8-3.8-4.6 3.8 2.3 2.3v-2l1.1-1v3.7l-1.8 1.5 2.6 2.3 2.6-2.3-1.5-1.9zm-12.8 3.8.7 1.1v2.3l2.7-2.3-4.2-4.1-4.5 4.1 2.6 2.3v-2.3l.8-.7v3.8l-1.5 1.1 2.6 2.3 2.7-2.3-2-1.5z"/>
+ <path fill="#fff" d="m193.5 142.5-.7-1.5-1.5 1.5q0-3 1.1-3.8a1.5 1.5 0 0 1 2.3 0q1 .8 1.1 3.8l-1.1-1.5zm-26 7.2v-5l-1.5 2v1.5l-1.6-1.6 3.8-3.7 3.8 3.7-1.9 1.6v-1.6l-1.5-1.8v4.9l1.5 1.1-1.9 1.9-2.2-1.9z"/>
+ <path fill="#d22630" d="M180.3 145.5V141l-1.5 1.5v1.5l-1.5-1.5 3.8-3.8 3.8 3.8-2 1.5v-1.5l-1.4-1.5v4.5l1.5 1.5-2.3 1.5-1.9-1.5z"/>
+ <path d="m156.1 144.4-1.1 1.9 3.4 3-3.4 2.6V150l-1.1-1v3.7l3 1.9-5.7 4.1-5.7-3.7 3-2.7V149l-1 1.1v2l-3.5-2.7 3.8-3-1.5-2z"/>
+ <path fill="#d22630" d="m147 144.8 1.2 1.5-3.8 3 2.7 1.9V150l1.8-1.8v4.5l-2.6 1.9 5 3.8 4.8-3.8-2.6-2v-4.4l1.9 1.8v1.2l2.6-2-3.8-3 1.5-1.4z"/>
+ <path d="m148.6 155 2.6-2.3 2.7 1.9-2.7 1.9Z"/>
+ <path fill="#00843d" d="m151.2 156 1.9-1.4-1.9-1.2-1.9 1.2Z"/>
+ </g>
+ <path fill="#383739" d="M196.6 130.4h-5.3v-1.9h-17.4l-12.1-7.6h-21.2l-12 7.6H111v2.3h-5.3v3.8h5.3v2.6h17.4l12.1 7.6h21.2l12-7.6h17.5v-2.3h5.3z"/>
+ <path fill="#d22630" d="m140.6 121-12 7.5h-17v2.3h-5.4v3.4h5.3v2.2h17l12.1 7.6h21.2l12-7.6H191v-2.2h5.7v-3.4H191v-2.3h-17l-12.1-7.6zm0 1h20.8l11.4 7.3v1h12v4.6h-12.4v1.2l-11 6.8H141l-11.3-6.8v-1.2h-12.1v-4.5H130v-1.1z"/>
+ <path fill="#d22630" d="m161.4 122 10.6 7.6v.8h12.5v3.8H172v1.5l-10.6 7.2H141l-10.6-7.2v-1.1H118v-3.8h12.5v-1.5L141 122z"/>
+ <g fill="#383739">
+ <path d="m135.7 136.4 4.5 3.8 3-2.6-1.4-1.2-1.6.8-1-.8 17.3-13.2h-3.4zm10.2 5.3h3.4l17.4-13.2-4.5-3.8-3 2.7 1.8 1.1 1.2-.8 1.1.8zm7.6 0h3l-17.4-13.2 1.1-.8 1.6.8 1.5-1.1-3-2.3-4.6 3.4Zm9.8-5.3-1.1.8-1.2-.8-1.9 1.2 3 2.2 4.6-3.4-17.4-13.2h-3.8zm-31-3.7 3 1.9 3-2-3-2.2zm15.9-.4 3 2.3 3-2-3-2.2Zm22 0-3.1 2.3-3-2 3-2.2z"/>
+ <path fill="#ffc72c" d="m166.3 136.4-4.1 3-2.7-1.8 1.5-.8 1.2.8 1.5-1.2-17-12.8h2.6zm-10.6 5h-2.6l-17-12.9 4.1-3 2.7 1.9-1.1.7-1.6-.7-1.5 1.1zm-6.4 0h-2.6l17-12.9-1.5-1.1-1.2.7-1.5-.7 2.7-2 3.8 3.1zm3.8-17.8h2.6l-17 12.8 1.5 1.2 1.6-.8 1 .8-2.6 1.9-3.7-3z"/>
+ <path fill="#00843d" d="m135.3 130.8 2.3 1.9-2.3 1.5-2.6-1.5zm16 0 2.6 1.9-2.7 1.5-2.6-1.5zm15.8 0-2.3 1.9 2.3 1.5 2.6-1.5z"/>
+ </g>
+ <path fill="#383739" d="m96.4 219.2-1.1 1.9 2.2 1.5-2.2 1.9 1.1 1.5 2.6.4 2.3-1.9 6.4 3.8v-3l-3.7-2.7 3.7-2.3V217l-6.4 3.8-2.3-1.5zm0-11.3-1.1 1.9 2.2 1.5-2.2 1.9 1.1 1.5 2.6.4 2.3-2 6.4 3.8v-3l-3.7-2.6 3.7-2.3v-3.4l-6.4 3.8-2.3-1.5zm0 29.5-1.1-1.6 2.2-1.8-2.2-1.6 1.1-1.8H99l2.3 1.5 6.4-3.8v3.4L104 234l3.7 2.6v3l-6.4-3.8-2.3 2zM206 219.2l1.2 1.9-2.3 1.5 2.3 1.9-1.2 1.5-2.6.4-2.3-1.9-6.4 3.8v-3l3.8-2.7-3.8-2.3V217l6.4 3.8 2.3-1.5zm0-11.3 1.2 1.9-2.3 1.5 2.3 1.9-1.2 1.5-2.6.4-2.3-2-6.4 3.8v-3l3.8-2.6-3.8-2.3v-3.4l6.4 3.8 2.3-1.5zm0 29.5 1.2-1.6-2.3-1.8 2.3-1.6-1.2-1.8h-2.6L201 232l-6.4-3.8v3.4l3.8 2.3-3.8 2.6v3l6.4-3.8 2.3 2zM181.5 189v4.5h3.4v2.3h3.4V192h-3v-3Zm9.8 7.5v3.8h3.8v1.9h3v-3.8h-3v-1.9ZM121 189v4.5h-3.4v2.3h-3.4V192h3v-3Zm60.5 68v-4.5h3.4v-2h3.4v3.9h-3v3zm-60.5 0v-4.5h-3.4v-2h-3.4v3.9h3v3zm70.3-7.6V245h3.8v-2.3h3v3.8h-3v3ZM111 196.5v3.8h-3.7v1.9h-3v-3.8h3v-1.9Zm0 53.3v-4.5h-3.7V243h-3v3.8h3v3zm53-60.8-2.7-2.7-2.6 2.3 2.2 2.3-3 2.6h4.2l1.5-1.5 1.5 1.5h5L167 191l2.3-2.3-2.7-2.3zm-12.9 0-2.6-2.7-2.7 2.3 2.3 2.3-2.7 2.6h4.2l1.5-1.5 1.5 1.5h4.2l-2.7-2.6 2.3-2.3-2.6-2.3zm-12.5 0 2.7-2.7 2.3 2.3-2.3 2.3 3 2.6h-4.2l-1.5-1.5-1.5 1.5h-4.9l3-2.6-2.2-2.3 2.6-2.3 2.7 2.7zm25 68-2.3 3-2.6-2.6 2.2-1.9-3-3h4.2l1.5 1.5 1.5-1.5h5l-3.1 3 2.3 1.9-2.7 2.6zm-12.5 0-2.6 3-2.7-2.6 2.3-1.9-2.7-3h4.2l1.5 1.5 1.5-1.5h4.2l-2.7 3 2.3 1.9-2.6 2.6zm-12.5 0 2.7 3 2.3-2.6-2.3-1.9 3-3h-4.2l-1.5 1.5-1.5-1.5h-4.9l3 3-2.2 1.9 2.6 2.6 2.7-2.6z"/>
+ <path fill="#00843d" d="M107.4 225.3v2.6l-6-3.8-2.4 2h-2.2l-1.2-1.6 2.3-1.9-2.3-1.5 1.2-1.5H99l2.3 1.9 6-3.8v2.3l-4.1 2.6zm0-11.4v2.7l-6-3.8-2.4 1.9h-2.2l-1.2-1.5 2.3-2-2.3-1.4 1.2-1.5H99l2.3 1.8 6-3.7v2.2l-4.1 2.7zm0 17.4V229l-6 3.8-2.4-2.2h-2.2l-1.2 1.5L98 234l-2.3 1.8 1.2 1.2H99l2.3-1.5 6 3.7v-2.6l-4.1-2.6zm87.7-6v2.6l6-3.8 2.7 2h1.8l1.2-1.6-2.3-1.9 2.3-1.5-1.2-1.5h-1.5l-2.6 1.9-6-3.8v2.3l4.1 2.6zm0-11.4v2.7l6-3.8 2.7 1.9h1.8l1.2-1.5-2.3-2 2.3-1.4-1.2-1.5h-1.5l-2.6 1.8-6-3.7v2.2l4.1 2.7zm0 17.4V229l6 3.8 2.7-2.2h1.8l1.2 1.5-2.3 1.9 2.3 1.8-1.2 1.2h-1.5l-2.6-1.5-6 3.7v-2.6l4.1-2.6zm-9.9-42.3v3h3v3h-3v-2.2h-3.7V189zm10.2 7.5v2.7h2.7v3h-2.7v-1.9H192v-3.8zm-78.2-7.5v3h-3v3h2.6v-2.2h3.8V189zm68 67.6v-3.4h3v-3h-3v1.9h-3.7v3.8zm-67.3 0v-3.4h-3v-3h2.7v1.9h3.7v3.8zm77.5-7.5v-3h2.7v-3h-2.7v2.2H192v3.8zm-87.7-52.6v3h-3v3h2.7v-2.2h3.4v-3.8zm0 53v-3h-3v-3.1h2.7v2.3h3.4v3.7zm53.7-62.8 2.3 2.7 2.6-2.7 2.3 1.9-2.3 2.3 2.7 2.2h-3.8l-1.5-1.5-1.5 1.5h-3.4l2.6-2.2-2.3-2.3zm-12.8 0 2.6 2.7 2.7-2.7 1.8 1.9-2.2 2.3 2.6 2.2h-3.4l-1.5-1.5-1.5 1.5h-3.8l3-2.2-2.2-2.3zm-7.6 0-2.3 2.7-2.6-2.7-2.3 1.9 2.3 2.3-2.3 2.2h3l2-1.5 1.4 1.5h3.5L141 191l2.3-2.3zm20.4 72.6 2.3-2.3 2.6 2.3 2.3-2-2.3-1.8 2.7-2.6h-3.8l-1.5 1.5-1.5-1.5h-3.4l2.6 2.6-2.3 1.9zm-12.8 0 2.6-2.3 2.7 2.3 1.8-2-2.2-1.8 2.6-2.6h-3.4l-1.5 1.5-1.5-1.5h-3.8l3 2.6-2.2 1.9zm-7.6 0-2.3-2.3-2.6 2.3-2.3-2 2.3-1.8-2.3-2.6h3l2 1.5 1.4-1.5h3.5l-2.7 2.6 2.3 1.9z"/>
+ <path fill="#383739" d="M117.2 245.3v7.6h68v-7.6h9.9v-45h-9.9v-7.5h-68v7.5h-9.8v45z"/>
+ <path fill="#ffc72c" d="M117.6 193.1v7.6h-9.9v44.2h9.5v7.6h68v-7.6h9.9v-44.6h-9.9v-7.5h-68zm4.5 3h58.2v7.2l2.7 1.6h9v35.5h-9l-2.7 1.9v7.1h-58.2V242l-2.6-1.5h-9.1V205h9l2.7-1.6v-7.5z"/>
+ <path fill="#d22630" d="M122.5 196.5v6.5l8.7-6.5zm49.1 0 8.3 6.5v-6.5zm-60.5 8.7v6.5l8-6zm72.2 0 8.4 6.5v-6.5zm8.4 28.8-8.4 6h8.4zm-81 0v6h8.4zm11.4 8.6v6.5h9zm57.8 0-8.7 6.5h8.7z"/>
+ <path fill="#00843d" d="m170.9 196.5 20.8 15.2v21.9l-20.8 15h-39.3l-20.8-15v-22l20.8-15.4z"/>
+ <path fill="#383739" d="m115.7 235.8-2.3-2.6 2.3-2.6-2.3-2.7 2.3-2.6-2.3-2.7 2.3-2.6-2.3-2.7 2.3-2.6-2.3-2.3 2.3-3h71l2.3 3-2.3 2.3 2.3 2.6-2.3 2.7 2.3 2.6-2.3 2.7 2.3 2.6-2.3 2.7 2.3 2.6-2.3 2.6zm49.1-35.9-3-2.6-2.7 2.3-2.6-2.3-2.6 2.3-2.7-2.3-2.6 2.3-2.7-2.3-2.6 2.3-2.7-2.3-2.6 2.6v45.4l2.6 2.6 2.7-2.2 2.6 2.2 2.7-2.2 2.6 2.2 2.7-2.2 2.6 2.2 2.6-2.2 2.7 2.2 2.6-2.2z"/>
+ <g fill="#ffc72c">
+ <path d="m158.8 200.3-2.3-2.3-2.6 2v45.3l2.6 2.3 2.3-2.3zm-10.2 0-2.7-2.3-2.2 2v45.3l2.2 2.3 2.7-2.3z"/>
+ <path d="m116 235.8-2.2-2.6 2.3-2.3h70.3l2.2 2.3-2.2 2.6zm70.4-15.5 2.2 2.3-2.2 2.7H116l-2.3-2.7 2.3-2.3zm0-5.6 2.2-2.3-2.2-2.6H116l-2.3 2.6 2.3 2.3z"/>
+ </g>
+ <g fill="#d22630">
+ <path d="m164 200.3-2.2-2.3-2.7 2v45.3l2.7 2.3 2.3-2.3zm-20.3 0L141 198l-2.3 2v45.3l2.3 2.3 2.7-2.3z"/>
+ <path d="m116 230.6-2.2-2.7 2.3-2.3h70.3l2.2 2.3-2.2 2.7zm0-10.6-2.2-2.7 2.3-2.2h70.3l2.2 2.2-2.2 2.7z"/>
+ <path d="m153.9 245.7-2.7 1.9-2.3-2.3v-45l2.3-1.9 2.7 2Z"/>
+ </g>
+ <path fill="#383739" d="M175 200.7h-47.6v3.8H121v36.3h6v3.7h47.6v-3.7h6.9v-36.3h-6.1v-3.8z"/>
+ <path fill="#d22630" d="M127.8 201v3.9h-6v35.5h6v3.8h4.5l-9.8-8.4v-26.4l9.8-8.3h-4.9zm42 0 9.8 8.8v26.4l-9.5 7.6h5V240h6v-35.5h-6v-3.8h-5z"/>
+ <g fill="#00843d">
+ <path d="m133 201-9.8 8.8v26l9.9 8.4h36.3l9.8-8.4v-26.4l-9.8-8.3zm.8 1.6h34.8l9.5 7.5v25l-9.5 7.5h-34.8l-9.4-7.5v-24.6z"/>
+ <path d="m142.9 235.5 1.5.7.4 2-2 1.4 3.1 2.7h-3l-1.9-2-1.9 2h-3l2.6-2.7-1.9-1.5v-1.9l2-.7 1.8 1.5zm10.2 0 1.5.7.4 2-1.9 1.4 3 2.7h-3l-1.9-2-1.9 2h-2.6l2.6-2.7-1.9-1.5v-1.9l2-.7 1.8 1.5zm6.4 0-1.5.7-.4 2 2 1.4-2.7 2.7h2.6l2-2 1.8 2h3l-3-2.7 1.9-1.5v-1.9l-1.9-.7-1.9 1.5zM143 210l1.5-.7.4-1.9-2-1.9 3.1-2.6h-3l-1.9 1.9-1.9-2h-3l2.6 2.7-1.9 1.9v1.9l2 .7 1.8-1.8zm10.2 0 1.5-.7.4-1.9-1.9-1.9 3-2.6h-3l-1.9 1.9-1.9-2h-2.6l2.6 2.7-1.9 1.9v1.9l2 .7 1.8-1.8zm6.4 0-1.5-.7-.4-1.9 2-1.9-2.7-2.6h2.6l2 1.9 1.8-2h3l-3 2.7 1.9 1.9v1.9l-1.9.7-1.9-1.8zm18.2 2.7-1.5 1.5 1.5 1.1v2.3l-2.7-1.9-1.5 1.5h-1.9l-.7-1.5 1.5-1.5-1.5-1.5.7-1.5h2l1.4 1.5 2.7-1.9zm0 8.7-1.5 1.1 1.5 1.5v2l-2.7-2-1.5 1.5h-1.9l-.7-1.5 1.5-1.5-1.5-1.5.7-1.1h2l1.4 1.1 2.7-1.9Zm0 11.3-1.5-1.5 1.5-1.5v-1.9l-2.7 1.9-1.5-1.5h-1.9l-.7 1.5 1.5 1.5-1.5 1.5.7 1.2h2l1.4-1.2 2.7 2zm-53-20 2 1.5-2 1.1v2.3l2.7-1.9 1.5 1.5h1.9l.8-1.5-1.6-1.5 1.6-1.5-.8-1.5H129l-1.5 1.5-2.7-1.9Zm0 8.7 2 1.1-2 1.5v2l2.7-2 1.5 1.5h1.9l.8-1.5-1.6-1.5 1.6-1.5-.8-1.1H129l-1.5 1.1-2.7-1.9Zm0 11.3 2-1.5-2-1.5v-1.9l2.7 1.9 1.5-1.5h1.9l.8 1.5-1.6 1.5 1.6 1.5-.8 1.2H129l-1.5-1.2-2.7 2Z"/>
+ </g>
+ <path fill="#d22630" d="m133.8 203-8.7 7.5 2.3 2 1.5-1.6h2.3l.7 1.9-1.5 1.5 1.5 1.5-.7 1.5h-2.7l-1.5-1.1-2.6 1.9v.7l2.6 2 1.5-1.6 2.3.4.8 1.5-1.6 1.5 1.6 1.5-.8 2h-2.3l-1.5-1.6-2.6 2.3v.3l2.6 2.3 1.5-1.5h2.3l.8 1.9-1.6 1.5 1.6 1.5-.8 1.5h-2.3l-1.5-1.1-2.3 1.9 8.7 7.5h2l3-3-2-1.5v-2.3l2.3-.7 2 1.5 1.8-1.5 2 .7.3 2.3-2 1.5 3.1 2.7 2.7-2.7-2-1.5v-2.3l2.3-.7 2 1.5 1.8-1.5 2 .7.3 2.3-1.9 1.5 2.6 2.7 3-2.7-1.8-1.5v-2.3l2.2-.7 2 1.5 1.8-1.5 2 .7.3 2.3-1.9 1.5 3 2.7h2l8.6-7.6-2.3-1.5-1.5 1.5-2.2-.4-.8-1.5 1.5-1.5-1.5-1.5.8-1.5 2.2-.4 1.5 1.5 2.7-2.3v-.3l-2.7-2.3-1.5 1.5H171l-.8-1.9 1.5-1.5-1.5-1.5.8-1.5h2.2l1.5 1.1 2.7-1.9v-.7l-2.7-2-1.5 1.6-2.2-.4-.8-1.5 1.5-1.5-1.5-1.5.8-1.5 2.2-.4 1.5 1.5 2.3-1.9-8.7-7.5h-1.9l-3 2.6 1.9 1.9v2.3l-2.3.7-1.9-1.5-1.9 1.5-1.8-.7-.4-2.3 1.9-1.9-2.7-2.6-3 2.6 1.9 1.9v2.3l-2.3.7-1.9-1.5-1.9 1.5-1.8-.7-.4-2.3 1.9-1.9-2.7-2.6-3 2.6 1.9 1.9v2.3l-2.3.7-1.9-1.5-1.9 1.5-1.9-.7-.3-2.3 1.9-1.9-3-2.6zm-9 18.9v1.8l1-1z"/>
+ <path fill="#fff" d="m141 241.1-1.5 1.2h3zm10.2 0-1.5 1.2h3zm10.2 0-1.5 1.2h3zm-22-37.8 1.6 1.2 1.5-1.5zm10.3 0 1.5 1.2 1.5-1.5zm10.2 0 1.5 1.2 1.5-1.5zm17.8 10.2-1.2.8 1.2.8zm0 8.4-1.2.7 1.2 1.1zm0 8.7-1.2.7 1.2.8zm-53-17.4v1.9l1.2-.8zm0 8.7v1.8l1.2-1zm0 8.3v1.9l1.2-.8z"/>
+ <g fill="#383739">
+ <path d="M160 220v-3h-3.1v-3.5h-11.4v3.4h-3v3h-4.1v5.7h4.1v3h3v3.5H157v-3.8h3v-2.7h4.2V220z"/>
+ <path fill="#ffc72c" d="M151.2 214v3.3l-4.9 2.7v2.6h-7.6v-2.3h3.8v-3h3.4v-3.8zm0 17.7v-3.8l5-2.6V223h7.5v2.3h-3.8v3h-3.4v3.4z"/>
+ <path fill="#fff" d="M156.1 222.6V220l-4.9-2.7v-3.8h5.3v3.8h3v3h4.2v2.3zm-17.4 0h7.6v2.7l5 3v3.4h-5.4v-3.8h-3v-2.6h-4.2z"/>
+ <path fill="#d22630" d="M146.7 223v2.3l4.5 2.6v-5Z"/>
+ <path fill="#00843d" d="m151.2 217.7-4.5 2.6v2.3h4.5Z"/>
+ <path fill="#d22630" d="M155.7 222.6v-2.3l-4.5-2.6v5z"/>
+ <path fill="#00843d" d="m151.2 228 4.5-2.7V223h-4.5Z"/>
+ </g>
+ <path fill="#d22630" d="M110 283v9.5h-8.7v8.4h-9V325h9v8.7h8.3v9.1h32.5l5.7 3.8-2.6 1.5h-11.4l-1.1-1.1h11l-3-3h-15.2l6.8 7.1h14l5-3.4 4.8 3h14l6.8-7.1h-15.1l-3 3h10.6l-.8 1.1h-11.7l-2.7-1.9 5.7-3.4h32.5v-9h8.7V325h9v-24h-9v-8.4h-8.3v-9.4h-32.5l-5.7-3.8 2.7-1.5h11.3l1.1 1.1h-11l3.1 3h15.1l-6.8-7.1h-14l-4.9 3-4.9-3h-14l-6.8 7.5h15.1l3-3.4h-10.5l.7-1.1h11.7l2.7 1.9-5.7 3.4z"/>
+ <path fill="#ffc72c" d="M160 342.4h32v-9h8.4v-8.7h9v-23.5h-9v-8.7h-8.7v-9h-32.2L146 275h-13.6l-6 6.5h14l2.2-2.3h-10.2l1.5-1.9h11.7l15.2 9.5H189v9h9v8.7h9.2v16.7H198v8.7h-9v9.4h-27.7l-15.1 9h-12.1l-1.5-1.8h10.2l-2.3-2.3h-14l6 6.4h14zm-18.6-3h-27.6V330H105v-8.7h-9v-16.7h9V296h8.3v-8.7H141l15.1-9.4h12.1l1.5 1.9h-10.2l2.3 2.3h14L170 275h-14l-13.2 8.4h-32.5v9H102v8.7h-9v23.5h9v8.7h8.8v9h32.5l13.2 8.3h13.6l6-6.4h-14l-2.2 2.3h10.2l-1.5 1.9h-11.7z"/>
+ <path fill="none" d="m151.2 281.2-9.4 6h-27.6v9.5h-8.7v8.7h-9.1v15.9h9v8.7h8.8v9.4h27.6l9.4 5.7 9.5-5.7h27.6V330h9v-8.7h9.1v-16h-9v-8.6h-9.1v-9.5h-27.6zm0 2.3 9 5.6h26.2v9.5h8.7v8.3h9v12h-9v8.8h-8.7v8.7h-26.5l-8.7 6-9-6H116v-9h-8.7v-8.8h-9.1v-12h9v-8h8.8V289h26.4z"/>
+ <path fill="#00843d" d="M186 327.3v9h-25.7l-9 5.7-9.2-5.6h-25.7v-9h-8.7v-8.8h-9.4v-11.3h9v-8.7h8.8v-9h25.7l9-5.4 9.1 5.3h25.7v9h8.7v8.8h9.8v11.3h-9v8.7z"/>
+ <g fill="#383739">
+ <path d="M119.8 324v8.6h14.4l-14.4-9.5zm0-22v-9h14.4l-14.4 9.4Zm62.8 22v8.6h-14.4l14.4-9.5zm0-22v-9h-14.4l14.4 9.4z"/>
+ <path fill="#d22630" d="m120.2 324.3 12.9 8.3h-12.9zm0-22.7 12.9-8.3h-12.9zm62 22.7-12.8 8.3h12.8zm0-22.7-12.8-8.3h12.8z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M138 310.3v-4.2h-1.5l-7.6-4.5-7.6 4.5h-1.5v4.6h-3.7v5.3h3.7v4.5h1.5l7.6 4.5 7.6-4.5h1.5V316h5.3v-6Z"/>
+ <path fill="#d22630" d="m128.5 301.6 7.6 4.2h-14.4zm7.6 18.5-7.6 4.2-6.8-4.2zm-1.9-9.4v4.5h-8.7v-4.5z"/>
+ <path fill="#ffc72c" d="M137.6 315.6v4.1h-8.7v-4.1zm-9 0v4.1h-8.8v-4.1zm14.3-5v4.6h-8.3v-4.5zm-17.8 0v4.6h-8.7v-4.5Zm12.5-4.5v4.2h-8.7v-3.8zm-9 0v4.2h-8.8v-3.8z"/>
+ <path d="M122.9 311.8v2.3H119v-2.3zm3.4-4.5v2.2h-3.8v-2.2zm9 0v2.2h-3.7v-2.2zm-3.7 4.5v2.3h-3.8v-2.3zm9 0v2.3h-3.8v-2.3zm-5.3 4.5v2.3h-3.7v-2.3zm-9 0v2.3h-3.8v-2.3z"/>
+ <path fill="#fff" d="M122.5 312.2H119v1.5h3.4zm3.8-4.5h-3.8v1.5h3.8zm8.7 0h-3.4v1.5h3.4zm-3.8 4.5h-2.7v1.5h3zm9 0h-3v1.5h3zm-5.2 4.5h-3.4v1.5h3.4zm-9.1 0h-3v1.5h3z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M164.4 310.3v-4.2h1.6l7.5-4.5 7.6 4.5h1.9v4.6h3.4v5.3h-3.8v4.5h-1.1l-7.6 4.5-7.6-4.5h-1.5V316h-5.3v-6Z"/>
+ <path fill="#d22630" d="m173.9 301.6-7.6 4.2h14zm-7.6 18.5 6.8 4.2 7.2-4.2zm1.5-9.4v4.5h8.7v-4.5z"/>
+ <path fill="#ffc72c" d="M164.8 315.6v4.1h8.7v-4.1zm9 0v4.1h8.8v-4.1zm-14.3-5v4.6h8.7v-4.5zm17.8 0v4.6h8.7v-4.5Zm-12.5-4.5v4.2h8.7v-3.8zm9 0v4.2h8.8v-3.8z"/>
+ <path d="M180 311.8v2.3h3.7v-2.3zm-3.8-4.5v2.2h3.7v-2.2zm-9.1 0v2.2h3.8v-2.2zm3.8 4.5v2.3h3.7v-2.3zm-9.1 0v2.3h3.8v-2.3zm5.3 4.5v2.3h3.8v-2.3zm9 0v2.3h3.8v-2.3z"/>
+ <path fill="#fff" d="M180 312.2h3.3v1.5H180zm-3.5-4.5h3v1.5h-3zm-9 0h3.4v1.5h-3.4zm3.7 4.5h3v1.5h-3zm-9 0h3v1.5h-2.6Zm5.3 4.5h3.4v1.5h-3.4zm9 0h3v1.5h-3z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M160.3 302.7v4.6h-1.5l-7.6 4.9-7.5-5H142v-4.5h-4.5v-4.9h4.5v-4.5h1.6l7.5-5 7.6 5h1.5v4.5h4.5v4.6Z"/>
+ <path fill="#ffc72c" d="m151.2 311.8 6.8-4.5h-13.6zM158 293l-6.8-3.8-6.8 3.8z"/>
+ <path fill="#d22630" d="M160 297.8v-4.5h-8.4v4.5zm-8.8 0v-4.5h-8.7v4.5zm13.2 4.6v-3.8h-8.7v3.8zm-9 0v-3.8h-8v3.8zm-8.7 0v-3.8H138v3.8zm13.2 4.5v-4.2h-8.3v4.2zm-8.7 0v-4.2h-8.7v4.2z"/>
+ <path d="M148.6 294.4v2.3h-3.8v-1.9Zm9 0v2.3H154v-1.9ZM144 299v2.6h-3.8v-3Zm9.1 0v2.6h-3.8v-3Zm9 0v2.6h-3.7v-3Zm-13.5 4.9v2.2h-3.8V304zm9 0v2.2H154V304z"/>
+ <path fill="#fff" d="M148.2 294.8h-3v1.5h3zm9 0h-3v1.5h3zm-13.5 4.5h-3v2h3Zm9 0h-3v2h3zm9.1 0h-3v2h3zm-13.6 4.6h-3v1.9h3zm9 0h-3v1.9h3z"/>
+ </g>
+ <g fill="#383739">
+ <path d="M160.3 328v5h-1.5l-7.6 4.5-7.5-4.5H142v-5h-4.5v-4.9h4.5v-4.5h1.6l7.5-4.9 7.6 5h1.5v4.4h4.5v5z"/>
+ <path fill="#ffc72c" d="m151.2 337.1 6.8-4.1h-13.6zm6.8-18.9-6.8-3.7-6.8 3.7z"/>
+ <path fill="#d22630" d="M160 323.1V319h-8.4v4.1zm-8.8 0V319h-8.7v4.1zm13.2 4.6v-4.2h-8.7v4.2zm-9 0v-4.2h-8v4.2zm-8.7 0v-4.2H138v4.2zm13.2 4.9v-4.5h-8.3v4.5Zm-8.7 0v-4.5h-8.7v4.5Z"/>
+ <path d="M148.6 319.7v2.7h-3.8v-2.7zm9 0v2.7H154v-2.7ZM144 325v2.3h-3.8V325Zm9.1 0v2.3h-3.8V325Zm9 0v2.3h-3.7V325Zm-13.5 3.8v2.3h-3.8v-2.3Zm9 0v2.3H154v-2.3Z"/>
+ <path fill="#fff" d="M148.2 320.1h-3v2h3zm9 0h-3v2h3zm-13.5 5h-3v1.5h3Zm9 0h-3v1.5h3zm9.1 0h-3v1.5h3zm-13.6 4.5h-3v1.5h3zm9 0h-3v1.5h3z"/>
+ </g>
+ <path fill="#383739" d="m102 383.6 34-18.1h30.3l34 18.1v29.9l-34 17.7h-30.2l-34-17.7z"/>
+ <path fill="#00843d" d="m136 365.9-33.6 17.7v29.5l33.7 18.1h30.2l33.7-18.1v-29.5L166.7 366zm.5 2.2h29.8l31.8 17v26.5l-31.8 17h-29.5l-31.7-17V385z"/>
+ <path fill="#ffc72c" d="M151.2 398.4v30.2h15.1l31.4-17v-12.9h-46.5v-30.2h-15.1l-31.4 16.6v13.3z"/>
+ <path fill="#fff" d="M151.2 398.4v30.2h-15.1l-31.4-17v-12.9h46.5v-30.2h15.1l31.4 16.6v13.3z"/>
+ <path fill="#383739" d="M153.9 426.7V418l-2.7 2-2.6-2v8.7h-9.1l6-4.5v-6l-9-5.7h-6v-24.2h5.6l9-5.7v-6L140 370h9v8.7l2.7-1.5 2.6 1.5v-8.3h9.1l-6 4.5v6l9 5.7h6.5v24.2h-6.5l-9 5.7v6l6 4.6z"/>
+ <path fill="#ffc72c" d="M154.2 370.4v9l-3-1.8v2.6l14 8.7h4.5v9.5h2.3V387h-6l-9.5-6v-6.8l5.3-3.8zm-23.4 28.3v11.4h5.3l9.4 6v6.5l-5.3 3.7h7.6v-9l3 1.8v-2.6l-14-8.7h-4.5v-9z"/>
+ <path fill="#fff" d="m140.6 370.4 5.3 3.8v6.8l-9.4 5.6h-5.7V398h1.9v-8.7h4.5l14-8.7V378l-3 1.8v-9.4zm29.1 28.3v9.1h-4.5l-14 8.7v2.6l3-1.8v9h7.6l-5.3-3.7v-6.9l9.5-6h6v-11.3Z"/>
+ <path fill="#d22630" d="M133 407.4h4.2l14 9.1 14-9h4.2v-18.2h-4.2l-14-8.7-14 8.7h-3.8z"/>
+ <path fill="#383739" d="M160.7 402.9h3v-1.5h-2.3v-2.7h5v6.5h-4.6v4.5h-9.5v-6.4h4.2v2.6H155v1.2h3.8v-2.3l-17.4-10.6h-3v1.1h2.2v2.7h-4.5v-6.4h4.5V387h9.5v6.4h-3.8v-2.6h1.1v-1.1h-3.7v2.2zm-1.6-11v-2.2H155v1.1h1.5v2.6h-4.2V387h9.5v4.6h4.5v6.4h-4.9v-2.7h2.3v-1.1h-3l-17 10.2v2.3h3.7v-1.2H146V403h4.2v6.4h-9.5v-4.5h-4.5v-6.4h4.9v2.6h-2.3v1.5h3z"/>
+ <path fill="#fff" d="M159.5 404.4v3H155v-1.9h1.5v-1.8h-3.4v5.6h8.7v-4.5h4.5V399h-3.7v2h1.8v2.2H161l-17.7-11.4v-2.6h4.9v1.9h-1.5v1.9h3.8v-5.7h-9.1v4.5h-4.6v5.7h3.8v-1.9h-1.9v-1.9h3.4zm1.2-10.6h3.7v2h-2.6v1.8h4.5V392h-4.5v-4.5h-8.7v5.7h3.4v-2H155v-1.8h5v3l-17.9 11h-3.4V401h2.3v-1.9h-3.8v5.7h4.2v4.5h8.7v-5.6h-3.4v1.8h1.5v2h-5v-3z"/>
+ <path fill="#383739" d="M190.5 399.9v9.4h-3.8V406h-4.1v3.4h-4.2V400h3.8v3.4h4.2V400zm-14.3 12.4v9.5h-3.8v-3.4h-4.2v3.4h-3.8v-9.5h3.8v3.4h3.8v-3.4zm14.3-15v-9.9h-3.8v3.4h-4.1v-3.4h-4.2v9.5h3.8v-3.5h4.2v3.8zm-78.6 2.6v9.4h3.8V406h4.1v3.4h4.2V400h-3.8v3.4h-4.1V400zm0-3v-9.5h3.8v3.4h4.1v-3.4h4.2v9.5h-3.8v-3.5h-4.1v3.8zm64.3-12.5v-9.5h-3.8v3.4h-4.2V375h-3.8v9.5h3.8V381h3.8v3.8zm-50 28v9.4h3.8v-3.4h4.2v3.4h4.2v-9.5h-3.8v3.4h-4.2v-3.4zm0-28v-9.5h3.8v3.4h4.2V375h4.2v9.5h-3.8V381h-4.2v3.8zm52.2-6.4v7.1h13.3zM124 419v-7.5h-13.2zm0-41.5v7.5h-13.2zm54.4 41.5v-7.5h13.3z"/>
+ <path fill="#d22630" d="M186.7 405.5v3.8h3.4v-9h-3.4v3.4h-4.5v-3.4h-3.8v8.6h3.8v-3.4zM172.4 418v3.8h3.4v-9h-3.4v3.3h-4.6v-3.4h-3.4v8.7h3.4V418zm14.3-26.8v-3.4h3.4v8.7h-3.4V393h-4.5v3.8h-3.8v-9.1h3.8v3.4zm-71 14.3v3.8h-3.4v-9h3.4v3.4h4.5v-3.4h3.8v8.6h-3.8v-3.4zm0-14.3v-3.4h-3.4v8.7h3.4V393h4.5v3.8h3.8v-9.1h-3.8v3.4zm56.7-12.5v-3.4h3.4v8.7h-3.4v-3.4h-4.6v3.8h-3.4v-9h3.4v3.3zM130 418v3.8h-3.4v-9h3.4v3.3h4.6v-3.4h3.8v8.7h-3.8V418zm0-39.3v-3.4h-3.4v8.7h3.4v-3.4h4.6v3.8h3.8v-9h-3.8v3.3z"/>
+ <path fill="#ffc72c" d="M178.8 378.3v6.5h11.3zm-66.9 34 11.3 6v-6z"/>
+ <path fill="#fff" d="m123.6 378.3-11.3 6.5h11.3zm55.2 34v6l11.3-6z"/>
+ <path fill="#ffc72c" d="M205.6 424.8c-.7 2.7-3 4.6-3.4 7.6-1-3-1.8-5.7-1-8.7 0-2.3 2.2-3.8 2.6-6.4q2.5 2.8 1.8 7.5m.4 11.4a18 18 0 0 1-6.8 5.6c.4-2.2-.7-3.8-1.9-5.6-1.1-2-1.9-3.8-.7-6.5a14 14 0 0 0 1.9 3.4c1.1 1.5 2.2 3 2.2 5.3 1.5-1.1 2-2.6 2.7-4.1a13 13 0 0 1 5.3-5.3c-.8 2.6-1.2 4.9-2.7 7.2m-9.8 7.5.4 3.8 4.1-3c2-2 4.2-2.7 5.7-5a10 10 0 0 1-3.8 7.2l-7.5 5q-.1-3.9-2-7.6a7 7 0 0 1 2-6q0 2.8 1.1 5.2zm-5.7 8.7-3 5.3q3.8-1.4 7.6-3.8c2.6-1.5 5.6-2.2 8.3-4.5-1.2 4.9-4.6 7.5-9 9-3.1.8-6.1.4-10 2a27 27 0 0 1 2.7-7.6l2.7-5.3q1.2 2.1.7 5zm-9.8 7.2a12 12 0 0 1-3.8 3.8c3.8 0 6.8-2 10.6-2.3 2.3 0 4.5.8 6.8.4-2.6 1.9-5.7 3.8-9 3.8-4.2.7-8.4 0-13 0 2.3-1.6 3.5-3.8 4.6-5.7 2-3 3.8-5 7.2-5.3-1.5 1.5-2.3 3.8-3.4 5.3m-13.2 6c6.4 1.2 12.8 2.7 19.6 2.7a30 30 0 0 1-22.3.4c-3.8-1.2-7.2-2.3-10.2-2-4.1 0-9.8 2.3-15.9 8.4l-2.2-1.9c8.7-7.6 20-9.5 31-7.6"/>
+</svg>
diff --git a/apps/web/public/flags/tn.svg b/apps/web/public/flags/tn.svg
new file mode 100644
index 00000000..5735c198
--- /dev/null
+++ b/apps/web/public/flags/tn.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tn" viewBox="0 0 640 480">
+ <path fill="#e70013" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M320 119.2a1 1 0 0 0-1 240.3 1 1 0 0 0 1-240.3M392 293a90 90 0 1 1 0-107 72 72 0 1 0 0 107m-4.7-21.7-37.4-12.1-23.1 31.8v-39.3l-37.4-12.2 37.4-12.2V188l23.1 31.8 37.4-12.1-23.1 31.8z"/>
+</svg>
diff --git a/apps/web/public/flags/to.svg b/apps/web/public/flags/to.svg
new file mode 100644
index 00000000..d0723370
--- /dev/null
+++ b/apps/web/public/flags/to.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-to" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#c10000" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M0 0h250v200.3H0z"/>
+ <g fill="#c10000">
+ <path d="M102.8 31.2h39.9v139.6h-39.8z"/>
+ <path d="M192.6 81v40H53V81z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tr.svg b/apps/web/public/flags/tr.svg
new file mode 100644
index 00000000..b96da21f
--- /dev/null
+++ b/apps/web/public/flags/tr.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tr" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#e30a17" d="M0 0h640v480H0z"/>
+ <path fill="#fff" d="M407 247.5c0 66.2-54.6 119.9-122 119.9s-122-53.7-122-120 54.6-119.8 122-119.8 122 53.7 122 119.9"/>
+ <path fill="#e30a17" d="M413 247.5c0 53-43.6 95.9-97.5 95.9s-97.6-43-97.6-96 43.7-95.8 97.6-95.8 97.6 42.9 97.6 95.9z"/>
+ <path fill="#fff" d="m430.7 191.5-1 44.3-41.3 11.2 40.8 14.5-1 40.7 26.5-31.8 40.2 14-23.2-34.1 28.3-33.9-43.5 12-25.8-37z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tt.svg b/apps/web/public/flags/tt.svg
new file mode 100644
index 00000000..bc24938c
--- /dev/null
+++ b/apps/web/public/flags/tt.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tt" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#e00000" fill-rule="evenodd" d="M463.7 480 0 1v478.8zM176.3 0 640 479V.2z"/>
+ <path fill="#000001" fill-rule="evenodd" d="M27.7.2h118.6l468.2 479.3H492.2z"/>
+</svg>
diff --git a/apps/web/public/flags/tv.svg b/apps/web/public/flags/tv.svg
new file mode 100644
index 00000000..675210ec
--- /dev/null
+++ b/apps/web/public/flags/tv.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tv" viewBox="0 0 640 480">
+ <path fill="#009fca" d="M0 0h640v480H0z"/>
+ <path fill="#fff40d" fill-rule="evenodd" d="M593.3 122.7H621l-22.3 15.2 8.5 24.7-22.3-15.3-22.2 15.3 8.5-24.7-22.3-15.2h27.5l8.5-24.7zm-69.2 196.8h27.6l-22.3 15.2 8.5 24.7-22.3-15.3-22.3 15.3 8.6-24.7-22.3-15.2H507l8.5-24.7zm69.2-44.6H621l-22.3 15.2 8.5 24.7-22.3-15.3-22.2 15.3 8.5-24.7-22.3-15.2h27.5l8.5-24.7zM295.8 417.7h27.6L301 432.8l8.6 24.6-22.3-15.2-22.3 15.2 8.6-24.6-22.4-15.3h27.6l8.5-24.6zm62.6-76.5h-27.6l22.3-15.3-8.5-24.6 22.3 15.2 22.3-15.2-8.6 24.6 22.3 15.3h-27.5l-8.5 24.6zm81.3-112.5H412l22.3-15.2-8.5-24.7 22.3 15.3 22.3-15.3-8.6 24.7 22.3 15.2h-27.5l-8.5 24.7zm68.3-23.3h-27.6l22.4-15.3-8.6-24.6 22.3 15.2 22.3-15.2-8.6 24.6 22.4 15.3H525l-8.5 24.6zM439.7 400H412l22.3-15.2L426 360l22.3 15.2 22.3-15.2-8.6 24.7 22.3 15.2h-27.5l-8.5 24.7zm-81.3 19.9h-27.6l22.3-15.2-8.5-24.7 22.3 15.2 22.3-15.2-8.6 24.6L403 420h-27.5l-8.5 24.7z"/>
+ <path fill="#012169" d="M0 0h320v240H0z"/>
+ <path fill="#FFF" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+ <path fill="#C8102E" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+ <path fill="#FFF" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+ <path fill="#C8102E" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/apps/web/public/flags/tw.svg b/apps/web/public/flags/tw.svg
new file mode 100644
index 00000000..57fd98b4
--- /dev/null
+++ b/apps/web/public/flags/tw.svg
@@ -0,0 +1,34 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tw" viewBox="0 0 640 480">
+ <clipPath id="tw-a">
+ <path d="M0 0h640v480H0z"/>
+ </clipPath>
+ <g clip-path="url(#tw-a)">
+ <path fill="red" d="M0 0h720v480H0z"/>
+ <path fill="#000095" d="M0 0h360v240H0z"/>
+ <g fill="#fff">
+ <path d="m154 126.9-2.5 9.6 9.4 2.6-1.8-7.1zm46.9 5.1-1.8 7.1 9.4-2.6-2.5-9.6zm-41.8-24-5.1 5.1 1.9 6.9z"/>
+ <path d="m155.9 120-1.9 6.9 5.1 5.1z"/>
+ <path d="m154 113.1-6.9 6.9 6.9 6.9 1.9-6.9zm14 27.8 5.1 5.1 6.9-1.9zm18.9 5.1 9.6 2.5 2.6-9.4-7.1 1.8z"/>
+ <path d="m192 140.9 7.1-1.8 1.8-7.1zm-31.1-1.8 2.6 9.4 9.6-2.5-5.1-5.1zm19.1 5 6.9 1.9 5.1-5.1z"/>
+ <path d="m173.1 146 6.9 6.9 6.9-6.9-6.9-1.9zm-12.2-45.1-9.4 2.6 2.5 9.6 5.1-5.1zm-1.8 31.1 1.8 7.1 7.1 1.8zm45-12 1.9-6.9-5.1-5.1z"/>
+ <path d="m168 99.1-7.1 1.8-1.8 7.1zm32.9 8.9-1.8-7.1-7.1-1.8zm5.1 18.9 6.9-6.9-6.9-6.9-1.9 6.9z"/>
+ <path d="m200.9 108-8.9-8.9-12-3.2-12 3.2-8.9 8.9-3.2 12 3.2 12 8.9 8.9 12 3.2 12-3.2 8.9-8.9 3.2-12z"/>
+ <path d="m200.9 132 5.1-5.1-1.9-6.9zm5.1-18.9 2.5-9.6-9.4-2.6 1.8 7.1zm-6.9-12.2-2.6-9.4-9.6 2.5 5.1 5.1zm-26-6.9-9.6-2.5-2.6 9.4 7.1-1.8zm6.9 1.9-6.9-1.9-5.1 5.1z"/>
+ <path d="m186.9 94-6.9-6.9-6.9 6.9 6.9 1.9z"/>
+ <path d="m192 99.1-5.1-5.1-6.9 1.9zM173.1 146l-9.6 2.5 4.5 16.6 12-12.2zm-5.1 19.1 12 44.9 12-44.9-12-12.2zm-7.1-26-9.4-2.6-4.4 16.4 16.4-4.4z"/>
+ <path d="m147.1 152.9-12 45.1 32.9-32.9-4.5-16.6zm-12-20.9L102 165.1l45.1-12.2 4.4-16.4z"/>
+ <path d="m154 126.9-6.9-6.9-12 12 16.4 4.5zm0-13.8-2.5-9.6-16.4 4.5 12 12z"/>
+ <path d="M135.1 108 90 120l45.1 12 12-12zm90 24-16.6 4.5 4.4 16.4 45.1 12.2z"/>
+ <path d="m199.1 139.1-2.6 9.4 16.4 4.4-4.4-16.4zm-12.2 6.9-6.9 6.9 12 12.2 4.5-16.6zm19.1-19.1 2.5 9.6 16.6-4.5-12.2-12z"/>
+ <path d="m192 165.1 33.1 32.9-12.2-45.1-16.4-4.4zm7.1-64.2 9.4 2.6 4.4-16.4-16.4 4.4z"/>
+ <path d="M225.1 108 258 75.1l-45.1 12-4.4 16.4zm-12.2-20.9L225.1 42 192 75.1l4.5 16.4zm12.2 44.9 44.9-12-44.9-12-12.2 12z"/>
+ <path d="m206 113.1 6.9 6.9 12.2-12-16.6-4.5zm-38-38L135.1 42l12 45.1 16.4 4.4z"/>
+ <path d="m160.9 100.9 2.6-9.4-16.4-4.4 4.4 16.4z"/>
+ <path d="m147.1 87.1-45.1-12 33.1 32.9 16.4-4.5zm39.8 6.9 9.6-2.5-4.5-16.4-12 12z"/>
+ <path d="M192 75.1 180 30l-12 45.1 12 12z"/>
+ <path d="m173.1 94 6.9-6.9-12-12-4.5 16.4z"/>
+ </g>
+ <circle cx="180" cy="120" r="51.1" fill="#000095"/>
+ <circle cx="180" cy="120" r="45.1" fill="#fff"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/tz.svg b/apps/web/public/flags/tz.svg
new file mode 100644
index 00000000..a2cfbca4
--- /dev/null
+++ b/apps/web/public/flags/tz.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-tz" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="tz-a">
+ <path fill-opacity=".7" d="M10 0h160v120H10z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#tz-a)" transform="matrix(4 0 0 4 -40 0)">
+ <path fill="#09f" d="M0 0h180v120H0z"/>
+ <path fill="#090" d="M0 0h180L0 120z"/>
+ <path fill="#000001" d="M0 120h40l140-95V0h-40L0 95z"/>
+ <path fill="#ff0" d="M0 91.5 137.2 0h13.5L0 100.5zM29.3 120 180 19.5v9L42.8 120z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ua.svg b/apps/web/public/flags/ua.svg
new file mode 100644
index 00000000..a339eb1b
--- /dev/null
+++ b/apps/web/public/flags/ua.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ua" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="gold" d="M0 0h640v480H0z"/>
+ <path fill="#0057b8" d="M0 0h640v240H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ug.svg b/apps/web/public/flags/ug.svg
new file mode 100644
index 00000000..520eee5c
--- /dev/null
+++ b/apps/web/public/flags/ug.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ug" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="ug-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#ug-a)" transform="translate(80)scale(.9375)">
+ <path fill="#ffe700" fill-rule="evenodd" d="M-128 341.4h768v85.3h-768z"/>
+ <path fill="#000001" fill-rule="evenodd" d="M-128 256h768v85.3h-768z"/>
+ <path fill="#de3908" fill-rule="evenodd" d="M-128 170.7h768V256h-768z"/>
+ <path fill="#ffe700" fill-rule="evenodd" d="M-128 85.4h768v85.3h-768z"/>
+ <path fill="#000001" fill-rule="evenodd" d="M-128 0h768v85.3h-768z"/>
+ <path fill="#fffdff" fill-rule="evenodd" stroke="#000" d="M335.7 256a79.7 79.7 0 1 1-159.4 0 79.7 79.7 0 0 1 159.4 0z"/>
+ <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="m242 194.9-5.2-9.5c2-2 5.3-3.6 10.7-3.6l-.6 10.5z"/>
+ <path fill="#ffe700" fill-rule="evenodd" stroke="#000" d="m247 192.3.7-10.5s10.7-.6 16.5 6.4l-5.7 8.2z"/>
+ <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="m258.6 196.3 5.3-8.2c3.5 3.7 5 6.3 5.5 10.3.1.1-8.3 2.1-8.3 2z"/>
+ <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M244.6 331.1s9.9-11.3 29.1-8.9c-2.9-4.7-12.3-4.1-12.3-4.1s-2.8-22-.6-23.2 12 .1 12 .1c1.2 0 3.4-3.4 1.6-5.6s-6.8-10.5-4.7-12.2 13.4 1 13.4 1l-32-41s-3.3-15.5 3.3-23c7.9-6.5 7-13.6 6.8-13.5-1.1-7.2-12-12.3-19.4-5.7-4.3 5.2-1.4 9.2-1.4 9.2s-11.5 3.1-11.9 5.1 12.9-.3 12.9-.3l-1.3 9.1s-26 23.6-6 44l.6-.8s7 8.6 14.3 10.5c7 7 6.3 6 6.3 6s1.3 11.1 0 13.3c-1.7-.5-19.3-1.2-21.9-.2-2.4.8-11.4.3-9.2 15.1l3.3-7.5s-.3 5.3 1.9 7.2c-.4-5.6 2.1-9.4 2.1-9.4s.4 6.2 1.8 7c1.4 1 1.4-10 9-9 7.4.9 12.9.6 12.9.6s2.5 21.4 1.7 23.4c-5.4-1.3-18.4.5-19.2 3.8 7.6-.5 11.1.4 11.1.4s-6.1 5.5-4.2 8.6"/>
+ <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M247.6 214.8s-18.9 20.8-10.7 36.7c.4-2.2.2-3.6.5-3.5-.5-.3 2.3 1.9 2.1 1.5 0-1.2-.8-3.7-.8-3.7l2.5.7-1.5-2.8 3.7.4s-1.3-3.4-.9-3.4l3 .2c-5.4-9.6-.3-17.6 2.1-26.2z"/>
+ <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" d="M254.2 196.9s1 7.2-3 9.2c-.5.5-3 1.3-2.6 2.8.4 2 1.5 1.6 3 1.2 4.1-.7 8.9-9.4 2.6-13.2z"/>
+ <path fill="#fff" fill-rule="evenodd" d="M247.2 203a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0"/>
+ <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="M241.1 209c-1 .9-6.2 6.3-1 8.3 5.3-1.4 3.8-2.4 5-3.6 0-2.5-2.6-3.1-4-4.6z"/>
+ <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M252.6 260.5c-.3 1.2-1.5 5.6.1 9 4.6-2 6.7-1.4 8.2-.4-3.7-3-5.2-4.3-8.3-8.6"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="m260.4 281.1.2 10.2s3.6.6 5.2 0 0-7-5.4-10.2"/>
+ <path fill="#9ca69c" fill-rule="evenodd" stroke="#000" d="M286 282.4s-6.5-15.8-23.2-19.8-14.5-21.8-13.2-22.9c.8-1.5 1.3-3.9 6.1-1.6s27 13.4 30.2 14 .4 30.7.2 30.3z"/>
+ <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".9" d="M270.2 262.5c-.3.2 22.3 13.4 15.5 24.7 6.4-4.3 4.4-11.7 4.4-11.7s5.2 13.7-7.6 20.4c1.4 1.2 2.3 1 2.3 1l-2.2 2.1s-1 1.7 7.6-2.5c-2.3 1.9-2.5 3.3-2.5 3.3s.6 1.8 6.2-3.1c-4.5 4.9-5.5 7.4-5.5 7.3 12.3-1 39-41-8.4-52.7l2.1 2.2z"/>
+ <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M271.2 258.6c3 2.2 4.1 3 4.5 4-2.8-.6-5.3-.4-5.3-.4s-6.1-5.8-7.2-6.3c-.8 0-5.6-3-5.6-3-2.3-1.2-4.5-9.3 4.2-7a93 93 0 0 0 10.3 4.6l10.7 3.4 6.2 6.9s-11-5.4-12.4-5.5c3 2.4 4.7 5.8 4.7 5.8-3.5-1-6.5-2-10.1-2.5"/>
+ <path fill="none" stroke="#fff" stroke-linecap="round" stroke-width=".9" d="M228.4 209.9s10.5-2.6 11.8-2.2"/>
+ <path fill="#de3908" fill-rule="evenodd" d="M-128 426.7h768V512h-768z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/um.svg b/apps/web/public/flags/um.svg
new file mode 100644
index 00000000..9e9eddaa
--- /dev/null
+++ b/apps/web/public/flags/um.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-um" viewBox="0 0 640 480">
+ <path fill="#bd3d44" d="M0 0h640v480H0"/>
+ <path stroke="#fff" stroke-width="37" d="M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640"/>
+ <path fill="#192f5d" d="M0 0h364.8v258.5H0"/>
+ <marker id="um-a" markerHeight="30" markerWidth="30">
+ <path fill="#fff" d="m14 0 9 27L0 10h28L5 27z"/>
+ </marker>
+ <path fill="none" marker-mid="url(#um-a)" d="m0 0 16 11h61 61 61 61 60L47 37h61 61 60 61L16 63h61 61 61 61 60L47 89h61 61 60 61L16 115h61 61 61 61 60L47 141h61 61 60 61L16 166h61 61 61 61 60L47 192h61 61 60 61L16 218h61 61 61 61 60z"/>
+</svg>
diff --git a/apps/web/public/flags/un.svg b/apps/web/public/flags/un.svg
new file mode 100644
index 00000000..632bbb4a
--- /dev/null
+++ b/apps/web/public/flags/un.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-un" viewBox="0 0 640 480">
+ <path fill="#4b92db" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+ <g transform="translate(-40.6)scale(.6)">
+ <path id="un-a" fill="#fff" d="M663.9 587a71 71 0 0 1-9.5 8.6c-21.2-22-46.2-46.2-69.9-46.2-14.7 0-25.2 11.2-37.6 19-17.1 11-40.6 17.2-60.7 9.1a66 66 0 0 1-29.2-20 64 64 0 0 0 57.5 5c19.7-8.2 39.9-19.1 62.4-19.1 33.2 0 64.8 22.5 87 43.6m-245.6-69c22 25 57.9 17 87.2 23.2 4.1 1 8 2.3 12.4 1.6-3.5-2.2-8.2-2.5-12.2-4-22.8-8.6-26.3-33-38.8-49.7 16 10.6 29.1 25 44 38.7a74 74 0 0 0 36.7 16.2c-3.2 1.2-7.4 1-11 1.8-24 6-50.6 15.4-76.2 7a75 75 0 0 1-42-34.8zm-35.2-58c13.7 31.1 48.2 33.6 71 52.6a64 64 0 0 0 13.5 9.2l.3-.2a100 100 0 0 1-15.1-16.5c-13.1-19-8.8-45-18.9-65.2a142 142 0 0 1 23.1 34.9c8.5 20.2 11.4 43.3 30.5 58.7-20.7-6.8-44.5-5.5-63-17.6-19.6-12.8-37.7-33-41.4-55.8zm-14.7-62.8c2 27.4 31 42 45 64.5 3 4.8 6 9.8 10.3 13.6-.7-2.9-3-5.5-4.4-8.3a63 63 0 0 1-5.3-32.3c1.3-14 7.1-27 4.9-41.7 12 25.9 8.1 58.2 15 86.1 1.6 6.2 5.3 11.6 7.6 17.5-11.7-9-27.1-17-40-27a86 86 0 0 1-29-36.5 85 85 0 0 1-4.1-35.9m.8-50.4c1.4-6.1 2.5-12.4 5.1-18-5 25.8 12.2 44.4 18 66.8 2.2 8.4 3 17.3 6.4 25.2q.5 0 .8-.4c-8.5-23.8 4-45.8 16-64.5a55 55 0 0 0 6.2-16.5c1.3 10.8-1 23.2-3 34.3-2.5 14.3-7.4 27.7-11.3 41.5a65 65 0 0 0-.5 27.4l-1.3-1c-9-16.6-26.8-29.6-32.1-47.8a103 103 0 0 1-4.3-47m9.5-27.8a79 79 0 0 1 19-50q.4-.4 1-.4c-12.6 19-1.1 43.2-2.8 64.9l-1.6 22.2c.2.2.2.9.8.6.8-2.5 1-5.1 1.4-7.7 3-18 18.8-30.4 32.1-43a29 29 0 0 0 7-10.4c-1.1 9-3.6 18.1-7.6 26.2-10.3 20.8-30.1 37.6-33.7 61.3-1.7-22.7-15.6-39.6-15.6-63.7m33-65.9a46 46 0 0 1 22-14.6c-16.5 11.3-15.6 31.4-20.6 48.2-1.8 6.1-4.5 11.9-6 18.2l.5.4a54 54 0 0 1 13.5-19.9c11.5-10.8 28.8-17.4 34.5-33.3-.3 22.1-19.1 38.9-36.3 51.9a63 63 0 0 0-18.2 21.8c.6-6 1-11.2.4-17.1-1.8-19.3-3-41 10.3-55.6zm66.5-37.1c-12.1 10.7-20.2 24.4-29.6 36.7-7.7 10.3-18.4 16.6-27.5 25.2 5-10.2 5.8-22 12.1-31.9 10.7-17 28.5-23.6 45-30"/>
+ <use xlink:href="#un-a" width="100%" height="100%" transform="matrix(-1 0 0 1 1202.2 0)"/>
+ </g>
+ <path fill="#fff" d="m409 262-2.1-1.2a97 97 0 0 1-17.9 25.4l-12.5-12.6a79 79 0 0 0 14.7-21.3l-2.1-1.2a77 77 0 0 1-14.4 20.8l-11.4-11.4a60 60 0 0 0 11.6-17.1l-2.1-1.2a58 58 0 0 1-11.2 16.6l-12.5-12.5a40 40 0 0 0 8-12.6l-2.1-1.2a38 38 0 0 1-7.6 12l-11.5-11.4a21 21 0 0 0 5.4-13h16.2a37 37 0 0 1-2.5 12.4l2.1 1.2a40 40 0 0 0 2.8-13.6h17.8a57 57 0 0 1-5 22.1l2.2 1.2a60 60 0 0 0 5.2-23.3h16.2a76 76 0 0 1-7.2 31l2.1 1.2a78 78 0 0 0 7.4-32.2h17.9a96 96 0 0 1-9.6 40.7za99 99 0 0 0 10-43 99 99 0 0 0-7.2-37.1l-2.2 1a96 96 0 0 1 7 34.9h-17.9a79 79 0 0 0-5.5-28l-2.2 1a76 76 0 0 1 5.4 27H380a60 60 0 0 0-4-20.6l-2.2 1a58 58 0 0 1 3.8 19.6H360a40 40 0 0 0-2.4-12.6l-2.2 1a38 38 0 0 1 2.2 11.6h-16.2a21 21 0 0 0-5.4-13l11.5-11.5a37 37 0 0 1 7.9 12.8l2.2-.9a40 40 0 0 0-8.4-13.6l12.6-12.6a58 58 0 0 1 12.2 19.2l2.2-1a60 60 0 0 0-12.8-19.9l11.5-11.4a76 76 0 0 1 16.1 25l2.2-1a79 79 0 0 0-16.7-25.7l12.6-12.6a96 96 0 0 1 20.5 31.3l2.2-1a99 99 0 0 0-21.8-32.8 99 99 0 0 0-33-21.9l-.8 2.3a96 96 0 0 1 31.3 20.4l-12.6 12.6a79 79 0 0 0-25.2-16.4l-1 2.2a76 76 0 0 1 24.5 16l-11.4 11.4a60 60 0 0 0-19-12.4l-.8 2.2a58 58 0 0 1 18 11.8l-12.5 12.6a40 40 0 0 0-12-7.8l-.9 2.3a37 37 0 0 1 11.2 7.2L334.2 203a21 21 0 0 0-13-5.4v-16.2a37 37 0 0 1 13.3 2.9l.9-2.2a40 40 0 0 0-14.2-3.1v-17.8a58 58 0 0 1 20.7 4.2l.9-2.2a60 60 0 0 0-21.6-4.4v-16.2a76 76 0 0 1 27.5 5.6l.8-2.2a79 79 0 0 0-28.3-5.7v-17.9a96 96 0 0 1 34.9 7l.8-2.3a99 99 0 0 0-36.9-7 98 98 0 0 0-44.2 10.4l1 2a96 96 0 0 1 42-10v17.8a78 78 0 0 0-33.7 8.1l1.1 2a76 76 0 0 1 32.6-7.8v16.2a60 60 0 0 0-25 6l1 2.1a58 58 0 0 1 24-5.7V179a40 40 0 0 0-15.7 3.8l1 2a37 37 0 0 1 14.7-3.4v16.2a21 21 0 0 0-7 1.6l1 2a19 19 0 0 1 7.2-1.3 19 19 0 0 1 13.4 5.5A19 19 0 0 1 339 219a19 19 0 0 1-19 19 19 19 0 0 1-13.4-5.6A19 19 0 0 1 301 219a19 19 0 0 1 5.6-13.5 19 19 0 0 1 6.2-4.1l-1.1-2.1a21 21 0 0 0-6 3.8l-11.4-11.5a38 38 0 0 1 9.9-6.7l-1.1-2a40 40 0 0 0-10.5 7L280 177.3a58 58 0 0 1 14.8-10.3l-1-2a60 60 0 0 0-15.4 10.7L266.9 164a76 76 0 0 1 19.3-13.6l-1-2a79 79 0 0 0-20 14l-12.6-12.7a97 97 0 0 1 24.3-17.2l-1.1-2.1a100 100 0 0 0-44.5 44.8l2 1a97 97 0 0 1 17.6-24.8l12.7 12.7a79 79 0 0 0-14.5 20.7l2 1.1a76 76 0 0 1 14.1-20.2l11.5 11.4a60 60 0 0 0-11.3 16.5l2 1.1a58 58 0 0 1 11-15.9l12.6 12.6a40 40 0 0 0-7.8 11.8l2.1 1.2a37 37 0 0 1 7.3-11.3l11.5 11.4a21 21 0 0 0-5.4 13.1h-16.2a38 38 0 0 1 2.8-13.2l-2-1.2a40 40 0 0 0-3.2 14.4h-17.8a58 58 0 0 1 5.2-22.9l-2-1a60 60 0 0 0-5.6 23.9h-16.2a76 76 0 0 1 7.5-31.7l-2.1-1.1a78 78 0 0 0-7.7 32.8h-17.9a96 96 0 0 1 9.9-41.3l-2.1-1.1a98 98 0 0 0-10.2 43.6 99 99 0 0 0 4 27.9l2.3-.6a97 97 0 0 1-3.9-26.1h17.9a79 79 0 0 0 3.3 21.7l2.3-.6a76 76 0 0 1-3.3-21.1H260a60 60 0 0 0 2.8 17.2l2.4-.6a58 58 0 0 1-2.8-16.6H280a40 40 0 0 0 2.3 12.2l2.3-.6a38 38 0 0 1-2.2-11.6h16.2a21 21 0 0 0 5.4 13l-11.5 11.5a37 37 0 0 1-7.9-12.9l-2.3.6a40 40 0 0 0 8.6 14l-12.7 12.6a58 58 0 0 1-13.2-22.2l-2.4.6a60 60 0 0 0 14 23.3L265.2 272a76 76 0 0 1-18.1-30.8l-2.3.6a78 78 0 0 0 18.7 31.9L251 286.3a96 96 0 0 1-23.5-40.1l-2.4.6a98 98 0 0 0 25 42 99 99 0 0 0 27.3 19.4l1.2-2.1a96 96 0 0 1-26-18.1l12.6-12.6a79 79 0 0 0 22.1 15l1.2-2a76 76 0 0 1-21.6-14.7l11.4-11.4a60 60 0 0 0 18.2 12l1.2-2.1a58 58 0 0 1-17.7-11.6l12.6-12.6a40 40 0 0 0 14 8.5l1.1-2.1a37 37 0 0 1-13.4-8.1l11.5-11.5a21 21 0 0 0 13 5.4v16.2a38 38 0 0 1-11-2l-1.3 2a40 40 0 0 0 12.3 2.4v17.8a58 58 0 0 1-21.1-4.4l-1.2 2a60 60 0 0 0 22.3 4.8v16.2a76 76 0 0 1-30.3-6.8l-1.2 2a78 78 0 0 0 31.5 7.2v17.8a96 96 0 0 1-40.2-9.3l-1.2 2a99 99 0 0 0 42.6 9.7c15.8 0 31-3.7 44.6-10.6l-1.2-2.2a96 96 0 0 1-42.2 10.4v-17.9a78 78 0 0 0 34-8.3l-1-2.1a76 76 0 0 1-33 8v-16a60 60 0 0 0 25.6-6.4l-1.1-2.1a57 57 0 0 1-24.5 6v-17.8a40 40 0 0 0 16.3-4l-1-2.2a37 37 0 0 1-15.3 3.8v-16.2a21 21 0 0 0 13-5.4l11.5 11.5a38 38 0 0 1-9.3 6.3l1.1 2.2a40 40 0 0 0 9.9-6.8l12.6 12.5a58 58 0 0 1-14.3 10.1l1 2.1a60 60 0 0 0 15-10.5l11.4 11.4a77 77 0 0 1-19 13.5l1.2 2.1a79 79 0 0 0 19.5-13.9l12.5 12.6a97 97 0 0 1-23.9 17.1l1.2 2.2a99 99 0 0 0 25.3-18.4A99 99 0 0 0 409 262"/>
+ <path fill="#fff" d="M325.7 196h-.6v.7h.6zm-1.5-1h.8v.6h-.8zm-1.4-.2.6.1.1-.6h-.7zm-.6-.2h-.7v-.7l.8.1zm-5.8-.8h.8v.6h-.8zm-1.7 1.2.7.1v-.6h-.6zm0 1-.7-.3v-.6l.9.3zm-1.4.7v-.6l.5-.1.1.6zm-78.6 61.6v-.5h-.5v1h.8v1.3h.6v-1.5zm7.5 9-1-1-.9-1.1-.4-1-.7-1.8 1.5.8.5 1.4.7.5.7 1.5zm20.7 27.1-.1-.9-.9-1.2 1.3.2 1.2 1.1.6 1.3-.8.4-.3-.6zm54-91.9h-1l-.3-2.2.6-.4v-1.1h-3.5v-1.1l.4-.3-.8-.3-.6.8-.2.9-1 .2v.5h-.7v1.3l-2.8 2.3-5.6-.2c-.3 1-1.3 0-1.3 0-.3-.7-1.6 0-1.6 0 0 1-2-.6-2-.6l-3.4-2.5c-2-1.8-5 .5-5.1 1 0 1.4-2.3.3-2.3.3s-2-.6-2.3.2-1.6.6-1.6.6l-.2.4-1 .2-.2.6-1.2.2h3c.8-.2-.3 1.7-.8 1.6H280l-.5.6h-1.3l-.6.8-1.9-.1s-1 .9-1 1.2c.1.3-.2 1.2-.5 1.2s-.9 1-.7 1.2c.2.3-.6 1.3-.6 1.3l-.2 1-.6.3v2.7l-1.2.8v1.2l-1.8 2 .2 1.5-1.5 1.7.2 1.6-.9.3-.2.7-.4 2.1 1 .1c.5-.2.4 1.3 0 1.6-.4.2-1.5.6-.9 1s-1.6.3-1.6-.3-1.2-1.2-1.5-1-.8-.9-.8-.9c-1-1-4.4.1-4.4.1l-.5 1.7c-1.1.1-1.8 2-1.8 2-1 .3-1.6 1.4-1.3 1.7s-.5.4-.5.4v2.2l-.5.7v2.5c.7 0 .6 1 .6 1-1 .2-.8 1.5-.8 1.5l-2.1.7-.4.6h-2.6l-.7.6-.7-.7h-5l-.2-.5-1-.2v-1.1h-1.6l-.3.7-1.6.1c.1 1-1.6 2.5-1.8 2.1s-1.3-1.5-.8-1.7l1.8-.4v-.7l-3.7-.1-.4.6-1.5.1v1.6l-.7.2c-.5.3.1 1.4.1 1.4.7.7 0 1.9 0 1.9-.7.6.4 1.7.4 1.7.8.2-.5.8-.5.8.2 1 .8 1.3.8 1.3-.6 1 .4 1.5.4 1.5l.1 1.7.7.4v1.2l.4.7h1.6v-2.6c-1.5-1.6 1.1-2 1.2-1.4s1.2 1 1.2 1c.2 1.5 2 2.4 2.4.8.5-1.5 1-.6 1.2.1.3.8 2.2 2.5 2.2 2.5h1.5l.2 1.4c1.7-.1 2.2 0 2.9 2.4a4 4 0 0 0 2.6 3l1.4-.1c0-1.3 1.4.2 1.4.8s2.7 2.9 2.7 2.9l2.7.6 2.5 2 1.9-.2h.8c.5-1.7 2.9.1 3 .7s1.8 1.7 2 1.2 1.3-.2 1.5 1.3 1 1.2 1 1.2l5.6-.1 2-1.7 5.1-.1c2.6-.1 1-3.7.5-3.7-.9-.7.3-3.6.3-3.6l-7.3-6.8c-1.7 0-.2-2.4-.2-2.4 1.3-.8-.3-2.2-.3-2.2.2-1.2-.7-2.6-.7-2.6-1.8-1.2-1.3-3.5-1.3-3.5V245c-1.5-1.4.6-1.6.6-1.6.7-1.2-.5-2.1-.5-2.1V240l-1.7-.2-.2-4.8-3.6-5.1c-.7-.2-.2-1.5-.2-1.5 1-.5-.2-1.7-.2-1.7v-2.2l2-.2.5-.8h1v-2.6c.4-1.4 1.6-.7 1.6-.7l1.4.1.8-1.5.2-1.2h-1c-1.3-.8-.7-3.4-.7-3.4 2-2.9 4.1-1.2 4.1-1.2l1.4-.1c2.1 1.4.2 4 .2 4-.4.6-.2 2.5-.2 2.5l.5 3.3-1.3 1c-1 .7-1 2.1.1 2.4.8.1.5 2-.7.7-1.8 0 1 1.6.2 1.2 1.8 1 1.4-.8 1.4-.8l2.4-1.9c1-.7 2.5 1.5 2.5 1.8s4 .1 4 .1c1 .7 1.5 2.6 1.5 2.6 1-1.5 3.4-.1 1.7.7 1.6 1 1.6 1.9 1.6 1.9 1.3-.4 1.3.6 1.3.9l.4-1.5c-1.5-1.1 2-1.5 1 .5l-.6.9 1 .8v2.3c2.3-.2 1.7-2.9 1.7-2.9l1-.2c0-1 .7-.4.7-.4-.7-3.4 1.6-4 1.6-4 1.3-.4 1.4-3.1 1.4-3.1-1-.4-.4-1.8.6-.6s-.6-2.4-.6-2.4l-.8-.7-1.1-.1-.1-1.1h-1.8l-.3 1.4-.7.2-.2-.4-.3 1H296l-.1-1.1 1-.3.5-.6.3-1.7h1.3l1.7-.5c0-1.7 1-1.3 1-1.3l.6.5.9.7v.6l-.5.3-.1.8.3 1.2h.7c.3-1.7 2.4-1.7 3-.6l.6-1.5c-1.4-.7 0-1.8.4-1.3s1.3-1.3 1.3-1.3.7 1 0-.3c-.7-1.2.5-1.8.5-1.8-.2-1.2 1.3-1 1.3-1l.1-1.7h-1.4c-.3 1.4-1.5.1-.9-.2s1.2-.9 1.2-.9v-1l.6-.2.1-1h1.5l1.3-.6.3-.5 1.4-.1 2-1.8-.2-.8c-1.2 0 0-1 0-1z"/>
+ <path fill="#fff" d="m276.7 222.6-1.8-.2.1.7h.5c.8 1.4.1 4.8.1 4.8s-1.2.1-1.4-.5-.7 1.3-.3 1.7 1.8 0 2 1c0 1.2.8-.6.8-.6z"/>
+ <path fill="#fff" d="m276.7 231.2.6-.1.1-.7-1.5 1-1-.6v2.4l1.6 2.1.6-1.4.2-.9-.7-.3zm.8 6.4v-1h-.7v.9zm-.9 4.8v-.7l-.8.1v.7zm1.2-3.1a.4.4 0 0 0 0-.9.4.4 0 0 0-.4.5q0 .3.4.4"/>
+ <circle cx="278.5" cy="241" r=".4" fill="#fff"/>
+ <circle cx="278.5" cy="229.4" r=".4" fill="#fff"/>
+ <path fill="#fff" d="m312.4 214.5-1-.1-.3.5h-.5v.8h.5l.1.6-.4.4-.2.5-.8.2-1.8 1.7v.8l-.6.7-.6 1.6h-2l-.5 1.9.3 1.5 1.8.7.2-1 .6-.3.1-1 .4-.7.6-.7.2-.8 1-.6 1.2-.3.5-.6.2-1.2v-.9l.5-.6 1.2-.5v-2h-.6zm2.8 6.9v-1.5l-.2-1.3-1.5-.7-1 1-.3 1.4v1l-1 .2-.2 2.7-.8.3.1 1-1 .3-1.2.3-.2 1.3-.8.5-.4 1.3-.5 2.9s1 1.7 1.4.9c.5-.8 1.3-1 1.3-1l.3-.6h2.7c.2-1 1.5-.6 1.5-.1s1 0 1 0l.7-1h1.1l.1-1.3.5-.3V227c1.6-.5 1.4-2 1.4-2l.4-.5-.2-.7c-.8-.3-.4-1 .1-.8s-.7-1-.7-1c-.6.6-1-.5-1-.5zm1.6 12.2c0 1.2-1.6 1.6-1.6 1.6l-1-.3-.7-.5V233l.8-.1.2.6zm5.4-6.5c.2 1 .2-1.4.6-1.3s.1-1.4.1-1.4l-1.8 1.3c.9.1 1 1 1.1 1.4m5.3-5.2c.4.9.3 2.2 1.8 3.2.5.3-.3 1-.8.7l-2-2.5V222c.4-.8.8-.5 1-.1m.3 31 .3.5.7-1-.6-.3-.7.5zM325 251v1.2m14.4-2.6.8-.5-.3-.6-.8.5zm28.9 21 .9.5v1.7c1.3 1.2 5.2.2 5.2-.1l-.2-3.8-.5-.5-.1-2.5c.4-1.3-2-3.2-2.1-2.8s-1.5 0-1.5.5-.8 2.4-.4 3.1-.3.7-.4 1.4-1.1 2-1 2.6zm-2.2-4c-.2.8-1 1.2-1.3 1-.4-.4.5.4.7.8q.5.6 1 0c.2-.4 0-1.3.3-1.7s-.6-.5-.7 0zm-4.7-18.6h.7v2h-.7zm10.4-19.4c-.5-.6 2-1.7 2.4-.4s0 1-.4.9-1.4.3-2-.5m2.1-13.6v.6l1 .2.1-.6zm-4.5 1.6.8.5h.3l.6-.4v.2l.6-.2-.2-.5v-.3l-.4.1-.7.5-.7-.5zM375 192h-1.5s.5.2-1-1.1c-1.3-1.3-2.2.3-2.2.3l-1.6.2v1.6l-.8.3v1h1.2s0 1.1.3.6 2.8.1 2.6 1.4c-.1.5 2.5 1.8 2.2 3.4 1.3.2 1 1.5 1 1.5l1.7.2.5-1 .5.1v-.6l-1.1-.3-.2-3.3-.7-.5.2-.8-.8-.3.4-1.3zm4.3 10.3h-.8l-1.8.2-1 2s.5.3 1 1c.3.7.5 4.8-.7 5.5s.1.3.1.3l-.2 2.3c.3 1 .8.5 1.1 0s.6-.6 1-1.1 1-1.5 1.1-2.2.6-1.8.3-2.1.3-1.7.3-1.7.4-.8 0-1.6.1-1.8.4-2.2zm1.2 4.2.1-.8h.6v.8zm0 2.8-.5-.3.3-.6.5.3zm-.9-8-.4-1s0-.8.2-1.2-.4-.8-.7-1c-.3 0-.2-.8-.3-1.2s-.8-.7-.8-.7l-.2-1.9c0-.3-.9-.7-.6-1l.8-.9c.3-.2-.3-1.6.2-1.3q.6.5.7 1.2c.2.4 0 1.8.4 2.1s0 1.4.7 1.4c.8 0 .3 1.9.3 1.9s-.2 1.4.3 1.5.2 2.5.2 2.5zm-6.4-16.5c.3.4.9.7.9 1.1s-.2.7.4.8q.9 0 1.2.4c.2.5.2 1.4 0 1.8q0 .8.7 1c.7.2.6 0 .6.4 0 .3.6-1.1.6-1.1-.5-.4-1-1.3-1-1.3l-.4-1.7c0-.2-.7-.4-1-.5s-.8-1-.8-1zm1-.9q-.4-.6-1-.9t-1.1-.4a.7.7 0 0 1-.6-1c.2-.4-.3-.6-.3-1s.3-.4.8-.1.4.4.8.9.6 1 1 .9.7.9 1 .6c.5-.3.4.7.4.7zm-11.7 11.4c.5.6-3 .4-3 0s.3-1.8 1.2-1.5 1-1.8 1-1.8-.8.1-.1-.3 0-1-.3-1.3l-.6-.8h1.4c.6-.4.8-2.3.8-2.3 1.2.4 1.8-.5 1.8-.5l.6 1.2c.4.5-1 .7-.5 1s.7 1.2.5 1.5-1.3 0-1.3-.3-.4.5 0 1-.5 1.2-.7 1.2-1.5.2-.4.8c1 .6 2.3.3 2.3.3s.9 0 1.2.4q.3.7-.6.6l-3-.2s-.6.7-.3 1m-6.4 1c.5-.1 1.7-.2 2 0 .1.4-.8.8-.8.8l-1.2.2q-.7-.9 0-1m12.9-8.5c.8-.4 2.5-.4 2.4-1s1-.9 1-.9l.3 1.2.9.7v1l-.7.2c-1.1.3-.4.8-.4.8H370l-.3-1-.8-1zm-4-5.5c.7 0-.1 2.3 1.5 2.1s0 .7 1.3.8c1.2.1.9-.9 1.3-1.6q.6-1-.5-1.3c-.7-.2-.7-.2-1-1-.1-.8-1-1-1-1l-.2-1.2-1.3.8-1.3 1.7c0 1.3.7.7 1.3.7zm2.7 8.5.3-.6.6.3-.3.6zm-1-1h.6v.8h-.6zm.5-13.4v.9h-.5l-.1-.8zm-1.7 9.4h.6v.5h-.6zm-1.6 0v-.6h1v.5zm-8.2 9.8-.6-.3.3-.7.6.3zm-3.2-1.9v-.6h1v.5zm-17.3-.2-2.2.1v.6h2.3zm-3.6.9-.2-.9.6-.1.2.9zm-.4.6-.2-.5.3-.1.2.5zm5-1.7-.1.7 1 .1s.5.4.5.7.7.6 1.1.6 1.5-.8 1.5-.8.5-1.4.1-1.3-1.2.7-1.3.1c0-.6-1.3-.3-1.3-.3zm5-1c0 .2-.3.6.3.7s1.7-.4 1.8.2.1 1 1 1.3l1.8.4 2-.2s1.3.3 1.6.5q1.6 1.8 2.1 1c.3-.5 0-1.7-.2-2 0-.5-1.5-2.4-2-2s-.6 0-1.5.3-2.8.1-2.9-.3c0-.4-1.5-.6-1.5-1s-1-1-.9-.3-.7.9-.9.7-.8.6-.8.6zm22.9-13 .7-2.3c-1-.2-.8-1.3-.8-1.3-.1-1-1.5-2-2-1.6s-.3-2.1-.3-2.1.9-.6 1.3-.3-3.4-5.1-4.2-4.6-2.6-.5-2.5-1.4c.1-1-3.6-4-3.6-4s-1.2-.8-1.4-.2-.6 1 0 1.4.5-.5 1.2.2 2 1.6 1.5 2.2l-1 .8.6.8h1.1l.2 1.7s1.2.6 1.5 1.3q.4 1 0 1.6c-.3.4-.9 1-.8 1.8.1.7 1 1 1 1h.7l.6.4v1.3c.8-.2 2.1 1 2 1.6 0 .7.2.3 1.2 1s.7.8 1.4 1.4q1.1.7 1.6-.8z"/>
+ <path fill="#fff" d="M347.5 165.6c0-.4-.3-1.8.3-1.7.6 0 .2 0 1 .3s.7-.5.7-.5h1.1l1.4 1-.2 1h-1c-.5-.7-1.5-.4-1.3.3s-.5 2-.9 2.1-1.7.1-1.6-.5zm-.8-2.7v-.9s0-.8-.6-.8-1.4-.6-1.2-1-1.7-.8-1.7-.8-1.7-1.6-1-1.4c.5.2.2-.7.2-.7s-1.2.2-1.5 0c-.3 0-.2-1-.2-1s-1.2-.2-1.2 0 .4.4.6 1 .1 1.6 1 1.8 1.1.4 1.2.8 1.2.5 1.2.5l.8.4zM336 152.5l-.3-.8-.8-.2v1zm-.3-4.2c-1-.8 1.4.6 1.4.6.8 0 1.3.6 1.3.9s1 .2 1 .2l.1-.7-.8-1-.7-.5s-1-.1-1-.4-1 1.2-1.4.9zm18.3.6c-.3.9-.4 2.1-.9 2.1s-.3 1.3-.3 1.3l1.7.1c.4.1.4 1.1.4 1.1 1.5 0 2.1 2 2 2.5-.3.5.5.5.5.5s0 1.6-.2 2 1.3.7 1.7 1.3-.2 2.6-.5 2.7.8.5.7 1 .3 0 .4.8l.3 2.5 1.4.1c.2-1.3 2.8-1.4 3.2-1.2 1.7.6 3 3.2 3 3.8s-1.1.7-1.1.7l.2 3c1.7.5 3 3 2.9 3.3-.2.4 1.2.3 1.2.3.2-1.8 1.9-1.2 2-.6 0 .6.4 2 .4 2l.5.8.7.7h1l.4.6 1.2.2s1.1 1.2 1.2 1.5 1.6.2 2 .3q.8 0 1.1.9c.1.5.7 1.3.7 1.3s1.2.3 1.3.7l.6 1.3 1 .8.1 1h1.1l.3 1.3 1.8-.1 1-.7a6 6 0 0 0 2.3-2c.1-.5.3-2 1.3-1.7s.3-2.2.3-2.2-1.4-1-1.3-1.5-1.4-1.5-1.3-2c.1-.3-1.3-1.2-1.2-1.6s-.7-1.5-.7-1.5L387 175l-.2-1h-1.2l-2.4-3 .1-.8h-.7V169l-.7-.4h-1l-2.3-2.5-.2-1.1h-1l.2-2.1c.7-1 .3-2.7.3-2.7s-1.4.7-2.1.4.3-1 .3-1v-.8l-.6-.6s-1.7.2-1.8-.1l-.4-1.6-.1-1.7-.7-.3-.1-.7-1.1.1v-1.2l-.6-.2-.6-.3-.1-1.2-2.2-.1-.7-1-.8-1.2-2.5-.2-.6-.6-1-.2-.7-.3-.3.5h-2v.7c-1 .5-5 0-5 .4zm10.5-2.7c-.2-.7 2-1.5 2.5-.9s1.9.7 2 3.8c.1 1-1.7-1.1-1.7-1.1l-1.5-.5q-1.2-.4-1.3-1.2zm-29.3 1.3-.5-.3.4-.9.5.3zm-5.1-10-1.3-1.3v-1l-.4-.5-.4-1.4-1.3-.4-1.3.5-1.4.9-1.5.2-.8 1 3.2.2.6 1 2.3.2 1.5 1.5c1.3.5 1.6-.2.8-.9m-.2-5c-.2-.8-1.5 1.2-.2 1.6s2.6 0 2.6 0l.3-.6 5 .1c.4-.4.6-1 .6-1s1.2-.4 1.7-.2 0-1.4-.4-1.2-1.5 0-1.5 0h-1.8c-.1-.6-1.7-.3-1.8 0-.1.5-.7.6-.7.6l-2.3.2c-.2.6-1.4 1-1.5.6zm-9.9 17.2c1.5.5 2.1 0 2.2-.3q0-.5.8-.6c.6-.1-.1-1.3-.7-1.2q-1 0-1.3-.7c-.1-.6-1.1-1.9-1.2-.9s-.7 1-.6 1.8c.1.7.4 1.7.8 1.9m-11.5 1.1c0-.4 2-.4 2.3-.1s.1.8 1 .8.5.6.4 1c0 .2-1 .1-1.2-.2 0-.3-1.6-.4-1.6-.4s-.8-.6-.9-1.1m34-21.7-.8.6-.5-.5-.5.5.7.7.2.2.2-.2 1-.8zm-5.5-1.8-.7-.4-.3.5.8.5h.3l1.1-.7-.3-.5zm-3.3 20.8-1-.1v.6h.8l.6 1 .5-.3-.7-1zm-33 28.2.1 1.1h1.5c.6 0-.5-.7-.5-.7s-1.2.1-1-.4zm2 0 .3-.4.6.5-.4.4zm-18.2-18.9.4-.4.6.6-.4.4zm29 130.3-1-.5-.3.5.6.3-.2.2.4.5.5-.5.3-.3zm-7.8-7.3-.4-.5-.6.5-.3.3.4.2.7.5.3-.5-.4-.3zm74.2-19.2c-.1-.5-.7-.7-.8-.8l-.2.6.2.1.1.5-.1.2.4.4q.6-.5.4-1m1-2h-1v-.9l1 .2zm23-7.8c.5-.3 1-.8 1 .4-.1 1.1-.6.7-1 1.1-.3.4-.6-1.1 0-1.5m5.1-4.3-.2-.7-.5.3.1.4q0 .3.2.5.1.2.4 0l-.1-.5zm-1.3.5.4 1.2.5-.2-.3-1.2zm-2.2 2.4h-.6c0 .4 0 1 .5 1l.2-.5zm-2.6-12-.4-.5q-.7-.2-1.5.4l.3.5q.7-.4 1-.4zm-27.7-32.4c-.4.4-1.3.6-1.3.6l-.3 1-.4.5v1c0 .7-1 1.1-1 1.1l-.4.5h-2.7c-1-.4-.3-1.6.3-1.5s-.1-1.7-.1-1.7l.8-.1s0-1.8.4-1.8q.3-.2-.5-1c-.4-.3-1-1.3-1.3-1.2h-2l-.3.6-1.1.2-.1 1c-.6.8-3 2.3-2-.2l.4-.7v-.9h-1.8s-1-.4-1-.8v-.9l-2.1-2.3-2.5-.3-.2-.5-1.5-.2c-1.8-1-3.4-.1-3 1.4.2 1.5.7 2.1-.3 2.1s-1.2-.8-1.2-.8-.8-.3-.8.1-.3 1.2 0 1.6-.4 1-.7.7-1-1.2-.9-1.5c.2-.3-1.4-2.2.2-2.5s0-1.2.5-1.4l.8-.4h.8l.5-.4-1.3-.2-.8-.1-1.5-.1a4 4 0 0 0-1.8 2.2c-.8 1.5-2.7-.6-2-1.4s-2.2-.1-2.7.3-2 .2-2 .2c-.3.9-1.7-.1-1.3-.7l.4-1-.5-.2-.6 1.2c-1.3 0-1.7.8-1.5 1.3.3.5-.4-.1-.6.6s.2.7.7 1c.6.3-.3.3.1.8s1.6 0 1 .7c-.8.7-2.1.4-2.1.4-.1 1-2 .7-2.2.4l-1.7-2.1-2-.1c-.1-1.4 1-.7 1.4-1.8s.6-3 .6-3-1.6 0-1.7.4-1.1.9-1.1.9-.8.3-.5.7-.6.6-.6.6.1.6-.1.9c-.8.8-2.8 0-3.1-.2l-1.2-.5-1.2-.8-1.4.6-.4.4h-1.5l-.1 1.2 2.7.3.2 2.5-1.1-.4h-.7l-.3-.6h-.6v2.1l.6.5.5.5 1 .1.2 1.3h2.5l.3.6h1.5l2.9 3-.2 1-.5.2c.2.7-1.3.3-1.3.3v.6l.7.1.7.4 1-1.7c1-.7 1.6.3 1.7 1 0 .5-.5.4-.5.4v1.5l.6.2c1 1.2-.4 1.9-.4 1.9l-.3 1c-.3.9-1.4.7-1.4.7l-.4.6-1.2.3 2.4.3q.5-1.2 1-.6c.4.4.4 1.1.4 1.1l.6.1-.1 1.1.6.2v3.3l.7.8c1.2-.5 1.2.3.6.7s-.2 2.2-.2 2.2l-.5.5v.8l-.6.4v1.2c-1-.5-2.2-.3-2.5 0-1-.6-2.8-.4-2.8 0 .6.9-.7 1-.7 1l-.7.9c.5 1-.5 1.1-.5 1.1v2l-1.2 1v2.7c0 .7 1.6.8 1.9.4s1.5.8 1.5.8h.9l.2-1.8-.6-.3v-3l1-1c1.2-.5.8 2.5.8 2.8 0 1.2.6 1 1 .8 1-.4.3 1.2-.5 1-.8 0-.3 1-.3 1l.5.3-1 .7-.7.9-1-.3-1.2-.1-.4-.7-.7-.1-.1 1.4-.5.6-1.2 1.2c1.6 0-.2 1.1-.6 1.1.9.3-.1 1.2-2.4.5v.7l-.8.1.7.9h.8l-.3 1.8c0 1.3-3.3.4-3.6 0v2h-.7l.1 1.2v1.7l1-.2v.7l2.7.1 3.9-4.1 2.3-.5c.2-1 1.2.2 1.2.2 1-.1 1.2.6 1.2.6l1.3.2c1 .3.4.4.5.8 0 .6.6.4.6.4l.2-1.3.6.1-.6-.7-1.1-.5-1.2-.5c-.8-1.1.2-1 1-.8h1.3s1.5 2 1.5 2.5.7.6.7.6h.9l.3.6h.9l.3.6h1.8v-.9l-1.6-.3-.1-1-1.2-.3c-.4-1.7.3-2.2.8-1.4h.6l-.2-1.4.7-.2-.2-2.2-.6-.2v-.7l2.5.1v-1.9h.8v.5l3.1.3 2.2-2.5c-.1-.2.2-.3 0-.5-.4-.3-.8 0-1.3-.3s0-2 0-2.5c-.2-.4 1.6-1 1.3 0-.3.8 0 1.3 0 1.3 1.3-1.3 2.4 0 2.3.4 0 .3.7.6 1.2.3s1.1.9 1 1.5c-.3.6-2 .5-2.2-.1q-.1-.7-.6-.1t-1.6.2l-.1-.2-2.2 2.5h.1c1.2.7.6 1.6.2 1.8s-1 .2-1 .2l-.3.4-2.6.2-.2 1c-1.2-.1-1.7 1.3-1.4 2s0 1.3 0 1.3l1 .5 1.5-.4c.2-1 1-1.2 1.8-1.8s2.1 1 1.7 1.9l-.4 1.1.1 1-1 .3-.8.4v.5h-2.8l-.4.5-1.3.1-.4.7h-1s-1.4.8-.8 1.6-2.5.7-3.2-.4c-.2 1-1.3 0-1.3 0l-1.1-.2-.1-1.5c-.2-1-2.1-1-2-.3 0 .7-3.6.3-3.6.3l-1.2.5-1.1.7-.1.5-1.8.2-.8.4-.3-.6h-.8l-.8 1c-2 .2-4 1.4-3.9 2 .2.4-.8 1-.8 1l-.9.2-.6 1-1.2.3-.2 2.2-.6.4v.9l-.7.2v.5h-1l.6 1.6.8.4c1.4.2.8 2 .8 2h.8l.4 1.1.8 1.7c.3 1.2 1.2.9 1.6.8s.8 1.2.8 1.2l4 .1s-.2.4.5.6 5.3.4 5.5.1c-.2-.9 2.5-1.1 3.6-.3 1 .8 2.6.3 2.6.3l1.5 1.8 1 2.3 1.7.5 1.2.3.4 1.7h.9l.3 1.2c1 .8-.3 2.5-.3 2.5v2.3l.8.4-.1.8 1.3 1.3h1.5l3.7 4.1 3 1 .5 1.6.8-.1.6-.5 2.4-.1 1.2-1.2 1.3-.2 11-9.4-1-.6v-2.2c1.9-1.3 2-3.7.3-3.9-1.3-.1-.7-1.5.5-1.7l.7-.3v-.9l2.3-2.1v-1.6l-5-4.2c-2.2-.8 0-5.7 1.5-5.6s-.1-7.4-.1-7.4l-.8-.4.2-2.5h-1.1l-1.8 2.4-.5 1.6c-.2 2.1-6.4 1.7-6.7 1.4s-2.4-1.2-2.4-1.2-1.6-1.3-1.9-1c-.3.5-1.7-.4-1.7-.1s-1.3-.8-1.3-.8l-2-.7 1.5-.3-.3-1.2 2.6 1.3c.3.4 1.6.3 1.6.3l.4.5s.8 0 1.3.5c.5.7 3.1.2 3.1.2l.7.6 1.1.4h3.1l.1-1.9.6-.6v-1.2l.6-.6v-1l.6-.2.1-2.2.5-.1v-4.9l-1.5-1.4c-.1.5-1.7.5-1.7.5s-.4.7-.7.7.4 1 .2 1.5-1 .6-1 .6l-1.5.4-.4.5h-1.6l-.2-1.3 1.8-.5 1-.5.5-1c.1-1 1.3-.9 1.3-.9s2.3-2 2.4-2.8c.1-1 .9-3.5 2.3-3.5h2.6c1-.4.7-1.7.7-1.7l1.3-.2.2.7s1.8.2 2 0c.2-.4.6-1 1-.8.6.3 2.2-.7 2.2-.7 0-.7 2.6-.4 2.6-.4l.3-1s-1.7-2.3-2-2.3-2-1.4-2.1-.9c-1.6-.4-1.5-2.6-1.5-2.6l-.6-1.4c0-.8-1.5-2.5-1.8-2.3a1.5 1.5 0 0 1 0-2.6c.4 0 1.4-1.5 1.4-1.5l.5-1.4 1.7-.5.2-1.3-1-.1s1-1.9 1.6-1.9 3.8 0 4-.2c.4-.2 1-1.8 1-2 0-.4.8-.5 1-.6.4 0 1-.9 1.3-1.3.2-.4-.5-3-1-2.5"/>
+ <path fill="#fff" d="M320 242c.1 0 .3.5.6.4s.5.6.1.6q-.2.1-.2.5 0 .3-.3.8-.3.2-.7-.1-.4-.2-.9-.2c-.3 0 0 .6 0 .6s-1.6 0-1.3-.3q.6-.3.4-.4t0-.6c.1-.4.7-.2.5-.4s0-1.1.4-.6l.2-.5c-.2-.3 0-.3-.5-.5s-.1-1-.1-1v-.7c.2-.7 1.7-.8 1.8-.1v1.1l.5.2s-.1.4-.5.4 0 .2-.2.5l.2.4zm-5 .8c.3-.4.8-2.4 1.4-1.8s1 0 1 0 .3.3.1 1q-.2.9-.6 1.2l-1.2.4c-.4 0-.6-.8-.6-.8z"/>
+</svg>
diff --git a/apps/web/public/flags/us.svg b/apps/web/public/flags/us.svg
new file mode 100644
index 00000000..9cfd0c92
--- /dev/null
+++ b/apps/web/public/flags/us.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-us" viewBox="0 0 640 480">
+ <path fill="#bd3d44" d="M0 0h640v480H0"/>
+ <path stroke="#fff" stroke-width="37" d="M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640"/>
+ <path fill="#192f5d" d="M0 0h364.8v258.5H0"/>
+ <marker id="us-a" markerHeight="30" markerWidth="30">
+ <path fill="#fff" d="m14 0 9 27L0 10h28L5 27z"/>
+ </marker>
+ <path fill="none" marker-mid="url(#us-a)" d="m0 0 16 11h61 61 61 61 60L47 37h61 61 60 61L16 63h61 61 61 61 60L47 89h61 61 60 61L16 115h61 61 61 61 60L47 141h61 61 60 61L16 166h61 61 61 61 60L47 192h61 61 60 61L16 218h61 61 61 61 60z"/>
+</svg>
diff --git a/apps/web/public/flags/uy.svg b/apps/web/public/flags/uy.svg
new file mode 100644
index 00000000..62c36f8e
--- /dev/null
+++ b/apps/web/public/flags/uy.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-uy" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#0038a8" d="M266 53.3h374v53.4H266zm0 106.7h374v53.3H266zM0 266.7h640V320H0zm0 106.6h640v53.4H0z"/>
+ <g fill="#fcd116" stroke="#000" stroke-miterlimit="20" stroke-width=".6" transform="translate(133.3 133.3)scale(2.93333)">
+ <g id="uy-c">
+ <g id="uy-b">
+ <g id="uy-a">
+ <path stroke-linecap="square" d="m-2 8.9 3 4.5c-12.4 9-4.9 14.2-13.6 17 5.4-5.2-.9-5.7 3.7-16.8"/>
+ <path fill="none" d="M-4.2 10.2c-6.8 11.2-2.4 17.4-8.4 20.3"/>
+ <path d="M0 0h6L0 33-6 0h6v33"/>
+ </g>
+ <use xlink:href="#uy-a" width="100%" height="100%" transform="rotate(45)"/>
+ </g>
+ <use xlink:href="#uy-b" width="100%" height="100%" transform="rotate(90)"/>
+ </g>
+ <use xlink:href="#uy-c" width="100%" height="100%" transform="scale(-1)"/>
+ <circle r="11"/>
+ </g>
+ <g transform="translate(133.3 133.3)scale(.29333)">
+ <g id="uy-d">
+ <path d="M81-44c-7 8-11-6-36-6S16-35 12-38s21-21 29-22 31 7 40 16m-29 9c7 6 1 19-6 19S26-28 32-36"/>
+ <path d="M19-26c1-12 11-14 27-14s23 12 29 15c-7 0-13-10-29-10s-16 0-27 10m3 2c4-6 9 6 20 6s17-3 24-8-10 12-21 12-26-6-23-10"/>
+ <path d="M56-17c13-7 5-17 0-19 2 2 10 12 0 19M0 43c6 0 8-2 16-2s27 11 38 7c-23 9-14 3-54 3h-5m63 6c-4-7-3-5-11-16 8 6 10 9 11 16M0 67c25 0 21-5 54-19-24 3-29 11-54 11h-5m5-29c7 0 9-5 17-5s19 3 24 7c1 1-3-8-11-9S25 9 16 7c0 4 3 3 4 9 0 5-9 5-11 0 2 8-4 8-9 8"/>
+ </g>
+ <use xlink:href="#uy-d" width="100%" height="100%" transform="scale(-1 1)"/>
+ <path d="M0 76c-5 0-18 3 0 3s5-3 0-3"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/uz.svg b/apps/web/public/flags/uz.svg
new file mode 100644
index 00000000..0ccca1b1
--- /dev/null
+++ b/apps/web/public/flags/uz.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-uz" viewBox="0 0 640 480">
+ <path fill="#1eb53a" d="M0 320h640v160H0z"/>
+ <path fill="#0099b5" d="M0 0h640v160H0z"/>
+ <path fill="#ce1126" d="M0 153.6h640v172.8H0z"/>
+ <path fill="#fff" d="M0 163.2h640v153.6H0z"/>
+ <circle cx="134.4" cy="76.8" r="57.6" fill="#fff"/>
+ <circle cx="153.6" cy="76.8" r="57.6" fill="#0099b5"/>
+ <g fill="#fff" transform="translate(261.1 122.9)scale(1.92)">
+ <g id="uz-e">
+ <g id="uz-d">
+ <g id="uz-c">
+ <g id="uz-b">
+ <path id="uz-a" d="M0-6-1.9-.3 1 .7"/>
+ <use xlink:href="#uz-a" width="100%" height="100%" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#uz-b" width="100%" height="100%" transform="rotate(72)"/>
+ </g>
+ <use xlink:href="#uz-b" width="100%" height="100%" transform="rotate(-72)"/>
+ <use xlink:href="#uz-c" width="100%" height="100%" transform="rotate(144)"/>
+ </g>
+ <use xlink:href="#uz-d" width="100%" height="100%" y="-24"/>
+ <use xlink:href="#uz-d" width="100%" height="100%" y="-48"/>
+ </g>
+ <use xlink:href="#uz-e" width="100%" height="100%" x="24"/>
+ <use xlink:href="#uz-e" width="100%" height="100%" x="48"/>
+ <use xlink:href="#uz-d" width="100%" height="100%" x="-48"/>
+ <use xlink:href="#uz-d" width="100%" height="100%" x="-24"/>
+ <use xlink:href="#uz-d" width="100%" height="100%" x="-24" y="-24"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/va.svg b/apps/web/public/flags/va.svg
new file mode 100644
index 00000000..3e297d63
--- /dev/null
+++ b/apps/web/public/flags/va.svg
@@ -0,0 +1,190 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-va" viewBox="0 0 640 480">
+ <path fill="#fff" d="M320 0h320v480H320z"/>
+ <path fill="#ffe000" d="M0 0h320v480H0z"/>
+ <g stroke="#000" stroke-linejoin="round" stroke-width="3.2">
+ <g fill="#ce9d09" stroke-linecap="round" transform="translate(123)scale(.192)">
+ <g id="va-a">
+ <path fill="#fff" d="m1781 990.3 16.2 3.8 25.6 4.2 11.8 1.3-2 50s-2.9 33-7.8 48.9c-3.6 11.7-15.7 33.2-15.7 33.2l-7.7 11.7-45.4-39.3s7.8-11 10.6-17c3.5-7.5 7.7-23.8 7.7-23.8l4.4-26 2.4-32.7zm-57 151.5 41.4 36s-8.4 7.4-13.4 9.7a74 74 0 0 1-31.6 7.3 58 58 0 0 1-22.3-6.2c-15.7-7.2-33-14.7-43.2-28.7-3.6-5-5-11.6-4.9-17.7.2-7 6.3-19.9 6.3-19.9s2.4 8.7 5.1 12a49 49 0 0 0 17.6 12.4 43 43 0 0 0 36.2 1.1c3.3-1.3 8.9-6 8.9-6z"/>
+ <path fill="#fff" d="M1658.7 877.7s3.2 6.6 4.2 10.1q2.9 9 3 18.6a79 79 0 0 1-3.2 18.6 171 171 0 0 1-10.3 26.3c-2.6 5.4-6 10.3-8.6 15.8-4.1 8.7-7 18-10.6 26.8-3 7.5-6.9 14.7-9.2 22.4-3 10.2-4.5 20.9-6 31.4a230 230 0 0 0-2.3 27.5c0 11 .3 22 2.3 32.6s5 21.2 9.8 31a79 79 0 0 0 31.8 34.8c5.5 3.4 11.9 5.3 18 7.8 8.3 3.3 25.4 9.3 25.4 9.3s-23.6-11.6-31.8-21.4a68 68 0 0 1-12.8-28.9 112 112 0 0 1-1.2-36.6 196 196 0 0 1 9.2-38.3c4.2-13.2 10-25.9 15.4-38.6 3.9-9.3 8.3-18.2 12-27.5q6.9-16.4 12.4-33.2c2.1-6.9 4.8-13.7 5.4-20.9a76 76 0 0 0-2.2-23.4 89 89 0 0 0-11.8-30.6 41 41 0 0 0-14.8-13.2c-5.7-2.9-12.5-5.4-18.9-4.1-2 .4-5.2 3.7-5.2 3.7"/>
+ <path fill="#fff" d="M1711.6 945.6s4.4-18 5.2-27.2q.8-11.8-.6-23.7c-1-8.7-1.5-17.8-4.9-25.9a68 68 0 0 0-38.2-37 92 92 0 0 0-28-4.8 130 130 0 0 0-38 4c-4 1.4-11.7 5.7-11.7 5.7l30 49s9.3-5.6 14.5-7a55 55 0 0 1 17-1.2c5.8.4 11.7 1 17 3.3a57 57 0 0 1 17.6 13.3 74 74 0 0 1 15 22c3 7.5 3.5 16 4.6 24.2.3 1.7.5 5.3.5 5.3"/>
+ <path d="M1717 906.7s-5.3-16.6-10.3-23.5a64 64 0 0 0-22.3-19.8c-9.4-4.7-31-6.2-31-6.2l11.4 21-20-.4-10.3-17.4-19.3 8.7-9.5-15.7 20.4-9.4-9.4-15.2 20.4-2 8.9 14.7s15.9 0 23.6 1.7a58 58 0 0 1 27.5 14.4 68 68 0 0 1 12 14.2c3 5.1 6.5 16.7 6.5 16.7z"/>
+ <path d="m1581.7 845 31.8 46.7m-18-54.8-15 8.8-14.3 11 31 47.1 13.7-10.6 14.1-8.2zm58.3 199 17.9-37 19.1 7.7 7.8-19-19-9 9.8-21.3-14-6.3-10.6 20.5-19.2-8-8.4 20 18.6 7.7-17.2 36.7zm143.2-11.1 18.1-.4v21l17.6.9-3 21.4-16.4-1s-2.7 12.5-5.1 18.4c-2.5 6.2-9.7 17.4-9.7 17.4l-19.4-4.8s7-11 9.7-17c2.4-5.4 5.7-16.6 5.7-16.6l-20-2.5 3.5-20.2 18.1 1.2z"/>
+ </g>
+ <use xlink:href="#va-a" width="100%" height="100%" transform="matrix(-1 0 0 1 3717.8 0)"/>
+ <path fill="#fff" d="m1756.7 735.6-27.5 29.4 17 51 9.6 35.8-27.7 25.8 50.7 71-17.4 19.9a12 12 0 0 0-2.1 8.6q.5 4.3 3.6 7.3c4.5 4.1 11.3 5.1 17.3 6.7 21 5.6 42.9 8 64.6 9.7 4.7.4 14 0 14 0s9.4.4 14.1 0c21.8-1.6 43.6-4.1 64.7-9.7 6-1.6 12.7-2.6 17.3-6.7a12 12 0 0 0 1.4-15.9l-16.3-36 51.8-55.4-19.7-17.9-.5-43.2 17-51-25.5-25.7-23-61.2s-4.7-17.1-8.8-25c-2.4-4.6-5.8-8.7-9.2-12.8-4-4.9-8-9.9-12.8-13.9a85 85 0 0 0-14.6-9c-5.5-2.9-11-6-16.9-7.5-6.1-1.5-19-1.5-19-1.5s-12.7 0-18.9 1.5c-6 1.6-11.4 4.6-16.8 7.5a85 85 0 0 0-14.6 9c-4.9 4-8.9 9-12.9 13.9-3.3 4-6.7 8.2-9.1 12.9-4.1 7.8-8.9 24.9-8.9 24.9z"/>
+ <path d="M1963.3 933.1s-3.2-2.8-5-4a65 65 0 0 0-12-6c-5.5-2.2-11.5-3.3-17.3-4.7a197 197 0 0 0-44.3-5.7c-8.6 0-25.8 1.3-25.8 1.3s-17.2-1.3-25.8-1.3a195 195 0 0 0-44.3 5.7c-5.9 1.4-11.8 2.5-17.4 4.7a65 65 0 0 0-12 6c-1.7 1.2-5 4-5 4m218.8-42.7s-5.2-5.2-8.6-5.9a9 9 0 0 0-6.6 1.5 13 13 0 0 0-4 15.2c.8 2 2 4.3 4.1 5.2 4.8 1.9 15.4-2 15.4-2zm5.1-3.6c5.8.2 8 3.2 9.5 6.5m-243.2-2.9-.3 14s10.5 3.9 15.3 2c2-.9 3.4-3.1 4.2-5.2a13 13 0 0 0-4-15.2 9 9 0 0 0-6.6-1.5c-3.5.7-8.6 6-8.6 6zm-5.2-3.6c-5.8.2-8 3.2-9.4 6.5m198.1 1.4-8.4-1m-130 1 8.4-1m76 .8c-2.9-.4-7.6-4.2-7.6-4.2m-22.8 4.2c2.8-.4 7.6-4.2 7.6-4.2m141-19.3s-4.3 3.3-7.4 3.8l-1.2.7s-2 5.7-3.6 8.2a45 45 0 0 1-6.5 6.2s-4.8-4.1-7.7-5q-3.2-.8-6 .3a11 11 0 0 0-4.8 4.3c-1.4 2-2.7 4.6-2.6 7 .1 3 3.9 8.3 3.9 8.3l-2.6 4.5-3.7 2.3a90 90 0 0 1-19-7.5 19 19 0 0 1-4.4-9s4.5-2.7 5.6-5c1.2-2.5 1.6-6 .2-8.4-1.6-2.6-5.3-4-8.4-4a9 9 0 0 0-6.3 2.7c-1.6 1.8-3 4.5-2.5 7 .4 2.4 4.7 5.7 4.7 5.7s-1.8 4.6-3.8 5.5c-6 2.5-10 4-15.3 4.8a39 39 0 0 1-16.3 0 17 17 0 0 1-9-5.5c-.6-.9-.8-3-.8-3s6.5-1.7 9-3.7c2.6-2 5.3-4.6 5.9-7.8.5-3.2-1.2-6.6-3-9.2a18 18 0 0 0-7.6-6c-1.3-.6-4.3-.7-4.3-.7l-1 .9a15 15 0 0 1-4.7 3.8h-.1l-.2.1-1.1.6-.8.1-2.4.8s3.8 1.2 5 2.8q.9 1.4 1 3.3l.2 2q0 1.8-.7 3.4a9 9 0 0 1-1.7 3.5q-.7.9-1.6 1.4 0 0 0 0l-.2.1q-1.6 1-3.3 1.5c-1.4.4-4.2.1-4.3.1s5.5 0 7.6-1.6l.2-.1a11 11 0 0 0 3.8-7.2v-3q-.4-2.5-2.2-4.2c-2.4-2.1-9.3-2.4-9.4-2.4s-7 .3-9.4 2.4a8 8 0 0 0-2.3 4.2v3.1l.5 2.3q1 3 3.3 4.9l.2.1c2.2 1.6 7.6 1.6 7.7 1.6-.1 0-3 .3-4.3 0q-1.8-.6-3.4-1.6h-.1v-.1q-1-.5-1.7-1.4a9 9 0 0 1-1.7-3.5q-.5-1.6-.7-3.3l.2-2.1q.3-1.9 1.1-3.3c1.1-1.6 5-2.8 5-2.8l-2.5-.8-.7-.1-1.2-.6h-.1l-.1-.1a15 15 0 0 1-4.8-3.8l-1-.9s-3 0-4.2.7a18 18 0 0 0-7.6 6c-1.8 2.6-3.5 6-3 9.2s3.3 5.8 5.8 7.8c2.6 2 9 3.7 9 3.7s-.2 2.1-.8 3a17 17 0 0 1-9 5.5 39 39 0 0 1-16.3 0 59 59 0 0 1-15.2-4.8c-2-1-3.9-5.5-3.9-5.5s4.4-3.3 4.8-5.8c.4-2.4-1-5-2.6-6.9a9 9 0 0 0-6.2-2.8c-3.1 0-6.8 1.5-8.4 4.1-1.5 2.4-1 5.9.2 8.4 1 2.3 5.6 5 5.6 5a19 19 0 0 1-4.5 9 89 89 0 0 1-19 7.5l-3.6-2.3-2.6-4.5s3.7-5.2 3.8-8.2c.2-2.5-1.1-5-2.5-7.1a11 11 0 0 0-4.8-4.3q-2.8-1.1-6-.2c-3 .8-7.7 4.9-7.7 4.9s-4.8-3.8-6.5-6.2a49 49 0 0 1-3.7-8.2l-1.2-.7c-3-.5-7.3-3.8-7.3-3.8l-4.4 1s-4.1 2.1-4.2 4c0 2.8 3.8 4 5.5 6l4.1 5.7c1.2 1.8 2.9 3.4 3.5 5.5.6 2.3-1 5 0 7.2 1.2 2.7 3.7 5.4 6.7 6 2.6.5 7.6-2.6 7.6-2.6l-.2 19.9 10.3 9.3 9.7 20.3-3.8 5.2 1.1 10c7.5-9.6 20.5-13.8 32.2-17.2 15.7-4.5 44.6-4.8 58-4.7l7.3.1s44.3-1.4 65.2 4.6c11.7 3.4 24.7 7.6 32.2 17.2l1.2-10-3.9-5.2 9.7-20.3 10.3-9.3-.1-19.9s5 3.1 7.6 2.6c3-.6 5.5-3.3 6.7-6 1-2.2-.7-4.9 0-7.2.6-2 2.2-3.7 3.4-5.5q2-3 4.2-5.6c1.7-2.1 5.5-3.3 5.4-6 0-2-4.1-4.2-4.1-4.2zm-148.4-2.6c1 1 3 2.8 4.8 3.8l.2.1q.8.4 2 .7c2.8.8 7.8.3 8 .3h0c.1 0 5.1.5 8-.3l2-.7.2-.1c1.7-1 3.7-2.9 4.8-3.8q.8-1 1.3-2.2c1.1-2.7 1-6.1-.2-8.7-1.6-3-5.2-4.5-8.1-6.3-2.5-1.5-8-3.7-8-3.7a69 69 0 0 0-8 3.7c-3 1.8-6.6 3.3-8.1 6.3-1.3 2.6-1.4 6-.2 8.7q.5 1.2 1.3 2.2"/>
+ <path d="M1980.8 829.8s-11-5-16.6-6.9c-10.4-3.3-21.3-5.2-32-7.3-12.5-2.4-25.2-3-37.6-6-3.9-.8-7.5-2.7-11.5-3.5-5.4-1.1-11-2.9-16.4-1.7-3 .6-7.8 4.6-7.8 4.6s-4.9-4-7.8-4.6c-5.4-1.2-11.1.6-16.5 1.7-4 .8-7.6 2.7-11.4 3.6-12.4 2.9-25.2 3.5-37.7 6-10.7 2-21.5 3.9-32 7.2-5.6 1.8-16.5 6.9-16.5 6.9m197.4-45.1s5.4-2.9 7.3-5a10 10 0 0 0 2.7-5.3 9 9 0 0 0-2.3-6.5 9 9 0 0 0-6.2-2.2q-3 0-5.3 1.8a9 9 0 0 0-3 5.6c-.3 1.8.5 3.7 1.3 5.3a33 33 0 0 0 5.5 6.3m-151 0s4.1-3.8 5.4-6.3a9 9 0 0 0 1.4-5.3 9 9 0 0 0-3-5.6 8 8 0 0 0-5.3-1.8 9 9 0 0 0-6.3 2.2 9 9 0 0 0-2.2 6.5c.1 2 1.3 3.7 2.6 5.2 2 2.2 7.3 5 7.3 5zm-41.2 18-11.9 15.6s0 4 .8 5.8a24 24 0 0 0 5.9 5.7l.8 21.4-11.3 19.6-1 .2 7.3 3.8 1 .1c4.4-.3 7-5.2 10.9-7.4q7.3-4 15.2-7.2a240 240 0 0 1 50-15.1 142 142 0 0 1 29.5-1.2c6.6.5 19.4 3.4 19.5 3.4 0 0 12.9-3 19.5-3.4a141 141 0 0 1 57.8 8.3 240 240 0 0 1 36.9 15.2c3.8 2.2 6.5 7 10.8 7.4h1l7.3-4-1-.1-11.3-19.6.9-21.4s4.6-3.3 5.8-5.7c1-1.7.8-5.8.8-5.8l-11.9-15.6s-6 6-9.9 7.3q-3.2.9-6.5 0c-2.5-.8-4.4-2.9-6.5-4.5a84 84 0 0 1-12.9-12.1 70 70 0 0 1-5.3-8.7s-12.9 10.1-20.6 12.1c-7.6 2-16 1.6-23.5-.6-1.9-.6-5-3-5-3a42 42 0 0 0-26.4-8 42 42 0 0 0-26.4 8s-3.2 2.4-5 3a45 45 0 0 1-23.6.6 82 82 0 0 1-20.6-12.1s-3.1 6-5.3 8.7a84 84 0 0 1-12.9 12.1c-2 1.6-4 3.7-6.5 4.5q-3.2.9-6.4 0a37 37 0 0 1-10-7.3"/>
+ <path d="M1985.9 796.4s.4-5.7-.2-8.5a21 21 0 0 0-3.1-7c-1.5-2.3-5.7-6-5.7-6m-1.4 27.8s3.4.1 4.9-.6c2.6-1.3 6-6.3 6-6.3s6.7 4.6 10.4 4c1.8-.2 3.2-1.8 4.2-3.4a8 8 0 0 0 1.2-5.7c-.3-1.5-1.6-2.6-2.8-3.6-2.3-2-6.4-1.7-7.9-4.2-1.2-2-.5-4.9.2-7.1 1.4-4.8 4.7-8.7 7.5-12.8 1.7-2.6 5.3-4.4 5.6-7.5.2-1.6-2-4.6-2-4.6s-5.2-.1-7.7.6c-4 1.2-8.3 3-11.2 6.1-2.4 2.6-3 6.4-4.3 9.7-1 2.5-2.5 7.7-2.5 7.7s-6 0-8.7 1.2a17 17 0 0 0-8.7 7.7c-1.2 2.7-1 6.2 0 9 1.1 3 3.5 5.3 6.1 7 2.9 1.8 9.7 2.8 9.7 2.8M1740.8 775s-4.1 3.6-5.6 5.8a21 21 0 0 0-3.2 7.1c-.6 2.8-.1 8.5-.1 8.5m-17-45.5s-2.2 3-2 4.6c.4 3.1 4 5 5.7 7.5 2.7 4.1 6 8 7.5 12.8.6 2.2 1.3 5 .1 7-1.4 2.6-5.6 2.4-7.8 4.3-1.2 1-2.5 2.1-2.9 3.6a8 8 0 0 0 1.2 5.7c1 1.6 2.5 3.2 4.3 3.4 3.6.6 10.3-4 10.3-4s3.5 5 6 6.3c1.5.7 5 .6 5 .6s6.8-1 9.7-2.9c2.5-1.6 5-4 6-6.8 1-2.9 1.3-6.4 0-9.1a17 17 0 0 0-8.7-7.7c-2.6-1.3-8.7-1.2-8.7-1.2s-1.4-5.2-2.4-7.7c-1.3-3.3-2-7.1-4.4-9.7a25 25 0 0 0-11.2-6.1c-2.5-.7-7.7-.6-7.7-.6m135.6 14.3 8.4-2.4 8.3 2.4m-14.5 20s-6.5-5.8-7.7-9.8a8 8 0 0 1 .4-5.5c1.2-2.2 5.9-4.7 5.9-4.7s-7.1-3.4-9-6.6a9 9 0 0 1-.5-6.3 17 17 0 0 1 5.8-8c3.2-2.7 11.3-5.4 11.3-5.4s8 2.7 11.2 5.3a17 17 0 0 1 5.9 8.1c.5 2 .4 4.4-.6 6.3-1.9 3.2-9 6.6-9 6.6s4.8 2.5 6 4.7c.8 1.6.9 3.7.3 5.5-1.2 4-7.7 9.9-7.7 9.9l-6.1.4zm22.7-26.8s13.4 5.7 18 11.1c1.2 1.5 2.3 3.5 2.2 5.5-.5 7-10.3 18.2-10.3 18.2l-20-8.3h-12.9l-20 8.3s-9.8-11.3-10.2-18.2c-.2-2 1-4 2.2-5.5 4.5-5.4 18-11.1 18-11.1"/>
+ <path d="m1844.4 669.2 8-6.2 6.5.2-6.6-.2s-3.6-2.4-4.6-4.2a9 9 0 0 1-1-6c.5-2.7 2-5.5 4.4-6.9 2.3-1.3 7.8-.5 7.8-.5s5.5-.8 7.7.5c2.4 1.4 3.9 4.2 4.5 6.8.4 2 0 4.3-1 6-1 1.9-4.6 4.3-4.6 4.3l-6.7.2 6.5-.2 8 6.2m52.7 5.1-2.7 4.7m32.6-20-7.5 1m8.5 8.8-11.5.6m-1.5-13.8c1.5 1 4.2 2.9 4.6 4.6a10 10 0 0 1-3.1 9.2c-2.4 2-9.3 1.5-9.3 1.5m-181.7 33.6 17-4.2c8-2 16-4.2 24.2-5.7q14-2.4 28-3.5c11.8-.9 35.3-.6 35.3-.6s23.5-.3 35.2.6q14 1 28 3.5c8.2 1.5 16.2 3.8 24.3 5.7l17 4.2m-171.6-30.2 2.7 4.7m-32.7-20 7.5 1m-8.5 8.8 11.5.6m-6.4 16s12.5-3.2 18.8-4.5q10.5-2.2 21-3.7 12-1.4 24.3-2c9.6-.4 28.9-.3 28.9-.3s19.2 0 28.9.4a284 284 0 0 1 45.2 5.6c6.3 1.3 18.9 4.5 18.9 4.5M1781.6 671s-6.8.5-9.2-1.5c-2.5-2-4-6-3.2-9.2.7-2.4 5.6-5.2 5.6-5.2m63.1 74c-12 .8-24 1.5-35.8 3.7a220 220 0 0 0-36.2 9.7c-11.1 4-22.9 22.6-32 15.2-2-1.6.7-5 1.6-7.4a43 43 0 0 1 7.8-12.6c2.4-2.7 8-3 8.5-6.6.5-2.6-3.4-4-4.3-6.6a17 17 0 0 1-.5-10c1.2-4.1 6.5-6.2 7.7-10.3 1-3.6-2.5-7.8-.9-11.2 2.2-4.2 11.4-2.7 12-7.4.4-2.3-3.8-3-4.5-5.1-.6-1.6.3-3.3.3-5 0-2.1.4-4.5-.6-6.5-.9-1.7-3.7-2.1-4.3-4a6 6 0 0 1 1.1-5.4c1-1 3.7.4 4.3-.9 1.4-2.6-2.5-5.3-3.7-8-1.4-3.2-3.2-6.3-4-9.7-.6-2.7-3-7-.6-8.3 2.8-1.6 5.5 3.2 8 5.1 3.4 2.5 7.2 4.8 9.5 8.3 1.7 2.5.7 6.5 3 8.6 2.6 2.5 7.7.5 10.4 2.9 2.4 2 4.5 5.5 3.8 8.5s-7.6 2.9-7 5.8c.9 3.4 7 3.2 10.4 2.5 2-.3 3.5-2.2 5.1-3.4 1.4-1 2.4-2.2 4-2.8 1.6-.8 5.3-1 5.3-1l-2.1-.5s-3.2-2.5-3.5-4.3a6 6 0 0 1 1.6-5 8 8 0 0 1 5.5-2.2c1.7 0 3.5.7 4.6 1.9a6 6 0 0 1 1.7 4.8 6 6 0 0 1-2.3 3.7 13 13 0 0 1-4.6 1.5l2.3.6 6.1 8.5 26.6-1.5s3.3-3.3 2.6-5.2q-1-2.7-5.7-2.5c-8.5.4-10.3-6.8-10-12 .3-4.4 5.5-7.3 9.5-9 4-1.5 10.8 3.7 12.6-.1 1.5-3.3-5.8-5-7-8.5-.5-1.5-.5-3.4.2-4.8 1.8-3.6 5.7-6 9.4-7.7 1.6-.7 5-.8 5-.8s3.6.1 5.1.8c3.7 1.7 7.6 4.1 9.4 7.7.7 1.4.7 3.3.2 4.8-1.1 3.5-8.5 5.2-7 8.5 1.8 3.8 8.7-1.4 12.6.2s9.2 4.5 9.5 8.9c.3 5.2-1.4 12.4-10 12q-4.7-.2-5.7 2.5c-.6 1.9 2.7 5.2 2.7 5.2l26.5 1.5 6.1-8.5 2.3-.6s-3.3-.5-4.5-1.5a6 6 0 0 1-2.3-3.7c-.2-1.7.5-3.6 1.6-4.8s3-1.9 4.6-1.9q3.2 0 5.5 2.2c1.2 1.2 2 3.2 1.6 5s-3.5 4.3-3.5 4.3l-2.1.5s3.7.2 5.4 1c1.5.6 2.6 1.9 3.9 2.8 1.7 1.2 3.1 3 5.1 3.4 3.5.7 9.6 1 10.3-2.5.7-3-6.1-2.9-6.8-5.8-.7-3 1.3-6.5 3.7-8.5 2.7-2.4 7.9-.4 10.5-2.9 2.2-2 1.3-6 3-8.6 2.3-3.5 6-5.8 9.4-8.3 2.5-1.9 5.3-6.7 8-5.1 2.4 1.4 0 5.6-.6 8.3-.8 3.4-2.6 6.5-4 9.7-1.2 2.7-5 5.4-3.7 8 .7 1.3 3.3-.2 4.3.9a6 6 0 0 1 1.1 5.4c-.6 1.9-3.4 2.3-4.3 4-1 2-.5 4.4-.5 6.6 0 1.6.8 3.3.3 4.9-.8 2.1-5 2.8-4.6 5.1.7 4.7 9.9 3.2 12 7.4 1.7 3.4-1.9 7.6-.9 11.2 1.2 4.1 6.5 6.2 7.8 10.3 1 3.2.4 6.8-.6 10-.8 2.5-4.7 4-4.3 6.6.6 3.6 6.2 3.9 8.6 6.6q4.9 5.5 7.7 12.6c1 2.3 3.7 5.8 1.7 7.4-9.2 7.4-21-11.1-32-15.2a220 220 0 0 0-72-13.4c-7-.4-21-.4-21-.4s-14 0-21 .4m31.1-133.7-10.1.1-10.2-.1m17-33.9c2.6-5.6-2-9.7-6.8-13.8-4.8 4-9.4 8.2-6.8 13.8m14.1 46.8c3.9.2 8.6 4.2 11.6 1.7 1.3-1.2.7-3.7 0-5.3-1.6-3.8-8.4-4.7-8.7-8.8-.3-3.5 5.1-5.2 6.3-8.5q.8-2.7 0-5.3c-2.8-6.6-14.5-7-16.6-13.7-.9-3 6-6.5 6.8-6.9 4.4-1.9 9.7 2.7 14 .8 3-1.2 6.1-4.1 6-7.3 0-3.4-3.6-6.3-6.8-7.7-6.1-2.6-16.2 6-20 .5-3.4-5.1 8.7-11.1 7-17-.7-2.9-7-5.3-7-5.3s-6.1 2.4-6.9 5.3c-1.6 5.9 10.5 11.9 7 17-3.7 5.5-13.8-3.1-20-.5-3.1 1.4-6.8 4.3-6.8 7.7 0 3.2 3.1 6 6 7.3 4.3 1.9 9.7-2.7 14-.8.9.4 7.7 4 6.8 6.9-2 6.7-13.7 7-16.5 13.7a8 8 0 0 0 0 5.3c1.1 3.3 6.6 5 6.3 8.5-.3 4.1-7.2 5-8.7 8.8-.7 1.6-1.4 4.1 0 5.3 3 2.5 7.7-1.5 11.6-1.7 2.4-.2 7.3 0 7.3 0s4.8-.2 7.3 0"/>
+ <path fill="none" d="M1953.7 953.5s-7.1-3-10.8-4.3a258 258 0 0 0-20-6.5c-6.6-1.8-13.2-3.7-20-4.5-14.6-1.6-44-.2-44-.2s-29.4-1.4-44 .2c-6.8.8-13.5 2.7-20 4.5a258 258 0 0 0-30.9 10.8M1966 731s-12-4.8-18.1-6.9q-7.6-2.7-15.5-4.8-9.6-2.3-19.4-3.5a387 387 0 0 0-54.1-3.4s-17.2.1-25.8.6a377 377 0 0 0-47.8 6.3q-7.8 2-15.4 4.8c-6.1 2.1-18 6.9-18 6.9m-14.2 120.4s17.5-6 26.4-8.7c9.1-2.8 18.2-6 27.5-8 11.2-2.5 22.6-3.7 34-5 11-1.1 33.3-2.3 33.3-2.3s22.2 1.2 33.3 2.4c11.3 1.2 22.8 2.4 34 4.8 9.3 2 18.3 5.3 27.5 8.1l26.4 8.7"/>
+ </g>
+ <g fill="#ccc" transform="translate(123)scale(.192)">
+ <g id="va-b">
+ <path d="m1533.3 904 101.2 86.8s-5.2 11.2-7.3 17a143 143 0 0 0-9.3 41l-118-108c1.7-24.7 15.6-33.5 33.4-36.8z"/>
+ <path d="m1519 958.2-24.3 27.2 15.2 14.6-23.5 22.8-15.2-15.1-25.5 27.2-.2 33.7 58 45.5 20.1-14.9-1.1-32.3 15.4 8.6 15.5-9.4.8 29.1-12.6-9.1-13.7 18-1.4 32 43.7 39 53-47.1-4-14.1-2.2-12.7-1.3-25.1 2-27.5z"/>
+ <path d="m1494.7 985.4-.6 30 15.6-15.3z"/>
+ <path fill="none" d="m1572 1140.4-1.9 34.3m-18.6-139.7.6 31.8m-14.8-17.3.9 25.8m-14.5-36.3.6 29m-21.4 15.2.3 30.6m24.7-9.7 44 37 45.1-39.6m-171-66.9 57.6 49.2 18.9-16.9-15-12.6 16.7-15.7 12.9 11.1 14.5-14.8 19 18.3-17.2 13.4 16 14.6-15.2 14"/>
+ <path d="m1901.3 1229.3 48.7 44.6 10.7 31.5-62.6-6.7-35.7-35.3-38-35.2-164-142.1s3.5-13.1 5.6-19.5q5-13.9 10.6-27.5l3-6.8 183 162.3z"/>
+ <path d="M1942.7 1236c27 38 72.7 73.7 86.5 90.9 13.9 17.2 22.8 33.5 2.6 55.5s-43 9.5-61.1-2.6-49.6-51.3-94.8-81.3z"/>
+ <path d="m1926.7 1299.8-35.2-16m41-38.2c2.4 8 .5 16.8 3.6 24.4 3 7.6 14 20 14 20s-7 1-10.3 2.2c-4.7 1.9-12 2.7-13.1 7.7-1 4.3 4 8 7 11.2q4.7 4.5 10.4 7.6c6.1 3.6 12.4 7.6 19.4 8.9 8.7 1.6 25.1-10.8 26.6-2 .6 3.6-7.4 1.3-10.7 3-7.8 3.8-11.6 12-4.8 17.8 4.4 3.7 11.3 2.4 17 2.9 5.5.4 11.7-2.8 16.5 0 5.6 3.2 12.7 11 9.7 16.8-3 6-14.5 5.8-20 2-4-3-2.9-9.5-3.5-14.4v-4.4"/>
+ <circle cx="2154.7" cy="1480.1" r="129.7"/>
+ <path fill="#fff" d="M2106.1 1485.7a40.5 40.5 0 1 0 40.5 40.4l14-.6a40.5 40.5 0 1 0 40.5-40.5l.6-7.9a40.5 40.5 0 1 0-40.5-40.5l-14-1.2a40.5 40.5 0 1 0-40.5 40.5z"/>
+ <circle cx="2154.7" cy="1446.1" r="14.6"/>
+ <circle cx="2189.4" cy="1480.1" r="14.6"/>
+ <circle cx="2155.3" cy="1511.2" r="14.6"/>
+ <circle cx="2119.3" cy="1480.1" r="14.6"/>
+ <path fill="#fff" d="M2152.2 1558.4c-5.3 11-12.6 16-21.9 22a63 63 0 0 0 43.8 0 54 54 0 0 1-21.9-22zm-76.5-80.2c-11-5.3-16-12.6-22-22a63 63 0 0 0 0 44 53 53 0 0 1 22-22zm159.2 3.6c11-5.3 16-12.6 22-21.9a63 63 0 0 1 0 43.9c-4.7-9.3-12-16-22-22zm-78.4-80.8c-5.3-11-12.6-16-22-22a63 63 0 0 1 44 0 53 53 0 0 0-22 22z"/>
+ </g>
+ <g fill="#ce9d09">
+ <g id="va-c">
+ <path d="M1533.5 903.8s.7-5 0-7.4a23 23 0 0 0-6.6-10.2 20 20 0 0 0-9.2-4.6 25 25 0 0 0-17.7 4.2l-15 6.2-5.5 17.7s-3.2 5.6-4 8.7a23 23 0 0 0-.5 10.1c1 3.9 3.2 7.6 6.3 10.2a19 19 0 0 0 10.3 4 28 28 0 0 0 8.3-1.9c1.6-18.6 9.9-32.8 33.5-36.9z"/>
+ <path d="m1500.3 885.6-38.8-17-3.1 3 21 38.2s6-8.7 9.4-12.7c3.6-4.1 11.5-11.5 11.5-11.5z"/>
+ <circle cx="1457.3" cy="865.3" r="16"/>
+ <path d="M1566.2 932.3c3.4 28 7.3 55.9 16 83.8l31 28.5c-6.5-29.3-18.4-58.5-18.3-87.7z"/>
+ <path d="m1613 972.4-85.4-6.4 27.2 25 78 3.3 1.2-4zm105.4 94.6a62 62 0 0 0-37.9 37c-6.4.7-12.3.7-14.4-4a59 59 0 0 1 35.7-47.8c15-2.8 12.2 8.9 16.6 14.7zm27.5 25.8a62 62 0 0 0-37.9 37.2c-6.3.5-12.3.6-14.4-4.1a59 59 0 0 1 35.8-47.8c15-2.8 12.1 8.9 16.5 14.7zm312.8 261.9a72 72 0 0 0-15.1 1.5c.3 8-3 16.6-11.8 26.2a33 33 0 0 1-23.7 12s-2.8 17.7 2.6 23.3c6.3 6.6 27.1 3.9 27.1 3.9l1.8-1.1a130 130 0 0 1 31.9-39.8l.3-1.3s3-16.5-2.1-21.5c-2.4-2.3-6.6-3-11 0z"/>
+ <circle cx="2254.5" cy="1375.4" r="17.7"/>
+ <circle cx="2260.6" cy="1580" r="17.7"/>
+ <circle cx="2062.1" cy="1591.6" r="17.7"/>
+ </g>
+ </g>
+ </g>
+ <g fill="#ce9d09" transform="matrix(-.192 0 0 .192 837 0)">
+ <use xlink:href="#va-b" width="100%" height="100%"/>
+ <use xlink:href="#va-c" width="100%" height="100%" fill="#ccc"/>
+ </g>
+ <g fill="#fa0204" transform="translate(123)scale(.192)">
+ <path id="va-d" d="M1869.2 1175.8c0 5.4-4.5 7.4-13.3 7.4q-12.9.1-12.7-7.9c.2-8 4-6.7 12.7-6.7 8.8 0 13.3 1.8 13.3 7.2z"/>
+ <use xlink:href="#va-d" width="100%" height="100%" x="6.4" y="14.3"/>
+ <path d="M1877.3 1208.7c-1.7 5-6.7 5.6-15 2.7-8.2-3-11.2-6.6-9.4-11.7s6-5 14.3-2.1c8.2 2.9 12 6 10.1 11z"/>
+ <path id="va-e" d="M1877.5 1222.5c-1 5.3-5.9 6.4-14.4 4.7q-12.7-2.5-11-10.3c1-5.3 5.3-5.8 13.8-4s12.7 4.3 11.6 9.6z"/>
+ <use xlink:href="#va-e" width="100%" height="100%" x="4" y="16.1"/>
+ <path d="M1921.7 1216.2c-2.6-.7-2.3-5.3-1.6-7.9 1.2-4 8.4-9.1 8.4-9.1s1.8 5.6 1 8.2c-1.2 3.7-4 9.8-7.8 8.8z"/>
+ <path d="M1912.3 1224.4c-2.8-.6-3.2-5.5-2.5-8.3 1.2-4.3 9.7-9.3 9.7-9.3s1.5 6 .5 8.8c-1.3 3.7-3.9 9.7-7.7 8.8zm-10.8 15.6c-4.3-1.1-3.8-8.8-2.6-13 1-3.6 3.7-9.2 7.2-8.3 4.2 1 4.2 8.3 3.1 12.5-.9 3.8-4 9.8-7.7 8.8z"/>
+ <path d="M1888.7 1252.2c-4.2-1-6-7.6-5.1-11.9s5.3-10.4 9.7-9.4c4.5 1 6 8.3 5 12.8-1 4.1-5.4 9.4-9.6 8.5zm-2.2 7.4c-1 5-7.5 6.8-11.5 5.5s-9.5-7.1-8.4-12.5c1.2-5.4 8.2-6.8 12.3-5.2 3.9 1.5 8.7 7.2 7.6 12.2zm-85-49.3s5.1 2.5 7.3 4.8c2.3 2.4 5.1 3.3 3.7 6.9s-5.8 2.4-8.1-.2c-2.1-2.3-3-11.5-3-11.5zm25.3 8.7c5.3 1.1 5.1 7.2 2.5 11-2.8 3.8-10.9 8.9-16.4 7.8s-4.8-7.8-1.8-11.7c2.9-3.6 10.6-8 15.7-7z"/>
+ <path id="va-f" d="M1844.3 1230.5c4.8 2.2 3.4 8.1 0 11.2-3.6 3.2-12.6 6.3-17.7 4-5.2-2.2-3-8.6.8-11.7 3.6-3 12-5.6 16.9-3.5z"/>
+ <use xlink:href="#va-f" width="100%" height="100%" x="14" y="10.7"/>
+ <path d="M1863 1250.7c4.8.7 6 7.4 4.6 11.7-1.6 4.5-7.5 10.6-12.5 9.8s-6-8-4.2-12.6c1.6-4.2 7.3-9.7 12-9z"/>
+ <path d="M1875.1 1265.3c4 2.3 3 9.6.4 13.6-2.7 4.1-9.8 8.6-14 6.2-4.2-2.5-2.7-10.3.2-14.4 2.8-3.8 9.5-7.6 13.4-5.4zm-86.1-39.9c4.3-.3 7.2 6 7.1 10.6 0 4.9-3.3 12.4-7.7 12.8s-7.3-6.7-7-11.6c.1-4.6 3.4-11.4 7.6-11.8z"/>
+ <path d="M1803 1237.7c4 .9 5 7.8 3.5 12.2-1.6 4.6-7 10.8-11.3 9.8s-5-8.6-3.2-13.2c1.6-4.3 6.8-9.8 11-8.9z"/>
+ <path d="M1815.8 1246.2c5 1.2 6 9.8 4.2 15.3-1.8 5.7-8.2 13.4-13.4 12.2s-5.8-10.7-3.7-16.5c1.9-5.3 8-12.1 12.9-11z"/>
+ <path d="M1826.2 1256.8c5-.6 9 7 9.3 12.8.3 6-3 15.4-8.2 16-5.3.7-9.2-7.9-9.3-14-.1-5.6 3.3-14.2 8.2-14.8z"/>
+ <path id="va-g" d="M1838.6 1265.7c4.5-.6 8.2 5.8 8.4 10.5.3 5-2.7 12.8-7.4 13.4-4.9.6-8.4-6.6-8.5-11.6 0-4.7 3-11.8 7.5-12.3z"/>
+ <use xlink:href="#va-g" width="100%" height="100%" x="12.8" y="10.4"/>
+ <path id="va-h" d="M1929.3 1250.9c-3.3 2.8-9.7.3-12.6-2.9-3.1-3.3-5.3-10.5-1.8-13.5 3.4-3 10.2.2 13.2 3.6 2.7 3.3 4.4 10 1.2 12.8z"/>
+ <use xlink:href="#va-h" width="100%" height="100%" x="-7" y="12.8"/>
+ <use xlink:href="#va-h" width="100%" height="100%" x="-19.5" y="23.5"/>
+ <path d="M1905.2 1281.2c-1.1 4.1-8 5.6-12.1 4.5-4.4-1-10.2-5.8-9-10.2 1.3-4.4 8.7-5.6 13-4.3 4.2 1.2 9.2 5.9 8 10z"/>
+ <path d="M1887.2 1278.2c3.6 2.5 2.8 10.5.4 14.9-2.6 4.5-9 9.5-12.9 6.8s-2.5-11.3.2-15.8c2.5-4.2 8.7-8.4 12.3-6z"/>
+ <path d="M1869.6 1287.5c4 2.4 3 9.6.4 13.6-2.7 4.1-9.8 8.6-14 6.2-4.2-2.5-2.7-10.3.2-14.4 2.8-3.8 9.5-7.6 13.4-5.4z"/>
+ <path id="va-i" d="M1831.3 1313c-3.4 3.1-.7 11.2 2.8 15.2 3.7 4.2 11.8 8.1 15.4 4.7s.3-12-3.6-16.1c-3.7-3.9-11.2-7-14.6-3.9z"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="-7.3" y="13.8"/>
+ <path id="va-j" d="M1820.8 1339.5c-4.3 1.8-4.8 10.2-3 15.3 1.8 5.3 7.9 11.9 12.5 10 4.6-1.8 4.7-11 2.6-16.3-2-4.9-7.8-10.7-12-9z"/>
+ <use xlink:href="#va-j" width="100%" height="100%" x="-10.5" y="14.9"/>
+ <path id="va-k" d="M1802.7 1371c-4.6 1-6.5 9.3-5.5 14.6 1 5.5 6 13 10.8 11.9s6.4-10.2 5.2-15.7c-1.2-5.1-6-11.8-10.5-10.8z"/>
+ <use xlink:href="#va-k" width="100%" height="100%" x="-10.1" y="15.9"/>
+ <path id="va-l" d="M1784 1403.3c-4.6.2-8 8-8 13.3 0 5.6 3.5 13.9 8.4 13.7s8.2-8.8 8-14.5c-.2-5.3-3.7-12.7-8.3-12.5z"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-10.3" y="19.2"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-22.4" y="37"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-34.9" y="52.3"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-47.8" y="66.5"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-62" y="78.1"/>
+ <use xlink:href="#va-l" width="100%" height="100%" x="-75.6" y="90.6"/>
+ <path d="m1692.8 1500.2-5.3 20.6s3 7.3 6 7c5.5-.6 7-9 8-14.5 1-8.4-8.7-13.1-8.7-13.1zm324.4 13.1c1.6 6 15.3 11.3 15.3 11.3l-6.7-27.8c-5.7.2-9.5 12.4-8.6 16.4z"/>
+ <path d="M2016 1491c-4.3-1.8-10.5 4-12.7 8.9-2.3 5.1-2.4 14 2.2 15.9 4.6 1.8 11-4.8 13.1-10 2-5 1.7-13.1-2.6-14.9z"/>
+ <path id="va-m" d="M2000.8 1478.7c-4.7-.3-8.7 7.2-9.2 12.5-.5 5.6 2.2 14.1 7.1 14.4 5 .2 9-8 9.3-13.7.3-5.3-2.6-13-7.2-13.2z"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-13.4" y="-13.7"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-25.9" y="-29.2"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-38.7" y="-42.3"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-49" y="-60.3"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-60.3" y="-76.4"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-70.6" y="-93.5"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-79.8" y="-113.3"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-89.8" y="-131.2"/>
+ <use xlink:href="#va-m" width="100%" height="100%" x="-98" y="-152.5"/>
+ <path d="M1883.8 1304.6s-1.6 26.6 8 28.3c6.1 1.1 10.9-14.9 10.9-14.9z"/>
+ <path id="va-n" d="M1862 1610.8c-2.9 3.6 1 11.2 5 14.7 4.3 3.6 12.9 6.2 15.9 2.3s-1.5-11.9-6-15.4c-4-3.2-12-5.3-14.9-1.6z"/>
+ <use xlink:href="#va-n" width="100%" height="100%" x="18.3" y="-2.2"/>
+ <use xlink:href="#va-n" width="100%" height="100%" x="36.8" y="-5.8"/>
+ <path id="va-o" d="M1916.2 1603.8c-2.3 4 2.6 11 7.1 13.8 4.8 3 13.7 4.3 16 0 2.5-4.4-3.2-11.6-8.1-14.4-4.6-2.6-12.8-3.4-15 .6z"/>
+ <use xlink:href="#va-o" width="100%" height="100%" x="20" y="-3.2"/>
+ <path id="va-p" d="M1953.5 1595.4c-2 4.3 3.6 10.7 8.4 13.1 5 2.5 14 3 16-1.5s-4.4-11.2-9.5-13.5c-4.8-2.2-13-2.3-15 2z"/>
+ <use xlink:href="#va-p" width="100%" height="100%" x="18.9" y="-5.6"/>
+ <path id="va-q" d="M1991.3 1583.9c-1.7 4.4 4.2 10.5 9.1 12.5 5.2 2.2 14.2 2.2 15.9-2.4 1.7-4.7-5-11-10.3-13-5-1.8-13.1-1.4-14.7 2.9z"/>
+ <use xlink:href="#va-q" width="100%" height="100%" x="19.2" y="-6.2"/>
+ <use xlink:href="#va-q" width="100%" height="100%" x="37.7" y="-14"/>
+ <use xlink:href="#va-q" width="100%" height="100%" x="57.5" y="-22.2"/>
+ <use xlink:href="#va-q" width="100%" height="100%" x="77.5" y="-28.6"/>
+ <use xlink:href="#va-q" width="100%" height="100%" x="79.9" y="-44.3"/>
+ <path d="M2066.7 1534.9s13.6 2 14.8-2.9c1.6-6.5-15.4-12.7-15.4-12.7z"/>
+ <path id="va-r" d="M1701.6 1575.6c-4 2.5-3 10.9-.4 15.5 2.7 4.9 9.8 10.4 14 7.8s2.8-11.7-.2-16.5c-2.7-4.5-9.4-9.2-13.4-6.8z"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="18.9" y="7.8"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="37" y="10.6"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="56.8" y="15.5"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="74.7" y="18.1"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="92.3" y="21.7"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="110.4" y="26.7"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="128.3" y="29.9"/>
+ <use xlink:href="#va-r" width="100%" height="100%" x="146.6" y="32.7"/>
+ <path d="M1648.2 1517.5c-4.2-2.1-11 3-13.6 7.6-2.7 5-3.8 13.8.6 16 4.4 2.3 11.5-3.6 14-8.6 2.5-4.7 3-12.9-1-15z"/>
+ <path d="M1642 1534.4c-4.4-1.6-10.4 4.4-12.4 9.4-2 5.2-2 14.1 2.7 15.8 4.7 1.6 10.9-5.2 12.8-10.5 1.8-5 1.3-13.1-3-14.7z"/>
+ <path d="M1647.7 1550c-4.5-1.2-10 5.3-11.5 10.4-1.6 5.4-.6 14.3 4.2 15.5s10.3-6.1 11.8-11.6c1.3-5.1 0-13.2-4.5-14.4z"/>
+ <path d="M1662.4 1556.3c-4.5-1.3-10.2 5-11.9 10-1.7 5.4-1 14.3 3.7 15.7s10.5-5.8 12.1-11.2c1.5-5 .5-13.2-4-14.5z"/>
+ <path id="va-s" d="M1672 1558.8c-4.6 1.1-6.3 9.4-5.2 14.7 1.1 5.5 6.2 12.8 11 11.6s6.2-10.3 4.8-15.8c-1.2-5-6.2-11.6-10.7-10.5z"/>
+ <use xlink:href="#va-s" width="100%" height="100%" x="16.8" y="6.2"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="8.6" y="-11.2"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.7" y="6.5"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.9" y="26.7"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.7" y="47.9"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="5.6" y="68.6"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="2.2" y="87.7"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.7" y="109.1"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="2.2" y="126.4"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.7" y="143.5"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.7" y="163.9"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="3.4" y="183.9"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="3.7" y="203.1"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.4" y="223.5"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="4.4" y="243.3"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="3.7" y="263.1"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="2.5" y="283.2"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="2.5" y="305.1"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="1.9" y="327.9"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="1.9" y="349.3"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="1.9" y="369"/>
+ <use xlink:href="#va-i" width="100%" height="100%" x="1.3" y="391.3"/>
+ <path id="va-t" d="M1882.2 1303.2c2.5 3.7-1.3 10.8-5.1 14-4 3.2-12 5.4-14.5 1.5-2.6-4 1.9-11.4 6-14.6 4-3 11.2-4.6 13.6-1z"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="2.7" y="16.1"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="2.4" y="34.1"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="2.1" y="52.4"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="1.8" y="69.1"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="2.7" y="87.1"/>
+ <use xlink:href="#va-t" width="100%" height="100%" x="1.5" y="104.4"/>
+ <path d="M1883.3 1426c2.6 3.9-1.5 11.3-5.7 14.5-4.5 3.4-13.2 5.7-16 1.6s2-11.8 6.6-15c4.4-3.1 12.4-4.8 15-1z"/>
+ <path id="va-u" d="M1882 1443.6c3.5 3.2.8 11.3-2.7 15.3-3.7 4.2-11.8 8-15.3 4.7-3.6-3.5-.3-12 3.6-16.2 3.6-3.8 11.1-7 14.5-3.8z"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".6" y="20.4"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".9" y="40.5"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".3" y="62.1"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".9" y="82.2"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".3" y="102.6"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".6" y="123"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".6" y="143.7"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x="-.3" y="164.4"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".9" y="183.3"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".9" y="203.1"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".3" y="224.4"/>
+ <use xlink:href="#va-u" width="100%" height="100%" x=".3" y="245.4"/>
+ </g>
+ <g transform="translate(123)scale(.192)">
+ <path fill="#fa0204" d="M1849.6 1848.3a77 77 0 0 0 48.3.4l-17.5-28"/>
+ <path fill="#ce9d09" d="m1888.3 1776.2-31.7-8.2s.4-35.2 20.4-32.1c16.6 2.5 12 40.3 11.3 40.3z"/>
+ <circle cx="1872.9" cy="1723" r="12.9" fill="#ce9d09"/>
+ <path fill="#fa0204" d="M1885.4 1791.9c7 17.8 11.3 33.2 4.7 53.3m7.6 3.5c-10.2-8.3-36.6-5.9-48-.4-4.4 0-16.4-83.2 25.7-81.2 38.8 2 25 82 22.3 81.6z"/>
+ </g>
+ <g transform="translate(123)scale(.192)">
+ <path fill="#fa0204" d="M1815.2 1866.3a47 47 0 0 0 54.2.5l-40.2-42"/>
+ <circle cx="1843.4" cy="1738.3" r="12.9" fill="#ce9d09"/>
+ <path fill="#ce9d09" d="m1859.3 1780-32.7-.6s-4.2-26.6 16.2-27.8c16.9-1 17.2 28.4 16.5 28.4z"/>
+ <path fill="#fa0204" d="M1843.6 1860.7c-6.3-13.9-6.9-31-5.2-49.5m-9.4 50.4c-7.7-13.2-9.1-30-3-51.2m43.4 56.6c-5-6.2-40.3-8.8-54.1-.4-5 0-18.6-93.8 29-91.5 43.6 2.1 28 92.3 25 91.9z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/vc.svg b/apps/web/public/flags/vc.svg
new file mode 100644
index 00000000..f26c2d8d
--- /dev/null
+++ b/apps/web/public/flags/vc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-vc" viewBox="0 0 640 480">
+ <g fill-rule="evenodd">
+ <path fill="#f4f100" d="M0 0h640v480H0z"/>
+ <path fill="#199a00" d="M490 0h150v480H490z"/>
+ <path fill="#0058aa" d="M0 0h150v480H0z"/>
+ <path fill="#199a00" d="m259.3 130-46.4 71.3 44.7 74.4 43.8-73.7zm121.2 0-46.3 71.3 44.7 74.4 43.8-73.7zm-61.2 97.3-46.4 71.4 44.8 74.4 43.8-73.7-42.2-72z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/ve.svg b/apps/web/public/flags/ve.svg
new file mode 100644
index 00000000..314e7f5f
--- /dev/null
+++ b/apps/web/public/flags/ve.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ve" viewBox="0 0 640 480">
+ <defs>
+ <g id="ve-d" transform="translate(0 -36)">
+ <g id="ve-c">
+ <g id="ve-b">
+ <path id="ve-a" fill="#fff" d="M0-5-1.5-.2l2.8.9z"/>
+ <use xlink:href="#ve-a" width="180" height="120" transform="scale(-1 1)"/>
+ </g>
+ <use xlink:href="#ve-b" width="180" height="120" transform="rotate(72)"/>
+ </g>
+ <use xlink:href="#ve-b" width="180" height="120" transform="rotate(-72)"/>
+ <use xlink:href="#ve-c" width="180" height="120" transform="rotate(144)"/>
+ </g>
+ </defs>
+ <path fill="#cf142b" d="M0 0h640v480H0z"/>
+ <path fill="#00247d" d="M0 0h640v320H0z"/>
+ <path fill="#fc0" d="M0 0h640v160H0z"/>
+ <g id="ve-f" transform="matrix(4 0 0 4 320 336)">
+ <g id="ve-e">
+ <use xlink:href="#ve-d" width="180" height="120" transform="rotate(10)"/>
+ <use xlink:href="#ve-d" width="180" height="120" transform="rotate(30)"/>
+ </g>
+ <use xlink:href="#ve-e" width="180" height="120" transform="rotate(40)"/>
+ </g>
+ <use xlink:href="#ve-f" width="180" height="120" transform="rotate(-80 320 336)"/>
+</svg>
diff --git a/apps/web/public/flags/vg.svg b/apps/web/public/flags/vg.svg
new file mode 100644
index 00000000..ac900888
--- /dev/null
+++ b/apps/web/public/flags/vg.svg
@@ -0,0 +1,59 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-vg" viewBox="0 0 640 480">
+ <defs>
+ <linearGradient id="vg-a" x1="103.1" x2="92.6" y1="111.3" y2="107.8" gradientTransform="matrix(.99614 0 0 2.25255 703.8 -75)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="red"/>
+ <stop offset="1" stop-color="#ff0"/>
+ </linearGradient>
+ </defs>
+ <path fill="#006" d="M0 0h640v480H0Z"/>
+ <path fill="#012169" d="M0 0h320v240H0Z"/>
+ <path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
+ <path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
+ <path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
+ <path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
+ <g transform="translate(-217.5 -9.4)scale(.77497)">
+ <path fill="#fff" d="m776.3 144 250.4-.9-.5 223s8.8 34-105 85.5c40.9-4.2 85.5-47.8 85.5-47.8s18.1-23.3 27-10.3 17.1 19.6 23.6 24.7 11.6 19 1.9 29.2c-9.8 10.3-25.1 11.6-29.3-.9-6.5 3.3-46.4 51.6-128.2 53.9C818.5 499 773 446 773 446s-11.1 17.7-27 3.8c-15.3-18.2-3.7-29.8-3.7-29.8s13-7.4 16.8-12.5c6-7 7.9-16.3 18-16.3 12.2 1 16.8 10.7 16.8 10.7s41.8 44.1 86.9 49.7c-101.7-48.8-105.5-79-105-86.4z"/>
+ <path fill="#006129" stroke="#000" stroke-width="1.9" d="m782.3 150.1 238.8-1.4v214.6c.5 28-46.5 56.3-119.9 92.5-75.7-39-119.4-62.7-119.8-93z"/>
+ <g id="vg-b" fill="#ffc72c" stroke="#000" stroke-width=".9">
+ <path fill="none" stroke="#ffc72c" stroke-width="1.9" d="m814.8 181.8 14-20.7 14.3 20.8"/>
+ <path d="M831.7 174a2.8 2.8 0 1 1-5.6 0 2.8 2.8 0 0 1 5.6 0z"/>
+ <path d="M817.4 197.1h21.9s.3-2.8-2.3-4.5c11.5-1.6 8.5-11.6 18-12.2 2 .3-5 4.3-5 4.3s-5.7 4-3 6.1c2 1.7 3-1 3.2-3s9.3-3.3 8-9c-2.1-4.7-14.7 3.2-14.7 3.2l-9-.1c-.6-1-3-5-5.6-5-3 0-5.2 5-5.2 5h-20.3s-.7 5.3 9.6 6.3c2.3 3 4.1 3.8 6.2 4.6q-2 1.6-1.8 4.3zm1.6-4.4h18.2"/>
+ <path d="M810.7 182s1.4 8.5 8.2 10.5"/>
+ <path fill="url(#vg-a)" d="M809.6 181.8c.6-3.2 1.9-3.8 3.2-8 .2-4-3.2-3.5-2.2-6q2.6-4.4-2.5-7.7c.7 3.7-4.4 7.2-4.4 10.2s2.6 2.4 2.3 7c.2 2.6-.7 2-1 4.5z"/>
+ <path d="M831.5 161.7a2.6 2.6 0 1 1-5.2 0 2.6 2.6 0 0 1 5.2 0z"/>
+ </g>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="-.8" y="41.3"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="-1.1" y="82"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="25.6" y="126.1"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="-4.6" y="162.2"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="-3.8" y="204.8"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="146.3" y=".7"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="144.9" y="41.2"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="143.1" y="82.7"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="145.2" y="123.4"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="144.7" y="164.2"/>
+ <use xlink:href="#vg-b" width="100%" height="100%" x="144.9" y="205.2"/>
+ <g fill="#ffc6b5" stroke="#000" stroke-width=".9">
+ <path fill="#ffc72c" d="M915.8 406.3s5.7 13.2 12.2 5c6.5-8 4.2-11.5 4.2-11.5l-14.6-7.9-4.3 9z"/>
+ <path d="M928.4 404.6s1 .1 1.7-1.3c.8-1.4-1.7-2-2.9-3.6l-1.2 2.5zm-33-3.6-12.8 7s-6.4 1.3-6.8 0c-.5-1.2.1-2.3 3.5-2.5 3.3-.1 12.3-8.4 12.3-8.4l3.8 4zm.2-227.9.4 4.6c.2 1.6-2.5 5-2.6 4.8s-1.5.2-1.3 1.1 2 1.3 2 1.3-.7 3.3 0 3.5c.8.1-2 4.2 0 5.3 2.1 1.1 5.6 2.6 7.2 2.3s0 6.1 0 6.1l-4.5 9.5 24.4-2.5-5-8s-2.4-1.7-1.8-6.3c.7-4.5-.3-25.3-.3-25.3l-17.4-2.4zm-4.5 36.2s-7.9 3.6-7.6 13.4c-2 9.5-3.1 19-3.1 19s-9.4 10.6-12.2 14.5c-2.9 3.8-7.2 11.5-8.7 13.6-1.6 2-7.8 8.8-7.7 11.4.2 2.5-1.4 13.8 4.8 15 1.6.7 6.7-13 6.7-13s.3-5.8-1.5-7c-1.7-1 3.8-4.8 3.8-4.8l13-9.7c2.4-2 8.9-9.2 8.9-9.2z"/>
+ <path fill="#fff" d="M900.2 201.8s2 5.6 6.6 4.6 10-5.2 10-5.2 4.3-.2 4.9.5 11.6 11.2 11.2 14.5c-.3 3.4-5 2.4-6.8 4.6s-4.6 7.8-3.8 12c.8 4 3.2 9.4 2.9 11.5s-2 2.7-2 3.8 1.4 3 1.4 5c0 2.1-2 5.1-1.6 7.2.3 2 .4 8 .4 8l-.4 28s1.6.9 1.7 2.5c.2 1.5 10.8 47.6 10.8 47.6s-.5 1.5-1.6 1.3 4.3 7.1 4.4 9.2 5.6 18.2 5.4 20.4-1 7.2-1.4 7.3c-.5.2 3.5 10.2 2.8 11.7-.6 1.6-7 1.5-7 1.5l-1.8-.4s.1 2.1-1.1 2.3-10.6-.5-10.6-.5-2.7 4.1-4.3 4c-1.6-.2-3.7-3-4.1-2.6-.5.5 1.4 3.2 1 4-.6.8-8.6 2.5-10.2-1.3s1-2.8.4-3.6c-.4-.8-4-2.9-5.2-2.3-1 .7 2.9 1.6 2.7 3.2s-3.5 4-4.7 4-4.3-5.9-8.8-5.3c-4.4.7-7.2 1.8-7.2 1.8s-5.3 2.2-7.5 1.7c-2.2-.4-3.2-2.2-3.2-3.1 0-1 1.6-5.1 1.5-6.4-.2-1.2-1.5-2.5-1.5-4.4s3.7-8.4 3.7-8.4l-.2-29.2s-3.3 0-3.5-2c-.1-2 5.1-46.1 6-49l2.8-13s-2.4 1.2-2.6 0c-.1-1 7.2-26.2 7.2-26.2s1.2-12.6 1.2-15.9-.6-7.9-.6-7.9-6.5-2.8-6.7-7c-.6-6.7 6.2-10.4 7-12.6l3.2-9s3.5-6 9.2-6.9z"/>
+ <path fill="#ffc72c" d="M897.8 403s-15.4 8-17.6 8.7-3.6-2.7-1.4-3.3c2.2-.7 5.7-1 5.7-1s-5.2-4.1-5-4.3l7.2-2.6c.2 0 2.2 4 3.6 3.8a31 31 0 0 0 5.6-3.5z"/>
+ <path d="M919.4 407.4c1.5 1.9 2 5.1 5.4 3.2 3.3-1.9-1.7-5.4-1.7-5.4z"/>
+ <path d="M925.5 407.1s1.6 1.3 3-.2c1.4-1.4-2.8-4.4-2.8-4.4l-2.1 2.4zm6.8-190.1c.2 0 5.2 15.6 5.9 19.6.6 4 2.7 19.8 1.9 22s-8.9 12.8-9.8 15.5-6.7 13-6.7 13-1.4 10.2-2 10.6 1.6 3 1.4 3.8c-.3 1-4.6 5.4-6.5 5s-5-2.7-5-4.8c-.3-2 0-8.9 1.5-10.6 1.4-1.8 8.9-19.3 9.3-20.4.5-1.2 6.8-15 7-17.3s-2-7.9-4.2-9.9c-5-14.7-3-23.5 7.2-26.5z"/>
+ <path fill="#9c5100" d="M895 172.2s3.6.5 5.5-.6 4.1-1.6 5.7.6 2.7 2 2.7 2-2.4 6 0 6.6c2.3.6 3.5.6 3.6 1.4s-2 2.5-1.4 3.3 1.7 1.7 1.9 2.4-1.4 3.3-1 4c.5.6 2 3.1 2.9 3.1 1 0 .3 4 3.2 3 2.8-1 2.7-3.5 2.7-3.5s3-.4 3.8-3.1 2.6-3.4 2.6-3.4 3.8-2-1.2-5.2c0-22.2-14.6-19.8-14.6-19.8s-1.7-4-4.6-3.5-3 3.8-5 3.5c-2.1-.3-2.6-1.7-2.7-1.6-.2.2-2 3.4-2 4.1 0 .8-5.5-1-5 3 .5 4.2 3.2 4 3 3.7z"/>
+ <g fill="none">
+ <path d="M920.8 208s-14.1 9-13.8 12.2m17-10.6s-3.2 3.5-3.4 3.5m7.6.3s-7 5.7-5.9 9.3m-27-15.5s-2.1 4.3-1.6 5.7 4 6.8 4.4 10.1c.5 3.4 0 5.7 0 5.7m-6.5-13.6s.6 5 1.6 6 3.5 5.3 3.8 7m-6.7 8.1s4.2 2 8-5.9m6.1-5.5c-.1 0-3 7.7 2.1 10.6s8.9 2.5 11 1.7c2.3-.7 4.7-2.2 4.7-2.2m-20-.6s.3 10.4 15.7 20.7m-15-10.9s-.2 9.2 5.8 13.3m-9-24.1s-4.6 13.7-8.3 15m6.9-5s-.2 9.8-1.5 13.3m-1.2 2.4s3.1 4 6.6 3.6 5-4.4 7.3-3.8c2.4.7 4.6 2.6 10.1 2.1m-7.9 4.1s0 8.1 1.5 8.9c1.4.8.7 8.2.7 8.2m-21.5-20.9s-.2 7.6-1.1 10.3-2.9 7.3-2.5 11.3m-6.1 4.4c.8-.3 3.5-2.7 3.5-2.7m1.4 1.7s-6.8 29.2-4.9 46.6m6.5-45.1s-3.5 21.8-1.9 26m.2-26.7 13.3 1m1.9-1.8s3.6 2 8.7 1.6m-10.3 9.1s-.6 37.3-1.6 45.6m21.1-37.1s4.1 32.8 6.5 35.8m-14.4-31.7s2.5 29 4 31.6m-40 10.1s5-1.6 9.4-6.3c5 6.8 12.8.3 12.8.3s12 8.2 17.4-1c8.3 5.4 12.4-.8 12.4-.8s3 4.6 5.2 4.1m-13.1 3.2s6.1 29 15.3 37.2"/>
+ <path d="M889 347.7s.7 24.2 2.1 41.3m-3.3-13.9s-.8 15.8-1.7 17m-7.6 1.5s1.7 6.9 10.4.5c8.7-6.3 8.9 2.4 9.2 3.3.3 1 1.7 7.8 5 2.1m7-9.3s-1.4 14 11.1 3.8c12.5-10.3 14.6-.2 15 3m-25.9-230.2s-1.1 7 6.3 6.3c-1 3.9 2 5.1 2 5.1m5.4 4.3c.2 0 3.4 2 0 4.6m-10.7.9s1.6 2 3.3 1.5c1.8-.5 4.6 1.7 4.6 1.7s2.4.8 2.7.3m-20.3 2.5s5.4 2.1 9-6.4m-18.9-2.6 3.1.2M858.5 285l.3 6.9m-6.8-7.5s4.5 7.5 4 11.4"/>
+ <path stroke-linejoin="round" d="M894.1 188.2h2.9l-2.5 1.1M911.7 300s3.3-.4 3.2 5.2c2.1-7 6.4-7.1 6.4-7.1"/>
+ <path stroke-linejoin="round" stroke-width="1.7" d="M898.1 179.3c.5 0 2.2-.6 2.5-.1.4.4-1.9.8-2.5.1z"/>
+ </g>
+ </g>
+ <g fill="none" stroke="#000" stroke-width="1.9">
+ <path fill="#ffc72c" d="M900.3 458.6a160 160 0 0 0 109.6-50.7c-.4-.4 8.9-13.4 16.3-11.6s18.1 23.7 31.1 28.4c6.5 10.2-1.8 19.5-4.6 21.3s-15.4 7-17.2-.4c-1.9-7.5-5.6-6-5.6-6s-59.5 58-128.2 55.7c-71 .4-129.6-55.8-129.6-55.8l-5.1 5.6s-5.6 6-8.4 5.6-14.9-8.4-15.8-16.3 7.4-13 7.4-13 20.5-15.8 22.8-24.1c4.7-4.7 13.5 3.2 13.5 3.2s53.9 61.8 113.8 58z"/>
+ <path d="M748.9 422.6s5.5-1.4 7.5.9 16 16 16 16"/>
+ <path d="m761.5 429.1-5.6 4.1s14 2.8 10.8 12m285.6-23s-2.7-1.5-7 1.7c-4.4 3.3-15.3 15.5-15.3 15.5"/>
+ <path d="m1039.9 428.7 6 4.6s-12.5.9-9.8 12.7"/>
+ </g>
+ <path d="M819.7 437.4c-.4 1-1.4 0-2.2.2-2 0-3.8 1.4-5.6 2.4l-18.4 10.7q-.7-.4-.3-1.2l5-23c.2-1.3.6-3-.7-4-.5-.4.3-1.1.7-.4l9.4 6.7c-.3.9-.9.2-1.4-.1-1.3-1.3-2.9-.1-2.8 1.5l-3.4 15.1 12.6-7.4c1.4-.6 2.5-2.6 1-3.8-.6-.4-1.6-1.3-.6-1.5zm6.6 32q-.3.9-1 .3l-11-6q.1-1 .9-.4c1 .7 2.6 1 3.4-.2l4-7.3 5.6-10.2c.8-1.3-.1-2.8-1.3-3.3-.4-.2-1-.4-.5-.8.2-.3.8.3 1.1.4l10.6 5.8q-.2.9-.9.3c-1-.7-2.6-1-3.4.2l-4 7.3-5.6 10.2c-.8 1.2.1 2.8 1.3 3.3zm42.6-10-3 8.4c-1.3-.1-.4-1.7-.8-2.5a9.5 9.5 0 0 0-7-8.2c-3-.8-6 .7-7.8 3.1a23 23 0 0 0-4.4 12.2 7 7 0 0 0 3.2 6.4 10 10 0 0 0 5.9 1.5l2.1-6.3c.3-1.4-1.2-2.3-2.3-2.6-.2-.4.2-1 .7-.5l11 4c0 1.3-1.6-.2-2.5.4-1.3.5-1.4 2.1-2 3.3l-1.3 3.8q-7.6.5-14.4-3.2c-4.1-2.6-7-7.7-6.1-12.7.6-4.3 3.3-8.3 7.2-10.2 3.6-2 8-1.9 11.8-.4q3 1.2 5.4 3.4c1 1.3 2.8 1.3 3.6-.1zm17.9 28.8c0 .4 0 .9-.6.6l-12.6-1.9q-.1-.9.6-.6c1 .2 2.6.2 3-1q.7-2.6 1-5.2l2.2-14.6c.3-1 0-2.2-1.1-2.6l-2-.5q-.2-.7.6-.6l12.6 2q.2.8-.6.6c-1-.3-2.5-.2-3 1q-.7 2.5-1 5.1l-2.2 14.6c-.3 1 0 2.3 1.2 2.7l2 .4zM921 480l-.5 8.9-22.6 1.1q-.2-.8.6-.7c1.1 0 2.6-.5 2.8-1.8l-.3-6.6-.7-13.4c.1-1.3-1-2.3-2.3-2.2-.4-.2-1.5.4-1.4-.3-.2-.6.7-.3 1-.4l12.6-.7q.2 1-.7.8c-1.1 0-2.6.2-3 1.6q0 2.9.2 5.7l.7 14c0 1.1 1 2.2 2.2 2 1.8-.1 3.7 0 5.5-.5 2.5-.7 3.8-3.2 4.5-5.5.5-.6 0-2.2 1-2zm17.5-21.8c-.6 0-.3.8-.5 1.2q-1.4 11.3-3 22.4c-.2 1.7-.6 3.6-2.2 4.4-.6.3-.1 1.2.5.7l7.5-2.3c-.1-1.2-1.6 0-2.4-.3-1.7 0-2-2.1-1.7-3.4q0-1.4.3-2.7l8.6-2.6q1.7 2 3.3 4.2c.8 1.4-1 2-2 2.3-.6 0-.2 1 .3.6l11.3-3.4c0-1.3-1.6 0-2.3-1-2.2-1.5-3.7-3.7-5.4-5.7zm0 9 6 7.3-7.3 2.2zm38.6-25.8 3.3 6c-1 1-1.6-1.1-2.5-1.4a5 5 0 0 0-5.5-.5l-2 1.1 9.8 18.3c.5 1.5 2.4 1.8 3.7 1q.7-.8 1 .1-2.5 1.5-5.2 2.8l-6.5 3.5q-.6-.7.4-1a2.4 2.4 0 0 0 1.1-3.7l-9.7-18c-1.8 1-4 1.8-4.5 4-.5 1.5.2 3.2.2 4.4-.5.6-.7-.2-1-.6l-2.7-5.2zm15.3-9.1 6.2 8.3c1.4-1 2.6-2.6 2.2-4.4.2-1.4-1.8-3-1.1-4 .4-.2.7.8 1 1.1l7.2 9.5c-1 1-1.6-1.1-2.6-1.4-1.4-1-3.3-1.5-4.8-.4q-1.5.6-.3 1.7 2.4 3.3 5 6.5c1 1 2.4 0 3.3-.8 2.4-1.6 4.5-4.2 4.4-7.2.2-1.4-.7-2.8-.7-4 .6-.7.7.4 1 .8l3.4 6-17.6 13.3c-.7-.5 0-.9.5-1.2 1.6-1 1.1-3.1 0-4.2L988.1 437c-1-1.3-2.8-.6-3.7.3-.5.6-1-.5-.3-.6l16.5-12.5 4.5 6c-1 1-2-1.3-3.1-1.4-2.2-1.2-4.8-.3-6.6 1.2l-3.1 2.3"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/vi.svg b/apps/web/public/flags/vi.svg
new file mode 100644
index 00000000..d88d68f9
--- /dev/null
+++ b/apps/web/public/flags/vi.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-vi" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M204.3 315s-.5-3.6 6.2-6.1c6.6-2.6 7.2-12.2 5.8-18.6 0 0-3.4 6-7.7 8.1 0 0-6.8 3.6-7.2 10.4 0 0 0 2.5-.5 4.5-.3 1-3.4-8.6 2.4-15.8 6-7.3 7.6-13.3 2.9-25 0 0-.5 7-5.1 11.1-4.7 4-5.3 4.4-5.2 14 0 0 0 3.4-1.7 4.5 0 0-3.6-5.3-4.6-8.8s-1.4-5 2.8-9c0 0 13.2-8.7 3.7-27.4 0 0-.3 6.4-5 10.2-4.5 3.9-4.2 6.4-4.4 13-.2 6.7-.6 6.2-1.1 7.2 0 0-8.5-15.6-2-23.8s10.2-10 3-25.4c0 0 .3 8-5.5 11.8-5.7 4-4.4 13-4.4 13s.4 3.5-.8 6c0 0-8.1-15.9-.4-24.4 6.6-7.3 7-12.4 3.5-22.6 0 0-.4 4.7-4 7.3-3.7 2.6-6.6 5.1-5.9 15 0 0 .3 7-.6 9 0 0-3.4-6.4-4.4-10.5-1-4.2-1.3-6.6 1.2-10.7s12.5-16 .6-33c0 0-.3 5.5-3.4 10.5-3 5-1.6 10.9-1 15.4s-1.5 8.9-1.5 8.9-5.2-9.5-4-20.4q1.6-16.6-13.5-26.4s-7.3 17 2.7 25.7c0 0 8.5 8.4 10.7 18.6 0 0-6.5-.6-12.3-12s-18-9.6-18.8-9.7c0 0 2 17.6 20.6 22.6 0 0 12 2 14.2 10.8 0 0 2 6 2.8 9.2 0 0-3.8-1.5-7.3-6.7-3.5-5-3-5.7-14.8-6.9 0 0-4.7-.5-7.2-3.9 0 0 5 18.6 17.7 18.5 0 0 11.6-1.3 18 14l-2.9-2c-1.7-1.1-6-3.3-14.5-2.3s-10.9-.4-13-1c0 0 8.6 15.7 20.7 11s18 12.4 18.2 12.7c0 0-1.7-1.2-3.8-3.3-2.2-2.1-6.6-4.7-15-2 0 0-6.1 2.3-12.3.4 0 0 6 11.5 19.8 9.5a15 15 0 0 1 17.3 10.2s-1.8-1-3-2c-1.3-1-6-3.7-16-.8s-13.6-.4-13.6-.4 5.5 10 16.2 11.3c0 0 6-.1 8.4-1s9.2-2.5 13.8 4.2c0 0-1.3.2-3.2-.7 0 0-7-2.5-12.5 2 0 0-4.8 4.9-11.6 4 0 0 8.8 8.5 22.8 1.3 0 0 4.7-3.4 8.2-.8 3.5 2.7 11.5-2.6 11.5-2.6z"/>
+ <g fill="#f4c53d" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5">
+ <path d="M282.2 103.7s-1.6-14.5 10-16a38 38 0 0 1 18 1.2l5.5 10.6-2 7.2-7.4 3.4s1.3-11-8.8-11.2c-2.6 0-4 1-8.1.3s-6.3 3.8-7.2 4.5z"/>
+ <path d="M363.8 139.6c-1.8 2.2-8.7 3-8.7 3s7.1 5.5 10.2 13.3c3 7.7-82.4 0-82.4 0s3.8-2.6 6.3-7.6c0 0-3.8 1.4-7.6-2.4 0 0 2.8 1 6.5-4.6 0 0 5.5-7 9.4-9 0 0-1.8 1.2-6.1-1.2 0 0 7.4-1 10-13.5 0 0 .5-2.8 3.3-7 2.8-4 2.2.9 7.4-5.4 0 0 2.4-4.4.3-7-2-2.8-4.3-1.8-8.6-4.4-4.4-2.6-6.3-4-4.8-8s5.3-3.4 5.9-3.4.8-3.5 5.5-5.9 17.4-1.3 19.2-.3c2 1 9.5 3.3 14 14.5s-1.2 15.4 10.8 32.4c0 0-4.8 1-7.9 0 0 0 6.3 11.2 17.3 16.5z"/>
+ <path fill="none" d="M311 92.2c-10-.5-6.1-9.8-6.1-9.8"/>
+ <path d="M328 93.5s-1.7-.8-3.2-2.8c-2-2.7-6.7-4-9.1-1.4 0 0-2.5 2.8-4.8 3 0 0 2.6.7 4.3 2.3s3.5 2.8 6.1 2.4 3-1.7 4.2-2.5 2.5-1 2.5-1z"/>
+ </g>
+ <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M202.8 336.5s-.2-6.4 7.8-6.8l23.5 32.7s-.9 2.1-11.5 1.9c0 0-1.2 0-1.8 1.2-.9 2-18-29-18-29z"/>
+ <g id="vi-a" fill="#f4c53d" stroke="#010002" stroke-width="10" transform="translate(3.6 26.2)scale(.15055)">
+ <path d="M1495 1807.9s-49.9 85.6-110.2 87c0 0-103.7-12.6-133 14.5-20.5 18.9-41.4 34.5-50 82.8-8.4 48.3 16.5 58.7 22.4 60.8 0 0 4.6 34.5 38.7 25.5 0 0 2 36 62.2 18.7s85.3-11.8 97-71.8c11.9-60.1 22.8-59.1 33.5-66.3 14.4-9.7 41.5-18.8 61.6-30.4 18-10.4 87.2-45.6 110.8-48.3 23.6-2.8 18.4-82.2 18.4-82.2h-61l-29.5-43.5zm192-429.4s-61 49.7-112.2 0c0 0-20.6 24.8-62 17.6-41.2-7.3-48.1-29-52-41.4 0 0-35.8 20.8-66 4.3-30-16.4-30-41.3-30-41.3s-52.5 10.4-79.4-25.2c-26.9-35.5-10.5-70.7 4-74.9 0 0-56.7 14.9-72.2-33.8a56 56 0 0 1 16.4-62.8s-119.4-.6-168.4-38c0 0-40.7-25.6-16.4-52.5 0 0-107.5-17.2-134.4-60 0 0-11.8-11.8-7.9-32.5 0 0 .7-11.7 12.5-12.4 0 0-122.6-19-158-59.4 0 0-17-18.6-8.5-43.5 0 0 1.8-6.5 4.7-11 0 0-111.6-23.5-166.6-73.2 0 0-31.8-28.3-15.4-66.3 0 0-186.5-51-143.3-133.2 0 0-87.2-28.3-59.6-107 0 0-72.1-36.6-40.7-94.6 30.1-55.5 122.6 9.7 232 40 0 0 296.4 93.2 442.3 118l414.6 617.3 241.9 93.2z"/>
+ <path d="M1689.9 923.9s-38.9-29.2-108.2 5.1c0 0-23.3 16.1-41.7-1.5a37.3 37.3 0 0 1 4.3-57.5c51.7-38.3 70.8-153.2-7.8-200.9 0 0-114-67.6-532.3-174 0 0-35-9.8-53.8-5.1a52 52 0 0 0-37.6 37.8S894 581.1 957 611.6c0 0 28.4 13 57.7 21.4 0 0-32.2-7-46 24.8-13 30.4 6 61.5 65 81.5 0 0 16 6.2 38.7 11.7 0 0-50.5 14.5-26.2 55.3 0 0 21.6 42.8 98 50.4 0 0-57 6.2-16.8 60.4 0 0 17.7 29.7 73.4 40.7 0 0-42.2 1.4-21 39.3 21.4 38 71.5 59.4 120.9 62.9 0 0 26.7 1.4 45.4-2.8 0 0-47 23.5-19.4 62.8 0 0 20.3 28 71.1 26.6 0 0-13.1 44 24.1 60.6 29 13 53.1-7.8 53.1-7.8s-9.8 47.1 32.5 63.7c0 0 21.1 10.9 52.6 0 0 0 24 53.9 109.6 16 85.6-37.7 20.2-355.1 20.2-355.1zm5 489.4s-12.5 67.4-112 152.2c0 0-76.8 67.7-74.9 145.7 2 79.5-13.7 88.4-43.9 115.3 0 0 62.3 4.9 92.4-36.6 0 0-1.3 69-10.5 75.3 0 0 19.6 1.2 47.9-29.7 0 0 17-18 32.8-24.9 0 0-18.4 47.7-4 91.9 0 0 4.6-17.3 28.9-24.9 0 0 44-9 61-72.5 0 0 11.1-42 80-79.4 0 0 78-29.4 76-67.8-2-38.5-173.6-244.6-173.6-244.6z"/>
+ <path stroke-miterlimit="10" d="M2056.5 2282.2s-17.9 78.8-80 72.5c0 0-43.9-4.2-40.6-77.4 0 0-64.9 34.6-75.4-51 0 0-59 13.7-58.3-66.3 0 0-55 9.6-48.5-61.5 0 0-59.7 16-59.7-51 0 0-139.6-23.2 151.4-288.6l259.6 154.6z"/>
+ <path d="M2085.4 1928.3s-43.3 38.4-74.1-19c0 0-42-2-48.5-33.8 0 0-34.1-3.4-40.7-35.9 0 0-46.5-4.8-45.2-44.1 0 0-84.6-6.6 0-102.4s228.1 159 228.1 159zm48.2-23.8c42 0 89.5 262 77.2 419.9-4.5 57.3-35.2 104.1-77.2 104.1s-72.6-46.8-77-104.1c-12.4-157.9 35.1-419.9 77-419.9"/>
+ <ellipse cx="2133.6" cy="1902.5" rx="58" ry="86"/>
+ <path fill="none" stroke-miterlimit="10" d="M1935.9 2277.3s6.6-138.7 126.8-337.6m-202.2 286.6s-18.7-80.1 150.8-317c0 0-19.7-56.5 40.6-92.8M1802.2 2160s-5.3-86.7 160.6-284.5c0 0-14.7-51 45.4-91.8m-254.5 314.8s6.2-87.6 168.4-258.9c0 0-8-52.4 50-84.9m-278 292.8s11.7-100.1 182.8-252c0 0-5.9-39.4 51.1-79.4"/>
+ <path fill="none" d="M372.3 432s134.3 77.8 552.9 155.6M431.9 539S795.6 657.6 965 672.2m-389.9 0s213.4 67 463.3 109.3m-281.2 30.3s241 57.9 356.2 67.5M919 925.6s203.9 42.5 255.5 47.6m-125.7 57.3s148.8 22.6 208 21.4m-23.2 69s60.2-2.8 89.1-7.6m-33.4 104.3s51.2-13.8 81.3-33.1m-5.9 133.2s39.4-15.2 58.4-56.6m37.7 93.6s30.4-27.3 32.4-57.7m81.6 81.5s-11.4-9.9-3.6-52.7m-11.1-62.8s-6-12.2-4-31.6m-211-581.3s68.8 27.6 91.7 65.6 7.9 74.9 0 96c-3.9 10.7-52.4 104.2 4.6 171.9M1346 1057s.4-.3 24.6-8m-169.8-91.4s41 8.2 81.3 8.6m-138-109.8s48.2 4.9 93.5 4.2m-165.2-109.8s69.5 13.8 106.8 14.5M1014.7 633s85.7 24.4 149.4 33.1m141.6 50.4s-61.6 57.3 12.5 110.5c0 0-30.8 48.3 30.8 98.7m-16.4 23.8s-9.2 92.2 103.6 92.2c0 0-21.7 82.1 87.2 79.4 0 0 12.4 65.6 91 52.4M1441.3 1895s-17.9 4-56.6 0m-108.8 48.3s-54.4-8.3-51.8 109.8m84.6-82.9s-49.2-6.2-46 108.4m520.7-384.5s-23.6 4.8-40 23.5-47.8 15.1-47.8 15.1 17-13.8 23-48.3c5.8-34.5 24.9-44.9 24.9-44.9m-56.3-32.6s-23.6 4.8-40 23.4c-16.4 18.7-47.9 15.2-47.9 15.2s17-13.8 23-48.3 24.9-44.9 24.9-44.9m23.7 188.5s-20.6 4.3-34.9 20.5c-14.3 16.3-41.8 13.3-41.8 13.3s15-12 20-42.2c5.2-30.1 21.8-39.2 21.8-39.2"/>
+ </g>
+ <use xlink:href="#vi-a" width="100%" height="100%" stroke="#010002" stroke-width="10" transform="matrix(-1 0 0 1 647.2 0)"/>
+ <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="m466 256-14.3 61.7-5.9-4.2 14-59.2-9.8.2 23.1-42.3 1.5 48.7zm37 13-43 50.8-4.6-5.2 42.8-50.2-8.7-4.6 39.2-26-20.3 43.8z"/>
+ <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="m492.6 242-38.5 74-5.9-3.5 38.7-73.8-9.4-2.4 32.7-34.6-10.5 47.5zm-48 96.6-2.9 11.7 8 8-11.2 47-10-13.3-14.6 6.8 11.1-47 10.4-3 2.6-11.7s3.2-1.2 6.6 1.5z"/>
+ <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="m447.3 330.8-5.7 10.6 5.7 9.7-22.4 42.5-6.3-15.6-15.9 2.6 22.4-42.4h10.7l5.5-10.6s4 0 6 3.2z"/>
+ <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="m448.2 333.9-15 19.2 3.4 10.8-30.9 36-2.8-16.6-16-1.2 30.8-36 10.4 2.5 16-20.4s4.4 2.2 4.1 5.7zm-382.7-45c3.6-1.5 6.2-2.9 6.2-6.7q0-1.5-1.5-6.1L46 202a59 59 0 0 0-3-7.9c-1.1-2-3.2-2.9-6.1-4h30.7c-3.3 1.5-6.4 2.7-6.3 6.3q0 2 1.1 5.7l18.6 58 18.5-58a20 20 0 0 0 1.1-5.7c0-3.7-3.2-5-6.3-6.4h29.8c-2.7 1.1-5 2-6 4.1a63 63 0 0 0-3.1 8L90.8 276a38 38 0 0 0-1.5 6.1s-1.1 4.7 6.2 6.7zm515.3-7.6v-83.7q0-2.1-.8-3.3c-.8-1.2-2.5-3-5.5-4.2h27.7a12 12 0 0 0-5.5 4.2q-.7 1.2-.7 3.3v83.7q0 2.2.7 3.4c.5.8 2.5 2.8 5.5 4.2h-27.7c3-1.4 5-3.4 5.5-4.2q.8-1.2.8-3.4z"/>
+ <path fill="#fff" stroke="#010002" stroke-width="1.5" d="M324.8 309.8S399 276.9 399.1 201H250.5c.2 76 74.3 108.8 74.3 108.8z"/>
+ <path fill="#a60032" stroke="#010002" stroke-width="1.5" d="M262 201v48.5s5.6 11.3 11.4 18.3V201zm22.8 0v80s7.2 7 11.4 10.4V201zm22.9 0v98.9s8.1 5.2 11.4 7v-106h-11.4zm80 0v48.5s-5.7 11.3-11.5 18.3V201zm-22.9 0v80s-7.1 7-11.4 10.4V201zm-22.8 0v98.9s-8.2 5.2-11.5 7v-106H342z"/>
+ <path fill="#162667" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M399.1 145.8s-36.4 19-74.3-1.6c-37.9 20.6-74.3 1.6-74.3 1.6V201h148.6z"/>
+</svg>
diff --git a/apps/web/public/flags/vn.svg b/apps/web/public/flags/vn.svg
new file mode 100644
index 00000000..7e4bac8f
--- /dev/null
+++ b/apps/web/public/flags/vn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-vn" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="vn-a">
+ <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#vn-a)" transform="translate(80)scale(.9375)">
+ <path fill="#da251d" d="M-128 0h768v512h-768z"/>
+ <path fill="#ff0" d="M349.6 381 260 314.3l-89 67.3L204 272l-89-67.7 110.1-1 34.2-109.4L294 203l110.1.1-88.5 68.4 33.9 109.6z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/vu.svg b/apps/web/public/flags/vu.svg
new file mode 100644
index 00000000..326d29e9
--- /dev/null
+++ b/apps/web/public/flags/vu.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-vu" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="vu-a">
+ <path d="M0 0v475l420-195h480v-85H420Z"/>
+ </clipPath>
+ </defs>
+ <path fill="#009543" d="M0 0h640v480H0z"/>
+ <path fill="#d21034" d="M0 0h640v240H0z"/>
+ <g clip-path="url(#vu-a)" transform="scale(.71111 1.01053)">
+ <path stroke="#fdce12" stroke-width="110" d="m0 0 420 195h480v85H420L0 475"/>
+ <path fill="none" stroke="#000" stroke-width="60" d="m0 0 420 195h480m0 85H420L0 475"/>
+ </g>
+ <g fill="#fdce12" transform="translate(-22)scale(1.01053)">
+ <path d="M106.9 283v27c23.5 0 69.7-18 69.7-76.1s-49.3-68.9-64-68.9-60.3 10.6-60.3 58c0 47.6 44.7 52 53.5 52s41.8-8 38-43.6a35.5 35.5 0 0 1-35.4 31.5c-24 0-39-17.8-39-35.4s14.6-41.2 39.9-41.2 43.8 22.5 43.8 45.1-17.8 51.5-46.2 51.5z"/>
+ <g id="vu-b">
+ <path stroke="#fdce12" stroke-width=".8" d="m86.2 247.7 1.4 1s11.2-25.5 41.1-43.6c-3.8 2-23.8 12-42.5 42.6z"/>
+ <path d="M89.1 243.3s-3.4-7-.4-10.2 1.7 8.3 1.7 8.3l1.3-1.9s-2-8.6.2-10.4 1.2 8.3 1.2 8.3l1.4-1.8s-1.5-8.4.7-10 .9 8 .9 8l1.6-2s-1.2-8 1.5-9.9.3 7.6.3 7.6l1.8-2s-.8-7.3 1.5-9c2.3-1.6.4 7 .4 7l1.6-1.8s-.5-6.8 1.7-8.4.2 6.5.2 6.5l1.7-1.6s-.4-6.9 2.4-8.2-.5 6.4-.5 6.4l2-1.6s.5-8 2.9-8.7c2.4-.8-1 7-1 7l1.7-1.4s.9-6.8 3.5-7.6c2.7-.9-1.6 6.2-1.6 6.2l1.7-1.3s1.9-6.8 4.4-7.6c2.4-.7-2.6 6.5-2.6 6.5l1.7-1.2s2.7-6.2 5-6.6c2.1-.4-2.6 5.1-2.6 5.1l2.1-1.2s3.5-6.4 4.8-4.5-5 4.9-5 4.9l-2 1.2s7.5-3.6 8.4-1.8-10.3 3-10.3 3l-1.8 1.2s7.5-2 6.6-.1-8.4 1.5-8.4 1.5l-1.7 1.2s7.5-1.8 6.5 0c-1 1.6-8.3 1.5-8.3 1.5l-1.8 1.5s7.3-2 6.2.3-9.4 2.1-9.4 2.1l-2 2s7.7-2.7 7-.6c-.6 2-9.4 3-9.4 3l-2 2s8.3-2.7 5.8-.2c-2.4 2.6-8.5 3.2-8.5 3.2l-2.3 3s8.2-5 7-2.2-9.2 4.7-9.2 4.7l-1.6 2s7.4-4.3 6.6-2c-.7 2.5-8.6 5-8.6 5l-1.3 1.8s8.7-5.2 8-2.5c-.8 2.6-9.1 4.5-9.1 4.5l-1 1.7s8-4.7 8-2.4c.2 2.2-9.4 4.4-9.4 4.4z"/>
+ </g>
+ <use xlink:href="#vu-b" width="100%" height="100%" transform="matrix(-1 0 0 1 220 0)"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/wf.svg b/apps/web/public/flags/wf.svg
new file mode 100644
index 00000000..054c57df
--- /dev/null
+++ b/apps/web/public/flags/wf.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-wf" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/ws.svg b/apps/web/public/flags/ws.svg
new file mode 100644
index 00000000..0e758a7a
--- /dev/null
+++ b/apps/web/public/flags/ws.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ws" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#ce1126" d="M0 0h640v480H0z"/>
+ <path fill="#002b7f" d="M0 0h320v240H0z"/>
+ <path fill="#fff" d="m180 229.3-20.7-14-19.9 14.1 6.5-24.9-19-15.2 24.5-1.5 8.1-23.6 8.8 24 24 .7-19 16.3zm-3.6-165.6L159.8 53l-16 10.4 4.4-20-14.6-12.7 19.4-1.6 7.2-18.6 7.4 18.7 19.1 1.7L172 44.3zm-73 59.5-16-11-16.7 11 5.2-19.4L60.8 91 80 90l7-19 6.8 18.9 19.6 1.1-15 12.5zM250 110l-15.4-10-15 10 4.4-18.3-14-11.8 18.3-1.5 6.3-17.2 7 17.4 17.7 1-13.7 12.3zm-43.1 43.4-10.3-6.4-10.3 6.6 2.7-12.3-9.2-8.3 12-1 4.6-11.6 4.9 11.6 11.9 1-9.1 8.3z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/xk.svg b/apps/web/public/flags/xk.svg
new file mode 100644
index 00000000..0e8958d8
--- /dev/null
+++ b/apps/web/public/flags/xk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-xk" viewBox="0 0 640 480">
+ <path fill="#244AA5" d="M0 0h640v480H0z"/>
+ <path fill="#D0A650" d="M253 224.8s1.2-.8 1.6-.9l2-.6s1-.5 1.5-.5 1.6.6 2 1.1 2 1.4 2 1.4 1.2.4 1.5 0q.4-.6 1.3-.7.7-.2.6-.9c-.1-.7.2-.9.6-1.4.5-.5 1.3-.8 1.3-.8s1.2-.5 1.3-1.2 1.3-1.2 2-1.3c.7 0 0-.4 1.8-.2 1.7.2 2-.4 2-.9.1-.5 0-1 1.1-1q1.6.4 1.6-.4c0-.6 1-1-.7-1.4-1.8-.5-1.6-.1-1.8-1 0-.7 0-.6-1.1-.7s-.6-.7-.7-1.3q-.2-.9-.6-1.3c-.3-.4-.9-.4-.9-1s-.1-1-.7-1q-1 .1-1-.5 0-1 .8-1 1-.2 1-1.2c-.2-.6-.2-1.9-.2-1.9l.9-1s2.6-2.1 2.8-2.5 1.1-.7 1.5.1.6 1 1 1.4c.3.4 1.3.1 1.5-.3s.3-1.9.9-2.7q1-.9 1.1-1.8.2-1.3 1.2-1.2c.6 0 1-.9 1-1.4q0-.8 1.2-1.2c.8-.1 1.3-.6 1.6.2s.6.7 1.1 1q1 .6 1.8.3c.5-.4.7-1 1.3-.7q.9.5 1.2-.7l.3-1.9s.1-.5 1.1-.5.3-.6.8-1 .6-.8 1.3-.6 1.8-.3 1.3-1-1.8-1.6-1.1-2.4 1-2 .3-2.2c-.7-.1-1.8.1-1.9-.6-.1-.8-.4-1.4.5-1.5s2.2-.1 2.7-.5 1.8-.7 1.8-1.8.4-1.3.6-2 .1-2-.5-2.6-1.4-1.6-1.5-2q-.3-.7-1.6-1.3c-.8-.2-1.6-.4-1.6-1s.6.1.6-1.6-1.1-2-1.1-2l-1.7-1s-3-.8-3.8-.8-1.8-.8-.9-1.4 1.2-1.5.9-2.2c-.4-.7-.6-1.3-1.9-1.6q-2-.3-1-1.4c.5-.7.7-1.3 1.4-.7.6.5 1.8.7 2.7.3s1.3-.8 1.8-.3 1 .8 1.7.2 2-.8 2.6-.5c.5.4 2 .3 2.4 0s1.4-1 1.4-1.3.6-1.2 1.1-1.5 1.3-1.4 1.9-1.4.8-.7.8-1c0-.5.5-1.4.6-1.7s1.2-.8 2 0c.9.5 2 .8 2 .8s1 .2 1.7 0a2 2 0 0 1 2.1 0c.9.6 2 .6 2 .6l.3-1.3c0-.4.2-1.2-.3-1.5s-1-.7-.1-1.4 1-.5 1.9-.5l2.2.1c.7 0 1.8.7 1.8 1.3q.1.8 1 1.4c.6.3 1.3.6 1 1.2q-.3 1 .6.8 1 0 .9.9-.1.7 1 1 1 .4 1 1.2c0 .8-.2.9 0 1.4l1 1.4s1.3 1.5-.4.7c-1.6-.7-2-1-2.5-1l-1 .5-1.3.2c-.6 0-1.2 1.2-.2 1.4q1.3.2 1.2 1.2c-.1 1-.3.5-.8 1s-.8.2-1.6.2-1 .7-1 1.3.3.6.6 1q.6 1 1.6.2c.5-.5 1-.9 1.3.1s.9 1 1.5 1q.9.1 1.6-.4 1-.5 1.3.9.4 1 1.3 1.3t1 1q.3 1 1.1.5 1.1-.7 1.9-.1l.9 1.2v1.1l2.3.8.2 1q0 .6 1 .4h1.6s.8-.3.8-1q0-.9 1-.8c.5 0 1.8.5 2.1-.2s1.4-.8 2.2-.5l3 1.2s-.3 0 .4 1.1 2 1.1 2 1.1 0 1 .3 1.4 1.3.6 1.8.2q1-.8 2.1-1c1.1-.2 1.2 0 1.2-.4s-.7-.7-.7-1.4.7-.6.8-1.3c.1-.6.8 0 1.3.4s1 .8 1 1.2c0 .5 1 2 1.5 2.2s2.1.3 2.6-.2 1.6-.8 1.5.5-.4 1.4.4 1.8 1 2 .3 2.4-1 .5-1 1.2-.2 1.6.4 2q1 .7 1 1.2c0 .5.6 2.4.6 2.4s.4 1.9.2 2.3c0 .5-.3 1.2.7 1.1q1.4-.3 1.3.7c-.1 1 .4 1.2-.2 1.5s-1 1.4-.4 1.6q.9.3 1.2 1c.1.4 1 1.2 1.6.7s.7-.6 1.2-.7.8-.4.3-1q-.7-.8-.1-1.4c.5-.3.7-1.3.7-1.3s.7-1 1.5 0 1 .6 1.5.6.8.5.8 1 1.2.5 1.2 1.3l.2 3s0 1.1.7 1.5q1 .6.2 1-.3 1-.2 2c.1 1 .2.5-.3 1q-1 .7-.5 1.6c.3.6.2 1 1.1 1.8 1 .7.9 1 .9 1.6 0 .5.9 1.3.9 1.8s.7 1.2 1.3 1.3 1.2 1 1.2 1.6l.1 1.9s0 .3.6.3 1.2.8 1.4 0c.2-1 1-1 1.4-1.3s1.4-.6 1.9-.3 1 .3 1.5.3l2.6.1s.6 0 1 .8c.3.8 1.3 1.8.8 2.2s-.6 1.3 0 1.3 1.5 0 1.5.5q-.2 1 .7.7.8-.5 1.1 0t1.3.7q.8.4 1.2-.3c.3-.4 1.7-.8 1.7-.8s1.8-.5 2.5-.3l1.7.7s.4 1 .2 1.7-.5.5-.2 1.5-.3 1-.7 1q-.9-.5-1 .7c0 .8-.4 1-.4 1.8s0 .6-.5 1q-.8.6.1 1c.7 0 .5.8.5 1.2l-.1 1.4s0 .5-.7.5-1.5 0-1.6.5-1 1.3-.3 1.9q1 .7.1 1c-.4.3-.8 1.3.2 1.6q1.2.5.2 1.1c-.6.4-1.7.8-1.7 1.4s-.3.6-1 .7q-1.2.3-.2 2c.8 1.1 1 1 1.6 1s.6-1 .6-1l2.5.2q1 0 1.9-.3c.5-.4 1.7-.9 1.7 0s.3 1 .8 1.3c.6.5.7.1 1.2.8.5.6.6 0 1-.7.3-.7 1-1.4 1.6-.6.5.9.5.6 1.2.6s1 .4 1 .9.6.5 1.5.4.9.5 1.2 1 .5.4 1 .4q.7.1 1.2-.4c.4-.4.8-1 1.3-.3s1.4.5 1.6-.2c.3-.8 1.3-1.4 1.9-.6.6.9 1 .9 1.6 1q1-.2 1.7.6c.4.6 1.5 1.4.7 2s-1.7 1.5-1 1.8a3 3 0 0 1 1.6 1c.5.4 2 .7 2.7.8.7 0 1.2.2 2-.5s1.7-.6 1.6.3.3 1.8.3 1.8.6 1.4.6 1.9-.1.6 1 1.3c1 .6.8 1 1.7.4q1.1-.8 1-1.5v-1.7s1.2-.2 1.6-.5c.5-.4 2.3-1.3 2.8-.9s1 .3 1.5.1l1.9-.2c.4 0 1.2.1 2.2-.6.9-.8.9-.6 1.5 0q.7.8.2 1.6c-.4.4 0 1.3.8 1.3s1 .5 1 1l.3 1.7c0 .4 0 .7 1.4 1 1.2.3 1 1 1.2 1.6q.6.9-.4 1c-1 .1-1 .3-1 .8-.2.5-1.2.7-1.2.7l-1-.2s-.8 0-1.1.4-1 1.3-.6 2q.7 1.1 0 1.6c-.4.3-.7 1.9-1.1 1.6-.5-.4-1 0-1.5.3s-.4 1.7.5 2.2q1.4 1.1 1.2 1.3l1 1.6s-.3.3-.5.9c-.3.5-1 1.6-.3 1.8s.4 1.4-.3 1.4-1.5-.4-1.6.5-.5.6-1.2.5-2.4-.5-2.9.3-.6 1.2-1.4 1.1-.5 1.3-.2 1.8l1 1.3s.7.5.7 1.6q-.1 1.4-1 .2c-.4-.7-1.3-.6-1.4.2s-.3 2.2-1 2.2q-1.2 0-1.6.6c-.3.4-.9 1.2-.9 1.6s-.1.9-.7 1-.7 1.2-.7 1.2-1.4.3-1.5.8.1 1.4-1 1.5a3 3 0 0 0-2.2 1.4q-.7.7 0 1.5c.7.8.8 2.2 1.4 2.5q.9.3.9 1.3c-.1.9-.8 1.5.1 1.5q1.6-.1 1.2 1c-.4.7-.4.8-1 1.1-.8.4-1.1.4-1.1 1.2s.2.9-.4 1.2-.6.7-.6 1.4-.2.4-.9 1.1q-1.2 1-2.2.6c-1-.4-.7-.2-.8-.9s-1.1-.6-1.7-.5-1.4.7-1.4.7-1 .7-.6 1.2.2 1.4-.6 1.3-2.6.8-3.2-.1-2.2-1.6-2.5-.3c-.2 1.2.7 1.1.6 2.4s-.3 1.3-.8 1.7q-.5.6-.6 1.3c0 .5-.2 1.7.6 2.1s1.2 1.6 1.2 2.3q-.2 1.1.8 1.3 1.5.2 1.6-.9c.1-.7 1.7-1.2 1.9.3q-.2 2.1.7 2.9c.5.6 1 1.5 1.5 1.8s1.2 3 1.2 3c-1.1.3-1.4 1.8-2.1 2-.4.2-.9 0-1.3.3q-.1.6-.6.8c-.9.4-.7-.9-1.8-.4-.9.4-1 1.5-2.3 1-.7-.2-1.1-3-1.3-3.6l-1.1-1.8c-.8-1.2-2.3 0-2.8-.4-.8-.5-.5-1.4-1.7-1.5-2.4-.2-.7 1.5-1.7 1.8-2 .7-2-1.8-3.4-.6-.5.4 1 .7.6 1.4-.3.6-1.7 1.6-1.7 2.3.2 1 1.2 1.3 1.5 2 1 2.3-.5 3.8-2.7 2-1.2-.9-1.5-2.7-3.3-2.5l-1 .5c-.5 0-.8-.4-1.3-.3-.7.3 0 .8-.2 1.2 0 0-1 .7-1 1-.6.6-.4 1.2-1.2 1.8-.6.5-1.1.2-1.8 1-.7.7-.8 1.9-1.7 2.6-.5.4-.8-1.1-1.4-.1l-.2.4q-.3.4 0 .7c1.2 2.4-1.4 3.2-2.2 4.9-.3.7.6 1.3.3 1.9l-1.5 1.7c0 .2-.2.8-.4 1s-1 0-1 .4.8.7 1 .9-.2.7 0 .8c1.2 1.3.5.9 1.1 2 .1.2.5-.1.7.3s-.4.4-.2.8c0 .2 1 1.4 1 1.4 0 .4-1.8 1.2-2.2 1.2-1.1 0 1-2.2-.8-2.2-.8 0-.9 1.7-1 2h-1c-1.2 0-2 1.4-2.4 1.5s-1-.2-1.5 0c-.4 0-1 .5-1.4.5q-.4 0-.7-.4c-.5-.3-1.5-.4-2-.6-.4 0-1 .4-1.2.3-.3-.2.3-1-.6-1.4l-.7-1.7q.6-1.5.5-3.1c-.2-1.1-2-2-2.4-3-.3-.6-.6-2.4-1.3-2.8a6 6 0 0 1-1.8-2.2c0-.2.3-.6 0-1q-.6-.4-1-1c-.1-.4 0-1.8-.5-2.1s-4-.8-5-.9q-.6 0-1-.3l-.6-.7-1 .2h-1c-1.1.7-1.4 1.7-2.5 2.6-1.1.8-2.3.8-3.4 1.7-.7.6-1.2 2.1-1.9 2.8-.3.3-.7 0-.8.1l-2 1.8q0 .3-.2.5l-1.3.4h-1.2c-.5.2-.5.8-2.5 1.2l-.5.3-.6.5h-.9c-.5 0-.8.5-1.2.5-1 .2-2.8-.5-3.6-.1-.5.1-1.8 1.7-2.3 1.8q-.4.1-1-.1l-.6 2.2-2.4 2.1-.8 1q-.5.5-1 .5l-1.6-.4c-.8-.2-3.3-.3-4-.1-.9.1-.6 2.4-2.6 2.6l-3.3.4c-.1 0-.8-.4-1.5-.3-.3.1-1.1 1-1.1 1.2v.5l.2.4c-.4.5-1.4 1.3-1.7 2l-.4.4c-.2.2-1.6.7-1.7.9-.3.8 1 1.6.8 1.9-.3 1-1.7 2-2.2 3-.1.4.5 1.7.5 2.1q-.5 2.1-.5 4.1l.2 1.7.7.5 1.8 3.6c.3 2.2-3 1.4-1 3.6q.2.6.8 1l2.8 2.3c0 .4-2 .7-2.3 1-1 1-1.7 2.6-2.6 3.6-.6.5-1-.1-1.8 1.3-.2.5 0 1.6-.3 2-.5.4-.8-.2-1.3 0-.2 0-.3.7-.5.8-.5.5-5.2 3-5.6 2.7-.2-.1-.5-.9-.5-1.1q-.1-.6-.6-1c-1.2-1-3-1.3-4.2 0l-.7 1-2 1.6-.5.5c-.5 0-1.6-1.3-2-1.7-.4-.6-2-2-2.1-2.7 0-2.4-1.9-4.9-2.6-7.2h1.1c1.3-.9 1-3 3.3-2.2.3-.4.3-.8.8-1l.7-.5c.8-1.2 1.7-5.8.9-7-.7-1-1.5-1-2-2.7q-.1-.7 0-1.6l-1-3.1-.7-.7-.2-3.1c-.7-2.2-3.4-3.5-3.5-3.8l-1-1.7-.6-1.6c-.1-.3-.6-.6-.6-.9 0-.6 1.6-1.7 1.5-2.7 0-.3-1-1.3-.8-1.8s1.2-1.8 1.2-2.5c0-.8-1.6-2.6-1.8-3.4-.1-.5.6-.8.4-1.1s-1.8-1.9-2-2.3c-.3-.3.5-.7 0-1.3-.6-.5-.1-.4-.3-.8l-1-1.5c-.2-.5-1.6-5.5-1.5-5.8q-.5-.4-.9-1l-.4-1.2s-1.6-.5-1.9-1c-.2-.3-.3-1.6-.7-2.2l-.7-.4-.3-.7c-.5-.6-1.4 0-2-2.4q-1.4-.8-2.4-1.8l-.4-.4q-1-.2-2-.7c-.3 0-1.8 0-2-.2l-.4-.8c-.8-.1-2.2 0-2.9-.6-.5-.5-.6-2.8-1.6-2.5h-.4c-.7-1-2.9-1-3.8-1.6-.2-.1-1 0-1-.2l.1-1.3-1.1-1.4c-.9-.2-.6-.3-1-.6-1.5 0-1.7.2-2.6 1q-.4.3-1 .4c-.5.3-.6 1.2-1.3.8l-.6-.5c-.4-.4-.6-.2-.8-.8-1.2-.7-4.5 1.5-5.2 0-.6-.3-1 0-1.5-.4-.2-.2.7-3-1.7-4l1.6-1.1q.2-.6 0-1c0-.5.3-1.4.2-1.7l-.5-1-.2-1.2-.8-.4q-1-.6-1.7-1.4l-.4-.5c-.4-.3-1.8-.8-1.8-1.4l.4-.5q0-.5.3-.8c.6-1 2.1-.5 1.9-2.2-.1-.8-.7-1.4-.8-2.2l-.5-.7c-1.5-.1-1.3-1.6-1.8-2-1.5-1-2.7-.4-1-2.4.2-.7-1.5-1.8-1.8-2.1-.6-.6-.3-1.9-.6-2.5 0-.3-1.1-.9-1.4-1.3l-.5-1v-.1q.4-.6 0-1c-.1-.3-.6-.2-.7-.4q-2-1.6-4.9-2.5c-.5-.2-.3-.6-.8-.8l-3-1.2c-.2 0-.4-1.1-.6-1.5l-.9-1c0-1-.6-1-1.4-1.6v-.6l.6-2.1c.1-.4.6-.8.5-1.2l-.4-2.3c-.8-2-1.7-1.8-1.2-4.5q-.2-.8.3-1.4l.2-.3 1.2-.9c.4-.6.7-1.9 1.2-2.3l1.8-1.2c.2-.2.4-.9.3-1.2l-1.2-.2-1.1-.4-.3-.5-.2-.2q-.8-.1-1.4-.5l-1.7-.5c-1-.5-2-2-2.9-2.2-1.2-.3-2 .1-3.2.2-.7 0-.7-.4-1.3-.6-.8-.3-.2.4-2-.2-.3-.2 0-.8 0-1h-1c-1.4-.4-.9-1.8-1.3-2.7-.1-.2-.8-.2-1-.2l-.2-.2.2-.1c.2-.4-.7-1.4-.7-1.6.1-.3 2-.6 2.2-.6q0-.4-.2-.7.1-.8.5-1.7v-.2c-.6-.3-.7-.7-1.2-1q.1-.4.4-.7c.9-2.5 2.3-.5 3.5-2.8l.6-1.1h.2q.4.1.8 0l.8-.3h.5c2.2-.4 1.7-1.2 3-2.1.4-.3 1.4-.4 1.8-.6q.7.6 2.1 1.4c.7.2 3 .7 3.4 1 .5.2.6.8 1 1 1.3.8.5-.4 1.8-.2s2.3 1.4 3.5 1.9l1-.1c.3-.1 2.3-.5 2.5-.4l.8.3c.3.1.5-.5.8-.5.8.2.8.5 2 .4 0 0 .6-3.3 1.2-3.4.3-.1 1.2.7 1.4.8.4.1 0-.7 0-.7-.2-.3-.8-2.3-.7-2.5l.8.1q1-.2 2-.9l1-1.5c.1-.2-.2-.8 0-1l.9-.6c.4-.4.4-1 1-1.3 2-.2 2.7-1.8 4.6-2h.6l.4.6c0 .1 1.3.9 1.5.8q.3-.1.5-.4c.3.1 1.4-.5 1.5-.9l-.1-.6 1.6-1.2h1.4q.2.4.5.6h1.2c.2 0 .3-.5.7-.5"/>
+ <path fill="#FFF" d="M351.9 73.4 368 123l-42.2-30.7H378L335.8 123zm62.8 11.1 16 49.6-42.1-30.7h52.1l-42.2 30.7zm59.9 21.8 16 49.6-42.1-30.7h52.1L458.4 156l16.2-49.6zM288.1 73.4 272 123l42.2-30.7H262l42.2 30.7zm-62.8 11.1-16 49.6 42.1-30.7h-52.1l42.2 30.7zm-59.6 21.8 16.2 49.6-42.2-30.7h52.1l-42.2 30.7z"/>
+</svg>
diff --git a/apps/web/public/flags/xx.svg b/apps/web/public/flags/xx.svg
new file mode 100644
index 00000000..9333be36
--- /dev/null
+++ b/apps/web/public/flags/xx.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-xx" viewBox="0 0 640 480">
+ <path fill="#fff" fill-rule="evenodd" stroke="#adb5bd" stroke-width="1.1" d="M.5.5h638.9v478.9H.5z"/>
+ <path fill="none" stroke="#adb5bd" stroke-width="1.1" d="m.5.5 639 479m0-479-639 479"/>
+</svg>
diff --git a/apps/web/public/flags/ye.svg b/apps/web/public/flags/ye.svg
new file mode 100644
index 00000000..1c9e6d63
--- /dev/null
+++ b/apps/web/public/flags/ye.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ye" viewBox="0 0 640 480">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#fff" d="M0 0h640v472.8H0z"/>
+ <path fill="#f10600" d="M0 0h640v157.4H0z"/>
+ <path fill="#000001" d="M0 322.6h640V480H0z"/>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/yt.svg b/apps/web/public/flags/yt.svg
new file mode 100644
index 00000000..e7776b30
--- /dev/null
+++ b/apps/web/public/flags/yt.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-yt" viewBox="0 0 640 480">
+ <path fill="#fff" d="M0 0h640v480H0z"/>
+ <path fill="#000091" d="M0 0h213.3v480H0z"/>
+ <path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
+</svg>
diff --git a/apps/web/public/flags/za.svg b/apps/web/public/flags/za.svg
new file mode 100644
index 00000000..d563adb9
--- /dev/null
+++ b/apps/web/public/flags/za.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-za" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="za-a">
+ <path fill-opacity=".7" d="M-71.9 0h682.7v512H-71.9z"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#za-a)" transform="translate(67.4)scale(.93748)">
+ <g fill-rule="evenodd" stroke-width="1pt">
+ <path fill="#000001" d="M-71.9 407.8V104.4L154 256.1z"/>
+ <path fill="#000c8a" d="m82.2 512.1 253.6-170.6H696V512H82.2z"/>
+ <path fill="#e1392d" d="M66 0h630v170.8H335.7S69.3-1.7 66 0"/>
+ <path fill="#ffb915" d="M-71.9 64v40.4L154 256-72 407.8v40.3l284.5-192z"/>
+ <path fill="#007847" d="M-71.9 64V0h95l301.2 204h371.8v104.2H324.3L23 512h-94.9v-63.9l284.4-192L-71.8 64z"/>
+ <path fill="#fff" d="M23 0h59.2l253.6 170.7H696V204H324.3zm0 512.1h59.2l253.6-170.6H696v-33.2H324.3L23 512z"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/zm.svg b/apps/web/public/flags/zm.svg
new file mode 100644
index 00000000..360f37aa
--- /dev/null
+++ b/apps/web/public/flags/zm.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-zm" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="zm-a">
+ <path fill-opacity=".7" d="M-170.7 0H512v512h-682.7z"/>
+ </clipPath>
+ </defs>
+ <g fill-rule="evenodd" clip-path="url(#zm-a)" transform="translate(160)scale(.9375)">
+ <path fill="#198a00" d="M-256 0h768v512h-768z"/>
+ <path fill="#ef7d00" d="M421.9 184H512v328h-90.1z"/>
+ <path fill="#000001" d="M331.9 183.8h90v328h-90z"/>
+ <path fill="#de2010" d="M240 184h91.9v328h-92z"/>
+ <g fill="#ef7d00" stroke="#000">
+ <path stroke-linejoin="round" d="M451.6 65.6s34-14.5 37.2-17.5c1.5 1.8-13.6 20-42.9 26.7 26.6-6.2 49.3-26 54-25.4 1.3.3 1 19.3-60 35.8 42.2-11 66.7-31.4 66.4-29.2.3.5-4.2 16-41.1 28.1 10.3-2.4 38.3-19.4 38-16.1.9 1.3-27 37.2-77.6 25.5 40.4 10.5 66.5-14.8 70.2-14.3.8.1-7.4 22-58.2 23.4 24.3-2.5 17.3-.1 17.3-.1s-14.3 11.2-31.7 3.6c13.6 3.7 15.1 3.9 15.4 5-.9 1.6-12 3.8-22.9-2 8.7 3.6 16.5 4.2 16.6 5.5-.1.4-5.6 3.6-10.6 1.3s-50.3-30.1-50.3-30.1l77.4-21.3 2.8 1zm-91 75.6c-6.8 0-7 6-7 6s-.5.5-.2 3.4l1.7-2.6c.8.1 3.9 1 8.8-2.8-4.5 4.7-1.8 6.4-1.8 6.4s-1 3.7 2.4 4.4c-1-1.5-.4-2.8-.4-2.8s4.8-.5 4.5-6.3c.1 5.3 3 6.6 3 6.6s0 2.9 3.1 3.2c-1.6-1.5-1.3-3.8-1.3-3.8s4-3 .7-8c2-1.2 3.7-4.5 3.7-4.5s-2.8-1.2-4.1-2.2c-.6-1.3 0-8.5 0-8.5l-1.8-9.3-4.8 14.5c.2-2 .3 6.3-6.5 6.3z"/>
+ <path stroke-linejoin="round" d="M394.2 120.3c.2.1 5.1 5.6 9.9 5.3 1.8-1.5-3.7-4.7-3.7-5.5 2 1.8 10.1 8.8 15.4 6.3 2-3-3.8-2.5-10.2-10.6 4.5 3 15.7 9.5 21 7 2.1-2.4-11.7-9.9-16.4-15.7l-12-6.1-16.2 13.3 12.3 6z"/>
+ <path stroke-linecap="round" stroke-linejoin="round" d="M375.9 74.8s5.5-3.2 27.6-1.6c2.4.3 15-4.3 19.1-5.7 6.4-1.2 27-5.6 32.4-9.8 4-.5-1 7.1-6 9-5.2 2.3-24.1 8.9-30.9 8 8.1.1 3.6 6.7-9.8 3.6 6.4 3.6 4 4.2 4 4.2s-11.3.6-14.3-2c7.6 2.9 4.4 4 4.4 4s-7.7.7-11.3-1c5.5 1.7 2.7 2.7 2.7 2.7s-4.5.8-8.2-.6c-3.8-1.3-9.4-10.7-9.7-10.7z"/>
+ <path stroke-linejoin="round" d="m384.7 123.4.8 14.6-.8 1.2c-.3.4-10.3-1.6-9 6 0 3.2 0 4 2.2 5.7-.5-2-.4-3.5-.4-3.5s2.9 1.7 5.6-3c-1.9 4.6-.6 6.3-.1 6.4.4.8-.8 4.5 3 4.4-1.5-1.4-.8-3.4-.8-3.4s4-.6 2.6-7.7c1.4-1.4 2 0 2 0s.4 4.2 3.9 3.3c1.5.9-.3 3.2-.3 3.2s2.5 0 3.3-2c.7-2.2 1.6-6-2.5-7.6-.5-1.5 1.6-1.6 1.6-1.6s2.6.9 3.4 2.2.5-3.4-2.8-4c-4 0-4.2-.9-4.2-1l-1-13.7z"/>
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M398.6 135.8c0-.7-6.8-9.9-5-11 1.7.3 4.5 4.5 6.9 3.1-.7-1.6-2.8-.7-5.1-4.9-2.4-4.8-2.7-11.9-11-19.6 5.4 8.2 17.4 13 18 10.6s-10.7-11.4-10.1-13.6c2.2 4.4 13.4 14.4 21.6 13.6.6-2-6.7-5.8-8.6-9.4-5.3-3.6-19.4-15.7-19.6-18.5a33 33 0 0 0-9.9-10.6l-.8-1.7c-3.2-7.5 1-10 3.5-10.3 2-.3 2.6 0 4-.7l-5.1-2c2.3 1.7 8 .2 6.8 5 2.5-1 7.9-7.4-6.1-8.8-4.6-5.2-23.3-8.2-28 14.6.4.3.6.6 1.8 1.4-6-2.8-21.9-5-27.6-6-15.6-4.4-31.7-15.2-33.2-13.9-2 1 9.4 11.6 8.8 11.8a263 263 0 0 0-27.5-13.6c-6-2.2-11.9-7.4-12.5-6.4-2.2 4.5 9.5 15.9 11.7 17.2s19.3 9.3 19 9.4c-25.8-11.7-30-13.9-31.4-15.2-2.3-.5-7.8-8-9.3-7.5-.9.8.8 12.6 13.1 18 2 1.4 26.4 10.1 26.2 10.8 0 .2-28-11.5-29-12-5.4-2-12-9.4-13.2-8.6s3 8.8 8.4 11.3c2.9 1.2 13.8 6.6 23.6 10 .6.3-17.7-6.9-26.5-10.5-4-2.2-5.8-5-6.4-4.4-1 .6 1.4 12.4 29.7 19 .7.4 10-2.1 9.5-1.8a113 113 0 0 1-15.8 2.8c-.3.8 1.8 5 16.4 4.2 1.8-.1 12-3.7 11.1-3a174 174 0 0 1-14.8 4.9c-.9 0-5.6.6-5.8 1-.2.8 3.5 3.8 11.3 4.2 7 .4 20.2-4.2 20-3.9-.4.3-12.8 4.6-13.1 4.8-.5.3-5 .5-5.2.9-.4.9 6.6 7.4 27.1.4-2 2.8-12 4.7-12 5.2s2.2 2.5 5.7 3.3c1.7.4 4.1.3 6.3 0 4-.8 8-2.3 13.3-7.2.6 1.5-13.1 8.5-12.5 9.1 3 2.8 12.9-.3 13.5-.7.7-.3 19-10.7 19-12 .3 1.6-23.7 14.7-23.4 15.2 1.5 2.4 9.7-.1 10-.4l10.8-5.8c.3-.1-11.8 7-10.8 8.2-.5 4.7 19-3.2 20.5-4.2.7-.5-9.4 4.4-9.4 6.7 3.3 5.5 13.7 3.8 15.3 2.6.8-.6-1 4-.4 3.6a16 16 0 0 0 3-4.3c-.2 1.6-1.4 4-2 6.8s-.9 5.9-1.8 9.2c-.2 1.4 6.4-2.9 5.4-13.2.6 5.4-2 15.4-1.3 16 1.3 1 5.2-5 5.6-9.1 1.1 2 3.5 6.3 5.6 7.3-.2-3.1 0-3-1-6q.8-6.3.8-16.1c5.6 10.7 7.9 15.3 6.3 23.5 1.7.7 4.3-5.8 4.1-9a13 13 0 0 0 11.5 10.2"/>
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M305.4 67.7s-3.9 2.9-8.6 2.7c1.2 4.8 11 1.1 11 1.1s-4.7 5.3-8.1 6.1c2 1.7 10.6 1.1 12 .3s4-4.2 4-4.2-8.8 10.2-10 10.1c-.3 1.2 9.1.8 11-1s7-4.4 7-4.4-13 9-13.5 9c4.8 1.2 14.5-1.6 20.7-5.4-9.2 6.1-10 7.2-14.7 9.3 4.2.9 6.3 3.7 20.3-2.4 8-3.8 12.6-10.8 12.6-10.8a82 82 0 0 1-21.6 18c-.5 1 9.4 5.2 21.9-7.9"/>
+ <path stroke-linecap="round" stroke-width="1.1" d="M373.4 96s.9 4 4.3 7 3.6 6 3.6 6m-9.5-39s1.1 3.7 4.6 6c3.6 2.2 9 9.4 9.3 10.7.4 1.5 2.5 12.6 2.3 13.8m-37.8-25c.2 1.5-5 8.3 2.2 16.4-6.6 8-6.6 9-6.6 9s3.7 2 10.2-3.6c10.8 13.2 7.2 19.2 7.2 19.2"/>
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M362.3 107.2s-1-1.4.8-6.7c1.6 2 3.4 2.3 4.1 3 .8.9 9 2 9.4 7.5"/>
+ <path stroke-width="1.1" d="M371.9 57.5c0-.4-1.7-4-7.8.4 3.3.2 6.5 2.1 7.8-.4z"/>
+ <path stroke-linejoin="round" stroke-width="1.1" d="M430.1 73.5c.3.2 18.2 4 24.2 2.1-7.6 10.2-22.9 3.3-22.9 3.3 7.5 2.2 7.8 2 10.2 4.2.8 2-13.8 1-18.5-1.7 13.3 4.2 13.6 4 14 5.5.6 2.3-21.8-.6-23.7-3.5 6 4.6 9.2 5.5 12.5 7.6-4 1.8-11.5 3.6-25.2-6.1 18 16.4 34.3 15.4 36.9 18.3-6.3 9.3-30.7-5.5-41.9-13s24.5 18.1 27.8 17.7c-1.6 2.5-13.4.3-14.2-1"/>
+ <path stroke-linecap="round" stroke-width="1.1" d="M434.7 90.7c-2 .3-8.3.3-9.2.1"/>
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M300.1 65s13.6 7.2 19.4 6.7a10 10 0 0 1-3.8 2c1.4.6 5.4 2.7 11.4 1.4l-3.3 3s5.2 2 11-1l-2.8 3.7 4.1.3"/>
+ </g>
+ </g>
+</svg>
diff --git a/apps/web/public/flags/zw.svg b/apps/web/public/flags/zw.svg
new file mode 100644
index 00000000..93aac4f6
--- /dev/null
+++ b/apps/web/public/flags/zw.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-zw" viewBox="0 0 640 480">
+ <defs>
+ <clipPath id="zw-a">
+ <rect width="546" height="420.1" x="1.9" y=".1" fill="#00f" fill-rule="evenodd" ry="0"/>
+ </clipPath>
+ </defs>
+ <g clip-path="url(#zw-a)" transform="matrix(1.1722 0 0 1.1426 -2.3 -.1)">
+ <path fill="#006400" d="M0 0h840v420H0z"/>
+ <path fill="#ffd200" d="M0 60h840v300H0z"/>
+ <path fill="#d40000" d="M0 120h840v180H0z"/>
+ <path fill="#000001" d="M0 180h840v60H0z"/>
+ <path stroke="#000" stroke-width="20" d="M0 0v420l280-210z"/>
+ <path fill="#fff" d="M0 0v420l280-210z"/>
+ <path fill="#d40000" d="M106.5 104.4 162 275.1 16.8 169.6h179.5L51 275.1z"/>
+ <path fill="#fc0" d="m82.8 253.7 9.8-1.8 18.1-.7 6.7.6 15 2.5 1.1-1.5V242l1.8-9.3 3-9.4 3.3-7.5 4.2-7.8 6.8 1.7h1.8l.2-1.3-14.4-12.3-15-11.5-21.7-16.2-2-.5-2.3-17-1.7-5.1-2.3-2-4.3-1.4-4.8.2-2.2 1.2-4.6 1-2.4.4-1.6 1.9-.2 2.4 6.7.2 1.7.7-.2.7-3.8.5-1.8.6 2.1 1.6 2.2.8 2.8 1 .6 2 .2 25.8-1.5 4-.5 7.5 2.2 9-5.6 6.4L77 216l-.6 3.5-1.7 3.5-.2 2.2 1.1 2.4 4.3 14.2 2.2 11.7z"/>
+ <path d="M88 142c-1.8 0-2.6.2-4.3 1.1a11 11 0 0 1-4.6 1.4c-2.5 0-4.5 1.8-4.5 4.1v1.5l3.6-.1c10.6.3 1 1.3.2 1.4-2.6.5.6 2.6 3.7 3.7 3.3 1 3.1.4 3.1 15 0 11.9 0 13.6-1 16.3-1.3 4-1.3 10 0 14 .6 1.6 1 3 1 3.3s-1.6 2.1-3.5 4.3c-3.5 4-5.6 8.1-5.6 11a6 6 0 0 1-1 2.6c-1.3 1.7-1.3 4.6-.1 5.7 1.3 1.2 6.6 21.8 6.7 25.7 0 1.4.2 1.4 8.3-.2 6.6-1.3 22.1-1.6 30-.6 3.6.5 7.8 1.3 9.3 1.6 4.8 1.3 4.6 1.5 4.6-4.3a74 74 0 0 1 5.1-26.7 95 95 0 0 1 6.9-14s1.8.2 4 .8c4.1 1 5.3.9 5.3-1 0-1-4.3-4.6-25.4-21a432 432 0 0 0-26.3-19.9q-1 0-1.3-.7l-1.5-9.5c-.7-4.9-1.7-9.7-2.1-10.7q-2-4.4-8.6-4.8zm.1 1h2c6.6.4 7.8 2.2 9.6 14l1.2 9.4q.1 1.1-3.2 3.3a47 47 0 0 0-10 9.5l-1.3 1.8-.3-4.2V165c.3-8.7 0-9.5-2.8-10.5-2.3-.8-5.3-1.6-4.5-2.1 1-.6 2-.2 4.4-.9 1-.2.9-.1.7-.9-.2-1.3-1.6-2-5.3-1.8-3 .2-3.3.1-3.1-.7q.7-2.4 4.5-2.9a13 13 0 0 0 4.4-1.3 7 7 0 0 1 3.7-1zm14.9 25.8h.4c1.7.3 50.8 38.7 50.8 39.8q0 .7-1 .7c-.4 0-12.9-3.5-27.7-7.8-23.6-7-27-8-28-9.3a5 5 0 0 1-.1-6.2 5 5 0 0 0 1-2c0-1.2-2.5 1.8-3 3.5-.5 2 .5 5.4 2 6.5.6.5 5.1 2 10 3.5 8.4 2.4 9 2.7 9.4 4.1 1 3.3-2.5 7.2-7.5 8.3a15 15 0 0 0-5.2 2.4 68 68 0 0 1-17.2 10.4c-.4.3-.9 1.9-1.2 3.4-.6 3.3-.8 3.8-1.8 3.8q-.8.1-.2-1.4c.7-2 .6-4.4-.1-4.4q-.7 0-.7 1.8c0 1-.3 2.2-.7 2.5-.5.6-.6.2-.4-2.3.2-1.7.1-3-.1-3-.5 0-1.4 2.5-1.7 4.7q-.2 2-.6-.3c-.3-1.2-.2-2 .7-3.5a9 9 0 0 0 1-3.5c0-1.3 1-2.6 5.7-7.3 3-3.1 6.7-7 8-8.7 2.3-2.8 2.4-3 2.3-5.9 0-1.6-.2-3.1-.4-3.3-.6-.6-1.4 2.6-1 4.3.2 1.6 0 2.1-3.3 6a113 113 0 0 1-7.5 7.8c-3.9 3.6-5.3 5.6-5.3 7.4 0 .6-.4 2-1 3.3s-.8 2.6-.6 2.9q.2.5-.3 0-.7-.6-.1-3a7 7 0 0 0 .2-2.6c-.5-1-1.2.2-1.5 2.7-.2 1.4-.5 2.5-.8 2.3-.7-.4-.5-3 .4-4.4.5-.7 1-2.3 1.3-3.6.7-3.7 2.3-6.7 5.8-10.7l3.2-3.8-1-3.3a25 25 0 0 1-.2-13.7q1.9-5.6 8-11.7c4-3.9 7.9-6.3 10-6.4m15 32.2a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m2.5.3a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m2.6.5a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m2.4.5a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m-6.3.6a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m2.4.4a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m5.2.2a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m-2.7 0a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m5 .6c.1 0 3.7.8 8 2l7.9 2.3-1.5 2.7-2.4 4.4c-1 2-1.2 2-6 .9-5.2-1.2-13.4-2.3-21.8-3l-8-.7 3-1.1 5.3-2.4c2-1.1 2.8-1.3 5.9-1q6.8.4 8.7-2.4l1-1.7zm-8.8.6a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m5.6 0a.9.6 0 0 1 1 .6.9.6 0 0 1-1.6 0 .9.6 0 0 1 .7-.6zm-8 0a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.5zm5.3.2a.9.6 0 0 1 1 .5.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.5m-6.6 1.1a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m2.5 0a.9.6 0 0 1 1 .7.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6zm2.6.2a.9.6 0 0 1 1 .5.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.5m2.8 0a.9.6 0 0 1 1 .6.9.6 0 0 1-1.7 0 .9.6 0 0 1 .7-.6m-20.3 8.1a191 191 0 0 1 35.1 4.2c.1.1-.6 2.5-1.7 5.4l-2 6q0 .7-2.5.3c-8.3-1.3-32.3-1.2-41.5.2-5.3.8-6 .7-5.6-.4l1-3.5.6-2.7L93 221a63 63 0 0 0 10.2-6.5h.9zm-27 14.2q.5 0 1.6.8c1 .6 2.2 1.1 2.7 1.1 2.6 0 4 3.7 6.2 16l.8 4.4c.2 1 0 1.2-2.3 1.7-2.8.6-3.5.7-3.5.3 0-1-2.8-13.7-4-18.2l-1.6-6h.1zm28.6 2h2.9l-1 1c-1.7 2-2.5 2.1-3.7.8l-1-1.5c0-.2 1.3-.4 2.8-.4zm6.1 0h5.4l-1.2 1.2c-1.4 1.6-1.5 1.6-3 0l-1.2-1.3zm8.2 0h1.3c.7 0 2 0 2.8.2l1.5.3-1.4 1.3q-1.3 1.2-1.6 1.2l-1.4-1.6zm8.5.3 1.2.3c.7.2 2.2.3 3.3.4h2l-1.5 1.3-1.8 1.3c-.1 0-1-.8-1.7-1.7zm-30.2.1h.2q.1.5-1 1.7l-1 1.4-1.5-1.2-1.5-1.3 2.4-.3zm2.3.2 1.6 1.4 1.6 1.5-3 .2-3 .1 1.4-1.5zm18 0q.4 0 .8.3l1.3 1.7q.8 1.1-1 1l-2.5-.5-1.2-.3 1.3-1.3q.8-1 1.4-1zm-8.3 0q.7-.1 1.6 1.3c.7 1.1.7 1.1-2 1.1h-2.7l1.4-1.3q1-1 1.7-1zm17 .2 1.2 1.2q2.1 2 .6 2l-2.8-.3-2.2-.2 1.6-1.3zm-35.2.7q.5 0 1.6 1.2l1.2 1.3-2.5.4-3.5.5q-1.1.3 1-1.6 1.7-1.7 2.2-1.8m-3.7 0h.4c.8.2.8.4-.6 1.8l-1.5 1.5-.5-1.3c-.4-1-.3-1.3.6-1.7zm46 1.8q.3 0 0 .6c-.2.8-1.1 1-1.1.2q0-.3.7-.7zm-21.4 1.6c7.7 0 15.5.2 17.4.4 3.1.4 3.4.5 3.4 1.7 0 1.4-.4 1.5-4.6.8-1.2-.3-6.3-.7-11.2-1.1a150 150 0 0 0-28.5 1c-1.9.2-2.4 0-2.4-.6 0-1.3 10.2-2.2 25.9-2.2m-10.3 2.9h5.4l-1.2 1.3c-1.5 1.6-1.6 1.6-3 0zm7 0 1.4 1.4 1.4 1.6-2.9.1h-2.9l1.5-1.6zm2.1 0h5.4l-1.2 1.3c-1.4 1.6-1.5 1.6-3 0zm-12.8 0q.3 0-.7 1.5-1.2 1.5-1.5 1.6-.5-.1-1.5-1.3l-1.2-1.3H96a9 9 0 0 0 2.7-.4zm2 .5 1.3 1.2 1.5 1.3-2.6.2-2.9.2 1.4-1.5zm17.4 0 1.4 1.6c1.6 1.7 1.5 1.8-2.1 1.1l-1.7-.3 1.2-1.2zm2 0h2.4q3.8-.1 1.4 1.8c-1.2 1-1.2 1-2.6-.5zm-30.6.5c1.2 0 1.1.1-.4 1.6-1.1 1.1-1.2 1.1-1.6.3q-.3-1.6 2-1.9m38.8.2 2 .2 2.3.4-1.3 1.2-1.2 1.2-1.1-1.4-1-1.6zm-36 .5q.4 0 1.1.7c1 1 1 1 .2 1.4l-2.4.4H90l1.3-1.4q1-1 1.3-1.1zm34.1.3q.5-.1 1.2 1l.9 1.2h-2.1q-2 0-2-.6.3-.7 1.3-1.3zm6.4 1.3q.3 0 .2.5c0 1-.9 1.7-1.3 1q-.1-.5.5-1.1zm-25.9 1.2c8.7 0 18.3.6 24 1.6l1.6.3v4.4c0 3.3-.2 4.4-.7 4.4l-5-1a126 126 0 0 0-35-1l-2.3.3-.6-3.7-.4-3.8s2.3-.5 5-.8c3.3-.5 8.2-.7 13.4-.7"/>
+ <path id="zw-b" d="M124.8 217.8c-3 0-5.1 2.1-5.1 5.2 0 4.8 5.4 7.2 8.6 3.8s1-9-3.5-9m0 1.2a4 4 0 0 1 4 4c0 3-3.3 5-6 3.7-2.7-1.5-2.5-6.1.4-7.3z"/>
+ <use xlink:href="#zw-b" width="100%" height="100%" x="-20.1" y="-.6"/>
+ <path d="M88 145.3a1.7 1.8 0 0 0-1.6 1.7 1.7 1.8 0 1 0 3.5 0 1.7 1.8 0 0 0-1.9-1.7m.1.6a1.2 1.2 0 0 1 1.2 1.1 1.2 1.1 0 1 1-2.4 0 1.2 1.2 0 0 1 1.2-1.1"/>
+ </g>
+</svg>
diff --git a/apps/web/public/shapes/circle.svg b/apps/web/public/shapes/circle.svg
index adb837cf..2de141cd 100644
--- a/apps/web/public/shapes/circle.svg
+++ b/apps/web/public/shapes/circle.svg
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <circle cx="50" cy="50" r="44" fill="currentColor" />
+ <circle cx="50" cy="50" r="50" fill="currentColor" />
</svg>
diff --git a/apps/web/public/shapes/diamond.svg b/apps/web/public/shapes/diamond.svg
index 4a039b5c..a0a31aa8 100644
--- a/apps/web/public/shapes/diamond.svg
+++ b/apps/web/public/shapes/diamond.svg
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <polygon points="50,6 94,50 50,94 6,50" fill="currentColor" />
+ <polygon points="50,0 100,50 50,100 0,50" fill="currentColor" />
</svg>
diff --git a/apps/web/public/shapes/hexagon.svg b/apps/web/public/shapes/hexagon.svg
index e1eb087e..e50cd91f 100644
--- a/apps/web/public/shapes/hexagon.svg
+++ b/apps/web/public/shapes/hexagon.svg
@@ -1,3 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <polygon points="28,8 72,8 94,50 72,92 28,92 6,50" fill="currentColor" />
+ <polygon
+ points="50,0 93.301,25 93.301,75 50,100 6.699,75 6.699,25"
+ fill="currentColor"
+ />
</svg>
diff --git a/apps/web/public/shapes/square.svg b/apps/web/public/shapes/square.svg
index ed9b790f..58a0f6ad 100644
--- a/apps/web/public/shapes/square.svg
+++ b/apps/web/public/shapes/square.svg
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <rect x="10" y="10" width="80" height="80" fill="currentColor" />
+ <rect width="100" height="100" fill="currentColor" />
</svg>
diff --git a/apps/web/public/shapes/star.svg b/apps/web/public/shapes/star.svg
index c49e0c53..f646764b 100644
--- a/apps/web/public/shapes/star.svg
+++ b/apps/web/public/shapes/star.svg
@@ -1,3 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <polygon points="50,6 61,37 94,37 67,56 77,88 50,68 23,88 33,56 6,37 39,37" fill="currentColor" />
+ <polygon
+ points="50,0 61.24,34.56 97.55,34.55 68.16,55.9 79.39,90.45 50,69.1 20.61,90.45 31.84,55.9 2.45,34.55 38.76,34.55"
+ fill="currentColor"
+ />
</svg>
diff --git a/apps/web/public/shapes/triangle.svg b/apps/web/public/shapes/triangle.svg
index a1bd6b0c..9c1c5a41 100644
--- a/apps/web/public/shapes/triangle.svg
+++ b/apps/web/public/shapes/triangle.svg
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
- <polygon points="50,8 94,92 6,92" fill="currentColor" />
+ <polygon points="50,13.4 0,100 100,100" fill="currentColor" />
</svg>
diff --git a/apps/web/src/app/blog/[slug]/page.tsx b/apps/web/src/app/blog/[slug]/page.tsx
index e1afc3a8..90afd919 100644
--- a/apps/web/src/app/blog/[slug]/page.tsx
+++ b/apps/web/src/app/blog/[slug]/page.tsx
@@ -5,7 +5,7 @@ import { BasePage } from "@/app/base-page";
import Prose from "@/components/ui/prose";
import { Separator } from "@/components/ui/separator";
import { getPosts, getSinglePost, processHtmlContent } from "@/lib/blog/query";
-import type { Author, Post } from "@/types/blog";
+import type { Author, Post } from "@/lib/blog/types";
type PageProps = {
params: Promise<{ slug: string }>;
diff --git a/apps/web/src/app/blog/page.tsx b/apps/web/src/app/blog/page.tsx
index 257a8f23..df0b195d 100644
--- a/apps/web/src/app/blog/page.tsx
+++ b/apps/web/src/app/blog/page.tsx
@@ -3,7 +3,7 @@ import Link from "next/link";
import { BasePage } from "@/app/base-page";
import { Separator } from "@/components/ui/separator";
import { getPosts } from "@/lib/blog/query";
-import type { Post } from "@/types/blog";
+import type { Post } from "@/lib/blog/types";
export const metadata: Metadata = {
title: "Blog - OpenCut",
diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css
index 6d3e984f..21219427 100644
--- a/apps/web/src/app/globals.css
+++ b/apps/web/src/app/globals.css
@@ -8,111 +8,111 @@
@plugin "tailwindcss-animate";
:root {
- --background: hsl(0, 0%, 100%);
- --foreground: hsl(0 0% 11%);
- --card: hsl(0, 0%, 100%);
- --card-foreground: hsl(0 0% 11%);
- --popover: hsl(0, 0%, 100%);
- --popover-hover: hsl(0, 0%, 96%);
- --popover-foreground: hsl(0 0% 2%);
- --primary: #009dff;
- --primary-foreground: hsl(0, 0%, 100%);
- --secondary: hsl(204, 100%, 97%);
- --secondary-border: hsl(204, 100%, 94%);
- --secondary-foreground: hsl(200, 98%, 39%);
- --muted: hsl(0 0% 85.1%);
- --muted-foreground: hsl(0 0% 50%);
- --accent: hsl(0, 0%, 96%);
- --accent-foreground: hsl(0 0% 2%);
- --destructive: hsl(0, 83%, 50%);
- --destructive-foreground: hsl(0, 0%, 100%);
- --constructive: hsl(141, 71%, 48%);
- --constructive-foreground: hsl(0, 0%, 100%);
- --border: hsl(0 0% 91%);
- --input: hsl(0, 0%, 100%);
- --ring: hsl(0, 0%, 55%);
- --chart-1: hsl(220 70% 50%);
- --chart-2: hsl(160 60% 45%);
- --chart-3: hsl(30 80% 55%);
- --chart-4: hsl(280 65% 60%);
- --chart-5: hsl(340 75% 55%);
- --sidebar-background: hsl(0 0% 96.1%);
- --sidebar-foreground: hsl(0 0% 2%);
- --sidebar-primary: hsl(0 0% 2%);
- --sidebar-primary-foreground: hsl(0 0% 91%);
- --sidebar-accent: hsl(0 0% 85.1%);
- --sidebar-accent-foreground: hsl(0 0% 2%);
- --sidebar-border: hsl(0 0% 85.1%);
- --sidebar-ring: hsl(0 0% 16.9%);
- --sidebar: hsl(0 0% 98%);
+ --background: hsl(0, 0%, 100%);
+ --foreground: hsl(0 0% 11%);
+ --card: hsl(0, 0%, 100%);
+ --card-foreground: hsl(0 0% 11%);
+ --popover: hsl(0, 0%, 100%);
+ --popover-hover: hsl(0, 0%, 96%);
+ --popover-foreground: hsl(0 0% 2%);
+ --primary: hsl(200, 90%, 52%);
+ --primary-foreground: hsl(0, 0%, 100%);
+ --secondary: hsl(204, 100%, 97%);
+ --secondary-border: hsl(204, 100%, 94%);
+ --secondary-foreground: hsl(200, 98%, 39%);
+ --muted: hsl(0 0% 85.1%);
+ --muted-foreground: hsl(0 0% 50%);
+ --accent: hsl(0, 0%, 96%);
+ --accent-foreground: hsl(0 0% 2%);
+ --destructive: hsl(0, 83%, 50%);
+ --destructive-foreground: hsl(0, 0%, 100%);
+ --constructive: hsl(141, 71%, 48%);
+ --constructive-foreground: hsl(0, 0%, 100%);
+ --border: hsl(0 0% 91%);
+ --input: hsl(0, 0%, 100%);
+ --ring: hsl(0, 0%, 55%);
+ --chart-1: hsl(220 70% 50%);
+ --chart-2: hsl(160 60% 45%);
+ --chart-3: hsl(30 80% 55%);
+ --chart-4: hsl(280 65% 60%);
+ --chart-5: hsl(340 75% 55%);
+ --sidebar-background: hsl(0 0% 96.1%);
+ --sidebar-foreground: hsl(0 0% 2%);
+ --sidebar-primary: hsl(0 0% 2%);
+ --sidebar-primary-foreground: hsl(0 0% 91%);
+ --sidebar-accent: hsl(0 0% 85.1%);
+ --sidebar-accent-foreground: hsl(0 0% 2%);
+ --sidebar-border: hsl(0 0% 85.1%);
+ --sidebar-ring: hsl(0 0% 16.9%);
+ --sidebar: hsl(0 0% 98%);
}
.panel {
- --background: hsl(216 13% 98%);
- --foreground: hsl(0 0% 13%);
- --card: hsl(0, 0%, 98%);
- --card-foreground: hsl(0 0% 13%);
- --primary-foreground: hsl(0, 0%, 98%);
- --secondary: hsl(204, 100%, 95%);
- --secondary-border: hsl(204, 100%, 92%);
- --secondary-foreground: hsl(200, 98%, 37%);
- --muted: hsl(0 0% 83.1%);
- --muted-foreground: hsl(0 0% 48%);
- --accent: hsl(0, 0%, 93%);
- --accent-foreground: hsl(0 0% 5%);
- --destructive-foreground: hsl(0, 0%, 98%);
- --constructive-foreground: hsl(0, 0%, 98%);
- --border: hsl(0 0% 89%);
- --input: hsl(0 0% 93%);
- --ring: hsl(0, 0%, 53%);
+ --background: hsl(210, 20%, 98%);
+ --foreground: hsl(0 0% 13%);
+ --card: hsl(0, 0%, 98%);
+ --card-foreground: hsl(0 0% 13%);
+ --primary-foreground: hsl(0, 0%, 98%);
+ --secondary: hsl(204, 100%, 95%);
+ --secondary-border: hsl(204, 100%, 92%);
+ --secondary-foreground: hsl(200, 98%, 37%);
+ --muted: hsl(0 0% 83.1%);
+ --muted-foreground: hsl(0 0% 48%);
+ --accent: hsl(0, 0%, 93%);
+ --accent-foreground: hsl(0 0% 5%);
+ --destructive-foreground: hsl(0, 0%, 98%);
+ --constructive-foreground: hsl(0, 0%, 98%);
+ --border: hsl(0 0% 87%);
+ --input: hsl(0 0% 93%);
+ --ring: hsl(0, 0%, 53%);
}
.dark {
- --background: hsl(0, 0%, 5%);
- --foreground: hsl(0 0% 87%);
- --card: hsl(0, 0%, 5%);
- --card-foreground: hsl(0 0% 87%);
- --popover: hsl(0, 0%, 5%);
- --popover-hover: hsl(0, 0%, 22%);
- --popover-foreground: hsl(0 0% 95%);
- --secondary: hsl(204, 100%, 12%);
- --secondary-border: hsl(204, 100%, 15%);
- --secondary-foreground: hsl(200, 98%, 61%);
- --muted: hsl(0 0% 20%);
- --accent: hsl(0, 0%, 14%);
- --accent-foreground: hsl(0 0% 95%);
- --border: hsl(0 0% 16%);
- --input: hsl(0 0% 5%);
- --ring: hsl(0, 0%, 50%);
- --sidebar-background: hsl(0 0% 8%);
- --sidebar-foreground: hsl(0 0% 95%);
- --sidebar-primary: hsl(0 0% 95%);
- --sidebar-primary-foreground: hsl(0 0% 15%);
- --sidebar-accent: hsl(0 0% 20%);
- --sidebar-accent-foreground: hsl(0 0% 95%);
- --sidebar-border: hsl(0 0% 20%);
- --sidebar-ring: hsl(0 0% 83.1%);
- --sidebar: hsl(0 0% 6%);
+ --background: hsl(0, 0%, 5%);
+ --foreground: hsl(0 0% 87%);
+ --card: hsl(0, 0%, 5%);
+ --card-foreground: hsl(0 0% 87%);
+ --popover: hsl(0, 0%, 5%);
+ --popover-hover: hsl(0, 0%, 13%);
+ --popover-foreground: hsl(0 0% 95%);
+ --secondary: hsl(204, 100%, 12%);
+ --secondary-border: hsl(204, 100%, 15%);
+ --secondary-foreground: hsl(200, 98%, 61%);
+ --muted: hsl(0 0% 20%);
+ --accent: hsl(0, 0%, 14%);
+ --accent-foreground: hsl(0 0% 95%);
+ --border: hsl(0 0% 16%);
+ --input: hsl(0 0% 5%);
+ --ring: hsl(0, 0%, 50%);
+ --sidebar-background: hsl(0 0% 8%);
+ --sidebar-foreground: hsl(0 0% 95%);
+ --sidebar-primary: hsl(0 0% 95%);
+ --sidebar-primary-foreground: hsl(0 0% 15%);
+ --sidebar-accent: hsl(0 0% 20%);
+ --sidebar-accent-foreground: hsl(0 0% 95%);
+ --sidebar-border: hsl(0 0% 20%);
+ --sidebar-ring: hsl(0 0% 83.1%);
+ --sidebar: hsl(0 0% 6%);
}
.dark .panel {
- --background: hsl(0 0% 10%);
- --foreground: hsl(0 0% 85%);
- --card: hsl(0, 0%, 10%);
- --card-foreground: hsl(0 0% 85%);
- --secondary: hsl(204, 67%, 9%);
- --secondary-border: hsl(204, 100%, 14%);
- --secondary-foreground: hsl(200, 98%, 63%);
- --muted: hsl(0 0% 22%);
- --accent: hsl(0, 0%, 15%);
- --accent-foreground: hsl(0 0% 93%);
- --border: hsl(0 0% 18%);
- --input: hsl(0 0% 22%);
- --ring: hsl(0, 0%, 52%);
+ --background: hsl(0 0% 10%);
+ --foreground: hsl(0 0% 85%);
+ --card: hsl(0, 0%, 10%);
+ --card-foreground: hsl(0 0% 85%);
+ --secondary: hsl(204, 67%, 9%);
+ --secondary-border: hsl(204, 100%, 14%);
+ --secondary-foreground: hsl(200, 98%, 63%);
+ --muted: hsl(0 0% 22%);
+ --accent: hsl(0, 0%, 15%);
+ --accent-foreground: hsl(0 0% 93%);
+ --border: hsl(0 0% 18%);
+ --input: hsl(0 0% 22%);
+ --ring: hsl(0, 0%, 52%);
}
@layer base {
- /*
+ /*
The default border color has changed to `currentcolor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.
@@ -120,165 +120,165 @@
If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
- *,
- ::after,
- ::before,
- ::backdrop,
- ::file-selector-button {
- border-color: var(--color-gray-200, currentcolor);
- }
- /* Other default base styles */
- * {
- @apply border-border;
- }
- body {
- @apply bg-background text-foreground;
- /* Prevent back/forward swipe */
- overscroll-behavior-x: contain;
- }
- ::selection {
- @apply bg-primary/35 selection:text-primary-foreground;
- }
+ *,
+ ::after,
+ ::before,
+ ::backdrop,
+ ::file-selector-button {
+ border-color: var(--color-gray-200, currentcolor);
+ }
+ /* Other default base styles */
+ * {
+ @apply border-border;
+ }
+ body {
+ @apply bg-background text-foreground;
+ /* Prevent back/forward swipe */
+ overscroll-behavior-x: contain;
+ }
+ ::selection {
+ @apply bg-primary/35 selection:text-primary-foreground;
+ }
}
@theme inline {
- /* Responsive breakpoints */
- --breakpoint-xs: 30rem;
+ /* Responsive breakpoints */
+ --breakpoint-xs: 30rem;
- /* Typography */
- --font-sans: var(--font-inter), sans-serif;
+ /* Typography */
+ --font-sans: var(--font-inter), sans-serif;
- /* Font sizes */
- --text-xs: 0.72rem;
- --text-sm: 0.79rem;
- --text-base: 0.92rem;
- --text-base--line-height: calc(1.5 / 0.95);
- --text-xs--line-height: calc(1 / 0.8);
+ /* Font sizes */
+ --text-xs: 0.72rem;
+ --text-sm: 0.79rem;
+ --text-base: 0.92rem;
+ --text-base--line-height: calc(1.5 / 0.95);
+ --text-xs--line-height: calc(1 / 0.8);
- /* Border radius */
- --radius-lg: 0.82rem;
- --radius-md: 0.65rem;
- --radius-sm: 0.35rem;
+ /* Border radius */
+ --radius-lg: 0.82rem;
+ --radius-md: 0.65rem;
+ --radius-sm: 0.35rem;
- /* Palette mapped to root design tokens */
- --color-background: var(--background);
- --color-foreground: var(--foreground);
+ /* Palette mapped to root design tokens */
+ --color-background: var(--background);
+ --color-foreground: var(--foreground);
- --color-card: var(--card);
- --color-card-foreground: var(--card-foreground);
+ --color-card: var(--card);
+ --color-card-foreground: var(--card-foreground);
- --color-popover: var(--popover);
- --color-popover-hover: var(--popover-hover);
- --color-popover-foreground: var(--popover-foreground);
+ --color-popover: var(--popover);
+ --color-popover-hover: var(--popover-hover);
+ --color-popover-foreground: var(--popover-foreground);
- --color-primary: var(--primary);
- --color-primary-foreground: var(--primary-foreground);
- --color-secondary: var(--secondary);
- --color-secondary-border: var(--secondary-border);
- --color-secondary-foreground: var(--secondary-foreground);
+ --color-primary: var(--primary);
+ --color-primary-foreground: var(--primary-foreground);
+ --color-secondary: var(--secondary);
+ --color-secondary-border: var(--secondary-border);
+ --color-secondary-foreground: var(--secondary-foreground);
- --color-muted: var(--muted);
- --color-muted-foreground: var(--muted-foreground);
+ --color-muted: var(--muted);
+ --color-muted-foreground: var(--muted-foreground);
- --color-accent: var(--accent);
- --color-accent-foreground: var(--accent-foreground);
+ --color-accent: var(--accent);
+ --color-accent-foreground: var(--accent-foreground);
- --color-destructive: var(--destructive);
- --color-destructive-foreground: var(--destructive-foreground);
+ --color-destructive: var(--destructive);
+ --color-destructive-foreground: var(--destructive-foreground);
- --color-constructive: var(--constructive);
- --color-constructive-foreground: var(--constructive-foreground);
+ --color-constructive: var(--constructive);
+ --color-constructive-foreground: var(--constructive-foreground);
- --color-border: var(--border);
- --color-input: var(--input);
- --color-ring: var(--ring);
+ --color-border: var(--border);
+ --color-input: var(--input);
+ --color-ring: var(--ring);
- /* Chart colors */
- --color-chart-1: var(--chart-1);
- --color-chart-2: var(--chart-2);
- --color-chart-3: var(--chart-3);
- --color-chart-4: var(--chart-4);
- --color-chart-5: var(--chart-5);
+ /* Chart colors */
+ --color-chart-1: var(--chart-1);
+ --color-chart-2: var(--chart-2);
+ --color-chart-3: var(--chart-3);
+ --color-chart-4: var(--chart-4);
+ --color-chart-5: var(--chart-5);
- /* Sidebar */
- --color-sidebar: var(--sidebar-background);
- --color-sidebar-foreground: var(--sidebar-foreground);
- --color-sidebar-primary: var(--sidebar-primary);
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
- --color-sidebar-accent: var(--sidebar-accent);
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
- --color-sidebar-border: var(--sidebar-border);
- --color-sidebar-ring: var(--sidebar-ring);
+ /* Sidebar */
+ --color-sidebar: var(--sidebar-background);
+ --color-sidebar-foreground: var(--sidebar-foreground);
+ --color-sidebar-primary: var(--sidebar-primary);
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
+ --color-sidebar-accent: var(--sidebar-accent);
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
+ --color-sidebar-border: var(--sidebar-border);
+ --color-sidebar-ring: var(--sidebar-ring);
- /* Animations */
- --animate-accordion-down: accordion-down 0.2s ease-out;
- --animate-accordion-up: accordion-up 0.2s ease-out;
+ /* Animations */
+ --animate-accordion-down: accordion-down 0.2s ease-out;
+ --animate-accordion-up: accordion-up 0.2s ease-out;
- @keyframes accordion-down {
- from {
- height: 0;
- }
- to {
- height: var(--radix-accordion-content-height);
- }
- }
+ @keyframes accordion-down {
+ from {
+ height: 0;
+ }
+ to {
+ height: var(--radix-accordion-content-height);
+ }
+ }
- @keyframes accordion-up {
- from {
- height: var(--radix-accordion-content-height);
- }
- to {
- height: 0;
- }
- }
+ @keyframes accordion-up {
+ from {
+ height: var(--radix-accordion-content-height);
+ }
+ to {
+ height: 0;
+ }
+ }
}
@utility scrollbar-hidden {
- -ms-overflow-style: none;
- scrollbar-width: none;
- &::-webkit-scrollbar {
- display: none;
- }
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar {
+ display: none;
+ }
}
@utility scrollbar-x-hidden {
- -ms-overflow-style: none;
- scrollbar-width: none;
- &::-webkit-scrollbar:horizontal {
- display: none;
- }
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar:horizontal {
+ display: none;
+ }
}
@utility scrollbar-y-hidden {
- -ms-overflow-style: none;
- scrollbar-width: none;
- &::-webkit-scrollbar:vertical {
- display: none;
- }
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ &::-webkit-scrollbar:vertical {
+ display: none;
+ }
}
@utility scrollbar-thin {
- &::-webkit-scrollbar {
- width: 6px;
- height: 8px;
- }
- &::-webkit-scrollbar-track {
- background: transparent;
- }
- &::-webkit-scrollbar-thumb {
- background: var(--border);
- border-radius: 4px;
- }
- &::-webkit-scrollbar-thumb:hover {
- background: var(--muted-foreground);
- }
+ &::-webkit-scrollbar {
+ width: 7px;
+ height: 7px;
+ }
+ &::-webkit-scrollbar-track {
+ background: transparent;
+ }
+ &::-webkit-scrollbar-thumb {
+ background: var(--border);
+ border-radius: 4px;
+ }
+ &::-webkit-scrollbar-thumb:hover {
+ background: var(--muted-foreground);
+ }
}
@layer base {
- * {
- @apply border-border outline-ring/50;
- }
- body {
- @apply bg-background text-foreground;
- }
+ * {
+ @apply border-border outline-ring/50;
+ }
+ body {
+ @apply bg-background text-foreground;
+ }
}
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx
index c2608bd9..f8e6040f 100644
--- a/apps/web/src/app/layout.tsx
+++ b/apps/web/src/app/layout.tsx
@@ -29,11 +29,20 @@ export default function RootLayout({
<head>
<BotIdClient protect={protectedRoutes} />
{process.env.NODE_ENV === "development" && (
- <Script
- src="//unpkg.com/react-scan/dist/auto.global.js"
- crossOrigin="anonymous"
- strategy="beforeInteractive"
- />
+ <>
+ <Script
+ src="//unpkg.com/react-scan/dist/auto.global.js"
+ crossOrigin="anonymous"
+ strategy="beforeInteractive"
+ />
+
+ {/* code to figma */}
+ {/* <script
+ dangerouslySetInnerHTML={{
+ __html: `(function(){var s=document.createElement('script');s.src='https://mcp.figma.com/mcp/html-to-design/capture.js';document.head.appendChild(s);})();`,
+ }}
+ /> */}
+ </>
)}
</head>
<body className={`${siteFont.className} font-sans antialiased`}>
diff --git a/apps/web/src/app/privacy/page.tsx b/apps/web/src/app/privacy/page.tsx
index 4b06405a..0672cfe5 100644
--- a/apps/web/src/app/privacy/page.tsx
+++ b/apps/web/src/app/privacy/page.tsx
@@ -37,7 +37,7 @@ export default function PrivacyPage() {
</AccordionTrigger>
<AccordionContent>
<h3 className="mb-3 text-lg font-medium">
- Your content stays private and encrypted.
+ Your content never leaves your device.
</h3>
<ol className="list-decimal space-y-2 pl-6">
<li>
@@ -45,22 +45,19 @@ export default function PrivacyPage() {
your files
</li>
<li>
- AI features require encrypted uploads - your content is
- encrypted before leaving your device
+ AI features like auto captions run locally in your browser
+ too - nothing is uploaded
</li>
<li>
- We only collect your email and basic profile info for your
- account
+ OpenCut does not currently require an account or login
</li>
<li>Project data stays on your device, not our servers</li>
<li>
- We use analytics to improve the app, but no personal video
+ We use anonymized analytics to improve the app, but no personal video
content is tracked
</li>
- <li>
- You can delete your account anytime and all data gets removed
- </li>
- <li>We don't sell your data or share it with advertisers</li>
+ <li>You can clear local data from your browser at any time</li>
+ <li>We don't sell or share your data with anyone (we don't even have it)</li>
</ol>
<p className="mt-4">
Questions? Email us at{" "}
@@ -78,84 +75,30 @@ export default function PrivacyPage() {
<section className="flex flex-col gap-3">
<h2 className="text-2xl font-semibold">How We Handle Your Content</h2>
<p>
- <strong>Basic video editing happens locally on your device.</strong>{" "}
- For standard editing features, we never upload, store, or have access
- to your video files. Your content remains completely private and under
- your control.
- </p>
- <p>
- <strong>AI features require secure processing:</strong> When you
- choose to use AI features like auto captions, your audio/video content
- is encrypted on your device before being uploaded to our servers for
- processing. We use zero-knowledge encryption, meaning we cannot
- decrypt or view your content.
- </p>
- <p>
- After AI processing is complete, the encrypted content is immediately
- deleted from our servers. Only the results (like generated captions)
- are returned to your device.
+ <strong>
+ All editing and processing happens locally on your device.
+ </strong>{" "}
+ We never upload, store, or have access to your video or audio files.
+ Your content remains completely private and under your control.
+ AI-powered features like auto captions also run in your browser using
+ on-device models - no content ever leaves your device.
</p>
</section>
<section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">Account Information</h2>
- <p>When you create an account, we only collect:</p>
- <ul className="list-disc space-y-2 pl-6">
- <li>Email address (for account access)</li>
- <li>
- Profile information from Google OAuth (if you choose to sign in with
- Google)
- </li>
- </ul>
- <p>
- <strong>We do NOT store your projects on our servers.</strong> All
- project data, including names, thumbnails, and creation dates, is
- stored locally in your browser using IndexedDB.
- </p>
+ <h2 className="text-2xl font-semibold">Accounts & Authentication</h2>
<p>
- We use{" "}
- <a
- href="https://www.better-auth.com"
- target="_blank"
- rel="noopener"
- className="text-primary hover:underline"
- >
- Better Auth
- </a>{" "}
- for secure authentication and follow industry-standard security
- practices.
+ OpenCut does not currently offer user accounts, login, or Google
+ sign-in.
</p>
- </section>
-
- <section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">AI Features & Encryption</h2>
<p>
- When you use AI-powered features (like auto captions, content
- analysis, or enhancement tools), your content needs to be processed on
- our servers. Here's how we protect your privacy:
+ Because there is no account system today, we do not collect account
+ emails, profile information, or OAuth identity data.
</p>
- <ul className="list-disc space-y-2 pl-6">
- <li>
- <strong>Client-side encryption:</strong> Your content is encrypted
- on your device before upload
- </li>
- <li>
- <strong>Zero-knowledge processing:</strong> We cannot decrypt or
- view your original content
- </li>
- <li>
- <strong>Temporary processing:</strong> Encrypted content is deleted
- immediately after processing
- </li>
- <li>
- <strong>Opt-in only:</strong> AI features are optional - basic
- editing remains fully local
- </li>
- </ul>
<p>
- Different AI features may process different types of content (audio
- for captions, video for analysis, etc.), but all follow the same
- zero-knowledge encryption approach.
+ Your projects are never stored on our servers. All project data,
+ including names, thumbnails, and creation dates, is stored locally
+ in your browser using IndexedDB.
</p>
</section>
@@ -171,13 +114,12 @@ export default function PrivacyPage() {
>
Databuddy
</a>{" "}
- for completely anonymized and non-invasive analytics to understand how
- people use OpenCut.
+ for basic, anonymized visitor counts. We do not track clicks,
+ interactions, or how you use the editor.
</p>
<p>
- This helps us improve the editor, but we never collect personal
- information, track individual users, or store any data that could
- identify you.
+ No personal information is collected, no individual users are tracked,
+ and no data that could identify you is stored.
</p>
</section>
@@ -187,7 +129,7 @@ export default function PrivacyPage() {
<ul className="list-disc space-y-2 pl-6">
<li>Save your projects locally on your device</li>
<li>Remember your editor preferences and settings</li>
- <li>Keep you logged in across browser sessions</li>
+ <li>Store app state needed for the editor to work between sessions</li>
</ul>
<p>
All data stays on your device and can be cleared at any time through
@@ -200,10 +142,6 @@ export default function PrivacyPage() {
<p>OpenCut integrates with these services:</p>
<ul className="list-disc space-y-2 pl-6">
<li>
- <strong>Google OAuth:</strong> For optional Google sign-in (governed
- by Google's privacy policy)
- </li>
- <li>
<strong>Vercel:</strong> For hosting and content delivery
</li>
<li>
@@ -216,8 +154,7 @@ export default function PrivacyPage() {
<h2 className="text-2xl font-semibold">Your Rights</h2>
<p>You have complete control over your data:</p>
<ul className="list-disc space-y-2 pl-6">
- <li>Delete your account and all associated data at any time</li>
- <li>Export your project data</li>
+ <li>No account is required to use OpenCut today</li>
<li>Clear local storage to remove all saved projects</li>
<li>Contact us with any privacy concerns</li>
</ul>
@@ -280,7 +217,7 @@ export default function PrivacyPage() {
<Separator />
<p className="text-muted-foreground text-sm">
- Last updated: July 14, 2025
+ Last updated: March 15, 2026
</p>
</BasePage>
);
diff --git a/apps/web/src/app/projects/page.tsx b/apps/web/src/app/projects/page.tsx
index c25d75b9..9618de27 100644
--- a/apps/web/src/app/projects/page.tsx
+++ b/apps/web/src/app/projects/page.tsx
@@ -7,6 +7,7 @@ import type { KeyboardEvent, MouseEvent } from "react";
import { useEffect, useState } from "react";
import { toast } from "sonner";
import { MigrationDialog } from "@/components/editor/dialogs/migration-dialog";
+import { StoragePersistenceDialog } from "@/components/editor/dialogs/storage-persistence-dialog";
import { Button } from "@/components/ui/button";
import { Card, CardContent } from "@/components/ui/card";
import { Checkbox } from "@/components/ui/checkbox";
@@ -18,7 +19,7 @@ import type {
TProjectMetadata,
TProjectSortKey,
TProjectSortOption,
-} from "@/types/project";
+} from "@/lib/project/types";
import { formatTimeCode } from "@/lib/time";
import { formatDate } from "@/utils/date";
import { HugeiconsIcon } from "@hugeicons/react";
@@ -86,6 +87,13 @@ const VIEW_MODE_OPTIONS = [
export default function ProjectsPage() {
const { searchQuery, sortKey, sortOrder, viewMode } = useProjectsStore();
const editor = useEditor();
+ const sortOption: TProjectSortOption = `${sortKey}-${sortOrder}`;
+
+ const isLoading = useEditor((e) => e.project.getIsLoading());
+ const isInitialized = useEditor((e) => e.project.getIsInitialized());
+ const projectsToDisplay = useEditor((e) =>
+ e.project.getFilteredAndSortedProjects({ searchQuery, sortOption }),
+ );
useEffect(() => {
if (!editor.project.getIsInitialized()) {
@@ -93,18 +101,10 @@ export default function ProjectsPage() {
}
}, [editor.project]);
- const sortOption: TProjectSortOption = `${sortKey}-${sortOrder}`;
- const projectsToDisplay = editor.project.getFilteredAndSortedProjects({
- searchQuery,
- sortOption,
- });
-
- const isLoading = editor.project.getIsLoading();
- const isInitialized = editor.project.getIsInitialized();
-
return (
<div className="bg-background min-h-screen">
<MigrationDialog />
+ <StoragePersistenceDialog />
<ProjectsHeader />
<ProjectsToolbar projectIds={projectsToDisplay.map((p) => p.id)} />
<main className="mx-auto px-4 pt-2 pb-6 flex flex-col gap-4">
diff --git a/apps/web/src/app/projects/store.ts b/apps/web/src/app/projects/store.ts
index 767f08df..2c79aa0a 100644
--- a/apps/web/src/app/projects/store.ts
+++ b/apps/web/src/app/projects/store.ts
@@ -1,6 +1,6 @@
import { create } from "zustand";
import { persist } from "zustand/middleware";
-import type { TProjectSortKey } from "@/types/project";
+import type { TProjectSortKey } from "@/lib/project/types";
export type ProjectsViewMode = "grid" | "list";
diff --git a/apps/web/src/app/terms/page.tsx b/apps/web/src/app/terms/page.tsx
index d5d43ba7..697a89ef 100644
--- a/apps/web/src/app/terms/page.tsx
+++ b/apps/web/src/app/terms/page.tsx
@@ -41,18 +41,17 @@ export default function TermsPage() {
</h3>
<ol className="list-decimal space-y-2 pl-6">
<li>
- Your content stays private - basic editing is local, AI features
- use encrypted uploads
+ Everything runs locally in your browser - nothing is ever
+ uploaded to our servers
</li>
<li>
- We never claim ownership of your content, even when processing
- AI features
+ We never claim ownership of your content
</li>
<li>
Free for personal and commercial use with no watermarks or
restrictions
</li>
- <li>Don't use OpenCut for illegal activities or harassment</li>
+ <li>You're responsible for how you use it - don't break the law</li>
<li>
Service provided "as is" - we can't guarantee perfect uptime
</li>
@@ -61,8 +60,7 @@ export default function TermsPage() {
needed
</li>
<li>
- You can delete your account anytime and keep using your exported
- videos
+ No account required - your exported videos are always yours
</li>
</ol>
<p className="mt-4">
@@ -81,21 +79,17 @@ export default function TermsPage() {
<section className="flex flex-col gap-3">
<h2 className="text-2xl font-semibold">Your Content, Your Rights</h2>
<p>
- <strong>You own everything you create.</strong> OpenCut processes
- basic editing locally on your device. For AI features, content is
- encrypted before upload and we cannot access your original files. We
- make no claims to ownership, licensing, or rights over your videos,
- projects, or any content you create using OpenCut.
+ <strong>You own everything you create.</strong> All editing and
+ processing happens locally on your device. We never see, store, or
+ have access to your files. We make no claims to ownership, licensing,
+ or rights over your videos, projects, or any content you create using
+ OpenCut.
</p>
<ul className="list-disc space-y-2 pl-6">
<li>
- Your content remains private and under your control at all times
+ Your content never leaves your device
</li>
<li>You retain all intellectual property rights to your content</li>
- <li>
- Even when using AI features, we cannot access your unencrypted
- content
- </li>
<li>You can export and use your content however you choose</li>
<li>No watermarks, no licensing restrictions from OpenCut</li>
</ul>
@@ -115,53 +109,26 @@ export default function TermsPage() {
</li>
</ul>
<p>
- <strong>What we ask:</strong> Don't use OpenCut for illegal
- activities, harassment, or creating harmful content. Be respectful of
- others and follow applicable laws.
+ You're responsible for how you use OpenCut and the content you create.
+ Don't use it for anything illegal in your jurisdiction.
</p>
</section>
<section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">
- AI Features and Data Processing
- </h2>
+ <h2 className="text-2xl font-semibold">AI Features</h2>
<p>
- OpenCut offers optional AI-powered features that require server
- processing:
- </p>
- <ul className="list-disc space-y-2 pl-6">
- <li>
- AI features (auto captions, content analysis, etc.) are completely
- optional
- </li>
- <li>Your content is encrypted on your device before any upload</li>
- <li>
- We use zero-knowledge encryption - we cannot decrypt your content
- </li>
- <li>Encrypted content is deleted immediately after processing</li>
- <li>
- You maintain full ownership and control of your content throughout
- </li>
- </ul>
- <p>
- By using AI features, you consent to the temporary, encrypted
- processing of your content as described in our Privacy Policy. You can
- always choose to use only local editing features.
+ AI features like auto captions run entirely in your browser using
+ on-device models. No content is uploaded to any server. These features
+ are optional - you can use OpenCut without them.
</p>
</section>
<section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">Account and Service</h2>
- <p>To use certain features, you may create an account:</p>
- <ul className="list-disc space-y-2 pl-6">
- <li>Provide accurate information when signing up</li>
- <li>Keep your account secure and don't share credentials</li>
- <li>You're responsible for activity under your account</li>
- <li>You can delete your account at any time</li>
- </ul>
+ <h2 className="text-2xl font-semibold">Service</h2>
<p>
- OpenCut is provided "as is" without warranties. While we strive for
- reliability, we can't guarantee uninterrupted service.
+ OpenCut does not currently require an account. The service is provided
+ "as is" without warranties. While we strive for reliability, we can't
+ guarantee uninterrupted service.
</p>
</section>
@@ -189,24 +156,6 @@ export default function TermsPage() {
</section>
<section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">Third-Party Content</h2>
- <p>
- When using OpenCut, make sure you have the right to use any content
- you import:
- </p>
- <ul className="list-disc space-y-2 pl-6">
- <li>Only upload content you own or have permission to use</li>
- <li>
- Respect copyright, trademarks, and other intellectual property
- </li>
- <li>
- Don't use copyrighted music, images, or videos without permission
- </li>
- <li>You're responsible for any claims related to your content</li>
- </ul>
- </section>
-
- <section className="flex flex-col gap-3">
<h2 className="text-2xl font-semibold">Limitations and Liability</h2>
<p>
OpenCut is provided free of charge. To the extent permitted by law:
@@ -239,13 +188,10 @@ export default function TermsPage() {
</section>
<section className="flex flex-col gap-3">
- <h2 className="text-2xl font-semibold">Termination</h2>
+ <h2 className="text-2xl font-semibold">Stopping Use</h2>
<p>You can stop using OpenCut at any time:</p>
<ul className="list-disc space-y-2 pl-6">
- <li>Delete your account through your profile settings</li>
<li>Clear your browser data to remove local projects</li>
- <li>Your content remains yours even if you stop using OpenCut</li>
- <li>We may suspend accounts for violations of these terms</li>
</ul>
</section>
@@ -288,7 +234,7 @@ export default function TermsPage() {
</section>
<Separator />
<p className="text-muted-foreground text-sm">
- Last updated: July 14, 2025
+ Last updated: March 15, 2026
</p>
</BasePage>
);
diff --git a/apps/web/src/components/editable-timecode.tsx b/apps/web/src/components/editable-timecode.tsx
index 61f23372..40390f07 100644
--- a/apps/web/src/components/editable-timecode.tsx
+++ b/apps/web/src/components/editable-timecode.tsx
@@ -2,7 +2,7 @@
import { useEffect, useRef, useState } from "react";
import { formatTimeCode, parseTimeCode } from "@/lib/time";
-import type { TTimeCode } from "@/types/time";
+import type { TTimeCode } from "@/lib/time";
import { cn } from "@/utils/ui";
interface EditableTimecodeProps {
@@ -66,16 +66,13 @@ export function EditableTimecode({
enterPressedRef.current = false;
};
- const handleKeyDown = ({
- key,
- preventDefault,
- }: React.KeyboardEvent<HTMLInputElement>) => {
- if (key === "Enter") {
- preventDefault();
+ const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
+ if (event.key === "Enter") {
+ event.preventDefault();
enterPressedRef.current = true;
applyEdit();
- } else if (key === "Escape") {
- preventDefault();
+ } else if (event.key === "Escape") {
+ event.preventDefault();
cancelEditing();
}
};
@@ -93,14 +90,13 @@ export function EditableTimecode({
}
};
- const handleDisplayKeyDown = ({
- key,
- preventDefault,
- }: React.KeyboardEvent<HTMLButtonElement>) => {
+ const handleDisplayKeyDown = (
+ event: React.KeyboardEvent<HTMLButtonElement>,
+ ) => {
if (disabled) return;
- if (key === "Enter" || key === " ") {
- preventDefault();
+ if (event.key === "Enter" || event.key === " ") {
+ event.preventDefault();
startEditing();
}
};
diff --git a/apps/web/src/components/editor/dialogs/project-info-dialog.tsx b/apps/web/src/components/editor/dialogs/project-info-dialog.tsx
index 7b736b23..42f99c79 100644
--- a/apps/web/src/components/editor/dialogs/project-info-dialog.tsx
+++ b/apps/web/src/components/editor/dialogs/project-info-dialog.tsx
@@ -6,7 +6,7 @@ import {
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
-import type { TProjectMetadata } from "@/types/project";
+import type { TProjectMetadata } from "@/lib/project/types";
import { formatDate } from "@/utils/date";
import { formatTimeCode } from "@/lib/time";
import { Button } from "@/components/ui/button";
diff --git a/apps/web/src/components/editor/dialogs/shortcuts-dialog.tsx b/apps/web/src/components/editor/dialogs/shortcuts-dialog.tsx
index 565fe705..9a353a1c 100644
--- a/apps/web/src/components/editor/dialogs/shortcuts-dialog.tsx
+++ b/apps/web/src/components/editor/dialogs/shortcuts-dialog.tsx
@@ -110,7 +110,7 @@ export function ShortcutsDialog({
<DialogTitle>Keyboard shortcuts</DialogTitle>
</DialogHeader>
- <DialogBody className="scrollbar-thin flex-grow overflow-y-auto">
+ <DialogBody className="scrollbar-thin grow overflow-y-auto">
<div className="flex flex-col gap-6">
{categories.map((category) => (
<div key={category} className="flex flex-col gap-1">
diff --git a/apps/web/src/components/editor/dialogs/storage-persistence-dialog.tsx b/apps/web/src/components/editor/dialogs/storage-persistence-dialog.tsx
new file mode 100644
index 00000000..d391928c
--- /dev/null
+++ b/apps/web/src/components/editor/dialogs/storage-persistence-dialog.tsx
@@ -0,0 +1,41 @@
+"use client";
+
+import { Button } from "@/components/ui/button";
+import {
+ Dialog,
+ DialogBody,
+ DialogContent,
+ DialogFooter,
+ DialogHeader,
+ DialogTitle,
+} from "@/components/ui/dialog";
+import { useStoragePersistence } from "@/hooks/use-storage-persistence";
+
+export function StoragePersistenceDialog() {
+ const { showDialog, onConfirm, onDismiss } = useStoragePersistence();
+
+ return (
+ <Dialog open={showDialog} onOpenChange={(open) => !open && onDismiss()}>
+ <DialogContent className="sm:max-w-md">
+ <DialogHeader>
+ <DialogTitle>Don't lose your projects</DialogTitle>
+ </DialogHeader>
+ <DialogBody>
+ <p className="text-base text-muted-foreground">
+ Your browser can automatically delete your projects when storage
+ runs low.
+ </p>
+ <p className="text-base text-muted-foreground">
+ Allow OpenCut to protect them?
+ </p>
+ </DialogBody>
+ <DialogFooter>
+ <Button variant="outline" onClick={onDismiss}>
+ Not now
+ </Button>
+ <Button onClick={onConfirm}>Allow</Button>
+ </DialogFooter>
+ </DialogContent>
+ </Dialog>
+ );
+}
diff --git a/apps/web/src/components/editor/editor-header.tsx b/apps/web/src/components/editor/editor-header.tsx
index 2dea73e2..8dd730b5 100644
--- a/apps/web/src/components/editor/editor-header.tsx
+++ b/apps/web/src/components/editor/editor-header.tsx
@@ -47,7 +47,7 @@ function ProjectDropdown() {
const [isExiting, setIsExiting] = useState(false);
const router = useRouter();
const editor = useEditor();
- const activeProject = editor.project.getActive();
+ const activeProject = useEditor((e) => e.project.getActive());
const handleExit = async () => {
if (isExiting) return;
@@ -136,7 +136,7 @@ function ProjectDropdown() {
<DropdownMenuSeparator />
- <DropdownMenuItem asChild icon={<FaDiscord className="!size-4" />}>
+ <DropdownMenuItem asChild icon={<FaDiscord className="size-4!" />}>
<Link
href={SOCIAL_LINKS.discord}
target="_blank"
@@ -169,7 +169,7 @@ function ProjectDropdown() {
function EditableProjectName() {
const editor = useEditor();
- const activeProject = editor.project.getActive();
+ const activeProject = useEditor((e) => e.project.getActive());
const [isEditing, setIsEditing] = useState(false);
const inputRef = useRef<HTMLInputElement>(null);
const originalNameRef = useRef("");
@@ -219,6 +219,7 @@ function EditableProjectName() {
event.preventDefault();
if (inputRef.current) {
inputRef.current.value = originalNameRef.current;
+ inputRef.current.setSelectionRange(0, 0);
}
setIsEditing(false);
inputRef.current?.blur();
diff --git a/apps/web/src/components/editor/export-button.tsx b/apps/web/src/components/editor/export-button.tsx
index ddf8308d..ec39e7e6 100644
--- a/apps/web/src/components/editor/export-button.tsx
+++ b/apps/web/src/components/editor/export-button.tsx
@@ -14,20 +14,24 @@ import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group";
import { Progress } from "@/components/ui/progress";
import { Checkbox } from "@/components/ui/checkbox";
import { cn } from "@/utils/ui";
-import { getExportMimeType, getExportFileExtension, downloadBuffer } from "@/lib/export";
+import {
+ getExportMimeType,
+ getExportFileExtension,
+ downloadBuffer,
+} from "@/lib/export";
import { Check, Copy, Download, RotateCcw } from "lucide-react";
import {
EXPORT_FORMAT_VALUES,
EXPORT_QUALITY_VALUES,
type ExportFormat,
type ExportQuality,
-} from "@/types/export";
+} from "@/lib/export";
import {
Section,
SectionContent,
SectionHeader,
SectionTitle,
-} from "@/components/editor/panels/properties/section";
+} from "@/components/section";
import { useEditor } from "@/hooks/use-editor";
import { DEFAULT_EXPORT_OPTIONS } from "@/constants/export-constants";
@@ -42,8 +46,8 @@ function isExportQuality(value: string): value is ExportQuality {
export function ExportButton() {
const [isExportPopoverOpen, setIsExportPopoverOpen] = useState(false);
const editor = useEditor();
-
- const hasProject = !!editor.project.getActiveOrNull();
+ const activeProject = useEditor((e) => e.project.getActiveOrNull());
+ const hasProject = !!activeProject;
const handlePopoverOpenChange = ({ open }: { open: boolean }) => {
if (!open) {
@@ -54,7 +58,10 @@ export function ExportButton() {
};
return (
- <Popover open={isExportPopoverOpen} onOpenChange={(open) => handlePopoverOpenChange({ open })}>
+ <Popover
+ open={isExportPopoverOpen}
+ onOpenChange={(open) => handlePopoverOpenChange({ open })}
+ >
<PopoverTrigger asChild>
<button
type="button"
@@ -91,9 +98,9 @@ function ExportPopover({
onOpenChange: (open: boolean) => void;
}) {
const editor = useEditor();
- const activeProject = editor.project.getActive();
- const { isExporting, progress, result: exportResult } =
- editor.project.getExportState();
+ const activeProject = useEditor((e) => e.project.getActive());
+ const exportState = useEditor((e) => e.project.getExportState());
+ const { isExporting, progress, result: exportResult } = exportState;
const [format, setFormat] = useState<ExportFormat>(
DEFAULT_EXPORT_OPTIONS.format,
);
@@ -109,10 +116,10 @@ function ExportPopover({
const result = await editor.project.export({
options: {
- format,
- quality,
- fps: activeProject.settings.fps,
- includeAudio: shouldIncludeAudio,
+ format,
+ quality,
+ fps: activeProject.settings.fps,
+ includeAudio: shouldIncludeAudio,
},
});
@@ -156,7 +163,11 @@ function ExportPopover({
{!isExporting && (
<>
<div className="flex flex-col">
- <Section collapsible defaultOpen={false} showTopBorder={false}>
+ <Section
+ collapsible
+ defaultOpen={false}
+ showTopBorder={false}
+ >
<SectionHeader>
<SectionTitle>Format</SectionTitle>
</SectionHeader>
@@ -228,10 +239,10 @@ function ExportPopover({
<div className="flex items-center space-x-2">
<Checkbox
id="include-audio"
- checked={shouldIncludeAudio}
- onCheckedChange={(checked) =>
- setShouldIncludeAudio(!!checked)
- }
+ checked={shouldIncludeAudio}
+ onCheckedChange={(checked) =>
+ setShouldIncludeAudio(!!checked)
+ }
/>
<Label htmlFor="include-audio">
Include audio in export
@@ -252,15 +263,15 @@ function ExportPopover({
{isExporting && (
<div className="space-y-4 p-3">
- <div className="flex flex-col gap-2">
- <div className="flex items-center justify-between text-center">
- <p className="text-muted-foreground text-sm">
- {Math.round(progress * 100)}%
- </p>
- <p className="text-muted-foreground text-sm">100%</p>
+ <div className="flex flex-col gap-2">
+ <div className="flex items-center justify-between text-center">
+ <p className="text-muted-foreground text-sm">
+ {Math.round(progress * 100)}%
+ </p>
+ <p className="text-muted-foreground text-sm">100%</p>
+ </div>
+ <Progress value={progress * 100} className="w-full" />
</div>
- <Progress value={progress * 100} className="w-full" />
- </div>
<Button
variant="outline"
diff --git a/apps/web/src/components/editor/mobile-gate.tsx b/apps/web/src/components/editor/mobile-gate.tsx
index 8fecf3cb..6483e438 100644
--- a/apps/web/src/components/editor/mobile-gate.tsx
+++ b/apps/web/src/components/editor/mobile-gate.tsx
@@ -36,7 +36,7 @@ export function MobileGate({ children }: MobileGateProps) {
};
return (
- <div className="dark bg-background relative flex h-screen w-screen flex-col overflow-hidden">
+ <div className="bg-background relative flex h-screen w-screen flex-col overflow-hidden">
<Button
variant="text"
className="absolute top-6 left-6 flex items-center gap-1 text-muted-foreground"
@@ -58,9 +58,7 @@ export function MobileGate({ children }: MobileGateProps) {
</p>
</div>
<div className="flex items-center gap-3">
- <Button onClick={handleContinue}>
- Take a look anyway
- </Button>
+ <Button onClick={handleContinue}>Take a look anyway</Button>
<Button variant="ghost" asChild>
<Link href="/roadmap" className="flex items-center gap-1">
Roadmap
diff --git a/apps/web/src/components/editor/panels/assets/drag-overlay.tsx b/apps/web/src/components/editor/panels/assets/drag-overlay.tsx
index c6b0861c..9d9ae903 100644
--- a/apps/web/src/components/editor/panels/assets/drag-overlay.tsx
+++ b/apps/web/src/components/editor/panels/assets/drag-overlay.tsx
@@ -29,7 +29,7 @@ export function MediaDragOverlay({
return (
<button
- className="bg-foreground/5 hover:bg-foreground/10 flex size-full flex-col items-center justify-center gap-4 rounded-lg p-8 text-center"
+ className="bg-foreground/5 hover:bg-foreground/10 flex flex-col items-center justify-center gap-4 rounded-lg p-8 text-center"
type="button"
disabled={isProcessing || !onClick}
onClick={(event) => handleClick({ event })}
diff --git a/apps/web/src/components/editor/panels/assets/draggable-item.tsx b/apps/web/src/components/editor/panels/assets/draggable-item.tsx
index fae74e84..8c9acce8 100644
--- a/apps/web/src/components/editor/panels/assets/draggable-item.tsx
+++ b/apps/web/src/components/editor/panels/assets/draggable-item.tsx
@@ -12,7 +12,7 @@ import {
} from "@/components/ui/tooltip";
import { useEditor } from "@/hooks/use-editor";
import { clearDragData, setDragData } from "@/lib/drag-data";
-import type { TimelineDragData } from "@/types/drag";
+import type { TimelineDragData } from "@/lib/timeline/drag";
import { cn } from "@/utils/ui";
export interface DraggableItemProps {
@@ -29,7 +29,6 @@ export interface DraggableItemProps {
isRounded?: boolean;
variant?: "card" | "compact";
isDraggable?: boolean;
- isHighlighted?: boolean;
}
export function DraggableItem({
@@ -46,13 +45,11 @@ export function DraggableItem({
isRounded = true,
variant = "card",
isDraggable = true,
- isHighlighted = false,
}: DraggableItemProps) {
const [isDragging, setIsDragging] = useState(false);
const [dragPosition, setDragPosition] = useState({ x: 0, y: 0 });
const dragRef = useRef<HTMLDivElement>(null);
const editor = useEditor();
- const highlightClassName = `ring-2 ring-primary bg-primary/10 ${isRounded ? "rounded-sm" : ""}`;
const handleAddToTimeline = () => {
onAddToTimeline?.({ currentTime: editor.playback.getCurrentTime() });
@@ -102,9 +99,8 @@ export function DraggableItem({
>
<div
className={cn(
- "relative flex h-auto w-full cursor-default flex-col gap-1 p-1",
+ "relative flex h-auto w-full cursor-default flex-col gap-1 p-",
className,
- isHighlighted && highlightClassName,
)}
>
<AspectRatio
@@ -144,15 +140,12 @@ export function DraggableItem({
) : (
<div
ref={dragRef}
- className={cn(
- "group relative w-full",
- isHighlighted && highlightClassName,
- )}
+ className={cn("group relative w-full", containerClassName)}
>
<button
type="button"
className={cn(
- "flex h-8 w-full cursor-default items-center gap-3 px-1",
+ "flex h-8 w-full cursor-default items-center gap-3 px-1 outline-none",
isDraggable && "[&::-webkit-drag-ghost]:opacity-0",
className,
)}
@@ -160,7 +153,7 @@ export function DraggableItem({
onDragStart={isDraggable ? handleDragStart : undefined}
onDragEnd={isDraggable ? handleDragEnd : undefined}
>
- <div className="size-6 flex-shrink-0 overflow-hidden rounded-[0.35rem]">
+ <div className="size-6 shrink-0 overflow-hidden rounded-sm">
{preview}
</div>
<span className="w-full flex-1 truncate text-sm text-left">
diff --git a/apps/web/src/components/editor/panels/assets/tabbar.tsx b/apps/web/src/components/editor/panels/assets/tabbar.tsx
index 61777a7c..a4e072f1 100644
--- a/apps/web/src/components/editor/panels/assets/tabbar.tsx
+++ b/apps/web/src/components/editor/panels/assets/tabbar.tsx
@@ -49,7 +49,7 @@ export function TabBar() {
<div className="relative flex">
<div
ref={scrollRef}
- className="scrollbar-hidden relative flex size-full p-2 flex-col items-center justify-start gap-1.5 overflow-y-auto"
+ className="scrollbar-hidden relative flex size-full p-1 flex-col items-center justify-start gap-0.5 overflow-y-auto"
>
{TAB_KEYS.map((tabKey) => {
const tab = tabs[tabKey];
@@ -57,12 +57,13 @@ export function TabBar() {
<Tooltip key={tabKey} delayDuration={10}>
<TooltipTrigger asChild>
<Button
- variant={activeTab === tabKey ? "secondary" : "text"}
+ variant={activeTab === tabKey ? "secondary" : "ghost"}
+ size="icon"
aria-label={tab.label}
className={cn(
- "flex-col !p-1.5 !rounded-sm !h-auto [&_svg]:size-4.5",
- activeTab !== tabKey &&
- "border border-transparent text-muted-foreground",
+ "shrink-0",
+ "h-8 w-8",
+ activeTab !== tabKey && "text-muted-foreground",
)}
onClick={() => setActiveTab(tabKey)}
>
@@ -102,8 +103,8 @@ function FadeOverlay({
className={cn(
"pointer-events-none absolute right-0 left-0 h-6",
direction === "top" && show
- ? "from-background top-0 bg-gradient-to-b to-transparent"
- : "from-background bottom-0 bg-gradient-to-t to-transparent",
+ ? "from-background top-0 bg-linear-to-b to-transparent"
+ : "from-background bottom-0 bg-linear-to-t to-transparent",
)}
/>
);
diff --git a/apps/web/src/components/editor/panels/assets/views/assets.tsx b/apps/web/src/components/editor/panels/assets/views/assets.tsx
index 3b35c022..e17e4d4a 100644
--- a/apps/web/src/components/editor/panels/assets/views/assets.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/assets.tsx
@@ -2,11 +2,11 @@
import Image from "next/image";
import { useMemo, useState } from "react";
-import { toast } from "sonner";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
+import { PanelView } from "@/components/editor/panels/assets/views/base-panel";
import { MediaDragOverlay } from "@/components/editor/panels/assets/drag-overlay";
import { DraggableItem } from "@/components/editor/panels/assets/draggable-item";
import { Button } from "@/components/ui/button";
+import { toast } from "sonner";
import {
ContextMenu,
ContextMenuContent,
@@ -28,8 +28,15 @@ import {
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { useEditor } from "@/hooks/use-editor";
import { useFileUpload } from "@/hooks/use-file-upload";
-import { useRevealItem } from "@/hooks/use-reveal-item";
+import { invokeAction } from "@/lib/actions";
import { processMediaAssets } from "@/lib/media/processing";
+import { showMediaUploadToast } from "@/lib/media/upload-toast";
+import {
+ SelectableItem,
+ SelectableSurface,
+ useSelection,
+ useSelectionScope,
+} from "@/lib/selection";
import { buildElementFromMedia } from "@/lib/timeline/element-utils";
import {
type MediaSortKey,
@@ -37,7 +44,8 @@ import {
type MediaViewMode,
useAssetsPanelStore,
} from "@/stores/assets-panel-store";
-import type { MediaAsset } from "@/types/assets";
+import { MASKABLE_ELEMENT_TYPES } from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
import { cn } from "@/utils/ui";
import {
CloudUploadIcon,
@@ -52,8 +60,8 @@ import { HugeiconsIcon, type IconSvgElement } from "@hugeicons/react";
export function MediaView() {
const editor = useEditor();
- const mediaFiles = editor.media.getAssets();
- const activeProject = editor.project.getActive();
+ const mediaFiles = useEditor((e) => e.media.getAssets());
+ const activeProject = useEditor((e) => e.project.getActive());
const {
mediaViewMode,
@@ -64,15 +72,11 @@ export function MediaView() {
mediaSortOrder,
setMediaSort,
} = useAssetsPanelStore();
- const { highlightedId, registerElement } = useRevealItem(
- highlightMediaId,
- clearHighlight,
- );
const [isProcessing, setIsProcessing] = useState(false);
const [progress, setProgress] = useState(0);
- const processFiles = async ({ files }: { files: FileList }) => {
+ const processFiles = async ({ files }: { files: File[] }) => {
if (!files || files.length === 0) return;
if (!activeProject) {
toast.error("No active project");
@@ -82,20 +86,28 @@ export function MediaView() {
setIsProcessing(true);
setProgress(0);
try {
- const processedAssets = await processMediaAssets({
- files,
- onProgress: (progress: { progress: number }) =>
- setProgress(progress.progress),
+ await showMediaUploadToast({
+ filesCount: files.length,
+ promise: async () => {
+ const processedAssets = await processMediaAssets({
+ files,
+ onProgress: (progress: { progress: number }) =>
+ setProgress(progress.progress),
+ });
+ for (const asset of processedAssets) {
+ await editor.media.addMediaAsset({
+ projectId: activeProject.metadata.id,
+ asset,
+ });
+ }
+ return {
+ uploadedCount: processedAssets.length,
+ assetNames: processedAssets.map((asset) => asset.name),
+ };
+ },
});
- for (const asset of processedAssets) {
- await editor.media.addMediaAsset({
- projectId: activeProject.metadata.id,
- asset,
- });
- }
} catch (error) {
console.error("Error processing files:", error);
- toast.error("Failed to process files");
} finally {
setIsProcessing(false);
setProgress(0);
@@ -109,23 +121,18 @@ export function MediaView() {
onFilesSelected: (files) => processFiles({ files }),
});
- const handleRemove = async ({
+ const handleRemove = ({
event,
- id,
+ ids,
}: {
event: React.MouseEvent;
- id: string;
+ ids: string[];
}) => {
event.stopPropagation();
- if (!activeProject) {
- toast.error("No active project");
- return;
- }
-
- await editor.media.removeMediaAsset({
+ invokeAction("remove-media-assets", {
projectId: activeProject.metadata.id,
- id,
+ assetIds: ids,
});
};
@@ -172,6 +179,9 @@ export function MediaView() {
return filtered;
}, [mediaFiles, mediaSortBy, mediaSortOrder]);
+ const orderedMediaIds = useMemo(() => {
+ return filteredMediaItems.map((item) => item.id);
+ }, [filteredMediaItems]);
return (
<>
@@ -191,6 +201,7 @@ export function MediaView() {
/>
}
className={cn(isDragOver && "bg-accent/30")}
+ contentClassName="h-full"
{...dragProps}
>
{isDragOver || filteredMediaItems.length === 0 ? (
@@ -201,29 +212,38 @@ export function MediaView() {
onClick={openFilePicker}
/>
) : (
- <MediaItemList
- items={filteredMediaItems}
- mode={mediaViewMode}
- onRemove={handleRemove}
- highlightedId={highlightedId}
- registerElement={registerElement}
- />
+ <SelectableSurface
+ ariaLabel="Assets"
+ orderedIds={orderedMediaIds}
+ revealId={highlightMediaId}
+ onRevealComplete={clearHighlight}
+ >
+ <MediaScopeRegistrar />
+ <MediaItemList
+ items={filteredMediaItems}
+ mode={mediaViewMode}
+ onRemove={handleRemove}
+ />
+ </SelectableSurface>
)}
</PanelView>
</>
);
}
+function MediaScopeRegistrar() {
+ useSelectionScope();
+ return null;
+}
+
function MediaAssetDraggable({
item,
preview,
- isHighlighted,
variant,
isRounded,
}: {
item: MediaAsset;
preview: React.ReactNode;
- isHighlighted: boolean;
variant: "card" | "compact";
isRounded?: boolean;
}) {
@@ -261,7 +281,7 @@ function MediaAssetDraggable({
mediaType: item.type,
name: item.name,
...(item.type !== "audio" && {
- targetElementTypes: ["video", "image"] as const,
+ targetElementTypes: [...MASKABLE_ELEMENT_TYPES],
}),
}}
shouldShowPlusOnDrag={false}
@@ -270,7 +290,6 @@ function MediaAssetDraggable({
}
variant={variant}
isRounded={isRounded}
- isHighlighted={isHighlighted}
/>
);
}
@@ -282,18 +301,31 @@ function MediaItemWithContextMenu({
}: {
item: MediaAsset;
children: React.ReactNode;
- onRemove: ({ event, id }: { event: React.MouseEvent; id: string }) => void;
+ onRemove: ({
+ event,
+ ids,
+ }: {
+ event: React.MouseEvent;
+ ids: string[];
+ }) => void;
}) {
+ const { isSelected, selectedIds } = useSelection();
+ const idsToDelete = isSelected(item.id) ? selectedIds : [item.id];
+ const deleteLabel =
+ idsToDelete.length > 1 ? `Delete ${idsToDelete.length} items` : "Delete";
+
return (
<ContextMenu>
- <ContextMenuTrigger>{children}</ContextMenuTrigger>
+ <ContextMenuTrigger asChild>{children}</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuItem>Export clips</ContextMenuItem>
<ContextMenuItem
variant="destructive"
- onClick={(event) => onRemove({ event, id: item.id })}
+ onClick={(event: React.MouseEvent<HTMLDivElement>) =>
+ onRemove({ event, ids: idsToDelete })
+ }
>
- Delete
+ {deleteLabel}
</ContextMenuItem>
</ContextMenuContent>
</ContextMenu>
@@ -304,27 +336,29 @@ function MediaItemList({
items,
mode,
onRemove,
- highlightedId,
- registerElement,
}: {
items: MediaAsset[];
mode: MediaViewMode;
- onRemove: ({ event, id }: { event: React.MouseEvent; id: string }) => void;
- highlightedId: string | null;
- registerElement: (id: string, element: HTMLElement | null) => void;
+ onRemove: ({
+ event,
+ ids,
+ }: {
+ event: React.MouseEvent;
+ ids: string[];
+ }) => void;
}) {
const isGrid = mode === "grid";
return (
<div
- className={cn(isGrid ? "grid gap-4" : "flex flex-col gap-1")}
+ className={cn(isGrid ? "grid gap-4" : "flex flex-col gap-1.5")}
style={
isGrid ? { gridTemplateColumns: "repeat(auto-fill, 7rem)" } : undefined
}
>
{items.map((item) => (
- <div key={item.id} ref={(element) => registerElement(item.id, element)}>
- <MediaItemWithContextMenu item={item} onRemove={onRemove}>
+ <MediaItemWithContextMenu item={item} onRemove={onRemove} key={item.id}>
+ <SelectableItem className={cn(!isGrid && "w-full")} id={item.id}>
<MediaAssetDraggable
item={item}
preview={
@@ -335,16 +369,15 @@ function MediaItemList({
}
variant={isGrid ? "card" : "compact"}
isRounded={isGrid ? false : undefined}
- isHighlighted={highlightedId === item.id}
/>
- </MediaItemWithContextMenu>
- </div>
+ </SelectableItem>
+ </MediaItemWithContextMenu>
))}
</div>
);
}
-export function formatDuration({ duration }: { duration: number }) {
+function formatDuration({ duration }: { duration: number }) {
const min = Math.floor(duration / 60);
const sec = Math.floor(duration % 60);
return `${min}:${sec.toString().padStart(2, "0")}`;
@@ -406,7 +439,7 @@ function MediaPreview({
if (item.type === "image") {
return (
- <div className="relative flex size-full items-center justify-center">
+ <div className="relative flex size-full items-center justify-center bg-muted">
<Image
src={item.url ?? ""}
alt={item.name}
diff --git a/apps/web/src/components/editor/panels/assets/views/base-view.tsx b/apps/web/src/components/editor/panels/assets/views/base-panel.tsx
index c613bc2a..0ece9b19 100644
--- a/apps/web/src/components/editor/panels/assets/views/base-view.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/base-panel.tsx
@@ -5,6 +5,7 @@ interface PanelViewProps extends React.HTMLAttributes<HTMLDivElement> {
actions?: React.ReactNode;
children: React.ReactNode;
contentClassName?: string;
+ scrollClassName?: string;
hideHeader?: boolean;
ref?: React.Ref<HTMLDivElement>;
onScroll?: React.UIEventHandler<HTMLDivElement>;
@@ -17,6 +18,7 @@ export function PanelView({
children,
className,
contentClassName,
+ scrollClassName,
hideHeader = false,
ref,
onScroll,
@@ -30,15 +32,18 @@ export function PanelView({
{...rest}
>
{!hideHeader && (
- <div className="bg-background h-11 shrink-0 px-4 pr-2 flex items-center justify-between border-b">
- <span className="text-muted-foreground text-sm">{title}</span>
+ <div className="bg-background h-11 shrink-0 pl-3 pr-2 flex items-center justify-between border-b">
+ {title && (
+ <span className="text-muted-foreground text-sm">{title}</span>
+ )}
{actions}
</div>
)}
<div
className={cn(
- "scrollbar-thin size-full overflow-y-auto",
+ "scrollbar-hidden size-full overflow-y-auto",
hideHeader ? "pt-4" : "pt-2",
+ scrollClassName,
)}
ref={scrollRef}
onScroll={onScroll}
diff --git a/apps/web/src/components/editor/panels/assets/views/captions.tsx b/apps/web/src/components/editor/panels/assets/views/captions.tsx
index a73fd693..023e1578 100644
--- a/apps/web/src/components/editor/panels/assets/views/captions.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/captions.tsx
@@ -1,5 +1,5 @@
import { Button } from "@/components/ui/button";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
+import { PanelView } from "@/components/editor/panels/assets/views/base-panel";
import {
Select,
SelectContent,
@@ -10,7 +10,6 @@ import {
import { useState, useRef } from "react";
import { extractTimelineAudio } from "@/lib/media/mediabunny";
import { useEditor } from "@/hooks/use-editor";
-import { DEFAULT_TEXT_ELEMENT } from "@/constants/text-constants";
import {
DEFAULT_TRANSCRIPTION_SAMPLE_RATE,
TRANSCRIPTION_LANGUAGES,
@@ -18,12 +17,23 @@ import {
import type {
TranscriptionLanguage,
TranscriptionProgress,
-} from "@/types/transcription";
+} from "@/lib/transcription/types";
import { transcriptionService } from "@/services/transcription/service";
import { decodeAudioToFloat32 } from "@/lib/media/audio";
import { buildCaptionChunks } from "@/lib/transcription/caption";
import { Spinner } from "@/components/ui/spinner";
-import { Label } from "@/components/ui/label";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+} from "@/components/section";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import {
+ AddTrackCommand,
+ BatchCommand,
+ InsertElementCommand,
+} from "@/lib/commands";
export function Captions() {
const [selectedLanguage, setSelectedLanguage] =
@@ -69,26 +79,29 @@ export function Captions() {
setProcessingStep("Generating captions...");
const captionChunks = buildCaptionChunks({ segments: result.segments });
- const captionTrackId = editor.timeline.addTrack({
- type: "text",
- index: 0,
- });
+ const addTrackCommand = new AddTrackCommand("text", 0);
+ const insertCommands = captionChunks.map(
+ (caption, i) =>
+ new InsertElementCommand({
+ placement: {
+ mode: "explicit",
+ trackId: addTrackCommand.getTrackId(),
+ },
+ element: {
+ ...DEFAULTS.text.element,
+ name: `Caption ${i + 1}`,
+ content: caption.text,
+ duration: caption.duration,
+ startTime: caption.startTime,
+ fontSize: 65,
+ fontWeight: "bold",
+ },
+ }),
+ );
- for (let i = 0; i < captionChunks.length; i++) {
- const caption = captionChunks[i];
- editor.timeline.insertElement({
- placement: { mode: "explicit", trackId: captionTrackId },
- element: {
- ...DEFAULT_TEXT_ELEMENT,
- name: `Caption ${i + 1}`,
- content: caption.text,
- duration: caption.duration,
- startTime: caption.startTime,
- fontSize: 65,
- fontWeight: "bold",
- },
- });
- }
+ editor.command.execute({
+ command: new BatchCommand([addTrackCommand, ...insertCommands]),
+ });
} catch (error) {
console.error("Transcription failed:", error);
setError(
@@ -114,43 +127,53 @@ export function Captions() {
};
return (
- <PanelView title="Captions" ref={containerRef}>
- <div className="flex flex-col gap-3">
- <Label>Language</Label>
- <Select
- value={selectedLanguage}
- onValueChange={(value) => handleLanguageChange({ value })}
- >
- <SelectTrigger>
- <SelectValue placeholder="Select a language" />
- </SelectTrigger>
- <SelectContent>
- <SelectItem value="auto">Auto detect</SelectItem>
- {TRANSCRIPTION_LANGUAGES.map((language) => (
- <SelectItem key={language.code} value={language.code}>
- {language.name}
- </SelectItem>
- ))}
- </SelectContent>
- </Select>
- </div>
-
- <div className="flex flex-col gap-4">
- {error && (
- <div className="bg-destructive/10 border-destructive/20 rounded-md border p-3">
- <p className="text-destructive text-sm">{error}</p>
- </div>
- )}
+ <PanelView
+ title="Captions"
+ contentClassName="px-0 flex flex-col h-full"
+ ref={containerRef}
+ >
+ <Section showTopBorder={false} showBottomBorder={false} className="flex-1">
+ <SectionContent className="flex flex-col gap-4 h-full pt-1">
+ <SectionFields>
+ <SectionField label="Language">
+ <Select
+ value={selectedLanguage}
+ onValueChange={(value) => handleLanguageChange({ value })}
+ >
+ <SelectTrigger>
+ <SelectValue placeholder="Select a language" />
+ </SelectTrigger>
+ <SelectContent>
+ <SelectItem value="auto">Auto detect</SelectItem>
+ {TRANSCRIPTION_LANGUAGES.map((language) => (
+ <SelectItem key={language.code} value={language.code}>
+ {language.name}
+ </SelectItem>
+ ))}
+ </SelectContent>
+ </Select>
+ </SectionField>
+ </SectionFields>
- <Button
- className="w-full"
- onClick={handleGenerateTranscript}
- disabled={isProcessing}
- >
- {isProcessing && <Spinner className="mr-1" />}
- {isProcessing ? processingStep : "Generate transcript"}
- </Button>
- </div>
+ {error && (
+ <div className="bg-destructive/10 border-destructive/20 rounded-md border p-3">
+ <p className="text-destructive text-sm">{error}</p>
+ </div>
+ )}
+ </SectionContent>
+ </Section>
+ <Section showBottomBorder={false} showTopBorder={false}>
+ <SectionContent>
+ <Button
+ className="w-full"
+ onClick={handleGenerateTranscript}
+ disabled={isProcessing}
+ >
+ {isProcessing && <Spinner className="mr-1" />}
+ {isProcessing ? processingStep : "Generate transcript"}
+ </Button>
+ </SectionContent>
+ </Section>
</PanelView>
);
}
diff --git a/apps/web/src/components/editor/panels/assets/views/effects.tsx b/apps/web/src/components/editor/panels/assets/views/effects.tsx
index c9b8b2dd..74128df6 100644
--- a/apps/web/src/components/editor/panels/assets/views/effects.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/effects.tsx
@@ -1,19 +1,16 @@
"use client";
import { useEffect, useRef, useCallback } from "react";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
+import { PanelView } from "@/components/editor/panels/assets/views/base-panel";
import { DraggableItem } from "@/components/editor/panels/assets/draggable-item";
-import { getAllEffects, EFFECT_TARGET_ELEMENT_TYPES } from "@/lib/effects";
-import {
- effectPreviewService,
- onPreviewImageReady,
-} from "@/services/renderer/effect-preview";
+import { effectsRegistry, EFFECT_TARGET_ELEMENT_TYPES } from "@/lib/effects";
+import { effectPreviewService } from "@/services/renderer/effect-preview";
import { useEditor } from "@/hooks/use-editor";
import { buildEffectElement } from "@/lib/timeline/element-utils";
-import type { EffectDefinition } from "@/types/effects";
+import type { EffectDefinition } from "@/lib/effects/types";
export function EffectsView() {
- const effects = getAllEffects();
+ const effects = effectsRegistry.getAll();
return (
<PanelView title="Effects">
@@ -50,7 +47,7 @@ function EffectPreviewCanvas({ effectType }: { effectType: string }) {
};
render();
- return onPreviewImageReady({ callback: render });
+ return effectPreviewService.onPreviewImageReady({ callback: render });
}, [effectType]);
return <canvas ref={canvasRef} className="size-full" />;
diff --git a/apps/web/src/components/editor/panels/assets/views/settings-legacy.tsx b/apps/web/src/components/editor/panels/assets/views/settings-legacy.tsx
deleted file mode 100644
index 457c08a9..00000000
--- a/apps/web/src/components/editor/panels/assets/views/settings-legacy.tsx
+++ /dev/null
@@ -1,332 +0,0 @@
-// @ts-nocheck
-
-"use client";
-
-import Image from "next/image";
-import { memo, useCallback, useMemo } from "react";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
-import {
- BLUR_INTENSITY_PRESETS,
- DEFAULT_BLUR_INTENSITY,
- DEFAULT_COLOR,
- FPS_PRESETS,
-} from "@/constants/project-constants";
-import { patternCraftGradients } from "@/data/colors/pattern-craft";
-import { colors } from "@/data/colors/solid";
-import { syntaxUIGradients } from "@/data/colors/syntax-ui";
-import { useEditor } from "@/hooks/use-editor";
-import { useEditorStore } from "@/stores/editor-store";
-import { dimensionToAspectRatio } from "@/utils/geometry";
-import { cn } from "@/utils/ui";
-import {
- PropertyGroup,
- PropertyItem,
- PropertyItemLabel,
- PropertyItemValue,
-} from "@/components/editor/panels/properties/section";
-
-export function SettingsView() {
- return (
- <PanelView title="Project settings" contentClassName="px-0">
- <div className="flex flex-col gap-8">
- <ProjectInfoView />
- <BackgroundView />
- </div>
- </PanelView>
- );
-}
-
-function ProjectInfoView() {
- const editor = useEditor();
- const activeProject = editor.project.getActive();
- const { canvasPresets } = useEditorStore();
-
- const findPresetIndexByAspectRatio = ({
- presets,
- targetAspectRatio,
- }: {
- presets: Array<{ width: number; height: number }>;
- targetAspectRatio: string;
- }) => {
- for (let index = 0; index < presets.length; index++) {
- const preset = presets[index];
- const presetAspectRatio = dimensionToAspectRatio({
- width: preset.width,
- height: preset.height,
- });
- if (presetAspectRatio === targetAspectRatio) {
- return index;
- }
- }
- return -1;
- };
-
- const currentCanvasSize = activeProject.settings.canvasSize;
- const currentAspectRatio = dimensionToAspectRatio(currentCanvasSize);
- const originalCanvasSize = activeProject.settings.originalCanvasSize ?? null;
- const presetIndex = findPresetIndexByAspectRatio({
- presets: canvasPresets,
- targetAspectRatio: currentAspectRatio,
- });
- const originalPresetValue = "original";
- const selectedPresetValue =
- presetIndex !== -1 ? presetIndex.toString() : originalPresetValue;
-
- const handleAspectRatioChange = ({ value }: { value: string }) => {
- if (value === originalPresetValue) {
- const canvasSize = originalCanvasSize ?? currentCanvasSize;
- editor.project.updateSettings({
- settings: { canvasSize },
- });
- return;
- }
- const index = parseInt(value, 10);
- const preset = canvasPresets[index];
- if (preset) {
- editor.project.updateSettings({ settings: { canvasSize: preset } });
- }
- };
-
- const handleFpsChange = (value: string) => {
- const fps = parseFloat(value);
- editor.project.updateSettings({ settings: { fps } });
- };
-
- return (
- <div className="flex flex-col gap-4">
- <PropertyItem direction="column">
- <PropertyItemLabel>Name</PropertyItemLabel>
- <PropertyItemValue>{activeProject.metadata.name}</PropertyItemValue>
- </PropertyItem>
-
- <PropertyItem direction="column">
- <PropertyItemLabel>Aspect ratio</PropertyItemLabel>
- <PropertyItemValue>
- <Select
- value={selectedPresetValue}
- onValueChange={(value) => handleAspectRatioChange({ value })}
- >
- <SelectTrigger>
- <SelectValue placeholder="Select an aspect ratio" />
- </SelectTrigger>
- <SelectContent>
- <SelectItem value={originalPresetValue}>Original</SelectItem>
- {canvasPresets.map((preset, index) => {
- const label = dimensionToAspectRatio({
- width: preset.width,
- height: preset.height,
- });
- return (
- <SelectItem key={label} value={index.toString()}>
- {label}
- </SelectItem>
- );
- })}
- </SelectContent>
- </Select>
- </PropertyItemValue>
- </PropertyItem>
-
- <PropertyItem direction="column">
- <PropertyItemLabel>Frame rate</PropertyItemLabel>
- <PropertyItemValue>
- <Select
- value={activeProject.settings.fps.toString()}
- onValueChange={handleFpsChange}
- >
- <SelectTrigger>
- <SelectValue placeholder="Select a frame rate" />
- </SelectTrigger>
- <SelectContent>
- {FPS_PRESETS.map((preset) => (
- <SelectItem key={preset.value} value={preset.value}>
- {preset.label}
- </SelectItem>
- ))}
- </SelectContent>
- </Select>
- </PropertyItemValue>
- </PropertyItem>
- </div>
- );
-}
-
-const BlurPreview = memo(
- ({
- blur,
- isSelected,
- onSelect,
- }: {
- blur: { label: string; value: number };
- isSelected: boolean;
- onSelect: () => void;
- }) => (
- <button
- className={cn(
- "border-foreground/15 hover:border-primary relative aspect-square size-20 cursor-pointer overflow-hidden rounded-sm border",
- isSelected && "border-primary border-2",
- )}
- onClick={onSelect}
- type="button"
- aria-label={`Select ${blur.label} blur`}
- >
- <Image
- src="https://images.unsplash.com/photo-1501785888041-af3ef285b470?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
- alt={`Blur preview ${blur.label}`}
- fill
- className="object-cover"
- style={{ filter: `blur(${blur.value}px)` }}
- loading="eager"
- />
- <div className="absolute right-1 bottom-1 left-1 text-center">
- <span className="rounded bg-black/50 px-1 text-xs text-white">
- {blur.label}
- </span>
- </div>
- </button>
- ),
-);
-
-BlurPreview.displayName = "BlurPreview";
-
-const BackgroundPreviews = memo(
- ({
- backgrounds,
- currentBackgroundColor,
- isColorBackground,
- handleColorSelect,
- useBackgroundColor = false,
- }: {
- backgrounds: string[];
- currentBackgroundColor: string;
- isColorBackground: boolean;
- handleColorSelect: ({ bg }: { bg: string }) => void;
- useBackgroundColor?: boolean;
- }) => {
- return useMemo(
- () =>
- backgrounds.map((bg, index) => (
- <button
- key={`${index}-${bg}`}
- className={cn(
- "border-foreground/15 hover:border-primary aspect-square size-20 cursor-pointer rounded-sm border",
- isColorBackground &&
- bg === currentBackgroundColor &&
- "border-primary border-2",
- )}
- style={
- useBackgroundColor
- ? { backgroundColor: bg }
- : {
- background: bg,
- backgroundSize: "cover",
- backgroundPosition: "center",
- backgroundRepeat: "no-repeat",
- }
- }
- onClick={() => handleColorSelect({ bg })}
- type="button"
- aria-label={`Select background ${useBackgroundColor ? bg : index + 1}`}
- />
- )),
- [
- backgrounds,
- isColorBackground,
- currentBackgroundColor,
- handleColorSelect,
- useBackgroundColor,
- ],
- );
- },
-);
-
-BackgroundPreviews.displayName = "BackgroundPreviews";
-
-function BackgroundView() {
- const editor = useEditor();
- const activeProject = editor.project.getActive();
- const blurLevels = useMemo(() => BLUR_INTENSITY_PRESETS, []);
-
- const handleBlurSelect = useCallback(
- async ({ blurIntensity }: { blurIntensity: number }) => {
- await editor.project.updateSettings({
- settings: { background: { type: "blur", blurIntensity } },
- });
- },
- [editor.project],
- );
-
- const handleColorSelect = useCallback(
- async ({ color }: { color: string }) => {
- await editor.project.updateSettings({
- settings: { background: { type: "color", color } },
- });
- },
- [editor.project],
- );
-
- const currentBlurIntensity =
- activeProject.settings.background.type === "blur"
- ? activeProject.settings.background.blurIntensity
- : DEFAULT_BLUR_INTENSITY;
-
- const currentBackgroundColor =
- activeProject.settings.background.type === "color"
- ? activeProject.settings.background.color
- : DEFAULT_COLOR;
-
- const isBlurBackground = activeProject.settings.background.type === "blur";
- const isColorBackground = activeProject.settings.background.type === "color";
-
- const blurPreviews = useMemo(
- () =>
- blurLevels.map((blur) => (
- <BlurPreview
- key={blur.value}
- blur={blur}
- isSelected={isBlurBackground && currentBlurIntensity === blur.value}
- onSelect={() => handleBlurSelect({ blurIntensity: blur.value })}
- />
- )),
- [blurLevels, isBlurBackground, currentBlurIntensity, handleBlurSelect],
- );
-
- const backgroundSections = [
- { title: "Colors", backgrounds: colors, useBackgroundColor: true },
- { title: "Pattern craft", backgrounds: patternCraftGradients },
- { title: "Syntax UI", backgrounds: syntaxUIGradients },
- ];
-
- return (
- <div className="flex flex-col">
- <PropertyGroup title="Blur" hasBorderTop={false} defaultExpanded={false}>
- <div className="flex flex-wrap gap-2">{blurPreviews}</div>
- </PropertyGroup>
-
- {backgroundSections.map((section) => (
- <PropertyGroup
- key={section.title}
- title={section.title}
- defaultExpanded={false}
- >
- <div className="flex flex-wrap gap-2">
- <BackgroundPreviews
- backgrounds={section.backgrounds}
- currentBackgroundColor={currentBackgroundColor}
- isColorBackground={isColorBackground}
- handleColorSelect={({ bg }) => handleColorSelect({ color: bg })}
- useBackgroundColor={section.useBackgroundColor}
- />
- </div>
- </PropertyGroup>
- ))}
- </div>
- );
-}
diff --git a/apps/web/src/components/editor/panels/assets/views/settings.tsx b/apps/web/src/components/editor/panels/assets/views/settings.tsx
deleted file mode 100644
index d46e9d1f..00000000
--- a/apps/web/src/components/editor/panels/assets/views/settings.tsx
+++ /dev/null
@@ -1,168 +0,0 @@
-"use client";
-
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
-import { FPS_PRESETS } from "@/constants/project-constants";
-import { useEditor } from "@/hooks/use-editor";
-import { useEditorStore } from "@/stores/editor-store";
-import { dimensionToAspectRatio } from "@/utils/geometry";
-import {
- Section,
- SectionContent,
- SectionHeader,
- SectionTitle,
-} from "@/components/editor/panels/properties/section";
-import { Label } from "@/components/ui/label";
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/components/ui/popover";
-
-const ORIGINAL_PRESET_VALUE = "original";
-
-export function findPresetIndexByAspectRatio({
- presets,
- targetAspectRatio,
-}: {
- presets: Array<{ width: number; height: number }>;
- targetAspectRatio: string;
-}) {
- for (let index = 0; index < presets.length; index++) {
- const preset = presets[index];
- const presetAspectRatio = dimensionToAspectRatio({
- width: preset.width,
- height: preset.height,
- });
- if (presetAspectRatio === targetAspectRatio) {
- return index;
- }
- }
- return -1;
-}
-
-export function SettingsView() {
- return (
- <PanelView contentClassName="px-0" hideHeader>
- <div className="flex flex-col">
- <Section showTopBorder={false}>
- <SectionContent>
- <ProjectInfoContent />
- </SectionContent>
- </Section>
- <Popover>
- <Section className="cursor-pointer">
- <PopoverTrigger asChild>
- <div>
- <SectionHeader
- trailing={<div className="size-4 rounded-sm bg-red-500" />}
- >
- <SectionTitle>Background</SectionTitle>
- </SectionHeader>
- </div>
- </PopoverTrigger>
- </Section>
- <PopoverContent>
- <div className="size-4 rounded-sm bg-red-500" />
- </PopoverContent>
- </Popover>
- </div>
- </PanelView>
- );
-}
-
-function ProjectInfoContent() {
- const editor = useEditor();
- const activeProject = editor.project.getActive();
- const { canvasPresets } = useEditorStore();
-
- const currentCanvasSize = activeProject.settings.canvasSize;
- const currentAspectRatio = dimensionToAspectRatio(currentCanvasSize);
- const originalCanvasSize = activeProject.settings.originalCanvasSize ?? null;
- const presetIndex = findPresetIndexByAspectRatio({
- presets: canvasPresets,
- targetAspectRatio: currentAspectRatio,
- });
- const selectedPresetValue =
- presetIndex !== -1 ? presetIndex.toString() : ORIGINAL_PRESET_VALUE;
-
- const handleAspectRatioChange = ({ value }: { value: string }) => {
- if (value === ORIGINAL_PRESET_VALUE) {
- const canvasSize = originalCanvasSize ?? currentCanvasSize;
- editor.project.updateSettings({
- settings: { canvasSize },
- });
- return;
- }
- const index = parseInt(value, 10);
- const preset = canvasPresets[index];
- if (preset) {
- editor.project.updateSettings({ settings: { canvasSize: preset } });
- }
- };
-
- const handleFpsChange = ({ value }: { value: string }) => {
- const fps = parseFloat(value);
- editor.project.updateSettings({ settings: { fps } });
- };
-
- return (
- <div className="flex flex-col gap-4">
- <div className="flex flex-col gap-2">
- <Label>Name</Label>
- <span className="leading-none text-sm">
- {activeProject.metadata.name}
- </span>
- </div>
- <div className="flex flex-col gap-2">
- <Label>Aspect ratio</Label>
- <Select
- value={selectedPresetValue}
- onValueChange={(value) => handleAspectRatioChange({ value })}
- >
- <SelectTrigger className="w-fit">
- <SelectValue placeholder="Select an aspect ratio" />
- </SelectTrigger>
- <SelectContent>
- <SelectItem value={ORIGINAL_PRESET_VALUE}>Original</SelectItem>
- {canvasPresets.map((preset, index) => {
- const label = dimensionToAspectRatio({
- width: preset.width,
- height: preset.height,
- });
- return (
- <SelectItem key={label} value={index.toString()}>
- {label}
- </SelectItem>
- );
- })}
- </SelectContent>
- </Select>
- </div>
- <div className="flex flex-col gap-2">
- <Label>Frame rate</Label>
- <Select
- value={activeProject.settings.fps.toString()}
- onValueChange={(value) => handleFpsChange({ value })}
- >
- <SelectTrigger className="w-fit">
- <SelectValue placeholder="Select a frame rate" />
- </SelectTrigger>
- <SelectContent>
- {FPS_PRESETS.map((preset) => (
- <SelectItem key={preset.value} value={preset.value}>
- {preset.label}
- </SelectItem>
- ))}
- </SelectContent>
- </Select>
- </div>
- </div>
- );
-}
diff --git a/apps/web/src/components/editor/panels/assets/views/settings/background.tsx b/apps/web/src/components/editor/panels/assets/views/settings/background.tsx
new file mode 100644
index 00000000..b3ef1eb1
--- /dev/null
+++ b/apps/web/src/components/editor/panels/assets/views/settings/background.tsx
@@ -0,0 +1,227 @@
+"use client";
+
+import { memo, useCallback, useEffect, useMemo, useRef } from "react";
+import {
+ Section,
+ SectionContent,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import {
+ BLUR_INTENSITY_PRESETS,
+ DEFAULT_BLUR_INTENSITY,
+ DEFAULT_COLOR,
+} from "@/constants/project-constants";
+import { patternCraftGradients } from "@/data/colors/pattern-craft";
+import { colors } from "@/data/colors/solid";
+import { syntaxUIGradients } from "@/data/colors/syntax-ui";
+import { useEditor } from "@/hooks/use-editor";
+import { effectPreviewService } from "@/services/renderer/effect-preview";
+import type { TCanvasSize } from "@/lib/project/types";
+import { cn } from "@/utils/ui";
+
+const BlurPreview = memo(
+ ({
+ blur,
+ canvasSize,
+ isSelected,
+ onSelect,
+ }: {
+ blur: { label: string; value: number };
+ canvasSize: TCanvasSize;
+ isSelected: boolean;
+ onSelect: () => void;
+ }) => {
+ const canvasRef = useRef<HTMLCanvasElement>(null);
+ const { width, height } = canvasSize;
+
+ useEffect(() => {
+ const renderPreview = () => {
+ if (!canvasRef.current) return;
+
+ effectPreviewService.renderPreview({
+ effectType: "blur",
+ params: { intensity: blur.value },
+ targetCanvas: canvasRef.current,
+ uniformDimensions: { width, height },
+ });
+ };
+
+ renderPreview();
+ return effectPreviewService.onPreviewImageReady({ callback: renderPreview });
+ }, [blur.value, width, height]);
+
+ return (
+ <button
+ className={cn(
+ "border-foreground/15 hover:border-primary relative aspect-square size-20 cursor-pointer overflow-hidden rounded-sm border",
+ isSelected && "border-primary border-2",
+ )}
+ onClick={onSelect}
+ type="button"
+ aria-label={`Select ${blur.label} blur`}
+ >
+ <canvas
+ ref={canvasRef}
+ className="absolute inset-0 h-full w-full object-cover"
+ />
+ <div className="absolute right-1 bottom-1 left-1 text-center">
+ <span className="rounded bg-black/50 px-1 text-xs text-white">
+ {blur.label}
+ </span>
+ </div>
+ </button>
+ );
+ },
+);
+
+BlurPreview.displayName = "BlurPreview";
+
+const BackgroundPreviews = memo(
+ ({
+ backgrounds,
+ currentBackgroundColor,
+ isColorBackground,
+ onSelect,
+ useBackgroundColor = false,
+ }: {
+ backgrounds: string[];
+ currentBackgroundColor: string;
+ isColorBackground: boolean;
+ onSelect: (bg: string) => void;
+ useBackgroundColor?: boolean;
+ }) => {
+ return useMemo(
+ () =>
+ backgrounds.map((bg) => (
+ <button
+ key={bg}
+ className={cn(
+ "border-foreground/15 hover:border-primary aspect-square size-20 cursor-pointer rounded-sm border",
+ isColorBackground &&
+ bg === currentBackgroundColor &&
+ "border-primary border-2",
+ )}
+ style={
+ useBackgroundColor
+ ? { backgroundColor: bg }
+ : {
+ background: bg,
+ backgroundSize: "cover",
+ backgroundPosition: "center",
+ backgroundRepeat: "no-repeat",
+ }
+ }
+ onClick={() => onSelect(bg)}
+ type="button"
+ aria-label={`Select background ${bg}`}
+ />
+ )),
+ [
+ backgrounds,
+ isColorBackground,
+ currentBackgroundColor,
+ onSelect,
+ useBackgroundColor,
+ ],
+ );
+ },
+);
+
+BackgroundPreviews.displayName = "BackgroundPreviews";
+
+const COLOR_SECTIONS = [
+ { title: "Colors", backgrounds: colors, useBackgroundColor: true },
+ { title: "Pattern craft", backgrounds: patternCraftGradients },
+ { title: "Syntax UI", backgrounds: syntaxUIGradients },
+] as const;
+
+export function BackgroundContent() {
+ const editor = useEditor();
+ const activeProject = useEditor((e) => e.project.getActive());
+
+ const handleBlurSelect = useCallback(
+ async (blurIntensity: number) => {
+ await editor.project.updateSettings({
+ settings: { background: { type: "blur", blurIntensity } },
+ });
+ },
+ [editor.project],
+ );
+
+ const handleColorSelect = useCallback(
+ async (color: string) => {
+ await editor.project.updateSettings({
+ settings: { background: { type: "color", color } },
+ });
+ },
+ [editor.project],
+ );
+
+ const isBlurBackground = activeProject.settings.background.type === "blur";
+ const isColorBackground = activeProject.settings.background.type === "color";
+
+ const currentBlurIntensity = isBlurBackground
+ ? (activeProject.settings.background as { blurIntensity: number })
+ .blurIntensity
+ : DEFAULT_BLUR_INTENSITY;
+
+ const currentBackgroundColor = isColorBackground
+ ? (activeProject.settings.background as { color: string }).color
+ : DEFAULT_COLOR;
+ const canvasSize = activeProject.settings.canvasSize;
+
+ const blurPreviews = useMemo(
+ () =>
+ BLUR_INTENSITY_PRESETS.map((blur) => (
+ <BlurPreview
+ key={blur.value}
+ blur={blur}
+ canvasSize={canvasSize}
+ isSelected={isBlurBackground && currentBlurIntensity === blur.value}
+ onSelect={() => handleBlurSelect(blur.value)}
+ />
+ )),
+ [canvasSize, isBlurBackground, currentBlurIntensity, handleBlurSelect],
+ );
+
+ return (
+ <div className="flex flex-col">
+ <Section collapsible defaultOpen={true} sectionKey="background-blur" showTopBorder={false}>
+ <SectionHeader>
+ <SectionTitle>Blur</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <div className="flex flex-wrap gap-2">{blurPreviews}</div>
+ </SectionContent>
+ </Section>
+ {COLOR_SECTIONS.map((section) => (
+ <Section
+ key={section.title}
+ collapsible
+ defaultOpen={false}
+ sectionKey={`settings:background-${section.title.toLowerCase().replace(/\s+/g, "-")}`}
+ >
+ <SectionHeader>
+ <SectionTitle>{section.title}</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <div className="flex flex-wrap gap-2">
+ <BackgroundPreviews
+ backgrounds={section.backgrounds as string[]}
+ currentBackgroundColor={currentBackgroundColor}
+ isColorBackground={isColorBackground}
+ onSelect={handleColorSelect}
+ useBackgroundColor={
+ "useBackgroundColor" in section
+ ? section.useBackgroundColor
+ : false
+ }
+ />
+ </div>
+ </SectionContent>
+ </Section>
+ ))}
+ </div>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/assets/views/settings/index.tsx b/apps/web/src/components/editor/panels/assets/views/settings/index.tsx
new file mode 100644
index 00000000..e0229ea9
--- /dev/null
+++ b/apps/web/src/components/editor/panels/assets/views/settings/index.tsx
@@ -0,0 +1,369 @@
+"use client";
+
+import { useRef, useState } from "react";
+import { PanelView } from "@/components/editor/panels/assets/views/base-panel";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import { FPS_PRESETS } from "@/constants/project-constants";
+import { useEditor } from "@/hooks/use-editor";
+import {
+ Section,
+ SectionContent,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { BackgroundContent } from "./background";
+import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { Button } from "@/components/ui/button";
+import { NumberField } from "@/components/ui/number-field";
+import { useEditorStore } from "@/stores/editor-store";
+import { usePropertyDraft } from "@/components/editor/panels/properties/hooks/use-property-draft";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { Tick02Icon } from "@hugeicons/core-free-icons";
+import { cn } from "@/utils/ui";
+import { dimensionToAspectRatio } from "@/utils/geometry";
+import { formatNumberForDisplay } from "@/utils/math";
+import { OcSquarePlusIcon } from "@opencut/ui/icons";
+import type { TCanvasSize } from "@/lib/project/types";
+
+type SettingsView = "project-info" | "background";
+
+const PRESET_LABELS: Record<string, string> = {
+ "1:1": "1:1",
+ "16:9": "16:9",
+ "9:16": "9:16",
+ "4:3": "4:3",
+};
+
+function areCanvasSizesEqual({
+ left,
+ right,
+}: {
+ left: TCanvasSize;
+ right: TCanvasSize;
+}) {
+ return left.width === right.width && left.height === right.height;
+}
+
+function formatCanvasDimension({ value }: { value: number }) {
+ return formatNumberForDisplay({ value, maxFractionDigits: 0 });
+}
+
+function parseCanvasDimension({ input }: { input: string }): number | null {
+ const trimmed = input.trim();
+ if (!trimmed) return null;
+
+ const parsed = Number(trimmed);
+ if (!Number.isFinite(parsed)) return null;
+
+ const rounded = Math.round(parsed);
+ return rounded > 0 ? rounded : null;
+}
+
+function useCanvasDimensionDraft({
+ value,
+ onCommit,
+}: {
+ value: number;
+ onCommit: (value: number) => void;
+}) {
+ const pendingValueRef = useRef(value);
+ const syncedValueRef = useRef(value);
+
+ if (syncedValueRef.current !== value) {
+ syncedValueRef.current = value;
+ pendingValueRef.current = value;
+ }
+
+ return usePropertyDraft({
+ displayValue: formatCanvasDimension({ value }),
+ parse: (input) => parseCanvasDimension({ input }),
+ onPreview: (nextValue) => {
+ pendingValueRef.current = nextValue;
+ },
+ onCommit: () => {
+ if (pendingValueRef.current !== value) {
+ onCommit(pendingValueRef.current);
+ }
+ },
+ });
+}
+
+export function SettingsView() {
+ const [view, setView] = useState<SettingsView>("project-info");
+ const editor = useEditor();
+ const activeProject = useEditor((e) => e.project.getActive());
+ const { canvasPresets } = useEditorStore();
+ const currentCanvasSize = activeProject.settings.canvasSize;
+ const canvasSizeMode = activeProject.settings.canvasSizeMode ?? "preset";
+ const lastCustomCanvasSize =
+ activeProject.settings.lastCustomCanvasSize ?? null;
+
+ const presetItems = canvasPresets.map((preset, index) => {
+ const ratio = dimensionToAspectRatio(preset);
+ return {
+ id: index.toString(),
+ label: PRESET_LABELS[ratio] ?? ratio,
+ ratio,
+ canvasSize: preset,
+ };
+ });
+
+ const selectedPresetId = canvasSizeMode === "preset"
+ ? (presetItems.find((preset) =>
+ areCanvasSizesEqual({
+ left: preset.canvasSize,
+ right: currentCanvasSize,
+ }),
+ )?.id ?? null)
+ : null;
+
+ const updateCustomCanvasSize = ({
+ canvasSize,
+ }: {
+ canvasSize: TCanvasSize;
+ }) => {
+ const shouldUpdateCanvasSize = !areCanvasSizesEqual({
+ left: canvasSize,
+ right: currentCanvasSize,
+ });
+ const shouldUpdateLastCustomCanvasSize =
+ lastCustomCanvasSize === null ||
+ !areCanvasSizesEqual({
+ left: canvasSize,
+ right: lastCustomCanvasSize,
+ });
+ const shouldUpdateCanvasSizeMode = canvasSizeMode !== "custom";
+
+ if (
+ !shouldUpdateCanvasSize &&
+ !shouldUpdateLastCustomCanvasSize &&
+ !shouldUpdateCanvasSizeMode
+ ) {
+ return;
+ }
+
+ editor.project.updateSettings({
+ settings: {
+ ...(shouldUpdateCanvasSize ? { canvasSize } : {}),
+ ...(shouldUpdateCanvasSizeMode
+ ? { canvasSizeMode: "custom" as const }
+ : {}),
+ lastCustomCanvasSize: canvasSize,
+ },
+ });
+ };
+
+ const selectPresetCanvasSize = ({
+ canvasSize,
+ }: {
+ canvasSize: TCanvasSize;
+ }) => {
+ const shouldUpdateCanvasSize = !areCanvasSizesEqual({
+ left: canvasSize,
+ right: currentCanvasSize,
+ });
+ const shouldUpdateCanvasSizeMode = canvasSizeMode !== "preset";
+
+ if (!shouldUpdateCanvasSize && !shouldUpdateCanvasSizeMode) return;
+
+ editor.project.updateSettings({
+ settings: {
+ ...(shouldUpdateCanvasSize ? { canvasSize } : {}),
+ ...(shouldUpdateCanvasSizeMode
+ ? { canvasSizeMode: "preset" as const }
+ : {}),
+ },
+ });
+ };
+
+ const selectCustomCanvasSize = () => {
+ updateCustomCanvasSize({
+ canvasSize: lastCustomCanvasSize ?? currentCanvasSize,
+ });
+ };
+
+ const widthDraft = useCanvasDimensionDraft({
+ value: currentCanvasSize.width,
+ onCommit: (width) =>
+ updateCustomCanvasSize({
+ canvasSize: { width, height: currentCanvasSize.height },
+ }),
+ });
+
+ const heightDraft = useCanvasDimensionDraft({
+ value: currentCanvasSize.height,
+ onCommit: (height) =>
+ updateCustomCanvasSize({
+ canvasSize: { width: currentCanvasSize.width, height },
+ }),
+ });
+
+ const isCustomSelected = canvasSizeMode === "custom";
+
+ return (
+ <PanelView
+ contentClassName="px-0"
+ scrollClassName="pt-0"
+ actions={
+ <Tabs value={view} onValueChange={(v) => setView(v as SettingsView)}>
+ <TabsList>
+ <TabsTrigger value="project-info">Project info</TabsTrigger>
+ <TabsTrigger value="background">Background</TabsTrigger>
+ </TabsList>
+ </Tabs>
+ }
+ >
+ {view === "project-info" && (
+ <div className="flex flex-col">
+ <Section showTopBorder={false}>
+ <SectionHeader>
+ <SectionTitle className="flex-1">Name</SectionTitle>
+ <span className="text-sm truncate">
+ {activeProject.metadata.name}
+ </span>
+ </SectionHeader>
+ </Section>
+ <Section showTopBorder={false}>
+ <SectionHeader className="justify-between">
+ <SectionTitle className="flex-1">Frame rate</SectionTitle>
+ <Select
+ value={activeProject.settings.fps.toString()}
+ onValueChange={(value) => {
+ const fps = parseFloat(value);
+ editor.project.updateSettings({ settings: { fps } });
+ }}
+ >
+ <SelectTrigger className="bg-transparent border-none p-1 h-auto">
+ <SelectValue placeholder="Select a frame rate" />
+ </SelectTrigger>
+ <SelectContent>
+ {FPS_PRESETS.map((preset) => (
+ <SelectItem key={preset.value} value={preset.value}>
+ {preset.label}
+ </SelectItem>
+ ))}
+ </SelectContent>
+ </Select>
+ </SectionHeader>
+ </Section>
+ <Section
+ showTopBorder={false}
+ collapsible
+ sectionKey="settings:aspect-ratio"
+ >
+ <SectionHeader>
+ <SectionTitle className="flex-1">Aspect ratio</SectionTitle>
+ </SectionHeader>
+ <SectionContent className="px-2 flex flex-col gap-1 pb-2">
+ {presetItems.map((preset) => (
+ <AspectRatioItem
+ key={preset.id}
+ label={preset.label}
+ previewIcon={<AspectRatioPreview ratio={preset.ratio} />}
+ isSelected={selectedPresetId === preset.id}
+ onClick={() => {
+ selectPresetCanvasSize({
+ canvasSize: preset.canvasSize,
+ });
+ }}
+ />
+ ))}
+ <div className="pb-2">
+ <AspectRatioItem
+ key="custom"
+ label="Custom"
+ previewIcon={<OcSquarePlusIcon />}
+ isSelected={isCustomSelected}
+ onClick={selectCustomCanvasSize}
+ uiOptions={
+ <div className=" flex items-center gap-2 text-foreground">
+ <NumberField
+ value={widthDraft.displayValue}
+ className="w-full"
+ aria-label="Canvas width"
+ onFocus={widthDraft.onFocus}
+ onChange={widthDraft.onChange}
+ onBlur={widthDraft.onBlur}
+ />
+ <NumberField
+ value={heightDraft.displayValue}
+ className="w-full"
+ aria-label="Canvas height"
+ onFocus={heightDraft.onFocus}
+ onChange={heightDraft.onChange}
+ onBlur={heightDraft.onBlur}
+ />
+ </div>
+ }
+ />
+ </div>
+ </SectionContent>
+ </Section>
+ </div>
+ )}
+ {view === "background" && <BackgroundContent />}
+ </PanelView>
+ );
+}
+
+function AspectRatioItem({
+ label,
+ previewIcon,
+ isSelected,
+ onClick,
+ uiOptions,
+}: {
+ label: string;
+ previewIcon: React.ReactNode;
+ isSelected: boolean;
+ onClick: () => void;
+ uiOptions?: React.ReactNode;
+}) {
+ return (
+ <Button
+ variant={isSelected ? "secondary" : "ghost"}
+ className={cn(
+ "px-2 py-0 flex flex-col h-fit w-full",
+ !isSelected && "border border-transparent opacity-75!",
+ )}
+ onClick={onClick}
+ >
+ <div className="w-full flex justify-between items-center h-8">
+ <div className="flex-1 flex items-center gap-2">
+ <div className="flex items-center justify-center size-5">
+ {previewIcon}
+ </div>
+ <span className="text-sm truncate">{label}</span>
+ </div>
+ <div>
+ {isSelected && <HugeiconsIcon icon={Tick02Icon} className="size-4" />}
+ </div>
+ </div>
+ {uiOptions && isSelected && (
+ <div className="w-full pb-2">{uiOptions}</div>
+ )}
+ </Button>
+ );
+}
+
+function AspectRatioPreview({ ratio }: { ratio?: string }) {
+ if (!ratio) return null;
+
+ const [w, h] = ratio.split(":").map(Number);
+ const maxSize = 16;
+ const width = w >= h ? maxSize : (w / h) * maxSize;
+ const height = h >= w ? maxSize : (h / w) * maxSize;
+
+ return (
+ <div
+ style={{ width, height, borderWidth: 1.5 }}
+ className="rounded-xs border-current opacity-60"
+ />
+ );
+}
diff --git a/apps/web/src/components/editor/panels/assets/views/sounds.tsx b/apps/web/src/components/editor/panels/assets/views/sounds.tsx
index b1c57c3d..4fb43ac2 100644
--- a/apps/web/src/components/editor/panels/assets/views/sounds.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/sounds.tsx
@@ -24,7 +24,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { useInfiniteScroll } from "@/hooks/use-infinite-scroll";
import { useSoundSearch } from "@/hooks/use-sound-search";
import { useSoundsStore } from "@/stores/sounds-store";
-import type { SavedSound, SoundEffect } from "@/types/sounds";
+import type { SavedSound, SoundEffect } from "@/lib/sounds/types";
import { cn } from "@/utils/ui";
import {
FavouriteIcon,
diff --git a/apps/web/src/components/editor/panels/assets/views/stickers.tsx b/apps/web/src/components/editor/panels/assets/views/stickers.tsx
index 671effec..af489630 100644
--- a/apps/web/src/components/editor/panels/assets/views/stickers.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/stickers.tsx
@@ -2,81 +2,110 @@
import Image from "next/image";
import type { CSSProperties } from "react";
-import { useEffect, useMemo, useState } from "react";
+import { useEffect, useState } from "react";
import { toast } from "sonner";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
import { DraggableItem } from "@/components/editor/panels/assets/draggable-item";
import { Button } from "@/components/ui/button";
+import { Input } from "@/components/ui/input";
+import { Spinner } from "@/components/ui/spinner";
+import { useEditor } from "@/hooks/use-editor";
+import { resolveStickerIntrinsicSize } from "@/lib/stickers";
import {
- Tooltip,
- TooltipContent,
- TooltipProvider,
- TooltipTrigger,
-} from "@/components/ui/tooltip";
-import {
- resolveStickerId,
- type StickerItem as StickerData,
+ buildGraphicElement,
+ buildStickerElement,
+} from "@/lib/timeline/element-utils";
+import { STICKER_CATEGORIES } from "@/constants/sticker-constants";
+import { getRegionLabel, resolveQueryToRegions } from "@/lib/stickers";
+import { parseShapeStickerId } from "@/lib/stickers/providers/shapes";
+import type { TimelineDragData } from "@/lib/timeline/drag";
+import type {
+ StickerBrowseSection,
+ StickerCategory,
+ StickerItem as StickerData,
} from "@/lib/stickers";
import { useStickersStore } from "@/stores/stickers-store";
import { cn } from "@/utils/ui";
import {
HappyIcon,
- ClockIcon,
- MultiplicationSignIcon,
- Search01Icon,
} from "@hugeicons/core-free-icons";
import { HugeiconsIcon } from "@hugeicons/react";
-import { Spinner } from "@/components/ui/spinner";
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select";
-import { OcSlidersVerticalIcon } from "@opencut/ui/icons";
-import type { StickerCategory } from "@/types/stickers";
-import { STICKER_CATEGORIES } from "@/constants/sticker-constants";
-import { parseStickerId } from "@/lib/stickers/sticker-id";
export function StickersView() {
- const { selectedCategory, setSelectedCategory } = useStickersStore();
+ const {
+ browseContent,
+ browseStickers,
+ searchQuery,
+ searchStickers,
+ selectedCategory,
+ setSearchQuery,
+ setSelectedCategory,
+ viewMode,
+ } = useStickersStore();
+
+ useEffect(() => {
+ if (viewMode === "browse" && !browseContent) {
+ void browseStickers();
+ }
+ }, [browseContent, browseStickers, viewMode]);
return (
- <PanelView
- title="Stickers"
- actions={
- <div className="flex items-center">
- <Select
- value={selectedCategory}
- onValueChange={(value: StickerCategory) =>
- setSelectedCategory({ category: value })
- }
+ <div className="flex h-full flex-col py-2">
+ <div className="px-2">
+ <Input
+ size="sm"
+ variant="default"
+ placeholder="Search..."
+ value={searchQuery}
+ onChange={(e) => {
+ setSearchQuery({ query: e.target.value });
+ void searchStickers({ query: e.target.value });
+ }}
+ showClearIcon
+ onClear={() => {
+ setSearchQuery({ query: "" });
+ void searchStickers({ query: "" });
+ }}
+ className="w-full"
+ containerClassName="w-full"
+ />
+ </div>
+
+ <div className="mt-2 flex min-h-0 flex-1 flex-col">
+ <div className="border-b border-border px-2">
+ <div
+ role="tablist"
+ aria-label="Sticker categories"
+ className="text-muted-foreground inline-flex h-auto items-center gap-0 bg-transparent p-0"
>
- <SelectTrigger variant="outline" size="sm" className="mr-1.5">
- <SelectValue placeholder="All" />
- </SelectTrigger>
- <SelectContent>
- {Object.entries(STICKER_CATEGORIES).map(([category, label]) => (
- <SelectItem key={category} value={category}>
+ {Object.entries(STICKER_CATEGORIES).map(([key, label]) => {
+ const isActive = key === selectedCategory;
+ return (
+ <button
+ key={key}
+ type="button"
+ role="tab"
+ aria-selected={isActive}
+ onClick={() =>
+ setSelectedCategory({
+ category: key as StickerCategory,
+ })
+ }
+ className={cn(
+ "text-muted-foreground rounded-none border-b-2 border-transparent px-3 py-2 text-sm font-medium whitespace-nowrap -mb-px",
+ isActive && "text-primary border-primary",
+ )}
+ >
{label}
- </SelectItem>
- ))}
- </SelectContent>
- </Select>
-
- <Button variant="ghost" size="icon">
- <HugeiconsIcon icon={Search01Icon} className="!size-3.5" />
- </Button>
-
- <Button variant="ghost" size="icon">
- <OcSlidersVerticalIcon className="!size-3.5" />
- </Button>
+ </button>
+ );
+ })}
+ </div>
</div>
- }
- >
- <StickersContentView />
- </PanelView>
+ <div className="min-h-0 flex-1 overflow-y-auto px-4 pt-4">
+ <StickersContentView />
+ </div>
+ </div>
+ </div>
);
}
@@ -92,10 +121,10 @@ function StickerGrid({
"--sticker-max"?: string;
} = {
gridTemplateColumns: shouldCapSize
- ? "repeat(auto-fill, minmax(var(--sticker-min, 96px), var(--sticker-max, 160px)))"
- : "repeat(auto-fit, minmax(var(--sticker-min, 96px), 1fr))",
- "--sticker-min": "96px",
- ...(shouldCapSize ? { "--sticker-max": "160px" } : {}),
+ ? "repeat(auto-fill, minmax(var(--sticker-min, 80px), var(--sticker-max, 140px)))"
+ : "repeat(auto-fill, minmax(var(--sticker-min, 80px), 1fr))",
+ "--sticker-min": "80px",
+ ...(shouldCapSize ? { "--sticker-max": "140px" } : {}),
};
return (
@@ -107,6 +136,18 @@ function StickerGrid({
);
}
+function StickerRow({ items }: { items: StickerData[] }) {
+ return (
+ <div className="flex gap-2 overflow-x-auto pb-1 scrollbar-hidden">
+ {items.map((item) => (
+ <div key={item.id} className="w-20 shrink-0">
+ <StickerItem item={item} shouldCapSize containerClassName="w-full" />
+ </div>
+ ))}
+ </div>
+ );
+}
+
function EmptyView({ message }: { message: string }) {
return (
<div className="bg-background flex h-full flex-col items-center justify-center gap-3 p-4">
@@ -122,88 +163,170 @@ function EmptyView({ message }: { message: string }) {
);
}
+function RegionBanner({ region }: { region: string }) {
+ return (
+ <div className="flex h-7 items-center gap-1.5 rounded-lg border border-sky-100 bg-sky-50 px-2">
+ <svg
+ width="12"
+ height="12"
+ viewBox="0 0 24 24"
+ fill="none"
+ stroke="currentColor"
+ strokeWidth="2"
+ strokeLinecap="round"
+ strokeLinejoin="round"
+ className="shrink-0 text-sky-600"
+ aria-hidden="true"
+ >
+ <path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" />
+ <circle cx="12" cy="10" r="3" />
+ </svg>
+ <span className="text-xs font-semibold text-sky-600">{region}</span>
+ </div>
+ );
+}
+
function StickersContentView() {
const {
+ browseContent,
+ clearRecentStickers,
+ isBrowsing,
+ isSearching,
searchQuery,
- viewMode,
searchResults,
- recentStickers,
- isSearching,
- clearRecentStickers,
+ selectedCategory,
+ setSelectedCategory,
+ viewMode,
} = useStickersStore();
- const itemsToDisplay = useMemo(() => {
- if (viewMode === "search" && searchResults) {
- return searchResults.items;
+ if (viewMode === "search") {
+ if (isSearching) {
+ return (
+ <div className="flex items-center justify-center py-8">
+ <Spinner className="text-muted-foreground size-6" />
+ </div>
+ );
}
- return [];
- }, [viewMode, searchResults]);
+ if (searchResults?.items.length) {
+ const normalizedQuery = searchQuery.trim().toLowerCase();
+ const isRegionSearch =
+ selectedCategory === "flags" &&
+ resolveQueryToRegions({ query: normalizedQuery }) !== null;
+ const regionLabel = getRegionLabel({ query: normalizedQuery });
- const recentStickerItems = useMemo(() => {
- const items: StickerData[] = [];
- for (const stickerId of recentStickers) {
- const recentStickerItem = toRecentStickerItem({ stickerId });
- if (recentStickerItem) {
- items.push(recentStickerItem);
- }
+ return (
+ <div className="flex flex-col gap-3 pb-4">
+ {isRegionSearch && <RegionBanner region={regionLabel} />}
+ <div className="flex items-center justify-between">
+ <span className="text-muted-foreground text-sm">
+ {searchResults.total} results
+ </span>
+ </div>
+ <StickerGrid items={searchResults.items} />
+ </div>
+ );
}
- return items;
- }, [recentStickers]);
+
+ // "all" tab search — sections are in browseContent, fall through to section rendering below
+ if (selectedCategory !== "all" && searchQuery) {
+ return <EmptyView message={`No stickers found for "${searchQuery}"`} />;
+ }
+ }
+
+ if (isBrowsing && !browseContent) {
+ return (
+ <div className="flex items-center justify-center py-8">
+ <Spinner className="text-muted-foreground size-6" />
+ </div>
+ );
+ }
+
+ if (!browseContent?.sections.length) {
+ const categoryLabel = STICKER_CATEGORIES[selectedCategory];
+ return (
+ <EmptyView
+ message={
+ viewMode === "search"
+ ? `No stickers found for "${searchQuery}"`
+ : selectedCategory === "all"
+ ? "No stickers available yet."
+ : `No stickers available in ${categoryLabel.toLowerCase()} yet.`
+ }
+ />
+ );
+ }
return (
- <div className="flex h-full flex-col gap-4">
- {recentStickerItems.length > 0 && viewMode === "browse" && (
- <div className="flex h-full flex-col gap-2">
- <div className="flex items-center gap-2">
- <HugeiconsIcon
- icon={ClockIcon}
- className="text-muted-foreground size-4"
- />
- <span className="text-sm font-medium">Recent</span>
- <TooltipProvider>
- <Tooltip>
- <TooltipTrigger asChild>
- <button
- type="button"
- onClick={clearRecentStickers}
- className="hover:bg-accent ml-auto flex size-5 items-center justify-center rounded p-0"
- >
- <HugeiconsIcon
- icon={MultiplicationSignIcon}
- className="text-muted-foreground size-3"
- />
- </button>
- </TooltipTrigger>
- <TooltipContent>
- <p>Clear recent stickers</p>
- </TooltipContent>
- </Tooltip>
- </TooltipProvider>
+ <div className="flex flex-col gap-4 pb-4">
+ {browseContent.sections.map((section) => (
+ <StickerSection
+ key={section.id}
+ section={section}
+ onClearRecent={clearRecentStickers}
+ onSeeAll={(category) => {
+ setSelectedCategory({ category });
+ }}
+ />
+ ))}
+ </div>
+ );
+}
+
+function StickerSection({
+ section,
+ onClearRecent,
+ onSeeAll,
+}: {
+ section: StickerBrowseSection;
+ onClearRecent: () => void;
+ onSeeAll: (category: StickerCategory) => void;
+}) {
+ const hasHeader =
+ Boolean(section.title) || section.id === "recent" || section.action;
+
+ return (
+ <div className="flex flex-col gap-2">
+ {hasHeader && (
+ <div className="flex items-center justify-between gap-2">
+ {section.title ? (
+ <p className="text-xs text-muted-foreground">{section.title}</p>
+ ) : (
+ <div />
+ )}
+
+ <div className="ml-auto flex items-center gap-2">
+ {section.id === "recent" && (
+ <Button
+ onClick={onClearRecent}
+ variant="text"
+ size="sm"
+ className="h-auto gap-1 p-0 text-xs text-muted-foreground"
+ >
+ Clear
+ </Button>
+ )}
+
+ {section.action?.type === "see-all" && section.action.category && (
+ <Button
+ variant="text"
+ size="sm"
+ className="h-auto gap-1 p-0 text-xs text-primary"
+ onClick={() => {
+ onSeeAll(section.action?.category as StickerCategory);
+ }}
+ >
+ See all
+ </Button>
+ )}
</div>
- <StickerGrid items={recentStickerItems.slice(0, 12)} shouldCapSize />
</div>
)}
- {viewMode === "search" && (
- <div className="h-full">
- {isSearching ? (
- <div className="flex items-center justify-center py-8">
- <Spinner className="text-muted-foreground size-6" />
- </div>
- ) : searchResults?.items.length ? (
- <div className="flex flex-col gap-3">
- <div className="flex items-center justify-between">
- <span className="text-muted-foreground text-sm">
- {searchResults.total} results
- </span>
- </div>
- <StickerGrid items={itemsToDisplay} shouldCapSize />
- </div>
- ) : searchQuery ? (
- <EmptyView message={`No stickers found for "${searchQuery}"`} />
- ) : null}
- </div>
+ {section.layout === "row" ? (
+ <StickerRow items={section.items} />
+ ) : (
+ <StickerGrid items={section.items} />
)}
</div>
);
@@ -212,65 +335,116 @@ function StickersContentView() {
interface StickerItemProps {
item: StickerData;
shouldCapSize?: boolean;
+ containerClassName?: string;
}
-function StickerItem({ item, shouldCapSize = false }: StickerItemProps) {
- const { addingSticker, addStickerToTimeline } = useStickersStore();
- const isAdding = addingSticker === item.id;
+function StickerItem({
+ item,
+ shouldCapSize = false,
+ containerClassName,
+}: StickerItemProps) {
+ const editor = useEditor();
+ const { addToRecentStickers } = useStickersStore();
+ const [isAdding, setIsAdding] = useState(false);
const [hasImageError, setHasImageError] = useState(false);
useEffect(() => {
if (!item.id) {
return;
}
+
setHasImageError(false);
}, [item.id]);
const displayName = item.name;
+ const shapePreset =
+ item.provider === "shapes" ? parseShapeStickerId({ stickerId: item.id }) : null;
const handleAdd = async () => {
+ setIsAdding(true);
try {
- await addStickerToTimeline({
- stickerId: item.id,
- name: item.name,
+ const currentTime = editor.playback.getCurrentTime();
+
+ let element:
+ | ReturnType<typeof buildGraphicElement>
+ | ReturnType<typeof buildStickerElement>;
+ if (shapePreset) {
+ element = buildGraphicElement({
+ definitionId: shapePreset.definitionId,
+ name: shapePreset.name,
+ startTime: currentTime,
+ params: shapePreset.params,
+ });
+ } else {
+ const { width: intrinsicWidth, height: intrinsicHeight } =
+ await resolveStickerIntrinsicSize({ stickerId: item.id });
+ element = buildStickerElement({
+ stickerId: item.id,
+ name: item.name,
+ startTime: currentTime,
+ intrinsicWidth,
+ intrinsicHeight,
+ });
+ }
+
+ editor.timeline.insertElement({
+ placement: { mode: "auto" },
+ element,
});
+
+ addToRecentStickers({ stickerId: item.id });
} catch (error) {
console.error("Failed to add sticker:", error);
toast.error("Failed to add sticker to timeline");
+ } finally {
+ setIsAdding(false);
}
};
- const preview = hasImageError ? (
- <div className="flex size-full items-center justify-center p-2">
- <span className="text-muted-foreground text-center text-xs break-all">
- {displayName}
- </span>
- </div>
- ) : (
- <div className="flex size-full items-center justify-center p-4">
- <Image
- src={item.previewUrl}
- alt={displayName}
- width={64}
- height={64}
- className="size-full object-contain"
- style={
- shouldCapSize
- ? {
- maxWidth: "var(--sticker-max, 160px)",
- maxHeight: "var(--sticker-max, 160px)",
- }
- : undefined
- }
- onError={() => {
- setHasImageError(true);
- }}
- loading="lazy"
- unoptimized
- />
+ const preview = (
+ <div className="flex size-full items-center justify-center p-3">
+ {hasImageError ? (
+ <span className="text-muted-foreground text-center text-xs break-all">
+ {displayName}
+ </span>
+ ) : (
+ <Image
+ src={item.previewUrl}
+ alt={displayName}
+ width={64}
+ height={64}
+ className="size-full object-contain"
+ style={
+ shouldCapSize
+ ? {
+ maxWidth: "var(--sticker-max, 160px)",
+ maxHeight: "var(--sticker-max, 160px)",
+ }
+ : undefined
+ }
+ onError={() => setHasImageError(true)}
+ loading="lazy"
+ unoptimized
+ />
+ )}
</div>
);
+ const dragData: TimelineDragData = shapePreset
+ ? {
+ id: item.id,
+ type: "graphic",
+ name: displayName,
+ definitionId: shapePreset.definitionId,
+ params: shapePreset.params ?? {},
+ }
+ : {
+ id: item.id,
+ type: "sticker",
+ name: displayName,
+ stickerId: item.id,
+ };
+
return (
<div
className={cn("relative", isAdding && "pointer-events-none opacity-50")}
@@ -278,18 +452,13 @@ function StickerItem({ item, shouldCapSize = false }: StickerItemProps) {
<DraggableItem
name={displayName}
preview={preview}
- dragData={{
- id: item.id,
- type: "sticker",
- name: displayName,
- stickerId: item.id,
- }}
+ dragData={dragData}
onAddToTimeline={handleAdd}
aspectRatio={1}
shouldShowLabel={false}
isRounded
variant="card"
- containerClassName="w-full"
+ containerClassName={containerClassName ?? "w-full"}
/>
{isAdding && (
<div className="absolute inset-0 z-10 flex items-center justify-center rounded-md bg-black/60">
@@ -299,36 +468,3 @@ function StickerItem({ item, shouldCapSize = false }: StickerItemProps) {
</div>
);
}
-
-function getStickerNameFromId({ stickerId }: { stickerId: string }): string {
- const stickerIdParts = stickerId.split(":");
- if (stickerIdParts.length <= 1) {
- return stickerId;
- }
- return (
- stickerIdParts.slice(1).join(":").split(":").pop()?.replaceAll("-", " ") ??
- stickerId
- );
-}
-
-function toRecentStickerItem({
- stickerId,
-}: {
- stickerId: string;
-}): StickerData | null {
- try {
- const { providerId } = parseStickerId({ stickerId });
- return {
- id: stickerId,
- provider: providerId,
- name: getStickerNameFromId({ stickerId }),
- previewUrl: resolveStickerId({
- stickerId,
- options: { width: 64, height: 64 },
- }),
- metadata: {},
- };
- } catch {
- return null;
- }
-}
diff --git a/apps/web/src/components/editor/panels/assets/views/text.tsx b/apps/web/src/components/editor/panels/assets/views/text.tsx
index 3673acc3..075cc25b 100644
--- a/apps/web/src/components/editor/panels/assets/views/text.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/text.tsx
@@ -1,7 +1,7 @@
import { DraggableItem } from "@/components/editor/panels/assets/draggable-item";
-import { PanelView } from "@/components/editor/panels/assets/views/base-view";
+import { PanelView } from "@/components/editor/panels/assets/views/base-panel";
import { useEditor } from "@/hooks/use-editor";
-import { DEFAULT_TEXT_ELEMENT } from "@/constants/text-constants";
+import { DEFAULTS } from "@/lib/timeline/defaults";
import { buildTextElement } from "@/lib/timeline/element-utils";
export function TextView() {
@@ -12,7 +12,7 @@ export function TextView() {
if (!activeScene) return;
const element = buildTextElement({
- raw: DEFAULT_TEXT_ELEMENT,
+ raw: DEFAULTS.text.element,
startTime: currentTime,
});
@@ -33,9 +33,9 @@ export function TextView() {
}
dragData={{
id: "temp-text-id",
- type: DEFAULT_TEXT_ELEMENT.type,
- name: DEFAULT_TEXT_ELEMENT.name,
- content: DEFAULT_TEXT_ELEMENT.content,
+ type: DEFAULTS.text.element.type,
+ name: DEFAULTS.text.element.name,
+ content: DEFAULTS.text.element.content,
}}
aspectRatio={1}
onAddToTimeline={handleAddToTimeline}
diff --git a/apps/web/src/components/editor/panels/preview/context-menu.tsx b/apps/web/src/components/editor/panels/preview/context-menu.tsx
index d4bcdcae..13226378 100644
--- a/apps/web/src/components/editor/panels/preview/context-menu.tsx
+++ b/apps/web/src/components/editor/panels/preview/context-menu.tsx
@@ -4,9 +4,12 @@ import {
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuItem,
+ ContextMenuSeparator,
} from "@/components/ui/context-menu";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
import { useEditor } from "@/hooks/use-editor";
import { usePreviewStore } from "@/stores/preview-store";
+import { toast } from "sonner";
export function PreviewContextMenu({
onToggleFullscreen,
@@ -16,25 +19,55 @@ export function PreviewContextMenu({
containerRef: React.RefObject<HTMLElement | null>;
}) {
const editor = useEditor();
+ const viewport = usePreviewViewport();
const { overlays, setOverlayVisibility } = usePreviewStore();
+ const handleCopySnapshot = async () => {
+ const result = await editor.renderer.copySnapshot();
+
+ if (!result.success) {
+ toast.error("Failed to copy snapshot", {
+ description: result.error ?? "Please try again",
+ });
+ return;
+ }
+ };
+
+ const handleSaveSnapshot = async () => {
+ const result = await editor.renderer.saveSnapshot();
+
+ if (!result.success) {
+ toast.error("Failed to save snapshot", {
+ description: result.error ?? "Please try again",
+ });
+ return;
+ }
+ };
+
return (
<ContextMenuContent className="w-56" container={containerRef.current}>
+ <ContextMenuItem onClick={viewport.fitToScreen} inset>
+ Fit to screen
+ </ContextMenuItem>
+ <ContextMenuSeparator />
<ContextMenuItem onClick={onToggleFullscreen} inset>
Full screen
</ContextMenuItem>
- <ContextMenuItem onClick={() => editor.renderer.saveSnapshot()} inset>
+ <ContextMenuItem onClick={handleSaveSnapshot} inset>
Save snapshot
</ContextMenuItem>
+ <ContextMenuItem onClick={handleCopySnapshot} inset>
+ Copy snapshot
+ </ContextMenuItem>
+ <ContextMenuSeparator />
<ContextMenuCheckboxItem
checked={overlays.bookmarks}
onCheckedChange={(checked) =>
setOverlayVisibility({ overlay: "bookmarks", isVisible: !!checked })
}
>
- Show bookmarks
+ Show bookmark notes
</ContextMenuCheckboxItem>
- <ContextMenuItem inset>Show grid</ContextMenuItem>
</ContextMenuContent>
);
}
diff --git a/apps/web/src/components/editor/panels/preview/guide-overlay.tsx b/apps/web/src/components/editor/panels/preview/guide-overlay.tsx
new file mode 100644
index 00000000..ad7a621f
--- /dev/null
+++ b/apps/web/src/components/editor/panels/preview/guide-overlay.tsx
@@ -0,0 +1,32 @@
+"use client";
+
+import { getGuideById } from "@/lib/guides";
+import { usePreviewStore } from "@/stores/preview-store";
+import { usePreviewViewport } from "./preview-viewport";
+
+export function GuideOverlay() {
+ const activeGuide = usePreviewStore((state) => state.activeGuide);
+ const viewport = usePreviewViewport();
+ const guide = getGuideById(activeGuide);
+
+ if (!guide) {
+ return null;
+ }
+
+ return (
+ <div
+ className="pointer-events-none absolute"
+ style={{
+ left: viewport.sceneLeft,
+ top: viewport.sceneTop,
+ width: viewport.sceneWidth,
+ height: viewport.sceneHeight,
+ }}
+ >
+ {guide.renderOverlay({
+ width: viewport.sceneWidth,
+ height: viewport.sceneHeight,
+ })}
+ </div>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/preview/guide-popover.tsx b/apps/web/src/components/editor/panels/preview/guide-popover.tsx
new file mode 100644
index 00000000..e6d3df51
--- /dev/null
+++ b/apps/web/src/components/editor/panels/preview/guide-popover.tsx
@@ -0,0 +1,100 @@
+"use client";
+
+import { AnimatePresence, motion } from "motion/react";
+import { GUIDE_REGISTRY, getGuideById } from "@/lib/guides";
+import { usePreviewStore } from "@/stores/preview-store";
+import {
+ Popover,
+ PopoverContent,
+ PopoverTrigger,
+} from "@/components/ui/popover";
+import { Label } from "@/components/ui/label";
+import { Separator } from "@/components/ui/separator";
+import { cn } from "@/utils/ui";
+
+export function GridPopover({ children }: { children: React.ReactNode }) {
+ const activeGuide = usePreviewStore((state) => state.activeGuide);
+ const toggleGuide = usePreviewStore((state) => state.toggleGuide);
+ const activeGuideDef = getGuideById(activeGuide);
+ const options = activeGuideDef?.renderOptions?.();
+
+ return (
+ <Popover>
+ <PopoverTrigger>{children}</PopoverTrigger>
+ <PopoverContent sideOffset={8} className="w-60 px-0">
+ <div className="flex flex-col gap-2 px-4">
+ <Label>Guides</Label>
+ <div className="grid grid-cols-3 gap-1">
+ {GUIDE_REGISTRY.map((guide) => (
+ <GridItem
+ key={guide.id}
+ label={guide.label}
+ preview={guide.renderPreview()}
+ isSelected={activeGuide === guide.id}
+ onClick={() => toggleGuide(guide.id)}
+ />
+ ))}
+ </div>
+ </div>
+ <AnimatePresence>
+ {options && (
+ <motion.div
+ initial={{ height: 0, opacity: 0 }}
+ animate={{ height: "auto", opacity: 1 }}
+ exit={{ height: 0, opacity: 0 }}
+ transition={{
+ height: { type: "spring", duration: 0.2, bounce: 0 },
+ opacity: { duration: 0.2 },
+ }}
+ className="overflow-hidden"
+ >
+ <Separator className="my-3" />
+ <div className="px-4">{options}</div>
+ </motion.div>
+ )}
+ </AnimatePresence>
+ </PopoverContent>
+ </Popover>
+ );
+}
+
+function GridItem({
+ label,
+ preview,
+ isSelected,
+ onClick,
+}: {
+ label: string;
+ preview: React.ReactNode;
+ isSelected?: boolean;
+ onClick: () => void;
+}) {
+ return (
+ <button
+ type="button"
+ onClick={onClick}
+ aria-pressed={isSelected}
+ className={cn(
+ "flex cursor-pointer rounded-sm flex-col gap-2 px-1.5 py-1.5 hover:bg-foreground/5",
+ isSelected && "bg-primary/5! text-primary",
+ )}
+ >
+ <div
+ className={cn(
+ "aspect-video bg-foreground/5 flex items-center justify-center rounded-sm",
+ isSelected && "bg-primary/5!",
+ )}
+ >
+ {preview}
+ </div>
+ <span
+ className={cn(
+ "text-xs",
+ isSelected ? "text-primary" : "text-muted-foreground",
+ )}
+ >
+ {label}
+ </span>
+ </button>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/preview/handle-primitives.tsx b/apps/web/src/components/editor/panels/preview/handle-primitives.tsx
new file mode 100644
index 00000000..44b8a7f1
--- /dev/null
+++ b/apps/web/src/components/editor/panels/preview/handle-primitives.tsx
@@ -0,0 +1,332 @@
+"use client";
+
+import { cn } from "@/utils/ui";
+import { HugeiconsIcon } from "@hugeicons/react";
+import type { IconSvgElement } from "@hugeicons/react";
+
+export const HANDLE_SIZE = 10;
+export const HANDLE_HIT_AREA_SIZE = 18;
+export const ICON_HANDLE_RADIUS = 10;
+export const EDGE_HANDLE_THIN_SIZE = 6;
+export const EDGE_HANDLE_THICK_SIZE = 14;
+export const LINE_HIT_AREA_SIZE = 48;
+
+export function getResizeCursor({ angleDeg }: { angleDeg: number }): string {
+ const normalized = ((angleDeg % 180) + 180) % 180;
+ if (normalized < 22.5 || normalized >= 157.5) return "cursor-ew-resize";
+ if (normalized < 67.5) return "cursor-nwse-resize";
+ if (normalized < 112.5) return "cursor-ns-resize";
+ return "cursor-nesw-resize";
+}
+
+export function HandleButton({
+ screen,
+ cursor,
+ hitAreaSize,
+ className,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+ children,
+}: {
+ screen: { x: number; y: number };
+ cursor?: string;
+ hitAreaSize: number;
+ className?: string;
+ onPointerDown: (event: React.PointerEvent) => void;
+ onPointerMove: (event: React.PointerEvent) => void;
+ onPointerUp: (event: React.PointerEvent) => void;
+ children: React.ReactNode;
+}) {
+ return (
+ <button
+ type="button"
+ className={cn(
+ "absolute flex items-center justify-center outline-none",
+ cursor,
+ className,
+ )}
+ style={{
+ left: screen.x - hitAreaSize / 2,
+ top: screen.y - hitAreaSize / 2,
+ width: hitAreaSize,
+ height: hitAreaSize,
+ pointerEvents: "auto",
+ }}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ onPointerLeave={onPointerUp}
+ onKeyDown={(event) => event.key === "Enter" && event.preventDefault()}
+ onKeyUp={(event) => event.key === "Enter" && event.preventDefault()}
+ >
+ {children}
+ </button>
+ );
+}
+
+export function CornerHandle({
+ cursor,
+ screen,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ cursor?: string;
+ screen: { x: number; y: number };
+ onPointerDown: (event: React.PointerEvent) => void;
+ onPointerMove: (event: React.PointerEvent) => void;
+ onPointerUp: (event: React.PointerEvent) => void;
+}) {
+ return (
+ <HandleButton
+ screen={screen}
+ cursor={cursor}
+ hitAreaSize={HANDLE_HIT_AREA_SIZE}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ >
+ <div
+ className="rounded-sm bg-white"
+ style={{ width: HANDLE_SIZE, height: HANDLE_SIZE }}
+ />
+ </HandleButton>
+ );
+}
+
+export function EdgeHandle({
+ edge,
+ screen,
+ rotation,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ edge: "right" | "left" | "bottom";
+ screen: { x: number; y: number };
+ rotation: number;
+ onPointerDown: (event: React.PointerEvent) => void;
+ onPointerMove: (event: React.PointerEvent) => void;
+ onPointerUp: (event: React.PointerEvent) => void;
+}) {
+ const isHorizontalEdge = edge === "right" || edge === "left";
+ const width = isHorizontalEdge
+ ? EDGE_HANDLE_THIN_SIZE
+ : EDGE_HANDLE_THICK_SIZE;
+ const height = isHorizontalEdge
+ ? EDGE_HANDLE_THICK_SIZE
+ : EDGE_HANDLE_THIN_SIZE;
+ const cursor = getResizeCursor({
+ angleDeg: isHorizontalEdge ? rotation : rotation + 90,
+ });
+
+ return (
+ <HandleButton
+ screen={screen}
+ cursor={cursor}
+ hitAreaSize={HANDLE_HIT_AREA_SIZE}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ >
+ <div
+ className="rounded-sm bg-white"
+ style={{ width, height, transform: `rotate(${rotation}deg)` }}
+ />
+ </HandleButton>
+ );
+}
+
+export function IconHandle({
+ icon,
+ screen,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ icon: IconSvgElement;
+ screen: { x: number; y: number };
+ onPointerDown: (event: React.PointerEvent) => void;
+ onPointerMove: (event: React.PointerEvent) => void;
+ onPointerUp: (event: React.PointerEvent) => void;
+}) {
+ return (
+ <HandleButton
+ screen={screen}
+ hitAreaSize={ICON_HANDLE_RADIUS * 2}
+ className="rounded-full bg-white text-black shadow-sm"
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ >
+ <HugeiconsIcon icon={icon} className="size-3" strokeWidth={2.5} />
+ </HandleButton>
+ );
+}
+
+export function BoundingBoxOutline({
+ center,
+ outlineWidth,
+ outlineHeight,
+ rotation,
+ cursor,
+ dashed = false,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ center: { x: number; y: number };
+ outlineWidth: number;
+ outlineHeight: number;
+ rotation: number;
+ cursor?: string;
+ dashed?: boolean;
+ onPointerDown?: (event: React.PointerEvent) => void;
+ onPointerMove?: (event: React.PointerEvent) => void;
+ onPointerUp?: (event: React.PointerEvent) => void;
+}) {
+ return (
+ <svg
+ className={cn("absolute overflow-visible", cursor)}
+ aria-hidden="true"
+ focusable="false"
+ style={{
+ left: center.x - outlineWidth / 2,
+ top: center.y - outlineHeight / 2,
+ width: outlineWidth,
+ height: outlineHeight,
+ transform: `rotate(${rotation}deg)`,
+ transformOrigin: "center center",
+ pointerEvents: onPointerDown ? "auto" : "none",
+ }}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ onPointerLeave={onPointerUp}
+ >
+ <rect
+ x={0.5}
+ y={0.5}
+ width={Math.max(outlineWidth - 1, 0)}
+ height={Math.max(outlineHeight - 1, 0)}
+ fill="transparent"
+ stroke="white"
+ strokeDasharray={dashed ? "4 4" : undefined}
+ strokeOpacity={0.75}
+ vectorEffect="non-scaling-stroke"
+ style={{ pointerEvents: onPointerDown ? "all" : "none" }}
+ />
+ </svg>
+ );
+}
+
+export function ShapeOutline({
+ center,
+ outlineWidth,
+ outlineHeight,
+ rotation,
+ pathData,
+ cursor,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ center: { x: number; y: number };
+ outlineWidth: number;
+ outlineHeight: number;
+ rotation: number;
+ pathData: string;
+ cursor?: string;
+ onPointerDown?: (event: React.PointerEvent) => void;
+ onPointerMove?: (event: React.PointerEvent) => void;
+ onPointerUp?: (event: React.PointerEvent) => void;
+}) {
+ return (
+ <svg
+ className={cn("absolute overflow-visible", cursor)}
+ aria-hidden="true"
+ focusable="false"
+ style={{
+ left: center.x - outlineWidth / 2,
+ top: center.y - outlineHeight / 2,
+ width: outlineWidth,
+ height: outlineHeight,
+ transform: `rotate(${rotation}deg)`,
+ transformOrigin: "center center",
+ pointerEvents: onPointerDown ? "auto" : "none",
+ }}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ onPointerLeave={onPointerUp}
+ >
+ <path
+ d={pathData}
+ fill="transparent"
+ stroke="white"
+ strokeOpacity={0.75}
+ vectorEffect="non-scaling-stroke"
+ style={{ pointerEvents: onPointerDown ? "all" : "none" }}
+ />
+ </svg>
+ );
+}
+
+export function LineOverlay({
+ start,
+ end,
+ onPointerDown,
+ onPointerMove,
+ onPointerUp,
+}: {
+ start: { x: number; y: number };
+ end: { x: number; y: number };
+ onPointerDown?: (event: React.PointerEvent) => void;
+ onPointerMove?: (event: React.PointerEvent) => void;
+ onPointerUp?: (event: React.PointerEvent) => void;
+}) {
+ const dx = end.x - start.x;
+ const dy = end.y - start.y;
+ const length = Math.sqrt(dx * dx + dy * dy);
+ const angleDeg = (Math.atan2(dy, dx) * 180) / Math.PI;
+ const cx = (start.x + end.x) / 2;
+ const cy = (start.y + end.y) / 2;
+
+ const sharedStyle = {
+ left: cx - length / 2,
+ width: length,
+ transform: `rotate(${angleDeg}deg)`,
+ transformOrigin: "center center",
+ };
+
+ return (
+ <>
+ {onPointerDown && (
+ <div
+ className="absolute"
+ style={{
+ ...sharedStyle,
+ top: cy - LINE_HIT_AREA_SIZE / 2,
+ height: LINE_HIT_AREA_SIZE,
+ pointerEvents: "auto",
+ }}
+ onPointerDown={onPointerDown}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ onPointerLeave={onPointerUp}
+ />
+ )}
+ <div
+ className="pointer-events-none absolute"
+ style={{
+ ...sharedStyle,
+ top: cy - 0.5,
+ height: 1,
+ backgroundColor: "white",
+ opacity: 0.75,
+ }}
+ />
+ </>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/preview/index.tsx b/apps/web/src/components/editor/panels/preview/index.tsx
index df60db01..c625b9bf 100644
--- a/apps/web/src/components/editor/panels/preview/index.tsx
+++ b/apps/web/src/components/editor/panels/preview/index.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useCallback, useMemo, useRef } from "react";
+import { useCallback, useEffect, useMemo, useRef } from "react";
import useDeepCompareEffect from "use-deep-compare-effect";
import { useEditor } from "@/hooks/use-editor";
import { useRafLoop } from "@/hooks/use-raf-loop";
@@ -12,50 +12,70 @@ import { buildScene } from "@/services/renderer/scene-builder";
import { getLastFrameTime } from "@/lib/time";
import { PreviewInteractionOverlay } from "./preview-interaction-overlay";
import { BookmarkNoteOverlay } from "./bookmark-note-overlay";
+import { GuideOverlay } from "./guide-overlay";
import { ContextMenu, ContextMenuTrigger } from "@/components/ui/context-menu";
import { usePreviewStore } from "@/stores/preview-store";
import { PreviewContextMenu } from "./context-menu";
import { PreviewToolbar } from "./toolbar";
+import {
+ PreviewViewportProvider,
+ usePreviewViewportState,
+} from "./preview-viewport";
function usePreviewSize() {
- const editor = useEditor();
- const activeProject = editor.project.getActive();
+ const canvasSize = useEditor(
+ (e) => e.project.getActive()?.settings.canvasSize,
+ );
return {
- width: activeProject?.settings.canvasSize.width,
- height: activeProject?.settings.canvasSize.height,
+ width: canvasSize?.width,
+ height: canvasSize?.height,
};
}
+function normalizeWheelDelta({
+ delta,
+ deltaMode,
+ pageSize,
+}: {
+ delta: number;
+ deltaMode: number;
+ pageSize: number;
+}): number {
+ if (deltaMode === WheelEvent.DOM_DELTA_LINE) {
+ return delta * 16;
+ }
+
+ if (deltaMode === WheelEvent.DOM_DELTA_PAGE) {
+ return delta * pageSize;
+ }
+
+ return delta;
+}
+
export function PreviewPanel() {
const containerRef = useRef<HTMLDivElement>(null);
- const { isFullscreen, toggleFullscreen } = useFullscreen({ containerRef });
+ const { toggleFullscreen } = useFullscreen({ containerRef });
return (
<div
ref={containerRef}
className="panel bg-background relative flex size-full min-h-0 min-w-0 flex-col rounded-sm border"
>
- <div className="flex min-h-0 min-w-0 flex-1 items-center justify-center p-2 pb-0">
- <PreviewCanvas
- onToggleFullscreen={toggleFullscreen}
- containerRef={containerRef}
- />
- <RenderTreeController />
- </div>
- <PreviewToolbar
- isFullscreen={isFullscreen}
+ <PreviewCanvas
+ containerRef={containerRef}
onToggleFullscreen={toggleFullscreen}
/>
+ <RenderTreeController />
</div>
);
}
function RenderTreeController() {
const editor = useEditor();
- const tracks = editor.timeline.getTracks();
- const mediaAssets = editor.media.getAssets();
- const activeProject = editor.project.getActive();
+ const tracks = useEditor((e) => e.timeline.getRenderTracks());
+ const mediaAssets = useEditor((e) => e.media.getAssets());
+ const activeProject = useEditor((e) => e.project.getActive());
const { width, height } = usePreviewSize();
@@ -79,23 +99,30 @@ function RenderTreeController() {
}
function PreviewCanvas({
- onToggleFullscreen,
containerRef,
+ onToggleFullscreen,
}: {
- onToggleFullscreen: () => void;
containerRef: React.RefObject<HTMLElement | null>;
+ onToggleFullscreen: () => void;
}) {
const canvasRef = useRef<HTMLCanvasElement>(null);
- const outerContainerRef = useRef<HTMLDivElement>(null);
- const canvasBoundsRef = useRef<HTMLDivElement>(null);
+ const viewportRef = useRef<HTMLDivElement>(null);
const lastFrameRef = useRef(-1);
const lastSceneRef = useRef<RootNode | null>(null);
const renderingRef = useRef(false);
const { width: nativeWidth, height: nativeHeight } = usePreviewSize();
- const containerSize = useContainerSize({ containerRef: outerContainerRef });
+ const viewportSize = useContainerSize({ containerRef: viewportRef });
const editor = useEditor();
- const activeProject = editor.project.getActive();
+ const activeProject = useEditor((e) => e.project.getActive());
+ const renderTree = useEditor((e) => e.renderer.getRenderTree());
const { overlays } = usePreviewStore();
+ const viewport = usePreviewViewportState({
+ canvasHeight: nativeHeight,
+ canvasWidth: nativeWidth,
+ viewportHeight: viewportSize.height,
+ viewportRef,
+ viewportWidth: viewportSize.width,
+ });
const renderer = useMemo(() => {
return new CanvasRenderer({
@@ -105,37 +132,6 @@ function PreviewCanvas({
});
}, [nativeWidth, nativeHeight, activeProject.settings.fps]);
- const displaySize = useMemo(() => {
- if (
- !nativeWidth ||
- !nativeHeight ||
- containerSize.width === 0 ||
- containerSize.height === 0
- ) {
- return { width: nativeWidth ?? 0, height: nativeHeight ?? 0 };
- }
-
- const paddingBuffer = 4;
- const availableWidth = containerSize.width - paddingBuffer;
- const availableHeight = containerSize.height - paddingBuffer;
-
- const aspectRatio = nativeWidth / nativeHeight;
- const containerAspect = availableWidth / availableHeight;
-
- const displayWidth =
- containerAspect > aspectRatio
- ? availableHeight * aspectRatio
- : availableWidth;
- const displayHeight =
- containerAspect > aspectRatio
- ? availableHeight
- : availableWidth / aspectRatio;
-
- return { width: displayWidth, height: displayHeight };
- }, [nativeWidth, nativeHeight, containerSize.width, containerSize.height]);
-
- const renderTree = editor.renderer.getRenderTree();
-
const render = useCallback(() => {
if (canvasRef.current && renderTree && !renderingRef.current) {
const time = editor.playback.getCurrentTime();
@@ -168,44 +164,130 @@ function PreviewCanvas({
useRafLoop(render);
+ useEffect(() => {
+ const container = viewportRef.current;
+ if (!container) return;
+
+ let pendingZoomDelta = 0;
+ let pendingPanDeltaX = 0;
+ let pendingPanDeltaY = 0;
+ let zoomRafId: ReturnType<typeof requestAnimationFrame> | null = null;
+ let panRafId: ReturnType<typeof requestAnimationFrame> | null = null;
+
+ const onWheel = (event: WheelEvent) => {
+ const normalizedDeltaX = normalizeWheelDelta({
+ delta: event.deltaX,
+ deltaMode: event.deltaMode,
+ pageSize: container.clientWidth,
+ });
+ const normalizedDeltaY = normalizeWheelDelta({
+ delta: event.deltaY,
+ deltaMode: event.deltaMode,
+ pageSize: container.clientHeight,
+ });
+ const isZoomGesture = event.ctrlKey || event.metaKey;
+ if (isZoomGesture) {
+ event.preventDefault();
+ pendingZoomDelta += normalizedDeltaY;
+
+ if (zoomRafId === null) {
+ zoomRafId = requestAnimationFrame(() => {
+ const cappedDelta =
+ Math.sign(pendingZoomDelta) *
+ Math.min(Math.abs(pendingZoomDelta), 30);
+ const zoomFactor = Math.exp(-cappedDelta / 300);
+
+ viewport.scaleZoom({ factor: zoomFactor });
+ pendingZoomDelta = 0;
+ zoomRafId = null;
+ });
+ }
+
+ return;
+ }
+
+ if (!viewport.canPan) {
+ return;
+ }
+
+ if (normalizedDeltaX === 0 && normalizedDeltaY === 0) {
+ return;
+ }
+
+ event.preventDefault();
+ pendingPanDeltaX += normalizedDeltaX;
+ pendingPanDeltaY += normalizedDeltaY;
+
+ if (panRafId === null) {
+ panRafId = requestAnimationFrame(() => {
+ viewport.panByScreenDelta({
+ deltaX: pendingPanDeltaX,
+ deltaY: pendingPanDeltaY,
+ });
+ pendingPanDeltaX = 0;
+ pendingPanDeltaY = 0;
+ panRafId = null;
+ });
+ }
+ };
+
+ container.addEventListener("wheel", onWheel, {
+ capture: true,
+ passive: false,
+ });
+
+ return () => {
+ container.removeEventListener("wheel", onWheel, {
+ capture: true,
+ });
+ if (zoomRafId !== null) {
+ cancelAnimationFrame(zoomRafId);
+ }
+ if (panRafId !== null) {
+ cancelAnimationFrame(panRafId);
+ }
+ };
+ }, [viewport.canPan, viewport.panByScreenDelta, viewport.scaleZoom]);
+
return (
- <div
- ref={outerContainerRef}
- className="relative flex size-full items-center justify-center"
- >
- <ContextMenu>
- <ContextMenuTrigger asChild>
- <div
- ref={canvasBoundsRef}
- className="relative"
- style={{ width: displaySize.width, height: displaySize.height }}
- >
- <canvas
- ref={canvasRef}
- width={nativeWidth}
- height={nativeHeight}
- className="block border"
- style={{
- width: displaySize.width,
- height: displaySize.height,
- background:
- activeProject.settings.background.type === "blur"
- ? "transparent"
- : activeProject?.settings.background.color,
- }}
+ <PreviewViewportProvider value={viewport}>
+ <div className="flex size-full min-h-0 min-w-0 flex-col">
+ <div className="flex min-h-0 min-w-0 flex-1 p-2 pb-0">
+ <ContextMenu>
+ <ContextMenuTrigger asChild>
+ <div
+ ref={viewportRef}
+ className="relative flex size-full min-h-0 min-w-0 items-center justify-center overflow-hidden"
+ >
+ <canvas
+ ref={canvasRef}
+ width={nativeWidth}
+ height={nativeHeight}
+ className="absolute block border"
+ style={{
+ left: viewport.sceneLeft,
+ top: viewport.sceneTop,
+ width: viewport.sceneWidth,
+ height: viewport.sceneHeight,
+ background:
+ activeProject.settings.background.type === "blur"
+ ? "transparent"
+ : activeProject?.settings.background.color,
+ }}
+ />
+ <GuideOverlay />
+ <PreviewInteractionOverlay />
+ {overlays.bookmarks && <BookmarkNoteOverlay />}
+ </div>
+ </ContextMenuTrigger>
+ <PreviewContextMenu
+ onToggleFullscreen={onToggleFullscreen}
+ containerRef={containerRef}
/>
- <PreviewInteractionOverlay
- canvasRef={canvasRef}
- containerRef={canvasBoundsRef}
- />
- {overlays.bookmarks && <BookmarkNoteOverlay />}
- </div>
- </ContextMenuTrigger>
- <PreviewContextMenu
- onToggleFullscreen={onToggleFullscreen}
- containerRef={containerRef}
- />
- </ContextMenu>
- </div>
+ </ContextMenu>
+ </div>
+ <PreviewToolbar onToggleFullscreen={onToggleFullscreen} />
+ </div>
+ </PreviewViewportProvider>
);
}
diff --git a/apps/web/src/components/editor/panels/preview/layout-guide-overlay.tsx b/apps/web/src/components/editor/panels/preview/layout-guide-overlay.tsx
deleted file mode 100644
index 44efb4c8..00000000
--- a/apps/web/src/components/editor/panels/preview/layout-guide-overlay.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-"use client";
-
-import { usePreviewStore } from "@/stores/preview-store";
-import Image from "next/image";
-
-function TikTokGuide() {
- return (
- <div className="pointer-events-none absolute inset-0">
- <Image
- src="/platform-guides/tiktok-blueprint.png"
- alt="TikTok layout guide"
- className="absolute inset-0 size-full object-contain"
- draggable={false}
- fill
- />
- </div>
- );
-}
-
-export function LayoutGuideOverlay() {
- const { layoutGuide } = usePreviewStore();
-
- if (layoutGuide.platform === null) return null;
- if (layoutGuide.platform === "tiktok") return <TikTokGuide />;
-
- return null;
-}
diff --git a/apps/web/src/components/editor/panels/preview/mask-handles.tsx b/apps/web/src/components/editor/panels/preview/mask-handles.tsx
new file mode 100644
index 00000000..0c11f27a
--- /dev/null
+++ b/apps/web/src/components/editor/panels/preview/mask-handles.tsx
@@ -0,0 +1,238 @@
+"use client";
+
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
+import { useMaskHandles } from "@/hooks/use-mask-handles";
+import { masksRegistry } from "@/lib/masks";
+import type { SnapLine } from "@/lib/preview/preview-snap";
+import type { ParamValues } from "@/lib/params";
+import type { RectangleMaskParams } from "@/lib/masks/types";
+import {
+ CornerHandle,
+ EdgeHandle,
+ IconHandle,
+ LineOverlay,
+ BoundingBoxOutline,
+ ShapeOutline,
+} from "./handle-primitives";
+import { Rotate01Icon, FeatherIcon } from "@hugeicons/core-free-icons";
+
+function hasRectangleOutlineParams(
+ params: ParamValues,
+): params is RectangleMaskParams {
+ return (
+ typeof params.centerX === "number" &&
+ typeof params.centerY === "number" &&
+ typeof params.width === "number" &&
+ typeof params.height === "number"
+ );
+}
+
+export function MaskHandles({
+ onSnapLinesChange,
+}: {
+ onSnapLinesChange?: (lines: SnapLine[]) => void;
+}) {
+ const viewport = usePreviewViewport();
+ const {
+ selectedWithMask,
+ handlePositions,
+ linePoints,
+ handlePointerDown,
+ handlePointerMove,
+ handlePointerUp,
+ } = useMaskHandles({ onSnapLinesChange });
+
+ if (!selectedWithMask) return null;
+
+ const toOverlay = ({
+ canvasX,
+ canvasY,
+ }: {
+ canvasX: number;
+ canvasY: number;
+ }) =>
+ viewport.canvasToOverlay({
+ canvasX,
+ canvasY,
+ });
+
+ const def = masksRegistry.get(selectedWithMask.mask.type);
+ const { bounds } = selectedWithMask;
+ const maskRotation = selectedWithMask.mask.params.rotation;
+
+ const { x: scaleX, y: scaleY } = viewport.getDisplayScale();
+
+ const rectangleOutlineProps = hasRectangleOutlineParams(
+ selectedWithMask.mask.params,
+ )
+ ? {
+ center: toOverlay({
+ canvasX:
+ bounds.cx + selectedWithMask.mask.params.centerX * bounds.width,
+ canvasY:
+ bounds.cy + selectedWithMask.mask.params.centerY * bounds.height,
+ }),
+ outlineWidth:
+ selectedWithMask.mask.params.width * bounds.width * scaleX,
+ outlineHeight:
+ selectedWithMask.mask.params.height * bounds.height * scaleY,
+ rotation: maskRotation,
+ }
+ : null;
+
+ const onPointerMove = (event: React.PointerEvent) =>
+ handlePointerMove({ event });
+ const onPointerUp = () => handlePointerUp();
+
+ return (
+ <div
+ className="pointer-events-none absolute inset-0 overflow-hidden"
+ aria-hidden
+ >
+ {def.overlayShape === "line" && linePoints && (
+ <LineOverlay
+ start={toOverlay({
+ canvasX: linePoints.start.x,
+ canvasY: linePoints.start.y,
+ })}
+ end={toOverlay({
+ canvasX: linePoints.end.x,
+ canvasY: linePoints.end.y,
+ })}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: "position" })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ )}
+ {def.overlayShape === "box" && rectangleOutlineProps && (
+ def.buildOverlayPath ? (
+ <>
+ <BoundingBoxOutline {...rectangleOutlineProps} dashed />
+ <ShapeOutline
+ {...rectangleOutlineProps}
+ pathData={def.buildOverlayPath({
+ width: rectangleOutlineProps.outlineWidth,
+ height: rectangleOutlineProps.outlineHeight,
+ })}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: "position" })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ </>
+ ) : (
+ <BoundingBoxOutline
+ {...rectangleOutlineProps}
+ cursor="cursor-move"
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: "position" })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ )
+ )}
+ {handlePositions.map((handle) => {
+ const screen = toOverlay({ canvasX: handle.x, canvasY: handle.y });
+
+ if (handle.id === "rotation") {
+ return (
+ <IconHandle
+ key={handle.id}
+ icon={Rotate01Icon}
+ screen={screen}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ }
+
+ if (handle.id === "feather") {
+ return (
+ <IconHandle
+ key={handle.id}
+ icon={FeatherIcon}
+ screen={screen}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ }
+
+ if (handle.id === "right" || handle.id === "left") {
+ return (
+ <EdgeHandle
+ key={handle.id}
+ edge="right"
+ screen={screen}
+ rotation={maskRotation}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ }
+
+ if (handle.id === "bottom" || handle.id === "top") {
+ return (
+ <EdgeHandle
+ key={handle.id}
+ edge="bottom"
+ screen={screen}
+ rotation={maskRotation}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ }
+
+ if (
+ handle.id === "top-left" ||
+ handle.id === "top-right" ||
+ handle.id === "bottom-left" ||
+ handle.id === "bottom-right" ||
+ handle.id === "scale"
+ ) {
+ return (
+ <CornerHandle
+ key={handle.id}
+ screen={screen}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ }
+
+ return (
+ <CornerHandle
+ key={handle.id}
+ cursor={handle.cursor}
+ screen={screen}
+ onPointerDown={(event) =>
+ handlePointerDown({ event, handleId: handle.id })
+ }
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ })}
+ </div>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/preview/preview-interaction-overlay.tsx b/apps/web/src/components/editor/panels/preview/preview-interaction-overlay.tsx
index 4c33a1a1..65c11726 100644
--- a/apps/web/src/components/editor/panels/preview/preview-interaction-overlay.tsx
+++ b/apps/web/src/components/editor/panels/preview/preview-interaction-overlay.tsx
@@ -1,54 +1,117 @@
+import { useState } from "react";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
import { usePreviewInteraction } from "@/hooks/use-preview-interaction";
+import type { SnapLine } from "@/lib/preview/preview-snap";
import { TransformHandles } from "./transform-handles";
+import { MaskHandles } from "./mask-handles";
import { SnapGuides } from "./snap-guides";
import { TextEditOverlay } from "./text-edit-overlay";
+import { usePropertiesStore } from "../properties/stores/properties-store";
+import { useEditor } from "@/hooks/use-editor";
+
+export function PreviewInteractionOverlay() {
+ const [snapLines, setSnapLines] = useState<SnapLine[]>([]);
+ const editor = useEditor();
+ const viewport = usePreviewViewport();
+ const selectedElements = useEditor((e) => e.selection.getSelectedElements());
+ const activeTabPerType = usePropertiesStore((s) => s.activeTabPerType);
+
+ const selectedRef =
+ selectedElements.length === 1 ? selectedElements[0] : null;
+ const activeTrack = selectedRef
+ ? editor.timeline.getTrackById({ trackId: selectedRef.trackId })
+ : null;
+ const activeElement =
+ activeTrack?.elements.find(
+ (element) => element.id === selectedRef?.elementId,
+ ) ?? null;
+ const isMaskMode = activeElement
+ ? activeTabPerType[activeElement.type] === "masks"
+ : false;
-export function PreviewInteractionOverlay({
- canvasRef,
- containerRef,
-}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- containerRef: React.RefObject<HTMLDivElement | null>;
-}) {
const {
onPointerDown,
onPointerMove,
onPointerUp,
onDoubleClick,
- snapLines,
editingText,
commitTextEdit,
- cancelTextEdit,
- } = usePreviewInteraction({ canvasRef });
+ } = usePreviewInteraction({
+ onSnapLinesChange: setSnapLines,
+ isMaskMode,
+ });
+
+ const handlePointerDown = (event: React.PointerEvent) => {
+ if (viewport.handlePanPointerDown({ event })) {
+ return;
+ }
+
+ onPointerDown(event);
+ };
+
+ const handlePointerMove = (event: React.PointerEvent) => {
+ if (viewport.handlePanPointerMove({ event })) {
+ return;
+ }
+
+ onPointerMove(event);
+ };
+
+ const handlePointerUp = (event: React.PointerEvent) => {
+ if (viewport.handlePanPointerUp({ event })) {
+ return;
+ }
+
+ onPointerUp(event);
+ };
+
+ const handleContextMenu = (e: React.MouseEvent) => {
+ const x = e.nativeEvent.offsetX;
+ const y = e.nativeEvent.offsetY;
+ const outsideCanvas =
+ x < viewport.sceneLeft ||
+ x > viewport.sceneLeft + viewport.sceneWidth ||
+ y < viewport.sceneTop ||
+ y > viewport.sceneTop + viewport.sceneHeight;
+ if (outsideCanvas) {
+ e.stopPropagation();
+ }
+ };
return (
<div className="absolute inset-0">
- {/* biome-ignore lint/a11y/noStaticElementInteractions: canvas overlay, pointer-only interaction */}
<div
className="absolute inset-0 pointer-events-auto"
- onPointerDown={onPointerDown}
- onPointerMove={onPointerMove}
- onPointerUp={onPointerUp}
+ role="application"
+ aria-label="Preview canvas"
+ style={{
+ cursor: viewport.isPanning
+ ? "grabbing"
+ : viewport.canPan
+ ? "default"
+ : undefined,
+ }}
+ onPointerDown={handlePointerDown}
+ onPointerMove={handlePointerMove}
+ onPointerUp={handlePointerUp}
+ onPointerCancel={handlePointerUp}
onDoubleClick={onDoubleClick}
+ onDragStart={(e) => e.preventDefault()}
+ onContextMenu={handleContextMenu}
/>
{editingText ? (
<TextEditOverlay
- canvasRef={canvasRef}
- containerRef={containerRef}
trackId={editingText.trackId}
elementId={editingText.elementId}
element={editingText.element}
onCommit={commitTextEdit}
- onCancel={cancelTextEdit}
/>
+ ) : isMaskMode ? (
+ <MaskHandles onSnapLinesChange={setSnapLines} />
) : (
- <TransformHandles canvasRef={canvasRef} containerRef={containerRef} />
+ <TransformHandles onSnapLinesChange={setSnapLines} />
)}
- <SnapGuides
- lines={snapLines}
- canvasRef={canvasRef}
- containerRef={containerRef}
- />
+ <SnapGuides lines={snapLines} />
</div>
);
}
diff --git a/apps/web/src/components/editor/panels/preview/preview-viewport.tsx b/apps/web/src/components/editor/panels/preview/preview-viewport.tsx
new file mode 100644
index 00000000..e38183af
--- /dev/null
+++ b/apps/web/src/components/editor/panels/preview/preview-viewport.tsx
@@ -0,0 +1,576 @@
+"use client";
+
+import {
+ createContext,
+ useCallback,
+ useContext,
+ useEffect,
+ useMemo,
+ useRef,
+ useState,
+} from "react";
+import {
+ canvasToOverlay,
+ getDisplayScale,
+ positionToOverlay,
+ screenPixelsToLogicalThreshold,
+ screenToCanvas,
+} from "@/lib/preview/preview-coords";
+import { clamp, isNearlyEqual } from "@/utils/math";
+import { PREVIEW_ZOOM } from "@/constants/editor-constants";
+
+const MIDDLE_MOUSE_BUTTON = 1;
+const IS_AT_FIT_EPSILON = 0.001;
+const IS_AT_ACTUAL_SIZE_EPSILON = 0.01;
+
+interface PreviewViewportContextValue {
+ canPan: boolean;
+ isAtFit: boolean;
+ isAtActualSize: boolean;
+ isPanning: boolean;
+ sceneHeight: number;
+ sceneLeft: number;
+ sceneTop: number;
+ sceneWidth: number;
+ zoomPercent: number;
+ canvasToOverlay: ({
+ canvasX,
+ canvasY,
+ }: {
+ canvasX: number;
+ canvasY: number;
+ }) => { x: number; y: number };
+ fitToScreen: () => void;
+ getDisplayScale: () => { x: number; y: number };
+ handlePanPointerDown: ({ event }: { event: React.PointerEvent }) => boolean;
+ handlePanPointerMove: ({ event }: { event: React.PointerEvent }) => boolean;
+ handlePanPointerUp: ({ event }: { event: React.PointerEvent }) => boolean;
+ positionToOverlay: ({
+ positionX,
+ positionY,
+ }: {
+ positionX: number;
+ positionY: number;
+ }) => { x: number; y: number };
+ panByScreenDelta: ({
+ deltaX,
+ deltaY,
+ }: {
+ deltaX: number;
+ deltaY: number;
+ }) => void;
+ resetPan: () => void;
+ scaleZoom: ({ factor }: { factor: number }) => void;
+ screenPixelsToLogicalThreshold: ({
+ screenPixels,
+ }: {
+ screenPixels: number;
+ }) => { x: number; y: number };
+ screenToCanvas: ({
+ clientX,
+ clientY,
+ }: {
+ clientX: number;
+ clientY: number;
+ }) => { x: number; y: number } | null;
+ setActualSize: () => void;
+ setViewportPercent: ({ percent }: { percent: number }) => void;
+ zoomIn: () => void;
+ zoomOut: () => void;
+}
+
+const PreviewViewportContext =
+ createContext<PreviewViewportContextValue | null>(null);
+
+interface PreviewViewportProviderProps {
+ children: React.ReactNode;
+ value: PreviewViewportContextValue;
+}
+
+interface PreviewViewportStateOptions {
+ canvasHeight: number;
+ canvasWidth: number;
+ viewportHeight: number;
+ viewportRef: React.RefObject<HTMLDivElement | null>;
+ viewportWidth: number;
+}
+
+interface PanSession {
+ centerX: number;
+ centerY: number;
+ clientX: number;
+ clientY: number;
+ pointerId: number;
+}
+
+function getClampedCenterAxis({
+ axisSize,
+ center,
+ scale,
+ viewportSize,
+}: {
+ axisSize: number;
+ center: number;
+ scale: number;
+ viewportSize: number;
+}): number {
+ if (axisSize <= 0 || scale <= 0 || viewportSize <= 0) {
+ return axisSize / 2;
+ }
+
+ const visibleHalfSpan = viewportSize / (2 * scale);
+ if (visibleHalfSpan >= axisSize / 2) {
+ return axisSize / 2;
+ }
+
+ return clamp({
+ value: center,
+ min: visibleHalfSpan,
+ max: axisSize - visibleHalfSpan,
+ });
+}
+
+function clampViewportCenter({
+ canvasHeight,
+ canvasWidth,
+ centerX,
+ centerY,
+ scale,
+ viewportHeight,
+ viewportWidth,
+}: {
+ canvasHeight: number;
+ canvasWidth: number;
+ centerX: number;
+ centerY: number;
+ scale: number;
+ viewportHeight: number;
+ viewportWidth: number;
+}): { x: number; y: number } {
+ return {
+ x: getClampedCenterAxis({
+ center: centerX,
+ axisSize: canvasWidth,
+ scale,
+ viewportSize: viewportWidth,
+ }),
+ y: getClampedCenterAxis({
+ center: centerY,
+ axisSize: canvasHeight,
+ scale,
+ viewportSize: viewportHeight,
+ }),
+ };
+}
+
+function getFitScale({
+ canvasHeight,
+ canvasWidth,
+ viewportHeight,
+ viewportWidth,
+}: {
+ canvasHeight: number;
+ canvasWidth: number;
+ viewportHeight: number;
+ viewportWidth: number;
+}): number {
+ if (
+ canvasHeight <= 0 ||
+ canvasWidth <= 0 ||
+ viewportHeight <= 0 ||
+ viewportWidth <= 0
+ ) {
+ return 1;
+ }
+
+ return Math.min(viewportWidth / canvasWidth, viewportHeight / canvasHeight);
+}
+
+function getClampedZoom({ zoom }: { zoom: number }): number {
+ return clamp({
+ value: zoom,
+ min: PREVIEW_ZOOM.min,
+ max: PREVIEW_ZOOM.max,
+ });
+}
+
+export function PreviewViewportProvider({
+ children,
+ value,
+}: PreviewViewportProviderProps) {
+ return (
+ <PreviewViewportContext.Provider value={value}>
+ {children}
+ </PreviewViewportContext.Provider>
+ );
+}
+
+export function usePreviewViewportState({
+ canvasHeight,
+ canvasWidth,
+ viewportHeight,
+ viewportRef,
+ viewportWidth,
+}: PreviewViewportStateOptions): PreviewViewportContextValue {
+ const [zoom, setZoomState] = useState(1);
+ const [center, setCenter] = useState(() => ({
+ x: canvasWidth / 2,
+ y: canvasHeight / 2,
+ }));
+ const [isPanning, setIsPanning] = useState(false);
+ const panSessionRef = useRef<PanSession | null>(null);
+ const centerRef = useRef(center);
+ centerRef.current = center;
+
+ const fitScale = useMemo(
+ () =>
+ getFitScale({
+ canvasHeight,
+ canvasWidth,
+ viewportHeight,
+ viewportWidth,
+ }),
+ [canvasHeight, canvasWidth, viewportHeight, viewportWidth],
+ );
+ const viewportScale = fitScale * zoom;
+ const geometry = useMemo(
+ () => ({
+ canvasHeight,
+ canvasWidth,
+ centerX: center.x,
+ centerY: center.y,
+ scale: viewportScale,
+ viewportHeight,
+ viewportWidth,
+ }),
+ [
+ canvasHeight,
+ canvasWidth,
+ center.x,
+ center.y,
+ viewportHeight,
+ viewportScale,
+ viewportWidth,
+ ],
+ );
+
+ const scaleZoom = useCallback(({ factor }: { factor: number }) => {
+ setZoomState((previousZoom) =>
+ getClampedZoom({
+ zoom: previousZoom * factor,
+ }),
+ );
+ }, []);
+
+ const panByScreenDelta = useCallback(
+ ({ deltaX, deltaY }: { deltaX: number; deltaY: number }) => {
+ if (zoom <= 1 || (deltaX === 0 && deltaY === 0)) {
+ return;
+ }
+
+ setCenter((previousCenter) =>
+ clampViewportCenter({
+ canvasHeight,
+ canvasWidth,
+ centerX: previousCenter.x + deltaX / viewportScale,
+ centerY: previousCenter.y + deltaY / viewportScale,
+ scale: viewportScale,
+ viewportHeight,
+ viewportWidth,
+ }),
+ );
+ },
+ [
+ canvasHeight,
+ canvasWidth,
+ viewportHeight,
+ viewportScale,
+ viewportWidth,
+ zoom,
+ ],
+ );
+
+ const resetPan = useCallback(() => {
+ setCenter({
+ x: canvasWidth / 2,
+ y: canvasHeight / 2,
+ });
+ }, [canvasHeight, canvasWidth]);
+
+ const fitToScreen = useCallback(() => {
+ setZoomState(1);
+ setCenter({
+ x: canvasWidth / 2,
+ y: canvasHeight / 2,
+ });
+ }, [canvasHeight, canvasWidth]);
+
+ const zoomIn = useCallback(() => {
+ setZoomState((previousZoom) =>
+ getClampedZoom({
+ zoom: previousZoom * PREVIEW_ZOOM.step,
+ }),
+ );
+ }, []);
+
+ const zoomOut = useCallback(() => {
+ setZoomState((previousZoom) =>
+ getClampedZoom({
+ zoom: previousZoom / PREVIEW_ZOOM.step,
+ }),
+ );
+ }, []);
+
+ const setActualSize = useCallback(() => {
+ const actualSizeZoom = fitScale > 0 ? 1 / fitScale : 1;
+ setZoomState(
+ getClampedZoom({
+ zoom: actualSizeZoom,
+ }),
+ );
+ }, [fitScale]);
+
+ const setViewportPercent = useCallback(
+ ({ percent }: { percent: number }) => {
+ const targetZoom = fitScale > 0 ? percent / 100 / fitScale : 1;
+ setZoomState(getClampedZoom({ zoom: targetZoom }));
+ },
+ [fitScale],
+ );
+
+ const getViewportRect = useCallback(
+ () => viewportRef.current?.getBoundingClientRect() ?? null,
+ [viewportRef],
+ );
+
+ const screenToCanvasWithViewport = useCallback(
+ ({ clientX, clientY }: { clientX: number; clientY: number }) => {
+ const viewportRect = getViewportRect();
+ if (!viewportRect) return null;
+
+ return screenToCanvas({
+ clientX,
+ clientY,
+ geometry,
+ viewportRect,
+ });
+ },
+ [getViewportRect, geometry],
+ );
+
+ const canvasToOverlayWithViewport = useCallback(
+ ({ canvasX, canvasY }: { canvasX: number; canvasY: number }) =>
+ canvasToOverlay({
+ canvasX,
+ canvasY,
+ geometry,
+ }),
+ [geometry],
+ );
+
+ const positionToOverlayWithViewport = useCallback(
+ ({ positionX, positionY }: { positionX: number; positionY: number }) =>
+ positionToOverlay({
+ geometry,
+ positionX,
+ positionY,
+ }),
+ [geometry],
+ );
+
+ const getDisplayScaleWithViewport = useCallback(
+ () => getDisplayScale({ geometry }),
+ [geometry],
+ );
+
+ const getLogicalThresholdForScreenPixels = useCallback(
+ ({ screenPixels }: { screenPixels: number }) =>
+ screenPixelsToLogicalThreshold({
+ geometry,
+ screenPixels,
+ }),
+ [geometry],
+ );
+
+ const handlePanPointerDown = useCallback(
+ ({ event }: { event: React.PointerEvent }) => {
+ if (event.button !== MIDDLE_MOUSE_BUTTON || zoom <= 1) {
+ return false;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ panSessionRef.current = {
+ centerX: centerRef.current.x,
+ centerY: centerRef.current.y,
+ clientX: event.clientX,
+ clientY: event.clientY,
+ pointerId: event.pointerId,
+ };
+ setIsPanning(true);
+ (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);
+ return true;
+ },
+ [zoom],
+ );
+
+ const handlePanPointerMove = useCallback(
+ ({ event }: { event: React.PointerEvent }) => {
+ const panSession = panSessionRef.current;
+ if (!panSession) {
+ return false;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ const deltaX = event.clientX - panSession.clientX;
+ const deltaY = event.clientY - panSession.clientY;
+ const nextCenter = clampViewportCenter({
+ canvasHeight,
+ canvasWidth,
+ centerX: panSession.centerX - deltaX / viewportScale,
+ centerY: panSession.centerY - deltaY / viewportScale,
+ scale: viewportScale,
+ viewportHeight,
+ viewportWidth,
+ });
+
+ setCenter(nextCenter);
+ return true;
+ },
+ [canvasHeight, canvasWidth, viewportHeight, viewportScale, viewportWidth],
+ );
+
+ const handlePanPointerUp = useCallback(
+ ({ event }: { event: React.PointerEvent }) => {
+ const panSession = panSessionRef.current;
+ if (!panSession) {
+ return false;
+ }
+
+ if (
+ (event.currentTarget as HTMLElement).hasPointerCapture(
+ panSession.pointerId,
+ )
+ ) {
+ (event.currentTarget as HTMLElement).releasePointerCapture(
+ panSession.pointerId,
+ );
+ }
+
+ panSessionRef.current = null;
+ setIsPanning(false);
+ return true;
+ },
+ [],
+ );
+
+ useEffect(() => {
+ setZoomState(1);
+ setCenter({
+ x: canvasWidth / 2,
+ y: canvasHeight / 2,
+ });
+ panSessionRef.current = null;
+ setIsPanning(false);
+ }, [canvasHeight, canvasWidth]);
+
+ useEffect(() => {
+ setCenter((previousCenter) =>
+ clampViewportCenter({
+ canvasHeight,
+ canvasWidth,
+ centerX: previousCenter.x,
+ centerY: previousCenter.y,
+ scale: viewportScale,
+ viewportHeight,
+ viewportWidth,
+ }),
+ );
+ }, [canvasHeight, canvasWidth, viewportHeight, viewportScale, viewportWidth]);
+
+ const sceneWidth = canvasWidth * viewportScale;
+ const sceneHeight = canvasHeight * viewportScale;
+ const sceneLeft = viewportWidth / 2 - center.x * viewportScale;
+ const sceneTop = viewportHeight / 2 - center.y * viewportScale;
+ const canPan = zoom > 1;
+ const zoomPercent = Math.round(viewportScale * 100);
+
+ return useMemo(
+ () => ({
+ canPan,
+ isAtActualSize: isNearlyEqual({
+ leftValue: viewportScale,
+ rightValue: 1,
+ epsilon: IS_AT_ACTUAL_SIZE_EPSILON,
+ }),
+ isAtFit: isNearlyEqual({
+ leftValue: zoom,
+ rightValue: 1,
+ epsilon: IS_AT_FIT_EPSILON,
+ }),
+ isPanning,
+ sceneHeight,
+ sceneLeft,
+ sceneTop,
+ sceneWidth,
+ zoomPercent,
+ canvasToOverlay: canvasToOverlayWithViewport,
+ fitToScreen,
+ getDisplayScale: getDisplayScaleWithViewport,
+ handlePanPointerDown,
+ handlePanPointerMove,
+ handlePanPointerUp,
+ panByScreenDelta,
+ positionToOverlay: positionToOverlayWithViewport,
+ resetPan,
+ scaleZoom,
+ screenPixelsToLogicalThreshold: getLogicalThresholdForScreenPixels,
+ screenToCanvas: screenToCanvasWithViewport,
+ setActualSize,
+ setViewportPercent,
+ zoomIn,
+ zoomOut,
+ }),
+ [
+ canPan,
+ viewportScale,
+ zoom,
+ isPanning,
+ sceneHeight,
+ sceneLeft,
+ sceneTop,
+ sceneWidth,
+ zoomPercent,
+ canvasToOverlayWithViewport,
+ fitToScreen,
+ getDisplayScaleWithViewport,
+ handlePanPointerDown,
+ handlePanPointerMove,
+ handlePanPointerUp,
+ panByScreenDelta,
+ positionToOverlayWithViewport,
+ resetPan,
+ scaleZoom,
+ getLogicalThresholdForScreenPixels,
+ screenToCanvasWithViewport,
+ setActualSize,
+ setViewportPercent,
+ zoomIn,
+ zoomOut,
+ ],
+ );
+}
+
+export function usePreviewViewport() {
+ const context = useContext(PreviewViewportContext);
+ if (!context) {
+ throw new Error(
+ "usePreviewViewport must be used within PreviewViewportProvider",
+ );
+ }
+
+ return context;
+}
diff --git a/apps/web/src/components/editor/panels/preview/snap-guides.tsx b/apps/web/src/components/editor/panels/preview/snap-guides.tsx
index 4aa714a1..744304ea 100644
--- a/apps/web/src/components/editor/panels/preview/snap-guides.tsx
+++ b/apps/web/src/components/editor/panels/preview/snap-guides.tsx
@@ -1,43 +1,25 @@
"use client";
-import { useEditor } from "@/hooks/use-editor";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
import type { SnapLine } from "@/lib/preview/preview-snap";
-import { positionToOverlay } from "@/lib/preview/preview-coords";
-export function SnapGuides({
- lines,
- canvasRef,
- containerRef,
-}: {
- lines: SnapLine[];
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- containerRef: React.RefObject<HTMLDivElement | null>;
-}) {
- const editor = useEditor();
- const canvasSize = editor.project.getActive().settings.canvasSize;
- const canvasRect = canvasRef.current?.getBoundingClientRect();
- const containerRect = containerRef.current?.getBoundingClientRect();
+export function SnapGuides({ lines }: { lines: SnapLine[] }) {
+ const viewport = usePreviewViewport();
- if (!canvasRect || !containerRect || lines.length === 0) {
+ if (lines.length === 0) {
return null;
}
const toOverlayX = (logicalX: number) =>
- positionToOverlay({
+ viewport.positionToOverlay({
positionX: logicalX,
positionY: 0,
- canvasRect,
- containerRect,
- canvasSize,
}).x;
const toOverlayY = (logicalY: number) =>
- positionToOverlay({
+ viewport.positionToOverlay({
positionX: 0,
positionY: logicalY,
- canvasRect,
- containerRect,
- canvasSize,
}).y;
return (
diff --git a/apps/web/src/components/editor/panels/preview/text-edit-overlay.tsx b/apps/web/src/components/editor/panels/preview/text-edit-overlay.tsx
index 26649b26..d3c61a24 100644
--- a/apps/web/src/components/editor/panels/preview/text-edit-overlay.tsx
+++ b/apps/web/src/components/editor/panels/preview/text-edit-overlay.tsx
@@ -1,38 +1,89 @@
"use client";
import { useCallback, useEffect, useRef } from "react";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
import { useEditor } from "@/hooks/use-editor";
-import type { TextElement } from "@/types/timeline";
+import type { TextElement } from "@/lib/timeline";
import {
- positionToOverlay,
- getDisplayScale,
-} from "@/lib/preview/preview-coords";
-import {
- DEFAULT_LINE_HEIGHT,
FONT_SIZE_SCALE_REFERENCE,
} from "@/constants/text-constants";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import {
+ getMetricAscent,
+ getMetricDescent,
+ setCanvasLetterSpacing,
+} from "@/lib/text/layout";
+
+let cachedCanvas: HTMLCanvasElement | null = null;
+
+function getMeasurementContext(): CanvasRenderingContext2D | null {
+ if (!cachedCanvas) cachedCanvas = document.createElement("canvas");
+ return cachedCanvas.getContext("2d");
+}
+
+/**
+ * Uses fontBoundingBox metrics (which CSS uses for line box layout) rather than
+ * actualBoundingBox to model where the browser places the baseline within the
+ * line box, then measures actual glyph bounds to find the visual center.
+ */
+function measureCSSVisualCenterOffset({
+ lines,
+ fontString,
+ letterSpacingPx,
+ lineHeightPx,
+ displayFontSize,
+}: {
+ lines: string[];
+ fontString: string;
+ letterSpacingPx: number;
+ lineHeightPx: number;
+ displayFontSize: number;
+}): number {
+ const ctx = getMeasurementContext();
+ if (!ctx) return 0;
+
+ ctx.font = fontString;
+ ctx.textBaseline = "alphabetic";
+ setCanvasLetterSpacing({ ctx, letterSpacingPx });
+
+ const probe = ctx.measureText("M");
+ const fontAscent = probe.fontBoundingBoxAscent ?? displayFontSize * 0.8;
+ const fontDescent = probe.fontBoundingBoxDescent ?? displayFontSize * 0.2;
+ const halfLeading = (lineHeightPx - fontAscent - fontDescent) / 2;
-const TEXT_BACKGROUND_PADDING = "4px 8px";
-const TEXT_EDIT_VERTICAL_OFFSET_EM = 0.06;
+ let visualTop = Number.POSITIVE_INFINITY;
+ let visualBottom = Number.NEGATIVE_INFINITY;
+
+ for (let i = 0; i < lines.length; i++) {
+ const metrics = ctx.measureText(lines[i] || " ");
+ const baseline = i * lineHeightPx + halfLeading + fontAscent;
+ visualTop = Math.min(
+ visualTop,
+ baseline - getMetricAscent({ metrics, fallbackFontSize: displayFontSize }),
+ );
+ visualBottom = Math.max(
+ visualBottom,
+ baseline + getMetricDescent({ metrics, fallbackFontSize: displayFontSize }),
+ );
+ }
+
+ const cssBlockHeight = lines.length * lineHeightPx;
+ return (visualTop + visualBottom) / 2 - cssBlockHeight / 2;
+}
export function TextEditOverlay({
- canvasRef,
- containerRef,
trackId,
elementId,
element,
onCommit,
- onCancel,
}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- containerRef: React.RefObject<HTMLDivElement | null>;
trackId: string;
elementId: string;
element: TextElement;
onCommit: () => void;
- onCancel: () => void;
}) {
const editor = useEditor();
+ const viewport = usePreviewViewport();
const divRef = useRef<HTMLDivElement>(null);
useEffect(() => {
@@ -60,59 +111,67 @@ export function TextEditOverlay({
const { key } = event;
if (key === "Escape") {
event.preventDefault();
- onCancel();
+ onCommit();
return;
}
},
- [onCancel],
+ [onCommit],
);
- const canvasRect = canvasRef.current?.getBoundingClientRect();
- const containerRect = containerRef.current?.getBoundingClientRect();
const canvasSize = editor.project.getActive().settings.canvasSize;
- if (!canvasRect || !containerRect || !canvasSize) return null;
+ if (!canvasSize) return null;
- const { x: posX, y: posY } = positionToOverlay({
+ const { x: posX, y: posY } = viewport.positionToOverlay({
positionX: element.transform.position.x,
positionY: element.transform.position.y,
- canvasRect,
- containerRect,
- canvasSize,
});
- const { x: displayScaleX } = getDisplayScale({
- canvasRect,
- canvasSize,
- });
+ const { x: displayScaleX } = viewport.getDisplayScale();
const displayFontSize =
element.fontSize *
(canvasSize.height / FONT_SIZE_SCALE_REFERENCE) *
displayScaleX;
- const verticalAlignmentOffset =
- displayFontSize * TEXT_EDIT_VERTICAL_OFFSET_EM;
-
- const lineHeight = element.lineHeight ?? DEFAULT_LINE_HEIGHT;
+ const lineHeight = element.lineHeight ?? DEFAULTS.text.lineHeight;
const fontWeight = element.fontWeight === "bold" ? "bold" : "normal";
const fontStyle = element.fontStyle === "italic" ? "italic" : "normal";
- const letterSpacing = element.letterSpacing ?? 0;
+ const displayLetterSpacing = (element.letterSpacing ?? 0) * displayScaleX;
+ const lineHeightPx = displayFontSize * lineHeight;
+ const lines = (element.content || "").split("\n");
+ const fontString = `${fontStyle} ${fontWeight} ${displayFontSize}px "${element.fontFamily}", sans-serif`;
+
+ const cssVisualCenterOffset = measureCSSVisualCenterOffset({
+ lines,
+ fontString,
+ letterSpacingPx: displayLetterSpacing,
+ lineHeightPx,
+ displayFontSize,
+ });
+
+ const bg = element.background;
const shouldShowBackground =
- element.background.enabled &&
- element.background.color &&
- element.background.color !== "transparent";
- const backgroundColor = shouldShowBackground
- ? element.background.color
- : "transparent";
+ bg.enabled && bg.color && bg.color !== "transparent";
+ const fontSizeRatio = element.fontSize / DEFAULTS.text.element.fontSize;
+ const displayPaddingX = shouldShowBackground
+ ? (bg.paddingX ?? DEFAULTS.text.background.paddingX) *
+ fontSizeRatio *
+ displayScaleX
+ : 0;
+ const displayPaddingY = shouldShowBackground
+ ? (bg.paddingY ?? DEFAULTS.text.background.paddingY) *
+ fontSizeRatio *
+ displayScaleX
+ : 0;
return (
<div
className="absolute"
style={{
left: posX,
- top: posY - verticalAlignmentOffset,
- transform: `translate(-50%, -50%) scale(${element.transform.scale}) rotate(${element.transform.rotate}deg)`,
+ top: posY - cssVisualCenterOffset,
+ transform: `translate(-50%, -50%) scale(${element.transform.scaleX}, ${element.transform.scaleY}) rotate(${element.transform.rotate}deg)`,
transformOrigin: "center center",
}}
>
@@ -131,13 +190,15 @@ export function TextEditOverlay({
fontWeight,
fontStyle,
textAlign: element.textAlign,
- letterSpacing: `${letterSpacing}px`,
+ letterSpacing: `${displayLetterSpacing}px`,
lineHeight,
color: element.color,
- backgroundColor,
- minHeight: displayFontSize * lineHeight,
+ backgroundColor: shouldShowBackground ? bg.color : "transparent",
+ minHeight: lineHeightPx,
textDecoration: element.textDecoration ?? "none",
- padding: shouldShowBackground ? TEXT_BACKGROUND_PADDING : 0,
+ padding: shouldShowBackground
+ ? `${displayPaddingY}px ${displayPaddingX}px`
+ : 0,
minWidth: 1,
}}
onInput={handleInput}
diff --git a/apps/web/src/components/editor/panels/preview/toolbar.tsx b/apps/web/src/components/editor/panels/preview/toolbar.tsx
index 7f5cd9bc..56cb784a 100644
--- a/apps/web/src/components/editor/panels/preview/toolbar.tsx
+++ b/apps/web/src/components/editor/panels/preview/toolbar.tsx
@@ -1,5 +1,6 @@
"use client";
+import { useState, useEffect } from "react";
import { useEditor } from "@/hooks/use-editor";
import { formatTimeCode } from "@/lib/time";
import { invokeAction } from "@/lib/actions";
@@ -7,74 +8,144 @@ import { EditableTimecode } from "@/components/editable-timecode";
import { Button } from "@/components/ui/button";
import {
FullScreenIcon,
+ GridTableIcon,
PauseIcon,
PlayIcon,
} from "@hugeicons/core-free-icons";
import { HugeiconsIcon } from "@hugeicons/react";
-import { OcSocialIcon } from "@opencut/ui/icons";
+import { getGuideById } from "@/lib/guides";
import { Separator } from "@/components/ui/separator";
+import {
+ Select,
+ SelectTrigger,
+ SelectContent,
+ SelectItem,
+ SelectSeparator,
+} from "@/components/ui/select";
+import { PREVIEW_ZOOM_PRESETS } from "@/constants/editor-constants";
+import { usePreviewViewport } from "./preview-viewport";
+import { GridPopover } from "./guide-popover";
+import { usePreviewStore } from "@/stores/preview-store";
export function PreviewToolbar({
- isFullscreen,
onToggleFullscreen,
}: {
- isFullscreen: boolean;
onToggleFullscreen: () => void;
}) {
- const editor = useEditor();
- const isPlaying = editor.playback.getIsPlaying();
- const currentTime = editor.playback.getCurrentTime();
- const totalDuration = editor.timeline.getTotalDuration();
- const fps = editor.project.getActive().settings.fps;
+ const activeGuide = usePreviewStore((state) => state.activeGuide);
+ const activeGuideDefinition = getGuideById(activeGuide);
return (
<div className="grid grid-cols-[1fr_auto_1fr] items-center pb-3 pt-5 px-5">
- <div className="flex items-center">
- <EditableTimecode
- time={currentTime}
- duration={totalDuration}
- format="HH:MM:SS:FF"
- fps={fps}
- onTimeChange={({ time }) => editor.playback.seek({ time })}
- className="text-center"
- />
- <span className="text-muted-foreground px-2 font-mono text-xs">/</span>
- <span className="text-muted-foreground font-mono text-xs">
- {formatTimeCode({
- timeInSeconds: totalDuration,
- format: "HH:MM:SS:FF",
- fps,
- })}
- </span>
- </div>
-
- <Button
- variant="text"
- size="icon"
- onClick={() => invokeAction("toggle-play")}
- >
- <HugeiconsIcon icon={isPlaying ? PauseIcon : PlayIcon} />
- </Button>
-
+ <TimecodeDisplay />
+ <PlayPauseButton />
<div className="justify-self-end flex items-center gap-2.5">
- <Button
- variant="secondary"
- size="sm"
- className="[&_svg]:size-auto px-1 h-7"
- onClick={onToggleFullscreen}
- title={isFullscreen ? "Exit fullscreen" : "Enter fullscreen"}
- >
- <OcSocialIcon size={20} />
- </Button>
+ <ZoomSelect />
<Separator orientation="vertical" className="h-4" />
- <Button
- variant="text"
- onClick={onToggleFullscreen}
- title={isFullscreen ? "Exit fullscreen" : "Enter fullscreen"}
- >
+ <GridPopover>
+ <Button
+ variant={activeGuideDefinition ? "secondary" : "text"}
+ size="icon"
+ >
+ {activeGuideDefinition ? (
+ activeGuideDefinition.renderTriggerIcon()
+ ) : (
+ <HugeiconsIcon icon={GridTableIcon} />
+ )}
+ </Button>
+ </GridPopover>
+ <Button variant="text" onClick={onToggleFullscreen}>
<HugeiconsIcon icon={FullScreenIcon} />
</Button>
</div>
</div>
);
}
+
+function TimecodeDisplay() {
+ const editor = useEditor();
+ const totalDuration = useEditor((e) => e.timeline.getTotalDuration());
+ const fps = useEditor((e) => e.project.getActive().settings.fps);
+ const [currentTime, setCurrentTime] = useState(() =>
+ editor.playback.getCurrentTime(),
+ );
+
+ useEffect(() => {
+ const handler = (e: Event) =>
+ setCurrentTime((e as CustomEvent<{ time: number }>).detail.time);
+ window.addEventListener("playback-update", handler);
+ window.addEventListener("playback-seek", handler);
+ return () => {
+ window.removeEventListener("playback-update", handler);
+ window.removeEventListener("playback-seek", handler);
+ };
+ }, []);
+
+ return (
+ <div className="flex items-center">
+ <EditableTimecode
+ time={currentTime}
+ duration={totalDuration}
+ format="HH:MM:SS:FF"
+ fps={fps}
+ onTimeChange={({ time }) => editor.playback.seek({ time })}
+ className="text-center"
+ />
+ <span className="text-muted-foreground px-2 font-mono text-xs">/</span>
+ <span className="text-muted-foreground font-mono text-xs">
+ {formatTimeCode({
+ timeInSeconds: totalDuration,
+ format: "HH:MM:SS:FF",
+ fps,
+ })}
+ </span>
+ </div>
+ );
+}
+
+function ZoomSelect() {
+ const { isAtFit, zoomPercent, fitToScreen, setViewportPercent } =
+ usePreviewViewport();
+
+ const displayLabel = isAtFit ? "Fit" : `${zoomPercent}%`;
+
+ const onValueChange = (value: string) => {
+ if (value === "fit") {
+ fitToScreen();
+ } else {
+ setViewportPercent({ percent: Number(value) });
+ }
+ };
+
+ return (
+ <Select
+ value={isAtFit ? "fit" : String(zoomPercent)}
+ onValueChange={onValueChange}
+ >
+ <SelectTrigger className="tabular-nums">{displayLabel}</SelectTrigger>
+ <SelectContent>
+ <SelectItem value="fit">Fit</SelectItem>
+ <SelectSeparator />
+ {PREVIEW_ZOOM_PRESETS.map((preset) => (
+ <SelectItem key={preset} value={String(preset)}>
+ {preset}%
+ </SelectItem>
+ ))}
+ </SelectContent>
+ </Select>
+ );
+}
+
+function PlayPauseButton() {
+ const isPlaying = useEditor((e) => e.playback.getIsPlaying());
+
+ return (
+ <Button
+ variant="text"
+ size="icon"
+ onClick={() => invokeAction("toggle-play")}
+ >
+ <HugeiconsIcon icon={isPlaying ? PauseIcon : PlayIcon} />
+ </Button>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/preview/transform-handles.tsx b/apps/web/src/components/editor/panels/preview/transform-handles.tsx
index 2fcf8096..88332625 100644
--- a/apps/web/src/components/editor/panels/preview/transform-handles.tsx
+++ b/apps/web/src/components/editor/panels/preview/transform-handles.tsx
@@ -1,112 +1,55 @@
"use client";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
import { useTransformHandles } from "@/hooks/use-transform-handles";
-import { useEditor } from "@/hooks/use-editor";
import { isVisualElement } from "@/lib/timeline/element-utils";
-import { SnapGuides } from "./snap-guides";
-import { canvasToOverlay, getDisplayScale } from "@/lib/preview/preview-coords";
-import type { ElementBounds } from "@/lib/preview/element-bounds";
-import { cn } from "@/utils/ui";
-import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ getCornerPosition,
+ getEdgeHandlePosition,
+ getRotationHandlePosition,
+ type Corner,
+ type Edge,
+} from "@/lib/preview/element-bounds";
+import type { OnSnapLinesChange } from "@/hooks/use-preview-interaction";
+import {
+ BoundingBoxOutline,
+ CornerHandle,
+ EdgeHandle,
+ IconHandle,
+ getResizeCursor,
+} from "./handle-primitives";
import { Rotate01Icon } from "@hugeicons/core-free-icons";
-const HANDLE_SIZE = 10;
-const ROTATION_HANDLE_OFFSET = 24;
-const ROTATION_HANDLE_RADIUS = 10;
-const CORNER_HIT_AREA_SIZE = 18;
-
-type Corner = "top-left" | "top-right" | "bottom-left" | "bottom-right";
const CORNERS: Corner[] = [
"top-left",
"top-right",
"bottom-left",
"bottom-right",
];
-
-export function getCornerPosition({
- bounds,
- corner,
-}: {
- bounds: ElementBounds;
- corner: Corner;
-}): { x: number; y: number } {
- const halfW = bounds.width / 2;
- const halfH = bounds.height / 2;
- const angleRad = (bounds.rotation * Math.PI) / 180;
- const cos = Math.cos(angleRad);
- const sin = Math.sin(angleRad);
-
- const localX =
- corner === "top-left" || corner === "bottom-left" ? -halfW : halfW;
- const localY =
- corner === "top-left" || corner === "top-right" ? -halfH : halfH;
-
- return {
- x: bounds.cx + (localX * cos - localY * sin),
- y: bounds.cy + (localX * sin + localY * cos),
- };
-}
-
-export function getRotationHandlePosition({ bounds }: { bounds: ElementBounds }): {
- x: number;
- y: number;
-} {
- const angleRad = (bounds.rotation * Math.PI) / 180;
- const cos = Math.cos(angleRad);
- const sin = Math.sin(angleRad);
- const localY = -bounds.height / 2 - ROTATION_HANDLE_OFFSET;
- return {
- x: bounds.cx - localY * sin,
- y: bounds.cy + localY * cos,
- };
-}
-
-export function getOverlayContext({
- canvasRef,
- containerRef,
-}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- containerRef: React.RefObject<HTMLDivElement | null>;
-}): {
- canvasRect: DOMRect;
- containerRect: DOMRect;
-} | null {
- const canvasRect = canvasRef.current?.getBoundingClientRect();
- const containerRect = containerRef.current?.getBoundingClientRect();
- if (!canvasRect || !containerRect) return null;
- return { canvasRect, containerRect };
-}
+const EDGES: Edge[] = ["right", "left", "bottom"];
export function TransformHandles({
- canvasRef,
- containerRef,
+ onSnapLinesChange,
}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- containerRef: React.RefObject<HTMLDivElement | null>;
+ onSnapLinesChange?: OnSnapLinesChange;
}) {
+ const viewport = usePreviewViewport();
const {
selectedWithBounds,
hasVisualSelection,
- snapLines,
handleCornerPointerDown,
+ handleEdgePointerDown,
handleRotationPointerDown,
handlePointerMove,
handlePointerUp,
- } = useTransformHandles({ canvasRef });
-
- const editor = useEditor();
- const canvasSize = editor.project.getActive().settings.canvasSize;
+ } = useTransformHandles({ onSnapLinesChange });
if (!hasVisualSelection || !selectedWithBounds) return null;
- const overlayContext = getOverlayContext({ canvasRef, containerRef });
- if (!overlayContext) return null;
-
const { bounds, element } = selectedWithBounds;
if (!isVisualElement(element)) return null;
- const { canvasRect, containerRect } = overlayContext;
- const displayScale = getDisplayScale({ canvasRect, canvasSize });
+ const displayScale = viewport.getDisplayScale();
const toOverlay = ({
canvasX,
@@ -115,31 +58,30 @@ export function TransformHandles({
canvasX: number;
canvasY: number;
}) =>
- canvasToOverlay({
+ viewport.canvasToOverlay({
canvasX,
canvasY,
- canvasRect,
- containerRect,
- canvasSize,
});
const center = toOverlay({ canvasX: bounds.cx, canvasY: bounds.cy });
- const outlineWidth = bounds.width * displayScale.x;
- const outlineHeight = bounds.height * displayScale.y;
+ const outlineWidth = Math.abs(bounds.width) * displayScale.x;
+ const outlineHeight = Math.abs(bounds.height) * displayScale.y;
- const rotationHandle = getRotationHandlePosition({ bounds });
+ const rotationHandleCanvas = getRotationHandlePosition({ bounds });
const rotationHandleScreen = toOverlay({
- canvasX: rotationHandle.x,
- canvasY: rotationHandle.y,
+ canvasX: rotationHandleCanvas.x,
+ canvasY: rotationHandleCanvas.y,
});
+ const onPointerMove = (event: React.PointerEvent) =>
+ handlePointerMove({ event });
+ const onPointerUp = () => handlePointerUp();
+
return (
- <div className="pointer-events-none absolute inset-0" aria-hidden>
- <SnapGuides
- lines={snapLines}
- canvasRef={canvasRef}
- containerRef={containerRef}
- />
+ <div
+ className="pointer-events-none absolute inset-0 overflow-hidden"
+ aria-hidden
+ >
<BoundingBoxOutline
center={center}
outlineWidth={outlineWidth}
@@ -152,132 +94,47 @@ export function TransformHandles({
canvasX: cornerPosition.x,
canvasY: cornerPosition.y,
});
+ const angleDeg =
+ Math.atan2(screen.y - center.y, screen.x - center.x) *
+ (180 / Math.PI);
return (
<CornerHandle
key={corner}
- corner={corner}
+ cursor={getResizeCursor({ angleDeg })}
screen={screen}
onPointerDown={(event) =>
handleCornerPointerDown({ event, corner })
}
- onPointerMove={(event) => handlePointerMove({ event })}
- onPointerUp={(event) => handlePointerUp({ event })}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
+ />
+ );
+ })}
+ {EDGES.map((edge) => {
+ const edgePosition = getEdgeHandlePosition({ bounds, edge });
+ const screen = toOverlay({
+ canvasX: edgePosition.x,
+ canvasY: edgePosition.y,
+ });
+ return (
+ <EdgeHandle
+ key={edge}
+ edge={edge}
+ screen={screen}
+ rotation={bounds.rotation}
+ onPointerDown={(event) => handleEdgePointerDown({ event, edge })}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
/>
);
})}
- <RotationHandle
+ <IconHandle
+ icon={Rotate01Icon}
screen={rotationHandleScreen}
onPointerDown={(event) => handleRotationPointerDown({ event })}
- onPointerMove={(event) => handlePointerMove({ event })}
- onPointerUp={(event) => handlePointerUp({ event })}
+ onPointerMove={onPointerMove}
+ onPointerUp={onPointerUp}
/>
</div>
);
}
-
-function BoundingBoxOutline({
- center,
- outlineWidth,
- outlineHeight,
- rotation,
-}: {
- center: { x: number; y: number };
- outlineWidth: number;
- outlineHeight: number;
- rotation: number;
-}) {
- return (
- <div
- className="pointer-events-none absolute"
- style={{
- left: center.x - outlineWidth / 2,
- top: center.y - outlineHeight / 2,
- width: outlineWidth,
- height: outlineHeight,
- transform: `rotate(${rotation}deg)`,
- transformOrigin: "center center",
- border: "1px dashed white",
- boxSizing: "border-box",
- opacity: 0.75,
- }}
- />
- );
-}
-
-function CornerHandle({
- corner,
- screen,
- onPointerDown,
- onPointerMove,
- onPointerUp,
-}: {
- corner: Corner;
- screen: { x: number; y: number };
- onPointerDown: (event: React.PointerEvent) => void;
- onPointerMove: (event: React.PointerEvent) => void;
- onPointerUp: (event: React.PointerEvent) => void;
-}) {
- const isNesw = corner === "top-right" || corner === "bottom-left";
-
- return (
- <button
- type="button"
- className={cn(
- "absolute flex items-center justify-center outline-none",
- isNesw ? "cursor-nesw-resize" : "cursor-nwse-resize",
- )}
- style={{
- left: screen.x - CORNER_HIT_AREA_SIZE / 2,
- top: screen.y - CORNER_HIT_AREA_SIZE / 2,
- width: CORNER_HIT_AREA_SIZE,
- height: CORNER_HIT_AREA_SIZE,
- pointerEvents: "auto",
- }}
- onPointerDown={onPointerDown}
- onPointerMove={onPointerMove}
- onPointerUp={onPointerUp}
- onPointerLeave={onPointerUp}
- onKeyDown={(event) => event.key === "Enter" && event.preventDefault()}
- onKeyUp={(event) => event.key === "Enter" && event.preventDefault()}
- >
- <div
- className="rounded-sm bg-white"
- style={{ width: HANDLE_SIZE, height: HANDLE_SIZE }}
- />
- </button>
- );
-}
-
-function RotationHandle({
- screen,
- onPointerDown,
- onPointerMove,
- onPointerUp,
-}: {
- screen: { x: number; y: number };
- onPointerDown: (event: React.PointerEvent) => void;
- onPointerMove: (event: React.PointerEvent) => void;
- onPointerUp: (event: React.PointerEvent) => void;
-}) {
- return (
- <button
- type="button"
- className="absolute flex items-center justify-center rounded-full bg-white text-black shadow-sm outline-none"
- style={{
- left: screen.x - ROTATION_HANDLE_RADIUS,
- top: screen.y - ROTATION_HANDLE_RADIUS,
- width: ROTATION_HANDLE_RADIUS * 2,
- height: ROTATION_HANDLE_RADIUS * 2,
- pointerEvents: "auto",
- }}
- onPointerDown={onPointerDown}
- onPointerMove={onPointerMove}
- onPointerUp={onPointerUp}
- onPointerLeave={onPointerUp}
- onKeyDown={(event) => event.key === "Enter" && event.preventDefault()}
- onKeyUp={(event) => event.key === "Enter" && event.preventDefault()}
- >
- <HugeiconsIcon icon={Rotate01Icon} className="size-3" strokeWidth={2.5} />
- </button>
- );
-}
diff --git a/apps/web/src/components/editor/panels/properties/keyframe-toggle.tsx b/apps/web/src/components/editor/panels/properties/components/keyframe-toggle.tsx
index b5b8685f..b5b8685f 100644
--- a/apps/web/src/components/editor/panels/properties/keyframe-toggle.tsx
+++ b/apps/web/src/components/editor/panels/properties/components/keyframe-toggle.tsx
diff --git a/apps/web/src/components/editor/panels/properties/components/property-param-field.tsx b/apps/web/src/components/editor/panels/properties/components/property-param-field.tsx
new file mode 100644
index 00000000..e69c6918
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/components/property-param-field.tsx
@@ -0,0 +1,194 @@
+"use client";
+
+import type { ParamDefinition, NumberParamDefinition } from "@/lib/params";
+import { formatNumberForDisplay, snapToStep } from "@/utils/math";
+import { SectionField } from "@/components/section";
+import { NumberField } from "@/components/ui/number-field";
+import { Switch } from "@/components/ui/switch";
+import { ColorPicker } from "@/components/ui/color-picker";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import { usePropertyDraft } from "../hooks/use-property-draft";
+import { KeyframeToggle } from "./keyframe-toggle";
+
+export function PropertyParamField({
+ param,
+ value,
+ onPreview,
+ onCommit,
+ keyframe,
+}: {
+ param: ParamDefinition;
+ value: number | string | boolean;
+ onPreview: (value: number | string | boolean) => void;
+ onCommit: () => void;
+ keyframe?: {
+ isActive: boolean;
+ isDisabled: boolean;
+ onToggle: () => void;
+ };
+}) {
+ return (
+ <SectionField
+ label={param.label}
+ beforeLabel={
+ keyframe ? (
+ <KeyframeToggle
+ isActive={keyframe.isActive}
+ isDisabled={keyframe.isDisabled}
+ title={`Toggle ${param.label.toLowerCase()} keyframe`}
+ onToggle={keyframe.onToggle}
+ />
+ ) : undefined
+ }
+ >
+ <ParamInput
+ param={param}
+ value={value}
+ onPreview={onPreview}
+ onCommit={onCommit}
+ />
+ </SectionField>
+ );
+}
+
+function ParamInput({
+ param,
+ value,
+ onPreview,
+ onCommit,
+}: {
+ param: ParamDefinition;
+ value: number | string | boolean;
+ onPreview: (value: number | string | boolean) => void;
+ onCommit: () => void;
+}) {
+ if (param.type === "number") {
+ return (
+ <NumberParamField
+ param={param}
+ value={typeof value === "number" ? value : Number(value)}
+ onPreview={onPreview}
+ onCommit={onCommit}
+ />
+ );
+ }
+
+ if (param.type === "boolean") {
+ return (
+ <Switch
+ checked={Boolean(value)}
+ onCheckedChange={(checked) => {
+ onPreview(checked);
+ onCommit();
+ }}
+ />
+ );
+ }
+
+ if (param.type === "select") {
+ return (
+ <Select
+ value={String(value)}
+ onValueChange={(selected) => {
+ onPreview(selected);
+ onCommit();
+ }}
+ >
+ <SelectTrigger className="w-full">
+ <SelectValue />
+ </SelectTrigger>
+ <SelectContent>
+ {param.options.map((option) => (
+ <SelectItem key={option.value} value={option.value}>
+ {option.label}
+ </SelectItem>
+ ))}
+ </SelectContent>
+ </Select>
+ );
+ }
+
+ if (param.type === "color") {
+ return (
+ <ColorPicker
+ value={String(value).replace(/^#/, "").toUpperCase()}
+ onChange={(color) => onPreview(`#${color}`)}
+ onChangeEnd={(color) => {
+ onPreview(`#${color}`);
+ onCommit();
+ }}
+ />
+ );
+ }
+
+ return null;
+}
+
+function NumberParamField({
+ param,
+ value,
+ onPreview,
+ onCommit,
+}: {
+ param: NumberParamDefinition;
+ value: number;
+ onPreview: (value: number) => void;
+ onCommit: () => void;
+}) {
+ const { min, max, step, displayMultiplier = 1 } = param;
+ const displayValue = value * displayMultiplier;
+ const clampDisplayValue = (nextDisplayValue: number) =>
+ Math.max(
+ min,
+ max !== undefined ? Math.min(max, nextDisplayValue) : nextDisplayValue,
+ );
+
+ const previewFromDisplay = (displayVal: number) => {
+ const clamped = clampDisplayValue(
+ snapToStep({ value: displayVal, step }),
+ );
+ onPreview(clamped / displayMultiplier);
+ };
+
+ const maxFractionDigits = step >= 1 ? 0 : Math.round(-Math.log10(step));
+
+ const draft = usePropertyDraft({
+ displayValue: formatNumberForDisplay({
+ value: displayValue,
+ maxFractionDigits,
+ }),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ return clampDisplayValue(snapToStep({ value: parsed, step }));
+ },
+ onPreview: previewFromDisplay,
+ onCommit,
+ });
+
+ const handleReset = () => {
+ onPreview(param.default);
+ onCommit();
+ };
+
+ return (
+ <NumberField
+ icon={param.shortLabel}
+ value={draft.displayValue}
+ dragSensitivity="slow"
+ isDefault={value === param.default}
+ onFocus={draft.onFocus}
+ onChange={draft.onChange}
+ onBlur={draft.onBlur}
+ onScrub={previewFromDisplay}
+ onScrubEnd={onCommit}
+ onReset={handleReset}
+ />
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts
index dbd19e4c..957ee1c9 100644
--- a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts
+++ b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts
@@ -4,8 +4,8 @@ import {
hasKeyframesForPath,
upsertElementKeyframe,
} from "@/lib/animation";
-import type { AnimationPropertyPath, ElementAnimations } from "@/types/animation";
-import type { TimelineElement } from "@/types/timeline";
+import type { AnimationPropertyPath, ElementAnimations } from "@/lib/animation/types";
+import type { TimelineElement } from "@/lib/timeline";
export function useKeyframedColorProperty({
trackId,
diff --git a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts
index 11aa049c..0f0168f8 100644
--- a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts
+++ b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts
@@ -4,8 +4,9 @@ import {
hasKeyframesForPath,
upsertElementKeyframe,
} from "@/lib/animation";
-import type { AnimationPropertyPath, ElementAnimations } from "@/types/animation";
-import type { TimelineElement } from "@/types/timeline";
+import type { AnimationPropertyPath, ElementAnimations } from "@/lib/animation/types";
+import type { TimelineElement } from "@/lib/timeline";
+import { snapToStep } from "@/utils/math";
import { usePropertyDraft } from "./use-property-draft";
export function useKeyframedNumberProperty({
@@ -18,6 +19,7 @@ export function useKeyframedNumberProperty({
displayValue,
parse,
valueAtPlayhead,
+ step,
buildBaseUpdates,
}: {
trackId: string;
@@ -29,9 +31,12 @@ export function useKeyframedNumberProperty({
displayValue: string;
parse: (input: string) => number | null;
valueAtPlayhead: number;
+ step?: number;
buildBaseUpdates: ({ value }: { value: number }) => Partial<TimelineElement>;
}) {
const editor = useEditor();
+ const snapValue = (value: number) =>
+ step != null ? snapToStep({ value, step }) : value;
const hasAnimatedKeyframes = hasKeyframesForPath({ animations, propertyPath });
const keyframeAtTime = isPlayheadWithinElementRange
@@ -43,6 +48,7 @@ export function useKeyframedNumberProperty({
hasAnimatedKeyframes && isPlayheadWithinElementRange;
const previewValue = ({ value }: { value: number }) => {
+ const nextValue = snapValue(value);
if (shouldUseAnimatedChannel) {
editor.timeline.previewElements({
updates: [
@@ -54,7 +60,7 @@ export function useKeyframedNumberProperty({
animations,
propertyPath,
time: localTime,
- value,
+ value: nextValue,
}),
},
},
@@ -68,7 +74,7 @@ export function useKeyframedNumberProperty({
{
trackId,
elementId,
- updates: buildBaseUpdates({ value }),
+ updates: buildBaseUpdates({ value: nextValue }),
},
],
});
@@ -76,7 +82,10 @@ export function useKeyframedNumberProperty({
const propertyDraft = usePropertyDraft({
displayValue,
- parse,
+ parse: (input) => {
+ const parsedValue = parse(input);
+ return parsedValue === null ? null : snapValue(parsedValue);
+ },
onPreview: (value) => previewValue({ value }),
onCommit: () => editor.timeline.commitPreview(),
});
@@ -107,13 +116,14 @@ export function useKeyframedNumberProperty({
elementId,
propertyPath,
time: localTime,
- value: valueAtPlayhead,
+ value: snapValue(valueAtPlayhead),
},
],
});
};
const commitValue = ({ value }: { value: number }) => {
+ const nextValue = snapValue(value);
if (shouldUseAnimatedChannel) {
editor.timeline.upsertKeyframes({
keyframes: [
@@ -122,7 +132,7 @@ export function useKeyframedNumberProperty({
elementId,
propertyPath,
time: localTime,
- value,
+ value: nextValue,
},
],
});
@@ -134,7 +144,7 @@ export function useKeyframedNumberProperty({
{
trackId,
elementId,
- updates: buildBaseUpdates({ value }),
+ updates: buildBaseUpdates({ value: nextValue }),
},
],
});
diff --git a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-param-property.ts b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-param-property.ts
new file mode 100644
index 00000000..335e3fb6
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-param-property.ts
@@ -0,0 +1,148 @@
+"use client";
+
+import { useEditor } from "@/hooks/use-editor";
+import {
+ buildGraphicParamPath,
+ getKeyframeAtTime,
+ getParamDefaultInterpolation,
+ getParamValueKind,
+ hasKeyframesForPath,
+ upsertPathKeyframe,
+} from "@/lib/animation";
+import type {
+ ElementAnimations,
+} from "@/lib/animation/types";
+import type { ParamDefinition } from "@/lib/params";
+import type { TimelineElement } from "@/lib/timeline";
+
+export interface KeyframedParamPropertyResult {
+ hasAnimatedKeyframes: boolean;
+ isKeyframedAtTime: boolean;
+ keyframeIdAtTime: string | null;
+ onPreview: (value: number | string | boolean) => void;
+ onCommit: () => void;
+ toggleKeyframe: () => void;
+}
+
+export function useKeyframedParamProperty({
+ param,
+ trackId,
+ elementId,
+ animations,
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedValue,
+ buildBaseUpdates,
+}: {
+ param: ParamDefinition;
+ trackId: string;
+ elementId: string;
+ animations: ElementAnimations | undefined;
+ localTime: number;
+ isPlayheadWithinElementRange: boolean;
+ resolvedValue: number | string | boolean;
+ buildBaseUpdates: ({
+ value,
+ }: {
+ value: number | string | boolean;
+ }) => Partial<TimelineElement>;
+}): KeyframedParamPropertyResult {
+ const editor = useEditor();
+ const propertyPath = buildGraphicParamPath({ paramKey: param.key });
+ const hasAnimatedKeyframes = hasKeyframesForPath({
+ animations,
+ propertyPath,
+ });
+ const keyframeAtTime = isPlayheadWithinElementRange
+ ? getKeyframeAtTime({
+ animations,
+ propertyPath,
+ time: localTime,
+ })
+ : null;
+ const keyframeIdAtTime = keyframeAtTime?.id ?? null;
+ const isKeyframedAtTime = keyframeAtTime !== null;
+ const shouldUseAnimatedChannel =
+ hasAnimatedKeyframes && isPlayheadWithinElementRange;
+
+ const previewValue: KeyframedParamPropertyResult["onPreview"] = (value) => {
+ if (shouldUseAnimatedChannel) {
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId,
+ elementId,
+ updates: {
+ animations: upsertPathKeyframe({
+ animations,
+ propertyPath,
+ time: localTime,
+ value,
+ valueKind: getParamValueKind({ param }),
+ defaultInterpolation: getParamDefaultInterpolation({
+ param,
+ }),
+ numericRange:
+ param.type === "number"
+ ? { min: param.min, max: param.max, step: param.step }
+ : undefined,
+ }),
+ },
+ },
+ ],
+ });
+ return;
+ }
+
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId,
+ elementId,
+ updates: buildBaseUpdates({ value }),
+ },
+ ],
+ });
+ };
+
+ const toggleKeyframe = () => {
+ if (!isPlayheadWithinElementRange) {
+ return;
+ }
+
+ if (keyframeIdAtTime) {
+ editor.timeline.removeKeyframes({
+ keyframes: [
+ {
+ trackId,
+ elementId,
+ propertyPath,
+ keyframeId: keyframeIdAtTime,
+ },
+ ],
+ });
+ return;
+ }
+
+ editor.timeline.upsertKeyframes({
+ keyframes: [
+ {
+ trackId,
+ elementId,
+ propertyPath,
+ time: localTime,
+ value: resolvedValue,
+ },
+ ],
+ });
+ };
+
+ return {
+ hasAnimatedKeyframes,
+ isKeyframedAtTime,
+ keyframeIdAtTime,
+ onPreview: previewValue,
+ onCommit: () => editor.timeline.commitPreview(),
+ toggleKeyframe,
+ };
+}
diff --git a/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-vector-property.ts b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-vector-property.ts
new file mode 100644
index 00000000..188f05cb
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/hooks/use-keyframed-vector-property.ts
@@ -0,0 +1,190 @@
+import { useEditor } from "@/hooks/use-editor";
+import {
+ getKeyframeAtTime,
+ hasKeyframesForPath,
+ upsertElementKeyframe,
+} from "@/lib/animation";
+import type {
+ AnimationPropertyPath,
+ ElementAnimations,
+ VectorValue,
+} from "@/lib/animation/types";
+import type { TimelineElement } from "@/lib/timeline";
+import { snapToStep } from "@/utils/math";
+import { usePropertyDraft } from "./use-property-draft";
+
+export function useKeyframedVectorProperty({
+ trackId,
+ elementId,
+ animations,
+ propertyPath,
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedValue,
+ displayX,
+ displayY,
+ parseComponent,
+ step,
+ buildBaseUpdates,
+}: {
+ trackId: string;
+ elementId: string;
+ animations: ElementAnimations | undefined;
+ propertyPath: AnimationPropertyPath;
+ localTime: number;
+ isPlayheadWithinElementRange: boolean;
+ resolvedValue: VectorValue;
+ displayX: string;
+ displayY: string;
+ parseComponent: (input: string) => number | null;
+ step?: number;
+ buildBaseUpdates: ({
+ value,
+ }: {
+ value: VectorValue;
+ }) => Partial<TimelineElement>;
+}) {
+ const editor = useEditor();
+ const snapComponentValue = (value: number) =>
+ step != null ? snapToStep({ value, step }) : value;
+
+ const hasAnimatedKeyframes = hasKeyframesForPath({
+ animations,
+ propertyPath,
+ });
+ const keyframeAtTime = isPlayheadWithinElementRange
+ ? getKeyframeAtTime({ animations, propertyPath, time: localTime })
+ : null;
+ const keyframeIdAtTime = keyframeAtTime?.id ?? null;
+ const isKeyframedAtTime = keyframeAtTime !== null;
+ const shouldUseAnimatedChannel =
+ hasAnimatedKeyframes && isPlayheadWithinElementRange;
+
+ const previewVector = ({ value }: { value: VectorValue }) => {
+ const nextValue = {
+ x: snapComponentValue(value.x),
+ y: snapComponentValue(value.y),
+ };
+ if (shouldUseAnimatedChannel) {
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId,
+ elementId,
+ updates: {
+ animations: upsertElementKeyframe({
+ animations,
+ propertyPath,
+ time: localTime,
+ value: nextValue,
+ }),
+ },
+ },
+ ],
+ });
+ return;
+ }
+
+ editor.timeline.previewElements({
+ updates: [{ trackId, elementId, updates: buildBaseUpdates({ value: nextValue }) }],
+ });
+ };
+
+ const x = usePropertyDraft({
+ displayValue: displayX,
+ parse: (input) => {
+ const parsedValue = parseComponent(input);
+ return parsedValue === null ? null : snapComponentValue(parsedValue);
+ },
+ onPreview: (xVal) =>
+ previewVector({ value: { x: xVal, y: resolvedValue.y } }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ const y = usePropertyDraft({
+ displayValue: displayY,
+ parse: (input) => {
+ const parsedValue = parseComponent(input);
+ return parsedValue === null ? null : snapComponentValue(parsedValue);
+ },
+ onPreview: (yVal) =>
+ previewVector({ value: { x: resolvedValue.x, y: yVal } }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ const toggleKeyframe = () => {
+ if (!isPlayheadWithinElementRange) return;
+
+ if (keyframeIdAtTime) {
+ editor.timeline.removeKeyframes({
+ keyframes: [
+ { trackId, elementId, propertyPath, keyframeId: keyframeIdAtTime },
+ ],
+ });
+ return;
+ }
+
+ editor.timeline.upsertKeyframes({
+ keyframes: [
+ {
+ trackId,
+ elementId,
+ propertyPath,
+ time: localTime,
+ value: resolvedValue,
+ },
+ ],
+ });
+ };
+
+ const commitX = ({ value }: { value: number }) => {
+ const vector: VectorValue = {
+ x: snapComponentValue(value),
+ y: snapComponentValue(resolvedValue.y),
+ };
+ if (shouldUseAnimatedChannel) {
+ editor.timeline.upsertKeyframes({
+ keyframes: [
+ { trackId, elementId, propertyPath, time: localTime, value: vector },
+ ],
+ });
+ return;
+ }
+ editor.timeline.updateElements({
+ updates: [
+ { trackId, elementId, updates: buildBaseUpdates({ value: vector }) },
+ ],
+ });
+ };
+
+ const commitY = ({ value }: { value: number }) => {
+ const vector: VectorValue = {
+ x: snapComponentValue(resolvedValue.x),
+ y: snapComponentValue(value),
+ };
+ if (shouldUseAnimatedChannel) {
+ editor.timeline.upsertKeyframes({
+ keyframes: [
+ { trackId, elementId, propertyPath, time: localTime, value: vector },
+ ],
+ });
+ return;
+ }
+ editor.timeline.updateElements({
+ updates: [
+ { trackId, elementId, updates: buildBaseUpdates({ value: vector }) },
+ ],
+ });
+ };
+
+ return {
+ x,
+ y,
+ hasAnimatedKeyframes,
+ isKeyframedAtTime,
+ keyframeIdAtTime,
+ toggleKeyframe,
+ commitX,
+ commitY,
+ };
+}
diff --git a/apps/web/src/components/editor/panels/properties/index.tsx b/apps/web/src/components/editor/panels/properties/index.tsx
index cb45996d..3f3ff1f3 100644
--- a/apps/web/src/components/editor/panels/properties/index.tsx
+++ b/apps/web/src/components/editor/panels/properties/index.tsx
@@ -1,86 +1,95 @@
"use client";
import { ScrollArea } from "@/components/ui/scroll-area";
-import { AudioProperties } from "./audio-properties";
-import { VideoProperties } from "./video-properties";
-import { TextProperties } from "./text-properties";
-import { EffectProperties } from "./effect-properties";
-import { ClipEffectsProperties } from "./clip-effects-properties";
-import { EmptyView } from "./empty-view";
+import { Button } from "@/components/ui/button";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
import { useEditor } from "@/hooks/use-editor";
import { useElementSelection } from "@/hooks/timeline/element/use-element-selection";
-import { usePropertiesStore } from "@/stores/properties-store";
-import { isVisualElement } from "@/lib/timeline";
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
-
-function ElementProperties({
- track,
- element,
-}: {
- track: TimelineTrack;
- element: TimelineElement;
-}) {
- if (element.type === "text") {
- return <TextProperties element={element} trackId={track.id} />;
- }
- if (element.type === "audio") {
- return <AudioProperties />;
- }
- if (
- element.type === "video" ||
- element.type === "image" ||
- element.type === "sticker"
- ) {
- return <VideoProperties element={element} trackId={track.id} />;
- }
- if (element.type === "effect") {
- return <EffectProperties element={element} trackId={track.id} />;
- }
- return null;
-}
+import { usePropertiesStore } from "./stores/properties-store";
+import { getPropertiesConfig } from "./registry";
+import { cn } from "@/utils/ui";
+import { EmptyView } from "./empty-view";
export function PropertiesPanel() {
const editor = useEditor();
+ useEditor((e) => e.timeline.getTracks());
+ useEditor((e) => e.media.getAssets());
const { selectedElements } = useElementSelection();
- const clipEffectsTarget = usePropertiesStore(
- (state) => state.clipEffectsTarget,
- );
+ const { activeTabPerType, setActiveTab } = usePropertiesStore();
- const clipEffectsTrack = clipEffectsTarget
- ? editor.timeline.getTrackById({ trackId: clipEffectsTarget.trackId })
- : null;
- const clipEffectsElement = clipEffectsTrack?.elements.find(
- (element) => element.id === clipEffectsTarget?.elementId,
- );
- const isShowingClipEffects =
- clipEffectsTrack &&
- clipEffectsElement &&
- isVisualElement(clipEffectsElement);
+ if (selectedElements.length === 0) {
+ return (
+ <div className="panel bg-background flex h-full flex-col items-center justify-center overflow-hidden rounded-sm border">
+ <EmptyView />
+ </div>
+ );
+ }
+
+ if (selectedElements.length > 1) {
+ return (
+ <div className="panel bg-background flex h-full flex-col items-center justify-center overflow-hidden rounded-sm border">
+ <p className="text-muted-foreground text-sm">
+ {selectedElements.length} elements selected.0
+ </p>
+ </div>
+ );
+ }
+
+ const mediaAssets = editor.media.getAssets();
const elementsWithTracks = editor.timeline.getElementsWithTracks({
elements: selectedElements,
});
+ const elementWithTrack = elementsWithTracks[0];
+
+ if (!elementWithTrack) return null;
+
+ const { element, track } = elementWithTrack;
+ const config = getPropertiesConfig({ element, mediaAssets });
+ const visibleTabs = config.tabs;
+
+ const storedTabId = activeTabPerType[element.type];
+ const isStoredTabVisible = visibleTabs.some((t) => t.id === storedTabId);
+ const activeTabId = isStoredTabVisible ? storedTabId : config.defaultTab;
+ const activeTab =
+ visibleTabs.find((t) => t.id === activeTabId) ?? visibleTabs[0];
+
+ if (!activeTab) return null;
return (
- <div className="panel bg-background h-full rounded-sm border overflow-hidden">
- {isShowingClipEffects ? (
- <ClipEffectsProperties
- element={clipEffectsElement}
- trackId={clipEffectsTrack.id}
- />
- ) : selectedElements.length > 0 ? (
- <ScrollArea className="h-full scrollbar-hidden">
- {elementsWithTracks.map(({ track, element }) => (
- <ElementProperties
- key={element.id}
- track={track}
- element={element}
- />
+ <div className="panel bg-background flex h-full overflow-hidden rounded-sm border">
+ <TooltipProvider delayDuration={0}>
+ <div className="flex shrink-0 flex-col gap-0.5 border-r p-1 scrollbar-hidden overflow-y-auto">
+ {visibleTabs.map((tab) => (
+ <Tooltip key={tab.id}>
+ <TooltipTrigger asChild>
+ <Button
+ variant={tab.id === activeTab.id ? "secondary" : "ghost"}
+ size="icon"
+ onClick={() => setActiveTab(element.type, tab.id)}
+ aria-label={tab.label}
+ className={cn(
+ "shrink-0",
+ "h-8 w-8",
+ tab.id !== activeTab.id && "text-muted-foreground",
+ )}
+ >
+ {tab.icon}
+ </Button>
+ </TooltipTrigger>
+ <TooltipContent side="right">{tab.label}</TooltipContent>
+ </Tooltip>
))}
- </ScrollArea>
- ) : (
- <EmptyView />
- )}
+ </div>
+ </TooltipProvider>
+ <ScrollArea className="flex-1 scrollbar-hidden">
+ {activeTab.content({ trackId: track.id })}
+ </ScrollArea>
</div>
);
}
diff --git a/apps/web/src/components/editor/panels/properties/registry.tsx b/apps/web/src/components/editor/panels/properties/registry.tsx
new file mode 100644
index 00000000..706faef4
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/registry.tsx
@@ -0,0 +1,303 @@
+import type { ReactNode } from "react";
+import type {
+ EffectElement,
+ GraphicElement,
+ ImageElement,
+ MaskableElement,
+ RetimableElement,
+ StickerElement,
+ TextElement,
+ VisualElement,
+ VideoElement,
+ AudioElement,
+ TimelineElement,
+} from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
+import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ TextFontIcon,
+ ArrowExpandIcon,
+ RainDropIcon,
+ MusicNote03Icon,
+ MagicWand05Icon,
+ DashboardSpeed02Icon,
+} from "@hugeicons/core-free-icons";
+import { TransformTab } from "./tabs/transform-tab";
+import { BlendingTab } from "./tabs/blending-tab";
+import { AudioTab } from "./tabs/audio-tab";
+import { TextTab } from "./tabs/text-tab";
+import { ClipEffectsTab, StandaloneEffectTab } from "./tabs/effects-tab";
+import { MasksTab } from "./tabs/masks-tab";
+import { SpeedTab } from "./tabs/speed-tab";
+import { GraphicTab } from "./tabs/graphic-tab";
+import { OcShapesIcon } from "@opencut/ui/icons";
+
+export type TabContentProps = {
+ trackId: string;
+};
+
+export type PropertiesTabDef = {
+ id: string;
+ label: string;
+ icon: ReactNode;
+ content: (props: TabContentProps) => ReactNode;
+};
+
+export type ElementPropertiesConfig = {
+ defaultTab: string;
+ tabs: PropertiesTabDef[];
+};
+
+function buildTransformTab({
+ element,
+}: {
+ element: VisualElement;
+}): PropertiesTabDef {
+ return {
+ id: "transform",
+ label: "Transform",
+ icon: <HugeiconsIcon icon={ArrowExpandIcon} size={16} />,
+ content: ({ trackId }) => (
+ <TransformTab element={element} trackId={trackId} />
+ ),
+ };
+}
+
+function buildBlendingTab({
+ element,
+}: {
+ element: VisualElement;
+}): PropertiesTabDef {
+ return {
+ id: "blending",
+ label: "Blending",
+ icon: <HugeiconsIcon icon={RainDropIcon} size={16} />,
+ content: ({ trackId }) => (
+ <BlendingTab element={element} trackId={trackId} />
+ ),
+ };
+}
+
+function buildAudioTab({
+ element,
+}: {
+ element: AudioElement | VideoElement;
+}): PropertiesTabDef {
+ return {
+ id: "audio",
+ label: "Audio",
+ icon: <HugeiconsIcon icon={MusicNote03Icon} size={16} />,
+ content: ({ trackId }) => <AudioTab element={element} trackId={trackId} />,
+ };
+}
+
+function buildSpeedTab({
+ element,
+}: {
+ element: RetimableElement;
+}): PropertiesTabDef {
+ return {
+ id: "speed",
+ label: "Speed",
+ icon: <HugeiconsIcon icon={DashboardSpeed02Icon} size={16} />,
+ content: ({ trackId }) => <SpeedTab element={element} trackId={trackId} />,
+ };
+}
+
+function buildMasksTab({
+ element,
+}: {
+ element: MaskableElement;
+}): PropertiesTabDef {
+ return {
+ id: "masks",
+ label: "Masks",
+ icon: <OcShapesIcon size={16} />,
+ content: ({ trackId }) => <MasksTab element={element} trackId={trackId} />,
+ };
+}
+
+function buildClipEffectsTab({
+ element,
+}: {
+ element: VisualElement;
+}): PropertiesTabDef {
+ return {
+ id: "effects",
+ label: "Effects",
+ icon: <HugeiconsIcon icon={MagicWand05Icon} size={16} />,
+ content: ({ trackId }) => (
+ <ClipEffectsTab element={element} trackId={trackId} />
+ ),
+ };
+}
+
+function buildTextTab({ element }: { element: TextElement }): PropertiesTabDef {
+ return {
+ id: "text",
+ label: "Text",
+ icon: <HugeiconsIcon icon={TextFontIcon} size={16} />,
+ content: ({ trackId }) => <TextTab element={element} trackId={trackId} />,
+ };
+}
+
+function buildGraphicTab({
+ element,
+}: {
+ element: GraphicElement;
+}): PropertiesTabDef {
+ return {
+ id: "graphic",
+ label: "Graphic",
+ icon: <OcShapesIcon size={16} />,
+ content: ({ trackId }) => <GraphicTab element={element} trackId={trackId} />,
+ };
+}
+
+function buildStandaloneEffectTab({
+ element,
+}: {
+ element: EffectElement;
+}): PropertiesTabDef {
+ return {
+ id: "effects",
+ label: "Effects",
+ icon: <HugeiconsIcon icon={MagicWand05Icon} size={16} />,
+ content: ({ trackId }) => (
+ <StandaloneEffectTab element={element} trackId={trackId} />
+ ),
+ };
+}
+
+function getTextConfig({
+ element,
+}: {
+ element: TextElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "text",
+ tabs: [
+ buildTextTab({ element }),
+ buildTransformTab({ element }),
+ buildBlendingTab({ element }),
+ ],
+ };
+}
+
+function getVideoConfig({
+ element,
+ mediaAsset,
+}: {
+ element: VideoElement;
+ mediaAsset: MediaAsset | undefined;
+}): ElementPropertiesConfig {
+ const showAudioTab = mediaAsset?.hasAudio !== false;
+ return {
+ defaultTab: "transform",
+ tabs: [
+ buildTransformTab({ element }),
+ ...(showAudioTab ? [buildAudioTab({ element })] : []),
+ buildSpeedTab({ element }),
+ buildBlendingTab({ element }),
+ buildMasksTab({ element }),
+ buildClipEffectsTab({ element }),
+ ],
+ };
+}
+
+function getImageConfig({
+ element,
+}: {
+ element: ImageElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "transform",
+ tabs: [
+ buildTransformTab({ element }),
+ buildBlendingTab({ element }),
+ buildMasksTab({ element }),
+ buildClipEffectsTab({ element }),
+ ],
+ };
+}
+
+function getStickerConfig({
+ element,
+}: {
+ element: StickerElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "transform",
+ tabs: [
+ buildTransformTab({ element }),
+ buildBlendingTab({ element }),
+ buildClipEffectsTab({ element }),
+ ],
+ };
+}
+
+function getGraphicConfig({
+ element,
+}: {
+ element: GraphicElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "graphic",
+ tabs: [
+ buildGraphicTab({ element }),
+ buildTransformTab({ element }),
+ buildBlendingTab({ element }),
+ buildMasksTab({ element }),
+ buildClipEffectsTab({ element }),
+ ],
+ };
+}
+
+function getAudioConfig({
+ element,
+}: {
+ element: AudioElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "audio",
+ tabs: [buildAudioTab({ element }), buildSpeedTab({ element })],
+ };
+}
+
+function getEffectConfig({
+ element,
+}: {
+ element: EffectElement;
+}): ElementPropertiesConfig {
+ return {
+ defaultTab: "effects",
+ tabs: [buildStandaloneEffectTab({ element })],
+ };
+}
+
+export function getPropertiesConfig({
+ element,
+ mediaAssets,
+}: {
+ element: TimelineElement;
+ mediaAssets: MediaAsset[];
+}): ElementPropertiesConfig {
+ switch (element.type) {
+ case "text":
+ return getTextConfig({ element });
+ case "video": {
+ const mediaAsset = mediaAssets.find((a) => a.id === element.mediaId);
+ return getVideoConfig({ element, mediaAsset });
+ }
+ case "image":
+ return getImageConfig({ element });
+ case "sticker":
+ return getStickerConfig({ element });
+ case "graphic":
+ return getGraphicConfig({ element });
+ case "audio":
+ return getAudioConfig({ element });
+ case "effect":
+ return getEffectConfig({ element });
+ }
+}
diff --git a/apps/web/src/components/editor/panels/properties/stores/properties-store.ts b/apps/web/src/components/editor/panels/properties/stores/properties-store.ts
new file mode 100644
index 00000000..1783e3fc
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/stores/properties-store.ts
@@ -0,0 +1,18 @@
+import { create } from "zustand";
+
+interface PropertiesState {
+ activeTabPerType: Record<string, string>;
+ setActiveTab: (elementType: string, tabId: string) => void;
+ isTransformScaleLocked: boolean;
+ setTransformScaleLocked: (locked: boolean) => void;
+}
+
+export const usePropertiesStore = create<PropertiesState>()((set) => ({
+ activeTabPerType: {},
+ setActiveTab: (elementType, tabId) =>
+ set((state) => ({
+ activeTabPerType: { ...state.activeTabPerType, [elementType]: tabId },
+ })),
+ isTransformScaleLocked: false,
+ setTransformScaleLocked: (locked) => set({ isTransformScaleLocked: locked }),
+}));
diff --git a/apps/web/src/components/editor/panels/properties/tabs/audio-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/audio-tab.tsx
new file mode 100644
index 00000000..41b6ec6d
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/audio-tab.tsx
@@ -0,0 +1,109 @@
+import { NumberField } from "@/components/ui/number-field";
+import { VOLUME_DB_MAX, VOLUME_DB_MIN } from "@/lib/timeline/audio-constants";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { clamp, isNearlyEqual } from "@/utils/math";
+import type { AudioElement, VideoElement } from "@/lib/timeline";
+import { resolveNumberAtTime } from "@/lib/animation";
+import { useElementPlayhead } from "../hooks/use-element-playhead";
+import { useKeyframedNumberProperty } from "../hooks/use-keyframed-number-property";
+import { KeyframeToggle } from "../components/keyframe-toggle";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { VolumeHighIcon } from "@hugeicons/core-free-icons";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+
+export function AudioTab({
+ element,
+ trackId,
+}: {
+ element: AudioElement | VideoElement;
+ trackId: string;
+}) {
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const resolvedVolume = resolveNumberAtTime({
+ baseValue: element.volume ?? DEFAULTS.element.volume,
+ animations: element.animations,
+ propertyPath: "volume",
+ localTime,
+ });
+ const volume = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "volume",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: resolvedVolume.toFixed(1),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) {
+ return null;
+ }
+
+ return clamp({ value: parsed, min: VOLUME_DB_MIN, max: VOLUME_DB_MAX });
+ },
+ valueAtPlayhead: resolvedVolume,
+ step: 0.1,
+ buildBaseUpdates: ({ value }) => ({
+ volume: value,
+ }),
+ });
+ const isDefault =
+ volume.hasAnimatedKeyframes && isPlayheadWithinElementRange
+ ? isNearlyEqual({
+ leftValue: resolvedVolume,
+ rightValue: DEFAULTS.element.volume,
+ })
+ : (element.volume ?? DEFAULTS.element.volume) === DEFAULTS.element.volume;
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:audio`}>
+ <SectionHeader>
+ <SectionTitle>Audio</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <SectionFields>
+ <SectionField
+ label="Volume"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={volume.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle volume keyframe"
+ onToggle={volume.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon={<HugeiconsIcon icon={VolumeHighIcon} />}
+ value={volume.displayValue}
+ onFocus={volume.onFocus}
+ onChange={volume.onChange}
+ onBlur={volume.onBlur}
+ dragSensitivity="slow"
+ scrubClamp={{ min: VOLUME_DB_MIN, max: VOLUME_DB_MAX }}
+ onScrub={volume.scrubTo}
+ onScrubEnd={volume.commitScrub}
+ onReset={() =>
+ volume.commitValue({
+ value: DEFAULTS.element.volume,
+ })
+ }
+ isDefault={isDefault}
+ suffix="dB"
+ />
+ </SectionField>
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/blending-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/blending-tab.tsx
new file mode 100644
index 00000000..c360817c
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/blending-tab.tsx
@@ -0,0 +1,230 @@
+import { useEditor } from "@/hooks/use-editor";
+import { clamp } from "@/utils/math";
+import { NumberField } from "@/components/ui/number-field";
+import { OcCheckerboardIcon } from "@opencut/ui/icons";
+import { Fragment, useRef } from "react";
+import { useMenuPreview } from "@/hooks/use-menu-preview";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectSeparator,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import type { BlendMode } from "@/lib/rendering";
+import type { ElementType } from "@/lib/timeline";
+import type { ElementAnimations } from "@/lib/animation/types";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { RainDropIcon } from "@hugeicons/core-free-icons";
+import { KeyframeToggle } from "../components/keyframe-toggle";
+import { useKeyframedNumberProperty } from "../hooks/use-keyframed-number-property";
+import { useElementPlayhead } from "../hooks/use-element-playhead";
+import { resolveOpacityAtTime } from "@/lib/animation";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { isPropertyAtDefault } from "./transform-tab";
+
+type BlendingElement = {
+ id: string;
+ opacity: number;
+ type: ElementType;
+ blendMode?: BlendMode;
+ startTime: number;
+ duration: number;
+ animations?: ElementAnimations;
+};
+
+const BLEND_MODE_GROUPS = [
+ [{ value: "normal", label: "Normal" }],
+ [
+ { value: "darken", label: "Darken" },
+ { value: "multiply", label: "Multiply" },
+ { value: "color-burn", label: "Color Burn" },
+ ],
+ [
+ { value: "lighten", label: "Lighten" },
+ { value: "screen", label: "Screen" },
+ { value: "plus-lighter", label: "Plus Lighter" },
+ { value: "color-dodge", label: "Color Dodge" },
+ ],
+ [
+ { value: "overlay", label: "Overlay" },
+ { value: "soft-light", label: "Soft Light" },
+ { value: "hard-light", label: "Hard Light" },
+ ],
+ [
+ { value: "difference", label: "Difference" },
+ { value: "exclusion", label: "Exclusion" },
+ ],
+ [
+ { value: "hue", label: "Hue" },
+ { value: "saturation", label: "Saturation" },
+ { value: "color", label: "Color" },
+ { value: "luminosity", label: "Luminosity" },
+ ],
+];
+
+export function BlendingTab({
+ element,
+ trackId,
+}: {
+ element: BlendingElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const isPreviewActive = useEditor((e) => e.timeline.isPreviewActive());
+ const blendMode = element.blendMode ?? DEFAULTS.element.blendMode;
+ const committedBlendModeRef = useRef(blendMode);
+ if (!isPreviewActive) {
+ committedBlendModeRef.current = blendMode;
+ }
+
+ const {
+ onPointerLeave,
+ onOpenChange: handleBlendModeOpenChange,
+ markCommitted,
+ } = useMenuPreview();
+
+ const previewBlendMode = ({ value }: { value: BlendMode }) =>
+ editor.timeline.previewElements({
+ updates: [
+ { trackId, elementId: element.id, updates: { blendMode: value } },
+ ],
+ });
+
+ const commitBlendMode = (value: string) => {
+ if (editor.timeline.isPreviewActive()) {
+ editor.timeline.commitPreview();
+ } else {
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: { blendMode: value as BlendMode },
+ },
+ ],
+ });
+ }
+ markCommitted();
+ };
+
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const resolvedOpacity = resolveOpacityAtTime({
+ baseOpacity: element.opacity,
+ animations: element.animations,
+ localTime,
+ });
+
+ const opacity = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "opacity",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedOpacity * 100).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ return clamp({ value: parsed, min: 0, max: 100 }) / 100;
+ },
+ valueAtPlayhead: resolvedOpacity,
+ step: 0.01,
+ buildBaseUpdates: ({ value }) => ({ opacity: value }),
+ });
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:blending`}>
+ <SectionHeader>
+ <SectionTitle>Blending</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <div className="flex items-start gap-2">
+ <SectionField
+ label="Opacity"
+ className="w-1/2"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={opacity.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle opacity keyframe"
+ onToggle={opacity.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ className="w-full"
+ icon={
+ <OcCheckerboardIcon className="size-3.5 text-muted-foreground" />
+ }
+ value={opacity.displayValue}
+ min={0}
+ max={100}
+ onFocus={opacity.onFocus}
+ onChange={opacity.onChange}
+ onBlur={opacity.onBlur}
+ onScrub={opacity.scrubTo}
+ onScrubEnd={opacity.commitScrub}
+ onReset={() =>
+ opacity.commitValue({ value: DEFAULTS.element.opacity })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: opacity.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedOpacity,
+ staticValue: element.opacity,
+ defaultValue: DEFAULTS.element.opacity,
+ })}
+ dragSensitivity="slow"
+ />
+ </SectionField>
+ <SectionField label="Blend mode" className="w-1/2">
+ <Select
+ value={committedBlendModeRef.current}
+ onOpenChange={handleBlendModeOpenChange}
+ onValueChange={commitBlendMode}
+ >
+ <SelectTrigger
+ icon={<HugeiconsIcon icon={RainDropIcon} />}
+ className="w-full"
+ >
+ <SelectValue placeholder="Select blend mode" />
+ </SelectTrigger>
+ <SelectContent className="w-36" onPointerLeave={onPointerLeave}>
+ {BLEND_MODE_GROUPS.map((group, groupIndex) => (
+ <Fragment key={group[0]?.value ?? `group-${groupIndex}`}>
+ {group.map((option) => (
+ <SelectItem
+ key={option.value}
+ value={option.value}
+ onPointerEnter={() =>
+ previewBlendMode({ value: option.value as BlendMode })
+ }
+ >
+ {option.label}
+ </SelectItem>
+ ))}
+ {groupIndex < BLEND_MODE_GROUPS.length - 1 ? (
+ <SelectSeparator />
+ ) : null}
+ </Fragment>
+ ))}
+ </SelectContent>
+ </Select>
+ </SectionField>
+ </div>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/effects-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/effects-tab.tsx
new file mode 100644
index 00000000..1b94ee2d
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/effects-tab.tsx
@@ -0,0 +1,309 @@
+"use client";
+
+import { useState } from "react";
+import type { ParamValues } from "@/lib/params";
+import type { Effect } from "@/lib/effects/types";
+import type { EffectElement, VisualElement } from "@/lib/timeline";
+import { effectsRegistry } from "@/lib/effects";
+import { useEditor } from "@/hooks/use-editor";
+import { useElementPreview } from "@/hooks/use-element-preview";
+import {
+ Section,
+ SectionContent,
+ SectionHeader,
+ SectionTitle,
+ SectionFields,
+} from "@/components/section";
+import { PropertyParamField } from "../components/property-param-field";
+import { Button } from "@/components/ui/button";
+import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ Delete02Icon,
+ ViewIcon,
+ ViewOffSlashIcon,
+ MagicWand05Icon,
+} from "@hugeicons/core-free-icons";
+import { cn } from "@/utils/ui";
+import { Separator } from "@/components/ui/separator";
+import { useAssetsPanelStore } from "@/stores/assets-panel-store";
+
+export function StandaloneEffectTab({
+ element,
+ trackId,
+}: {
+ element: EffectElement;
+ trackId: string;
+}) {
+ const { renderElement, previewUpdates, commit } = useElementPreview({
+ trackId,
+ elementId: element.id,
+ fallback: element,
+ });
+
+ const effect: Effect = {
+ id: element.id,
+ type: element.effectType,
+ params: element.params,
+ enabled: true,
+ };
+
+ const previewParam = (key: string) => (value: number | string | boolean) => {
+ previewUpdates({
+ params: { ...(renderElement as EffectElement).params, [key]: value },
+ });
+ };
+
+ return (
+ <div className="flex flex-col h-full">
+ <div className="border-b px-3.5 h-11 shrink-0 flex items-center">
+ <SectionTitle>Effect</SectionTitle>
+ </div>
+ <EffectSection
+ effect={effect}
+ renderParams={(renderElement as EffectElement).params}
+ previewParam={previewParam}
+ onCommit={commit}
+ />
+ </div>
+ );
+}
+
+export function ClipEffectsTab({
+ element,
+ trackId,
+}: {
+ element: VisualElement;
+ trackId: string;
+}) {
+ const [dragIndex, setDragIndex] = useState<number | null>(null);
+ const [dropIndex, setDropIndex] = useState<number | null>(null);
+ const editor = useEditor();
+ const { renderElement, previewUpdates, commit } = useElementPreview({
+ trackId,
+ elementId: element.id,
+ fallback: element,
+ });
+
+ const effects: Effect[] = element.effects ?? [];
+
+ const getRenderParams = ({ effectId }: { effectId: string }): ParamValues => {
+ return (
+ (renderElement as VisualElement).effects?.find((ef) => ef.id === effectId)
+ ?.params ??
+ effects.find((ef) => ef.id === effectId)?.params ??
+ {}
+ );
+ };
+
+ const buildPreviewParam =
+ (effectId: string) =>
+ (key: string) =>
+ (value: number | string | boolean) => {
+ const updatedEffects = (
+ (renderElement as VisualElement).effects ?? []
+ ).map((existing) =>
+ existing.id !== effectId
+ ? existing
+ : { ...existing, params: { ...existing.params, [key]: value } },
+ );
+ previewUpdates({ effects: updatedEffects });
+ };
+
+ const handleDragStart = ({ index }: { index: number }) => setDragIndex(index);
+
+ const handleDragOver = ({
+ event,
+ index,
+ }: {
+ event: React.DragEvent;
+ index: number;
+ }) => {
+ event.preventDefault();
+ if (index !== dropIndex) setDropIndex(index);
+ };
+
+ const handleDrop = ({ toIndex }: { toIndex: number }) => {
+ if (dragIndex !== null && dragIndex !== toIndex) {
+ editor.timeline.reorderClipEffects({
+ trackId,
+ elementId: element.id,
+ fromIndex: dragIndex,
+ toIndex,
+ });
+ }
+ setDragIndex(null);
+ setDropIndex(null);
+ };
+
+ const handleDragEnd = () => {
+ setDragIndex(null);
+ setDropIndex(null);
+ };
+
+ return (
+ <div className="flex flex-col h-full">
+ <div className="border-b px-3.5 h-11 shrink-0 flex items-center">
+ <SectionTitle>Effects</SectionTitle>
+ </div>
+ {effects.length === 0 ? (
+ <EmptyView />
+ ) : (
+ <ul className="flex flex-col">
+ {effects.map((effect, index) => {
+ const resolvedDragIndex = dragIndex ?? -1;
+ const isDragging = dragIndex === index;
+ const isDropTarget =
+ dropIndex === index && dragIndex !== null && dragIndex !== index;
+ const showTopDropIndicator =
+ isDropTarget && index < resolvedDragIndex;
+ const showBottomDropIndicator =
+ isDropTarget && index > resolvedDragIndex;
+
+ return (
+ <li
+ key={effect.id}
+ draggable
+ onDragStart={() => handleDragStart({ index })}
+ onDragOver={(event) => handleDragOver({ event, index })}
+ onDrop={() => handleDrop({ toIndex: index })}
+ onDragEnd={handleDragEnd}
+ className={cn(
+ "group list-none",
+ isDragging && "opacity-40",
+ showTopDropIndicator && "border-t-2 border-primary",
+ showBottomDropIndicator && "border-b-2 border-primary",
+ )}
+ >
+ <EffectSection
+ effect={effect}
+ renderParams={getRenderParams({ effectId: effect.id })}
+ previewParam={buildPreviewParam(effect.id)}
+ onCommit={commit}
+ onToggle={() =>
+ editor.timeline.toggleClipEffect({
+ trackId,
+ elementId: element.id,
+ effectId: effect.id,
+ })
+ }
+ onRemove={() =>
+ editor.timeline.removeClipEffect({
+ trackId,
+ elementId: element.id,
+ effectId: effect.id,
+ })
+ }
+ />
+ </li>
+ );
+ })}
+ </ul>
+ )}
+ </div>
+ );
+}
+
+function EmptyView() {
+ const setActiveTab = useAssetsPanelStore((s) => s.setActiveTab);
+
+ return (
+ <div className="flex flex-col h-full items-center justify-center gap-4 text-center">
+ <HugeiconsIcon
+ icon={MagicWand05Icon}
+ className="size-10 text-muted-foreground"
+ strokeWidth={1}
+ />
+ <div className="flex flex-col gap-2">
+ <h3 className="font-medium text-foreground">No effects</h3>
+ <p className="text-muted-foreground text-sm text-balance max-w-44">
+ Add effects to this layer from the Assets panel.
+ </p>
+ </div>
+ <Button
+ variant="default"
+ size="sm"
+ onClick={() => setActiveTab("effects")}
+ >
+ Open effects
+ </Button>
+ </div>
+ );
+}
+
+function EffectSection({
+ effect,
+ renderParams,
+ previewParam,
+ onCommit,
+ onToggle,
+ onRemove,
+}: {
+ effect: Effect;
+ renderParams: ParamValues;
+ previewParam: (key: string) => (value: number | string | boolean) => void;
+ onCommit: () => void;
+ onToggle?: () => void;
+ onRemove?: () => void;
+}) {
+ const definition = effectsRegistry.get(effect.type);
+
+ return (
+ <Section
+ sectionKey={onToggle ? `clip-effect:${effect.id}` : undefined}
+ showTopBorder={false}
+ >
+ <SectionHeader
+ className={cn(onToggle && "cursor-move")}
+ trailing={
+ onToggle && (
+ <div className="flex items-center gap-1">
+ <Button
+ variant={effect.enabled ? "secondary" : "ghost"}
+ size="icon"
+ aria-label={`Toggle ${definition.name}`}
+ onClick={onToggle}
+ >
+ <HugeiconsIcon
+ icon={effect.enabled ? ViewIcon : ViewOffSlashIcon}
+ />
+ </Button>
+ <Button
+ variant="ghost"
+ size="icon"
+ aria-label={`Remove ${definition.name}`}
+ onClick={onRemove}
+ >
+ <HugeiconsIcon icon={Delete02Icon} />
+ </Button>
+ </div>
+ )
+ }
+ >
+ <SectionTitle
+ className={cn(onToggle && !effect.enabled && "text-muted-foreground")}
+ >
+ {definition.name}
+ </SectionTitle>
+ </SectionHeader>
+ <SectionContent
+ className={cn("p-0", onToggle && !effect.enabled && "opacity-50")}
+ >
+ <SectionFields>
+ {definition.params.map((param) => (
+ <div key={param.key} className="flex flex-col gap-3.5">
+ <div className="px-4">
+ <PropertyParamField
+ param={param}
+ value={renderParams[param.key] ?? param.default}
+ onPreview={previewParam(param.key)}
+ onCommit={onCommit}
+ />
+ </div>
+ <Separator />
+ </div>
+ ))}
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/graphic-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/graphic-tab.tsx
new file mode 100644
index 00000000..22dae8cc
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/graphic-tab.tsx
@@ -0,0 +1,238 @@
+"use client";
+
+import { useRef } from "react";
+import { useElementPlayhead } from "../hooks/use-element-playhead";
+import {
+ useKeyframedParamProperty,
+ type KeyframedParamPropertyResult,
+} from "../hooks/use-keyframed-param-property";
+import { resolveGraphicParamsAtTime } from "@/lib/animation";
+import type { ParamDefinition, ParamValues } from "@/lib/params";
+import type { GraphicElement } from "@/lib/timeline";
+import { graphicsRegistry, registerDefaultGraphics } from "@/lib/graphics";
+import { useElementPreview } from "@/hooks/use-element-preview";
+import { useEditor } from "@/hooks/use-editor";
+import {
+ Section,
+ SectionContent,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { PropertyParamField } from "../components/property-param-field";
+import { Button } from "@/components/ui/button";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { MinusSignIcon, PlusSignIcon } from "@hugeicons/core-free-icons";
+import { cn } from "@/utils/ui";
+
+registerDefaultGraphics();
+
+const DEFAULT_STROKE_WIDTH = 2;
+
+export function GraphicTab({
+ element,
+ trackId,
+}: {
+ element: GraphicElement;
+ trackId: string;
+}) {
+ const definition = graphicsRegistry.get(element.definitionId);
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const { renderElement } = useElementPreview({
+ trackId,
+ elementId: element.id,
+ fallback: element,
+ });
+
+ const liveElement = renderElement as GraphicElement;
+ const resolvedParams = resolveGraphicParamsAtTime({
+ element: liveElement,
+ localTime,
+ });
+
+ const shapeParams = definition.params.filter((p) => p.group !== "stroke");
+ const hasStrokeParams = definition.params.some((p) => p.group === "stroke");
+
+ return (
+ <div className="flex flex-col">
+ <Section collapsible sectionKey={`${element.id}:graphic`}>
+ <SectionHeader>
+ <SectionTitle>{definition.name}</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <SectionFields>
+ {shapeParams.map((param) => (
+ <AnimatedGraphicParamField
+ key={param.key}
+ param={param}
+ trackId={trackId}
+ element={liveElement}
+ localTime={localTime}
+ isPlayheadWithinElementRange={isPlayheadWithinElementRange}
+ resolvedParams={resolvedParams}
+ />
+ ))}
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ {hasStrokeParams && (
+ <StrokeSection element={element} trackId={trackId} />
+ )}
+ </div>
+ );
+}
+
+function StrokeSection({
+ element,
+ trackId,
+}: {
+ element: GraphicElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const definition = graphicsRegistry.get(element.definitionId);
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const { renderElement } = useElementPreview({
+ trackId,
+ elementId: element.id,
+ fallback: element,
+ });
+
+ const liveElement = renderElement as GraphicElement;
+ const resolvedParams = resolveGraphicParamsAtTime({
+ element: liveElement,
+ localTime,
+ });
+ const strokeParams = definition.params.filter((p) => p.group === "stroke");
+ const lastStrokeWidth = useRef(DEFAULT_STROKE_WIDTH);
+ const isStrokeEnabled = Number(element.params.strokeWidth ?? 0) > 0;
+
+ const toggleStroke = () => {
+ if (isStrokeEnabled) {
+ lastStrokeWidth.current = Number(
+ element.params.strokeWidth ?? DEFAULT_STROKE_WIDTH,
+ );
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: { params: { ...element.params, strokeWidth: 0 } },
+ },
+ ],
+ });
+ } else {
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: {
+ params: {
+ ...element.params,
+ strokeWidth: lastStrokeWidth.current,
+ },
+ },
+ },
+ ],
+ });
+ }
+ };
+
+ return (
+ <Section
+ collapsible
+ defaultOpen={isStrokeEnabled}
+ sectionKey={`${element.id}:stroke`}
+ >
+ <SectionHeader
+ trailing={
+ <Button
+ variant="ghost"
+ size="icon"
+ onClick={(event) => {
+ event.stopPropagation();
+ toggleStroke();
+ }}
+ >
+ <HugeiconsIcon
+ icon={isStrokeEnabled ? MinusSignIcon : PlusSignIcon}
+ strokeWidth={1}
+ />
+ </Button>
+ }
+ >
+ <SectionTitle>Stroke</SectionTitle>
+ </SectionHeader>
+ <SectionContent
+ className={cn(!isStrokeEnabled && "pointer-events-none opacity-50")}
+ >
+ <SectionFields>
+ {strokeParams.map((param) => (
+ <AnimatedGraphicParamField
+ key={param.key}
+ param={param}
+ trackId={trackId}
+ element={liveElement}
+ localTime={localTime}
+ isPlayheadWithinElementRange={isPlayheadWithinElementRange}
+ resolvedParams={resolvedParams}
+ />
+ ))}
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
+
+function AnimatedGraphicParamField({
+ param,
+ trackId,
+ element,
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedParams,
+}: {
+ param: ParamDefinition;
+ trackId: string;
+ element: GraphicElement;
+ localTime: number;
+ isPlayheadWithinElementRange: boolean;
+ resolvedParams: ParamValues;
+}) {
+ const animatedParam: KeyframedParamPropertyResult = useKeyframedParamProperty({
+ param,
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedParams[param.key] ?? param.default,
+ buildBaseUpdates: ({ value }) => ({
+ params: {
+ ...element.params,
+ [param.key]: value,
+ },
+ }),
+ });
+
+ return (
+ <PropertyParamField
+ param={param}
+ value={resolvedParams[param.key] ?? param.default}
+ onPreview={animatedParam.onPreview}
+ onCommit={animatedParam.onCommit}
+ keyframe={{
+ isActive: animatedParam.isKeyframedAtTime,
+ isDisabled: !isPlayheadWithinElementRange,
+ onToggle: animatedParam.toggleKeyframe,
+ }}
+ />
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/masks-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/masks-tab.tsx
new file mode 100644
index 00000000..6a5d0d0b
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/masks-tab.tsx
@@ -0,0 +1,660 @@
+"use client";
+
+import type { MaskableElement } from "@/lib/timeline";
+import type { Mask, MaskType } from "@/lib/masks/types";
+import type { NumberParamDefinition, SelectParamDefinition } from "@/lib/params";
+import { masksRegistry, buildDefaultMaskInstance } from "@/lib/masks";
+import { useEditor } from "@/hooks/use-editor";
+import { useElementPreview } from "@/hooks/use-element-preview";
+import { useMenuPreview } from "@/hooks/use-menu-preview";
+import { getVisibleElementsWithBounds } from "@/lib/preview/element-bounds";
+import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ Delete02Icon,
+ FeatherIcon,
+ PlusSignIcon,
+ RotateClockwiseIcon,
+} from "@hugeicons/core-free-icons";
+import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
+import { useMemo, useState } from "react";
+import { Button } from "@/components/ui/button";
+import { ColorPicker } from "@/components/ui/color-picker";
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+} from "@/components/ui/dropdown-menu";
+import { NumberField } from "@/components/ui/number-field";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipTrigger,
+} from "@/components/ui/tooltip";
+import { clamp, formatNumberForDisplay, snapToStep } from "@/utils/math";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { usePropertyDraft } from "../hooks/use-property-draft";
+import { OcMirrorIcon, OcShapesIcon } from "@opencut/ui/icons";
+import { cn } from "@/utils/ui";
+
+type MasksTabProps = {
+ element: MaskableElement;
+ trackId: string;
+};
+
+type MaskItemProps = {
+ trackId: string;
+ elementId: string;
+ mask: Mask;
+ previewParam: (key: string) => (value: number | string | boolean) => void;
+ onCommit: () => void;
+};
+
+type EmptyViewProps = {
+ onAddMask: () => void;
+};
+
+type PreviewParamHandler = (
+ key: string,
+) => (value: number | string | boolean) => void;
+
+type RegisteredMaskDefinition = ReturnType<(typeof masksRegistry)["get"]>;
+
+export function MasksTab({ element, trackId }: MasksTabProps) {
+ const editor = useEditor();
+ const { renderElement, previewUpdates, commit } =
+ useElementPreview<MaskableElement>({
+ trackId,
+ elementId: element.id,
+ fallback: element,
+ });
+ const maskDefs = masksRegistry.getAll();
+ const tracks = useEditor((e) => e.timeline.getRenderTracks());
+ const currentTime = useEditor((e) => e.playback.getCurrentTime());
+ const mediaAssets = useEditor((e) => e.media.getAssets());
+ const canvasSize = useEditor(
+ (e) => e.project.getActive().settings.canvasSize,
+ );
+ const masks = element.masks ?? [];
+ const renderMasks = renderElement.masks ?? masks;
+ const hasMask = masks.length > 0;
+ const { onPointerLeave, onOpenChange, markCommitted } = useMenuPreview();
+ const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+ const elementBounds = useMemo(() => {
+ const clampedTime = Math.min(
+ Math.max(currentTime, element.startTime),
+ element.startTime + element.duration - TIME_EPSILON_SECONDS,
+ );
+
+ return (
+ getVisibleElementsWithBounds({
+ tracks,
+ currentTime: clampedTime,
+ canvasSize,
+ mediaAssets,
+ }).find(
+ (item) => item.trackId === trackId && item.elementId === element.id,
+ )?.bounds ?? null
+ );
+ }, [
+ canvasSize,
+ currentTime,
+ element.duration,
+ element.id,
+ element.startTime,
+ mediaAssets,
+ trackId,
+ tracks,
+ ]);
+
+ const handleDropdownOpenChange = (open: boolean) => {
+ if (hasMask && open) return;
+ setIsDropdownOpen(open);
+ onOpenChange(open);
+ };
+
+ const previewMask = ({ maskType }: { maskType: MaskType }) => {
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: {
+ masks: [
+ buildDefaultMaskInstance({
+ maskType,
+ elementSize: elementBounds
+ ? {
+ width: elementBounds.width,
+ height: elementBounds.height,
+ }
+ : undefined,
+ }),
+ ],
+ } as Partial<MaskableElement>,
+ },
+ ],
+ });
+ };
+
+ const commitMask = ({ maskType }: { maskType: MaskType }) => {
+ if (editor.timeline.isPreviewActive()) {
+ editor.timeline.commitPreview();
+ } else {
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: {
+ masks: [
+ buildDefaultMaskInstance({
+ maskType,
+ elementSize: elementBounds
+ ? {
+ width: elementBounds.width,
+ height: elementBounds.height,
+ }
+ : undefined,
+ }),
+ ],
+ } as Partial<MaskableElement>,
+ },
+ ],
+ });
+ }
+ markCommitted();
+ setIsDropdownOpen(false);
+ };
+
+ const previewMaskParam =
+ ({ index, key }: { index: number; key: string }) =>
+ (value: number | string | boolean) => {
+ if (!renderMasks[index]) {
+ return;
+ }
+
+ const updatedMasks = renderMasks.map((existingMask, maskIndex) =>
+ maskIndex !== index
+ ? existingMask
+ : {
+ ...existingMask,
+ params: {
+ ...existingMask.params,
+ [key]: value,
+ },
+ },
+ );
+
+ previewUpdates({ masks: updatedMasks } as Partial<MaskableElement>);
+ };
+
+ return (
+ <div className="flex flex-col h-full">
+ <div className="border-b px-3.5 h-11 shrink-0 flex items-center justify-between gap-2">
+ <SectionTitle>Masks</SectionTitle>
+ <DropdownMenu
+ open={hasMask ? false : isDropdownOpen}
+ onOpenChange={handleDropdownOpenChange}
+ >
+ {hasMask ? (
+ <Tooltip>
+ <TooltipTrigger asChild>
+ <span className="inline-flex">
+ <Button
+ variant="ghost"
+ size="icon"
+ disabled
+ aria-label="Add mask"
+ >
+ <HugeiconsIcon icon={PlusSignIcon} className="size-3.5!" />
+ </Button>
+ </span>
+ </TooltipTrigger>
+ <TooltipContent className="max-w-56 text-balance">
+ Only one mask is supported right now. If you need more,
+ duplicate the clip and apply a different mask to each copy.
+ </TooltipContent>
+ </Tooltip>
+ ) : (
+ <DropdownMenuTrigger asChild>
+ <Button variant="ghost" size="icon" aria-label="Add mask">
+ <HugeiconsIcon icon={PlusSignIcon} className="size-3.5!" />
+ </Button>
+ </DropdownMenuTrigger>
+ )}
+ <DropdownMenuContent className="w-40" onPointerLeave={onPointerLeave}>
+ {maskDefs.map((definition) => (
+ <DropdownMenuItem
+ key={definition.type}
+ onPointerEnter={() =>
+ previewMask({ maskType: definition.type })
+ }
+ onClick={() => commitMask({ maskType: definition.type })}
+ >
+ <HugeiconsIcon {...definition.icon} />
+ {definition.name}
+ </DropdownMenuItem>
+ ))}
+ </DropdownMenuContent>
+ </DropdownMenu>
+ </div>
+
+ {masks.length === 0 ? (
+ <EmptyView onAddMask={() => setIsDropdownOpen(true)} />
+ ) : (
+ masks.map((mask, index) => (
+ <MaskItem
+ key={mask.id}
+ trackId={trackId}
+ elementId={element.id}
+ mask={renderMasks[index] ?? mask}
+ previewParam={(paramKey) =>
+ previewMaskParam({ index, key: paramKey })
+ }
+ onCommit={commit}
+ />
+ ))
+ )}
+ </div>
+ );
+}
+
+function MaskItem({
+ trackId,
+ elementId,
+ mask,
+ previewParam,
+ onCommit,
+}: MaskItemProps) {
+ const editor = useEditor();
+ const definition = masksRegistry.get(mask.type);
+
+ return (
+ <Section sectionKey={`mask-item:${mask.id}`} showTopBorder={false}>
+ <SectionHeader
+ trailing={
+ <div className="flex items-center gap-1">
+ <Button
+ variant="ghost"
+ size="icon"
+ aria-label={`Toggle ${definition.name} mask inversion`}
+ onClick={() =>
+ editor.timeline.toggleMaskInverted({
+ trackId,
+ elementId,
+ maskId: mask.id,
+ })
+ }
+ >
+ <OcMirrorIcon
+ className={cn(mask.params.inverted && "-scale-x-100")}
+ />
+ </Button>
+ <Button
+ variant="ghost"
+ size="icon"
+ aria-label={`Remove ${definition.name} mask`}
+ onClick={() =>
+ editor.timeline.removeMask({
+ trackId,
+ elementId,
+ maskId: mask.id,
+ })
+ }
+ >
+ <HugeiconsIcon icon={Delete02Icon} />
+ </Button>
+ </div>
+ }
+ >
+ <div className="flex items-center gap-2">
+ <HugeiconsIcon {...definition.icon} size={14} />
+ <SectionTitle className="capitalize font-normal">
+ {definition.name}
+ </SectionTitle>
+ </div>
+ </SectionHeader>
+ <SectionContent>
+ <MaskParamsFields
+ mask={mask}
+ definition={definition}
+ previewParam={previewParam}
+ onCommit={onCommit}
+ />
+ </SectionContent>
+ </Section>
+ );
+}
+
+function MaskParamsFields({
+ mask,
+ definition,
+ previewParam,
+ onCommit,
+}: {
+ mask: Mask;
+ definition: RegisteredMaskDefinition;
+ previewParam: PreviewParamHandler;
+ onCommit: () => void;
+}) {
+ const featherParam = getNumberParamDefinition({
+ definition,
+ key: "feather",
+ });
+ const strokeWidthParam = getNumberParamDefinition({
+ definition,
+ key: "strokeWidth",
+ });
+ const previewNumberParam = (key: string) => (value: number) =>
+ previewParam(key)(value);
+ const previewStrokeColor = previewParam("strokeColor");
+ const strokeAlignParam = definition.params.find(
+ (param): param is SelectParamDefinition =>
+ param.key === "strokeAlign" && param.type === "select",
+ );
+
+ return (
+ <SectionFields>
+ {definition.features.hasPosition &&
+ "centerX" in mask.params &&
+ "centerY" in mask.params && (
+ <SectionField label="Position">
+ <div className="flex items-center gap-2">
+ <MaskNumberField
+ className="flex-1"
+ icon="X"
+ param={getNumberParamDefinition({
+ definition,
+ key: "centerX",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "centerX",
+ })}
+ onPreview={previewNumberParam("centerX")}
+ onCommit={onCommit}
+ />
+ <MaskNumberField
+ className="flex-1"
+ icon="Y"
+ param={getNumberParamDefinition({
+ definition,
+ key: "centerY",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "centerY",
+ })}
+ onPreview={previewNumberParam("centerY")}
+ onCommit={onCommit}
+ />
+ </div>
+ </SectionField>
+ )}
+
+ {definition.features.sizeMode === "width-height" &&
+ "width" in mask.params &&
+ "height" in mask.params && (
+ <SectionField label="Size">
+ <div className="flex items-center gap-2">
+ <MaskNumberField
+ className="flex-1"
+ icon="W"
+ param={getNumberParamDefinition({
+ definition,
+ key: "width",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "width",
+ })}
+ onPreview={previewNumberParam("width")}
+ onCommit={onCommit}
+ />
+ <MaskNumberField
+ className="flex-1"
+ icon="H"
+ param={getNumberParamDefinition({
+ definition,
+ key: "height",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "height",
+ })}
+ onPreview={previewNumberParam("height")}
+ onCommit={onCommit}
+ />
+ </div>
+ </SectionField>
+ )}
+
+ {definition.features.sizeMode === "uniform" && "scale" in mask.params && (
+ <SectionField label="Scale">
+ <MaskNumberField
+ icon="S"
+ param={getNumberParamDefinition({
+ definition,
+ key: "scale",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "scale",
+ })}
+ onPreview={previewNumberParam("scale")}
+ onCommit={onCommit}
+ />
+ </SectionField>
+ )}
+
+ {definition.features.hasRotation && "rotation" in mask.params && (
+ <SectionField label="Rotation">
+ <MaskNumberField
+ icon={<HugeiconsIcon icon={RotateClockwiseIcon} />}
+ param={getNumberParamDefinition({
+ definition,
+ key: "rotation",
+ })}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "rotation",
+ })}
+ onPreview={previewNumberParam("rotation")}
+ onCommit={onCommit}
+ />
+ </SectionField>
+ )}
+
+ <SectionField label="Feather">
+ <MaskNumberField
+ icon={<HugeiconsIcon icon={FeatherIcon} />}
+ param={featherParam}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "feather",
+ })}
+ onPreview={previewNumberParam("feather")}
+ onCommit={onCommit}
+ />
+ </SectionField>
+
+ <SectionField label="Stroke">
+ <div className="flex flex-col gap-2">
+ <div className="flex items-center gap-2">
+ <MaskNumberField
+ className="flex-1"
+ icon="W"
+ param={strokeWidthParam}
+ value={getMaskNumber({
+ params: mask.params,
+ key: "strokeWidth",
+ })}
+ onPreview={previewNumberParam("strokeWidth")}
+ onCommit={onCommit}
+ />
+ <ColorPicker
+ className=""
+ value={mask.params.strokeColor.replace(/^#/, "").toUpperCase()}
+ onChange={(color) => previewStrokeColor(`#${color}`)}
+ onChangeEnd={(color) => {
+ previewStrokeColor(`#${color}`);
+ onCommit();
+ }}
+ />
+ </div>
+ {strokeAlignParam ? (
+ <Select
+ value={mask.params.strokeAlign}
+ onValueChange={(value) => {
+ previewParam("strokeAlign")(value);
+ onCommit();
+ }}
+ >
+ <SelectTrigger className="w-full">
+ <SelectValue />
+ </SelectTrigger>
+ <SelectContent>
+ {strokeAlignParam.options.map((option) => (
+ <SelectItem key={option.value} value={option.value}>
+ {option.label}
+ </SelectItem>
+ ))}
+ </SelectContent>
+ </Select>
+ ) : null}
+ </div>
+ </SectionField>
+ </SectionFields>
+ );
+}
+
+function getNumberParamDefinition({
+ definition,
+ key,
+}: {
+ definition: RegisteredMaskDefinition;
+ key: string;
+}): NumberParamDefinition {
+ const param = definition.params.find((candidate) => candidate.key === key);
+
+ if (!param || param.type !== "number") {
+ throw new Error(`Missing number param definition for mask key "${key}"`);
+ }
+
+ return param;
+}
+
+function getMaskNumber({
+ params,
+ key,
+}: {
+ params: Mask["params"];
+ key: string;
+}): number {
+ const value = params[key];
+
+ if (typeof value !== "number") {
+ throw new Error(`Expected numeric mask param for "${key}"`);
+ }
+
+ return value;
+}
+
+function MaskNumberField({
+ param,
+ value,
+ onPreview,
+ onCommit,
+ icon,
+ className,
+}: {
+ param: NumberParamDefinition;
+ value: number;
+ onPreview: (value: number) => void;
+ onCommit: () => void;
+ icon?: React.ReactNode;
+ className?: string;
+}) {
+ const isPercent = param.unit === "percent";
+ const percentMax = param.max ?? 100;
+ const displayMultiplier = isPercent
+ ? 100 / percentMax
+ : (param.displayMultiplier ?? 1);
+ const min = isPercent ? 0 : param.min;
+ const max = isPercent ? 100 : param.max;
+ const step = isPercent ? 1 : param.step;
+ const displayValue = value * displayMultiplier;
+ const maxFractionDigits = step >= 1 ? 0 : Math.round(-Math.log10(step));
+
+ const clampDisplay = (nextDisplayValue: number) =>
+ max !== undefined
+ ? clamp({ value: nextDisplayValue, min, max })
+ : Math.max(min, nextDisplayValue);
+
+ const previewFromDisplay = (nextDisplayValue: number) => {
+ onPreview(
+ clampDisplay(snapToStep({ value: nextDisplayValue, step })) /
+ displayMultiplier,
+ );
+ };
+
+ const draft = usePropertyDraft({
+ displayValue: formatNumberForDisplay({
+ value: displayValue,
+ maxFractionDigits,
+ }),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ return clampDisplay(snapToStep({ value: parsed, step })) / displayMultiplier;
+ },
+ onPreview,
+ onCommit,
+ });
+
+ return (
+ <NumberField
+ className={className}
+ icon={icon}
+ value={draft.displayValue}
+ dragSensitivity="slow"
+ onFocus={draft.onFocus}
+ onChange={draft.onChange}
+ onBlur={draft.onBlur}
+ onScrub={previewFromDisplay}
+ onScrubEnd={onCommit}
+ />
+ );
+}
+
+function EmptyView({ onAddMask }: EmptyViewProps) {
+ return (
+ <div className="flex flex-col h-full items-center justify-center gap-4 text-center">
+ <OcShapesIcon className="size-10 text-muted-foreground" strokeWidth={1} />
+ <div className="flex flex-col gap-2">
+ <h3 className="font-medium text-foreground">No masks</h3>
+ <p className="text-muted-foreground text-sm text-balance max-w-40">
+ Add a mask to hide or reveal parts of this layer.
+ </p>
+ </div>
+ <Button variant="default" size="sm" onClick={onAddMask}>
+ Add mask
+ </Button>
+ </div>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/speed-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/speed-tab.tsx
new file mode 100644
index 00000000..44f5dd74
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/speed-tab.tsx
@@ -0,0 +1,137 @@
+import { useRef } from "react";
+import { useEditor } from "@/hooks/use-editor";
+import { NumberField } from "@/components/ui/number-field";
+import { Switch } from "@/components/ui/switch";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { DashboardSpeed02Icon } from "@hugeicons/core-free-icons";
+import { buildConstantRetime } from "@/lib/retime";
+import {
+ DEFAULT_RETIME_RATE,
+ MIN_RETIME_RATE,
+ MAX_RETIME_RATE,
+ clampRetimeRate,
+ canMaintainPitch,
+} from "@/constants/retime-constants";
+import type { AudioElement, VideoElement } from "@/lib/timeline";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { usePropertyDraft } from "../hooks/use-property-draft";
+
+function rateToDisplay({ rate }: { rate: number }): string {
+ return rate.toFixed(2);
+}
+
+function parseSpeedInput({ input }: { input: string }): number | null {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ const rounded = Math.round(parsed * 100) / 100;
+ return clampRetimeRate({ rate: rounded });
+}
+
+function buildRetime({
+ rate,
+ maintainPitch,
+}: {
+ rate: number;
+ maintainPitch: boolean;
+}) {
+ if (rate === DEFAULT_RETIME_RATE && !maintainPitch) return undefined;
+ return buildConstantRetime({ rate, maintainPitch });
+}
+
+export function SpeedTab({
+ element,
+ trackId,
+}: {
+ element: AudioElement | VideoElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const rate = clampRetimeRate({
+ rate: element.retime?.rate ?? DEFAULT_RETIME_RATE,
+ });
+ const maintainPitchAvailable = canMaintainPitch({ rate });
+ const maintainPitch = element.retime?.maintainPitch ?? false;
+ const pendingRateRef = useRef(rate);
+
+ const applyRetime = ({
+ rate: nextRate,
+ maintainPitch: nextMaintainPitch,
+ pushHistory = true,
+ }: {
+ rate: number;
+ maintainPitch: boolean;
+ pushHistory?: boolean;
+ }) => {
+ editor.timeline.updateElementRetime({
+ trackId,
+ elementId: element.id,
+ retime: buildRetime({ rate: nextRate, maintainPitch: nextMaintainPitch }),
+ pushHistory,
+ });
+ };
+
+ const speedDraft = usePropertyDraft({
+ displayValue: rateToDisplay({ rate }),
+ parse: (input) => parseSpeedInput({ input }),
+ onPreview: (nextRate) => {
+ pendingRateRef.current = nextRate;
+ applyRetime({ rate: nextRate, maintainPitch, pushHistory: false });
+ },
+ onCommit: () => {
+ applyRetime({ rate: pendingRateRef.current, maintainPitch });
+ },
+ });
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:speed`}>
+ <SectionHeader>
+ <SectionTitle>Speed</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <SectionFields>
+ <SectionField label="Speed">
+ <NumberField
+ icon={<HugeiconsIcon icon={DashboardSpeed02Icon} />}
+ value={speedDraft.displayValue}
+ suffix="x"
+ scrubRanges={[
+ { from: 0.01, to: 1, pixelsPerUnit: 160 },
+ { from: 1, to: 5, pixelsPerUnit: 48 },
+ ]}
+ scrubClamp={{ min: MIN_RETIME_RATE, max: MAX_RETIME_RATE }}
+ onFocus={() => {
+ pendingRateRef.current = rate;
+ speedDraft.onFocus();
+ }}
+ onChange={speedDraft.onChange}
+ onBlur={speedDraft.onBlur}
+ onScrub={speedDraft.scrubTo}
+ onScrubEnd={speedDraft.commitScrub}
+ onReset={() =>
+ applyRetime({ rate: DEFAULT_RETIME_RATE, maintainPitch })
+ }
+ isDefault={rate === DEFAULT_RETIME_RATE}
+ />
+ </SectionField>
+ <div className="flex items-center justify-between">
+ <span className="text-sm">Change pitch</span>
+ <Switch
+ checked={!maintainPitch}
+ disabled={!maintainPitchAvailable}
+ onCheckedChange={(checked) =>
+ applyRetime({ rate, maintainPitch: !checked })
+ }
+ />
+ </div>
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/text-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/text-tab.tsx
new file mode 100644
index 00000000..f8e2527a
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/text-tab.tsx
@@ -0,0 +1,762 @@
+"use client";
+
+import { Textarea } from "@/components/ui/textarea";
+import { FontPicker } from "@/components/ui/font-picker";
+import type { TextElement } from "@/lib/timeline";
+import { NumberField } from "@/components/ui/number-field";
+import { useRef } from "react";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { ColorPicker } from "@/components/ui/color-picker";
+import { Button } from "@/components/ui/button";
+import { uppercase } from "@/utils/string";
+import { clamp } from "@/utils/math";
+import { useEditor } from "@/hooks/use-editor";
+import { DEFAULT_COLOR } from "@/constants/project-constants";
+import {
+ CORNER_RADIUS_MAX,
+ CORNER_RADIUS_MIN,
+ MAX_FONT_SIZE,
+ MIN_FONT_SIZE,
+} from "@/constants/text-constants";
+import { usePropertyDraft } from "../hooks/use-property-draft";
+import { useKeyframedColorProperty } from "../hooks/use-keyframed-color-property";
+import { useKeyframedNumberProperty } from "../hooks/use-keyframed-number-property";
+import { useElementPlayhead } from "../hooks/use-element-playhead";
+import { KeyframeToggle } from "../components/keyframe-toggle";
+import { isPropertyAtDefault } from "./transform-tab";
+import { resolveColorAtTime, resolveNumberAtTime } from "@/lib/animation";
+import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ MinusSignIcon,
+ PlusSignIcon,
+ TextFontIcon,
+} from "@hugeicons/core-free-icons";
+import { OcTextHeightIcon, OcTextWidthIcon } from "@opencut/ui/icons";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { cn } from "@/utils/ui";
+
+export function TextTab({
+ element,
+ trackId,
+}: {
+ element: TextElement;
+ trackId: string;
+}) {
+ return (
+ <div className="flex flex-col">
+ <ContentSection element={element} trackId={trackId} />
+ <TypographySection element={element} trackId={trackId} />
+ <SpacingSection element={element} trackId={trackId} />
+ <BackgroundSection element={element} trackId={trackId} />
+ </div>
+ );
+}
+
+function ContentSection({
+ element,
+ trackId,
+}: {
+ element: TextElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+
+ const content = usePropertyDraft({
+ displayValue: element.content,
+ parse: (input) => input,
+ onPreview: (value) =>
+ editor.timeline.previewElements({
+ updates: [
+ { trackId, elementId: element.id, updates: { content: value } },
+ ],
+ }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:content`}>
+ <SectionHeader>
+ <SectionTitle>Content</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <Textarea
+ placeholder="Name"
+ value={content.displayValue}
+ className="min-h-20"
+ onFocus={content.onFocus}
+ onChange={content.onChange}
+ onBlur={content.onBlur}
+ />
+ </SectionContent>
+ </Section>
+ );
+}
+
+function TypographySection({
+ element,
+ trackId,
+}: {
+ element: TextElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const resolvedTextColor = resolveColorAtTime({
+ baseColor: element.color,
+ animations: element.animations,
+ propertyPath: "color",
+ localTime,
+ });
+
+ const textColor = useKeyframedColorProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "color",
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedColor: resolvedTextColor,
+ buildBaseUpdates: ({ value }) => ({ color: value }),
+ });
+
+ const fontSize = usePropertyDraft({
+ displayValue: element.fontSize.toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ return clamp({
+ value: Math.round(parsed),
+ min: MIN_FONT_SIZE,
+ max: MAX_FONT_SIZE,
+ });
+ },
+ onPreview: (value) =>
+ editor.timeline.previewElements({
+ updates: [
+ { trackId, elementId: element.id, updates: { fontSize: value } },
+ ],
+ }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:typography`}>
+ <SectionHeader>
+ <SectionTitle>Typography</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <SectionFields>
+ <SectionField label="Font">
+ <FontPicker
+ defaultValue={element.fontFamily}
+ onValueChange={(value) =>
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: { fontFamily: value },
+ },
+ ],
+ })
+ }
+ />
+ </SectionField>
+ <SectionField label="Size">
+ <NumberField
+ value={fontSize.displayValue}
+ min={MIN_FONT_SIZE}
+ max={MAX_FONT_SIZE}
+ onFocus={fontSize.onFocus}
+ onChange={fontSize.onChange}
+ onBlur={fontSize.onBlur}
+ onScrub={fontSize.scrubTo}
+ onScrubEnd={fontSize.commitScrub}
+ onReset={() =>
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: {
+ fontSize: DEFAULTS.text.element.fontSize,
+ },
+ },
+ ],
+ })
+ }
+ isDefault={element.fontSize === DEFAULTS.text.element.fontSize}
+ icon={<HugeiconsIcon icon={TextFontIcon} />}
+ />
+ </SectionField>
+ <SectionField
+ label="Color"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={textColor.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle text color keyframe"
+ onToggle={textColor.toggleKeyframe}
+ />
+ }
+ >
+ <ColorPicker
+ value={uppercase({
+ string: resolvedTextColor.replace("#", ""),
+ })}
+ onChange={(color) => textColor.onChange({ color: `#${color}` })}
+ onChangeEnd={textColor.onChangeEnd}
+ />
+ </SectionField>
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
+
+function SpacingSection({
+ element,
+ trackId,
+}: {
+ element: TextElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+
+ const letterSpacing = usePropertyDraft({
+ displayValue: Math.round(
+ element.letterSpacing ?? DEFAULTS.text.letterSpacing,
+ ).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : Math.round(parsed);
+ },
+ onPreview: (value) =>
+ editor.timeline.previewElements({
+ updates: [
+ { trackId, elementId: element.id, updates: { letterSpacing: value } },
+ ],
+ }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ const lineHeight = usePropertyDraft({
+ displayValue: (element.lineHeight ?? DEFAULTS.text.lineHeight).toFixed(1),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed)
+ ? null
+ : Math.max(0.1, Math.round(parsed * 10) / 10);
+ },
+ onPreview: (value) =>
+ editor.timeline.previewElements({
+ updates: [
+ { trackId, elementId: element.id, updates: { lineHeight: value } },
+ ],
+ }),
+ onCommit: () => editor.timeline.commitPreview(),
+ });
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:spacing`}>
+ <SectionHeader>
+ <SectionTitle>Spacing</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <div className="flex items-start gap-2">
+ <SectionField label="Letter spacing" className="w-1/2">
+ <NumberField
+ value={letterSpacing.displayValue}
+ onFocus={letterSpacing.onFocus}
+ onChange={letterSpacing.onChange}
+ onBlur={letterSpacing.onBlur}
+ onScrub={letterSpacing.scrubTo}
+ onScrubEnd={letterSpacing.commitScrub}
+ onReset={() =>
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: { letterSpacing: DEFAULTS.text.letterSpacing },
+ },
+ ],
+ })
+ }
+ isDefault={
+ (element.letterSpacing ?? DEFAULTS.text.letterSpacing) ===
+ DEFAULTS.text.letterSpacing
+ }
+ icon={<OcTextWidthIcon size={14} />}
+ />
+ </SectionField>
+ <SectionField label="Line height" className="w-1/2">
+ <NumberField
+ value={lineHeight.displayValue}
+ onFocus={lineHeight.onFocus}
+ onChange={lineHeight.onChange}
+ onBlur={lineHeight.onBlur}
+ onScrub={lineHeight.scrubTo}
+ onScrubEnd={lineHeight.commitScrub}
+ onReset={() =>
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: { lineHeight: DEFAULTS.text.lineHeight },
+ },
+ ],
+ })
+ }
+ isDefault={
+ (element.lineHeight ?? DEFAULTS.text.lineHeight) ===
+ DEFAULTS.text.lineHeight
+ }
+ icon={<OcTextHeightIcon size={14} />}
+ />
+ </SectionField>
+ </div>
+ </SectionContent>
+ </Section>
+ );
+}
+
+function BackgroundSection({
+ element,
+ trackId,
+}: {
+ element: TextElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const lastSelectedColor = useRef(DEFAULT_COLOR);
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const resolvedBgColor = resolveColorAtTime({
+ baseColor: element.background.color,
+ animations: element.animations,
+ propertyPath: "background.color",
+ localTime,
+ });
+
+ const bgColor = useKeyframedColorProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.color",
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedColor: resolvedBgColor,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...element.background, color: value },
+ }),
+ });
+
+ const bg = element.background;
+
+ const resolvedPaddingX = resolveNumberAtTime({
+ baseValue: bg.paddingX ?? DEFAULTS.text.background.paddingX,
+ animations: element.animations,
+ propertyPath: "background.paddingX",
+ localTime,
+ });
+ const resolvedPaddingY = resolveNumberAtTime({
+ baseValue: bg.paddingY ?? DEFAULTS.text.background.paddingY,
+ animations: element.animations,
+ propertyPath: "background.paddingY",
+ localTime,
+ });
+ const resolvedOffsetX = resolveNumberAtTime({
+ baseValue: bg.offsetX ?? DEFAULTS.text.background.offsetX,
+ animations: element.animations,
+ propertyPath: "background.offsetX",
+ localTime,
+ });
+ const resolvedOffsetY = resolveNumberAtTime({
+ baseValue: bg.offsetY ?? DEFAULTS.text.background.offsetY,
+ animations: element.animations,
+ propertyPath: "background.offsetY",
+ localTime,
+ });
+ const resolvedCornerRadius = resolveNumberAtTime({
+ baseValue: bg.cornerRadius ?? CORNER_RADIUS_MIN,
+ animations: element.animations,
+ propertyPath: "background.cornerRadius",
+ localTime,
+ });
+
+ const paddingX = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.paddingX",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedPaddingX).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : Math.max(0, Math.round(parsed));
+ },
+ valueAtPlayhead: resolvedPaddingX,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...bg, paddingX: value },
+ }),
+ });
+
+ const paddingY = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.paddingY",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedPaddingY).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : Math.max(0, Math.round(parsed));
+ },
+ valueAtPlayhead: resolvedPaddingY,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...bg, paddingY: value },
+ }),
+ });
+
+ const offsetX = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.offsetX",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedOffsetX).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : Math.round(parsed);
+ },
+ valueAtPlayhead: resolvedOffsetX,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...bg, offsetX: value },
+ }),
+ });
+
+ const offsetY = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.offsetY",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedOffsetY).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : Math.round(parsed);
+ },
+ valueAtPlayhead: resolvedOffsetY,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...bg, offsetY: value },
+ }),
+ });
+
+ const cornerRadius = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "background.cornerRadius",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedCornerRadius).toString(),
+ parse: (input) => {
+ const parsed = parseFloat(input);
+ if (Number.isNaN(parsed)) return null;
+ return clamp({
+ value: Math.round(parsed),
+ min: CORNER_RADIUS_MIN,
+ max: CORNER_RADIUS_MAX,
+ });
+ },
+ valueAtPlayhead: resolvedCornerRadius,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ background: { ...bg, cornerRadius: value },
+ }),
+ });
+
+ const toggleBackgroundEnabled = () => {
+ const enabled = !element.background.enabled;
+ const color =
+ enabled && element.background.color === "transparent"
+ ? lastSelectedColor.current
+ : element.background.color;
+ editor.timeline.updateElements({
+ updates: [
+ {
+ trackId,
+ elementId: element.id,
+ updates: {
+ background: {
+ ...element.background,
+ enabled,
+ color,
+ },
+ },
+ },
+ ],
+ });
+ };
+
+ return (
+ <Section
+ collapsible
+ defaultOpen={element.background.enabled}
+ sectionKey={`${element.id}:background`}
+ >
+ <SectionHeader
+ trailing={
+ <Button
+ variant="ghost"
+ size="icon"
+ onClick={(event) => {
+ event.stopPropagation();
+ toggleBackgroundEnabled();
+ }}
+ >
+ <HugeiconsIcon
+ icon={element.background.enabled ? MinusSignIcon : PlusSignIcon}
+ strokeWidth={1}
+ />
+ </Button>
+ }
+ >
+ <SectionTitle>Background</SectionTitle>
+ </SectionHeader>
+ <SectionContent
+ className={cn(
+ !element.background.enabled && "pointer-events-none opacity-50",
+ )}
+ >
+ <SectionFields>
+ <SectionField
+ label="Color"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={bgColor.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle background color keyframe"
+ onToggle={bgColor.toggleKeyframe}
+ />
+ }
+ >
+ <ColorPicker
+ value={
+ !element.background.enabled ||
+ element.background.color === "transparent"
+ ? lastSelectedColor.current.replace("#", "")
+ : resolvedBgColor.replace("#", "")
+ }
+ onChange={(color) => {
+ const hexColor = `#${color}`;
+ if (color !== "transparent") {
+ lastSelectedColor.current = hexColor;
+ }
+ bgColor.onChange({ color: hexColor });
+ }}
+ onChangeEnd={bgColor.onChangeEnd}
+ />
+ </SectionField>
+ <div className="flex items-start gap-2">
+ <SectionField
+ label="Width"
+ className="w-1/2"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={paddingX.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle background width keyframe"
+ onToggle={paddingX.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon="W"
+ value={paddingX.displayValue}
+ min={0}
+ onFocus={paddingX.onFocus}
+ onChange={paddingX.onChange}
+ onBlur={paddingX.onBlur}
+ onScrub={paddingX.scrubTo}
+ onScrubEnd={paddingX.commitScrub}
+ onReset={() =>
+ paddingX.commitValue({
+ value: DEFAULTS.text.background.paddingX,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: paddingX.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedPaddingX,
+ staticValue: bg.paddingX ?? DEFAULTS.text.background.paddingX,
+ defaultValue: DEFAULTS.text.background.paddingX,
+ })}
+ />
+ </SectionField>
+ <SectionField
+ label="Height"
+ className="w-1/2"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={paddingY.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle background height keyframe"
+ onToggle={paddingY.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon="H"
+ value={paddingY.displayValue}
+ min={0}
+ onFocus={paddingY.onFocus}
+ onChange={paddingY.onChange}
+ onBlur={paddingY.onBlur}
+ onScrub={paddingY.scrubTo}
+ onScrubEnd={paddingY.commitScrub}
+ onReset={() =>
+ paddingY.commitValue({
+ value: DEFAULTS.text.background.paddingY,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: paddingY.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedPaddingY,
+ staticValue: bg.paddingY ?? DEFAULTS.text.background.paddingY,
+ defaultValue: DEFAULTS.text.background.paddingY,
+ })}
+ />
+ </SectionField>
+ </div>
+ <div className="flex items-start gap-2">
+ <SectionField
+ label="X-offset"
+ className="w-1/2"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={offsetX.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle x-offset keyframe"
+ onToggle={offsetX.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon="X"
+ value={offsetX.displayValue}
+ onFocus={offsetX.onFocus}
+ onChange={offsetX.onChange}
+ onBlur={offsetX.onBlur}
+ onScrub={offsetX.scrubTo}
+ onScrubEnd={offsetX.commitScrub}
+ onReset={() =>
+ offsetX.commitValue({
+ value: DEFAULTS.text.background.offsetX,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: offsetX.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedOffsetX,
+ staticValue: bg.offsetX ?? DEFAULTS.text.background.offsetX,
+ defaultValue: DEFAULTS.text.background.offsetX,
+ })}
+ />
+ </SectionField>
+ <SectionField
+ label="Y-offset"
+ className="w-1/2"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={offsetY.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle y-offset keyframe"
+ onToggle={offsetY.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon="Y"
+ value={offsetY.displayValue}
+ onFocus={offsetY.onFocus}
+ onChange={offsetY.onChange}
+ onBlur={offsetY.onBlur}
+ onScrub={offsetY.scrubTo}
+ onScrubEnd={offsetY.commitScrub}
+ onReset={() =>
+ offsetY.commitValue({
+ value: DEFAULTS.text.background.offsetY,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: offsetY.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedOffsetY,
+ staticValue: bg.offsetY ?? DEFAULTS.text.background.offsetY,
+ defaultValue: DEFAULTS.text.background.offsetY,
+ })}
+ />
+ </SectionField>
+ </div>
+ <SectionField
+ label="Corner radius"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={cornerRadius.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle corner radius keyframe"
+ onToggle={cornerRadius.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon="R"
+ value={cornerRadius.displayValue}
+ min={CORNER_RADIUS_MIN}
+ max={CORNER_RADIUS_MAX}
+ onFocus={cornerRadius.onFocus}
+ onChange={cornerRadius.onChange}
+ onBlur={cornerRadius.onBlur}
+ onScrub={cornerRadius.scrubTo}
+ onScrubEnd={cornerRadius.commitScrub}
+ onReset={() =>
+ cornerRadius.commitValue({ value: CORNER_RADIUS_MIN })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: cornerRadius.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedCornerRadius,
+ staticValue: bg.cornerRadius ?? CORNER_RADIUS_MIN,
+ defaultValue: CORNER_RADIUS_MIN,
+ })}
+ />
+ </SectionField>
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/tabs/transform-tab.tsx b/apps/web/src/components/editor/panels/properties/tabs/transform-tab.tsx
new file mode 100644
index 00000000..a015a9bb
--- /dev/null
+++ b/apps/web/src/components/editor/panels/properties/tabs/transform-tab.tsx
@@ -0,0 +1,424 @@
+import { NumberField } from "@/components/ui/number-field";
+import { useEditor } from "@/hooks/use-editor";
+import { clamp, isNearlyEqual } from "@/utils/math";
+import type { VisualElement } from "@/lib/timeline";
+import {
+ Section,
+ SectionContent,
+ SectionField,
+ SectionFields,
+ SectionHeader,
+ SectionTitle,
+} from "@/components/section";
+import { Button } from "@/components/ui/button";
+import { HugeiconsIcon } from "@hugeicons/react";
+import {
+ ArrowExpandIcon,
+ Link05Icon,
+ RotateClockwiseIcon,
+} from "@hugeicons/core-free-icons";
+import {
+ getGroupKeyframesAtTime,
+ hasGroupKeyframeAtTime,
+ resolveTransformAtTime,
+} from "@/lib/animation";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { useElementPlayhead } from "../hooks/use-element-playhead";
+import { KeyframeToggle } from "../components/keyframe-toggle";
+import { useKeyframedNumberProperty } from "../hooks/use-keyframed-number-property";
+import { useKeyframedVectorProperty } from "../hooks/use-keyframed-vector-property";
+import { usePropertiesStore } from "../stores/properties-store";
+
+export function parseNumericInput({ input }: { input: string }): number | null {
+ const parsed = parseFloat(input);
+ return Number.isNaN(parsed) ? null : parsed;
+}
+
+export function isPropertyAtDefault({
+ hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue,
+ staticValue,
+ defaultValue,
+}: {
+ hasAnimatedKeyframes: boolean;
+ isPlayheadWithinElementRange: boolean;
+ resolvedValue: number;
+ staticValue: number;
+ defaultValue: number;
+}): boolean {
+ if (hasAnimatedKeyframes && isPlayheadWithinElementRange) {
+ return isNearlyEqual({
+ leftValue: resolvedValue,
+ rightValue: defaultValue,
+ });
+ }
+
+ return staticValue === defaultValue;
+}
+
+export function TransformTab({
+ element,
+ trackId,
+}: {
+ element: VisualElement;
+ trackId: string;
+}) {
+ const editor = useEditor();
+ const isScaleLocked = usePropertiesStore((s) => s.isTransformScaleLocked);
+ const setTransformScaleLocked = usePropertiesStore(
+ (s) => s.setTransformScaleLocked,
+ );
+ const { localTime, isPlayheadWithinElementRange } = useElementPlayhead({
+ startTime: element.startTime,
+ duration: element.duration,
+ });
+ const resolvedTransform = resolveTransformAtTime({
+ baseTransform: element.transform,
+ animations: element.animations,
+ localTime,
+ });
+
+ const position = useKeyframedVectorProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "transform.position",
+ localTime,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.position,
+ displayX: Math.round(resolvedTransform.position.x).toString(),
+ displayY: Math.round(resolvedTransform.position.y).toString(),
+ parseComponent: (input) => parseNumericInput({ input }),
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ transform: { ...element.transform, position: value },
+ }),
+ });
+
+ const parseScale = (input: string) => {
+ const parsed = parseNumericInput({ input });
+ if (parsed === null) return null;
+ return parsed / 100;
+ };
+
+ const scaleX = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "transform.scaleX",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedTransform.scaleX * 100).toString(),
+ parse: parseScale,
+ valueAtPlayhead: resolvedTransform.scaleX,
+ step: 0.01,
+ buildBaseUpdates: ({ value }) => ({
+ transform: {
+ ...element.transform,
+ scaleX: value,
+ ...(isScaleLocked ? { scaleY: value } : {}),
+ },
+ }),
+ });
+
+ const scaleY = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "transform.scaleY",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedTransform.scaleY * 100).toString(),
+ parse: parseScale,
+ valueAtPlayhead: resolvedTransform.scaleY,
+ step: 0.01,
+ buildBaseUpdates: ({ value }) => ({
+ transform: {
+ ...element.transform,
+ scaleY: value,
+ ...(isScaleLocked ? { scaleX: value } : {}),
+ },
+ }),
+ });
+
+ const scaleFieldPropsX = {
+ value: scaleX.displayValue,
+ onFocus: scaleX.onFocus,
+ onChange: scaleX.onChange,
+ onBlur: scaleX.onBlur,
+ dragSensitivity: "slow" as const,
+ onScrub: scaleX.scrubTo,
+ onScrubEnd: scaleX.commitScrub,
+ onReset: () =>
+ scaleX.commitValue({ value: DEFAULTS.element.transform.scaleX }),
+ isDefault: isPropertyAtDefault({
+ hasAnimatedKeyframes: scaleX.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.scaleX,
+ staticValue: element.transform.scaleX,
+ defaultValue: DEFAULTS.element.transform.scaleX,
+ }),
+ };
+
+ const scaleFieldPropsY = {
+ value: scaleY.displayValue,
+ onFocus: scaleY.onFocus,
+ onChange: scaleY.onChange,
+ onBlur: scaleY.onBlur,
+ dragSensitivity: "slow" as const,
+ onScrub: scaleY.scrubTo,
+ onScrubEnd: scaleY.commitScrub,
+ onReset: () =>
+ scaleY.commitValue({ value: DEFAULTS.element.transform.scaleY }),
+ isDefault: isPropertyAtDefault({
+ hasAnimatedKeyframes: scaleY.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.scaleY,
+ staticValue: element.transform.scaleY,
+ defaultValue: DEFAULTS.element.transform.scaleY,
+ }),
+ };
+
+ const rotation = useKeyframedNumberProperty({
+ trackId,
+ elementId: element.id,
+ animations: element.animations,
+ propertyPath: "transform.rotate",
+ localTime,
+ isPlayheadWithinElementRange,
+ displayValue: Math.round(resolvedTransform.rotate).toString(),
+ parse: (input) => {
+ const parsed = parseNumericInput({ input });
+ if (parsed === null) return null;
+ return clamp({ value: parsed, min: -360, max: 360 });
+ },
+ valueAtPlayhead: resolvedTransform.rotate,
+ step: 1,
+ buildBaseUpdates: ({ value }) => ({
+ transform: {
+ ...element.transform,
+ rotate: value,
+ },
+ }),
+ });
+
+ const hasScaleKeyframe = hasGroupKeyframeAtTime({
+ animations: element.animations,
+ group: "transform.scale",
+ time: localTime,
+ });
+
+ const toggleScaleKeyframe = () => {
+ if (!isPlayheadWithinElementRange) return;
+ const existing = getGroupKeyframesAtTime({
+ animations: element.animations,
+ group: "transform.scale",
+ time: localTime,
+ });
+ if (existing.length > 0) {
+ editor.timeline.removeKeyframes({
+ keyframes: existing.map((ref) => ({
+ trackId,
+ elementId: element.id,
+ ...ref,
+ })),
+ });
+ return;
+ }
+ editor.timeline.upsertKeyframes({
+ keyframes: [
+ {
+ trackId,
+ elementId: element.id,
+ propertyPath: "transform.scaleX",
+ time: localTime,
+ value: resolvedTransform.scaleX,
+ },
+ {
+ trackId,
+ elementId: element.id,
+ propertyPath: "transform.scaleY",
+ time: localTime,
+ value: resolvedTransform.scaleY,
+ },
+ ],
+ });
+ };
+
+ const scaleLockButton = (
+ <Button
+ type="button"
+ variant={isScaleLocked ? "secondary" : "ghost"}
+ size="icon"
+ aria-pressed={isScaleLocked}
+ onClick={() => setTransformScaleLocked(!isScaleLocked)}
+ >
+ <HugeiconsIcon icon={Link05Icon} />
+ </Button>
+ );
+
+ return (
+ <Section collapsible sectionKey={`${element.id}:transform`}>
+ <SectionHeader>
+ <SectionTitle>Transform</SectionTitle>
+ </SectionHeader>
+ <SectionContent>
+ <SectionFields>
+ <div className="flex items-end gap-2">
+ {isScaleLocked ? (
+ <>
+ <SectionField
+ label="Scale"
+ className="min-w-0 flex-1"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={hasScaleKeyframe}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle scale keyframe"
+ onToggle={toggleScaleKeyframe}
+ />
+ }
+ >
+ <NumberField
+ icon={<HugeiconsIcon icon={ArrowExpandIcon} />}
+ {...scaleFieldPropsX}
+ />
+ </SectionField>
+ {scaleLockButton}
+ </>
+ ) : (
+ <>
+ <SectionField
+ label="Width"
+ className="min-w-0 flex-1"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={scaleX.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle width scale keyframe"
+ onToggle={scaleX.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField icon="W" {...scaleFieldPropsX} />
+ </SectionField>
+ {scaleLockButton}
+ <SectionField
+ label="Height"
+ className="min-w-0 flex-1"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={scaleY.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle height scale keyframe"
+ onToggle={scaleY.toggleKeyframe}
+ />
+ }
+ >
+ <NumberField icon="H" {...scaleFieldPropsY} />
+ </SectionField>
+ </>
+ )}
+ </div>
+ <SectionField
+ label="Position"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={position.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle position keyframe"
+ onToggle={position.toggleKeyframe}
+ />
+ }
+ >
+ <div className="flex items-center gap-2">
+ <NumberField
+ icon="X"
+ className="flex-1"
+ value={position.x.displayValue}
+ onFocus={position.x.onFocus}
+ onChange={position.x.onChange}
+ onBlur={position.x.onBlur}
+ onScrub={position.x.scrubTo}
+ onScrubEnd={position.x.commitScrub}
+ onReset={() =>
+ position.commitX({
+ value: DEFAULTS.element.transform.position.x,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: position.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.position.x,
+ staticValue: element.transform.position.x,
+ defaultValue: DEFAULTS.element.transform.position.x,
+ })}
+ />
+ <NumberField
+ icon="Y"
+ className="flex-1"
+ value={position.y.displayValue}
+ onFocus={position.y.onFocus}
+ onChange={position.y.onChange}
+ onBlur={position.y.onBlur}
+ onScrub={position.y.scrubTo}
+ onScrubEnd={position.y.commitScrub}
+ onReset={() =>
+ position.commitY({
+ value: DEFAULTS.element.transform.position.y,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: position.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.position.y,
+ staticValue: element.transform.position.y,
+ defaultValue: DEFAULTS.element.transform.position.y,
+ })}
+ />
+ </div>
+ </SectionField>
+
+ <SectionField
+ label="Rotation"
+ beforeLabel={
+ <KeyframeToggle
+ isActive={rotation.isKeyframedAtTime}
+ isDisabled={!isPlayheadWithinElementRange}
+ title="Toggle rotation keyframe"
+ onToggle={rotation.toggleKeyframe}
+ />
+ }
+ >
+ <div className="flex items-center gap-2">
+ <NumberField
+ icon={<HugeiconsIcon icon={RotateClockwiseIcon} />}
+ className="flex-none"
+ value={rotation.displayValue}
+ onFocus={rotation.onFocus}
+ onChange={rotation.onChange}
+ onBlur={rotation.onBlur}
+ dragSensitivity="slow"
+ onScrub={rotation.scrubTo}
+ onScrubEnd={rotation.commitScrub}
+ onReset={() =>
+ rotation.commitValue({
+ value: DEFAULTS.element.transform.rotate,
+ })
+ }
+ isDefault={isPropertyAtDefault({
+ hasAnimatedKeyframes: rotation.hasAnimatedKeyframes,
+ isPlayheadWithinElementRange,
+ resolvedValue: resolvedTransform.rotate,
+ staticValue: element.transform.rotate,
+ defaultValue: DEFAULTS.element.transform.rotate,
+ })}
+ />
+ </div>
+ </SectionField>
+ </SectionFields>
+ </SectionContent>
+ </Section>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/timeline/audio-waveform.tsx b/apps/web/src/components/editor/panels/timeline/audio-waveform.tsx
index bbc5cb83..cbb19bd0 100644
--- a/apps/web/src/components/editor/panels/timeline/audio-waveform.tsx
+++ b/apps/web/src/components/editor/panels/timeline/audio-waveform.tsx
@@ -1,176 +1,167 @@
-import { useEffect, useRef, useState } from "react";
-import WaveSurfer from "wavesurfer.js";
+"use client";
+import { useCallback, useEffect, useRef } from "react";
+import { useResizeObserver } from "@/hooks/use-resize-observer";
+import { computeGlobalMaxRms, extractRmsRange } from "@/lib/media/audio";
+import { findScrollParent } from "@/utils/browser";
+import { cn } from "@/utils/ui";
+
+const BAR_WIDTH = 2;
+const BAR_GAP = 1;
+const BAR_STEP = BAR_WIDTH + BAR_GAP;
interface AudioWaveformProps {
audioUrl?: string;
audioBuffer?: AudioBuffer;
- height?: number;
+ color?: string;
className?: string;
}
-function extractPeaks({
- buffer,
- length = 512,
-}: {
- buffer: AudioBuffer;
- length?: number;
-}): number[][] {
- const channels = buffer.numberOfChannels;
- const peaks: number[][] = [];
-
- for (let c = 0; c < channels; c++) {
- const data = buffer.getChannelData(c);
- const step = Math.floor(data.length / length);
- const channelPeaks: number[] = [];
-
- for (let i = 0; i < length; i++) {
- const start = i * step;
- const end = Math.min(start + step, data.length);
- let max = 0;
- for (let j = start; j < end; j++) {
- const abs = Math.abs(data[j]);
- if (abs > max) max = abs;
- }
- channelPeaks.push(max);
- }
- peaks.push(channelPeaks);
- }
-
- return peaks;
-}
-
export function AudioWaveform({
audioUrl,
audioBuffer,
- height = 32,
+ color = "rgba(255, 255, 255, 0.7)",
className = "",
}: AudioWaveformProps) {
- const waveformRef = useRef<HTMLDivElement>(null);
- const wavesurfer = useRef<WaveSurfer | null>(null);
- const [isLoading, setIsLoading] = useState(true);
- const [error, setError] = useState(false);
+ const canvasRef = useRef<HTMLCanvasElement>(null);
+ const containerRef = useRef<HTMLDivElement>(null);
+ const bufferRef = useRef<AudioBuffer | null>(null);
+ const globalMaxRef = useRef<number>(1);
+ const scrollParentRef = useRef<HTMLElement | null>(null);
+ const heightRef = useRef<number>(0);
- useEffect(() => {
- let mounted = true;
- const ws = wavesurfer.current;
+ const drawVisible = useCallback(() => {
+ const container = containerRef.current;
+ const canvas = canvasRef.current;
+ const buffer = bufferRef.current;
+ const height = heightRef.current;
- const initWaveSurfer = async () => {
- if (!waveformRef.current || (!audioUrl && !audioBuffer)) return;
+ if (!container || !canvas || !buffer || height <= 0) return;
- try {
- if (ws) {
- wavesurfer.current = null;
- }
+ const elementWidth = container.offsetWidth;
+ if (elementWidth <= 0) return;
- const newWaveSurfer = WaveSurfer.create({
- container: waveformRef.current,
- waveColor: "rgba(255, 255, 255, 0.6)",
- progressColor: "rgba(255, 255, 255, 0.9)",
- cursorColor: "transparent",
- barWidth: 2,
- barGap: 1,
- height,
- normalize: true,
- interact: false,
- });
+ const containerRect = container.getBoundingClientRect();
+ const scrollParent = scrollParentRef.current;
- if (mounted) {
- wavesurfer.current = newWaveSurfer;
- } else {
- try {
- newWaveSurfer.destroy();
- } catch {}
- return;
- }
+ let clipLeft: number;
+ let clipRight: number;
- newWaveSurfer.on("ready", () => {
- if (mounted) {
- setIsLoading(false);
- setError(false);
- }
- });
+ if (scrollParent) {
+ const parentRect = scrollParent.getBoundingClientRect();
+ clipLeft = Math.max(0, parentRect.left - containerRect.left);
+ clipRight = Math.min(elementWidth, parentRect.right - containerRect.left);
+ } else {
+ clipLeft = Math.max(0, -containerRect.left);
+ clipRight = Math.min(
+ elementWidth,
+ window.innerWidth - containerRect.left,
+ );
+ }
- newWaveSurfer.on("error", (err) => {
- if (mounted) {
- console.error("WaveSurfer error:", err);
- setError(true);
- setIsLoading(false);
- }
- });
+ const visibleWidth = clipRight - clipLeft;
+ if (visibleWidth <= 0) return;
- if (audioBuffer) {
- const peaks = extractPeaks({ buffer: audioBuffer });
- newWaveSurfer.load("", peaks, audioBuffer.duration);
- } else if (audioUrl) {
- await newWaveSurfer.load(audioUrl);
- }
- } catch (err) {
- if (mounted) {
- console.error("Failed to initialize WaveSurfer:", err);
- setError(true);
- setIsLoading(false);
- }
- }
- };
+ const dpr = window.devicePixelRatio || 1;
+ const canvasW = Math.round(visibleWidth * dpr);
+ const canvasH = Math.round(height * dpr);
+
+ if (canvasW <= 0 || canvasH <= 0) return;
+
+ canvas.width = canvasW;
+ canvas.height = canvasH;
+ canvas.style.width = `${visibleWidth}px`;
+ canvas.style.height = `${height}px`;
+ canvas.style.left = `${clipLeft}px`;
+
+ const barCount = Math.max(1, Math.floor(visibleWidth / BAR_STEP));
+ const startFraction = clipLeft / elementWidth;
+ const endFraction = clipRight / elementWidth;
+ const startSample = Math.floor(startFraction * buffer.length);
+ const endSample = Math.min(
+ buffer.length,
+ Math.ceil(endFraction * buffer.length),
+ );
- if (ws) {
- const wsToDestroy = ws;
- wavesurfer.current = null;
+ const peaks = extractRmsRange({
+ buffer,
+ count: barCount,
+ startSample,
+ endSample,
+ globalMax: globalMaxRef.current,
+ });
- requestAnimationFrame(() => {
+ const ctx = canvas.getContext("2d");
+ if (!ctx) return;
+
+ ctx.clearRect(0, 0, canvasW, canvasH);
+ ctx.scale(dpr, dpr);
+ ctx.fillStyle = color;
+
+ const maxBarHeight = height * 0.7;
+
+ for (let i = 0; i < barCount; i++) {
+ const scaled = Math.log1p(peaks[i]) / Math.log1p(1);
+ const barH = Math.max(1, scaled * maxBarHeight);
+ ctx.fillRect(i * BAR_STEP, height - barH, BAR_WIDTH, barH);
+ }
+ }, [color]);
+
+ useEffect(() => {
+ let isCancelled = false;
+
+ async function load() {
+ let buffer = audioBuffer ?? null;
+
+ if (!buffer && audioUrl) {
try {
- wsToDestroy.destroy();
- } catch {}
- if (mounted) {
- initWaveSurfer();
+ const resp = await fetch(audioUrl);
+ const arrayBuffer = await resp.arrayBuffer();
+ const actx = new AudioContext();
+ buffer = await actx.decodeAudioData(arrayBuffer);
+ actx.close();
+ } catch {
+ return;
}
- });
- } else {
- initWaveSurfer();
+ }
+
+ if (!buffer || isCancelled) return;
+
+ bufferRef.current = buffer;
+ globalMaxRef.current = computeGlobalMaxRms({ buffer });
+ drawVisible();
}
+ load();
return () => {
- mounted = false;
+ isCancelled = true;
+ };
+ }, [audioUrl, audioBuffer, drawVisible]);
- const wsToDestroy = wavesurfer.current;
+ useEffect(() => {
+ const container = containerRef.current;
+ if (!container) return;
- wavesurfer.current = null;
+ scrollParentRef.current = findScrollParent({ element: container });
+ const scrollParent = scrollParentRef.current;
+ if (!scrollParent) return;
- if (wsToDestroy) {
- requestAnimationFrame(() => {
- try {
- wsToDestroy.destroy();
- } catch {}
- });
- }
- };
- }, [audioUrl, audioBuffer, height]);
+ scrollParent.addEventListener("scroll", drawVisible, { passive: true });
+ return () => scrollParent.removeEventListener("scroll", drawVisible);
+ }, [drawVisible]);
- if (error) {
- return (
- <div
- className={`flex items-center justify-center ${className}`}
- style={{ height }}
- >
- <span className="text-foreground/60 text-xs">Audio unavailable</span>
- </div>
- );
- }
+ const onResize = useCallback(
+ (entry: ResizeObserverEntry) => {
+ heightRef.current = entry.contentRect.height;
+ drawVisible();
+ },
+ [drawVisible],
+ );
+
+ useResizeObserver({ ref: containerRef, onResize });
return (
- <div className={`relative ${className}`}>
- {isLoading && (
- <div className="absolute inset-0 flex items-center justify-center">
- <span className="text-foreground/60 text-xs">Loading...</span>
- </div>
- )}
- <div
- ref={waveformRef}
- className={`w-full ${isLoading ? "opacity-0" : "opacity-100"}`}
- style={{ height }}
- />
+ <div ref={containerRef} className={cn("relative size-full", className)}>
+ <canvas ref={canvasRef} className="absolute bottom-0" />
</div>
);
}
-
-export default AudioWaveform;
diff --git a/apps/web/src/components/editor/panels/timeline/bookmarks.tsx b/apps/web/src/components/editor/panels/timeline/bookmarks.tsx
index 864bb557..7000f98b 100644
--- a/apps/web/src/components/editor/panels/timeline/bookmarks.tsx
+++ b/apps/web/src/components/editor/panels/timeline/bookmarks.tsx
@@ -5,7 +5,10 @@ import type { EditorCore } from "@/core";
import { useEditor } from "@/hooks/use-editor";
import type { BookmarkDragState } from "@/hooks/timeline/use-bookmark-drag";
import { BOOKMARK_TIME_EPSILON } from "@/lib/timeline/bookmarks";
-import { DEFAULT_BOOKMARK_COLOR } from "@/constants/timeline-constants";
+import {
+ DEFAULT_BOOKMARK_COLOR,
+ TIMELINE_BOOKMARK_ROW_HEIGHT,
+} from "@/constants/timeline-constants";
import { DEFAULT_FPS } from "@/constants/project-constants";
import { getSnappedSeekTime } from "@/lib/time";
import {
@@ -13,7 +16,7 @@ import {
Delete02Icon,
} from "@hugeicons/core-free-icons";
import { HugeiconsIcon } from "@hugeicons/react";
-import type { Bookmark } from "@/types/timeline";
+import type { Bookmark } from "@/lib/timeline";
import {
Popover,
PopoverAnchor,
@@ -25,7 +28,10 @@ import { Button } from "@/components/ui/button";
import { Label } from "@/components/ui/label";
import { uppercase } from "@/utils/string";
import { clamp } from "@/utils/math";
-import { timelineTimeToPixels, timelineTimeToSnappedPixels } from "@/lib/timeline";
+import {
+ timelineTimeToPixels,
+ timelineTimeToSnappedPixels,
+} from "@/lib/timeline";
const MIN_BOOKMARK_WIDTH_PX = 2;
const BOOKMARK_MARKER_WIDTH_PX = 12;
@@ -72,14 +78,17 @@ export function TimelineBookmarksRow({
handleRulerTrackingMouseDown,
handleRulerMouseDown,
}: TimelineBookmarksRowProps) {
- const editor = useEditor();
- const activeScene = editor.scenes.getActiveScene();
+ const bookmarks = useEditor((e) => e.scenes.getActiveScene().bookmarks);
return (
- <div className="relative h-4 flex-1 overflow-hidden">
+ <div
+ className="relative flex-1 overflow-hidden"
+ style={{ height: TIMELINE_BOOKMARK_ROW_HEIGHT }}
+ >
<button
- className="relative h-4 w-full cursor-default select-none border-0 bg-transparent p-0"
+ className="relative w-full cursor-default select-none border-0 bg-transparent p-0"
style={{
+ height: TIMELINE_BOOKMARK_ROW_HEIGHT,
width: `${dynamicTimelineWidth}px`,
}}
aria-label="Timeline ruler"
@@ -95,7 +104,7 @@ export function TimelineBookmarksRow({
handleRulerTrackingMouseDown(event);
}}
>
- {activeScene.bookmarks.map((bookmark) => (
+ {bookmarks.map((bookmark) => (
<TimelineBookmark
key={`bookmark-${bookmark.time}`}
bookmark={bookmark}
@@ -174,7 +183,7 @@ function TimelineBookmark({
<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>
<PopoverAnchor asChild>
<button
- className={`absolute top-0 h-full min-w-0.5 border-0 bg-transparent p-0 ${isDragging ? "cursor-grabbing" : "cursor-grab"}`}
+ className="absolute top-0 h-full min-w-0.5 border-0 bg-transparent p-0"
style={{
left: `${bookmarkLeft}px`,
width: `${bookmarkWidth}px`,
diff --git a/apps/web/src/components/editor/panels/timeline/drag-line.tsx b/apps/web/src/components/editor/panels/timeline/drag-line.tsx
index 291a4633..7597a620 100644
--- a/apps/web/src/components/editor/panels/timeline/drag-line.tsx
+++ b/apps/web/src/components/editor/panels/timeline/drag-line.tsx
@@ -1,5 +1,6 @@
import { getDropLineY } from "@/lib/timeline/drop-utils";
-import type { TimelineTrack, DropTarget } from "@/types/timeline";
+import type { TimelineTrack, DropTarget } from "@/lib/timeline";
+import { TIMELINE_LAYERS } from "@/constants/timeline-constants";
interface DragLineProps {
dropTarget: DropTarget | null;
@@ -22,7 +23,7 @@ export function DragLine({
return (
<div
className="bg-primary pointer-events-none absolute right-0 left-0 h-0.5"
- style={{ top: `${lineTop}px` }}
+ style={{ top: `${lineTop}px`, zIndex: TIMELINE_LAYERS.dragLine }}
/>
);
}
diff --git a/apps/web/src/components/editor/panels/timeline/index.tsx b/apps/web/src/components/editor/panels/timeline/index.tsx
index 593976a8..f1ecd9f4 100644
--- a/apps/web/src/components/editor/panels/timeline/index.tsx
+++ b/apps/web/src/components/editor/panels/timeline/index.tsx
@@ -3,31 +3,44 @@
import { ScrollArea } from "@/components/ui/scroll-area";
import {
Delete02Icon,
+ MagicWand05Icon,
+ MusicNote03Icon,
TaskAdd02Icon,
+ TextIcon,
ViewIcon,
ViewOffSlashIcon,
VolumeHighIcon,
VolumeOffIcon,
} from "@hugeicons/core-free-icons";
import { HugeiconsIcon, type IconSvgElement } from "@hugeicons/react";
+import { OcShapesIcon, OcVideoIcon } from "@opencut/ui/icons";
import {
ContextMenu,
ContextMenuContent,
ContextMenuItem,
ContextMenuTrigger,
-} from "../../../ui/context-menu";
+} from "@/components/ui/context-menu";
import { useTimelineZoom } from "@/hooks/timeline/use-timeline-zoom";
-import { useState, useRef, useCallback } from "react";
+import {
+ useCallback,
+ useEffect,
+ useMemo,
+ useRef,
+ useState,
+ type ReactNode,
+} from "react";
+import type { ElementDragState, DropTarget } from "@/lib/timeline";
import { TimelineTrackContent } from "./timeline-track";
import { TimelinePlayhead } from "./timeline-playhead";
-import { SelectionBox } from "../../selection-box";
-import { useSelectionBox } from "@/hooks/timeline/use-selection-box";
+import { SelectionBox } from "@/lib/selection/selection-box";
+import { useBoxSelect } from "@/lib/selection/hooks/use-box-select";
import { SnapIndicator } from "./snap-indicator";
import type { SnapPoint } from "@/lib/timeline/snap-utils";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import {
TIMELINE_CONSTANTS,
- TRACK_CONFIG,
+ TRACK_GAP,
+ TIMELINE_SCROLLBAR_SIZE_PX,
} from "@/constants/timeline-constants";
import { useElementInteraction } from "@/hooks/timeline/element/use-element-interaction";
import {
@@ -36,12 +49,11 @@ import {
getTotalTracksHeight,
canTracktHaveAudio,
canTrackBeHidden,
+ isMainTrack,
getTimelineZoomMin,
getTimelinePaddingPx,
- isMainTrack,
} from "@/lib/timeline";
import { TimelineToolbar } from "./timeline-toolbar";
-import { useScrollSync } from "@/hooks/timeline/use-scroll-sync";
import { useElementSelection } from "@/hooks/timeline/element/use-element-selection";
import { useTimelineSeek } from "@/hooks/timeline/use-timeline-seek";
import { useTimelineDragDrop } from "@/hooks/timeline/use-timeline-drag-drop";
@@ -49,27 +61,58 @@ import { TimelineRuler } from "./timeline-ruler";
import { TimelineBookmarksRow } from "./bookmarks";
import { useBookmarkDrag } from "@/hooks/timeline/use-bookmark-drag";
import { useEdgeAutoScroll } from "@/hooks/timeline/use-edge-auto-scroll";
+import { useInitialScrollBottom } from "@/hooks/timeline/use-initial-scroll-bottom";
import { useTimelineStore } from "@/stores/timeline-store";
import { useEditor } from "@/hooks/use-editor";
import { useTimelinePlayhead } from "@/hooks/timeline/use-timeline-playhead";
import { DragLine } from "./drag-line";
import { invokeAction } from "@/lib/actions";
+import { resolveTimelineElementIntersections } from "@/lib/timeline/selection-hit-testing";
+import { cn } from "@/utils/ui";
const TRACKS_CONTAINER_MAX_HEIGHT = 800;
const FALLBACK_CONTAINER_WIDTH = 1000;
+const TRACKS_CONTAINER_HEIGHT = { min: 0, max: TRACKS_CONTAINER_MAX_HEIGHT };
+const TRACK_ICONS: Record<TimelineTrack["type"], ReactNode> = {
+ video: <OcVideoIcon className="text-muted-foreground size-4 shrink-0" />,
+ text: (
+ <HugeiconsIcon
+ icon={TextIcon}
+ className="text-muted-foreground size-4 shrink-0"
+ />
+ ),
+ audio: (
+ <HugeiconsIcon
+ icon={MusicNote03Icon}
+ className="text-muted-foreground size-4 shrink-0"
+ />
+ ),
+ graphic: <OcShapesIcon className="text-muted-foreground size-4 shrink-0" />,
+ effect: (
+ <HugeiconsIcon
+ icon={MagicWand05Icon}
+ className="text-muted-foreground size-4 shrink-0"
+ />
+ ),
+};
export function Timeline() {
- const tracksContainerHeight = { min: 0, max: TRACKS_CONTAINER_MAX_HEIGHT };
const snappingEnabled = useTimelineStore((s) => s.snappingEnabled);
- const { clearElementSelection, setElementSelection } = useElementSelection();
+ const {
+ selectedElements,
+ clearElementSelection,
+ setElementSelection,
+ mergeElementsIntoSelection,
+ } = useElementSelection();
const editor = useEditor();
const timeline = editor.timeline;
- const tracks = timeline.getTracks();
+ const tracks = useEditor((editor) => editor.timeline.getTracks());
const seek = (time: number) => editor.playback.seek({ time });
const timelineRef = useRef<HTMLDivElement>(null);
const timelineHeaderRef = useRef<HTMLDivElement>(null);
const rulerRef = useRef<HTMLDivElement>(null);
+ const rulerScrollRef = useRef<HTMLDivElement>(null);
const tracksContainerRef = useRef<HTMLDivElement>(null);
const tracksScrollRef = useRef<HTMLDivElement>(null);
const trackLabelsRef = useRef<HTMLDivElement>(null);
@@ -110,8 +153,109 @@ export function Timeline() {
initialScrollLeft: savedViewState?.scrollLeft,
initialPlayheadTime: savedViewState?.playheadTime,
tracksScrollRef,
- rulerScrollRef: tracksScrollRef,
+ rulerScrollRef,
+ });
+
+ // Stable refs so the wheel listener never goes stale
+ const setZoomLevelRef = useRef(setZoomLevel);
+ useEffect(() => {
+ setZoomLevelRef.current = setZoomLevel;
+ }, [setZoomLevel]);
+
+ const saveScrollPositionRef = useRef(saveScrollPosition);
+ useEffect(() => {
+ saveScrollPositionRef.current = saveScrollPosition;
+ }, [saveScrollPosition]);
+
+ const minZoomLevelRef = useRef(minZoomLevel);
+ useEffect(() => {
+ minZoomLevelRef.current = minZoomLevel;
+ }, [minZoomLevel]);
+
+ // Pushes tracks scroll position to the two overflow:hidden followers
+ // (ruler and track labels). Called from the wheel handler (before paint,
+ // zero lag) and from onScroll on the tracks area (covers scrollbar drag).
+ const syncFollowers = useCallback(() => {
+ const tracks = tracksScrollRef.current;
+ if (!tracks) return;
+ if (rulerScrollRef.current) {
+ rulerScrollRef.current.scrollLeft = tracks.scrollLeft;
+ }
+ if (trackLabelsScrollRef.current) {
+ trackLabelsScrollRef.current.scrollTop = tracks.scrollTop;
+ }
+ }, []);
+
+ // Single non-passive capture listener owns all wheel input. Prevents any
+ // native scroll or browser zoom from firing inside the timeline.
+ useEffect(() => {
+ const container = timelineRef.current;
+ if (!container) return;
+
+ let pendingZoomDelta = 0;
+ let zoomRafId: ReturnType<typeof requestAnimationFrame> | null = null;
+
+ const onWheel = (e: WheelEvent) => {
+ const isZoom = e.ctrlKey || e.metaKey;
+
+ if (isZoom) {
+ e.preventDefault();
+ const normalizedDelta = e.deltaMode === 1 ? e.deltaY * 16 : e.deltaY;
+ pendingZoomDelta += normalizedDelta;
+
+ if (zoomRafId === null) {
+ zoomRafId = requestAnimationFrame(() => {
+ const frameRawDelta = pendingZoomDelta;
+ const cappedDelta =
+ Math.sign(frameRawDelta) * Math.min(Math.abs(frameRawDelta), 30);
+ const zoomFactor = Math.exp(-cappedDelta / 300);
+ setZoomLevelRef.current((prev) => prev * zoomFactor);
+ pendingZoomDelta = 0;
+ zoomRafId = null;
+ });
+ }
+ return;
+ }
+
+ const tracks = tracksScrollRef.current;
+ if (!tracks) return;
+
+ const isHorizontal =
+ e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY);
+
+ e.preventDefault();
+
+ if (isHorizontal) {
+ const raw =
+ Math.abs(e.deltaX) > Math.abs(e.deltaY) ? e.deltaX : e.deltaY;
+ const clamped =
+ Math.sign(raw) *
+ Math.min(Math.abs(raw), TIMELINE_CONSTANTS.HORIZONTAL_WHEEL_STEP_PX);
+ tracks.scrollLeft = Math.max(0, tracks.scrollLeft + clamped);
+ } else {
+ tracks.scrollTop = Math.max(0, tracks.scrollTop + e.deltaY);
+ }
+
+ syncFollowers();
+ saveScrollPositionRef.current();
+ };
+
+ container.addEventListener("wheel", onWheel, {
+ passive: false,
+ capture: true,
});
+ return () => {
+ container.removeEventListener("wheel", onWheel, { capture: true });
+ if (zoomRafId !== null) cancelAnimationFrame(zoomRafId);
+ };
+ }, [syncFollowers]);
+
+ useInitialScrollBottom({
+ tracksScrollRef,
+ trackLabelsScrollRef,
+ onAfterScroll: () => saveScrollPositionRef.current(),
+ isReady: tracks.length > 0,
+ });
const {
dragState,
@@ -124,7 +268,6 @@ export function Timeline() {
timelineRef,
tracksContainerRef,
tracksScrollRef,
- headerRef: timelineHeaderRef,
snappingEnabled,
onSnapPointChange: handleSnapPointChange,
});
@@ -144,14 +287,13 @@ export function Timeline() {
useTimelinePlayhead({
zoomLevel,
rulerRef,
- rulerScrollRef: tracksScrollRef,
+ rulerScrollRef,
tracksScrollRef,
playheadRef,
});
const { isDragOver, dropTarget, dragProps } = useTimelineDragDrop({
containerRef: tracksContainerRef,
- headerRef: timelineHeaderRef,
tracksScrollRef,
zoomLevel,
});
@@ -161,17 +303,37 @@ export function Timeline() {
handleMouseDown: handleSelectionMouseDown,
isSelecting,
shouldIgnoreClick,
- } = useSelectionBox({
+ } = useBoxSelect({
containerRef: tracksContainerRef,
- headerRef: timelineHeaderRef,
- onSelectionComplete: (elements) => {
- setElementSelection({ elements });
+ selectedIds: selectedElements,
+ anchorId: null,
+ getIsAdditiveSelection: (event) =>
+ event.shiftKey || event.ctrlKey || event.metaKey,
+ resolveIntersections: ({ startPos, currentPos }) => {
+ if (!tracksContainerRef.current) {
+ return [];
+ }
+
+ return resolveTimelineElementIntersections({
+ container: tracksContainerRef.current,
+ scrollContainer: tracksScrollRef.current,
+ tracks,
+ zoomLevel,
+ startPos,
+ currentPos,
+ });
+ },
+ onSelectionChange: ({ intersectedIds, isAdditive }) => {
+ if (isAdditive) {
+ mergeElementsIntoSelection({ elements: intersectedIds });
+ } else {
+ setElementSelection({ elements: intersectedIds });
+ }
},
- tracksScrollRef,
- zoomLevel,
});
- const containerWidth = tracksContainerRef.current?.clientWidth || FALLBACK_CONTAINER_WIDTH;
+ const containerWidth =
+ tracksContainerRef.current?.clientWidth || FALLBACK_CONTAINER_WIDTH;
const contentWidth =
timelineDuration * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;
const paddingPx = getTimelinePaddingPx({
@@ -183,11 +345,16 @@ export function Timeline() {
contentWidth + paddingPx,
containerWidth,
);
+ const tracksViewportWidth =
+ tracksScrollRef.current?.clientWidth ??
+ tracksContainerRef.current?.clientWidth ??
+ containerWidth;
+ const hasHorizontalScrollbar = dynamicTimelineWidth > tracksViewportWidth;
useEdgeAutoScroll({
isActive: bookmarkDragState.isDragging,
getMouseClientX: () => bookmarkLastMouseXRef.current,
- rulerScrollRef: tracksScrollRef,
+ rulerScrollRef,
tracksScrollRef,
contentWidth: dynamicTimelineWidth,
});
@@ -205,7 +372,7 @@ export function Timeline() {
} = useTimelineSeek({
playheadRef,
trackLabelsRef,
- rulerScrollRef: tracksScrollRef,
+ rulerScrollRef,
tracksScrollRef,
zoomLevel,
duration: timeline.getTotalDuration(),
@@ -214,13 +381,9 @@ export function Timeline() {
seek,
});
- useScrollSync({
- tracksScrollRef,
- trackLabelsScrollRef,
- });
-
const timelineHeaderHeight =
- timelineHeaderRef.current?.getBoundingClientRect().height ?? 0;
+ (timelineHeaderRef.current?.getBoundingClientRect().height ?? 0) +
+ TIMELINE_CONSTANTS.PADDING_TOP_PX || 0;
return (
<section
@@ -236,315 +399,409 @@ export function Timeline() {
setZoomLevel={({ zoom }) => setZoomLevel(zoom)}
/>
- <div
- className="relative flex flex-1 flex-col overflow-hidden"
- ref={timelineRef}
- >
- <SnapIndicator
- snapPoint={currentSnapPoint}
- zoomLevel={zoomLevel}
- tracks={tracks}
- timelineRef={timelineRef}
+ <div className="relative flex flex-1 overflow-hidden" ref={timelineRef}>
+ <TrackLabelsPanel
trackLabelsRef={trackLabelsRef}
- tracksScrollRef={tracksScrollRef}
- isVisible={showSnapIndicator}
+ trackLabelsScrollRef={trackLabelsScrollRef}
+ timelineHeaderHeight={timelineHeaderHeight}
+ hasHorizontalScrollbar={hasHorizontalScrollbar}
/>
- <div className="flex flex-1 overflow-hidden">
- <div className="bg-background flex w-28 shrink-0 flex-col border-r">
- <div className="bg-background flex h-4 items-center justify-between px-3">
- <span className="opacity-0">.</span>
- </div>
- <div className="bg-background flex h-4 items-center justify-between px-3">
- <span className="opacity-0">.</span>
+
+ <div
+ className="relative isolate flex flex-1 flex-col overflow-hidden"
+ ref={tracksContainerRef}
+ >
+ <SelectionBox
+ startPos={selectionBox?.startPos || null}
+ currentPos={selectionBox?.currentPos || null}
+ containerRef={tracksContainerRef}
+ isActive={selectionBox?.isActive || false}
+ />
+ <DragLine
+ dropTarget={dropTarget}
+ tracks={timeline.getTracks()}
+ isVisible={isDragOver && !dropTarget?.targetElement}
+ headerHeight={timelineHeaderHeight}
+ />
+ <DragLine
+ dropTarget={dragDropTarget}
+ tracks={timeline.getTracks()}
+ isVisible={dragState.isDragging}
+ headerHeight={timelineHeaderHeight}
+ />
+
+ <div ref={rulerScrollRef} className="shrink-0 overflow-hidden">
+ <div
+ ref={timelineHeaderRef}
+ className="flex flex-col"
+ style={{ width: `${dynamicTimelineWidth}px` }}
+ >
+ <TimelineRuler
+ zoomLevel={zoomLevel}
+ dynamicTimelineWidth={dynamicTimelineWidth}
+ rulerRef={rulerRef}
+ tracksScrollRef={rulerScrollRef}
+ handleWheel={handleWheel}
+ handleTimelineContentClick={handleRulerClick}
+ handleRulerTrackingMouseDown={handleRulerMouseDown}
+ handleRulerMouseDown={handlePlayheadRulerMouseDown}
+ />
+ <TimelineBookmarksRow
+ zoomLevel={zoomLevel}
+ dynamicTimelineWidth={dynamicTimelineWidth}
+ dragState={bookmarkDragState}
+ onBookmarkMouseDown={handleBookmarkMouseDown}
+ handleWheel={handleWheel}
+ handleTimelineContentClick={handleRulerClick}
+ handleRulerTrackingMouseDown={handleRulerMouseDown}
+ handleRulerMouseDown={handlePlayheadRulerMouseDown}
+ />
</div>
- {tracks.length > 0 && (
- <div
- ref={trackLabelsRef}
- className="bg-background flex-1 overflow-y-auto"
- style={{ paddingTop: TIMELINE_CONSTANTS.PADDING_TOP_PX }}
- >
- <ScrollArea className="size-full" ref={trackLabelsScrollRef}>
- <div className="flex flex-col gap-1">
- {tracks.map((track) => (
- <div
- key={track.id}
- className="group flex items-center px-3"
- style={{
- height: `${getTrackHeight({ type: track.type })}px`,
- }}
- >
- <div className="flex min-w-0 flex-1 items-center justify-end gap-2">
- {process.env.NODE_ENV === "development" &&
- isMainTrack(track) && (
- <div className="bg-red-500 size-1.5 rounded-full" />
- )}
- {canTracktHaveAudio(track) && (
- <TrackToggleIcon
- isOff={track.muted}
- icons={{
- on: VolumeHighIcon,
- off: VolumeOffIcon,
- }}
- onClick={() =>
- editor.timeline.toggleTrackMute({
- trackId: track.id,
- })
- }
- />
- )}
- {canTrackBeHidden(track) && (
- <TrackToggleIcon
- isOff={track.hidden}
- icons={{
- on: ViewIcon,
- off: ViewOffSlashIcon,
- }}
- onClick={() =>
- editor.timeline.toggleTrackVisibility({
- trackId: track.id,
- })
- }
- />
- )}
- <TrackIcon track={track} />
- </div>
- </div>
- ))}
- </div>
- </ScrollArea>
- </div>
- )}
</div>
- <div
- className="relative flex flex-1 flex-col overflow-hidden"
- ref={tracksContainerRef}
+ <ScrollArea
+ className="flex-1"
+ ref={tracksScrollRef}
+ onScroll={() => {
+ syncFollowers();
+ saveScrollPosition();
+ }}
>
- <SelectionBox
- startPos={selectionBox?.startPos || null}
- currentPos={selectionBox?.currentPos || null}
- containerRef={tracksContainerRef}
- isActive={selectionBox?.isActive || false}
- />
- <DragLine
- dropTarget={dropTarget}
- tracks={timeline.getTracks()}
- isVisible={isDragOver && !dropTarget?.targetElement}
- headerHeight={timelineHeaderHeight}
- />
- <DragLine
- dropTarget={dragDropTarget}
- tracks={timeline.getTracks()}
- isVisible={dragState.isDragging}
- headerHeight={timelineHeaderHeight}
- />
- <ScrollArea
- className="size-full overflow-y-hidden"
- ref={tracksScrollRef}
- onMouseDown={(event) => {
- const isDirectTarget = event.target === event.currentTarget;
- if (!isDirectTarget) return;
- event.stopPropagation();
- handleTracksMouseDown(event);
- handleSelectionMouseDown(event);
- }}
- onClick={(event) => {
- const isDirectTarget = event.target === event.currentTarget;
- if (!isDirectTarget) return;
- event.stopPropagation();
- handleTracksClick(event);
- }}
- onWheel={(event) => {
- if (
- event.shiftKey ||
- Math.abs(event.deltaX) > Math.abs(event.deltaY)
- ) {
- return;
- }
- handleWheel(event);
- }}
- onScroll={() => {
- saveScrollPosition();
- }}
+ <div
+ className="flex min-h-full flex-col"
+ style={{ width: `${dynamicTimelineWidth}px` }}
>
+ {/* biome-ignore lint/a11y/noStaticElementInteractions: canvas seek surface; keyboard seeking is handled by the global keybindings system */}
+ {/* biome-ignore lint/a11y/useKeyWithClickEvents: canvas seek surface; keyboard seeking is handled by the global keybindings system */}
<div
- className="relative"
+ className="relative shrink-0"
style={{
- width: `${dynamicTimelineWidth}px`,
+ height: `${
+ Math.max(
+ TRACKS_CONTAINER_HEIGHT.min,
+ Math.min(
+ TRACKS_CONTAINER_HEIGHT.max,
+ getTotalTracksHeight({ tracks }),
+ ),
+ ) + TIMELINE_CONSTANTS.PADDING_TOP_PX
+ }px`,
+ }}
+ onMouseDown={(event) => {
+ const isDirectTarget = event.target === event.currentTarget;
+ if (!isDirectTarget) return;
+ event.stopPropagation();
+ handleTracksMouseDown(event);
+ handleSelectionMouseDown(event);
+ }}
+ onClick={(event) => {
+ const isDirectTarget = event.target === event.currentTarget;
+ if (!isDirectTarget) return;
+ event.stopPropagation();
+ handleTracksClick(event);
}}
>
- <div
- ref={timelineHeaderRef}
- className="bg-background sticky top-0 flex flex-col"
- >
- <TimelineRuler
+ {tracks.length > 0 && (
+ <TimelineTrackRows
+ dragElementId={dragState.elementId}
zoomLevel={zoomLevel}
- dynamicTimelineWidth={dynamicTimelineWidth}
- rulerRef={rulerRef}
+ dragState={dragState}
tracksScrollRef={tracksScrollRef}
- handleWheel={handleWheel}
- handleTimelineContentClick={handleRulerClick}
- handleRulerTrackingMouseDown={handleRulerMouseDown}
- handleRulerMouseDown={handlePlayheadRulerMouseDown}
- />
- <TimelineBookmarksRow
- zoomLevel={zoomLevel}
- dynamicTimelineWidth={dynamicTimelineWidth}
- dragState={bookmarkDragState}
- onBookmarkMouseDown={handleBookmarkMouseDown}
- handleWheel={handleWheel}
- handleTimelineContentClick={handleRulerClick}
- handleRulerTrackingMouseDown={handleRulerMouseDown}
- handleRulerMouseDown={handlePlayheadRulerMouseDown}
+ lastMouseXRef={lastMouseXRef}
+ onSnapPointChange={handleSnapPointChange}
+ onResizeStateChange={handleResizeStateChange}
+ onElementMouseDown={handleElementMouseDown}
+ onElementClick={handleElementClick}
+ onTrackMouseDown={(event) => {
+ handleSelectionMouseDown(event);
+ handleTracksMouseDown(event);
+ }}
+ onTrackMouseUp={handleTracksClick}
+ shouldIgnoreClick={shouldIgnoreClick}
+ isDragOver={isDragOver}
+ dropTarget={dropTarget}
/>
- </div>
- <TimelinePlayhead
- zoomLevel={zoomLevel}
- rulerRef={rulerRef}
- rulerScrollRef={tracksScrollRef}
- tracksScrollRef={tracksScrollRef}
- timelineRef={timelineRef}
- playheadRef={playheadRef}
- isSnappingToPlayhead={
- showSnapIndicator && currentSnapPoint?.type === "playhead"
- }
- />
+ )}
+ </div>
+ <TimelineGutter
+ onMouseDown={(event) => {
+ handleTracksMouseDown(event);
+ handleSelectionMouseDown(event);
+ }}
+ onClick={handleTracksClick}
+ />
+ </div>
+ </ScrollArea>
+
+ <TimelinePlayhead
+ zoomLevel={zoomLevel}
+ hasHorizontalScrollbar={hasHorizontalScrollbar}
+ rulerRef={rulerRef}
+ rulerScrollRef={rulerScrollRef}
+ tracksScrollRef={tracksScrollRef}
+ timelineRef={timelineRef}
+ playheadRef={playheadRef}
+ isSnappingToPlayhead={
+ showSnapIndicator && currentSnapPoint?.type === "playhead"
+ }
+ />
+ </div>
+ <SnapIndicator
+ snapPoint={currentSnapPoint}
+ zoomLevel={zoomLevel}
+ timelineRef={timelineRef}
+ tracksScrollRef={tracksScrollRef}
+ isVisible={showSnapIndicator}
+ tracks={tracks}
+ />
+ </div>
+ </section>
+ );
+}
+
+function TrackLabelsPanel({
+ trackLabelsRef,
+ trackLabelsScrollRef,
+ timelineHeaderHeight,
+ hasHorizontalScrollbar,
+}: {
+ trackLabelsRef: React.RefObject<HTMLDivElement | null>;
+ trackLabelsScrollRef: React.RefObject<HTMLDivElement | null>;
+ timelineHeaderHeight: number;
+ hasHorizontalScrollbar: boolean;
+}) {
+ const editor = useEditor();
+ const tracks = useEditor((e) => e.timeline.getTracks());
+ const { selectedElements } = useElementSelection();
+ const tracksWithSelection = useMemo(
+ () => new Set(selectedElements.map((el) => el.trackId)),
+ [selectedElements],
+ );
+
+ return (
+ <div className="flex w-28 shrink-0 flex-col border-r">
+ <div
+ className="shrink-0"
+ style={{ height: timelineHeaderHeight || 48 }}
+ />
+ <div ref={trackLabelsRef} className="flex-1 overflow-hidden">
+ <div ref={trackLabelsScrollRef} className="size-full overflow-hidden">
+ {tracks.length > 0 && (
+ <div className="flex flex-col" style={{ gap: `${TRACK_GAP}px` }}>
+ {tracks.map((track) => (
<div
- className="relative"
+ key={track.id}
+ className={cn(
+ "group flex items-center px-3",
+ tracksWithSelection.has(track.id) &&
+ TIMELINE_CONSTANTS.TRACK_SELECTED_BG,
+ )}
style={{
- height: `${Math.max(
- tracksContainerHeight.min,
- Math.min(
- tracksContainerHeight.max,
- getTotalTracksHeight({ tracks }),
- ),
- )}px`,
+ height: `${getTrackHeight({ type: track.type })}px`,
}}
>
- {tracks.length === 0 ? (
- <div />
- ) : (
- [...tracks]
- .map((track, index) => ({ track, index }))
- .sort((a, b) => {
- const aHasDragged = a.track.elements.some(
- (element) => element.id === dragState.elementId,
- );
- const bHasDragged = b.track.elements.some(
- (element) => element.id === dragState.elementId,
- );
- if (aHasDragged) return 1;
- if (bHasDragged) return -1;
- return 0;
- })
- .map(({ track, index }) => (
- <ContextMenu key={track.id}>
- <ContextMenuTrigger asChild>
- <div
- className="absolute right-0 left-0"
- style={{
- top: `${getCumulativeHeightBefore({
- tracks,
- trackIndex: index,
- })}px`,
- height: `${getTrackHeight({
- type: track.type,
- })}px`,
- }}
- >
- <TimelineTrackContent
- track={track}
- zoomLevel={zoomLevel}
- dragState={dragState}
- rulerScrollRef={tracksScrollRef}
- tracksScrollRef={tracksScrollRef}
- lastMouseXRef={lastMouseXRef}
- onSnapPointChange={handleSnapPointChange}
- onResizeStateChange={handleResizeStateChange}
- onElementMouseDown={handleElementMouseDown}
- onElementClick={handleElementClick}
- onTrackMouseDown={(event) => {
- handleSelectionMouseDown(event);
- handleTracksMouseDown(event);
- }}
- onTrackClick={handleTracksClick}
- shouldIgnoreClick={shouldIgnoreClick}
- targetElementId={
- isDragOver
- ? dropTarget?.targetElement?.elementId ?? null
- : null
- }
- />
- </div>
- </ContextMenuTrigger>
- <ContextMenuContent className="w-40">
- <ContextMenuItem
- icon={<HugeiconsIcon icon={TaskAdd02Icon} />}
- onClick={(event) => {
- event.stopPropagation();
- invokeAction("paste-copied");
- }}
- >
- Paste elements
- </ContextMenuItem>
- <ContextMenuItem
- onClick={(event) => {
- event.stopPropagation();
- timeline.toggleTrackMute({
- trackId: track.id,
- });
- }}
- >
- <HugeiconsIcon icon={VolumeHighIcon} />
- <span>
- {canTracktHaveAudio(track) && track.muted
- ? "Unmute track"
- : "Mute track"}
- </span>
- </ContextMenuItem>
- <ContextMenuItem
- onClick={(event) => {
- event.stopPropagation();
- timeline.toggleTrackVisibility({
- trackId: track.id,
- });
- }}
- >
- <HugeiconsIcon icon={ViewIcon} />
- <span>
- {canTrackBeHidden(track) && track.hidden
- ? "Show track"
- : "Hide track"}
- </span>
- </ContextMenuItem>
- <ContextMenuItem
- onClick={(event) => {
- event.stopPropagation();
- timeline.removeTrack({
- trackId: track.id,
- });
- }}
- variant="destructive"
- >
- <HugeiconsIcon icon={Delete02Icon} />
- Delete track
- </ContextMenuItem>
- </ContextMenuContent>
- </ContextMenu>
- ))
- )}
+ <div className="flex min-w-0 flex-1 items-center justify-end gap-2">
+ {canTracktHaveAudio(track) && (
+ <TrackToggleIcon
+ isOff={track.muted}
+ icons={{ on: VolumeHighIcon, off: VolumeOffIcon }}
+ onClick={() =>
+ editor.timeline.toggleTrackMute({ trackId: track.id })
+ }
+ />
+ )}
+ {canTrackBeHidden(track) && (
+ <TrackToggleIcon
+ isOff={track.hidden}
+ icons={{ on: ViewIcon, off: ViewOffSlashIcon }}
+ onClick={() =>
+ editor.timeline.toggleTrackVisibility({
+ trackId: track.id,
+ })
+ }
+ />
+ )}
+ <TrackIcon track={track} />
+ </div>
</div>
- </div>
- </ScrollArea>
- </div>
+ ))}
+ </div>
+ )}
</div>
</div>
- </section>
+ <div
+ className="bg-background shrink-0"
+ style={{
+ height: hasHorizontalScrollbar ? TIMELINE_SCROLLBAR_SIZE_PX : 0,
+ }}
+ />
+ </div>
+ );
+}
+
+function TimelineTrackRows({
+ dragElementId,
+ zoomLevel,
+ dragState,
+ tracksScrollRef,
+ lastMouseXRef,
+ onSnapPointChange,
+ onResizeStateChange,
+ onElementMouseDown,
+ onElementClick,
+ onTrackMouseDown,
+ onTrackMouseUp,
+ shouldIgnoreClick,
+ isDragOver,
+ dropTarget,
+}: {
+ dragElementId: string | null;
+ zoomLevel: number;
+ dragState: ElementDragState;
+ tracksScrollRef: React.RefObject<HTMLDivElement | null>;
+ lastMouseXRef: React.RefObject<number>;
+ onSnapPointChange: (snapPoint: SnapPoint | null) => void;
+ onResizeStateChange: (params: { isResizing: boolean }) => void;
+ onElementMouseDown: React.ComponentProps<
+ typeof TimelineTrackContent
+ >["onElementMouseDown"];
+ onElementClick: React.ComponentProps<
+ typeof TimelineTrackContent
+ >["onElementClick"];
+ onTrackMouseDown: (event: React.MouseEvent) => void;
+ onTrackMouseUp: (event: React.MouseEvent) => void;
+ shouldIgnoreClick: () => boolean;
+ isDragOver: boolean;
+ dropTarget: DropTarget | null;
+}) {
+ const timeline = useEditor((e) => e.timeline);
+ const tracks = useEditor((e) => e.timeline.getTracks());
+ const { selectedElements } = useElementSelection();
+ const tracksWithSelection = useMemo(
+ () => new Set(selectedElements.map((el) => el.trackId)),
+ [selectedElements],
+ );
+
+ const sortedTracks = useMemo(
+ () =>
+ [...tracks]
+ .map((track, index) => ({ track, index }))
+ .sort((a, b) => {
+ const aHasDragged = a.track.elements.some(
+ (el) => el.id === dragElementId,
+ );
+ const bHasDragged = b.track.elements.some(
+ (el) => el.id === dragElementId,
+ );
+ if (aHasDragged) return 1;
+ if (bHasDragged) return -1;
+ return 0;
+ }),
+ [tracks, dragElementId],
);
+
+ return (
+ <>
+ {sortedTracks.map(({ track, index }) => (
+ <ContextMenu key={track.id}>
+ <ContextMenuTrigger asChild>
+ <div
+ className={cn(
+ "absolute right-0 left-0 transition-colors",
+ tracksWithSelection.has(track.id) &&
+ TIMELINE_CONSTANTS.TRACK_SELECTED_BG,
+ )}
+ style={{
+ top: `${TIMELINE_CONSTANTS.PADDING_TOP_PX + getCumulativeHeightBefore({ tracks, trackIndex: index })}px`,
+ height: `${getTrackHeight({ type: track.type })}px`,
+ }}
+ >
+ <TimelineTrackContent
+ track={track}
+ zoomLevel={zoomLevel}
+ dragState={dragState}
+ rulerScrollRef={tracksScrollRef}
+ tracksScrollRef={tracksScrollRef}
+ lastMouseXRef={lastMouseXRef}
+ onSnapPointChange={onSnapPointChange}
+ onResizeStateChange={onResizeStateChange}
+ onElementMouseDown={onElementMouseDown}
+ onElementClick={onElementClick}
+ onTrackMouseDown={onTrackMouseDown}
+ onTrackMouseUp={onTrackMouseUp}
+ shouldIgnoreClick={shouldIgnoreClick}
+ targetElementId={
+ isDragOver
+ ? (dropTarget?.targetElement?.elementId ?? null)
+ : null
+ }
+ />
+ </div>
+ </ContextMenuTrigger>
+ <ContextMenuContent className="w-40">
+ <ContextMenuItem
+ icon={<HugeiconsIcon icon={TaskAdd02Icon} />}
+ onClick={(event: React.MouseEvent) => {
+ event.stopPropagation();
+ invokeAction("paste-copied");
+ }}
+ >
+ Paste elements
+ </ContextMenuItem>
+ <ContextMenuItem
+ icon={<HugeiconsIcon icon={VolumeHighIcon} />}
+ onClick={(event: React.MouseEvent) => {
+ event.stopPropagation();
+ timeline.toggleTrackMute({ trackId: track.id });
+ }}
+ >
+ {canTracktHaveAudio(track) && track.muted
+ ? "Unmute track"
+ : "Mute track"}
+ </ContextMenuItem>
+ <ContextMenuItem
+ icon={<HugeiconsIcon icon={ViewIcon} />}
+ onClick={(event: React.MouseEvent) => {
+ event.stopPropagation();
+ timeline.toggleTrackVisibility({ trackId: track.id });
+ }}
+ >
+ {canTrackBeHidden(track) && track.hidden
+ ? "Show track"
+ : "Hide track"}
+ </ContextMenuItem>
+ {!isMainTrack(track) && (
+ <ContextMenuItem
+ icon={<HugeiconsIcon icon={Delete02Icon} />}
+ onClick={(event: React.MouseEvent) => {
+ event.stopPropagation();
+ timeline.removeTrack({ trackId: track.id });
+ }}
+ variant="destructive"
+ >
+ Delete track
+ </ContextMenuItem>
+ )}
+ </ContextMenuContent>
+ </ContextMenu>
+ ))}
+ </>
+ );
+}
+
+function TimelineGutter({
+ onMouseDown,
+ onClick,
+}: {
+ onMouseDown: (event: React.MouseEvent) => void;
+ onClick: (event: React.MouseEvent) => void;
+}) {
+ // biome-ignore lint/a11y/noStaticElementInteractions: canvas seek surface; keyboard seeking is handled by the global keybindings system
+ // biome-ignore lint/a11y/useKeyWithClickEvents: canvas seek surface; keyboard seeking is handled by the global keybindings system
+ return <div className="flex-1" onMouseDown={onMouseDown} onClick={onClick} />;
}
function TrackIcon({ track }: { track: TimelineTrack }) {
- return <>{TRACK_CONFIG[track.type].icon}</>;
+ return <>{TRACK_ICONS[track.type]}</>;
}
function TrackToggleIcon({
diff --git a/apps/web/src/components/editor/panels/timeline/snap-indicator.tsx b/apps/web/src/components/editor/panels/timeline/snap-indicator.tsx
index 927d336a..acb57203 100644
--- a/apps/web/src/components/editor/panels/timeline/snap-indicator.tsx
+++ b/apps/web/src/components/editor/panels/timeline/snap-indicator.tsx
@@ -6,15 +6,12 @@ import {
getCenteredLineLeft,
TIMELINE_INDICATOR_LINE_WIDTH_PX,
} from "@/lib/timeline";
-import type { TimelineTrack } from "@/types/timeline";
-
+import { TIMELINE_LAYERS } from "@/constants/timeline-constants";
interface SnapIndicatorProps {
snapPoint: SnapPoint | null;
zoomLevel: number;
isVisible: boolean;
- tracks: TimelineTrack[];
timelineRef: React.RefObject<HTMLDivElement | null>;
- trackLabelsRef?: React.RefObject<HTMLDivElement | null>;
tracksScrollRef: React.RefObject<HTMLDivElement | null>;
}
@@ -22,17 +19,13 @@ export function SnapIndicator({
snapPoint,
zoomLevel,
isVisible,
- tracks,
timelineRef,
- trackLabelsRef,
tracksScrollRef,
}: SnapIndicatorProps) {
const { leftPosition, topPosition, height } = useSnapIndicatorPosition({
snapPoint,
zoomLevel,
- tracks,
timelineRef,
- trackLabelsRef,
tracksScrollRef,
});
@@ -48,6 +41,7 @@ export function SnapIndicator({
top: topPosition,
height: `${height}px`,
width: `${TIMELINE_INDICATOR_LINE_WIDTH_PX}px`,
+ zIndex: TIMELINE_LAYERS.snapIndicator,
}}
>
<div className={"bg-primary/40 h-full w-0.5 opacity-80"} />
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-element.tsx b/apps/web/src/components/editor/panels/timeline/timeline-element.tsx
index 9121f6c2..13a31375 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-element.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-element.tsx
@@ -2,7 +2,7 @@
import { useEditor } from "@/hooks/use-editor";
import { useAssetsPanelStore } from "@/stores/assets-panel-store";
-import AudioWaveform from "./audio-waveform";
+import { AudioWaveform } from "./audio-waveform";
import { useTimelineElementResize } from "@/hooks/timeline/element/use-element-resize";
import {
useKeyframeDrag,
@@ -12,14 +12,16 @@ import { useKeyframeSelection } from "@/hooks/timeline/element/use-keyframe-sele
import type { SnapPoint } from "@/lib/timeline/snap-utils";
import { getElementKeyframes } from "@/lib/animation";
import {
- getTrackClasses,
+ getElementClasses,
getTrackHeight,
canElementHaveAudio,
canElementBeHidden,
+ hasElementEffects,
hasMediaId,
timelineTimeToPixels,
timelineTimeToSnappedPixels,
} from "@/lib/timeline";
+import { ELEMENT_TYPE_CONFIG } from "@/constants/timeline-constants";
import {
ContextMenu,
ContextMenuContent,
@@ -30,14 +32,22 @@ import {
import type {
TimelineElement as TimelineElementType,
TimelineTrack,
- VisualElement,
ElementDragState,
-} from "@/types/timeline";
-import type { MediaAsset } from "@/types/assets";
+ VideoElement,
+ ImageElement,
+ AudioElement,
+} from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
import { mediaSupportsAudio } from "@/lib/media/media-utils";
-import { getActionDefinition, type TAction, invokeAction } from "@/lib/actions";
+import {
+ getActionDefinition,
+ type TAction,
+ type TActionWithOptionalArgs,
+ invokeAction,
+} from "@/lib/actions";
import { useElementSelection } from "@/hooks/timeline/element/use-element-selection";
import { resolveStickerId } from "@/lib/stickers";
+import { buildGraphicPreviewUrl } from "@/lib/graphics";
import Image from "next/image";
import {
ScissorIcon,
@@ -56,13 +66,16 @@ import {
import { HugeiconsIcon } from "@hugeicons/react";
import { uppercase } from "@/utils/string";
import type { ComponentProps, ReactNode } from "react";
-import type { SelectedKeyframeRef, ElementKeyframe } from "@/types/animation";
+import type {
+ SelectedKeyframeRef,
+ ElementKeyframe,
+} from "@/lib/animation/types";
import { cn } from "@/utils/ui";
-import { Button } from "@/components/ui/button";
-import { usePropertiesStore } from "@/stores/properties-store";
+import { usePropertiesStore } from "@/components/editor/panels/properties/stores/properties-store";
const KEYFRAME_INDICATOR_MIN_WIDTH_PX = 40;
const ELEMENT_RING_WIDTH_PX = 1.5;
+const THUMBNAIL_ASPECT_RATIO = 16 / 9;
interface KeyframeIndicator {
time: number;
@@ -195,16 +208,15 @@ export function TimelineElement({
dragState,
isDropTarget = false,
}: TimelineElementProps) {
- const editor = useEditor();
+ const mediaAssets = useEditor((e) => e.media.getAssets());
const { selectedElements } = useElementSelection();
- const { requestRevealMedia } = useAssetsPanelStore();
+ const requestRevealMedia = useAssetsPanelStore((s) => s.requestRevealMedia);
let mediaAsset: MediaAsset | null = null;
if (hasMediaId(element)) {
mediaAsset =
- editor.media.getAssets().find((asset) => asset.id === element.mediaId) ??
- null;
+ mediaAssets.find((asset) => asset.id === element.mediaId) ?? null;
}
const hasAudio = mediaSupportsAudio({ media: mediaAsset });
@@ -394,60 +406,46 @@ function ElementInner({
}) => void;
isDropTarget?: boolean;
}) {
- const opacityClass =
- (canElementBeHidden(element) && element.hidden) || isDropTarget
- ? "opacity-50"
- : "";
- const closeClipEffects = usePropertiesStore(
- (state) => state.closeClipEffects,
- );
-
+ const isReducedOpacity =
+ (canElementBeHidden(element) && element.hidden) || isDropTarget;
return (
<div
- className="relative h-full cursor-pointer"
- style={{ marginInline: ELEMENT_RING_WIDTH_PX }}
+ className="absolute top-0 bottom-0"
+ style={{
+ left: `${ELEMENT_RING_WIDTH_PX}px`,
+ right: `${ELEMENT_RING_WIDTH_PX}px`,
+ }}
>
<div
- className={cn(
- "absolute inset-0 overflow-hidden rounded-sm",
- getTrackClasses({ type: track.type }),
- opacityClass,
- )}
+ className="absolute inset-0 rounded-sm"
style={
isSelected
? {
- boxShadow: `0 0 0 ${ELEMENT_RING_WIDTH_PX}px var(--foreground)`,
+ boxShadow: `0 0 0 ${ELEMENT_RING_WIDTH_PX}px var(--primary)`,
}
: undefined
}
>
- <button
- type="button"
- className="absolute inset-0 size-full cursor-pointer flex flex-col"
- onClick={(event) => {
- closeClipEffects();
- onElementClick(event, element);
- }}
- onMouseDown={(event) => onElementMouseDown(event, element)}
+ <div
+ className={cn(
+ "absolute inset-0 overflow-hidden rounded-sm",
+ getElementClasses({ type: track.type }),
+ isReducedOpacity && "opacity-50",
+ )}
>
- <div className="flex flex-1 min-h-0 items-center overflow-hidden">
- <ElementContent
- element={element}
- track={track}
- isSelected={isSelected}
- />
- </div>
- </button>
- </div>
-
- {element.type !== "audio" && element.type !== "effect" && (
- <div className="sticky left-1 mt-1 ml-1 w-fit">
- <EffectsButton
- element={element as VisualElement}
- trackId={track.id}
- />
+ <button
+ type="button"
+ tabIndex={-1}
+ className="absolute inset-0 size-full flex flex-col"
+ onClick={(event) => onElementClick(event, element)}
+ onMouseDown={(event) => onElementMouseDown(event, element)}
+ >
+ <div className="flex flex-1 min-h-0 items-center overflow-hidden">
+ <ElementContent element={element} track={track} />
+ </div>
+ </button>
</div>
- )}
+ </div>
{isSelected && (
<>
@@ -535,8 +533,8 @@ function KeyframeIndicators({
const isIndicatorSelected = indicator.keyframes.some((keyframe) =>
isKeyframeSelected({ keyframe }),
);
- const isBeingDragged = indicator.keyframes.some((kf) =>
- dragState.draggingKeyframeIds.has(kf.keyframeId),
+ const isBeingDragged = indicator.keyframes.some((keyframe) =>
+ dragState.draggingKeyframeIds.has(keyframe.keyframeId),
);
const visualOffsetPx = getVisualOffsetPx({
indicatorTime: indicator.time,
@@ -581,212 +579,244 @@ function KeyframeIndicators({
interface ElementContentProps {
element: TimelineElementType;
track: TimelineTrack;
- isSelected: boolean;
}
-interface ElementContentRendererProps extends ElementContentProps {
- mediaAssets: MediaAsset[];
+function TextElementContent({
+ element,
+}: {
+ element: Extract<TimelineElementType, { type: "text" }>;
+}) {
+ return (
+ <div className="flex size-full items-center justify-start pl-2">
+ <span className="truncate text-xs text-white">{element.content}</span>
+ </div>
+ );
+}
+
+function EffectElementContent({
+ element,
+}: {
+ element: Extract<TimelineElementType, { type: "effect" }>;
+}) {
+ return (
+ <div className="flex size-full items-center justify-start gap-1 pl-2">
+ <HugeiconsIcon
+ icon={MagicWand05Icon}
+ className="size-4 shrink-0 text-white"
+ />
+ <span className="truncate text-xs text-white">{element.name}</span>
+ </div>
+ );
}
-type ElementContentRenderer = (props: ElementContentRendererProps) => ReactNode;
+function StickerElementContent({
+ element,
+}: {
+ element: Extract<TimelineElementType, { type: "sticker" }>;
+}) {
+ return (
+ <div className="flex size-full items-center gap-2 pl-2">
+ <Image
+ src={resolveStickerId({
+ stickerId: element.stickerId,
+ options: { width: 20, height: 20 },
+ })}
+ alt={element.name}
+ className="size-4 shrink-0"
+ width={20}
+ height={20}
+ unoptimized
+ />
+ <span className="truncate text-xs text-white">{element.name}</span>
+ </div>
+ );
+}
-export function renderTiledMedia({
+function GraphicElementContent({
element,
- imageUrl,
- track,
}: {
- element: VisualElement;
- imageUrl: string | undefined;
- track: ElementContentProps["track"];
-}): ReactNode {
- if (!imageUrl) {
+ element: Extract<TimelineElementType, { type: "graphic" }>;
+}) {
+ return (
+ <div className="flex size-full items-center gap-2 pl-2">
+ <Image
+ src={buildGraphicPreviewUrl({
+ definitionId: element.definitionId,
+ params: element.params,
+ size: 20,
+ })}
+ alt={element.name}
+ className="size-4 shrink-0"
+ width={20}
+ height={20}
+ unoptimized
+ />
+ <span className="truncate text-xs text-white">{element.name}</span>
+ </div>
+ );
+}
+
+function AudioElementContent({ element }: { element: AudioElement }) {
+ const mediaAssets = useEditor((e) => e.media.getAssets());
+ const mediaAsset =
+ element.sourceType === "upload"
+ ? (mediaAssets.find((asset) => asset.id === element.mediaId) ?? null)
+ : null;
+
+ const audioBuffer =
+ element.sourceType === "library" ? element.buffer : undefined;
+ const audioUrl =
+ element.sourceType === "library" ? element.sourceUrl : mediaAsset?.url;
+ const mediaLabel = mediaAsset?.name ?? element.name;
+
+ if (audioBuffer || audioUrl) {
return (
- <span className="text-foreground/80 truncate text-xs">
- {element.name}
- </span>
+ <div className="relative size-full">
+ <AudioWaveform
+ audioBuffer={audioBuffer}
+ audioUrl={audioUrl}
+ color={ELEMENT_TYPE_CONFIG.audio.waveformColor}
+ />
+ <MediaElementHeader name={mediaLabel} hasFade={false} />
+ </div>
);
}
- const trackHeight = getTrackHeight({ type: track.type });
- const tileWidth = trackHeight * (16 / 9);
-
return (
- <div
- className="absolute inset-0"
- style={{
- backgroundImage: `url(${imageUrl})`,
- backgroundRepeat: "repeat-x",
- backgroundSize: `${tileWidth}px ${trackHeight}px`,
- backgroundPosition: "left center",
- pointerEvents: "none",
- }}
- />
+ <span className="text-foreground/80 truncate text-xs">{element.name}</span>
);
}
function EffectsButton({
element,
- trackId,
- className,
+ track,
}: {
- element: VisualElement;
- trackId: string;
- className?: string;
+ element: VideoElement | ImageElement;
+ track: TimelineTrack;
}) {
- const openClipEffects = usePropertiesStore((state) => state.openClipEffects);
- const { selectElement } = useElementSelection();
-
- if (!element.effects?.length) {
- return null;
- }
+ const editor = useEditor();
+ const setActiveTab = usePropertiesStore((s) => s.setActiveTab);
const handleClick = (event: React.MouseEvent) => {
event.stopPropagation();
- selectElement({ elementId: element.id, trackId });
- openClipEffects({ elementId: element.id, trackId });
+ editor.selection.setSelectedElements({
+ elements: [{ trackId: track.id, elementId: element.id }],
+ });
+ setActiveTab(element.type, "effects");
};
return (
- <Button
- variant="text"
- size="icon"
- className={cn("rounded-sm !size-5 bg-black/50 text-white", className)}
- onClick={handleClick}
+ <button
+ type="button"
+ className="flex shrink-0 justify-center text-white cursor-pointer"
onMouseDown={(event) => event.stopPropagation()}
+ onClick={handleClick}
>
- <HugeiconsIcon icon={MagicWand05Icon} />
- </Button>
+ <HugeiconsIcon icon={MagicWand05Icon} size={12} />
+ </button>
);
}
-const ELEMENT_CONTENT_RENDERERS: Record<
- TimelineElementType["type"],
- ElementContentRenderer
-> = {
- text: ({ element }) => {
- const textElement = element as Extract<
- TimelineElementType,
- { type: "text" }
- >;
- return (
- <div className="flex size-full items-center justify-start pl-2">
- <span className="truncate text-xs text-white">
- {textElement.content}
- </span>
- </div>
- );
- },
- effect: ({ element }) => (
- <div className="flex size-full items-center justify-start gap-1 pl-2">
- <HugeiconsIcon
- icon={MagicWand05Icon}
- className="size-4 shrink-0 text-white"
- />
- <span className="truncate text-xs text-white ml-1">{element.name}</span>
- </div>
- ),
- sticker: ({ element }) => {
- const stickerElement = element as Extract<
- TimelineElementType,
- { type: "sticker" }
- >;
- return (
- <div className="flex size-full items-center gap-2 pl-2">
- <Image
- src={resolveStickerId({
- stickerId: stickerElement.stickerId,
- options: { width: 20, height: 20 },
- })}
- alt={stickerElement.name}
- className="size-5 shrink-0"
- width={20}
- height={20}
- unoptimized
- />
- <span className="truncate text-xs text-white">
- {stickerElement.name}
- </span>
- </div>
- );
- },
- audio: ({ element, mediaAssets }) => {
- const audioElement = element as Extract<
- TimelineElementType,
- { type: "audio" }
- >;
- const audioBuffer =
- audioElement.sourceType === "library" ? audioElement.buffer : undefined;
- const audioUrl =
- audioElement.sourceType === "library"
- ? audioElement.sourceUrl
- : mediaAssets.find((asset) => asset.id === audioElement.mediaId)?.url;
+function TiledMediaContent({
+ element,
+ track,
+}: {
+ element: VideoElement | ImageElement;
+ track: TimelineTrack;
+}) {
+ const mediaAssets = useEditor((e) => e.media.getAssets());
- if (audioBuffer || audioUrl) {
- return (
- <div className="flex size-full items-center gap-2">
- <div className="min-w-0 flex-1">
- <AudioWaveform
- audioBuffer={audioBuffer}
- audioUrl={audioUrl}
- height={24}
- className="w-full"
- />
- </div>
- </div>
- );
- }
+ const mediaAsset = mediaAssets.find((asset) => asset.id === element.mediaId);
+ const imageUrl =
+ element.type === "video"
+ ? mediaAsset?.thumbnailUrl
+ : (mediaAsset?.thumbnailUrl ?? mediaAsset?.url);
+ if (!imageUrl) {
return (
<span className="text-foreground/80 truncate text-xs">
- {audioElement.name}
+ {element.name}
</span>
);
- },
- video: ({ element, track, mediaAssets }) => {
- const videoElement = element as Extract<
- TimelineElementType,
- { type: "video" }
- >;
- const mediaAsset = mediaAssets.find(
- (asset) => asset.id === videoElement.mediaId,
- );
- return renderTiledMedia({
- element: videoElement,
- imageUrl: mediaAsset?.thumbnailUrl,
- track,
- });
- },
- image: ({ element, track, mediaAssets }) => {
- const imageElement = element as Extract<
- TimelineElementType,
- { type: "image" }
- >;
- const mediaAsset = mediaAssets.find(
- (asset) => asset.id === imageElement.mediaId,
- );
- return renderTiledMedia({
- element: imageElement,
- imageUrl: mediaAsset?.url,
- track,
- });
- },
-};
+ }
+
+ const trackHeight = getTrackHeight({ type: track.type });
+ const tileWidth = trackHeight * THUMBNAIL_ASPECT_RATIO;
-function ElementContent({ element, track, isSelected }: ElementContentProps) {
- const editor = useEditor();
- const renderer = ELEMENT_CONTENT_RENDERERS[element.type];
return (
<>
- {renderer({
- element,
- track,
- isSelected,
- mediaAssets: editor.media.getAssets(),
- })}
+ <div
+ className="absolute inset-0"
+ style={{
+ backgroundColor: "var(--muted)",
+ backgroundImage: `url(${imageUrl})`,
+ backgroundRepeat: "repeat-x",
+ backgroundSize: `${tileWidth}px ${trackHeight}px`,
+ backgroundPosition: "left center",
+ pointerEvents: "none",
+ }}
+ />
+ <MediaElementHeader
+ name={mediaAsset?.name}
+ leading={
+ hasElementEffects({ element }) ? (
+ <EffectsButton element={element} track={track} />
+ ) : null
+ }
+ hasFade={true}
+ />
</>
);
}
+function MediaElementHeader({
+ name,
+ leading,
+ hasFade,
+}: {
+ name?: string | null;
+ leading?: ReactNode;
+ hasFade?: boolean;
+}) {
+ if (!name && !leading) {
+ return null;
+ }
+
+ return (
+ <div
+ className={cn(
+ "absolute top-0 left-0 flex h-7 w-full bg-linear-to-b pt-1",
+ hasFade && "from-black/30 to-transparent",
+ )}
+ >
+ {leading && <div className="pl-1">{leading}</div>}
+ {name && (
+ <span className="truncate px-1.5 text-[0.6rem] leading-tight text-white/75">
+ {name}
+ </span>
+ )}
+ </div>
+ );
+}
+
+function ElementContent({ element, track }: ElementContentProps) {
+ switch (element.type) {
+ case "text":
+ return <TextElementContent element={element} />;
+ case "effect":
+ return <EffectElementContent element={element} />;
+ case "sticker":
+ return <StickerElementContent element={element} />;
+ case "graphic":
+ return <GraphicElementContent element={element} />;
+ case "audio":
+ return <AudioElementContent element={element} />;
+ case "video":
+ case "image":
+ return <TiledMediaContent element={element} track={track} />;
+ }
+}
+
function CopyMenuItem() {
return (
<ActionMenuItem
@@ -886,7 +916,7 @@ function ActionMenuItem({
children,
...props
}: Omit<ComponentProps<typeof ContextMenuItem>, "onClick" | "textRight"> & {
- action: TAction;
+ action: TActionWithOptionalArgs;
children: ReactNode;
}) {
return (
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-playhead.tsx b/apps/web/src/components/editor/panels/timeline/timeline-playhead.tsx
index e290259e..1abe65bd 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-playhead.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-playhead.tsx
@@ -8,9 +8,14 @@ import {
} from "@/lib/timeline";
import { useTimelinePlayhead } from "@/hooks/timeline/use-timeline-playhead";
import { useEditor } from "@/hooks/use-editor";
+import {
+ TIMELINE_LAYERS,
+ TIMELINE_SCROLLBAR_SIZE_PX,
+} from "@/constants/timeline-constants";
interface TimelinePlayheadProps {
zoomLevel: number;
+ hasHorizontalScrollbar: boolean;
rulerRef: React.RefObject<HTMLDivElement | null>;
rulerScrollRef: React.RefObject<HTMLDivElement | null>;
tracksScrollRef: React.RefObject<HTMLDivElement | null>;
@@ -21,6 +26,7 @@ interface TimelinePlayheadProps {
export function TimelinePlayhead({
zoomLevel,
+ hasHorizontalScrollbar,
rulerRef,
rulerScrollRef,
tracksScrollRef,
@@ -33,7 +39,7 @@ export function TimelinePlayhead({
const internalPlayheadRef = useRef<HTMLDivElement>(null);
const playheadRef = externalPlayheadRef || internalPlayheadRef;
- const { playheadPosition, handlePlayheadMouseDown } = useTimelinePlayhead({
+ const { handlePlayheadMouseDown } = useTimelinePlayhead({
zoomLevel,
rulerRef,
rulerScrollRef,
@@ -42,16 +48,23 @@ export function TimelinePlayhead({
});
const timelineContainerHeight =
- tracksScrollRef.current?.clientHeight ??
timelineRef.current?.clientHeight ??
+ tracksScrollRef.current?.clientHeight ??
400;
- const totalHeight = Math.max(0, timelineContainerHeight - 4);
+ const totalHeight = Math.max(
+ 0,
+ timelineContainerHeight -
+ (hasHorizontalScrollbar ? TIMELINE_SCROLLBAR_SIZE_PX - 5 : 0),
+ );
+ const currentTime = editor.playback.getCurrentTime();
const centerPosition = timelineTimeToSnappedPixels({
- time: playheadPosition,
+ time: currentTime,
zoomLevel,
});
- const leftPosition = getCenteredLineLeft({ centerPixel: centerPosition });
+ const scrollLeft = tracksScrollRef.current?.scrollLeft ?? 0;
+ const leftPosition =
+ getCenteredLineLeft({ centerPixel: centerPosition }) - scrollLeft;
const handlePlayheadKeyDown = (
event: React.KeyboardEvent<HTMLDivElement>,
@@ -61,10 +74,8 @@ export function TimelinePlayhead({
event.preventDefault();
const step = 1 / Math.max(1, editor.project.getActive().settings.fps);
const direction = event.key === "ArrowRight" ? 1 : -1;
- const nextTime = Math.max(
- 0,
- Math.min(duration, playheadPosition + direction * step),
- );
+ const now = editor.playback.getCurrentTime();
+ const nextTime = Math.max(0, Math.min(duration, now + direction * step));
editor.playback.seek({ time: nextTime });
};
@@ -76,23 +87,24 @@ export function TimelinePlayhead({
aria-label="Timeline playhead"
aria-valuemin={0}
aria-valuemax={duration}
- aria-valuenow={playheadPosition}
+ aria-valuenow={currentTime}
tabIndex={0}
- className="pointer-events-none absolute z-5"
+ className="pointer-events-none absolute"
style={{
left: `${leftPosition}px`,
top: 0,
height: `${totalHeight}px`,
width: `${TIMELINE_INDICATOR_LINE_WIDTH_PX}px`,
+ zIndex: TIMELINE_LAYERS.playhead,
}}
onKeyDown={handlePlayheadKeyDown}
>
- <div className="bg-foreground pointer-events-none absolute left-0 h-full w-0.5" />
+ <div className="bg-primary pointer-events-none absolute left-0 h-full w-0.5" />
<button
type="button"
aria-label="Drag playhead"
- className={`pointer-events-auto absolute top-1 left-1/2 size-3 -translate-x-1/2 transform cursor-col-resize rounded-full border-2 shadow-xs ${isSnappingToPlayhead ? "bg-foreground border-foreground" : "bg-foreground border-foreground/50"}`}
+ className={`pointer-events-auto absolute top-1 left-1/2 size-3 -translate-x-1/2 transform cursor-col-resize rounded-full border-2 shadow-xs ${isSnappingToPlayhead ? "bg-primary border-primary" : "bg-primary border-primary/50"}`}
onMouseDown={handlePlayheadMouseDown}
/>
</div>
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-ruler.tsx b/apps/web/src/components/editor/panels/timeline/timeline-ruler.tsx
index b0261aa2..09562f23 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-ruler.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-ruler.tsx
@@ -1,5 +1,8 @@
import { type JSX, useLayoutEffect, useRef } from "react";
-import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import {
+ TIMELINE_CONSTANTS,
+ TIMELINE_RULER_HEIGHT,
+} from "@/constants/timeline-constants";
import { DEFAULT_FPS } from "@/constants/project-constants";
import { useEditor } from "@/hooks/use-editor";
import { getRulerConfig, shouldShowLabel } from "@/lib/timeline/ruler-utils";
@@ -27,13 +30,12 @@ export function TimelineRuler({
handleRulerTrackingMouseDown,
handleRulerMouseDown,
}: TimelineRulerProps) {
- const editor = useEditor();
- const duration = editor.timeline.getTotalDuration();
+ const duration = useEditor((e) => e.timeline.getTotalDuration());
const pixelsPerSecond = TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;
const visibleDuration = dynamicTimelineWidth / pixelsPerSecond;
const effectiveDuration = Math.max(duration, visibleDuration);
- const project = editor.project.getActive();
- const fps = project?.settings.fps ?? DEFAULT_FPS;
+ const fps =
+ useEditor((e) => e.project.getActiveOrNull()?.settings.fps) ?? DEFAULT_FPS;
const { labelIntervalSeconds, tickIntervalSeconds } = getRulerConfig({
zoomLevel,
fps,
@@ -104,17 +106,25 @@ export function TimelineRuler({
aria-valuemin={0}
aria-valuemax={effectiveDuration}
aria-valuenow={0}
- className="relative h-4 flex-1 overflow-x-visible"
+ className="relative flex-1 overflow-x-visible"
+ style={{ height: TIMELINE_RULER_HEIGHT }}
onWheel={handleWheel}
- onClick={handleTimelineContentClick}
+ onClick={(event) => {
+ // Ruler seek already happens on mousedown via playhead scrubbing.
+ // Forwarding the follow-up click re-enters the selection-clearing path.
+ if (event.target === event.currentTarget) {
+ handleTimelineContentClick(event);
+ }
+ }}
onMouseDown={handleRulerTrackingMouseDown}
onKeyDown={() => {}}
>
<div
role="none"
ref={rulerRef}
- className="relative h-4 cursor-default select-none"
+ className="relative cursor-default select-none"
style={{
+ height: TIMELINE_RULER_HEIGHT,
width: `${dynamicTimelineWidth}px`,
}}
onMouseDown={handleRulerMouseDown}
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-tick.tsx b/apps/web/src/components/editor/panels/timeline/timeline-tick.tsx
index 22cd52cf..29fd513b 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-tick.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-tick.tsx
@@ -22,7 +22,7 @@ export function TimelineTick({
const label = formatRulerLabel({ timeInSeconds: time, fps });
return (
<span
- className="text-muted-foreground/85 absolute bottom-0 select-none text-[10px] leading-none"
+ className="text-muted-foreground/85 absolute top-1 select-none text-[10px] leading-none"
style={{ left: `${leftPosition}px` }}
>
{label}
@@ -32,7 +32,7 @@ export function TimelineTick({
return (
<div
- className="border-muted-foreground/25 absolute bottom-0.5 h-1.5 border-l"
+ className="border-muted-foreground/25 absolute top-1.5 h-1.5 border-l"
style={{ left: `${leftPosition}px` }}
/>
);
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-toolbar.tsx b/apps/web/src/components/editor/panels/timeline/timeline-toolbar.tsx
index 533ea63d..e785d147 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-toolbar.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-toolbar.tsx
@@ -16,8 +16,8 @@ import {
import { Slider } from "@/components/ui/slider";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { sliderToZoom, zoomToSlider } from "@/lib/timeline/zoom-utils";
-import { ScenesView } from "../../scenes-view";
-import { type TAction, invokeAction } from "@/lib/actions";
+import { ScenesView } from "@/components/editor/scenes-view";
+import { type TActionWithOptionalArgs, invokeAction } from "@/lib/actions";
import { cn } from "@/utils/ui";
import { useTimelineStore } from "@/stores/timeline-store";
import { ScrollArea } from "@/components/ui/scroll-area";
@@ -76,15 +76,15 @@ export function TimelineToolbar({
}
function ToolbarLeftSection() {
- const editor = useEditor();
- const currentTime = editor.playback.getCurrentTime();
- const isCurrentlyBookmarked = editor.scenes.isBookmarked({ time: currentTime });
+ const isCurrentlyBookmarked = useEditor((e) =>
+ e.scenes.isBookmarked({ time: e.playback.getCurrentTime() }),
+ );
const handleAction = ({
action,
event,
}: {
- action: TAction;
+ action: TActionWithOptionalArgs;
event: React.MouseEvent;
}) => {
event.stopPropagation();
@@ -149,8 +149,8 @@ function ToolbarLeftSection() {
<Tooltip>
<ToolbarButton
icon={<HugeiconsIcon icon={Bookmark02Icon} />}
- isActive={isCurrentlyBookmarked}
- tooltip={isCurrentlyBookmarked ? "Remove bookmark" : "Add bookmark"}
+ isActive={isCurrentlyBookmarked}
+ tooltip={isCurrentlyBookmarked ? "Remove bookmark" : "Add bookmark"}
onClick={({ event }) =>
handleAction({ action: "toggle-bookmark", event })
}
diff --git a/apps/web/src/components/editor/panels/timeline/timeline-track.tsx b/apps/web/src/components/editor/panels/timeline/timeline-track.tsx
index 81cda7a6..6a9e4dfe 100644
--- a/apps/web/src/components/editor/panels/timeline/timeline-track.tsx
+++ b/apps/web/src/components/editor/panels/timeline/timeline-track.tsx
@@ -2,12 +2,12 @@
import { useElementSelection } from "@/hooks/timeline/element/use-element-selection";
import { TimelineElement } from "./timeline-element";
-import type { TimelineTrack } from "@/types/timeline";
-import type { TimelineElement as TimelineElementType } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
+import type { TimelineElement as TimelineElementType } from "@/lib/timeline";
import type { SnapPoint } from "@/lib/timeline/snap-utils";
-import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import { TIMELINE_CONSTANTS, TIMELINE_LAYERS } from "@/constants/timeline-constants";
import { useEdgeAutoScroll } from "@/hooks/timeline/use-edge-auto-scroll";
-import type { ElementDragState } from "@/types/timeline";
+import type { ElementDragState } from "@/lib/timeline";
import { useEditor } from "@/hooks/use-editor";
interface TimelineTrackContentProps {
@@ -30,7 +30,7 @@ interface TimelineTrackContentProps {
track: TimelineTrack;
}) => void;
onTrackMouseDown?: (event: React.MouseEvent) => void;
- onTrackClick?: (event: React.MouseEvent) => void;
+ onTrackMouseUp?: (event: React.MouseEvent) => void;
shouldIgnoreClick?: () => boolean;
targetElementId?: string | null;
}
@@ -47,14 +47,12 @@ export function TimelineTrackContent({
onElementMouseDown,
onElementClick,
onTrackMouseDown,
- onTrackClick,
+ onTrackMouseUp,
shouldIgnoreClick,
targetElementId = null,
}: TimelineTrackContentProps) {
- const editor = useEditor();
const { isElementSelected } = useElementSelection();
-
- const duration = editor.timeline.getTotalDuration();
+ const duration = useEditor((e) => e.timeline.getTotalDuration());
useEdgeAutoScroll({
isActive: dragState.isDragging,
@@ -65,21 +63,37 @@ export function TimelineTrackContent({
});
return (
- <button
- className="size-full"
- onClick={(event) => {
- if (shouldIgnoreClick?.()) return;
- onTrackClick?.(event);
- }}
- onMouseDown={(event) => {
- event.preventDefault();
- onTrackMouseDown?.(event);
- }}
- type="button"
- >
- <div className="relative h-full min-w-full">
+ <div className="relative size-full">
+ <button
+ type="button"
+ className="absolute inset-0 m-0 size-full appearance-none border-0 bg-transparent p-0"
+ aria-label={`Select ${track.name} track`}
+ onMouseUp={(event) => {
+ if (shouldIgnoreClick?.()) return;
+ onTrackMouseUp?.(event);
+ }}
+ onMouseDown={(event) => {
+ event.preventDefault();
+ onTrackMouseDown?.(event);
+ }}
+ />
+ {/* biome-ignore lint/a11y/noStaticElementInteractions: empty track area is a pointer-only seek surface */}
+ <div
+ className="relative h-full min-w-full"
+ style={{ zIndex: TIMELINE_LAYERS.trackContent }}
+ onMouseUp={(event) => {
+ if (event.target !== event.currentTarget) return;
+ if (shouldIgnoreClick?.()) return;
+ onTrackMouseUp?.(event);
+ }}
+ onMouseDown={(event) => {
+ if (event.target !== event.currentTarget) return;
+ event.preventDefault();
+ onTrackMouseDown?.(event);
+ }}
+ >
{track.elements.length === 0 ? (
- <div className="text-muted-foreground border-muted/30 flex size-full items-center justify-center rounded-sm border-2 border-dashed text-xs" />
+ <div className="text-muted-foreground border-muted/30 pointer-events-none flex size-full items-center justify-center rounded-sm border-2 border-dashed text-xs" />
) : (
track.elements.map((element) => {
const isSelected = isElementSelected({
@@ -109,6 +123,6 @@ export function TimelineTrackContent({
})
)}
</div>
- </button>
+ </div>
);
}
diff --git a/apps/web/src/components/providers/editor-provider.tsx b/apps/web/src/components/providers/editor-provider.tsx
index 746cfd16..35e5dfba 100644
--- a/apps/web/src/components/providers/editor-provider.tsx
+++ b/apps/web/src/components/providers/editor-provider.tsx
@@ -3,13 +3,12 @@
import { useEffect, useState } from "react";
import { useRouter } from "next/navigation";
import { Loader2 } from "lucide-react";
+import { EditorCore } from "@/core";
import { useEditor } from "@/hooks/use-editor";
-import {
- useKeybindingsListener,
- useKeybindingDisabler,
-} from "@/hooks/use-keybindings";
+import { useKeybindingsListener } from "@/hooks/use-keybindings";
+import { useKeybindingsStore } from "@/stores/keybindings-store";
import { useEditorActions } from "@/hooks/actions/use-editor-actions";
-import { prefetchFontAtlas } from "@/lib/fonts/google-fonts";
+import { loadFontAtlas } from "@/lib/fonts/google-fonts";
interface EditorProviderProps {
projectId: string;
@@ -17,23 +16,19 @@ interface EditorProviderProps {
}
export function EditorProvider({ projectId, children }: EditorProviderProps) {
- const editor = useEditor();
+ const activeProject = useEditor((e) => e.project.getActiveOrNull());
const router = useRouter();
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
- const { disableKeybindings, enableKeybindings } = useKeybindingDisabler();
- const activeProject = editor.project.getActiveOrNull();
+ const { setLoadingProject } = useKeybindingsStore();
useEffect(() => {
- if (isLoading) {
- disableKeybindings();
- } else {
- enableKeybindings();
- }
- }, [isLoading, disableKeybindings, enableKeybindings]);
+ setLoadingProject(isLoading);
+ }, [isLoading, setLoadingProject]);
useEffect(() => {
let cancelled = false;
+ const editor = EditorCore.getInstance();
const loadProject = async () => {
try {
@@ -43,7 +38,7 @@ export function EditorProvider({ projectId, children }: EditorProviderProps) {
if (cancelled) return;
setIsLoading(false);
- prefetchFontAtlas();
+ loadFontAtlas();
} catch (err) {
if (cancelled) return;
@@ -76,7 +71,7 @@ export function EditorProvider({ projectId, children }: EditorProviderProps) {
return () => {
cancelled = true;
};
- }, [projectId, editor, router]);
+ }, [projectId, router]);
if (error) {
return (
diff --git a/apps/web/src/components/section.tsx b/apps/web/src/components/section.tsx
new file mode 100644
index 00000000..e3fc96df
--- /dev/null
+++ b/apps/web/src/components/section.tsx
@@ -0,0 +1,257 @@
+import { createContext, useContext, useEffect, useState } from "react";
+import { cn } from "@/utils/ui";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { ArrowDownIcon } from "@hugeicons/core-free-icons";
+import { Label } from "@/components/ui/label";
+import { Button } from "@/components/ui/button";
+
+const sectionExpandedCache = new Map<string, boolean>();
+const mountedSectionKeys = new Set<string>();
+
+interface SectionContext {
+ isOpen: boolean;
+ toggle: () => void;
+ collapsible: boolean;
+}
+
+const SectionCtx = createContext<SectionContext | null>(null);
+
+function useSectionContext() {
+ return useContext(SectionCtx);
+}
+
+interface SectionProps {
+ children: React.ReactNode;
+ collapsible?: boolean;
+ defaultOpen?: boolean;
+ sectionKey?: string;
+ className?: string;
+ showTopBorder?: boolean;
+ showBottomBorder?: boolean;
+}
+
+export function Section({
+ children,
+ collapsible = false,
+ defaultOpen = true,
+ sectionKey,
+ className,
+ showTopBorder = false,
+ showBottomBorder = true,
+}: SectionProps) {
+ const cached = sectionKey ? sectionExpandedCache.get(sectionKey) : undefined;
+ const [isOpen, setIsOpen] = useState(cached ?? defaultOpen);
+
+ useEffect(() => {
+ if (!sectionKey) return;
+ if (
+ process.env.NODE_ENV !== "production" &&
+ mountedSectionKeys.has(sectionKey)
+ ) {
+ console.error(
+ `[Section] duplicate sectionKey mounted simultaneously: "${sectionKey}"`,
+ );
+ }
+ mountedSectionKeys.add(sectionKey);
+ return () => {
+ mountedSectionKeys.delete(sectionKey);
+ };
+ }, [sectionKey]);
+
+ const toggle = () => {
+ const next = !isOpen;
+ setIsOpen(next);
+ if (sectionKey) sectionExpandedCache.set(sectionKey, next);
+ };
+
+ return (
+ <SectionCtx.Provider value={{ isOpen, toggle, collapsible }}>
+ <div
+ className={cn(
+ "flex flex-col",
+ showTopBorder && "border-t first:border-t-0",
+ showBottomBorder && "border-b",
+ className,
+ )}
+ >
+ {children}
+ </div>
+ </SectionCtx.Provider>
+ );
+}
+
+interface SectionHeaderProps {
+ children?: React.ReactNode;
+ trailing?: React.ReactNode;
+ leading?: React.ReactNode;
+ actions?: React.ReactNode;
+ onClick?: () => void;
+ className?: string;
+}
+
+export function SectionHeader({
+ children,
+ trailing,
+ leading,
+ actions,
+ onClick,
+ className,
+}: SectionHeaderProps) {
+ const ctx = useSectionContext();
+ const isCollapsible = ctx?.collapsible ?? false;
+ const isOpen = ctx?.isOpen ?? true;
+ const isInteractive = isCollapsible || !!onClick;
+ const handleClick = isCollapsible ? ctx?.toggle : onClick;
+
+ const chevronIcon = (
+ <HugeiconsIcon
+ icon={ArrowDownIcon}
+ className={cn(
+ "size-4 shrink-0 transition-transform duration-200 ease-out",
+ isOpen
+ ? "rotate-0 text-foreground"
+ : "-rotate-90 text-muted-foreground",
+ )}
+ />
+ );
+
+ const trailingArea =
+ trailing || isCollapsible ? (
+ <div className="flex items-center">
+ {trailing}
+ {isCollapsible && (
+ <Button
+ variant="ghost"
+ size="icon"
+ aria-label={isOpen ? "Collapse section" : "Expand section"}
+ onClick={handleClick}
+ >
+ {chevronIcon}
+ </Button>
+ )}
+ </div>
+ ) : null;
+
+ const innerContent = isInteractive ? (
+ <button
+ type="button"
+ className="min-w-0 flex-1 flex items-center gap-2 h-full cursor-pointer text-left"
+ onClick={handleClick}
+ >
+ {leading}
+ <div className="min-w-0 flex-1 flex items-center">{children}</div>
+ </button>
+ ) : (
+ <>
+ {leading}
+ <div className="min-w-0 flex-1 flex items-center">{children}</div>
+ </>
+ );
+
+ return (
+ <div
+ className={cn("flex h-11 w-full items-center gap-2 px-3.5", className)}
+ >
+ {innerContent}
+ {trailingArea}
+ {actions}
+ </div>
+ );
+}
+
+export function SectionTitle({
+ children,
+ className,
+ onClick,
+}: {
+ children: React.ReactNode;
+ className?: string;
+ onClick?: () => void;
+}) {
+ const ctx = useSectionContext();
+ const isCollapsible = ctx?.collapsible ?? false;
+ const isOpen = ctx?.isOpen ?? true;
+
+ const titleClass = cn(
+ "text-sm font-medium",
+ isCollapsible && isOpen ? "text-foreground" : "text-muted-foreground",
+ className,
+ );
+
+ if (onClick) {
+ return (
+ <button
+ type="button"
+ className={cn("cursor-pointer", titleClass)}
+ onClick={onClick}
+ >
+ {children}
+ </button>
+ );
+ }
+
+ return <span className={titleClass}>{children}</span>;
+}
+
+export function SectionFields({
+ children,
+ className,
+}: {
+ children: React.ReactNode;
+ className?: string;
+}) {
+ return (
+ <div className={cn("flex flex-col gap-3.5", className)}>{children}</div>
+ );
+}
+
+export function SectionField({
+ label,
+ beforeLabel,
+ children,
+ className,
+}: {
+ label: string;
+ beforeLabel?: React.ReactNode;
+ children: React.ReactNode;
+ className?: string;
+}) {
+ return (
+ <div className={cn("flex flex-col gap-2", className)}>
+ <div className="flex h-4 items-center gap-1.5">
+ {beforeLabel}
+ <Label>{label}</Label>
+ </div>
+ {children}
+ </div>
+ );
+}
+
+export function SectionContent({
+ children,
+ className,
+}: {
+ children: React.ReactNode;
+ className?: string;
+}) {
+ const ctx = useSectionContext();
+ const isCollapsible = ctx?.collapsible ?? false;
+ const isOpen = ctx?.isOpen ?? true;
+
+ const content = <div className={cn("p-4 pt-0", className)}>{children}</div>;
+
+ if (isCollapsible) {
+ return (
+ <div
+ className={cn(
+ "grid transition-[grid-template-rows] duration-100 ease-out",
+ isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]",
+ )}
+ >
+ <div className="overflow-hidden">{content}</div>
+ </div>
+ );
+ }
+
+ return content;
+}
diff --git a/apps/web/src/components/ui/button.tsx b/apps/web/src/components/ui/button.tsx
index aa52e228..3dff9417 100644
--- a/apps/web/src/components/ui/button.tsx
+++ b/apps/web/src/components/ui/button.tsx
@@ -23,7 +23,7 @@ const buttonVariants = cva(
},
size: {
default: "h-9 px-4 py-2",
- sm: "h-7.5 p-1 px-2.5 text-sm rounded-sm",
+ sm: "h-7 p-1 px-2.5 text-sm rounded-sm",
lg: "h-10 p-5 px-6",
icon: "size-7 rounded-sm",
text: "p-0",
diff --git a/apps/web/src/components/ui/color-picker.tsx b/apps/web/src/components/ui/color-picker.tsx
index fbf9bbd7..6d911a75 100644
--- a/apps/web/src/components/ui/color-picker.tsx
+++ b/apps/web/src/components/ui/color-picker.tsx
@@ -270,6 +270,7 @@ const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(
backgroundColor: "#fff",
};
+
return (
<Popover>
<div
@@ -285,10 +286,10 @@ const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(
className="size-4.5 cursor-pointer border rounded-sm hover:ring-1 hover:ring-foreground/20 overflow-hidden relative"
type="button"
>
- <span
- className="absolute inset-0"
- style={checkerboardStyle}
- />
+ <span
+ className="absolute inset-0 dark:invert"
+ style={checkerboardStyle}
+ />
<span
className="absolute inset-0"
style={{ backgroundColor: `#${value}` }}
@@ -298,7 +299,7 @@ const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(
<div className="flex flex-1 items-center">
<Input
className={cn(
- "!border-0 bg-transparent p-0 !ring-0 !ring-offset-0",
+ "border-0! bg-transparent p-0 ring-0! ring-offset-0!",
colorFormat === "hex" && "uppercase",
)}
size="sm"
@@ -387,10 +388,10 @@ const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(
<button
ref={opacityRef}
className="relative h-4 w-full overflow-hidden rounded-lg appearance-none border-0 p-0"
- style={checkerboardStyle}
type="button"
onMouseDown={handleOpacityMouseDown}
>
+ <div className="absolute inset-0 dark:invert" style={checkerboardStyle} />
<div
className="absolute inset-0 rounded-lg"
style={{
diff --git a/apps/web/src/components/ui/context-menu.tsx b/apps/web/src/components/ui/context-menu.tsx
index d8791bdf..ec02de6b 100644
--- a/apps/web/src/components/ui/context-menu.tsx
+++ b/apps/web/src/components/ui/context-menu.tsx
@@ -10,8 +10,20 @@ import {
ArrowRightIcon,
CircleIcon,
} from "@hugeicons/core-free-icons";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const ContextMenu = ContextMenuPrimitive.Root;
+function ContextMenu({
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "context-menu",
+ onOpenChange,
+ });
+ return (
+ <ContextMenuPrimitive.Root onOpenChange={handleOpenChange} {...props} />
+ );
+}
const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
diff --git a/apps/web/src/components/ui/dialog.tsx b/apps/web/src/components/ui/dialog.tsx
index d124a2e9..f5045f95 100644
--- a/apps/web/src/components/ui/dialog.tsx
+++ b/apps/web/src/components/ui/dialog.tsx
@@ -4,8 +4,22 @@ import * as React from "react";
import { Dialog as DialogPrimitive } from "radix-ui";
import { X } from "lucide-react";
import { cn } from "@/utils/ui";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const Dialog = DialogPrimitive.Root;
+function Dialog({
+ open,
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof DialogPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "dialog",
+ open,
+ onOpenChange,
+ });
+ return (
+ <DialogPrimitive.Root open={open} onOpenChange={handleOpenChange} {...props} />
+ );
+}
const DialogTrigger = DialogPrimitive.Trigger;
diff --git a/apps/web/src/components/ui/dropdown-menu.tsx b/apps/web/src/components/ui/dropdown-menu.tsx
index 2d6541b8..91913e25 100644
--- a/apps/web/src/components/ui/dropdown-menu.tsx
+++ b/apps/web/src/components/ui/dropdown-menu.tsx
@@ -4,10 +4,27 @@ import * as React from "react";
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
import { Check, ChevronRight, Circle } from "lucide-react";
import { cva, type VariantProps } from "class-variance-authority";
-
import { cn } from "@/utils/ui";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const DropdownMenu = DropdownMenuPrimitive.Root;
+function DropdownMenu({
+ open,
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "dropdown-menu",
+ open,
+ onOpenChange,
+ });
+ return (
+ <DropdownMenuPrimitive.Root
+ open={open}
+ onOpenChange={handleOpenChange}
+ {...props}
+ />
+ );
+}
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
@@ -118,7 +135,7 @@ const DropdownMenuItem = React.forwardRef<
ref,
) => {
const iconSlot = (
- <span className="hidden size-4 shrink-0 items-center justify-center group-has-[[data-has-icon]]/menu:flex">
+ <span className="hidden size-4 shrink-0 items-center justify-center group-has-data-has-icon/menu:flex">
{icon}
</span>
);
diff --git a/apps/web/src/components/ui/font-picker.tsx b/apps/web/src/components/ui/font-picker.tsx
index 09ba0a9a..77d8ab7f 100644
--- a/apps/web/src/components/ui/font-picker.tsx
+++ b/apps/web/src/components/ui/font-picker.tsx
@@ -1,13 +1,6 @@
"use client";
-import {
- useState,
- useMemo,
- useRef,
- useEffect,
- useCallback,
- type CSSProperties,
-} from "react";
+import { useState, useMemo, useRef, useEffect, useCallback, type CSSProperties } from "react";
import { List, type RowComponentProps } from "react-window";
import {
Popover,
@@ -16,28 +9,24 @@ import {
} from "@/components/ui/popover";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";
-import {
- getCachedFontAtlas,
- loadFullFont,
- prefetchFontAtlas,
- clearFontAtlasCache,
-} from "@/lib/fonts/google-fonts";
-import type { FontAtlas, FontAtlasEntry } from "@/types/fonts";
+import { loadFullFont } from "@/lib/fonts/google-fonts";
+import { SYSTEM_FONTS } from "@/constants/font-constants";
+import type { FontAtlas, FontAtlasEntry } from "@/lib/fonts/types";
+import { useFontAtlas } from "@/hooks/use-font-atlas";
import { cn } from "@/utils/ui";
-import { ChevronDown, Search, Upload } from "lucide-react";
+import { ChevronDown, Search } from "lucide-react";
import { HugeiconsIcon } from "@hugeicons/react";
import { TextIcon } from "@hugeicons/core-free-icons";
const FONT_TABS = [
{ key: "all", label: "All fonts" },
- { key: "favorites", label: "Favorites" },
{ key: "my-fonts", label: "My fonts" },
+ { key: "favorites", label: "Favorites" },
] as const;
type FontTab = (typeof FONT_TABS)[number]["key"];
const ROW_HEIGHT = 40;
-const SPRITE_ROW_HEIGHT = 40;
const PREVIEW_SCALE = 0.8;
const LIST_WIDTH = 288;
const MAX_LIST_HEIGHT = 288;
@@ -57,18 +46,8 @@ export function FontPicker({
const [open, setOpen] = useState(false);
const [search, setSearch] = useState("");
const [activeTab, setActiveTab] = useState<FontTab>("all");
- const [atlas, setAtlas] = useState<FontAtlas | null>(() =>
- getCachedFontAtlas(),
- );
- const [status, setStatus] = useState<"idle" | "loading" | "error">(() =>
- getCachedFontAtlas() ? "idle" : "loading",
- );
const searchInputRef = useRef<HTMLInputElement>(null);
-
- const fontNames = useMemo(() => {
- if (!atlas) return [];
- return Object.keys(atlas.fonts).sort();
- }, [atlas]);
+ const { atlas, status, fontNames, retry: handleRetry } = useFontAtlas({ open });
const filteredFonts = useMemo(() => {
if (!search) return fontNames;
@@ -83,32 +62,19 @@ export function FontPicker({
const handleSelect = useCallback(
async ({ family }: { family: string }) => {
- try {
- await loadFullFont({ family });
- onValueChange?.(family);
- } catch {
- onValueChange?.(family);
+ if (!SYSTEM_FONTS.has(family)) {
+ try {
+ await loadFullFont({ family });
+ } catch {
+ // ignore load failure, font will fall back to system default
+ }
}
+ onValueChange?.(family);
setOpen(false);
},
[onValueChange],
);
- // Load atlas on first open if cache is empty (fallback when prefetch hasn't completed)
- useEffect(() => {
- if (!open || atlas) return;
-
- setStatus("loading");
- prefetchFontAtlas().then((data) => {
- if (data) {
- setAtlas(data);
- setStatus("idle");
- } else {
- setStatus("error");
- }
- });
- }, [open, atlas]);
-
useEffect(() => {
if (!open) {
setSearch("");
@@ -116,18 +82,8 @@ export function FontPicker({
}
}, [open]);
- const handleRetry = useCallback(() => {
- clearFontAtlasCache();
- setStatus("loading");
- prefetchFontAtlas().then((data) => {
- if (data) {
- setAtlas(data);
- setStatus("idle");
- } else {
- setStatus("error");
- }
- });
- }, []);
+ const activeTabLabel =
+ FONT_TABS.find((t) => t.key === activeTab)?.label.toLowerCase() ?? "";
return (
<Popover open={open} onOpenChange={setOpen}>
@@ -164,11 +120,11 @@ export function FontPicker({
<Search className="absolute left-3 top-1/2 -translate-y-1/2 size-3.5 shrink-0 opacity-50" />
<Input
ref={searchInputRef}
- placeholder="Search fonts..."
+ placeholder={`Search ${activeTabLabel}...`}
value={search}
onChange={(event) => setSearch(event.target.value)}
size="xs"
- className="w-full pl-5 bg-transparent !border-none !shadow-none"
+ className="w-full pl-5 bg-transparent border-none! shadow-none!"
/>
</div>
<div className="flex border-b px-3">
@@ -225,20 +181,6 @@ export function FontPicker({
style={{ height: listHeight, width: LIST_WIDTH }}
/>
)}
- <div className="border-t p-1">
- <Button
- variant="ghost"
- size="sm"
- className="w-full justify-start text-muted-foreground h-8 font-normal"
- onClick={() => {
- // TODO: Implement local font loading
- console.log("Load local fonts clicked");
- }}
- >
- <Upload className="!size-3.5" />
- Load local fonts
- </Button>
- </div>
</PopoverContent>
</Popover>
);
@@ -250,7 +192,7 @@ function FontSpritePreview({ entry }: { entry: FontAtlasEntry }) {
className="shrink-0"
style={{
width: entry.w,
- height: SPRITE_ROW_HEIGHT,
+ height: ROW_HEIGHT,
backgroundColor: "currentColor",
WebkitMaskImage: `url(/fonts/font-chunk-${entry.ch}.avif)`,
WebkitMaskPosition: `-${entry.x}px -${entry.y}px`,
@@ -283,6 +225,7 @@ function FontRow({
const fontName = filteredFonts[index];
const entry = atlas.fonts[fontName];
const isSelected = fontName === selectedFont;
+ const isSystemFont = SYSTEM_FONTS.has(fontName);
return (
<button
@@ -302,7 +245,13 @@ function FontRow({
aria-label={fontName}
>
<div className="min-w-0 overflow-hidden">
- <FontSpritePreview entry={entry} />
+ {isSystemFont ? (
+ <span className="text-xl text-foreground/85" style={{ fontFamily: fontName }}>
+ {fontName}
+ </span>
+ ) : (
+ <FontSpritePreview entry={entry} />
+ )}
</div>
</button>
);
diff --git a/apps/web/src/components/ui/input-with-back.tsx b/apps/web/src/components/ui/input-with-back.tsx
deleted file mode 100644
index 1c22fd2e..00000000
--- a/apps/web/src/components/ui/input-with-back.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client";
-
-import { Button } from "@/components/ui/button";
-import { Input } from "@/components/ui/input";
-import { ArrowLeft, Search } from "lucide-react";
-import { motion } from "motion/react";
-import { useState, useEffect } from "react";
-
-interface InputWithBackProps {
- isExpanded: boolean;
- setIsExpanded: (isExpanded: boolean) => void;
- placeholder?: string;
- value?: string;
- onChange?: (value: string) => void;
- disableAnimation?: boolean;
-}
-
-export function InputWithBack({
- isExpanded,
- setIsExpanded,
- placeholder = "Search anything",
- value,
- onChange,
- disableAnimation = false,
-}: InputWithBackProps) {
- const [containerRef, setContainerRef] = useState<HTMLDivElement | null>(null);
- const [buttonOffset, setButtonOffset] = useState(-60);
-
- const smoothTransition = {
- duration: disableAnimation ? 0 : 0.35,
- ease: [0.25, 0.1, 0.25, 1] as const,
- };
-
- useEffect(() => {
- if (containerRef) {
- const rect = containerRef.getBoundingClientRect();
- setButtonOffset(-rect.left - 48);
- }
- }, [containerRef]);
-
- return (
- <div ref={setContainerRef} className="relative w-full">
- <motion.div
- className="absolute top-1/2 left-0 z-10 -translate-y-1/2 cursor-pointer hover:opacity-75"
- initial={{
- x: isExpanded ? 0 : buttonOffset,
- opacity: isExpanded ? 1 : 0.5,
- }}
- animate={{
- x: isExpanded ? 0 : buttonOffset,
- opacity: isExpanded ? 1 : 0.5,
- }}
- transition={smoothTransition}
- onClick={() => setIsExpanded(!isExpanded)}
- >
- <Button variant="outline" className="bg-accent !size-9 rounded-full">
- <ArrowLeft />
- </Button>
- </motion.div>
- <div
- className="relative flex-1"
- style={{ marginLeft: "0px", paddingLeft: "0px" }}
- >
- <motion.div
- className="relative"
- initial={{
- marginLeft: isExpanded ? 50 : 0,
- }}
- animate={{
- marginLeft: isExpanded ? 50 : 0,
- }}
- transition={smoothTransition}
- >
- <Search className="text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2" />
- <Input
- placeholder={placeholder}
- className="bg-accent w-full pl-9"
- value={value}
- onChange={(e) => onChange?.(e.target.value)}
- />
- </motion.div>
- </div>
- </div>
- );
-}
diff --git a/apps/web/src/components/ui/input.tsx b/apps/web/src/components/ui/input.tsx
index 762cc675..1dce2f24 100644
--- a/apps/web/src/components/ui/input.tsx
+++ b/apps/web/src/components/ui/input.tsx
@@ -8,18 +8,19 @@ import { forwardRef, type ComponentProps } from "react";
import { useState } from "react";
const inputVariants = cva(
- "file:text-foreground placeholder:text-muted-foreground border-border bg-input flex w-full min-w-0 rounded-md border shadow-xs outline-none file:inline-flex file:border-0 file:bg-transparent file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:ring-0 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ "file:text-foreground placeholder:text-muted-foreground border-border bg-input flex w-full min-w-0 rounded-md border shadow-xs outline-none file:inline-flex file:border-0 file:bg-transparent file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-visible:ring-offset-0 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
{
variants: {
variant: {
- default: "selection:bg-primary selection:text-primary-foreground",
+ default: "selection:bg-primary selection:text-primary-foreground focus-visible:border-primary/50 focus-visible:ring-2 focus-visible:ring-primary/20",
+ outline: "bg-background",
destructive:
"selection:bg-destructive selection:text-destructive-foreground focus-visible:border-destructive focus-visible:ring-destructive/10",
},
size: {
default: "h-9 px-3 py-1 text-base file:h-7 file:text-sm md:text-sm",
xs: "h-7 px-3 text-xs file:h-6 file:text-xs",
- sm: "h-8 px-3 text-sm file:h-6 file:text-xs",
+ sm: "h-7 px-3 text-sm file:h-6 file:text-xs",
lg: "h-10 px-4 text-base file:h-8 file:text-sm md:text-sm",
},
},
diff --git a/apps/web/src/components/ui/number-field.tsx b/apps/web/src/components/ui/number-field.tsx
index 48297dc0..18d71591 100644
--- a/apps/web/src/components/ui/number-field.tsx
+++ b/apps/web/src/components/ui/number-field.tsx
@@ -1,12 +1,15 @@
"use client";
import { cn } from "@/utils/ui";
-import { useRef, useState, type ComponentProps } from "react";
+import { clamp } from "@/utils/math";
+import { useRef, useState, useLayoutEffect, type ComponentProps } from "react";
import { useFocusLock } from "@/hooks/use-focus-lock";
import { Button } from "@/components/ui/button";
import { HugeiconsIcon } from "@hugeicons/react";
import { ArrowTurnBackwardIcon } from "@hugeicons/core-free-icons";
+const SUFFIX_GAP_PX = 6;
+
const DRAG_SENSITIVITIES = {
default: 1,
slow: 0.5,
@@ -14,10 +17,94 @@ const DRAG_SENSITIVITIES = {
type DragSensitivity = "default" | "slow";
+type ScrubRange = {
+ from: number;
+ to: number;
+ pixelsPerUnit: number;
+};
+
+type ScrubClamp = {
+ min?: number;
+ max?: number;
+};
+
+function clampScrubValue({
+ value,
+ min,
+ max,
+}: {
+ value: number;
+ min?: number;
+ max?: number;
+}): number {
+ if (min != null && max != null) return clamp({ value, min, max });
+ if (min != null) return Math.max(min, value);
+ if (max != null) return Math.min(max, value);
+ return value;
+}
+
+function getActiveRange({
+ value,
+ direction,
+ ranges,
+}: {
+ value: number;
+ direction: number;
+ ranges: readonly ScrubRange[];
+}): ScrubRange | undefined {
+ return ranges.find((range) =>
+ direction > 0
+ ? value >= range.from && value < range.to
+ : value > range.from && value <= range.to,
+ );
+}
+
+function scrubAcrossRanges({
+ startValue,
+ pixelDelta,
+ ranges,
+ min,
+ max,
+}: {
+ startValue: number;
+ pixelDelta: number;
+ ranges: readonly ScrubRange[];
+ min?: number;
+ max?: number;
+}): number {
+ let currentValue = clampScrubValue({ value: startValue, min, max });
+ let remainingPixels = pixelDelta;
+
+ while (remainingPixels !== 0) {
+ const direction = Math.sign(remainingPixels);
+
+ const range = getActiveRange({ value: currentValue, direction, ranges });
+ if (!range) break;
+
+ const boundary = direction > 0 ? range.to : range.from;
+ const pixelsToBoundary =
+ Math.abs(boundary - currentValue) * range.pixelsPerUnit;
+
+ if (Math.abs(remainingPixels) <= pixelsToBoundary) {
+ currentValue += remainingPixels / range.pixelsPerUnit;
+ break;
+ }
+
+ currentValue = boundary;
+ remainingPixels -= direction * pixelsToBoundary;
+ }
+
+ return clampScrubValue({ value: currentValue, min, max });
+}
+
interface NumberFieldProps
extends Omit<ComponentProps<"input">, "size" | "type"> {
icon?: React.ReactNode;
+ suffix?: string;
+ suffixClassName?: string;
dragSensitivity?: DragSensitivity;
+ scrubRanges?: readonly ScrubRange[];
+ scrubClamp?: ScrubClamp;
onScrub?: (value: number) => void;
onScrubEnd?: () => void;
allowExpressions?: boolean;
@@ -28,8 +115,12 @@ interface NumberFieldProps
function NumberField({
className,
icon,
+ suffix,
+ suffixClassName,
disabled,
dragSensitivity = "default",
+ scrubRanges,
+ scrubClamp,
onScrub,
onScrubEnd,
value,
@@ -45,9 +136,18 @@ function NumberField({
}: NumberFieldProps & { ref?: React.Ref<HTMLInputElement> }) {
const iconRef = useRef<HTMLSpanElement>(null);
const inputRef = useRef<HTMLInputElement>(null);
+ const ghostRef = useRef<HTMLSpanElement>(null);
const startValueRef = useRef(0);
const cumulativeDeltaRef = useRef(0);
const [isInputFocused, setIsInputFocused] = useState(false);
+ const [suffixLeft, setSuffixLeft] = useState(0);
+
+ useLayoutEffect(() => {
+ if (!suffix || !ghostRef.current || !inputRef.current) return;
+ const paddingLeft =
+ parseFloat(getComputedStyle(inputRef.current).paddingLeft) || 0;
+ setSuffixLeft(paddingLeft + ghostRef.current.offsetWidth);
+ }, [value, suffix]);
const { containerRef: wrapperRef } = useFocusLock<HTMLDivElement>({
isActive: isInputFocused,
@@ -71,12 +171,16 @@ function NumberField({
return;
}
cumulativeDeltaRef.current += moveEvent.movementX;
- const sensitivity =
- typeof dragSensitivity === "number"
- ? dragSensitivity
- : DRAG_SENSITIVITIES[dragSensitivity];
- const newValue =
- startValueRef.current + cumulativeDeltaRef.current * sensitivity;
+ const newValue = scrubRanges
+ ? scrubAcrossRanges({
+ startValue: startValueRef.current,
+ pixelDelta: cumulativeDeltaRef.current,
+ ranges: scrubRanges,
+ min: scrubClamp?.min,
+ max: scrubClamp?.max,
+ })
+ : startValueRef.current +
+ cumulativeDeltaRef.current * DRAG_SENSITIVITIES[dragSensitivity];
onScrub(newValue);
};
@@ -93,11 +197,48 @@ function NumberField({
const canScrub = Boolean(icon && onScrub);
+ const inputNode = (
+ <input
+ type={allowExpressions ? "text" : "number"}
+ inputMode={allowExpressions ? "decimal" : undefined}
+ ref={inputRef}
+ disabled={disabled}
+ value={value}
+ className="text-sm leading-none bg-transparent outline-none min-w-0 flex-1 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
+ onMouseDown={(event) => {
+ const inputElement = event.currentTarget;
+ const shouldPreventNativeCaretPlacement =
+ event.button === 0 && document.activeElement !== inputElement;
+ if (shouldPreventNativeCaretPlacement) {
+ event.preventDefault();
+ inputElement.focus();
+ inputElement.select();
+ }
+ onMouseDown?.(event);
+ }}
+ onFocus={(event) => {
+ setIsInputFocused(true);
+ event.currentTarget.select();
+ onFocus?.(event);
+ }}
+ onKeyDown={(event) => {
+ const shouldBlurInput = event.key === "Enter" || event.key === "Escape";
+ if (shouldBlurInput) event.currentTarget.blur();
+ onKeyDown?.(event);
+ }}
+ onBlur={(event) => {
+ setIsInputFocused(false);
+ onBlur?.(event);
+ }}
+ {...props}
+ />
+ );
+
return (
<div
ref={wrapperRef}
className={cn(
- "border-border bg-accent flex h-7 w-full min-w-0 items-center rounded-md border text-sm outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-within:border-primary focus-within:ring-0 focus-within:ring-primary/10 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
+ "border-border bg-accent flex h-7 w-full min-w-0 items-center rounded-md border text-sm outline-none cursor-text disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 focus-within:border-primary focus-within:ring-0 focus-within:ring-primary/10 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
disabled && "pointer-events-none cursor-not-allowed opacity-50",
className,
)}
@@ -106,53 +247,45 @@ function NumberField({
<span
ref={iconRef}
className={cn(
- "text-muted-foreground [&_svg]:!size-3.5 shrink-0 select-none pl-2.5 text-sm leading-none",
+ "text-muted-foreground [&_svg]:size-3.5! shrink-0 select-none pl-2.5 text-sm leading-none",
canScrub && "cursor-ew-resize",
)}
+ onMouseDown={canScrub ? (event) => event.preventDefault() : undefined}
onPointerDown={canScrub ? handleIconPointerDown : undefined}
>
{icon}
</span>
)}
- <input
- type={allowExpressions ? "text" : "number"}
- inputMode={allowExpressions ? "decimal" : undefined}
- ref={inputRef}
- disabled={disabled}
- value={value}
+ <span
className={cn(
- "min-w-0 flex-1 text-sm leading-none bg-transparent outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
+ "relative flex flex-1 min-w-0 items-center",
icon ? "px-1.5" : "pl-2.5",
onReset ? "pr-0" : "pr-2.5",
)}
- onMouseDown={(event) => {
- const inputElement = event.currentTarget;
- const shouldPreventNativeCaretPlacement =
- event.button === 0 && document.activeElement !== inputElement;
- if (shouldPreventNativeCaretPlacement) {
- event.preventDefault();
- inputElement.focus();
- inputElement.select();
- }
- onMouseDown?.(event);
- }}
- onFocus={(event) => {
- setIsInputFocused(true);
- event.currentTarget.select();
- onFocus?.(event);
- }}
- onKeyDown={(event) => {
- const shouldBlurInput =
- event.key === "Enter" || event.key === "Escape";
- if (shouldBlurInput) event.currentTarget.blur();
- onKeyDown?.(event);
- }}
- onBlur={(event) => {
- setIsInputFocused(false);
- onBlur?.(event);
- }}
- {...props}
- />
+ >
+ {inputNode}
+ {suffix && (
+ <>
+ {/* Ghost mirrors value text to measure width for suffix positioning */}
+ <span
+ ref={ghostRef}
+ className="invisible absolute text-sm leading-none whitespace-pre pointer-events-none"
+ aria-hidden="true"
+ >
+ {value}
+ </span>
+ <span
+ className={cn(
+ "absolute top-1/2 -translate-y-1/2 select-none pointer-events-none text-sm leading-none",
+ suffixClassName,
+ )}
+ style={{ left: suffixLeft + SUFFIX_GAP_PX }}
+ >
+ {suffix}
+ </span>
+ </>
+ )}
+ </span>
{onReset && !isDefault && (
<div className="shrink-0 pr-2 flex items-center">
<Button
@@ -161,7 +294,7 @@ function NumberField({
aria-label="Reset to default"
onClick={onReset}
>
- <HugeiconsIcon icon={ArrowTurnBackwardIcon} className="!size-3.5" />
+ <HugeiconsIcon icon={ArrowTurnBackwardIcon} className="size-3.5!" />
</Button>
</div>
)}
diff --git a/apps/web/src/components/ui/popover.tsx b/apps/web/src/components/ui/popover.tsx
index 8fd511a3..cf480c8c 100644
--- a/apps/web/src/components/ui/popover.tsx
+++ b/apps/web/src/components/ui/popover.tsx
@@ -3,8 +3,26 @@
import * as React from "react";
import { Popover as PopoverPrimitive } from "radix-ui";
import { cn } from "@/utils/ui";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const Popover = PopoverPrimitive.Root;
+function Popover({
+ open,
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof PopoverPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "popover",
+ open,
+ onOpenChange,
+ });
+ return (
+ <PopoverPrimitive.Root
+ open={open}
+ onOpenChange={handleOpenChange}
+ {...props}
+ />
+ );
+}
const PopoverTrigger = PopoverPrimitive.Trigger;
diff --git a/apps/web/src/components/ui/select.tsx b/apps/web/src/components/ui/select.tsx
index 1b57ea4d..b7092b87 100644
--- a/apps/web/src/components/ui/select.tsx
+++ b/apps/web/src/components/ui/select.tsx
@@ -7,8 +7,22 @@ import { ArrowUpIcon, ArrowDownIcon } from "@hugeicons/core-free-icons";
import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/utils/ui";
import { HugeiconsIcon } from "@hugeicons/react";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const Select = SelectPrimitive.Root;
+function Select({
+ open,
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof SelectPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "select",
+ open,
+ onOpenChange,
+ });
+ return (
+ <SelectPrimitive.Root open={open} onOpenChange={handleOpenChange} {...props} />
+ );
+}
const SelectGroup = SelectPrimitive.Group;
diff --git a/apps/web/src/components/ui/sheet.tsx b/apps/web/src/components/ui/sheet.tsx
index 3155787d..d56cd0ac 100644
--- a/apps/web/src/components/ui/sheet.tsx
+++ b/apps/web/src/components/ui/sheet.tsx
@@ -4,10 +4,23 @@ import * as React from "react";
import { Dialog as SheetPrimitive } from "radix-ui";
import { cva, type VariantProps } from "class-variance-authority";
import { X } from "lucide-react";
-
import { cn } from "@/utils/ui";
+import { useOverlayOpenChange } from "./use-overlay-open-change";
-const Sheet = SheetPrimitive.Root;
+function Sheet({
+ open,
+ onOpenChange,
+ ...props
+}: React.ComponentProps<typeof SheetPrimitive.Root>) {
+ const handleOpenChange = useOverlayOpenChange({
+ source: "sheet",
+ open,
+ onOpenChange,
+ });
+ return (
+ <SheetPrimitive.Root open={open} onOpenChange={handleOpenChange} {...props} />
+ );
+}
const SheetTrigger = SheetPrimitive.Trigger;
diff --git a/apps/web/src/components/ui/sonner.tsx b/apps/web/src/components/ui/sonner.tsx
index 4bae2fad..f0c8197a 100644
--- a/apps/web/src/components/ui/sonner.tsx
+++ b/apps/web/src/components/ui/sonner.tsx
@@ -12,7 +12,7 @@ const Toaster = ({ ...props }: ToasterProps) => {
<Sonner
theme={theme as ToasterProps["theme"]}
className="toaster group"
- position="top-center"
+ position="bottom-right"
offset={20}
toastOptions={{
classNames: {
diff --git a/apps/web/src/components/ui/tabs.tsx b/apps/web/src/components/ui/tabs.tsx
index d2844b63..c5cc02d7 100644
--- a/apps/web/src/components/ui/tabs.tsx
+++ b/apps/web/src/components/ui/tabs.tsx
@@ -5,51 +5,81 @@ import { Tabs as TabsPrimitive } from "radix-ui";
import { cn } from "@/utils/ui";
-const Tabs = TabsPrimitive.Root;
+type TabsVariant = "default" | "underline";
+
+const TabsVariantContext = React.createContext<TabsVariant>("default");
+
+const Tabs = React.forwardRef<
+ React.ElementRef<typeof TabsPrimitive.Root>,
+ React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & {
+ variant?: TabsVariant;
+ }
+>(({ variant = "default", ...props }, ref) => (
+ <TabsVariantContext.Provider value={variant}>
+ <TabsPrimitive.Root ref={ref} {...props} />
+ </TabsVariantContext.Provider>
+));
+Tabs.displayName = TabsPrimitive.Root.displayName;
const TabsList = React.forwardRef<
React.ElementRef<typeof TabsPrimitive.List>,
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>
->(({ className, ...props }, ref) => (
- <TabsPrimitive.List
- ref={ref}
- className={cn(
- "text-muted-foreground inline-flex h-auto items-center justify-center gap-2 rounded-lg bg-transparent p-0",
- className,
- )}
- {...props}
- />
-));
+>(({ className, ...props }, ref) => {
+ const variant = React.useContext(TabsVariantContext);
+ return (
+ <TabsPrimitive.List
+ ref={ref}
+ className={cn(
+ "text-muted-foreground inline-flex h-auto items-center gap-0 bg-transparent p-0",
+ variant === "default" && "rounded-lg",
+ variant === "underline" && "border-b border-border w-full gap-0 px-2",
+ className,
+ )}
+ {...props}
+ />
+ );
+});
TabsList.displayName = TabsPrimitive.List.displayName;
const TabsTrigger = React.forwardRef<
React.ElementRef<typeof TabsPrimitive.Trigger>,
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>
->(({ className, ...props }, ref) => (
- <TabsPrimitive.Trigger
- ref={ref}
- className={cn(
- "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-accent data-[state=active]:text-foreground inline-flex cursor-pointer items-center justify-center rounded-lg px-3 py-1 text-sm font-medium whitespace-nowrap focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50",
- className,
- )}
- {...props}
- />
-));
+>(({ className, ...props }, ref) => {
+ const variant = React.useContext(TabsVariantContext);
+ return (
+ <TabsPrimitive.Trigger
+ ref={ref}
+ className={cn(
+ "ring-offset-background focus-visible:ring-ring inline-flex cursor-pointer items-center justify-center text-sm font-medium whitespace-nowrap focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 border border-transparent",
+ variant === "default" &&
+ "data-[state=active]:bg-secondary data-[state=active]:border-secondary-border data-[state=active]:text-secondary-foreground rounded-md px-2.5 h-6.5",
+ variant === "underline" &&
+ "text-muted-foreground data-[state=active]:text-primary border-b-2 border-transparent data-[state=active]:border-primary rounded-none px-3 py-2 -mb-px",
+ className,
+ )}
+ {...props}
+ />
+ );
+});
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
const TabsContent = React.forwardRef<
React.ElementRef<typeof TabsPrimitive.Content>,
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>
->(({ className, ...props }, ref) => (
- <TabsPrimitive.Content
- ref={ref}
- className={cn(
- "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden",
- className,
- )}
- {...props}
- />
-));
+>(({ className, ...props }, ref) => {
+ const variant = React.useContext(TabsVariantContext);
+ return (
+ <TabsPrimitive.Content
+ ref={ref}
+ className={cn(
+ "ring-offset-background focus-visible:ring-ring mt-4 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden",
+ variant === "underline" && "px-4",
+ className,
+ )}
+ {...props}
+ />
+ );
+});
TabsContent.displayName = TabsPrimitive.Content.displayName;
export { Tabs, TabsList, TabsTrigger, TabsContent };
diff --git a/apps/web/src/components/ui/tooltip.tsx b/apps/web/src/components/ui/tooltip.tsx
index 067042e6..2e7b53d4 100644
--- a/apps/web/src/components/ui/tooltip.tsx
+++ b/apps/web/src/components/ui/tooltip.tsx
@@ -11,7 +11,7 @@ const Tooltip = TooltipPrimitive.Root;
const TooltipTrigger = TooltipPrimitive.Trigger;
const tooltipVariants = cva(
- "z-50 overflow-visible rounded-sm text-sm shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
+ "z-50 overflow-visible rounded-sm text-sm shadow-md",
{
variants: {
variant: {
@@ -22,7 +22,7 @@ const tooltipVariants = cva(
important:
"bg-amber-100/90 text-amber-900 dark:bg-amber-900/20 dark:text-amber-300 border-amber-900 [border-width:0.5px]",
promotions:
- "bg-red-100/90 text-red-900 dark:bg-red-900/20 dark:text-red-300 border-red-900 [border-width:0.5px]",
+ "bg-red-100/90 text-redb-900 dark:bg-red-900/20 dark:text-red-300 border-red-900 [border-width:0.5px]",
personal:
"bg-green-100/90 text-green-900 dark:bg-green-900/20 dark:text-green-300 border-green-900 [border-width:0.5px]",
updates:
diff --git a/apps/web/src/components/ui/use-overlay-open-change.ts b/apps/web/src/components/ui/use-overlay-open-change.ts
new file mode 100644
index 00000000..165efc79
--- /dev/null
+++ b/apps/web/src/components/ui/use-overlay-open-change.ts
@@ -0,0 +1,78 @@
+import { useCallback, useEffect, useId, useRef } from "react";
+import { useKeybindingsStore } from "@/stores/keybindings-store";
+
+export function useOverlayOpenChange({
+ source,
+ open,
+ onOpenChange,
+}: {
+ source: string;
+ open?: boolean;
+ onOpenChange?: (open: boolean) => void;
+}) {
+ const { openOverlay, closeOverlay } = useKeybindingsStore();
+ const isTrackedRef = useRef(false);
+ const isControlled = typeof open === "boolean";
+ const overlayId = useId();
+
+ useEffect(() => {
+ if (!isControlled) return;
+
+ if (open && !isTrackedRef.current) {
+ openOverlay(overlayId, source);
+ isTrackedRef.current = true;
+ return;
+ }
+
+ if (!open && isTrackedRef.current) {
+ closeOverlay(overlayId, source);
+ isTrackedRef.current = false;
+ }
+ }, [closeOverlay, isControlled, open, openOverlay, overlayId, source]);
+
+ useEffect(() => {
+ return () => {
+ if (!isTrackedRef.current) return;
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "post-fix",
+ hypothesisId: "H2",
+ location: "use-overlay-open-change.ts:cleanup",
+ message: "Overlay closed during unmount cleanup",
+ data: { source, overlayId },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ closeOverlay(overlayId, source);
+ isTrackedRef.current = false;
+ };
+ }, [closeOverlay, overlayId, source]);
+
+ return useCallback(
+ (nextOpen: boolean) => {
+ if (!isControlled) {
+ if (nextOpen && !isTrackedRef.current) {
+ openOverlay(overlayId, source);
+ isTrackedRef.current = true;
+ } else if (!nextOpen && isTrackedRef.current) {
+ closeOverlay(overlayId, source);
+ isTrackedRef.current = false;
+ }
+ }
+
+ onOpenChange?.(nextOpen);
+ },
+ [closeOverlay, isControlled, onOpenChange, openOverlay, overlayId, source],
+ );
+}
diff --git a/apps/web/src/constants/editor-constants.ts b/apps/web/src/constants/editor-constants.ts
index 00e8f19b..6428af32 100644
--- a/apps/web/src/constants/editor-constants.ts
+++ b/apps/web/src/constants/editor-constants.ts
@@ -1,3 +1,17 @@
+export type TPlatformLayout =
+ | "tiktok"
+ | "instagram"
+ | "youtube"
+ | "snapchat";
+
+export const PREVIEW_ZOOM_PRESETS = [25, 50, 75, 100, 150, 200];
+
+export const PREVIEW_ZOOM = {
+ min: 0.25,
+ max: 16,
+ step: 1.25,
+};
+
export const PANEL_CONFIG = {
panels: {
tools: 25,
diff --git a/apps/web/src/constants/export-constants.ts b/apps/web/src/constants/export-constants.ts
index 4e27aae5..ffb5edc6 100644
--- a/apps/web/src/constants/export-constants.ts
+++ b/apps/web/src/constants/export-constants.ts
@@ -1,4 +1,4 @@
-import type { ExportOptions } from "@/types/export";
+import type { ExportOptions } from "@/lib/export";
export const DEFAULT_EXPORT_OPTIONS = {
format: "mp4",
diff --git a/apps/web/src/constants/font-constants.ts b/apps/web/src/constants/font-constants.ts
index d115d09b..9cc363a3 100644
--- a/apps/web/src/constants/font-constants.ts
+++ b/apps/web/src/constants/font-constants.ts
@@ -1,5 +1,3 @@
-export const DEFAULT_FONT = "Arial";
-
export const SYSTEM_FONTS = new Set([
"Arial",
"Helvetica",
diff --git a/apps/web/src/constants/guide-constants.ts b/apps/web/src/constants/guide-constants.ts
new file mode 100644
index 00000000..0b707de7
--- /dev/null
+++ b/apps/web/src/constants/guide-constants.ts
@@ -0,0 +1,4 @@
+export const GRID_MIN = 1;
+export const GRID_MAX = 24;
+
+export const DEFAULT_GRID_CONFIG = { rows: 3, cols: 3 } as const;
diff --git a/apps/web/src/constants/language-constants.ts b/apps/web/src/constants/language-constants.ts
index 3da36661..e5678145 100644
--- a/apps/web/src/constants/language-constants.ts
+++ b/apps/web/src/constants/language-constants.ts
@@ -9,3 +9,6 @@ export const LANGUAGES = [
{ code: "ja", name: "Japanese" },
{ code: "zh", name: "Chinese" },
] as const;
+
+export type Language = (typeof LANGUAGES)[number];
+export type LanguageCode = Language["code"];
diff --git a/apps/web/src/constants/mask-constants.ts b/apps/web/src/constants/mask-constants.ts
new file mode 100644
index 00000000..97e77ff0
--- /dev/null
+++ b/apps/web/src/constants/mask-constants.ts
@@ -0,0 +1,4 @@
+export const MAX_FEATHER = 1000;
+export const FEATHER_HANDLE_SCALE = 0.11;
+export const DEFAULT_SHAPE_MASK_SHORT_SIDE_RATIO = 0.6;
+export const MIN_MASK_DIMENSION = 0.01;
diff --git a/apps/web/src/constants/project-constants.ts b/apps/web/src/constants/project-constants.ts
index 7e3f06b6..24e75381 100644
--- a/apps/web/src/constants/project-constants.ts
+++ b/apps/web/src/constants/project-constants.ts
@@ -1,4 +1,4 @@
-import type { TCanvasSize } from "@/types/project";
+import type { TCanvasSize } from "@/lib/project/types";
export const DEFAULT_CANVAS_PRESETS: TCanvasSize[] = [
{ width: 1920, height: 1080 },
@@ -16,12 +16,12 @@ export const FPS_PRESETS = [
] as const;
export const BLUR_INTENSITY_PRESETS: { label: string; value: number }[] = [
- { label: "Light", value: 4 },
- { label: "Medium", value: 8 },
- { label: "Heavy", value: 18 },
+ { label: "Light", value: 10 },
+ { label: "Medium", value: 50 },
+ { label: "Heavy", value: 100 },
] as const;
export const DEFAULT_CANVAS_SIZE: TCanvasSize = { width: 1920, height: 1080 };
export const DEFAULT_FPS = 30;
-export const DEFAULT_BLUR_INTENSITY = 8;
+export const DEFAULT_BLUR_INTENSITY = 10;
export const DEFAULT_COLOR = "#000000";
diff --git a/apps/web/src/constants/retime-constants.ts b/apps/web/src/constants/retime-constants.ts
new file mode 100644
index 00000000..7b18b61c
--- /dev/null
+++ b/apps/web/src/constants/retime-constants.ts
@@ -0,0 +1,30 @@
+export const DEFAULT_RETIME_RATE = 1;
+export const MIN_RETIME_RATE = 0.01;
+export const MAX_RETIME_RATE = 5;
+export const MAX_PITCH_PRESERVE_RATE = 10;
+
+export function clampRetimeRate({ rate }: { rate: number }): number {
+ if (!Number.isFinite(rate) || rate <= 0) {
+ return DEFAULT_RETIME_RATE;
+ }
+
+ return Math.min(Math.max(rate, MIN_RETIME_RATE), MAX_RETIME_RATE);
+}
+
+export function canMaintainPitch({ rate }: { rate: number }): boolean {
+ if (!Number.isFinite(rate) || rate <= 0) {
+ return false;
+ }
+
+ return clampRetimeRate({ rate }) <= MAX_PITCH_PRESERVE_RATE;
+}
+
+export function shouldMaintainPitch({
+ rate,
+ maintainPitch,
+}: {
+ rate: number;
+ maintainPitch?: boolean;
+}): boolean {
+ return maintainPitch === true && canMaintainPitch({ rate });
+}
diff --git a/apps/web/src/constants/sticker-constants.ts b/apps/web/src/constants/sticker-constants.ts
index 506e552d..06692645 100644
--- a/apps/web/src/constants/sticker-constants.ts
+++ b/apps/web/src/constants/sticker-constants.ts
@@ -1,8 +1,8 @@
+export const STICKER_INTRINSIC_SIZE_FALLBACK = 200;
+
export const STICKER_CATEGORIES = {
all: "All",
logos: "Logos",
- icons: "Icons",
- emoji: "Emoji",
flags: "Flags",
shapes: "Shapes",
};
diff --git a/apps/web/src/constants/text-constants.ts b/apps/web/src/constants/text-constants.ts
index 6779670b..45f76bc8 100644
--- a/apps/web/src/constants/text-constants.ts
+++ b/apps/web/src/constants/text-constants.ts
@@ -1,10 +1,3 @@
-import type { TextElement } from "@/types/timeline";
-import {
- DEFAULT_OPACITY,
- DEFAULT_TRANSFORM,
- TIMELINE_CONSTANTS,
-} from "./timeline-constants";
-
export const MIN_FONT_SIZE = 5;
export const MAX_FONT_SIZE = 300;
@@ -14,40 +7,5 @@ export const MAX_FONT_SIZE = 300;
*/
export const FONT_SIZE_SCALE_REFERENCE = 90;
-export const DEFAULT_LETTER_SPACING = 0;
-export const DEFAULT_LINE_HEIGHT = 1.2;
-
export const CORNER_RADIUS_MIN = 0;
export const CORNER_RADIUS_MAX = 100;
-
-export const DEFAULT_TEXT_BACKGROUND = {
- enabled: false,
- color: "#000000",
- cornerRadius: 0,
- paddingX: 30,
- paddingY: 42,
- offsetX: 0,
- offsetY: 0,
-};
-
-export const DEFAULT_TEXT_ELEMENT: Omit<TextElement, "id"> = {
- type: "text",
- name: "Text",
- content: "Default text",
- fontSize: 15,
- fontFamily: "Arial",
- color: "#ffffff",
- background: DEFAULT_TEXT_BACKGROUND,
- textAlign: "center",
- fontWeight: "normal",
- fontStyle: "normal",
- textDecoration: "none",
- letterSpacing: DEFAULT_LETTER_SPACING,
- lineHeight: DEFAULT_LINE_HEIGHT,
- duration: TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION,
- startTime: 0,
- trimStart: 0,
- trimEnd: 0,
- transform: DEFAULT_TRANSFORM,
- opacity: DEFAULT_OPACITY,
-};
diff --git a/apps/web/src/constants/timeline-constants.ts b/apps/web/src/constants/timeline-constants.ts
new file mode 100644
index 00000000..827fab85
--- /dev/null
+++ b/apps/web/src/constants/timeline-constants.ts
@@ -0,0 +1,85 @@
+import type { ElementType, TrackType } from "@/lib/timeline";
+
+export const TRACK_CONFIG: Record<
+ TrackType,
+ {
+ height: number;
+ defaultName: string;
+ }
+> = {
+ video: {
+ height: 65,
+ defaultName: "Video track",
+ },
+ text: {
+ height: 25,
+ defaultName: "Text track",
+ },
+ audio: {
+ height: 50,
+ defaultName: "Audio track",
+ },
+ graphic: {
+ height: 25,
+ defaultName: "Graphic track",
+ },
+ effect: {
+ height: 25,
+ defaultName: "Effect track",
+ },
+} as const;
+
+export const ELEMENT_TYPE_CONFIG: Record<
+ TrackType,
+ {
+ background: string;
+ waveformColor?: string;
+ }
+> = {
+ video: { background: "transparent" },
+ text: { background: "bg-[#5DBAA0]" },
+ audio: {
+ background: "bg-[#8F5DBA]",
+ waveformColor: "rgba(255, 255, 255, 0.5)",
+ },
+ graphic: { background: "bg-[#BA5D7A]" },
+ effect: { background: "bg-[#5d93ba]" },
+} as const;
+
+export const ELEMENT_TRACK_MAP: Record<ElementType, TrackType> = {
+ audio: "audio",
+ text: "text",
+ sticker: "graphic",
+ graphic: "graphic",
+ effect: "effect",
+ video: "video",
+ image: "video",
+};
+
+export const TRACK_GAP = 6;
+export const TRACK_LABELS_WIDTH_PX = 112;
+
+export const TIMELINE_RULER_HEIGHT = 22;
+export const TIMELINE_BOOKMARK_ROW_HEIGHT = 16;
+
+export const DEFAULT_BOOKMARK_COLOR = "#009dff";
+export const DRAG_THRESHOLD_PX = 5;
+export const TIMELINE_SCROLLBAR_SIZE_PX = 12;
+export const TIMELINE_LAYERS = {
+ trackContent: 10,
+ dragLine: 20,
+ playhead: 30,
+ snapIndicator: 40,
+} as const;
+
+export const TIMELINE_CONSTANTS = {
+ PIXELS_PER_SECOND: 50,
+ DEFAULT_ELEMENT_DURATION: 5,
+ PADDING_TOP_PX: 2,
+ HORIZONTAL_WHEEL_STEP_PX: 40,
+ ZOOM_MIN: 0.1,
+ ZOOM_MAX: 100,
+ ZOOM_BUTTON_FACTOR: 1.7,
+ ZOOM_ANCHOR_PLAYHEAD_THRESHOLD: 0.15,
+ TRACK_SELECTED_BG: "bg-accent/50",
+} as const;
diff --git a/apps/web/src/constants/timeline-constants.tsx b/apps/web/src/constants/timeline-constants.tsx
deleted file mode 100644
index 5bc938bb..00000000
--- a/apps/web/src/constants/timeline-constants.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-import type { TTimelineViewState } from "@/types/project";
-import type { BlendMode } from "@/types/rendering";
-import type { TrackType, Transform } from "@/types/timeline";
-import {
- Happy01Icon,
- MagicWand05Icon,
- MusicNote03Icon,
- TextIcon,
-} from "@hugeicons/core-free-icons";
-import { HugeiconsIcon } from "@hugeicons/react";
-import { OcVideoIcon } from "@opencut/ui/icons";
-
-export const DEFAULT_TRANSFORM: Transform = {
- scale: 1,
- position: { x: 0, y: 0 },
- rotate: 0,
-};
-
-export const DEFAULT_OPACITY = 1;
-export const DEFAULT_BLEND_MODE: BlendMode = "normal";
-export const DEFAULT_BOOKMARK_COLOR = "#009dff";
-
-export const TRACK_CONFIG: Record<
- TrackType,
- {
- background: string;
- height: number;
- defaultName: string;
- icon: React.ReactNode;
- }
-> = {
- video: {
- background: "transparent",
- height: 60,
- defaultName: "Video track",
- icon: <OcVideoIcon className="text-muted-foreground size-4 shrink-0" />,
- },
- text: {
- background: "bg-[#5DBAA0]",
- height: 25,
- defaultName: "Text track",
- icon: (
- <HugeiconsIcon
- icon={TextIcon}
- className="text-muted-foreground size-4 shrink-0"
- />
- ),
- },
- audio: {
- background: "bg-[#8F5DBA]",
- height: 50,
- defaultName: "Audio track",
- icon: (
- <HugeiconsIcon
- icon={MusicNote03Icon}
- className="text-muted-foreground size-4 shrink-0"
- />
- ),
- },
- sticker: {
- background: "bg-[#BA5D7A]",
- height: 50,
- defaultName: "Sticker track",
- icon: (
- <HugeiconsIcon
- icon={Happy01Icon}
- className="text-muted-foreground size-4 shrink-0"
- />
- ),
- },
- effect: {
- background: "bg-[#5d93ba]",
- height: 25,
- defaultName: "Effect track",
- icon: (
- <HugeiconsIcon
- icon={MagicWand05Icon}
- className="text-muted-foreground size-4 shrink-0"
- />
- ),
- },
-} as const;
-
-export const TRACK_GAP = 4;
-
-export const DRAG_THRESHOLD_PX = 5;
-
-export const TIMELINE_CONSTANTS = {
- PIXELS_PER_SECOND: 50,
- DEFAULT_ELEMENT_DURATION: 5,
- PADDING_TOP_PX: 0,
- ZOOM_MIN: 0.1,
- ZOOM_MAX: 100,
- ZOOM_BUTTON_FACTOR: 1.7,
- ZOOM_ANCHOR_PLAYHEAD_THRESHOLD: 0.15,
-} as const;
-
-export const DEFAULT_TIMELINE_VIEW_STATE: TTimelineViewState = {
- zoomLevel: 1,
- scrollLeft: 0,
- playheadTime: 0,
-};
diff --git a/apps/web/src/constants/transcription-constants.ts b/apps/web/src/constants/transcription-constants.ts
index ed19147c..50b52585 100644
--- a/apps/web/src/constants/transcription-constants.ts
+++ b/apps/web/src/constants/transcription-constants.ts
@@ -2,8 +2,8 @@ import { LANGUAGES } from "@/constants/language-constants";
import type {
TranscriptionModel,
TranscriptionModelId,
-} from "@/types/transcription";
-import type { LanguageCode } from "@/types/language";
+} from "@/lib/transcription/types";
+import type { LanguageCode } from "@/constants/language-constants";
const SUPPORTED_TRANSCRIPTION_LANGS: ReadonlyArray<LanguageCode> = [
"en",
diff --git a/apps/web/src/core/index.ts b/apps/web/src/core/index.ts
index 42ab3b87..e7cc5496 100644
--- a/apps/web/src/core/index.ts
+++ b/apps/web/src/core/index.ts
@@ -9,13 +9,13 @@ import { SaveManager } from "./managers/save-manager";
import { AudioManager } from "./managers/audio-manager";
import { SelectionManager } from "./managers/selection-manager";
import { registerDefaultEffects } from "@/lib/effects";
+import { registerDefaultMasks } from "@/lib/masks";
export class EditorCore {
private static instance: EditorCore | null = null;
-
+ public readonly timeline: TimelineManager;
public readonly command: CommandManager;
public readonly playback: PlaybackManager;
- public readonly timeline: TimelineManager;
public readonly scenes: ScenesManager;
public readonly project: ProjectManager;
public readonly media: MediaManager;
@@ -26,9 +26,10 @@ export class EditorCore {
private constructor() {
registerDefaultEffects();
+ registerDefaultMasks();
this.command = new CommandManager();
- this.playback = new PlaybackManager(this);
this.timeline = new TimelineManager(this);
+ this.playback = new PlaybackManager(this);
this.scenes = new ScenesManager(this);
this.project = new ProjectManager(this);
this.media = new MediaManager(this);
diff --git a/apps/web/src/core/managers/audio-manager.ts b/apps/web/src/core/managers/audio-manager.ts
index 20b124b6..54fda6c2 100644
--- a/apps/web/src/core/managers/audio-manager.ts
+++ b/apps/web/src/core/managers/audio-manager.ts
@@ -1,7 +1,21 @@
import type { EditorCore } from "@/core";
+import {
+ clampRetimeRate,
+ shouldMaintainPitch,
+} from "@/constants/retime-constants";
import type { AudioClipSource } from "@/lib/media/audio";
import { createAudioContext, collectAudioClips } from "@/lib/media/audio";
import {
+ buildAudioGainAutomation,
+ hasAnimatedVolume,
+} from "@/lib/timeline/audio-state";
+import { createAudioMasteringChain } from "@/lib/media/audio-mastering";
+import {
+ getClipTimeAtSourceTime,
+ getSourceTimeAtClipTime,
+ renderRetimedBuffer,
+} from "@/lib/retime";
+import {
ALL_FORMATS,
AudioBufferSink,
BlobSource,
@@ -26,6 +40,8 @@ export class AudioManager {
AsyncGenerator<WrappedAudioBuffer, void, unknown>
>();
private queuedSources = new Set<AudioBufferSourceNode>();
+ private preparedClipBuffers = new Map<string, Promise<AudioBuffer | null>>();
+ private decodedBuffers = new Map<string, Promise<AudioBuffer | null>>();
private playbackSessionId = 0;
private lastIsPlaying = false;
private lastVolume = 1;
@@ -55,6 +71,8 @@ export class AudioManager {
window.removeEventListener("playback-seek", this.handleSeek);
}
this.disposeSinks();
+ this.preparedClipBuffers.clear();
+ this.decodedBuffers.clear();
if (this.audioContext) {
void this.audioContext.close();
this.audioContext = null;
@@ -102,6 +120,8 @@ export class AudioManager {
private handleTimelineChange = (): void => {
this.disposeSinks();
+ this.preparedClipBuffers.clear();
+ this.decodedBuffers.clear();
if (!this.editor.playback.getIsPlaying()) return;
@@ -113,9 +133,12 @@ export class AudioManager {
if (typeof window === "undefined") return null;
this.audioContext = createAudioContext();
- this.masterGain = this.audioContext.createGain();
+ const { input } = createAudioMasteringChain({
+ audioContext: this.audioContext,
+ destination: this.audioContext.destination,
+ });
+ this.masterGain = input;
this.masterGain.gain.value = this.lastVolume;
- this.masterGain.connect(this.audioContext.destination);
return this.audioContext;
}
@@ -179,11 +202,19 @@ export class AudioManager {
if (clip.startTime > windowEnd) continue;
this.activeClipIds.add(clip.id);
- void this.runClipIterator({
- clip,
- startTime: currentTime,
- sessionId: this.playbackSessionId,
- });
+ if (this.shouldUsePreparedClipBuffer({ clip })) {
+ void this.schedulePreparedClip({
+ clip,
+ startTime: currentTime,
+ sessionId: this.playbackSessionId,
+ });
+ } else {
+ void this.runClipIterator({
+ clip,
+ startTime: currentTime,
+ sessionId: this.playbackSessionId,
+ });
+ }
}
}
@@ -236,7 +267,11 @@ export class AudioManager {
return;
}
const sourceStartTime =
- clip.trimStart + (iteratorStartTime - clip.startTime);
+ clip.trimStart +
+ getSourceTimeAtClipTime({
+ clipTime: iteratorStartTime - clip.startTime,
+ retime: clip.retime,
+ });
const iterator = sink.buffers(sourceStartTime);
this.clipIterators.set(clip.id, iterator);
@@ -246,12 +281,23 @@ export class AudioManager {
if (!this.editor.playback.getIsPlaying()) return;
if (sessionId !== this.playbackSessionId) return;
- const timelineTime = clip.startTime + (timestamp - clip.trimStart);
+ const timelineTime =
+ clip.startTime +
+ getClipTimeAtSourceTime({
+ sourceTime: timestamp - clip.trimStart,
+ retime: clip.retime,
+ });
if (timelineTime >= clipEnd) break;
const node = audioContext.createBufferSource();
node.buffer = buffer;
- node.connect(this.masterGain ?? audioContext.destination);
+ if (clip.retime) {
+ node.playbackRate.value = clampRetimeRate({ rate: clip.retime.rate });
+ }
+ const clipGain = audioContext.createGain();
+ clipGain.gain.value = clip.volume;
+ node.connect(clipGain);
+ clipGain.connect(this.masterGain ?? audioContext.destination);
const startTimestamp =
this.playbackStartContextTime +
@@ -277,8 +323,7 @@ export class AudioManager {
nextCompensationSeconds >
this.playbackLatencyCompensationSeconds + 0.001
) {
- this.playbackLatencyCompensationSeconds =
- nextCompensationSeconds;
+ this.playbackLatencyCompensationSeconds = nextCompensationSeconds;
}
const resyncStartTime = this.getPlaybackTime();
this.clipIterators.delete(clip.id);
@@ -296,6 +341,7 @@ export class AudioManager {
this.queuedSources.add(node);
node.addEventListener("ended", () => {
node.disconnect();
+ clipGain.disconnect();
this.queuedSources.delete(node);
});
@@ -311,6 +357,73 @@ export class AudioManager {
// the set is cleared on stopPlayback anyway
}
+ private async schedulePreparedClip({
+ clip,
+ startTime,
+ sessionId,
+ }: {
+ clip: AudioClipSource;
+ startTime: number;
+ sessionId: number;
+ }): Promise<void> {
+ const audioContext = this.ensureAudioContext();
+ if (!audioContext) return;
+
+ const buffer = await this.getPreparedClipBuffer({ clip });
+ if (!buffer || !this.editor.playback.getIsPlaying()) return;
+ if (sessionId !== this.playbackSessionId) return;
+
+ const clipStart = clip.startTime;
+ const clipEnd = clip.startTime + clip.duration;
+ const playbackTimeAfterReady = this.getPlaybackTime();
+ const effectiveStartTime = Math.max(
+ startTime,
+ clipStart,
+ playbackTimeAfterReady,
+ );
+ if (effectiveStartTime >= clipEnd) {
+ return;
+ }
+
+ const node = audioContext.createBufferSource();
+ node.buffer = buffer;
+ const clipGain = audioContext.createGain();
+ node.connect(clipGain);
+ clipGain.connect(this.masterGain ?? audioContext.destination);
+
+ const startTimestamp =
+ this.playbackStartContextTime +
+ this.playbackLatencyCompensationSeconds +
+ (effectiveStartTime - this.playbackStartTime);
+ const clipOffset = effectiveStartTime - clipStart;
+ let actualStartTimestamp = startTimestamp;
+ let actualClipOffset = clipOffset;
+
+ if (startTimestamp >= audioContext.currentTime) {
+ node.start(startTimestamp, clipOffset);
+ } else {
+ const lateOffset = audioContext.currentTime - startTimestamp;
+ actualStartTimestamp = audioContext.currentTime;
+ actualClipOffset = clipOffset + lateOffset;
+ node.start(actualStartTimestamp, actualClipOffset);
+ }
+
+ this.scheduleClipGainAutomation({
+ audioContext,
+ clip,
+ clipGain,
+ startTimestamp: actualStartTimestamp,
+ startLocalTime: actualClipOffset,
+ });
+
+ this.queuedSources.add(node);
+ node.addEventListener("ended", () => {
+ node.disconnect();
+ clipGain.disconnect();
+ this.queuedSources.delete(node);
+ });
+ }
+
private waitUntilCaughtUp({
timelineTime,
targetAhead,
@@ -349,6 +462,221 @@ export class AudioManager {
this.sinks.clear();
}
+ private shouldUsePreparedClipBuffer({
+ clip,
+ }: {
+ clip: AudioClipSource;
+ }): boolean {
+ return (
+ this.hasCurveRetime({ clip }) ||
+ hasAnimatedVolume({ element: clip.timelineElement }) ||
+ shouldMaintainPitch({
+ rate: clip.retime?.rate ?? 1,
+ maintainPitch: clip.retime?.maintainPitch,
+ })
+ );
+ }
+
+ private hasCurveRetime({ clip }: { clip: AudioClipSource }): boolean {
+ const mode = (clip.retime as { mode?: unknown } | undefined)?.mode;
+ return mode === "curve";
+ }
+
+ private scheduleClipGainAutomation({
+ audioContext,
+ clip,
+ clipGain,
+ startTimestamp,
+ startLocalTime,
+ }: {
+ audioContext: AudioContext;
+ clip: AudioClipSource;
+ clipGain: GainNode;
+ startTimestamp: number;
+ startLocalTime: number;
+ }): void {
+ clipGain.gain.cancelScheduledValues(startTimestamp);
+ clipGain.gain.setValueAtTime(clip.volume, startTimestamp);
+
+ if (!hasAnimatedVolume({ element: clip.timelineElement })) {
+ return;
+ }
+
+ const points = buildAudioGainAutomation({
+ element: clip.timelineElement,
+ fromLocalTime: startLocalTime,
+ toLocalTime: clip.duration,
+ });
+
+ if (points.length === 0) {
+ return;
+ }
+
+ clipGain.gain.setValueAtTime(points[0].gain, startTimestamp);
+ for (let index = 1; index < points.length; index++) {
+ const point = points[index];
+ const pointTimestamp =
+ startTimestamp + (point.localTime - startLocalTime);
+ if (pointTimestamp < audioContext.currentTime) {
+ continue;
+ }
+
+ clipGain.gain.linearRampToValueAtTime(point.gain, pointTimestamp);
+ }
+ }
+
+ private buildPreparedClipCacheKey({
+ clip,
+ }: {
+ clip: AudioClipSource;
+ }): string {
+ return JSON.stringify({
+ id: clip.id,
+ sourceKey: clip.sourceKey,
+ startTime: clip.startTime,
+ duration: clip.duration,
+ trimStart: clip.trimStart,
+ trimEnd: clip.trimEnd,
+ retime: clip.retime ?? null,
+ });
+ }
+
+ private async getPreparedClipBuffer({
+ clip,
+ }: {
+ clip: AudioClipSource;
+ }): Promise<AudioBuffer | null> {
+ const cacheKey = this.buildPreparedClipCacheKey({ clip });
+ const existing = this.preparedClipBuffers.get(cacheKey);
+ if (existing) {
+ return existing;
+ }
+
+ const promise = (async () => {
+ const audioContext = this.ensureAudioContext();
+ if (!audioContext) {
+ return null;
+ }
+
+ const decodedBuffer = await this.getDecodedBuffer({ clip });
+ if (!decodedBuffer) {
+ return null;
+ }
+
+ return await renderRetimedBuffer({
+ audioContext,
+ sourceBuffer: decodedBuffer,
+ trimStart: clip.trimStart,
+ clipDuration: clip.duration,
+ retime: clip.retime,
+ maintainPitch: clip.retime?.maintainPitch === true,
+ });
+ })();
+
+ this.preparedClipBuffers.set(cacheKey, promise);
+ return promise;
+ }
+
+ private async getDecodedBuffer({
+ clip,
+ }: {
+ clip: AudioClipSource;
+ }): Promise<AudioBuffer | null> {
+ const existing = this.decodedBuffers.get(clip.sourceKey);
+ if (existing) {
+ return existing;
+ }
+
+ const promise = this.decodeClipBuffer({ clip });
+ this.decodedBuffers.set(clip.sourceKey, promise);
+ return promise;
+ }
+
+ private async decodeClipBuffer({
+ clip,
+ }: {
+ clip: AudioClipSource;
+ }): Promise<AudioBuffer | null> {
+ const audioContext = this.ensureAudioContext();
+ if (!audioContext) {
+ return null;
+ }
+
+ const input = new Input({
+ source: new BlobSource(clip.file),
+ formats: ALL_FORMATS,
+ });
+
+ try {
+ const audioTrack = await input.getPrimaryAudioTrack();
+ if (!audioTrack) {
+ return null;
+ }
+
+ const sink = new AudioBufferSink(audioTrack);
+ const chunks: AudioBuffer[] = [];
+ let totalSamples = 0;
+
+ for await (const { buffer } of sink.buffers(0)) {
+ chunks.push(buffer);
+ totalSamples += buffer.length;
+ }
+
+ if (chunks.length === 0) {
+ return null;
+ }
+
+ const targetSampleRate = audioContext.sampleRate;
+ const nativeSampleRate = chunks[0].sampleRate;
+ const numChannels = Math.min(2, chunks[0].numberOfChannels);
+ const nativeChannels = Array.from(
+ { length: numChannels },
+ () => new Float32Array(totalSamples),
+ );
+
+ let offset = 0;
+ for (const chunk of chunks) {
+ for (let channel = 0; channel < numChannels; channel++) {
+ nativeChannels[channel].set(
+ chunk.getChannelData(Math.min(channel, chunk.numberOfChannels - 1)),
+ offset,
+ );
+ }
+ offset += chunk.length;
+ }
+
+ const outputSamples = Math.ceil(
+ totalSamples * (targetSampleRate / nativeSampleRate),
+ );
+ const offlineContext = new OfflineAudioContext(
+ numChannels,
+ outputSamples,
+ targetSampleRate,
+ );
+ const nativeBuffer = audioContext.createBuffer(
+ numChannels,
+ totalSamples,
+ nativeSampleRate,
+ );
+
+ for (let channel = 0; channel < numChannels; channel++) {
+ nativeBuffer.copyToChannel(nativeChannels[channel], channel);
+ }
+
+ const sourceNode = offlineContext.createBufferSource();
+ sourceNode.buffer = nativeBuffer;
+ sourceNode.connect(offlineContext.destination);
+ sourceNode.start(0);
+
+ return await offlineContext.startRendering();
+ } catch (error) {
+ console.warn("Failed to decode clip audio:", error);
+ return null;
+ } finally {
+ input.dispose();
+ }
+ }
+
private async getAudioSink({
clip,
}: {
diff --git a/apps/web/src/core/managers/media-manager.ts b/apps/web/src/core/managers/media-manager.ts
index fd8726d9..cdab13ef 100644
--- a/apps/web/src/core/managers/media-manager.ts
+++ b/apps/web/src/core/managers/media-manager.ts
@@ -1,9 +1,10 @@
import type { EditorCore } from "@/core";
-import type { MediaAsset } from "@/types/assets";
+import { toast } from "sonner";
+import type { MediaAsset } from "@/lib/media/types";
import { storageService } from "@/services/storage/service";
import { generateUUID } from "@/utils/id";
import { videoCache } from "@/services/video-cache/service";
-import { hasMediaId } from "@/lib/timeline/element-utils";
+import { BatchCommand, RemoveMediaAssetCommand } from "@/lib/commands";
export class MediaManager {
private assets: MediaAsset[] = [];
@@ -18,7 +19,7 @@ export class MediaManager {
}: {
projectId: string;
asset: Omit<MediaAsset, "id">;
- }): Promise<void> {
+ }): Promise<MediaAsset | null> {
const newAsset: MediaAsset = {
...asset,
id: generateUUID(),
@@ -29,54 +30,46 @@ export class MediaManager {
try {
await storageService.saveMediaAsset({ projectId, mediaAsset: newAsset });
+ return newAsset;
} catch (error) {
console.error("Failed to save media asset:", error);
this.assets = this.assets.filter((asset) => asset.id !== newAsset.id);
this.notify();
+
+ if (storageService.isQuotaExceededError({ error })) {
+ toast.error("Not enough browser storage", {
+ description: error instanceof Error ? error.message : undefined,
+ });
+ }
+
+ return null;
}
}
- async removeMediaAsset({
+ removeMediaAsset({ projectId, id }: { projectId: string; id: string }): void {
+ this.removeMediaAssets({ projectId, ids: [id] });
+ }
+
+ removeMediaAssets({
projectId,
- id,
+ ids,
}: {
projectId: string;
- id: string;
- }): Promise<void> {
- const asset = this.assets.find((asset) => asset.id === id);
-
- videoCache.clearVideo({ mediaId: id });
-
- if (asset?.url) {
- URL.revokeObjectURL(asset.url);
- if (asset.thumbnailUrl) {
- URL.revokeObjectURL(asset.thumbnailUrl);
- }
+ ids: string[];
+ }): void {
+ const uniqueIds = [...new Set(ids)];
+ if (uniqueIds.length === 0) {
+ return;
}
- this.assets = this.assets.filter((asset) => asset.id !== id);
- this.notify();
+ const command =
+ uniqueIds.length === 1
+ ? new RemoveMediaAssetCommand(projectId, uniqueIds[0])
+ : new BatchCommand(
+ uniqueIds.map((id) => new RemoveMediaAssetCommand(projectId, id)),
+ );
- const tracks = this.editor.timeline.getTracks();
- const elementsToRemove: Array<{ trackId: string; elementId: string }> = [];
-
- for (const track of tracks) {
- for (const element of track.elements) {
- if (hasMediaId(element) && element.mediaId === id) {
- elementsToRemove.push({ trackId: track.id, elementId: element.id });
- }
- }
- }
-
- if (elementsToRemove.length > 0) {
- this.editor.timeline.deleteElements({ elements: elementsToRemove });
- }
-
- try {
- await storageService.deleteMediaAsset({ projectId, id });
- } catch (error) {
- console.error("Failed to delete media asset:", error);
- }
+ this.editor.command.execute({ command });
}
async loadProjectMedia({ projectId }: { projectId: string }): Promise<void> {
@@ -157,6 +150,8 @@ export class MediaManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
}
diff --git a/apps/web/src/core/managers/playback-manager.ts b/apps/web/src/core/managers/playback-manager.ts
index dacd76c0..5993a503 100644
--- a/apps/web/src/core/managers/playback-manager.ts
+++ b/apps/web/src/core/managers/playback-manager.ts
@@ -11,7 +11,15 @@ export class PlaybackManager {
private playbackTimer: number | null = null;
private lastUpdate = 0;
- constructor(private editor: EditorCore) {}
+ constructor(private editor: EditorCore) {
+ this.editor.timeline.subscribe(() => {
+ const duration = this.editor.timeline.getTotalDuration();
+ if (this.currentTime > duration && duration > 0) {
+ this.currentTime = duration;
+ this.notify();
+ }
+ });
+ }
play(): void {
const duration = this.editor.timeline.getTotalDuration();
@@ -117,7 +125,9 @@ export class PlaybackManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
private startTimer(): void {
@@ -158,7 +168,6 @@ export class PlaybackManager {
);
} else {
this.currentTime = newTime;
- this.notify();
window.dispatchEvent(
new CustomEvent("playback-update", {
diff --git a/apps/web/src/core/managers/project-manager.ts b/apps/web/src/core/managers/project-manager.ts
index 05889a94..f84a25e3 100644
--- a/apps/web/src/core/managers/project-manager.ts
+++ b/apps/web/src/core/managers/project-manager.ts
@@ -6,8 +6,8 @@ import type {
TProjectSortOption,
TProjectSettings,
TTimelineViewState,
-} from "@/types/project";
-import type { ExportOptions, ExportResult, ExportState } from "@/types/export";
+} from "@/lib/project/types";
+import type { ExportOptions, ExportResult, ExportState } from "@/lib/export";
import { storageService } from "@/services/storage/service";
import { toast } from "sonner";
import { generateUUID } from "@/utils/id";
@@ -26,9 +26,9 @@ import {
runStorageMigrations,
type MigrationProgress,
} from "@/services/storage/migrations";
-import { DEFAULT_TIMELINE_VIEW_STATE } from "@/constants/timeline-constants";
import { loadFonts } from "@/lib/fonts/google-fonts";
-import { collectFontFamilies } from "@/lib/timeline/element-utils";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { getElementFontFamilies } from "@/lib/timeline/element-utils";
export interface MigrationState {
isMigrating: boolean;
@@ -94,6 +94,8 @@ export class ProjectManager {
settings: {
fps: DEFAULT_FPS,
canvasSize: DEFAULT_CANVAS_SIZE,
+ canvasSizeMode: "preset",
+ lastCustomCanvasSize: null,
originalCanvasSize: null,
background: {
type: "color",
@@ -155,7 +157,9 @@ export class ProjectManager {
await this.editor.media.loadProjectMedia({ projectId: id });
const allTracks = (project.scenes ?? []).flatMap((scene) => scene.tracks);
- await loadFonts({ families: collectFontFamilies({ tracks: allTracks }) });
+ await loadFonts({
+ families: getElementFontFamilies({ tracks: allTracks }),
+ });
if (!project.metadata.thumbnail) {
const didUpdateThumbnail = await this.updateThumbnailFromTimeline();
@@ -239,14 +243,21 @@ export class ProjectManager {
this.notify();
}
- await this.ensureStorageMigrations();
try {
- const metadata = await storageService.loadAllProjectsMetadata();
- this.savedProjects = metadata;
- this.notify();
+ await this.ensureStorageMigrations();
+ try {
+ const metadata = await storageService.loadAllProjectsMetadata();
+ this.savedProjects = metadata;
+ this.notify();
+ } catch (error) {
+ console.error("Failed to load projects:", error);
+ } finally {
+ this.isLoading = false;
+ this.isInitialized = true;
+ this.notify();
+ }
} catch (error) {
- console.error("Failed to load projects:", error);
- } finally {
+ console.error("Failed to run migrations:", error);
this.isLoading = false;
this.isInitialized = true;
this.notify();
@@ -495,10 +506,12 @@ export class ProjectManager {
}
async prepareExit(): Promise<void> {
+ console.log("prepareExit", this.active);
if (!this.active) return;
try {
const didUpdateThumbnail = await this.updateThumbnailFromTimeline();
+ console.log("didUpdateThumbnail", didUpdateThumbnail);
if (didUpdateThumbnail) {
await this.editor.save.flush();
}
@@ -571,7 +584,7 @@ export class ProjectManager {
}
getTimelineViewState(): TTimelineViewState {
- return this.active?.timelineViewState ?? DEFAULT_TIMELINE_VIEW_STATE;
+ return this.active?.timelineViewState ?? DEFAULTS.timeline.viewState;
}
setTimelineViewState({ viewState }: { viewState: TTimelineViewState }): void {
@@ -581,6 +594,7 @@ export class ProjectManager {
timelineViewState: viewState ?? undefined,
};
this.editor.save.markDirty();
+ this.notify();
}
getSavedProjects(): TProjectMetadata[] {
@@ -615,15 +629,12 @@ export class ProjectManager {
const tracks = this.editor.timeline.getTracks();
const mediaAssets = this.editor.media.getAssets();
const duration = this.editor.timeline.getTotalDuration();
-
- if (duration === 0) return false;
-
const { canvasSize, background } = this.active.settings;
const scene = buildScene({
tracks,
mediaAssets,
- duration,
+ duration: duration || 1,
canvasSize,
background,
});
@@ -656,7 +667,7 @@ export class ProjectManager {
);
if (index !== -1) {
- this.savedProjects[index] = project.metadata;
+ this.savedProjects = this.savedProjects.with(index, project.metadata);
} else {
this.savedProjects = [project.metadata, ...this.savedProjects];
}
@@ -665,6 +676,8 @@ export class ProjectManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
}
diff --git a/apps/web/src/core/managers/renderer-manager.ts b/apps/web/src/core/managers/renderer-manager.ts
index 601a007e..75184c53 100644
--- a/apps/web/src/core/managers/renderer-manager.ts
+++ b/apps/web/src/core/managers/renderer-manager.ts
@@ -1,6 +1,6 @@
import type { EditorCore } from "@/core";
import type { RootNode } from "@/services/renderer/nodes/root-node";
-import type { ExportOptions, ExportResult } from "@/types/export";
+import type { ExportOptions, ExportResult } from "@/lib/export";
import { CanvasRenderer } from "@/services/renderer/canvas-renderer";
import { SceneExporter } from "@/services/renderer/scene-exporter";
import { buildScene } from "@/services/renderer/scene-builder";
@@ -8,6 +8,10 @@ import { createTimelineAudioBuffer } from "@/lib/media/audio";
import { formatTimeCode, getLastFrameTime } from "@/lib/time";
import { downloadBlob } from "@/utils/browser";
+type SnapshotResult =
+ | { success: true; blob: Blob; filename: string }
+ | { success: false; error: string };
+
export class RendererManager {
private renderTree: RootNode | null = null;
private listeners = new Set<() => void>();
@@ -24,6 +28,45 @@ export class RendererManager {
}
async saveSnapshot(): Promise<{ success: boolean; error?: string }> {
+ const snapshot = await this.createSnapshot();
+ if (!snapshot.success) {
+ return snapshot;
+ }
+
+ downloadBlob({ blob: snapshot.blob, filename: snapshot.filename });
+ return { success: true };
+ }
+
+ async copySnapshot(): Promise<{ success: boolean; error?: string }> {
+ if (typeof ClipboardItem === "undefined" || !navigator.clipboard?.write) {
+ return {
+ success: false,
+ error: "Clipboard image copy is not supported in this browser",
+ };
+ }
+
+ const snapshot = await this.createSnapshot();
+ if (!snapshot.success) {
+ return snapshot;
+ }
+
+ try {
+ await navigator.clipboard.write([
+ new ClipboardItem({
+ [snapshot.blob.type || "image/png"]: snapshot.blob,
+ }),
+ ]);
+ return { success: true };
+ } catch (error) {
+ console.error("Copy snapshot failed:", error);
+ return {
+ success: false,
+ error: error instanceof Error ? error.message : "Unknown error",
+ };
+ }
+ }
+
+ private async createSnapshot(): Promise<SnapshotResult> {
try {
const renderTree = this.getRenderTree();
const activeProject = this.editor.project.getActive();
@@ -70,15 +113,14 @@ export class RendererManager {
timeInSeconds: renderTime,
fps,
}).replace(/:/g, "-");
- const safeName = activeProject.metadata.name
- .replace(/[<>:"/\\|?*]/g, "-")
- .trim() || "snapshot";
+ const safeName =
+ activeProject.metadata.name.replace(/[<>:"/\\|?*]/g, "-").trim() ||
+ "snapshot";
const filename = `${safeName}-${timecode}.png`;
- downloadBlob({ blob, filename });
- return { success: true };
+ return { success: true, blob, filename };
} catch (error) {
- console.error("Save snapshot failed:", error);
+ console.error("Snapshot capture failed:", error);
return {
success: false,
error: error instanceof Error ? error.message : "Unknown error",
@@ -193,6 +235,8 @@ export class RendererManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
}
diff --git a/apps/web/src/core/managers/scenes-manager.ts b/apps/web/src/core/managers/scenes-manager.ts
index c844f448..b42a9b7c 100644
--- a/apps/web/src/core/managers/scenes-manager.ts
+++ b/apps/web/src/core/managers/scenes-manager.ts
@@ -1,5 +1,5 @@
import type { EditorCore } from "@/core";
-import type { TimelineTrack, TScene } from "@/types/timeline";
+import type { TimelineTrack, TScene } from "@/lib/timeline";
import { storageService } from "@/services/storage/service";
import {
getMainScene,
@@ -302,7 +302,9 @@ export class ScenesManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
updateSceneTracks({ tracks }: { tracks: TimelineTrack[] }): void {
diff --git a/apps/web/src/core/managers/selection-manager.ts b/apps/web/src/core/managers/selection-manager.ts
index e4295c11..2062cfb0 100644
--- a/apps/web/src/core/managers/selection-manager.ts
+++ b/apps/web/src/core/managers/selection-manager.ts
@@ -1,7 +1,6 @@
import type { EditorCore } from "@/core";
-import type { SelectedKeyframeRef } from "@/types/animation";
-
-type ElementRef = { trackId: string; elementId: string };
+import type { SelectedKeyframeRef } from "@/lib/animation/types";
+import type { ElementRef } from "@/lib/timeline/types";
export class SelectionManager {
private selectedElements: ElementRef[] = [];
@@ -67,6 +66,8 @@ export class SelectionManager {
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
}
diff --git a/apps/web/src/core/managers/timeline-manager.ts b/apps/web/src/core/managers/timeline-manager.ts
index 173f0744..455222d6 100644
--- a/apps/web/src/core/managers/timeline-manager.ts
+++ b/apps/web/src/core/managers/timeline-manager.ts
@@ -1,16 +1,17 @@
import type { EditorCore } from "@/core";
-import type { EffectParamValues } from "@/types/effects";
+import type { ParamValues } from "@/lib/params";
import type {
TrackType,
TimelineTrack,
TimelineElement,
ClipboardItem,
-} from "@/types/timeline";
+ RetimeConfig,
+} from "@/lib/timeline";
import type {
+ AnimationPath,
AnimationInterpolation,
- AnimationPropertyPath,
AnimationValue,
-} from "@/types/animation";
+} from "@/lib/animation/types";
import { calculateTotalDuration } from "@/lib/timeline";
import {
AddTrackCommand,
@@ -30,6 +31,7 @@ import {
UpdateElementStartTimeCommand,
MoveElementCommand,
TracksSnapshotCommand,
+ UpdateElementRetimeCommand,
UpsertKeyframeCommand,
RemoveKeyframeCommand,
RetimeKeyframeCommand,
@@ -38,15 +40,18 @@ import {
UpdateClipEffectParamsCommand,
ToggleClipEffectCommand,
ReorderClipEffectsCommand,
+ RemoveMaskCommand,
+ ToggleMaskInvertedCommand,
UpsertEffectParamKeyframeCommand,
RemoveEffectParamKeyframeCommand,
} from "@/lib/commands/timeline";
-import { BatchCommand, PreviewTracker } from "@/lib/commands";
+import { BatchCommand } from "@/lib/commands";
import type { InsertElementParams } from "@/lib/commands/timeline/element/insert-element";
export class TimelineManager {
private listeners = new Set<() => void>();
- private previewTracker = new PreviewTracker<TimelineTrack[]>();
+ private previewOverlay = new Map<string, Partial<TimelineElement>>();
+ private previewTracks: TimelineTrack[] | null = null;
constructor(private editor: EditorCore) {}
@@ -121,6 +126,29 @@ export class TimelineManager {
}
}
+ updateElementRetime({
+ trackId,
+ elementId,
+ retime,
+ pushHistory = true,
+ }: {
+ trackId: string;
+ elementId: string;
+ retime?: RetimeConfig;
+ pushHistory?: boolean;
+ }): void {
+ const command = new UpdateElementRetimeCommand({
+ trackId,
+ elementId,
+ retime,
+ });
+ if (pushHistory) {
+ this.editor.command.execute({ command });
+ } else {
+ command.execute();
+ }
+ }
+
updateElementStartTime({
elements,
startTime,
@@ -308,6 +336,23 @@ export class TimelineManager {
this.editor.command.execute({ command });
}
+ removeMask({
+ trackId,
+ elementId,
+ maskId,
+ }: {
+ trackId: string;
+ elementId: string;
+ maskId: string;
+ }): void {
+ const command = new RemoveMaskCommand({
+ trackId,
+ elementId,
+ maskId,
+ });
+ this.editor.command.execute({ command });
+ }
+
updateClipEffectParams({
trackId,
elementId,
@@ -318,7 +363,7 @@ export class TimelineManager {
trackId: string;
elementId: string;
effectId: string;
- params: Partial<EffectParamValues>;
+ params: Partial<ParamValues>;
pushHistory?: boolean;
}): void {
const command = new UpdateClipEffectParamsCommand({
@@ -351,6 +396,23 @@ export class TimelineManager {
this.editor.command.execute({ command });
}
+ toggleMaskInverted({
+ trackId,
+ elementId,
+ maskId,
+ }: {
+ trackId: string;
+ elementId: string;
+ maskId: string;
+ }): void {
+ const command = new ToggleMaskInvertedCommand({
+ trackId,
+ elementId,
+ maskId,
+ });
+ this.editor.command.execute({ command });
+ }
+
reorderClipEffects({
trackId,
elementId,
@@ -377,7 +439,7 @@ export class TimelineManager {
keyframes: Array<{
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
time: number;
value: AnimationValue;
interpolation?: AnimationInterpolation;
@@ -419,7 +481,7 @@ export class TimelineManager {
keyframes: Array<{
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
}>;
}): void {
@@ -450,7 +512,7 @@ export class TimelineManager {
}: {
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
time: number;
}): void {
@@ -520,7 +582,7 @@ export class TimelineManager {
}
isPreviewActive(): boolean {
- return this.previewTracker.isActive();
+ return this.previewOverlay.size > 0;
}
previewElements({
@@ -532,37 +594,51 @@ export class TimelineManager {
updates: Partial<TimelineElement>;
}>;
}): void {
- const tracks = this.getTracks();
- this.previewTracker.begin({ state: tracks });
-
- let updatedTracks = tracks;
- for (const { trackId, elementId, updates: elementUpdates } of updates) {
- updatedTracks = updatedTracks.map((track) => {
- if (track.id !== trackId) return track;
- const newElements = track.elements.map((element) =>
- element.id === elementId
- ? { ...element, ...elementUpdates }
- : element,
- );
- return { ...track, elements: newElements } as TimelineTrack;
- });
+ for (const { elementId, updates: elementUpdates } of updates) {
+ const existingOverlay = this.previewOverlay.get(elementId);
+ const mergedOverlay = {
+ ...existingOverlay,
+ ...elementUpdates,
+ } as Partial<TimelineElement>;
+ this.previewOverlay.set(elementId, mergedOverlay);
}
- this.updateTracks(updatedTracks);
+ const committedTracks = this.editor.scenes.getActiveScene()?.tracks ?? [];
+ this.previewTracks = this.applyPreviewOverlay(committedTracks);
+ this.notify();
}
commitPreview(): void {
- const snapshot = this.previewTracker.end();
- if (snapshot === null) return;
- const currentTracks = this.getTracks();
- const command = new TracksSnapshotCommand(snapshot, currentTracks);
+ if (this.previewOverlay.size === 0) return;
+ const committedTracks = this.editor.scenes.getActiveScene()?.tracks ?? [];
+ const afterTracks =
+ this.previewTracks ?? this.applyPreviewOverlay(committedTracks);
+ const command = new TracksSnapshotCommand(committedTracks, afterTracks);
this.editor.command.push({ command });
+ this.previewOverlay.clear();
+ this.previewTracks = null;
+ this.updateTracks(afterTracks);
}
discardPreview(): void {
- const snapshot = this.previewTracker.end();
- if (snapshot !== null) {
- this.updateTracks(snapshot);
- }
+ if (this.previewOverlay.size === 0) return;
+ this.previewOverlay.clear();
+ this.previewTracks = null;
+ this.notify();
+ }
+
+ private applyPreviewOverlay(tracks: TimelineTrack[]): TimelineTrack[] {
+ if (this.previewOverlay.size === 0) return tracks;
+ return tracks.map((track) => {
+ const hasOverlay = track.elements.some((el) =>
+ this.previewOverlay.has(el.id),
+ );
+ if (!hasOverlay) return track;
+ const newElements = track.elements.map((el) => {
+ const overlay = this.previewOverlay.get(el.id);
+ return overlay ? ({ ...el, ...overlay } as TimelineElement) : el;
+ });
+ return { ...track, elements: newElements } as TimelineTrack;
+ });
}
duplicateElements({
@@ -597,16 +673,25 @@ export class TimelineManager {
return this.editor.scenes.getActiveScene()?.tracks ?? [];
}
+ getRenderTracks(): TimelineTrack[] {
+ if (this.previewTracks !== null) return this.previewTracks;
+ return this.getTracks();
+ }
+
subscribe(listener: () => void): () => void {
this.listeners.add(listener);
return () => this.listeners.delete(listener);
}
private notify(): void {
- this.listeners.forEach((fn) => fn());
+ this.listeners.forEach((fn) => {
+ fn();
+ });
}
updateTracks(newTracks: TimelineTrack[]): void {
+ this.previewOverlay.clear();
+ this.previewTracks = null;
this.editor.scenes.updateSceneTracks({ tracks: newTracks });
this.notify();
}
diff --git a/apps/web/src/data/colors/syntax-ui.tsx b/apps/web/src/data/colors/syntax-ui.tsx
index e650b7d2..67e6ab99 100644
--- a/apps/web/src/data/colors/syntax-ui.tsx
+++ b/apps/web/src/data/colors/syntax-ui.tsx
@@ -4,7 +4,6 @@ export const syntaxUIGradients = [
// Cyan to Blue gradients
"linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)",
"linear-gradient(to right, #bfdbfe, #a5f3fc)",
- "linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)",
// Purple gradients
"linear-gradient(to right, #e9d5ff, #d8b4fe, #c084fc)",
@@ -12,7 +11,6 @@ export const syntaxUIGradients = [
// Blue gradients
"linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)",
- "linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)",
// Green gradients
"linear-gradient(to right, #6ee7b7, #34d399, #10b981)",
diff --git a/apps/web/src/hooks/actions/use-editor-actions.ts b/apps/web/src/hooks/actions/use-editor-actions.ts
index e4f378d6..bfac931b 100644
--- a/apps/web/src/hooks/actions/use-editor-actions.ts
+++ b/apps/web/src/hooks/actions/use-editor-actions.ts
@@ -1,15 +1,22 @@
"use client";
+import { useEffect, useRef } from "react";
import { useTimelineStore } from "@/stores/timeline-store";
import { useActionHandler } from "@/hooks/actions/use-action-handler";
import { useEditor } from "../use-editor";
import { useElementSelection } from "../timeline/element/use-element-selection";
import { useKeyframeSelection } from "../timeline/element/use-keyframe-selection";
import { getElementsAtTime } from "@/lib/timeline";
+import { cancelInteraction } from "@/lib/cancel-interaction";
+import { invokeAction } from "@/lib/actions";
+import {
+ activateScope,
+ clearActiveScope,
+ type ScopeEntry,
+} from "@/lib/selection/scope";
export function useEditorActions() {
const editor = useEditor();
- const activeProject = editor.project.getActive();
const { selectedElements, setElementSelection } = useElementSelection();
const { selectedKeyframes, clearKeyframeSelection } = useKeyframeSelection();
const clipboard = useTimelineStore((s) => s.clipboard);
@@ -17,6 +24,39 @@ export function useEditorActions() {
const toggleSnapping = useTimelineStore((s) => s.toggleSnapping);
const rippleEditingEnabled = useTimelineStore((s) => s.rippleEditingEnabled);
const toggleRippleEditing = useTimelineStore((s) => s.toggleRippleEditing);
+ const hasTimelineSelectionRef = useRef(false);
+ const clearTimelineSelectionRef = useRef(() => {});
+ const timelineScopeRef = useRef<ScopeEntry | null>(null);
+ const hasTimelineSelection =
+ selectedElements.length > 0 || selectedKeyframes.length > 0;
+
+ hasTimelineSelectionRef.current = hasTimelineSelection;
+ clearTimelineSelectionRef.current = () => {
+ setElementSelection({ elements: [] });
+ clearKeyframeSelection();
+ };
+
+ if (!timelineScopeRef.current) {
+ timelineScopeRef.current = {
+ hasSelection: () => hasTimelineSelectionRef.current,
+ clear: () => {
+ clearTimelineSelectionRef.current();
+ },
+ };
+ }
+
+ useEffect(() => {
+ if (!hasTimelineSelection) {
+ return;
+ }
+
+ const timelineScope = timelineScopeRef.current;
+ if (!timelineScope) {
+ return;
+ }
+
+ return activateScope({ entry: timelineScope });
+ }, [hasTimelineSelection]);
useActionHandler(
"toggle-play",
@@ -65,7 +105,7 @@ export function useEditorActions() {
useActionHandler(
"frame-step-forward",
() => {
- const fps = activeProject.settings.fps;
+ const fps = editor.project.getActive().settings.fps;
editor.playback.seek({
time: Math.min(
editor.timeline.getTotalDuration(),
@@ -79,7 +119,7 @@ export function useEditorActions() {
useActionHandler(
"frame-step-backward",
() => {
- const fps = activeProject.settings.fps;
+ const fps = editor.project.getActive().settings.fps;
editor.playback.seek({
time: Math.max(0, editor.playback.getCurrentTime() - 1 / fps),
});
@@ -241,13 +281,21 @@ export function useEditorActions() {
);
useActionHandler(
+ "cancel-interaction",
+ () => {
+ if (!cancelInteraction()) {
+ invokeAction("deselect-all");
+ }
+ },
+ undefined,
+ );
+
+ useActionHandler(
"deselect-all",
() => {
- setElementSelection({ elements: [] });
- clearKeyframeSelection();
- const activeElement = document.activeElement;
- if (activeElement instanceof HTMLButtonElement) {
- activeElement.blur();
+ if (!clearActiveScope()) {
+ setElementSelection({ elements: [] });
+ clearKeyframeSelection();
}
},
undefined,
@@ -353,4 +401,29 @@ export function useEditorActions() {
},
undefined,
);
+
+ // todo: potnetially unify these two actions:
+ useActionHandler(
+ "remove-media-asset",
+ (args) => {
+ if (!args) return;
+ editor.media.removeMediaAsset({
+ projectId: args.projectId,
+ id: args.assetId,
+ });
+ },
+ undefined,
+ );
+
+ useActionHandler(
+ "remove-media-assets",
+ (args) => {
+ if (!args) return;
+ editor.media.removeMediaAssets({
+ projectId: args.projectId,
+ ids: args.assetIds,
+ });
+ },
+ undefined,
+ );
}
diff --git a/apps/web/src/hooks/timeline/element/use-element-interaction.ts b/apps/web/src/hooks/timeline/element/use-element-interaction.ts
index ea01c718..fae8c527 100644
--- a/apps/web/src/hooks/timeline/element/use-element-interaction.ts
+++ b/apps/web/src/hooks/timeline/element/use-element-interaction.ts
@@ -18,16 +18,14 @@ import { snapTimeToFrame } from "@/lib/time";
import { computeDropTarget } from "@/lib/timeline/drop-utils";
import { getMouseTimeFromClientX } from "@/lib/timeline/drag-utils";
import { generateUUID } from "@/utils/id";
-import {
- snapElementEdge,
- type SnapPoint,
-} from "@/lib/timeline/snap-utils";
+import { snapElementEdge, type SnapPoint } from "@/lib/timeline/snap-utils";
+import { registerCanceller } from "@/lib/cancel-interaction";
import type {
DropTarget,
ElementDragState,
TimelineElement,
TimelineTrack,
-} from "@/types/timeline";
+} from "@/lib/timeline";
interface UseElementInteractionProps {
zoomLevel: number;
@@ -213,6 +211,20 @@ export function useElementInteraction({
setDragDropTarget(null);
}, []);
+ const cancelCurrentDrag = useCallback(() => {
+ pendingDragRef.current = null;
+ mouseDownLocationRef.current = null;
+ setIsPendingDrag(false);
+ endDrag();
+ onSnapPointChange?.(null);
+ }, [endDrag, onSnapPointChange]);
+
+ useEffect(() => {
+ if (!dragState.isDragging && !isPendingDrag) return;
+
+ return registerCanceller({ fn: cancelCurrentDrag });
+ }, [dragState.isDragging, isPendingDrag, cancelCurrentDrag]);
+
const getDragSnapResult = useCallback(
({
frameSnappedTime,
@@ -445,33 +457,36 @@ export function useElementInteraction({
return;
}
- if (dropTarget.isNewTrack) {
- const newTrackId = generateUUID();
+ if (dropTarget.isNewTrack) {
+ const newTrackId = generateUUID();
- editor.timeline.moveElement({
- sourceTrackId: dragState.trackId,
- targetTrackId: newTrackId,
- elementId: dragState.elementId,
- newStartTime: snappedTime,
- createTrack: { type: sourceTrack.type, index: dropTarget.trackIndex },
- rippleEnabled: rippleEditingEnabled,
- });
- selectElement({ trackId: newTrackId, elementId: dragState.elementId });
- } else {
- const targetTrack = tracks[dropTarget.trackIndex];
- if (targetTrack) {
editor.timeline.moveElement({
sourceTrackId: dragState.trackId,
- targetTrackId: targetTrack.id,
+ targetTrackId: newTrackId,
elementId: dragState.elementId,
newStartTime: snappedTime,
+ createTrack: { type: sourceTrack.type, index: dropTarget.trackIndex },
rippleEnabled: rippleEditingEnabled,
});
- if (targetTrack.id !== dragState.trackId) {
- selectElement({ trackId: targetTrack.id, elementId: dragState.elementId });
+ selectElement({ trackId: newTrackId, elementId: dragState.elementId });
+ } else {
+ const targetTrack = tracks[dropTarget.trackIndex];
+ if (targetTrack) {
+ editor.timeline.moveElement({
+ sourceTrackId: dragState.trackId,
+ targetTrackId: targetTrack.id,
+ elementId: dragState.elementId,
+ newStartTime: snappedTime,
+ rippleEnabled: rippleEditingEnabled,
+ });
+ if (targetTrack.id !== dragState.trackId) {
+ selectElement({
+ trackId: targetTrack.id,
+ elementId: dragState.elementId,
+ });
+ }
}
}
- }
endDrag();
onSnapPointChange?.(null);
@@ -520,10 +535,10 @@ export function useElementInteraction({
element: TimelineElement;
track: TimelineTrack;
}) => {
- const isRightClick = event.button === MOUSE_BUTTON_RIGHT;
+ const isRightClick = event.button === MOUSE_BUTTON_RIGHT;
- // right-click: don't stop propagation so ContextMenu can open
- if (isRightClick) {
+ // right-click: don't stop propagation so ContextMenu can open
+ if (isRightClick) {
const alreadySelected = isElementSelected({
trackId: track.id,
elementId: element.id,
@@ -538,12 +553,12 @@ export function useElementInteraction({
return;
}
- event.stopPropagation();
- mouseDownLocationRef.current = { x: event.clientX, y: event.clientY };
+ event.stopPropagation();
+ mouseDownLocationRef.current = { x: event.clientX, y: event.clientY };
- const isMultiSelect = event.metaKey || event.ctrlKey || event.shiftKey;
+ const isMultiSelect = event.metaKey || event.ctrlKey || event.shiftKey;
- if (isMultiSelect) {
+ if (isMultiSelect) {
handleSelectionClick({
trackId: track.id,
elementId: element.id,
@@ -551,7 +566,7 @@ export function useElementInteraction({
});
}
- const clickOffsetTime = getClickOffsetTime({
+ const clickOffsetTime = getClickOffsetTime({
clientX: event.clientX,
elementRect: event.currentTarget.getBoundingClientRect(),
zoomLevel,
@@ -579,9 +594,9 @@ export function useElementInteraction({
element: TimelineElement;
track: TimelineTrack;
}) => {
- event.stopPropagation();
+ event.stopPropagation();
- if (mouseDownLocationRef.current) {
+ if (mouseDownLocationRef.current) {
const deltaX = Math.abs(event.clientX - mouseDownLocationRef.current.x);
const deltaY = Math.abs(event.clientY - mouseDownLocationRef.current.y);
if (deltaX > DRAG_THRESHOLD_PX || deltaY > DRAG_THRESHOLD_PX) {
@@ -593,7 +608,7 @@ export function useElementInteraction({
// modifier keys already handled in mousedown
if (event.metaKey || event.ctrlKey || event.shiftKey) return;
- const alreadySelected = isElementSelected({
+ const alreadySelected = isElementSelected({
trackId: track.id,
elementId: element.id,
});
diff --git a/apps/web/src/hooks/timeline/element/use-element-resize.ts b/apps/web/src/hooks/timeline/element/use-element-resize.ts
index 3f49e798..b41f82f9 100644
--- a/apps/web/src/hooks/timeline/element/use-element-resize.ts
+++ b/apps/web/src/hooks/timeline/element/use-element-resize.ts
@@ -1,7 +1,7 @@
import { useState, useEffect, useRef, useCallback } from "react";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { snapTimeToFrame } from "@/lib/time";
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
+import type { TimelineElement, TimelineTrack } from "@/lib/timeline";
import { useEditor } from "@/hooks/use-editor";
import { useShiftKey } from "@/hooks/use-shift-key";
import {
@@ -9,7 +9,13 @@ import {
snapToNearestPoint,
type SnapPoint,
} from "@/lib/timeline/snap-utils";
+import { isRetimableElement } from "@/lib/timeline";
+import {
+ getSourceSpanAtClipTime,
+ getTimelineDurationForSourceSpan,
+} from "@/lib/retime";
import { useTimelineStore } from "@/stores/timeline-store";
+import { registerCanceller } from "@/lib/cancel-interaction";
export interface ResizeState {
elementId: string;
@@ -37,7 +43,6 @@ export function useTimelineElementResize({
onResizeStateChange,
}: UseTimelineElementResizeProps) {
const editor = useEditor();
- const activeProject = editor.project.getActive();
const isShiftHeldRef = useShiftKey();
const snappingEnabled = useTimelineStore((state) => state.snappingEnabled);
const rippleEditingEnabled = useTimelineStore(
@@ -91,6 +96,94 @@ export function useTimelineElementResize({
return element.sourceDuration == null;
}, [element.sourceDuration]);
+ const getSourceDeltaForClipDelta = useCallback(
+ (clipDelta: number) => {
+ if (!isRetimableElement(element)) {
+ return clipDelta;
+ }
+
+ return clipDelta >= 0
+ ? getSourceSpanAtClipTime({
+ clipTime: clipDelta,
+ retime: element.retime,
+ })
+ : -getSourceSpanAtClipTime({
+ clipTime: Math.abs(clipDelta),
+ retime: element.retime,
+ });
+ },
+ [element],
+ );
+
+ const getVisibleSourceSpanForDuration = useCallback(
+ (duration: number) => {
+ if (!isRetimableElement(element)) {
+ return duration;
+ }
+
+ return getSourceSpanAtClipTime({
+ clipTime: duration,
+ retime: element.retime,
+ });
+ },
+ [element],
+ );
+
+ const getDurationForVisibleSourceSpan = useCallback(
+ (sourceSpan: number) => {
+ if (!isRetimableElement(element)) {
+ return sourceSpan;
+ }
+
+ return getTimelineDurationForSourceSpan({
+ sourceSpan,
+ retime: element.retime,
+ });
+ },
+ [element],
+ );
+
+ const getSourceDuration = useCallback(
+ ({
+ trimStart,
+ duration,
+ trimEnd,
+ }: {
+ trimStart: number;
+ duration: number;
+ trimEnd: number;
+ }) => {
+ if (typeof element.sourceDuration === "number") {
+ return element.sourceDuration;
+ }
+
+ return trimStart + getVisibleSourceSpanForDuration(duration) + trimEnd;
+ },
+ [element.sourceDuration, getVisibleSourceSpanForDuration],
+ );
+
+ const cancelResize = useCallback(() => {
+ if (!resizing) return;
+
+ setCurrentTrimStart(resizing.initialTrimStart);
+ setCurrentTrimEnd(resizing.initialTrimEnd);
+ setCurrentStartTime(resizing.initialStartTime);
+ setCurrentDuration(resizing.initialDuration);
+ currentTrimStartRef.current = resizing.initialTrimStart;
+ currentTrimEndRef.current = resizing.initialTrimEnd;
+ currentStartTimeRef.current = resizing.initialStartTime;
+ currentDurationRef.current = resizing.initialDuration;
+ setResizing(null);
+ onResizeStateChange?.({ isResizing: false });
+ onSnapPointChange?.(null);
+ }, [resizing, onResizeStateChange, onSnapPointChange]);
+
+ useEffect(() => {
+ if (!resizing) return;
+
+ return registerCanceller({ fn: cancelResize });
+ }, [resizing, cancelResize]);
+
const updateTrimFromMouseMove = useCallback(
({ clientX }: { clientX: number }) => {
if (!resizing) return;
@@ -100,7 +193,7 @@ export function useTimelineElementResize({
deltaX / (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel);
let resizeSnapPoint: SnapPoint | null = null;
- const projectFps = activeProject.settings.fps;
+ const projectFps = editor.project.getActive().settings.fps;
const minDurationSeconds = 1 / projectFps;
const shouldSnap = snappingEnabled && !isShiftHeldRef.current;
if (shouldSnap) {
@@ -139,14 +232,20 @@ export function useTimelineElementResize({
}
onSnapPointChange?.(resizeSnapPoint);
- const otherElements = track.elements.filter(({ id }) => id !== element.id);
- const initialEndTime = resizing.initialStartTime + resizing.initialDuration;
+ const otherElements = track.elements.filter(
+ ({ id }) => id !== element.id,
+ );
+ const initialEndTime =
+ resizing.initialStartTime + resizing.initialDuration;
const rightNeighborBound =
resizing.side === "right"
? otherElements
.filter(({ startTime }) => startTime >= initialEndTime)
- .reduce((min, { startTime }) => Math.min(min, startTime), Infinity)
+ .reduce(
+ (min, { startTime }) => Math.min(min, startTime),
+ Infinity,
+ )
: Infinity;
const leftNeighborBound =
@@ -164,20 +263,26 @@ export function useTimelineElementResize({
: -Infinity;
if (resizing.side === "left") {
- const sourceDuration =
- resizing.initialTrimStart +
- resizing.initialDuration +
- resizing.initialTrimEnd;
+ const sourceDuration = getSourceDuration({
+ trimStart: resizing.initialTrimStart,
+ duration: resizing.initialDuration,
+ trimEnd: resizing.initialTrimEnd,
+ });
const minTrimStartForNeighbor = Number.isFinite(leftNeighborBound)
? Math.max(
0,
resizing.initialTrimStart +
- (leftNeighborBound - resizing.initialStartTime),
+ getSourceDeltaForClipDelta(
+ leftNeighborBound - resizing.initialStartTime,
+ ),
)
: 0;
const maxAllowed =
- sourceDuration - resizing.initialTrimEnd - minDurationSeconds;
- const calculated = resizing.initialTrimStart + deltaTime;
+ sourceDuration -
+ resizing.initialTrimEnd -
+ getVisibleSourceSpanForDuration(minDurationSeconds);
+ const calculated =
+ resizing.initialTrimStart + getSourceDeltaForClipDelta(deltaTime);
if (calculated >= 0 && calculated <= maxAllowed) {
const newTrimStart = snapTimeToFrame({
@@ -187,13 +292,17 @@ export function useTimelineElementResize({
),
fps: projectFps,
});
- const trimDelta = newTrimStart - resizing.initialTrimStart;
- const newStartTime = snapTimeToFrame({
- time: resizing.initialStartTime + trimDelta,
+ const visibleSourceSpan = Math.max(
+ 0,
+ sourceDuration - newTrimStart - resizing.initialTrimEnd,
+ );
+ const newDuration = snapTimeToFrame({
+ time: getDurationForVisibleSourceSpan(visibleSourceSpan),
fps: projectFps,
});
- const newDuration = snapTimeToFrame({
- time: resizing.initialDuration - trimDelta,
+ const trimDelta = resizing.initialDuration - newDuration;
+ const newStartTime = snapTimeToFrame({
+ time: resizing.initialStartTime + trimDelta,
fps: projectFps,
});
@@ -233,31 +342,50 @@ export function useTimelineElementResize({
currentStartTimeRef.current = newStartTime;
currentDurationRef.current = newDuration;
} else {
- const trimDelta =
+ const leftBound = Number.isFinite(leftNeighborBound)
+ ? leftNeighborBound
+ : 0;
+ const trimDeltaFromTrimStart =
minTrimStartForNeighbor - resizing.initialTrimStart;
- const newStartTime = snapTimeToFrame({
- time: resizing.initialStartTime + trimDelta,
+ const trimDeltaFromStartTime = getSourceDeltaForClipDelta(
+ leftBound - resizing.initialStartTime,
+ );
+ const trimDelta = Math.max(
+ trimDeltaFromTrimStart,
+ trimDeltaFromStartTime,
+ );
+ const newTrimStart = resizing.initialTrimStart + trimDelta;
+ const visibleSourceSpan = Math.max(
+ 0,
+ sourceDuration - newTrimStart - resizing.initialTrimEnd,
+ );
+ const newDuration = snapTimeToFrame({
+ time: getDurationForVisibleSourceSpan(visibleSourceSpan),
fps: projectFps,
});
- const newDuration = snapTimeToFrame({
- time: resizing.initialDuration - trimDelta,
+ const newStartTime = snapTimeToFrame({
+ time:
+ resizing.initialStartTime +
+ (resizing.initialDuration - newDuration),
fps: projectFps,
});
- setCurrentTrimStart(minTrimStartForNeighbor);
+ setCurrentTrimStart(newTrimStart);
setCurrentStartTime(newStartTime);
setCurrentDuration(newDuration);
- currentTrimStartRef.current = minTrimStartForNeighbor;
+ currentTrimStartRef.current = newTrimStart;
currentStartTimeRef.current = newStartTime;
currentDurationRef.current = newDuration;
}
}
} else {
- const sourceDuration =
- resizing.initialTrimStart +
- resizing.initialDuration +
- resizing.initialTrimEnd;
- const newTrimEnd = resizing.initialTrimEnd - deltaTime;
+ const sourceDuration = getSourceDuration({
+ trimStart: resizing.initialTrimStart,
+ duration: resizing.initialDuration,
+ trimEnd: resizing.initialTrimEnd,
+ });
+ const newTrimEnd =
+ resizing.initialTrimEnd - getSourceDeltaForClipDelta(deltaTime);
const maxAllowedDuration = Number.isFinite(rightNeighborBound)
? rightNeighborBound - resizing.initialStartTime
: Infinity;
@@ -268,7 +396,10 @@ export function useTimelineElementResize({
const baseDuration =
resizing.initialDuration + resizing.initialTrimEnd;
const newDuration = snapTimeToFrame({
- time: Math.min(baseDuration + extensionNeeded, maxAllowedDuration),
+ time: Math.min(
+ baseDuration + extensionNeeded,
+ maxAllowedDuration,
+ ),
fps: projectFps,
});
@@ -277,12 +408,11 @@ export function useTimelineElementResize({
currentDurationRef.current = newDuration;
currentTrimEndRef.current = 0;
} else {
- const extensionToLimit = resizing.initialTrimEnd;
+ const unclampedDuration = getDurationForVisibleSourceSpan(
+ Math.max(0, sourceDuration - resizing.initialTrimStart),
+ );
const newDuration = snapTimeToFrame({
- time: Math.min(
- resizing.initialDuration + extensionToLimit,
- maxAllowedDuration,
- ),
+ time: Math.min(unclampedDuration, maxAllowedDuration),
fps: projectFps,
});
@@ -295,13 +425,15 @@ export function useTimelineElementResize({
const minTrimEndForNeighbor = Number.isFinite(maxAllowedDuration)
? Math.max(
0,
- resizing.initialDuration +
- resizing.initialTrimEnd -
- maxAllowedDuration,
+ sourceDuration -
+ resizing.initialTrimStart -
+ getVisibleSourceSpanForDuration(maxAllowedDuration),
)
: 0;
const maxTrimEnd =
- sourceDuration - resizing.initialTrimStart - minDurationSeconds;
+ sourceDuration -
+ resizing.initialTrimStart -
+ getVisibleSourceSpanForDuration(minDurationSeconds);
const clampedTrimEnd = Math.min(
maxTrimEnd,
Math.max(minTrimEndForNeighbor, newTrimEnd),
@@ -310,9 +442,12 @@ export function useTimelineElementResize({
time: clampedTrimEnd,
fps: projectFps,
});
- const trimDelta = finalTrimEnd - resizing.initialTrimEnd;
+ const visibleSourceSpan = Math.max(
+ 0,
+ sourceDuration - resizing.initialTrimStart - finalTrimEnd,
+ );
const newDuration = snapTimeToFrame({
- time: resizing.initialDuration - trimDelta,
+ time: getDurationForVisibleSourceSpan(visibleSourceSpan),
fps: projectFps,
});
@@ -326,13 +461,16 @@ export function useTimelineElementResize({
[
resizing,
zoomLevel,
- activeProject.settings.fps,
snappingEnabled,
editor,
element.id,
track.elements,
onSnapPointChange,
canExtendElementDuration,
+ getDurationForVisibleSourceSpan,
+ getSourceDeltaForClipDelta,
+ getSourceDuration,
+ getVisibleSourceSpanForDuration,
isShiftHeldRef,
],
);
@@ -349,7 +487,12 @@ export function useTimelineElementResize({
const startTimeChanged = finalStartTime !== resizing.initialStartTime;
const durationChanged = finalDuration !== resizing.initialDuration;
- if (trimStartChanged || trimEndChanged || startTimeChanged || durationChanged) {
+ if (
+ trimStartChanged ||
+ trimEndChanged ||
+ startTimeChanged ||
+ durationChanged
+ ) {
editor.timeline.updateElementTrim({
elementId: element.id,
trimStart: finalTrimStart,
diff --git a/apps/web/src/hooks/timeline/element/use-element-selection.ts b/apps/web/src/hooks/timeline/element/use-element-selection.ts
index c1e5b53f..dcfb5720 100644
--- a/apps/web/src/hooks/timeline/element/use-element-selection.ts
+++ b/apps/web/src/hooks/timeline/element/use-element-selection.ts
@@ -1,14 +1,10 @@
-import { useCallback, useSyncExternalStore } from "react";
+import { useCallback } from "react";
import { useEditor } from "@/hooks/use-editor";
-
-type ElementRef = { trackId: string; elementId: string };
+import type { ElementRef } from "@/lib/timeline/types";
export function useElementSelection() {
const editor = useEditor();
- const selectedElements = useSyncExternalStore(
- (listener) => editor.selection.subscribe(listener),
- () => editor.selection.getSelectedElements(),
- );
+ const selectedElements = useEditor((e) => e.selection.getSelectedElements());
const isElementSelected = useCallback(
({ trackId, elementId }: ElementRef) =>
@@ -82,6 +78,30 @@ export function useElementSelection() {
[editor],
);
+
+ /**
+ * Merges elements into the current selection, deduplicating by identity.
+ * Used for additive box-select where the pre-drag selection is preserved.
+ */
+ const mergeElementsIntoSelection = useCallback(
+ ({ elements }: { elements: ElementRef[] }) => {
+ const merged = [
+ ...selectedElements.filter(
+ (selectedElement) =>
+ !elements.some(
+ (element) =>
+ element.trackId === selectedElement.trackId &&
+ element.elementId === selectedElement.elementId,
+ ),
+ ),
+ ...elements,
+ ];
+ editor.selection.setSelectedElements({ elements: merged });
+ },
+ [selectedElements, editor],
+ );
+
+
/**
* Handles click interaction on an element.
* - Regular click: select only this element
@@ -107,6 +127,7 @@ export function useElementSelection() {
isElementSelected,
selectElement,
setElementSelection,
+ mergeElementsIntoSelection,
addElementToSelection,
removeElementFromSelection,
toggleElementSelection,
diff --git a/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts b/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts
index b18db6eb..4f961a0a 100644
--- a/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts
+++ b/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts
@@ -15,9 +15,10 @@ import {
} from "@/constants/timeline-constants";
import { RetimeKeyframeCommand } from "@/lib/commands/timeline/element/keyframes/retime-keyframe";
import { BatchCommand } from "@/lib/commands";
-import type { SelectedKeyframeRef } from "@/types/animation";
-import type { TimelineElement } from "@/types/timeline";
+import type { SelectedKeyframeRef } from "@/lib/animation/types";
+import type { TimelineElement } from "@/lib/timeline";
import type { Command } from "@/lib/commands/base-command";
+import { registerCanceller } from "@/lib/cancel-interaction";
export interface KeyframeDragState {
isDragging: boolean;
draggingKeyframeIds: Set<string>;
@@ -69,6 +70,13 @@ export function useKeyframeDrag({
setDragState(initialDragState);
}, []);
+ const cancelDrag = useCallback(() => {
+ pendingDragRef.current = null;
+ mouseDownXRef.current = null;
+ setIsPendingDrag(false);
+ endDrag();
+ }, [endDrag]);
+
const commitDrag = useCallback(
({
keyframeRefs,
@@ -110,6 +118,12 @@ export function useKeyframeDrag({
useEffect(() => {
if (!dragState.isDragging && !isPendingDrag) return;
+ return registerCanceller({ fn: cancelDrag });
+ }, [dragState.isDragging, isPendingDrag, cancelDrag]);
+
+ useEffect(() => {
+ if (!dragState.isDragging && !isPendingDrag) return;
+
const handleMouseMove = ({ clientX }: MouseEvent) => {
if (isPendingDrag && pendingDragRef.current) {
const deltaX = Math.abs(clientX - pendingDragRef.current.startMouseX);
diff --git a/apps/web/src/hooks/timeline/element/use-keyframe-selection.ts b/apps/web/src/hooks/timeline/element/use-keyframe-selection.ts
index 0ab05fe3..8634cb48 100644
--- a/apps/web/src/hooks/timeline/element/use-keyframe-selection.ts
+++ b/apps/web/src/hooks/timeline/element/use-keyframe-selection.ts
@@ -1,6 +1,6 @@
import { useCallback, useSyncExternalStore } from "react";
import { useEditor } from "@/hooks/use-editor";
-import type { SelectedKeyframeRef } from "@/types/animation";
+import type { SelectedKeyframeRef } from "@/lib/animation/types";
function getSelectedKeyframeId({
keyframe,
diff --git a/apps/web/src/hooks/timeline/use-bookmark-drag.ts b/apps/web/src/hooks/timeline/use-bookmark-drag.ts
index 0e7fabd5..512db821 100644
--- a/apps/web/src/hooks/timeline/use-bookmark-drag.ts
+++ b/apps/web/src/hooks/timeline/use-bookmark-drag.ts
@@ -15,7 +15,7 @@ import {
snapToNearestPoint,
type SnapPoint,
} from "@/lib/timeline/snap-utils";
-import type { Bookmark } from "@/types/timeline";
+import type { Bookmark } from "@/lib/timeline";
export interface BookmarkDragState {
isDragging: boolean;
diff --git a/apps/web/src/hooks/timeline/use-initial-scroll-bottom.ts b/apps/web/src/hooks/timeline/use-initial-scroll-bottom.ts
new file mode 100644
index 00000000..50833f14
--- /dev/null
+++ b/apps/web/src/hooks/timeline/use-initial-scroll-bottom.ts
@@ -0,0 +1,42 @@
+import { type RefObject, useLayoutEffect, useRef } from "react";
+
+interface UseInitialScrollBottomProps {
+ tracksScrollRef: RefObject<HTMLDivElement | null>;
+ trackLabelsScrollRef: RefObject<HTMLDivElement | null>;
+ onAfterScroll?: () => void;
+ /** Defers the scroll until there is at least one track to measure against. */
+ isReady: boolean;
+}
+
+/**
+ * Scrolls the timeline tracks viewport to the bottom once on mount.
+ * useLayoutEffect runs synchronously after React commits the DOM but before
+ * the browser paints, so the initial scroll position is never visible.
+ */
+export function useInitialScrollBottom({
+ tracksScrollRef,
+ trackLabelsScrollRef,
+ onAfterScroll,
+ isReady,
+}: UseInitialScrollBottomProps): void {
+ const hasScrolledRef = useRef(false);
+
+ useLayoutEffect(() => {
+ if (!isReady || hasScrolledRef.current) return;
+
+ const viewport = tracksScrollRef.current;
+ if (!viewport) return;
+
+ const maxScrollTop = viewport.scrollHeight - viewport.clientHeight;
+ if (maxScrollTop <= 0) return;
+
+ viewport.scrollTop = maxScrollTop;
+
+ if (trackLabelsScrollRef.current) {
+ trackLabelsScrollRef.current.scrollTop = maxScrollTop;
+ }
+
+ onAfterScroll?.();
+ hasScrolledRef.current = true;
+ }, [isReady, tracksScrollRef, trackLabelsScrollRef, onAfterScroll]);
+}
diff --git a/apps/web/src/hooks/timeline/use-snap-indicator-position.ts b/apps/web/src/hooks/timeline/use-snap-indicator-position.ts
index f3e63894..1a8f3c5d 100644
--- a/apps/web/src/hooks/timeline/use-snap-indicator-position.ts
+++ b/apps/web/src/hooks/timeline/use-snap-indicator-position.ts
@@ -1,13 +1,10 @@
import { useEffect, useState } from "react";
import { timelineTimeToSnappedPixels } from "@/lib/timeline";
-import type { TimelineTrack } from "@/types/timeline";
-
+import { TRACK_LABELS_WIDTH_PX } from "@/constants/timeline-constants";
interface UseSnapIndicatorPositionParams {
snapPoint: { time: number } | null;
zoomLevel: number;
- tracks: TimelineTrack[];
timelineRef: React.RefObject<HTMLDivElement | null>;
- trackLabelsRef?: React.RefObject<HTMLDivElement | null>;
tracksScrollRef: React.RefObject<HTMLDivElement | null>;
}
@@ -20,9 +17,7 @@ interface SnapIndicatorPosition {
export function useSnapIndicatorPosition({
snapPoint,
zoomLevel,
- tracks,
timelineRef,
- trackLabelsRef,
tracksScrollRef,
}: UseSnapIndicatorPositionParams): SnapIndicatorPosition {
const [scrollLeft, setScrollLeft] = useState(0);
@@ -45,16 +40,11 @@ export function useSnapIndicatorPosition({
const timelineContainerHeight = timelineRef.current?.offsetHeight || 400;
const totalHeight = timelineContainerHeight - 8; // 8px padding from edges
- const trackLabelsWidth =
- tracks.length > 0 && trackLabelsRef?.current
- ? trackLabelsRef.current.offsetWidth
- : 0;
-
const timelinePosition = timelineTimeToSnappedPixels({
time: snapPoint?.time ?? 0,
zoomLevel,
});
- const leftPosition = trackLabelsWidth + timelinePosition - scrollLeft;
+ const leftPosition = TRACK_LABELS_WIDTH_PX + timelinePosition - scrollLeft;
return {
leftPosition,
diff --git a/apps/web/src/hooks/timeline/use-timeline-drag-drop.ts b/apps/web/src/hooks/timeline/use-timeline-drag-drop.ts
index 8a30785e..e8f6e49d 100644
--- a/apps/web/src/hooks/timeline/use-timeline-drag-drop.ts
+++ b/apps/web/src/hooks/timeline/use-timeline-drag-drop.ts
@@ -2,26 +2,28 @@ import { useState, useCallback, type RefObject } from "react";
import { useEditor } from "@/hooks/use-editor";
import { processMediaAssets } from "@/lib/media/processing";
import { toast } from "sonner";
+import { showMediaUploadToast } from "@/lib/media/upload-toast";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { snapTimeToFrame } from "@/lib/time";
import {
buildTextElement,
+ buildGraphicElement,
buildStickerElement,
buildElementFromMedia,
buildEffectElement,
} from "@/lib/timeline/element-utils";
-import type { Command } from "@/lib/commands/base-command";
-import { AddMediaAssetCommand } from "@/lib/commands/media";
import { AddTrackCommand, InsertElementCommand } from "@/lib/commands/timeline";
import { BatchCommand } from "@/lib/commands";
import { computeDropTarget } from "@/lib/timeline/drop-utils";
import { getDragData, hasDragData } from "@/lib/drag-data";
-import type { TrackType, DropTarget, ElementType } from "@/types/timeline";
+import { isMainTrack } from "@/lib/timeline/track-utils";
+import type { TrackType, DropTarget, ElementType } from "@/lib/timeline";
import type {
MediaDragData,
+ GraphicDragData,
StickerDragData,
EffectDragData,
-} from "@/types/drag";
+} from "@/lib/timeline/drag";
interface UseTimelineDragDropProps {
containerRef: RefObject<HTMLDivElement | null>;
@@ -41,17 +43,12 @@ export function useTimelineDragDrop({
const [dropTarget, setDropTarget] = useState<DropTarget | null>(null);
const [dragElementType, setElementType] = useState<ElementType | null>(null);
- const tracks = editor.timeline.getTracks();
- const currentTime = editor.playback.getCurrentTime();
- const mediaAssets = editor.media.getAssets();
- const activeProject = editor.project.getActive();
-
const getSnappedTime = useCallback(
({ time }: { time: number }) => {
- const projectFps = activeProject.settings.fps;
+ const projectFps = editor.project.getActive().settings.fps;
return snapTimeToFrame({ time, fps: projectFps });
},
- [activeProject.settings.fps],
+ [editor],
);
const getElementType = useCallback(
@@ -60,6 +57,7 @@ export function useTimelineDragDrop({
if (!dragData) return null;
if (dragData.type === "text") return "text";
+ if (dragData.type === "graphic") return "graphic";
if (dragData.type === "sticker") return "sticker";
if (dragData.type === "effect") return "effect";
if (dragData.type === "media") {
@@ -80,18 +78,20 @@ export function useTimelineDragDrop({
}): number => {
if (
elementType === "text" ||
+ elementType === "graphic" ||
elementType === "sticker" ||
elementType === "effect"
) {
return TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
}
if (mediaId) {
+ const mediaAssets = editor.media.getAssets();
const media = mediaAssets.find((m) => m.id === mediaId);
return media?.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
}
return TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
},
- [mediaAssets],
+ [editor],
);
const handleDragEnter = useCallback((e: React.DragEvent) => {
@@ -148,6 +148,8 @@ export function useTimelineDragDrop({
? (dragData as MediaDragData).targetElementTypes
: undefined;
+ const tracks = editor.timeline.getTracks();
+ const currentTime = editor.playback.getCurrentTime();
const target = computeDropTarget({
elementType,
mouseX,
@@ -170,12 +172,11 @@ export function useTimelineDragDrop({
containerRef,
headerRef,
tracksScrollRef,
- tracks,
- currentTime,
zoomLevel,
getElementType,
getElementDuration,
getSnappedTime,
+ editor,
],
);
@@ -228,6 +229,7 @@ export function useTimelineDragDrop({
return;
}
+ const tracks = editor.timeline.getTracks();
const track = tracks[target.trackIndex];
if (!track) return;
editor.timeline.insertElement({
@@ -235,7 +237,7 @@ export function useTimelineDragDrop({
element,
});
},
- [editor.command, editor.timeline, tracks],
+ [editor],
);
const executeStickerDrop = useCallback(
@@ -253,7 +255,45 @@ export function useTimelineDragDrop({
});
if (target.isNewTrack) {
- const addTrackCmd = new AddTrackCommand("sticker", target.trackIndex);
+ const addTrackCmd = new AddTrackCommand("graphic", target.trackIndex);
+ const insertCmd = new InsertElementCommand({
+ element,
+ placement: { mode: "explicit", trackId: addTrackCmd.getTrackId() },
+ });
+ editor.command.execute({
+ command: new BatchCommand([addTrackCmd, insertCmd]),
+ });
+ return;
+ }
+
+ const tracks = editor.timeline.getTracks();
+ const track = tracks[target.trackIndex];
+ if (!track) return;
+ editor.timeline.insertElement({
+ placement: { mode: "explicit", trackId: track.id },
+ element,
+ });
+ },
+ [editor],
+ );
+
+ const executeGraphicDrop = useCallback(
+ ({
+ target,
+ dragData,
+ }: {
+ target: DropTarget;
+ dragData: GraphicDragData;
+ }) => {
+ const element = buildGraphicElement({
+ definitionId: dragData.definitionId,
+ name: dragData.name,
+ startTime: target.xPosition,
+ params: dragData.params,
+ });
+
+ if (target.isNewTrack) {
+ const addTrackCmd = new AddTrackCommand("graphic", target.trackIndex);
const insertCmd = new InsertElementCommand({
element,
placement: { mode: "explicit", trackId: addTrackCmd.getTrackId() },
@@ -264,6 +304,7 @@ export function useTimelineDragDrop({
return;
}
+ const tracks = editor.timeline.getTracks();
const track = tracks[target.trackIndex];
if (!track) return;
editor.timeline.insertElement({
@@ -271,7 +312,7 @@ export function useTimelineDragDrop({
element,
});
},
- [editor.command, editor.timeline, tracks],
+ [editor],
);
const executeMediaDrop = useCallback(
@@ -281,6 +322,7 @@ export function useTimelineDragDrop({
return;
}
+ const mediaAssets = editor.media.getAssets();
const mediaAsset = mediaAssets.find((m) => m.id === dragData.id);
if (!mediaAsset) return;
@@ -309,6 +351,7 @@ export function useTimelineDragDrop({
return;
}
+ const tracks = editor.timeline.getTracks();
const track = tracks[target.trackIndex];
if (!track) return;
editor.timeline.insertElement({
@@ -316,7 +359,7 @@ export function useTimelineDragDrop({
element,
});
},
- [editor.command, editor.timeline, mediaAssets, tracks],
+ [editor],
);
const executeEffectDrop = useCallback(
@@ -336,6 +379,7 @@ export function useTimelineDragDrop({
return;
}
+ const tracks = editor.timeline.getTracks();
const effectTrack = tracks.find((t) => t.type === "effect");
let trackId: string;
@@ -370,7 +414,7 @@ export function useTimelineDragDrop({
element,
});
},
- [editor.command, editor.timeline, tracks],
+ [editor],
);
const executeFileDrop = useCallback(
@@ -383,70 +427,98 @@ export function useTimelineDragDrop({
mouseX: number;
mouseY: number;
}) => {
+ const activeProject = editor.project.getActiveOrNull();
if (!activeProject) return;
- const processedAssets = await processMediaAssets({ files });
- const projectId = activeProject.metadata.id;
+ await showMediaUploadToast({
+ filesCount: files.length,
+ promise: async () => {
+ const processedAssets = await processMediaAssets({ files });
+ const projectId = activeProject.metadata.id;
- for (const asset of processedAssets) {
- const duration =
- asset.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
- const currentTracks = editor.timeline.getTracks();
- const dropTarget = computeDropTarget({
- elementType: asset.type,
- mouseX,
- mouseY,
- tracks: currentTracks,
- playheadTime: currentTime,
- isExternalDrop: true,
- elementDuration: duration,
- pixelsPerSecond: TIMELINE_CONSTANTS.PIXELS_PER_SECOND,
- zoomLevel,
- });
+ for (const asset of processedAssets) {
+ const createdAsset = await editor.media.addMediaAsset({
+ projectId,
+ asset,
+ });
+ if (!createdAsset) continue;
- const trackType: TrackType = asset.type === "audio" ? "audio" : "video";
- const addMediaCmd = new AddMediaAssetCommand(projectId, asset);
- const assetId = addMediaCmd.getAssetId();
+ const duration =
+ createdAsset.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
+ const currentTracks = editor.timeline.getTracks();
+ const currentTime = editor.playback.getCurrentTime();
+ const onlyTrack = currentTracks[0];
+ const reuseMainTrackId =
+ createdAsset.type !== "audio" &&
+ currentTracks.length === 1 &&
+ !!onlyTrack &&
+ isMainTrack(onlyTrack) &&
+ onlyTrack.elements.length === 0
+ ? onlyTrack.id
+ : null;
+ const dropTarget = reuseMainTrackId
+ ? null
+ : computeDropTarget({
+ elementType: createdAsset.type,
+ mouseX,
+ mouseY,
+ tracks: currentTracks,
+ playheadTime: currentTime,
+ isExternalDrop: true,
+ elementDuration: duration,
+ pixelsPerSecond: TIMELINE_CONSTANTS.PIXELS_PER_SECOND,
+ zoomLevel,
+ });
- const commands: Command[] = [addMediaCmd];
+ const trackType: TrackType =
+ createdAsset.type === "audio" ? "audio" : "video";
- let trackId: string | undefined;
- if (dropTarget.isNewTrack) {
- const addTrackCmd = new AddTrackCommand(
- trackType,
- dropTarget.trackIndex,
- );
- trackId = addTrackCmd.getTrackId();
- commands.unshift(addTrackCmd);
- } else {
- trackId = currentTracks[dropTarget.trackIndex]?.id;
- }
+ let trackId: string | undefined;
+ if (reuseMainTrackId) {
+ trackId = reuseMainTrackId;
+ } else {
+ if (!dropTarget) continue;
+ if (dropTarget.isNewTrack) {
+ const addTrackCmd = new AddTrackCommand(
+ trackType,
+ dropTarget.trackIndex,
+ );
+ trackId = addTrackCmd.getTrackId();
+ editor.command.execute({ command: addTrackCmd });
+ } else {
+ trackId = currentTracks[dropTarget.trackIndex]?.id;
+ }
+ }
- if (!trackId) return;
+ if (!trackId) continue;
- const element = buildElementFromMedia({
- mediaId: assetId,
- mediaType: asset.type,
- name: asset.name,
- duration,
- startTime: dropTarget.xPosition,
- buffer:
- asset.type === "audio"
- ? new AudioBuffer({ length: 1, sampleRate: 44100 })
- : undefined,
- });
+ const element = buildElementFromMedia({
+ mediaId: createdAsset.id,
+ mediaType: createdAsset.type,
+ name: createdAsset.name,
+ duration,
+ startTime: dropTarget?.xPosition ?? currentTime,
+ buffer:
+ createdAsset.type === "audio"
+ ? new AudioBuffer({ length: 1, sampleRate: 44100 })
+ : undefined,
+ });
- const insertCmd = new InsertElementCommand({
- element,
- placement: { mode: "explicit", trackId },
- });
- commands.push(insertCmd);
+ const insertCmd = new InsertElementCommand({
+ element,
+ placement: { mode: "explicit", trackId },
+ });
+ editor.command.execute({ command: insertCmd });
+ }
- const batchCmd = new BatchCommand(commands);
- editor.command.execute({ command: batchCmd });
- }
+ return {
+ uploadedCount: processedAssets.length,
+ assetNames: processedAssets.map((asset) => asset.name),
+ };
+ },
+ });
},
- [activeProject, editor.command, editor.timeline, currentTime, zoomLevel],
+ [editor, zoomLevel],
);
const handleDrop = useCallback(
@@ -471,6 +543,11 @@ export function useTimelineDragDrop({
if (dragData.type === "text") {
executeTextDrop({ target: currentTarget, dragData });
+ } else if (dragData.type === "graphic") {
+ executeGraphicDrop({
+ target: currentTarget,
+ dragData: dragData as GraphicDragData,
+ });
} else if (dragData.type === "sticker") {
executeStickerDrop({ target: currentTarget, dragData });
} else if (dragData.type === "effect") {
@@ -502,12 +579,12 @@ export function useTimelineDragDrop({
}
} catch (err) {
console.error("Failed to process drop:", err);
- toast.error("Failed to process drop");
}
},
[
dropTarget,
executeTextDrop,
+ executeGraphicDrop,
executeStickerDrop,
executeMediaDrop,
executeEffectDrop,
diff --git a/apps/web/src/hooks/timeline/use-timeline-playhead.ts b/apps/web/src/hooks/timeline/use-timeline-playhead.ts
index 1426a003..e6204f23 100644
--- a/apps/web/src/hooks/timeline/use-timeline-playhead.ts
+++ b/apps/web/src/hooks/timeline/use-timeline-playhead.ts
@@ -1,12 +1,13 @@
import { getSnappedSeekTime } from "@/lib/time";
-import { useState, useEffect, useCallback, useRef } from "react";
+import { useEffect, useCallback, useRef } from "react";
import { useEdgeAutoScroll } from "@/hooks/timeline/use-edge-auto-scroll";
import { useEditor } from "../use-editor";
import { useShiftKey } from "@/hooks/use-shift-key";
+import { findSnapPoints, snapToNearestPoint } from "@/lib/timeline/snap-utils";
import {
- findSnapPoints,
- snapToNearestPoint,
-} from "@/lib/timeline/snap-utils";
+ getCenteredLineLeft,
+ timelineTimeToSnappedPixels,
+} from "@/lib/timeline";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
interface UseTimelinePlayheadProps {
@@ -25,27 +26,33 @@ export function useTimelinePlayhead({
playheadRef,
}: UseTimelinePlayheadProps) {
const editor = useEditor();
+ const isScrubbing = useEditor((e) => e.playback.getIsScrubbing());
const activeProject = editor.project.getActive();
- const currentTime = editor.playback.getCurrentTime();
const duration = editor.timeline.getTotalDuration();
- const isPlaying = editor.playback.getIsPlaying();
- const isScrubbing = editor.playback.getIsScrubbing();
const isShiftHeldRef = useShiftKey();
+ const zoomLevelRef = useRef(zoomLevel);
+ const durationRef = useRef(duration);
+ const isScrubbingRef = useRef(isScrubbing);
+ const isPlayingRef = useRef(false);
+
+ useEffect(() => {
+ zoomLevelRef.current = zoomLevel;
+ durationRef.current = duration;
+ isScrubbingRef.current = isScrubbing;
+ isPlayingRef.current = editor.playback.getIsPlaying();
+ }, [zoomLevel, duration, isScrubbing, editor.playback]);
+
const seek = useCallback(
({ time }: { time: number }) => editor.playback.seek({ time }),
[editor.playback],
);
- const [scrubTime, setScrubTime] = useState<number | null>(null);
-
- const [isDraggingRuler, setIsDraggingRuler] = useState(false);
- const [hasDraggedRuler, setHasDraggedRuler] = useState(false);
+ const scrubTimeRef = useRef<number | null>(null);
+ const isDraggingRulerRef = useRef(false);
+ const hasDraggedRulerRef = useRef(false);
const lastMouseXRef = useRef<number>(0);
- const playheadPosition =
- isScrubbing && scrubTime !== null ? scrubTime : currentTime;
-
const handleScrub = useCallback(
({
event,
@@ -86,8 +93,7 @@ export function useTimelinePlayhead({
const time = (() => {
if (!shouldSnap) return frameTime;
const tracks = editor.timeline.getTracks();
- const bookmarks =
- editor.scenes.getActiveScene()?.bookmarks ?? [];
+ const bookmarks = editor.scenes.getActiveScene()?.bookmarks ?? [];
const snapPoints = findSnapPoints({
tracks,
playheadTime: frameTime,
@@ -102,7 +108,7 @@ export function useTimelinePlayhead({
return snapResult.snapPoint ? snapResult.snappedTime : frameTime;
})();
- setScrubTime(time);
+ scrubTimeRef.current = time;
seek({ time });
lastMouseXRef.current = event.clientX;
@@ -132,17 +138,16 @@ export function useTimelinePlayhead({
const handleRulerMouseDown = useCallback(
({ event }: { event: React.MouseEvent }) => {
if (event.button !== 0) return;
-
if (playheadRef?.current?.contains(event.target as Node)) return;
event.preventDefault();
- setIsDraggingRuler(true);
- setHasDraggedRuler(false);
+ isDraggingRulerRef.current = true;
+ hasDraggedRulerRef.current = false;
- editor.playback.setScrubbing({ isScrubbing: true });
- handleScrub({ event, snappingEnabled: false });
- },
- [handleScrub, playheadRef, editor.playback],
+ editor.playback.setScrubbing({ isScrubbing: true });
+ handleScrub({ event, snappingEnabled: false });
+ },
+ [handleScrub, playheadRef, editor.playback],
);
const handlePlayheadMouseDownEvent = useCallback(
@@ -168,31 +173,32 @@ export function useTimelinePlayhead({
const handleMouseMove = ({ event }: { event: MouseEvent }) => {
handleScrub({ event });
- if (isDraggingRuler) {
- setHasDraggedRuler(true);
+ if (isDraggingRulerRef.current) {
+ hasDraggedRulerRef.current = true;
}
};
const handleMouseUp = ({ event }: { event: MouseEvent }) => {
editor.playback.setScrubbing({ isScrubbing: false });
- if (scrubTime !== null) {
- seek({ time: scrubTime });
+ const finalTime = scrubTimeRef.current;
+ if (finalTime !== null) {
+ seek({ time: finalTime });
editor.project.setTimelineViewState({
viewState: {
zoomLevel,
scrollLeft: tracksScrollRef.current?.scrollLeft ?? 0,
- playheadTime: scrubTime,
+ playheadTime: finalTime,
},
});
}
- setScrubTime(null);
+ scrubTimeRef.current = null;
- if (isDraggingRuler) {
- setIsDraggingRuler(false);
- if (!hasDraggedRuler) {
+ if (isDraggingRulerRef.current) {
+ isDraggingRulerRef.current = false;
+ if (!hasDraggedRulerRef.current) {
handleScrub({ event, snappingEnabled: false });
}
- setHasDraggedRuler(false);
+ hasDraggedRulerRef.current = false;
}
};
@@ -206,55 +212,79 @@ export function useTimelinePlayhead({
window.removeEventListener("mousemove", onMouseMove);
window.removeEventListener("mouseup", onMouseUp);
};
- }, [
- isScrubbing,
- scrubTime,
- seek,
- handleScrub,
- isDraggingRuler,
- hasDraggedRuler,
- editor,
- tracksScrollRef,
- zoomLevel,
- ]);
+ }, [isScrubbing, seek, handleScrub, editor, tracksScrollRef, zoomLevel]);
+
+ const updatePlayheadLeft = useCallback(
+ (time: number) => {
+ const playheadEl = playheadRef?.current;
+ if (!playheadEl) return;
+ const centerPosition = timelineTimeToSnappedPixels({
+ time,
+ zoomLevel: zoomLevelRef.current,
+ });
+ const leftPosition = getCenteredLineLeft({ centerPixel: centerPosition });
+ const scrollLeft = rulerScrollRef.current?.scrollLeft ?? 0;
+ playheadEl.style.left = `${leftPosition - scrollLeft}px`;
+ },
+ [playheadRef, rulerScrollRef],
+ );
useEffect(() => {
- if (!isPlaying || isScrubbing) return;
+ const scrollEl = rulerScrollRef.current;
+ if (!scrollEl) return;
- const rulerViewport = rulerScrollRef.current;
- const tracksViewport = tracksScrollRef.current;
- if (!rulerViewport || !tracksViewport) return;
+ const handleScroll = () => {
+ updatePlayheadLeft(editor.playback.getCurrentTime());
+ };
- const playheadPixels =
- playheadPosition * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;
- const viewportWidth = rulerViewport.clientWidth;
- const scrollMinimum = 0;
- const scrollMaximum = rulerViewport.scrollWidth - viewportWidth;
+ scrollEl.addEventListener("scroll", handleScroll, { passive: true });
+ return () => scrollEl.removeEventListener("scroll", handleScroll);
+ }, [editor.playback, rulerScrollRef, updatePlayheadLeft]);
- const needsScroll =
- playheadPixels < rulerViewport.scrollLeft ||
- playheadPixels > rulerViewport.scrollLeft + viewportWidth;
+ useEffect(() => {
+ const handlePlaybackUpdate = (e: Event) => {
+ const time = (e as CustomEvent<{ time: number }>).detail.time;
+ updatePlayheadLeft(time);
- if (needsScroll) {
- const desiredScroll = Math.max(
- scrollMinimum,
- Math.min(scrollMaximum, playheadPixels - viewportWidth / 2),
- );
- rulerViewport.scrollLeft = tracksViewport.scrollLeft = desiredScroll;
- }
- }, [
- playheadPosition,
- zoomLevel,
- rulerScrollRef,
- tracksScrollRef,
- isScrubbing,
- isPlaying,
- ]);
+ if (!isPlayingRef.current || isScrubbingRef.current) return;
+ const rulerViewport = rulerScrollRef.current;
+ const tracksViewport = tracksScrollRef.current;
+ if (!rulerViewport || !tracksViewport) return;
+
+ const playheadPixels =
+ time * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevelRef.current;
+ const viewportWidth = rulerViewport.clientWidth;
+ const scrollMinimum = 0;
+ const scrollMaximum = rulerViewport.scrollWidth - viewportWidth;
+
+ const needsScroll =
+ playheadPixels < rulerViewport.scrollLeft ||
+ playheadPixels > rulerViewport.scrollLeft + viewportWidth;
+
+ if (needsScroll) {
+ const desiredScroll = Math.max(
+ scrollMinimum,
+ Math.min(scrollMaximum, playheadPixels - viewportWidth / 2),
+ );
+ rulerViewport.scrollLeft = tracksViewport.scrollLeft = desiredScroll;
+ }
+ };
+
+ const initialTime = editor.playback.getCurrentTime();
+ handlePlaybackUpdate({
+ detail: { time: initialTime },
+ } as CustomEvent<{ time: number }>);
+
+ window.addEventListener("playback-update", handlePlaybackUpdate);
+ window.addEventListener("playback-seek", handlePlaybackUpdate);
+ return () => {
+ window.removeEventListener("playback-update", handlePlaybackUpdate);
+ window.removeEventListener("playback-seek", handlePlaybackUpdate);
+ };
+ }, [editor.playback, rulerScrollRef, tracksScrollRef, updatePlayheadLeft]);
return {
- playheadPosition,
handlePlayheadMouseDown: handlePlayheadMouseDownEvent,
handleRulerMouseDown: handleRulerMouseDownEvent,
- isDraggingRuler,
};
}
diff --git a/apps/web/src/hooks/timeline/use-timeline-zoom.ts b/apps/web/src/hooks/timeline/use-timeline-zoom.ts
index 095c64dc..64a0fb58 100644
--- a/apps/web/src/hooks/timeline/use-timeline-zoom.ts
+++ b/apps/web/src/hooks/timeline/use-timeline-zoom.ts
@@ -81,18 +81,22 @@ export function useTimelineZoom({
return;
}
- // pinch-zoom (ctrl/meta + wheel)
- if (isZoomGesture) {
- const zoomMultiplier = event.deltaY > 0 ? 1 / 1.1 : 1.1;
- setZoomLevel((prev) => {
- const nextZoom = Math.max(
- minZoom,
- Math.min(TIMELINE_CONSTANTS.ZOOM_MAX, prev * zoomMultiplier),
- );
- return nextZoom;
- });
- return;
- }
+ // pinch-zoom (ctrl/meta + wheel)
+ if (isZoomGesture) {
+ const normalizedDelta =
+ event.deltaMode === 1 ? event.deltaY * 16 : event.deltaY;
+ const cappedDelta =
+ Math.sign(normalizedDelta) * Math.min(Math.abs(normalizedDelta), 30);
+ const zoomFactor = Math.exp(-cappedDelta / 300);
+ setZoomLevel((prev) => {
+ const nextZoom = Math.max(
+ minZoom,
+ Math.min(TIMELINE_CONSTANTS.ZOOM_MAX, prev * zoomFactor),
+ );
+ return nextZoom;
+ });
+ return;
+ }
},
[minZoom, setZoomLevel],
);
diff --git a/apps/web/src/hooks/use-container-size.ts b/apps/web/src/hooks/use-container-size.ts
index 8b46f20e..6f6f89be 100644
--- a/apps/web/src/hooks/use-container-size.ts
+++ b/apps/web/src/hooks/use-container-size.ts
@@ -1,4 +1,5 @@
-import { useEffect, useState } from "react";
+import { useCallback, useState } from "react";
+import { useResizeObserver } from "./use-resize-observer";
export function useContainerSize({
containerRef,
@@ -7,23 +8,12 @@ export function useContainerSize({
}) {
const [size, setSize] = useState({ width: 0, height: 0 });
- useEffect(() => {
- const container = containerRef.current;
- if (!container) return;
+ const onResize = useCallback((entry: ResizeObserverEntry) => {
+ const { width, height } = entry.contentRect;
+ setSize({ width, height });
+ }, []);
- const observer = new ResizeObserver((entries) => {
- for (const entry of entries) {
- const { width, height } = entry.contentRect;
- setSize({ width, height });
- }
- });
-
- observer.observe(container);
-
- return () => {
- observer.disconnect();
- };
- }, [containerRef]);
+ useResizeObserver({ ref: containerRef, onResize });
return size;
}
diff --git a/apps/web/src/hooks/use-editor.ts b/apps/web/src/hooks/use-editor.ts
index ff3e2db1..e211a85b 100644
--- a/apps/web/src/hooks/use-editor.ts
+++ b/apps/web/src/hooks/use-editor.ts
@@ -1,39 +1,58 @@
import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
import { EditorCore } from "@/core";
-export function useEditor(): EditorCore {
+function isShallowEqual(a: unknown, b: unknown): boolean {
+ if (Object.is(a, b)) return true;
+ if (!Array.isArray(a) || !Array.isArray(b)) return false;
+ if (a.length !== b.length) return false;
+ return a.every((item, i) => Object.is(item, b[i]));
+}
+
+const subscribeNone = () => () => {};
+
+export function useEditor(): EditorCore;
+export function useEditor<T>(selector: (editor: EditorCore) => T): T;
+export function useEditor<T>(
+ selector?: (editor: EditorCore) => T,
+): EditorCore | T {
const editor = useMemo(() => EditorCore.getInstance(), []);
- const versionRef = useRef(0);
+ const selectorRef = useRef(selector);
+ selectorRef.current = selector;
- const subscribe = useCallback(
- (onStoreChange: () => void) => {
- const handleStoreChange = () => {
- versionRef.current += 1;
- onStoreChange();
- };
+ const snapshotCacheRef = useRef<unknown>(undefined);
+ const subscribeAll = useCallback(
+ (onChange: () => void) => {
const unsubscribers = [
- editor.playback.subscribe(handleStoreChange),
- editor.timeline.subscribe(handleStoreChange),
- editor.scenes.subscribe(handleStoreChange),
- editor.project.subscribe(handleStoreChange),
- editor.media.subscribe(handleStoreChange),
- editor.renderer.subscribe(handleStoreChange),
- editor.selection.subscribe(handleStoreChange),
+ editor.playback.subscribe(onChange),
+ editor.timeline.subscribe(onChange),
+ editor.scenes.subscribe(onChange),
+ editor.project.subscribe(onChange),
+ editor.media.subscribe(onChange),
+ editor.renderer.subscribe(onChange),
+ editor.selection.subscribe(onChange),
];
-
return () => {
- for (const unsubscribe of unsubscribers) {
+ unsubscribers.forEach((unsubscribe) => {
unsubscribe();
- }
+ });
};
},
[editor],
);
- const getSnapshot = useCallback(() => versionRef.current, []);
-
- useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
+ const getSnapshot = useCallback(() => {
+ const next = selectorRef.current ? selectorRef.current(editor) : editor;
+ if (isShallowEqual(snapshotCacheRef.current, next)) {
+ return snapshotCacheRef.current;
+ }
+ snapshotCacheRef.current = next;
+ return next;
+ }, [editor]);
- return editor;
+ return useSyncExternalStore(
+ selector ? subscribeAll : subscribeNone,
+ getSnapshot,
+ getSnapshot,
+ ) as EditorCore | T;
}
diff --git a/apps/web/src/hooks/use-effect-preview.ts b/apps/web/src/hooks/use-effect-preview.ts
deleted file mode 100644
index a84781e0..00000000
--- a/apps/web/src/hooks/use-effect-preview.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { useEffect, useRef } from "react";
-import { effectPreviewService } from "@/services/renderer/effect-preview";
-import type { EffectParamValues } from "@/types/effects";
-
-export function useEffectPreview({
- effectType,
- params,
- canvasRef,
- isActive,
-}: {
- effectType: string;
- params: EffectParamValues;
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
- isActive: boolean;
-}): void {
- const requestRef = useRef<number>(0);
-
- useEffect(() => {
- if (!isActive) {
- if (requestRef.current) {
- cancelAnimationFrame(requestRef.current);
- requestRef.current = 0;
- }
- return;
- }
-
- const loop = (): void => {
- const canvas = canvasRef.current;
- if (canvas) {
- effectPreviewService.renderPreview({
- effectType,
- params,
- targetCanvas: canvas,
- });
- }
- requestRef.current = requestAnimationFrame(loop);
- };
-
- requestRef.current = requestAnimationFrame(loop);
-
- return () => {
- if (requestRef.current) {
- cancelAnimationFrame(requestRef.current);
- }
- };
- }, [effectType, params, canvasRef, isActive]);
-}
diff --git a/apps/web/src/hooks/use-element-preview.ts b/apps/web/src/hooks/use-element-preview.ts
new file mode 100644
index 00000000..8aa16501
--- /dev/null
+++ b/apps/web/src/hooks/use-element-preview.ts
@@ -0,0 +1,38 @@
+import { useEditor } from "@/hooks/use-editor";
+import type { TimelineElement } from "@/lib/timeline";
+
+/**
+ * Subscribes to render tracks and returns the live (preview-aware) version of
+ * an element alongside helpers for previewing and committing updates.
+ *
+ * Use this wherever property fields need to reflect in-progress preview state
+ * (e.g. a slider being dragged) rather than the last committed value.
+ */
+export function useElementPreview<T extends TimelineElement>({
+ trackId,
+ elementId,
+ fallback,
+}: {
+ trackId: string;
+ elementId: string;
+ fallback: T;
+}) {
+ const editor = useEditor();
+ useEditor((e) => e.timeline.getRenderTracks());
+
+ const renderElement =
+ (editor.timeline
+ .getRenderTracks()
+ .find((t) => t.id === trackId)
+ ?.elements.find((el) => el.id === elementId) as T | undefined) ??
+ fallback;
+
+ const previewUpdates = (updates: Partial<TimelineElement>) =>
+ editor.timeline.previewElements({
+ updates: [{ trackId, elementId, updates }],
+ });
+
+ const commit = () => editor.timeline.commitPreview();
+
+ return { renderElement, previewUpdates, commit };
+}
diff --git a/apps/web/src/hooks/use-file-upload.ts b/apps/web/src/hooks/use-file-upload.ts
index 19badd98..d174e002 100644
--- a/apps/web/src/hooks/use-file-upload.ts
+++ b/apps/web/src/hooks/use-file-upload.ts
@@ -4,7 +4,7 @@ import { hasDragData } from "@/lib/drag-data";
interface UseFileUploadOptions {
accept?: string;
multiple?: boolean;
- onFilesSelected?: (files: FileList) => void;
+ onFilesSelected?: (files: File[]) => void;
}
function containsFiles(dataTransfer: DataTransfer): boolean {
@@ -29,8 +29,8 @@ export function useFileUpload({
}
function handleFileChange(event: React.ChangeEvent<HTMLInputElement>) {
- const files = event.target.files;
- if (files && files.length > 0 && onFilesSelected) {
+ const files = Array.from(event.target.files ?? []);
+ if (files.length > 0 && onFilesSelected) {
onFilesSelected(files);
}
@@ -71,15 +71,13 @@ export function useFileUpload({
dragCounterRef.current = 0;
if (onFilesSelected && containsFiles(e.dataTransfer)) {
- const files = e.dataTransfer.files;
+ const files = Array.from(e.dataTransfer.files);
const shouldUseMultiple = multiple ?? false;
if (shouldUseMultiple) {
onFilesSelected(files);
} else if (files.length > 0) {
- const dataTransfer = new DataTransfer();
- dataTransfer.items.add(files[0]);
- onFilesSelected(dataTransfer.files);
+ onFilesSelected([files[0]]);
}
}
}
diff --git a/apps/web/src/hooks/use-font-atlas.ts b/apps/web/src/hooks/use-font-atlas.ts
new file mode 100644
index 00000000..7d6b87e9
--- /dev/null
+++ b/apps/web/src/hooks/use-font-atlas.ts
@@ -0,0 +1,53 @@
+import { useState, useMemo, useCallback, useEffect } from "react";
+import {
+ getCachedFontAtlas,
+ loadFontAtlas,
+ clearFontAtlasCache,
+} from "@/lib/fonts/google-fonts";
+import type { FontAtlas } from "@/lib/fonts/types";
+import { SYSTEM_FONTS } from "@/constants/font-constants";
+
+type Status = "idle" | "loading" | "error";
+
+export function useFontAtlas({ open }: { open: boolean }) {
+ const [atlas, setAtlas] = useState<FontAtlas | null>(() =>
+ getCachedFontAtlas(),
+ );
+ const [status, setStatus] = useState<Status>(() =>
+ getCachedFontAtlas() ? "idle" : "loading",
+ );
+
+ useEffect(() => {
+ if (!open || atlas) return;
+
+ setStatus("loading");
+ loadFontAtlas().then((data) => {
+ if (data) {
+ setAtlas(data);
+ setStatus("idle");
+ } else {
+ setStatus("error");
+ }
+ });
+ }, [open, atlas]);
+
+ const retry = useCallback(() => {
+ clearFontAtlasCache();
+ setStatus("loading");
+ loadFontAtlas().then((data) => {
+ if (data) {
+ setAtlas(data);
+ setStatus("idle");
+ } else {
+ setStatus("error");
+ }
+ });
+ }, []);
+
+ const fontNames = useMemo(() => {
+ if (!atlas) return [];
+ return [...Object.keys(atlas.fonts), ...SYSTEM_FONTS].sort();
+ }, [atlas]);
+
+ return { atlas, status, fontNames, retry };
+}
diff --git a/apps/web/src/hooks/use-keybindings.ts b/apps/web/src/hooks/use-keybindings.ts
index e59d1eaf..69a4e847 100644
--- a/apps/web/src/hooks/use-keybindings.ts
+++ b/apps/web/src/hooks/use-keybindings.ts
@@ -1,6 +1,8 @@
import { useEffect } from "react";
import { invokeAction } from "@/lib/actions";
import { useKeybindingsStore } from "@/stores/keybindings-store";
+import { useTimelineStore } from "@/stores/timeline-store";
+import { isTypableDOMElement } from "@/utils/browser";
/**
* a composable that hooks to the caller component's
@@ -8,31 +10,141 @@ import { useKeybindingsStore } from "@/stores/keybindings-store";
* the appropriate actions based on keybindings
*/
export function useKeybindingsListener() {
- const { keybindings, getKeybindingString, keybindingsEnabled, isRecording } =
- useKeybindingsStore();
+ const {
+ keybindings,
+ getKeybindingString,
+ overlayDepth,
+ isLoadingProject,
+ isRecording,
+ } = useKeybindingsStore();
+ const clipboard = useTimelineStore((state) => state.clipboard);
useEffect(() => {
const eventOptions: AddEventListenerOptions = { capture: true };
+ // #region agent log
+ fetch("http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H1",
+ location: "use-keybindings.ts:effect",
+ message: "Keybindings listener mounted",
+ data: {
+ overlayDepth,
+ isLoadingProject,
+ isRecording,
+ keybindingCount: Object.keys(keybindings).length,
+ },
+ timestamp: Date.now(),
+ }),
+ }).catch(() => {});
+ // #endregion
const handleKeyDown = (ev: KeyboardEvent) => {
- // do not check keybinds if the mode is disabled
- if (!keybindingsEnabled) return;
- // ignore key events if user is changing keybindings
- if (isRecording) return;
+ const normalizedKey = (ev.key ?? "").toLowerCase();
+ const shouldLogKey =
+ ev.code === "Space" ||
+ ev.code.startsWith("Key") ||
+ ["escape", "delete", "backspace", "enter"].includes(normalizedKey);
- const binding = getKeybindingString(ev);
- if (!binding) return;
-
- const boundAction = keybindings[binding];
- if (!boundAction) return;
+ if (overlayDepth > 0 || isLoadingProject || isRecording) {
+ if (shouldLogKey) {
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H2",
+ location: "use-keybindings.ts:blocked",
+ message: "Shortcut blocked by runtime gate",
+ data: {
+ key: ev.key,
+ code: ev.code,
+ overlayDepth,
+ isLoadingProject,
+ isRecording,
+ targetTag:
+ ev.target instanceof HTMLElement ? ev.target.tagName : null,
+ },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ }
+ return;
+ }
+ const binding = getKeybindingString(ev);
const activeElement = document.activeElement;
const isTextInput =
- activeElement &&
- (activeElement.tagName === "INPUT" ||
- activeElement.tagName === "TEXTAREA" ||
- (activeElement as HTMLElement).isContentEditable);
+ activeElement instanceof HTMLElement &&
+ isTypableDOMElement({ element: activeElement });
+ const boundAction = binding ? keybindings[binding] : undefined;
+
+ if (shouldLogKey || binding || boundAction) {
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: !binding ? "H3" : isTextInput ? "H5" : "H4",
+ location: "use-keybindings.ts:keydown",
+ message: "Shortcut keydown observed",
+ data: {
+ key: ev.key,
+ code: ev.code,
+ binding,
+ boundAction: boundAction ?? null,
+ isTextInput,
+ keybindingCount: Object.keys(keybindings).length,
+ activeTag:
+ activeElement instanceof HTMLElement
+ ? activeElement.tagName
+ : null,
+ targetTag:
+ ev.target instanceof HTMLElement ? ev.target.tagName : null,
+ },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ }
+
+ if (normalizedKey === "escape" && isTextInput) {
+ activeElement.blur();
+ return;
+ }
+
+ if (!binding) return;
+ if (!boundAction) return;
if (isTextInput) return;
+ if (boundAction === "paste-copied") {
+ if (!clipboard?.items.length) return;
+ ev.preventDefault();
+ invokeAction("paste-copied", undefined, "keypress");
+ return;
+ }
ev.preventDefault();
@@ -59,17 +171,12 @@ export function useKeybindingsListener() {
return () => {
document.removeEventListener("keydown", handleKeyDown, eventOptions);
};
- }, [keybindings, getKeybindingString, keybindingsEnabled, isRecording]);
-}
-
-/**
- * this composable allows for the UI component to be disabled if the component in question is mounted
- */
-export function useKeybindingDisabler() {
- const { disableKeybindings, enableKeybindings } = useKeybindingsStore();
-
- return {
- disableKeybindings,
- enableKeybindings,
- };
+ }, [
+ keybindings,
+ getKeybindingString,
+ overlayDepth,
+ isLoadingProject,
+ isRecording,
+ clipboard,
+ ]);
}
diff --git a/apps/web/src/hooks/use-mask-handles.ts b/apps/web/src/hooks/use-mask-handles.ts
new file mode 100644
index 00000000..c3e83304
--- /dev/null
+++ b/apps/web/src/hooks/use-mask-handles.ts
@@ -0,0 +1,258 @@
+import { useCallback, useEffect, useRef, useState } from "react";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
+import { useEditor } from "@/hooks/use-editor";
+import { useShiftKey } from "@/hooks/use-shift-key";
+import { masksRegistry } from "@/lib/masks";
+import {
+ getMaskHandlePositions,
+ getLineMaskLinePoints,
+} from "@/lib/masks/handle-positions";
+import { snapMaskInteraction } from "@/lib/masks/snap";
+import { getVisibleElementsWithBounds } from "@/lib/preview/element-bounds";
+import {
+ SNAP_THRESHOLD_SCREEN_PIXELS,
+ type SnapLine,
+} from "@/lib/preview/preview-snap";
+import type { ParamValues } from "@/lib/params";
+import type {
+ BaseMaskParams,
+ MaskHandlePosition,
+ MaskLinePoints,
+} from "@/lib/masks/types";
+import type { MaskableElement } from "@/lib/timeline";
+import { registerCanceller } from "@/lib/cancel-interaction";
+
+interface DragState {
+ trackId: string;
+ elementId: string;
+ handleId: string;
+ startCanvasX: number;
+ startCanvasY: number;
+ startParams: BaseMaskParams & ParamValues;
+}
+
+export function useMaskHandles({
+ onSnapLinesChange,
+}: {
+ onSnapLinesChange?: (lines: SnapLine[]) => void;
+}) {
+ const editor = useEditor();
+ const isShiftHeldRef = useShiftKey();
+ const viewport = usePreviewViewport();
+ const [activeHandleId, setActiveHandleId] = useState<string | null>(null);
+ const dragStateRef = useRef<DragState | null>(null);
+ const captureRef = useRef<{ element: HTMLElement; pointerId: number } | null>(
+ null,
+ );
+
+ const tracks = useEditor((e) => e.timeline.getRenderTracks());
+ const currentTime = useEditor((e) => e.playback.getCurrentTime());
+ const mediaAssets = useEditor((e) => e.media.getAssets());
+ const canvasSize = useEditor(
+ (e) => e.project.getActive().settings.canvasSize,
+ );
+ const selectedElements = useEditor((e) => e.selection.getSelectedElements());
+
+ const elementsWithBounds = getVisibleElementsWithBounds({
+ tracks,
+ currentTime,
+ canvasSize,
+ mediaAssets,
+ });
+
+ const selectedWithMask =
+ selectedElements.length === 1
+ ? (() => {
+ const sel = selectedElements[0];
+ const entry = elementsWithBounds.find(
+ (item) =>
+ item.trackId === sel.trackId && item.elementId === sel.elementId,
+ );
+ if (!entry) return null;
+ const element = entry.element as MaskableElement;
+ if (!element.masks?.length) return null;
+ return { ...entry, element, mask: element.masks[0] };
+ })()
+ : null;
+
+ const handlePositions: MaskHandlePosition[] = selectedWithMask
+ ? (() => {
+ const def = masksRegistry.get(selectedWithMask.mask.type);
+ const { x: scaleX, y: scaleY } = viewport.getDisplayScale();
+ const displayScale = (scaleX + scaleY) / 2;
+ return getMaskHandlePositions({
+ overlayShape: def.overlayShape,
+ features: def.features,
+ params: selectedWithMask.mask.params,
+ bounds: selectedWithMask.bounds,
+ displayScale,
+ });
+ })()
+ : [];
+
+ const linePoints: MaskLinePoints | null =
+ selectedWithMask?.mask.type === "split"
+ ? getLineMaskLinePoints({
+ centerX: selectedWithMask.mask.params.centerX,
+ centerY: selectedWithMask.mask.params.centerY,
+ rotation: selectedWithMask.mask.params.rotation,
+ bounds: selectedWithMask.bounds,
+ })
+ : null;
+
+ const clearMaskHandleState = useCallback(() => {
+ dragStateRef.current = null;
+ setActiveHandleId(null);
+ onSnapLinesChange?.([]);
+ }, [onSnapLinesChange]);
+
+ const releaseCapturedPointer = useCallback(() => {
+ const capture = captureRef.current;
+ if (!capture) return;
+
+ if (capture.element.hasPointerCapture(capture.pointerId)) {
+ capture.element.releasePointerCapture(capture.pointerId);
+ }
+
+ captureRef.current = null;
+ }, []);
+
+ useEffect(() => {
+ if (!activeHandleId) return;
+
+ return registerCanceller({
+ fn: () => {
+ editor.timeline.discardPreview();
+ clearMaskHandleState();
+ releaseCapturedPointer();
+ },
+ });
+ }, [
+ activeHandleId,
+ clearMaskHandleState,
+ editor.timeline,
+ releaseCapturedPointer,
+ ]);
+
+ const handlePointerDown = useCallback(
+ ({ event, handleId }: { event: React.PointerEvent; handleId: string }) => {
+ if (!selectedWithMask) return;
+ event.stopPropagation();
+
+ const pos = viewport.screenToCanvas({
+ clientX: event.clientX,
+ clientY: event.clientY,
+ });
+ if (!pos) return;
+
+ dragStateRef.current = {
+ trackId: selectedWithMask.trackId,
+ elementId: selectedWithMask.elementId,
+ handleId,
+ startCanvasX: pos.x,
+ startCanvasY: pos.y,
+ startParams: { ...selectedWithMask.mask.params },
+ };
+ setActiveHandleId(handleId);
+ const captureTarget = event.currentTarget as HTMLElement;
+ captureTarget.setPointerCapture(event.pointerId);
+ captureRef.current = {
+ element: captureTarget,
+ pointerId: event.pointerId,
+ };
+ },
+ [selectedWithMask, viewport],
+ );
+
+ const handlePointerMove = useCallback(
+ ({ event }: { event: React.PointerEvent }) => {
+ const drag = dragStateRef.current;
+ if (!drag || !selectedWithMask) return;
+
+ const pos = viewport.screenToCanvas({
+ clientX: event.clientX,
+ clientY: event.clientY,
+ });
+ if (!pos) return;
+
+ const deltaX = pos.x - drag.startCanvasX;
+ const deltaY = pos.y - drag.startCanvasY;
+ const def = masksRegistry.get(selectedWithMask.mask.type);
+
+ const rawParams = def.computeParamUpdate({
+ handleId: drag.handleId,
+ startParams: drag.startParams,
+ deltaX,
+ deltaY,
+ startCanvasX: drag.startCanvasX,
+ startCanvasY: drag.startCanvasY,
+ bounds: selectedWithMask.bounds,
+ canvasSize,
+ });
+ const proposedParams = { ...drag.startParams, ...rawParams };
+
+ const snapThreshold = viewport.screenPixelsToLogicalThreshold({
+ screenPixels: SNAP_THRESHOLD_SCREEN_PIXELS,
+ });
+ const { params: nextParams, activeLines } = isShiftHeldRef.current
+ ? { params: proposedParams, activeLines: [] as SnapLine[] }
+ : snapMaskInteraction({
+ handleId: drag.handleId,
+ startParams: drag.startParams,
+ proposedParams,
+ bounds: selectedWithMask.bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ onSnapLinesChange?.(activeLines);
+
+ const updatedMask = {
+ ...selectedWithMask.mask,
+ params: nextParams,
+ };
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId: drag.trackId,
+ elementId: drag.elementId,
+ updates: {
+ masks: [
+ updatedMask,
+ ...(selectedWithMask.element.masks?.slice(1) ?? []),
+ ],
+ } as Partial<MaskableElement>,
+ },
+ ],
+ });
+ },
+ [
+ selectedWithMask,
+ canvasSize,
+ editor,
+ isShiftHeldRef,
+ onSnapLinesChange,
+ viewport,
+ ],
+ );
+
+ const handlePointerUp = useCallback(() => {
+ if (dragStateRef.current) {
+ editor.timeline.commitPreview();
+ clearMaskHandleState();
+ }
+ releaseCapturedPointer();
+ },
+ [clearMaskHandleState, editor, releaseCapturedPointer],
+ );
+
+ return {
+ selectedWithMask,
+ handlePositions,
+ linePoints,
+ activeHandleId,
+ handlePointerDown,
+ handlePointerMove,
+ handlePointerUp,
+ };
+}
diff --git a/apps/web/src/hooks/use-menu-preview.ts b/apps/web/src/hooks/use-menu-preview.ts
new file mode 100644
index 00000000..a17ee278
--- /dev/null
+++ b/apps/web/src/hooks/use-menu-preview.ts
@@ -0,0 +1,26 @@
+import { useRef } from "react";
+import { useEditor } from "@/hooks/use-editor";
+
+export function useMenuPreview() {
+ const editor = useEditor();
+ const didCommitRef = useRef(false);
+
+ const discard = () => {
+ if (!didCommitRef.current && editor.timeline.isPreviewActive()) {
+ editor.timeline.discardPreview();
+ }
+ };
+
+ const markCommitted = () => {
+ didCommitRef.current = true;
+ };
+
+ const onOpenChange = (isOpen: boolean) => {
+ if (!isOpen) {
+ discard();
+ didCommitRef.current = false;
+ }
+ };
+
+ return { onPointerLeave: discard, onOpenChange, markCommitted };
+}
diff --git a/apps/web/src/hooks/use-paste-media.ts b/apps/web/src/hooks/use-paste-media.ts
index 4533ab28..8f362a12 100644
--- a/apps/web/src/hooks/use-paste-media.ts
+++ b/apps/web/src/hooks/use-paste-media.ts
@@ -1,14 +1,15 @@
import { useEffect } from "react";
-import { toast } from "sonner";
import { useEditor } from "@/hooks/use-editor";
import { processMediaAssets } from "@/lib/media/processing";
+import { showMediaUploadToast } from "@/lib/media/upload-toast";
+import { invokeAction } from "@/lib/actions";
import { buildElementFromMedia } from "@/lib/timeline/element-utils";
import { AddMediaAssetCommand } from "@/lib/commands/media";
import { InsertElementCommand } from "@/lib/commands/timeline";
import { BatchCommand } from "@/lib/commands";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { isTypableDOMElement } from "@/utils/browser";
-import type { MediaType } from "@/types/assets";
+import type { MediaType } from "@/lib/media/types";
const MEDIA_MIME_PREFIXES: MediaType[] = ["image", "video", "audio"];
@@ -40,6 +41,7 @@ export function usePasteMedia() {
useEffect(() => {
const handlePaste = async (event: ClipboardEvent) => {
const activeElement = document.activeElement as HTMLElement;
+
if (activeElement && isTypableDOMElement({ element: activeElement })) {
return;
}
@@ -47,7 +49,11 @@ export function usePasteMedia() {
const files = extractMediaFilesFromClipboard({
clipboardData: event.clipboardData,
});
- if (files.length === 0) return;
+ if (files.length === 0) {
+ event.preventDefault();
+ invokeAction("paste-copied");
+ return;
+ }
event.preventDefault();
@@ -55,41 +61,50 @@ export function usePasteMedia() {
if (!activeProject) return;
try {
- const processedAssets = await processMediaAssets({ files });
- const startTime = editor.playback.getCurrentTime();
+ await showMediaUploadToast({
+ filesCount: files.length,
+ promise: async () => {
+ const processedAssets = await processMediaAssets({ files });
+ const startTime = editor.playback.getCurrentTime();
+
+ for (const asset of processedAssets) {
+ const addMediaCmd = new AddMediaAssetCommand(
+ activeProject.metadata.id,
+ asset,
+ );
+ const assetId = addMediaCmd.getAssetId();
+ const duration =
+ asset.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
+ const trackType = asset.type === "audio" ? "audio" : "video";
- for (const asset of processedAssets) {
- const addMediaCmd = new AddMediaAssetCommand(
- activeProject.metadata.id,
- asset,
- );
- const assetId = addMediaCmd.getAssetId();
- const duration =
- asset.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION;
- const trackType = asset.type === "audio" ? "audio" : "video";
+ const element = buildElementFromMedia({
+ mediaId: assetId,
+ mediaType: asset.type,
+ name: asset.name,
+ duration,
+ startTime,
+ buffer:
+ asset.type === "audio"
+ ? new AudioBuffer({ length: 1, sampleRate: 44100 })
+ : undefined,
+ });
- const element = buildElementFromMedia({
- mediaId: assetId,
- mediaType: asset.type,
- name: asset.name,
- duration,
- startTime,
- buffer:
- asset.type === "audio"
- ? new AudioBuffer({ length: 1, sampleRate: 44100 })
- : undefined,
- });
+ const insertCmd = new InsertElementCommand({
+ element,
+ placement: { mode: "auto", trackType },
+ });
+ const batchCmd = new BatchCommand([addMediaCmd, insertCmd]);
+ editor.command.execute({ command: batchCmd });
+ }
- const insertCmd = new InsertElementCommand({
- element,
- placement: { mode: "auto", trackType },
- });
- const batchCmd = new BatchCommand([addMediaCmd, insertCmd]);
- editor.command.execute({ command: batchCmd });
- }
+ return {
+ uploadedCount: processedAssets.length,
+ assetNames: processedAssets.map((asset) => asset.name),
+ };
+ },
+ });
} catch (error) {
console.error("Failed to paste media:", error);
- toast.error("Failed to paste media");
}
};
diff --git a/apps/web/src/hooks/use-preview-interaction.ts b/apps/web/src/hooks/use-preview-interaction.ts
index d29f2a4b..90fa0450 100644
--- a/apps/web/src/hooks/use-preview-interaction.ts
+++ b/apps/web/src/hooks/use-preview-interaction.ts
@@ -1,28 +1,50 @@
import { useCallback, useEffect, useRef, useState } from "react";
import { useEditor } from "@/hooks/use-editor";
import { useShiftKey } from "@/hooks/use-shift-key";
-import type { TextElement, Transform } from "@/types/timeline";
-import { getVisibleElementsWithBounds } from "@/lib/preview/element-bounds";
-import { hitTest } from "@/lib/preview/hit-test";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
+import type { Transform } from "@/lib/rendering";
+import type { ElementRef, TextElement } from "@/lib/timeline";
import {
- screenPixelsToLogicalThreshold,
- screenToCanvas,
-} from "@/lib/preview/preview-coords";
+ getVisibleElementsWithBounds,
+ type ElementWithBounds,
+} from "@/lib/preview/element-bounds";
+import {
+ getHitElements,
+ hitTest,
+ resolvePreferredHit,
+} from "@/lib/preview/hit-test";
import { isVisualElement } from "@/lib/timeline/element-utils";
import {
SNAP_THRESHOLD_SCREEN_PIXELS,
snapPosition,
type SnapLine,
} from "@/lib/preview/preview-snap";
+import { registerCanceller } from "@/lib/cancel-interaction";
+
+export type OnSnapLinesChange = (lines: SnapLine[]) => void;
const MIN_DRAG_DISTANCE = 0.5;
-interface DragState {
+interface CapturedPointerState {
+ pointerId: number;
+ captureTarget: HTMLElement;
+}
+
+interface PendingGestureState extends CapturedPointerState {
+ startX: number;
+ startY: number;
+ topmostHit: ElementWithBounds | null;
+ selectedHit: ElementWithBounds | null;
+ selectedElements: ElementRef[];
+}
+
+interface DragState extends CapturedPointerState {
startX: number;
startY: number;
bounds: {
width: number;
height: number;
+ rotation: number;
};
elements: Array<{
trackId: string;
@@ -31,15 +53,56 @@ interface DragState {
}>;
}
+function isSameElementRef({
+ left,
+ right,
+}: {
+ left: ElementRef;
+ right: ElementRef;
+}): boolean {
+ return left.trackId === right.trackId && left.elementId === right.elementId;
+}
+
+function buildDragSelection({
+ selectedElements,
+ dragTarget,
+}: {
+ selectedElements: ElementRef[];
+ dragTarget: ElementWithBounds;
+}): ElementRef[] {
+ const dragTargetRef = {
+ trackId: dragTarget.trackId,
+ elementId: dragTarget.elementId,
+ };
+
+ if (
+ !selectedElements.some((selectedElement) =>
+ isSameElementRef({ left: selectedElement, right: dragTargetRef }),
+ )
+ ) {
+ return [dragTargetRef];
+ }
+
+ return [
+ dragTargetRef,
+ ...selectedElements.filter(
+ (selectedElement) =>
+ !isSameElementRef({ left: selectedElement, right: dragTargetRef }),
+ ),
+ ];
+}
+
export function usePreviewInteraction({
- canvasRef,
+ onSnapLinesChange,
+ isMaskMode = false,
}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
+ onSnapLinesChange?: OnSnapLinesChange;
+ isMaskMode?: boolean;
}) {
const editor = useEditor();
const isShiftHeldRef = useShiftKey();
+ const viewport = usePreviewViewport();
const [isDragging, setIsDragging] = useState(false);
- const [snapLines, setSnapLines] = useState<SnapLine[]>([]);
const [editingText, setEditingText] = useState<{
trackId: string;
elementId: string;
@@ -47,13 +110,30 @@ export function usePreviewInteraction({
originalOpacity: number;
} | null>(null);
const dragStateRef = useRef<DragState | null>(null);
+ const pendingGestureRef = useRef<PendingGestureState | null>(null);
const wasPlayingRef = useRef(editor.playback.getIsPlaying());
const editingTextRef = useRef(editingText);
editingTextRef.current = editingText;
+ const releaseCapturedPointer = useCallback(
+ (pointerState: CapturedPointerState | null) => {
+ if (!pointerState) return;
+
+ if (
+ !pointerState.captureTarget.hasPointerCapture(pointerState.pointerId)
+ ) {
+ return;
+ }
+
+ pointerState.captureTarget.releasePointerCapture(pointerState.pointerId);
+ },
+ [],
+ );
+
const commitTextEdit = useCallback(() => {
const current = editingTextRef.current;
if (!current) return;
+ editingTextRef.current = null;
editor.timeline.previewElements({
updates: [
{
@@ -67,11 +147,6 @@ export function usePreviewInteraction({
setEditingText(null);
}, [editor.timeline]);
- const cancelTextEdit = useCallback(() => {
- editor.timeline.discardPreview();
- setEditingText(null);
- }, [editor.timeline]);
-
useEffect(() => {
const unsubscribe = editor.playback.subscribe(() => {
const isPlaying = editor.playback.getIsPlaying();
@@ -83,20 +158,38 @@ export function usePreviewInteraction({
return unsubscribe;
}, [editor.playback, commitTextEdit]);
+ useEffect(() => {
+ if (!isDragging) return;
+
+ return registerCanceller({
+ fn: () => {
+ const dragState = dragStateRef.current;
+ if (!dragState) return;
+
+ editor.timeline.discardPreview();
+ dragStateRef.current = null;
+ pendingGestureRef.current = null;
+ setIsDragging(false);
+ onSnapLinesChange?.([]);
+ releaseCapturedPointer(dragState);
+ },
+ });
+ }, [editor.timeline, isDragging, onSnapLinesChange, releaseCapturedPointer]);
+
const handleDoubleClick = useCallback(
({ clientX, clientY }: React.MouseEvent) => {
- if (!canvasRef.current || editingText) return;
+ if (editingText || isMaskMode) return;
const tracks = editor.timeline.getTracks();
const currentTime = editor.playback.getCurrentTime();
const mediaAssets = editor.media.getAssets();
const canvasSize = editor.project.getActive().settings.canvasSize;
- const startPos = screenToCanvas({
+ const startPos = viewport.screenToCanvas({
clientX,
clientY,
- canvas: canvasRef.current,
});
+ if (!startPos) return;
const elementsWithBounds = getVisibleElementsWithBounds({
tracks,
@@ -130,7 +223,7 @@ export function usePreviewInteraction({
originalOpacity: textElement.opacity,
});
},
- [canvasRef, editor, editingText],
+ [editor, editingText, isMaskMode, viewport],
);
const handlePointerDown = useCallback(
@@ -141,8 +234,8 @@ export function usePreviewInteraction({
pointerId,
button,
}: React.PointerEvent) => {
- if (!canvasRef.current) return;
if (editingText) return;
+ if (isMaskMode) return;
if (button !== 0) return;
const tracks = editor.timeline.getTracks();
@@ -150,11 +243,11 @@ export function usePreviewInteraction({
const mediaAssets = editor.media.getAssets();
const canvasSize = editor.project.getActive().settings.canvasSize;
- const startPos = screenToCanvas({
+ const startPos = viewport.screenToCanvas({
clientX,
clientY,
- canvas: canvasRef.current,
});
+ if (!startPos) return;
const elementsWithBounds = getVisibleElementsWithBounds({
tracks,
@@ -163,89 +256,134 @@ export function usePreviewInteraction({
mediaAssets,
});
- const hit = hitTest({
+ const hits = getHitElements({
canvasX: startPos.x,
canvasY: startPos.y,
elementsWithBounds,
});
+ const selectedElements = editor.selection.getSelectedElements();
+ const topmostHit = hits[0] ?? null;
- if (!hit) {
- editor.selection.clearSelection();
- return;
- }
-
- editor.selection.setSelectedElements({
- elements: [{ trackId: hit.trackId, elementId: hit.elementId }],
- });
-
- const elementsWithTracks = editor.timeline.getElementsWithTracks({
- elements: [{ trackId: hit.trackId, elementId: hit.elementId }],
- });
-
- const draggableElements = elementsWithTracks.filter(({ element }) =>
- isVisualElement(element),
- );
-
- if (draggableElements.length === 0) return;
-
- dragStateRef.current = {
+ pendingGestureRef.current = {
startX: startPos.x,
startY: startPos.y,
- bounds: {
- width: hit.bounds.width,
- height: hit.bounds.height,
- },
- elements: draggableElements.map(({ track, element }) => ({
- trackId: track.id,
- elementId: element.id,
- initialTransform: (element as { transform: Transform }).transform,
- })),
+ pointerId,
+ captureTarget: currentTarget as HTMLElement,
+ topmostHit,
+ selectedHit: resolvePreferredHit({
+ hits,
+ preferredElements: selectedElements,
+ }),
+ selectedElements,
};
-
- setIsDragging(true);
currentTarget.setPointerCapture(pointerId);
},
- [editor, canvasRef, editingText],
+ [editor, editingText, isMaskMode, viewport],
);
const handlePointerMove = useCallback(
({ clientX, clientY }: React.PointerEvent) => {
- if (!dragStateRef.current || !isDragging || !canvasRef.current) return;
-
const canvasSize = editor.project.getActive().settings.canvasSize;
- const currentPos = screenToCanvas({
+ const currentPos = viewport.screenToCanvas({
clientX,
clientY,
- canvas: canvasRef.current,
});
+ if (!currentPos) return;
- const deltaX = currentPos.x - dragStateRef.current.startX;
- const deltaY = currentPos.y - dragStateRef.current.startY;
- const hasMovement =
- Math.abs(deltaX) > MIN_DRAG_DISTANCE ||
- Math.abs(deltaY) > MIN_DRAG_DISTANCE;
- if (!hasMovement) {
- setSnapLines([]);
- return;
+ let dragState = dragStateRef.current;
+
+ if (!dragState) {
+ const pendingGesture = pendingGestureRef.current;
+ if (!pendingGesture) return;
+
+ const deltaX = currentPos.x - pendingGesture.startX;
+ const deltaY = currentPos.y - pendingGesture.startY;
+ const hasMovement =
+ Math.abs(deltaX) > MIN_DRAG_DISTANCE ||
+ Math.abs(deltaY) > MIN_DRAG_DISTANCE;
+
+ if (!hasMovement) {
+ onSnapLinesChange?.([]);
+ return;
+ }
+
+ const dragTarget = pendingGesture.selectedHit ?? pendingGesture.topmostHit;
+ if (!dragTarget) {
+ pendingGestureRef.current = null;
+ onSnapLinesChange?.([]);
+ releaseCapturedPointer(pendingGesture);
+ return;
+ }
+
+ const dragSelection = buildDragSelection({
+ selectedElements: pendingGesture.selectedElements,
+ dragTarget,
+ });
+ const elementsWithTracks = editor.timeline.getElementsWithTracks({
+ elements: dragSelection,
+ });
+ const draggableElements = elementsWithTracks.filter(({ element }) =>
+ isVisualElement(element),
+ );
+
+ if (draggableElements.length === 0) {
+ pendingGestureRef.current = null;
+ onSnapLinesChange?.([]);
+ releaseCapturedPointer(pendingGesture);
+ return;
+ }
+
+ if (pendingGesture.selectedHit === null) {
+ editor.selection.setSelectedElements({
+ elements: [
+ {
+ trackId: dragTarget.trackId,
+ elementId: dragTarget.elementId,
+ },
+ ],
+ });
+ }
+
+ dragState = {
+ startX: pendingGesture.startX,
+ startY: pendingGesture.startY,
+ pointerId: pendingGesture.pointerId,
+ captureTarget: pendingGesture.captureTarget,
+ bounds: {
+ width: dragTarget.bounds.width,
+ height: dragTarget.bounds.height,
+ rotation: dragTarget.bounds.rotation,
+ },
+ elements: draggableElements.map(({ track, element }) => ({
+ trackId: track.id,
+ elementId: element.id,
+ initialTransform: (element as { transform: Transform }).transform,
+ })),
+ };
+ dragStateRef.current = dragState;
+ pendingGestureRef.current = null;
+ setIsDragging(true);
}
- const firstElement = dragStateRef.current.elements[0];
+ const deltaX = currentPos.x - dragState.startX;
+ const deltaY = currentPos.y - dragState.startY;
+ const firstElement = dragState.elements[0];
const proposedPosition = {
x: firstElement.initialTransform.position.x + deltaX,
y: firstElement.initialTransform.position.y + deltaY,
};
const shouldSnap = !isShiftHeldRef.current;
- const snapThreshold = screenPixelsToLogicalThreshold({
- canvas: canvasRef.current,
+ const snapThreshold = viewport.screenPixelsToLogicalThreshold({
screenPixels: SNAP_THRESHOLD_SCREEN_PIXELS,
});
const { snappedPosition, activeLines } = shouldSnap
? snapPosition({
proposedPosition,
canvasSize,
- elementSize: dragStateRef.current.bounds,
+ elementSize: dragState.bounds,
+ rotation: dragState.bounds.rotation,
snapThreshold,
})
: {
@@ -253,14 +391,14 @@ export function usePreviewInteraction({
activeLines: [] as SnapLine[],
};
- setSnapLines(activeLines);
+ onSnapLinesChange?.(activeLines);
const deltaSnappedX =
snappedPosition.x - firstElement.initialTransform.position.x;
const deltaSnappedY =
snappedPosition.y - firstElement.initialTransform.position.y;
- const updates = dragStateRef.current.elements.map(
+ const updates = dragState.elements.map(
({ trackId, elementId, initialTransform }) => ({
trackId,
elementId,
@@ -278,38 +416,51 @@ export function usePreviewInteraction({
editor.timeline.previewElements({ updates });
},
- [isDragging, canvasRef, editor, isShiftHeldRef],
+ [editor, isShiftHeldRef, onSnapLinesChange, releaseCapturedPointer, viewport],
);
const handlePointerUp = useCallback(
- ({ clientX, clientY, currentTarget, pointerId }: React.PointerEvent) => {
- if (!dragStateRef.current || !isDragging || !canvasRef.current) return;
+ ({ type }: React.PointerEvent) => {
+ const dragState = dragStateRef.current;
+ if (dragState) {
+ if (type === "pointercancel") {
+ editor.timeline.discardPreview();
+ } else {
+ editor.timeline.commitPreview();
+ }
- const currentPos = screenToCanvas({
- clientX,
- clientY,
- canvas: canvasRef.current,
- });
-
- const deltaX = currentPos.x - dragStateRef.current.startX;
- const deltaY = currentPos.y - dragStateRef.current.startY;
+ dragStateRef.current = null;
+ pendingGestureRef.current = null;
+ setIsDragging(false);
+ onSnapLinesChange?.([]);
+ releaseCapturedPointer(dragState);
+ return;
+ }
- const hasMovement =
- Math.abs(deltaX) > MIN_DRAG_DISTANCE ||
- Math.abs(deltaY) > MIN_DRAG_DISTANCE;
+ const pendingGesture = pendingGestureRef.current;
+ if (!pendingGesture) return;
- if (!hasMovement) {
- editor.timeline.discardPreview();
- } else {
- editor.timeline.commitPreview();
+ if (type !== "pointercancel") {
+ const clickTarget = pendingGesture.topmostHit;
+ if (!clickTarget) {
+ editor.selection.clearSelection();
+ } else {
+ editor.selection.setSelectedElements({
+ elements: [
+ {
+ trackId: clickTarget.trackId,
+ elementId: clickTarget.elementId,
+ },
+ ],
+ });
+ }
}
- dragStateRef.current = null;
- setIsDragging(false);
- setSnapLines([]);
- currentTarget.releasePointerCapture(pointerId);
+ pendingGestureRef.current = null;
+ onSnapLinesChange?.([]);
+ releaseCapturedPointer(pendingGesture);
},
- [isDragging, canvasRef, editor],
+ [editor, onSnapLinesChange, releaseCapturedPointer],
);
return {
@@ -317,9 +468,7 @@ export function usePreviewInteraction({
onPointerMove: handlePointerMove,
onPointerUp: handlePointerUp,
onDoubleClick: handleDoubleClick,
- snapLines,
editingText,
commitTextEdit,
- cancelTextEdit,
};
}
diff --git a/apps/web/src/hooks/use-resize-observer.ts b/apps/web/src/hooks/use-resize-observer.ts
new file mode 100644
index 00000000..a4b3a603
--- /dev/null
+++ b/apps/web/src/hooks/use-resize-observer.ts
@@ -0,0 +1,26 @@
+import { useEffect } from "react";
+
+export function useResizeObserver({
+ ref,
+ onResize,
+}: {
+ ref: React.RefObject<HTMLElement | null>;
+ onResize: (entry: ResizeObserverEntry) => void;
+}) {
+ useEffect(() => {
+ const element = ref.current;
+ if (!element) return;
+
+ const observer = new ResizeObserver((entries) => {
+ for (const entry of entries) {
+ onResize(entry);
+ }
+ });
+
+ observer.observe(element);
+
+ return () => {
+ observer.disconnect();
+ };
+ }, [ref, onResize]);
+}
diff --git a/apps/web/src/hooks/use-storage-persistence.ts b/apps/web/src/hooks/use-storage-persistence.ts
new file mode 100644
index 00000000..79e05069
--- /dev/null
+++ b/apps/web/src/hooks/use-storage-persistence.ts
@@ -0,0 +1,45 @@
+"use client";
+
+import { useEffect, useState } from "react";
+
+const DISMISSED_KEY = "opencut-storage-persist-dismissed";
+
+function isFirefox(): boolean {
+ return navigator.userAgent.toLowerCase().includes("firefox");
+}
+
+export function useStoragePersistence() {
+ const [showDialog, setShowDialog] = useState(false);
+
+ useEffect(() => {
+ if (!navigator.storage?.persist) return;
+
+ const run = async () => {
+ const alreadyPersisted = await navigator.storage.persisted();
+ if (alreadyPersisted) return;
+
+ const dismissed = localStorage.getItem(DISMISSED_KEY) === "true";
+ if (dismissed) return;
+
+ if (isFirefox()) {
+ setShowDialog(true);
+ } else {
+ await navigator.storage.persist();
+ }
+ };
+
+ run();
+ }, []);
+
+ const onConfirm = async () => {
+ setShowDialog(false);
+ await navigator.storage.persist();
+ };
+
+ const onDismiss = () => {
+ setShowDialog(false);
+ localStorage.setItem(DISMISSED_KEY, "true");
+ };
+
+ return { showDialog, onConfirm, onDismiss };
+}
diff --git a/apps/web/src/hooks/use-transform-handles.ts b/apps/web/src/hooks/use-transform-handles.ts
index fb561396..a01fb361 100644
--- a/apps/web/src/hooks/use-transform-handles.ts
+++ b/apps/web/src/hooks/use-transform-handles.ts
@@ -1,4 +1,6 @@
-import { useCallback, useRef, useState, useSyncExternalStore } from "react";
+import { useCallback, useEffect, useRef, useState } from "react";
+import { usePreviewViewport } from "@/components/editor/panels/preview/preview-viewport";
+import type { OnSnapLinesChange } from "@/hooks/use-preview-interaction";
import { useEditor } from "@/hooks/use-editor";
import { useShiftKey } from "@/hooks/use-shift-key";
import {
@@ -6,14 +8,12 @@ import {
type ElementWithBounds,
} from "@/lib/preview/element-bounds";
import {
- screenPixelsToLogicalThreshold,
- screenToCanvas,
-} from "@/lib/preview/preview-coords";
-import {
MIN_SCALE,
SNAP_THRESHOLD_SCREEN_PIXELS,
snapRotation,
snapScale,
+ snapScaleAxes,
+ type ScaleEdgePreference,
type SnapLine,
} from "@/lib/preview/preview-snap";
import { isVisualElement } from "@/lib/timeline/element-utils";
@@ -22,11 +22,25 @@ import {
resolveTransformAtTime,
setChannel,
} from "@/lib/animation";
-import type { Transform } from "@/types/timeline";
-import type { ElementAnimations } from "@/types/animation";
+import type { Transform } from "@/lib/rendering";
+import type { ElementAnimations } from "@/lib/animation/types";
+import { registerCanceller } from "@/lib/cancel-interaction";
type Corner = "top-left" | "top-right" | "bottom-left" | "bottom-right";
-type HandleType = Corner | "rotation";
+type Edge = "right" | "left" | "bottom";
+type HandleType = Corner | Edge | "rotation";
+
+function getPreferredEdge({
+ edge,
+}: {
+ edge: Edge;
+}): ScaleEdgePreference {
+ return edge === "right"
+ ? { right: true }
+ : edge === "left"
+ ? { left: true }
+ : { bottom: true };
+}
interface ScaleState {
trackId: string;
@@ -50,26 +64,25 @@ interface RotationState {
initialBoundsCy: number;
}
-function areSnapLinesEqual({
- previousLines,
- nextLines,
-}: {
- previousLines: SnapLine[];
- nextLines: SnapLine[];
-}): boolean {
- if (previousLines.length !== nextLines.length) {
- return false;
- }
- for (const [index, line] of previousLines.entries()) {
- const nextLine = nextLines[index];
- if (!nextLine) {
- return false;
- }
- if (line.type !== nextLine.type || line.position !== nextLine.position) {
- return false;
- }
+interface EdgeScaleState {
+ trackId: string;
+ elementId: string;
+ initialTransform: Transform;
+ initialBoundsCx: number;
+ initialBoundsCy: number;
+ baseWidth: number;
+ baseHeight: number;
+ edge: Edge;
+ rotationRad: number;
+ shouldClearScaleAnimation: boolean;
+ animationsWithoutScale: ElementAnimations | undefined;
+}
+
+function clampScaleNonZero(scale: number): number {
+ if (Math.abs(scale) < MIN_SCALE) {
+ return scale < 0 ? -MIN_SCALE : MIN_SCALE;
}
- return true;
+ return scale;
}
function getCornerDistance({
@@ -102,29 +115,30 @@ function getCornerDistance({
}
export function useTransformHandles({
- canvasRef,
+ onSnapLinesChange,
}: {
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
+ onSnapLinesChange?: OnSnapLinesChange;
}) {
const editor = useEditor();
const isShiftHeldRef = useShiftKey();
+ const viewport = usePreviewViewport();
const [activeHandle, setActiveHandle] = useState<HandleType | null>(null);
- const [snapLines, setSnapLines] = useState<SnapLine[]>([]);
- const snapLinesRef = useRef<SnapLine[]>([]);
const scaleStateRef = useRef<ScaleState | null>(null);
const rotationStateRef = useRef<RotationState | null>(null);
-
- const selectedElements = useSyncExternalStore(
- (listener) => editor.selection.subscribe(listener),
- () => editor.selection.getSelectedElements(),
+ const edgeScaleStateRef = useRef<EdgeScaleState | null>(null);
+ const captureRef = useRef<{ element: HTMLElement; pointerId: number } | null>(
+ null,
);
- const tracks = editor.timeline.getTracks();
- const currentTime = editor.playback.getCurrentTime();
+ const selectedElements = useEditor((e) => e.selection.getSelectedElements());
+ const tracks = useEditor((e) => e.timeline.getRenderTracks());
+ const currentTime = useEditor((e) => e.playback.getCurrentTime());
const currentTimeRef = useRef(currentTime);
currentTimeRef.current = currentTime;
- const mediaAssets = editor.media.getAssets();
- const canvasSize = editor.project.getActive().settings.canvasSize;
+ const mediaAssets = useEditor((e) => e.media.getAssets());
+ const canvasSize = useEditor(
+ (e) => e.project.getActive().settings.canvasSize,
+ );
const elementsWithBounds = getVisibleElementsWithBounds({
tracks,
@@ -145,6 +159,37 @@ export function useTransformHandles({
const hasVisualSelection =
selectedWithBounds !== null && isVisualElement(selectedWithBounds.element);
+ const clearActiveHandleState = useCallback(() => {
+ scaleStateRef.current = null;
+ rotationStateRef.current = null;
+ edgeScaleStateRef.current = null;
+ setActiveHandle(null);
+ onSnapLinesChange?.([]);
+ }, [onSnapLinesChange]);
+
+ const releaseCapturedPointer = useCallback(() => {
+ const capture = captureRef.current;
+ if (!capture) return;
+
+ if (capture.element.hasPointerCapture(capture.pointerId)) {
+ capture.element.releasePointerCapture(capture.pointerId);
+ }
+
+ captureRef.current = null;
+ }, []);
+
+ useEffect(() => {
+ if (!activeHandle) return;
+
+ return registerCanceller({
+ fn: () => {
+ editor.timeline.discardPreview();
+ clearActiveHandleState();
+ releaseCapturedPointer();
+ },
+ });
+ }, [activeHandle, clearActiveHandleState, editor.timeline, releaseCapturedPointer]);
+
const handleCornerPointerDown = useCallback(
({ event, corner }: { event: React.PointerEvent; corner: Corner }) => {
if (!selectedWithBounds) return;
@@ -165,14 +210,19 @@ export function useTransformHandles({
});
const initialDistance = getCornerDistance({ bounds, corner });
- const baseWidth = bounds.width / resolvedTransform.scale;
- const baseHeight = bounds.height / resolvedTransform.scale;
+ const baseWidth = bounds.width / resolvedTransform.scaleX;
+ const baseHeight = bounds.height / resolvedTransform.scaleY;
const shouldClearScaleAnimation =
- !!element.animations?.channels["transform.scale"];
+ !!element.animations?.channels["transform.scaleX"] ||
+ !!element.animations?.channels["transform.scaleY"];
const animationsWithoutScale = shouldClearScaleAnimation
? setChannel({
- animations: element.animations,
- propertyPath: "transform.scale",
+ animations: setChannel({
+ animations: element.animations,
+ propertyPath: "transform.scaleX",
+ channel: undefined,
+ }),
+ propertyPath: "transform.scaleY",
channel: undefined,
})
: element.animations;
@@ -190,14 +240,19 @@ export function useTransformHandles({
animationsWithoutScale,
};
setActiveHandle(corner);
- (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);
+ const captureTarget = event.currentTarget as HTMLElement;
+ captureTarget.setPointerCapture(event.pointerId);
+ captureRef.current = {
+ element: captureTarget,
+ pointerId: event.pointerId,
+ };
},
[selectedWithBounds],
);
const handleRotationPointerDown = useCallback(
({ event }: { event: React.PointerEvent }) => {
- if (!selectedWithBounds || !canvasRef.current) return;
+ if (!selectedWithBounds) return;
event.stopPropagation();
const { bounds, trackId, elementId, element } = selectedWithBounds;
@@ -214,14 +269,14 @@ export function useTransformHandles({
localTime,
});
- const position = screenToCanvas({
+ const position = viewport.screenToCanvas({
clientX: event.clientX,
clientY: event.clientY,
- canvas: canvasRef.current,
});
- const deltaX = position.x - bounds.cx;
- const deltaY = position.y - bounds.cy;
- const initialAngle = (Math.atan2(deltaY, deltaX) * 180) / Math.PI;
+ if (!position) return;
+ const deltaX = position.x - bounds.cx;
+ const deltaY = position.y - bounds.cy;
+ const initialAngle = (Math.atan2(deltaY, deltaX) * 180) / Math.PI;
rotationStateRef.current = {
trackId,
@@ -232,21 +287,91 @@ export function useTransformHandles({
initialBoundsCy: bounds.cy,
};
setActiveHandle("rotation");
- (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);
+ const captureTarget = event.currentTarget as HTMLElement;
+ captureTarget.setPointerCapture(event.pointerId);
+ captureRef.current = {
+ element: captureTarget,
+ pointerId: event.pointerId,
+ };
},
- [selectedWithBounds, canvasRef],
+ [selectedWithBounds, viewport],
+ );
+
+ const handleEdgePointerDown = useCallback(
+ ({ event, edge }: { event: React.PointerEvent; edge: Edge }) => {
+ if (!selectedWithBounds) return;
+ event.stopPropagation();
+
+ const { bounds, trackId, elementId, element } = selectedWithBounds;
+ if (!isVisualElement(element)) return;
+
+ const localTime = getElementLocalTime({
+ timelineTime: currentTimeRef.current,
+ elementStartTime: element.startTime,
+ elementDuration: element.duration,
+ });
+ const resolvedTransform = resolveTransformAtTime({
+ baseTransform: element.transform,
+ animations: element.animations,
+ localTime,
+ });
+
+ const baseWidth = bounds.width / resolvedTransform.scaleX;
+ const baseHeight = bounds.height / resolvedTransform.scaleY;
+ const rotationRad = (bounds.rotation * Math.PI) / 180;
+
+ const propertyPath =
+ edge === "right" || edge === "left"
+ ? "transform.scaleX"
+ : "transform.scaleY";
+ const shouldClearScaleAnimation =
+ !!element.animations?.channels[propertyPath];
+ const animationsWithoutScale = shouldClearScaleAnimation
+ ? setChannel({
+ animations: element.animations,
+ propertyPath,
+ channel: undefined,
+ })
+ : element.animations;
+
+ edgeScaleStateRef.current = {
+ trackId,
+ elementId,
+ initialTransform: resolvedTransform,
+ initialBoundsCx: bounds.cx,
+ initialBoundsCy: bounds.cy,
+ baseWidth,
+ baseHeight,
+ edge,
+ rotationRad,
+ shouldClearScaleAnimation,
+ animationsWithoutScale,
+ };
+ setActiveHandle(edge);
+ const captureTarget = event.currentTarget as HTMLElement;
+ captureTarget.setPointerCapture(event.pointerId);
+ captureRef.current = {
+ element: captureTarget,
+ pointerId: event.pointerId,
+ };
+ },
+ [selectedWithBounds],
);
const handlePointerMove = useCallback(
({ event }: { event: React.PointerEvent }) => {
- if (!canvasRef.current) return;
- if (!scaleStateRef.current && !rotationStateRef.current) return;
+ if (
+ !scaleStateRef.current &&
+ !rotationStateRef.current &&
+ !edgeScaleStateRef.current
+ )
+ return;
- const position = screenToCanvas({
+ const position = viewport.screenToCanvas({
clientX: event.clientX,
clientY: event.clientY,
- canvas: canvasRef.current,
});
+ if (!position) return;
if (
scaleStateRef.current &&
@@ -266,58 +391,157 @@ export function useTransformHandles({
animationsWithoutScale,
} = scaleStateRef.current;
- const deltaX = position.x - initialBoundsCx;
- const deltaY = position.y - initialBoundsCy;
- const currentDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY) || 1;
+ const deltaX = position.x - initialBoundsCx;
+ const deltaY = position.y - initialBoundsCy;
+ const currentDistance =
+ Math.sqrt(deltaX * deltaX + deltaY * deltaY) || 1;
const scaleFactor = currentDistance / initialDistance;
- const proposedScale = Math.max(
- MIN_SCALE,
- initialTransform.scale * scaleFactor,
- );
- const canvasSize = editor.project.getActive().settings.canvasSize;
- const snapThreshold = screenPixelsToLogicalThreshold({
- canvas: canvasRef.current,
+ // Use actual element dimensions (base * current scale) so snap
+ // computes the correct edges when scaleX ≠ scaleY
+ const effectiveWidth = baseWidth * initialTransform.scaleX;
+ const effectiveHeight = baseHeight * initialTransform.scaleY;
+
+ const snapThreshold = viewport.screenPixelsToLogicalThreshold({
screenPixels: SNAP_THRESHOLD_SCREEN_PIXELS,
});
- const shouldSnap = !isShiftHeldRef.current;
- const { snappedScale, activeLines } = shouldSnap
- ? snapScale({
- proposedScale,
+ const { snappedScale: snappedFactor, activeLines } =
+ isShiftHeldRef.current
+ ? { snappedScale: scaleFactor, activeLines: [] as SnapLine[] }
+ : snapScale({
+ proposedScale: scaleFactor,
+ position: initialTransform.position,
+ baseWidth: effectiveWidth,
+ baseHeight: effectiveHeight,
+ rotation: initialTransform.rotate,
+ canvasSize,
+ snapThreshold,
+ });
+
+ onSnapLinesChange?.(activeLines);
+
+ editor.timeline.previewElements({
+ updates: [
+ {
+ trackId,
+ elementId,
+ updates: {
+ transform: {
+ ...initialTransform,
+ scaleX: clampScaleNonZero(
+ initialTransform.scaleX * snappedFactor,
+ ),
+ scaleY: clampScaleNonZero(
+ initialTransform.scaleY * snappedFactor,
+ ),
+ },
+ ...(shouldClearScaleAnimation && {
+ animations: animationsWithoutScale,
+ }),
+ },
+ },
+ ],
+ });
+ return;
+ }
+
+ if (
+ edgeScaleStateRef.current &&
+ (activeHandle === "right" ||
+ activeHandle === "left" ||
+ activeHandle === "bottom")
+ ) {
+ const {
+ trackId,
+ elementId,
+ initialTransform,
+ initialBoundsCx,
+ initialBoundsCy,
+ baseWidth,
+ baseHeight,
+ edge,
+ rotationRad,
+ shouldClearScaleAnimation,
+ animationsWithoutScale,
+ } = edgeScaleStateRef.current;
+
+ const deltaX = position.x - initialBoundsCx;
+ const deltaY = position.y - initialBoundsCy;
+ const xProjection =
+ deltaX * Math.cos(rotationRad) + deltaY * Math.sin(rotationRad);
+ const yProjection =
+ -deltaX * Math.sin(rotationRad) + deltaY * Math.cos(rotationRad);
+ const projection =
+ edge === "right"
+ ? xProjection
+ : edge === "left"
+ ? -xProjection
+ : yProjection;
+
+ const baseAxisHalf =
+ edge === "right" || edge === "left" ? baseWidth / 2 : baseHeight / 2;
+ const proposedScale = clampScaleNonZero(projection / baseAxisHalf);
+
+ const proposedScaleX =
+ edge === "right" || edge === "left"
+ ? proposedScale
+ : initialTransform.scaleX;
+ const proposedScaleY =
+ edge === "bottom" ? proposedScale : initialTransform.scaleY;
+
+ const snapThreshold = viewport.screenPixelsToLogicalThreshold({
+ screenPixels: SNAP_THRESHOLD_SCREEN_PIXELS,
+ });
+ const { x: xSnap, y: ySnap } = isShiftHeldRef.current
+ ? {
+ x: {
+ snappedScale: proposedScaleX,
+ snapDistance: Infinity,
+ activeLines: [] as SnapLine[],
+ },
+ y: {
+ snappedScale: proposedScaleY,
+ snapDistance: Infinity,
+ activeLines: [] as SnapLine[],
+ },
+ }
+ : snapScaleAxes({
+ proposedScaleX,
+ proposedScaleY,
position: initialTransform.position,
baseWidth,
baseHeight,
+ rotation: initialTransform.rotate,
canvasSize,
snapThreshold,
- })
- : { snappedScale: proposedScale, activeLines: [] as SnapLine[] };
-
- const isSameLines = areSnapLinesEqual({
- previousLines: snapLinesRef.current,
- nextLines: activeLines,
- });
-
- if (!isSameLines) {
- snapLinesRef.current = activeLines;
- setSnapLines(activeLines);
- }
+ preferredEdges: getPreferredEdge({ edge }),
+ });
- const updates: {
- transform: Transform;
- animations?: ElementAnimations;
- } = {
- transform: { ...initialTransform, scale: snappedScale },
- };
- if (shouldClearScaleAnimation) {
- updates.animations = animationsWithoutScale;
- }
+ const relevantSnap =
+ edge === "right" || edge === "left" ? xSnap : ySnap;
+ onSnapLinesChange?.(relevantSnap.activeLines);
editor.timeline.previewElements({
updates: [
{
trackId,
elementId,
- updates,
+ updates: {
+ transform: {
+ ...initialTransform,
+ scaleX:
+ edge === "right" || edge === "left"
+ ? xSnap.snappedScale
+ : initialTransform.scaleX,
+ scaleY:
+ edge === "bottom"
+ ? ySnap.snappedScale
+ : initialTransform.scaleY,
+ },
+ ...(shouldClearScaleAnimation && {
+ animations: animationsWithoutScale,
+ }),
+ },
},
],
});
@@ -334,17 +558,16 @@ export function useTransformHandles({
initialBoundsCy,
} = rotationStateRef.current;
- const deltaX = position.x - initialBoundsCx;
- const deltaY = position.y - initialBoundsCy;
- const currentAngle = (Math.atan2(deltaY, deltaX) * 180) / Math.PI;
+ const deltaX = position.x - initialBoundsCx;
+ const deltaY = position.y - initialBoundsCy;
+ const currentAngle = (Math.atan2(deltaY, deltaX) * 180) / Math.PI;
let deltaAngle = currentAngle - initialAngle;
if (deltaAngle > 180) deltaAngle -= 360;
if (deltaAngle < -180) deltaAngle += 360;
const newRotate = initialTransform.rotate + deltaAngle;
- const shouldSnapRotation = !isShiftHeldRef.current;
- const { snappedRotation } = shouldSnapRotation
- ? snapRotation({ proposedRotation: newRotate })
- : { snappedRotation: newRotate };
+ const { snappedRotation } = isShiftHeldRef.current
+ ? { snappedRotation: newRotate }
+ : snapRotation({ proposedRotation: newRotate });
editor.timeline.previewElements({
updates: [
@@ -359,32 +582,36 @@ export function useTransformHandles({
});
}
},
- [activeHandle, canvasRef, editor, isShiftHeldRef],
+ [
+ activeHandle,
+ canvasSize,
+ editor,
+ isShiftHeldRef,
+ onSnapLinesChange,
+ viewport,
+ ],
);
- const handlePointerUp = useCallback(
- ({ event }: { event: React.PointerEvent }) => {
- if (scaleStateRef.current || rotationStateRef.current) {
+ const handlePointerUp = useCallback(() => {
+ if (
+ scaleStateRef.current ||
+ rotationStateRef.current ||
+ edgeScaleStateRef.current
+ ) {
editor.timeline.commitPreview();
- scaleStateRef.current = null;
- rotationStateRef.current = null;
- setActiveHandle(null);
- snapLinesRef.current = [];
- setSnapLines([]);
+ clearActiveHandleState();
}
- (event.currentTarget as HTMLElement).releasePointerCapture(
- event.pointerId,
- );
+ releaseCapturedPointer();
},
- [editor],
+ [clearActiveHandleState, editor, releaseCapturedPointer],
);
return {
selectedWithBounds,
hasVisualSelection,
activeHandle,
- snapLines,
handleCornerPointerDown,
+ handleEdgePointerDown,
handleRotationPointerDown,
handlePointerMove,
handlePointerUp,
diff --git a/apps/web/src/lib/actions/definitions.ts b/apps/web/src/lib/actions/definitions.ts
index 82319216..4d67c1ef 100644
--- a/apps/web/src/lib/actions/definitions.ts
+++ b/apps/web/src/lib/actions/definitions.ts
@@ -1,4 +1,4 @@
-import type { ShortcutKey } from "@/types/keybinding";
+import type { ShortcutKey } from "@/lib/actions/keybinding";
export type TActionCategory =
| "playback"
@@ -7,7 +7,8 @@ export type TActionCategory =
| "selection"
| "history"
| "timeline"
- | "controls";
+ | "controls"
+ | "assets";
export interface TActionDefinition {
description: string;
@@ -114,10 +115,14 @@ export const ACTIONS = {
category: "selection",
defaultShortcuts: ["ctrl+a"],
},
+ "cancel-interaction": {
+ description: "Cancel current interaction",
+ category: "controls",
+ defaultShortcuts: ["escape"],
+ },
"deselect-all": {
description: "Deselect all elements",
category: "selection",
- defaultShortcuts: ["escape"],
},
"duplicate-selected": {
description: "Duplicate selected element",
@@ -146,11 +151,25 @@ export const ACTIONS = {
category: "history",
defaultShortcuts: ["ctrl+shift+z", "ctrl+y"],
},
+ "remove-media-asset": {
+ description: "Remove media asset",
+ category: "assets",
+ args: { projectId: "string", assetId: "string" },
+ },
+ "remove-media-assets": {
+ description: "Remove media assets",
+ category: "assets",
+ args: { projectId: "string", assetIds: "string[]" },
+ },
} as const satisfies Record<string, TActionDefinition>;
export type TAction = keyof typeof ACTIONS;
-export function getActionDefinition({ action }: { action: TAction }): TActionDefinition {
+export function getActionDefinition({
+ action,
+}: {
+ action: TAction;
+}): TActionDefinition {
return ACTIONS[action];
}
diff --git a/apps/web/src/types/keybinding.ts b/apps/web/src/lib/actions/keybinding.ts
index f9b84e31..0a61893b 100644
--- a/apps/web/src/types/keybinding.ts
+++ b/apps/web/src/lib/actions/keybinding.ts
@@ -1,4 +1,4 @@
-import type { TActionWithOptionalArgs } from "@/lib/actions";
+import type { TActionWithOptionalArgs } from "./types";
/**
* Alt is also regarded as macOS OPTION (⌥) key
diff --git a/apps/web/src/lib/actions/registry.ts b/apps/web/src/lib/actions/registry.ts
index b9c84529..c825a5e4 100644
--- a/apps/web/src/lib/actions/registry.ts
+++ b/apps/web/src/lib/actions/registry.ts
@@ -57,5 +57,30 @@ export const invokeAction: InvokeActionFunc = <A extends TAction>(
args?: TArgOfAction<A>,
trigger?: TInvocationTrigger,
) => {
- boundActions[action]?.forEach((handler) => handler(args, trigger));
+ if (trigger === "keypress") {
+ // #region agent log
+ fetch("http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H4",
+ location: "actions/registry.ts:invokeAction",
+ message: "Action invoked from keypress",
+ data: {
+ action,
+ handlerCount: boundActions[action]?.length ?? 0,
+ },
+ timestamp: Date.now(),
+ }),
+ }).catch(() => {});
+ // #endregion
+ }
+ boundActions[action]?.forEach((handler) => {
+ handler(args, trigger);
+ });
};
diff --git a/apps/web/src/lib/actions/types.ts b/apps/web/src/lib/actions/types.ts
index 508bf10e..38627b95 100644
--- a/apps/web/src/lib/actions/types.ts
+++ b/apps/web/src/lib/actions/types.ts
@@ -8,6 +8,8 @@ export type TActionArgsMap = {
"seek-backward": { seconds: number } | undefined;
"jump-forward": { seconds: number } | undefined;
"jump-backward": { seconds: number } | undefined;
+ "remove-media-asset": { projectId: string; assetId: string };
+ "remove-media-assets": { projectId: string; assetIds: string[] };
};
type TKeysWithValueUndefined<T> = {
diff --git a/apps/web/src/lib/animation/__tests__/transform-keyframes.test.ts b/apps/web/src/lib/animation/__tests__/transform-keyframes.test.ts
deleted file mode 100644
index 629bd0d6..00000000
--- a/apps/web/src/lib/animation/__tests__/transform-keyframes.test.ts
+++ /dev/null
@@ -1,313 +0,0 @@
-import { describe, expect, test } from "bun:test";
-import type { ElementAnimations } from "@/types/animation";
-import {
- clampAnimationsToDuration,
- getElementKeyframes,
- getKeyframeAtTime,
- hasKeyframesForPath,
- getChannelValueAtTime,
- getElementLocalTime,
- resolveTransformAtTime,
- splitAnimationsAtTime,
-} from "@/lib/animation";
-
-describe("transform keyframe evaluation", () => {
- test("uses fallback value when channel is missing", () => {
- const value = getChannelValueAtTime({
- channel: undefined,
- time: 1,
- fallbackValue: 42,
- });
- expect(value).toBe(42);
- });
-
- test("returns boundary value when time is within epsilon of first/last keyframe", () => {
- const channel = {
- valueKind: "number" as const,
- keyframes: [
- { id: "a", time: 0, value: 10, interpolation: "linear" as const },
- { id: "b", time: 2, value: 30, interpolation: "linear" as const },
- ],
- };
- expect(
- getChannelValueAtTime({
- channel,
- time: 0.0008,
- fallbackValue: 0,
- }),
- ).toBe(10);
- expect(
- getChannelValueAtTime({
- channel,
- time: 1.9992,
- fallbackValue: 0,
- }),
- ).toBe(30);
- });
-
- test("interpolates linear channels", () => {
- const value = getChannelValueAtTime({
- channel: {
- valueKind: "number",
- keyframes: [
- { id: "a", time: 0, value: 10, interpolation: "linear" },
- { id: "b", time: 2, value: 30, interpolation: "linear" },
- ],
- },
- time: 1,
- fallbackValue: 0,
- });
- expect(value).toBe(20);
- });
-
- test("clamps local time to [0, duration]", () => {
- expect(
- getElementLocalTime({
- timelineTime: 2,
- elementStartTime: 5,
- elementDuration: 4,
- }),
- ).toBe(0);
- expect(
- getElementLocalTime({
- timelineTime: 12,
- elementStartTime: 5,
- elementDuration: 4,
- }),
- ).toBe(4);
- expect(
- getElementLocalTime({
- timelineTime: 7,
- elementStartTime: 5,
- elementDuration: 4,
- }),
- ).toBe(2);
- });
-
- test("uses hold interpolation from the left keyframe", () => {
- const value = getChannelValueAtTime({
- channel: {
- valueKind: "number",
- keyframes: [
- { id: "a", time: 0, value: 10, interpolation: "hold" },
- { id: "b", time: 2, value: 30, interpolation: "linear" },
- ],
- },
- time: 1,
- fallbackValue: 0,
- });
- expect(value).toBe(10);
- });
-
- test("resolves transform by mixing animated and fallback properties", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.position.x": {
- valueKind: "number",
- keyframes: [
- { id: "a", time: 0, value: 0, interpolation: "linear" },
- { id: "b", time: 4, value: 80, interpolation: "linear" },
- ],
- },
- "transform.scale": {
- valueKind: "number",
- keyframes: [{ id: "c", time: 0, value: 2, interpolation: "hold" }],
- },
- },
- };
- const resolvedTransform = resolveTransformAtTime({
- baseTransform: {
- position: { x: 10, y: 20 },
- scale: 1,
- rotate: 15,
- },
- animations,
- localTime: 2,
- });
- expect(resolvedTransform).toEqual({
- position: { x: 40, y: 20 },
- scale: 2,
- rotate: 15,
- });
- });
-});
-
-describe("transform keyframe mutation utilities", () => {
- test("splits channels and rebases right side times", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.scale": {
- valueKind: "number",
- keyframes: [
- { id: "a", time: 0, value: 1, interpolation: "linear" },
- { id: "b", time: 2, value: 2, interpolation: "linear" },
- { id: "c", time: 6, value: 4, interpolation: "linear" },
- ],
- },
- },
- };
- const { leftAnimations, rightAnimations } = splitAnimationsAtTime({
- animations,
- splitTime: 4,
- });
-
- expect(
- leftAnimations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 2, 4]);
- expect(
- rightAnimations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 2]);
- expect(
- rightAnimations?.channels["transform.scale"]?.keyframes[0]?.value,
- ).toBe(3);
- });
-
- test("clamps channels to updated element duration", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.rotate": {
- valueKind: "number",
- keyframes: [
- { id: "a", time: 0, value: 0, interpolation: "linear" },
- { id: "b", time: 2, value: 20, interpolation: "linear" },
- { id: "c", time: 5, value: 50, interpolation: "linear" },
- ],
- },
- },
- };
- const clampedAnimations = clampAnimationsToDuration({
- animations,
- duration: 2,
- });
- expect(
- clampedAnimations?.channels["transform.rotate"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 2]);
- });
-});
-
-describe("typed channel interpolation", () => {
- test("interpolates color channels from hex keyframes", () => {
- const value = getChannelValueAtTime({
- channel: {
- valueKind: "color",
- keyframes: [
- { id: "a", time: 0, value: "#000000", interpolation: "linear" },
- { id: "b", time: 1, value: "#ffffff", interpolation: "linear" },
- ],
- },
- time: 0.5,
- fallbackValue: "#000000",
- });
- expect(typeof value).toBe("string");
- expect(value).toContain("rgba(");
- });
-
- test("uses hold behavior for discrete channels", () => {
- const value = getChannelValueAtTime({
- channel: {
- valueKind: "discrete",
- keyframes: [
- { id: "a", time: 0, value: "normal", interpolation: "hold" },
- { id: "b", time: 2, value: "multiply", interpolation: "hold" },
- ],
- },
- time: 1.2,
- fallbackValue: "normal",
- });
- expect(value).toBe("normal");
- });
-});
-
-describe("keyframe query helpers", () => {
- test("getElementKeyframes returns flat list of all keyframes across channels", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.position.x": {
- valueKind: "number",
- keyframes: [{ id: "x-1", time: 1, value: 64, interpolation: "linear" }],
- },
- opacity: {
- valueKind: "number",
- keyframes: [{ id: "o-1", time: 0, value: 1, interpolation: "linear" }],
- },
- },
- };
-
- const keyframes = getElementKeyframes({ animations });
- expect(keyframes).toHaveLength(2);
- expect(keyframes.map((keyframe) => keyframe.propertyPath).sort()).toEqual([
- "opacity",
- "transform.position.x",
- ]);
- });
-
- test("getElementKeyframes returns empty array when animations are missing or channels are empty", () => {
- expect(getElementKeyframes({ animations: undefined })).toEqual([]);
- expect(
- getElementKeyframes({
- animations: {
- channels: { opacity: { valueKind: "number", keyframes: [] } },
- },
- }),
- ).toEqual([]);
- });
-
- test("hasKeyframesForPath returns true only for paths with keyframes", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.position.x": {
- valueKind: "number",
- keyframes: [{ id: "x-1", time: 1, value: 64, interpolation: "linear" }],
- },
- "transform.position.y": {
- valueKind: "number",
- keyframes: [],
- },
- },
- };
-
- expect(
- hasKeyframesForPath({ animations, propertyPath: "transform.position.x" }),
- ).toBe(true);
- expect(
- hasKeyframesForPath({ animations, propertyPath: "transform.position.y" }),
- ).toBe(false);
- });
-
- test("getKeyframeAtTime finds keyframe within epsilon and returns full object", () => {
- const animations: ElementAnimations = {
- channels: {
- "transform.rotate": {
- valueKind: "number",
- keyframes: [
- { id: "r-1", time: 1, value: 15, interpolation: "linear" },
- { id: "r-2", time: 2, value: 30, interpolation: "linear" },
- ],
- },
- },
- };
-
- const found = getKeyframeAtTime({
- animations,
- propertyPath: "transform.rotate",
- time: 1.0008,
- });
- expect(found?.id).toBe("r-1");
- expect(found?.value).toBe(15);
- expect(found?.propertyPath).toBe("transform.rotate");
-
- expect(
- getKeyframeAtTime({
- animations,
- propertyPath: "transform.rotate",
- time: 1.01,
- }),
- ).toBeNull();
- });
-});
diff --git a/apps/web/src/lib/animation/color-channel.ts b/apps/web/src/lib/animation/color-channel.ts
index 2a340f94..a34b469b 100644
--- a/apps/web/src/lib/animation/color-channel.ts
+++ b/apps/web/src/lib/animation/color-channel.ts
@@ -2,7 +2,7 @@ import type {
AnimationPropertyPath,
ColorAnimationChannel,
ElementAnimations,
-} from "@/types/animation";
+} from "@/lib/animation/types";
export function getColorChannelForPath({
animations,
diff --git a/apps/web/src/lib/animation/effect-param-channel.ts b/apps/web/src/lib/animation/effect-param-channel.ts
index 07efe4d8..323d9f54 100644
--- a/apps/web/src/lib/animation/effect-param-channel.ts
+++ b/apps/web/src/lib/animation/effect-param-channel.ts
@@ -1,8 +1,10 @@
-import type { Effect, EffectParamValues } from "@/types/effects";
+import type { ParamValues } from "@/lib/params";
+import type { Effect } from "@/lib/effects/types";
import type {
ElementAnimations,
+ EffectParamPath,
NumberAnimationChannel,
-} from "@/types/animation";
+} from "@/lib/animation/types";
import {
getChannel,
removeKeyframe,
@@ -11,19 +13,56 @@ import {
} from "./keyframes";
import { getChannelValueAtTime } from "./interpolation";
-const EFFECT_PARAM_PATH_PREFIX = "effects.";
-const EFFECT_PARAM_PATH_SUFFIX = ".params.";
+export const EFFECT_PARAM_PATH_PREFIX = "effects.";
+export const EFFECT_PARAM_PATH_SUFFIX = ".params.";
-function buildEffectParamPath({
+export function buildEffectParamPath({
effectId,
paramKey,
}: {
effectId: string;
paramKey: string;
-}): string {
+}): EffectParamPath {
return `${EFFECT_PARAM_PATH_PREFIX}${effectId}${EFFECT_PARAM_PATH_SUFFIX}${paramKey}`;
}
+export function isEffectParamPath({
+ propertyPath,
+}: {
+ propertyPath: string;
+}): propertyPath is EffectParamPath {
+ return (
+ propertyPath.startsWith(EFFECT_PARAM_PATH_PREFIX) &&
+ propertyPath.includes(EFFECT_PARAM_PATH_SUFFIX)
+ );
+}
+
+export function parseEffectParamPath({
+ propertyPath,
+}: {
+ propertyPath: string;
+}): { effectId: string; paramKey: string } | null {
+ if (!isEffectParamPath({ propertyPath })) {
+ return null;
+ }
+
+ const withoutPrefix = propertyPath.slice(EFFECT_PARAM_PATH_PREFIX.length);
+ const separatorIndex = withoutPrefix.indexOf(EFFECT_PARAM_PATH_SUFFIX);
+ if (separatorIndex <= 0) {
+ return null;
+ }
+
+ const effectId = withoutPrefix.slice(0, separatorIndex);
+ const paramKey = withoutPrefix.slice(
+ separatorIndex + EFFECT_PARAM_PATH_SUFFIX.length,
+ );
+ if (!effectId || !paramKey) {
+ return null;
+ }
+
+ return { effectId, paramKey };
+}
+
export function resolveEffectParamsAtTime({
effect,
animations,
@@ -32,8 +71,8 @@ export function resolveEffectParamsAtTime({
effect: Effect;
animations: ElementAnimations | undefined;
localTime: number;
-}): EffectParamValues {
- const resolved: EffectParamValues = {};
+}): ParamValues {
+ const resolved: ParamValues = {};
for (const [paramKey, staticValue] of Object.entries(effect.params)) {
const path = buildEffectParamPath({ effectId: effect.id, paramKey });
diff --git a/apps/web/src/lib/animation/graphic-param-channel.ts b/apps/web/src/lib/animation/graphic-param-channel.ts
new file mode 100644
index 00000000..e77e4c73
--- /dev/null
+++ b/apps/web/src/lib/animation/graphic-param-channel.ts
@@ -0,0 +1,79 @@
+import type {
+ ElementAnimations,
+ GraphicParamPath,
+} from "@/lib/animation/types";
+import type { ParamValues } from "@/lib/params";
+import {
+ getGraphicDefinition,
+ resolveGraphicParams,
+} from "@/lib/graphics";
+import { getChannel } from "./keyframes";
+import { getChannelValueAtTime } from "./interpolation";
+
+export const GRAPHIC_PARAM_PATH_PREFIX = "params.";
+
+export function buildGraphicParamPath({
+ paramKey,
+}: {
+ paramKey: string;
+}): GraphicParamPath {
+ return `${GRAPHIC_PARAM_PATH_PREFIX}${paramKey}`;
+}
+
+export function isGraphicParamPath({
+ propertyPath,
+}: {
+ propertyPath: string;
+}): propertyPath is GraphicParamPath {
+ return propertyPath.startsWith(GRAPHIC_PARAM_PATH_PREFIX);
+}
+
+export function parseGraphicParamPath({
+ propertyPath,
+}: {
+ propertyPath: string;
+}): { paramKey: string } | null {
+ if (!isGraphicParamPath({ propertyPath })) {
+ return null;
+ }
+
+ const paramKey = propertyPath.slice(GRAPHIC_PARAM_PATH_PREFIX.length);
+ return paramKey.length > 0 ? { paramKey } : null;
+}
+
+export function resolveGraphicParamsAtTime({
+ element,
+ localTime,
+}: {
+ element: {
+ definitionId: string;
+ params: ParamValues;
+ animations?: ElementAnimations;
+ };
+ localTime: number;
+}): ParamValues {
+ const definition = getGraphicDefinition({
+ definitionId: element.definitionId,
+ });
+ const baseParams = resolveGraphicParams(definition, element.params);
+ const resolved: ParamValues = { ...baseParams };
+
+ for (const param of definition.params) {
+ const path = buildGraphicParamPath({ paramKey: param.key });
+ const channel = getChannel({
+ animations: element.animations,
+ propertyPath: path,
+ });
+ if (!channel || channel.keyframes.length === 0) {
+ continue;
+ }
+
+ resolved[param.key] = getChannelValueAtTime({
+ channel,
+ time: Math.max(0, localTime),
+ fallbackValue: baseParams[param.key] ?? param.default,
+ }) as number | string | boolean;
+ }
+
+ return resolved;
+}
diff --git a/apps/web/src/lib/animation/index.ts b/apps/web/src/lib/animation/index.ts
index c4396bb7..3dcddad3 100644
--- a/apps/web/src/lib/animation/index.ts
+++ b/apps/web/src/lib/animation/index.ts
@@ -1,6 +1,7 @@
export {
getChannelValueAtTime,
getNumberChannelValueAtTime,
+ getVectorChannelValueAtTime,
normalizeChannel,
} from "./interpolation";
@@ -13,6 +14,7 @@ export {
setChannel,
splitAnimationsAtTime,
upsertElementKeyframe,
+ upsertPathKeyframe,
} from "./keyframes";
export {
@@ -21,7 +23,6 @@ export {
resolveNumberAtTime,
resolveOpacityAtTime,
resolveTransformAtTime,
- resolveVolumeAtTime,
} from "./resolve";
export {
@@ -31,6 +32,9 @@ export {
getElementBaseValueForProperty,
isAnimationPropertyPath,
supportsAnimationProperty,
+ type AnimationPropertyDefinition,
+ type NumericSpec,
+ type NumericRange,
withElementBaseValueForProperty,
} from "./property-registry";
@@ -39,3 +43,29 @@ export {
getKeyframeAtTime,
hasKeyframesForPath,
} from "./keyframe-query";
+
+export {
+ buildGraphicParamPath,
+ isGraphicParamPath,
+ parseGraphicParamPath,
+ resolveGraphicParamsAtTime,
+} from "./graphic-param-channel";
+
+export {
+ isAnimationPath,
+ resolveAnimationTarget,
+ getParamValueKind,
+ getParamDefaultInterpolation,
+ type AnimationPathDescriptor,
+} from "./target-resolver";
+
+export {
+ getGroupKeyframesAtTime,
+ hasGroupKeyframeAtTime,
+ type GroupKeyframeRef,
+} from "./property-groups";
+
+export {
+ getVectorChannelForPath,
+ isVectorValue,
+} from "./vector-channel";
diff --git a/apps/web/src/lib/animation/interpolation.ts b/apps/web/src/lib/animation/interpolation.ts
index 7a6fc6cf..c5b9ea80 100644
--- a/apps/web/src/lib/animation/interpolation.ts
+++ b/apps/web/src/lib/animation/interpolation.ts
@@ -5,7 +5,10 @@ import type {
DiscreteValue,
DiscreteAnimationChannel,
NumberAnimationChannel,
-} from "@/types/animation";
+ VectorAnimationChannel,
+ VectorValue,
+} from "@/lib/animation/types";
+import { isVectorValue } from "./vector-channel";
import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
function byTimeAscending({
@@ -59,12 +62,7 @@ function parseHexColor({
const green = parseHexChannel({ hex: `${greenHex}${greenHex}` });
const blue = parseHexChannel({ hex: `${blueHex}${blueHex}` });
const alpha = parseHexChannel({ hex: `${alphaHex}${alphaHex}` });
- if (
- red === null ||
- green === null ||
- blue === null ||
- alpha === null
- ) {
+ if (red === null || green === null || blue === null || alpha === null) {
return null;
}
@@ -77,12 +75,7 @@ function parseHexColor({
const blue = parseHexChannel({ hex: rawHex.slice(4, 6) });
const alphaHex = rawHex.length === 8 ? rawHex.slice(6, 8) : "ff";
const alpha = parseHexChannel({ hex: alphaHex });
- if (
- red === null ||
- green === null ||
- blue === null ||
- alpha === null
- ) {
+ if (red === null || green === null || blue === null || alpha === null) {
return null;
}
@@ -177,7 +170,10 @@ export function normalizeChannel<TChannel extends AnimationChannel>({
} as TChannel;
}
-function evaluateChannelValueAtTime<TKeyframe extends { time: number; value: TValue }, TValue>({
+function evaluateChannelValueAtTime<
+ TKeyframe extends { time: number; value: TValue },
+ TValue,
+>({
keyframes,
time,
fallbackValue,
@@ -214,7 +210,11 @@ function evaluateChannelValueAtTime<TKeyframe extends { time: number; value: TVa
return lastKeyframe.value;
}
- for (let keyframeIndex = 0; keyframeIndex < keyframes.length - 1; keyframeIndex++) {
+ for (
+ let keyframeIndex = 0;
+ keyframeIndex < keyframes.length - 1;
+ keyframeIndex++
+ ) {
const leftKeyframe = keyframes[keyframeIndex];
const rightKeyframe = keyframes[keyframeIndex + 1];
@@ -304,6 +304,36 @@ export function getColorValueAtTime({
});
}
+export function getVectorChannelValueAtTime({
+ channel,
+ time,
+ fallbackValue,
+}: {
+ channel: VectorAnimationChannel | undefined;
+ time: number;
+ fallbackValue: VectorValue;
+}): VectorValue {
+ return evaluateChannelValueAtTime({
+ keyframes: channel?.keyframes,
+ time,
+ fallbackValue,
+ getInterpolatedValue: ({ leftKeyframe, rightKeyframe, progress }) => {
+ if (leftKeyframe.interpolation === "hold") {
+ return leftKeyframe.value;
+ }
+
+ return {
+ x:
+ leftKeyframe.value.x +
+ (rightKeyframe.value.x - leftKeyframe.value.x) * progress,
+ y:
+ leftKeyframe.value.y +
+ (rightKeyframe.value.y - leftKeyframe.value.y) * progress,
+ };
+ },
+ });
+}
+
function getDiscreteValueAtTime({
channel,
time,
@@ -358,6 +388,17 @@ export function getChannelValueAtTime({
});
}
+ if (channel.valueKind === "vector") {
+ if (!isVectorValue(fallbackValue)) {
+ return fallbackValue;
+ }
+ return getVectorChannelValueAtTime({
+ channel,
+ time,
+ fallbackValue: fallbackValue as VectorValue,
+ });
+ }
+
if (typeof fallbackValue !== "string" && typeof fallbackValue !== "boolean") {
return fallbackValue;
}
diff --git a/apps/web/src/lib/animation/keyframe-query.ts b/apps/web/src/lib/animation/keyframe-query.ts
index 6626e3e8..753e31d0 100644
--- a/apps/web/src/lib/animation/keyframe-query.ts
+++ b/apps/web/src/lib/animation/keyframe-query.ts
@@ -1,9 +1,10 @@
import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
import type {
- AnimationPropertyPath,
+ AnimationPath,
ElementAnimations,
ElementKeyframe,
-} from "@/types/animation";
+} from "@/lib/animation/types";
+import { isAnimationPath } from "./target-resolver";
export function getElementKeyframes({
animations,
@@ -16,12 +17,16 @@ export function getElementKeyframes({
return Object.entries(animations.channels).flatMap(
([propertyPath, channel]) => {
- if (!channel || channel.keyframes.length === 0) {
+ if (
+ !channel ||
+ channel.keyframes.length === 0 ||
+ !isAnimationPath({ propertyPath })
+ ) {
return [];
}
return channel.keyframes.map((keyframe) => ({
- propertyPath: propertyPath as AnimationPropertyPath,
+ propertyPath,
id: keyframe.id,
time: keyframe.time,
value: keyframe.value,
@@ -36,7 +41,7 @@ export function hasKeyframesForPath({
propertyPath,
}: {
animations: ElementAnimations | undefined;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
}): boolean {
const channel = animations?.channels[propertyPath];
return Boolean(channel && channel.keyframes.length > 0);
@@ -48,7 +53,7 @@ export function getKeyframeAtTime({
time,
}: {
animations: ElementAnimations | undefined;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
time: number;
}): ElementKeyframe | null {
const channel = animations?.channels[propertyPath];
diff --git a/apps/web/src/lib/animation/keyframes.ts b/apps/web/src/lib/animation/keyframes.ts
index 3e3613f2..5fa99fb8 100644
--- a/apps/web/src/lib/animation/keyframes.ts
+++ b/apps/web/src/lib/animation/keyframes.ts
@@ -2,6 +2,7 @@ import type {
AnimationChannel,
AnimationInterpolation,
AnimationKeyframe,
+ AnimationPath,
AnimationPropertyPath,
AnimationValue,
AnimationValueKind,
@@ -9,15 +10,19 @@ import type {
DiscreteAnimationChannel,
ElementAnimations,
NumberAnimationChannel,
-} from "@/types/animation";
+ VectorAnimationChannel,
+} from "@/lib/animation/types";
+import { isVectorValue } from "./vector-channel";
import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
import { generateUUID } from "@/utils/id";
+import { snapToStep } from "@/utils/math";
import { getChannelValueAtTime, normalizeChannel } from "./interpolation";
import {
coerceAnimationValueForProperty,
getDefaultInterpolationForProperty,
getAnimationPropertyDefinition,
isAnimationPropertyPath,
+ type NumericRange,
} from "./property-registry";
function isNearlySameTime({
@@ -126,6 +131,19 @@ function buildKeyframe({
};
}
+ if (channel.valueKind === "vector") {
+ if (!isVectorValue(value)) {
+ throw new Error("Vector channel keyframes require {x, y} values");
+ }
+
+ return {
+ id,
+ time,
+ value,
+ interpolation: interpolation === "hold" ? "hold" : "linear",
+ };
+ }
+
if (typeof value !== "string" && typeof value !== "boolean") {
throw new Error(
"Discrete channel keyframes require boolean or string values",
@@ -140,32 +158,178 @@ function buildKeyframe({
};
}
-function createEmptyChannel({
- propertyPath,
+function createEmptyChannelForValueKind({
+ valueKind,
}: {
- propertyPath: AnimationPropertyPath;
+ valueKind: AnimationValueKind;
}): AnimationChannel {
- const propertyDefinition = getAnimationPropertyDefinition({ propertyPath });
- if (propertyDefinition.valueKind === "number") {
+ if (valueKind === "number") {
return {
valueKind: "number",
keyframes: [],
} satisfies NumberAnimationChannel;
}
- if (propertyDefinition.valueKind === "color") {
+ if (valueKind === "color") {
return {
valueKind: "color",
keyframes: [],
} satisfies ColorAnimationChannel;
}
+ if (valueKind === "vector") {
+ return {
+ valueKind: "vector",
+ keyframes: [],
+ } satisfies VectorAnimationChannel;
+ }
+
return {
valueKind: "discrete",
keyframes: [],
} satisfies DiscreteAnimationChannel;
}
+function clampNumericRange({
+ value,
+ numericRange,
+}: {
+ value: number;
+ numericRange: NumericRange | undefined;
+}): number {
+ if (!numericRange) {
+ return value;
+ }
+
+ const steppedValue =
+ numericRange.step != null
+ ? snapToStep({ value, step: numericRange.step })
+ : value;
+ const minValue = numericRange.min ?? Number.NEGATIVE_INFINITY;
+ const maxValue = numericRange.max ?? Number.POSITIVE_INFINITY;
+ return Math.min(maxValue, Math.max(minValue, steppedValue));
+}
+
+function coerceAnimationValueForPath({
+ value,
+ valueKind,
+ numericRange,
+}: {
+ value: AnimationValue;
+ valueKind: AnimationValueKind;
+ numericRange?: NumericRange;
+}): AnimationValue | null {
+ if (valueKind === "number") {
+ if (typeof value !== "number" || Number.isNaN(value)) {
+ return null;
+ }
+
+ return clampNumericRange({ value, numericRange });
+ }
+
+ if (valueKind === "color") {
+ return typeof value === "string" ? value : null;
+ }
+
+ if (valueKind === "vector") {
+ return isVectorValue(value) ? value : null;
+ }
+
+ return typeof value === "string" || typeof value === "boolean" ? value : null;
+}
+
+export function upsertPathKeyframe({
+ animations,
+ propertyPath,
+ time,
+ value,
+ interpolation,
+ keyframeId,
+ valueKind,
+ defaultInterpolation,
+ numericRange,
+}: {
+ animations: ElementAnimations | undefined;
+ propertyPath: AnimationPath;
+ time: number;
+ value: AnimationValue;
+ interpolation?: AnimationInterpolation;
+ keyframeId?: string;
+ valueKind: AnimationValueKind;
+ defaultInterpolation: AnimationInterpolation;
+ numericRange?: NumericRange;
+}): ElementAnimations | undefined {
+ const coercedValue = coerceAnimationValueForPath({
+ value,
+ valueKind,
+ numericRange,
+ });
+ if (coercedValue === null) {
+ return animations;
+ }
+
+ const channel = getChannel({ animations, propertyPath });
+ const targetChannel =
+ channel && channel.valueKind === valueKind
+ ? channel
+ : createEmptyChannelForValueKind({ valueKind });
+ const updatedChannel = upsertKeyframe({
+ channel: targetChannel,
+ time,
+ value: coercedValue,
+ interpolation: interpolation ?? defaultInterpolation,
+ keyframeId,
+ });
+
+ return (
+ setChannel({
+ animations,
+ propertyPath,
+ channel: updatedChannel,
+ }) ?? { channels: {} }
+ );
+}
+
+export function upsertElementKeyframe({
+ animations,
+ propertyPath,
+ time,
+ value,
+ interpolation,
+ keyframeId,
+}: {
+ animations: ElementAnimations | undefined;
+ propertyPath: AnimationPropertyPath;
+ time: number;
+ value: AnimationValue;
+ interpolation?: AnimationInterpolation;
+ keyframeId?: string;
+}): ElementAnimations | undefined {
+ const coercedValue = coerceAnimationValueForProperty({
+ propertyPath,
+ value,
+ });
+ if (coercedValue === null) {
+ return animations;
+ }
+
+ const propertyDefinition = getAnimationPropertyDefinition({ propertyPath });
+ return upsertPathKeyframe({
+ animations,
+ propertyPath,
+ time,
+ value: coercedValue,
+ interpolation,
+ keyframeId,
+ valueKind: propertyDefinition.valueKind,
+ defaultInterpolation: getDefaultInterpolationForProperty({
+ propertyPath,
+ }),
+ numericRange: propertyDefinition.numericRange,
+ });
+}
+
+
export function upsertKeyframe({
channel,
time,
@@ -516,62 +680,13 @@ export function splitAnimationsAtTime({
};
}
-export function upsertElementKeyframe({
- animations,
- propertyPath,
- time,
- value,
- interpolation,
- keyframeId,
-}: {
- animations: ElementAnimations | undefined;
- propertyPath: AnimationPropertyPath;
- time: number;
- value: AnimationValue;
- interpolation?: AnimationInterpolation;
- keyframeId?: string;
-}): ElementAnimations | undefined {
- const coercedValue = coerceAnimationValueForProperty({
- propertyPath,
- value,
- });
- if (coercedValue === null) {
- return animations;
- }
-
- const defaultInterpolation = getDefaultInterpolationForProperty({
- propertyPath,
- });
- const propertyDefinition = getAnimationPropertyDefinition({ propertyPath });
- const channel = getChannel({ animations, propertyPath });
- const targetChannel =
- channel && channel.valueKind === propertyDefinition.valueKind
- ? channel
- : createEmptyChannel({ propertyPath });
- const updatedChannel = upsertKeyframe({
- channel: targetChannel,
- time,
- value: coercedValue,
- interpolation: interpolation ?? defaultInterpolation,
- keyframeId,
- });
-
- return (
- setChannel({
- animations,
- propertyPath,
- channel: updatedChannel,
- }) ?? { channels: {} }
- );
-}
-
export function removeElementKeyframe({
animations,
propertyPath,
keyframeId,
}: {
animations: ElementAnimations | undefined;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
}): ElementAnimations | undefined {
const channel = getChannel({ animations, propertyPath });
@@ -593,7 +708,7 @@ export function retimeElementKeyframe({
time,
}: {
animations: ElementAnimations | undefined;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
time: number;
}): ElementAnimations | undefined {
diff --git a/apps/web/src/lib/animation/number-channel.ts b/apps/web/src/lib/animation/number-channel.ts
index 67166156..859da863 100644
--- a/apps/web/src/lib/animation/number-channel.ts
+++ b/apps/web/src/lib/animation/number-channel.ts
@@ -2,7 +2,7 @@ import type {
AnimationPropertyPath,
ElementAnimations,
NumberAnimationChannel,
-} from "@/types/animation";
+} from "@/lib/animation/types";
export function getNumberChannelForPath({
animations,
diff --git a/apps/web/src/lib/animation/property-groups.ts b/apps/web/src/lib/animation/property-groups.ts
new file mode 100644
index 00000000..61b4fc4a
--- /dev/null
+++ b/apps/web/src/lib/animation/property-groups.ts
@@ -0,0 +1,39 @@
+import type {
+ AnimationPropertyGroup,
+ AnimationPropertyPath,
+ ElementAnimations,
+} from "@/lib/animation/types";
+import { ANIMATION_PROPERTY_GROUPS } from "@/lib/animation/types";
+import { getKeyframeAtTime } from "./keyframe-query";
+
+export interface GroupKeyframeRef {
+ propertyPath: AnimationPropertyPath;
+ keyframeId: string;
+}
+
+export function getGroupKeyframesAtTime({
+ animations,
+ group,
+ time,
+}: {
+ animations: ElementAnimations | undefined;
+ group: AnimationPropertyGroup;
+ time: number;
+}): GroupKeyframeRef[] {
+ return ANIMATION_PROPERTY_GROUPS[group].flatMap((propertyPath) => {
+ const keyframe = getKeyframeAtTime({ animations, propertyPath, time });
+ return keyframe ? [{ propertyPath, keyframeId: keyframe.id }] : [];
+ });
+}
+
+export function hasGroupKeyframeAtTime({
+ animations,
+ group,
+ time,
+}: {
+ animations: ElementAnimations | undefined;
+ group: AnimationPropertyGroup;
+ time: number;
+}): boolean {
+ return getGroupKeyframesAtTime({ animations, group, time }).length > 0;
+}
diff --git a/apps/web/src/lib/animation/property-registry.ts b/apps/web/src/lib/animation/property-registry.ts
index 361ae3ba..0b28e783 100644
--- a/apps/web/src/lib/animation/property-registry.ts
+++ b/apps/web/src/lib/animation/property-registry.ts
@@ -4,25 +4,35 @@ import type {
AnimationValue,
AnimationValueKind,
DiscreteValue,
-} from "@/types/animation";
-import type { TimelineElement } from "@/types/timeline";
+ VectorValue,
+} from "@/lib/animation/types";
+import { isVectorValue } from "./vector-channel";
+import type { TimelineElement } from "@/lib/timeline";
import { MIN_TRANSFORM_SCALE } from "@/constants/animation-constants";
import {
CORNER_RADIUS_MAX,
CORNER_RADIUS_MIN,
- DEFAULT_TEXT_BACKGROUND,
} from "@/constants/text-constants";
-import { isVisualElement } from "@/lib/timeline/element-utils";
+import {
+ canElementHaveAudio,
+ isVisualElement,
+} from "@/lib/timeline/element-utils";
+import { VOLUME_DB_MAX, VOLUME_DB_MIN } from "@/lib/timeline/audio-constants";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import { snapToStep } from "@/utils/math";
-interface NumericRange {
+export interface NumericSpec {
min?: number;
max?: number;
+ step?: number;
}
-interface AnimationPropertyDefinition {
+export type NumericRange = NumericSpec;
+
+export interface AnimationPropertyDefinition {
valueKind: AnimationValueKind;
defaultInterpolation: AnimationInterpolation;
- numericRange?: NumericRange;
+ numericRange?: NumericSpec;
supportsElement: ({ element }: { element: TimelineElement }) => boolean;
getValue: ({ element }: { element: TimelineElement }) => AnimationValue | null;
setValue: ({
@@ -38,58 +48,57 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
AnimationPropertyPath,
AnimationPropertyDefinition
> = {
- "transform.position.x": {
- valueKind: "number",
+ "transform.position": {
+ valueKind: "vector",
defaultInterpolation: "linear",
supportsElement: ({ element }) => isVisualElement(element),
getValue: ({ element }) =>
- isVisualElement(element) ? element.transform.position.x : null,
+ isVisualElement(element) ? element.transform.position : null,
setValue: ({ element, value }) =>
isVisualElement(element)
? {
...element,
transform: {
...element.transform,
- position: { ...element.transform.position, x: value as number },
+ position: value as VectorValue,
},
}
: element,
},
- "transform.position.y": {
+ "transform.scaleX": {
valueKind: "number",
defaultInterpolation: "linear",
+ numericRange: { min: MIN_TRANSFORM_SCALE, step: 0.01 },
supportsElement: ({ element }) => isVisualElement(element),
getValue: ({ element }) =>
- isVisualElement(element) ? element.transform.position.y : null,
+ isVisualElement(element) ? element.transform.scaleX : null,
setValue: ({ element, value }) =>
isVisualElement(element)
? {
...element,
- transform: {
- ...element.transform,
- position: { ...element.transform.position, y: value as number },
- },
+ transform: { ...element.transform, scaleX: value as number },
}
: element,
},
- "transform.scale": {
+ "transform.scaleY": {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: MIN_TRANSFORM_SCALE },
+ numericRange: { min: MIN_TRANSFORM_SCALE, step: 0.01 },
supportsElement: ({ element }) => isVisualElement(element),
getValue: ({ element }) =>
- isVisualElement(element) ? element.transform.scale : null,
+ isVisualElement(element) ? element.transform.scaleY : null,
setValue: ({ element, value }) =>
isVisualElement(element)
? {
...element,
- transform: { ...element.transform, scale: value as number },
+ transform: { ...element.transform, scaleY: value as number },
}
: element,
},
"transform.rotate": {
valueKind: "number",
defaultInterpolation: "linear",
+ numericRange: { min: -360, max: 360, step: 1 },
supportsElement: ({ element }) => isVisualElement(element),
getValue: ({ element }) =>
isVisualElement(element) ? element.transform.rotate : null,
@@ -104,7 +113,7 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
opacity: {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: 0, max: 1 },
+ numericRange: { min: 0, max: 1, step: 0.01 },
supportsElement: ({ element }) => isVisualElement(element),
getValue: ({ element }) =>
isVisualElement(element) ? element.opacity : null,
@@ -116,12 +125,12 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
volume: {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: 0, max: 1 },
- supportsElement: ({ element }) => element.type === "audio",
+ numericRange: { min: VOLUME_DB_MIN, max: VOLUME_DB_MAX, step: 0.01 },
+ supportsElement: ({ element }) => canElementHaveAudio(element),
getValue: ({ element }) =>
- element.type === "audio" ? element.volume : null,
+ canElementHaveAudio(element) ? element.volume ?? 0 : null,
setValue: ({ element, value }) =>
- element.type === "audio"
+ canElementHaveAudio(element)
? { ...element, volume: value as number }
: element,
},
@@ -152,11 +161,11 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
"background.paddingX": {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: 0 },
+ numericRange: { min: 0, step: 1 },
supportsElement: ({ element }) => element.type === "text",
getValue: ({ element }) =>
element.type === "text"
- ? (element.background.paddingX ?? DEFAULT_TEXT_BACKGROUND.paddingX)
+ ? (element.background.paddingX ?? DEFAULTS.text.background.paddingX)
: null,
setValue: ({ element, value }) =>
element.type === "text"
@@ -169,11 +178,11 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
"background.paddingY": {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: 0 },
+ numericRange: { min: 0, step: 1 },
supportsElement: ({ element }) => element.type === "text",
getValue: ({ element }) =>
element.type === "text"
- ? (element.background.paddingY ?? DEFAULT_TEXT_BACKGROUND.paddingY)
+ ? (element.background.paddingY ?? DEFAULTS.text.background.paddingY)
: null,
setValue: ({ element, value }) =>
element.type === "text"
@@ -186,10 +195,11 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
"background.offsetX": {
valueKind: "number",
defaultInterpolation: "linear",
+ numericRange: { step: 1 },
supportsElement: ({ element }) => element.type === "text",
getValue: ({ element }) =>
element.type === "text"
- ? (element.background.offsetX ?? DEFAULT_TEXT_BACKGROUND.offsetX)
+ ? (element.background.offsetX ?? DEFAULTS.text.background.offsetX)
: null,
setValue: ({ element, value }) =>
element.type === "text"
@@ -202,10 +212,11 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
"background.offsetY": {
valueKind: "number",
defaultInterpolation: "linear",
+ numericRange: { step: 1 },
supportsElement: ({ element }) => element.type === "text",
getValue: ({ element }) =>
element.type === "text"
- ? (element.background.offsetY ?? DEFAULT_TEXT_BACKGROUND.offsetY)
+ ? (element.background.offsetY ?? DEFAULTS.text.background.offsetY)
: null,
setValue: ({ element, value }) =>
element.type === "text"
@@ -218,7 +229,7 @@ const ANIMATION_PROPERTY_REGISTRY: Record<
"background.cornerRadius": {
valueKind: "number",
defaultInterpolation: "linear",
- numericRange: { min: CORNER_RADIUS_MIN, max: CORNER_RADIUS_MAX },
+ numericRange: { min: CORNER_RADIUS_MIN, max: CORNER_RADIUS_MAX, step: 1 },
supportsElement: ({ element }) => element.type === "text",
getValue: ({ element }) =>
element.type === "text"
@@ -304,20 +315,24 @@ export function getDefaultInterpolationForProperty({
return propertyDefinition.defaultInterpolation;
}
-function clampNumericRange({
+function applyNumericSpec({
value,
numericRange,
}: {
value: number;
- numericRange: NumericRange | undefined;
+ numericRange: NumericSpec | undefined;
}): number {
if (!numericRange) {
return value;
}
+ const steppedValue =
+ numericRange.step != null
+ ? snapToStep({ value, step: numericRange.step })
+ : value;
const minValue = numericRange.min ?? Number.NEGATIVE_INFINITY;
const maxValue = numericRange.max ?? Number.POSITIVE_INFINITY;
- return Math.min(maxValue, Math.max(minValue, value));
+ return Math.min(maxValue, Math.max(minValue, steppedValue));
}
export function coerceAnimationValueForProperty({
@@ -334,7 +349,7 @@ export function coerceAnimationValueForProperty({
return null;
}
- return clampNumericRange({
+ return applyNumericSpec({
value,
numericRange: propertyDefinition.numericRange,
});
@@ -344,6 +359,10 @@ export function coerceAnimationValueForProperty({
return typeof value === "string" ? value : null;
}
+ if (propertyDefinition.valueKind === "vector") {
+ return isVectorValue(value) ? value : null;
+ }
+
if (typeof value === "string" || typeof value === "boolean") {
return value as DiscreteValue;
}
diff --git a/apps/web/src/lib/animation/resolve.ts b/apps/web/src/lib/animation/resolve.ts
index 147be1b3..8709627d 100644
--- a/apps/web/src/lib/animation/resolve.ts
+++ b/apps/web/src/lib/animation/resolve.ts
@@ -1,8 +1,16 @@
-import type { AnimationPropertyPath, ElementAnimations } from "@/types/animation";
-import type { Transform } from "@/types/timeline";
-import { getColorValueAtTime, getNumberChannelValueAtTime } from "./interpolation";
+import type {
+ AnimationPropertyPath,
+ ElementAnimations,
+} from "@/lib/animation/types";
+import type { Transform } from "@/lib/rendering";
+import {
+ getColorValueAtTime,
+ getNumberChannelValueAtTime,
+ getVectorChannelValueAtTime,
+} from "./interpolation";
import { getColorChannelForPath } from "./color-channel";
import { getNumberChannelForPath } from "./number-channel";
+import { getVectorChannelForPath } from "./vector-channel";
export function getElementLocalTime({
timelineTime,
@@ -36,31 +44,29 @@ export function resolveTransformAtTime({
}): Transform {
const safeLocalTime = Math.max(0, localTime);
return {
- position: {
- x: getNumberChannelValueAtTime({
- channel: getNumberChannelForPath({
- animations,
- propertyPath: "transform.position.x",
- }),
- time: safeLocalTime,
- fallbackValue: baseTransform.position.x,
+ position: getVectorChannelValueAtTime({
+ channel: getVectorChannelForPath({
+ animations,
+ propertyPath: "transform.position",
}),
- y: getNumberChannelValueAtTime({
- channel: getNumberChannelForPath({
- animations,
- propertyPath: "transform.position.y",
- }),
- time: safeLocalTime,
- fallbackValue: baseTransform.position.y,
+ time: safeLocalTime,
+ fallbackValue: baseTransform.position,
+ }),
+ scaleX: getNumberChannelValueAtTime({
+ channel: getNumberChannelForPath({
+ animations,
+ propertyPath: "transform.scaleX",
}),
- },
- scale: getNumberChannelValueAtTime({
+ time: safeLocalTime,
+ fallbackValue: baseTransform.scaleX,
+ }),
+ scaleY: getNumberChannelValueAtTime({
channel: getNumberChannelForPath({
animations,
- propertyPath: "transform.scale",
+ propertyPath: "transform.scaleY",
}),
time: safeLocalTime,
- fallbackValue: baseTransform.scale,
+ fallbackValue: baseTransform.scaleY,
}),
rotate: getNumberChannelValueAtTime({
channel: getNumberChannelForPath({
@@ -127,22 +133,3 @@ export function resolveColorAtTime({
fallbackValue: baseColor,
});
}
-
-export function resolveVolumeAtTime({
- baseVolume,
- animations,
- localTime,
-}: {
- baseVolume: number;
- animations: ElementAnimations | undefined;
- localTime: number;
-}): number {
- return getNumberChannelValueAtTime({
- channel: getNumberChannelForPath({
- animations,
- propertyPath: "volume",
- }),
- time: Math.max(0, localTime),
- fallbackValue: baseVolume,
- });
-}
diff --git a/apps/web/src/lib/animation/target-resolver.ts b/apps/web/src/lib/animation/target-resolver.ts
new file mode 100644
index 00000000..e801bc68
--- /dev/null
+++ b/apps/web/src/lib/animation/target-resolver.ts
@@ -0,0 +1,279 @@
+import type {
+ AnimationInterpolation,
+ AnimationPath,
+ AnimationValue,
+ AnimationValueKind,
+} from "@/lib/animation/types";
+import {
+ parseEffectParamPath,
+ isEffectParamPath,
+} from "@/lib/animation/effect-param-channel";
+import {
+ isGraphicParamPath,
+ parseGraphicParamPath,
+} from "@/lib/animation/graphic-param-channel";
+import type { ParamDefinition } from "@/lib/params";
+import { effectsRegistry, registerDefaultEffects } from "@/lib/effects";
+import { getGraphicDefinition } from "@/lib/graphics";
+import type { TimelineElement } from "@/lib/timeline";
+import { isVisualElement } from "@/lib/timeline/element-utils";
+import { snapToStep } from "@/utils/math";
+import {
+ coerceAnimationValueForProperty,
+ getAnimationPropertyDefinition,
+ getElementBaseValueForProperty,
+ isAnimationPropertyPath,
+ type NumericSpec,
+ withElementBaseValueForProperty,
+} from "./property-registry";
+
+export interface AnimationPathDescriptor {
+ valueKind: AnimationValueKind;
+ defaultInterpolation: AnimationInterpolation;
+ numericRange?: NumericSpec;
+ getBaseValue(): AnimationValue | null;
+ setBaseValue(value: AnimationValue): TimelineElement;
+}
+
+export function getParamValueKind({
+ param,
+}: {
+ param: ParamDefinition;
+}): AnimationValueKind {
+ if (param.type === "number") {
+ return "number";
+ }
+
+ if (param.type === "color") {
+ return "color";
+ }
+
+ return "discrete";
+}
+
+export function getParamDefaultInterpolation({
+ param,
+}: {
+ param: ParamDefinition;
+}): AnimationInterpolation {
+ return param.type === "number" || param.type === "color" ? "linear" : "hold";
+}
+
+function getParamNumericRange({
+ param,
+}: {
+ param: ParamDefinition;
+}): NumericSpec | undefined {
+ if (param.type !== "number") {
+ return undefined;
+ }
+
+ return {
+ min: param.min,
+ max: param.max,
+ step: param.step,
+ };
+}
+
+function coerceParamValue({
+ param,
+ value,
+}: {
+ param: ParamDefinition;
+ value: AnimationValue;
+}): number | string | boolean | null {
+ if (param.type === "number") {
+ if (typeof value !== "number" || Number.isNaN(value)) {
+ return null;
+ }
+
+ const steppedValue = snapToStep({ value, step: param.step });
+ const minValue = param.min;
+ const maxValue = param.max ?? Number.POSITIVE_INFINITY;
+ return Math.min(maxValue, Math.max(minValue, steppedValue));
+ }
+
+ if (param.type === "color") {
+ return typeof value === "string" ? value : null;
+ }
+
+ if (param.type === "boolean") {
+ return typeof value === "boolean" ? value : null;
+ }
+
+ if (typeof value !== "string") {
+ return null;
+ }
+
+ return param.options.some((option) => option.value === value) ? value : null;
+}
+
+function buildGraphicParamDescriptor({
+ element,
+ paramKey,
+}: {
+ element: TimelineElement;
+ paramKey: string;
+}): AnimationPathDescriptor | null {
+ if (element.type !== "graphic") {
+ return null;
+ }
+
+ const definition = getGraphicDefinition({
+ definitionId: element.definitionId,
+ });
+ const param = definition.params.find((candidate) => candidate.key === paramKey);
+ if (!param) {
+ return null;
+ }
+
+ return {
+ valueKind: getParamValueKind({ param }),
+ defaultInterpolation: getParamDefaultInterpolation({ param }),
+ numericRange: getParamNumericRange({ param }),
+ getBaseValue: () => element.params[param.key] ?? param.default,
+ setBaseValue: (value) => {
+ const coercedValue = coerceParamValue({ param, value });
+ if (coercedValue === null) {
+ return element;
+ }
+
+ return {
+ ...element,
+ params: {
+ ...element.params,
+ [param.key]: coercedValue,
+ },
+ };
+ },
+ };
+}
+
+function buildEffectParamDescriptor({
+ element,
+ effectId,
+ paramKey,
+}: {
+ element: TimelineElement;
+ effectId: string;
+ paramKey: string;
+}): AnimationPathDescriptor | null {
+ if (!isVisualElement(element)) {
+ return null;
+ }
+
+ const effect = element.effects?.find((candidate) => candidate.id === effectId);
+ if (!effect) {
+ return null;
+ }
+
+ registerDefaultEffects();
+ const definition = effectsRegistry.get(effect.type);
+ const param = definition.params.find((candidate) => candidate.key === paramKey);
+ if (!param) {
+ return null;
+ }
+
+ return {
+ valueKind: getParamValueKind({ param }),
+ defaultInterpolation: getParamDefaultInterpolation({ param }),
+ numericRange: getParamNumericRange({ param }),
+ getBaseValue: () => effect.params[param.key] ?? param.default,
+ setBaseValue: (value) => {
+ const coercedValue = coerceParamValue({ param, value });
+ if (coercedValue === null) {
+ return element;
+ }
+
+ return {
+ ...element,
+ effects:
+ element.effects?.map((candidate) =>
+ candidate.id !== effectId
+ ? candidate
+ : {
+ ...candidate,
+ params: {
+ ...candidate.params,
+ [param.key]: coercedValue,
+ },
+ },
+ ) ?? element.effects,
+ };
+ },
+ };
+}
+
+export function isAnimationPath({
+ propertyPath,
+}: {
+ propertyPath: string;
+}): propertyPath is AnimationPath {
+ return (
+ isAnimationPropertyPath({ propertyPath }) ||
+ isGraphicParamPath({ propertyPath }) ||
+ isEffectParamPath({ propertyPath })
+ );
+}
+
+export function resolveAnimationTarget({
+ element,
+ path,
+}: {
+ element: TimelineElement;
+ path: AnimationPath;
+}): AnimationPathDescriptor | null {
+ if (isAnimationPropertyPath({ propertyPath: path })) {
+ const propertyDefinition = getAnimationPropertyDefinition({
+ propertyPath: path,
+ });
+ if (!propertyDefinition.supportsElement({ element })) {
+ return null;
+ }
+
+ return {
+ valueKind: propertyDefinition.valueKind,
+ defaultInterpolation: propertyDefinition.defaultInterpolation,
+ numericRange: propertyDefinition.numericRange,
+ getBaseValue: () =>
+ getElementBaseValueForProperty({
+ element,
+ propertyPath: path,
+ }),
+ setBaseValue: (value) => {
+ const coercedValue = coerceAnimationValueForProperty({
+ propertyPath: path,
+ value,
+ });
+ if (coercedValue === null) {
+ return element;
+ }
+
+ return withElementBaseValueForProperty({
+ element,
+ propertyPath: path,
+ value: coercedValue,
+ });
+ },
+ };
+ }
+
+ const graphicParamTarget = parseGraphicParamPath({ propertyPath: path });
+ if (graphicParamTarget) {
+ return buildGraphicParamDescriptor({
+ element,
+ paramKey: graphicParamTarget.paramKey,
+ });
+ }
+
+ const effectParamTarget = parseEffectParamPath({ propertyPath: path });
+ if (effectParamTarget) {
+ return buildEffectParamDescriptor({
+ element,
+ effectId: effectParamTarget.effectId,
+ paramKey: effectParamTarget.paramKey,
+ });
+ }
+
+ return null;
+}
diff --git a/apps/web/src/types/animation.ts b/apps/web/src/lib/animation/types.ts
index 825894c5..913911d0 100644
--- a/apps/web/src/types/animation.ts
+++ b/apps/web/src/lib/animation/types.ts
@@ -1,7 +1,7 @@
export const ANIMATION_PROPERTY_PATHS = [
- "transform.position.x",
- "transform.position.y",
- "transform.scale",
+ "transform.position",
+ "transform.scaleX",
+ "transform.scaleY",
"transform.rotate",
"opacity",
"volume",
@@ -15,10 +15,24 @@ export const ANIMATION_PROPERTY_PATHS = [
] as const;
export type AnimationPropertyPath = (typeof ANIMATION_PROPERTY_PATHS)[number];
+export type GraphicParamPath = `params.${string}`;
+export type EffectParamPath = `effects.${string}.params.${string}`;
+export type AnimationPath =
+ | AnimationPropertyPath
+ | GraphicParamPath
+ | EffectParamPath;
-export type AnimationValueKind = "number" | "color" | "discrete";
+export const ANIMATION_PROPERTY_GROUPS = {
+ "transform.scale": ["transform.scaleX", "transform.scaleY"],
+} as const satisfies Record<string, ReadonlyArray<AnimationPropertyPath>>;
+
+export type AnimationPropertyGroup = keyof typeof ANIMATION_PROPERTY_GROUPS;
+
+export type VectorValue = { x: number; y: number };
+
+export type AnimationValueKind = "number" | "color" | "discrete" | "vector";
export type DiscreteValue = boolean | string;
-export type AnimationValue = number | string | boolean;
+export type AnimationValue = number | string | boolean | VectorValue;
export type ContinuousKeyframeInterpolation = "linear" | "hold";
export type DiscreteKeyframeInterpolation = "hold";
@@ -45,10 +59,14 @@ export interface ColorKeyframe
export interface DiscreteKeyframe
extends BaseAnimationKeyframe<DiscreteValue, DiscreteKeyframeInterpolation> {}
+export interface VectorKeyframe
+ extends BaseAnimationKeyframe<VectorValue, ContinuousKeyframeInterpolation> {}
+
export type AnimationKeyframe =
| NumberKeyframe
| ColorKeyframe
- | DiscreteKeyframe;
+ | DiscreteKeyframe
+ | VectorKeyframe;
interface BaseAnimationChannel<
TValueKind extends AnimationValueKind,
@@ -67,10 +85,14 @@ export interface ColorAnimationChannel
export interface DiscreteAnimationChannel
extends BaseAnimationChannel<"discrete", DiscreteKeyframe> {}
+export interface VectorAnimationChannel
+ extends BaseAnimationChannel<"vector", VectorKeyframe> {}
+
export type AnimationChannel =
| NumberAnimationChannel
| ColorAnimationChannel
- | DiscreteAnimationChannel;
+ | DiscreteAnimationChannel
+ | VectorAnimationChannel;
export type ElementAnimationChannelMap = Record<
string,
@@ -82,7 +104,7 @@ export interface ElementAnimations {
}
export interface ElementKeyframe {
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
id: string;
time: number;
value: AnimationValue;
@@ -92,6 +114,6 @@ export interface ElementKeyframe {
export interface SelectedKeyframeRef {
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
}
diff --git a/apps/web/src/lib/animation/vector-channel.ts b/apps/web/src/lib/animation/vector-channel.ts
new file mode 100644
index 00000000..50c62e40
--- /dev/null
+++ b/apps/web/src/lib/animation/vector-channel.ts
@@ -0,0 +1,72 @@
+import type {
+ AnimationPropertyPath,
+ ElementAnimations,
+ VectorAnimationChannel,
+ VectorValue,
+} from "@/lib/animation/types";
+
+export function isVectorValue(value: unknown): value is VectorValue {
+ return (
+ typeof value === "object" &&
+ value !== null &&
+ "x" in value &&
+ "y" in value &&
+ typeof (value as VectorValue).x === "number" &&
+ typeof (value as VectorValue).y === "number"
+ );
+}
+
+export function getVectorChannelForPath({
+ animations,
+ propertyPath,
+}: {
+ animations: ElementAnimations | undefined;
+ propertyPath: AnimationPropertyPath;
+}): VectorAnimationChannel | undefined {
+ const channel = animations?.channels[propertyPath];
+ if (!channel || channel.valueKind !== "vector") {
+ return undefined;
+ }
+ return channel;
+}
+
+export function getVectorChannelValueAtTime({
+ channel,
+ time,
+ fallbackValue,
+}: {
+ channel: VectorAnimationChannel | undefined;
+ time: number;
+ fallbackValue: VectorValue;
+}): VectorValue {
+ if (!channel || channel.keyframes.length === 0) {
+ return fallbackValue;
+ }
+
+ const keyframes = [...channel.keyframes].sort((a, b) => a.time - b.time);
+ const first = keyframes[0];
+ const last = keyframes[keyframes.length - 1];
+
+ if (!first || !last) return fallbackValue;
+ if (time <= first.time) return first.value;
+ if (time >= last.time) return last.value;
+
+ for (let i = 0; i < keyframes.length - 1; i++) {
+ const left = keyframes[i];
+ const right = keyframes[i + 1];
+ if (time < left.time || time > right.time) continue;
+
+ if (left.interpolation === "hold") return left.value;
+
+ const span = right.time - left.time;
+ if (span === 0) return right.value;
+
+ const t = (time - left.time) / span;
+ return {
+ x: left.value.x + (right.value.x - left.value.x) * t,
+ y: left.value.y + (right.value.y - left.value.y) * t,
+ };
+ }
+
+ return last.value;
+}
diff --git a/apps/web/src/lib/blog/query.ts b/apps/web/src/lib/blog/query.ts
index f814eeaf..5f7c7474 100644
--- a/apps/web/src/lib/blog/query.ts
+++ b/apps/web/src/lib/blog/query.ts
@@ -5,7 +5,7 @@ import type {
MarblePost,
MarblePostList,
MarbleTagList,
-} from "@/types/blog";
+} from "@/lib/blog/types";
import { unified } from "unified";
import rehypeParse from "rehype-parse";
import rehypeStringify from "rehype-stringify";
diff --git a/apps/web/src/types/blog.ts b/apps/web/src/lib/blog/types.ts
index 16795b02..16795b02 100644
--- a/apps/web/src/types/blog.ts
+++ b/apps/web/src/lib/blog/types.ts
diff --git a/apps/web/src/lib/cancel-interaction.ts b/apps/web/src/lib/cancel-interaction.ts
new file mode 100644
index 00000000..0cb07f4f
--- /dev/null
+++ b/apps/web/src/lib/cancel-interaction.ts
@@ -0,0 +1,24 @@
+type CancelFn = () => void;
+
+const cancellers = new Set<CancelFn>();
+
+export function registerCanceller({ fn }: { fn: CancelFn }): () => void {
+ cancellers.add(fn);
+
+ return () => {
+ cancellers.delete(fn);
+ };
+}
+
+export function cancelInteraction(): boolean {
+ if (cancellers.size === 0) return false;
+
+ const activeCancellers = Array.from(cancellers);
+ cancellers.clear();
+
+ for (const cancel of activeCancellers) {
+ cancel();
+ }
+
+ return true;
+}
diff --git a/apps/web/src/lib/commands/__tests__/keyframe-aware-commands.test.ts b/apps/web/src/lib/commands/__tests__/keyframe-aware-commands.test.ts
deleted file mode 100644
index d2356a39..00000000
--- a/apps/web/src/lib/commands/__tests__/keyframe-aware-commands.test.ts
+++ /dev/null
@@ -1,433 +0,0 @@
-import { afterEach, describe, expect, test } from "bun:test";
-import { EditorCore } from "@/core";
-import type { TimelineTrack, VideoElement } from "@/types/timeline";
-import { DEFAULT_TRANSFORM } from "@/constants/timeline-constants";
-import { UpdateElementDurationCommand } from "@/lib/commands/timeline/element/update-element-duration";
-import { UpdateElementTrimCommand } from "@/lib/commands/timeline/element/update-element-trim";
-import { SplitElementsCommand } from "@/lib/commands/timeline/element/split-elements";
-import { DuplicateElementsCommand } from "@/lib/commands/timeline/element/duplicate-elements";
-import { UpsertKeyframeCommand } from "@/lib/commands/timeline/element/keyframes/upsert-keyframe";
-import { RemoveKeyframeCommand } from "@/lib/commands/timeline/element/keyframes/remove-keyframe";
-import { RetimeKeyframeCommand } from "@/lib/commands/timeline/element/keyframes/retime-keyframe";
-
-type MockEditor = {
- timeline: {
- getTracks: () => TimelineTrack[];
- updateTracks: (tracks: TimelineTrack[]) => void;
- };
- selection: {
- getSelectedElements: () => { trackId: string; elementId: string }[];
- setSelectedElements: ({
- elements,
- }: {
- elements: { trackId: string; elementId: string }[];
- }) => void;
- };
-};
-
-const originalGetInstance = EditorCore.getInstance;
-
-function mockEditorCore({ editor }: { editor: MockEditor }): void {
- (
- EditorCore as unknown as {
- getInstance: () => EditorCore;
- }
- ).getInstance = () => editor as unknown as EditorCore;
-}
-
-function restoreEditorCore(): void {
- (
- EditorCore as unknown as {
- getInstance: typeof EditorCore.getInstance;
- }
- ).getInstance = originalGetInstance;
-}
-
-function buildVideoElement(): VideoElement {
- return {
- id: "element-1",
- name: "Clip",
- type: "video",
- mediaId: "media-1",
- duration: 8,
- startTime: 1,
- trimStart: 0,
- trimEnd: 0,
- transform: DEFAULT_TRANSFORM,
- opacity: 1,
- animations: {
- channels: {
- "transform.scale": {
- valueKind: "number",
- keyframes: [
- { id: "kf-a", time: 0, value: 1, interpolation: "linear" },
- { id: "kf-b", time: 3, value: 1.5, interpolation: "linear" },
- { id: "kf-c", time: 6, value: 2, interpolation: "linear" },
- ],
- },
- },
- },
- };
-}
-
-function buildTracks({ element }: { element: VideoElement }): TimelineTrack[] {
- return [
- {
- id: "track-1",
- name: "Main",
- type: "video",
- elements: [element],
- isMain: true,
- muted: false,
- hidden: false,
- },
- ];
-}
-
-afterEach(() => {
- restoreEditorCore();
-});
-
-describe("keyframe-aware timeline commands", () => {
- test("duration updates clamp keyframes beyond the new duration", () => {
- const tracks = buildTracks({ element: buildVideoElement() });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new UpdateElementDurationCommand({
- trackId: "track-1",
- elementId: "element-1",
- duration: 3,
- }).execute();
-
- const updatedElement = (updatedTracks[0].elements[0] as VideoElement).animations;
- expect(
- updatedElement?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 3]);
- });
-
- test("trim updates clamp keyframes when duration is changed", () => {
- const tracks = buildTracks({ element: buildVideoElement() });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new UpdateElementTrimCommand({
- elementId: "element-1",
- trimStart: 0,
- trimEnd: 0,
- startTime: 1,
- duration: 2,
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- expect(updatedElement.duration).toBe(2);
- expect(
- updatedElement.animations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0]);
- });
-
- test("split rebases right-side keyframes and keeps continuity at split time", () => {
- const tracks = buildTracks({ element: buildVideoElement() });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new SplitElementsCommand({
- elements: [{ trackId: "track-1", elementId: "element-1" }],
- splitTime: 5,
- }).execute();
-
- const leftElement = updatedTracks[0].elements.find(
- (element) => element.id === "element-1",
- ) as VideoElement;
- const rightElement = updatedTracks[0].elements.find(
- (element) => element.id !== "element-1",
- ) as VideoElement;
-
- expect(
- leftElement.animations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 3, 4]);
- expect(
- rightElement.animations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 2]);
- expect(
- rightElement.animations?.channels["transform.scale"]?.keyframes[0]?.value,
- ).toBeCloseTo(5 / 3, 4);
- });
-
- test("duplicate creates independent keyframe ids for copied element", () => {
- const tracks = buildTracks({ element: buildVideoElement() });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [{ trackId: "track-1", elementId: "element-1" }],
- setSelectedElements: () => {},
- },
- },
- });
-
- new DuplicateElementsCommand({
- elements: [{ trackId: "track-1", elementId: "element-1" }],
- }).execute();
-
- const originalElement = updatedTracks.find(
- (track) => track.id === "track-1",
- )?.elements[0] as VideoElement;
- const duplicatedTrack = updatedTracks.find((track) => track.id !== "track-1");
- const duplicatedElement = duplicatedTrack?.elements[0] as VideoElement;
-
- expect(duplicatedElement).toBeDefined();
- expect(
- duplicatedElement.animations?.channels["transform.scale"]?.keyframes.map(
- (keyframe) => keyframe.time,
- ),
- ).toEqual([0, 3, 6]);
- expect(
- duplicatedElement.animations?.channels["transform.scale"]?.keyframes[0]?.id,
- ).not.toBe(
- originalElement.animations?.channels["transform.scale"]?.keyframes[0]?.id,
- );
- });
-});
-
-describe("generic keyframe commands", () => {
- test("upsert adds or updates keyframe at target time", () => {
- const element = buildVideoElement();
- const tracks = buildTracks({ element });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new UpsertKeyframeCommand({
- trackId: "track-1",
- elementId: "element-1",
- propertyPath: "transform.scale",
- time: 2,
- value: 2.5,
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- const keyframes =
- updatedElement.animations?.channels["transform.scale"]?.keyframes ?? [];
- const atTwo = keyframes.find((keyframe) => Math.abs(keyframe.time - 2) < 0.001);
- expect(atTwo?.value).toBe(2.5);
- });
-
- test("remove deletes keyframe by id", () => {
- const element = buildVideoElement();
- const tracks = buildTracks({ element });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new RemoveKeyframeCommand({
- trackId: "track-1",
- elementId: "element-1",
- propertyPath: "transform.scale",
- keyframeId: "kf-b",
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- const keyframes =
- updatedElement.animations?.channels["transform.scale"]?.keyframes ?? [];
- expect(keyframes).toHaveLength(2);
- expect(keyframes.find((keyframe) => keyframe.id === "kf-b")).toBeUndefined();
- expect(updatedElement.transform.scale).toBe(1);
- });
-
- test("remove persists value to base property when channel becomes empty", () => {
- const element: VideoElement = {
- ...buildVideoElement(),
- transform: {
- ...DEFAULT_TRANSFORM,
- scale: 1,
- },
- animations: {
- channels: {
- "transform.scale": {
- valueKind: "number",
- keyframes: [
- {
- id: "only-scale",
- time: 2,
- value: 1.43,
- interpolation: "linear",
- },
- ],
- },
- },
- },
- };
- const tracks = buildTracks({ element });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new RemoveKeyframeCommand({
- trackId: "track-1",
- elementId: "element-1",
- propertyPath: "transform.scale",
- keyframeId: "only-scale",
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- expect(updatedElement.transform.scale).toBe(1.43);
- expect(updatedElement.animations?.channels["transform.scale"]).toBeUndefined();
- });
-
- test("upsert supports non-transform paths like opacity", () => {
- const element = buildVideoElement();
- const tracks = buildTracks({ element });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new UpsertKeyframeCommand({
- trackId: "track-1",
- elementId: "element-1",
- propertyPath: "opacity",
- time: 1,
- value: 0.35,
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- const opacityChannel = updatedElement.animations?.channels.opacity;
- expect(opacityChannel?.valueKind).toBe("number");
- expect(opacityChannel?.keyframes[0]?.value).toBe(0.35);
- });
-
- test("retime moves keyframe to new time", () => {
- const element = buildVideoElement();
- const tracks = buildTracks({ element });
- let updatedTracks: TimelineTrack[] = tracks;
- mockEditorCore({
- editor: {
- timeline: {
- getTracks: () => tracks,
- updateTracks: (nextTracks) => {
- updatedTracks = nextTracks;
- },
- },
- selection: {
- getSelectedElements: () => [],
- setSelectedElements: () => {},
- },
- },
- });
-
- new RetimeKeyframeCommand({
- trackId: "track-1",
- elementId: "element-1",
- propertyPath: "transform.scale",
- keyframeId: "kf-b",
- nextTime: 4,
- }).execute();
-
- const updatedElement = updatedTracks[0].elements[0] as VideoElement;
- const keyframe = updatedElement.animations?.channels["transform.scale"]?.keyframes.find(
- (existingKeyframe) => existingKeyframe.id === "kf-b",
- );
- expect(keyframe?.time).toBe(4);
- });
-});
diff --git a/apps/web/src/lib/commands/index.ts b/apps/web/src/lib/commands/index.ts
index a2119fc1..03de07c4 100644
--- a/apps/web/src/lib/commands/index.ts
+++ b/apps/web/src/lib/commands/index.ts
@@ -1,6 +1,5 @@
export { Command } from "./base-command";
export { BatchCommand } from "./batch-command";
-export { PreviewTracker } from "./preview-tracker";
export * from "./timeline";
export * from "./media";
diff --git a/apps/web/src/lib/commands/media/add-media-asset.ts b/apps/web/src/lib/commands/media/add-media-asset.ts
index ddcca426..a3dec0e6 100644
--- a/apps/web/src/lib/commands/media/add-media-asset.ts
+++ b/apps/web/src/lib/commands/media/add-media-asset.ts
@@ -1,8 +1,10 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { MediaAsset } from "@/types/assets";
+import { toast } from "sonner";
+import type { MediaAsset } from "@/lib/media/types";
import { generateUUID } from "@/utils/id";
import { storageService } from "@/services/storage/service";
+import { hasMediaId } from "@/lib/timeline/element-utils";
export class AddMediaAssetCommand extends Command {
private assetId: string;
@@ -37,6 +39,36 @@ export class AddMediaAssetCommand extends Command {
})
.catch((error) => {
console.error("Failed to save media item:", error);
+
+ const currentAssets = editor.media.getAssets();
+ editor.media.setAssets({
+ assets: currentAssets.filter((asset) => asset.id !== this.assetId),
+ });
+
+ const currentTracks = editor.timeline.getTracks();
+ const orphanedElements: Array<{ trackId: string; elementId: string }> =
+ [];
+
+ for (const track of currentTracks) {
+ for (const element of track.elements) {
+ if (hasMediaId(element) && element.mediaId === this.assetId) {
+ orphanedElements.push({
+ trackId: track.id,
+ elementId: element.id,
+ });
+ }
+ }
+ }
+
+ if (orphanedElements.length > 0) {
+ editor.timeline.deleteElements({ elements: orphanedElements });
+ }
+
+ if (storageService.isQuotaExceededError({ error })) {
+ toast.error("Not enough browser storage", {
+ description: error instanceof Error ? error.message : undefined,
+ });
+ }
});
}
diff --git a/apps/web/src/lib/commands/media/remove-media-asset.ts b/apps/web/src/lib/commands/media/remove-media-asset.ts
index ee9ffa2d..f519baef 100644
--- a/apps/web/src/lib/commands/media/remove-media-asset.ts
+++ b/apps/web/src/lib/commands/media/remove-media-asset.ts
@@ -1,10 +1,10 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { MediaAsset } from "@/types/assets";
+import type { MediaAsset } from "@/lib/media/types";
import { storageService } from "@/services/storage/service";
import { videoCache } from "@/services/video-cache/service";
import { hasMediaId } from "@/lib/timeline/element-utils";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
export class RemoveMediaAssetCommand extends Command {
private savedAssets: MediaAsset[] | null = null;
@@ -33,6 +33,13 @@ export class RemoveMediaAssetCommand extends Command {
return;
}
+ if (this.removedAsset.url) {
+ URL.revokeObjectURL(this.removedAsset.url);
+ }
+ if (this.removedAsset.thumbnailUrl) {
+ URL.revokeObjectURL(this.removedAsset.thumbnailUrl);
+ }
+
videoCache.clearVideo({ mediaId: this.assetId });
editor.media.setAssets({
@@ -63,23 +70,30 @@ export class RemoveMediaAssetCommand extends Command {
undo(): void {
const editor = EditorCore.getInstance();
- if (this.savedAssets) {
- editor.media.setAssets({ assets: this.savedAssets });
- }
+ if (this.savedAssets && this.removedAsset) {
+ const restoredAsset: MediaAsset = {
+ ...this.removedAsset,
+ url: URL.createObjectURL(this.removedAsset.file),
+ };
- if (this.savedTracks) {
- editor.timeline.updateTracks(this.savedTracks);
- }
+ editor.media.setAssets({
+ assets: this.savedAssets.map((a) =>
+ a.id === this.assetId ? restoredAsset : a,
+ ),
+ });
- if (this.removedAsset) {
storageService
.saveMediaAsset({
projectId: this.projectId,
- mediaAsset: this.removedAsset,
+ mediaAsset: restoredAsset,
})
.catch((error) => {
console.error("Failed to restore media item on undo:", error);
});
}
+
+ if (this.savedTracks) {
+ editor.timeline.updateTracks(this.savedTracks);
+ }
}
}
diff --git a/apps/web/src/lib/commands/project/update-project-settings.ts b/apps/web/src/lib/commands/project/update-project-settings.ts
index b7ab75ee..b16431c1 100644
--- a/apps/web/src/lib/commands/project/update-project-settings.ts
+++ b/apps/web/src/lib/commands/project/update-project-settings.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TProject, TProjectSettings } from "@/types/project";
+import type { TProject, TProjectSettings } from "@/lib/project/types";
export class UpdateProjectSettingsCommand extends Command {
private savedSettings: TProjectSettings | null = null;
diff --git a/apps/web/src/lib/commands/scene/create-scene.ts b/apps/web/src/lib/commands/scene/create-scene.ts
index 5fea5d53..28bda2fd 100644
--- a/apps/web/src/lib/commands/scene/create-scene.ts
+++ b/apps/web/src/lib/commands/scene/create-scene.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { buildDefaultScene } from "@/lib/scenes";
export class CreateSceneCommand extends Command {
diff --git a/apps/web/src/lib/commands/scene/delete-scene.ts b/apps/web/src/lib/commands/scene/delete-scene.ts
index 83066e24..58c790e6 100644
--- a/apps/web/src/lib/commands/scene/delete-scene.ts
+++ b/apps/web/src/lib/commands/scene/delete-scene.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { canDeleteScene, getFallbackSceneAfterDelete } from "@/lib/scenes";
export class DeleteSceneCommand extends Command {
diff --git a/apps/web/src/lib/commands/scene/move-bookmark.ts b/apps/web/src/lib/commands/scene/move-bookmark.ts
index 64382f03..28d7a45c 100644
--- a/apps/web/src/lib/commands/scene/move-bookmark.ts
+++ b/apps/web/src/lib/commands/scene/move-bookmark.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { updateSceneInArray } from "@/lib/scenes";
import { getFrameTime, moveBookmarkInArray } from "@/lib/timeline/bookmarks";
diff --git a/apps/web/src/lib/commands/scene/remove-bookmark.ts b/apps/web/src/lib/commands/scene/remove-bookmark.ts
index a3029366..19515b97 100644
--- a/apps/web/src/lib/commands/scene/remove-bookmark.ts
+++ b/apps/web/src/lib/commands/scene/remove-bookmark.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { updateSceneInArray } from "@/lib/scenes";
import {
getFrameTime,
diff --git a/apps/web/src/lib/commands/scene/rename-scene.ts b/apps/web/src/lib/commands/scene/rename-scene.ts
index dc62369d..f1d65e27 100644
--- a/apps/web/src/lib/commands/scene/rename-scene.ts
+++ b/apps/web/src/lib/commands/scene/rename-scene.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { updateSceneInArray } from "@/lib/scenes";
export class RenameSceneCommand extends Command {
diff --git a/apps/web/src/lib/commands/scene/toggle-bookmark.ts b/apps/web/src/lib/commands/scene/toggle-bookmark.ts
index ac76d8fc..518a30aa 100644
--- a/apps/web/src/lib/commands/scene/toggle-bookmark.ts
+++ b/apps/web/src/lib/commands/scene/toggle-bookmark.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { updateSceneInArray } from "@/lib/scenes";
import { getFrameTime, toggleBookmarkInArray } from "@/lib/timeline/bookmarks";
diff --git a/apps/web/src/lib/commands/scene/update-bookmark.ts b/apps/web/src/lib/commands/scene/update-bookmark.ts
index 5ce91a36..6aeef42b 100644
--- a/apps/web/src/lib/commands/scene/update-bookmark.ts
+++ b/apps/web/src/lib/commands/scene/update-bookmark.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { Bookmark, TScene } from "@/types/timeline";
+import type { Bookmark, TScene } from "@/lib/timeline";
import { updateSceneInArray } from "@/lib/scenes";
import { getFrameTime, updateBookmarkInArray } from "@/lib/timeline/bookmarks";
diff --git a/apps/web/src/lib/commands/timeline/clipboard/paste.ts b/apps/web/src/lib/commands/timeline/clipboard/paste.ts
index 800cbb90..00758eb7 100644
--- a/apps/web/src/lib/commands/timeline/clipboard/paste.ts
+++ b/apps/web/src/lib/commands/timeline/clipboard/paste.ts
@@ -4,7 +4,7 @@ import type {
TimelineTrack,
TimelineElement,
ClipboardItem,
-} from "@/types/timeline";
+} from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import { wouldElementOverlap } from "@/lib/timeline/element-utils";
import {
diff --git a/apps/web/src/lib/commands/timeline/element/delete-elements.ts b/apps/web/src/lib/commands/timeline/element/delete-elements.ts
index 7fb46c36..4b439870 100644
--- a/apps/web/src/lib/commands/timeline/element/delete-elements.ts
+++ b/apps/web/src/lib/commands/timeline/element/delete-elements.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { isMainTrack, rippleShiftElements } from "@/lib/timeline";
diff --git a/apps/web/src/lib/commands/timeline/element/duplicate-elements.ts b/apps/web/src/lib/commands/timeline/element/duplicate-elements.ts
index 97b475f4..207e2373 100644
--- a/apps/web/src/lib/commands/timeline/element/duplicate-elements.ts
+++ b/apps/web/src/lib/commands/timeline/element/duplicate-elements.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
+import type { TimelineElement, TimelineTrack } from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import { EditorCore } from "@/core";
import {
diff --git a/apps/web/src/lib/commands/timeline/element/effects/add-effect.ts b/apps/web/src/lib/commands/timeline/element/effects/add-effect.ts
index 5299749d..34ca12ab 100644
--- a/apps/web/src/lib/commands/timeline/element/effects/add-effect.ts
+++ b/apps/web/src/lib/commands/timeline/element/effects/add-effect.ts
@@ -1,7 +1,7 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import { isVisualElement, updateElementInTracks } from "@/lib/timeline";
-import type { TimelineTrack, VisualElement } from "@/types/timeline";
+import type { TimelineTrack, VisualElement } from "@/lib/timeline";
import { buildDefaultEffectInstance } from "@/lib/effects";
function addEffectToElement({
diff --git a/apps/web/src/lib/commands/timeline/element/effects/remove-effect.ts b/apps/web/src/lib/commands/timeline/element/effects/remove-effect.ts
index b475474f..1b309f13 100644
--- a/apps/web/src/lib/commands/timeline/element/effects/remove-effect.ts
+++ b/apps/web/src/lib/commands/timeline/element/effects/remove-effect.ts
@@ -1,7 +1,7 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import { isVisualElement, updateElementInTracks } from "@/lib/timeline";
-import type { TimelineTrack, VisualElement } from "@/types/timeline";
+import type { TimelineTrack, VisualElement } from "@/lib/timeline";
function removeEffectFromElement({
element,
diff --git a/apps/web/src/lib/commands/timeline/element/effects/reorder-effect.ts b/apps/web/src/lib/commands/timeline/element/effects/reorder-effect.ts
index 81c66503..d946be18 100644
--- a/apps/web/src/lib/commands/timeline/element/effects/reorder-effect.ts
+++ b/apps/web/src/lib/commands/timeline/element/effects/reorder-effect.ts
@@ -1,7 +1,7 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import { isVisualElement, updateElementInTracks } from "@/lib/timeline";
-import type { TimelineTrack, VisualElement } from "@/types/timeline";
+import type { TimelineTrack, VisualElement } from "@/lib/timeline";
function reorderEffectsOnElement({
element,
diff --git a/apps/web/src/lib/commands/timeline/element/effects/toggle-effect.ts b/apps/web/src/lib/commands/timeline/element/effects/toggle-effect.ts
index 70bf955d..25e7c356 100644
--- a/apps/web/src/lib/commands/timeline/element/effects/toggle-effect.ts
+++ b/apps/web/src/lib/commands/timeline/element/effects/toggle-effect.ts
@@ -1,7 +1,7 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import { isVisualElement, updateElementInTracks } from "@/lib/timeline";
-import type { TimelineTrack, VisualElement } from "@/types/timeline";
+import type { TimelineTrack, VisualElement } from "@/lib/timeline";
export function toggleEffectOnElement({
element,
diff --git a/apps/web/src/lib/commands/timeline/element/effects/update-effect-params.ts b/apps/web/src/lib/commands/timeline/element/effects/update-effect-params.ts
index d9bf0aad..c3443c22 100644
--- a/apps/web/src/lib/commands/timeline/element/effects/update-effect-params.ts
+++ b/apps/web/src/lib/commands/timeline/element/effects/update-effect-params.ts
@@ -1,8 +1,8 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import { isVisualElement, updateElementInTracks } from "@/lib/timeline";
-import type { EffectParamValues } from "@/types/effects";
-import type { TimelineTrack, VisualElement } from "@/types/timeline";
+import type { ParamValues } from "@/lib/params";
+import type { TimelineTrack, VisualElement } from "@/lib/timeline";
function updateEffectParamsOnElement({
element,
@@ -11,7 +11,7 @@ function updateEffectParamsOnElement({
}: {
element: VisualElement;
effectId: string;
- params: Partial<EffectParamValues>;
+ params: Partial<ParamValues>;
}): VisualElement {
const currentEffects = element.effects ?? [];
const updated = currentEffects.map((effect) => {
@@ -36,7 +36,7 @@ export class UpdateClipEffectParamsCommand extends Command {
private readonly trackId: string;
private readonly elementId: string;
private readonly effectId: string;
- private readonly params: Partial<EffectParamValues>;
+ private readonly params: Partial<ParamValues>;
constructor({
trackId,
@@ -47,7 +47,7 @@ export class UpdateClipEffectParamsCommand extends Command {
trackId: string;
elementId: string;
effectId: string;
- params: Partial<EffectParamValues>;
+ params: Partial<ParamValues>;
}) {
super();
this.trackId = trackId;
@@ -65,12 +65,12 @@ export class UpdateClipEffectParamsCommand extends Command {
trackId: this.trackId,
elementId: this.elementId,
elementPredicate: isVisualElement,
- update: (element) => {
- return updateEffectParamsOnElement({
- element: element as VisualElement,
- effectId: this.effectId,
- params: this.params,
- });
+ update: (element) => {
+ return updateEffectParamsOnElement({
+ element: element as VisualElement,
+ effectId: this.effectId,
+ params: this.params,
+ });
},
});
diff --git a/apps/web/src/lib/commands/timeline/element/index.ts b/apps/web/src/lib/commands/timeline/element/index.ts
index 413d1adf..899754fb 100644
--- a/apps/web/src/lib/commands/timeline/element/index.ts
+++ b/apps/web/src/lib/commands/timeline/element/index.ts
@@ -11,3 +11,5 @@ export { ToggleElementsMutedCommand } from "./toggle-elements-muted";
export { MoveElementCommand } from "./move-elements";
export * from "./keyframes";
export * from "./effects";
+export * from "./masks";
+export * from "./retime";
diff --git a/apps/web/src/lib/commands/timeline/element/insert-element.ts b/apps/web/src/lib/commands/timeline/element/insert-element.ts
index 68fc9841..acd72b66 100644
--- a/apps/web/src/lib/commands/timeline/element/insert-element.ts
+++ b/apps/web/src/lib/commands/timeline/element/insert-element.ts
@@ -6,7 +6,7 @@ import type {
TimelineElement,
TrackType,
ElementType,
-} from "@/types/timeline";
+} from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import {
requiresMediaId,
@@ -19,8 +19,9 @@ import {
validateElementTrackCompatibility,
enforceMainTrackStart,
} from "@/lib/timeline/track-utils";
-import type { MediaAsset } from "@/types/assets";
-import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import type { MediaAsset } from "@/lib/media/types";
+import { ELEMENT_TRACK_MAP, TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import { graphicsRegistry, registerDefaultGraphics } from "@/lib/graphics";
type InsertElementPlacement =
| { mode: "explicit"; trackId: string }
@@ -168,6 +169,14 @@ export class InsertElementCommand extends Command {
return false;
}
+ if (element.type === "graphic") {
+ registerDefaultGraphics();
+ if (!element.definitionId || !graphicsRegistry.has(element.definitionId)) {
+ console.error("Graphic element must have a valid definitionId");
+ return false;
+ }
+ }
+
if (element.type === "text" && !element.content) {
console.error("Text element must have content");
return false;
@@ -344,9 +353,6 @@ export class InsertElementCommand extends Command {
}: {
element: { type: ElementType };
}): TrackType {
- if (element.type === "video" || element.type === "image") {
- return "video";
- }
- return element.type;
+ return ELEMENT_TRACK_MAP[element.type];
}
}
diff --git a/apps/web/src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts b/apps/web/src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts
index d4922532..984a5ed7 100644
--- a/apps/web/src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts
+++ b/apps/web/src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts
@@ -3,7 +3,7 @@ import { Command } from "@/lib/commands/base-command";
import { removeEffectParamKeyframe } from "@/lib/animation/effect-param-channel";
import { updateElementInTracks } from "@/lib/timeline";
import { isVisualElement } from "@/lib/timeline/element-utils";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
export class RemoveEffectParamKeyframeCommand extends Command {
private savedState: TimelineTrack[] | null = null;
diff --git a/apps/web/src/lib/commands/timeline/element/keyframes/remove-keyframe.ts b/apps/web/src/lib/commands/timeline/element/keyframes/remove-keyframe.ts
index f12f9829..eb5cf742 100644
--- a/apps/web/src/lib/commands/timeline/element/keyframes/remove-keyframe.ts
+++ b/apps/web/src/lib/commands/timeline/element/keyframes/remove-keyframe.ts
@@ -2,15 +2,13 @@ import { EditorCore } from "@/core";
import {
getChannel,
getChannelValueAtTime,
- getElementBaseValueForProperty,
removeElementKeyframe,
- supportsAnimationProperty,
- withElementBaseValueForProperty,
+ resolveAnimationTarget,
} from "@/lib/animation";
import { Command } from "@/lib/commands/base-command";
import { updateElementInTracks } from "@/lib/timeline";
-import type { AnimationPropertyPath } from "@/types/animation";
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
+import type { AnimationPath, AnimationValue } from "@/lib/animation/types";
+import type { TimelineElement, TimelineTrack } from "@/lib/timeline";
function sampleValueBeforeRemoval({
element,
@@ -18,9 +16,9 @@ function sampleValueBeforeRemoval({
keyframeId,
}: {
element: TimelineElement;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
-}): number | null {
+}): AnimationValue | null {
const channel = getChannel({
animations: element.animations,
propertyPath,
@@ -32,17 +30,20 @@ function sampleValueBeforeRemoval({
return null;
}
- const baseValue = getElementBaseValueForProperty({ element, propertyPath });
- if (baseValue === null || typeof baseValue !== "number") {
+ const target = resolveAnimationTarget({ element, path: propertyPath });
+ if (!target) {
+ return null;
+ }
+ const baseValue = target.getBaseValue();
+ if (baseValue === null) {
return null;
}
- const sampled = getChannelValueAtTime({
+ return getChannelValueAtTime({
channel,
time: keyframe.time,
fallbackValue: baseValue,
});
- return typeof sampled === "number" ? sampled : null;
}
function removeKeyframeAndPersist({
@@ -51,9 +52,14 @@ function removeKeyframeAndPersist({
keyframeId,
}: {
element: TimelineElement;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
}): TimelineElement {
+ const target = resolveAnimationTarget({ element, path: propertyPath });
+ if (!target) {
+ return element;
+ }
+
const valueBefore = sampleValueBeforeRemoval({
element,
propertyPath,
@@ -71,11 +77,7 @@ function removeKeyframeAndPersist({
const shouldPersistToBase = isChannelNowEmpty && valueBefore !== null;
const baseElement = shouldPersistToBase
- ? withElementBaseValueForProperty({
- element,
- propertyPath,
- value: valueBefore,
- })
+ ? target.setBaseValue(valueBefore)
: element;
return { ...baseElement, animations: nextAnimations };
@@ -85,7 +87,7 @@ export class RemoveKeyframeCommand extends Command {
private savedState: TimelineTrack[] | null = null;
private readonly trackId: string;
private readonly elementId: string;
- private readonly propertyPath: AnimationPropertyPath;
+ private readonly propertyPath: AnimationPath;
private readonly keyframeId: string;
constructor({
@@ -96,7 +98,7 @@ export class RemoveKeyframeCommand extends Command {
}: {
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
}) {
super();
@@ -114,11 +116,6 @@ export class RemoveKeyframeCommand extends Command {
tracks: this.savedState,
trackId: this.trackId,
elementId: this.elementId,
- elementPredicate: (element) =>
- supportsAnimationProperty({
- element,
- propertyPath: this.propertyPath,
- }),
update: (element) =>
removeKeyframeAndPersist({
element,
diff --git a/apps/web/src/lib/commands/timeline/element/keyframes/retime-keyframe.ts b/apps/web/src/lib/commands/timeline/element/keyframes/retime-keyframe.ts
index 5328419f..9e912f27 100644
--- a/apps/web/src/lib/commands/timeline/element/keyframes/retime-keyframe.ts
+++ b/apps/web/src/lib/commands/timeline/element/keyframes/retime-keyframe.ts
@@ -1,15 +1,15 @@
import { EditorCore } from "@/core";
-import { retimeElementKeyframe, supportsAnimationProperty } from "@/lib/animation";
+import { resolveAnimationTarget, retimeElementKeyframe } from "@/lib/animation";
import { Command } from "@/lib/commands/base-command";
import { updateElementInTracks } from "@/lib/timeline";
-import type { AnimationPropertyPath } from "@/types/animation";
-import type { TimelineTrack } from "@/types/timeline";
+import type { AnimationPath } from "@/lib/animation/types";
+import type { TimelineTrack } from "@/lib/timeline";
export class RetimeKeyframeCommand extends Command {
private savedState: TimelineTrack[] | null = null;
private readonly trackId: string;
private readonly elementId: string;
- private readonly propertyPath: AnimationPropertyPath;
+ private readonly propertyPath: AnimationPath;
private readonly keyframeId: string;
private readonly nextTime: number;
@@ -22,7 +22,7 @@ export class RetimeKeyframeCommand extends Command {
}: {
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
keyframeId: string;
nextTime: number;
}) {
@@ -42,14 +42,12 @@ export class RetimeKeyframeCommand extends Command {
tracks: this.savedState,
trackId: this.trackId,
elementId: this.elementId,
- elementPredicate: (element) =>
- supportsAnimationProperty({
- element,
- propertyPath: this.propertyPath,
- }),
update: (element) => {
+ if (!resolveAnimationTarget({ element, path: this.propertyPath })) {
+ return element;
+ }
+
const boundedTime = Math.max(0, Math.min(this.nextTime, element.duration));
- if (!Number.isFinite(boundedTime)) return element;
return {
...element,
animations: retimeElementKeyframe({
diff --git a/apps/web/src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts b/apps/web/src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts
index f5236279..285bd80c 100644
--- a/apps/web/src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts
+++ b/apps/web/src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts
@@ -3,7 +3,7 @@ import { Command } from "@/lib/commands/base-command";
import { upsertEffectParamKeyframe } from "@/lib/animation/effect-param-channel";
import { updateElementInTracks } from "@/lib/timeline";
import { isVisualElement } from "@/lib/timeline/element-utils";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
export class UpsertEffectParamKeyframeCommand extends Command {
private savedState: TimelineTrack[] | null = null;
diff --git a/apps/web/src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts b/apps/web/src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts
index 370f6865..28e7feff 100644
--- a/apps/web/src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts
+++ b/apps/web/src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts
@@ -1,19 +1,19 @@
import { EditorCore } from "@/core";
import { Command } from "@/lib/commands/base-command";
-import { supportsAnimationProperty, upsertElementKeyframe } from "@/lib/animation";
+import { resolveAnimationTarget, upsertPathKeyframe } from "@/lib/animation";
import { updateElementInTracks } from "@/lib/timeline";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import type {
+ AnimationPath,
AnimationInterpolation,
- AnimationPropertyPath,
AnimationValue,
-} from "@/types/animation";
+} from "@/lib/animation/types";
export class UpsertKeyframeCommand extends Command {
private savedState: TimelineTrack[] | null = null;
private readonly trackId: string;
private readonly elementId: string;
- private readonly propertyPath: AnimationPropertyPath;
+ private readonly propertyPath: AnimationPath;
private readonly time: number;
private readonly value: AnimationValue;
private readonly interpolation: AnimationInterpolation | undefined;
@@ -30,7 +30,7 @@ export class UpsertKeyframeCommand extends Command {
}: {
trackId: string;
elementId: string;
- propertyPath: AnimationPropertyPath;
+ propertyPath: AnimationPath;
time: number;
value: AnimationValue;
interpolation?: AnimationInterpolation;
@@ -54,22 +54,28 @@ export class UpsertKeyframeCommand extends Command {
tracks: this.savedState,
trackId: this.trackId,
elementId: this.elementId,
- elementPredicate: (element) =>
- supportsAnimationProperty({
- element,
- propertyPath: this.propertyPath,
- }),
update: (element) => {
+ const target = resolveAnimationTarget({
+ element,
+ path: this.propertyPath,
+ });
+ if (!target) {
+ return element;
+ }
+
const boundedTime = Math.max(0, Math.min(this.time, element.duration));
return {
...element,
- animations: upsertElementKeyframe({
+ animations: upsertPathKeyframe({
animations: element.animations,
propertyPath: this.propertyPath,
time: boundedTime,
value: this.value,
interpolation: this.interpolation,
keyframeId: this.keyframeId,
+ valueKind: target.valueKind,
+ defaultInterpolation: target.defaultInterpolation,
+ numericRange: target.numericRange,
}),
};
},
diff --git a/apps/web/src/lib/commands/timeline/element/masks/index.ts b/apps/web/src/lib/commands/timeline/element/masks/index.ts
new file mode 100644
index 00000000..acc47184
--- /dev/null
+++ b/apps/web/src/lib/commands/timeline/element/masks/index.ts
@@ -0,0 +1,2 @@
+export { RemoveMaskCommand } from "./remove-mask";
+export { ToggleMaskInvertedCommand } from "./toggle-mask-inverted";
diff --git a/apps/web/src/lib/commands/timeline/element/masks/remove-mask.ts b/apps/web/src/lib/commands/timeline/element/masks/remove-mask.ts
new file mode 100644
index 00000000..ee09cbdc
--- /dev/null
+++ b/apps/web/src/lib/commands/timeline/element/masks/remove-mask.ts
@@ -0,0 +1,64 @@
+import { EditorCore } from "@/core";
+import { Command } from "@/lib/commands/base-command";
+import { isMaskableElement, updateElementInTracks } from "@/lib/timeline";
+import type { TimelineTrack, MaskableElement } from "@/lib/timeline";
+
+function removeMaskFromElement({
+ element,
+ maskId,
+}: {
+ element: MaskableElement;
+ maskId: string;
+}): MaskableElement {
+ const currentMasks = element.masks ?? [];
+ const filteredMasks = currentMasks.filter((mask) => mask.id !== maskId);
+ return { ...element, masks: filteredMasks };
+}
+
+export class RemoveMaskCommand extends Command {
+ private savedState: TimelineTrack[] | null = null;
+ private readonly trackId: string;
+ private readonly elementId: string;
+ private readonly maskId: string;
+
+ constructor({
+ trackId,
+ elementId,
+ maskId,
+ }: {
+ trackId: string;
+ elementId: string;
+ maskId: string;
+ }) {
+ super();
+ this.trackId = trackId;
+ this.elementId = elementId;
+ this.maskId = maskId;
+ }
+
+ execute(): void {
+ const editor = EditorCore.getInstance();
+ this.savedState = editor.timeline.getTracks();
+
+ const updatedTracks = updateElementInTracks({
+ tracks: this.savedState,
+ trackId: this.trackId,
+ elementId: this.elementId,
+ elementPredicate: isMaskableElement,
+ update: (element) =>
+ removeMaskFromElement({
+ element: element as MaskableElement,
+ maskId: this.maskId,
+ }),
+ });
+
+ editor.timeline.updateTracks(updatedTracks);
+ }
+
+ undo(): void {
+ if (this.savedState) {
+ const editor = EditorCore.getInstance();
+ editor.timeline.updateTracks(this.savedState);
+ }
+ }
+}
diff --git a/apps/web/src/lib/commands/timeline/element/masks/toggle-mask-inverted.ts b/apps/web/src/lib/commands/timeline/element/masks/toggle-mask-inverted.ts
new file mode 100644
index 00000000..ac3c8c7c
--- /dev/null
+++ b/apps/web/src/lib/commands/timeline/element/masks/toggle-mask-inverted.ts
@@ -0,0 +1,75 @@
+import { EditorCore } from "@/core";
+import { Command } from "@/lib/commands/base-command";
+import { isMaskableElement, updateElementInTracks } from "@/lib/timeline";
+import type { Mask } from "@/lib/masks/types";
+import type { TimelineTrack, MaskableElement } from "@/lib/timeline";
+
+export function toggleMaskInvertedOnElement({
+ element,
+ maskId,
+}: {
+ element: MaskableElement;
+ maskId: string;
+}): MaskableElement {
+ const currentMasks = element.masks ?? [];
+ const toggleMask = <TMask extends Mask>(mask: TMask): TMask => ({
+ ...mask,
+ params: {
+ ...mask.params,
+ inverted: !mask.params.inverted,
+ },
+ });
+ const updatedMasks = currentMasks.map((mask) =>
+ mask.id !== maskId ? mask : toggleMask(mask),
+ );
+
+ return { ...element, masks: updatedMasks };
+}
+
+export class ToggleMaskInvertedCommand extends Command {
+ private savedState: TimelineTrack[] | null = null;
+ private readonly trackId: string;
+ private readonly elementId: string;
+ private readonly maskId: string;
+
+ constructor({
+ trackId,
+ elementId,
+ maskId,
+ }: {
+ trackId: string;
+ elementId: string;
+ maskId: string;
+ }) {
+ super();
+ this.trackId = trackId;
+ this.elementId = elementId;
+ this.maskId = maskId;
+ }
+
+ execute(): void {
+ const editor = EditorCore.getInstance();
+ this.savedState = editor.timeline.getTracks();
+
+ const updatedTracks = updateElementInTracks({
+ tracks: this.savedState,
+ trackId: this.trackId,
+ elementId: this.elementId,
+ elementPredicate: isMaskableElement,
+ update: (element) =>
+ toggleMaskInvertedOnElement({
+ element: element as MaskableElement,
+ maskId: this.maskId,
+ }),
+ });
+
+ editor.timeline.updateTracks(updatedTracks);
+ }
+
+ undo(): void {
+ if (this.savedState) {
+ const editor = EditorCore.getInstance();
+ editor.timeline.updateTracks(this.savedState);
+ }
+ }
+}
diff --git a/apps/web/src/lib/commands/timeline/element/move-elements.ts b/apps/web/src/lib/commands/timeline/element/move-elements.ts
index 51e18c21..a36e8e93 100644
--- a/apps/web/src/lib/commands/timeline/element/move-elements.ts
+++ b/apps/web/src/lib/commands/timeline/element/move-elements.ts
@@ -4,7 +4,7 @@ import type {
TimelineTrack,
TimelineElement,
TrackType,
-} from "@/types/timeline";
+} from "@/lib/timeline";
import {
buildEmptyTrack,
isMainTrack,
diff --git a/apps/web/src/lib/commands/timeline/element/retime/index.ts b/apps/web/src/lib/commands/timeline/element/retime/index.ts
new file mode 100644
index 00000000..5daa59bf
--- /dev/null
+++ b/apps/web/src/lib/commands/timeline/element/retime/index.ts
@@ -0,0 +1 @@
+export { UpdateElementRetimeCommand } from "./update-element-retime";
diff --git a/apps/web/src/lib/commands/timeline/element/retime/update-element-retime.ts b/apps/web/src/lib/commands/timeline/element/retime/update-element-retime.ts
new file mode 100644
index 00000000..d1f859e6
--- /dev/null
+++ b/apps/web/src/lib/commands/timeline/element/retime/update-element-retime.ts
@@ -0,0 +1,114 @@
+import { EditorCore } from "@/core";
+import { clampRetimeRate } from "@/constants/retime-constants";
+import { clampAnimationsToDuration } from "@/lib/animation";
+import { Command } from "@/lib/commands/base-command";
+import { getTimelineDurationForSourceSpan, getSourceSpanAtClipTime } from "@/lib/retime";
+import { isRetimableElement, updateElementInTracks } from "@/lib/timeline";
+import type { RetimeConfig, TimelineTrack } from "@/lib/timeline";
+
+function getSourceDuration({
+ trimStart,
+ trimEnd,
+ duration,
+ sourceDuration,
+ retime,
+}: {
+ trimStart: number;
+ trimEnd: number;
+ duration: number;
+ sourceDuration?: number;
+ retime?: RetimeConfig;
+}): number {
+ if (typeof sourceDuration === "number") {
+ return sourceDuration;
+ }
+
+ return (
+ trimStart +
+ getSourceSpanAtClipTime({
+ clipTime: duration,
+ retime,
+ }) +
+ trimEnd
+ );
+}
+
+export class UpdateElementRetimeCommand extends Command {
+ private savedState: TimelineTrack[] | null = null;
+ private readonly trackId: string;
+ private readonly elementId: string;
+ private readonly retime: RetimeConfig | undefined;
+
+ constructor({
+ trackId,
+ elementId,
+ retime,
+ }: {
+ trackId: string;
+ elementId: string;
+ retime?: RetimeConfig;
+ }) {
+ super();
+ this.trackId = trackId;
+ this.elementId = elementId;
+ this.retime = retime;
+ }
+
+ execute(): void {
+ const editor = EditorCore.getInstance();
+ this.savedState = editor.timeline.getTracks();
+
+ const updatedTracks = updateElementInTracks({
+ tracks: this.savedState,
+ trackId: this.trackId,
+ elementId: this.elementId,
+ elementPredicate: isRetimableElement,
+ update: (element) => {
+ if (!isRetimableElement(element)) {
+ return element;
+ }
+
+ const nextRetime = this.retime
+ ? {
+ ...this.retime,
+ rate: clampRetimeRate({ rate: this.retime.rate }),
+ }
+ : undefined;
+ const sourceDuration = getSourceDuration({
+ trimStart: element.trimStart,
+ trimEnd: element.trimEnd,
+ duration: element.duration,
+ sourceDuration: element.sourceDuration,
+ retime: element.retime,
+ });
+ const visibleSourceSpan = Math.max(
+ 0,
+ sourceDuration - element.trimStart - element.trimEnd,
+ );
+ const nextDuration = getTimelineDurationForSourceSpan({
+ sourceSpan: visibleSourceSpan,
+ retime: nextRetime,
+ });
+
+ return {
+ ...element,
+ retime: nextRetime,
+ duration: nextDuration,
+ animations: clampAnimationsToDuration({
+ animations: element.animations,
+ duration: nextDuration,
+ }),
+ };
+ },
+ });
+
+ editor.timeline.updateTracks(updatedTracks);
+ }
+
+ undo(): void {
+ if (this.savedState) {
+ const editor = EditorCore.getInstance();
+ editor.timeline.updateTracks(this.savedState);
+ }
+ }
+}
diff --git a/apps/web/src/lib/commands/timeline/element/split-elements.ts b/apps/web/src/lib/commands/timeline/element/split-elements.ts
index 37ccbb12..2acac683 100644
--- a/apps/web/src/lib/commands/timeline/element/split-elements.ts
+++ b/apps/web/src/lib/commands/timeline/element/split-elements.ts
@@ -1,9 +1,10 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import { EditorCore } from "@/core";
-import { rippleShiftElements } from "@/lib/timeline";
+import { isRetimableElement, rippleShiftElements } from "@/lib/timeline";
import { splitAnimationsAtTime } from "@/lib/animation";
+import { getSourceSpanAtClipTime } from "@/lib/retime";
export class SplitElementsCommand extends Command {
private savedState: TimelineTrack[] | null = null;
@@ -75,6 +76,18 @@ export class SplitElementsCommand extends Command {
const relativeTime = this.splitTime - element.startTime;
const leftVisibleDuration = relativeTime;
const rightVisibleDuration = element.duration - relativeTime;
+ const retimeRef = isRetimableElement(element)
+ ? element.retime
+ : undefined;
+ const leftSourceSpan = getSourceSpanAtClipTime({
+ clipTime: leftVisibleDuration,
+ retime: retimeRef,
+ });
+ const totalSourceSpan = getSourceSpanAtClipTime({
+ clipTime: element.duration,
+ retime: retimeRef,
+ });
+ const rightSourceSpan = totalSourceSpan - leftSourceSpan;
const { leftAnimations, rightAnimations } = splitAnimationsAtTime({
animations: element.animations,
splitTime: relativeTime,
@@ -83,63 +96,67 @@ export class SplitElementsCommand extends Command {
if (this.retainSide === "left") {
return [
- {
- ...element,
- duration: leftVisibleDuration,
- trimEnd: element.trimEnd + rightVisibleDuration,
- name: `${element.name} (left)`,
- animations: leftAnimations,
- },
- ];
- }
-
- if (this.retainSide === "right") {
- if (this.rippleEnabled && elementsToSplit.length === 1) {
- leftVisibleDurationForRipple = leftVisibleDuration;
- }
- const newId = generateUUID();
- this.rightSideElements.push({
- trackId: track.id,
- elementId: newId,
- });
- return [
- {
- ...element,
- id: newId,
- startTime: this.splitTime,
- duration: rightVisibleDuration,
- trimStart: element.trimStart + leftVisibleDuration,
- name: `${element.name} (right)`,
- animations: rightAnimations,
- },
- ];
- }
-
- // "both" - split into two pieces
- const secondElementId = generateUUID();
- this.rightSideElements.push({
- trackId: track.id,
- elementId: secondElementId,
- });
-
- return [
{
...element,
duration: leftVisibleDuration,
- trimEnd: element.trimEnd + rightVisibleDuration,
+ trimEnd: element.trimEnd + rightSourceSpan,
name: `${element.name} (left)`,
animations: leftAnimations,
+ ...(retimeRef !== undefined ? { retime: retimeRef } : {}),
},
+ ];
+ }
+
+ if (this.retainSide === "right") {
+ if (this.rippleEnabled && elementsToSplit.length === 1) {
+ leftVisibleDurationForRipple = leftVisibleDuration;
+ }
+ const newId = generateUUID();
+ this.rightSideElements.push({
+ trackId: track.id,
+ elementId: newId,
+ });
+ return [
{
...element,
- id: secondElementId,
+ id: newId,
startTime: this.splitTime,
duration: rightVisibleDuration,
- trimStart: element.trimStart + leftVisibleDuration,
+ trimStart: element.trimStart + leftSourceSpan,
name: `${element.name} (right)`,
animations: rightAnimations,
+ ...(retimeRef !== undefined ? { retime: retimeRef } : {}),
},
];
+ }
+
+ // "both" - split into two pieces
+ const secondElementId = generateUUID();
+ this.rightSideElements.push({
+ trackId: track.id,
+ elementId: secondElementId,
+ });
+
+ return [
+ {
+ ...element,
+ duration: leftVisibleDuration,
+ trimEnd: element.trimEnd + rightSourceSpan,
+ name: `${element.name} (left)`,
+ animations: leftAnimations,
+ ...(retimeRef !== undefined ? { retime: retimeRef } : {}),
+ },
+ {
+ ...element,
+ id: secondElementId,
+ startTime: this.splitTime,
+ duration: rightVisibleDuration,
+ trimStart: element.trimStart + leftSourceSpan,
+ name: `${element.name} (right)`,
+ animations: rightAnimations,
+ ...(retimeRef !== undefined ? { retime: retimeRef } : {}),
+ },
+ ];
});
if (this.rippleEnabled && leftVisibleDurationForRipple !== null) {
diff --git a/apps/web/src/lib/commands/timeline/element/toggle-elements-muted.ts b/apps/web/src/lib/commands/timeline/element/toggle-elements-muted.ts
index 1fa7421e..f416e7c5 100644
--- a/apps/web/src/lib/commands/timeline/element/toggle-elements-muted.ts
+++ b/apps/web/src/lib/commands/timeline/element/toggle-elements-muted.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { canElementHaveAudio } from "@/lib/timeline/element-utils";
import { EditorCore } from "@/core";
diff --git a/apps/web/src/lib/commands/timeline/element/toggle-elements-visibility.ts b/apps/web/src/lib/commands/timeline/element/toggle-elements-visibility.ts
index daeb759a..24d51c15 100644
--- a/apps/web/src/lib/commands/timeline/element/toggle-elements-visibility.ts
+++ b/apps/web/src/lib/commands/timeline/element/toggle-elements-visibility.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { canElementBeHidden } from "@/lib/timeline/element-utils";
import { EditorCore } from "@/core";
diff --git a/apps/web/src/lib/commands/timeline/element/update-element-duration.ts b/apps/web/src/lib/commands/timeline/element/update-element-duration.ts
index 3366548d..d88cf9cb 100644
--- a/apps/web/src/lib/commands/timeline/element/update-element-duration.ts
+++ b/apps/web/src/lib/commands/timeline/element/update-element-duration.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { clampAnimationsToDuration } from "@/lib/animation";
diff --git a/apps/web/src/lib/commands/timeline/element/update-element-start-time.ts b/apps/web/src/lib/commands/timeline/element/update-element-start-time.ts
index e25bc0e3..75773ec2 100644
--- a/apps/web/src/lib/commands/timeline/element/update-element-start-time.ts
+++ b/apps/web/src/lib/commands/timeline/element/update-element-start-time.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { enforceMainTrackStart } from "@/lib/timeline/track-utils";
diff --git a/apps/web/src/lib/commands/timeline/element/update-element-trim.ts b/apps/web/src/lib/commands/timeline/element/update-element-trim.ts
index 7548638a..b2c77418 100644
--- a/apps/web/src/lib/commands/timeline/element/update-element-trim.ts
+++ b/apps/web/src/lib/commands/timeline/element/update-element-trim.ts
@@ -1,8 +1,9 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { clampAnimationsToDuration } from "@/lib/animation";
-import { rippleShiftElements } from "@/lib/timeline";
+import { isRetimableElement, rippleShiftElements } from "@/lib/timeline";
+import { enforceMainTrackStart } from "@/lib/timeline/track-utils";
export class UpdateElementTrimCommand extends Command {
private savedState: TimelineTrack[] | null = null;
@@ -48,7 +49,13 @@ export class UpdateElementTrimCommand extends Command {
if (!targetElement) return track;
const nextDuration = this.duration ?? targetElement.duration;
- const nextStartTime = this.startTime ?? targetElement.startTime;
+ const requestedStartTime = this.startTime ?? targetElement.startTime;
+ const nextStartTime = enforceMainTrackStart({
+ tracks: this.savedState ?? [],
+ targetTrackId: track.id,
+ requestedStartTime,
+ excludeElementId: this.elementId,
+ });
const oldEndTime = targetElement.startTime + targetElement.duration;
const newEndTime = nextStartTime + nextDuration;
@@ -60,6 +67,9 @@ export class UpdateElementTrimCommand extends Command {
trimEnd: this.trimEnd,
startTime: nextStartTime,
duration: nextDuration,
+ ...(isRetimableElement(targetElement)
+ ? { retime: targetElement.retime }
+ : {}),
animations: clampAnimationsToDuration({
animations: targetElement.animations,
duration: nextDuration,
@@ -68,7 +78,9 @@ export class UpdateElementTrimCommand extends Command {
if (this.rippleEnabled && Math.abs(shiftAmount) > 0) {
const shiftedOthers = rippleShiftElements({
- elements: track.elements.filter((element) => element.id !== this.elementId),
+ elements: track.elements.filter(
+ (element) => element.id !== this.elementId,
+ ),
afterTime: oldEndTime,
shiftAmount,
});
@@ -77,7 +89,8 @@ export class UpdateElementTrimCommand extends Command {
elements: track.elements.map((element) =>
element.id === this.elementId
? updatedElement
- : (shiftedOthers.find((shifted) => shifted.id === element.id) ?? element)
+ : (shiftedOthers.find((shifted) => shifted.id === element.id) ??
+ element),
),
} as typeof track;
}
@@ -85,7 +98,7 @@ export class UpdateElementTrimCommand extends Command {
return {
...track,
elements: track.elements.map((element) =>
- element.id === this.elementId ? updatedElement : element
+ element.id === this.elementId ? updatedElement : element,
),
} as typeof track;
});
diff --git a/apps/web/src/lib/commands/timeline/element/update-element.ts b/apps/web/src/lib/commands/timeline/element/update-element.ts
index 643f8e4b..cf0c5cbc 100644
--- a/apps/web/src/lib/commands/timeline/element/update-element.ts
+++ b/apps/web/src/lib/commands/timeline/element/update-element.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
+import type { TimelineElement, TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { updateElementInTracks } from "@/lib/timeline";
diff --git a/apps/web/src/lib/commands/timeline/track/add-track.ts b/apps/web/src/lib/commands/timeline/track/add-track.ts
index 95338888..dd4ceb64 100644
--- a/apps/web/src/lib/commands/timeline/track/add-track.ts
+++ b/apps/web/src/lib/commands/timeline/track/add-track.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TrackType, TimelineTrack } from "@/types/timeline";
+import type { TrackType, TimelineTrack } from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import { EditorCore } from "@/core";
import {
diff --git a/apps/web/src/lib/commands/timeline/track/remove-track.ts b/apps/web/src/lib/commands/timeline/track/remove-track.ts
index a32aacd7..35f29b1c 100644
--- a/apps/web/src/lib/commands/timeline/track/remove-track.ts
+++ b/apps/web/src/lib/commands/timeline/track/remove-track.ts
@@ -1,6 +1,6 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { getMainTrack } from "@/lib/timeline";
export class RemoveTrackCommand extends Command {
diff --git a/apps/web/src/lib/commands/timeline/track/toggle-track-mute.ts b/apps/web/src/lib/commands/timeline/track/toggle-track-mute.ts
index 3fe526c7..9acf732a 100644
--- a/apps/web/src/lib/commands/timeline/track/toggle-track-mute.ts
+++ b/apps/web/src/lib/commands/timeline/track/toggle-track-mute.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { canTracktHaveAudio } from "@/lib/timeline";
diff --git a/apps/web/src/lib/commands/timeline/track/toggle-track-visibility.ts b/apps/web/src/lib/commands/timeline/track/toggle-track-visibility.ts
index e81714ac..4bfd53c0 100644
--- a/apps/web/src/lib/commands/timeline/track/toggle-track-visibility.ts
+++ b/apps/web/src/lib/commands/timeline/track/toggle-track-visibility.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
import { canTrackBeHidden } from "@/lib/timeline";
diff --git a/apps/web/src/lib/commands/timeline/tracks-snapshot.ts b/apps/web/src/lib/commands/timeline/tracks-snapshot.ts
index 2ba059c7..a4370cab 100644
--- a/apps/web/src/lib/commands/timeline/tracks-snapshot.ts
+++ b/apps/web/src/lib/commands/timeline/tracks-snapshot.ts
@@ -1,5 +1,5 @@
import { Command } from "@/lib/commands/base-command";
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
import { EditorCore } from "@/core";
export class TracksSnapshotCommand extends Command {
diff --git a/apps/web/src/lib/drag-data.ts b/apps/web/src/lib/drag-data.ts
index 067b0a35..d847db95 100644
--- a/apps/web/src/lib/drag-data.ts
+++ b/apps/web/src/lib/drag-data.ts
@@ -1,4 +1,4 @@
-import type { TimelineDragData } from "@/types/drag";
+import type { TimelineDragData } from "@/lib/timeline/drag";
const MIME_TYPE = "application/x-timeline-drag";
let lastDragData: TimelineDragData | null = null;
diff --git a/apps/web/src/lib/effects/definitions/blur.frag.glsl b/apps/web/src/lib/effects/definitions/blur.frag.glsl
index 2c015725..c9ad2eae 100644
--- a/apps/web/src/lib/effects/definitions/blur.frag.glsl
+++ b/apps/web/src/lib/effects/definitions/blur.frag.glsl
@@ -3,6 +3,7 @@ precision mediump float;
uniform sampler2D u_texture;
uniform vec2 u_resolution;
uniform float u_sigma;
+uniform float u_step;
uniform vec2 u_direction;
varying vec2 v_texCoord;
@@ -13,13 +14,12 @@ void main() {
vec4 color = vec4(0.0);
float totalWeight = 0.0;
- // step=1 texel — scaling step size instead causes discrete ghosting artifacts
for (int i = -30; i <= 30; i++) {
- float fi = float(i);
- float weight = exp(-(fi * fi) / (2.0 * u_sigma * u_sigma));
- color += texture2D(u_texture, v_texCoord + texelSize * u_direction * fi) * weight;
+ float pos = float(i) * u_step;
+ float weight = exp(-(pos * pos) / (2.0 * u_sigma * u_sigma));
+ color += texture2D(u_texture, v_texCoord + texelSize * u_direction * pos) * weight;
totalWeight += weight;
}
gl_FragColor = color / totalWeight;
-}
+} \ No newline at end of file
diff --git a/apps/web/src/lib/effects/definitions/blur.ts b/apps/web/src/lib/effects/definitions/blur.ts
index 3819f82c..54934402 100644
--- a/apps/web/src/lib/effects/definitions/blur.ts
+++ b/apps/web/src/lib/effects/definitions/blur.ts
@@ -1,6 +1,72 @@
-import type { EffectDefinition } from "@/types/effects";
+import type { EffectDefinition, ResolvedEffectPass } from "@/lib/effects/types";
import blurFragmentShader from "./blur.frag.glsl";
+const MAX_SINGLE_PASS_SIGMA = 10;
+const MAX_STEP = 4;
+const MAX_EFFECTIVE_SIGMA = MAX_SINGLE_PASS_SIGMA * MAX_STEP;
+const MAX_ITERATIONS = 8;
+
+/**
+ * Builds multi-pass gaussian blur passes for a given sigma.
+ * Shared by the blur effect and background blur — they each
+ * compute their own sigma from their own intensity scale.
+ */
+export function buildGaussianBlurPasses({
+ sigmaX,
+ sigmaY,
+}: {
+ sigmaX: number;
+ sigmaY: number;
+}): ResolvedEffectPass[] {
+ const maxSigma = Math.max(sigmaX, sigmaY);
+ if (maxSigma < 0.001) return [];
+
+ const iterations = Math.min(
+ MAX_ITERATIONS,
+ Math.max(
+ 1,
+ Math.ceil(
+ (maxSigma * maxSigma) /
+ (MAX_EFFECTIVE_SIGMA * MAX_EFFECTIVE_SIGMA),
+ ),
+ ),
+ );
+ const perPassSigmaX = sigmaX / Math.sqrt(iterations);
+ const perPassSigmaY = sigmaY / Math.sqrt(iterations);
+ const stepX = Math.max(1, perPassSigmaX / MAX_SINGLE_PASS_SIGMA);
+ const stepY = Math.max(1, perPassSigmaY / MAX_SINGLE_PASS_SIGMA);
+
+ const passes: ResolvedEffectPass[] = [];
+ for (let i = 0; i < iterations; i++) {
+ passes.push({
+ fragmentShader: blurFragmentShader,
+ uniforms: {
+ u_sigma: perPassSigmaX,
+ u_step: stepX,
+ u_direction: [1, 0],
+ },
+ });
+ passes.push({
+ fragmentShader: blurFragmentShader,
+ uniforms: {
+ u_sigma: perPassSigmaY,
+ u_step: stepY,
+ u_direction: [0, 1],
+ },
+ });
+ }
+ return passes;
+}
+
+function intensityToSigma(intensity: number, resolution: number, reference: number): number {
+ return (intensity / 5) * (resolution / reference);
+}
+
+function parseIntensity(effectParams: Record<string, unknown>): number {
+ const raw = effectParams.intensity;
+ return typeof raw === "number" ? raw : Number.parseFloat(String(raw));
+}
+
export const blurEffectDefinition: EffectDefinition = {
type: "blur",
name: "Blur",
@@ -19,32 +85,29 @@ export const blurEffectDefinition: EffectDefinition = {
renderer: {
type: "webgl",
passes: [
- {
- fragmentShader: blurFragmentShader,
- uniforms: ({ effectParams, width }) => {
- const intensity =
- typeof effectParams.intensity === "number"
- ? effectParams.intensity
- : Number.parseFloat(String(effectParams.intensity));
- return {
- u_sigma: Math.max((intensity / 5) * (width / 1920), 0.001),
+ {
+ fragmentShader: blurFragmentShader,
+ uniforms: ({ effectParams, width }) => ({
+ u_sigma: Math.max(intensityToSigma(parseIntensity(effectParams), width, 1920), 0.001),
+ u_step: 1,
u_direction: [1, 0],
- };
+ }),
},
- },
- {
- fragmentShader: blurFragmentShader,
- uniforms: ({ effectParams, height }) => {
- const intensity =
- typeof effectParams.intensity === "number"
- ? effectParams.intensity
- : Number.parseFloat(String(effectParams.intensity));
- return {
- u_sigma: Math.max((intensity / 5) * (height / 1080), 0.001),
+ {
+ fragmentShader: blurFragmentShader,
+ uniforms: ({ effectParams, height }) => ({
+ u_sigma: Math.max(intensityToSigma(parseIntensity(effectParams), height, 1080), 0.001),
+ u_step: 1,
u_direction: [0, 1],
- };
+ }),
},
- },
],
+ buildPasses: ({ effectParams, width, height }) => {
+ const intensity = parseIntensity(effectParams);
+ return buildGaussianBlurPasses({
+ sigmaX: intensityToSigma(intensity, width, 1920),
+ sigmaY: intensityToSigma(intensity, height, 1080),
+ });
+ },
},
};
diff --git a/apps/web/src/lib/effects/definitions/index.ts b/apps/web/src/lib/effects/definitions/index.ts
index 1742b1d7..edc8c5e2 100644
--- a/apps/web/src/lib/effects/definitions/index.ts
+++ b/apps/web/src/lib/effects/definitions/index.ts
@@ -1,13 +1,13 @@
-import { hasEffect, registerEffect } from "../registry";
+import { effectsRegistry } from "../registry";
import { blurEffectDefinition } from "./blur";
const defaultEffects = [blurEffectDefinition];
export function registerDefaultEffects(): void {
for (const definition of defaultEffects) {
- if (hasEffect({ effectType: definition.type })) {
+ if (effectsRegistry.has(definition.type)) {
continue;
}
- registerEffect({ definition });
+ effectsRegistry.register(definition.type, definition);
}
}
diff --git a/apps/web/src/lib/effects/index.ts b/apps/web/src/lib/effects/index.ts
index 14d06d84..549811f5 100644
--- a/apps/web/src/lib/effects/index.ts
+++ b/apps/web/src/lib/effects/index.ts
@@ -1,29 +1,42 @@
import { generateUUID } from "@/utils/id";
-import { getEffect } from "./registry";
-import type { Effect, EffectParamValues } from "@/types/effects";
-import type { VisualElement } from "@/types/timeline";
+import { buildDefaultParamValues } from "@/lib/registry";
+import { effectsRegistry } from "./registry";
+import type { ParamValues } from "@/lib/params";
+import type { Effect, EffectDefinition, ResolvedEffectPass } from "@/lib/effects/types";
+import { VISUAL_ELEMENT_TYPES } from "@/lib/timeline";
-export { getEffect, getAllEffects, hasEffect, registerEffect } from "./registry";
+export { effectsRegistry } from "./registry";
export { registerDefaultEffects } from "./definitions";
-export const EFFECT_TARGET_ELEMENT_TYPES: VisualElement["type"][] = [
- "video",
- "image",
- "text",
- "sticker",
-];
+export function resolveEffectPasses({
+ definition,
+ effectParams,
+ width,
+ height,
+}: {
+ definition: EffectDefinition;
+ effectParams: ParamValues;
+ width: number;
+ height: number;
+}): ResolvedEffectPass[] {
+ if (definition.renderer.buildPasses) {
+ return definition.renderer.buildPasses({ effectParams, width, height });
+ }
+ return definition.renderer.passes.map((pass) => ({
+ fragmentShader: pass.fragmentShader,
+ uniforms: pass.uniforms({ effectParams, width, height }),
+ }));
+}
+
+export const EFFECT_TARGET_ELEMENT_TYPES = VISUAL_ELEMENT_TYPES;
export function buildDefaultEffectInstance({
effectType,
}: {
effectType: string;
}): Effect {
- const definition = getEffect({ effectType });
-
- const params: EffectParamValues = {};
- for (const paramDef of definition.params) {
- params[paramDef.key] = paramDef.default;
- }
+ const definition = effectsRegistry.get(effectType);
+ const params: ParamValues = buildDefaultParamValues(definition.params);
return {
id: generateUUID(),
diff --git a/apps/web/src/lib/effects/registry.ts b/apps/web/src/lib/effects/registry.ts
index 568b8924..2b85007a 100644
--- a/apps/web/src/lib/effects/registry.ts
+++ b/apps/web/src/lib/effects/registry.ts
@@ -1,31 +1,10 @@
-import type { EffectDefinition } from "@/types/effects";
+import { DefinitionRegistry } from "@/lib/registry";
+import type { EffectDefinition } from "@/lib/effects/types";
-const effectDefinitions = new Map<string, EffectDefinition>();
-
-export function registerEffect({
- definition,
-}: {
- definition: EffectDefinition;
-}): void {
- effectDefinitions.set(definition.type, definition);
-}
-
-export function hasEffect({ effectType }: { effectType: string }): boolean {
- return effectDefinitions.has(effectType);
-}
-
-export function getEffect({
- effectType,
-}: {
- effectType: string;
-}): EffectDefinition {
- const definition = effectDefinitions.get(effectType);
- if (!definition) {
- throw new Error(`Unknown effect type: ${effectType}`);
+export class EffectsRegistry extends DefinitionRegistry<string, EffectDefinition> {
+ constructor() {
+ super("effect");
}
- return definition;
}
-export function getAllEffects(): EffectDefinition[] {
- return Array.from(effectDefinitions.values());
-}
+export const effectsRegistry = new EffectsRegistry();
diff --git a/apps/web/src/lib/effects/types.ts b/apps/web/src/lib/effects/types.ts
new file mode 100644
index 00000000..7f85389f
--- /dev/null
+++ b/apps/web/src/lib/effects/types.ts
@@ -0,0 +1,42 @@
+import type { ParamDefinition, ParamValues } from "@/lib/params";
+
+export interface Effect {
+ id: string;
+ type: string;
+ params: ParamValues;
+ enabled: boolean;
+}
+
+export interface ResolvedEffectPass {
+ fragmentShader: string;
+ uniforms: Record<string, number | number[]>;
+}
+
+export interface WebGLEffectPass {
+ fragmentShader: string;
+ uniforms(params: {
+ effectParams: ParamValues;
+ width: number;
+ height: number;
+ }): Record<string, number | number[]>;
+}
+
+export interface WebGLEffectRenderer {
+ type: "webgl";
+ passes: WebGLEffectPass[];
+ buildPasses?: (params: {
+ effectParams: ParamValues;
+ width: number;
+ height: number;
+ }) => ResolvedEffectPass[];
+}
+
+export type EffectRenderer = WebGLEffectRenderer;
+
+export interface EffectDefinition {
+ type: string;
+ name: string;
+ keywords: string[];
+ params: ParamDefinition[];
+ renderer: EffectRenderer;
+}
diff --git a/apps/web/src/lib/export.ts b/apps/web/src/lib/export.ts
index ae68144b..68d2bc7f 100644
--- a/apps/web/src/lib/export.ts
+++ b/apps/web/src/lib/export.ts
@@ -1,5 +1,36 @@
import { EXPORT_MIME_TYPES } from "@/constants/export-constants";
-import type { ExportFormat } from "@/types/export";
+
+export const EXPORT_QUALITY_VALUES = [
+ "low",
+ "medium",
+ "high",
+ "very_high",
+] as const;
+
+export const EXPORT_FORMAT_VALUES = ["mp4", "webm"] as const;
+
+export type ExportFormat = (typeof EXPORT_FORMAT_VALUES)[number];
+export type ExportQuality = (typeof EXPORT_QUALITY_VALUES)[number];
+
+export interface ExportOptions {
+ format: ExportFormat;
+ quality: ExportQuality;
+ fps?: number;
+ includeAudio?: boolean;
+}
+
+export interface ExportResult {
+ success: boolean;
+ buffer?: ArrayBuffer;
+ error?: string;
+ cancelled?: boolean;
+}
+
+export interface ExportState {
+ isExporting: boolean;
+ progress: number;
+ result: ExportResult | null;
+}
export function getExportMimeType({
format,
diff --git a/apps/web/src/lib/fonts/google-fonts.ts b/apps/web/src/lib/fonts/google-fonts.ts
index 7e55dffd..580ce406 100644
--- a/apps/web/src/lib/fonts/google-fonts.ts
+++ b/apps/web/src/lib/fonts/google-fonts.ts
@@ -1,14 +1,16 @@
-import type { FontAtlas } from "@/types/fonts";
+import type { FontAtlas } from "@/lib/fonts/types";
import { SYSTEM_FONTS } from "@/constants/font-constants";
const GOOGLE_FONTS_CSS = "https://fonts.googleapis.com/css2";
+const FONT_ATLAS_PATH = "/fonts/font-atlas.json";
+const FONT_CHUNK_PATH_PREFIX = "/fonts/font-chunk-";
const fullLoaded = new Set<string>();
let cachedAtlas: FontAtlas | null = null;
let atlasFetchPromise: Promise<FontAtlas | null> | null = null;
-function encodeFamily(family: string): string {
+function encodeGoogleFontsFamily(family: string): string {
return family.replace(/ /g, "+");
}
@@ -19,17 +21,19 @@ export function getCachedFontAtlas(): FontAtlas | null {
export function clearFontAtlasCache(): void {
cachedAtlas = null;
atlasFetchPromise = null;
+ fullLoaded.clear();
}
-async function fetchAtlas(): Promise<FontAtlas | null> {
- if (cachedAtlas) return cachedAtlas;
+export function loadFontAtlas(): Promise<FontAtlas | null> {
+ if (cachedAtlas) return Promise.resolve(cachedAtlas);
if (atlasFetchPromise) return atlasFetchPromise;
- atlasFetchPromise = fetch("/fonts/font-atlas.json")
+ atlasFetchPromise = fetch(FONT_ATLAS_PATH)
.then(async (response) => {
if (!response.ok) return null;
const data: FontAtlas = await response.json();
cachedAtlas = data;
+ preloadChunkImages({ atlas: data });
return data;
})
.catch(() => null);
@@ -42,18 +46,12 @@ function preloadChunkImages({ atlas }: { atlas: FontAtlas }): void {
...Object.values(atlas.fonts).map((entry) => entry.ch),
);
for (let i = 0; i <= maxChunk; i++) {
+ // hint browser to preload chunk images without blocking
const img = new Image();
- img.src = `/fonts/font-chunk-${i}.avif`;
+ img.src = `${FONT_CHUNK_PATH_PREFIX}${i}.avif`;
}
}
-export function prefetchFontAtlas(): Promise<FontAtlas | null> {
- return fetchAtlas().then((atlas) => {
- if (atlas) preloadChunkImages({ atlas });
- return atlas;
- });
-}
-
export async function loadFullFont({
family,
weights = [400, 700],
@@ -63,7 +61,7 @@ export async function loadFullFont({
}): Promise<void> {
if (fullLoaded.has(family)) return;
- const url = `${GOOGLE_FONTS_CSS}?family=${encodeFamily(family)}:wght@${weights.join(";")}&display=swap`;
+ const url = `${GOOGLE_FONTS_CSS}?family=${encodeGoogleFontsFamily(family)}:wght@${weights.join(";")}&display=swap`;
const link = document.createElement("link");
link.rel = "stylesheet";
link.href = url;
diff --git a/apps/web/src/types/fonts.ts b/apps/web/src/lib/fonts/types.ts
index a2db6f91..a2db6f91 100644
--- a/apps/web/src/types/fonts.ts
+++ b/apps/web/src/lib/fonts/types.ts
diff --git a/apps/web/src/lib/graphics/definitions/ellipse.ts b/apps/web/src/lib/graphics/definitions/ellipse.ts
new file mode 100644
index 00000000..3fd76608
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/ellipse.ts
@@ -0,0 +1,73 @@
+import type { ParamDefinition } from "@/lib/params";
+import { applyAlignedStroke } from "../stroke";
+import { STROKE_ALIGN_PARAM, type GraphicStrokeAlign } from "./shared";
+import type { GraphicDefinition } from "../types";
+
+interface EllipseParams {
+ fill: string;
+ stroke: string;
+ strokeWidth: number;
+ strokeAlign: GraphicStrokeAlign;
+}
+
+const ELLIPSE_PARAMS: ParamDefinition<keyof EllipseParams & string>[] = [
+ {
+ key: "fill",
+ label: "Fill",
+ type: "color",
+ default: "#ffffff",
+ },
+ {
+ key: "stroke",
+ label: "Color",
+ type: "color",
+ default: "#000000",
+ group: "stroke",
+ },
+ {
+ key: "strokeWidth",
+ label: "Width",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 64,
+ step: 1,
+ shortLabel: "W",
+ group: "stroke",
+ },
+ STROKE_ALIGN_PARAM,
+];
+
+export const ellipseGraphicDefinition: GraphicDefinition = {
+ id: "ellipse",
+ name: "Ellipse",
+ keywords: ["ellipse", "circle", "oval"],
+ params: ELLIPSE_PARAMS,
+ render({ ctx, params, width, height }) {
+ const fill = String(params.fill ?? "#ffffff");
+ const stroke = String(params.stroke ?? "#000000");
+ const strokeWidth = Math.max(0, Number(params.strokeWidth ?? 0));
+ const strokeAlign = (params.strokeAlign ?? "center") as GraphicStrokeAlign;
+ const inset = strokeAlign === "center" ? strokeWidth / 2 : 0;
+ const centerX = width / 2;
+ const centerY = height / 2;
+ const radiusX = Math.max(1, width / 2 - inset);
+ const radiusY = Math.max(1, height / 2 - inset);
+
+ ctx.clearRect(0, 0, width, height);
+ const path = new Path2D();
+ path.ellipse(centerX, centerY, radiusX, radiusY, 0, 0, Math.PI * 2);
+ ctx.fillStyle = fill;
+ ctx.fill(path);
+
+ if (strokeWidth > 0) {
+ applyAlignedStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeAlign,
+ strokeColor: stroke,
+ });
+ }
+ },
+};
diff --git a/apps/web/src/lib/graphics/definitions/index.ts b/apps/web/src/lib/graphics/definitions/index.ts
new file mode 100644
index 00000000..e791f917
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/index.ts
@@ -0,0 +1,29 @@
+import { graphicsRegistry } from "../registry";
+import { ellipseGraphicDefinition } from "./ellipse";
+import { polygonGraphicDefinition } from "./polygon";
+import { rectangleGraphicDefinition } from "./rectangle";
+import { starGraphicDefinition } from "./star";
+
+const defaultGraphicDefinitions = [
+ rectangleGraphicDefinition,
+ ellipseGraphicDefinition,
+ polygonGraphicDefinition,
+ starGraphicDefinition,
+];
+
+export function registerDefaultGraphics(): void {
+ for (const definition of defaultGraphicDefinitions) {
+ if (graphicsRegistry.has(definition.id)) {
+ continue;
+ }
+ graphicsRegistry.register(definition.id, definition);
+ }
+}
+
+export {
+ ellipseGraphicDefinition,
+ polygonGraphicDefinition,
+ rectangleGraphicDefinition,
+ starGraphicDefinition,
+};
+export { STROKE_ALIGN_PARAM } from "./shared";
diff --git a/apps/web/src/lib/graphics/definitions/polygon.ts b/apps/web/src/lib/graphics/definitions/polygon.ts
new file mode 100644
index 00000000..780c974c
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/polygon.ts
@@ -0,0 +1,211 @@
+import type { ParamDefinition } from "@/lib/params";
+import { applyAlignedStroke } from "../stroke";
+import { STROKE_ALIGN_PARAM, type GraphicStrokeAlign } from "./shared";
+import type { GraphicDefinition } from "../types";
+
+interface Point {
+ x: number;
+ y: number;
+}
+
+interface PolygonParams {
+ fill: string;
+ stroke: string;
+ strokeWidth: number;
+ strokeAlign: GraphicStrokeAlign;
+ sides: number;
+ cornerRadius: number;
+}
+
+const POLYGON_PARAMS: ParamDefinition<keyof PolygonParams & string>[] = [
+ {
+ key: "fill",
+ label: "Fill",
+ type: "color",
+ default: "#ffffff",
+ },
+ {
+ key: "stroke",
+ label: "Color",
+ type: "color",
+ default: "#000000",
+ group: "stroke",
+ },
+ {
+ key: "strokeWidth",
+ label: "Width",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 64,
+ step: 1,
+ shortLabel: "W",
+ group: "stroke",
+ },
+ STROKE_ALIGN_PARAM,
+ {
+ key: "sides",
+ label: "Sides",
+ type: "number",
+ default: 5,
+ min: 3,
+ max: 12,
+ step: 1,
+ shortLabel: "S",
+ },
+ {
+ key: "cornerRadius",
+ label: "Corner radius",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 50,
+ step: 1,
+ shortLabel: "R",
+ },
+];
+
+function buildPolygonVertices({
+ centerX,
+ centerY,
+ radius,
+ sides,
+}: {
+ centerX: number;
+ centerY: number;
+ radius: number;
+ sides: number;
+}): Point[] {
+ return Array.from({ length: sides }, (_, index) => {
+ const angle = -Math.PI / 2 + (index * Math.PI * 2) / sides;
+ return {
+ x: centerX + Math.cos(angle) * radius,
+ y: centerY + Math.sin(angle) * radius,
+ };
+ });
+}
+
+function distance({ a, b }: { a: Point; b: Point }): number {
+ return Math.hypot(a.x - b.x, a.y - b.y);
+}
+
+function normalize(point: Point): Point {
+ const length = Math.hypot(point.x, point.y) || 1;
+ return {
+ x: point.x / length,
+ y: point.y / length,
+ };
+}
+
+function traceRoundedPolygonPath({
+ path,
+ vertices,
+ radius,
+}: {
+ path: Path2D;
+ vertices: Point[];
+ radius: number;
+}): void {
+ if (vertices.length < 3) {
+ return;
+ }
+
+ if (radius <= 0) {
+ path.moveTo(vertices[0].x, vertices[0].y);
+ for (let index = 1; index < vertices.length; index++) {
+ path.lineTo(vertices[index].x, vertices[index].y);
+ }
+ path.closePath();
+ return;
+ }
+
+ for (let index = 0; index < vertices.length; index++) {
+ const previous = vertices[(index - 1 + vertices.length) % vertices.length];
+ const current = vertices[index];
+ const next = vertices[(index + 1) % vertices.length];
+ const toPrevious = normalize({
+ x: previous.x - current.x,
+ y: previous.y - current.y,
+ });
+ const toNext = normalize({
+ x: next.x - current.x,
+ y: next.y - current.y,
+ });
+ const angle = Math.acos(
+ Math.max(-1, Math.min(1, toPrevious.x * toNext.x + toPrevious.y * toNext.y)),
+ );
+ const maxOffset =
+ Math.min(distance({ a: previous, b: current }), distance({ a: current, b: next })) / 2;
+ const tangentOffset = Math.min(radius / Math.tan(angle / 2), maxOffset);
+ const start = {
+ x: current.x + toPrevious.x * tangentOffset,
+ y: current.y + toPrevious.y * tangentOffset,
+ };
+ const end = {
+ x: current.x + toNext.x * tangentOffset,
+ y: current.y + toNext.y * tangentOffset,
+ };
+
+ if (index === 0) {
+ path.moveTo(start.x, start.y);
+ } else {
+ path.lineTo(start.x, start.y);
+ }
+
+ path.arcTo(
+ current.x,
+ current.y,
+ end.x,
+ end.y,
+ Math.min(radius, maxOffset),
+ );
+ }
+
+ path.closePath();
+}
+
+export const polygonGraphicDefinition: GraphicDefinition = {
+ id: "polygon",
+ name: "Polygon",
+ keywords: ["polygon", "triangle", "pentagon", "hexagon", "diamond"],
+ params: POLYGON_PARAMS,
+ render({ ctx, params, width, height }) {
+ const fill = String(params.fill ?? "#ffffff");
+ const stroke = String(params.stroke ?? "#000000");
+ const strokeWidth = Math.max(0, Number(params.strokeWidth ?? 0));
+ const strokeAlign = (params.strokeAlign ?? "center") as GraphicStrokeAlign;
+ const sides = Math.max(3, Math.min(12, Math.round(Number(params.sides ?? 5))));
+ const inset = strokeAlign === "center" ? strokeWidth / 2 : 0;
+ const radius = Math.max(1, Math.min(width, height) / 2 - inset);
+ const maxCornerRadius = radius * Math.sin(Math.PI / sides);
+ const cornerRadiusPercent = Math.max(0, Number(params.cornerRadius ?? 0));
+ const cornerRadius =
+ maxCornerRadius * Math.min(cornerRadiusPercent, 50) / 50;
+ const vertices = buildPolygonVertices({
+ centerX: width / 2,
+ centerY: height / 2,
+ radius,
+ sides,
+ });
+
+ ctx.clearRect(0, 0, width, height);
+ const path = new Path2D();
+ traceRoundedPolygonPath({
+ path,
+ vertices,
+ radius: cornerRadius,
+ });
+ ctx.fillStyle = fill;
+ ctx.fill(path);
+
+ if (strokeWidth > 0) {
+ applyAlignedStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeAlign,
+ strokeColor: stroke,
+ });
+ }
+ },
+};
diff --git a/apps/web/src/lib/graphics/definitions/rectangle.ts b/apps/web/src/lib/graphics/definitions/rectangle.ts
new file mode 100644
index 00000000..4e7f78f6
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/rectangle.ts
@@ -0,0 +1,85 @@
+import type { ParamDefinition } from "@/lib/params";
+import { applyAlignedStroke } from "../stroke";
+import { STROKE_ALIGN_PARAM, type GraphicStrokeAlign } from "./shared";
+import type { GraphicDefinition } from "../types";
+
+interface RectangleParams {
+ fill: string;
+ stroke: string;
+ strokeWidth: number;
+ strokeAlign: GraphicStrokeAlign;
+ cornerRadius: number;
+}
+
+const RECTANGLE_PARAMS: ParamDefinition<keyof RectangleParams & string>[] = [
+ {
+ key: "fill",
+ label: "Fill",
+ type: "color",
+ default: "#ffffff",
+ },
+ {
+ key: "stroke",
+ label: "Color",
+ type: "color",
+ default: "#000000",
+ group: "stroke",
+ },
+ {
+ key: "strokeWidth",
+ label: "Width",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 64,
+ step: 1,
+ shortLabel: "W",
+ group: "stroke",
+ },
+ STROKE_ALIGN_PARAM,
+ {
+ key: "cornerRadius",
+ label: "Corner radius",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 50,
+ step: 1,
+ shortLabel: "R",
+ },
+];
+
+export const rectangleGraphicDefinition: GraphicDefinition = {
+ id: "rectangle",
+ name: "Rectangle",
+ keywords: ["rectangle", "square", "box"],
+ params: RECTANGLE_PARAMS,
+ render({ ctx, params, width, height }) {
+ const fill = String(params.fill ?? "#ffffff");
+ const stroke = String(params.stroke ?? "#000000");
+ const strokeWidth = Math.max(0, Number(params.strokeWidth ?? 0));
+ const strokeAlign = (params.strokeAlign ?? "center") as GraphicStrokeAlign;
+ const inset = strokeAlign === "center" ? strokeWidth / 2 : 0;
+ const drawWidth = Math.max(1, width - inset * 2);
+ const drawHeight = Math.max(1, height - inset * 2);
+ const radiusPercent = Math.max(0, Number(params.cornerRadius ?? 0));
+ const radius =
+ (Math.min(drawWidth, drawHeight) / 2) * Math.min(radiusPercent, 50) / 50;
+
+ ctx.clearRect(0, 0, width, height);
+ const path = new Path2D();
+ path.roundRect(inset, inset, drawWidth, drawHeight, radius);
+ ctx.fillStyle = fill;
+ ctx.fill(path);
+
+ if (strokeWidth > 0) {
+ applyAlignedStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeAlign,
+ strokeColor: stroke,
+ });
+ }
+ },
+};
diff --git a/apps/web/src/lib/graphics/definitions/shared.ts b/apps/web/src/lib/graphics/definitions/shared.ts
new file mode 100644
index 00000000..d2833f51
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/shared.ts
@@ -0,0 +1,16 @@
+import type { ParamDefinition } from "@/lib/params";
+
+export type GraphicStrokeAlign = "inside" | "center" | "outside";
+
+export const STROKE_ALIGN_PARAM: ParamDefinition<"strokeAlign"> = {
+ key: "strokeAlign",
+ label: "Stroke align",
+ type: "select",
+ default: "center",
+ group: "stroke",
+ options: [
+ { value: "inside", label: "Inside" },
+ { value: "center", label: "Center" },
+ { value: "outside", label: "Outside" },
+ ],
+};
diff --git a/apps/web/src/lib/graphics/definitions/star.ts b/apps/web/src/lib/graphics/definitions/star.ts
new file mode 100644
index 00000000..c7f9ef56
--- /dev/null
+++ b/apps/web/src/lib/graphics/definitions/star.ts
@@ -0,0 +1,109 @@
+import type { ParamDefinition } from "@/lib/params";
+import { applyAlignedStroke } from "../stroke";
+import { STROKE_ALIGN_PARAM, type GraphicStrokeAlign } from "./shared";
+import type { GraphicDefinition } from "../types";
+
+interface StarParams {
+ fill: string;
+ stroke: string;
+ strokeWidth: number;
+ strokeAlign: GraphicStrokeAlign;
+ points: number;
+ depth: number;
+}
+
+const STAR_PARAMS: ParamDefinition<keyof StarParams & string>[] = [
+ {
+ key: "fill",
+ label: "Fill",
+ type: "color",
+ default: "#ffffff",
+ },
+ {
+ key: "stroke",
+ label: "Color",
+ type: "color",
+ default: "#000000",
+ group: "stroke",
+ },
+ {
+ key: "strokeWidth",
+ label: "Width",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 64,
+ step: 1,
+ shortLabel: "W",
+ group: "stroke",
+ },
+ STROKE_ALIGN_PARAM,
+ {
+ key: "points",
+ label: "Points",
+ type: "number",
+ default: 5,
+ min: 3,
+ max: 12,
+ step: 1,
+ shortLabel: "P",
+ },
+ {
+ key: "depth",
+ label: "Depth",
+ type: "number",
+ default: 45,
+ min: 1,
+ max: 99,
+ step: 1,
+ shortLabel: "D",
+ },
+];
+
+export const starGraphicDefinition: GraphicDefinition = {
+ id: "star",
+ name: "Star",
+ keywords: ["star", "sparkle", "burst"],
+ params: STAR_PARAMS,
+ render({ ctx, params, width, height }) {
+ const fill = String(params.fill ?? "#ffffff");
+ const stroke = String(params.stroke ?? "#000000");
+ const strokeWidth = Math.max(0, Number(params.strokeWidth ?? 0));
+ const strokeAlign = (params.strokeAlign ?? "center") as GraphicStrokeAlign;
+ const points = Math.max(3, Math.min(12, Math.round(Number(params.points ?? 5))));
+ const depth = Math.max(1, Math.min(99, Number(params.depth ?? 45))) / 100;
+ const inset = strokeAlign === "center" ? strokeWidth / 2 : 0;
+ const outerRadius = Math.max(1, Math.min(width, height) / 2 - inset);
+ const innerRadius = outerRadius * depth;
+ const centerX = width / 2;
+ const centerY = height / 2;
+
+ ctx.clearRect(0, 0, width, height);
+ const path = new Path2D();
+ for (let index = 0; index < points * 2; index++) {
+ const radius = index % 2 === 0 ? outerRadius : innerRadius;
+ const angle = -Math.PI / 2 + (index * Math.PI) / points;
+ const x = centerX + Math.cos(angle) * radius;
+ const y = centerY + Math.sin(angle) * radius;
+
+ if (index === 0) {
+ path.moveTo(x, y);
+ } else {
+ path.lineTo(x, y);
+ }
+ }
+ path.closePath();
+ ctx.fillStyle = fill;
+ ctx.fill(path);
+
+ if (strokeWidth > 0) {
+ applyAlignedStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeAlign,
+ strokeColor: stroke,
+ });
+ }
+ },
+};
diff --git a/apps/web/src/lib/graphics/index.ts b/apps/web/src/lib/graphics/index.ts
new file mode 100644
index 00000000..5286e932
--- /dev/null
+++ b/apps/web/src/lib/graphics/index.ts
@@ -0,0 +1,125 @@
+import { buildDefaultParamValues } from "@/lib/registry";
+import type { ParamValues } from "@/lib/params";
+import { graphicsRegistry } from "./registry";
+import {
+ registerDefaultGraphics,
+ ellipseGraphicDefinition,
+ polygonGraphicDefinition,
+ rectangleGraphicDefinition,
+ starGraphicDefinition,
+} from "./definitions";
+import {
+ DEFAULT_GRAPHIC_SOURCE_SIZE,
+ type GraphicInstance,
+ type GraphicDefinition,
+} from "./types";
+
+const graphicPreviewUrlCache = new Map<string, string>();
+
+const FALLBACK_CORNER_RADIUS_RATIO = 0.2;
+const FALLBACK_FILL_OPACITY = 0.08;
+const FALLBACK_MIN_FONT_SIZE = 12;
+const FALLBACK_FONT_SIZE_RATIO = 0.15;
+
+function buildFallbackPreviewUrl({
+ name,
+ size,
+}: {
+ name: string;
+ size: number;
+}): string {
+ const svg = `
+ <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
+ <rect width="${size}" height="${size}" rx="${size * FALLBACK_CORNER_RADIUS_RATIO}" fill="white" fill-opacity="${FALLBACK_FILL_OPACITY}" />
+ <text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="white" font-size="${Math.max(FALLBACK_MIN_FONT_SIZE, size * FALLBACK_FONT_SIZE_RATIO)}" font-family="sans-serif">${name}</text>
+ </svg>
+ `;
+ return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
+}
+
+export function getGraphicDefinition({
+ definitionId,
+}: {
+ definitionId: string;
+}): GraphicDefinition {
+ registerDefaultGraphics();
+ return graphicsRegistry.get(definitionId);
+}
+
+export function buildDefaultGraphicInstance({
+ definitionId,
+}: {
+ definitionId: string;
+}): GraphicInstance {
+ const definition = getGraphicDefinition({ definitionId });
+ return {
+ definitionId,
+ params: buildDefaultParamValues(definition.params),
+ };
+}
+
+export function resolveGraphicParams(
+ definition: GraphicDefinition,
+ params?: ParamValues,
+): ParamValues {
+ return {
+ ...buildDefaultParamValues(definition.params),
+ ...(params ?? {}),
+ };
+}
+
+export function buildGraphicPreviewUrl({
+ definitionId,
+ params,
+ size = DEFAULT_GRAPHIC_SOURCE_SIZE,
+}: {
+ definitionId: string;
+ params?: ParamValues;
+ size?: number;
+}): string {
+ const definition = getGraphicDefinition({ definitionId });
+ const resolvedParams = resolveGraphicParams(definition, params);
+ const cacheKey = JSON.stringify({ definitionId, resolvedParams, size });
+ const cachedUrl = graphicPreviewUrlCache.get(cacheKey);
+ if (cachedUrl) {
+ return cachedUrl;
+ }
+
+ if (typeof document === "undefined") {
+ return buildFallbackPreviewUrl({ name: definition.name, size });
+ }
+
+ const canvas = document.createElement("canvas");
+ canvas.width = size;
+ canvas.height = size;
+ const ctx = canvas.getContext("2d");
+ if (!ctx) {
+ return buildFallbackPreviewUrl({ name: definition.name, size });
+ }
+
+ definition.render({
+ ctx,
+ params: resolvedParams,
+ width: size,
+ height: size,
+ });
+
+ const previewUrl = canvas.toDataURL("image/png");
+ graphicPreviewUrlCache.set(cacheKey, previewUrl);
+ return previewUrl;
+}
+
+export {
+ DEFAULT_GRAPHIC_SOURCE_SIZE,
+ ellipseGraphicDefinition,
+ graphicsRegistry,
+ polygonGraphicDefinition,
+ rectangleGraphicDefinition,
+ registerDefaultGraphics,
+ starGraphicDefinition,
+};
+export type {
+ GraphicDefinition,
+ GraphicInstance,
+ GraphicRenderContext,
+} from "./types";
diff --git a/apps/web/src/lib/graphics/registry.ts b/apps/web/src/lib/graphics/registry.ts
new file mode 100644
index 00000000..7f2ab9fd
--- /dev/null
+++ b/apps/web/src/lib/graphics/registry.ts
@@ -0,0 +1,10 @@
+import { DefinitionRegistry } from "@/lib/registry";
+import type { GraphicDefinition } from "./types";
+
+export class GraphicsRegistry extends DefinitionRegistry<string, GraphicDefinition> {
+ constructor() {
+ super("graphic");
+ }
+}
+
+export const graphicsRegistry = new GraphicsRegistry();
diff --git a/apps/web/src/lib/graphics/stroke.ts b/apps/web/src/lib/graphics/stroke.ts
new file mode 100644
index 00000000..98f9f43f
--- /dev/null
+++ b/apps/web/src/lib/graphics/stroke.ts
@@ -0,0 +1,102 @@
+import type { GraphicStrokeAlign } from "./definitions/shared";
+
+type GraphicRenderContext =
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D;
+
+function createTempCanvas({
+ width,
+ height,
+}: {
+ width: number;
+ height: number;
+}): OffscreenCanvas | HTMLCanvasElement {
+ try {
+ return new OffscreenCanvas(width, height);
+ } catch {
+ const canvas = document.createElement("canvas");
+ canvas.width = width;
+ canvas.height = height;
+ return canvas;
+ }
+}
+
+function applyStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeColor,
+}: {
+ ctx: GraphicRenderContext;
+ path: Path2D;
+ strokeWidth: number;
+ strokeColor: string;
+}) {
+ ctx.strokeStyle = strokeColor;
+ ctx.lineWidth = strokeWidth;
+ ctx.stroke(path);
+}
+
+export function applyAlignedStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeAlign,
+ strokeColor,
+}: {
+ ctx: GraphicRenderContext;
+ path: Path2D;
+ strokeWidth: number;
+ strokeAlign: GraphicStrokeAlign;
+ strokeColor: string;
+}): void {
+ if (strokeWidth <= 0) {
+ return;
+ }
+
+ if (strokeAlign === "inside") {
+ ctx.save();
+ ctx.clip(path);
+ applyStroke({
+ ctx,
+ path,
+ strokeWidth: strokeWidth * 2,
+ strokeColor,
+ });
+ ctx.restore();
+ return;
+ }
+
+ if (strokeAlign === "outside") {
+ const strokeCanvas = createTempCanvas({
+ width: ctx.canvas.width,
+ height: ctx.canvas.height,
+ });
+ const strokeCtx = strokeCanvas.getContext("2d") as GraphicRenderContext | null;
+ if (!strokeCtx) {
+ return;
+ }
+
+ applyStroke({
+ ctx: strokeCtx,
+ path,
+ strokeWidth: strokeWidth * 2,
+ strokeColor,
+ });
+
+ // Keep only the outer half of the doubled stroke so alpha fills do not
+ // leave a visible inner stroke behind.
+ strokeCtx.globalCompositeOperation = "destination-out";
+ strokeCtx.fill(path);
+
+ ctx.drawImage(strokeCanvas, 0, 0);
+ return;
+ }
+
+ applyStroke({
+ ctx,
+ path,
+ strokeWidth,
+ strokeColor,
+ });
+}
diff --git a/apps/web/src/lib/graphics/types.ts b/apps/web/src/lib/graphics/types.ts
new file mode 100644
index 00000000..af932d39
--- /dev/null
+++ b/apps/web/src/lib/graphics/types.ts
@@ -0,0 +1,23 @@
+import type { ParamDefinition, ParamValues } from "@/lib/params";
+
+export const DEFAULT_GRAPHIC_SOURCE_SIZE = 512;
+
+export interface GraphicRenderContext {
+ ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
+ params: ParamValues;
+ width: number;
+ height: number;
+}
+
+export interface GraphicDefinition {
+ id: string;
+ name: string;
+ keywords: string[];
+ params: ParamDefinition[];
+ render(context: GraphicRenderContext): void;
+}
+
+export interface GraphicInstance {
+ definitionId: string;
+ params: ParamValues;
+}
diff --git a/apps/web/src/lib/guides/definitions/custom.tsx b/apps/web/src/lib/guides/definitions/custom.tsx
new file mode 100644
index 00000000..bc92cb84
--- /dev/null
+++ b/apps/web/src/lib/guides/definitions/custom.tsx
@@ -0,0 +1,24 @@
+import { PlusSignIcon, RulerIcon } from "@hugeicons/core-free-icons";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { Button } from "@/components/ui/button";
+import type { GuideDefinition } from "@/lib/guides/types";
+
+function CustomGuideOptions() {
+ return (
+ <div className="flex gap-2">
+ <Button variant="outline" size="sm" className="flex-1">
+ <HugeiconsIcon icon={PlusSignIcon} />
+ Add guide line
+ </Button>
+ </div>
+ );
+}
+
+export const customGuide = {
+ id: "custom",
+ label: "Custom",
+ renderPreview: () => <HugeiconsIcon size={16} icon={RulerIcon} />,
+ renderTriggerIcon: () => <HugeiconsIcon icon={RulerIcon} />,
+ renderOverlay: () => null,
+ renderOptions: () => <CustomGuideOptions />,
+} as const satisfies GuideDefinition;
diff --git a/apps/web/src/lib/guides/definitions/grid.tsx b/apps/web/src/lib/guides/definitions/grid.tsx
new file mode 100644
index 00000000..0e7a2004
--- /dev/null
+++ b/apps/web/src/lib/guides/definitions/grid.tsx
@@ -0,0 +1,125 @@
+import {
+ GridTableIcon,
+ LayoutThreeColumnIcon,
+ LayoutThreeRowIcon,
+} from "@hugeicons/core-free-icons";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { NumberField } from "@/components/ui/number-field";
+import {
+ GRID_MIN,
+ GRID_MAX,
+ DEFAULT_GRID_CONFIG,
+} from "@/constants/guide-constants";
+import { usePreviewStore } from "@/stores/preview-store";
+import { clampRound } from "@/utils/math";
+import { cn } from "@/utils/ui";
+import type { GuideDefinition } from "@/lib/guides/types";
+
+function GridLines({
+ rows,
+ cols,
+ color,
+}: {
+ rows: number;
+ cols: number;
+ color: string;
+}) {
+ const verticals = Array.from(
+ { length: cols - 1 },
+ (_, i) => ((i + 1) / cols) * 100,
+ );
+ const horizontals = Array.from(
+ { length: rows - 1 },
+ (_, i) => ((i + 1) / rows) * 100,
+ );
+
+ return (
+ <>
+ {verticals.map((pct) => (
+ <div
+ key={`v-${pct}`}
+ className={cn("absolute top-0 bottom-0 w-px", color)}
+ style={{ left: `${pct}%` }}
+ />
+ ))}
+ {horizontals.map((pct) => (
+ <div
+ key={`h-${pct}`}
+ className={cn("absolute left-0 right-0 h-px", color)}
+ style={{ top: `${pct}%` }}
+ />
+ ))}
+ </>
+ );
+}
+
+function GridGuidePreview() {
+ return (
+ <div className="relative aspect-video w-full">
+ <GridLines rows={3} cols={4} color="bg-foreground/15" />
+ </div>
+ );
+}
+
+function GridGuideOverlay() {
+ const { rows, cols } = usePreviewStore((s) => s.gridConfig);
+
+ return (
+ <div className="absolute inset-0">
+ <GridLines rows={rows} cols={cols} color="bg-white/35" />
+ </div>
+ );
+}
+
+function GridGuideOptions() {
+ const rows = usePreviewStore((s) => s.gridConfig.rows);
+ const cols = usePreviewStore((s) => s.gridConfig.cols);
+ const setGridConfig = usePreviewStore((s) => s.setGridConfig);
+
+ const clampGridValue = (value: number) =>
+ clampRound({ value, min: GRID_MIN, max: GRID_MAX });
+
+ return (
+ <div className="flex gap-2">
+ <NumberField
+ icon={<HugeiconsIcon icon={LayoutThreeRowIcon} />}
+ value={rows}
+ min={GRID_MIN}
+ max={GRID_MAX}
+ isDefault={rows === DEFAULT_GRID_CONFIG.rows}
+ onReset={() => setGridConfig({ rows: DEFAULT_GRID_CONFIG.rows })}
+ onScrub={(value) => setGridConfig({ rows: clampGridValue(value) })}
+ onChange={(event) => {
+ const parsed = Number.parseInt(event.target.value, 10);
+ if (!Number.isNaN(parsed))
+ setGridConfig({ rows: clampGridValue(parsed) });
+ }}
+ className="flex-1"
+ />
+ <NumberField
+ icon={<HugeiconsIcon icon={LayoutThreeColumnIcon} />}
+ value={cols}
+ min={GRID_MIN}
+ max={GRID_MAX}
+ isDefault={cols === DEFAULT_GRID_CONFIG.cols}
+ onReset={() => setGridConfig({ cols: DEFAULT_GRID_CONFIG.cols })}
+ onScrub={(value) => setGridConfig({ cols: clampGridValue(value) })}
+ onChange={(event) => {
+ const parsed = Number.parseInt(event.target.value, 10);
+ if (!Number.isNaN(parsed))
+ setGridConfig({ cols: clampGridValue(parsed) });
+ }}
+ className="flex-1"
+ />
+ </div>
+ );
+}
+
+export const gridGuide = {
+ id: "grid",
+ label: "Grid",
+ renderPreview: () => <GridGuidePreview />,
+ renderTriggerIcon: () => <HugeiconsIcon icon={GridTableIcon} />,
+ renderOverlay: () => <GridGuideOverlay />,
+ renderOptions: () => <GridGuideOptions />,
+} as const satisfies GuideDefinition;
diff --git a/apps/web/src/lib/guides/definitions/platforms.tsx b/apps/web/src/lib/guides/definitions/platforms.tsx
new file mode 100644
index 00000000..ffeec1c0
--- /dev/null
+++ b/apps/web/src/lib/guides/definitions/platforms.tsx
@@ -0,0 +1,65 @@
+import Image from "next/image";
+import type { GuideDefinition } from "@/lib/guides/types";
+import { TikTokLayout } from "./tiktok-layout";
+
+function PlatformLogo({
+ domain,
+ className = "size-4",
+}: {
+ domain: string;
+ className?: string;
+}) {
+ return (
+ <Image
+ src={`https://cdn.brandfetch.io/${domain}/w/64/h/64`}
+ alt=""
+ width={18}
+ height={18}
+ className={className}
+ draggable={false}
+ unoptimized
+ />
+ );
+}
+
+function PlatformGuidePreview({ domain }: { domain: string }) {
+ return <PlatformLogo domain={domain} />;
+}
+
+function platformGuide({
+ id,
+ label,
+ domain,
+}: {
+ id: string;
+ label: string;
+ domain: string;
+}): GuideDefinition {
+ return {
+ id,
+ label,
+ renderPreview: () => <PlatformGuidePreview domain={domain} />,
+ renderTriggerIcon: () => <PlatformLogo domain={domain} />,
+ renderOverlay: () => null,
+ };
+}
+
+export const tiktokGuide: GuideDefinition = {
+ ...platformGuide({ id: "tiktok", label: "TikTok", domain: "tiktok.com" }),
+ renderOverlay: () => <TikTokLayout />,
+};
+export const igReelsGuide = platformGuide({
+ id: "ig-reels",
+ label: "Reels",
+ domain: "instagram.com",
+});
+export const ytShortsGuide = platformGuide({
+ id: "yt-shorts",
+ label: "Shorts",
+ domain: "youtube.com",
+});
+export const spotlightGuide = platformGuide({
+ id: "spotlight",
+ label: "Spotlight",
+ domain: "snapchat.com",
+});
diff --git a/apps/web/src/lib/guides/definitions/tiktok-layout.tsx b/apps/web/src/lib/guides/definitions/tiktok-layout.tsx
new file mode 100644
index 00000000..794d1379
--- /dev/null
+++ b/apps/web/src/lib/guides/definitions/tiktok-layout.tsx
@@ -0,0 +1,335 @@
+export function TikTokLayout() {
+ return (
+ <svg
+ width="100%"
+ height="100%"
+ viewBox="0 0 1080 1920"
+ fill="none"
+ xmlns="http://www.w3.org/2000/svg"
+ >
+ <title>TikTok Layout</title>
+ <path
+ d="M56.2488 1751.28H51.6355C51.458 1750.3 51.1278 1749.43 50.6447 1748.68C50.1617 1747.93 49.5702 1747.3 48.8704 1746.77C48.1704 1746.25 47.3868 1745.85 46.5194 1745.59C45.6617 1745.32 44.7498 1745.19 43.7838 1745.19C42.0391 1745.19 40.4766 1745.63 39.0965 1746.5C37.7264 1747.38 36.642 1748.67 35.8435 1750.36C35.055 1752.06 34.6605 1754.13 34.6605 1756.57C34.6605 1759.04 35.055 1761.12 35.8435 1762.81C36.642 1764.51 37.7313 1765.79 39.1114 1766.65C40.4914 1767.52 42.044 1767.95 43.7689 1767.95C44.7253 1767.95 45.6322 1767.83 46.4897 1767.57C47.3571 1767.3 48.141 1766.91 48.8408 1766.4C49.5408 1765.89 50.1321 1765.26 50.6151 1764.53C51.108 1763.78 51.4481 1762.92 51.6355 1761.95L56.2488 1761.97C56.0023 1763.46 55.5243 1764.83 54.8146 1766.08C54.1145 1767.32 53.2125 1768.39 52.1086 1769.3C51.0143 1770.2 49.7625 1770.89 48.3528 1771.38C46.9431 1771.88 45.4053 1772.12 43.7395 1772.12C41.1173 1772.12 38.7811 1771.5 36.7307 1770.26C34.6803 1769.01 33.0636 1767.22 31.8808 1764.9C30.7077 1762.57 30.1211 1759.79 30.1211 1756.57C30.1211 1753.34 30.7126 1750.57 31.8954 1748.25C33.0785 1745.92 34.6951 1744.14 36.7455 1742.9C38.796 1741.65 41.1272 1741.02 43.7395 1741.02C45.3462 1741.02 46.8447 1741.25 48.2347 1741.72C49.6342 1742.17 50.8912 1742.84 52.005 1743.73C53.1191 1744.6 54.0406 1745.68 54.7701 1746.95C55.4995 1748.21 55.9924 1749.66 56.2488 1751.28ZM61.3612 1771.71V1749H65.6344V1752.61H65.8709C66.285 1751.39 67.0144 1750.43 68.0596 1749.73C69.1143 1749.02 70.307 1748.66 71.6379 1748.66C71.9137 1748.66 72.239 1748.67 72.6138 1748.69C72.9982 1748.71 73.2987 1748.74 73.5155 1748.77V1753C73.3383 1752.95 73.0229 1752.89 72.5693 1752.83C72.1159 1752.76 71.6623 1752.73 71.209 1752.73C70.1641 1752.73 69.2325 1752.95 68.4143 1753.39C67.606 1753.83 66.9653 1754.43 66.4921 1755.21C66.019 1755.98 65.7825 1756.86 65.7825 1757.84V1771.71H61.3612ZM86.317 1772.17C84.0792 1772.17 82.1521 1771.69 80.5355 1770.73C78.9288 1769.77 77.6867 1768.41 76.8094 1766.67C75.9417 1764.91 75.5082 1762.86 75.5082 1760.5C75.5082 1758.18 75.9417 1756.13 76.8094 1754.36C77.6867 1752.58 78.909 1751.2 80.4764 1750.2C82.0535 1749.2 83.8971 1748.71 86.0066 1748.71C87.288 1748.71 88.5301 1748.92 89.7327 1749.34C90.9353 1749.77 92.0148 1750.43 92.9709 1751.34C93.927 1752.25 94.6812 1753.42 95.2332 1754.87C95.7851 1756.31 96.0612 1758.06 96.0612 1760.12V1761.69H78.007V1758.38H91.7288C91.7288 1757.21 91.4922 1756.18 91.0191 1755.29C90.546 1754.38 89.8805 1753.66 89.023 1753.14C88.1752 1752.62 87.1795 1752.36 86.036 1752.36C84.7941 1752.36 83.7097 1752.67 82.783 1753.28C81.8664 1753.88 81.1565 1754.67 80.6537 1755.64C80.1608 1756.61 79.9146 1757.66 79.9146 1758.79V1761.38C79.9146 1762.89 80.1805 1764.19 80.713 1765.25C81.2551 1766.31 82.0093 1767.13 82.9753 1767.69C83.9413 1768.24 85.07 1768.52 86.3613 1768.52C87.1993 1768.52 87.9633 1768.4 88.6532 1768.16C89.3434 1767.92 89.9396 1767.55 90.4424 1767.07C90.9452 1766.58 91.3295 1765.99 91.5958 1765.28L95.7802 1766.03C95.4453 1767.27 94.8438 1768.34 93.9765 1769.27C93.1187 1770.19 92.0392 1770.9 90.738 1771.41C89.4467 1771.92 87.973 1772.17 86.317 1772.17ZM107.576 1772.21C106.137 1772.21 104.836 1771.95 103.673 1771.41C102.509 1770.87 101.588 1770.09 100.907 1769.06C100.237 1768.04 99.9021 1766.78 99.9021 1765.29C99.9021 1764.01 100.148 1762.96 100.641 1762.13C101.134 1761.3 101.8 1760.65 102.638 1760.16C103.476 1759.68 104.412 1759.32 105.447 1759.07C106.482 1758.82 107.537 1758.64 108.611 1758.51C109.972 1758.35 111.076 1758.22 111.923 1758.12C112.771 1758.02 113.387 1757.84 113.772 1757.61C114.156 1757.37 114.348 1756.99 114.348 1756.45V1756.35C114.348 1755.06 113.984 1754.06 113.254 1753.35C112.535 1752.64 111.46 1752.29 110.031 1752.29C108.542 1752.29 107.369 1752.62 106.511 1753.28C105.664 1753.93 105.077 1754.65 104.752 1755.45L100.597 1754.5C101.09 1753.12 101.809 1752.01 102.756 1751.16C103.712 1750.31 104.811 1749.68 106.053 1749.3C107.295 1748.91 108.601 1748.71 109.972 1748.71C110.879 1748.71 111.84 1748.82 112.855 1749.03C113.88 1749.24 114.836 1749.62 115.724 1750.19C116.621 1750.75 117.355 1751.55 117.927 1752.59C118.498 1753.63 118.784 1754.98 118.784 1756.63V1771.71H114.467V1768.61H114.289C114.003 1769.18 113.574 1769.74 113.003 1770.29C112.431 1770.84 111.697 1771.3 110.8 1771.66C109.903 1772.03 108.828 1772.21 107.576 1772.21ZM108.537 1768.67C109.76 1768.67 110.804 1768.42 111.672 1767.94C112.549 1767.46 113.215 1766.83 113.668 1766.05C114.132 1765.26 114.363 1764.42 114.363 1763.52V1760.59C114.206 1760.75 113.9 1760.9 113.446 1761.04C113.003 1761.16 112.495 1761.28 111.923 1761.38C111.352 1761.46 110.795 1761.55 110.252 1761.63C109.71 1761.7 109.257 1761.76 108.892 1761.8C108.035 1761.91 107.251 1762.1 106.541 1762.35C105.841 1762.61 105.279 1762.98 104.856 1763.46C104.442 1763.93 104.234 1764.57 104.234 1765.35C104.234 1766.45 104.639 1767.27 105.447 1767.84C106.255 1768.39 107.285 1768.67 108.537 1768.67ZM135.275 1749V1752.55H122.869V1749H135.275ZM126.196 1743.56H130.617V1765.04C130.617 1765.9 130.745 1766.54 131.001 1766.98C131.258 1767.4 131.588 1767.69 131.992 1767.85C132.406 1768 132.855 1768.07 133.338 1768.07C133.693 1768.07 134.003 1768.05 134.269 1768C134.536 1767.95 134.742 1767.91 134.891 1767.88L135.689 1771.53C135.433 1771.63 135.068 1771.73 134.595 1771.83C134.121 1771.94 133.53 1772 132.82 1772.01C131.657 1772.02 130.573 1771.82 129.567 1771.38C128.562 1770.95 127.748 1770.28 127.128 1769.37C126.507 1768.47 126.196 1767.33 126.196 1765.96V1743.56ZM149.488 1772.17C147.359 1772.17 145.501 1771.68 143.914 1770.7C142.327 1769.73 141.094 1768.36 140.217 1766.61C139.34 1764.86 138.901 1762.81 138.901 1760.46C138.901 1758.11 139.34 1756.04 140.217 1754.28C141.094 1752.52 142.327 1751.15 143.914 1750.17C145.501 1749.2 147.359 1748.71 149.488 1748.71C151.618 1748.71 153.476 1749.2 155.063 1750.17C156.65 1751.15 157.882 1752.52 158.759 1754.28C159.637 1756.04 160.075 1758.11 160.075 1760.46C160.075 1762.81 159.637 1764.86 158.759 1766.61C157.882 1768.36 156.65 1769.73 155.063 1770.7C153.476 1771.68 151.618 1772.17 149.488 1772.17ZM149.503 1768.46C150.883 1768.46 152.027 1768.09 152.934 1767.36C153.841 1766.63 154.511 1765.66 154.944 1764.45C155.388 1763.24 155.61 1761.9 155.61 1760.44C155.61 1759 155.388 1757.67 154.944 1756.45C154.511 1755.23 153.841 1754.25 152.934 1753.51C152.027 1752.77 150.883 1752.41 149.503 1752.41C148.113 1752.41 146.96 1752.77 146.043 1753.51C145.136 1754.25 144.461 1755.23 144.017 1756.45C143.584 1757.67 143.367 1759 143.367 1760.44C143.367 1761.9 143.584 1763.24 144.017 1764.45C144.461 1765.66 145.136 1766.63 146.043 1767.36C146.96 1768.09 148.113 1768.46 149.503 1768.46ZM165.01 1771.71V1749H169.284V1752.61H169.52C169.934 1751.39 170.664 1750.43 171.709 1749.73C172.763 1749.02 173.956 1748.66 175.287 1748.66C175.563 1748.66 175.888 1748.67 176.263 1748.69C176.647 1748.71 176.948 1748.74 177.165 1748.77V1753C176.987 1752.95 176.672 1752.89 176.218 1752.83C175.765 1752.76 175.311 1752.73 174.858 1752.73C173.813 1752.73 172.882 1752.95 172.063 1753.39C171.255 1753.83 170.614 1754.43 170.141 1755.21C169.668 1755.98 169.432 1756.86 169.432 1757.84V1771.71H165.01Z"
+ fill="white"
+ />
+ <path
+ d="M43.4438 1811.44V1814.4H31.6738V1811.44H43.4438ZM35.1043 1806H38.5939V1827.64C38.5939 1828.63 38.7368 1829.37 39.0228 1829.86C39.3184 1830.34 39.6932 1830.67 40.1465 1830.84C40.6097 1830.99 41.0977 1831.07 41.6104 1831.07C41.9947 1831.07 42.3101 1831.05 42.5566 1831.01C42.803 1830.97 43.0003 1830.92 43.1481 1830.9L43.8578 1834.03C43.6212 1834.12 43.291 1834.21 42.8673 1834.3C42.4434 1834.39 41.906 1834.44 41.2554 1834.44C40.2699 1834.44 39.3036 1834.23 38.3573 1833.81C37.421 1833.38 36.6421 1832.74 36.0212 1831.87C35.4099 1831 35.1043 1829.91 35.1043 1828.59V1806ZM55.1775 1834.62C53.1271 1834.62 51.328 1834.13 49.7804 1833.16C48.2426 1832.18 47.04 1830.82 46.1726 1829.06C45.3149 1827.31 44.8863 1825.26 44.8863 1822.91C44.8863 1820.55 45.3149 1818.48 46.1726 1816.72C47.04 1814.96 48.2426 1813.59 49.7804 1812.61C51.328 1811.64 53.1271 1811.15 55.1775 1811.15C57.2279 1811.15 59.022 1811.64 60.5598 1812.61C62.1075 1813.59 63.31 1814.96 64.1675 1816.72C65.0352 1818.48 65.4687 1820.55 65.4687 1822.91C65.4687 1825.26 65.0352 1827.31 64.1675 1829.06C63.31 1830.82 62.1075 1832.18 60.5598 1833.16C59.022 1834.13 57.2279 1834.62 55.1775 1834.62ZM55.1775 1831.49C56.735 1831.49 58.0165 1831.09 59.022 1830.29C60.0274 1829.49 60.7716 1828.44 61.2547 1827.14C61.7377 1825.84 61.9792 1824.43 61.9792 1822.91C61.9792 1821.39 61.7377 1819.98 61.2547 1818.67C60.7716 1817.36 60.0274 1816.3 59.022 1815.49C58.0165 1814.68 56.735 1814.28 55.1775 1814.28C53.62 1814.28 52.3385 1814.68 51.333 1815.49C50.3277 1816.3 49.5834 1817.36 49.1004 1818.67C48.6173 1819.98 48.3758 1821.39 48.3758 1822.91C48.3758 1824.43 48.6173 1825.84 49.1004 1827.14C49.5834 1828.44 50.3277 1829.49 51.333 1830.29C52.3385 1831.09 53.62 1831.49 55.1775 1831.49ZM71.7869 1803.87V1834.15H68.2973V1803.87H71.7869ZM84.2561 1834.62C82.3636 1834.62 80.6926 1834.14 79.2436 1833.19C77.7945 1832.22 76.6609 1830.86 75.8427 1829.11C75.0245 1827.34 74.6154 1825.26 74.6154 1822.85C74.6154 1820.47 75.0245 1818.4 75.8427 1816.65C76.6609 1814.89 77.7995 1813.54 79.2584 1812.58C80.7173 1811.62 82.4029 1811.15 84.3154 1811.15C85.7941 1811.15 86.9621 1811.39 87.8198 1811.89C88.6872 1812.37 89.3477 1812.92 89.801 1813.54C90.2645 1814.15 90.6242 1814.66 90.8805 1815.05H91.1761V1803.87H94.6657V1834.15H91.2945V1830.66H90.8805C90.6242 1831.07 90.2596 1831.59 89.7862 1832.22C89.3131 1832.85 88.638 1833.4 87.7605 1833.89C86.8832 1834.38 85.7152 1834.62 84.2561 1834.62ZM84.7294 1831.49C86.129 1831.49 87.3121 1831.12 88.2781 1830.39C89.2441 1829.65 89.9785 1828.63 90.4813 1827.33C90.9841 1826.02 91.2355 1824.51 91.2355 1822.79C91.2355 1821.1 90.989 1819.62 90.4961 1818.34C90.0032 1817.06 89.2738 1816.07 88.3078 1815.36C87.3418 1814.64 86.1488 1814.28 84.7294 1814.28C83.2508 1814.28 82.0185 1814.66 81.0327 1815.42C80.0568 1816.17 79.3224 1817.19 78.8295 1818.48C78.3465 1819.76 78.105 1821.2 78.105 1822.79C78.105 1824.41 78.3515 1825.88 78.8444 1827.2C79.3471 1828.51 80.0865 1829.56 81.0624 1830.33C82.0482 1831.1 83.2705 1831.49 84.7294 1831.49ZM108.256 1834.15V1811.44H111.627V1814.99H111.923C112.396 1813.78 113.16 1812.84 114.215 1812.17C115.27 1811.49 116.536 1811.15 118.015 1811.15C119.513 1811.15 120.76 1811.49 121.756 1812.17C122.761 1812.84 123.545 1813.78 124.107 1814.99H124.343C124.925 1813.82 125.797 1812.89 126.961 1812.19C128.124 1811.5 129.519 1811.15 131.145 1811.15C133.176 1811.15 134.837 1811.78 136.128 1813.05C137.419 1814.32 138.065 1816.28 138.065 1818.95V1834.15H134.576V1818.95C134.576 1817.28 134.117 1816.08 133.2 1815.36C132.284 1814.64 131.204 1814.28 129.962 1814.28C128.365 1814.28 127.128 1814.76 126.251 1815.73C125.373 1816.68 124.935 1817.9 124.935 1819.36V1834.15H121.386V1818.6C121.386 1817.31 120.967 1816.27 120.129 1815.48C119.291 1814.68 118.212 1814.28 116.891 1814.28C115.984 1814.28 115.136 1814.52 114.348 1815C113.569 1815.49 112.938 1816.16 112.455 1817.02C111.982 1817.86 111.745 1818.84 111.745 1819.96V1834.15H108.256ZM143.382 1842.66C142.79 1842.66 142.263 1842.61 141.799 1842.51C141.336 1842.43 141.016 1842.34 140.838 1842.25L141.725 1839.17C142.573 1839.39 143.322 1839.47 143.973 1839.41C144.624 1839.35 145.2 1839.06 145.703 1838.54C146.216 1838.03 146.684 1837.19 147.108 1836.04L147.758 1834.26L139.36 1811.44H143.145L149.414 1829.53H149.651L155.92 1811.44H159.706L150.065 1837.46C149.631 1838.63 149.094 1839.6 148.453 1840.37C147.812 1841.15 147.068 1841.73 146.221 1842.1C145.383 1842.47 144.436 1842.66 143.382 1842.66ZM177.901 1816.53L174.766 1817.41C174.569 1816.89 174.278 1816.38 173.894 1815.89C173.519 1815.39 173.007 1814.98 172.356 1814.65C171.705 1814.33 170.873 1814.16 169.857 1814.16C168.467 1814.16 167.309 1814.48 166.382 1815.12C165.466 1815.75 165.007 1816.56 165.007 1817.53C165.007 1818.4 165.323 1819.08 165.954 1819.59C166.584 1820.09 167.57 1820.51 168.911 1820.84L172.282 1821.67C174.313 1822.16 175.826 1822.92 176.821 1823.93C177.817 1824.94 178.315 1826.23 178.315 1827.82C178.315 1829.12 177.941 1830.28 177.191 1831.31C176.452 1832.33 175.417 1833.14 174.086 1833.73C172.755 1834.32 171.208 1834.62 169.443 1834.62C167.127 1834.62 165.209 1834.12 163.691 1833.11C162.173 1832.11 161.212 1830.64 160.808 1828.71L164.12 1827.88C164.436 1829.1 165.032 1830.02 165.909 1830.63C166.796 1831.24 167.955 1831.55 169.384 1831.55C171.011 1831.55 172.302 1831.2 173.258 1830.51C174.224 1829.81 174.707 1828.97 174.707 1828C174.707 1827.21 174.431 1826.55 173.879 1826.02C173.327 1825.48 172.479 1825.07 171.336 1824.8L167.55 1823.92C165.471 1823.43 163.943 1822.66 162.967 1821.63C162.001 1820.58 161.518 1819.28 161.518 1817.71C161.518 1816.43 161.877 1815.3 162.597 1814.31C163.326 1813.32 164.317 1812.55 165.569 1811.99C166.831 1811.43 168.26 1811.15 169.857 1811.15C172.105 1811.15 173.869 1811.64 175.151 1812.62C176.442 1813.61 177.359 1814.91 177.901 1816.53ZM190.592 1834.62C188.404 1834.62 186.516 1834.14 184.929 1833.17C183.352 1832.2 182.134 1830.84 181.277 1829.09C180.429 1827.34 180.005 1825.3 180.005 1822.97C180.005 1820.65 180.429 1818.6 181.277 1816.82C182.134 1815.04 183.327 1813.65 184.855 1812.66C186.393 1811.65 188.187 1811.15 190.237 1811.15C191.42 1811.15 192.588 1811.34 193.742 1811.74C194.895 1812.13 195.945 1812.77 196.891 1813.66C197.838 1814.54 198.591 1815.7 199.153 1817.15C199.715 1818.6 199.996 1820.38 199.996 1822.5V1823.98H182.489V1820.96H196.448C196.448 1819.68 196.191 1818.54 195.679 1817.53C195.176 1816.53 194.456 1815.73 193.52 1815.15C192.593 1814.57 191.499 1814.28 190.237 1814.28C188.847 1814.28 187.645 1814.62 186.629 1815.31C185.624 1816 184.85 1816.88 184.308 1817.98C183.766 1819.07 183.495 1820.24 183.495 1821.49V1823.5C183.495 1825.22 183.79 1826.67 184.382 1827.86C184.983 1829.05 185.816 1829.95 186.881 1830.57C187.945 1831.18 189.182 1831.49 190.592 1831.49C191.509 1831.49 192.337 1831.36 193.076 1831.1C193.825 1830.84 194.471 1830.44 195.013 1829.92C195.555 1829.39 195.974 1828.73 196.27 1827.94L199.641 1828.88C199.287 1830.03 198.69 1831.03 197.852 1831.9C197.014 1832.76 195.979 1833.43 194.747 1833.91C193.515 1834.38 192.13 1834.62 190.592 1834.62ZM206.296 1803.87V1834.15H202.806V1803.87H206.296ZM220.303 1811.44V1814.4H208.06V1811.44H220.303ZM211.727 1834.15V1808.31C211.727 1807.01 212.032 1805.92 212.643 1805.06C213.255 1804.19 214.048 1803.54 215.024 1803.1C216 1802.67 217.03 1802.45 218.114 1802.45C218.972 1802.45 219.672 1802.52 220.214 1802.66C220.756 1802.8 221.161 1802.93 221.427 1803.04L220.421 1806.06C220.244 1806 219.997 1805.93 219.682 1805.84C219.376 1805.75 218.972 1805.71 218.469 1805.71C217.316 1805.71 216.483 1806 215.97 1806.58C215.468 1807.16 215.216 1808.01 215.216 1809.14V1834.15H211.727ZM241.134 1834.62C239.084 1834.62 237.285 1834.13 235.737 1833.16C234.2 1832.18 232.997 1830.82 232.129 1829.06C231.272 1827.31 230.843 1825.26 230.843 1822.91C230.843 1820.55 231.272 1818.48 232.129 1816.72C232.997 1814.96 234.2 1813.59 235.737 1812.61C237.285 1811.64 239.084 1811.15 241.134 1811.15C243.185 1811.15 244.979 1811.64 246.517 1812.61C248.064 1813.59 249.267 1814.96 250.125 1816.72C250.992 1818.48 251.426 1820.55 251.426 1822.91C251.426 1825.26 250.992 1827.31 250.125 1829.06C249.267 1830.82 248.064 1832.18 246.517 1833.16C244.979 1834.13 243.185 1834.62 241.134 1834.62ZM241.134 1831.49C242.692 1831.49 243.973 1831.09 244.979 1830.29C245.984 1829.49 246.729 1828.44 247.212 1827.14C247.695 1825.84 247.936 1824.43 247.936 1822.91C247.936 1821.39 247.695 1819.98 247.212 1818.67C246.729 1817.36 245.984 1816.3 244.979 1815.49C243.973 1814.68 242.692 1814.28 241.134 1814.28C239.577 1814.28 238.295 1814.68 237.29 1815.49C236.285 1816.3 235.54 1817.36 235.057 1818.67C234.574 1819.98 234.333 1821.39 234.333 1822.91C234.333 1824.43 234.574 1825.84 235.057 1827.14C235.54 1828.44 236.285 1829.49 237.29 1830.29C238.295 1831.09 239.577 1831.49 241.134 1831.49ZM257.744 1820.49V1834.15H254.254V1811.44H257.626V1814.99H257.921C258.454 1813.84 259.262 1812.91 260.345 1812.21C261.43 1811.5 262.83 1811.15 264.545 1811.15C266.083 1811.15 267.429 1811.46 268.582 1812.09C269.735 1812.71 270.632 1813.66 271.273 1814.93C271.915 1816.19 272.236 1817.79 272.236 1819.72V1834.15H268.746V1819.96C268.746 1818.17 268.282 1816.78 267.356 1815.79C266.43 1814.78 265.157 1814.28 263.541 1814.28C262.427 1814.28 261.43 1814.52 260.553 1815C259.686 1815.49 259.001 1816.19 258.498 1817.12C257.995 1818.05 257.744 1819.17 257.744 1820.49ZM285.635 1834.62C283.447 1834.62 281.56 1834.14 279.972 1833.17C278.395 1832.2 277.177 1830.84 276.319 1829.09C275.473 1827.34 275.049 1825.3 275.049 1822.97C275.049 1820.65 275.473 1818.6 276.319 1816.82C277.177 1815.04 278.369 1813.65 279.897 1812.66C281.435 1811.65 283.231 1811.15 285.281 1811.15C286.463 1811.15 287.631 1811.34 288.784 1811.74C289.937 1812.13 290.988 1812.77 291.933 1813.66C292.88 1814.54 293.635 1815.7 294.197 1817.15C294.759 1818.6 295.04 1820.38 295.04 1822.5V1823.98H277.531V1820.96H291.491C291.491 1819.68 291.236 1818.54 290.723 1817.53C290.218 1816.53 289.5 1815.73 288.563 1815.15C287.637 1814.57 286.541 1814.28 285.281 1814.28C283.892 1814.28 282.687 1814.62 281.672 1815.31C280.667 1816 279.894 1816.88 279.351 1817.98C278.809 1819.07 278.539 1820.24 278.539 1821.49V1823.5C278.539 1825.22 278.833 1826.67 279.426 1827.86C280.027 1829.05 280.86 1829.95 281.924 1830.57C282.989 1831.18 284.225 1831.49 285.635 1831.49C286.551 1831.49 287.379 1831.36 288.121 1831.1C288.868 1830.84 289.516 1830.44 290.057 1829.92C290.598 1829.39 291.017 1828.73 291.314 1827.94L294.684 1828.88C294.33 1830.03 293.734 1831.03 292.896 1831.9C292.058 1832.76 291.022 1833.43 289.791 1833.91C288.558 1834.38 287.173 1834.62 285.635 1834.62ZM316.586 1834.62C314.397 1834.62 312.508 1834.14 310.92 1833.17C309.343 1832.2 308.128 1830.84 307.269 1829.09C306.421 1827.34 305.997 1825.3 305.997 1822.97C305.997 1820.65 306.421 1818.6 307.269 1816.82C308.128 1815.04 309.32 1813.65 310.847 1812.66C312.386 1811.65 314.179 1811.15 316.229 1811.15C317.413 1811.15 318.582 1811.34 319.735 1811.74C320.888 1812.13 321.936 1812.77 322.884 1813.66C323.831 1814.54 324.583 1815.7 325.145 1817.15C325.707 1818.6 325.988 1820.38 325.988 1822.5V1823.98H308.482V1820.96H322.441C322.441 1819.68 322.184 1818.54 321.671 1817.53C321.169 1816.53 320.448 1815.73 319.514 1815.15C318.584 1814.57 317.491 1814.28 316.229 1814.28C314.84 1814.28 313.637 1814.62 312.622 1815.31C311.615 1816 310.842 1816.88 310.301 1817.98C309.757 1819.07 309.486 1820.24 309.486 1821.49V1823.5C309.486 1825.22 309.783 1826.67 310.374 1827.86C310.975 1829.05 311.808 1829.95 312.872 1830.57C313.937 1831.18 315.175 1831.49 316.586 1831.49C317.502 1831.49 318.329 1831.36 319.069 1831.1C319.818 1830.84 320.463 1830.44 321.005 1829.92C321.549 1829.39 321.968 1828.73 322.262 1827.94L325.634 1828.88C325.278 1830.03 324.682 1831.03 323.844 1831.9C323.006 1832.76 321.973 1833.43 320.739 1833.91C319.508 1834.38 318.121 1834.62 316.586 1834.62ZM328.799 1842.66V1811.44H332.169V1815.05H332.583C332.84 1814.66 333.194 1814.15 333.65 1813.54C334.113 1812.92 334.771 1812.37 335.63 1811.89C336.497 1811.39 337.671 1811.15 339.149 1811.15C341.061 1811.15 342.748 1811.62 344.205 1812.58C345.665 1813.54 346.802 1814.89 347.622 1816.65C348.439 1818.4 348.848 1820.47 348.848 1822.85C348.848 1825.26 348.439 1827.34 347.622 1829.11C346.802 1830.86 345.67 1832.22 344.221 1833.19C342.771 1834.14 341.1 1834.62 339.209 1834.62C337.749 1834.62 336.58 1834.38 335.703 1833.89C334.826 1833.4 334.152 1832.85 333.678 1832.22C333.205 1831.59 332.84 1831.07 332.583 1830.66H332.289V1842.66H328.799ZM332.229 1822.79C332.229 1824.51 332.481 1826.02 332.984 1827.33C333.486 1828.63 334.22 1829.65 335.185 1830.39C336.153 1831.12 337.335 1831.49 338.735 1831.49C340.195 1831.49 341.413 1831.1 342.389 1830.33C343.372 1829.56 344.112 1828.51 344.606 1827.2C345.108 1825.88 345.361 1824.41 345.361 1822.79C345.361 1821.2 345.113 1819.76 344.619 1818.48C344.138 1817.19 343.404 1816.17 342.417 1815.42C341.441 1814.66 340.213 1814.28 338.735 1814.28C337.317 1814.28 336.122 1814.64 335.157 1815.36C334.191 1816.07 333.462 1817.06 332.968 1818.34C332.476 1819.62 332.229 1821.1 332.229 1822.79ZM351.674 1834.15V1811.44H355.164V1834.15H351.674ZM353.449 1807.66C352.767 1807.66 352.182 1807.43 351.69 1806.96C351.206 1806.5 350.964 1805.94 350.964 1805.29C350.964 1804.64 351.206 1804.09 351.69 1803.62C352.182 1803.16 352.767 1802.93 353.449 1802.93C354.128 1802.93 354.711 1803.16 355.193 1803.62C355.687 1804.09 355.932 1804.64 355.932 1805.29C355.932 1805.94 355.687 1806.5 355.193 1806.96C354.711 1807.43 354.128 1807.66 353.449 1807.66ZM375.145 1816.53L372.009 1817.41C371.812 1816.89 371.523 1816.38 371.138 1815.89C370.763 1815.39 370.25 1814.98 369.599 1814.65C368.949 1814.33 368.116 1814.16 367.101 1814.16C365.711 1814.16 364.553 1814.48 363.624 1815.12C362.708 1815.75 362.25 1816.56 362.25 1817.53C362.25 1818.4 362.565 1819.08 363.198 1819.59C363.827 1820.09 364.814 1820.51 366.154 1820.84L369.527 1821.67C371.557 1822.16 373.069 1822.92 374.065 1823.93C375.059 1824.94 375.559 1826.23 375.559 1827.82C375.559 1829.12 375.184 1830.28 374.435 1831.31C373.696 1832.33 372.66 1833.14 371.33 1833.73C369.998 1834.32 368.452 1834.62 366.687 1834.62C364.369 1834.62 362.453 1834.12 360.933 1833.11C359.416 1832.11 358.456 1830.64 358.05 1828.71L361.363 1827.88C361.678 1829.1 362.276 1830.02 363.153 1830.63C364.041 1831.24 365.199 1831.55 366.628 1831.55C368.254 1831.55 369.545 1831.2 370.503 1830.51C371.468 1829.81 371.949 1828.97 371.949 1828C371.949 1827.21 371.674 1826.55 371.122 1826.02C370.57 1825.48 369.722 1825.07 368.579 1824.8L364.793 1823.92C362.714 1823.43 361.186 1822.66 360.21 1821.63C359.245 1820.58 358.76 1819.28 358.76 1817.71C358.76 1816.43 359.12 1815.3 359.84 1814.31C360.569 1813.32 361.561 1812.55 362.812 1811.99C364.075 1811.43 365.503 1811.15 367.101 1811.15C369.347 1811.15 371.111 1811.64 372.394 1812.62C373.685 1813.61 374.601 1814.91 375.145 1816.53ZM387.541 1834.62C385.49 1834.62 383.689 1834.13 382.143 1833.16C380.605 1832.18 379.403 1830.82 378.534 1829.06C377.677 1827.31 377.248 1825.26 377.248 1822.91C377.248 1820.55 377.677 1818.48 378.534 1816.72C379.403 1814.96 380.605 1813.59 382.143 1812.61C383.689 1811.64 385.49 1811.15 387.541 1811.15C389.591 1811.15 391.384 1811.64 392.922 1812.61C394.471 1813.59 395.673 1814.96 396.529 1816.72C397.398 1818.48 397.83 1820.55 397.83 1822.91C397.83 1825.26 397.398 1827.31 396.529 1829.06C395.673 1830.82 394.471 1832.18 392.922 1833.16C391.384 1834.13 389.591 1834.62 387.541 1834.62ZM387.541 1831.49C389.097 1831.49 390.38 1831.09 391.384 1830.29C392.389 1829.49 393.133 1828.44 393.617 1827.14C394.099 1825.84 394.341 1824.43 394.341 1822.91C394.341 1821.39 394.099 1819.98 393.617 1818.67C393.133 1817.36 392.389 1816.3 391.384 1815.49C390.38 1814.68 389.097 1814.28 387.541 1814.28C385.982 1814.28 384.701 1814.68 383.694 1815.49C382.69 1816.3 381.945 1817.36 381.461 1818.67C380.98 1819.98 380.738 1821.39 380.738 1822.91C380.738 1824.43 380.98 1825.84 381.461 1827.14C381.945 1828.44 382.69 1829.49 383.694 1830.29C384.701 1831.09 385.982 1831.49 387.541 1831.49ZM409.234 1834.62C407.342 1834.62 405.672 1834.14 404.222 1833.19C402.775 1832.22 401.64 1830.86 400.823 1829.11C400.003 1827.34 399.595 1825.26 399.595 1822.85C399.595 1820.47 400.003 1818.4 400.823 1816.65C401.64 1814.89 402.778 1813.54 404.238 1812.58C405.698 1811.62 407.381 1811.15 409.294 1811.15C410.772 1811.15 411.941 1811.39 412.8 1811.89C413.666 1812.37 414.327 1812.92 414.78 1813.54C415.243 1814.15 415.602 1814.66 415.86 1815.05H416.157V1803.87H419.644V1834.15H416.274V1830.66H415.86C415.602 1831.07 415.238 1831.59 414.764 1832.22C414.293 1832.85 413.617 1833.4 412.74 1833.89C411.863 1834.38 410.694 1834.62 409.234 1834.62ZM409.708 1831.49C411.108 1831.49 412.292 1831.12 413.258 1830.39C414.223 1829.65 414.957 1828.63 415.462 1827.33C415.964 1826.02 416.214 1824.51 416.214 1822.79C416.214 1821.1 415.969 1819.62 415.475 1818.34C414.983 1817.06 414.254 1816.07 413.286 1815.36C412.321 1814.64 411.129 1814.28 409.708 1814.28C408.23 1814.28 406.999 1814.66 406.012 1815.42C405.037 1816.17 404.303 1817.19 403.808 1818.48C403.327 1819.76 403.085 1821.2 403.085 1822.79C403.085 1824.41 403.332 1825.88 403.824 1827.2C404.326 1828.51 405.065 1829.56 406.041 1830.33C407.027 1831.1 408.251 1831.49 409.708 1831.49ZM433.546 1834.62C431.357 1834.62 429.468 1834.14 427.883 1833.17C426.303 1832.2 425.088 1830.84 424.229 1829.09C423.381 1827.34 422.957 1825.3 422.957 1822.97C422.957 1820.65 423.381 1818.6 424.229 1816.82C425.088 1815.04 426.28 1813.65 427.808 1812.66C429.346 1811.65 431.139 1811.15 433.189 1811.15C434.374 1811.15 435.542 1811.34 436.695 1811.74C437.848 1812.13 438.897 1812.77 439.844 1813.66C440.791 1814.54 441.546 1815.7 442.105 1817.15C442.667 1818.6 442.948 1820.38 442.948 1822.5V1823.98H425.442V1820.96H439.401C439.401 1819.68 439.144 1818.54 438.631 1817.53C438.129 1816.53 437.408 1815.73 436.474 1815.15C435.547 1814.57 434.452 1814.28 433.189 1814.28C431.8 1814.28 430.597 1814.62 429.582 1815.31C428.578 1816 427.802 1816.88 427.261 1817.98C426.72 1819.07 426.447 1820.24 426.447 1821.49V1823.5C426.447 1825.22 426.743 1826.67 427.334 1827.86C427.935 1829.05 428.768 1829.95 429.835 1830.57C430.899 1831.18 432.135 1831.49 433.546 1831.49C434.462 1831.49 435.29 1831.36 436.029 1831.1C436.778 1830.84 437.424 1830.44 437.967 1829.92C438.509 1829.39 438.928 1828.73 439.222 1827.94L442.595 1828.88C442.241 1830.03 441.642 1831.03 440.804 1831.9C439.966 1832.76 438.933 1833.43 437.699 1833.91C436.468 1834.38 435.084 1834.62 433.546 1834.62Z"
+ fill="#E6E6E6"
+ />
+ <path
+ d="M42.9097 1883.58L47.2568 1857.09H50.362L46.0149 1883.58H42.9097ZM30.916 1876.49L31.4206 1873.39H51.5005L50.9959 1876.49H30.916ZM33.5942 1883.58L37.9415 1857.09H41.0467L36.6993 1883.58H33.5942ZM32.4556 1867.28L32.9602 1864.18H53.0401L52.5358 1867.28H32.4556ZM66.1656 1883.94C64.3112 1883.94 62.6724 1883.62 61.2492 1882.98C59.8348 1882.35 58.7264 1881.47 57.9241 1880.35C57.122 1879.23 56.7251 1877.95 56.7337 1876.52C56.7251 1875.4 56.9539 1874.37 57.4195 1873.43C57.8939 1872.48 58.5364 1871.69 59.3473 1871.06C60.1582 1870.42 61.0639 1870.02 62.0642 1869.84V1869.69C60.7446 1869.37 59.688 1868.66 58.8945 1867.57C58.101 1866.47 57.7086 1865.21 57.7172 1863.79C57.7086 1862.44 58.0664 1861.23 58.7909 1860.17C59.524 1859.1 60.5291 1858.26 61.8056 1857.65C63.082 1857.04 64.5355 1856.73 66.1656 1856.73C67.7786 1856.73 69.219 1857.04 70.4869 1857.66C71.7637 1858.27 72.7685 1859.11 73.5016 1860.18C74.2347 1861.24 74.6058 1862.44 74.6144 1863.79C74.6058 1865.21 74.2003 1866.47 73.398 1867.57C72.5959 1868.66 71.5524 1869.37 70.267 1869.69V1869.84C71.2591 1870.02 72.1517 1870.42 72.9452 1871.06C73.7475 1871.69 74.3856 1872.48 74.86 1873.43C75.343 1874.37 75.589 1875.4 75.5975 1876.52C75.589 1877.95 75.1835 1879.23 74.3814 1880.35C73.5791 1881.47 72.4666 1882.35 71.0433 1882.98C69.6289 1883.62 68.0029 1883.94 66.1656 1883.94ZM66.1656 1880.67C67.2613 1880.67 68.2098 1880.49 69.0122 1880.13C69.8142 1879.76 70.4354 1879.24 70.8752 1878.59C71.315 1877.92 71.5394 1877.15 71.5479 1876.26C71.5394 1875.34 71.2978 1874.52 70.8234 1873.81C70.3576 1873.11 69.7237 1872.55 68.9216 1872.15C68.1193 1871.74 67.2009 1871.54 66.1656 1871.54C65.1221 1871.54 64.1948 1871.74 63.3839 1872.15C62.5733 1872.55 61.9349 1873.11 61.4691 1873.81C61.0035 1874.52 60.7747 1875.34 60.7833 1876.26C60.7747 1877.15 60.9861 1877.92 61.4175 1878.59C61.8574 1879.24 62.4827 1879.76 63.2934 1880.13C64.1043 1880.49 65.0617 1880.67 66.1656 1880.67ZM66.1656 1868.34C67.0455 1868.34 67.826 1868.17 68.5075 1867.81C69.1889 1867.46 69.7237 1866.97 70.1119 1866.34C70.5085 1865.71 70.7113 1864.97 70.7199 1864.13C70.7113 1863.3 70.513 1862.57 70.1247 1861.96C69.7453 1861.33 69.2149 1860.86 68.5333 1860.52C67.852 1860.17 67.0627 1860 66.1656 1860C65.2514 1860 64.4493 1860.17 63.7592 1860.52C63.0779 1860.86 62.5472 1861.33 62.1678 1861.96C61.7884 1862.57 61.6028 1863.3 61.6114 1864.13C61.6028 1864.97 61.7926 1865.71 62.1808 1866.34C62.5689 1866.97 63.1036 1867.46 63.7852 1867.81C64.4751 1868.17 65.2686 1868.34 66.1656 1868.34ZM85.246 1871.78V1883.58H81.3775V1857.09H85.1942V1866.95H85.4401C85.9057 1865.88 86.6174 1865.03 87.5749 1864.4C88.5323 1863.77 89.783 1863.45 91.3268 1863.45C92.6896 1863.45 93.88 1863.74 94.8978 1864.29C95.9242 1864.86 96.7177 1865.69 97.2785 1866.81C97.8476 1867.91 98.1323 1869.29 98.1323 1870.94C98.1323 1872.6 98.1323 1883.58 98.1323 1883.58H94.2638V1871.41C94.2638 1869.95 93.8886 1868.82 93.1383 1868.02C92.3878 1867.21 91.3442 1866.81 90.0071 1866.81C89.0929 1866.81 88.2734 1867 87.5488 1867.39C86.8329 1867.78 86.2679 1868.34 85.8539 1869.09C85.4487 1869.84 85.246 1870.73 85.246 1871.78ZM112.759 1883.98C110.896 1883.98 109.27 1883.55 107.881 1882.7C106.492 1881.85 105.414 1880.65 104.646 1879.12C103.879 1877.58 103.495 1875.79 103.495 1873.74C103.495 1871.68 103.879 1869.87 104.646 1868.33C105.414 1866.79 106.492 1865.59 107.881 1864.73C109.27 1863.88 110.896 1863.45 112.759 1863.45C114.622 1863.45 116.247 1863.88 117.636 1864.73C119.025 1865.59 120.103 1866.79 120.871 1868.33C121.638 1869.87 122.022 1871.68 122.022 1873.74C122.022 1875.79 121.638 1877.58 120.871 1879.12C120.103 1880.65 119.025 1881.85 117.636 1882.7C116.247 1883.55 114.622 1883.98 112.759 1883.98ZM112.771 1880.73C113.979 1880.73 114.98 1880.42 115.773 1879.78C116.567 1879.14 117.153 1878.29 117.533 1877.23C117.921 1876.17 118.115 1875 118.115 1873.73C118.115 1872.46 117.921 1871.29 117.533 1870.23C117.153 1869.16 116.567 1868.31 115.773 1867.66C114.98 1867.01 113.979 1866.69 112.771 1866.69C111.555 1866.69 110.546 1867.01 109.744 1867.66C108.951 1868.31 108.36 1869.16 107.972 1870.23C107.592 1871.29 107.402 1872.46 107.402 1873.73C107.402 1875 107.592 1876.17 107.972 1877.23C108.36 1878.29 108.951 1879.14 109.744 1879.78C110.546 1880.42 111.555 1880.73 112.771 1880.73ZM140.022 1875.34V1863.71H143.903V1883.58H140.1V1880.14H139.893C139.436 1881.2 138.703 1882.08 137.693 1882.79C136.693 1883.49 135.446 1883.84 133.954 1883.84C132.677 1883.84 131.548 1883.56 130.564 1883C129.59 1882.43 128.822 1881.59 128.261 1880.48C127.709 1879.36 127.433 1877.99 127.433 1876.35V1863.71H131.302V1875.88C131.302 1877.24 131.677 1878.32 132.427 1879.12C133.178 1879.92 134.153 1880.32 135.351 1880.32C136.076 1880.32 136.796 1880.14 137.512 1879.78C138.237 1879.42 138.836 1878.87 139.31 1878.14C139.793 1877.4 140.031 1876.47 140.022 1875.34ZM150.195 1883.58V1863.71H153.934V1866.87H154.141C154.503 1865.8 155.141 1864.96 156.055 1864.35C156.978 1863.73 158.022 1863.42 159.186 1863.42C159.428 1863.42 159.713 1863.43 160.04 1863.44C160.377 1863.46 160.64 1863.48 160.83 1863.51V1867.21C160.674 1867.16 160.398 1867.11 160.001 1867.06C159.605 1867 159.208 1866.97 158.811 1866.97C157.897 1866.97 157.082 1867.17 156.366 1867.55C155.659 1867.93 155.098 1868.46 154.684 1869.15C154.27 1869.82 154.063 1870.59 154.063 1871.45V1883.58H150.195ZM180.162 1868.56L176.656 1869.19C176.509 1868.74 176.276 1868.31 175.957 1867.9C175.647 1867.5 175.224 1867.17 174.689 1866.91C174.154 1866.65 173.486 1866.52 172.684 1866.52C171.588 1866.52 170.674 1866.77 169.941 1867.26C169.208 1867.74 168.841 1868.37 168.841 1869.13C168.841 1869.8 169.087 1870.33 169.579 1870.74C170.07 1871.14 170.864 1871.47 171.959 1871.73L175.116 1872.46C176.945 1872.88 178.308 1873.53 179.205 1874.41C180.102 1875.29 180.55 1876.43 180.55 1877.84C180.55 1879.03 180.205 1880.09 179.515 1881.02C178.834 1881.94 177.881 1882.67 176.656 1883.19C175.44 1883.72 174.029 1883.98 172.425 1883.98C170.2 1883.98 168.384 1883.51 166.978 1882.56C165.572 1881.6 164.71 1880.24 164.39 1878.48L168.13 1877.91C168.362 1878.89 168.841 1879.63 169.566 1880.13C170.29 1880.62 171.235 1880.86 172.399 1880.86C173.667 1880.86 174.681 1880.6 175.44 1880.08C176.199 1879.54 176.578 1878.89 176.578 1878.12C176.578 1877.5 176.345 1876.98 175.88 1876.56C175.423 1876.13 174.719 1875.81 173.771 1875.6L170.407 1874.86C168.552 1874.44 167.181 1873.77 166.293 1872.85C165.413 1871.92 164.973 1870.75 164.973 1869.34C164.973 1868.17 165.3 1867.14 165.956 1866.26C166.612 1865.38 167.517 1864.7 168.673 1864.21C169.829 1863.7 171.153 1863.45 172.645 1863.45C174.793 1863.45 176.483 1863.92 177.717 1864.85C178.95 1865.77 179.765 1867.01 180.162 1868.56ZM189.765 1857.09V1883.58H185.897V1857.09H189.765ZM201.846 1884.02C200.587 1884.02 199.448 1883.79 198.43 1883.32C197.412 1882.85 196.606 1882.16 196.011 1881.26C195.424 1880.37 195.131 1879.27 195.131 1877.97C195.131 1876.84 195.347 1875.92 195.778 1875.2C196.209 1874.47 196.791 1873.9 197.525 1873.48C198.258 1873.06 199.077 1872.74 199.983 1872.52C200.888 1872.3 201.811 1872.14 202.751 1872.03C203.942 1871.89 204.908 1871.78 205.65 1871.69C206.391 1871.6 206.93 1871.45 207.267 1871.24C207.603 1871.04 207.772 1870.7 207.772 1870.23V1870.14C207.772 1869.01 207.452 1868.14 206.814 1867.52C206.184 1866.9 205.244 1866.58 203.994 1866.58C202.691 1866.58 201.665 1866.87 200.914 1867.45C200.172 1868.02 199.659 1868.65 199.375 1869.35L195.739 1868.52C196.17 1867.32 196.8 1866.34 197.628 1865.6C198.465 1864.85 199.426 1864.31 200.513 1863.97C201.6 1863.63 202.743 1863.45 203.942 1863.45C204.735 1863.45 205.576 1863.55 206.465 1863.74C207.362 1863.92 208.199 1864.26 208.975 1864.75C209.76 1865.24 210.402 1865.94 210.902 1866.86C211.403 1867.76 211.653 1868.94 211.653 1870.39V1883.58H207.875V1880.86H207.72C207.47 1881.36 207.094 1881.86 206.594 1882.34C206.094 1882.82 205.451 1883.22 204.666 1883.54C203.881 1883.86 202.941 1884.02 201.846 1884.02ZM202.687 1880.92C203.756 1880.92 204.671 1880.71 205.43 1880.28C206.197 1879.86 206.779 1879.31 207.176 1878.63C207.582 1877.94 207.785 1877.2 207.785 1876.42V1873.85C207.646 1873.99 207.379 1874.12 206.982 1874.24C206.594 1874.36 206.15 1874.45 205.65 1874.54C205.149 1874.62 204.662 1874.69 204.188 1874.76C203.713 1874.82 203.316 1874.87 202.997 1874.91C202.247 1875.01 201.561 1875.17 200.94 1875.39C200.328 1875.62 199.836 1875.94 199.465 1876.36C199.103 1876.78 198.922 1877.33 198.922 1878.02C198.922 1878.98 199.275 1879.7 199.983 1880.19C200.69 1880.67 201.591 1880.92 202.687 1880.92ZM226.464 1883.98C224.506 1883.98 222.819 1883.56 221.405 1882.73C219.999 1881.88 218.912 1880.7 218.144 1879.17C217.385 1877.64 217.006 1875.84 217.006 1873.78C217.006 1871.74 217.385 1869.95 218.144 1868.39C218.912 1866.84 219.982 1865.63 221.353 1864.76C222.733 1863.89 224.346 1863.45 226.192 1863.45C227.313 1863.45 228.4 1863.64 229.452 1864.01C230.505 1864.38 231.449 1864.96 232.286 1865.76C233.122 1866.55 233.782 1867.58 234.265 1868.85C234.748 1870.11 234.99 1871.64 234.99 1873.44V1874.81H219.192V1871.91H231.199C231.199 1870.9 230.992 1869.99 230.578 1869.21C230.164 1868.42 229.582 1867.79 228.831 1867.34C228.09 1866.88 227.218 1866.65 226.218 1866.65C225.131 1866.65 224.182 1866.92 223.371 1867.45C222.569 1867.98 221.948 1868.67 221.508 1869.52C221.077 1870.37 220.861 1871.29 220.861 1872.28V1874.54C220.861 1875.87 221.094 1877 221.56 1877.93C222.035 1878.86 222.694 1879.57 223.54 1880.06C224.385 1880.54 225.372 1880.79 226.502 1880.79C227.235 1880.79 227.904 1880.68 228.508 1880.48C229.112 1880.26 229.633 1879.94 230.073 1879.52C230.513 1879.1 230.85 1878.57 231.083 1877.95L234.744 1878.61C234.451 1879.69 233.924 1880.64 233.166 1881.45C232.415 1882.25 231.471 1882.87 230.332 1883.32C229.202 1883.76 227.913 1883.98 226.464 1883.98ZM240.375 1883.58V1863.71H244.114V1866.87H244.321C244.683 1865.8 245.322 1864.96 246.236 1864.35C247.159 1863.73 248.203 1863.42 249.367 1863.42C249.609 1863.42 249.893 1863.43 250.221 1863.44C250.557 1863.46 250.82 1863.48 251.01 1863.51V1867.21C250.855 1867.16 250.579 1867.11 250.182 1867.06C249.785 1867 249.388 1866.97 248.992 1866.97C248.078 1866.97 247.262 1867.17 246.546 1867.55C245.839 1867.93 245.278 1868.46 244.864 1869.15C244.451 1869.82 244.243 1870.59 244.243 1871.45V1883.58H240.375ZM276.123 1883.58L280.469 1857.09H283.574L279.228 1883.58H276.123ZM264.129 1876.49L264.634 1873.39H284.714L284.209 1876.49H264.129ZM266.807 1883.58L271.155 1857.09H274.26L269.911 1883.58H266.807ZM265.669 1867.28L266.174 1864.18H286.252L285.75 1867.28H265.669ZM294.345 1871.78V1883.58H290.478V1863.71H294.189V1866.95H294.436C294.894 1865.89 295.61 1865.05 296.583 1864.41C297.567 1863.77 298.806 1863.45 300.297 1863.45C301.65 1863.45 302.837 1863.74 303.855 1864.31C304.872 1864.87 305.663 1865.7 306.223 1866.82C306.782 1867.93 307.063 1869.31 307.063 1870.94V1883.58H303.196V1871.41C303.196 1869.97 302.819 1868.84 302.069 1868.03C301.32 1867.21 300.289 1866.81 298.978 1866.81C298.08 1866.81 297.283 1867 296.583 1867.39C295.894 1867.78 295.347 1868.34 294.941 1869.09C294.543 1869.84 294.345 1870.73 294.345 1871.78ZM321.91 1883.98C319.953 1883.98 318.267 1883.56 316.851 1882.73C315.446 1881.88 314.358 1880.7 313.59 1879.17C312.833 1877.64 312.453 1875.84 312.453 1873.78C312.453 1871.74 312.833 1869.95 313.59 1868.39C314.358 1866.84 315.427 1865.63 316.799 1864.76C318.178 1863.89 319.792 1863.45 321.639 1863.45C322.758 1863.45 323.846 1863.64 324.898 1864.01C325.952 1864.38 326.896 1864.96 327.732 1865.76C328.57 1866.55 329.228 1867.58 329.712 1868.85C330.194 1870.11 330.436 1871.64 330.436 1873.44V1874.81H314.639V1871.91H326.646C326.646 1870.9 326.438 1869.99 326.024 1869.21C325.611 1868.42 325.028 1867.79 324.278 1867.34C323.537 1866.88 322.665 1866.65 321.665 1866.65C320.578 1866.65 319.628 1866.92 318.818 1867.45C318.017 1867.98 317.395 1868.67 316.955 1869.52C316.523 1870.37 316.307 1871.29 316.307 1872.28V1874.54C316.307 1875.87 316.541 1877 317.007 1877.93C317.481 1878.86 318.142 1879.57 318.985 1880.06C319.831 1880.54 320.82 1880.79 321.949 1880.79C322.683 1880.79 323.349 1880.68 323.953 1880.48C324.557 1880.26 325.08 1879.94 325.52 1879.52C325.959 1879.1 326.295 1878.57 326.529 1877.95L330.191 1878.61C329.897 1879.69 329.371 1880.64 328.611 1881.45C327.862 1882.25 326.917 1882.87 325.777 1883.32C324.648 1883.76 323.36 1883.98 321.91 1883.98ZM345.097 1863.71V1866.82H334.243V1863.71H345.097ZM337.155 1858.95H341.022V1877.75C341.022 1878.5 341.134 1879.06 341.358 1879.44C341.584 1879.81 341.873 1880.07 342.227 1880.2C342.589 1880.33 342.982 1880.4 343.403 1880.4C343.713 1880.4 343.986 1880.38 344.218 1880.33C344.452 1880.29 344.632 1880.26 344.762 1880.23L345.459 1883.42C345.235 1883.51 344.918 1883.6 344.504 1883.68C344.088 1883.78 343.572 1883.83 342.951 1883.84C341.933 1883.86 340.983 1883.67 340.103 1883.3C339.224 1882.92 338.513 1882.33 337.969 1881.54C337.426 1880.74 337.155 1879.75 337.155 1878.55V1858.95ZM359.929 1863.71V1866.82H348.697V1863.71H359.929ZM351.778 1883.58V1861.41C351.778 1860.17 352.049 1859.14 352.592 1858.32C353.136 1857.49 353.855 1856.87 354.752 1856.47C355.65 1856.06 356.624 1855.85 357.678 1855.85C358.453 1855.85 359.117 1855.91 359.668 1856.04C360.22 1856.16 360.631 1856.28 360.899 1856.38L359.994 1859.51C359.812 1859.46 359.58 1859.4 359.294 1859.33C359.01 1859.25 358.664 1859.21 358.258 1859.21C357.318 1859.21 356.647 1859.44 356.241 1859.91C355.843 1860.38 355.645 1861.05 355.645 1861.93V1883.58H351.778ZM368.881 1857.09V1883.58H365.014V1857.09H368.881ZM375.179 1883.58V1863.71H379.046V1883.58H375.179ZM377.133 1860.65C376.459 1860.65 375.881 1860.42 375.397 1859.98C374.924 1859.52 374.687 1858.97 374.687 1858.34C374.687 1857.71 374.924 1857.16 375.397 1856.72C375.881 1856.26 376.459 1856.03 377.133 1856.03C377.805 1856.03 378.377 1856.26 378.853 1856.72C379.335 1857.16 379.577 1857.71 379.577 1858.34C379.577 1858.97 379.335 1859.52 378.853 1859.98C378.377 1860.42 377.805 1860.65 377.133 1860.65ZM388.396 1863.71L392.784 1871.45L397.208 1863.71H401.44L395.241 1873.65L401.492 1883.58H397.26L392.784 1876.16L388.321 1883.58H384.076L390.26 1873.65L384.154 1863.71H388.396ZM427.175 1883.58L431.523 1857.09H434.628L430.282 1883.58H427.175ZM415.183 1876.49L415.688 1873.39H435.768L435.263 1876.49H415.183ZM417.861 1883.58L422.207 1857.09H425.311L420.965 1883.58H417.861ZM416.721 1867.28L417.226 1864.18H437.306L436.801 1867.28H416.721ZM445.4 1857.09V1883.58H441.53V1857.09H445.4ZM451.697 1883.58V1863.71H455.564V1883.58H451.697ZM453.649 1860.65C452.978 1860.65 452.4 1860.42 451.916 1859.98C451.442 1859.52 451.205 1858.97 451.205 1858.34C451.205 1857.71 451.442 1857.16 451.916 1856.72C452.4 1856.26 452.978 1856.03 453.649 1856.03C454.323 1856.03 454.896 1856.26 455.372 1856.72C455.853 1857.16 456.095 1857.71 456.095 1858.34C456.095 1858.97 455.853 1859.52 455.372 1859.98C454.896 1860.42 454.323 1860.65 453.649 1860.65ZM470.427 1883.98C468.47 1883.98 466.784 1883.56 465.368 1882.73C463.962 1881.88 462.875 1880.7 462.107 1879.17C461.35 1877.64 460.97 1875.84 460.97 1873.78C460.97 1871.74 461.35 1869.95 462.107 1868.39C462.875 1866.84 463.944 1865.63 465.316 1864.76C466.698 1863.89 468.309 1863.45 470.156 1863.45C471.278 1863.45 472.363 1863.64 473.417 1864.01C474.468 1864.38 475.413 1864.96 476.248 1865.76C477.086 1866.55 477.745 1867.58 478.229 1868.85C478.713 1870.11 478.952 1871.64 478.952 1873.44V1874.81H463.156V1871.91H475.163C475.163 1870.9 474.955 1869.99 474.541 1869.21C474.127 1868.42 473.545 1867.79 472.795 1867.34C472.053 1866.88 471.182 1866.65 470.182 1866.65C469.094 1866.65 468.145 1866.92 467.335 1867.45C466.534 1867.98 465.912 1868.67 465.472 1869.52C465.04 1870.37 464.824 1871.29 464.824 1872.28V1874.54C464.824 1875.87 465.058 1877 465.524 1877.93C465.998 1878.86 466.659 1879.57 467.504 1880.06C468.348 1880.54 469.336 1880.79 470.466 1880.79C471.2 1880.79 471.869 1880.68 472.472 1880.48C473.076 1880.26 473.597 1879.94 474.036 1879.52C474.476 1879.1 474.812 1878.57 475.046 1877.95L478.708 1878.61C478.414 1879.69 477.888 1880.64 477.128 1881.45C476.379 1882.25 475.434 1882.87 474.297 1883.32C473.165 1883.76 471.876 1883.98 470.427 1883.98ZM499.23 1868.56L495.725 1869.19C495.577 1868.74 495.345 1868.31 495.025 1867.9C494.715 1867.5 494.294 1867.17 493.757 1866.91C493.224 1866.65 492.555 1866.52 491.751 1866.52C490.658 1866.52 489.742 1866.77 489.008 1867.26C488.277 1867.74 487.91 1868.37 487.91 1869.13C487.91 1869.8 488.154 1870.33 488.646 1870.74C489.138 1871.14 489.932 1871.47 491.028 1871.73L494.184 1872.46C496.014 1872.88 497.375 1873.53 498.273 1874.41C499.17 1875.29 499.618 1876.43 499.618 1877.84C499.618 1879.03 499.275 1880.09 498.582 1881.02C497.903 1881.94 496.948 1882.67 495.725 1883.19C494.507 1883.72 493.096 1883.98 491.493 1883.98C489.268 1883.98 487.452 1883.51 486.047 1882.56C484.641 1881.6 483.777 1880.24 483.46 1878.48L487.197 1877.91C487.431 1878.89 487.91 1879.63 488.633 1880.13C489.359 1880.62 490.304 1880.86 491.467 1880.86C492.735 1880.86 493.75 1880.6 494.507 1880.08C495.267 1879.54 495.647 1878.89 495.647 1878.12C495.647 1877.5 495.413 1876.98 494.947 1876.56C494.491 1876.13 493.789 1875.81 492.839 1875.6L489.474 1874.86C487.621 1874.44 486.249 1873.77 485.359 1872.85C484.48 1871.92 484.04 1870.75 484.04 1869.34C484.04 1868.17 484.368 1867.14 485.024 1866.26C485.68 1865.38 486.585 1864.7 487.741 1864.21C488.896 1863.7 490.221 1863.45 491.715 1863.45C493.862 1863.45 495.551 1863.92 496.784 1864.85C498.018 1865.77 498.835 1867.01 499.23 1868.56Z"
+ fill="#BFBFBF"
+ />
+ <path
+ d="M994.565 1876.06C1023.31 1876.06 1046.61 1852.77 1046.61 1824.03C1046.61 1795.3 1023.31 1772 994.565 1772C965.819 1772 942.517 1795.3 942.517 1824.03C942.517 1852.77 965.819 1876.06 994.565 1876.06Z"
+ fill="#9D9D9D"
+ />
+ <path
+ d="M993.253 1599C997.49 1599.08 997.139 1599.29 997.139 1599.29L1006.1 1608.39L1011.97 1614.36C1020.55 1623.53 1022.53 1625.45 1029.01 1633.37C1026.99 1640.66 1022.2 1644.73 1016.89 1649.79L1014.55 1651.94L1010.41 1655.85L1006.99 1659.15L1002.3 1663.47C1002.3 1663.47 998.357 1667.12 995.939 1669.04C995.939 1669.04 993.43 1669.56 992.056 1668.18C991.957 1665.4 991.762 1660.81 991.793 1658.04C991.806 1656.52 991.817 1655 991.83 1653.43C991.845 1652.26 991.861 1651.08 991.879 1649.87C976.944 1649.3 973.915 1650.07 961.179 1658.94C958.909 1658.79 958.084 1656.73 958.084 1656.73C956.677 1644.97 961.9 1637.63 968.499 1627.87C975.089 1620.72 982.393 1618.15 991.879 1616.87C991.861 1615.7 991.845 1614.52 991.83 1613.31C991.817 1611.79 991.806 1610.28 991.793 1608.71C991.778 1607.2 991.76 1605.68 991.744 1604.12C991.879 1600.37 991.879 1600.37 993.253 1599Z"
+ fill="white"
+ fillOpacity="0.9"
+ />
+ <g filter="url(#filter0_d_5_2)">
+ <path
+ d="M965.181 1685.31V1708.02H962.43V1688.19H962.298L956.752 1691.87V1689.08L962.43 1685.31H965.181ZM974.318 1704.91L974.141 1706.11C974.016 1706.95 973.824 1707.85 973.566 1708.82C973.314 1709.78 973.051 1710.68 972.778 1711.53C972.504 1712.38 972.278 1713.06 972.101 1713.56H970.105C970.201 1713.09 970.326 1712.46 970.482 1711.68C970.638 1710.91 970.792 1710.04 970.948 1709.08C971.109 1708.13 971.242 1707.15 971.346 1706.15L971.479 1704.91H974.318ZM985.764 1708.33C984.462 1708.33 983.291 1708.07 982.248 1707.55C981.207 1707.03 980.371 1706.32 979.742 1705.42C979.114 1704.52 978.771 1703.49 978.711 1702.34H981.373C981.475 1703.37 981.941 1704.22 982.768 1704.89C983.604 1705.56 984.603 1705.89 985.764 1705.89C986.695 1705.89 987.523 1705.67 988.249 1705.23C988.98 1704.8 989.553 1704.2 989.966 1703.44C990.388 1702.67 990.599 1701.8 990.599 1700.83C990.599 1699.84 990.38 1698.96 989.946 1698.18C989.516 1697.4 988.926 1696.78 988.171 1696.33C987.416 1695.88 986.555 1695.65 985.587 1695.64C984.892 1695.64 984.179 1695.74 983.445 1695.97C982.714 1696.18 982.112 1696.46 981.639 1696.8L979.065 1696.49L980.442 1685.31H992.241V1687.75H982.747L981.948 1694.45H982.081C982.547 1694.08 983.133 1693.77 983.835 1693.53C984.535 1693.28 985.269 1693.16 986.029 1693.16C987.419 1693.16 988.657 1693.49 989.745 1694.16C990.838 1694.82 991.697 1695.72 992.319 1696.86C992.946 1698.01 993.261 1699.32 993.261 1700.79C993.261 1702.24 992.936 1703.53 992.285 1704.67C991.642 1705.8 990.755 1706.69 989.623 1707.35C988.491 1708 987.205 1708.33 985.764 1708.33ZM1005.21 1708.33C1004.27 1708.31 1003.34 1708.13 1002.41 1707.8C1001.48 1707.45 1000.63 1706.88 999.861 1706.08C999.093 1705.26 998.476 1704.17 998.011 1702.78C997.545 1701.39 997.311 1699.65 997.311 1697.55C997.311 1695.54 997.5 1693.76 997.878 1692.21C998.253 1690.65 998.802 1689.34 999.517 1688.27C1000.24 1687.2 1001.1 1686.39 1002.11 1685.83C1003.13 1685.28 1004.28 1685 1005.56 1685C1006.83 1685 1007.96 1685.25 1008.96 1685.76C1009.95 1686.27 1010.77 1686.97 1011.39 1687.87C1012.02 1688.77 1012.43 1689.81 1012.62 1690.99H1009.91C1009.66 1689.97 1009.17 1689.12 1008.45 1688.45C1007.72 1687.78 1006.76 1687.44 1005.56 1687.44C1003.8 1687.44 1002.42 1688.21 1001.4 1689.73C1000.4 1691.26 999.892 1693.41 999.884 1696.18H1000.06C1000.48 1695.55 1000.97 1695.01 1001.54 1694.57C1002.11 1694.12 1002.75 1693.77 1003.44 1693.53C1004.14 1693.28 1004.87 1693.16 1005.65 1693.16C1006.95 1693.16 1008.14 1693.49 1009.22 1694.14C1010.3 1694.78 1011.17 1695.67 1011.82 1696.81C1012.47 1697.94 1012.79 1699.24 1012.79 1700.7C1012.79 1702.1 1012.48 1703.39 1011.85 1704.56C1011.22 1705.72 1010.34 1706.64 1009.2 1707.33C1008.07 1708.01 1006.74 1708.34 1005.21 1708.33ZM1005.21 1705.89C1006.14 1705.89 1006.97 1705.65 1007.71 1705.19C1008.46 1704.72 1009.05 1704.1 1009.48 1703.32C1009.91 1702.53 1010.13 1701.66 1010.13 1700.7C1010.13 1699.76 1009.92 1698.91 1009.5 1698.14C1009.08 1697.36 1008.51 1696.75 1007.78 1696.29C1007.06 1695.83 1006.23 1695.6 1005.29 1695.6C1004.59 1695.6 1003.94 1695.74 1003.33 1696.02C1002.73 1696.29 1002.2 1696.67 1001.73 1697.15C1001.28 1697.63 1000.93 1698.18 1000.67 1698.8C1000.41 1699.42 1000.28 1700.06 1000.28 1700.74C1000.28 1701.65 1000.49 1702.49 1000.91 1703.27C1001.34 1704.05 1001.93 1704.69 1002.67 1705.17C1003.41 1705.65 1004.26 1705.89 1005.21 1705.89ZM1017.86 1708.02L1028.02 1687.93V1687.75H1016.31V1685.31H1030.86V1687.88L1020.75 1708.02H1017.86Z"
+ fill="white"
+ />
+ </g>
+ <g filter="url(#filter1_d_5_2)">
+ <path
+ d="M962.448 1531.36V1529.1L972.429 1513.31H974.071V1516.81H972.962L965.42 1528.74V1528.92H978.862V1531.36H962.448ZM973.139 1536.02V1530.67V1529.62V1513.31H975.757V1536.02H973.139ZM983.903 1536.19C983.353 1536.19 982.885 1536 982.492 1535.61C982.102 1535.22 981.906 1534.74 981.906 1534.2C981.906 1533.65 982.102 1533.18 982.492 1532.79C982.885 1532.4 983.353 1532.2 983.903 1532.2C984.449 1532.2 984.917 1532.4 985.31 1532.79C985.701 1533.18 985.899 1533.65 985.899 1534.2C985.899 1534.56 985.805 1534.89 985.62 1535.2C985.443 1535.5 985.204 1535.74 984.899 1535.93C984.603 1536.11 984.272 1536.19 983.903 1536.19ZM990.549 1536.02V1534.02L998.047 1525.82C998.926 1524.86 999.65 1524.02 1000.22 1523.31C1000.79 1522.59 1001.21 1521.92 1001.48 1521.29C1001.77 1520.66 1001.91 1519.99 1001.91 1519.3C1001.91 1518.5 1001.71 1517.81 1001.33 1517.22C1000.95 1516.64 1000.44 1516.19 999.777 1515.87C999.119 1515.55 998.38 1515.4 997.557 1515.4C996.686 1515.4 995.926 1515.58 995.275 1515.94C994.63 1516.29 994.133 1516.79 993.776 1517.44C993.43 1518.08 993.256 1518.83 993.256 1519.7H990.638C990.638 1518.37 990.945 1517.2 991.559 1516.19C992.173 1515.19 993.008 1514.4 994.065 1513.84C995.129 1513.28 996.324 1513 997.648 1513C998.978 1513 1000.16 1513.28 1001.19 1513.84C1002.21 1514.4 1003.02 1515.16 1003.6 1516.12C1004.19 1517.07 1004.48 1518.13 1004.48 1519.3C1004.48 1520.13 1004.33 1520.95 1004.02 1521.75C1003.73 1522.54 1003.21 1523.42 1002.47 1524.4C1001.74 1525.37 1000.72 1526.55 999.421 1527.95L994.32 1533.4V1533.58H1004.88V1536.02H990.549ZM1009.86 1536.02V1513.31H1012.61V1524.57H1012.87L1023.08 1513.31H1026.67L1017.13 1523.55L1026.67 1536.02H1023.34L1015.45 1525.46L1012.61 1528.65V1536.02H1009.86Z"
+ fill="white"
+ />
+ </g>
+ <path
+ d="M981.641 1429.12C982.123 1429.11 982.123 1429.11 984.551 1429.1C986.581 1429.09 988.611 1429.09 990.638 1429.1C993.74 1429.11 996.837 1429.08 999.936 1429.04C1001.91 1429.04 1003.88 1429.04 1005.86 1429.04C1006.78 1429.03 1007.71 1429.02 1008.66 1429C1012.71 1429.05 1015.52 1429.46 1019.05 1431.36C1022.18 1436.32 1021.68 1441.07 1021.55 1446.73C1021.54 1447.91 1021.54 1449.09 1021.53 1450.32C1021.5 1454.09 1021.43 1457.86 1021.37 1461.64C1021.34 1464.2 1021.32 1466.76 1021.3 1469.32C1021.24 1475.6 1021.92 1482.55 1021.81 1488.83C1021.81 1488.83 1021.68 1493.31 1015.86 1490.58C1014.61 1489.71 1013.36 1488.85 1012.08 1487.96C1010.42 1486.83 1008.77 1485.69 1007.12 1484.56C1006.29 1483.99 1005.47 1483.42 1004.63 1482.83C1003.82 1482.29 1003.02 1481.74 1002.2 1481.18C1001.46 1480.67 1000.73 1480.17 999.975 1479.65C997.428 1478.23 995.489 1477.5 992.54 1477.18C989.516 1479.06 986.87 1480.93 984.116 1483.12C975.26 1490.05 972.994 1492.06 967.443 1491.21C967.443 1491.21 967.591 1486.92 967.565 1482.89C967.56 1482.35 967.56 1482.35 967.529 1479.6C967.529 1478.42 967.529 1477.25 967.531 1476.04C967.526 1474.83 967.521 1473.63 967.513 1472.38C967.508 1469.83 967.505 1467.28 967.51 1464.73C967.516 1460.82 967.484 1456.91 967.453 1453C967.45 1450.52 967.448 1448.05 967.451 1445.57C967.438 1444.4 967.424 1443.23 967.414 1442.02C967.422 1440.93 967.43 1439.84 967.437 1438.71C967.437 1437.75 967.437 1436.8 967.435 1435.81C968.827 1428.62 975.185 1429.09 981.641 1429.12Z"
+ fill="white"
+ fillOpacity="0.9"
+ />
+ <g filter="url(#filter2_d_5_2)">
+ <path
+ d="M963.428 1365.33C962.126 1365.33 960.955 1365.07 959.912 1364.55C958.871 1364.03 958.035 1363.32 957.406 1362.42C956.778 1361.52 956.435 1360.49 956.375 1359.34H959.037C959.141 1360.37 959.607 1361.22 960.435 1361.89C961.27 1362.56 962.267 1362.89 963.428 1362.89C964.359 1362.89 965.187 1362.67 965.913 1362.23C966.644 1361.8 967.217 1361.2 967.63 1360.44C968.052 1359.67 968.263 1358.8 968.263 1357.83C968.263 1356.84 968.044 1355.96 967.61 1355.18C967.18 1354.4 966.589 1353.78 965.835 1353.33C965.08 1352.88 964.219 1352.65 963.251 1352.64C962.556 1352.64 961.843 1352.74 961.111 1352.97C960.378 1353.18 959.776 1353.46 959.303 1353.8L956.729 1353.49L958.106 1342.31H969.905V1344.75H960.411L959.612 1351.45H959.748C960.211 1351.08 960.796 1350.77 961.499 1350.53C962.202 1350.28 962.933 1350.16 963.696 1350.16C965.085 1350.16 966.321 1350.49 967.409 1351.16C968.505 1351.82 969.361 1352.72 969.983 1353.86C970.61 1355.01 970.925 1356.32 970.925 1357.79C970.925 1359.24 970.6 1360.53 969.949 1361.67C969.306 1362.8 968.419 1363.69 967.287 1364.35C966.157 1365 964.869 1365.33 963.428 1365.33ZM978.425 1361.91L978.248 1363.11C978.121 1363.95 977.928 1364.85 977.67 1365.82C977.418 1366.78 977.155 1367.68 976.882 1368.53C976.609 1369.38 976.385 1370.06 976.205 1370.56H974.209C974.306 1370.09 974.433 1369.46 974.587 1368.68C974.743 1367.91 974.899 1367.04 975.052 1366.08C975.216 1365.13 975.349 1364.15 975.453 1363.15L975.586 1361.91H978.425ZM988.499 1342.31V1365.02H985.748V1345.19H985.616L980.073 1348.87V1346.08L985.748 1342.31H988.499ZM994.5 1360.36V1358.1L1004.48 1342.31H1006.12V1345.81H1005.01L997.472 1357.74V1357.92H1010.91V1360.36H994.5ZM1005.19 1365.02V1359.67V1358.62V1342.31H1007.81V1365.02H1005.19ZM1022.34 1365.33C1020.82 1365.33 1019.47 1365.06 1018.31 1364.52C1017.15 1363.97 1016.24 1363.22 1015.59 1362.27C1014.94 1361.31 1014.62 1360.21 1014.62 1358.99C1014.62 1358.02 1014.8 1357.14 1015.19 1356.32C1015.57 1355.51 1016.1 1354.82 1016.76 1354.27C1017.44 1353.72 1018.19 1353.37 1019.02 1353.22V1353.09C1017.93 1352.81 1017.06 1352.2 1016.42 1351.26C1015.78 1350.31 1015.46 1349.24 1015.47 1348.03C1015.46 1346.88 1015.75 1345.85 1016.34 1344.94C1016.94 1344.03 1017.75 1343.31 1018.78 1342.79C1019.82 1342.26 1021.01 1342 1022.34 1342C1023.66 1342 1024.83 1342.26 1025.87 1342.79C1026.91 1343.31 1027.72 1344.03 1028.31 1344.94C1028.91 1345.85 1029.21 1346.88 1029.22 1348.03C1029.21 1349.24 1028.88 1350.31 1028.23 1351.26C1027.59 1352.2 1026.73 1352.81 1025.67 1353.09V1353.22C1026.49 1353.37 1027.23 1353.72 1027.89 1354.27C1028.55 1354.82 1029.07 1355.51 1029.46 1356.32C1029.85 1357.14 1030.05 1358.02 1030.06 1358.99C1030.05 1360.21 1029.72 1361.31 1029.06 1362.27C1028.41 1363.22 1027.51 1363.97 1026.35 1364.52C1025.19 1365.06 1023.86 1365.33 1022.34 1365.33ZM1022.34 1362.89C1023.37 1362.89 1024.26 1362.72 1025 1362.39C1025.75 1362.06 1026.33 1361.59 1026.73 1360.98C1027.14 1360.38 1027.35 1359.67 1027.36 1358.85C1027.35 1357.99 1027.13 1357.24 1026.69 1356.58C1026.25 1355.92 1025.66 1355.4 1024.9 1355.03C1024.16 1354.65 1023.3 1354.46 1022.34 1354.46C1021.38 1354.46 1020.51 1354.65 1019.75 1355.03C1018.99 1355.4 1018.4 1355.92 1017.96 1356.58C1017.53 1357.24 1017.32 1357.99 1017.33 1358.85C1017.32 1359.67 1017.52 1360.38 1017.92 1360.98C1018.33 1361.59 1018.91 1362.06 1019.66 1362.39C1020.41 1362.72 1021.31 1362.89 1022.34 1362.89ZM1022.34 1352.11C1023.16 1352.11 1023.88 1351.95 1024.51 1351.62C1025.14 1351.3 1025.64 1350.84 1026 1350.26C1026.36 1349.68 1026.55 1348.99 1026.56 1348.21C1026.55 1347.44 1026.37 1346.77 1026.01 1346.2C1025.66 1345.63 1025.17 1345.18 1024.54 1344.87C1023.91 1344.55 1023.18 1344.4 1022.34 1344.4C1021.49 1344.4 1020.75 1344.55 1020.11 1344.87C1019.48 1345.18 1018.99 1345.63 1018.64 1346.2C1018.29 1346.77 1018.12 1347.44 1018.13 1348.21C1018.12 1348.99 1018.29 1349.68 1018.65 1350.26C1019.01 1350.84 1019.51 1351.3 1020.15 1351.62C1020.78 1351.95 1021.52 1352.11 1022.34 1352.11Z"
+ fill="white"
+ />
+ </g>
+ <path
+ fillRule="evenodd"
+ clipRule="evenodd"
+ d="M977.188 1256.62C988.956 1252.25 1004.57 1253.5 1015.53 1259.22C1022.37 1263.77 1028.69 1269.31 1031.15 1277.23C1032.49 1287.77 1032.28 1297.64 1025.47 1306.32C1020.61 1311.36 1015.45 1315.75 1009.85 1320C1008.42 1321.11 1006.98 1322.22 1005.5 1323.36C1001.33 1325.71 1001.27 1325.82 998.234 1326.81C997.737 1326.63 998.414 1326.92 995.895 1326.04C995.66 1324.9 995.673 1323.02 995.452 1317.87C993.813 1317.75 989.532 1317.17 987.84 1317.05C976.496 1315.59 969.272 1310.69 962.152 1302.07C956.676 1294.74 956.213 1287.47 957.309 1278.61C960.494 1268.07 967.95 1262.26 977.188 1256.62ZM976.374 1282.47C973.498 1282.47 971.169 1284.8 971.169 1287.68C971.169 1290.55 973.498 1292.88 976.374 1292.88C979.247 1292.88 981.579 1290.55 981.579 1287.68C981.579 1284.8 979.25 1282.47 976.374 1282.47ZM994.552 1282.47C991.679 1282.47 989.347 1284.8 989.347 1287.68C989.347 1290.55 991.679 1292.88 994.552 1292.88C997.427 1292.88 999.756 1290.55 999.756 1287.68C999.756 1284.8 997.427 1282.47 994.552 1282.47ZM1012.73 1282.47C1009.85 1282.47 1007.52 1284.8 1007.52 1287.68C1007.52 1290.55 1009.85 1292.88 1012.73 1292.88C1015.6 1292.88 1017.93 1290.55 1017.93 1287.68C1017.93 1284.8 1015.6 1282.47 1012.73 1282.47Z"
+ fill="white"
+ fillOpacity="0.9"
+ />
+ <g filter="url(#filter3_d_5_2)">
+ <path
+ d="M947.525 1193.06V1190.68L954.89 1183.05C955.676 1182.22 956.324 1181.49 956.834 1180.87C957.352 1180.24 957.737 1179.64 957.992 1179.07C958.247 1178.51 958.375 1177.9 958.375 1177.27C958.375 1176.54 958.206 1175.92 957.865 1175.4C957.524 1174.87 957.061 1174.46 956.472 1174.18C955.884 1173.89 955.223 1173.74 954.484 1173.74C953.706 1173.74 953.027 1173.9 952.444 1174.22C951.864 1174.54 951.419 1174.99 951.106 1175.57C950.794 1176.15 950.638 1176.83 950.638 1177.61H947.502C947.502 1176.28 947.806 1175.12 948.418 1174.13C949.027 1173.14 949.862 1172.37 950.924 1171.83C951.989 1171.28 953.196 1171 954.549 1171C955.916 1171 957.12 1171.27 958.161 1171.82C959.21 1172.36 960.03 1173.09 960.618 1174.03C961.206 1174.95 961.5 1176 961.5 1177.17C961.5 1177.98 961.347 1178.77 961.042 1179.54C960.746 1180.31 960.225 1181.17 959.481 1182.12C958.737 1183.06 957.701 1184.21 956.376 1185.55L952.051 1190.08V1190.24H961.852V1193.06H947.525ZM973.063 1193.35C971.73 1193.35 970.533 1193.1 969.471 1192.59C968.415 1192.07 967.572 1191.36 966.942 1190.46C966.31 1189.56 965.974 1188.54 965.932 1187.38H969.12C969.198 1188.32 969.612 1189.09 970.364 1189.69C971.114 1190.29 972.014 1190.59 973.063 1190.59C973.898 1190.59 974.64 1190.4 975.283 1190.02C975.936 1189.63 976.446 1189.09 976.815 1188.41C977.19 1187.73 977.378 1186.96 977.378 1186.09C977.378 1185.2 977.185 1184.41 976.802 1183.72C976.42 1183.02 975.894 1182.48 975.22 1182.08C974.554 1181.68 973.789 1181.48 972.925 1181.47C972.266 1181.47 971.603 1181.59 970.937 1181.81C970.27 1182.04 969.732 1182.34 969.321 1182.71L966.315 1182.26L967.535 1171.3H979.504V1174.11H970.268L969.576 1180.2H969.703C970.13 1179.79 970.692 1179.44 971.395 1179.17C972.103 1178.89 972.86 1178.76 973.669 1178.76C974.994 1178.76 976.173 1179.07 977.208 1179.7C978.249 1180.33 979.067 1181.19 979.663 1182.28C980.264 1183.37 980.563 1184.61 980.555 1186.02C980.563 1187.43 980.243 1188.69 979.597 1189.79C978.96 1190.9 978.075 1191.77 976.943 1192.41C975.816 1193.04 974.523 1193.35 973.063 1193.35ZM991.792 1193.35C990.267 1193.35 988.922 1193.09 987.753 1192.57C986.59 1192.04 985.679 1191.32 985.021 1190.4C984.362 1189.48 984.037 1188.43 984.045 1187.25C984.037 1186.33 984.225 1185.49 984.607 1184.72C984.997 1183.94 985.526 1183.29 986.189 1182.77C986.856 1182.25 987.6 1181.91 988.422 1181.77V1181.65C987.34 1181.38 986.47 1180.8 985.82 1179.9C985.167 1179 984.844 1177.97 984.852 1176.8C984.844 1175.69 985.138 1174.7 985.734 1173.83C986.335 1172.95 987.16 1172.26 988.209 1171.75C989.258 1171.25 990.452 1171 991.792 1171C993.117 1171 994.298 1171.25 995.342 1171.76C996.391 1172.27 997.216 1172.96 997.817 1173.84C998.421 1174.71 998.725 1175.7 998.73 1176.8C998.725 1177.97 998.392 1179 997.731 1179.9C997.073 1180.8 996.216 1181.38 995.16 1181.65V1181.77C995.974 1181.91 996.708 1182.25 997.361 1182.77C998.02 1183.29 998.543 1183.94 998.933 1184.72C999.329 1185.49 999.532 1186.33 999.54 1187.25C999.532 1188.43 999.199 1189.48 998.54 1190.4C997.882 1191.32 996.966 1192.04 995.797 1192.57C994.637 1193.09 993.302 1193.35 991.792 1193.35ZM991.792 1190.67C992.69 1190.67 993.471 1190.52 994.129 1190.22C994.788 1189.91 995.298 1189.49 995.66 1188.95C996.021 1188.41 996.206 1187.77 996.211 1187.04C996.206 1186.28 996.008 1185.62 995.618 1185.03C995.235 1184.45 994.715 1184 994.054 1183.66C993.395 1183.33 992.641 1183.17 991.792 1183.17C990.933 1183.17 990.174 1183.33 989.507 1183.66C988.841 1184 988.315 1184.45 987.933 1185.03C987.55 1185.62 987.363 1186.28 987.371 1187.04C987.363 1187.77 987.537 1188.41 987.891 1188.95C988.253 1189.49 988.766 1189.91 989.432 1190.22C990.098 1190.52 990.884 1190.67 991.792 1190.67ZM991.792 1180.54C992.513 1180.54 993.156 1180.39 993.715 1180.1C994.275 1179.81 994.715 1179.41 995.032 1178.89C995.358 1178.38 995.524 1177.77 995.532 1177.08C995.524 1176.4 995.363 1175.8 995.043 1175.29C994.73 1174.78 994.296 1174.39 993.736 1174.11C993.177 1173.83 992.529 1173.69 991.792 1173.69C991.04 1173.69 990.382 1173.83 989.815 1174.11C989.255 1174.39 988.82 1174.78 988.508 1175.29C988.196 1175.8 988.042 1176.4 988.05 1177.08C988.042 1177.77 988.198 1178.38 988.518 1178.89C988.836 1179.41 989.276 1179.81 989.835 1180.1C990.403 1180.39 991.053 1180.54 991.792 1180.54ZM1004.84 1193.26C1004.26 1193.26 1003.76 1193.05 1003.34 1192.64C1002.92 1192.22 1002.71 1191.72 1002.71 1191.13C1002.71 1190.55 1002.92 1190.06 1003.34 1189.65C1003.76 1189.23 1004.26 1189.02 1004.84 1189.02C1005.42 1189.02 1005.92 1189.23 1006.34 1189.65C1006.76 1190.06 1006.96 1190.55 1006.96 1191.13C1006.96 1191.52 1006.87 1191.88 1006.67 1192.21C1006.48 1192.52 1006.22 1192.78 1005.9 1192.97C1005.58 1193.16 1005.23 1193.26 1004.84 1193.26ZM1016.81 1171.3V1193.06H1013.51V1174.59H1013.38L1008.18 1177.99V1174.85L1013.61 1171.3H1016.81ZM1022.99 1193.06V1171.3H1026.28V1181.69H1026.54L1035.67 1171.3H1039.8L1031.03 1181.09L1039.84 1193.06H1035.88L1028.85 1183.33L1026.28 1186.29V1193.06H1022.99Z"
+ fill="white"
+ />
+ </g>
+ <path
+ d="M988.553 1150.16C977.873 1141.93 955.578 1127.87 956.619 1105.96C956.619 1094.76 965.067 1085.02 976.051 1085.02C981.746 1085.02 987.12 1085 994.708 1092.81C1001.48 1084.91 1007.48 1085 1013.17 1085C1024.16 1085 1032.52 1094.76 1032.52 1105.96C1033.34 1127.56 1011.24 1143.14 1000.59 1150.16C996.579 1152.24 991.838 1151.72 988.553 1150.16Z"
+ fill="white"
+ fillOpacity="0.9"
+ />
+ <path
+ d="M994.631 876.5C1026.17 876.5 1051.73 902.056 1051.73 933.58C1051.73 965.105 1026.17 990.661 994.631 990.661C963.097 990.661 937.533 965.105 937.533 933.58C937.533 902.056 963.097 876.5 994.631 876.5Z"
+ fill="#9D9D9D"
+ stroke="white"
+ />
+ <path
+ d="M993.947 1019.18C1009.74 1019.18 1022.55 1006.38 1022.55 990.592C1022.55 974.801 1009.74 962 993.947 962C978.152 962 965.347 974.801 965.347 990.592C965.347 1006.38 978.152 1019.18 993.947 1019.18Z"
+ fill="#FE2C55"
+ />
+ <path
+ d="M1008.87 988.577H980.264V993.747H1008.87V988.577Z"
+ fill="white"
+ />
+ <path
+ d="M991.979 976.864V1005.46H997.151V976.864H991.979Z"
+ fill="white"
+ />
+ <path
+ d="M998.114 252.67C1009.71 252.67 1019.12 243.27 1019.12 231.675C1019.12 220.08 1009.71 210.68 998.114 210.68C986.516 210.68 977.113 220.08 977.113 231.675C977.113 243.27 986.516 252.67 998.114 252.67Z"
+ stroke="white"
+ strokeWidth="4"
+ />
+ <path
+ d="M1015.72 246.31C1014.9 245.494 1013.58 245.494 1012.76 246.31C1011.94 247.126 1011.94 248.449 1012.76 249.265L1024.78 261.282C1025.6 262.098 1026.92 262.098 1027.74 261.282C1028.55 260.466 1028.55 259.143 1027.74 258.327L1015.72 246.31Z"
+ fill="white"
+ />
+ <path
+ d="M791.47 268H734.394C732.965 268 731.807 269.158 731.807 270.587V270.587C731.807 272.015 732.965 273.174 734.394 273.174H791.47C792.899 273.174 794.058 272.015 794.058 270.587C794.058 269.158 792.899 268 791.47 268Z"
+ fill="white"
+ />
+ <path
+ d="M686.65 236.274V206H706.051V210.597H692.136V218.816H704.722V223.413H692.136V236.274H686.65ZM720.094 236.717C717.874 236.717 715.954 236.229 714.327 235.254C712.701 234.278 711.438 232.913 710.541 231.159C709.653 229.405 709.211 227.355 709.211 225.01C709.211 222.664 709.653 220.61 710.541 218.846C711.438 217.082 712.701 215.712 714.327 214.736C715.954 213.761 717.874 213.273 720.094 213.273C722.311 213.273 724.234 213.761 725.861 214.736C727.487 215.712 728.744 217.082 729.629 218.846C730.527 220.61 730.975 222.664 730.975 225.01C730.975 227.355 730.527 229.405 729.629 231.159C728.744 232.913 727.487 234.278 725.861 235.254C724.234 236.229 722.311 236.717 720.094 236.717ZM720.123 232.43C721.325 232.43 722.332 232.1 723.139 231.44C723.948 230.77 724.549 229.873 724.942 228.75C725.348 227.626 725.549 226.375 725.549 224.995C725.549 223.605 725.348 222.349 724.942 221.226C724.549 220.092 723.948 219.191 723.139 218.52C722.332 217.85 721.325 217.515 720.123 217.515C718.892 217.515 717.866 217.85 717.047 218.52C716.24 219.191 715.633 220.092 715.228 221.226C714.835 222.349 714.637 223.605 714.637 224.995C714.637 226.375 714.835 227.626 715.228 228.75C715.633 229.873 716.24 230.77 717.047 231.44C717.866 232.1 718.892 232.43 720.123 232.43ZM736.559 236.274V213.568H741.751V217.353H741.985C742.402 216.042 743.11 215.032 744.117 214.322C745.132 213.603 746.29 213.243 747.591 213.243C747.885 213.243 748.216 213.258 748.583 213.288C748.955 213.307 749.267 213.342 749.512 213.391V218.314C749.285 218.235 748.926 218.166 748.434 218.106C747.95 218.037 747.482 218.003 747.029 218.003C746.053 218.003 745.176 218.215 744.398 218.639C743.628 219.053 743.021 219.629 742.579 220.368C742.134 221.107 741.913 221.96 741.913 222.925V236.274H736.559ZM763.645 206H769.842L777.248 219.393H777.545L784.954 206H791.148L780.132 224.98V236.274H774.661V224.98L763.645 206ZM801.516 236.717C799.298 236.717 797.375 236.229 795.749 235.254C794.122 234.278 792.86 232.913 791.965 231.159C791.077 229.405 790.632 227.355 790.632 225.01C790.632 222.664 791.077 220.61 791.965 218.846C792.86 217.082 794.122 215.712 795.749 214.736C797.375 213.761 799.298 213.273 801.516 213.273C803.733 213.273 805.656 213.761 807.283 214.736C808.909 215.712 810.166 217.082 811.053 218.846C811.951 220.61 812.399 222.664 812.399 225.01C812.399 227.355 811.951 229.405 811.053 231.159C810.166 232.913 808.909 234.278 807.283 235.254C805.656 236.229 803.733 236.717 801.516 236.717ZM801.547 232.43C802.749 232.43 803.754 232.1 804.563 231.44C805.37 230.77 805.971 229.873 806.367 228.75C806.77 227.626 806.973 226.375 806.973 224.995C806.973 223.605 806.77 222.349 806.367 221.226C805.971 220.092 805.37 219.191 804.563 218.52C803.754 217.85 802.749 217.515 801.547 217.515C800.313 217.515 799.288 217.85 798.471 218.52C797.661 219.191 797.055 220.092 796.652 221.226C796.256 222.349 796.061 223.605 796.061 224.995C796.061 226.375 796.256 227.626 796.652 228.75C797.055 229.873 797.661 230.77 798.471 231.44C799.288 232.1 800.313 232.43 801.547 232.43ZM832.458 226.724V213.568H837.812V236.274H832.622V232.238H832.385C831.873 233.509 831.03 234.549 829.856 235.357C828.693 236.165 827.259 236.569 825.554 236.569C824.066 236.569 822.749 236.239 821.606 235.579C820.472 234.909 819.584 233.938 818.944 232.667C818.304 231.386 817.984 229.838 817.984 228.025V213.568H823.337V227.198C823.337 228.636 823.73 229.779 824.518 230.627C825.307 231.474 826.343 231.898 827.623 231.898C828.412 231.898 829.177 231.706 829.916 231.322C830.655 230.937 831.261 230.366 831.735 229.607C832.216 228.838 832.458 227.877 832.458 226.724Z"
+ fill="white"
+ />
+ <path
+ d="M439.279 236.486V206.212H458.058V210.144H443.847V219.368H456.71V223.285H443.847V236.486H439.279ZM472.262 236.944C470.133 236.944 468.275 236.456 466.688 235.48C465.1 234.505 463.867 233.14 462.99 231.386C462.113 229.632 461.676 227.582 461.676 225.236C461.676 222.881 462.113 220.822 462.99 219.058C463.867 217.294 465.1 215.924 466.688 214.948C468.275 213.973 470.133 213.485 472.262 213.485C474.391 213.485 476.249 213.973 477.837 214.948C479.424 215.924 480.655 217.294 481.532 219.058C482.409 220.822 482.849 222.881 482.849 225.236C482.849 227.582 482.409 229.632 481.532 231.386C480.655 233.14 479.424 234.505 477.837 235.48C476.249 236.456 474.391 236.944 472.262 236.944ZM472.275 233.234C473.657 233.234 474.8 232.869 475.708 232.14C476.613 231.41 477.285 230.44 477.717 229.228C478.162 228.016 478.383 226.68 478.383 225.222C478.383 223.773 478.162 222.443 477.717 221.231C477.285 220.009 476.613 219.028 475.708 218.289C474.8 217.55 473.657 217.18 472.275 217.18C470.886 217.18 469.733 217.55 468.817 218.289C467.908 219.028 467.234 220.009 466.792 221.231C466.357 222.443 466.141 223.773 466.141 225.222C466.141 226.68 466.357 228.016 466.792 229.228C467.234 230.44 467.908 231.41 468.817 232.14C469.733 232.869 470.886 233.234 472.275 233.234ZM493.245 206.212V236.486H488.824V206.212H493.245ZM504.657 206.212V236.486H500.236V206.212H504.657ZM521.211 236.944C519.082 236.944 517.224 236.456 515.637 235.48C514.049 234.505 512.818 233.14 511.941 231.386C511.064 229.632 510.624 227.582 510.624 225.236C510.624 222.881 511.064 220.822 511.941 219.058C512.818 217.294 514.049 215.924 515.637 214.948C517.224 213.973 519.082 213.485 521.211 213.485C523.34 213.485 525.198 213.973 526.785 214.948C528.373 215.924 529.606 217.294 530.483 219.058C531.36 220.822 531.798 222.881 531.798 225.236C531.798 227.582 531.36 229.632 530.483 231.386C529.606 233.14 528.373 234.505 526.785 235.48C525.198 236.456 523.34 236.944 521.211 236.944ZM521.227 233.234C522.606 233.234 523.751 232.869 524.657 232.14C525.562 231.41 526.234 230.44 526.668 229.228C527.111 228.016 527.332 226.68 527.332 225.222C527.332 223.773 527.111 222.443 526.668 221.231C526.234 220.009 525.562 219.028 524.657 218.289C523.751 217.55 522.606 217.18 521.227 217.18C519.837 217.18 518.684 217.55 517.765 218.289C516.86 219.028 516.183 220.009 515.741 221.231C515.306 222.443 515.09 223.773 515.09 225.222C515.09 226.68 515.306 228.016 515.741 229.228C516.183 230.44 516.86 231.41 517.765 232.14C518.684 232.869 519.837 233.234 521.227 233.234ZM542.007 236.486L535.324 213.78H539.894L544.344 230.455H544.565L549.031 213.78H553.601L558.035 230.381H558.256L562.678 213.78H567.248L560.578 236.486H556.068L551.456 220.093H551.115L546.501 236.486H542.007ZM572.484 236.486V213.78H576.905V236.486H572.484ZM574.716 210.277C573.949 210.277 573.288 210.021 572.736 209.509C572.192 208.986 571.922 208.365 571.922 207.646C571.922 206.917 572.192 206.296 572.736 205.784C573.288 205.261 573.949 205 574.716 205C575.487 205 576.14 205.261 576.684 205.784C577.236 206.296 577.511 206.917 577.511 207.646C577.511 208.365 577.236 208.986 576.684 209.509C576.14 210.021 575.487 210.277 574.716 210.277ZM588.314 223.005V236.486H583.895V213.78H588.137V217.476H588.418C588.941 216.274 589.758 215.308 590.872 214.579C591.996 213.849 593.412 213.485 595.117 213.485C596.665 213.485 598.021 213.81 599.184 214.461C600.345 215.101 601.248 216.057 601.888 217.328C602.528 218.599 602.851 220.171 602.851 222.044V236.486H598.43V222.576C598.43 220.93 598 219.644 597.141 218.718C596.285 217.782 595.106 217.313 593.607 217.313C592.585 217.313 591.671 217.535 590.872 217.979C590.084 218.422 589.459 219.072 588.996 219.93C588.54 220.777 588.314 221.802 588.314 223.005ZM619.343 245.473C617.539 245.473 615.985 245.236 614.684 244.763C613.393 244.291 612.339 243.665 611.52 242.886C610.703 242.108 610.091 241.255 609.688 240.329L613.487 238.762C613.753 239.196 614.109 239.654 614.552 240.137C615.004 240.63 615.616 241.048 616.386 241.393C617.164 241.738 618.164 241.911 619.387 241.911C621.063 241.911 622.447 241.502 623.543 240.684C624.636 239.876 625.182 238.585 625.182 236.811V232.347H624.901C624.636 232.83 624.251 233.367 623.748 233.958C623.257 234.549 622.577 235.062 621.708 235.495C620.842 235.929 619.712 236.146 618.322 236.146C616.529 236.146 614.911 235.727 613.472 234.889C612.043 234.042 610.911 232.795 610.073 231.149C609.243 229.494 608.829 227.459 608.829 225.044C608.829 222.63 609.24 220.561 610.057 218.836C610.885 217.111 612.019 215.791 613.459 214.874C614.898 213.948 616.529 213.485 618.351 213.485C619.762 213.485 620.901 213.721 621.768 214.194C622.635 214.657 623.311 215.2 623.793 215.82C624.287 216.441 624.667 216.988 624.933 217.461H625.258V213.78H629.591V236.988C629.591 238.939 629.135 240.541 628.23 241.792C627.322 243.044 626.096 243.97 624.547 244.571C623.009 245.172 621.276 245.473 619.343 245.473ZM619.298 232.48C620.571 232.48 621.646 232.184 622.523 231.593C623.41 230.992 624.079 230.134 624.532 229.021C624.995 227.897 625.227 226.552 625.227 224.985C625.227 223.458 625 222.113 624.547 220.95C624.095 219.787 623.428 218.88 622.551 218.23C621.674 217.57 620.589 217.24 619.298 217.24C617.969 217.24 616.86 217.584 615.972 218.274C615.085 218.954 614.414 219.881 613.961 221.053C613.516 222.226 613.295 223.537 613.295 224.985C613.295 226.473 613.521 227.779 613.976 228.902C614.429 230.026 615.098 230.903 615.985 231.534C616.883 232.164 617.987 232.48 619.298 232.48Z"
+ fill="#C0C0C0"
+ />
+ <path
+ d="M234.87 236.274V206H253.856V209.932H239.439V219.156H252.865V223.073H239.439V232.341H254.033V236.274H234.87ZM264.134 213.568L269.147 222.408L274.203 213.568H279.039L271.957 224.921L279.098 236.274H274.263L269.147 227.789L264.046 236.274H259.196L266.263 224.921L259.285 213.568H264.134ZM284.621 244.788V213.568H288.938V217.249H289.308C289.563 216.776 289.932 216.229 290.416 215.608C290.898 214.988 291.569 214.445 292.428 213.982C293.284 213.509 294.419 213.273 295.827 213.273C297.661 213.273 299.298 213.736 300.737 214.662C302.177 215.589 303.306 216.924 304.123 218.668C304.951 220.412 305.364 222.511 305.364 224.965C305.364 227.419 304.956 229.523 304.139 231.277C303.319 233.022 302.195 234.367 300.766 235.313C299.337 236.249 297.706 236.717 295.871 236.717C294.492 236.717 293.362 236.485 292.485 236.022C291.619 235.559 290.939 235.017 290.445 234.396C289.953 233.775 289.573 233.223 289.308 232.741H289.04V244.788H284.621ZM288.951 224.921C288.951 226.517 289.183 227.917 289.646 229.119C290.109 230.321 290.781 231.263 291.658 231.942C292.535 232.613 293.609 232.948 294.882 232.948C296.201 232.948 297.307 232.598 298.195 231.898C299.08 231.189 299.751 230.228 300.204 229.016C300.667 227.803 300.899 226.439 300.899 224.921C300.899 223.423 300.672 222.078 300.22 220.885C299.775 219.693 299.106 218.752 298.208 218.062C297.32 217.372 296.212 217.028 294.882 217.028C293.599 217.028 292.516 217.358 291.629 218.018C290.752 218.678 290.086 219.599 289.633 220.782C289.18 221.965 288.951 223.344 288.951 224.921ZM315.779 206V236.274H311.36V206H315.779ZM332.336 236.732C330.207 236.732 328.349 236.244 326.762 235.268C325.174 234.293 323.943 232.928 323.066 231.174C322.189 229.42 321.749 227.37 321.749 225.024C321.749 222.669 322.189 220.61 323.066 218.846C323.943 217.082 325.174 215.712 326.762 214.736C328.349 213.761 330.207 213.273 332.336 213.273C334.465 213.273 336.323 213.761 337.91 214.736C339.498 215.712 340.731 217.082 341.608 218.846C342.485 220.61 342.922 222.669 342.922 225.024C342.922 227.37 342.485 229.42 341.608 231.174C340.731 232.928 339.498 234.293 337.91 235.268C336.323 236.244 334.465 236.732 332.336 236.732ZM332.352 233.022C333.731 233.022 334.876 232.657 335.781 231.928C336.687 231.198 337.359 230.228 337.793 229.016C338.236 227.803 338.457 226.468 338.457 225.01C338.457 223.561 338.236 222.231 337.793 221.019C337.359 219.797 336.687 218.816 335.781 218.077C334.876 217.338 333.731 216.968 332.352 216.968C330.962 216.968 329.809 217.338 328.89 218.077C327.985 218.816 327.308 219.797 326.866 221.019C326.431 222.231 326.215 223.561 326.215 225.01C326.215 226.468 326.431 227.803 326.866 229.016C327.308 230.228 327.985 231.198 328.89 231.928C329.809 232.657 330.962 233.022 332.352 233.022ZM348.9 236.274V213.568H353.173V217.175H353.41C353.824 215.953 354.553 214.993 355.596 214.293C356.653 213.583 357.845 213.228 359.175 213.228C359.453 213.228 359.778 213.238 360.15 213.258C360.536 213.278 360.838 213.302 361.054 213.332V217.56C360.877 217.51 360.562 217.456 360.106 217.397C359.653 217.328 359.201 217.293 358.748 217.293C357.702 217.293 356.77 217.515 355.953 217.959C355.143 218.392 354.503 218.998 354.03 219.777C353.556 220.545 353.319 221.423 353.319 222.408V236.274H348.9ZM374.896 236.732C372.658 236.732 370.732 236.254 369.116 235.298C367.507 234.332 366.266 232.977 365.389 231.233C364.52 229.479 364.088 227.424 364.088 225.069C364.088 222.743 364.52 220.693 365.389 218.919C366.266 217.146 367.489 215.761 369.056 214.766C370.633 213.771 372.475 213.273 374.586 213.273C375.866 213.273 377.108 213.485 378.313 213.908C379.515 214.332 380.592 214.997 381.55 215.904C382.505 216.811 383.26 217.988 383.812 219.437C384.363 220.876 384.639 222.625 384.639 224.685V226.251H366.586V222.94H380.309C380.309 221.777 380.072 220.748 379.598 219.851C379.125 218.944 378.458 218.23 377.602 217.707C376.754 217.185 375.76 216.924 374.615 216.924C373.373 216.924 372.288 217.229 371.362 217.841C370.446 218.441 369.735 219.23 369.233 220.206C368.741 221.171 368.494 222.221 368.494 223.354V225.941C368.494 227.458 368.759 228.75 369.293 229.814C369.834 230.878 370.589 231.691 371.554 232.253C372.52 232.805 373.649 233.081 374.94 233.081C375.778 233.081 376.543 232.962 377.233 232.726C377.922 232.48 378.518 232.115 379.021 231.632C379.525 231.149 379.908 230.553 380.176 229.843L384.358 230.597C384.025 231.829 383.424 232.908 382.555 233.835C381.698 234.751 380.618 235.465 379.317 235.978C378.026 236.48 376.551 236.732 374.896 236.732Z"
+ fill="#C0C0C0"
+ />
+ <path
+ d="M96.4754 244.508C96.4754 247.382 94.1452 249.712 91.2705 249.712H47.4236C44.5489 249.712 42.2188 247.382 42.2188 244.508V239.399H96.4754V244.508ZM47.3676 239.45V244.328H91.4358V239.45H47.3676ZM91.2705 199.109C94.1452 199.109 96.4754 201.439 96.4754 204.313V209.173H42.2188V204.313C42.2188 201.439 44.5489 199.11 47.4236 199.109H91.2705ZM47.3676 204.262V209.14H91.4358V204.262H47.3676Z"
+ fill="white"
+ />
+ <path
+ d="M39.3633 235.03V214.217H44.3953V230.945H53.0564V235.03H39.3633ZM60.6934 214.217V235.03H55.6614V214.217H60.6934ZM68.5795 214.217L73.2352 229.461H73.408L78.0639 214.217H83.6956L76.6711 235.03H69.972L62.9476 214.217H68.5795ZM85.9373 235.03V214.217H100.454V218.303H90.9693V222.571H99.7116V226.666H90.9693V230.945H100.454V235.03H85.9373Z"
+ fill="white"
+ />
+ <path
+ d="M59.0617 189.84L58.7406 190.161C57.7243 191.177 57.7243 192.824 58.7406 193.84L67.204 202.301C68.2203 203.317 69.868 203.317 70.8843 202.301L71.2054 201.98C72.2217 200.964 72.2217 199.317 71.2054 198.301L62.742 189.84C61.7257 188.824 60.078 188.824 59.0617 189.84Z"
+ fill="white"
+ />
+ <path
+ d="M80.4113 190.161L80.0902 189.84C79.0739 188.824 77.4261 188.824 76.4098 189.84L67.9464 198.3C66.9301 199.316 66.9301 200.964 67.9464 201.98L68.2675 202.301C69.2839 203.317 70.9316 203.317 71.9479 202.301L80.4113 193.84C81.4276 192.824 81.4276 191.177 80.4113 190.161Z"
+ fill="white"
+ />
+ <path
+ d="M79.951 41.7658V65.0386H76.4283V45.2886H76.2919L70.7237 48.9249V45.5613L76.5305 41.7658H79.951ZM95.716 41.7658V65.0386H92.1933V45.2886H92.0569L86.4887 48.9249V45.5613L92.2955 41.7658H95.716ZM104.936 62.1522C104.314 62.1522 103.78 61.9325 103.333 61.4931C102.886 61.0461 102.663 60.5083 102.663 59.8795C102.663 59.2583 102.886 58.728 103.333 58.2886C103.78 57.8416 104.314 57.6181 104.936 57.6181C105.557 57.6181 106.091 57.8416 106.538 58.2886C106.985 58.728 107.208 59.2583 107.208 59.8795C107.208 60.2961 107.102 60.6787 106.89 61.0272C106.686 61.3681 106.413 61.6408 106.072 61.8454C105.731 62.0499 105.352 62.1522 104.936 62.1522ZM104.936 50.4931C104.314 50.4931 103.78 50.2734 103.333 49.834C102.886 49.3871 102.663 48.8492 102.663 48.2204C102.663 47.5992 102.886 47.0689 103.333 46.6295C103.78 46.1825 104.314 45.959 104.936 45.959C105.557 45.959 106.091 46.1825 106.538 46.6295C106.985 47.0689 107.208 47.5992 107.208 48.2204C107.208 48.6371 107.102 49.0196 106.89 49.3681C106.686 49.709 106.413 49.9818 106.072 50.1863C105.731 50.3908 105.352 50.4931 104.936 50.4931ZM120.036 65.3568C118.612 65.3568 117.331 65.084 116.195 64.5386C115.066 63.9855 114.165 63.228 113.49 62.2658C112.816 61.3037 112.456 60.2052 112.411 58.9704H115.82C115.903 59.9704 116.346 60.7924 117.149 61.4363C117.952 62.0802 118.915 62.4022 120.036 62.4022C120.93 62.4022 121.721 62.1977 122.411 61.7886C123.108 61.3719 123.653 60.7999 124.047 60.0727C124.449 59.3454 124.649 58.5158 124.649 57.584C124.649 56.6371 124.445 55.7924 124.036 55.0499C123.627 54.3075 123.062 53.7242 122.343 53.2999C121.63 52.8757 120.812 52.6598 119.888 52.6522C119.183 52.6522 118.475 52.7734 117.763 53.0158C117.051 53.2583 116.475 53.5765 116.036 53.9704L112.82 53.4931L114.127 41.7658H126.922V44.7772H117.047L116.308 51.2886H116.445C116.899 50.8492 117.502 50.4818 118.252 50.1863C119.009 49.8908 119.82 49.7431 120.683 49.7431C122.1 49.7431 123.362 50.0802 124.468 50.7545C125.581 51.4287 126.456 52.3492 127.093 53.5158C127.737 54.6749 128.055 56.0083 128.047 57.5158C128.055 59.0234 127.714 60.3681 127.024 61.5499C126.343 62.7318 125.396 63.6636 124.183 64.3454C122.979 65.0196 121.596 65.3568 120.036 65.3568ZM132.838 65.0386V62.4931L140.713 54.334C141.554 53.4477 142.247 52.6711 142.792 52.0045C143.345 51.3302 143.758 50.6901 144.031 50.084C144.304 49.478 144.44 48.834 144.44 48.1522C144.44 47.3795 144.258 46.7128 143.895 46.1522C143.531 45.584 143.035 45.1484 142.406 44.8454C141.777 44.5348 141.069 44.3795 140.281 44.3795C139.448 44.3795 138.72 44.5499 138.099 44.8908C137.478 45.2318 137.001 45.7128 136.667 46.334C136.334 46.9552 136.167 47.6825 136.167 48.5158H132.815C132.815 47.0992 133.141 45.8605 133.792 44.7999C134.444 43.7393 135.338 42.9174 136.474 42.334C137.61 41.7431 138.902 41.4477 140.349 41.4477C141.811 41.4477 143.099 41.7393 144.213 42.3227C145.334 42.8984 146.209 43.6863 146.838 44.6863C147.466 45.6787 147.781 46.7999 147.781 48.0499C147.781 48.9136 147.618 49.7583 147.292 50.584C146.974 51.4098 146.417 52.3302 145.622 53.3454C144.826 54.353 143.72 55.5765 142.304 57.0158L137.679 61.8568V62.0272H148.156V65.0386H132.838Z"
+ fill="white"
+ />
+ <rect
+ x="906.516"
+ y="40.8203"
+ width="7.56738"
+ height="24.4583"
+ rx="2"
+ fill="white"
+ />
+ <rect
+ x="895.677"
+ y="46.0703"
+ width="7.56738"
+ height="19.2083"
+ rx="2"
+ fill="white"
+ />
+ <rect
+ x="884.838"
+ y="51.4316"
+ width="7.56738"
+ height="13.8469"
+ rx="2"
+ fill="white"
+ />
+ <rect
+ x="874"
+ y="55.7026"
+ width="7.56738"
+ height="9.57568"
+ rx="2"
+ fill="white"
+ />
+ <path
+ d="M941.078 40.9033C934.711 40.9033 928.344 43.4627 923.774 47.6293C923.516 47.8578 923.508 48.2463 923.75 48.4977L925.836 50.6229C926.078 50.8742 926.485 50.8818 926.742 50.6457C928.563 49.0004 930.641 47.6902 932.938 46.7609C935.516 45.7098 938.258 45.1842 941.086 45.1842C943.914 45.1842 946.656 45.7174 949.235 46.7609C951.531 47.6979 953.61 49.0004 955.43 50.6457C955.688 50.8818 956.094 50.8742 956.336 50.6229L958.422 48.4977C958.664 48.2539 958.656 47.8654 958.399 47.6293C953.813 43.4627 947.445 40.9033 941.078 40.9033Z"
+ fill="white"
+ />
+ <path
+ d="M929.922 54.7285L932.156 56.8842C932.399 57.1127 932.781 57.1279 933.031 56.907C935.242 54.9951 938.078 53.9439 941.07 53.9439C944.063 53.9439 946.899 54.9875 949.11 56.907C949.36 57.1279 949.742 57.1127 949.985 56.8842L952.219 54.7285C952.477 54.4771 952.469 54.0734 952.195 53.8373C949.266 51.2551 945.352 49.6783 941.063 49.6783C936.774 49.6783 932.86 51.2551 929.93 53.8373C929.672 54.0734 929.664 54.4771 929.922 54.7285ZM941.078 58.2857C939.25 58.2857 937.594 59.0322 936.438 60.2281C936.203 60.4719 936.211 60.8451 936.453 61.0812L940.625 65.0955C940.875 65.3393 941.281 65.3393 941.531 65.0955L945.703 61.0812C945.945 60.8451 945.953 60.4719 945.719 60.2281C944.563 59.0398 942.906 58.2857 941.078 58.2857Z"
+ fill="white"
+ />
+ <rect
+ x="968.492"
+ y="38.5908"
+ width="51.4128"
+ height="29"
+ rx="8"
+ fill="#34C759"
+ />
+ <path
+ d="M980.991 44.1363V61.5908H977.301V47.6391H977.198L973.201 50.1448V46.8721L977.522 44.1363H980.991ZM991.743 61.9743C990.277 61.9687 989.016 61.6079 987.959 60.892C986.908 60.176 986.098 59.1391 985.53 57.7812C984.968 56.4232 984.689 54.7897 984.695 52.8806C984.695 50.9772 984.976 49.355 985.539 48.0141C986.107 46.6732 986.916 45.6533 987.968 44.9545C989.024 44.2499 990.283 43.8976 991.743 43.8976C993.203 43.8976 994.459 44.2499 995.51 44.9545C996.567 45.659 997.379 46.6817 997.948 48.0226C998.516 49.3579 998.797 50.9772 998.791 52.8806C998.791 54.7954 998.507 56.4317 997.939 57.7897C997.377 59.1476 996.57 60.1846 995.519 60.9005C994.468 61.6164 993.209 61.9743 991.743 61.9743ZM991.743 58.9147C992.743 58.9147 993.541 58.4118 994.138 57.4062C994.735 56.4005 995.03 54.892 995.024 52.8806C995.024 51.5567 994.888 50.4545 994.615 49.5738C994.348 48.6931 993.968 48.0312 993.473 47.588C992.985 47.1448 992.408 46.9232 991.743 46.9232C990.749 46.9232 989.953 47.4204 989.357 48.4147C988.76 49.409 988.459 50.8976 988.453 52.8806C988.453 54.2215 988.587 55.3408 988.854 56.2385C989.127 57.1306 989.51 57.801 990.004 58.2499C990.499 58.6931 991.078 58.9147 991.743 58.9147ZM1008.03 61.9743C1006.56 61.9687 1005.3 61.6079 1004.24 60.892C1003.19 60.176 1002.38 59.1391 1001.81 57.7812C1001.25 56.4232 1000.97 54.7897 1000.98 52.8806C1000.98 50.9772 1001.26 49.355 1001.82 48.0141C1002.39 46.6732 1003.2 45.6533 1004.25 44.9545C1005.31 44.2499 1006.57 43.8976 1008.03 43.8976C1009.49 43.8976 1010.74 44.2499 1011.79 44.9545C1012.85 45.659 1013.66 46.6817 1014.23 48.0226C1014.8 49.3579 1015.08 50.9772 1015.07 52.8806C1015.07 54.7954 1014.79 56.4317 1014.22 57.7897C1013.66 59.1476 1012.85 60.1846 1011.8 60.9005C1010.75 61.6164 1009.49 61.9743 1008.03 61.9743ZM1008.03 58.9147C1009.03 58.9147 1009.82 58.4118 1010.42 57.4062C1011.02 56.4005 1011.31 54.892 1011.31 52.8806C1011.31 51.5567 1011.17 50.4545 1010.9 49.5738C1010.63 48.6931 1010.25 48.0312 1009.76 47.588C1009.27 47.1448 1008.69 46.9232 1008.03 46.9232C1007.03 46.9232 1006.24 47.4204 1005.64 48.4147C1005.04 49.409 1004.74 50.8976 1004.74 52.8806C1004.74 54.2215 1004.87 55.3408 1005.14 56.2385C1005.41 57.1306 1005.79 57.801 1006.29 58.2499C1006.78 58.6931 1007.36 58.9147 1008.03 58.9147Z"
+ fill="white"
+ />
+ <path
+ d="M1022.16 48.2734V48.2734C1023.94 48.2734 1025.38 49.7175 1025.38 51.4988V54.6167C1025.38 56.398 1023.94 57.842 1022.16 57.842V57.842V48.2734Z"
+ fill="#34C759"
+ />
+ <defs>
+ <filter
+ id="filter0_d_5_2"
+ x="954.752"
+ y="1684"
+ width="78.1084"
+ height="32.5605"
+ filterUnits="userSpaceOnUse"
+ colorInterpolationFilters="sRGB"
+ >
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
+ <feColorMatrix
+ in="SourceAlpha"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
+ result="hardAlpha"
+ />
+ <feOffset dy="1" />
+ <feGaussianBlur stdDeviation="1" />
+ <feComposite in2="hardAlpha" operator="out" />
+ <feColorMatrix
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
+ />
+ <feBlend
+ mode="normal"
+ in2="BackgroundImageFix"
+ result="effect1_dropShadow_5_2"
+ />
+ <feBlend
+ mode="normal"
+ in="SourceGraphic"
+ in2="effect1_dropShadow_5_2"
+ result="shape"
+ />
+ </filter>
+ <filter
+ id="filter1_d_5_2"
+ x="960.448"
+ y="1512"
+ width="68.2227"
+ height="27.1934"
+ filterUnits="userSpaceOnUse"
+ colorInterpolationFilters="sRGB"
+ >
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
+ <feColorMatrix
+ in="SourceAlpha"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
+ result="hardAlpha"
+ />
+ <feOffset dy="1" />
+ <feGaussianBlur stdDeviation="1" />
+ <feComposite in2="hardAlpha" operator="out" />
+ <feColorMatrix
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
+ />
+ <feBlend
+ mode="normal"
+ in2="BackgroundImageFix"
+ result="effect1_dropShadow_5_2"
+ />
+ <feBlend
+ mode="normal"
+ in="SourceGraphic"
+ in2="effect1_dropShadow_5_2"
+ result="shape"
+ />
+ </filter>
+ <filter
+ id="filter2_d_5_2"
+ x="954.375"
+ y="1341"
+ width="77.6875"
+ height="32.5605"
+ filterUnits="userSpaceOnUse"
+ colorInterpolationFilters="sRGB"
+ >
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
+ <feColorMatrix
+ in="SourceAlpha"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
+ result="hardAlpha"
+ />
+ <feOffset dy="1" />
+ <feGaussianBlur stdDeviation="1" />
+ <feComposite in2="hardAlpha" operator="out" />
+ <feColorMatrix
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
+ />
+ <feBlend
+ mode="normal"
+ in2="BackgroundImageFix"
+ result="effect1_dropShadow_5_2"
+ />
+ <feBlend
+ mode="normal"
+ in="SourceGraphic"
+ in2="effect1_dropShadow_5_2"
+ result="shape"
+ />
+ </filter>
+ <filter
+ id="filter3_d_5_2"
+ x="945.502"
+ y="1170"
+ width="96.333"
+ height="26.353"
+ filterUnits="userSpaceOnUse"
+ colorInterpolationFilters="sRGB"
+ >
+ <feFlood floodOpacity="0" result="BackgroundImageFix" />
+ <feColorMatrix
+ in="SourceAlpha"
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
+ result="hardAlpha"
+ />
+ <feOffset dy="1" />
+ <feGaussianBlur stdDeviation="1" />
+ <feComposite in2="hardAlpha" operator="out" />
+ <feColorMatrix
+ type="matrix"
+ values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
+ />
+ <feBlend
+ mode="normal"
+ in2="BackgroundImageFix"
+ result="effect1_dropShadow_5_2"
+ />
+ <feBlend
+ mode="normal"
+ in="SourceGraphic"
+ in2="effect1_dropShadow_5_2"
+ result="shape"
+ />
+ </filter>
+ </defs>
+ </svg>
+ );
+}
diff --git a/apps/web/src/lib/guides/index.ts b/apps/web/src/lib/guides/index.ts
new file mode 100644
index 00000000..007e6fda
--- /dev/null
+++ b/apps/web/src/lib/guides/index.ts
@@ -0,0 +1,13 @@
+import { GUIDE_REGISTRY } from "./registry";
+import type { GuideDefinition } from "@/lib/guides/types";
+
+export { GUIDE_REGISTRY, isGuideId } from "./registry";
+export type { GuideDefinition, GuideId, GuideRenderProps } from "./registry";
+
+export function getGuideById(guideId: string | null): GuideDefinition | null {
+ if (!guideId) {
+ return null;
+ }
+
+ return GUIDE_REGISTRY.find((guide) => guide.id === guideId) ?? null;
+}
diff --git a/apps/web/src/lib/guides/registry.tsx b/apps/web/src/lib/guides/registry.tsx
new file mode 100644
index 00000000..60dec428
--- /dev/null
+++ b/apps/web/src/lib/guides/registry.tsx
@@ -0,0 +1,28 @@
+import type { GuideDefinition } from "@/lib/guides/types";
+import { gridGuide } from "./definitions/grid";
+// import { customGuide } from "./definitions/custom";
+import {
+ tiktokGuide,
+ igReelsGuide,
+ ytShortsGuide,
+ spotlightGuide,
+} from "./definitions/platforms";
+
+export type { GuideDefinition, GuideRenderProps } from "@/lib/guides/types";
+
+export const GUIDE_REGISTRY = [
+ gridGuide,
+ tiktokGuide,
+ igReelsGuide,
+ ytShortsGuide,
+ spotlightGuide,
+
+ // todo: wire up custom guide fully, then uncomment this:
+ // customGuide,
+] as const satisfies readonly GuideDefinition[];
+
+export type GuideId = (typeof GUIDE_REGISTRY)[number]["id"];
+
+export function isGuideId(value: string): value is GuideId {
+ return GUIDE_REGISTRY.some((guide) => guide.id === value);
+}
diff --git a/apps/web/src/lib/guides/types.ts b/apps/web/src/lib/guides/types.ts
new file mode 100644
index 00000000..340101ac
--- /dev/null
+++ b/apps/web/src/lib/guides/types.ts
@@ -0,0 +1,20 @@
+import type { ReactNode } from "react";
+
+export interface GridConfig {
+ rows: number;
+ cols: number;
+}
+
+export interface GuideRenderProps {
+ width: number;
+ height: number;
+}
+
+export interface GuideDefinition {
+ id: string;
+ label: string;
+ renderPreview: () => ReactNode;
+ renderTriggerIcon: () => ReactNode;
+ renderOverlay: (props: GuideRenderProps) => ReactNode;
+ renderOptions?: () => ReactNode;
+}
diff --git a/apps/web/src/lib/iconify-api.ts b/apps/web/src/lib/iconify-api.ts
deleted file mode 100644
index e4afe111..00000000
--- a/apps/web/src/lib/iconify-api.ts
+++ /dev/null
@@ -1,241 +0,0 @@
-export const ICONIFY_HOSTS = [
- "https://api.iconify.design",
- "https://api.simplesvg.com",
- "https://api.unisvg.com",
-];
-
-let currentHost = ICONIFY_HOSTS[0];
-
-async function fetchWithFallback(path: string): Promise<Response> {
- for (const host of ICONIFY_HOSTS) {
- try {
- const response = await fetch(`${host}${path}`, {
- signal: AbortSignal.timeout(2000),
- });
- if (response.ok) {
- currentHost = host;
- return response;
- }
- } catch (error) {
- console.warn(`Failed to fetch from ${host}:`, error);
- }
- }
- throw new Error("All API hosts failed");
-}
-
-export interface IconSet {
- prefix: string;
- name: string;
- total: number;
- author?: {
- name: string;
- url?: string;
- };
- license?: {
- title: string;
- spdx?: string;
- url?: string;
- };
- samples?: string[];
- category?: string;
- palette?: boolean;
-}
-
-export interface IconSearchResult {
- icons: string[];
- total: number;
- limit: number;
- start: number;
- collections: Record<string, IconSet>;
-}
-
-export interface CollectionInfo {
- prefix: string;
- total: number;
- title?: string;
- uncategorized?: string[];
- categories?: Record<string, string[]>;
- hidden?: string[];
- aliases?: Record<string, string>;
-}
-
-export async function getCollections(
- category?: string,
-): Promise<Record<string, IconSet>> {
- try {
- const response = await fetchWithFallback("/collections?pretty=1");
- const data = (await response.json()) as Record<string, IconSet>;
-
- if (category) {
- const filtered = Object.fromEntries(
- Object.entries(data).filter(
- ([_key, info]) => info.category === category,
- ),
- ) as Record<string, IconSet>;
- return filtered;
- }
-
- return data;
- } catch (error) {
- console.error("Failed to fetch collections:", error);
- return {};
- }
-}
-
-export async function getCollection(
- prefix: string,
-): Promise<CollectionInfo | null> {
- try {
- const response = await fetchWithFallback(
- `/collection?prefix=${prefix}&pretty=1`,
- );
- return await response.json();
- } catch (error) {
- console.error(`Failed to fetch collection ${prefix}:`, error);
- return null;
- }
-}
-
-export async function searchIcons(
- query: string,
- limit: number = 64,
- prefixes?: string[],
- category?: string,
-): Promise<IconSearchResult> {
- const params = new URLSearchParams({
- query,
- limit: limit.toString(),
- pretty: "1",
- });
-
- if (prefixes?.length) {
- params.append("prefixes", prefixes.join(","));
- }
-
- if (category) {
- params.append("category", category);
- }
-
- try {
- const response = await fetchWithFallback(`/search?${params}`);
- return await response.json();
- } catch (error) {
- console.error("Failed to search icons:", error);
- return {
- icons: [],
- total: 0,
- limit,
- start: 0,
- collections: {},
- };
- }
-}
-
-export function buildIconSvgUrl(
- host: string,
- iconName: string,
- params?: {
- color?: string;
- width?: number;
- height?: number;
- flip?: "horizontal" | "vertical" | "horizontal,vertical";
- rotate?: number | string;
- },
-): string {
- const [prefix, name] = iconName.includes(":")
- ? iconName.split(":")
- : ["", iconName];
-
- if (!prefix || !name) {
- throw new Error('Invalid icon name format. Expected "prefix:name"');
- }
-
- const urlParams = new URLSearchParams();
-
- if (params?.color) {
- urlParams.append("color", params.color.replace("#", "%23"));
- }
-
- if (params?.width) {
- urlParams.append("width", params.width.toString());
- }
-
- if (params?.height) {
- urlParams.append("height", params.height.toString());
- }
-
- if (params?.flip) {
- urlParams.append("flip", params.flip);
- }
-
- if (params?.rotate) {
- urlParams.append("rotate", params.rotate.toString());
- }
-
- const queryString = urlParams.toString();
- return `${host}/${prefix}/${name}.svg${queryString ? `?${queryString}` : ""}`;
-}
-
-export function getIconSvgUrl(
- iconName: string,
- params?: Parameters<typeof buildIconSvgUrl>[2],
-): string {
- return buildIconSvgUrl(currentHost, iconName, params);
-}
-
-export async function downloadSvgAsText(
- iconName: string,
- params?: Parameters<typeof getIconSvgUrl>[1],
-): Promise<string> {
- const url = getIconSvgUrl(iconName, params);
- const response = await fetch(url);
- if (!response.ok) {
- throw new Error(`Failed to download SVG: ${response.statusText}`);
- }
- return await response.text();
-}
-
-export function svgToFile(svgText: string, fileName: string): File {
- const blob = new Blob([svgText], { type: "image/svg+xml" });
- return new File([blob], fileName, { type: "image/svg+xml" });
-}
-
-export const POPULAR_COLLECTIONS = {
- general: [
- { prefix: "mdi", name: "Material Design Icons" },
- { prefix: "ic", name: "Google Material Icons" },
- { prefix: "ph", name: "Phosphor" },
- { prefix: "heroicons", name: "Heroicons" },
- { prefix: "lucide", name: "Lucide" },
- { prefix: "tabler", name: "Tabler Icons" },
- { prefix: "fe", name: "Feather Icons" },
- { prefix: "bi", name: "Bootstrap Icons" },
- ],
- brands: [
- { prefix: "simple-icons", name: "Simple Icons" },
- { prefix: "logos", name: "SVG Logos" },
- { prefix: "skill-icons", name: "Skill Icons" },
- { prefix: "devicon", name: "Devicon" },
- { prefix: "fa-brands", name: "Font Awesome Brands" },
- ],
- emoji: [
- { prefix: "noto", name: "Noto Emoji" },
- { prefix: "twemoji", name: "Twemoji" },
- { prefix: "fluent-emoji", name: "Fluent Emoji" },
- { prefix: "fluent-emoji-flat", name: "Fluent Emoji Flat" },
- { prefix: "emojione", name: "EmojiOne" },
- { prefix: "openmoji", name: "OpenMoji" },
- ],
-};
-
-export function getCategoriesFromCollections(
- collections: Record<string, IconSet>,
-): string[] {
- const categories = new Set<string>();
- Object.values(collections).forEach((collection) => {
- if (collection.category) {
- categories.add(collection.category);
- }
- });
- return Array.from(categories).sort();
-}
diff --git a/apps/web/src/lib/masks/__tests__/snap.test.ts b/apps/web/src/lib/masks/__tests__/snap.test.ts
new file mode 100644
index 00000000..3ec96344
--- /dev/null
+++ b/apps/web/src/lib/masks/__tests__/snap.test.ts
@@ -0,0 +1,235 @@
+import { describe, expect, test } from "bun:test";
+import { getSplitMaskStrokeSegment } from "@/lib/masks/definitions/split";
+import { getMaskSnapGeometry } from "@/lib/masks/geometry";
+import { snapMaskInteraction } from "@/lib/masks/snap";
+import type { ElementBounds } from "@/lib/preview/element-bounds";
+import type { RectangleMaskParams, SplitMaskParams } from "@/lib/masks/types";
+
+const bounds: ElementBounds = {
+ cx: 200,
+ cy: 150,
+ width: 200,
+ height: 100,
+ rotation: 0,
+};
+
+const canvasSize = {
+ width: 400,
+ height: 300,
+};
+
+const snapThreshold = {
+ x: 8,
+ y: 8,
+};
+
+function buildSplitParams(
+ overrides: Partial<SplitMaskParams> = {},
+): SplitMaskParams {
+ return {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 0,
+ centerX: 0,
+ centerY: 0,
+ rotation: 0,
+ ...overrides,
+ };
+}
+
+function buildRectangleParams(
+ overrides: Partial<RectangleMaskParams> = {},
+): RectangleMaskParams {
+ return {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 0,
+ centerX: 0,
+ centerY: 0,
+ width: 0.4,
+ height: 0.2,
+ rotation: 0,
+ scale: 1,
+ ...overrides,
+ };
+}
+
+function sortSegment(
+ segment: [{ x: number; y: number }, { x: number; y: number }],
+): [{ x: number; y: number }, { x: number; y: number }] {
+ return [...segment].sort((a, b) => (a.x === b.x ? a.y - b.y : a.x - b.x)) as [
+ { x: number; y: number },
+ { x: number; y: number },
+ ];
+}
+
+describe("mask geometry", () => {
+ test("resolves split mask center from centerX and centerY", () => {
+ expect(
+ getMaskSnapGeometry({
+ params: buildSplitParams({
+ centerX: 0.25,
+ centerY: -0.5,
+ rotation: 45,
+ }),
+ bounds,
+ }),
+ ).toEqual({
+ position: { x: 50, y: -50 },
+ size: { width: 0, height: 0 },
+ rotation: 45,
+ });
+ });
+
+ test("resolves box mask center and size from centerX and centerY", () => {
+ expect(
+ getMaskSnapGeometry({
+ params: buildRectangleParams({
+ centerX: -0.25,
+ centerY: 0.5,
+ width: 0.5,
+ height: 0.6,
+ rotation: 30,
+ }),
+ bounds,
+ }),
+ ).toEqual({
+ position: { x: -50, y: 50 },
+ size: { width: 100, height: 60 },
+ rotation: 30,
+ });
+ });
+
+ test("returns a vertical split stroke segment for rotation 0", () => {
+ const segment = getSplitMaskStrokeSegment({
+ resolvedParams: buildSplitParams(),
+ width: bounds.width,
+ height: bounds.height,
+ });
+
+ expect(segment).not.toBeNull();
+ if (!segment) {
+ throw new Error("Expected split stroke segment for rotation 0");
+ }
+ expect(sortSegment(segment)).toEqual([
+ { x: bounds.width / 2, y: 0 },
+ { x: bounds.width / 2, y: bounds.height },
+ ]);
+ });
+
+ test("returns a horizontal split stroke segment for rotation 90", () => {
+ const segment = getSplitMaskStrokeSegment({
+ resolvedParams: buildSplitParams({ rotation: 90 }),
+ width: bounds.width,
+ height: bounds.height,
+ });
+
+ expect(segment).not.toBeNull();
+ if (!segment) {
+ throw new Error("Expected split stroke segment for rotation 90");
+ }
+ expect(sortSegment(segment)).toEqual([
+ { x: 0, y: bounds.height / 2 },
+ { x: bounds.width, y: bounds.height / 2 },
+ ]);
+ });
+});
+
+describe("mask snapping", () => {
+ test("snaps split mask movement using the shared position pipeline", () => {
+ const result = snapMaskInteraction({
+ handleId: "position",
+ startParams: buildSplitParams({
+ centerX: 0.03,
+ centerY: -0.04,
+ }),
+ proposedParams: buildSplitParams({
+ centerX: 0.03,
+ centerY: -0.04,
+ }),
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ expect(result.params.centerX).toBe(0);
+ expect(result.params.centerY).toBe(0);
+ expect(result.activeLines).toEqual([
+ { type: "vertical", position: 0 },
+ { type: "horizontal", position: 0 },
+ ]);
+ });
+
+ test("snaps box mask movement against element center and edges", () => {
+ const result = snapMaskInteraction({
+ handleId: "position",
+ startParams: buildRectangleParams(),
+ proposedParams: buildRectangleParams({
+ centerX: 0.29,
+ centerY: 0.03,
+ }),
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ expect(result.params.centerX).toBeCloseTo(0.3);
+ expect(result.params.centerY).toBe(0);
+ expect(result.activeLines).toEqual([
+ { type: "vertical", position: 100 },
+ { type: "horizontal", position: 0 },
+ ]);
+ });
+
+ test("snaps mask rotation through the shared rotation path", () => {
+ const result = snapMaskInteraction({
+ handleId: "rotation",
+ startParams: buildRectangleParams(),
+ proposedParams: buildRectangleParams({
+ rotation: 88,
+ }),
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ expect(result.params.rotation).toBe(90);
+ expect(result.activeLines).toEqual([]);
+ });
+
+ test("snaps edge resize for box masks", () => {
+ const result = snapMaskInteraction({
+ handleId: "right",
+ startParams: buildRectangleParams(),
+ proposedParams: buildRectangleParams({
+ width: 0.98,
+ }),
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ expect(result.params.width).toBe(1);
+ expect(result.activeLines).toEqual([{ type: "vertical", position: 100 }]);
+ });
+
+ test("snaps corner resize for box masks", () => {
+ const result = snapMaskInteraction({
+ handleId: "bottom-right",
+ startParams: buildRectangleParams(),
+ proposedParams: buildRectangleParams({
+ width: 0.99,
+ height: 0.495,
+ }),
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+
+ expect(result.params.width).toBe(1);
+ expect(result.params.height).toBe(0.5);
+ expect(result.activeLines).toEqual([{ type: "vertical", position: 100 }]);
+ });
+});
diff --git a/apps/web/src/lib/masks/definitions/box-like.ts b/apps/web/src/lib/masks/definitions/box-like.ts
new file mode 100644
index 00000000..0436151e
--- /dev/null
+++ b/apps/web/src/lib/masks/definitions/box-like.ts
@@ -0,0 +1,270 @@
+import {
+ DEFAULT_SHAPE_MASK_SHORT_SIDE_RATIO,
+ MIN_MASK_DIMENSION,
+} from "@/constants/mask-constants";
+import { computeFeatherUpdate } from "../param-update";
+import type {
+ BaseMaskParams,
+ MaskDefaultContext,
+ MaskParamUpdateArgs,
+ RectangleMaskParams,
+} from "@/lib/masks/types";
+import type {
+ NumberParamDefinition,
+ ParamDefinition,
+ ParamValues,
+} from "@/lib/params";
+
+const PERCENTAGE_DISPLAY: Pick<
+ NumberParamDefinition,
+ "displayMultiplier" | "step"
+> = {
+ displayMultiplier: 100,
+ step: 1,
+};
+
+export const BOX_LIKE_MASK_PARAMS: ParamDefinition<
+ keyof RectangleMaskParams & string
+>[] = [
+ {
+ key: "centerX",
+ label: "X",
+ type: "number",
+ default: 0,
+ min: -100,
+ max: 100,
+ ...PERCENTAGE_DISPLAY,
+ },
+ {
+ key: "centerY",
+ label: "Y",
+ type: "number",
+ default: 0,
+ min: -100,
+ max: 100,
+ ...PERCENTAGE_DISPLAY,
+ },
+ {
+ key: "width",
+ label: "Width",
+ type: "number",
+ default: 0.6,
+ min: 1,
+ ...PERCENTAGE_DISPLAY,
+ },
+ {
+ key: "height",
+ label: "Height",
+ type: "number",
+ default: 0.6,
+ min: 1,
+ ...PERCENTAGE_DISPLAY,
+ },
+ {
+ key: "rotation",
+ label: "Rotation",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 360,
+ step: 1,
+ },
+ {
+ key: "scale",
+ label: "Scale",
+ type: "number",
+ default: 1,
+ min: 1,
+ max: 500,
+ ...PERCENTAGE_DISPLAY,
+ },
+ {
+ key: "strokeAlign",
+ label: "Stroke Align",
+ type: "select",
+ default: "center",
+ options: [
+ { value: "inside", label: "Inside" },
+ { value: "center", label: "Center" },
+ { value: "outside", label: "Outside" },
+ ],
+ },
+];
+
+export function getDefaultBaseMaskParams(): BaseMaskParams {
+ return {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 0,
+ strokeAlign: "center",
+ };
+}
+
+export function getStrokeOffset({
+ strokeAlign,
+ strokeWidth,
+}: Pick<BaseMaskParams, "strokeAlign" | "strokeWidth">): number {
+ if (strokeAlign === "inside") {
+ return -(strokeWidth / 2);
+ }
+
+ if (strokeAlign === "outside") {
+ return strokeWidth / 2;
+ }
+
+ return 0;
+}
+
+export function getDefaultSquareMaskParams({
+ elementSize,
+}: MaskDefaultContext): RectangleMaskParams {
+ const absWidth = Math.abs(elementSize?.width ?? 0);
+ const absHeight = Math.abs(elementSize?.height ?? 0);
+ const shortSide = Math.min(absWidth, absHeight);
+ const squareSide =
+ shortSide > 0 ? shortSide * DEFAULT_SHAPE_MASK_SHORT_SIDE_RATIO : 0;
+ const width =
+ absWidth > 0 ? squareSide / absWidth : DEFAULT_SHAPE_MASK_SHORT_SIDE_RATIO;
+ const height =
+ absHeight > 0
+ ? squareSide / absHeight
+ : DEFAULT_SHAPE_MASK_SHORT_SIDE_RATIO;
+
+ return {
+ ...getDefaultBaseMaskParams(),
+ centerX: 0,
+ centerY: 0,
+ width,
+ height,
+ rotation: 0,
+ scale: 1,
+ };
+}
+
+export function getBoxLikeGeometry({
+ params,
+ width,
+ height,
+}: {
+ params: RectangleMaskParams;
+ width: number;
+ height: number;
+}) {
+ return {
+ centerX: width / 2 + params.centerX * width,
+ centerY: height / 2 + params.centerY * height,
+ maskWidth: Math.max(params.width, MIN_MASK_DIMENSION) * width,
+ maskHeight: Math.max(params.height, MIN_MASK_DIMENSION) * height,
+ rotationRad: (params.rotation * Math.PI) / 180,
+ };
+}
+
+export function computeBoxMaskParamUpdate({
+ handleId,
+ startParams,
+ deltaX,
+ deltaY,
+ bounds,
+}: MaskParamUpdateArgs<RectangleMaskParams>): ParamValues {
+ if (handleId === "position") {
+ return {
+ centerX: startParams.centerX + deltaX / bounds.width,
+ centerY: startParams.centerY + deltaY / bounds.height,
+ };
+ }
+
+ if (handleId === "rotation") {
+ const currentAngle = (Math.atan2(deltaY, deltaX) * 180) / Math.PI;
+ const newRotation = (startParams.rotation + currentAngle) % 360;
+ return { rotation: newRotation < 0 ? newRotation + 360 : newRotation };
+ }
+
+ if (handleId === "feather") {
+ const angleRad = (startParams.rotation * Math.PI) / 180;
+ return computeFeatherUpdate({
+ startFeather: startParams.feather,
+ deltaX,
+ deltaY,
+ directionX: -Math.sin(angleRad),
+ directionY: Math.cos(angleRad),
+ });
+ }
+
+ const halfWidth = startParams.width * bounds.width;
+ const halfHeight = startParams.height * bounds.height;
+
+ if (handleId === "right" || handleId === "left") {
+ const sign = handleId === "right" ? 1 : -1;
+ return {
+ width: Math.max(
+ MIN_MASK_DIMENSION,
+ startParams.width + (sign * deltaX * 2) / bounds.width,
+ ),
+ };
+ }
+
+ if (handleId === "bottom" || handleId === "top") {
+ const sign = handleId === "bottom" ? 1 : -1;
+ return {
+ height: Math.max(
+ MIN_MASK_DIMENSION,
+ startParams.height + (sign * deltaY * 2) / bounds.height,
+ ),
+ };
+ }
+
+ if (
+ handleId === "top-left" ||
+ handleId === "top-right" ||
+ handleId === "bottom-left" ||
+ handleId === "bottom-right"
+ ) {
+ const signX = handleId.includes("right") ? 1 : -1;
+ const signY = handleId.includes("bottom") ? 1 : -1;
+ const distance = Math.sqrt(
+ (signX * deltaX + halfWidth) ** 2 + (signY * deltaY + halfHeight) ** 2,
+ );
+ const originalDistance = Math.sqrt(halfWidth ** 2 + halfHeight ** 2);
+ const scale = originalDistance > 0 ? distance / originalDistance : 1;
+ return {
+ width: Math.max(MIN_MASK_DIMENSION, startParams.width * scale),
+ height: Math.max(MIN_MASK_DIMENSION, startParams.height * scale),
+ };
+ }
+
+ if (handleId === "scale") {
+ const distance = Math.sqrt(deltaX ** 2 + deltaY ** 2);
+ const originalDistance = Math.sqrt(halfWidth ** 2 + halfHeight ** 2);
+ const scale = originalDistance > 0 ? 1 + distance / originalDistance : 1;
+ return {
+ scale: Math.max(MIN_MASK_DIMENSION, startParams.scale * scale),
+ };
+ }
+
+ return {};
+}
+
+export function rotatePoint({
+ x,
+ y,
+ centerX,
+ centerY,
+ rotationRad,
+}: {
+ x: number;
+ y: number;
+ centerX: number;
+ centerY: number;
+ rotationRad: number;
+}) {
+ const dx = x - centerX;
+ const dy = y - centerY;
+ const cos = Math.cos(rotationRad);
+ const sin = Math.sin(rotationRad);
+
+ return {
+ x: centerX + dx * cos - dy * sin,
+ y: centerY + dx * sin + dy * cos,
+ };
+}
diff --git a/apps/web/src/lib/masks/definitions/ellipse.ts b/apps/web/src/lib/masks/definitions/ellipse.ts
new file mode 100644
index 00000000..45d0a7c0
--- /dev/null
+++ b/apps/web/src/lib/masks/definitions/ellipse.ts
@@ -0,0 +1,72 @@
+import type { MaskDefinition, RectangleMaskParams } from "@/lib/masks/types";
+import {
+ BOX_LIKE_MASK_PARAMS,
+ computeBoxMaskParamUpdate,
+ getBoxLikeGeometry,
+ getDefaultSquareMaskParams,
+ getStrokeOffset,
+} from "./box-like";
+
+export const ellipseMaskDefinition: MaskDefinition<RectangleMaskParams> = {
+ type: "ellipse",
+ name: "Ellipse",
+ overlayShape: "box",
+ buildOverlayPath({ width, height }) {
+ const rx = Math.max((width - 1) / 2, 0);
+ const ry = Math.max((height - 1) / 2, 0);
+ const cx = width / 2;
+ const cy = height / 2;
+ return `M ${cx},${cy - ry} A ${rx},${ry} 0 1,1 ${cx},${cy + ry} A ${rx},${ry} 0 1,1 ${cx},${cy - ry} Z`;
+ },
+ features: {
+ hasPosition: true,
+ hasRotation: true,
+ sizeMode: "width-height",
+ },
+ params: BOX_LIKE_MASK_PARAMS,
+ buildDefault(context) {
+ return {
+ type: "ellipse",
+ params: getDefaultSquareMaskParams(context),
+ };
+ },
+ computeParamUpdate: computeBoxMaskParamUpdate,
+ renderer: {
+ buildPath({ resolvedParams, width, height }) {
+ const params = resolvedParams as RectangleMaskParams;
+ const { centerX, centerY, maskWidth, maskHeight, rotationRad } =
+ getBoxLikeGeometry({ params, width, height });
+ const path = new Path2D();
+ path.ellipse(
+ centerX,
+ centerY,
+ maskWidth / 2,
+ maskHeight / 2,
+ rotationRad,
+ 0,
+ Math.PI * 2,
+ );
+ return path;
+ },
+ buildStrokePath({ resolvedParams, width, height }) {
+ const params = resolvedParams as RectangleMaskParams;
+ const { centerX, centerY, maskWidth, maskHeight, rotationRad } =
+ getBoxLikeGeometry({ params, width, height });
+ const offset = getStrokeOffset({
+ strokeAlign: params.strokeAlign,
+ strokeWidth: params.strokeWidth,
+ });
+ const path = new Path2D();
+ path.ellipse(
+ centerX,
+ centerY,
+ Math.max(1, maskWidth / 2 + offset),
+ Math.max(1, maskHeight / 2 + offset),
+ rotationRad,
+ 0,
+ Math.PI * 2,
+ );
+ return path;
+ },
+ },
+};
diff --git a/apps/web/src/lib/masks/definitions/index.ts b/apps/web/src/lib/masks/definitions/index.ts
new file mode 100644
index 00000000..c2affe30
--- /dev/null
+++ b/apps/web/src/lib/masks/definitions/index.ts
@@ -0,0 +1,39 @@
+import type { BaseMaskParams, MaskDefinition } from "@/lib/masks/types";
+import { masksRegistry, type MaskIconProps } from "../registry";
+import { ellipseMaskDefinition } from "./ellipse";
+import { rectangleMaskDefinition } from "./rectangle";
+import { splitMaskDefinition } from "./split";
+import {
+ PanelRightDashedIcon,
+ SquareIcon,
+ CircleIcon,
+} from "@hugeicons/core-free-icons";
+
+function registerDefaultMask<TParams extends BaseMaskParams>({
+ definition,
+ icon,
+}: {
+ definition: MaskDefinition<TParams>;
+ icon: MaskIconProps;
+}) {
+ if (masksRegistry.has(definition.type)) {
+ return;
+ }
+
+ masksRegistry.registerMask({ definition, icon });
+}
+
+export function registerDefaultMasks(): void {
+ registerDefaultMask({
+ definition: splitMaskDefinition,
+ icon: { icon: PanelRightDashedIcon, strokeWidth: 1 },
+ });
+ registerDefaultMask({
+ definition: rectangleMaskDefinition,
+ icon: { icon: SquareIcon },
+ });
+ registerDefaultMask({
+ definition: ellipseMaskDefinition,
+ icon: { icon: CircleIcon },
+ });
+}
diff --git a/apps/web/src/lib/masks/definitions/rectangle.ts b/apps/web/src/lib/masks/definitions/rectangle.ts
new file mode 100644
index 00000000..5b7f84a9
--- /dev/null
+++ b/apps/web/src/lib/masks/definitions/rectangle.ts
@@ -0,0 +1,94 @@
+import type { MaskDefinition, RectangleMaskParams } from "@/lib/masks/types";
+import {
+ BOX_LIKE_MASK_PARAMS,
+ computeBoxMaskParamUpdate,
+ getBoxLikeGeometry,
+ getDefaultSquareMaskParams,
+ getStrokeOffset,
+ rotatePoint,
+} from "./box-like";
+
+function buildRectanglePath({
+ centerX,
+ centerY,
+ halfWidth,
+ halfHeight,
+ rotationRad,
+}: {
+ centerX: number;
+ centerY: number;
+ halfWidth: number;
+ halfHeight: number;
+ rotationRad: number;
+}): Path2D {
+ const corners = [
+ { x: centerX - halfWidth, y: centerY - halfHeight },
+ { x: centerX + halfWidth, y: centerY - halfHeight },
+ { x: centerX + halfWidth, y: centerY + halfHeight },
+ { x: centerX - halfWidth, y: centerY + halfHeight },
+ ].map((point) =>
+ rotatePoint({
+ ...point,
+ centerX,
+ centerY,
+ rotationRad,
+ }),
+ );
+
+ const path = new Path2D();
+ path.moveTo(corners[0].x, corners[0].y);
+ for (const corner of corners.slice(1)) {
+ path.lineTo(corner.x, corner.y);
+ }
+ path.closePath();
+ return path;
+}
+
+export const rectangleMaskDefinition: MaskDefinition<RectangleMaskParams> = {
+ type: "rectangle",
+ name: "Rectangle",
+ overlayShape: "box",
+ features: {
+ hasPosition: true,
+ hasRotation: true,
+ sizeMode: "width-height",
+ },
+ params: BOX_LIKE_MASK_PARAMS,
+ buildDefault(context) {
+ return {
+ type: "rectangle",
+ params: getDefaultSquareMaskParams(context),
+ };
+ },
+ computeParamUpdate: computeBoxMaskParamUpdate,
+ renderer: {
+ buildPath({ resolvedParams, width, height }) {
+ const params = resolvedParams as RectangleMaskParams;
+ const { centerX, centerY, maskWidth, maskHeight, rotationRad } =
+ getBoxLikeGeometry({ params, width, height });
+ return buildRectanglePath({
+ centerX,
+ centerY,
+ halfWidth: maskWidth / 2,
+ halfHeight: maskHeight / 2,
+ rotationRad,
+ });
+ },
+ buildStrokePath({ resolvedParams, width, height }) {
+ const params = resolvedParams as RectangleMaskParams;
+ const { centerX, centerY, maskWidth, maskHeight, rotationRad } =
+ getBoxLikeGeometry({ params, width, height });
+ const offset = getStrokeOffset({
+ strokeAlign: params.strokeAlign,
+ strokeWidth: params.strokeWidth,
+ });
+ return buildRectanglePath({
+ centerX,
+ centerY,
+ halfWidth: Math.max(1, maskWidth / 2 + offset),
+ halfHeight: Math.max(1, maskHeight / 2 + offset),
+ rotationRad,
+ });
+ },
+ },
+};
diff --git a/apps/web/src/lib/masks/definitions/split.ts b/apps/web/src/lib/masks/definitions/split.ts
new file mode 100644
index 00000000..43f02db1
--- /dev/null
+++ b/apps/web/src/lib/masks/definitions/split.ts
@@ -0,0 +1,347 @@
+import { computeFeatherUpdate } from "../param-update";
+import type { ParamValues } from "@/lib/params";
+import type {
+ MaskDefinition,
+ MaskParamUpdateArgs,
+ SplitMaskParams,
+} from "@/lib/masks/types";
+import { halfPlaneSign, lineEdgeIntersection } from "../utils";
+
+// cos(π/2) returns ~6e-17 in JS, not 0. Values below this threshold are snapped
+// to exactly 0 to prevent opposite-sign float noise on canvas corners that lie
+// exactly on the split line, which produces spurious midpoint vertices.
+const NORMAL_SNAP_EPSILON = 1e-10;
+
+// Guards against collinear vertices from float noise at canvas edges.
+const MIN_POLYGON_AREA_PX = 0.5;
+const INTERSECTION_EPSILON = 1e-6;
+
+function polygonArea({ vertices }: { vertices: [number, number][] }): number {
+ let area = 0;
+ for (let i = 0; i < vertices.length; i++) {
+ const [x1, y1] = vertices[i];
+ const [x2, y2] = vertices[(i + 1) % vertices.length];
+ area += x1 * y2 - x2 * y1;
+ }
+ return Math.abs(area) * 0.5;
+}
+
+function splitLineGeometry({
+ centerX,
+ centerY,
+ rotation,
+ width,
+ height,
+}: {
+ centerX: number;
+ centerY: number;
+ rotation: number;
+ width: number;
+ height: number;
+}): { normalX: number; normalY: number; lineX: number; lineY: number } {
+ const angleRad = (rotation * Math.PI) / 180;
+ const normalX =
+ Math.abs(Math.cos(angleRad)) < NORMAL_SNAP_EPSILON ? 0 : Math.cos(angleRad);
+ const normalY =
+ Math.abs(Math.sin(angleRad)) < NORMAL_SNAP_EPSILON ? 0 : Math.sin(angleRad);
+ const lineX = width / 2 + centerX * width;
+ const lineY = height / 2 + centerY * height;
+ return { normalX, normalY, lineX, lineY };
+}
+
+function pointsEqual(
+ a: { x: number; y: number },
+ b: { x: number; y: number },
+): boolean {
+ return (
+ Math.abs(a.x - b.x) <= INTERSECTION_EPSILON &&
+ Math.abs(a.y - b.y) <= INTERSECTION_EPSILON
+ );
+}
+
+export function getSplitMaskStrokeSegment({
+ resolvedParams,
+ width,
+ height,
+}: {
+ resolvedParams: unknown;
+ width: number;
+ height: number;
+}): [{ x: number; y: number }, { x: number; y: number }] | null {
+ const { centerX, centerY, rotation } = resolvedParams as SplitMaskParams;
+ const { normalX, normalY, lineX, lineY } = splitLineGeometry({
+ centerX,
+ centerY,
+ rotation,
+ width,
+ height,
+ });
+
+ const edges: [number, number, number, number][] = [
+ [0, 0, width, 0],
+ [width, 0, width, height],
+ [width, height, 0, height],
+ [0, height, 0, 0],
+ ];
+ const intersections: { x: number; y: number }[] = [];
+
+ for (const [x1, y1, x2, y2] of edges) {
+ const hit = lineEdgeIntersection({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x1,
+ y1,
+ x2,
+ y2,
+ });
+
+ if (!hit || intersections.some((point) => pointsEqual(point, hit))) {
+ continue;
+ }
+
+ intersections.push(hit);
+ }
+
+ if (intersections.length !== 2) {
+ return null;
+ }
+
+ return [intersections[0], intersections[1]];
+}
+
+function computeSplitMaskParamUpdate({
+ handleId,
+ startParams,
+ deltaX,
+ deltaY,
+ startCanvasX,
+ startCanvasY,
+ bounds,
+ canvasSize,
+}: MaskParamUpdateArgs<SplitMaskParams>): ParamValues {
+ if (handleId === "position") {
+ const rawX = startParams.centerX + deltaX / bounds.width;
+ const rawY = startParams.centerY + deltaY / bounds.height;
+
+ const minX = -bounds.cx / bounds.width;
+ const maxX = (canvasSize.width - bounds.cx) / bounds.width;
+ const minY = -bounds.cy / bounds.height;
+ const maxY = (canvasSize.height - bounds.cy) / bounds.height;
+
+ return {
+ centerX: Math.max(minX, Math.min(maxX, rawX)),
+ centerY: Math.max(minY, Math.min(maxY, rawY)),
+ };
+ }
+
+ if (handleId === "feather") {
+ const angleRad = (startParams.rotation * Math.PI) / 180;
+ return computeFeatherUpdate({
+ startFeather: startParams.feather,
+ deltaX,
+ deltaY,
+ directionX: -Math.cos(angleRad),
+ directionY: -Math.sin(angleRad),
+ });
+ }
+
+ if (handleId === "rotation") {
+ const pivotX = bounds.cx + startParams.centerX * bounds.width;
+ const pivotY = bounds.cy + startParams.centerY * bounds.height;
+ const startAngle =
+ (Math.atan2(startCanvasY - pivotY, startCanvasX - pivotX) * 180) /
+ Math.PI;
+ const currentAngle =
+ (Math.atan2(
+ startCanvasY + deltaY - pivotY,
+ startCanvasX + deltaX - pivotX,
+ ) *
+ 180) /
+ Math.PI;
+
+ let deltaAngle = currentAngle - startAngle;
+ if (deltaAngle > 180) deltaAngle -= 360;
+ if (deltaAngle < -180) deltaAngle += 360;
+
+ return {
+ rotation: (((startParams.rotation + deltaAngle) % 360) + 360) % 360,
+ };
+ }
+
+ return {};
+}
+
+export const splitMaskDefinition: MaskDefinition<SplitMaskParams> = {
+ type: "split",
+ name: "Split",
+ overlayShape: "line",
+ features: {
+ hasPosition: true,
+ hasRotation: true,
+ sizeMode: "none",
+ },
+ buildDefault() {
+ return {
+ type: "split",
+ params: {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 0,
+ strokeAlign: "center",
+ centerX: 0,
+ centerY: 0,
+ rotation: 0,
+ },
+ };
+ },
+ computeParamUpdate: computeSplitMaskParamUpdate,
+ params: [
+ {
+ key: "centerX",
+ label: "X",
+ type: "number",
+ default: 0,
+ min: -100,
+ max: 100,
+ step: 1,
+ displayMultiplier: 100,
+ },
+ {
+ key: "centerY",
+ label: "Y",
+ type: "number",
+ default: 0,
+ min: -100,
+ max: 100,
+ step: 1,
+ displayMultiplier: 100,
+ },
+ {
+ key: "rotation",
+ label: "Rotation",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 360,
+ step: 1,
+ },
+ ],
+ renderer: {
+ renderMask({ resolvedParams, ctx, width, height, feather }) {
+ const { centerX, centerY, rotation } = resolvedParams as SplitMaskParams;
+ const { normalX, normalY, lineX, lineY } = splitLineGeometry({
+ centerX,
+ centerY,
+ rotation,
+ width,
+ height,
+ });
+
+ // Analytical gradient avoids JFA's two-sided distance artifact near canvas edges.
+ const featherHalf = feather / 2;
+ const gradient = ctx.createLinearGradient(
+ lineX - normalX * featherHalf,
+ lineY - normalY * featherHalf,
+ lineX + normalX * featherHalf,
+ lineY + normalY * featherHalf,
+ );
+ gradient.addColorStop(0, "rgba(255,255,255,0)");
+ gradient.addColorStop(1, "white");
+
+ ctx.fillStyle = gradient;
+ ctx.fillRect(0, 0, width, height);
+ },
+
+ buildPath({ resolvedParams, width, height }) {
+ const { centerX, centerY, rotation } = resolvedParams as SplitMaskParams;
+ const { normalX, normalY, lineX, lineY } = splitLineGeometry({
+ centerX,
+ centerY,
+ rotation,
+ width,
+ height,
+ });
+
+ const edges: [number, number, number, number][] = [
+ [0, 0, width, 0],
+ [width, 0, width, height],
+ [width, height, 0, height],
+ [0, height, 0, 0],
+ ];
+
+ const isInsideHalfPlane = (x: number, y: number) =>
+ halfPlaneSign({ lineX, lineY, normalX, normalY, x, y }) >= 0;
+
+ const vertices: [number, number][] = [];
+ for (const [x1, y1, x2, y2] of edges) {
+ const isVertex1Inside = isInsideHalfPlane(x1, y1);
+ const isVertex2Inside = isInsideHalfPlane(x2, y2);
+
+ if (isVertex1Inside && isVertex2Inside) {
+ vertices.push([x2, y2]);
+ } else if (isVertex1Inside && !isVertex2Inside) {
+ const hit = lineEdgeIntersection({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x1,
+ y1,
+ x2,
+ y2,
+ });
+ if (hit) vertices.push([hit.x, hit.y]);
+ } else if (!isVertex1Inside && isVertex2Inside) {
+ const hit = lineEdgeIntersection({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x1,
+ y1,
+ x2,
+ y2,
+ });
+ if (hit) {
+ vertices.push([hit.x, hit.y]);
+ vertices.push([x2, y2]);
+ }
+ }
+ }
+
+ if (
+ vertices.length < 3 ||
+ polygonArea({ vertices }) < MIN_POLYGON_AREA_PX
+ ) {
+ return new Path2D();
+ }
+
+ const path = new Path2D();
+ path.moveTo(vertices[0][0], vertices[0][1]);
+ for (let i = 1; i < vertices.length; i++) {
+ path.lineTo(vertices[i][0], vertices[i][1]);
+ }
+ path.closePath();
+ return path;
+ },
+ buildStrokePath({ resolvedParams, width, height }) {
+ const segment = getSplitMaskStrokeSegment({
+ resolvedParams,
+ width,
+ height,
+ });
+ const path = new Path2D();
+
+ if (!segment) {
+ return path;
+ }
+
+ path.moveTo(segment[0].x, segment[0].y);
+ path.lineTo(segment[1].x, segment[1].y);
+ return path;
+ },
+ },
+};
diff --git a/apps/web/src/lib/masks/geometry.ts b/apps/web/src/lib/masks/geometry.ts
new file mode 100644
index 00000000..c6d386f8
--- /dev/null
+++ b/apps/web/src/lib/masks/geometry.ts
@@ -0,0 +1,112 @@
+import type { ElementBounds } from "@/lib/preview/element-bounds";
+import type { SnapLine } from "@/lib/preview/preview-snap";
+import { MIN_MASK_DIMENSION } from "@/constants/mask-constants";
+import type { ParamValues } from "@/lib/params";
+import type { RectangleMaskParams } from "@/lib/masks/types";
+
+export function hasCenterParams(params: ParamValues): params is ParamValues & {
+ centerX: number;
+ centerY: number;
+} {
+ return (
+ typeof params.centerX === "number" && typeof params.centerY === "number"
+ );
+}
+
+export function isRectangleMaskParams(
+ params: ParamValues,
+): params is RectangleMaskParams {
+ return (
+ hasCenterParams(params) &&
+ typeof params.width === "number" &&
+ typeof params.height === "number" &&
+ typeof params.rotation === "number" &&
+ typeof params.scale === "number"
+ );
+}
+
+export function getMaskLocalCenter({
+ params,
+ bounds,
+}: {
+ params: ParamValues;
+ bounds: ElementBounds;
+}): { x: number; y: number } | null {
+ if (!hasCenterParams(params)) return null;
+
+ return {
+ x: params.centerX * bounds.width,
+ y: params.centerY * bounds.height,
+ };
+}
+
+export function setMaskLocalCenter({
+ center,
+ bounds,
+}: {
+ center: { x: number; y: number };
+ bounds: ElementBounds;
+}): Pick<ParamValues, "centerX" | "centerY"> {
+ return {
+ centerX: bounds.width === 0 ? 0 : center.x / bounds.width,
+ centerY: bounds.height === 0 ? 0 : center.y / bounds.height,
+ };
+}
+
+export function getMaskSnapGeometry({
+ params,
+ bounds,
+}: {
+ params: ParamValues;
+ bounds: ElementBounds;
+}): {
+ position: { x: number; y: number };
+ size: { width: number; height: number };
+ rotation: number;
+} | null {
+ const position = getMaskLocalCenter({ params, bounds });
+ if (!position) return null;
+
+ if (isRectangleMaskParams(params)) {
+ return {
+ position,
+ size: {
+ width: Math.max(params.width, MIN_MASK_DIMENSION) * bounds.width,
+ height: Math.max(params.height, MIN_MASK_DIMENSION) * bounds.height,
+ },
+ rotation: params.rotation,
+ };
+ }
+
+ return {
+ position,
+ size: { width: 0, height: 0 },
+ rotation: typeof params.rotation === "number" ? params.rotation : 0,
+ };
+}
+
+export function toGlobalMaskSnapLines({
+ lines,
+ bounds,
+ canvasSize,
+}: {
+ lines: SnapLine[];
+ bounds: ElementBounds;
+ canvasSize: { width: number; height: number };
+}): SnapLine[] {
+ const centerX = bounds.cx - canvasSize.width / 2;
+ const centerY = bounds.cy - canvasSize.height / 2;
+
+ return lines.map((line) =>
+ line.type === "vertical"
+ ? {
+ type: "vertical" as const,
+ position: centerX + line.position,
+ }
+ : {
+ type: "horizontal" as const,
+ position: centerY + line.position,
+ },
+ );
+}
+
diff --git a/apps/web/src/lib/masks/handle-positions.ts b/apps/web/src/lib/masks/handle-positions.ts
new file mode 100644
index 00000000..753b17ce
--- /dev/null
+++ b/apps/web/src/lib/masks/handle-positions.ts
@@ -0,0 +1,382 @@
+import { FEATHER_HANDLE_SCALE } from "@/constants/mask-constants";
+import type { ElementBounds } from "@/lib/preview/element-bounds";
+import type {
+ MaskFeatures,
+ MaskHandlePosition,
+ MaskLinePoints,
+ MaskOverlayShape,
+} from "@/lib/masks/types";
+import type { ParamValues } from "@/lib/params";
+
+const LINE_HANDLE_OFFSET_SCREEN_PX = 20;
+const BOX_HANDLE_OFFSET_SCREEN_PX = 20;
+const LINE_EXTENT_MULTIPLIER = 50;
+
+const CURSOR = {
+ rotate: "cursor-crosshair",
+ resizeDiagonal: "cursor-nwse-resize",
+ resizeHorizontal: "cursor-ew-resize",
+ resizeVertical: "cursor-ns-resize",
+} as const;
+
+function getNumParam({
+ params,
+ key,
+ fallback,
+}: {
+ params: ParamValues;
+ key: string;
+ fallback: number;
+}): number {
+ const value = params[key];
+ return typeof value === "number" && !Number.isNaN(value) ? value : fallback;
+}
+
+/**
+ * The renderer defines the split line as:
+ * - normal direction: (cos(rotation), sin(rotation))
+ * - line direction (parallel to cut): (-sin(rotation), cos(rotation))
+ * - reference point: (centerX * width, centerY * height) from element centre
+ *
+ * So rotation=0 → normal points right → line runs vertically.
+ */
+export function getLineMaskLinePoints({
+ centerX,
+ centerY,
+ rotation,
+ bounds,
+}: {
+ centerX: number;
+ centerY: number;
+ rotation: number;
+ bounds: ElementBounds;
+}): MaskLinePoints {
+ const angleRad = (rotation * Math.PI) / 180;
+ const normalX = Math.cos(angleRad);
+ const normalY = Math.sin(angleRad);
+ const lineDirX = -normalY;
+ const lineDirY = normalX;
+
+ const cx = bounds.cx + centerX * bounds.width;
+ const cy = bounds.cy + centerY * bounds.height;
+
+ const extent = Math.max(bounds.width, bounds.height) * LINE_EXTENT_MULTIPLIER;
+
+ return {
+ start: {
+ x: cx - lineDirX * extent,
+ y: cy - lineDirY * extent,
+ },
+ end: {
+ x: cx + lineDirX * extent,
+ y: cy + lineDirY * extent,
+ },
+ };
+}
+
+export function getLineMaskHandlePositions({
+ centerX,
+ centerY,
+ rotation,
+ feather,
+ bounds,
+ displayScale,
+}: {
+ centerX: number;
+ centerY: number;
+ rotation: number;
+ feather: number;
+ bounds: ElementBounds;
+ displayScale: number;
+}): MaskHandlePosition[] {
+ const angleRad = (rotation * Math.PI) / 180;
+ const normalX = Math.cos(angleRad);
+ const normalY = Math.sin(angleRad);
+
+ const cx = bounds.cx + centerX * bounds.width;
+ const cy = bounds.cy + centerY * bounds.height;
+
+ const iconOffsetCanvas = LINE_HANDLE_OFFSET_SCREEN_PX / displayScale;
+ const featherOffset = iconOffsetCanvas + feather * FEATHER_HANDLE_SCALE;
+
+ return [
+ {
+ id: "rotation",
+ x: cx + normalX * iconOffsetCanvas,
+ y: cy + normalY * iconOffsetCanvas,
+ cursor: CURSOR.rotate,
+ },
+ {
+ id: "feather",
+ x: cx - normalX * featherOffset,
+ y: cy - normalY * featherOffset,
+ cursor: CURSOR.resizeHorizontal,
+ },
+ ];
+}
+
+function rotatePoint({
+ localX,
+ localY,
+ cx,
+ cy,
+ angleRad,
+}: {
+ localX: number;
+ localY: number;
+ cx: number;
+ cy: number;
+ angleRad: number;
+}): { x: number; y: number } {
+ const cos = Math.cos(angleRad);
+ const sin = Math.sin(angleRad);
+ return {
+ x: cx + localX * cos - localY * sin,
+ y: cy + localX * sin + localY * cos,
+ };
+}
+
+export function getBoxMaskHandlePositions({
+ centerX,
+ centerY,
+ width,
+ height,
+ rotation,
+ feather,
+ sizeMode,
+ bounds,
+ displayScale,
+}: {
+ centerX: number;
+ centerY: number;
+ width: number;
+ height: number;
+ rotation: number;
+ feather: number;
+ sizeMode: MaskFeatures["sizeMode"];
+ bounds: ElementBounds;
+ displayScale: number;
+}): MaskHandlePosition[] {
+ const cx = bounds.cx + centerX * bounds.width;
+ const cy = bounds.cy + centerY * bounds.height;
+ const angleRad = (rotation * Math.PI) / 180;
+ const halfWidth = (width * bounds.width) / 2;
+ const halfHeight = (height * bounds.height) / 2;
+
+ const handles: MaskHandlePosition[] = [];
+ const handleOffsetCanvas = BOX_HANDLE_OFFSET_SCREEN_PX / displayScale;
+
+ const rotHandle = rotatePoint({
+ localX: 0,
+ localY: -halfHeight - handleOffsetCanvas,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "rotation",
+ x: rotHandle.x,
+ y: rotHandle.y,
+ cursor: CURSOR.rotate,
+ });
+
+ const featherHandle = rotatePoint({
+ localX: 0,
+ localY: halfHeight + handleOffsetCanvas + feather * FEATHER_HANDLE_SCALE,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "feather",
+ x: featherHandle.x,
+ y: featherHandle.y,
+ cursor: CURSOR.resizeVertical,
+ });
+
+ if (sizeMode === "width-height") {
+ const corners = [
+ { localX: -halfWidth, localY: -halfHeight, id: "top-left" },
+ { localX: halfWidth, localY: -halfHeight, id: "top-right" },
+ { localX: halfWidth, localY: halfHeight, id: "bottom-right" },
+ { localX: -halfWidth, localY: halfHeight, id: "bottom-left" },
+ ];
+ for (const { localX, localY, id } of corners) {
+ const point = rotatePoint({ localX, localY, cx, cy, angleRad });
+ handles.push({
+ id,
+ x: point.x,
+ y: point.y,
+ cursor: CURSOR.resizeDiagonal,
+ });
+ }
+ const right = rotatePoint({
+ localX: halfWidth,
+ localY: 0,
+ cx,
+ cy,
+ angleRad,
+ });
+ const left = rotatePoint({
+ localX: -halfWidth,
+ localY: 0,
+ cx,
+ cy,
+ angleRad,
+ });
+ const bottom = rotatePoint({
+ localX: 0,
+ localY: halfHeight,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "left",
+ x: left.x,
+ y: left.y,
+ cursor: CURSOR.resizeHorizontal,
+ });
+ handles.push({
+ id: "right",
+ x: right.x,
+ y: right.y,
+ cursor: CURSOR.resizeHorizontal,
+ });
+ handles.push({
+ id: "bottom",
+ x: bottom.x,
+ y: bottom.y,
+ cursor: CURSOR.resizeVertical,
+ });
+ } else if (sizeMode === "height-only") {
+ const top = rotatePoint({
+ localX: 0,
+ localY: -halfHeight,
+ cx,
+ cy,
+ angleRad,
+ });
+ const bottom = rotatePoint({
+ localX: 0,
+ localY: halfHeight,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "top",
+ x: top.x,
+ y: top.y,
+ cursor: CURSOR.resizeVertical,
+ });
+ handles.push({
+ id: "bottom",
+ x: bottom.x,
+ y: bottom.y,
+ cursor: CURSOR.resizeVertical,
+ });
+ } else if (sizeMode === "width-only") {
+ const left = rotatePoint({
+ localX: -halfWidth,
+ localY: 0,
+ cx,
+ cy,
+ angleRad,
+ });
+ const right = rotatePoint({
+ localX: halfWidth,
+ localY: 0,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "left",
+ x: left.x,
+ y: left.y,
+ cursor: CURSOR.resizeHorizontal,
+ });
+ handles.push({
+ id: "right",
+ x: right.x,
+ y: right.y,
+ cursor: CURSOR.resizeHorizontal,
+ });
+ } else if (sizeMode === "uniform") {
+ const point = rotatePoint({
+ localX: halfWidth,
+ localY: halfHeight,
+ cx,
+ cy,
+ angleRad,
+ });
+ handles.push({
+ id: "scale",
+ x: point.x,
+ y: point.y,
+ cursor: CURSOR.resizeDiagonal,
+ });
+ }
+
+ return handles;
+}
+
+type MaskHandleResolver = (args: {
+ features: MaskFeatures;
+ params: ParamValues;
+ bounds: ElementBounds;
+ displayScale: number;
+}) => MaskHandlePosition[];
+
+const rectangleHandles: MaskHandleResolver = ({
+ features,
+ params,
+ bounds,
+ displayScale,
+}) =>
+ getBoxMaskHandlePositions({
+ centerX: getNumParam({ params, key: "centerX", fallback: 0 }),
+ centerY: getNumParam({ params, key: "centerY", fallback: 0 }),
+ width: getNumParam({ params, key: "width", fallback: 1 }),
+ height: getNumParam({ params, key: "height", fallback: 1 }),
+ rotation: getNumParam({ params, key: "rotation", fallback: 0 }),
+ feather: getNumParam({ params, key: "feather", fallback: 0 }),
+ sizeMode: features.sizeMode,
+ bounds,
+ displayScale,
+ });
+
+const HANDLE_RESOLVERS: Record<MaskOverlayShape, MaskHandleResolver> = {
+ line: ({ params, bounds, displayScale }) =>
+ getLineMaskHandlePositions({
+ centerX: getNumParam({ params, key: "centerX", fallback: 0 }),
+ centerY: getNumParam({ params, key: "centerY", fallback: 0 }),
+ rotation: getNumParam({ params, key: "rotation", fallback: 0 }),
+ feather: getNumParam({ params, key: "feather", fallback: 0 }),
+ bounds,
+ displayScale,
+ }),
+ box: rectangleHandles,
+};
+
+export function getMaskHandlePositions({
+ overlayShape,
+ features,
+ params,
+ bounds,
+ displayScale,
+}: {
+ overlayShape: MaskOverlayShape;
+ features: MaskFeatures;
+ params: ParamValues;
+ bounds: ElementBounds;
+ displayScale: number;
+}): MaskHandlePosition[] {
+ return HANDLE_RESOLVERS[overlayShape]({
+ features,
+ params,
+ bounds,
+ displayScale,
+ });
+}
diff --git a/apps/web/src/lib/masks/index.ts b/apps/web/src/lib/masks/index.ts
new file mode 100644
index 00000000..bc9f20b0
--- /dev/null
+++ b/apps/web/src/lib/masks/index.ts
@@ -0,0 +1,18 @@
+import type { Mask, MaskDefaultContext, MaskType } from "@/lib/masks/types";
+import { masksRegistry } from "./registry";
+import { generateUUID } from "@/utils/id";
+
+export { masksRegistry } from "./registry";
+export { registerDefaultMasks } from "./definitions";
+
+export function buildDefaultMaskInstance({
+ maskType,
+ elementSize,
+}: {
+ maskType: MaskType;
+ elementSize?: { width: number; height: number };
+}): Mask {
+ const definition = masksRegistry.get(maskType);
+ const context: MaskDefaultContext = { elementSize };
+ return { ...definition.buildDefault(context), id: generateUUID() } as Mask;
+}
diff --git a/apps/web/src/lib/masks/param-update.ts b/apps/web/src/lib/masks/param-update.ts
new file mode 100644
index 00000000..967a4be0
--- /dev/null
+++ b/apps/web/src/lib/masks/param-update.ts
@@ -0,0 +1,59 @@
+import { FEATHER_HANDLE_SCALE, MAX_FEATHER } from "@/constants/mask-constants";
+import { masksRegistry } from "@/lib/masks";
+import type { ParamValues } from "@/lib/params";
+import type {
+ BaseMaskParams,
+ MaskParamUpdateArgs,
+ MaskType,
+} from "@/lib/masks/types";
+
+function compactMaskParamValues({
+ params,
+}: {
+ params: Partial<ParamValues>;
+}): ParamValues {
+ const nextParams: ParamValues = {};
+ for (const [key, value] of Object.entries(params)) {
+ if (value !== undefined) {
+ nextParams[key] = value;
+ }
+ }
+ return nextParams;
+}
+
+export function computeFeatherUpdate({
+ startFeather,
+ deltaX,
+ deltaY,
+ directionX,
+ directionY,
+}: {
+ startFeather: number;
+ deltaX: number;
+ deltaY: number;
+ directionX: number;
+ directionY: number;
+}): ParamValues {
+ const projection = deltaX * directionX + deltaY * directionY;
+ return {
+ feather: Math.max(
+ 0,
+ Math.min(
+ MAX_FEATHER,
+ Math.round(startFeather + projection / FEATHER_HANDLE_SCALE),
+ ),
+ ),
+ };
+}
+
+export function computeMaskParamUpdate({
+ maskType,
+ ...args
+}: {
+ maskType: MaskType;
+} & MaskParamUpdateArgs<BaseMaskParams & ParamValues>): ParamValues {
+ const definition = masksRegistry.get(maskType);
+ return compactMaskParamValues({
+ params: definition.computeParamUpdate(args),
+ });
+}
diff --git a/apps/web/src/lib/masks/registry.ts b/apps/web/src/lib/masks/registry.ts
new file mode 100644
index 00000000..5a98cb41
--- /dev/null
+++ b/apps/web/src/lib/masks/registry.ts
@@ -0,0 +1,70 @@
+import { MAX_FEATHER } from "@/constants/mask-constants";
+import type { ParamDefinition } from "@/lib/params";
+import type { BaseMaskParams, MaskDefinition, MaskType } from "@/lib/masks/types";
+import type { HugeiconsIconProps } from "@hugeicons/react";
+import { DefinitionRegistry } from "@/lib/registry";
+
+export type MaskIconProps = {
+ icon: HugeiconsIconProps["icon"];
+ strokeWidth?: number;
+};
+
+const BASE_MASK_PARAM_DEFINITIONS: ParamDefinition<
+ keyof BaseMaskParams & string
+>[] = [
+ {
+ key: "feather",
+ label: "Feather",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: MAX_FEATHER,
+ step: 1,
+ unit: "percent",
+ },
+ {
+ key: "strokeWidth",
+ label: "Stroke width",
+ type: "number",
+ default: 0,
+ min: 0,
+ max: 100,
+ step: 1,
+ },
+ {
+ key: "strokeColor",
+ label: "Stroke color",
+ type: "color",
+ default: "#ffffff",
+ },
+];
+
+export type RegisteredMaskDefinition = MaskDefinition<BaseMaskParams> & {
+ icon: MaskIconProps;
+};
+
+export class MasksRegistry extends DefinitionRegistry<
+ MaskType,
+ RegisteredMaskDefinition
+> {
+ constructor() {
+ super("mask");
+ }
+
+ registerMask<TParams extends BaseMaskParams>({
+ definition,
+ icon,
+ }: {
+ definition: MaskDefinition<TParams>;
+ icon: MaskIconProps;
+ }): void {
+ const withBaseParams: RegisteredMaskDefinition = {
+ ...definition,
+ params: [...definition.params, ...BASE_MASK_PARAM_DEFINITIONS],
+ icon,
+ };
+ this.register(definition.type, withBaseParams);
+ }
+}
+
+export const masksRegistry = new MasksRegistry();
diff --git a/apps/web/src/lib/masks/shaders/jfa-distance.frag.glsl b/apps/web/src/lib/masks/shaders/jfa-distance.frag.glsl
new file mode 100644
index 00000000..4ba2c5a1
--- /dev/null
+++ b/apps/web/src/lib/masks/shaders/jfa-distance.frag.glsl
@@ -0,0 +1,36 @@
+precision mediump float;
+
+uniform sampler2D u_texture;
+uniform sampler2D u_jfa_outside;
+uniform vec2 u_resolution;
+uniform float u_feather_half;
+
+varying vec2 v_texCoord;
+
+vec2 decodeSeed(vec4 encoded) {
+ float x = floor(encoded.r * 255.0 + 0.5) * 256.0 + floor(encoded.g * 255.0 + 0.5);
+ float y = floor(encoded.b * 255.0 + 0.5) * 256.0 + floor(encoded.a * 255.0 + 0.5);
+ return vec2(x, y);
+}
+
+bool isNoSeed(vec4 encoded) {
+ return encoded.r > 0.99 && encoded.g > 0.99 && encoded.b > 0.99 && encoded.a > 0.99;
+}
+
+void main() {
+ vec2 pixelCoord = floor(v_texCoord * u_resolution);
+
+ vec4 insideEncoded = texture2D(u_texture, v_texCoord);
+ vec4 outsideEncoded = texture2D(u_jfa_outside, v_texCoord);
+
+ bool hasInside = !isNoSeed(insideEncoded);
+ bool hasOutside = !isNoSeed(outsideEncoded);
+
+ float distToInside = hasInside ? distance(pixelCoord, decodeSeed(insideEncoded)) : 1e5;
+ float distToOutside = hasOutside ? distance(pixelCoord, decodeSeed(outsideEncoded)) : 1e5;
+
+ float signedDist = distToOutside - distToInside;
+ float alpha = smoothstep(-u_feather_half, u_feather_half, signedDist);
+
+ gl_FragColor = vec4(alpha, alpha, alpha, alpha);
+}
diff --git a/apps/web/src/lib/masks/snap.ts b/apps/web/src/lib/masks/snap.ts
new file mode 100644
index 00000000..83cc0e99
--- /dev/null
+++ b/apps/web/src/lib/masks/snap.ts
@@ -0,0 +1,335 @@
+import type { ElementBounds } from "@/lib/preview/element-bounds";
+import { MIN_MASK_DIMENSION } from "@/constants/mask-constants";
+import {
+ snapPosition,
+ snapRotation,
+ snapScale,
+ snapScaleAxes,
+ type ScaleEdgePreference,
+ type SnapLine,
+} from "@/lib/preview/preview-snap";
+import type { ParamValues } from "@/lib/params";
+import {
+ isRectangleMaskParams,
+ getMaskSnapGeometry,
+ setMaskLocalCenter,
+ toGlobalMaskSnapLines,
+} from "./geometry";
+
+type MaskSnapResult = {
+ params: ParamValues;
+ activeLines: SnapLine[];
+};
+
+const CORNER_SIZE_HANDLES = new Set([
+ "top-left",
+ "top-right",
+ "bottom-left",
+ "bottom-right",
+]);
+
+function getClampedRatio({
+ next,
+ base,
+}: {
+ next: number;
+ base: number;
+}): number {
+ return (
+ Math.max(next, MIN_MASK_DIMENSION) / Math.max(base, MIN_MASK_DIMENSION)
+ );
+}
+
+function getPreferredEdges({
+ handleId,
+}: {
+ handleId: string;
+}): ScaleEdgePreference | undefined {
+ const preferredEdges = {
+ left:
+ handleId === "left" ||
+ handleId === "top-left" ||
+ handleId === "bottom-left",
+ right:
+ handleId === "right" ||
+ handleId === "top-right" ||
+ handleId === "bottom-right",
+ top:
+ handleId === "top" || handleId === "top-left" || handleId === "top-right",
+ bottom:
+ handleId === "bottom" ||
+ handleId === "bottom-left" ||
+ handleId === "bottom-right",
+ } satisfies ScaleEdgePreference;
+
+ return Object.values(preferredEdges).some(Boolean)
+ ? preferredEdges
+ : undefined;
+}
+
+function snapMaskPosition({
+ proposedParams,
+ bounds,
+ canvasSize,
+ snapThreshold,
+}: {
+ proposedParams: ParamValues;
+ bounds: ElementBounds;
+ canvasSize: { width: number; height: number };
+ snapThreshold: { x: number; y: number };
+}): MaskSnapResult {
+ const geometry = getMaskSnapGeometry({
+ params: proposedParams,
+ bounds,
+ });
+ if (!geometry) {
+ return { params: proposedParams, activeLines: [] };
+ }
+
+ const { snappedPosition, activeLines } = snapPosition({
+ proposedPosition: geometry.position,
+ canvasSize: bounds,
+ elementSize: geometry.size,
+ rotation: geometry.rotation,
+ snapThreshold,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ ...setMaskLocalCenter({
+ center: snappedPosition,
+ bounds,
+ }),
+ },
+ activeLines: toGlobalMaskSnapLines({
+ lines: activeLines,
+ bounds,
+ canvasSize,
+ }),
+ };
+}
+
+function snapMaskRotation({
+ proposedParams,
+}: {
+ proposedParams: ParamValues;
+}): MaskSnapResult {
+ if (typeof proposedParams.rotation !== "number") {
+ return { params: proposedParams, activeLines: [] };
+ }
+
+ const { snappedRotation } = snapRotation({
+ proposedRotation: proposedParams.rotation,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ rotation: snappedRotation,
+ },
+ activeLines: [],
+ };
+}
+
+function snapBoxMaskSize({
+ handleId,
+ startParams,
+ proposedParams,
+ bounds,
+ canvasSize,
+ snapThreshold,
+}: {
+ handleId: string;
+ startParams: ParamValues;
+ proposedParams: ParamValues;
+ bounds: ElementBounds;
+ canvasSize: { width: number; height: number };
+ snapThreshold: { x: number; y: number };
+}): MaskSnapResult {
+ if (
+ !isRectangleMaskParams(startParams) ||
+ !isRectangleMaskParams(proposedParams)
+ ) {
+ return { params: proposedParams, activeLines: [] };
+ }
+
+ const geometry = getMaskSnapGeometry({
+ params: proposedParams,
+ bounds,
+ });
+ if (!geometry) {
+ return { params: proposedParams, activeLines: [] };
+ }
+
+ const localCanvasSize = bounds;
+ const baseWidth =
+ Math.max(startParams.width, MIN_MASK_DIMENSION) * bounds.width;
+ const baseHeight =
+ Math.max(startParams.height, MIN_MASK_DIMENSION) * bounds.height;
+ const preferredEdges = getPreferredEdges({ handleId });
+
+ if (handleId === "right" || handleId === "left") {
+ const proposedScaleX = getClampedRatio({
+ next: proposedParams.width,
+ base: startParams.width,
+ });
+ const { x } = snapScaleAxes({
+ proposedScaleX,
+ proposedScaleY: 1,
+ position: geometry.position,
+ baseWidth,
+ baseHeight,
+ rotation: proposedParams.rotation,
+ canvasSize: localCanvasSize,
+ snapThreshold,
+ preferredEdges,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ width: Math.max(MIN_MASK_DIMENSION, startParams.width * x.snappedScale),
+ },
+ activeLines: toGlobalMaskSnapLines({
+ lines: x.activeLines,
+ bounds,
+ canvasSize,
+ }),
+ };
+ }
+
+ if (handleId === "top" || handleId === "bottom") {
+ const proposedScaleY = getClampedRatio({
+ next: proposedParams.height,
+ base: startParams.height,
+ });
+ const { y } = snapScaleAxes({
+ proposedScaleX: 1,
+ proposedScaleY,
+ position: geometry.position,
+ baseWidth,
+ baseHeight,
+ rotation: proposedParams.rotation,
+ canvasSize: localCanvasSize,
+ snapThreshold,
+ preferredEdges,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ height: Math.max(
+ MIN_MASK_DIMENSION,
+ startParams.height * y.snappedScale,
+ ),
+ },
+ activeLines: toGlobalMaskSnapLines({
+ lines: y.activeLines,
+ bounds,
+ canvasSize,
+ }),
+ };
+ }
+
+ if (handleId === "scale") {
+ const baseScale = Math.max(startParams.scale, MIN_MASK_DIMENSION);
+ const proposedScale = getClampedRatio({
+ next: proposedParams.scale,
+ base: startParams.scale,
+ });
+ const { snappedScale, activeLines } = snapScale({
+ proposedScale,
+ position: geometry.position,
+ baseWidth: baseWidth * baseScale,
+ baseHeight: baseHeight * baseScale,
+ rotation: proposedParams.rotation,
+ canvasSize: localCanvasSize,
+ snapThreshold,
+ preferredEdges,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ scale: Math.max(MIN_MASK_DIMENSION, startParams.scale * snappedScale),
+ },
+ activeLines: toGlobalMaskSnapLines({
+ lines: activeLines,
+ bounds,
+ canvasSize,
+ }),
+ };
+ }
+
+ if (CORNER_SIZE_HANDLES.has(handleId)) {
+ const proposedScale = getClampedRatio({
+ next: proposedParams.width,
+ base: startParams.width,
+ });
+ const { snappedScale, activeLines } = snapScale({
+ proposedScale,
+ position: geometry.position,
+ baseWidth,
+ baseHeight,
+ rotation: proposedParams.rotation,
+ canvasSize: localCanvasSize,
+ snapThreshold,
+ preferredEdges,
+ });
+
+ return {
+ params: {
+ ...proposedParams,
+ width: Math.max(MIN_MASK_DIMENSION, startParams.width * snappedScale),
+ height: Math.max(MIN_MASK_DIMENSION, startParams.height * snappedScale),
+ },
+ activeLines: toGlobalMaskSnapLines({
+ lines: activeLines,
+ bounds,
+ canvasSize,
+ }),
+ };
+ }
+
+ return { params: proposedParams, activeLines: [] };
+}
+
+export function snapMaskInteraction({
+ handleId,
+ startParams,
+ proposedParams,
+ bounds,
+ canvasSize,
+ snapThreshold,
+}: {
+ handleId: string;
+ startParams: ParamValues;
+ proposedParams: ParamValues;
+ bounds: ElementBounds;
+ canvasSize: { width: number; height: number };
+ snapThreshold: { x: number; y: number };
+}): MaskSnapResult {
+ if (handleId === "position") {
+ return snapMaskPosition({
+ proposedParams,
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+ }
+
+ if (handleId === "rotation") {
+ return snapMaskRotation({ proposedParams });
+ }
+
+ return snapBoxMaskSize({
+ handleId,
+ startParams,
+ proposedParams,
+ bounds,
+ canvasSize,
+ snapThreshold,
+ });
+}
+
diff --git a/apps/web/src/lib/masks/types.ts b/apps/web/src/lib/masks/types.ts
new file mode 100644
index 00000000..569ff0ff
--- /dev/null
+++ b/apps/web/src/lib/masks/types.ts
@@ -0,0 +1,115 @@
+import type { ElementBounds } from "@/lib/preview/element-bounds";
+import type { ParamDefinition, ParamValues } from "@/lib/params";
+
+export type MaskType = "split" | "rectangle" | "ellipse";
+
+export interface BaseMaskParams extends ParamValues {
+ feather: number;
+ inverted: boolean;
+ strokeColor: string;
+ strokeWidth: number;
+ strokeAlign: "inside" | "center" | "outside";
+}
+
+export interface SplitMaskParams extends BaseMaskParams {
+ centerX: number;
+ centerY: number;
+ rotation: number;
+}
+
+export interface RectangleMaskParams extends BaseMaskParams {
+ centerX: number;
+ centerY: number;
+ width: number;
+ height: number;
+ rotation: number;
+ scale: number;
+}
+
+export interface SplitMask {
+ id: string;
+ type: "split";
+ params: SplitMaskParams;
+}
+
+export interface RectangleMask {
+ id: string;
+ type: "rectangle";
+ params: RectangleMaskParams;
+}
+
+export interface EllipseMask {
+ id: string;
+ type: "ellipse";
+ params: RectangleMaskParams;
+}
+
+export type Mask = SplitMask | RectangleMask | EllipseMask;
+
+export interface MaskRenderer {
+ buildPath(params: {
+ resolvedParams: unknown;
+ width: number;
+ height: number;
+ }): Path2D;
+ buildStrokePath?: (params: {
+ resolvedParams: unknown;
+ width: number;
+ height: number;
+ }) => Path2D;
+ /** Renders the feathered mask directly onto ctx, bypassing JFA. */
+ renderMask?: (params: {
+ resolvedParams: unknown;
+ ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
+ width: number;
+ height: number;
+ feather: number;
+ }) => void;
+}
+
+export type MaskOverlayShape = "line" | "box";
+
+export interface MaskFeatures {
+ hasPosition: boolean;
+ hasRotation: boolean;
+ sizeMode: "none" | "uniform" | "width-height" | "height-only" | "width-only";
+}
+
+export interface MaskHandlePosition {
+ id: string;
+ x: number;
+ y: number;
+ cursor: string;
+}
+
+export interface MaskLinePoints {
+ start: { x: number; y: number };
+ end: { x: number; y: number };
+}
+
+export interface MaskDefaultContext {
+ elementSize?: { width: number; height: number };
+}
+
+export interface MaskParamUpdateArgs<TParams extends BaseMaskParams = BaseMaskParams> {
+ handleId: string;
+ startParams: TParams;
+ deltaX: number;
+ deltaY: number;
+ startCanvasX: number;
+ startCanvasY: number;
+ bounds: ElementBounds;
+ canvasSize: { width: number; height: number };
+}
+
+export interface MaskDefinition<TParams extends BaseMaskParams = BaseMaskParams> {
+ type: MaskType;
+ name: string;
+ overlayShape: MaskOverlayShape;
+ features: MaskFeatures;
+ params: ParamDefinition<keyof TParams & string>[];
+ renderer: MaskRenderer;
+ buildOverlayPath?: (params: { width: number; height: number }) => string;
+ buildDefault(context: MaskDefaultContext): Omit<Mask, "id">;
+ computeParamUpdate(args: MaskParamUpdateArgs<TParams>): ParamValues;
+}
diff --git a/apps/web/src/lib/masks/utils.ts b/apps/web/src/lib/masks/utils.ts
new file mode 100644
index 00000000..a9110237
--- /dev/null
+++ b/apps/web/src/lib/masks/utils.ts
@@ -0,0 +1,64 @@
+const LINE_PARALLEL_EPSILON = 1e-10;
+
+export function lineEdgeIntersection({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x1,
+ y1,
+ x2,
+ y2,
+}: {
+ lineX: number;
+ lineY: number;
+ normalX: number;
+ normalY: number;
+ x1: number;
+ y1: number;
+ x2: number;
+ y2: number;
+}): { x: number; y: number } | null {
+ const distance1 = halfPlaneSign({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x: x1,
+ y: y1,
+ });
+ const distance2 = halfPlaneSign({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x: x2,
+ y: y2,
+ });
+ const denom = distance1 - distance2;
+ if (Math.abs(denom) < LINE_PARALLEL_EPSILON) return null;
+ const t = distance1 / denom;
+ if (t < 0 || t > 1) return null;
+ return {
+ x: x1 + (x2 - x1) * t,
+ y: y1 + (y2 - y1) * t,
+ };
+}
+
+export function halfPlaneSign({
+ lineX,
+ lineY,
+ normalX,
+ normalY,
+ x,
+ y,
+}: {
+ lineX: number;
+ lineY: number;
+ normalX: number;
+ normalY: number;
+ x: number;
+ y: number;
+}): number {
+ return (x - lineX) * normalX + (y - lineY) * normalY;
+}
diff --git a/apps/web/src/lib/media/audio-mastering.ts b/apps/web/src/lib/media/audio-mastering.ts
new file mode 100644
index 00000000..29af223b
--- /dev/null
+++ b/apps/web/src/lib/media/audio-mastering.ts
@@ -0,0 +1,103 @@
+const MASTER_LIMITER_THRESHOLD_DB = -1;
+const MASTER_LIMITER_KNEE_DB = 0;
+const MASTER_LIMITER_RATIO = 20;
+const MASTER_LIMITER_ATTACK_SECONDS = 0.001;
+const MASTER_LIMITER_RELEASE_SECONDS = 0.12;
+const MASTER_OUTPUT_HEADROOM = 0.98;
+
+export function getAudioBufferPeak({
+ audioBuffer,
+}: {
+ audioBuffer: AudioBuffer;
+}): number {
+ let peak = 0;
+
+ for (let channel = 0; channel < audioBuffer.numberOfChannels; channel++) {
+ const channelData = audioBuffer.getChannelData(channel);
+ for (let index = 0; index < channelData.length; index++) {
+ const magnitude = Math.abs(channelData[index]);
+ if (magnitude > peak) {
+ peak = magnitude;
+ }
+ }
+ }
+
+ return peak;
+}
+
+export function createAudioMasteringChain({
+ audioContext,
+ destination,
+}: {
+ audioContext: AudioContext | OfflineAudioContext;
+ destination: AudioNode;
+}): {
+ input: GainNode;
+} {
+ const input = audioContext.createGain();
+ const limiter = audioContext.createDynamicsCompressor();
+ const outputGain = audioContext.createGain();
+
+ limiter.threshold.value = MASTER_LIMITER_THRESHOLD_DB;
+ limiter.knee.value = MASTER_LIMITER_KNEE_DB;
+ limiter.ratio.value = MASTER_LIMITER_RATIO;
+ limiter.attack.value = MASTER_LIMITER_ATTACK_SECONDS;
+ limiter.release.value = MASTER_LIMITER_RELEASE_SECONDS;
+ outputGain.gain.value = MASTER_OUTPUT_HEADROOM;
+
+ input.connect(limiter);
+ limiter.connect(outputGain);
+ outputGain.connect(destination);
+
+ return { input };
+}
+
+export async function applyAudioMasteringToBuffer({
+ audioBuffer,
+}: {
+ audioBuffer: AudioBuffer;
+}): Promise<AudioBuffer> {
+ if (getAudioBufferPeak({ audioBuffer }) <= MASTER_OUTPUT_HEADROOM) {
+ return audioBuffer;
+ }
+
+ const offlineContext = new OfflineAudioContext(
+ audioBuffer.numberOfChannels,
+ Math.max(1, audioBuffer.length),
+ audioBuffer.sampleRate,
+ );
+ const source = offlineContext.createBufferSource();
+ source.buffer = audioBuffer;
+
+ const { input } = createAudioMasteringChain({
+ audioContext: offlineContext,
+ destination: offlineContext.destination,
+ });
+ source.connect(input);
+ source.start(0);
+
+ const renderedBuffer = await offlineContext.startRendering();
+ clampAudioBufferPeak({
+ audioBuffer: renderedBuffer,
+ maxPeak: MASTER_OUTPUT_HEADROOM,
+ });
+ return renderedBuffer;
+}
+
+function clampAudioBufferPeak({
+ audioBuffer,
+ maxPeak,
+}: {
+ audioBuffer: AudioBuffer;
+ maxPeak: number;
+}): void {
+ for (let channel = 0; channel < audioBuffer.numberOfChannels; channel++) {
+ const channelData = audioBuffer.getChannelData(channel);
+ for (let index = 0; index < channelData.length; index++) {
+ channelData[index] = Math.max(
+ -maxPeak,
+ Math.min(maxPeak, channelData[index]),
+ );
+ }
+ }
+}
diff --git a/apps/web/src/lib/media/audio.ts b/apps/web/src/lib/media/audio.ts
index e96f158b..41d3b38e 100644
--- a/apps/web/src/lib/media/audio.ts
+++ b/apps/web/src/lib/media/audio.ts
@@ -1,24 +1,44 @@
import type {
AudioElement,
LibraryAudioElement,
- TimelineElement,
+ RetimeConfig,
TimelineTrack,
-} from "@/types/timeline";
-import type { MediaAsset } from "@/types/assets";
+} from "@/lib/timeline";
+import { shouldMaintainPitch } from "@/constants/retime-constants";
+import type { MediaAsset } from "@/lib/media/types";
+import { applyAudioMasteringToBuffer } from "@/lib/media/audio-mastering";
+import type { AudioCapableElement } from "@/lib/timeline/audio-state";
+import {
+ hasAnimatedVolume,
+ resolveEffectiveAudioGain,
+} from "@/lib/timeline/audio-state";
import { canElementHaveAudio } from "@/lib/timeline/element-utils";
import { canTracktHaveAudio } from "@/lib/timeline";
import { mediaSupportsAudio } from "@/lib/media/media-utils";
+import { getSourceTimeAtClipTime, renderRetimedBuffer } from "@/lib/retime";
import { Input, ALL_FORMATS, BlobSource, AudioBufferSink } from "mediabunny";
const MAX_AUDIO_CHANNELS = 2;
const EXPORT_SAMPLE_RATE = 44100;
+const COARSE_SAMPLE_COUNT = 2048;
-export type CollectedAudioElement = Omit<
- AudioElement,
- "type" | "mediaId" | "volume" | "id" | "name" | "sourceType" | "sourceUrl"
-> & { buffer: AudioBuffer };
+export interface CollectedAudioElement {
+ timelineElement: AudioCapableElement;
+ buffer: AudioBuffer;
+ startTime: number;
+ duration: number;
+ trimStart: number;
+ trimEnd: number;
+ volume: number;
+ muted: boolean;
+ retime?: RetimeConfig;
+}
-export function createAudioContext({ sampleRate }: { sampleRate?: number } = {}): AudioContext {
+export function createAudioContext({
+ sampleRate,
+}: {
+ sampleRate?: number;
+} = {}): AudioContext {
const AudioContextConstructor =
window.AudioContext ||
(window as typeof window & { webkitAudioContext?: typeof AudioContext })
@@ -90,13 +110,21 @@ export async function collectAudioElements({
audioContext,
}).then((audioBuffer) => {
if (!audioBuffer) return null;
+ const muted = element.muted === true || isTrackMuted;
return {
+ timelineElement: element,
buffer: audioBuffer,
startTime: element.startTime,
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
- muted: element.muted || isTrackMuted,
+ volume: resolveEffectiveAudioGain({
+ element,
+ trackMuted: isTrackMuted,
+ localTime: 0,
+ }),
+ muted,
+ retime: element.retime,
};
}),
);
@@ -113,14 +141,21 @@ export async function collectAudioElements({
audioContext,
}).then((audioBuffer) => {
if (!audioBuffer) return null;
- const elementMuted = element.muted ?? false;
+ const muted = (element.muted ?? false) || isTrackMuted;
return {
+ timelineElement: element,
buffer: audioBuffer,
startTime: element.startTime,
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
- muted: elementMuted || isTrackMuted,
+ volume: resolveEffectiveAudioGain({
+ element,
+ trackMuted: isTrackMuted,
+ localTime: 0,
+ }),
+ muted,
+ retime: element.retime,
};
}),
);
@@ -199,7 +234,10 @@ async function resolveAudioBufferForVideoElement({
if (chunks.length === 0) return null;
const nativeSampleRate = chunks[0].sampleRate;
- const numChannels = Math.min(MAX_AUDIO_CHANNELS, chunks[0].numberOfChannels);
+ const numChannels = Math.min(
+ MAX_AUDIO_CHANNELS,
+ chunks[0].numberOfChannels,
+ );
const nativeChannels = Array.from(
{ length: numChannels },
@@ -208,17 +246,29 @@ async function resolveAudioBufferForVideoElement({
let offset = 0;
for (const chunk of chunks) {
for (let channel = 0; channel < numChannels; channel++) {
- const sourceData = chunk.getChannelData(Math.min(channel, chunk.numberOfChannels - 1));
+ const sourceData = chunk.getChannelData(
+ Math.min(channel, chunk.numberOfChannels - 1),
+ );
nativeChannels[channel].set(sourceData, offset);
}
offset += chunk.length;
}
// use OfflineAudioContext for high-quality resampling to target rate
- const outputSamples = Math.ceil(totalSamples * (targetSampleRate / nativeSampleRate));
- const offlineContext = new OfflineAudioContext(numChannels, outputSamples, targetSampleRate);
+ const outputSamples = Math.ceil(
+ totalSamples * (targetSampleRate / nativeSampleRate),
+ );
+ const offlineContext = new OfflineAudioContext(
+ numChannels,
+ outputSamples,
+ targetSampleRate,
+ );
- const nativeBuffer = audioContext.createBuffer(numChannels, totalSamples, nativeSampleRate);
+ const nativeBuffer = audioContext.createBuffer(
+ numChannels,
+ totalSamples,
+ nativeSampleRate,
+ );
for (let ch = 0; ch < numChannels; ch++) {
nativeBuffer.copyToChannel(nativeChannels[ch], ch);
}
@@ -238,14 +288,18 @@ async function resolveAudioBufferForVideoElement({
}
interface AudioMixSource {
+ timelineElement: AudioCapableElement;
file: File;
startTime: number;
duration: number;
trimStart: number;
trimEnd: number;
+ volume: number;
+ retime?: RetimeConfig;
}
export interface AudioClipSource {
+ timelineElement: AudioCapableElement;
id: string;
sourceKey: string;
file: File;
@@ -253,13 +307,17 @@ export interface AudioClipSource {
duration: number;
trimStart: number;
trimEnd: number;
+ volume: number;
muted: boolean;
+ retime?: RetimeConfig;
}
async function fetchLibraryAudioSource({
element,
+ volume,
}: {
element: LibraryAudioElement;
+ volume: number;
}): Promise<AudioMixSource | null> {
try {
const response = await fetch(element.sourceUrl);
@@ -273,11 +331,14 @@ async function fetchLibraryAudioSource({
});
return {
+ timelineElement: element,
file,
startTime: element.startTime,
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
+ volume,
+ retime: element.retime,
};
} catch (error) {
console.warn("Failed to fetch library audio:", error);
@@ -288,9 +349,11 @@ async function fetchLibraryAudioSource({
async function fetchLibraryAudioClip({
element,
muted,
+ volume,
}: {
element: LibraryAudioElement;
muted: boolean;
+ volume: number;
}): Promise<AudioClipSource | null> {
try {
const response = await fetch(element.sourceUrl);
@@ -304,6 +367,7 @@ async function fetchLibraryAudioClip({
});
return {
+ timelineElement: element,
id: element.id,
sourceKey: element.id,
file,
@@ -311,7 +375,9 @@ async function fetchLibraryAudioClip({
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
+ volume,
muted,
+ retime: element.retime,
};
} catch (error) {
console.warn("Failed to fetch library audio:", error);
@@ -322,16 +388,21 @@ async function fetchLibraryAudioClip({
function collectMediaAudioSource({
element,
mediaAsset,
+ volume,
}: {
- element: TimelineElement;
+ element: AudioCapableElement;
mediaAsset: MediaAsset;
+ volume: number;
}): AudioMixSource {
return {
+ timelineElement: element,
file: mediaAsset.file,
startTime: element.startTime,
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
+ volume,
+ retime: element.retime,
};
}
@@ -339,12 +410,15 @@ function collectMediaAudioClip({
element,
mediaAsset,
muted,
+ volume,
}: {
- element: TimelineElement;
+ element: AudioCapableElement;
mediaAsset: MediaAsset;
muted: boolean;
+ volume: number;
}): AudioClipSource {
return {
+ timelineElement: element,
id: element.id,
sourceKey: mediaAsset.id,
file: mediaAsset.file,
@@ -352,7 +426,9 @@ function collectMediaAudioClip({
duration: element.duration,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
+ volume,
muted,
+ retime: element.retime,
};
}
@@ -374,6 +450,11 @@ export async function collectAudioMixSources({
for (const element of track.elements) {
if (!canElementHaveAudio(element)) continue;
+ if (element.muted === true) continue;
+ const volume = resolveEffectiveAudioGain({
+ element,
+ localTime: 0,
+ });
if (element.type === "audio") {
if (element.sourceType === "upload") {
@@ -381,10 +462,12 @@ export async function collectAudioMixSources({
if (!mediaAsset) continue;
audioMixSources.push(
- collectMediaAudioSource({ element, mediaAsset }),
+ collectMediaAudioSource({ element, mediaAsset, volume }),
);
} else {
- pendingLibrarySources.push(fetchLibraryAudioSource({ element }));
+ pendingLibrarySources.push(
+ fetchLibraryAudioSource({ element, volume }),
+ );
}
continue;
}
@@ -395,7 +478,7 @@ export async function collectAudioMixSources({
if (mediaSupportsAudio({ media: mediaAsset })) {
audioMixSources.push(
- collectMediaAudioSource({ element, mediaAsset }),
+ collectMediaAudioSource({ element, mediaAsset, volume }),
);
}
}
@@ -432,6 +515,11 @@ export async function collectAudioClips({
const isElementMuted =
"muted" in element ? (element.muted ?? false) : false;
const muted = isTrackMuted || isElementMuted;
+ const volume = resolveEffectiveAudioGain({
+ element,
+ trackMuted: isTrackMuted,
+ localTime: 0,
+ });
if (element.type === "audio") {
if (element.sourceType === "upload") {
@@ -443,10 +531,13 @@ export async function collectAudioClips({
element,
mediaAsset,
muted,
+ volume,
}),
);
} else {
- pendingLibraryClips.push(fetchLibraryAudioClip({ element, muted }));
+ pendingLibraryClips.push(
+ fetchLibraryAudioClip({ element, muted, volume }),
+ );
}
continue;
}
@@ -461,6 +552,7 @@ export async function collectAudioClips({
element,
mediaAsset,
muted,
+ volume,
}),
);
}
@@ -510,36 +602,114 @@ export async function createTimelineAudioBuffer({
for (const element of audioElements) {
if (element.muted) continue;
+ const renderedBuffer = shouldMaintainPitch({
+ rate: element.retime?.rate ?? 1,
+ maintainPitch: element.retime?.maintainPitch,
+ })
+ ? await renderRetimedBuffer({
+ audioContext: context,
+ sourceBuffer: element.buffer,
+ trimStart: element.trimStart,
+ clipDuration: element.duration,
+ retime: element.retime,
+ maintainPitch: true,
+ })
+ : undefined;
+
mixAudioChannels({
element,
+ buffer: renderedBuffer ?? element.buffer,
+ trimStart: renderedBuffer ? 0 : element.trimStart,
+ retime: renderedBuffer ? undefined : element.retime,
outputBuffer,
outputLength,
sampleRate,
});
}
- return outputBuffer;
+ return await applyAudioMasteringToBuffer({ audioBuffer: outputBuffer });
+}
+
+export function computeGlobalMaxRms({
+ buffer,
+}: {
+ buffer: AudioBuffer;
+}): number {
+ const channels = buffer.numberOfChannels;
+ const step = Math.max(1, Math.floor(buffer.length / COARSE_SAMPLE_COUNT));
+ let globalMax = 0;
+
+ for (let c = 0; c < channels; c++) {
+ const data = buffer.getChannelData(c);
+ for (let i = 0; i + step <= buffer.length; i += step) {
+ for (let j = i; j < i + step; j++) {
+ const abs = Math.abs(data[j]);
+ if (abs > globalMax) globalMax = abs;
+ }
+ }
+ }
+
+ return globalMax || 1;
+}
+
+export function extractRmsRange({
+ buffer,
+ count,
+ startSample,
+ endSample,
+ globalMax,
+}: {
+ buffer: AudioBuffer;
+ count: number;
+ startSample: number;
+ endSample: number;
+ globalMax: number;
+}): number[] {
+ const channels = buffer.numberOfChannels;
+ const rangeLength = endSample - startSample;
+ const step = Math.max(1, Math.floor(rangeLength / count));
+ const peaks = new Float32Array(count);
+
+ for (let c = 0; c < channels; c++) {
+ const data = buffer.getChannelData(c);
+ for (let i = 0; i < count; i++) {
+ const start = startSample + i * step;
+ const end = Math.min(start + step, endSample);
+ for (let j = start; j < end; j++) {
+ const abs = Math.abs(data[j]);
+ if (abs > peaks[i]) peaks[i] = abs;
+ }
+ }
+ }
+
+ const norm = 1 / globalMax;
+ const result = new Array<number>(count);
+ for (let i = 0; i < count; i++) result[i] = Math.min(1, peaks[i] * norm);
+
+ return result;
}
function mixAudioChannels({
element,
+ buffer,
+ trimStart,
+ retime,
outputBuffer,
outputLength,
sampleRate,
}: {
element: CollectedAudioElement;
+ buffer: AudioBuffer;
+ trimStart: number;
+ retime?: RetimeConfig;
outputBuffer: AudioBuffer;
outputLength: number;
sampleRate: number;
}): void {
- const { buffer, startTime, trimStart, duration: elementDuration } = element;
+ const { startTime, duration: elementDuration } = element;
- const sourceStartSample = Math.floor(trimStart * buffer.sampleRate);
- const sourceLengthSamples = Math.floor(elementDuration * buffer.sampleRate);
const outputStartSample = Math.floor(startTime * sampleRate);
-
- const resampleRatio = sampleRate / buffer.sampleRate;
- const resampledLength = Math.floor(sourceLengthSamples * resampleRatio);
+ const renderedLength = Math.ceil(elementDuration * sampleRate);
const outputChannels = 2;
for (let channel = 0; channel < outputChannels; channel++) {
@@ -547,14 +717,29 @@ function mixAudioChannels({
const sourceChannel = Math.min(channel, buffer.numberOfChannels - 1);
const sourceData = buffer.getChannelData(sourceChannel);
- for (let i = 0; i < resampledLength; i++) {
+ for (let i = 0; i < renderedLength; i++) {
const outputIndex = outputStartSample + i;
if (outputIndex >= outputLength) break;
- const sourceIndex = sourceStartSample + Math.floor(i / resampleRatio);
+ const clipTime = i / sampleRate;
+ const sourceTime =
+ trimStart + getSourceTimeAtClipTime({ clipTime, retime });
+ const sourceIndex = sourceTime * buffer.sampleRate;
if (sourceIndex >= sourceData.length) break;
- outputData[outputIndex] += sourceData[sourceIndex];
+ const lowerIndex = Math.floor(sourceIndex);
+ const upperIndex = Math.min(sourceData.length - 1, lowerIndex + 1);
+ const fraction = sourceIndex - lowerIndex;
+ const gain = hasAnimatedVolume({ element: element.timelineElement })
+ ? resolveEffectiveAudioGain({
+ element: element.timelineElement,
+ localTime: clipTime,
+ })
+ : element.volume;
+ outputData[outputIndex] +=
+ (sourceData[lowerIndex] * (1 - fraction) +
+ sourceData[upperIndex] * fraction) *
+ gain;
}
}
}
diff --git a/apps/web/src/lib/media/media-utils.ts b/apps/web/src/lib/media/media-utils.ts
index 4b487bf2..52c08f0c 100644
--- a/apps/web/src/lib/media/media-utils.ts
+++ b/apps/web/src/lib/media/media-utils.ts
@@ -1,4 +1,4 @@
-import type { MediaAsset, MediaType } from "@/types/assets";
+import type { MediaAsset, MediaType } from "@/lib/media/types";
export const SUPPORTS_AUDIO: readonly MediaType[] = ["audio", "video"];
diff --git a/apps/web/src/lib/media/mediabunny.ts b/apps/web/src/lib/media/mediabunny.ts
index 11fe9837..c2d1d7f3 100644
--- a/apps/web/src/lib/media/mediabunny.ts
+++ b/apps/web/src/lib/media/mediabunny.ts
@@ -1,7 +1,7 @@
-import { Input, ALL_FORMATS, BlobSource, AudioBufferSink } from "mediabunny";
-import { collectAudioMixSources } from "@/lib/media/audio";
-import type { TimelineTrack } from "@/types/timeline";
-import type { MediaAsset } from "@/types/assets";
+import { Input, ALL_FORMATS, BlobSource } from "mediabunny";
+import { createTimelineAudioBuffer } from "@/lib/media/audio";
+import type { TimelineTrack } from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
export async function getVideoInfo({
videoFile,
@@ -12,6 +12,7 @@ export async function getVideoInfo({
width: number;
height: number;
fps: number;
+ hasAudio: boolean;
}> {
const input = new Input({
source: new BlobSource(videoFile),
@@ -27,12 +28,14 @@ export async function getVideoInfo({
const packetStats = await videoTrack.computePacketStats(100);
const fps = packetStats.averagePacketRate;
+ const audioTrack = await input.getPrimaryAudioTrack();
return {
duration,
width: videoTrack.displayWidth,
height: videoTrack.displayHeight,
fps,
+ hasAudio: audioTrack !== null,
};
}
@@ -54,12 +57,16 @@ export const extractTimelineAudio = async ({
return createWavBlob({ samples: new Float32Array(SAMPLE_RATE * 0.1) });
}
- const audioMixSources = await collectAudioMixSources({
+ onProgress?.(10);
+
+ const audioBuffer = await createTimelineAudioBuffer({
tracks,
mediaAssets,
+ duration: totalDuration,
+ sampleRate: SAMPLE_RATE,
});
- if (audioMixSources.length === 0) {
+ if (!audioBuffer) {
const silentDuration = Math.max(1, totalDuration);
const silentSamples = new Float32Array(
Math.ceil(silentDuration * SAMPLE_RATE) * NUM_CHANNELS,
@@ -67,108 +74,33 @@ export const extractTimelineAudio = async ({
return createWavBlob({ samples: silentSamples });
}
- const totalSamples = Math.ceil(totalDuration * SAMPLE_RATE);
- const mixBuffers = [
- new Float32Array(totalSamples),
- new Float32Array(totalSamples),
- ];
-
- for (let i = 0; i < audioMixSources.length; i++) {
- const source = audioMixSources[i];
-
- if (onProgress) {
- onProgress((i / audioMixSources.length) * 90);
- }
-
- try {
- await decodeAndMixAudioSource({
- source,
- mixBuffers,
- totalSamples,
- });
- } catch (error) {
- console.warn(
- `Failed to process audio source ${source.file.name}:`,
- error,
- );
- }
- }
-
- // clamp to prevent clipping
- for (const channel of mixBuffers) {
- for (let i = 0; i < channel.length; i++) {
- channel[i] = Math.max(-1, Math.min(1, channel[i]));
- }
- }
+ onProgress?.(90);
- // interleave channels for wav output
- const interleavedSamples = new Float32Array(totalSamples * NUM_CHANNELS);
- for (let i = 0; i < totalSamples; i++) {
- interleavedSamples[i * 2] = mixBuffers[0][i];
- interleavedSamples[i * 2 + 1] = mixBuffers[1][i];
- }
-
- if (onProgress) {
- onProgress(100);
- }
+ const interleavedSamples = interleaveAudioBuffer({ audioBuffer });
+ onProgress?.(100);
return createWavBlob({ samples: interleavedSamples });
};
-async function decodeAndMixAudioSource({
- source,
- mixBuffers,
- totalSamples,
+function interleaveAudioBuffer({
+ audioBuffer,
}: {
- source: {
- file: File;
- startTime: number;
- duration: number;
- trimStart: number;
- };
- mixBuffers: Float32Array[];
- totalSamples: number;
-}): Promise<void> {
- const input = new Input({
- source: new BlobSource(source.file),
- formats: ALL_FORMATS,
- });
-
- const audioTrack = await input.getPrimaryAudioTrack();
- if (!audioTrack) return;
-
- const sink = new AudioBufferSink(audioTrack);
- const trimEnd = source.trimStart + source.duration;
+ audioBuffer: AudioBuffer;
+}): Float32Array {
+ const numChannels = Math.min(NUM_CHANNELS, audioBuffer.numberOfChannels);
+ const interleavedSamples = new Float32Array(
+ audioBuffer.length * NUM_CHANNELS,
+ );
- for await (const { buffer, timestamp } of sink.buffers(
- source.trimStart,
- trimEnd,
- )) {
- const relativeTime = timestamp - source.trimStart;
- const outputStartSample = Math.floor(
- (source.startTime + relativeTime) * SAMPLE_RATE,
- );
-
- // resample if needed
- const resampleRatio = SAMPLE_RATE / buffer.sampleRate;
-
- for (let ch = 0; ch < NUM_CHANNELS; ch++) {
- const sourceChannel = Math.min(ch, buffer.numberOfChannels - 1);
- const channelData = buffer.getChannelData(sourceChannel);
- const outputChannel = mixBuffers[ch];
-
- const resampledLength = Math.floor(channelData.length * resampleRatio);
- for (let i = 0; i < resampledLength; i++) {
- const outputIdx = outputStartSample + i;
- if (outputIdx < 0 || outputIdx >= totalSamples) continue;
-
- const sourceIdx = Math.floor(i / resampleRatio);
- if (sourceIdx < channelData.length) {
- outputChannel[outputIdx] += channelData[sourceIdx];
- }
- }
+ for (let sampleIndex = 0; sampleIndex < audioBuffer.length; sampleIndex++) {
+ for (let channel = 0; channel < NUM_CHANNELS; channel++) {
+ const sourceChannel = Math.min(channel, Math.max(0, numChannels - 1));
+ interleavedSamples[sampleIndex * NUM_CHANNELS + channel] =
+ audioBuffer.getChannelData(sourceChannel)[sampleIndex] ?? 0;
}
}
+
+ return interleavedSamples;
}
function createWavBlob({ samples }: { samples: Float32Array }): Blob {
diff --git a/apps/web/src/lib/media/processing.ts b/apps/web/src/lib/media/processing.ts
index fbe29acd..547e7ed8 100644
--- a/apps/web/src/lib/media/processing.ts
+++ b/apps/web/src/lib/media/processing.ts
@@ -1,14 +1,34 @@
+import { Input, ALL_FORMATS, BlobSource, VideoSampleSink } from "mediabunny";
import { toast } from "sonner";
-import type { MediaAsset } from "@/types/assets";
import { getMediaTypeFromFile } from "@/lib/media/media-utils";
+import { formatStorageBytes } from "@/services/storage/quota";
+import { storageService } from "@/services/storage/service";
+import type { MediaAsset } from "@/lib/media/types";
import { getVideoInfo } from "./mediabunny";
-import { Input, ALL_FORMATS, BlobSource, VideoSampleSink } from "mediabunny";
export interface ProcessedMediaAsset extends Omit<MediaAsset, "id"> {}
const THUMBNAIL_MAX_WIDTH = 1280;
const THUMBNAIL_MAX_HEIGHT = 720;
+const getStorageLimitDescription = ({
+ fileSize,
+ availableBytes,
+}: {
+ fileSize: number;
+ availableBytes: number | null;
+}): string => {
+ const fileSizeLabel = formatStorageBytes({ bytes: fileSize });
+
+ if (availableBytes === null) {
+ return `File size is ${fileSizeLabel}.`;
+ }
+
+ return `File size is ${fileSizeLabel}, but only ${formatStorageBytes({
+ bytes: availableBytes,
+ })} is safely available in browser storage.`;
+};
+
const getThumbnailSize = ({
width,
height,
@@ -63,7 +83,7 @@ const renderToThumbnailDataUrl = ({
return canvas.toDataURL("image/jpeg", 0.8);
};
-export async function generateThumbnail({
+async function generateThumbnail({
videoFile,
timeInSeconds,
}: {
@@ -106,25 +126,29 @@ export async function generateThumbnail({
}
}
-export async function generateImageThumbnail({
+async function generateImageThumbnail({
imageFile,
}: {
imageFile: File;
-}): Promise<string> {
+}): Promise<{ thumbnailUrl: string; width: number; height: number }> {
return new Promise((resolve, reject) => {
const image = new window.Image();
const objectUrl = URL.createObjectURL(imageFile);
image.addEventListener("load", () => {
try {
- const dataUrl = renderToThumbnailDataUrl({
+ const thumbnailUrl = renderToThumbnailDataUrl({
width: image.naturalWidth,
height: image.naturalHeight,
draw: ({ context, width, height }) => {
context.drawImage(image, 0, 0, width, height);
},
});
- resolve(dataUrl);
+ resolve({
+ thumbnailUrl,
+ width: image.naturalWidth,
+ height: image.naturalHeight,
+ });
} catch (error) {
reject(
error instanceof Error ? error : new Error("Could not render image"),
@@ -166,19 +190,34 @@ export async function processMediaAssets({
continue;
}
+ const storageCheck = await storageService.canStoreFile({
+ size: file.size,
+ });
+
+ if (!storageCheck.canStore) {
+ toast.error(`Not enough browser storage for ${file.name}`, {
+ description: getStorageLimitDescription({
+ fileSize: file.size,
+ availableBytes: storageCheck.availableBytes,
+ }),
+ });
+ continue;
+ }
+
const url = URL.createObjectURL(file);
let thumbnailUrl: string | undefined;
let duration: number | undefined;
let width: number | undefined;
let height: number | undefined;
let fps: number | undefined;
+ let hasAudio: boolean | undefined;
try {
if (fileType === "image") {
- const dimensions = await getImageDimensions({ file });
- width = dimensions.width;
- height = dimensions.height;
- thumbnailUrl = await generateImageThumbnail({ imageFile: file });
+ const result = await generateImageThumbnail({ imageFile: file });
+ thumbnailUrl = result.thumbnailUrl;
+ width = result.width;
+ height = result.height;
} else if (fileType === "video") {
try {
const videoInfo = await getVideoInfo({ videoFile: file });
@@ -188,6 +227,7 @@ export async function processMediaAssets({
fps = Number.isFinite(videoInfo.fps)
? Math.round(videoInfo.fps)
: undefined;
+ hasAudio = videoInfo.hasAudio;
thumbnailUrl = await generateThumbnail({
videoFile: file,
@@ -211,6 +251,7 @@ export async function processMediaAssets({
width,
height,
fps,
+ hasAudio,
});
await new Promise((resolve) => setTimeout(resolve, 0));
@@ -230,33 +271,6 @@ export async function processMediaAssets({
return processedAssets;
}
-const getImageDimensions = ({
- file,
-}: {
- file: File;
-}): Promise<{ width: number; height: number }> => {
- return new Promise((resolve, reject) => {
- const img = new window.Image();
- const objectUrl = URL.createObjectURL(file);
-
- img.addEventListener("load", () => {
- const width = img.naturalWidth;
- const height = img.naturalHeight;
- resolve({ width, height });
- URL.revokeObjectURL(objectUrl);
- img.remove();
- });
-
- img.addEventListener("error", () => {
- reject(new Error("Could not load image"));
- URL.revokeObjectURL(objectUrl);
- img.remove();
- });
-
- img.src = objectUrl;
- });
-};
-
const getMediaDuration = ({ file }: { file: File }): Promise<number> => {
return new Promise((resolve, reject) => {
const element = document.createElement(
diff --git a/apps/web/src/types/assets.ts b/apps/web/src/lib/media/types.ts
index c8dddfc7..c8dddfc7 100644
--- a/apps/web/src/types/assets.ts
+++ b/apps/web/src/lib/media/types.ts
diff --git a/apps/web/src/lib/media/upload-toast.ts b/apps/web/src/lib/media/upload-toast.ts
new file mode 100644
index 00000000..e5c5ee28
--- /dev/null
+++ b/apps/web/src/lib/media/upload-toast.ts
@@ -0,0 +1,51 @@
+import { toast } from "sonner";
+
+export interface MediaUploadToastResult {
+ uploadedCount: number;
+ assetNames?: string[];
+}
+
+function getAssetLabel({ count }: { count: number }): string {
+ return count === 1 ? "media asset" : "media assets";
+}
+
+function waitForNextPaint(): Promise<void> {
+ return new Promise((resolve) => {
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => resolve());
+ });
+ });
+}
+
+export async function showMediaUploadToast<T extends MediaUploadToastResult>({
+ filesCount,
+ promise,
+}: {
+ filesCount: number;
+ promise: Promise<T> | (() => Promise<T>);
+}) {
+ const run = typeof promise === "function" ? promise : () => promise;
+ const toastPromise = toast.promise(async () => {
+ await waitForNextPaint();
+ return run();
+ }, {
+ loading: `Uploading ${getAssetLabel({ count: filesCount })}...`,
+ success: ({ uploadedCount, assetNames }) => {
+ if (uploadedCount === 1) {
+ const assetName = assetNames?.[0];
+ return assetName
+ ? `${assetName} has been uploaded`
+ : "1 media asset has been uploaded";
+ }
+
+ if (uploadedCount > 1) {
+ return `${uploadedCount} media assets have been uploaded`;
+ }
+
+ return "No media assets were uploaded";
+ },
+ error: `Failed to upload ${getAssetLabel({ count: filesCount })}`,
+ });
+
+ return toastPromise.unwrap();
+}
diff --git a/apps/web/src/lib/params.ts b/apps/web/src/lib/params.ts
new file mode 100644
index 00000000..23085407
--- /dev/null
+++ b/apps/web/src/lib/params.ts
@@ -0,0 +1,50 @@
+export type ParamValues = Record<string, number | string | boolean>;
+
+export type ParamGroup = "stroke";
+
+interface BaseParamDefinition<TKey extends string = string> {
+ key: TKey;
+ label: string;
+ group?: ParamGroup;
+}
+
+export interface NumberParamDefinition<TKey extends string = string>
+ extends BaseParamDefinition<TKey> {
+ type: "number";
+ default: number;
+ min: number;
+ max?: number;
+ step: number;
+ /** When set, min/max/step are in display space. display = stored * displayMultiplier. */
+ displayMultiplier?: number;
+ /** Show as percentage of max. min/max/step/default stay in stored space. */
+ unit?: "percent";
+ /** Short label shown as the scrub handle icon in the number field (e.g. "W", "R"). */
+ shortLabel?: string;
+}
+
+export interface BooleanParamDefinition<TKey extends string = string>
+ extends BaseParamDefinition<TKey> {
+ type: "boolean";
+ default: boolean;
+}
+
+export interface ColorParamDefinition<TKey extends string = string>
+ extends BaseParamDefinition<TKey> {
+ type: "color";
+ default: string;
+}
+
+export interface SelectParamDefinition<TKey extends string = string>
+ extends BaseParamDefinition<TKey> {
+ type: "select";
+ default: string;
+ options: Array<{ value: string; label: string }>;
+}
+
+export type ParamDefinition<TKey extends string = string> =
+ | NumberParamDefinition<TKey>
+ | BooleanParamDefinition<TKey>
+ | ColorParamDefinition<TKey>
+ | SelectParamDefinition<TKey>;
+
diff --git a/apps/web/src/lib/preview/element-bounds.ts b/apps/web/src/lib/preview/element-bounds.ts
index 08ffbfa8..5c416afc 100644
--- a/apps/web/src/lib/preview/element-bounds.ts
+++ b/apps/web/src/lib/preview/element-bounds.ts
@@ -1,17 +1,12 @@
-import type { TimelineTrack, TimelineElement } from "@/types/timeline";
-import type { MediaAsset } from "@/types/assets";
+import type { TimelineTrack, TimelineElement } from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
import { isMainTrack } from "@/lib/timeline";
-import {
- DEFAULT_TEXT_ELEMENT,
- DEFAULT_LINE_HEIGHT,
- DEFAULT_TEXT_BACKGROUND,
- FONT_SIZE_SCALE_REFERENCE,
-} from "@/constants/text-constants";
-import { getTextVisualRect, measureTextBlock } from "@/lib/text/layout";
+import { STICKER_INTRINSIC_SIZE_FALLBACK } from "@/constants/sticker-constants";
+import { DEFAULT_GRAPHIC_SOURCE_SIZE } from "@/lib/graphics";
+import { measureTextElement } from "@/lib/text/measure-element";
import {
getElementLocalTime,
resolveTransformAtTime,
- resolveNumberAtTime,
} from "@/lib/animation";
export interface ElementBounds {
@@ -41,7 +36,8 @@ function getVisualElementBounds({
sourceWidth: number;
sourceHeight: number;
transform: {
- scale: number;
+ scaleX: number;
+ scaleY: number;
position: { x: number; y: number };
rotate: number;
};
@@ -50,8 +46,8 @@ function getVisualElementBounds({
canvasWidth / sourceWidth,
canvasHeight / sourceHeight,
);
- const scaledWidth = sourceWidth * containScale * transform.scale;
- const scaledHeight = sourceHeight * containScale * transform.scale;
+ const scaledWidth = sourceWidth * containScale * transform.scaleX;
+ const scaledHeight = sourceHeight * containScale * transform.scaleY;
const cx = canvasWidth / 2 + transform.position.x;
const cy = canvasHeight / 2 + transform.position.y;
@@ -64,7 +60,53 @@ function getVisualElementBounds({
};
}
-export function getElementBounds({
+function getTransformedRectBounds({
+ canvasWidth,
+ canvasHeight,
+ rect,
+ transform,
+}: {
+ canvasWidth: number;
+ canvasHeight: number;
+ rect: { left: number; top: number; width: number; height: number };
+ transform: {
+ scaleX: number;
+ scaleY: number;
+ position: { x: number; y: number };
+ rotate: number;
+ };
+}): ElementBounds {
+ const localCenterX = rect.left + rect.width / 2;
+ const localCenterY = rect.top + rect.height / 2;
+ const scaledCenterX = localCenterX * transform.scaleX;
+ const scaledCenterY = localCenterY * transform.scaleY;
+ const rotationRad = (transform.rotate * Math.PI) / 180;
+ const cos = Math.cos(rotationRad);
+ const sin = Math.sin(rotationRad);
+ return {
+ cx:
+ canvasWidth / 2 +
+ transform.position.x +
+ scaledCenterX * cos -
+ scaledCenterY * sin,
+ cy:
+ canvasHeight / 2 +
+ transform.position.y +
+ scaledCenterX * sin +
+ scaledCenterY * cos,
+ width: rect.width * transform.scaleX,
+ height: rect.height * transform.scaleY,
+ rotation: transform.rotate,
+ };
+}
+
+/**
+ * Bounds policy: bounds reflect base content geometry (text glyphs + background,
+ * sticker/image/video content area) and base transform. Post-effect spill (blur,
+ * glow) and mask-clipped regions are intentionally excluded — handles manipulate
+ * the canonical element geometry, not visual effect output.
+ */
+function getElementBounds({
element,
canvasSize,
mediaAsset,
@@ -106,123 +148,118 @@ export function getElementBounds({
return getVisualElementBounds({
canvasWidth,
canvasHeight,
- sourceWidth: 200,
- sourceHeight: 200,
+ sourceWidth: element.intrinsicWidth ?? STICKER_INTRINSIC_SIZE_FALLBACK,
+ sourceHeight: element.intrinsicHeight ?? STICKER_INTRINSIC_SIZE_FALLBACK,
transform,
});
}
- if (element.type === "text") {
+ if (element.type === "graphic") {
const transform = resolveTransformAtTime({
baseTransform: element.transform,
animations: element.animations,
localTime,
});
- const scaledFontSize =
- element.fontSize * (canvasHeight / FONT_SIZE_SCALE_REFERENCE);
- const letterSpacing = element.letterSpacing ?? 0;
- const lineHeight = element.lineHeight ?? DEFAULT_LINE_HEIGHT;
- const lineHeightPx = scaledFontSize * lineHeight;
+ return getVisualElementBounds({
+ canvasWidth,
+ canvasHeight,
+ sourceWidth: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ sourceHeight: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ transform,
+ });
+ }
- let measuredWidth = 100;
- let measuredHeight = scaledFontSize;
+ if (element.type === "text") {
+ const transform = resolveTransformAtTime({
+ baseTransform: element.transform,
+ animations: element.animations,
+ localTime,
+ });
const canvas = document.createElement("canvas");
- canvas.width = 4096;
- canvas.height = 4096;
const ctx = canvas.getContext("2d");
+ if (!ctx) return null;
- if (ctx) {
- const fontWeight = element.fontWeight === "bold" ? "bold" : "normal";
- const fontStyle = element.fontStyle === "italic" ? "italic" : "normal";
- const fontFamily = `"${element.fontFamily.replace(/"/g, '\\"')}"`;
- ctx.font = `${fontStyle} ${fontWeight} ${scaledFontSize}px ${fontFamily}, sans-serif`;
- ctx.textAlign = element.textAlign as CanvasTextAlign;
- if ("letterSpacing" in ctx) {
- (
- ctx as CanvasRenderingContext2D & { letterSpacing: string }
- ).letterSpacing = `${letterSpacing}px`;
- }
-
- const lines = element.content.split("\n");
- const lineMetrics = lines.map((line) => ctx.measureText(line));
- const block = measureTextBlock({
- lineMetrics,
- lineHeightPx,
- fallbackFontSize: scaledFontSize,
- });
- const fontSizeRatio = element.fontSize / DEFAULT_TEXT_ELEMENT.fontSize;
- const resolvedBackground = {
- ...element.background,
- paddingX: resolveNumberAtTime({
- baseValue:
- element.background.paddingX ?? DEFAULT_TEXT_BACKGROUND.paddingX,
- animations: element.animations,
- propertyPath: "background.paddingX",
- localTime,
- }),
- paddingY: resolveNumberAtTime({
- baseValue:
- element.background.paddingY ?? DEFAULT_TEXT_BACKGROUND.paddingY,
- animations: element.animations,
- propertyPath: "background.paddingY",
- localTime,
- }),
- offsetX: resolveNumberAtTime({
- baseValue:
- element.background.offsetX ?? DEFAULT_TEXT_BACKGROUND.offsetX,
- animations: element.animations,
- propertyPath: "background.offsetX",
- localTime,
- }),
- offsetY: resolveNumberAtTime({
- baseValue:
- element.background.offsetY ?? DEFAULT_TEXT_BACKGROUND.offsetY,
- animations: element.animations,
- propertyPath: "background.offsetY",
- localTime,
- }),
- };
- const visualRect = getTextVisualRect({
- textAlign: element.textAlign,
- block,
- background: resolvedBackground,
- fontSizeRatio,
- });
- measuredWidth = visualRect.width;
- measuredHeight = visualRect.height;
- const localCenterX = visualRect.left + visualRect.width / 2;
- const localCenterY = visualRect.top + visualRect.height / 2;
- const scaledCenterX = localCenterX * transform.scale;
- const scaledCenterY = localCenterY * transform.scale;
- const rotationRad = (transform.rotate * Math.PI) / 180;
- const cos = Math.cos(rotationRad);
- const sin = Math.sin(rotationRad);
- const rotatedCenterX = scaledCenterX * cos - scaledCenterY * sin;
- const rotatedCenterY = scaledCenterX * sin + scaledCenterY * cos;
- return {
- cx: canvasWidth / 2 + transform.position.x + rotatedCenterX,
- cy: canvasHeight / 2 + transform.position.y + rotatedCenterY,
- width: measuredWidth * transform.scale,
- height: measuredHeight * transform.scale,
- rotation: transform.rotate,
- };
- }
+ const measured = measureTextElement({
+ element,
+ canvasHeight,
+ localTime,
+ ctx,
+ });
- const width = measuredWidth * transform.scale;
- const height = measuredHeight * transform.scale;
- return {
- cx: canvasWidth / 2 + transform.position.x,
- cy: canvasHeight / 2 + transform.position.y,
- width,
- height,
- rotation: transform.rotate,
- };
+ return getTransformedRectBounds({
+ canvasWidth,
+ canvasHeight,
+ rect: measured.visualRect,
+ transform,
+ });
}
return null;
}
+export const ROTATION_HANDLE_OFFSET = 24;
+
+export type Corner = "top-left" | "top-right" | "bottom-left" | "bottom-right";
+export type Edge = "right" | "left" | "bottom";
+
+export function getCornerPosition({
+ bounds,
+ corner,
+}: {
+ bounds: ElementBounds;
+ corner: Corner;
+}): { x: number; y: number } {
+ const halfW = bounds.width / 2;
+ const halfH = bounds.height / 2;
+ const angleRad = (bounds.rotation * Math.PI) / 180;
+ const cos = Math.cos(angleRad);
+ const sin = Math.sin(angleRad);
+ const localX =
+ corner === "top-left" || corner === "bottom-left" ? -halfW : halfW;
+ const localY =
+ corner === "top-left" || corner === "top-right" ? -halfH : halfH;
+ return {
+ x: bounds.cx + (localX * cos - localY * sin),
+ y: bounds.cy + (localX * sin + localY * cos),
+ };
+}
+
+export function getEdgeHandlePosition({
+ bounds,
+ edge,
+}: {
+ bounds: ElementBounds;
+ edge: Edge;
+}): { x: number; y: number } {
+ const halfWidth = bounds.width / 2;
+ const halfHeight = bounds.height / 2;
+ const angleRad = (bounds.rotation * Math.PI) / 180;
+ const cos = Math.cos(angleRad);
+ const sin = Math.sin(angleRad);
+ const localX = edge === "right" ? halfWidth : edge === "left" ? -halfWidth : 0;
+ const localY = edge === "bottom" ? halfHeight : 0;
+ return {
+ x: bounds.cx + (localX * cos - localY * sin),
+ y: bounds.cy + (localX * sin + localY * cos),
+ };
+}
+
+export function getRotationHandlePosition({
+ bounds,
+}: {
+ bounds: ElementBounds;
+}): { x: number; y: number } {
+ const angleRad = (bounds.rotation * Math.PI) / 180;
+ const cos = Math.cos(angleRad);
+ const sin = Math.sin(angleRad);
+ const localY = -bounds.height / 2 - ROTATION_HANDLE_OFFSET;
+ return {
+ x: bounds.cx - localY * sin,
+ y: bounds.cy + localY * cos,
+ };
+}
+
export function getVisibleElementsWithBounds({
tracks,
currentTime,
diff --git a/apps/web/src/lib/preview/hit-test.ts b/apps/web/src/lib/preview/hit-test.ts
index c2fde87b..2552922b 100644
--- a/apps/web/src/lib/preview/hit-test.ts
+++ b/apps/web/src/lib/preview/hit-test.ts
@@ -1,4 +1,5 @@
import type { ElementWithBounds } from "./element-bounds";
+import type { ElementRef } from "@/lib/timeline/types";
function pointInRotatedRect({
px,
@@ -24,14 +25,14 @@ function pointInRotatedRect({
const dy = py - cy;
const localX = dx * cos - dy * sin;
const localY = dx * sin + dy * cos;
- const halfW = width / 2;
- const halfH = height / 2;
+ const halfW = Math.abs(width) / 2;
+ const halfH = Math.abs(height) / 2;
return (
localX >= -halfW && localX <= halfW && localY >= -halfH && localY <= halfH
);
}
-export function hitTest({
+export function getHitElements({
canvasX,
canvasY,
elementsWithBounds,
@@ -39,7 +40,9 @@ export function hitTest({
canvasX: number;
canvasY: number;
elementsWithBounds: ElementWithBounds[];
-}): ElementWithBounds | null {
+}): ElementWithBounds[] {
+ const hits: ElementWithBounds[] = [];
+
for (let i = elementsWithBounds.length - 1; i >= 0; i--) {
const { bounds } = elementsWithBounds[i];
if (
@@ -53,8 +56,47 @@ export function hitTest({
rotation: bounds.rotation,
})
) {
- return elementsWithBounds[i];
+ hits.push(elementsWithBounds[i]);
}
}
- return null;
+
+ return hits;
+}
+
+export function hitTest({
+ canvasX,
+ canvasY,
+ elementsWithBounds,
+}: {
+ canvasX: number;
+ canvasY: number;
+ elementsWithBounds: ElementWithBounds[];
+}): ElementWithBounds | null {
+ return (
+ getHitElements({
+ canvasX,
+ canvasY,
+ elementsWithBounds,
+ })[0] ?? null
+ );
+}
+
+export function resolvePreferredHit({
+ hits,
+ preferredElements,
+}: {
+ hits: ElementWithBounds[];
+ preferredElements: ElementRef[];
+}): ElementWithBounds | null {
+ if (preferredElements.length === 0) return null;
+
+ return (
+ hits.find((hit) =>
+ preferredElements.some(
+ (preferredElement) =>
+ preferredElement.trackId === hit.trackId &&
+ preferredElement.elementId === hit.elementId,
+ ),
+ ) ?? null
+ );
}
diff --git a/apps/web/src/lib/preview/preview-coords.ts b/apps/web/src/lib/preview/preview-coords.ts
index dcc87282..64184990 100644
--- a/apps/web/src/lib/preview/preview-coords.ts
+++ b/apps/web/src/lib/preview/preview-coords.ts
@@ -1,90 +1,101 @@
+export interface PreviewViewportGeometry {
+ canvasHeight: number;
+ canvasWidth: number;
+ centerX: number;
+ centerY: number;
+ scale: number;
+ viewportHeight: number;
+ viewportWidth: number;
+}
+
+function getCanvasOrigin({
+ geometry,
+}: {
+ geometry: PreviewViewportGeometry;
+}): { x: number; y: number } {
+ return {
+ x: geometry.viewportWidth / 2 - geometry.centerX * geometry.scale,
+ y: geometry.viewportHeight / 2 - geometry.centerY * geometry.scale,
+ };
+}
+
export function screenToCanvas({
clientX,
clientY,
- canvas,
+ geometry,
+ viewportRect,
}: {
clientX: number;
clientY: number;
- canvas: HTMLCanvasElement;
+ geometry: PreviewViewportGeometry;
+ viewportRect: DOMRect;
}): { x: number; y: number } {
- const rect = canvas.getBoundingClientRect();
- const scaleX = canvas.width / rect.width;
- const scaleY = canvas.height / rect.height;
+ const overlayX = clientX - viewportRect.left;
+ const overlayY = clientY - viewportRect.top;
+
return {
- x: (clientX - rect.left) * scaleX,
- y: (clientY - rect.top) * scaleY,
+ x:
+ geometry.centerX +
+ (overlayX - geometry.viewportWidth / 2) / geometry.scale,
+ y:
+ geometry.centerY +
+ (overlayY - geometry.viewportHeight / 2) / geometry.scale,
};
}
export function canvasToOverlay({
canvasX,
canvasY,
- canvasRect,
- containerRect,
- canvasSize,
+ geometry,
}: {
canvasX: number;
canvasY: number;
- canvasRect: DOMRect;
- containerRect: DOMRect;
- canvasSize: { width: number; height: number };
+ geometry: PreviewViewportGeometry;
}): { x: number; y: number } {
- const scaleX = canvasRect.width / canvasSize.width;
- const scaleY = canvasRect.height / canvasSize.height;
+ const canvasOrigin = getCanvasOrigin({ geometry });
+
return {
- x: canvasRect.left - containerRect.left + canvasX * scaleX,
- y: canvasRect.top - containerRect.top + canvasY * scaleY,
+ x: canvasOrigin.x + canvasX * geometry.scale,
+ y: canvasOrigin.y + canvasY * geometry.scale,
};
}
export function positionToOverlay({
positionX,
positionY,
- canvasRect,
- containerRect,
- canvasSize,
+ geometry,
}: {
positionX: number;
positionY: number;
- canvasRect: DOMRect;
- containerRect: DOMRect;
- canvasSize: { width: number; height: number };
+ geometry: PreviewViewportGeometry;
}): { x: number; y: number } {
- const scaleX = canvasRect.width / canvasSize.width;
- const scaleY = canvasRect.height / canvasSize.height;
- const centerScreenX =
- canvasRect.left - containerRect.left + (canvasSize.width / 2) * scaleX;
- const centerScreenY =
- canvasRect.top - containerRect.top + (canvasSize.height / 2) * scaleY;
- return {
- x: centerScreenX + positionX * scaleX,
- y: centerScreenY + positionY * scaleY,
- };
+ return canvasToOverlay({
+ canvasX: geometry.canvasWidth / 2 + positionX,
+ canvasY: geometry.canvasHeight / 2 + positionY,
+ geometry,
+ });
}
export function getDisplayScale({
- canvasRect,
- canvasSize,
+ geometry,
}: {
- canvasRect: DOMRect;
- canvasSize: { width: number; height: number };
+ geometry: PreviewViewportGeometry;
}): { x: number; y: number } {
return {
- x: canvasRect.width / canvasSize.width,
- y: canvasRect.height / canvasSize.height,
+ x: geometry.scale,
+ y: geometry.scale,
};
}
export function screenPixelsToLogicalThreshold({
- canvas,
+ geometry,
screenPixels,
}: {
- canvas: HTMLCanvasElement;
+ geometry: PreviewViewportGeometry;
screenPixels: number;
}): { x: number; y: number } {
- const canvasRect = canvas.getBoundingClientRect();
return {
- x: screenPixels * (canvas.width / canvasRect.width),
- y: screenPixels * (canvas.height / canvasRect.height),
+ x: screenPixels / geometry.scale,
+ y: screenPixels / geometry.scale,
};
}
diff --git a/apps/web/src/lib/preview/preview-snap.ts b/apps/web/src/lib/preview/preview-snap.ts
index 36efc3ce..64220264 100644
--- a/apps/web/src/lib/preview/preview-snap.ts
+++ b/apps/web/src/lib/preview/preview-snap.ts
@@ -13,15 +13,70 @@ export interface SnapResult {
activeLines: SnapLine[];
}
+type ScaleEdge = "left" | "right" | "top" | "bottom";
+
+export interface ScaleEdgePreference {
+ left?: boolean;
+ right?: boolean;
+ top?: boolean;
+ bottom?: boolean;
+}
+
+function hasPreferredEdge({
+ preferredEdges,
+ edge,
+}: {
+ preferredEdges?: ScaleEdgePreference;
+ edge: ScaleEdge;
+}): boolean {
+ return preferredEdges?.[edge] === true;
+}
+
+function pickClosestScaleCandidate<T extends { distance: number; edge: ScaleEdge }>({
+ candidates,
+ preferredEdges,
+}: {
+ candidates: T[];
+ preferredEdges?: ScaleEdgePreference;
+}): T | null {
+ if (candidates.length === 0) {
+ return null;
+ }
+
+ return candidates.reduce((bestCandidate, candidate) => {
+ if (candidate.distance < bestCandidate.distance) {
+ return candidate;
+ }
+ if (candidate.distance > bestCandidate.distance) {
+ return bestCandidate;
+ }
+
+ const shouldPreferCandidate = hasPreferredEdge({
+ preferredEdges,
+ edge: candidate.edge,
+ });
+ const shouldPreferBestCandidate = hasPreferredEdge({
+ preferredEdges,
+ edge: bestCandidate.edge,
+ });
+
+ return shouldPreferCandidate && !shouldPreferBestCandidate
+ ? candidate
+ : bestCandidate;
+ });
+}
+
export function snapPosition({
proposedPosition,
canvasSize,
elementSize,
+ rotation = 0,
snapThreshold,
}: {
proposedPosition: { x: number; y: number };
canvasSize: { width: number; height: number };
elementSize: { width: number; height: number };
+ rotation?: number;
snapThreshold: { x: number; y: number };
}): SnapResult {
const centerX = 0;
@@ -31,8 +86,11 @@ export function snapPosition({
const top = -canvasSize.height / 2;
const bottom = canvasSize.height / 2;
- const halfWidth = elementSize.width / 2;
- const halfHeight = elementSize.height / 2;
+ const rotRad = (rotation * Math.PI) / 180;
+ const cosR = Math.abs(Math.cos(rotRad));
+ const sinR = Math.abs(Math.sin(rotRad));
+ const halfWidth = (elementSize.width * cosR + elementSize.height * sinR) / 2;
+ const halfHeight = (elementSize.width * sinR + elementSize.height * cosR) / 2;
const activeLines: SnapLine[] = [];
type AxisSnapCandidate = {
@@ -59,8 +117,8 @@ export function snapPosition({
);
}
- const verticalTargets = [left, centerX, right];
- const horizontalTargets = [top, centerY, bottom];
+ const verticalTargets = [centerX, left, right];
+ const horizontalTargets = [centerY, top, bottom];
const xCandidates: AxisSnapCandidate[] = [];
for (const targetX of verticalTargets) {
@@ -133,15 +191,19 @@ export function snapScale({
position,
baseWidth,
baseHeight,
+ rotation = 0,
canvasSize,
snapThreshold,
+ preferredEdges,
}: {
proposedScale: number;
position: { x: number; y: number };
baseWidth: number;
baseHeight: number;
+ rotation?: number;
canvasSize: { width: number; height: number };
snapThreshold: { x: number; y: number };
+ preferredEdges?: ScaleEdgePreference;
}): ScaleSnapResult {
const centerX = 0;
const centerY = 0;
@@ -150,15 +212,22 @@ export function snapScale({
const top = -canvasSize.height / 2;
const bottom = canvasSize.height / 2;
- const leftEdge = position.x - (baseWidth * proposedScale) / 2;
- const rightEdge = position.x + (baseWidth * proposedScale) / 2;
- const topEdge = position.y - (baseHeight * proposedScale) / 2;
- const bottomEdge = position.y + (baseHeight * proposedScale) / 2;
+ const rotRad = (rotation * Math.PI) / 180;
+ const cosR = Math.abs(Math.cos(rotRad));
+ const sinR = Math.abs(Math.sin(rotRad));
+ const aabbBaseHalfW = (baseWidth * cosR + baseHeight * sinR) / 2;
+ const aabbBaseHalfH = (baseWidth * sinR + baseHeight * cosR) / 2;
+
+ const leftEdge = position.x - aabbBaseHalfW * proposedScale;
+ const rightEdge = position.x + aabbBaseHalfW * proposedScale;
+ const topEdge = position.y - aabbBaseHalfH * proposedScale;
+ const bottomEdge = position.y + aabbBaseHalfH * proposedScale;
interface SnapCandidate {
scale: number;
distance: number;
lines: SnapLine[];
+ edge: ScaleEdge;
}
const candidates: SnapCandidate[] = [];
@@ -175,23 +244,25 @@ export function snapScale({
for (const target of verticalTargets) {
const distanceLeft = Math.abs(leftEdge - target.position);
if (distanceLeft <= snapThreshold.x) {
- const scale = (2 * (position.x - target.position)) / baseWidth;
- if (scale > MIN_SCALE) {
+ const scale = (position.x - target.position) / aabbBaseHalfW;
+ if (Math.abs(scale) > MIN_SCALE) {
candidates.push({
scale,
distance: distanceLeft,
lines: [target.line],
+ edge: "left",
});
}
}
const distanceRight = Math.abs(rightEdge - target.position);
if (distanceRight <= snapThreshold.x) {
- const scale = (2 * (target.position - position.x)) / baseWidth;
- if (scale > MIN_SCALE) {
+ const scale = (target.position - position.x) / aabbBaseHalfW;
+ if (Math.abs(scale) > MIN_SCALE) {
candidates.push({
scale,
distance: distanceRight,
lines: [target.line],
+ edge: "right",
});
}
}
@@ -212,40 +283,42 @@ export function snapScale({
for (const target of horizontalTargets) {
const distanceTop = Math.abs(topEdge - target.position);
if (distanceTop <= snapThreshold.y) {
- const scale = (2 * (position.y - target.position)) / baseHeight;
- if (scale > MIN_SCALE) {
+ const scale = (position.y - target.position) / aabbBaseHalfH;
+ if (Math.abs(scale) > MIN_SCALE) {
candidates.push({
scale,
distance: distanceTop,
lines: [target.line],
+ edge: "top",
});
}
}
const distanceBottom = Math.abs(bottomEdge - target.position);
if (distanceBottom <= snapThreshold.y) {
- const scale = (2 * (target.position - position.y)) / baseHeight;
- if (scale > MIN_SCALE) {
+ const scale = (target.position - position.y) / aabbBaseHalfH;
+ if (Math.abs(scale) > MIN_SCALE) {
candidates.push({
scale,
distance: distanceBottom,
lines: [target.line],
+ edge: "bottom",
});
}
}
}
- if (candidates.length === 0) {
+ const best = pickClosestScaleCandidate({
+ candidates,
+ preferredEdges,
+ });
+ if (!best) {
return { snappedScale: proposedScale, activeLines: [] };
}
- const best = candidates.reduce((acc, candidate) =>
- candidate.distance < acc.distance ? candidate : acc,
- );
-
- const snappedLeft = position.x - (baseWidth * best.scale) / 2;
- const snappedRight = position.x + (baseWidth * best.scale) / 2;
- const snappedTop = position.y - (baseHeight * best.scale) / 2;
- const snappedBottom = position.y + (baseHeight * best.scale) / 2;
+ const snappedLeft = position.x - aabbBaseHalfW * best.scale;
+ const snappedRight = position.x + aabbBaseHalfW * best.scale;
+ const snappedTop = position.y - aabbBaseHalfH * best.scale;
+ const snappedBottom = position.y + aabbBaseHalfH * best.scale;
const activeLines: SnapLine[] = [];
const seenKeys = new Set<string>();
@@ -260,16 +333,26 @@ export function snapScale({
for (const target of verticalTargets) {
if (
- Math.abs(snappedLeft - target.position) <= 1 ||
- Math.abs(snappedRight - target.position) <= 1
+ (hasPreferredEdge({ preferredEdges, edge: "left" }) &&
+ Math.abs(snappedLeft - target.position) <= 1) ||
+ (hasPreferredEdge({ preferredEdges, edge: "right" }) &&
+ Math.abs(snappedRight - target.position) <= 1) ||
+ (!preferredEdges &&
+ (Math.abs(snappedLeft - target.position) <= 1 ||
+ Math.abs(snappedRight - target.position) <= 1))
) {
addLine({ line: target.line });
}
}
for (const target of horizontalTargets) {
if (
- Math.abs(snappedTop - target.position) <= 1 ||
- Math.abs(snappedBottom - target.position) <= 1
+ (hasPreferredEdge({ preferredEdges, edge: "top" }) &&
+ Math.abs(snappedTop - target.position) <= 1) ||
+ (hasPreferredEdge({ preferredEdges, edge: "bottom" }) &&
+ Math.abs(snappedBottom - target.position) <= 1) ||
+ (!preferredEdges &&
+ (Math.abs(snappedTop - target.position) <= 1 ||
+ Math.abs(snappedBottom - target.position) <= 1))
) {
addLine({ line: target.line });
}
@@ -281,6 +364,158 @@ export function snapScale({
};
}
+export interface AxisSnapResult {
+ snappedScale: number;
+ /** Infinity when no snap candidate was within threshold */
+ snapDistance: number;
+ activeLines: SnapLine[];
+}
+
+export function snapScaleAxes({
+ proposedScaleX,
+ proposedScaleY,
+ position,
+ baseWidth,
+ baseHeight,
+ rotation = 0,
+ canvasSize,
+ snapThreshold,
+ preferredEdges,
+}: {
+ proposedScaleX: number;
+ proposedScaleY: number;
+ position: { x: number; y: number };
+ baseWidth: number;
+ baseHeight: number;
+ rotation?: number;
+ canvasSize: { width: number; height: number };
+ snapThreshold: { x: number; y: number };
+ preferredEdges?: ScaleEdgePreference;
+}): { x: AxisSnapResult; y: AxisSnapResult } {
+ const canvasLeft = -canvasSize.width / 2;
+ const canvasRight = canvasSize.width / 2;
+ const canvasTop = -canvasSize.height / 2;
+ const canvasBottom = canvasSize.height / 2;
+
+ const rotRad = (rotation * Math.PI) / 180;
+ const cosR = Math.abs(Math.cos(rotRad));
+ const sinR = Math.abs(Math.sin(rotRad));
+ const EPSILON = 1e-6;
+
+ // Current AABB edges at proposed scales
+ const currentAabbHalfW = (baseWidth * proposedScaleX * cosR + baseHeight * proposedScaleY * sinR) / 2;
+ const currentAabbHalfH = (baseWidth * proposedScaleX * sinR + baseHeight * proposedScaleY * cosR) / 2;
+ const currentLeftEdge = position.x - currentAabbHalfW;
+ const currentRightEdge = position.x + currentAabbHalfW;
+ const currentTopEdge = position.y - currentAabbHalfH;
+ const currentBottomEdge = position.y + currentAabbHalfH;
+
+ interface Candidate {
+ scale: number;
+ distance: number;
+ line: SnapLine;
+ edge: ScaleEdge;
+ }
+
+ function bestCandidate({
+ candidates,
+ proposedScale,
+ }: {
+ candidates: Candidate[];
+ proposedScale: number;
+ }): AxisSnapResult {
+ const best = pickClosestScaleCandidate({
+ candidates,
+ preferredEdges,
+ });
+ if (!best) {
+ return { snappedScale: proposedScale, snapDistance: Infinity, activeLines: [] };
+ }
+ return { snappedScale: best.scale, snapDistance: best.distance, activeLines: [best.line] };
+ }
+
+ // sX candidates: snap via vertical targets (left/right AABB edges) — only valid when cosR ≠ 0
+ // snap via horizontal targets (top/bottom AABB edges) — only valid when sinR ≠ 0
+ const xCandidates: Candidate[] = [];
+ const yContribW = baseHeight * proposedScaleY * sinR;
+ const yContribH = baseHeight * proposedScaleY * cosR;
+
+ if (cosR > EPSILON) {
+ for (const T of [canvasLeft, 0, canvasRight]) {
+ const line: SnapLine = { type: "vertical", position: T };
+ const distLeft = Math.abs(currentLeftEdge - T);
+ if (distLeft <= snapThreshold.x) {
+ const scale = (2 * (position.x - T) - yContribW) / (baseWidth * cosR);
+ if (Math.abs(scale) > MIN_SCALE) xCandidates.push({ scale, distance: distLeft, line, edge: "left" });
+ }
+ const distRight = Math.abs(currentRightEdge - T);
+ if (distRight <= snapThreshold.x) {
+ const scale = (2 * (T - position.x) - yContribW) / (baseWidth * cosR);
+ if (Math.abs(scale) > MIN_SCALE) xCandidates.push({ scale, distance: distRight, line, edge: "right" });
+ }
+ }
+ }
+
+ if (sinR > EPSILON) {
+ for (const T of [canvasTop, 0, canvasBottom]) {
+ const line: SnapLine = { type: "horizontal", position: T };
+ const distTop = Math.abs(currentTopEdge - T);
+ if (distTop <= snapThreshold.y) {
+ const scale = (2 * (position.y - T) - yContribH) / (baseWidth * sinR);
+ if (Math.abs(scale) > MIN_SCALE) xCandidates.push({ scale, distance: distTop, line, edge: "top" });
+ }
+ const distBottom = Math.abs(currentBottomEdge - T);
+ if (distBottom <= snapThreshold.y) {
+ const scale = (2 * (T - position.y) - yContribH) / (baseWidth * sinR);
+ if (Math.abs(scale) > MIN_SCALE) xCandidates.push({ scale, distance: distBottom, line, edge: "bottom" });
+ }
+ }
+ }
+
+ // sY candidates: snap via vertical targets — only valid when sinR ≠ 0
+ // snap via horizontal targets — only valid when cosR ≠ 0
+ const yCandidates: Candidate[] = [];
+ const xContribW = baseWidth * proposedScaleX * cosR;
+ const xContribH = baseWidth * proposedScaleX * sinR;
+
+ if (sinR > EPSILON) {
+ for (const T of [canvasLeft, 0, canvasRight]) {
+ const line: SnapLine = { type: "vertical", position: T };
+ const distLeft = Math.abs(currentLeftEdge - T);
+ if (distLeft <= snapThreshold.x) {
+ const scale = (2 * (position.x - T) - xContribW) / (baseHeight * sinR);
+ if (Math.abs(scale) > MIN_SCALE) yCandidates.push({ scale, distance: distLeft, line, edge: "left" });
+ }
+ const distRight = Math.abs(currentRightEdge - T);
+ if (distRight <= snapThreshold.x) {
+ const scale = (2 * (T - position.x) - xContribW) / (baseHeight * sinR);
+ if (Math.abs(scale) > MIN_SCALE) yCandidates.push({ scale, distance: distRight, line, edge: "right" });
+ }
+ }
+ }
+
+ if (cosR > EPSILON) {
+ for (const T of [canvasTop, 0, canvasBottom]) {
+ const line: SnapLine = { type: "horizontal", position: T };
+ const distTop = Math.abs(currentTopEdge - T);
+ if (distTop <= snapThreshold.y) {
+ const scale = (2 * (position.y - T) - xContribH) / (baseHeight * cosR);
+ if (Math.abs(scale) > MIN_SCALE) yCandidates.push({ scale, distance: distTop, line, edge: "top" });
+ }
+ const distBottom = Math.abs(currentBottomEdge - T);
+ if (distBottom <= snapThreshold.y) {
+ const scale = (2 * (T - position.y) - xContribH) / (baseHeight * cosR);
+ if (Math.abs(scale) > MIN_SCALE) yCandidates.push({ scale, distance: distBottom, line, edge: "bottom" });
+ }
+ }
+ }
+
+ return {
+ x: bestCandidate({ candidates: xCandidates, proposedScale: proposedScaleX }),
+ y: bestCandidate({ candidates: yCandidates, proposedScale: proposedScaleY }),
+ };
+}
+
export interface RotationSnapResult {
snappedRotation: number;
isSnapped: boolean;
diff --git a/apps/web/src/types/project.ts b/apps/web/src/lib/project/types.ts
index c8074c26..734c3835 100644
--- a/apps/web/src/types/project.ts
+++ b/apps/web/src/lib/project/types.ts
@@ -1,4 +1,4 @@
-import type { TScene } from "./timeline";
+import type { TScene } from "@/lib/timeline/types";
export type TBackground =
| {
@@ -27,6 +27,8 @@ export interface TProjectMetadata {
export interface TProjectSettings {
fps: number;
canvasSize: TCanvasSize;
+ canvasSizeMode?: "preset" | "custom";
+ lastCustomCanvasSize?: TCanvasSize | null;
originalCanvasSize?: TCanvasSize | null;
background: TBackground;
}
diff --git a/apps/web/src/lib/registry.ts b/apps/web/src/lib/registry.ts
new file mode 100644
index 00000000..433feae7
--- /dev/null
+++ b/apps/web/src/lib/registry.ts
@@ -0,0 +1,40 @@
+import type { ParamDefinition, ParamValues } from "@/lib/params";
+
+export function buildDefaultParamValues(
+ params: ParamDefinition[],
+): ParamValues {
+ const values: ParamValues = {};
+ for (const param of params) {
+ values[param.key] = param.default;
+ }
+ return values;
+}
+
+export class DefinitionRegistry<TKey extends string, TDefinition> {
+ private definitions = new Map<TKey, TDefinition>();
+ private entityName: string;
+
+ constructor(entityName: string) {
+ this.entityName = entityName;
+ }
+
+ register(key: TKey, definition: TDefinition): void {
+ this.definitions.set(key, definition);
+ }
+
+ has(key: TKey): boolean {
+ return this.definitions.has(key);
+ }
+
+ get(key: TKey): TDefinition {
+ const def = this.definitions.get(key);
+ if (!def) {
+ throw new Error(`Unknown ${this.entityName}: ${key}`);
+ }
+ return def;
+ }
+
+ getAll(): TDefinition[] {
+ return Array.from(this.definitions.values());
+ }
+}
diff --git a/apps/web/src/types/rendering.ts b/apps/web/src/lib/rendering.ts
index 8c9763df..d16296e2 100644
--- a/apps/web/src/types/rendering.ts
+++ b/apps/web/src/lib/rendering.ts
@@ -1,5 +1,6 @@
export interface Transform {
- scale: number;
+ scaleX: number;
+ scaleY: number;
position: {
x: number;
y: number;
diff --git a/apps/web/src/lib/retime/__tests__/resolve.test.ts b/apps/web/src/lib/retime/__tests__/resolve.test.ts
new file mode 100644
index 00000000..4fcf6249
--- /dev/null
+++ b/apps/web/src/lib/retime/__tests__/resolve.test.ts
@@ -0,0 +1,61 @@
+import { describe, expect, test } from "bun:test";
+import {
+ getClipTimeAtSourceTime,
+ getEffectiveRateAt,
+ getSourceTimeAtClipTime,
+ getTimelineDurationForSourceSpan,
+} from "@/lib/retime";
+import type { RetimeConfig } from "@/lib/timeline";
+
+const twoX: RetimeConfig = { rate: 2 };
+const halfX: RetimeConfig = { rate: 0.5 };
+
+describe("retime resolve", () => {
+ test("maps clip time to source time at 2x speed", () => {
+ expect(getSourceTimeAtClipTime({ clipTime: 5, retime: twoX })).toBe(10);
+ });
+
+ test("maps clip time to source time at 0.5x speed", () => {
+ expect(getSourceTimeAtClipTime({ clipTime: 4, retime: halfX })).toBe(2);
+ });
+
+ test("returns clip time unchanged when no retime", () => {
+ expect(getSourceTimeAtClipTime({ clipTime: 7 })).toBe(7);
+ });
+
+ test("inverts source time back to clip time at 2x speed", () => {
+ expect(getClipTimeAtSourceTime({ sourceTime: 10, retime: twoX })).toBe(5);
+ });
+
+ test("returns effective rate", () => {
+ expect(getEffectiveRateAt({ retime: twoX })).toBe(2);
+ expect(getEffectiveRateAt({})).toBe(1);
+ });
+
+ test("derives timeline duration for a visible source span", () => {
+ expect(
+ getTimelineDurationForSourceSpan({ sourceSpan: 10, retime: twoX }),
+ ).toBe(5);
+ expect(
+ getTimelineDurationForSourceSpan({ sourceSpan: 10, retime: halfX }),
+ ).toBe(20);
+ });
+
+ test("clamps invalid rates to 1", () => {
+ expect(getSourceTimeAtClipTime({ clipTime: 5, retime: { rate: 0 } })).toBe(
+ 5,
+ );
+ expect(
+ getSourceTimeAtClipTime({ clipTime: 5, retime: { rate: -1 } }),
+ ).toBe(5);
+ });
+
+ test("caps retime rates above 5x", () => {
+ expect(getSourceTimeAtClipTime({ clipTime: 5, retime: { rate: 100 } })).toBe(
+ 25,
+ );
+ expect(
+ getTimelineDurationForSourceSpan({ sourceSpan: 10, retime: { rate: 100 } }),
+ ).toBe(2);
+ });
+});
diff --git a/apps/web/src/lib/retime/__tests__/split.test.ts b/apps/web/src/lib/retime/__tests__/split.test.ts
new file mode 100644
index 00000000..0ce532a1
--- /dev/null
+++ b/apps/web/src/lib/retime/__tests__/split.test.ts
@@ -0,0 +1,31 @@
+import { describe, expect, test } from "bun:test";
+import {
+ getSourceSpanAtClipTime,
+ splitRetimeAtClipTime,
+} from "@/lib/retime";
+import type { RetimeConfig } from "@/lib/timeline";
+
+describe("retime split", () => {
+ test("measures source span at a clip time", () => {
+ const retime: RetimeConfig = { rate: 2 };
+ expect(getSourceSpanAtClipTime({ clipTime: 5, retime })).toBe(10);
+ });
+
+ test("returns zero for non-positive clip time", () => {
+ expect(getSourceSpanAtClipTime({ clipTime: 0 })).toBe(0);
+ expect(getSourceSpanAtClipTime({ clipTime: -1 })).toBe(0);
+ });
+
+ test("passes the same retime to both halves when splitting", () => {
+ const retime: RetimeConfig = { rate: 1.5 };
+ const result = splitRetimeAtClipTime({ retime, splitClipTime: 3 });
+ expect(result.left).toBe(retime);
+ expect(result.right).toBe(retime);
+ });
+
+ test("returns undefined on both sides when no retime", () => {
+ const result = splitRetimeAtClipTime({ splitClipTime: 3 });
+ expect(result.left).toBeUndefined();
+ expect(result.right).toBeUndefined();
+ });
+});
diff --git a/apps/web/src/lib/retime/audio-stretch.ts b/apps/web/src/lib/retime/audio-stretch.ts
new file mode 100644
index 00000000..51ef38d0
--- /dev/null
+++ b/apps/web/src/lib/retime/audio-stretch.ts
@@ -0,0 +1,182 @@
+import { PitchShifter } from "soundtouchjs";
+import { clampRetimeRate, shouldMaintainPitch } from "@/constants/retime-constants";
+import type { RetimeConfig } from "@/lib/timeline";
+import { getSourceTimeAtClipTime } from "./resolve";
+
+const RATE_EPSILON = 1e-6;
+
+function sampleLinear({
+ channelData,
+ position,
+}: {
+ channelData: Float32Array;
+ position: number;
+}): number {
+ if (position <= 0) {
+ return channelData[0] ?? 0;
+ }
+ const lower = Math.floor(position);
+ const upper = Math.min(channelData.length - 1, lower + 1);
+ if (lower >= channelData.length) {
+ return 0;
+ }
+ const fraction = position - lower;
+ return channelData[lower] * (1 - fraction) + channelData[upper] * fraction;
+}
+
+function buildResampledBuffer({
+ audioContext,
+ sourceBuffer,
+ trimStart,
+ clipDuration,
+ targetSampleRate,
+ retime,
+}: {
+ audioContext: BaseAudioContext;
+ sourceBuffer: AudioBuffer;
+ trimStart: number;
+ clipDuration: number;
+ targetSampleRate: number;
+ retime?: RetimeConfig;
+}): AudioBuffer {
+ const outputLength = Math.max(1, Math.ceil(clipDuration * targetSampleRate));
+ const numChannels = Math.max(1, Math.min(2, sourceBuffer.numberOfChannels));
+ const outputBuffer = audioContext.createBuffer(
+ numChannels,
+ outputLength,
+ targetSampleRate,
+ );
+
+ for (let channel = 0; channel < numChannels; channel++) {
+ const sourceData = sourceBuffer.getChannelData(
+ Math.min(channel, sourceBuffer.numberOfChannels - 1),
+ );
+ const outputData = outputBuffer.getChannelData(channel);
+
+ for (let i = 0; i < outputLength; i++) {
+ const clipTime = i / targetSampleRate;
+ const sourceTime =
+ trimStart + getSourceTimeAtClipTime({ clipTime, retime });
+ outputData[i] = sampleLinear({
+ channelData: sourceData,
+ position: sourceTime * sourceBuffer.sampleRate,
+ });
+ }
+ }
+
+ return outputBuffer;
+}
+
+async function buildPitchPreservedBuffer({
+ sourceBuffer,
+ trimStart,
+ clipDuration,
+ rate,
+ targetSampleRate,
+}: {
+ sourceBuffer: AudioBuffer;
+ trimStart: number;
+ clipDuration: number;
+ rate: number;
+ targetSampleRate: number;
+}): Promise<AudioBuffer> {
+ const nativeSampleRate = sourceBuffer.sampleRate;
+ const sourceDuration = clipDuration * rate;
+ const startSample = Math.max(0, Math.floor(trimStart * nativeSampleRate));
+ const numSourceSamples = Math.max(
+ 1,
+ Math.ceil(sourceDuration * nativeSampleRate),
+ );
+ const available = Math.max(0, sourceBuffer.length - startSample);
+ const actualSamples = Math.max(1, Math.min(numSourceSamples, available));
+ const numChannels = Math.max(1, Math.min(2, sourceBuffer.numberOfChannels));
+
+ // Resample to targetSampleRate first — soundtouchjs reads raw channel data
+ // and does not respect the source buffer's native sample rate.
+ const resampledLength = Math.max(
+ 1,
+ Math.ceil(sourceDuration * targetSampleRate),
+ );
+ const resampleCtx = new OfflineAudioContext(
+ numChannels,
+ resampledLength,
+ targetSampleRate,
+ );
+ const nativeBuffer = resampleCtx.createBuffer(
+ numChannels,
+ actualSamples,
+ nativeSampleRate,
+ );
+
+ for (let ch = 0; ch < numChannels; ch++) {
+ const src = sourceBuffer.getChannelData(
+ Math.min(ch, sourceBuffer.numberOfChannels - 1),
+ );
+ nativeBuffer.copyToChannel(
+ src.subarray(startSample, startSample + actualSamples),
+ ch,
+ );
+ }
+
+ const resampleSourceNode = resampleCtx.createBufferSource();
+ resampleSourceNode.buffer = nativeBuffer;
+ resampleSourceNode.connect(resampleCtx.destination);
+ resampleSourceNode.start(0);
+ const resampledBuffer = await resampleCtx.startRendering();
+
+ const outputSamples = Math.max(
+ 1,
+ Math.ceil(clipDuration * targetSampleRate),
+ );
+ const stretchCtx = new OfflineAudioContext(
+ numChannels,
+ outputSamples,
+ targetSampleRate,
+ );
+ const shifter = new PitchShifter(stretchCtx, resampledBuffer, 4096);
+ shifter.tempo = rate;
+ shifter.pitch = 1;
+ shifter.connect(stretchCtx.destination);
+ return stretchCtx.startRendering();
+}
+
+export async function renderRetimedBuffer({
+ audioContext,
+ sourceBuffer,
+ trimStart,
+ clipDuration,
+ retime,
+ maintainPitch = false,
+}: {
+ audioContext: BaseAudioContext;
+ sourceBuffer: AudioBuffer;
+ trimStart: number;
+ clipDuration: number;
+ retime?: RetimeConfig;
+ maintainPitch?: boolean;
+}): Promise<AudioBuffer> {
+ const targetSampleRate = audioContext.sampleRate;
+ const rate = clampRetimeRate({ rate: retime?.rate ?? 1 });
+ const usePitchPreservation =
+ shouldMaintainPitch({ rate, maintainPitch }) &&
+ Math.abs(rate - 1) > RATE_EPSILON;
+
+ if (usePitchPreservation) {
+ return buildPitchPreservedBuffer({
+ sourceBuffer,
+ trimStart,
+ clipDuration,
+ rate,
+ targetSampleRate,
+ });
+ }
+
+ return buildResampledBuffer({
+ audioContext,
+ sourceBuffer,
+ trimStart,
+ clipDuration,
+ targetSampleRate,
+ retime,
+ });
+}
diff --git a/apps/web/src/lib/retime/index.ts b/apps/web/src/lib/retime/index.ts
new file mode 100644
index 00000000..4915c203
--- /dev/null
+++ b/apps/web/src/lib/retime/index.ts
@@ -0,0 +1,4 @@
+export * from "./audio-stretch";
+export * from "./presets";
+export * from "./resolve";
+export * from "./split";
diff --git a/apps/web/src/lib/retime/presets.ts b/apps/web/src/lib/retime/presets.ts
new file mode 100644
index 00000000..382320b0
--- /dev/null
+++ b/apps/web/src/lib/retime/presets.ts
@@ -0,0 +1,12 @@
+import type { RetimeConfig } from "@/lib/timeline";
+import { clampRetimeRate } from "@/constants/retime-constants";
+
+export function buildConstantRetime({
+ rate,
+ maintainPitch = false,
+}: {
+ rate: number;
+ maintainPitch?: boolean;
+}): RetimeConfig {
+ return { rate: clampRetimeRate({ rate }), maintainPitch };
+}
diff --git a/apps/web/src/lib/retime/resolve.ts b/apps/web/src/lib/retime/resolve.ts
new file mode 100644
index 00000000..cfcfb6a2
--- /dev/null
+++ b/apps/web/src/lib/retime/resolve.ts
@@ -0,0 +1,48 @@
+import type { RetimeConfig } from "@/lib/timeline";
+import { clampRetimeRate } from "@/constants/retime-constants";
+
+function getSafeRate({ rate }: { rate: number }): number {
+ return clampRetimeRate({ rate });
+}
+
+export function getSourceTimeAtClipTime({
+ clipTime,
+ retime,
+}: {
+ clipTime: number;
+ retime?: RetimeConfig;
+}): number {
+ return clipTime * getSafeRate({ rate: retime?.rate ?? 1 });
+}
+
+export function getClipTimeAtSourceTime({
+ sourceTime,
+ retime,
+}: {
+ sourceTime: number;
+ retime?: RetimeConfig;
+}): number {
+ return sourceTime / getSafeRate({ rate: retime?.rate ?? 1 });
+}
+
+export function getEffectiveRateAt({
+ retime,
+}: {
+ clipTime?: number;
+ retime?: RetimeConfig;
+}): number {
+ return getSafeRate({ rate: retime?.rate ?? 1 });
+}
+
+export function getTimelineDurationForSourceSpan({
+ sourceSpan,
+ retime,
+}: {
+ sourceSpan: number;
+ retime?: RetimeConfig;
+}): number {
+ if (sourceSpan <= 0) {
+ return 0;
+ }
+ return sourceSpan / getSafeRate({ rate: retime?.rate ?? 1 });
+}
diff --git a/apps/web/src/lib/retime/split.ts b/apps/web/src/lib/retime/split.ts
new file mode 100644
index 00000000..12982292
--- /dev/null
+++ b/apps/web/src/lib/retime/split.ts
@@ -0,0 +1,34 @@
+import type { RetimeConfig } from "@/lib/timeline";
+import { getSourceTimeAtClipTime } from "./resolve";
+
+export function getSourceSpanAtClipTime({
+ clipTime,
+ retime,
+}: {
+ clipTime: number;
+ retime?: RetimeConfig;
+}): number {
+ return Math.max(0, getSourceTimeAtClipTime({ clipTime, retime }));
+}
+
+export function splitRetimeAtClipTime({
+ retime,
+}: {
+ retime?: RetimeConfig;
+ splitClipTime: number;
+}): {
+ left: RetimeConfig | undefined;
+ right: RetimeConfig | undefined;
+} {
+ return { left: retime, right: retime };
+}
+
+export function adjustRetimeForTrimChange({
+ retime,
+}: {
+ retime?: RetimeConfig;
+ clipTrimTime: number;
+ side: "start" | "end";
+}): RetimeConfig | undefined {
+ return retime;
+}
diff --git a/apps/web/src/lib/scenes.ts b/apps/web/src/lib/scenes.ts
index 62195669..198116c0 100644
--- a/apps/web/src/lib/scenes.ts
+++ b/apps/web/src/lib/scenes.ts
@@ -1,4 +1,4 @@
-import type { TScene } from "@/types/timeline";
+import type { TScene } from "@/lib/timeline";
import { generateUUID } from "@/utils/id";
import { calculateTotalDuration } from "@/lib/timeline";
import { ensureMainTrack } from "@/lib/timeline/track-utils";
diff --git a/apps/web/src/lib/selection/constants.ts b/apps/web/src/lib/selection/constants.ts
new file mode 100644
index 00000000..a1aee842
--- /dev/null
+++ b/apps/web/src/lib/selection/constants.ts
@@ -0,0 +1 @@
+export const SELECTABLE_ITEM_ATTRIBUTE = "data-selectable-item";
diff --git a/apps/web/src/lib/selection/context.tsx b/apps/web/src/lib/selection/context.tsx
new file mode 100644
index 00000000..ced49c88
--- /dev/null
+++ b/apps/web/src/lib/selection/context.tsx
@@ -0,0 +1,52 @@
+"use client";
+
+import { createContext, useContext } from "react";
+
+interface SelectionContextValue {
+ selectedIds: string[];
+ anchorId: string | null;
+ highlightedId: string | null;
+ isBoxSelecting: boolean;
+ isSelected: (id: string) => boolean;
+ clearSelection: () => void;
+ handleItemClick: ({
+ event,
+ id,
+ }: {
+ event: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>;
+ id: string;
+ }) => void;
+ handleItemMouseDown: ({
+ event,
+ id,
+ }: {
+ event: React.MouseEvent<HTMLDivElement>;
+ id: string;
+ }) => void;
+ registerItem: (id: string, element: HTMLElement | null) => void;
+}
+
+export const SelectionContext = createContext<SelectionContextValue | null>(null);
+
+export function useSelectionContext() {
+ const context = useContext(SelectionContext);
+
+ if (!context) {
+ throw new Error("useSelectionContext must be used within SelectableSurface");
+ }
+
+ return context;
+}
+
+export function useSelection() {
+ const { selectedIds, anchorId, highlightedId, isSelected, clearSelection } =
+ useSelectionContext();
+
+ return {
+ selectedIds,
+ anchorId,
+ highlightedId,
+ isSelected,
+ clearSelection,
+ };
+}
diff --git a/apps/web/src/lib/selection/hit-testing.ts b/apps/web/src/lib/selection/hit-testing.ts
new file mode 100644
index 00000000..ba086425
--- /dev/null
+++ b/apps/web/src/lib/selection/hit-testing.ts
@@ -0,0 +1,50 @@
+function isIntersecting({
+ selectionRect,
+ itemRect,
+}: {
+ selectionRect: DOMRect;
+ itemRect: DOMRect;
+}) {
+ return !(
+ itemRect.right < selectionRect.left ||
+ itemRect.left > selectionRect.right ||
+ itemRect.bottom < selectionRect.top ||
+ itemRect.top > selectionRect.bottom
+ );
+}
+
+function createSelectionRect({
+ startPos,
+ currentPos,
+}: {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+}) {
+ return new DOMRect(
+ Math.min(startPos.x, currentPos.x),
+ Math.min(startPos.y, currentPos.y),
+ Math.abs(currentPos.x - startPos.x),
+ Math.abs(currentPos.y - startPos.y),
+ );
+}
+
+export function resolveElementIntersections({
+ startPos,
+ currentPos,
+ elements,
+}: {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+ elements: Map<string, HTMLElement>;
+}) {
+ const selectionRect = createSelectionRect({ startPos, currentPos });
+
+ return [...elements.entries()]
+ .filter(([, element]) =>
+ isIntersecting({
+ selectionRect,
+ itemRect: element.getBoundingClientRect(),
+ }),
+ )
+ .map(([id]) => id);
+}
diff --git a/apps/web/src/lib/selection/hooks/use-box-select.ts b/apps/web/src/lib/selection/hooks/use-box-select.ts
new file mode 100644
index 00000000..5a9a5cd0
--- /dev/null
+++ b/apps/web/src/lib/selection/hooks/use-box-select.ts
@@ -0,0 +1,170 @@
+"use client";
+
+import { useCallback, useEffect, useRef, useState } from "react";
+import type {
+ BoxSelectionSnapshot,
+ ResolveIntersections,
+} from "@/lib/selection/types";
+
+interface SelectionBoxState<TId> extends BoxSelectionSnapshot<TId> {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+ isActive: boolean;
+ isAdditive: boolean;
+}
+
+export function useBoxSelect<TId>({
+ containerRef,
+ resolveIntersections,
+ selectedIds,
+ anchorId,
+ onSelectionChange,
+ shouldStartSelection,
+ getIsAdditiveSelection,
+ isEnabled = true,
+}: {
+ containerRef: React.RefObject<HTMLElement | null>;
+ resolveIntersections: ResolveIntersections<TId>;
+ selectedIds: TId[];
+ anchorId: TId | null;
+ onSelectionChange: (state: {
+ intersectedIds: TId[];
+ initialSelectedIds: TId[];
+ initialAnchorId: TId | null;
+ isAdditive: boolean;
+ }) => void;
+ shouldStartSelection?: (event: React.MouseEvent<Element>) => boolean;
+ getIsAdditiveSelection?: (event: React.MouseEvent<Element>) => boolean;
+ isEnabled?: boolean;
+}) {
+ const [selectionBox, setSelectionBox] = useState<SelectionBoxState<TId> | null>(
+ null,
+ );
+ const justFinishedSelectingRef = useRef(false);
+ const shouldStartSelectionCheck = shouldStartSelection ?? (() => true);
+ const getIsAdditiveSelectionCheck =
+ getIsAdditiveSelection ??
+ ((event: React.MouseEvent<Element>) => event.ctrlKey || event.metaKey);
+
+ const handleMouseDown = useCallback(
+ (event: React.MouseEvent<Element>) => {
+ const canStartSelection = shouldStartSelectionCheck(event);
+ if (!isEnabled || event.button !== 0 || !canStartSelection) {
+ return;
+ }
+
+ setSelectionBox({
+ startPos: { x: event.clientX, y: event.clientY },
+ currentPos: { x: event.clientX, y: event.clientY },
+ isActive: false,
+ isAdditive: getIsAdditiveSelectionCheck(event),
+ initialSelectedIds: selectedIds,
+ initialAnchorId: anchorId,
+ });
+ },
+ [
+ anchorId,
+ getIsAdditiveSelectionCheck,
+ isEnabled,
+ selectedIds,
+ shouldStartSelectionCheck,
+ ],
+ );
+
+ const updateSelection = useCallback(
+ ({
+ startPos,
+ currentPos,
+ isAdditive,
+ initialSelectedIds,
+ initialAnchorId,
+ }: SelectionBoxState<TId>) => {
+ const intersectedIds = resolveIntersections({
+ startPos,
+ currentPos,
+ });
+ onSelectionChange({
+ intersectedIds,
+ initialSelectedIds,
+ initialAnchorId,
+ isAdditive,
+ });
+ },
+ [onSelectionChange, resolveIntersections],
+ );
+
+ useEffect(() => {
+ if (!selectionBox) {
+ return;
+ }
+
+ const handleMouseMove = ({ clientX, clientY }: MouseEvent) => {
+ const deltaX = Math.abs(clientX - selectionBox.startPos.x);
+ const deltaY = Math.abs(clientY - selectionBox.startPos.y);
+ const nextSelectionBox = {
+ ...selectionBox,
+ currentPos: { x: clientX, y: clientY },
+ isActive: deltaX > 5 || deltaY > 5 || selectionBox.isActive,
+ };
+
+ setSelectionBox(nextSelectionBox);
+
+ if (!nextSelectionBox.isActive) {
+ return;
+ }
+
+ updateSelection(nextSelectionBox);
+ };
+
+ const handleMouseUp = () => {
+ if (selectionBox.isActive) {
+ justFinishedSelectingRef.current = true;
+ requestAnimationFrame(() => {
+ justFinishedSelectingRef.current = false;
+ });
+ }
+
+ setSelectionBox(null);
+ };
+
+ window.addEventListener("mousemove", handleMouseMove);
+ window.addEventListener("mouseup", handleMouseUp);
+
+ return () => {
+ window.removeEventListener("mousemove", handleMouseMove);
+ window.removeEventListener("mouseup", handleMouseUp);
+ };
+ }, [selectionBox, updateSelection]);
+
+ useEffect(() => {
+ if (!selectionBox) {
+ return;
+ }
+
+ const previousBodyUserSelect = document.body.style.userSelect;
+ const previousContainerUserSelect = containerRef.current?.style.userSelect ?? "";
+
+ document.body.style.userSelect = "none";
+ if (containerRef.current) {
+ containerRef.current.style.userSelect = "none";
+ }
+
+ return () => {
+ document.body.style.userSelect = previousBodyUserSelect;
+ if (containerRef.current) {
+ containerRef.current.style.userSelect = previousContainerUserSelect;
+ }
+ };
+ }, [containerRef, selectionBox]);
+
+ const shouldIgnoreClick = useCallback(() => {
+ return justFinishedSelectingRef.current;
+ }, []);
+
+ return {
+ selectionBox,
+ handleMouseDown,
+ isSelecting: selectionBox?.isActive ?? false,
+ shouldIgnoreClick,
+ };
+}
diff --git a/apps/web/src/lib/selection/hooks/use-selection-scope.ts b/apps/web/src/lib/selection/hooks/use-selection-scope.ts
new file mode 100644
index 00000000..7ed63815
--- /dev/null
+++ b/apps/web/src/lib/selection/hooks/use-selection-scope.ts
@@ -0,0 +1,28 @@
+import { useEffect, useRef } from "react";
+import { useSelectionContext } from "@/lib/selection/context";
+import { activateScope, type ScopeEntry } from "@/lib/selection/scope";
+
+export function useSelectionScope() {
+ const { selectedIds, clearSelection } = useSelectionContext();
+ const hasSelectionRef = useRef(selectedIds.length > 0);
+ const clearSelectionRef = useRef(clearSelection);
+ const hasSelection = selectedIds.length > 0;
+
+ hasSelectionRef.current = hasSelection;
+ clearSelectionRef.current = clearSelection;
+
+ const entryRef = useRef<ScopeEntry>({
+ hasSelection: () => hasSelectionRef.current,
+ clear: () => {
+ clearSelectionRef.current();
+ },
+ });
+
+ useEffect(() => {
+ if (!hasSelection) {
+ return;
+ }
+
+ return activateScope({ entry: entryRef.current });
+ }, [hasSelection]);
+}
diff --git a/apps/web/src/lib/selection/index.ts b/apps/web/src/lib/selection/index.ts
new file mode 100644
index 00000000..b8699ecf
--- /dev/null
+++ b/apps/web/src/lib/selection/index.ts
@@ -0,0 +1,4 @@
+export { SelectableItem } from "@/lib/selection/selectable-item";
+export { SelectableSurface } from "@/lib/selection/selectable-surface";
+export { useSelection } from "@/lib/selection/context";
+export { useSelectionScope } from "@/lib/selection/hooks/use-selection-scope";
diff --git a/apps/web/src/lib/selection/scope.ts b/apps/web/src/lib/selection/scope.ts
new file mode 100644
index 00000000..45bf6b56
--- /dev/null
+++ b/apps/web/src/lib/selection/scope.ts
@@ -0,0 +1,29 @@
+export type ScopeEntry = {
+ hasSelection: () => boolean;
+ clear: () => void;
+};
+
+let activeScope: ScopeEntry | null = null;
+
+export function activateScope({ entry }: { entry: ScopeEntry }): () => void {
+ if (activeScope && activeScope !== entry) {
+ activeScope.clear();
+ }
+
+ activeScope = entry;
+
+ return () => {
+ if (activeScope === entry) {
+ activeScope = null;
+ }
+ };
+}
+
+export function clearActiveScope(): boolean {
+ if (!activeScope?.hasSelection()) {
+ return false;
+ }
+
+ activeScope.clear();
+ return true;
+}
diff --git a/apps/web/src/lib/selection/selectable-item.tsx b/apps/web/src/lib/selection/selectable-item.tsx
new file mode 100644
index 00000000..1d7e74a8
--- /dev/null
+++ b/apps/web/src/lib/selection/selectable-item.tsx
@@ -0,0 +1,107 @@
+"use client";
+
+import { forwardRef, useCallback } from "react";
+import { useSelectionContext } from "@/lib/selection/context";
+import { SELECTABLE_ITEM_ATTRIBUTE } from "@/lib/selection/constants";
+import type { SelectableItemProps } from "@/lib/selection/types";
+import { cn } from "@/utils/ui";
+
+function setForwardedRef<T>(ref: React.ForwardedRef<T>, value: T | null) {
+ if (typeof ref === "function") {
+ ref(value);
+ return;
+ }
+
+ if (ref) {
+ ref.current = value;
+ }
+}
+
+export const SelectableItem = forwardRef<HTMLDivElement, SelectableItemProps>(
+ function SelectableItem(
+ {
+ id,
+ children,
+ className,
+ onClick,
+ onKeyDown,
+ onMouseDown,
+ onContextMenu,
+ tabIndex,
+ ...rest
+ }: SelectableItemProps,
+ forwardedRef,
+ ) {
+ const {
+ highlightedId,
+ isBoxSelecting,
+ isSelected,
+ handleItemClick,
+ handleItemMouseDown,
+ registerItem,
+ } = useSelectionContext();
+ const isItemSelected = isSelected(id);
+ const isItemHighlighted = highlightedId === id;
+ const stateClassName = cn(
+ "relative",
+ isBoxSelecting && "pointer-events-none",
+ isItemSelected && "ring-1 ring-primary rounded-sm bg-primary/10",
+ isItemHighlighted &&
+ (isItemSelected
+ ? "rounded-sm shadow-[0_0_0_1px_hsl(var(--primary))]"
+ : "ring-1 ring-primary/60 rounded-sm bg-primary/5"),
+ );
+
+ const handleRef = useCallback(
+ (element: HTMLDivElement | null) => {
+ registerItem(id, element);
+ setForwardedRef(forwardedRef, element);
+ },
+ [forwardedRef, id, registerItem],
+ );
+
+ return (
+ <div
+ ref={handleRef}
+ className={cn(stateClassName, className)}
+ {...{ [SELECTABLE_ITEM_ATTRIBUTE]: "true" }}
+ role="option"
+ aria-selected={isItemSelected}
+ tabIndex={tabIndex ?? 0}
+ onClick={(event) => {
+ onClick?.(event);
+ if (event.defaultPrevented) {
+ return;
+ }
+
+ handleItemClick({ event, id });
+ }}
+ onMouseDown={(event) => {
+ onMouseDown?.(event);
+ if (event.defaultPrevented) {
+ return;
+ }
+
+ handleItemMouseDown({ event, id });
+ }}
+ onKeyDown={(event) => {
+ onKeyDown?.(event);
+ if (event.defaultPrevented || event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (event.key !== "Enter" && event.key !== " ") {
+ return;
+ }
+
+ event.preventDefault();
+ handleItemClick({ event, id });
+ }}
+ onContextMenu={onContextMenu}
+ {...rest}
+ >
+ {children}
+ </div>
+ );
+ },
+);
diff --git a/apps/web/src/lib/selection/selectable-surface.tsx b/apps/web/src/lib/selection/selectable-surface.tsx
new file mode 100644
index 00000000..605b3d18
--- /dev/null
+++ b/apps/web/src/lib/selection/selectable-surface.tsx
@@ -0,0 +1,288 @@
+"use client";
+
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import { SelectionBox } from "@/lib/selection/selection-box";
+import { SelectionContext } from "@/lib/selection/context";
+import { SELECTABLE_ITEM_ATTRIBUTE } from "@/lib/selection/constants";
+import { resolveElementIntersections } from "@/lib/selection/hit-testing";
+import {
+ applyBoxSelection,
+ clearSelection,
+ isSelected as getIsSelected,
+ pruneSelection,
+ replaceSelection,
+ selectRange,
+ toggleSelection,
+} from "@/lib/selection/state";
+import type {
+ SelectableSurfaceProps,
+ SelectionState,
+} from "@/lib/selection/types";
+import { useBoxSelect } from "@/lib/selection/hooks/use-box-select";
+import { cn } from "@/utils/ui";
+
+export function SelectableSurface({
+ orderedIds,
+ children,
+ className,
+ ariaLabel = "Selectable items",
+ revealId = null,
+ onRevealComplete,
+ onSelectionChange,
+}: SelectableSurfaceProps) {
+ const [selectionState, setSelectionState] = useState<SelectionState>(() =>
+ clearSelection(),
+ );
+ const [highlightedId, setHighlightedId] = useState<string | null>(null);
+ const containerRef = useRef<HTMLDivElement>(null);
+ const itemElementsRef = useRef<Map<string, HTMLElement>>(new Map());
+
+ const registerItem = useCallback(
+ (id: string, element: HTMLElement | null) => {
+ if (element) {
+ itemElementsRef.current.set(id, element);
+ } else {
+ itemElementsRef.current.delete(id);
+ }
+ },
+ [],
+ );
+
+ const getSelectableElements = useCallback(() => {
+ return itemElementsRef.current;
+ }, []);
+
+ const getItemElement = useCallback((id: string) => {
+ return itemElementsRef.current.get(id) ?? null;
+ }, []);
+ const shouldStartSelection = useCallback(
+ (event: React.MouseEvent<Element>) => {
+ return !(
+ event.target instanceof Element &&
+ event.target.closest(`[${SELECTABLE_ITEM_ATTRIBUTE}='true']`)
+ );
+ },
+ [],
+ );
+ const resolveIntersections = useCallback(
+ ({
+ startPos,
+ currentPos,
+ }: {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+ }) => {
+ return resolveElementIntersections({
+ startPos,
+ currentPos,
+ elements: getSelectableElements(),
+ });
+ },
+ [getSelectableElements],
+ );
+
+ const clearSelectionState = useCallback(() => {
+ setSelectionState(clearSelection());
+ }, []);
+
+ const selectedIdSet = useMemo(
+ () => new Set(selectionState.selectedIds),
+ [selectionState.selectedIds],
+ );
+
+ const isSelected = useCallback(
+ (id: string) => selectedIdSet.has(id),
+ [selectedIdSet],
+ );
+
+ const handleItemClick = useCallback(
+ ({
+ event,
+ id,
+ }: {
+ event:
+ | React.MouseEvent<HTMLDivElement>
+ | React.KeyboardEvent<HTMLDivElement>;
+ id: string;
+ }) => {
+ setSelectionState((state) => {
+ const isToggleSelection = event.ctrlKey || event.metaKey;
+
+ if (event.shiftKey) {
+ return selectRange({
+ state,
+ orderedIds,
+ targetId: id,
+ isAdditive: isToggleSelection,
+ });
+ }
+
+ if (isToggleSelection) {
+ return toggleSelection({
+ state,
+ id,
+ });
+ }
+
+ return replaceSelection({
+ ids: [id],
+ anchorId: id,
+ });
+ });
+ },
+ [orderedIds],
+ );
+
+ const selectUnselectedItem = useCallback((id: string) => {
+ setSelectionState((state) => {
+ if (getIsSelected({ state, id })) {
+ return state;
+ }
+
+ return replaceSelection({ ids: [id], anchorId: id });
+ });
+ }, []);
+
+ const handleItemMouseDown = useCallback(
+ ({
+ event,
+ id,
+ }: {
+ event: React.MouseEvent<HTMLDivElement>;
+ id: string;
+ }) => {
+ if (event.button !== 2) {
+ return;
+ }
+
+ selectUnselectedItem(id);
+ },
+ [selectUnselectedItem],
+ );
+
+ const handleBoxSelectionChange = useCallback(
+ (change: Parameters<typeof applyBoxSelection>[0]) => {
+ setSelectionState(applyBoxSelection(change));
+ },
+ [],
+ );
+
+ const { selectionBox, handleMouseDown, shouldIgnoreClick } = useBoxSelect({
+ containerRef,
+ resolveIntersections,
+ selectedIds: selectionState.selectedIds,
+ anchorId: selectionState.anchorId,
+ onSelectionChange: handleBoxSelectionChange,
+ shouldStartSelection,
+ });
+
+ const handleBackgroundClick = useCallback(
+ (event: React.MouseEvent<HTMLDivElement>) => {
+ const clickedSelectableItem =
+ event.target instanceof Element &&
+ event.target.closest(`[${SELECTABLE_ITEM_ATTRIBUTE}='true']`);
+ const isIgnoringClick = shouldIgnoreClick();
+ if (clickedSelectableItem || isIgnoringClick) {
+ return;
+ }
+
+ clearSelectionState();
+ },
+ [clearSelectionState, shouldIgnoreClick],
+ );
+
+ const handleBackgroundKeyDown = useCallback(
+ (event: React.KeyboardEvent<HTMLDivElement>) => {
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (event.key !== "Enter" && event.key !== " " && event.key !== "Escape") {
+ return;
+ }
+
+ event.preventDefault();
+ clearSelectionState();
+ },
+ [clearSelectionState],
+ );
+
+ useEffect(() => {
+ setSelectionState((state) =>
+ pruneSelection({
+ state,
+ orderedIds,
+ }),
+ );
+ }, [orderedIds]);
+
+ useEffect(() => {
+ onSelectionChange?.(selectionState);
+ }, [onSelectionChange, selectionState]);
+
+ useEffect(() => {
+ if (!revealId) {
+ return;
+ }
+
+ setHighlightedId(revealId);
+ getItemElement(revealId)?.scrollIntoView({ block: "center" });
+
+ const timer = setTimeout(() => {
+ setHighlightedId(null);
+ onRevealComplete?.();
+ }, 1500);
+
+ return () => clearTimeout(timer);
+ }, [getItemElement, onRevealComplete, revealId]);
+
+ const isBoxSelecting = selectionBox?.isActive ?? false;
+
+ const contextValue = useMemo(() => {
+ return {
+ selectedIds: selectionState.selectedIds,
+ anchorId: selectionState.anchorId,
+ highlightedId,
+ isBoxSelecting,
+ isSelected,
+ clearSelection: clearSelectionState,
+ handleItemClick,
+ handleItemMouseDown,
+ registerItem,
+ };
+ }, [
+ clearSelectionState,
+ handleItemClick,
+ handleItemMouseDown,
+ highlightedId,
+ isBoxSelecting,
+ isSelected,
+ registerItem,
+ selectionState.anchorId,
+ selectionState.selectedIds,
+ ]);
+
+ return (
+ <SelectionContext.Provider value={contextValue}>
+ <div
+ ref={containerRef}
+ className={cn("relative min-h-full", className)}
+ role="listbox"
+ aria-label={ariaLabel}
+ aria-multiselectable="true"
+ tabIndex={0}
+ onMouseDown={handleMouseDown}
+ onClick={handleBackgroundClick}
+ onKeyDown={handleBackgroundKeyDown}
+ >
+ {children}
+ <SelectionBox
+ startPos={selectionBox?.startPos ?? null}
+ currentPos={selectionBox?.currentPos ?? null}
+ containerRef={containerRef}
+ isActive={selectionBox?.isActive ?? false}
+ />
+ </div>
+ </SelectionContext.Provider>
+ );
+}
diff --git a/apps/web/src/components/editor/selection-box.tsx b/apps/web/src/lib/selection/selection-box.tsx
index 0b757e36..0b757e36 100644
--- a/apps/web/src/components/editor/selection-box.tsx
+++ b/apps/web/src/lib/selection/selection-box.tsx
diff --git a/apps/web/src/lib/selection/state.ts b/apps/web/src/lib/selection/state.ts
new file mode 100644
index 00000000..b4c454fb
--- /dev/null
+++ b/apps/web/src/lib/selection/state.ts
@@ -0,0 +1,165 @@
+import type {
+ BoxSelectionChange,
+ SelectionState,
+} from "@/lib/selection/types";
+
+function dedupeIds({ ids }: { ids: string[] }) {
+ return [...new Set(ids)];
+}
+
+function getRangeIds({
+ orderedIds,
+ anchorId,
+ targetId,
+}: {
+ orderedIds: string[];
+ anchorId: string;
+ targetId: string;
+}) {
+ const anchorIndex = orderedIds.indexOf(anchorId);
+ const targetIndex = orderedIds.indexOf(targetId);
+
+ if (anchorIndex === -1 || targetIndex === -1) {
+ return [targetId];
+ }
+
+ const rangeStart = Math.min(anchorIndex, targetIndex);
+ const rangeEnd = Math.max(anchorIndex, targetIndex);
+ return orderedIds.slice(rangeStart, rangeEnd + 1);
+}
+
+export function replaceSelection({
+ ids,
+ anchorId,
+}: {
+ ids: string[];
+ anchorId?: string | null;
+}): SelectionState {
+ const selectedIds = dedupeIds({ ids });
+ return {
+ selectedIds,
+ anchorId: anchorId ?? selectedIds[selectedIds.length - 1] ?? null,
+ };
+}
+
+export function clearSelection(): SelectionState {
+ return {
+ selectedIds: [],
+ anchorId: null,
+ };
+}
+
+export function pruneSelection({
+ state,
+ orderedIds,
+}: {
+ state: SelectionState;
+ orderedIds: string[];
+}): SelectionState {
+ const validIds = new Set(orderedIds);
+ const selectedIds = state.selectedIds.filter((id) => validIds.has(id));
+ const anchorId =
+ state.anchorId && validIds.has(state.anchorId)
+ ? state.anchorId
+ : selectedIds[selectedIds.length - 1] ?? null;
+ const isUnchanged =
+ selectedIds.length === state.selectedIds.length &&
+ anchorId === state.anchorId;
+
+ if (isUnchanged) {
+ return state;
+ }
+
+ return {
+ selectedIds,
+ anchorId,
+ };
+}
+
+export function isSelected({
+ state,
+ id,
+}: {
+ state: SelectionState;
+ id: string;
+}) {
+ return state.selectedIds.includes(id);
+}
+
+export function toggleSelection({
+ state,
+ id,
+}: {
+ state: SelectionState;
+ id: string;
+}): SelectionState {
+ if (isSelected({ state, id })) {
+ const selectedIds = state.selectedIds.filter((selectedId) => selectedId !== id);
+ const anchorId =
+ state.anchorId === id
+ ? selectedIds[selectedIds.length - 1] ?? null
+ : state.anchorId;
+ return replaceSelection({
+ ids: selectedIds,
+ anchorId,
+ });
+ }
+
+ return replaceSelection({
+ ids: [...state.selectedIds, id],
+ anchorId: id,
+ });
+}
+
+export function selectRange({
+ state,
+ orderedIds,
+ targetId,
+ isAdditive,
+}: {
+ state: SelectionState;
+ orderedIds: string[];
+ targetId: string;
+ isAdditive: boolean;
+}): SelectionState {
+ const anchorId =
+ state.anchorId ??
+ state.selectedIds[state.selectedIds.length - 1] ??
+ targetId;
+ const rangeIds = getRangeIds({
+ orderedIds,
+ anchorId,
+ targetId,
+ });
+ const selectedIds = isAdditive
+ ? dedupeIds({
+ ids: [...state.selectedIds, ...rangeIds],
+ })
+ : rangeIds;
+
+ return replaceSelection({
+ ids: selectedIds,
+ anchorId,
+ });
+}
+
+export function applyBoxSelection({
+ intersectedIds,
+ initialSelectedIds,
+ initialAnchorId,
+ isAdditive,
+}: BoxSelectionChange): SelectionState {
+ const selectedIds = isAdditive
+ ? dedupeIds({
+ ids: [...initialSelectedIds, ...intersectedIds],
+ })
+ : intersectedIds;
+ const anchorId = isAdditive
+ ? initialAnchorId ?? intersectedIds[intersectedIds.length - 1] ?? null
+ : intersectedIds[intersectedIds.length - 1] ?? null;
+
+ return replaceSelection({
+ ids: selectedIds,
+ anchorId,
+ });
+}
diff --git a/apps/web/src/lib/selection/types.ts b/apps/web/src/lib/selection/types.ts
new file mode 100644
index 00000000..94fd7abe
--- /dev/null
+++ b/apps/web/src/lib/selection/types.ts
@@ -0,0 +1,39 @@
+export interface SelectionState {
+ selectedIds: string[];
+ anchorId: string | null;
+}
+
+export interface BoxSelectionSnapshot<TId = string> {
+ initialSelectedIds: TId[];
+ initialAnchorId: TId | null;
+}
+
+export interface BoxSelectionChange<TId = string>
+ extends BoxSelectionSnapshot<TId> {
+ intersectedIds: TId[];
+ isAdditive: boolean;
+}
+
+export type ResolveIntersections<TId = string> = ({
+ startPos,
+ currentPos,
+}: {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+}) => TId[];
+
+export interface SelectableSurfaceProps {
+ orderedIds: string[];
+ children: React.ReactNode;
+ className?: string;
+ ariaLabel?: string;
+ revealId?: string | null;
+ onRevealComplete?: () => void;
+ onSelectionChange?: (state: SelectionState) => void;
+}
+
+export interface SelectableItemProps
+ extends React.HTMLAttributes<HTMLDivElement> {
+ id: string;
+ children: React.ReactNode;
+}
diff --git a/apps/web/src/lib/shaders/jfa-init.frag.glsl b/apps/web/src/lib/shaders/jfa-init.frag.glsl
new file mode 100644
index 00000000..d199d234
--- /dev/null
+++ b/apps/web/src/lib/shaders/jfa-init.frag.glsl
@@ -0,0 +1,25 @@
+precision mediump float;
+
+uniform sampler2D u_texture;
+uniform vec2 u_resolution;
+uniform float u_invert;
+
+varying vec2 v_texCoord;
+
+void main() {
+ float mask = texture2D(u_texture, v_texCoord).r;
+ bool isSeed = u_invert > 0.5 ? mask < 0.5 : mask > 0.5;
+
+ if (isSeed) {
+ vec2 pixelCoord = floor(v_texCoord * u_resolution);
+ float x = pixelCoord.x;
+ float y = pixelCoord.y;
+ float xHi = floor(x / 256.0);
+ float xLo = x - xHi * 256.0;
+ float yHi = floor(y / 256.0);
+ float yLo = y - yHi * 256.0;
+ gl_FragColor = vec4(xHi / 255.0, xLo / 255.0, yHi / 255.0, yLo / 255.0);
+ } else {
+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+}
diff --git a/apps/web/src/lib/shaders/jfa-step.frag.glsl b/apps/web/src/lib/shaders/jfa-step.frag.glsl
new file mode 100644
index 00000000..5a95f497
--- /dev/null
+++ b/apps/web/src/lib/shaders/jfa-step.frag.glsl
@@ -0,0 +1,60 @@
+precision mediump float;
+
+uniform sampler2D u_texture;
+uniform vec2 u_resolution;
+uniform float u_step_size;
+
+varying vec2 v_texCoord;
+
+vec2 decodeSeed(vec4 encoded) {
+ float x = floor(encoded.r * 255.0 + 0.5) * 256.0 + floor(encoded.g * 255.0 + 0.5);
+ float y = floor(encoded.b * 255.0 + 0.5) * 256.0 + floor(encoded.a * 255.0 + 0.5);
+ return vec2(x, y);
+}
+
+vec4 encodeSeed(vec2 seed) {
+ float xHi = floor(seed.x / 256.0);
+ float xLo = seed.x - xHi * 256.0;
+ float yHi = floor(seed.y / 256.0);
+ float yLo = seed.y - yHi * 256.0;
+ return vec4(xHi / 255.0, xLo / 255.0, yHi / 255.0, yLo / 255.0);
+}
+
+bool isNoSeed(vec4 encoded) {
+ return encoded.r > 0.99 && encoded.g > 0.99 && encoded.b > 0.99 && encoded.a > 0.99;
+}
+
+void main() {
+ vec2 pixelCoord = floor(v_texCoord * u_resolution);
+ vec2 texelSize = 1.0 / u_resolution;
+
+ float bestDist = 1e10;
+ vec2 bestSeed = vec2(65535.0);
+
+ for (int dy = -1; dy <= 1; dy++) {
+ for (int dx = -1; dx <= 1; dx++) {
+ vec2 offset = vec2(float(dx), float(dy)) * u_step_size;
+ vec2 sampleUV = v_texCoord + offset * texelSize;
+
+ if (sampleUV.x < 0.0 || sampleUV.x > 1.0 || sampleUV.y < 0.0 || sampleUV.y > 1.0)
+ continue;
+
+ vec4 encoded = texture2D(u_texture, sampleUV);
+ if (isNoSeed(encoded))
+ continue;
+
+ vec2 seed = decodeSeed(encoded);
+ float dist = distance(pixelCoord, seed);
+ if (dist < bestDist) {
+ bestDist = dist;
+ bestSeed = seed;
+ }
+ }
+ }
+
+ if (bestDist < 1e9) {
+ gl_FragColor = encodeSeed(bestSeed);
+ } else {
+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+ }
+}
diff --git a/apps/web/src/types/sounds.ts b/apps/web/src/lib/sounds/types.ts
index eecf7701..eecf7701 100644
--- a/apps/web/src/types/sounds.ts
+++ b/apps/web/src/lib/sounds/types.ts
diff --git a/apps/web/src/lib/stickers/__tests__/sticker-id.test.ts b/apps/web/src/lib/stickers/__tests__/sticker-id.test.ts
index 573dc251..3236e213 100644
--- a/apps/web/src/lib/stickers/__tests__/sticker-id.test.ts
+++ b/apps/web/src/lib/stickers/__tests__/sticker-id.test.ts
@@ -3,13 +3,13 @@ import { buildStickerId, parseStickerId } from "../sticker-id";
describe("sticker-id strict mode", () => {
test("parses provider-prefixed IDs", () => {
- expect(parseStickerId({ stickerId: "icons:mdi:home" })).toEqual({
- providerId: "icons",
- providerValue: "mdi:home",
+ expect(parseStickerId({ stickerId: "flags:US" })).toEqual({
+ providerId: "flags",
+ providerValue: "US",
});
- expect(parseStickerId({ stickerId: "emoji:noto:grinning-face" })).toEqual({
- providerId: "emoji",
- providerValue: "noto:grinning-face",
+ expect(parseStickerId({ stickerId: "shapes:circle" })).toEqual({
+ providerId: "shapes",
+ providerValue: "circle",
});
});
@@ -19,7 +19,7 @@ describe("sticker-id strict mode", () => {
test("throws for malformed IDs", () => {
expect(() => parseStickerId({ stickerId: "" })).toThrow();
- expect(() => parseStickerId({ stickerId: "icons:" })).toThrow();
+ expect(() => parseStickerId({ stickerId: "flags:" })).toThrow();
expect(() => parseStickerId({ stickerId: ":mdi:home" })).toThrow();
});
diff --git a/apps/web/src/lib/stickers/index.ts b/apps/web/src/lib/stickers/index.ts
index 1f924c6d..47be18fe 100644
--- a/apps/web/src/lib/stickers/index.ts
+++ b/apps/web/src/lib/stickers/index.ts
@@ -1,10 +1,20 @@
-import { STICKER_CATEGORIES } from "@/constants/sticker-constants";
-import type { StickerCategory } from "@/types/stickers";
-import { getAllProviders, getProvider } from "./registry";
+import {
+ STICKER_CATEGORIES,
+ STICKER_INTRINSIC_SIZE_FALLBACK,
+} from "@/constants/sticker-constants";
+import type { StickerCategory } from "@/lib/stickers/types";
+import { stickersRegistry } from "./registry";
import { resolveStickerId } from "./resolver";
import { registerDefaultStickerProviders } from "./providers";
-import type { StickerProvider, StickerSearchResult } from "./types";
+import { parseStickerId } from "./sticker-id";
+import type {
+ StickerBrowseResult,
+ StickerItem,
+ StickerProvider,
+ StickerSearchResult,
+} from "./types";
+const DEFAULT_BROWSE_LIMIT = 12;
const DEFAULT_SEARCH_LIMIT = 100;
function mergeSearchResults({
@@ -46,7 +56,46 @@ function getProviderByCategory({
}
try {
- return getProvider({ providerId: category });
+ return stickersRegistry.get(category);
+ } catch {
+ return null;
+ }
+}
+
+function getEmptyBrowseResult(): StickerBrowseResult {
+ return {
+ sections: [],
+ };
+}
+
+function getStickerNameFromId({ stickerId }: { stickerId: string }): string {
+ const stickerIdParts = stickerId.split(":");
+ if (stickerIdParts.length <= 1) {
+ return stickerId;
+ }
+ return (
+ stickerIdParts.slice(1).join(":").split(":").pop()?.replaceAll("-", " ") ??
+ stickerId
+ );
+}
+
+function toRecentStickerItem({
+ stickerId,
+}: {
+ stickerId: string;
+}): StickerItem | null {
+ try {
+ const { providerId } = parseStickerId({ stickerId });
+ return {
+ id: stickerId,
+ provider: providerId,
+ name: getStickerNameFromId({ stickerId }),
+ previewUrl: resolveStickerId({
+ stickerId,
+ options: { width: 64, height: 64 },
+ }),
+ metadata: {},
+ };
} catch {
return null;
}
@@ -79,7 +128,7 @@ export async function searchStickers({
});
}
- const providers = getAllProviders();
+ const providers = stickersRegistry.getAll();
if (providers.length === 0) {
return {
items: [],
@@ -110,64 +159,157 @@ export async function searchStickers({
});
}
-export async function browseStickers({
- category,
- page = 1,
+export async function searchAll({
+ query,
limit = DEFAULT_SEARCH_LIMIT,
}: {
- category: StickerCategory;
- page?: number;
+ query: string;
limit?: number;
-}): Promise<StickerSearchResult> {
+}): Promise<StickerBrowseResult> {
registerDefaultStickerProviders({});
- const effectiveCategory = category in STICKER_CATEGORIES ? category : "all";
- if (effectiveCategory !== "all") {
- const provider = getProviderByCategory({ category: effectiveCategory });
- if (!provider) {
- return {
- items: [],
- total: 0,
- hasMore: false,
- };
+ const providers = stickersRegistry.getAll();
+ if (providers.length === 0) {
+ return { sections: [] };
+ }
+
+ const perProviderLimit = Math.max(1, Math.ceil(limit / providers.length));
+ const settledResults = await Promise.allSettled(
+ providers.map(async (provider) => {
+ const result = await provider.search({
+ query,
+ options: { limit: perProviderLimit },
+ });
+ return { provider, result };
+ }),
+ );
+
+ const sections: StickerBrowseResult["sections"] = [];
+ for (const settled of settledResults) {
+ if (settled.status !== "fulfilled") {
+ continue;
}
- return provider.browse({
- options: { page, limit },
+ const { provider, result } = settled.value;
+ if (result.items.length === 0) {
+ continue;
+ }
+ const category = provider.id as StickerCategory;
+ sections.push({
+ id: category,
+ title: STICKER_CATEGORIES[category] ?? provider.id,
+ items: result.items,
+ hasMore: result.hasMore,
+ layout: "grid",
});
}
- const providers = getAllProviders();
- if (providers.length === 0) {
- return {
- items: [],
- total: 0,
- hasMore: false,
- };
+ return { sections };
+}
+
+export async function browseCategory({
+ category,
+}: {
+ category: StickerCategory;
+}): Promise<StickerBrowseResult> {
+ registerDefaultStickerProviders({});
+
+ const effectiveCategory = category in STICKER_CATEGORIES ? category : "all";
+ if (effectiveCategory === "all") {
+ return getEmptyBrowseResult();
+ }
+
+ const provider = getProviderByCategory({ category: effectiveCategory });
+ if (!provider) {
+ return getEmptyBrowseResult();
+ }
+
+ return provider.browse({ options: {} });
+}
+
+export async function browseAll({
+ recentStickers,
+ limit = DEFAULT_BROWSE_LIMIT,
+}: {
+ recentStickers: string[];
+ limit?: number;
+}): Promise<StickerBrowseResult> {
+ registerDefaultStickerProviders({});
+
+ const sections: StickerBrowseResult["sections"] = [];
+ const recentItems = recentStickers
+ .map((stickerId) => toRecentStickerItem({ stickerId }))
+ .filter((item): item is StickerItem => item !== null);
+
+ if (recentItems.length > 0) {
+ sections.push({
+ id: "recent",
+ title: "Recently used",
+ items: recentItems.slice(0, limit),
+ hasMore: recentItems.length > limit,
+ layout: "row",
+ });
}
- const perProviderLimit = Math.max(1, Math.ceil(limit / providers.length));
const settledResults = await Promise.allSettled(
- providers.map((provider) =>
- provider.browse({
- options: { page, limit: perProviderLimit },
- }),
- ),
+ stickersRegistry.getAll().map(async (provider) => {
+ const browseResult = await provider.browse({
+ options: { limit },
+ });
+ const firstSection = browseResult.sections[0];
+
+ if (!firstSection || firstSection.items.length === 0) {
+ return null;
+ }
+
+ const category = provider.id as StickerCategory;
+ return {
+ ...firstSection,
+ id: category,
+ title: STICKER_CATEGORIES[category] ?? firstSection.title,
+ layout: "row" as const,
+ action: {
+ type: "see-all" as const,
+ category,
+ sectionId: firstSection.id,
+ },
+ };
+ }),
);
- const fulfilledResults = settledResults
- .filter(
- (result): result is PromiseFulfilledResult<StickerSearchResult> =>
- result.status === "fulfilled",
- )
- .map((result) => result.value);
+ for (const result of settledResults) {
+ if (result.status === "fulfilled" && result.value) {
+ sections.push(result.value);
+ }
+ }
- return mergeSearchResults({
- results: fulfilledResults,
+ return { sections };
+}
+
+export async function resolveStickerIntrinsicSize({
+ stickerId,
+}: {
+ stickerId: string;
+}): Promise<{ width: number; height: number }> {
+ const url = resolveStickerId({ stickerId });
+ return new Promise((resolve) => {
+ const img = new Image();
+ img.onload = () =>
+ resolve({ width: img.naturalWidth, height: img.naturalHeight });
+ img.onerror = () =>
+ resolve({
+ width: STICKER_INTRINSIC_SIZE_FALLBACK,
+ height: STICKER_INTRINSIC_SIZE_FALLBACK,
+ });
+ img.src = url;
});
}
export { resolveStickerId };
+export { resolveQueryToRegions, getRegionLabel } from "./providers/flags";
export type {
+ StickerBrowseResult,
+ StickerBrowseSection,
+ StickerCategory,
StickerItem,
StickerProvider,
StickerResolveOptions,
diff --git a/apps/web/public/countries.json b/apps/web/src/lib/stickers/providers/countries-data.ts
index 8d53cfae..1bcc1f50 100644
--- a/apps/web/public/countries.json
+++ b/apps/web/src/lib/stickers/providers/countries-data.ts
@@ -1,4 +1,43 @@
-[
+export const REGIONS = [
+ { id: "Western Europe", aliases: ["west europe"] },
+ { id: "Eastern Europe", aliases: ["east europe"] },
+ { id: "Northern Europe", aliases: ["north europe"] },
+ { id: "Southern Europe", aliases: ["south europe"] },
+ { id: "South Asia", aliases: ["southern asia"] },
+ { id: "Southeast Asia", aliases: ["south east asia"] },
+ { id: "East Asia", aliases: ["eastern asia", "far east"] },
+ { id: "Central Asia", aliases: [] },
+ { id: "Middle East", aliases: ["west asia"] },
+ { id: "North Africa", aliases: ["northern africa"] },
+ { id: "Sub-Saharan Africa", aliases: ["subsaharan africa"] },
+ { id: "North America", aliases: ["northern america"] },
+ { id: "South America", aliases: ["southern america", "latin america"] },
+ { id: "Central America", aliases: ["central am"] },
+ { id: "Caribbean", aliases: ["caribbean islands"] },
+ { id: "Oceania", aliases: ["pacific", "pacific islands"] },
+ { id: "Antarctica", aliases: [] },
+ { id: "Atlantic Ocean", aliases: ["atlantic"] },
+ { id: "North Atlantic", aliases: [] },
+] as const;
+
+export type RegionId = (typeof REGIONS)[number]["id"];
+
+export const REGION_GROUPS: Partial<Record<string, RegionId[]>> = {
+ europe: ["Western Europe", "Eastern Europe", "Northern Europe", "Southern Europe"],
+ asia: ["South Asia", "Southeast Asia", "East Asia", "Central Asia"],
+ africa: ["Sub-Saharan Africa", "North Africa"],
+ america: ["North America", "South America", "Central America", "Caribbean"],
+};
+
+export interface CountryRecord {
+ name: string;
+ code: string;
+ languages?: string[];
+ flag_colors?: string[];
+ region?: RegionId;
+}
+
+export const COUNTRIES: CountryRecord[] = [
{
"name": "Andorra",
"code": "AD",
@@ -203,13 +242,6 @@
"region": "South America"
},
{
- "name": "Sint Eustatius",
- "code": "BQ-SE",
- "languages": ["dutch", "english"],
- "flag_colors": ["blue", "white", "red", "yellow"],
- "region": "Caribbean"
- },
- {
"name": "Caribbean Netherlands",
"code": "BQ",
"languages": ["dutch", "papiamento", "english"],
@@ -1659,13 +1691,6 @@
"region": "Sub-Saharan Africa"
},
{
- "name": "United States Minor Outlying Islands",
- "code": "UM",
- "languages": ["english"],
- "flag_colors": ["red", "white", "blue"],
- "region": "Oceania"
- },
- {
"name": "United States",
"code": "US",
"languages": ["english"],
@@ -1791,4 +1816,4 @@
"flag_colors": ["green", "yellow", "red", "black", "white"],
"region": "Sub-Saharan Africa"
}
-]
+];
diff --git a/apps/web/src/lib/stickers/providers/emoji.ts b/apps/web/src/lib/stickers/providers/emoji.ts
deleted file mode 100644
index cc198236..00000000
--- a/apps/web/src/lib/stickers/providers/emoji.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import {
- POPULAR_COLLECTIONS,
- getIconSvgUrl,
- searchIcons,
-} from "@/lib/iconify-api";
-import { buildStickerId, parseStickerId } from "../sticker-id";
-import type {
- StickerItem,
- StickerProvider,
- StickerSearchResult,
-} from "../types";
-
-const EMOJI_PROVIDER_ID = "emoji";
-const DEFAULT_SEARCH_LIMIT = 100;
-
-const EMOJI_PREFIXES = POPULAR_COLLECTIONS.emoji.map(
- (collection) => collection.prefix,
-);
-
-const DEFAULT_EMOJI_BROWSE = [
- "noto:grinning-face",
- "noto:smiling-face-with-heart-eyes",
- "noto:fire",
- "noto:rocket",
- "noto:party-popper",
- "noto:clapping-hands",
- "noto:sparkles",
- "noto:red-heart",
- "noto:thumbs-up",
- "noto:eyes",
- "noto:thinking-face",
- "noto:hundred-points",
-];
-
-function getDisplayNameFromIconName({
- iconName,
-}: {
- iconName: string;
-}): string {
- const parts = iconName.split(":");
- const rawName = parts[parts.length - 1] ?? iconName;
- return rawName.replaceAll("-", " ").replaceAll("_", " ");
-}
-
-function toStickerItem({ iconName }: { iconName: string }): StickerItem {
- return {
- id: buildStickerId({
- providerId: EMOJI_PROVIDER_ID,
- providerValue: iconName,
- }),
- provider: EMOJI_PROVIDER_ID,
- name: getDisplayNameFromIconName({ iconName }),
- previewUrl: getIconSvgUrl(iconName, { width: 64, height: 64 }),
- metadata: { iconName },
- };
-}
-
-function computeHasMore({
- total,
- limit,
- start = 0,
-}: {
- total: number;
- limit: number;
- start?: number;
-}): boolean {
- return start + limit < total;
-}
-
-export const emojiProvider: StickerProvider = {
- id: EMOJI_PROVIDER_ID,
- async search({
- query,
- options,
- }: {
- query: string;
- options?: { limit?: number };
- }): Promise<StickerSearchResult> {
- const limit = options?.limit ?? DEFAULT_SEARCH_LIMIT;
- const searchResult = await searchIcons(query, limit, EMOJI_PREFIXES);
- return {
- items: searchResult.icons.map((iconName) => toStickerItem({ iconName })),
- total: searchResult.total,
- hasMore: computeHasMore({
- total: searchResult.total,
- limit: searchResult.limit,
- start: searchResult.start,
- }),
- };
- },
- async browse({
- options,
- }: {
- options?: { page?: number; limit?: number };
- }): Promise<StickerSearchResult> {
- const limit = options?.limit ?? DEFAULT_EMOJI_BROWSE.length;
- const items = DEFAULT_EMOJI_BROWSE.slice(0, limit).map((iconName) =>
- toStickerItem({ iconName }),
- );
- return {
- items,
- total: items.length,
- hasMore: false,
- };
- },
- resolveUrl({
- stickerId,
- options,
- }: {
- stickerId: string;
- options?: { width?: number; height?: number };
- }): string {
- const { providerValue } = parseStickerId({ stickerId });
- return getIconSvgUrl(providerValue, {
- width: options?.width,
- height: options?.height,
- });
- },
-};
diff --git a/apps/web/src/lib/stickers/providers/flags.ts b/apps/web/src/lib/stickers/providers/flags.ts
index 91cc5489..0cca292f 100644
--- a/apps/web/src/lib/stickers/providers/flags.ts
+++ b/apps/web/src/lib/stickers/providers/flags.ts
@@ -1,23 +1,17 @@
import { buildStickerId, parseStickerId } from "../sticker-id";
import type {
+ StickerBrowseResult,
StickerItem,
StickerProvider,
StickerSearchResult,
} from "../types";
+import { REGIONS, REGION_GROUPS } from "./countries-data";
+import type { CountryRecord, RegionId } from "./countries-data";
const FLAGS_PROVIDER_ID = "flags";
-const FLAGS_DATASET_URL = "/countries.json";
const DEFAULT_SEARCH_LIMIT = 100;
const DEFAULT_FLAGS_BASE_URL = "/flags";
-type CountryRecord = {
- name: string;
- code: string;
- languages?: string[];
- flag_colors?: string[];
- region?: string;
-};
-
let countriesPromise: Promise<CountryRecord[]> | null = null;
function getFlagsBaseUrl(): string {
@@ -25,7 +19,7 @@ function getFlagsBaseUrl(): string {
}
function buildFlagUrl({ code }: { code: string }): string {
- const normalizedCode = code.toUpperCase();
+ const normalizedCode = code.toLowerCase();
return `${getFlagsBaseUrl()}/${encodeURIComponent(normalizedCode)}.svg`;
}
@@ -34,13 +28,8 @@ async function loadCountries(): Promise<CountryRecord[]> {
return countriesPromise;
}
- countriesPromise = fetch(FLAGS_DATASET_URL)
- .then(async (response) => {
- if (!response.ok) {
- throw new Error(`Failed to load countries: ${response.status}`);
- }
- return (await response.json()) as CountryRecord[];
- })
+ countriesPromise = import("./countries-data")
+ .then((m) => m.COUNTRIES)
.catch((error) => {
console.error("Failed to load countries dataset:", error);
return [];
@@ -72,6 +61,44 @@ function normalizeQuery({ query }: { query: string }): string {
return query.trim().toLowerCase();
}
+function findMatchingRegions({
+ query,
+}: {
+ query: string;
+}): (typeof REGIONS)[number][] {
+ return REGIONS.filter(
+ (r) =>
+ r.id.toLowerCase() === query ||
+ r.aliases.some((alias) => alias === query),
+ );
+}
+
+export function resolveQueryToRegions({
+ query,
+}: {
+ query: string;
+}): Set<RegionId> | null {
+ const group = REGION_GROUPS[query];
+ if (group) {
+ return new Set(group);
+ }
+
+ const matched = findMatchingRegions({ query });
+ return matched.length > 0 ? new Set(matched.map((r) => r.id)) : null;
+}
+
+export function getRegionLabel({ query }: { query: string }): string {
+ if (REGION_GROUPS[query]) {
+ return query
+ .split(" ")
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
+ .join(" ");
+ }
+
+ const matched = findMatchingRegions({ query });
+ return matched[0]?.id ?? query;
+}
+
function filterCountriesByQuery({
countries,
query,
@@ -83,15 +110,16 @@ function filterCountriesByQuery({
return countries;
}
+ const regionIds = resolveQueryToRegions({ query });
+
+ if (regionIds) {
+ return countries.filter((country) => country.region && regionIds.has(country.region));
+ }
+
return countries.filter((country) => {
const normalizedName = country.name.toLowerCase();
const normalizedCode = country.code.toLowerCase();
- const normalizedRegion = country.region?.toLowerCase() ?? "";
- return (
- normalizedName.includes(query) ||
- normalizedCode.includes(query) ||
- normalizedRegion.includes(query)
- );
+ return normalizedName.includes(query) || normalizedCode.includes(query);
});
}
@@ -102,13 +130,15 @@ function paginateCountries({
countries: CountryRecord[];
options?: { page?: number; limit?: number };
}): { items: CountryRecord[]; hasMore: boolean; total: number } {
- const page = Math.max(1, options?.page ?? 1);
- const limit = Math.max(1, options?.limit ?? DEFAULT_SEARCH_LIMIT);
+ if (options?.limit === undefined) {
+ return { items: countries, hasMore: false, total: countries.length };
+ }
+ const page = Math.max(1, options.page ?? 1);
+ const limit = Math.max(1, options.limit);
const startIndex = (page - 1) * limit;
const endIndex = startIndex + limit;
- const pagedItems = countries.slice(startIndex, endIndex);
return {
- items: pagedItems,
+ items: countries.slice(startIndex, endIndex),
hasMore: endIndex < countries.length,
total: countries.length,
};
@@ -146,13 +176,18 @@ export const flagsProvider: StickerProvider = {
options,
}: {
options?: { page?: number; limit?: number };
- }): Promise<StickerSearchResult> {
+ }): Promise<StickerBrowseResult> {
const countries = await loadCountries();
const paged = paginateCountries({ countries, options });
return {
- items: paged.items.map((country) => toStickerItem({ country })),
- total: paged.total,
- hasMore: paged.hasMore,
+ sections: [
+ {
+ id: "all",
+ items: paged.items.map((country) => toStickerItem({ country })),
+ hasMore: paged.hasMore,
+ layout: "grid",
+ },
+ ],
};
},
resolveUrl({
diff --git a/apps/web/src/lib/stickers/providers/icons.ts b/apps/web/src/lib/stickers/providers/icons.ts
deleted file mode 100644
index 06b2a4c2..00000000
--- a/apps/web/src/lib/stickers/providers/icons.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import {
- POPULAR_COLLECTIONS,
- getIconSvgUrl,
- searchIcons,
-} from "@/lib/iconify-api";
-import { buildStickerId, parseStickerId } from "../sticker-id";
-import type {
- StickerItem,
- StickerProvider,
- StickerSearchResult,
-} from "../types";
-
-const ICONS_PROVIDER_ID = "icons";
-const DEFAULT_SEARCH_LIMIT = 100;
-
-const ICONS_PREFIXES = Array.from(
- new Set(
- [...POPULAR_COLLECTIONS.general, ...POPULAR_COLLECTIONS.brands].map(
- (collection) => collection.prefix,
- ),
- ),
-);
-
-const DEFAULT_ICONS_BROWSE = [
- "mdi:home",
- "mdi:star",
- "mdi:heart",
- "mdi:check-circle",
- "mdi:account",
- "mdi:camera",
- "mdi:music",
- "mdi:map-marker",
- "mdi:calendar",
- "mdi:lightning-bolt",
- "mdi:cog",
- "mdi:rocket",
-];
-
-function getDisplayNameFromIconName({
- iconName,
-}: {
- iconName: string;
-}): string {
- const [, rawName = iconName] = iconName.split(":");
- return rawName.replaceAll("-", " ").replaceAll("_", " ");
-}
-
-function toStickerItem({ iconName }: { iconName: string }): StickerItem {
- return {
- id: buildStickerId({
- providerId: ICONS_PROVIDER_ID,
- providerValue: iconName,
- }),
- provider: ICONS_PROVIDER_ID,
- name: getDisplayNameFromIconName({ iconName }),
- previewUrl: getIconSvgUrl(iconName, { width: 64, height: 64 }),
- metadata: { iconName },
- };
-}
-
-function computeHasMore({
- total,
- limit,
- start = 0,
-}: {
- total: number;
- limit: number;
- start?: number;
-}): boolean {
- return start + limit < total;
-}
-
-export const iconsProvider: StickerProvider = {
- id: ICONS_PROVIDER_ID,
- async search({
- query,
- options,
- }: {
- query: string;
- options?: { limit?: number };
- }): Promise<StickerSearchResult> {
- const limit = options?.limit ?? DEFAULT_SEARCH_LIMIT;
- const searchResult = await searchIcons(query, limit, ICONS_PREFIXES);
- return {
- items: searchResult.icons.map((iconName) => toStickerItem({ iconName })),
- total: searchResult.total,
- hasMore: computeHasMore({
- total: searchResult.total,
- limit: searchResult.limit,
- start: searchResult.start,
- }),
- };
- },
- async browse({
- options,
- }: {
- options?: { page?: number; limit?: number };
- }): Promise<StickerSearchResult> {
- const limit = options?.limit ?? DEFAULT_ICONS_BROWSE.length;
- const items = DEFAULT_ICONS_BROWSE.slice(0, limit).map((iconName) =>
- toStickerItem({ iconName }),
- );
- return {
- items,
- total: items.length,
- hasMore: false,
- };
- },
- resolveUrl({
- stickerId,
- options,
- }: {
- stickerId: string;
- options?: { width?: number; height?: number };
- }): string {
- const { providerValue } = parseStickerId({ stickerId });
- return getIconSvgUrl(providerValue, {
- width: options?.width,
- height: options?.height,
- });
- },
-};
diff --git a/apps/web/src/lib/stickers/providers/index.ts b/apps/web/src/lib/stickers/providers/index.ts
index 3c4faee9..b0a298cb 100644
--- a/apps/web/src/lib/stickers/providers/index.ts
+++ b/apps/web/src/lib/stickers/providers/index.ts
@@ -1,13 +1,11 @@
-import { hasProvider, registerProvider } from "../registry";
-import type { StickerProvider } from "@/types/stickers";
-import { emojiProvider } from "./emoji";
+import { stickersRegistry } from "../registry";
+import type { StickerProvider } from "@/lib/stickers/types";
import { flagsProvider } from "./flags";
-import { iconsProvider } from "./icons";
+import { logosProvider } from "./logos";
import { shapesProvider } from "./shapes";
const defaultProviders: StickerProvider[] = [
- iconsProvider,
- emojiProvider,
+ logosProvider,
flagsProvider,
shapesProvider,
];
@@ -18,9 +16,9 @@ export function registerDefaultStickerProviders({
providersToRegister?: StickerProvider[];
} = {}): void {
for (const provider of providersToRegister) {
- if (hasProvider({ providerId: provider.id })) {
+ if (stickersRegistry.has(provider.id)) {
continue;
}
- registerProvider({ provider });
+ stickersRegistry.register(provider.id, provider);
}
}
diff --git a/apps/web/src/lib/stickers/providers/logos.ts b/apps/web/src/lib/stickers/providers/logos.ts
new file mode 100644
index 00000000..5be2e9a2
--- /dev/null
+++ b/apps/web/src/lib/stickers/providers/logos.ts
@@ -0,0 +1,31 @@
+import type {
+ StickerBrowseResult,
+ StickerItem,
+ StickerProvider,
+ StickerSearchResult,
+} from "../types";
+
+const LOGOS_PROVIDER_ID = "logos";
+
+const EMPTY_SEARCH_RESULT: StickerSearchResult = {
+ items: [] as StickerItem[],
+ total: 0,
+ hasMore: false,
+};
+
+const EMPTY_BROWSE_RESULT: StickerBrowseResult = {
+ sections: [],
+};
+
+export const logosProvider: StickerProvider = {
+ id: LOGOS_PROVIDER_ID,
+ async search(): Promise<StickerSearchResult> {
+ return EMPTY_SEARCH_RESULT;
+ },
+ async browse(): Promise<StickerBrowseResult> {
+ return EMPTY_BROWSE_RESULT;
+ },
+ resolveUrl({ stickerId }: { stickerId: string }): string {
+ return stickerId;
+ },
+};
diff --git a/apps/web/src/lib/stickers/providers/shapes.ts b/apps/web/src/lib/stickers/providers/shapes.ts
index 81873dcb..a23f14a7 100644
--- a/apps/web/src/lib/stickers/providers/shapes.ts
+++ b/apps/web/src/lib/stickers/providers/shapes.ts
@@ -1,5 +1,8 @@
+import { buildGraphicPreviewUrl, buildDefaultGraphicInstance, graphicsRegistry, registerDefaultGraphics } from "@/lib/graphics";
+import type { ParamValues } from "@/lib/params";
import { buildStickerId, parseStickerId } from "../sticker-id";
import type {
+ StickerBrowseResult,
StickerItem,
StickerProvider,
StickerSearchResult,
@@ -7,60 +10,140 @@ import type {
const SHAPES_PROVIDER_ID = "shapes";
-const SHAPES = [
- { key: "circle", name: "Circle" },
- { key: "square", name: "Square" },
- { key: "triangle", name: "Triangle" },
- { key: "star", name: "Star" },
- { key: "hexagon", name: "Hexagon" },
- { key: "diamond", name: "Diamond" },
-] as const;
+type ShapeGraphicPreset = {
+ shapeKey: string;
+ name: string;
+ definitionId: string;
+ params?: ParamValues;
+};
+
+const LEGACY_SHAPE_PRESETS: Record<string, ShapeGraphicPreset> = {
+ square: { shapeKey: "square", name: "Square", definitionId: "rectangle" },
+ circle: { shapeKey: "circle", name: "Circle", definitionId: "ellipse" },
+ triangle: {
+ shapeKey: "triangle",
+ name: "Triangle",
+ definitionId: "polygon",
+ params: { sides: 3 },
+ },
+ hexagon: {
+ shapeKey: "hexagon",
+ name: "Hexagon",
+ definitionId: "polygon",
+ params: { sides: 6 },
+ },
+ diamond: {
+ shapeKey: "diamond",
+ name: "Diamond",
+ definitionId: "polygon",
+ params: { sides: 4 },
+ },
+ star: { shapeKey: "star", name: "Star", definitionId: "star" },
+};
+
+function getShapePresets(): ShapeGraphicPreset[] {
+ registerDefaultGraphics();
+ return graphicsRegistry.getAll().map((definition) => ({
+ shapeKey: definition.id,
+ name: definition.name,
+ definitionId: definition.id,
+ }));
+}
+
+function getShapePreset({
+ shapeKey,
+}: {
+ shapeKey: string;
+}): ShapeGraphicPreset | null {
+ return (
+ getShapePresets().find((preset) => preset.shapeKey === shapeKey) ??
+ LEGACY_SHAPE_PRESETS[shapeKey] ??
+ null
+ );
+}
+
+function getShapeParams({
+ preset,
+}: {
+ preset: ShapeGraphicPreset;
+}): ParamValues {
+ return {
+ ...buildDefaultGraphicInstance({ definitionId: preset.definitionId }).params,
+ ...preset.params,
+ };
+}
+
+export function parseShapeStickerId({
+ stickerId,
+}: {
+ stickerId: string;
+}): ShapeGraphicPreset | null {
+ try {
+ const { providerValue } = parseStickerId({ stickerId });
+ return getShapePreset({ shapeKey: providerValue });
+ } catch {
+ return null;
+ }
+}
function buildShapeUrl({ shapeKey }: { shapeKey: string }): string {
- return `/shapes/${shapeKey}.svg`;
+ const preset = getShapePreset({ shapeKey });
+ if (!preset) {
+ return buildGraphicPreviewUrl({ definitionId: "rectangle" });
+ }
+ return buildGraphicPreviewUrl({
+ definitionId: preset.definitionId,
+ params: getShapeParams({ preset }),
+ });
}
function toStickerItem({
- shape,
+ preset,
}: {
- shape: (typeof SHAPES)[number];
+ preset: ShapeGraphicPreset;
}): StickerItem {
return {
id: buildStickerId({
providerId: SHAPES_PROVIDER_ID,
- providerValue: shape.key,
+ providerValue: preset.shapeKey,
}),
provider: SHAPES_PROVIDER_ID,
- name: shape.name,
- previewUrl: buildShapeUrl({ shapeKey: shape.key }),
- metadata: { shape: shape.key },
+ name: preset.name,
+ previewUrl: buildShapeUrl({ shapeKey: preset.shapeKey }),
+ metadata: {
+ definitionId: preset.definitionId,
+ params: preset.params ?? {},
+ },
};
}
-function filterShapesByQuery({
- query,
-}: {
- query: string;
-}): Array<(typeof SHAPES)[number]> {
+function filterShapesByQuery({ query }: { query: string }): ShapeGraphicPreset[] {
const normalizedQuery = query.trim().toLowerCase();
+ const presets = getShapePresets();
if (!normalizedQuery) {
- return [...SHAPES];
+ return presets;
}
- return SHAPES.filter((shape) =>
- shape.name.toLowerCase().includes(normalizedQuery),
- );
+ return presets.filter((preset) => {
+ const definition = graphicsRegistry.get(preset.definitionId);
+ return (
+ preset.name.toLowerCase().includes(normalizedQuery) ||
+ definition.keywords.some((keyword) =>
+ keyword.toLowerCase().includes(normalizedQuery),
+ )
+ );
+ });
}
function paginateShapes({
shapes,
options,
}: {
- shapes: Array<(typeof SHAPES)[number]>;
+ shapes: ShapeGraphicPreset[];
options?: { page?: number; limit?: number };
-}): { items: Array<(typeof SHAPES)[number]>; hasMore: boolean; total: number } {
+}): { items: ShapeGraphicPreset[]; hasMore: boolean; total: number } {
const page = Math.max(1, options?.page ?? 1);
- const limit = Math.max(1, options?.limit ?? SHAPES.length);
+ const limit = Math.max(1, options?.limit ?? getShapePresets().length);
const startIndex = (page - 1) * limit;
const endIndex = startIndex + limit;
const pagedItems = shapes.slice(startIndex, endIndex);
@@ -83,10 +166,10 @@ export const shapesProvider: StickerProvider = {
const filteredShapes = filterShapesByQuery({ query });
const paged = paginateShapes({
shapes: filteredShapes,
- options: { page: 1, limit: options?.limit ?? SHAPES.length },
+ options: { page: 1, limit: options?.limit ?? getShapePresets().length },
});
return {
- items: paged.items.map((shape) => toStickerItem({ shape })),
+ items: paged.items.map((preset) => toStickerItem({ preset })),
total: paged.total,
hasMore: paged.hasMore,
};
@@ -95,15 +178,20 @@ export const shapesProvider: StickerProvider = {
options,
}: {
options?: { page?: number; limit?: number };
- }): Promise<StickerSearchResult> {
+ }): Promise<StickerBrowseResult> {
const paged = paginateShapes({
- shapes: [...SHAPES],
+ shapes: getShapePresets(),
options,
});
return {
- items: paged.items.map((shape) => toStickerItem({ shape })),
- total: paged.total,
- hasMore: paged.hasMore,
+ sections: [
+ {
+ id: "all",
+ items: paged.items.map((preset) => toStickerItem({ preset })),
+ hasMore: paged.hasMore,
+ layout: "grid",
+ },
+ ],
};
},
resolveUrl({
@@ -112,7 +200,7 @@ export const shapesProvider: StickerProvider = {
stickerId: string;
options?: { width?: number; height?: number };
}): string {
- const { providerValue } = parseStickerId({ stickerId });
- return buildShapeUrl({ shapeKey: providerValue });
+ const preset = parseShapeStickerId({ stickerId });
+ return buildShapeUrl({ shapeKey: preset?.shapeKey ?? "rectangle" });
},
};
diff --git a/apps/web/src/lib/stickers/registry.ts b/apps/web/src/lib/stickers/registry.ts
index 0fbad594..7148c09d 100644
--- a/apps/web/src/lib/stickers/registry.ts
+++ b/apps/web/src/lib/stickers/registry.ts
@@ -1,31 +1,10 @@
-import type { StickerProvider } from "@/types/stickers";
+import type { StickerProvider } from "@/lib/stickers/types";
+import { DefinitionRegistry } from "@/lib/registry";
-const providers = new Map<string, StickerProvider>();
-
-export function registerProvider({
- provider,
-}: {
- provider: StickerProvider;
-}): void {
- providers.set(provider.id, provider);
-}
-
-export function hasProvider({ providerId }: { providerId: string }): boolean {
- return providers.has(providerId);
-}
-
-export function getProvider({
- providerId,
-}: {
- providerId: string;
-}): StickerProvider {
- const provider = providers.get(providerId);
- if (!provider) {
- throw new Error(`Unknown sticker provider: ${providerId}`);
+export class StickersRegistry extends DefinitionRegistry<string, StickerProvider> {
+ constructor() {
+ super("sticker provider");
}
- return provider;
}
-export function getAllProviders(): StickerProvider[] {
- return Array.from(providers.values());
-}
+export const stickersRegistry = new StickersRegistry();
diff --git a/apps/web/src/lib/stickers/resolver.ts b/apps/web/src/lib/stickers/resolver.ts
index 3252cd60..0002e716 100644
--- a/apps/web/src/lib/stickers/resolver.ts
+++ b/apps/web/src/lib/stickers/resolver.ts
@@ -1,7 +1,7 @@
-import { getProvider } from "./registry";
+import { stickersRegistry } from "./registry";
import { parseStickerId } from "./sticker-id";
import { registerDefaultStickerProviders } from "./providers";
-import type { StickerResolveOptions } from "@/types/stickers";
+import type { StickerResolveOptions } from "@/lib/stickers/types";
export function resolveStickerId({
stickerId,
@@ -13,9 +13,7 @@ export function resolveStickerId({
registerDefaultStickerProviders();
const parsedStickerId = parseStickerId({ stickerId });
- return getProvider({
- providerId: parsedStickerId.providerId,
- }).resolveUrl({
+ return stickersRegistry.get(parsedStickerId.providerId).resolveUrl({
stickerId,
options,
});
diff --git a/apps/web/src/lib/stickers/types.ts b/apps/web/src/lib/stickers/types.ts
index 91cbcaae..9d16e4be 100644
--- a/apps/web/src/lib/stickers/types.ts
+++ b/apps/web/src/lib/stickers/types.ts
@@ -1,8 +1,71 @@
-export type {
- StickerItem,
- StickerProvider,
- StickerProviderBrowseOptions,
- StickerProviderSearchOptions,
- StickerResolveOptions,
- StickerSearchResult,
-} from "@/types/stickers";
+import type { STICKER_CATEGORIES } from "@/constants/sticker-constants";
+
+export type StickerCategory = keyof typeof STICKER_CATEGORIES;
+
+export interface StickerItem {
+ id: string;
+ provider: string;
+ name: string;
+ previewUrl: string;
+ metadata: Record<string, unknown>;
+}
+
+export interface StickerSearchResult {
+ items: StickerItem[];
+ total: number;
+ hasMore: boolean;
+}
+
+export interface StickerBrowseSection {
+ id: string;
+ title?: string;
+ items: StickerItem[];
+ hasMore?: boolean;
+ layout?: "grid" | "row";
+ action?: {
+ type: "see-all";
+ category?: StickerCategory;
+ sectionId?: string;
+ };
+}
+
+export interface StickerBrowseResult {
+ sections: StickerBrowseSection[];
+}
+
+export interface StickerProviderSearchOptions {
+ limit?: number;
+}
+
+export interface StickerProviderBrowseOptions {
+ page?: number;
+ limit?: number;
+}
+
+export interface StickerResolveOptions {
+ width?: number;
+ height?: number;
+}
+
+export interface StickerProvider {
+ id: string;
+ search({
+ query,
+ options,
+ }: {
+ query: string;
+ options?: StickerProviderSearchOptions;
+ }): Promise<StickerSearchResult>;
+ browse({
+ options,
+ }: {
+ options?: StickerProviderBrowseOptions;
+ }): Promise<StickerBrowseResult>;
+ resolveUrl({
+ stickerId,
+ options,
+ }: {
+ stickerId: string;
+ options?: StickerResolveOptions;
+ }): string;
+}
diff --git a/apps/web/src/lib/text/layout.ts b/apps/web/src/lib/text/layout.ts
index 3eadcec2..32d0d80e 100644
--- a/apps/web/src/lib/text/layout.ts
+++ b/apps/web/src/lib/text/layout.ts
@@ -1,5 +1,5 @@
-import { DEFAULT_TEXT_BACKGROUND } from "@/constants/text-constants";
-import type { TextBackground, TextElement } from "@/types/timeline";
+import type { TextBackground, TextElement } from "@/lib/timeline";
+import { DEFAULTS } from "@/lib/timeline/defaults";
type TextRect = {
left: number;
@@ -14,6 +14,23 @@ export interface TextBlockMeasurement {
maxWidth: number;
}
+type CanvasContext =
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D;
+
+export function setCanvasLetterSpacing({
+ ctx,
+ letterSpacingPx,
+}: {
+ ctx: CanvasContext;
+ letterSpacingPx: number;
+}): void {
+ if ("letterSpacing" in ctx) {
+ (ctx as CanvasRenderingContext2D & { letterSpacing: string }).letterSpacing =
+ `${letterSpacingPx}px`;
+ }
+}
+
export function getMetricAscent({
metrics,
fallbackFontSize,
@@ -118,11 +135,11 @@ export function getTextBackgroundRect({
const textRect = getTextRect({ textAlign, block });
const paddingX =
- (background.paddingX ?? DEFAULT_TEXT_BACKGROUND.paddingX) * fontSizeRatio;
+ (background.paddingX ?? DEFAULTS.text.background.paddingX) * fontSizeRatio;
const paddingY =
- (background.paddingY ?? DEFAULT_TEXT_BACKGROUND.paddingY) * fontSizeRatio;
- const offsetX = background.offsetX ?? DEFAULT_TEXT_BACKGROUND.offsetX;
- const offsetY = background.offsetY ?? DEFAULT_TEXT_BACKGROUND.offsetY;
+ (background.paddingY ?? DEFAULTS.text.background.paddingY) * fontSizeRatio;
+ const offsetX = background.offsetX ?? DEFAULTS.text.background.offsetX;
+ const offsetY = background.offsetY ?? DEFAULTS.text.background.offsetY;
return {
left: textRect.left - paddingX + offsetX,
diff --git a/apps/web/src/lib/text/measure-element.ts b/apps/web/src/lib/text/measure-element.ts
new file mode 100644
index 00000000..44b2b1ff
--- /dev/null
+++ b/apps/web/src/lib/text/measure-element.ts
@@ -0,0 +1,132 @@
+import {
+ CORNER_RADIUS_MIN,
+ FONT_SIZE_SCALE_REFERENCE,
+} from "@/constants/text-constants";
+import { resolveNumberAtTime } from "@/lib/animation";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import type { TextBackground, TextElement } from "@/lib/timeline";
+import {
+ measureTextBlock,
+ setCanvasLetterSpacing,
+ getTextVisualRect,
+ type TextBlockMeasurement,
+} from "./layout";
+
+export interface ResolvedTextBackground extends TextBackground {
+ paddingX: number;
+ paddingY: number;
+ offsetX: number;
+ offsetY: number;
+ cornerRadius: number;
+}
+
+export interface MeasuredTextElement {
+ scaledFontSize: number;
+ fontString: string;
+ letterSpacing: number;
+ lineHeightPx: number;
+ lines: string[];
+ lineMetrics: TextMetrics[];
+ block: TextBlockMeasurement;
+ fontSizeRatio: number;
+ resolvedBackground: ResolvedTextBackground;
+ visualRect: { left: number; top: number; width: number; height: number };
+}
+
+/**
+ * Shared text measurement used by both the renderer and preview bounds.
+ * Accepts the canvas context to measure on so callers can reuse an existing
+ * context (e.g. the renderer's) rather than creating a throwaway canvas.
+ * The context state is preserved via save/restore.
+ */
+export function measureTextElement({
+ element,
+ canvasHeight,
+ localTime,
+ ctx,
+}: {
+ element: TextElement;
+ canvasHeight: number;
+ localTime: number;
+ ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
+}): MeasuredTextElement {
+ const scaledFontSize =
+ element.fontSize * (canvasHeight / FONT_SIZE_SCALE_REFERENCE);
+ const fontWeight = element.fontWeight === "bold" ? "bold" : "normal";
+ const fontStyle = element.fontStyle === "italic" ? "italic" : "normal";
+ const fontFamily = `"${element.fontFamily.replace(/"/g, '\\"')}"`;
+ const fontString = `${fontStyle} ${fontWeight} ${scaledFontSize}px ${fontFamily}, sans-serif`;
+ const letterSpacing = element.letterSpacing ?? 0;
+ const lineHeightPx =
+ scaledFontSize * (element.lineHeight ?? DEFAULTS.text.lineHeight);
+ const fontSizeRatio = element.fontSize / DEFAULTS.text.element.fontSize;
+ const lines = element.content.split("\n");
+
+ ctx.save();
+ ctx.font = fontString;
+ ctx.textBaseline = "middle";
+ setCanvasLetterSpacing({ ctx, letterSpacingPx: letterSpacing });
+ const lineMetrics = lines.map((line) => ctx.measureText(line));
+ ctx.restore();
+
+ const block = measureTextBlock({
+ lineMetrics,
+ lineHeightPx,
+ fallbackFontSize: scaledFontSize,
+ });
+
+ const bg = element.background;
+ const resolvedBackground: ResolvedTextBackground = {
+ ...bg,
+ paddingX: resolveNumberAtTime({
+ baseValue: bg.paddingX ?? DEFAULTS.text.background.paddingX,
+ animations: element.animations,
+ propertyPath: "background.paddingX",
+ localTime,
+ }),
+ paddingY: resolveNumberAtTime({
+ baseValue: bg.paddingY ?? DEFAULTS.text.background.paddingY,
+ animations: element.animations,
+ propertyPath: "background.paddingY",
+ localTime,
+ }),
+ offsetX: resolveNumberAtTime({
+ baseValue: bg.offsetX ?? DEFAULTS.text.background.offsetX,
+ animations: element.animations,
+ propertyPath: "background.offsetX",
+ localTime,
+ }),
+ offsetY: resolveNumberAtTime({
+ baseValue: bg.offsetY ?? DEFAULTS.text.background.offsetY,
+ animations: element.animations,
+ propertyPath: "background.offsetY",
+ localTime,
+ }),
+ cornerRadius: resolveNumberAtTime({
+ baseValue: bg.cornerRadius ?? CORNER_RADIUS_MIN,
+ animations: element.animations,
+ propertyPath: "background.cornerRadius",
+ localTime,
+ }),
+ };
+
+ const visualRect = getTextVisualRect({
+ textAlign: element.textAlign,
+ block,
+ background: resolvedBackground,
+ fontSizeRatio,
+ });
+
+ return {
+ scaledFontSize,
+ fontString,
+ letterSpacing,
+ lineHeightPx,
+ lines,
+ lineMetrics,
+ block,
+ fontSizeRatio,
+ resolvedBackground,
+ visualRect,
+ };
+}
diff --git a/apps/web/src/lib/time.ts b/apps/web/src/lib/time.ts
index b6761b0d..a6602566 100644
--- a/apps/web/src/lib/time.ts
+++ b/apps/web/src/lib/time.ts
@@ -1,4 +1,8 @@
-import type { TTimeCode } from "@/types/time";
+export type TTimeCode =
+ | "MM:SS"
+ | "HH:MM:SS"
+ | "HH:MM:SS:CS"
+ | "HH:MM:SS:FF";
export function roundToFrame({
time,
diff --git a/apps/web/src/lib/timeline/audio-constants.ts b/apps/web/src/lib/timeline/audio-constants.ts
new file mode 100644
index 00000000..44592df4
--- /dev/null
+++ b/apps/web/src/lib/timeline/audio-constants.ts
@@ -0,0 +1,2 @@
+export const VOLUME_DB_MIN = -60;
+export const VOLUME_DB_MAX = 20;
diff --git a/apps/web/src/lib/timeline/audio-state.ts b/apps/web/src/lib/timeline/audio-state.ts
new file mode 100644
index 00000000..90d34668
--- /dev/null
+++ b/apps/web/src/lib/timeline/audio-state.ts
@@ -0,0 +1,100 @@
+import { hasKeyframesForPath } from "@/lib/animation/keyframe-query";
+import { resolveNumberAtTime } from "@/lib/animation/resolve";
+import { VOLUME_DB_MAX, VOLUME_DB_MIN } from "./audio-constants";
+import type { TimelineElement } from "./types";
+const DEFAULT_STEP_SECONDS = 1 / 60;
+
+export type AudioCapableElement = Extract<
+ TimelineElement,
+ { type: "audio" | "video" }
+>;
+
+export function clampDb(value: number): number {
+ if (!Number.isFinite(value)) {
+ return 0;
+ }
+
+ return Math.min(VOLUME_DB_MAX, Math.max(VOLUME_DB_MIN, value));
+}
+
+export function dBToLinear(db: number): number {
+ return Math.pow(10, clampDb(db) / 20);
+}
+
+export function hasAnimatedVolume({
+ element,
+}: {
+ element: AudioCapableElement;
+}): boolean {
+ return hasKeyframesForPath({
+ animations: element.animations,
+ propertyPath: "volume",
+ });
+}
+
+export function resolveEffectiveAudioGain({
+ element,
+ trackMuted = false,
+ localTime,
+}: {
+ element: AudioCapableElement;
+ trackMuted?: boolean;
+ localTime: number;
+}): number {
+ if (trackMuted || element.muted === true) {
+ return 0;
+ }
+
+ const resolvedDb = resolveNumberAtTime({
+ baseValue: element.volume ?? 0,
+ animations: element.animations,
+ propertyPath: "volume",
+ localTime,
+ });
+
+ return dBToLinear(resolvedDb);
+}
+
+export function buildAudioGainAutomation({
+ element,
+ trackMuted = false,
+ fromLocalTime,
+ toLocalTime,
+ stepSeconds = DEFAULT_STEP_SECONDS,
+}: {
+ element: AudioCapableElement;
+ trackMuted?: boolean;
+ fromLocalTime: number;
+ toLocalTime: number;
+ stepSeconds?: number;
+}): Array<{ localTime: number; gain: number }> {
+ const startTime = Math.max(0, fromLocalTime);
+ const endTime = Math.max(startTime, toLocalTime);
+ const safeStep =
+ Number.isFinite(stepSeconds) && stepSeconds > 0
+ ? stepSeconds
+ : DEFAULT_STEP_SECONDS;
+ const points: Array<{ localTime: number; gain: number }> = [];
+
+ for (let localTime = startTime; localTime < endTime; localTime += safeStep) {
+ points.push({
+ localTime,
+ gain: resolveEffectiveAudioGain({
+ element,
+ trackMuted,
+ localTime,
+ }),
+ });
+ }
+
+ points.push({
+ localTime: endTime,
+ gain: resolveEffectiveAudioGain({
+ element,
+ trackMuted,
+ localTime: endTime,
+ }),
+ });
+
+ return points;
+}
diff --git a/apps/web/src/lib/timeline/bookmarks.ts b/apps/web/src/lib/timeline/bookmarks.ts
index efaa8f74..f5c034c7 100644
--- a/apps/web/src/lib/timeline/bookmarks.ts
+++ b/apps/web/src/lib/timeline/bookmarks.ts
@@ -1,4 +1,4 @@
-import type { Bookmark } from "@/types/timeline";
+import type { Bookmark } from "@/lib/timeline";
import { roundToFrame } from "@/lib/time";
export const BOOKMARK_TIME_EPSILON = 0.001;
diff --git a/apps/web/src/lib/timeline/defaults.ts b/apps/web/src/lib/timeline/defaults.ts
new file mode 100644
index 00000000..7f52905f
--- /dev/null
+++ b/apps/web/src/lib/timeline/defaults.ts
@@ -0,0 +1,77 @@
+import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import type { TTimelineViewState } from "@/lib/project/types";
+import type { BlendMode, Transform } from "@/lib/rendering";
+import type { TextElement } from "./types";
+
+const defaultTransform: Transform = {
+ scaleX: 1,
+ scaleY: 1,
+ position: { x: 0, y: 0 },
+ rotate: 0,
+};
+
+const defaultOpacity = 1;
+const defaultBlendMode: BlendMode = "normal";
+const defaultVolume = 0;
+
+const defaultTextLetterSpacing = 0;
+const defaultTextLineHeight = 1.2;
+
+const defaultTextBackground = {
+ enabled: false,
+ color: "#000000",
+ cornerRadius: 0,
+ paddingX: 30,
+ paddingY: 42,
+ offsetX: 0,
+ offsetY: 0,
+};
+
+const defaultTextElement: Omit<TextElement, "id"> = {
+ type: "text",
+ name: "Text",
+ content: "Default text",
+ fontSize: 15,
+ fontFamily: "Arial",
+ color: "#ffffff",
+ background: { ...defaultTextBackground },
+ textAlign: "center",
+ fontWeight: "normal",
+ fontStyle: "normal",
+ textDecoration: "none",
+ letterSpacing: defaultTextLetterSpacing,
+ lineHeight: defaultTextLineHeight,
+ duration: TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION,
+ startTime: 0,
+ trimStart: 0,
+ trimEnd: 0,
+ transform: {
+ ...defaultTransform,
+ position: { ...defaultTransform.position },
+ },
+ opacity: defaultOpacity,
+};
+
+const defaultTimelineViewState: TTimelineViewState = {
+ zoomLevel: 1,
+ scrollLeft: 0,
+ playheadTime: 0,
+};
+
+export const DEFAULTS = {
+ element: {
+ transform: defaultTransform,
+ opacity: defaultOpacity,
+ blendMode: defaultBlendMode,
+ volume: defaultVolume,
+ },
+ text: {
+ letterSpacing: defaultTextLetterSpacing,
+ lineHeight: defaultTextLineHeight,
+ background: defaultTextBackground,
+ element: defaultTextElement,
+ },
+ timeline: {
+ viewState: defaultTimelineViewState,
+ },
+};
diff --git a/apps/web/src/types/drag.ts b/apps/web/src/lib/timeline/drag.ts
index 4e10d767..89b1593f 100644
--- a/apps/web/src/types/drag.ts
+++ b/apps/web/src/lib/timeline/drag.ts
@@ -1,4 +1,5 @@
-import type { VisualElement } from "./timeline";
+import type { MaskableElement, VisualElement } from "./types";
+import type { ParamValues } from "@/lib/params";
interface BaseDragData {
id: string;
@@ -8,7 +9,7 @@ interface BaseDragData {
export interface MediaDragData extends BaseDragData {
type: "media";
mediaType: "image" | "video" | "audio";
- targetElementTypes?: ("video" | "image")[];
+ targetElementTypes?: MaskableElement["type"][];
}
export interface TextDragData extends BaseDragData {
@@ -21,6 +22,12 @@ export interface StickerDragData extends BaseDragData {
stickerId: string;
}
+export interface GraphicDragData extends BaseDragData {
+ type: "graphic";
+ definitionId: string;
+ params: Partial<ParamValues>;
+}
+
export interface EffectDragData extends BaseDragData {
type: "effect";
effectType: string;
@@ -31,4 +38,5 @@ export type TimelineDragData =
| MediaDragData
| TextDragData
| StickerDragData
+ | GraphicDragData
| EffectDragData;
diff --git a/apps/web/src/lib/timeline/drop-utils.ts b/apps/web/src/lib/timeline/drop-utils.ts
index b502974d..b4f53948 100644
--- a/apps/web/src/lib/timeline/drop-utils.ts
+++ b/apps/web/src/lib/timeline/drop-utils.ts
@@ -2,10 +2,10 @@ import type {
TimelineTrack,
ElementType,
TimelineElement,
-} from "@/types/timeline";
+} from "@/lib/timeline";
import { TRACK_CONFIG, TRACK_GAP } from "@/constants/timeline-constants";
import { wouldElementOverlap } from "./element-utils";
-import type { ComputeDropTargetParams, DropTarget } from "@/types/timeline";
+import type { ComputeDropTargetParams, DropTarget } from "@/lib/timeline";
import { isMainTrack, enforceMainTrackStart } from "./track-utils";
function findElementAtPosition({
diff --git a/apps/web/src/lib/timeline/element-utils.ts b/apps/web/src/lib/timeline/element-utils.ts
index 11564376..c44ae044 100644
--- a/apps/web/src/lib/timeline/element-utils.ts
+++ b/apps/web/src/lib/timeline/element-utils.ts
@@ -1,30 +1,33 @@
-import { DEFAULT_TEXT_ELEMENT } from "@/constants/text-constants";
+import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import {
- DEFAULT_BLEND_MODE,
- DEFAULT_OPACITY,
- DEFAULT_TRANSFORM,
- TIMELINE_CONSTANTS,
-} from "@/constants/timeline-constants";
-import type {
- CreateEffectElement,
- CreateTimelineElement,
- CreateVideoElement,
- CreateImageElement,
- CreateStickerElement,
- CreateUploadAudioElement,
- CreateLibraryAudioElement,
- TextBackground,
- TextElement,
- TimelineElement,
- TimelineTrack,
- AudioElement,
- VideoElement,
- ImageElement,
- VisualElement,
- UploadAudioElement,
-} from "@/types/timeline";
-import type { MediaType } from "@/types/assets";
+ MASKABLE_ELEMENT_TYPES,
+ RETIMABLE_ELEMENT_TYPES,
+ VISUAL_ELEMENT_TYPES,
+ type CreateEffectElement,
+ type CreateGraphicElement,
+ type CreateTimelineElement,
+ type CreateVideoElement,
+ type CreateImageElement,
+ type CreateStickerElement,
+ type CreateUploadAudioElement,
+ type CreateLibraryAudioElement,
+ type TextBackground,
+ type TextElement,
+ type TimelineElement,
+ type TimelineTrack,
+ type AudioElement,
+ type VideoElement,
+ type ImageElement,
+ type MaskableElement,
+ type RetimableElement,
+ type VisualElement,
+ type UploadAudioElement,
+} from "@/lib/timeline";
+import { DEFAULTS } from "@/lib/timeline/defaults";
+import type { MediaType } from "@/lib/media/types";
import { buildDefaultEffectInstance } from "@/lib/effects";
+import { buildDefaultGraphicInstance } from "@/lib/graphics";
+import type { ParamValues } from "@/lib/params";
import { capitalizeFirstLetter } from "@/utils/string";
export function canElementHaveAudio(
@@ -36,12 +39,19 @@ export function canElementHaveAudio(
export function isVisualElement(
element: TimelineElement,
): element is VisualElement {
- return (
- element.type === "video" ||
- element.type === "image" ||
- element.type === "text" ||
- element.type === "sticker"
- );
+ return (VISUAL_ELEMENT_TYPES as readonly string[]).includes(element.type);
+}
+
+export function isMaskableElement(
+ element: TimelineElement,
+): element is MaskableElement {
+ return (MASKABLE_ELEMENT_TYPES as readonly string[]).includes(element.type);
+}
+
+export function isRetimableElement(
+ element: TimelineElement,
+): element is RetimableElement {
+ return (RETIMABLE_ELEMENT_TYPES as readonly string[]).includes(element.type);
}
export function canElementBeHidden(
@@ -50,6 +60,14 @@ export function canElementBeHidden(
return isVisualElement(element);
}
+export function hasElementEffects({
+ element,
+}: {
+ element: TimelineElement;
+}): boolean {
+ return isVisualElement(element) && (element.effects?.length ?? 0) > 0;
+}
+
export function hasMediaId(
element: TimelineElement,
): element is UploadAudioElement | VideoElement | ImageElement {
@@ -68,55 +86,6 @@ export function requiresMediaId({
);
}
-export function checkElementOverlaps({
- elements,
-}: {
- elements: TimelineElement[];
-}): boolean {
- const sortedElements = [...elements].sort(
- (a, b) => a.startTime - b.startTime,
- );
-
- for (let i = 0; i < sortedElements.length - 1; i++) {
- const current = sortedElements[i];
- const next = sortedElements[i + 1];
-
- const currentEnd = current.startTime + current.duration;
-
- if (currentEnd > next.startTime) return true;
- }
-
- return false;
-}
-
-export function resolveElementOverlaps({
- elements,
-}: {
- elements: TimelineElement[];
-}): TimelineElement[] {
- const sortedElements = [...elements].sort(
- (a, b) => a.startTime - b.startTime,
- );
- const resolvedElements: TimelineElement[] = [];
-
- for (let i = 0; i < sortedElements.length; i++) {
- const current = { ...sortedElements[i] };
-
- if (resolvedElements.length > 0) {
- const previous = resolvedElements[resolvedElements.length - 1];
- const previousEnd = previous.startTime + previous.duration;
-
- if (current.startTime < previousEnd) {
- current.startTime = previousEnd;
- }
- }
-
- resolvedElements.push(current);
- }
-
- return resolvedElements;
-}
-
export function wouldElementOverlap({
elements,
startTime,
@@ -138,9 +107,8 @@ export function wouldElementOverlap({
function buildTextBackground(
raw: Partial<TextBackground> | undefined,
): TextBackground {
- const color = raw?.color ?? DEFAULT_TEXT_ELEMENT.background.color;
- const enabled =
- typeof raw?.enabled === "boolean" ? raw.enabled : color !== "transparent";
+ const color = raw?.color ?? DEFAULTS.text.element.background.color;
+ const enabled = raw?.enabled ?? color !== "transparent";
return {
enabled,
color,
@@ -163,28 +131,25 @@ export function buildTextElement({
return {
type: "text",
- name: t.name ?? DEFAULT_TEXT_ELEMENT.name,
- content: t.content ?? DEFAULT_TEXT_ELEMENT.content,
+ name: t.name ?? DEFAULTS.text.element.name,
+ content: t.content ?? DEFAULTS.text.element.content,
duration: t.duration ?? TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION,
startTime,
trimStart: 0,
trimEnd: 0,
- fontSize:
- typeof t.fontSize === "number"
- ? t.fontSize
- : DEFAULT_TEXT_ELEMENT.fontSize,
- fontFamily: t.fontFamily ?? DEFAULT_TEXT_ELEMENT.fontFamily,
- color: t.color ?? DEFAULT_TEXT_ELEMENT.color,
+ fontSize: t.fontSize ?? DEFAULTS.text.element.fontSize,
+ fontFamily: t.fontFamily ?? DEFAULTS.text.element.fontFamily,
+ color: t.color ?? DEFAULTS.text.element.color,
background: buildTextBackground(t.background),
- textAlign: t.textAlign ?? DEFAULT_TEXT_ELEMENT.textAlign,
- fontWeight: t.fontWeight ?? DEFAULT_TEXT_ELEMENT.fontWeight,
- fontStyle: t.fontStyle ?? DEFAULT_TEXT_ELEMENT.fontStyle,
- textDecoration: t.textDecoration ?? DEFAULT_TEXT_ELEMENT.textDecoration,
- letterSpacing: t.letterSpacing ?? DEFAULT_TEXT_ELEMENT.letterSpacing,
- lineHeight: t.lineHeight ?? DEFAULT_TEXT_ELEMENT.lineHeight,
- transform: t.transform ?? DEFAULT_TEXT_ELEMENT.transform,
- opacity: t.opacity ?? DEFAULT_TEXT_ELEMENT.opacity,
- blendMode: t.blendMode ?? DEFAULT_BLEND_MODE,
+ textAlign: t.textAlign ?? DEFAULTS.text.element.textAlign,
+ fontWeight: t.fontWeight ?? DEFAULTS.text.element.fontWeight,
+ fontStyle: t.fontStyle ?? DEFAULTS.text.element.fontStyle,
+ textDecoration: t.textDecoration ?? DEFAULTS.text.element.textDecoration,
+ letterSpacing: t.letterSpacing ?? DEFAULTS.text.element.letterSpacing,
+ lineHeight: t.lineHeight ?? DEFAULTS.text.element.lineHeight,
+ transform: t.transform ?? DEFAULTS.text.element.transform,
+ opacity: t.opacity ?? DEFAULTS.text.element.opacity,
+ blendMode: t.blendMode ?? DEFAULTS.element.blendMode,
};
}
@@ -214,10 +179,14 @@ export function buildStickerElement({
stickerId,
name,
startTime,
+ intrinsicWidth,
+ intrinsicHeight,
}: {
stickerId: string;
name?: string;
startTime: number;
+ intrinsicWidth?: number;
+ intrinsicHeight?: number;
}): CreateStickerElement {
const stickerNameFromId =
stickerId.split(":").slice(1).pop()?.replaceAll("-", " ") ?? stickerId;
@@ -225,17 +194,52 @@ export function buildStickerElement({
type: "sticker",
name: name ?? stickerNameFromId,
stickerId,
+ intrinsicWidth,
+ intrinsicHeight,
+ duration: TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION,
+ startTime,
+ trimStart: 0,
+ trimEnd: 0,
+ transform: {
+ ...DEFAULTS.element.transform,
+ position: { ...DEFAULTS.element.transform.position },
+ },
+ opacity: DEFAULTS.element.opacity,
+ blendMode: DEFAULTS.element.blendMode,
+ };
+}
+
+export function buildGraphicElement({
+ definitionId,
+ name,
+ startTime,
+ params,
+}: {
+ definitionId: string;
+ name?: string;
+ startTime: number;
+ params?: Partial<ParamValues>;
+}): CreateGraphicElement {
+ const instance = buildDefaultGraphicInstance({ definitionId });
+ return {
+ type: "graphic",
+ name: name ?? capitalizeFirstLetter({ string: instance.definitionId }),
+ definitionId: instance.definitionId,
+ params: { ...instance.params, ...(params ?? {}) } as ParamValues,
duration: TIMELINE_CONSTANTS.DEFAULT_ELEMENT_DURATION,
startTime,
trimStart: 0,
trimEnd: 0,
- transform: { ...DEFAULT_TRANSFORM },
- opacity: DEFAULT_OPACITY,
- blendMode: DEFAULT_BLEND_MODE,
+ transform: {
+ ...DEFAULTS.element.transform,
+ position: { ...DEFAULTS.element.transform.position },
+ },
+ opacity: DEFAULTS.element.opacity,
+ blendMode: DEFAULTS.element.blendMode,
};
}
-export function buildVideoElement({
+function buildVideoElement({
mediaId,
name,
duration,
@@ -257,13 +261,17 @@ export function buildVideoElement({
sourceDuration: duration,
muted: false,
hidden: false,
- transform: { ...DEFAULT_TRANSFORM },
- opacity: DEFAULT_OPACITY,
- blendMode: DEFAULT_BLEND_MODE,
+ transform: {
+ ...DEFAULTS.element.transform,
+ position: { ...DEFAULTS.element.transform.position },
+ },
+ opacity: DEFAULTS.element.opacity,
+ blendMode: DEFAULTS.element.blendMode,
+ volume: DEFAULTS.element.volume,
};
}
-export function buildImageElement({
+function buildImageElement({
mediaId,
name,
duration,
@@ -283,13 +291,16 @@ export function buildImageElement({
trimStart: 0,
trimEnd: 0,
hidden: false,
- transform: { ...DEFAULT_TRANSFORM },
- opacity: DEFAULT_OPACITY,
- blendMode: DEFAULT_BLEND_MODE,
+ transform: {
+ ...DEFAULTS.element.transform,
+ position: { ...DEFAULTS.element.transform.position },
+ },
+ opacity: DEFAULTS.element.opacity,
+ blendMode: DEFAULTS.element.blendMode,
};
}
-export function buildUploadAudioElement({
+function buildUploadAudioElement({
mediaId,
name,
duration,
@@ -312,7 +323,7 @@ export function buildUploadAudioElement({
trimStart: 0,
trimEnd: 0,
sourceDuration: duration,
- volume: 1,
+ volume: DEFAULTS.element.volume,
muted: false,
};
if (buffer) {
@@ -375,7 +386,7 @@ export function buildLibraryAudioElement({
trimStart: 0,
trimEnd: 0,
sourceDuration: duration,
- volume: 1,
+ volume: DEFAULTS.element.volume,
muted: false,
};
if (buffer) {
@@ -407,7 +418,7 @@ export function getElementsAtTime({
return result;
}
-export function collectFontFamilies({
+export function getElementFontFamilies({
tracks,
}: {
tracks: TimelineTrack[];
diff --git a/apps/web/src/lib/timeline/index.ts b/apps/web/src/lib/timeline/index.ts
index 887ff7ab..29414722 100644
--- a/apps/web/src/lib/timeline/index.ts
+++ b/apps/web/src/lib/timeline/index.ts
@@ -1,5 +1,7 @@
-import type { TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "./types";
+export * from "./types";
+export * from "./drag";
export * from "./track-utils";
export * from "./track-element-update";
export * from "./element-utils";
diff --git a/apps/web/src/lib/timeline/ripple-utils.ts b/apps/web/src/lib/timeline/ripple-utils.ts
index 5f37bf29..369759f3 100644
--- a/apps/web/src/lib/timeline/ripple-utils.ts
+++ b/apps/web/src/lib/timeline/ripple-utils.ts
@@ -1,4 +1,4 @@
-import type { TimelineElement } from "@/types/timeline";
+import type { TimelineElement } from "@/lib/timeline";
export function rippleShiftElements({
elements,
diff --git a/apps/web/src/lib/timeline/selection-hit-testing.ts b/apps/web/src/lib/timeline/selection-hit-testing.ts
new file mode 100644
index 00000000..ac527600
--- /dev/null
+++ b/apps/web/src/lib/timeline/selection-hit-testing.ts
@@ -0,0 +1,133 @@
+import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
+import { getCumulativeHeightBefore, getTrackHeight } from "@/lib/timeline";
+import type { TimelineTrack } from "@/lib/timeline";
+
+type TimelineElementRef = { trackId: string; elementId: string };
+
+interface SelectionRectangle {
+ left: number;
+ top: number;
+ right: number;
+ bottom: number;
+}
+
+function getNormalizedRectangle({
+ startPos,
+ endPos,
+}: {
+ startPos: { x: number; y: number };
+ endPos: { x: number; y: number };
+}): SelectionRectangle {
+ return {
+ left: Math.min(startPos.x, endPos.x),
+ top: Math.min(startPos.y, endPos.y),
+ right: Math.max(startPos.x, endPos.x),
+ bottom: Math.max(startPos.y, endPos.y),
+ };
+}
+
+function getSelectionRectangleInContent({
+ container,
+ scrollContainer,
+ startPos,
+ endPos,
+}: {
+ container: HTMLElement;
+ scrollContainer: HTMLDivElement | null;
+ startPos: { x: number; y: number };
+ endPos: { x: number; y: number };
+}): SelectionRectangle {
+ const containerRect = container.getBoundingClientRect();
+ const scrollRect = scrollContainer?.getBoundingClientRect() ?? containerRect;
+ const scrollLeft = scrollContainer?.scrollLeft ?? 0;
+ const scrollTop = scrollContainer?.scrollTop ?? 0;
+
+ const adjustedStart = {
+ x: startPos.x - containerRect.left + scrollLeft,
+ y: startPos.y - scrollRect.top + scrollTop,
+ };
+ const adjustedEnd = {
+ x: endPos.x - containerRect.left + scrollLeft,
+ y: endPos.y - scrollRect.top + scrollTop,
+ };
+
+ return getNormalizedRectangle({
+ startPos: adjustedStart,
+ endPos: adjustedEnd,
+ });
+}
+
+function isRectangleIntersecting({
+ elementRectangle,
+ selectionRectangle,
+}: {
+ elementRectangle: SelectionRectangle;
+ selectionRectangle: SelectionRectangle;
+}): boolean {
+ return !(
+ elementRectangle.right < selectionRectangle.left ||
+ elementRectangle.left > selectionRectangle.right ||
+ elementRectangle.bottom < selectionRectangle.top ||
+ elementRectangle.top > selectionRectangle.bottom
+ );
+}
+
+export function resolveTimelineElementIntersections({
+ container,
+ scrollContainer,
+ tracks,
+ zoomLevel,
+ startPos,
+ currentPos,
+}: {
+ container: HTMLElement;
+ scrollContainer: HTMLDivElement | null;
+ tracks: TimelineTrack[];
+ zoomLevel: number;
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+}): TimelineElementRef[] {
+ const selectionRectangle = getSelectionRectangleInContent({
+ container,
+ scrollContainer,
+ startPos,
+ endPos: currentPos,
+ });
+ const pixelsPerSecond = TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;
+ const selectedElements: TimelineElementRef[] = [];
+
+ for (const [trackIndex, track] of tracks.entries()) {
+ const trackTop = getCumulativeHeightBefore({
+ tracks,
+ trackIndex,
+ });
+ const trackHeight = getTrackHeight({ type: track.type });
+ const elementTop = TIMELINE_CONSTANTS.PADDING_TOP_PX + trackTop;
+ const elementBottom = elementTop + trackHeight;
+
+ for (const element of track.elements) {
+ const elementLeft = element.startTime * pixelsPerSecond;
+ const elementRight = elementLeft + element.duration * pixelsPerSecond;
+ const elementRectangle = {
+ left: elementLeft,
+ top: elementTop,
+ right: elementRight,
+ bottom: elementBottom,
+ };
+
+ if (
+ isRectangleIntersecting({
+ elementRectangle,
+ selectionRectangle,
+ })
+ ) {
+ selectedElements.push({
+ trackId: track.id,
+ elementId: element.id,
+ });
+ }
+ }
+ }
+
+ return selectedElements;
+}
diff --git a/apps/web/src/lib/timeline/snap-utils.ts b/apps/web/src/lib/timeline/snap-utils.ts
index c7fac090..ce2e9b1f 100644
--- a/apps/web/src/lib/timeline/snap-utils.ts
+++ b/apps/web/src/lib/timeline/snap-utils.ts
@@ -1,4 +1,4 @@
-import type { Bookmark, TimelineTrack } from "@/types/timeline";
+import type { Bookmark, TimelineTrack } from "@/lib/timeline";
import { TIMELINE_CONSTANTS } from "@/constants/timeline-constants";
import { BOOKMARK_TIME_EPSILON } from "@/lib/timeline/bookmarks";
import { getElementKeyframes } from "@/lib/animation";
diff --git a/apps/web/src/lib/timeline/track-element-update.ts b/apps/web/src/lib/timeline/track-element-update.ts
index 6118b327..5230d4e7 100644
--- a/apps/web/src/lib/timeline/track-element-update.ts
+++ b/apps/web/src/lib/timeline/track-element-update.ts
@@ -1,4 +1,4 @@
-import type { TimelineElement, TimelineTrack } from "@/types/timeline";
+import type { TimelineElement, TimelineTrack } from "@/lib/timeline";
export function updateElementInTracks({
tracks,
diff --git a/apps/web/src/lib/timeline/track-utils.ts b/apps/web/src/lib/timeline/track-utils.ts
index 94ff21ba..cde2c814 100644
--- a/apps/web/src/lib/timeline/track-utils.ts
+++ b/apps/web/src/lib/timeline/track-utils.ts
@@ -4,13 +4,15 @@ import type {
ElementType,
VideoTrack,
AudioTrack,
- StickerTrack,
+ GraphicTrack,
TextTrack,
EffectTrack,
TimelineElement,
-} from "@/types/timeline";
+} from "@/lib/timeline";
import {
+ ELEMENT_TRACK_MAP,
TRACK_CONFIG,
+ ELEMENT_TYPE_CONFIG,
TRACK_GAP,
} from "@/constants/timeline-constants";
import { generateUUID } from "@/utils/id";
@@ -23,16 +25,12 @@ export function canTracktHaveAudio(
export function canTrackBeHidden(
track: TimelineTrack,
-): track is VideoTrack | TextTrack | StickerTrack | EffectTrack {
+): track is VideoTrack | TextTrack | GraphicTrack | EffectTrack {
return track.type !== "audio";
}
-export function getTrackColor({ type }: { type: TrackType }) {
- return TRACK_CONFIG[type];
-}
-
-export function getTrackClasses({ type }: { type: TrackType }) {
- return TRACK_CONFIG[type].background.trim();
+export function getElementClasses({ type }: { type: TrackType }) {
+ return ELEMENT_TYPE_CONFIG[type].background.trim();
}
export function getTrackHeight({ type }: { type: TrackType }): number {
@@ -97,11 +95,11 @@ export function buildEmptyTrack({
elements: [],
hidden: false,
};
- case "sticker":
+ case "graphic":
return {
id,
name: trackName,
- type: "sticker",
+ type: "graphic",
elements: [],
hidden: false,
};
@@ -214,14 +212,7 @@ export function canElementGoOnTrack({
elementType: ElementType;
trackType: TrackType;
}): boolean {
- if (elementType === "text") return trackType === "text";
- if (elementType === "audio") return trackType === "audio";
- if (elementType === "sticker") return trackType === "sticker";
- if (elementType === "effect") return trackType === "effect";
- if (elementType === "video" || elementType === "image") {
- return trackType === "video";
- }
- return false;
+ return ELEMENT_TRACK_MAP[elementType] === trackType;
}
export function validateElementTrackCompatibility({
diff --git a/apps/web/src/types/timeline.ts b/apps/web/src/lib/timeline/types.ts
index 15696b34..16e06bf1 100644
--- a/apps/web/src/types/timeline.ts
+++ b/apps/web/src/lib/timeline/types.ts
@@ -1,6 +1,13 @@
-import type { ElementAnimations } from "./animation";
-import type { Effect, EffectParamValues } from "./effects";
-import type { BlendMode, Transform } from "./rendering";
+import type { ElementAnimations } from "@/lib/animation/types";
+import type { Effect } from "@/lib/effects/types";
+import type { Mask } from "@/lib/masks/types";
+import type { ParamValues } from "@/lib/params";
+import type { BlendMode, Transform } from "@/lib/rendering";
+
+export type ElementRef = {
+ trackId: string;
+ elementId: string;
+};
export interface Bookmark {
time: number;
@@ -19,7 +26,7 @@ export interface TScene {
updatedAt: Date;
}
-export type TrackType = "video" | "text" | "audio" | "sticker" | "effect";
+export type TrackType = "video" | "text" | "audio" | "graphic" | "effect";
interface BaseTrack {
id: string;
@@ -46,9 +53,9 @@ export interface AudioTrack extends BaseTrack {
muted: boolean;
}
-export interface StickerTrack extends BaseTrack {
- type: "sticker";
- elements: StickerElement[];
+export interface GraphicTrack extends BaseTrack {
+ type: "graphic";
+ elements: (StickerElement | GraphicElement)[];
hidden: boolean;
}
@@ -62,16 +69,20 @@ export type TimelineTrack =
| VideoTrack
| TextTrack
| AudioTrack
- | StickerTrack
+ | GraphicTrack
| EffectTrack;
-export type { Transform } from "./rendering";
+export interface RetimeConfig {
+ rate: number;
+ maintainPitch?: boolean;
+}
interface BaseAudioElement extends BaseTimelineElement {
type: "audio";
volume: number;
muted?: boolean;
buffer?: AudioBuffer;
+ retime?: RetimeConfig;
}
export interface UploadAudioElement extends BaseAudioElement {
@@ -100,12 +111,15 @@ interface BaseTimelineElement {
export interface VideoElement extends BaseTimelineElement {
type: "video";
mediaId: string;
+ volume?: number;
muted?: boolean;
hidden?: boolean;
+ retime?: RetimeConfig;
transform: Transform;
opacity: number;
blendMode?: BlendMode;
effects?: Effect[];
+ masks?: Mask[];
}
export interface ImageElement extends BaseTimelineElement {
@@ -116,6 +130,7 @@ export interface ImageElement extends BaseTimelineElement {
opacity: number;
blendMode?: BlendMode;
effects?: Effect[];
+ masks?: Mask[];
}
export interface TextBackground {
@@ -151,25 +166,34 @@ export interface TextElement extends BaseTimelineElement {
export interface StickerElement extends BaseTimelineElement {
type: "sticker";
stickerId: string;
+ /** Natural dimensions of the sticker asset, stored at insert time. Used by renderer and preview bounds to avoid split-brain geometry. */
+ intrinsicWidth?: number;
+ intrinsicHeight?: number;
+ hidden?: boolean;
+ transform: Transform;
+ opacity: number;
+ blendMode?: BlendMode;
+ effects?: Effect[];
+}
+
+export interface GraphicElement extends BaseTimelineElement {
+ type: "graphic";
+ definitionId: string;
+ params: ParamValues;
hidden?: boolean;
transform: Transform;
opacity: number;
blendMode?: BlendMode;
effects?: Effect[];
+ masks?: Mask[];
}
export interface EffectElement extends BaseTimelineElement {
type: "effect";
effectType: string;
- params: EffectParamValues;
+ params: ParamValues;
}
-export type VisualElement =
- | VideoElement
- | ImageElement
- | TextElement
- | StickerElement;
-
export type ElementUpdatePatch =
| { transform: Transform }
| { opacity: number }
@@ -181,10 +205,42 @@ export type TimelineElement =
| ImageElement
| TextElement
| StickerElement
+ | GraphicElement
| EffectElement;
export type ElementType = TimelineElement["type"];
+function elementTypes<T extends ElementType[]>(...types: T): T {
+ return types;
+}
+
+export const MASKABLE_ELEMENT_TYPES = elementTypes("video", "image", "graphic");
+
+export type MaskableElement = Extract<
+ TimelineElement,
+ { type: (typeof MASKABLE_ELEMENT_TYPES)[number] }
+>;
+
+export const RETIMABLE_ELEMENT_TYPES = elementTypes("video", "audio");
+
+export type RetimableElement = Extract<
+ TimelineElement,
+ { type: (typeof RETIMABLE_ELEMENT_TYPES)[number] }
+>;
+
+export const VISUAL_ELEMENT_TYPES = elementTypes(
+ "video",
+ "image",
+ "text",
+ "sticker",
+ "graphic",
+);
+
+export type VisualElement = Extract<
+ TimelineElement,
+ { type: (typeof VISUAL_ELEMENT_TYPES)[number] }
+>;
+
export type CreateUploadAudioElement = Omit<UploadAudioElement, "id">;
export type CreateLibraryAudioElement = Omit<LibraryAudioElement, "id">;
export type CreateAudioElement =
@@ -194,6 +250,7 @@ export type CreateVideoElement = Omit<VideoElement, "id">;
export type CreateImageElement = Omit<ImageElement, "id">;
export type CreateTextElement = Omit<TextElement, "id">;
export type CreateStickerElement = Omit<StickerElement, "id">;
+export type CreateGraphicElement = Omit<GraphicElement, "id">;
export type CreateEffectElement = Omit<EffectElement, "id">;
export type CreateTimelineElement =
| CreateAudioElement
@@ -201,6 +258,7 @@ export type CreateTimelineElement =
| CreateImageElement
| CreateTextElement
| CreateStickerElement
+ | CreateGraphicElement
| CreateEffectElement;
export interface ElementDragState {
diff --git a/apps/web/src/lib/transcription/caption.ts b/apps/web/src/lib/transcription/caption.ts
index c773b7b0..c7c1b7b4 100644
--- a/apps/web/src/lib/transcription/caption.ts
+++ b/apps/web/src/lib/transcription/caption.ts
@@ -1,4 +1,4 @@
-import type { TranscriptionSegment, CaptionChunk } from "@/types/transcription";
+import type { TranscriptionSegment, CaptionChunk } from "@/lib/transcription/types";
import {
DEFAULT_WORDS_PER_CAPTION,
MIN_CAPTION_DURATION_SECONDS,
diff --git a/apps/web/src/types/transcription.ts b/apps/web/src/lib/transcription/types.ts
index f189c6c9..9724ad70 100644
--- a/apps/web/src/types/transcription.ts
+++ b/apps/web/src/lib/transcription/types.ts
@@ -1,4 +1,4 @@
-import type { LanguageCode } from "./language";
+import type { LanguageCode } from "@/constants/language-constants";
export type TranscriptionLanguage = LanguageCode | "auto";
diff --git a/apps/web/src/services/renderer/effect-preview.ts b/apps/web/src/services/renderer/effect-preview.ts
index 2cebec5d..b2f6f51a 100644
--- a/apps/web/src/services/renderer/effect-preview.ts
+++ b/apps/web/src/services/renderer/effect-preview.ts
@@ -1,194 +1,191 @@
import { createOffscreenCanvas } from "./canvas-utils";
-import { getEffect } from "@/lib/effects";
-import type { EffectParamValues } from "@/types/effects";
-import { applyMultiPassEffect } from "./webgl-utils";
-import type { EffectPassData } from "./webgl-utils";
+import { effectsRegistry, resolveEffectPasses } from "@/lib/effects";
+import { buildDefaultParamValues } from "@/lib/registry";
+import type { ParamValues } from "@/lib/params";
+import { applyMultiPassEffect } from "./webgl/webgl-utils";
+import type { EffectPassData } from "./webgl/webgl-utils";
const PREVIEW_SIZE = 160;
const PREVIEW_IMAGE_PATH = "/effects/preview.jpg";
-let previewGl: WebGLRenderingContext | null = null;
-let previewCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
-let testSourceCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
-let previewImageElement: HTMLImageElement | null = null;
-const programCache = new Map<string, WebGLProgram>();
-const onReadyCallbacks = new Set<() => void>();
+class EffectPreviewService {
+ private previewGl: WebGLRenderingContext | null = null;
+ private previewCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
+ private testSourceCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
+ private previewImageElement: HTMLImageElement | null = null;
+ private programCache = new Map<string, WebGLProgram>();
+ private onReadyCallbacks = new Set<() => void>();
-export function onPreviewImageReady({
- callback,
-}: {
- callback: () => void;
-}): () => void {
- onReadyCallbacks.add(callback);
- return () => onReadyCallbacks.delete(callback);
-}
-
-function loadPreviewImage(): void {
- if (typeof window === "undefined") return;
- const image = new Image();
- image.onload = () => {
- testSourceCanvas = null;
- for (const callback of onReadyCallbacks) {
- callback();
- }
- };
- image.src = PREVIEW_IMAGE_PATH;
- previewImageElement = image;
-}
+ readonly PREVIEW_SIZE = PREVIEW_SIZE;
-loadPreviewImage();
-
-function buildDefaultParams({
- effectType,
-}: {
- effectType: string;
-}): EffectParamValues {
- const definition = getEffect({ effectType });
- const params: EffectParamValues = {};
- for (const paramDef of definition.params) {
- params[paramDef.key] = paramDef.default;
+ constructor() {
+ this.loadPreviewImage();
}
- return params;
-}
-function createTestSource({
- width,
- height,
-}: {
- width: number;
- height: number;
-}): OffscreenCanvas | HTMLCanvasElement | null {
- const isImageReady =
- previewImageElement?.complete &&
- (previewImageElement.naturalWidth ?? 0) > 0;
- if (!isImageReady || !previewImageElement) {
- return null;
+ onPreviewImageReady({
+ callback,
+ }: {
+ callback: () => void;
+ }): () => void {
+ this.onReadyCallbacks.add(callback);
+ return () => this.onReadyCallbacks.delete(callback);
}
- const canvas = createOffscreenCanvas({ width, height });
- const ctx = canvas.getContext("2d") as
- | CanvasRenderingContext2D
- | OffscreenCanvasRenderingContext2D
- | null;
- if (!ctx) {
- throw new Error("failed to get 2d context for test source");
- }
- ctx.drawImage(previewImageElement, 0, 0, width, height);
- return canvas;
-}
+ renderPreview({
+ effectType,
+ params,
+ targetCanvas,
+ uniformDimensions,
+ }: {
+ effectType: string;
+ params: ParamValues;
+ targetCanvas: HTMLCanvasElement;
+ uniformDimensions?: { width: number; height: number };
+ }): void {
+ const size = PREVIEW_SIZE;
+ const source = this.getTestSource({ width: size, height: size });
+ if (!source) return;
-function getOrCreatePreviewContext({
- width,
- height,
-}: {
- width: number;
- height: number;
-}): { canvas: OffscreenCanvas | HTMLCanvasElement; gl: WebGLRenderingContext } {
- if (!previewCanvas || !previewGl) {
- previewCanvas = createOffscreenCanvas({ width, height });
- previewGl = previewCanvas.getContext("webgl", {
- premultipliedAlpha: false,
- }) as WebGLRenderingContext | null;
- if (!previewGl) {
- throw new Error("WebGL not supported");
+ const definition = effectsRegistry.get(effectType);
+ const resolvedParams =
+ Object.keys(params).length > 0
+ ? params
+ : buildDefaultParamValues(definition.params);
+
+ const passes = resolveEffectPasses({
+ definition,
+ effectParams: resolvedParams,
+ width: uniformDimensions?.width ?? size,
+ height: uniformDimensions?.height ?? size,
+ });
+ const result = this.applyWebGlEffect({
+ source,
+ width: size,
+ height: size,
+ passes,
+ });
+
+ const targetCtx = targetCanvas.getContext(
+ "2d",
+ ) as CanvasRenderingContext2D | null;
+ if (targetCtx) {
+ targetCanvas.width = size;
+ targetCanvas.height = size;
+ targetCtx.drawImage(result, 0, 0, size, size);
}
}
- if (previewCanvas.width !== width || previewCanvas.height !== height) {
- previewCanvas.width = width;
- previewCanvas.height = height;
- }
- return { canvas: previewCanvas, gl: previewGl };
-}
-function getTestSource({
- width,
- height,
-}: {
- width: number;
- height: number;
-}): CanvasImageSource | null {
- if (
- !testSourceCanvas ||
- testSourceCanvas.width !== width ||
- testSourceCanvas.height !== height
- ) {
- testSourceCanvas = createTestSource({ width, height });
+ private loadPreviewImage(): void {
+ if (typeof window === "undefined") return;
+ const image = new Image();
+ image.onload = () => {
+ this.testSourceCanvas = null;
+ for (const callback of this.onReadyCallbacks) {
+ callback();
+ }
+ };
+ image.src = PREVIEW_IMAGE_PATH;
+ this.previewImageElement = image;
}
- return testSourceCanvas;
-}
-
-function applyWebGlEffect({
- source,
- width,
- height,
- passes,
-}: {
- source: CanvasImageSource;
- width: number;
- height: number;
- passes: EffectPassData[];
-}): OffscreenCanvas | HTMLCanvasElement {
- const { canvas: glCanvas, gl } = getOrCreatePreviewContext({ width, height });
- applyMultiPassEffect({ context: gl, source, width, height, passes, programCache });
+ private createTestSource({
+ width,
+ height,
+ }: {
+ width: number;
+ height: number;
+ }): OffscreenCanvas | HTMLCanvasElement | null {
+ const isImageReady =
+ this.previewImageElement?.complete &&
+ (this.previewImageElement.naturalWidth ?? 0) > 0;
+ if (!isImageReady || !this.previewImageElement) {
+ return null;
+ }
- const outputCanvas = createOffscreenCanvas({ width, height });
- const outputCtx = outputCanvas.getContext("2d") as
- | CanvasRenderingContext2D
- | OffscreenCanvasRenderingContext2D
- | null;
- if (outputCtx) {
- outputCtx.drawImage(glCanvas, 0, 0, width, height);
+ const canvas = createOffscreenCanvas({ width, height });
+ const ctx = canvas.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (!ctx) {
+ throw new Error("failed to get 2d context for test source");
+ }
+ ctx.drawImage(this.previewImageElement, 0, 0, width, height);
+ return canvas;
}
- return outputCanvas;
-}
-export function renderPreview({
- effectType,
- params,
- targetCanvas,
-}: {
- effectType: string;
- params: EffectParamValues;
- targetCanvas: HTMLCanvasElement;
-}): void {
- const size = PREVIEW_SIZE;
- const source = getTestSource({ width: size, height: size });
- if (!source) return;
+ private getOrCreatePreviewContext({
+ width,
+ height,
+ }: {
+ width: number;
+ height: number;
+ }): { canvas: OffscreenCanvas | HTMLCanvasElement; gl: WebGLRenderingContext } {
+ if (!this.previewCanvas || !this.previewGl) {
+ this.previewCanvas = createOffscreenCanvas({ width, height });
+ this.previewGl = this.previewCanvas.getContext("webgl", {
+ premultipliedAlpha: false,
+ }) as WebGLRenderingContext | null;
+ if (!this.previewGl) {
+ throw new Error("WebGL not supported");
+ }
+ }
+ if (this.previewCanvas.width !== width || this.previewCanvas.height !== height) {
+ this.previewCanvas.width = width;
+ this.previewCanvas.height = height;
+ }
+ return { canvas: this.previewCanvas, gl: this.previewGl };
+ }
- const definition = getEffect({ effectType });
- const resolvedParams =
- Object.keys(params).length > 0
- ? params
- : buildDefaultParams({ effectType });
+ private getTestSource({
+ width,
+ height,
+ }: {
+ width: number;
+ height: number;
+ }): CanvasImageSource | null {
+ if (
+ !this.testSourceCanvas ||
+ this.testSourceCanvas.width !== width ||
+ this.testSourceCanvas.height !== height
+ ) {
+ this.testSourceCanvas = this.createTestSource({ width, height });
+ }
+ return this.testSourceCanvas;
+ }
- const passes = definition.renderer.passes.map((pass) => ({
- fragmentShader: pass.fragmentShader,
- uniforms: pass.uniforms({
- effectParams: resolvedParams,
- width: size,
- height: size,
- }),
- }));
- const result = applyWebGlEffect({
+ private applyWebGlEffect({
source,
- width: size,
- height: size,
+ width,
+ height,
passes,
- });
+ }: {
+ source: CanvasImageSource;
+ width: number;
+ height: number;
+ passes: EffectPassData[];
+ }): OffscreenCanvas | HTMLCanvasElement {
+ const { canvas: glCanvas, gl } = this.getOrCreatePreviewContext({ width, height });
+
+ applyMultiPassEffect({
+ context: gl,
+ source,
+ width,
+ height,
+ passes,
+ programCache: this.programCache,
+ });
- const targetCtx = targetCanvas.getContext(
- "2d",
- ) as CanvasRenderingContext2D | null;
- if (targetCtx) {
- targetCanvas.width = size;
- targetCanvas.height = size;
- targetCtx.drawImage(result, 0, 0, size, size);
+ const outputCanvas = createOffscreenCanvas({ width, height });
+ const outputCtx = outputCanvas.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (outputCtx) {
+ outputCtx.drawImage(glCanvas, 0, 0, width, height);
+ }
+ return outputCanvas;
}
}
-export const effectPreviewService = {
- renderPreview,
- onPreviewImageReady,
- PREVIEW_SIZE,
-};
+export const effectPreviewService = new EffectPreviewService();
diff --git a/apps/web/src/services/renderer/mask-feather.ts b/apps/web/src/services/renderer/mask-feather.ts
new file mode 100644
index 00000000..39ad80a8
--- /dev/null
+++ b/apps/web/src/services/renderer/mask-feather.ts
@@ -0,0 +1,54 @@
+import jfaDistanceShader from "@/lib/masks/shaders/jfa-distance.frag.glsl";
+import { getWebGLContext, readResult } from "./webgl/webgl-context";
+import { computeSignedDistanceField, runPass } from "./webgl/jfa";
+import { compileProgram, createTexture } from "./webgl/webgl-utils";
+
+export function applyMaskFeather({
+ maskCanvas,
+ width,
+ height,
+ feather,
+}: {
+ maskCanvas: CanvasImageSource;
+ width: number;
+ height: number;
+ feather: number;
+}): OffscreenCanvas | HTMLCanvasElement {
+ const { context, programCache } = getWebGLContext({ width, height });
+ const sourceTexture = createTexture({ context, source: maskCanvas });
+
+ const sdf = computeSignedDistanceField({
+ context,
+ programCache,
+ sourceTexture,
+ width,
+ height,
+ });
+
+ const distanceProgram = compileProgram({
+ context,
+ fragmentShaderSource: jfaDistanceShader,
+ programCache,
+ });
+
+ runPass({
+ context,
+ program: distanceProgram,
+ inputTexture: sdf.insideTexture,
+ target: null,
+ width,
+ height,
+ uniforms: { u_feather_half: feather / 2.0 },
+ extraBindings: [
+ { unit: 1, texture: sdf.outsideTexture, name: "u_jfa_outside" },
+ ],
+ });
+
+ context.deleteTexture(sourceTexture);
+ sdf.cleanup();
+
+ context.bindTexture(context.TEXTURE_2D, null);
+ context.bindFramebuffer(context.FRAMEBUFFER, null);
+
+ return readResult({ width, height });
+}
diff --git a/apps/web/src/services/renderer/nodes/blur-background-node.ts b/apps/web/src/services/renderer/nodes/blur-background-node.ts
new file mode 100644
index 00000000..7f4d06fc
--- /dev/null
+++ b/apps/web/src/services/renderer/nodes/blur-background-node.ts
@@ -0,0 +1,149 @@
+import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
+import { buildGaussianBlurPasses } from "@/lib/effects/definitions/blur";
+import { getSourceTimeAtClipTime } from "@/lib/retime";
+import { videoCache } from "@/services/video-cache/service";
+import type { RetimeConfig } from "@/lib/timeline";
+import type { CanvasRenderer } from "../canvas-renderer";
+import { createOffscreenCanvas } from "../canvas-utils";
+import { webglEffectRenderer } from "../webgl/webgl-effect-renderer";
+import { BaseNode } from "./base-node";
+import { loadImageSource, type CachedImageSource } from "./image-node";
+
+export type BlurBackgroundNodeParams = {
+ mediaId: string;
+ url: string;
+ file: File;
+ mediaType: "video" | "image";
+ duration: number;
+ timeOffset: number;
+ trimStart: number;
+ trimEnd: number;
+ retime?: RetimeConfig;
+ blurIntensity: number;
+};
+
+type BackdropSource = {
+ source: CanvasImageSource;
+ width: number;
+ height: number;
+};
+
+export class BlurBackgroundNode extends BaseNode<BlurBackgroundNodeParams> {
+ private cachedImageSource: Promise<CachedImageSource> | null;
+
+ constructor(params: BlurBackgroundNodeParams) {
+ super(params);
+ this.cachedImageSource =
+ params.mediaType === "image" ? loadImageSource(params.url) : null;
+ }
+
+ private isInRange({ time }: { time: number }): boolean {
+ const localTime = time - this.params.timeOffset;
+ return (
+ localTime >= -TIME_EPSILON_SECONDS && localTime < this.params.duration
+ );
+ }
+
+ private getSourceLocalTime({ time }: { time: number }): number {
+ const clipTime = time - this.params.timeOffset;
+ return (
+ this.params.trimStart +
+ getSourceTimeAtClipTime({
+ clipTime,
+ retime: this.params.retime,
+ })
+ );
+ }
+
+ private async getBackdropSource({
+ time,
+ }: {
+ time: number;
+ }): Promise<BackdropSource | null> {
+ if (this.params.mediaType === "video") {
+ const frame = await videoCache.getFrameAt({
+ mediaId: this.params.mediaId,
+ file: this.params.file,
+ time: this.getSourceLocalTime({ time }),
+ });
+
+ if (!frame) {
+ return null;
+ }
+
+ return {
+ source: frame.canvas,
+ width: frame.canvas.width,
+ height: frame.canvas.height,
+ };
+ }
+
+ if (!this.cachedImageSource) {
+ return null;
+ }
+
+ const { source, width, height } = await this.cachedImageSource;
+ return { source, width, height };
+ }
+
+ async render({ renderer, time }: { renderer: CanvasRenderer; time: number }) {
+ await super.render({ renderer, time });
+
+ if (!this.isInRange({ time })) {
+ return;
+ }
+
+ const backdropSource = await this.getBackdropSource({ time });
+ if (!backdropSource) {
+ return;
+ }
+
+ const offscreen = createOffscreenCanvas({
+ width: renderer.width,
+ height: renderer.height,
+ });
+ const offscreenCtx = offscreen.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (!offscreenCtx) {
+ return;
+ }
+
+ const coverScale = Math.max(
+ renderer.width / backdropSource.width,
+ renderer.height / backdropSource.height,
+ );
+ const scaledWidth = backdropSource.width * coverScale;
+ const scaledHeight = backdropSource.height * coverScale;
+ const offsetX = (renderer.width - scaledWidth) / 2;
+ const offsetY = (renderer.height - scaledHeight) / 2;
+
+ offscreenCtx.drawImage(
+ backdropSource.source,
+ offsetX,
+ offsetY,
+ scaledWidth,
+ scaledHeight,
+ );
+
+ const passes = buildGaussianBlurPasses({
+ sigmaX: this.params.blurIntensity * (renderer.width / 1920),
+ sigmaY: this.params.blurIntensity * (renderer.height / 1080),
+ });
+ const effectResult = webglEffectRenderer.applyEffect({
+ source: offscreen as CanvasImageSource,
+ width: renderer.width,
+ height: renderer.height,
+ passes,
+ });
+
+ renderer.context.drawImage(
+ effectResult,
+ 0,
+ 0,
+ renderer.width,
+ renderer.height,
+ );
+ }
+}
diff --git a/apps/web/src/services/renderer/nodes/composite-effect-node.ts b/apps/web/src/services/renderer/nodes/composite-effect-node.ts
deleted file mode 100644
index 3fbfffc1..00000000
--- a/apps/web/src/services/renderer/nodes/composite-effect-node.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import type { CanvasRenderer } from "../canvas-renderer";
-import { createOffscreenCanvas } from "../canvas-utils";
-import { getEffect } from "@/lib/effects";
-import type { EffectParamValues } from "@/types/effects";
-import { BaseNode } from "./base-node";
-import { webglEffectRenderer } from "../webgl-effect-renderer";
-
-export type CompositeEffectNodeParams = {
- contentNodes: BaseNode[];
- effectType: string;
- effectParams: EffectParamValues;
- scale: number;
-};
-
-export class CompositeEffectNode extends BaseNode<CompositeEffectNodeParams> {
- async render({
- renderer,
- time,
- }: {
- renderer: CanvasRenderer;
- time: number;
- }): Promise<void> {
- const offscreen = createOffscreenCanvas({
- width: renderer.width,
- height: renderer.height,
- });
- const offscreenCtx = offscreen.getContext("2d") as OffscreenCanvasRenderingContext2D | null;
- if (!offscreenCtx) {
- throw new Error("failed to get offscreen canvas context");
- }
-
- const originalContext = renderer.context;
- renderer.context = offscreenCtx;
-
- for (const node of this.params.contentNodes) {
- await node.render({ renderer, time });
- }
-
- renderer.context = originalContext;
-
- const effectDefinition = getEffect({ effectType: this.params.effectType });
- const scale = this.params.scale;
- const scaledWidth = renderer.width * scale;
- const scaledHeight = renderer.height * scale;
- const offsetX = (renderer.width - scaledWidth) / 2;
- const offsetY = (renderer.height - scaledHeight) / 2;
-
- const passes = effectDefinition.renderer.passes.map((pass) => ({
- fragmentShader: pass.fragmentShader,
- uniforms: pass.uniforms({
- effectParams: this.params.effectParams,
- width: renderer.width,
- height: renderer.height,
- }),
- }));
- const effectResult = webglEffectRenderer.applyEffect({
- source: offscreen as CanvasImageSource,
- width: renderer.width,
- height: renderer.height,
- passes,
- });
-
- renderer.context.save();
- renderer.context.drawImage(
- effectResult,
- 0,
- 0,
- renderer.width,
- renderer.height,
- offsetX,
- offsetY,
- scaledWidth,
- scaledHeight,
- );
- renderer.context.restore();
- }
-}
diff --git a/apps/web/src/services/renderer/nodes/effect-layer-node.ts b/apps/web/src/services/renderer/nodes/effect-layer-node.ts
index 3d84be2b..82aee1b3 100644
--- a/apps/web/src/services/renderer/nodes/effect-layer-node.ts
+++ b/apps/web/src/services/renderer/nodes/effect-layer-node.ts
@@ -1,14 +1,14 @@
import type { CanvasRenderer } from "../canvas-renderer";
-import { getEffect } from "@/lib/effects";
-import type { EffectParamValues } from "@/types/effects";
+import { effectsRegistry, resolveEffectPasses } from "@/lib/effects";
+import type { ParamValues } from "@/lib/params";
import { BaseNode } from "./base-node";
-import { webglEffectRenderer } from "../webgl-effect-renderer";
+import { webglEffectRenderer } from "../webgl/webgl-effect-renderer";
const TIME_EPSILON = 1e-6;
export type EffectLayerNodeParams = {
effectType: string;
- effectParams: EffectParamValues;
+ effectParams: ParamValues;
timeOffset: number;
duration: number;
};
@@ -49,18 +49,17 @@ export class EffectLayerNode extends BaseNode<EffectLayerNodeParams> {
const source = renderer.context.canvas as CanvasImageSource;
- const effectDefinition = getEffect({
- effectType: this.params.effectType,
- });
+ const effectDefinition = effectsRegistry.get(this.params.effectType);
- const passes = effectDefinition.renderer.passes.map((pass) => ({
- fragmentShader: pass.fragmentShader,
- uniforms: pass.uniforms({
- effectParams: this.params.effectParams,
- width: renderer.width,
- height: renderer.height,
- }),
- }));
+ const passes = resolveEffectPasses({
+ definition: effectDefinition,
+ effectParams: this.params.effectParams,
+ width: renderer.width,
+ height: renderer.height,
+ });
+ if (passes.length === 0) {
+ return;
+ }
const effectResult = webglEffectRenderer.applyEffect({
source,
width: renderer.width,
diff --git a/apps/web/src/services/renderer/nodes/graphic-node.ts b/apps/web/src/services/renderer/nodes/graphic-node.ts
new file mode 100644
index 00000000..b258a353
--- /dev/null
+++ b/apps/web/src/services/renderer/nodes/graphic-node.ts
@@ -0,0 +1,92 @@
+import type { CanvasRenderer } from "../canvas-renderer";
+import { createOffscreenCanvas } from "../canvas-utils";
+import {
+ DEFAULT_GRAPHIC_SOURCE_SIZE,
+ getGraphicDefinition,
+ registerDefaultGraphics,
+} from "@/lib/graphics";
+import { resolveGraphicParamsAtTime } from "@/lib/animation";
+import type { ParamValues } from "@/lib/params";
+import { VisualNode, type VisualNodeParams } from "./visual-node";
+
+export interface GraphicNodeParams extends VisualNodeParams {
+ definitionId: string;
+ params: ParamValues;
+}
+
+export class GraphicNode extends VisualNode<GraphicNodeParams> {
+ private cachedKey: string | null = null;
+ private cachedSource: OffscreenCanvas | HTMLCanvasElement | null = null;
+
+ constructor(params: GraphicNodeParams) {
+ super(params);
+ registerDefaultGraphics();
+ }
+
+ private getSource({
+ localTime,
+ }: {
+ localTime: number;
+ }): OffscreenCanvas | HTMLCanvasElement | null {
+ const definition = getGraphicDefinition({
+ definitionId: this.params.definitionId,
+ });
+ const resolvedParams = resolveGraphicParamsAtTime({
+ element: this.params,
+ localTime,
+ });
+ const cacheKey = JSON.stringify({
+ definitionId: this.params.definitionId,
+ params: resolvedParams,
+ });
+ if (this.cachedSource && this.cachedKey === cacheKey) {
+ return this.cachedSource;
+ }
+
+ const canvas = createOffscreenCanvas({
+ width: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ height: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ });
+ const ctx = canvas.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (!ctx) {
+ return null;
+ }
+
+ definition.render({
+ ctx,
+ params: resolvedParams,
+ width: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ height: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ });
+
+ this.cachedKey = cacheKey;
+ this.cachedSource = canvas;
+ return canvas;
+ }
+
+ async render({ renderer, time }: { renderer: CanvasRenderer; time: number }) {
+ await super.render({ renderer, time });
+
+ if (!this.isInRange({ time })) {
+ return;
+ }
+
+ const source = this.getSource({
+ localTime: this.getAnimationLocalTime({ time }),
+ });
+ if (!source) {
+ return;
+ }
+
+ this.renderVisual({
+ renderer,
+ source,
+ sourceWidth: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ sourceHeight: DEFAULT_GRAPHIC_SOURCE_SIZE,
+ timelineTime: time,
+ });
+ }
+}
diff --git a/apps/web/src/services/renderer/nodes/image-node.ts b/apps/web/src/services/renderer/nodes/image-node.ts
index 6720a5e5..7d74f511 100644
--- a/apps/web/src/services/renderer/nodes/image-node.ts
+++ b/apps/web/src/services/renderer/nodes/image-node.ts
@@ -6,7 +6,7 @@ export interface ImageNodeParams extends VisualNodeParams {
maxSourceSize?: number;
}
-interface CachedImageSource {
+export interface CachedImageSource {
source: HTMLImageElement | OffscreenCanvas;
width: number;
height: number;
@@ -14,7 +14,7 @@ interface CachedImageSource {
const imageSourceCache = new Map<string, Promise<CachedImageSource>>();
-function loadImageSource(
+export function loadImageSource(
url: string,
maxSourceSize?: number,
): Promise<CachedImageSource> {
diff --git a/apps/web/src/services/renderer/nodes/sticker-node.ts b/apps/web/src/services/renderer/nodes/sticker-node.ts
index da271685..71cb37b5 100644
--- a/apps/web/src/services/renderer/nodes/sticker-node.ts
+++ b/apps/web/src/services/renderer/nodes/sticker-node.ts
@@ -4,6 +4,8 @@ import { VisualNode, type VisualNodeParams } from "./visual-node";
export interface StickerNodeParams extends VisualNodeParams {
stickerId: string;
+ intrinsicWidth?: number;
+ intrinsicHeight?: number;
}
interface CachedStickerSource {
@@ -14,7 +16,7 @@ interface CachedStickerSource {
const stickerSourceCache = new Map<string, Promise<CachedStickerSource>>();
-function loadStickerSource(stickerId: string): Promise<CachedStickerSource> {
+function loadStickerSource({ stickerId }: { stickerId: string }): Promise<CachedStickerSource> {
const cached = stickerSourceCache.get(stickerId);
if (cached) return cached;
@@ -33,7 +35,7 @@ function loadStickerSource(stickerId: string): Promise<CachedStickerSource> {
image.src = url;
});
- return { source: image, width: 200, height: 200 };
+ return { source: image, width: image.naturalWidth, height: image.naturalHeight };
})();
stickerSourceCache.set(stickerId, promise);
@@ -45,7 +47,7 @@ export class StickerNode extends VisualNode<StickerNodeParams> {
constructor(params: StickerNodeParams) {
super(params);
- this.cachedSource = loadStickerSource(params.stickerId);
+ this.cachedSource = loadStickerSource({ stickerId: params.stickerId });
}
async render({ renderer, time }: { renderer: CanvasRenderer; time: number }) {
@@ -55,13 +57,19 @@ export class StickerNode extends VisualNode<StickerNodeParams> {
return;
}
- const { source, width, height } = await this.cachedSource;
+ const { source, width: loadedWidth, height: loadedHeight } =
+ await this.cachedSource;
+
+ // Prefer element-stored intrinsic dimensions as the geometry authority.
+ // The loaded image is only the drawable source.
+ const sourceWidth = this.params.intrinsicWidth ?? loadedWidth;
+ const sourceHeight = this.params.intrinsicHeight ?? loadedHeight;
this.renderVisual({
renderer,
source,
- sourceWidth: width,
- sourceHeight: height,
+ sourceWidth,
+ sourceHeight,
timelineTime: time,
});
}
diff --git a/apps/web/src/services/renderer/nodes/text-node.ts b/apps/web/src/services/renderer/nodes/text-node.ts
index 86e24fdf..031c43b3 100644
--- a/apps/web/src/services/renderer/nodes/text-node.ts
+++ b/apps/web/src/services/renderer/nodes/text-node.ts
@@ -1,12 +1,8 @@
import type { CanvasRenderer } from "../canvas-renderer";
import { createOffscreenCanvas } from "../canvas-utils";
import { BaseNode } from "./base-node";
-import type { TextElement } from "@/types/timeline";
+import type { TextElement } from "@/lib/timeline";
import {
- DEFAULT_TEXT_BACKGROUND,
- DEFAULT_TEXT_ELEMENT,
- DEFAULT_LINE_HEIGHT,
- FONT_SIZE_SCALE_REFERENCE,
CORNER_RADIUS_MAX,
CORNER_RADIUS_MIN,
} from "@/constants/text-constants";
@@ -14,34 +10,20 @@ import {
getMetricAscent,
getMetricDescent,
getTextBackgroundRect,
- measureTextBlock,
+ setCanvasLetterSpacing,
} from "@/lib/text/layout";
+import { measureTextElement } from "@/lib/text/measure-element";
import {
getElementLocalTime,
resolveColorAtTime,
- resolveNumberAtTime,
resolveOpacityAtTime,
resolveTransformAtTime,
} from "@/lib/animation";
import { resolveEffectParamsAtTime } from "@/lib/animation/effect-param-channel";
-import { getEffect } from "@/lib/effects";
-import { webglEffectRenderer } from "../webgl-effect-renderer";
+import { effectsRegistry, resolveEffectPasses } from "@/lib/effects";
+import { webglEffectRenderer } from "../webgl/webgl-effect-renderer";
import { clamp } from "@/utils/math";
-function scaleFontSize({
- fontSize,
- canvasHeight,
-}: {
- fontSize: number;
- canvasHeight: number;
-}): number {
- return fontSize * (canvasHeight / FONT_SIZE_SCALE_REFERENCE);
-}
-
-function quoteFontFamily({ fontFamily }: { fontFamily: string }): string {
- return `"${fontFamily.replace(/"/g, '\\"')}"`;
-}
-
const TEXT_DECORATION_THICKNESS_RATIO = 0.07;
const STRIKETHROUGH_VERTICAL_RATIO = 0.35;
@@ -64,9 +46,15 @@ function drawTextDecoration({
}): void {
if (textDecoration === "none" || !textDecoration) return;
- const thickness = Math.max(1, scaledFontSize * TEXT_DECORATION_THICKNESS_RATIO);
+ const thickness = Math.max(
+ 1,
+ scaledFontSize * TEXT_DECORATION_THICKNESS_RATIO,
+ );
const ascent = getMetricAscent({ metrics, fallbackFontSize: scaledFontSize });
- const descent = getMetricDescent({ metrics, fallbackFontSize: scaledFontSize });
+ const descent = getMetricDescent({
+ metrics,
+ fallbackFontSize: scaledFontSize,
+ });
let xStart = -lineWidth / 2;
if (textAlign === "left") xStart = 0;
@@ -121,19 +109,6 @@ export class TextNode extends BaseNode<TextNodeParams> {
const x = transform.position.x + this.params.canvasCenter.x;
const y = transform.position.y + this.params.canvasCenter.y;
- const fontWeight = this.params.fontWeight === "bold" ? "bold" : "normal";
- const fontStyle = this.params.fontStyle === "italic" ? "italic" : "normal";
- const scaledFontSize = scaleFontSize({
- fontSize: this.params.fontSize,
- canvasHeight: this.params.canvasHeight,
- });
- const fontFamily = quoteFontFamily({ fontFamily: this.params.fontFamily });
- const fontString = `${fontStyle} ${fontWeight} ${scaledFontSize}px ${fontFamily}, sans-serif`;
- const letterSpacing = this.params.letterSpacing ?? 0;
- const lineHeight = this.params.lineHeight ?? DEFAULT_LINE_HEIGHT;
- const lines = this.params.content.split("\n");
- const lineHeightPx = scaledFontSize * lineHeight;
- const fontSizeRatio = this.params.fontSize / DEFAULT_TEXT_ELEMENT.fontSize;
const baseline = this.params.textBaseline ?? "middle";
const blendMode = (
this.params.blendMode && this.params.blendMode !== "normal"
@@ -141,73 +116,49 @@ export class TextNode extends BaseNode<TextNodeParams> {
: "source-over"
) as GlobalCompositeOperation;
- renderer.context.save();
- renderer.context.font = fontString;
- renderer.context.textBaseline = baseline;
- if ("letterSpacing" in renderer.context) {
- (renderer.context as CanvasRenderingContext2D & { letterSpacing: string }).letterSpacing = `${letterSpacing}px`;
- }
- const lineMetrics = lines.map((line) => renderer.context.measureText(line));
- renderer.context.restore();
+ const {
+ scaledFontSize,
+ fontString,
+ letterSpacing,
+ lineHeightPx,
+ lines,
+ lineMetrics,
+ block,
+ fontSizeRatio,
+ resolvedBackground,
+ } = measureTextElement({
+ element: this.params,
+ canvasHeight: this.params.canvasHeight,
+ localTime,
+ ctx: renderer.context,
+ });
const lineCount = lines.length;
- const block = measureTextBlock({ lineMetrics, lineHeightPx, fallbackFontSize: scaledFontSize });
- const textColor = resolveColorAtTime({
+ const textColor = resolveColorAtTime({
baseColor: this.params.color,
animations: this.params.animations,
propertyPath: "color",
localTime,
});
- const bg = this.params.background;
- const resolvedBackground = {
- ...bg,
+ const resolvedBackgroundWithColor = {
+ ...resolvedBackground,
color: resolveColorAtTime({
- baseColor: bg.color,
+ baseColor: this.params.background.color,
animations: this.params.animations,
propertyPath: "background.color",
localTime,
}),
- paddingX: resolveNumberAtTime({
- baseValue: bg.paddingX ?? DEFAULT_TEXT_BACKGROUND.paddingX,
- animations: this.params.animations,
- propertyPath: "background.paddingX",
- localTime,
- }),
- paddingY: resolveNumberAtTime({
- baseValue: bg.paddingY ?? DEFAULT_TEXT_BACKGROUND.paddingY,
- animations: this.params.animations,
- propertyPath: "background.paddingY",
- localTime,
- }),
- offsetX: resolveNumberAtTime({
- baseValue: bg.offsetX ?? DEFAULT_TEXT_BACKGROUND.offsetX,
- animations: this.params.animations,
- propertyPath: "background.offsetX",
- localTime,
- }),
- offsetY: resolveNumberAtTime({
- baseValue: bg.offsetY ?? DEFAULT_TEXT_BACKGROUND.offsetY,
- animations: this.params.animations,
- propertyPath: "background.offsetY",
- localTime,
- }),
- cornerRadius: resolveNumberAtTime({
- baseValue: bg.cornerRadius ?? CORNER_RADIUS_MIN,
- animations: this.params.animations,
- propertyPath: "background.cornerRadius",
- localTime,
- }),
};
- const drawContent = (ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) => {
+ const drawContent = (
+ ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
+ ) => {
ctx.font = fontString;
ctx.textAlign = this.params.textAlign;
ctx.textBaseline = baseline;
ctx.fillStyle = textColor;
- if ("letterSpacing" in ctx) {
- (ctx as CanvasRenderingContext2D & { letterSpacing: string }).letterSpacing = `${letterSpacing}px`;
- }
+ setCanvasLetterSpacing({ ctx, letterSpacingPx: letterSpacing });
if (
this.params.background.enabled &&
@@ -218,17 +169,29 @@ export class TextNode extends BaseNode<TextNodeParams> {
const backgroundRect = getTextBackgroundRect({
textAlign: this.params.textAlign,
block,
- background: resolvedBackground,
+ background: resolvedBackgroundWithColor,
fontSizeRatio,
});
if (backgroundRect) {
- const p = clamp({ value: resolvedBackground.cornerRadius, min: CORNER_RADIUS_MIN, max: CORNER_RADIUS_MAX }) / 100;
- const radius = Math.min(backgroundRect.width, backgroundRect.height) / 2 * p;
- ctx.fillStyle = resolvedBackground.color;
- ctx.beginPath();
- ctx.roundRect(backgroundRect.left, backgroundRect.top, backgroundRect.width, backgroundRect.height, radius);
- ctx.fill();
- ctx.fillStyle = textColor;
+ const p =
+ clamp({
+ value: resolvedBackgroundWithColor.cornerRadius,
+ min: CORNER_RADIUS_MIN,
+ max: CORNER_RADIUS_MAX,
+ }) / 100;
+ const radius =
+ (Math.min(backgroundRect.width, backgroundRect.height) / 2) * p;
+ ctx.fillStyle = resolvedBackgroundWithColor.color;
+ ctx.beginPath();
+ ctx.roundRect(
+ backgroundRect.left,
+ backgroundRect.top,
+ backgroundRect.width,
+ backgroundRect.height,
+ radius,
+ );
+ ctx.fill();
+ ctx.fillStyle = textColor;
}
}
@@ -247,15 +210,18 @@ export class TextNode extends BaseNode<TextNodeParams> {
}
};
- const applyTransform = (ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) => {
+ const applyTransform = (
+ ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
+ ) => {
ctx.translate(x, y);
- ctx.scale(transform.scale, transform.scale);
+ ctx.scale(transform.scaleX, transform.scaleY);
if (transform.rotate) {
ctx.rotate((transform.rotate * Math.PI) / 180);
}
};
- const enabledEffects = this.params.effects?.filter((effect) => effect.enabled) ?? [];
+ const enabledEffects =
+ this.params.effects?.filter((effect) => effect.enabled) ?? [];
if (enabledEffects.length === 0) {
renderer.context.save();
@@ -269,11 +235,16 @@ export class TextNode extends BaseNode<TextNodeParams> {
// Effects path: render text to a same-size offscreen canvas so the blur
// can spread into the surrounding transparent area without hard clipping.
- const offscreen = createOffscreenCanvas({ width: renderer.width, height: renderer.height });
- const offscreenCtx = offscreen.getContext("2d") as OffscreenCanvasRenderingContext2D | null;
+ const offscreen = createOffscreenCanvas({
+ width: renderer.width,
+ height: renderer.height,
+ });
+ const offscreenCtx = offscreen.getContext(
+ "2d",
+ ) as OffscreenCanvasRenderingContext2D | null;
if (!offscreenCtx) {
- renderer.context.save();
+ renderer.context.save();
applyTransform(renderer.context);
renderer.context.globalCompositeOperation = blendMode;
renderer.context.globalAlpha = opacity;
@@ -294,15 +265,13 @@ export class TextNode extends BaseNode<TextNodeParams> {
animations: this.params.animations,
localTime,
});
- const definition = getEffect({ effectType: effect.type });
- const passes = definition.renderer.passes.map((pass) => ({
- fragmentShader: pass.fragmentShader,
- uniforms: pass.uniforms({
- effectParams: resolvedParams,
- width: renderer.width,
- height: renderer.height,
- }),
- }));
+ const definition = effectsRegistry.get(effect.type);
+ const passes = resolveEffectPasses({
+ definition,
+ effectParams: resolvedParams,
+ width: renderer.width,
+ height: renderer.height,
+ });
currentSource = webglEffectRenderer.applyEffect({
source: currentSource,
width: renderer.width,
diff --git a/apps/web/src/services/renderer/nodes/video-node.ts b/apps/web/src/services/renderer/nodes/video-node.ts
index 503c9c03..af39d26f 100644
--- a/apps/web/src/services/renderer/nodes/video-node.ts
+++ b/apps/web/src/services/renderer/nodes/video-node.ts
@@ -17,6 +17,7 @@ export class VideoNode extends VisualNode<VideoNodeParams> {
}
const videoTime = this.getSourceLocalTime({ time });
+
const frame = await videoCache.getFrameAt({
mediaId: this.params.mediaId,
file: this.params.file,
diff --git a/apps/web/src/services/renderer/nodes/visual-node.ts b/apps/web/src/services/renderer/nodes/visual-node.ts
index 6c50aa12..e0f87c52 100644
--- a/apps/web/src/services/renderer/nodes/visual-node.ts
+++ b/apps/web/src/services/renderer/nodes/visual-node.ts
@@ -1,10 +1,11 @@
import type { CanvasRenderer } from "../canvas-renderer";
import { createOffscreenCanvas } from "../canvas-utils";
import { BaseNode } from "./base-node";
-import type { Effect } from "@/types/effects";
-import type { BlendMode } from "@/types/rendering";
-import type { Transform } from "@/types/timeline";
-import type { ElementAnimations } from "@/types/animation";
+import type { Effect } from "@/lib/effects/types";
+import type { Mask } from "@/lib/masks/types";
+import type { BlendMode, Transform } from "@/lib/rendering";
+import type { ElementAnimations } from "@/lib/animation/types";
+import type { RetimeConfig } from "@/lib/timeline";
import {
getElementLocalTime,
resolveOpacityAtTime,
@@ -12,26 +13,38 @@ import {
} from "@/lib/animation";
import { resolveEffectParamsAtTime } from "@/lib/animation/effect-param-channel";
import { TIME_EPSILON_SECONDS } from "@/constants/animation-constants";
-import { getEffect } from "@/lib/effects";
-import { webglEffectRenderer } from "../webgl-effect-renderer";
+import { effectsRegistry, resolveEffectPasses } from "@/lib/effects";
+import { masksRegistry } from "@/lib/masks";
+import { getSourceTimeAtClipTime } from "@/lib/retime";
+import { webglEffectRenderer } from "../webgl/webgl-effect-renderer";
+import { applyMaskFeather } from "../mask-feather";
export interface VisualNodeParams {
duration: number;
timeOffset: number;
trimStart: number;
trimEnd: number;
+ retime?: RetimeConfig;
transform: Transform;
animations?: ElementAnimations;
opacity: number;
blendMode?: BlendMode;
effects?: Effect[];
+ masks?: Mask[];
}
export abstract class VisualNode<
Params extends VisualNodeParams = VisualNodeParams,
> extends BaseNode<Params> {
protected getSourceLocalTime({ time }: { time: number }): number {
- return time - this.params.timeOffset + this.params.trimStart;
+ const clipTime = time - this.params.timeOffset;
+ return (
+ this.params.trimStart +
+ getSourceTimeAtClipTime({
+ clipTime,
+ retime: this.params.retime,
+ })
+ );
}
protected getAnimationLocalTime({ time }: { time: number }): number {
@@ -43,10 +56,10 @@ export abstract class VisualNode<
}
protected isInRange({ time }: { time: number }): boolean {
- const localTime = this.getSourceLocalTime({ time });
+ const localTime = time - this.params.timeOffset;
return (
- localTime >= this.params.trimStart - TIME_EPSILON_SECONDS &&
- localTime < this.params.trimStart + this.params.duration
+ localTime >= -TIME_EPSILON_SECONDS &&
+ localTime < this.params.duration
);
}
@@ -65,7 +78,9 @@ export abstract class VisualNode<
}): void {
renderer.context.save();
- const animationLocalTime = this.getAnimationLocalTime({ time: timelineTime });
+ const animationLocalTime = this.getAnimationLocalTime({
+ time: timelineTime,
+ });
const transform = resolveTransformAtTime({
baseTransform: this.params.transform,
animations: this.params.animations,
@@ -80,10 +95,12 @@ export abstract class VisualNode<
renderer.width / sourceWidth,
renderer.height / sourceHeight,
);
- const scaledWidth = sourceWidth * containScale * transform.scale;
- const scaledHeight = sourceHeight * containScale * transform.scale;
- const x = renderer.width / 2 + transform.position.x - scaledWidth / 2;
- const y = renderer.height / 2 + transform.position.y - scaledHeight / 2;
+ const scaledWidth = sourceWidth * containScale * transform.scaleX;
+ const scaledHeight = sourceHeight * containScale * transform.scaleY;
+ const absWidth = Math.abs(scaledWidth);
+ const absHeight = Math.abs(scaledHeight);
+ const x = renderer.width / 2 + transform.position.x - absWidth / 2;
+ const y = renderer.height / 2 + transform.position.y - absHeight / 2;
renderer.context.globalCompositeOperation = (
this.params.blendMode && this.params.blendMode !== "normal"
@@ -92,71 +109,187 @@ export abstract class VisualNode<
) as GlobalCompositeOperation;
renderer.context.globalAlpha = opacity;
- if (transform.rotate !== 0) {
- const centerX = x + scaledWidth / 2;
- const centerY = y + scaledHeight / 2;
+ const flipX = scaledWidth < 0 ? -1 : 1;
+ const flipY = scaledHeight < 0 ? -1 : 1;
+ const needsTransform = transform.rotate !== 0 || flipX !== 1 || flipY !== 1;
+
+ if (needsTransform) {
+ const centerX = x + absWidth / 2;
+ const centerY = y + absHeight / 2;
renderer.context.translate(centerX, centerY);
renderer.context.rotate((transform.rotate * Math.PI) / 180);
+ renderer.context.scale(flipX, flipY);
renderer.context.translate(-centerX, -centerY);
}
const enabledEffects =
this.params.effects?.filter((effect) => effect.enabled) ?? [];
+ const activeMasks = this.params.masks ?? [];
+
+ if (activeMasks.length === 0 && enabledEffects.length === 0) {
+ renderer.context.drawImage(source, x, y, absWidth, absHeight);
+ renderer.context.restore();
+ return;
+ }
+
+ const currentResult =
+ enabledEffects.length > 0
+ ? this.applyEffects({
+ source,
+ effects: enabledEffects,
+ width: absWidth,
+ height: absHeight,
+ animationLocalTime,
+ })
+ : source;
- if (enabledEffects.length === 0) {
- renderer.context.drawImage(source, x, y, scaledWidth, scaledHeight);
+ if (activeMasks.length === 0) {
+ renderer.context.drawImage(currentResult, x, y, absWidth, absHeight);
renderer.context.restore();
return;
}
const elementCanvas = createOffscreenCanvas({
- width: Math.round(scaledWidth),
- height: Math.round(scaledHeight),
+ width: Math.round(absWidth),
+ height: Math.round(absHeight),
});
const elementCtx = elementCanvas.getContext("2d") as
| CanvasRenderingContext2D
| OffscreenCanvasRenderingContext2D
| null;
if (!elementCtx) {
- renderer.context.drawImage(source, x, y, scaledWidth, scaledHeight);
+ renderer.context.drawImage(currentResult, x, y, absWidth, absHeight);
renderer.context.restore();
return;
}
- elementCtx.drawImage(source, 0, 0, scaledWidth, scaledHeight);
+ elementCtx.drawImage(currentResult, 0, 0, absWidth, absHeight);
- let currentResult: CanvasImageSource = elementCanvas;
+ for (const mask of activeMasks) {
+ this.applyMask({
+ mask,
+ elementCtx,
+ scaledWidth: absWidth,
+ scaledHeight: absHeight,
+ });
+ }
+
+ renderer.context.drawImage(elementCanvas, x, y, absWidth, absHeight);
+ renderer.context.restore();
+ }
- for (const effect of enabledEffects) {
+ private applyEffects({
+ source,
+ effects,
+ width,
+ height,
+ animationLocalTime,
+ }: {
+ source: CanvasImageSource;
+ effects: Effect[];
+ width: number;
+ height: number;
+ animationLocalTime: number;
+ }): CanvasImageSource {
+ let current: CanvasImageSource = source;
+ for (const effect of effects) {
const resolvedParams = resolveEffectParamsAtTime({
effect,
animations: this.params.animations,
localTime: animationLocalTime,
});
- const definition = getEffect({ effectType: effect.type });
- const passes = definition.renderer.passes.map((pass) => ({
- fragmentShader: pass.fragmentShader,
- uniforms: pass.uniforms({
- effectParams: resolvedParams,
- width: scaledWidth,
- height: scaledHeight,
- }),
- }));
- currentResult = webglEffectRenderer.applyEffect({
- source: currentResult,
+ const definition = effectsRegistry.get(effect.type);
+ const passes = resolveEffectPasses({
+ definition,
+ effectParams: resolvedParams,
+ width,
+ height,
+ });
+ current = webglEffectRenderer.applyEffect({
+ source: current,
+ width: Math.round(width),
+ height: Math.round(height),
+ passes,
+ });
+ }
+ return current;
+ }
+
+ private applyMask({
+ mask,
+ elementCtx,
+ scaledWidth,
+ scaledHeight,
+ }: {
+ mask: Mask;
+ elementCtx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
+ scaledWidth: number;
+ scaledHeight: number;
+ }): void {
+ const definition = masksRegistry.get(mask.type);
+ const { feather, inverted } = mask.params;
+
+ const maskCanvas = createOffscreenCanvas({
+ width: Math.round(scaledWidth),
+ height: Math.round(scaledHeight),
+ });
+ const maskCtx = maskCanvas.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (!maskCtx) return;
+
+ maskCtx.clearRect(0, 0, scaledWidth, scaledHeight);
+
+ let maskResult: CanvasImageSource = maskCanvas;
+ let path: Path2D | null = null;
+
+ if (feather > 0 && definition.renderer.renderMask) {
+ // Bypasses JFA — avoids the two-sided distance artifact where strips
+ // near the canvas edge appear semi-transparent.
+ definition.renderer.renderMask({
+ resolvedParams: mask.params,
+ ctx: maskCtx,
width: Math.round(scaledWidth),
height: Math.round(scaledHeight),
- passes,
+ feather,
+ });
+ } else {
+ path = definition.renderer.buildPath({
+ resolvedParams: mask.params,
+ width: scaledWidth,
+ height: scaledHeight,
});
+ maskCtx.fillStyle = "white";
+ maskCtx.fill(path);
+
+ if (feather > 0) {
+ maskResult = applyMaskFeather({
+ maskCanvas,
+ width: Math.round(scaledWidth),
+ height: Math.round(scaledHeight),
+ feather,
+ });
+ }
}
- renderer.context.drawImage(
- currentResult,
- x,
- y,
- scaledWidth,
- scaledHeight,
- );
- renderer.context.restore();
+ elementCtx.globalCompositeOperation = inverted
+ ? "destination-out"
+ : "destination-in";
+ elementCtx.drawImage(maskResult, 0, 0, scaledWidth, scaledHeight);
+ elementCtx.globalCompositeOperation = "source-over";
+
+ const strokePath =
+ definition.renderer.buildStrokePath?.({
+ resolvedParams: mask.params,
+ width: scaledWidth,
+ height: scaledHeight,
+ }) ?? path;
+
+ if (mask.params.strokeWidth > 0 && strokePath) {
+ elementCtx.strokeStyle = mask.params.strokeColor;
+ elementCtx.lineWidth = mask.params.strokeWidth;
+ elementCtx.stroke(strokePath);
+ }
}
}
diff --git a/apps/web/src/services/renderer/scene-builder.ts b/apps/web/src/services/renderer/scene-builder.ts
index 695e077f..7d5f9fe9 100644
--- a/apps/web/src/services/renderer/scene-builder.ts
+++ b/apps/web/src/services/renderer/scene-builder.ts
@@ -1,26 +1,22 @@
-import type { TimelineTrack } from "@/types/timeline";
-import type { MediaAsset } from "@/types/assets";
+import type { TimelineTrack } from "@/lib/timeline";
+import type { MediaAsset } from "@/lib/media/types";
import { RootNode } from "./nodes/root-node";
import { VideoNode } from "./nodes/video-node";
import { ImageNode } from "./nodes/image-node";
import { TextNode } from "./nodes/text-node";
import { StickerNode } from "./nodes/sticker-node";
+import { GraphicNode } from "./nodes/graphic-node";
import { ColorNode } from "./nodes/color-node";
-import { CompositeEffectNode } from "./nodes/composite-effect-node";
+import { BlurBackgroundNode } from "./nodes/blur-background-node";
import { EffectLayerNode } from "./nodes/effect-layer-node";
import type { BaseNode } from "./nodes/base-node";
-import type { TBackground, TCanvasSize } from "@/types/project";
+import type { TBackground, TCanvasSize } from "@/lib/project/types";
import { DEFAULT_BLUR_INTENSITY } from "@/constants/project-constants";
import { isMainTrack } from "@/lib/timeline";
const PREVIEW_MAX_IMAGE_SIZE = 2048;
-const BLUR_BACKGROUND_ZOOM_SCALE = 1.4;
-function getVisibleSortedElements({
- track,
-}: {
- track: TimelineTrack;
-}) {
+function getVisibleSortedElements({ track }: { track: TimelineTrack }) {
return track.elements
.filter((element) => !("hidden" in element && element.hidden))
.slice()
@@ -65,7 +61,7 @@ function buildTrackNodes({
continue;
}
- if (mediaAsset.type === "video") {
+ if (element.type === "video" && mediaAsset.type === "video") {
nodes.push(
new VideoNode({
mediaId: mediaAsset.id,
@@ -75,15 +71,17 @@ function buildTrackNodes({
timeOffset: element.startTime,
trimStart: element.trimStart,
trimEnd: element.trimEnd,
+ retime: element.retime,
transform: element.transform,
animations: element.animations,
opacity: element.opacity,
blendMode: element.blendMode,
effects: element.effects,
+ masks: element.masks,
}),
);
}
- if (mediaAsset.type === "image") {
+ if (element.type === "image" && mediaAsset.type === "image") {
nodes.push(
new ImageNode({
url: mediaAsset.url,
@@ -96,6 +94,7 @@ function buildTrackNodes({
opacity: element.opacity,
blendMode: element.blendMode,
effects: element.effects,
+ masks: element.masks,
...(isPreview && {
maxSourceSize: PREVIEW_MAX_IMAGE_SIZE,
}),
@@ -120,6 +119,8 @@ function buildTrackNodes({
nodes.push(
new StickerNode({
stickerId: element.stickerId,
+ intrinsicWidth: element.intrinsicWidth,
+ intrinsicHeight: element.intrinsicHeight,
duration: element.duration,
timeOffset: element.startTime,
trimStart: element.trimStart,
@@ -132,12 +133,80 @@ function buildTrackNodes({
}),
);
}
+
+ if (element.type === "graphic") {
+ nodes.push(
+ new GraphicNode({
+ definitionId: element.definitionId,
+ params: element.params,
+ duration: element.duration,
+ timeOffset: element.startTime,
+ trimStart: element.trimStart,
+ trimEnd: element.trimEnd,
+ transform: element.transform,
+ animations: element.animations,
+ opacity: element.opacity,
+ blendMode: element.blendMode,
+ effects: element.effects,
+ masks: element.masks,
+ }),
+ );
+ }
}
}
return nodes;
}
+function buildBlurBackgroundNodes({
+ track,
+ mediaMap,
+ blurIntensity,
+}: {
+ track: TimelineTrack | undefined;
+ mediaMap: Map<string, MediaAsset>;
+ blurIntensity: number;
+}): BaseNode[] {
+ if (!track) {
+ return [];
+ }
+
+ const nodes: BaseNode[] = [];
+ const elements = getVisibleSortedElements({ track });
+
+ for (const element of elements) {
+ if (element.type !== "video" && element.type !== "image") {
+ continue;
+ }
+
+ const mediaAsset = mediaMap.get(element.mediaId);
+ if (
+ !mediaAsset?.file ||
+ !mediaAsset?.url ||
+ (mediaAsset.type !== "video" && mediaAsset.type !== "image")
+ ) {
+ continue;
+ }
+
+ nodes.push(
+ new BlurBackgroundNode({
+ mediaId: mediaAsset.id,
+ url: mediaAsset.url,
+ file: mediaAsset.file,
+ mediaType: mediaAsset.type,
+ duration: element.duration,
+ timeOffset: element.startTime,
+ trimStart: element.trimStart,
+ trimEnd: element.trimEnd,
+ retime: element.type === "video" ? element.retime : undefined,
+ blurIntensity,
+ }),
+ );
+ }
+
+ return nodes;
+}
+
export type BuildSceneParams = {
canvasSize: TCanvasSize;
tracks: TimelineTrack[];
@@ -168,6 +237,9 @@ export function buildScene({
];
const orderedTracksBottomToTop = orderedTracksTopToBottom.slice().reverse();
+ const mainTrack = orderedTracksBottomToTop.find((track) =>
+ isMainTrack(track),
+ );
const allNodes = buildTrackNodes({
tracks: orderedTracksBottomToTop,
@@ -177,20 +249,18 @@ export function buildScene({
});
if (background.type === "blur") {
- rootNode.add(
- new CompositeEffectNode({
- contentNodes: allNodes.filter(
- (node) => !(node instanceof EffectLayerNode),
- ),
- effectType: "blur",
- effectParams: {
- intensity:
- background.blurIntensity ?? DEFAULT_BLUR_INTENSITY,
- },
- scale: BLUR_BACKGROUND_ZOOM_SCALE,
- }),
- );
- } else if (background.type === "color" && background.color !== "transparent") {
+ const blurNodes = buildBlurBackgroundNodes({
+ track: mainTrack,
+ mediaMap,
+ blurIntensity: background.blurIntensity ?? DEFAULT_BLUR_INTENSITY,
+ });
+ for (const node of blurNodes) {
+ rootNode.add(node);
+ }
+ } else if (
+ background.type === "color" &&
+ background.color !== "transparent"
+ ) {
rootNode.add(new ColorNode({ color: background.color }));
}
diff --git a/apps/web/src/services/renderer/scene-exporter.ts b/apps/web/src/services/renderer/scene-exporter.ts
index c5bad94f..6ab8c6f3 100644
--- a/apps/web/src/services/renderer/scene-exporter.ts
+++ b/apps/web/src/services/renderer/scene-exporter.ts
@@ -13,7 +13,7 @@ import {
QUALITY_VERY_HIGH,
} from "mediabunny";
import type { RootNode } from "./nodes/root-node";
-import type { ExportFormat, ExportQuality } from "@/types/export";
+import type { ExportFormat, ExportQuality } from "@/lib/export";
import { CanvasRenderer } from "./canvas-renderer";
type ExportParams = {
diff --git a/apps/web/src/services/renderer/webgl-effect-renderer.ts b/apps/web/src/services/renderer/webgl-effect-renderer.ts
deleted file mode 100644
index ad5cd40e..00000000
--- a/apps/web/src/services/renderer/webgl-effect-renderer.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { createOffscreenCanvas } from "./canvas-utils";
-import { applyMultiPassEffect } from "./webgl-utils";
-import type { EffectPassData } from "./webgl-utils";
-
-export interface ApplyEffectParams {
- source: CanvasImageSource;
- width: number;
- height: number;
- passes: EffectPassData[];
-}
-
-let gl: WebGLRenderingContext | null = null;
-let canvas: OffscreenCanvas | HTMLCanvasElement | null = null;
-const programCache = new Map<string, WebGLProgram>();
-
-function getOrCreateCanvas({
- width,
- height,
-}: {
- width: number;
- height: number;
-}): OffscreenCanvas | HTMLCanvasElement {
- if (!canvas) {
- canvas = createOffscreenCanvas({ width, height });
- gl = canvas.getContext("webgl", {
- premultipliedAlpha: false,
- }) as WebGLRenderingContext | null;
- if (!gl) {
- throw new Error("WebGL not supported");
- }
- }
- if (canvas.width !== width || canvas.height !== height) {
- canvas.width = width;
- canvas.height = height;
- }
- return canvas;
-}
-
-function applyEffect({
- source,
- width,
- height,
- passes,
-}: ApplyEffectParams): OffscreenCanvas | HTMLCanvasElement {
- const targetCanvas = getOrCreateCanvas({ width, height });
- const context = gl;
- if (!context) {
- throw new Error("WebGL context not initialized");
- }
-
- applyMultiPassEffect({
- context,
- source,
- width,
- height,
- passes,
- programCache,
- });
-
- const outputCanvas = createOffscreenCanvas({ width, height });
- const outputCtx = outputCanvas.getContext("2d") as
- | CanvasRenderingContext2D
- | OffscreenCanvasRenderingContext2D
- | null;
- if (outputCtx) {
- outputCtx.drawImage(targetCanvas, 0, 0, width, height);
- }
- return outputCanvas;
-}
-
-export const webglEffectRenderer = {
- applyEffect,
-};
diff --git a/apps/web/src/services/renderer/webgl/jfa.ts b/apps/web/src/services/renderer/webgl/jfa.ts
new file mode 100644
index 00000000..b69a9d06
--- /dev/null
+++ b/apps/web/src/services/renderer/webgl/jfa.ts
@@ -0,0 +1,194 @@
+import jfaInitShader from "@/lib/shaders/jfa-init.frag.glsl";
+import jfaStepShader from "@/lib/shaders/jfa-step.frag.glsl";
+import {
+ compileProgram,
+ createFramebufferTexture,
+ setUniforms,
+ drawFullscreenQuad,
+} from "./webgl-utils";
+
+interface FBPair {
+ texture: WebGLTexture;
+ framebuffer: WebGLFramebuffer;
+}
+
+function runPass({
+ context,
+ program,
+ inputTexture,
+ target,
+ width,
+ height,
+ uniforms,
+ extraBindings,
+}: {
+ context: WebGLRenderingContext;
+ program: WebGLProgram;
+ inputTexture: WebGLTexture;
+ target: WebGLFramebuffer | null;
+ width: number;
+ height: number;
+ uniforms: Record<string, number | number[]>;
+ extraBindings?: Array<{ unit: number; texture: WebGLTexture; name: string }>;
+}): void {
+ context.bindFramebuffer(context.FRAMEBUFFER, target);
+ // biome-ignore lint/correctness/useHookAtTopLevel: WebGL API method, not a React hook
+ context.useProgram(program);
+
+ context.activeTexture(context.TEXTURE0);
+ context.bindTexture(context.TEXTURE_2D, inputTexture);
+ const uTexLoc = context.getUniformLocation(program, "u_texture");
+ if (uTexLoc) context.uniform1i(uTexLoc, 0);
+
+ if (extraBindings) {
+ for (const binding of extraBindings) {
+ context.activeTexture(context.TEXTURE0 + binding.unit);
+ context.bindTexture(context.TEXTURE_2D, binding.texture);
+ const loc = context.getUniformLocation(program, binding.name);
+ if (loc) context.uniform1i(loc, binding.unit);
+ }
+ }
+
+ setUniforms({
+ context,
+ program,
+ uniforms: { ...uniforms, u_resolution: [width, height] },
+ });
+ drawFullscreenQuad({ context, program, width, height });
+}
+
+function runJFA({
+ context,
+ programCache,
+ sourceTexture,
+ width,
+ height,
+ isInverted,
+}: {
+ context: WebGLRenderingContext;
+ programCache: Map<string, WebGLProgram>;
+ sourceTexture: WebGLTexture;
+ width: number;
+ height: number;
+ isInverted: boolean;
+}): {
+ resultTexture: WebGLTexture;
+ resultFB: WebGLFramebuffer;
+ tempFBs: FBPair[];
+} {
+ const numSteps = Math.ceil(Math.log2(Math.max(width, height)));
+
+ const fbA = createFramebufferTexture({ context, width, height });
+ const fbB = createFramebufferTexture({ context, width, height });
+
+ const initProgram = compileProgram({
+ context,
+ fragmentShaderSource: jfaInitShader,
+ programCache,
+ });
+ runPass({
+ context,
+ program: initProgram,
+ inputTexture: sourceTexture,
+ target: fbA.framebuffer,
+ width,
+ height,
+ uniforms: { u_invert: isInverted ? 1.0 : 0.0 },
+ });
+
+ const stepProgram = compileProgram({
+ context,
+ fragmentShaderSource: jfaStepShader,
+ programCache,
+ });
+
+ let readFB = fbA;
+ let writeFB = fbB;
+
+ for (let i = numSteps - 1; i >= 0; i--) {
+ const stepSize = 2 ** i;
+ runPass({
+ context,
+ program: stepProgram,
+ inputTexture: readFB.texture,
+ target: writeFB.framebuffer,
+ width,
+ height,
+ uniforms: { u_step_size: stepSize },
+ });
+ const tmp = readFB;
+ readFB = writeFB;
+ writeFB = tmp;
+ }
+
+ return {
+ resultTexture: readFB.texture,
+ resultFB: readFB.framebuffer,
+ tempFBs: [writeFB],
+ };
+}
+
+function cleanupJFAResult({
+ context,
+ result,
+}: {
+ context: WebGLRenderingContext;
+ result: {
+ resultTexture: WebGLTexture;
+ resultFB: WebGLFramebuffer;
+ tempFBs: FBPair[];
+ };
+}): void {
+ context.deleteTexture(result.resultTexture);
+ context.deleteFramebuffer(result.resultFB);
+ for (const fb of result.tempFBs) {
+ context.deleteTexture(fb.texture);
+ context.deleteFramebuffer(fb.framebuffer);
+ }
+}
+
+export { runPass };
+
+export function computeSignedDistanceField({
+ context,
+ programCache,
+ sourceTexture,
+ width,
+ height,
+}: {
+ context: WebGLRenderingContext;
+ programCache: Map<string, WebGLProgram>;
+ sourceTexture: WebGLTexture;
+ width: number;
+ height: number;
+}): {
+ insideTexture: WebGLTexture;
+ outsideTexture: WebGLTexture;
+ cleanup: () => void;
+} {
+ const inside = runJFA({
+ context,
+ programCache,
+ sourceTexture,
+ width,
+ height,
+ isInverted: false,
+ });
+ const outside = runJFA({
+ context,
+ programCache,
+ sourceTexture,
+ width,
+ height,
+ isInverted: true,
+ });
+
+ return {
+ insideTexture: inside.resultTexture,
+ outsideTexture: outside.resultTexture,
+ cleanup: () => {
+ cleanupJFAResult({ context, result: inside });
+ cleanupJFAResult({ context, result: outside });
+ },
+ };
+}
diff --git a/apps/web/src/services/renderer/webgl/webgl-context.ts b/apps/web/src/services/renderer/webgl/webgl-context.ts
new file mode 100644
index 00000000..aeefc503
--- /dev/null
+++ b/apps/web/src/services/renderer/webgl/webgl-context.ts
@@ -0,0 +1,49 @@
+import { createOffscreenCanvas } from "../canvas-utils";
+
+let gl: WebGLRenderingContext | null = null;
+let webglCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
+const programCache = new Map<string, WebGLProgram>();
+
+export function getWebGLContext({
+ width,
+ height,
+}: {
+ width: number;
+ height: number;
+}): {
+ context: WebGLRenderingContext;
+ programCache: Map<string, WebGLProgram>;
+} {
+ if (!webglCanvas) {
+ webglCanvas = createOffscreenCanvas({ width, height });
+ gl = webglCanvas.getContext("webgl", {
+ premultipliedAlpha: false,
+ }) as WebGLRenderingContext | null;
+ if (!gl) throw new Error("WebGL not supported");
+ }
+ if (webglCanvas.width !== width || webglCanvas.height !== height) {
+ webglCanvas.width = width;
+ webglCanvas.height = height;
+ }
+ if (!gl) throw new Error("WebGL context lost");
+ return { context: gl, programCache };
+}
+
+export function readResult({
+ width,
+ height,
+}: {
+ width: number;
+ height: number;
+}): OffscreenCanvas | HTMLCanvasElement {
+ if (!webglCanvas) throw new Error("WebGL canvas not initialized");
+ const outputCanvas = createOffscreenCanvas({ width, height });
+ const outputCtx = outputCanvas.getContext("2d") as
+ | CanvasRenderingContext2D
+ | OffscreenCanvasRenderingContext2D
+ | null;
+ if (outputCtx) {
+ outputCtx.drawImage(webglCanvas, 0, 0, width, height);
+ }
+ return outputCanvas;
+}
diff --git a/apps/web/src/services/renderer/webgl/webgl-effect-renderer.ts b/apps/web/src/services/renderer/webgl/webgl-effect-renderer.ts
new file mode 100644
index 00000000..89dcb2ae
--- /dev/null
+++ b/apps/web/src/services/renderer/webgl/webgl-effect-renderer.ts
@@ -0,0 +1,35 @@
+import { getWebGLContext, readResult } from "./webgl-context";
+import { applyMultiPassEffect } from "./webgl-utils";
+import type { EffectPassData } from "./webgl-utils";
+
+export interface ApplyEffectParams {
+ source: CanvasImageSource;
+ width: number;
+ height: number;
+ passes: EffectPassData[];
+}
+
+function applyEffect({
+ source,
+ width,
+ height,
+ passes,
+}: ApplyEffectParams): CanvasImageSource {
+ if (passes.length === 0) {
+ return source;
+ }
+ const { context, programCache } = getWebGLContext({ width, height });
+ applyMultiPassEffect({
+ context,
+ source,
+ width,
+ height,
+ passes,
+ programCache,
+ });
+ return readResult({ width, height });
+}
+
+export const webglEffectRenderer = {
+ applyEffect,
+};
diff --git a/apps/web/src/services/renderer/webgl-utils.ts b/apps/web/src/services/renderer/webgl/webgl-utils.ts
index 834c652e..834c652e 100644
--- a/apps/web/src/services/renderer/webgl-utils.ts
+++ b/apps/web/src/services/renderer/webgl/webgl-utils.ts
diff --git a/apps/web/src/services/storage/migrations/__tests__/v15-to-v16.test.ts b/apps/web/src/services/storage/migrations/__tests__/v15-to-v16.test.ts
new file mode 100644
index 00000000..f2a4908f
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/__tests__/v15-to-v16.test.ts
@@ -0,0 +1,93 @@
+import { describe, expect, test } from "bun:test";
+import { transformProjectV15ToV16 } from "../transformers/v15-to-v16";
+
+describe("V15 to V16 Migration", () => {
+ test("renames sticker tracks to graphic tracks", () => {
+ const result = transformProjectV15ToV16({
+ project: {
+ id: "project-v15",
+ version: 15,
+ metadata: {
+ id: "project-v15",
+ name: "Project",
+ createdAt: "2024-01-01T00:00:00.000Z",
+ updatedAt: "2024-01-01T00:00:00.000Z",
+ },
+ settings: {
+ fps: 30,
+ canvasSize: { width: 1920, height: 1080 },
+ background: { type: "color", color: "#000000" },
+ },
+ currentSceneId: "scene-main",
+ scenes: [
+ {
+ id: "scene-main",
+ name: "Main scene",
+ isMain: true,
+ tracks: [
+ {
+ id: "track-graphic",
+ type: "sticker",
+ name: "Sticker Track",
+ hidden: false,
+ elements: [
+ {
+ id: "sticker-1",
+ type: "sticker",
+ name: "Logo",
+ stickerId: "icons:mdi:home",
+ duration: 5,
+ startTime: 0,
+ trimStart: 0,
+ trimEnd: 0,
+ transform: {
+ scaleX: 1,
+ scaleY: 1,
+ position: { x: 0, y: 0 },
+ rotate: 0,
+ },
+ opacity: 1,
+ },
+ ],
+ },
+ ],
+ bookmarks: [],
+ createdAt: "2024-01-01T00:00:00.000Z",
+ updatedAt: "2024-01-01T00:00:00.000Z",
+ },
+ ],
+ },
+ });
+
+ expect(result.skipped).toBe(false);
+ expect(result.project.version).toBe(16);
+ expect(
+ (result.project.scenes as Array<{ tracks: Array<{ type: string }> }>)[0]
+ .tracks[0].type,
+ ).toBe("graphic");
+ });
+
+ test("skips projects already on v16", () => {
+ const result = transformProjectV15ToV16({
+ project: {
+ id: "project-v16",
+ version: 16,
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("already v16");
+ });
+
+ test("skips projects with no id", () => {
+ const result = transformProjectV15ToV16({
+ project: {
+ version: 15,
+ scenes: [],
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("no project id");
+ });
+});
diff --git a/apps/web/src/services/storage/migrations/__tests__/v16-to-v17.test.ts b/apps/web/src/services/storage/migrations/__tests__/v16-to-v17.test.ts
new file mode 100644
index 00000000..e246943e
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/__tests__/v16-to-v17.test.ts
@@ -0,0 +1,132 @@
+import { describe, expect, test } from "bun:test";
+import { transformProjectV16ToV17 } from "../transformers/v16-to-v17";
+
+describe("V16 to V17 Migration", () => {
+ test("adds center stroke alignment to masks that do not have it", () => {
+ const result = transformProjectV16ToV17({
+ project: {
+ id: "project-v16",
+ version: 16,
+ metadata: {
+ id: "project-v16",
+ name: "Project",
+ createdAt: "2024-01-01T00:00:00.000Z",
+ updatedAt: "2024-01-01T00:00:00.000Z",
+ },
+ settings: {
+ fps: 30,
+ canvasSize: { width: 1920, height: 1080 },
+ background: { type: "color", color: "#000000" },
+ },
+ currentSceneId: "scene-main",
+ scenes: [
+ {
+ id: "scene-main",
+ name: "Main scene",
+ isMain: true,
+ tracks: [
+ {
+ id: "track-video",
+ type: "video",
+ name: "Video Track",
+ hidden: false,
+ elements: [
+ {
+ id: "video-1",
+ type: "video",
+ name: "Clip",
+ mediaId: "media-1",
+ duration: 5,
+ startTime: 0,
+ trimStart: 0,
+ trimEnd: 0,
+ transform: {
+ scaleX: 1,
+ scaleY: 1,
+ position: { x: 0, y: 0 },
+ rotate: 0,
+ },
+ opacity: 1,
+ masks: [
+ {
+ id: "mask-1",
+ type: "rectangle",
+ params: {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 8,
+ centerX: 0,
+ centerY: 0,
+ width: 0.6,
+ height: 0.6,
+ rotation: 0,
+ scale: 1,
+ },
+ },
+ {
+ id: "mask-2",
+ type: "ellipse",
+ params: {
+ feather: 0,
+ inverted: false,
+ strokeColor: "#ffffff",
+ strokeWidth: 8,
+ strokeAlign: "outside",
+ centerX: 0,
+ centerY: 0,
+ width: 0.6,
+ height: 0.6,
+ rotation: 0,
+ scale: 1,
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ bookmarks: [],
+ createdAt: "2024-01-01T00:00:00.000Z",
+ updatedAt: "2024-01-01T00:00:00.000Z",
+ },
+ ],
+ },
+ });
+
+ expect(result.skipped).toBe(false);
+ expect(result.project.version).toBe(17);
+
+ const migratedMasks = (
+ ((result.project.scenes as Array<{ tracks: Array<{ elements: Array<{ masks: Array<{ params: Record<string, unknown> }> }> }> }>)[0]
+ .tracks[0].elements[0].masks)
+ );
+
+ expect(migratedMasks[0].params.strokeAlign).toBe("center");
+ expect(migratedMasks[1].params.strokeAlign).toBe("outside");
+ });
+
+ test("skips projects already on v17", () => {
+ const result = transformProjectV16ToV17({
+ project: {
+ id: "project-v17",
+ version: 17,
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("already v17");
+ });
+
+ test("skips projects with no id", () => {
+ const result = transformProjectV16ToV17({
+ project: {
+ version: 16,
+ scenes: [],
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("no project id");
+ });
+});
diff --git a/apps/web/src/services/storage/migrations/__tests__/v18-to-v19.test.ts b/apps/web/src/services/storage/migrations/__tests__/v18-to-v19.test.ts
new file mode 100644
index 00000000..7524a8d4
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/__tests__/v18-to-v19.test.ts
@@ -0,0 +1,63 @@
+import { describe, expect, test } from "bun:test";
+import { transformProjectV18ToV19 } from "../transformers/v18-to-v19";
+
+describe("V18 to V19 Migration", () => {
+ test("adds canvas size mode and empty remembered custom size defaults", () => {
+ const result = transformProjectV18ToV19({
+ project: {
+ id: "project-v18-defaults",
+ version: 18,
+ metadata: {
+ id: "project-v18-defaults",
+ name: "Project",
+ createdAt: "2024-01-01T00:00:00.000Z",
+ updatedAt: "2024-01-01T00:00:00.000Z",
+ },
+ settings: {
+ fps: 30,
+ canvasSize: { width: 1920, height: 1080 },
+ originalCanvasSize: { width: 1920, height: 1080 },
+ background: { type: "color", color: "#000000" },
+ },
+ currentSceneId: "scene-main",
+ scenes: [],
+ },
+ });
+
+ expect(result.skipped).toBe(false);
+ expect(result.project.version).toBe(19);
+ expect(
+ (result.project.settings as Record<string, unknown>).canvasSizeMode,
+ ).toBe("preset");
+ expect(
+ (result.project.settings as Record<string, unknown>).lastCustomCanvasSize,
+ ).toBeNull();
+ expect(
+ (result.project.settings as Record<string, unknown>).originalCanvasSize,
+ ).toEqual({ width: 1920, height: 1080 });
+ });
+
+ test("skips projects already on v19", () => {
+ const result = transformProjectV18ToV19({
+ project: {
+ id: "project-v19",
+ version: 19,
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("already v19");
+ });
+
+ test("skips projects with no id", () => {
+ const result = transformProjectV18ToV19({
+ project: {
+ version: 18,
+ scenes: [],
+ },
+ });
+
+ expect(result.skipped).toBe(true);
+ expect(result.reason).toBe("no project id");
+ });
+});
diff --git a/apps/web/src/services/storage/migrations/index.ts b/apps/web/src/services/storage/migrations/index.ts
index bffacb66..1a855287 100644
--- a/apps/web/src/services/storage/migrations/index.ts
+++ b/apps/web/src/services/storage/migrations/index.ts
@@ -8,10 +8,20 @@ import { V5toV6Migration } from "./v5-to-v6";
import { V6toV7Migration } from "./v6-to-v7";
import { V7toV8Migration } from "./v7-to-v8";
import { V8toV9Migration } from "./v8-to-v9";
+import { V9toV10Migration } from "./v9-to-v10";
+import { V10toV11Migration } from "./v10-to-v11";
+import { V11toV12Migration } from "./v11-to-v12";
+import { V12toV13Migration } from "./v12-to-v13";
+import { V13toV14Migration } from "./v13-to-v14";
+import { V14toV15Migration } from "./v14-to-v15";
+import { V15toV16Migration } from "./v15-to-v16";
+import { V16toV17Migration } from "./v16-to-v17";
+import { V17toV18Migration } from "./v17-to-v18";
+import { V18toV19Migration } from "./v18-to-v19";
export { runStorageMigrations } from "./runner";
export type { MigrationProgress } from "./runner";
-export const CURRENT_PROJECT_VERSION = 9;
+export const CURRENT_PROJECT_VERSION = 19;
export const migrations = [
new V0toV1Migration(),
@@ -23,4 +33,14 @@ export const migrations = [
new V6toV7Migration(),
new V7toV8Migration(),
new V8toV9Migration(),
+ new V9toV10Migration(),
+ new V10toV11Migration(),
+ new V11toV12Migration(),
+ new V12toV13Migration(),
+ new V13toV14Migration(),
+ new V14toV15Migration(),
+ new V15toV16Migration(),
+ new V16toV17Migration(),
+ new V17toV18Migration(),
+ new V18toV19Migration(),
];
diff --git a/apps/web/src/services/storage/migrations/transformers/index.ts b/apps/web/src/services/storage/migrations/transformers/index.ts
index 8878d6ba..c1ae894f 100644
--- a/apps/web/src/services/storage/migrations/transformers/index.ts
+++ b/apps/web/src/services/storage/migrations/transformers/index.ts
@@ -3,4 +3,5 @@ export { transformProjectV1ToV2 } from "./v1-to-v2";
export { transformProjectV2ToV3 } from "./v2-to-v3";
export { transformProjectV3ToV4 } from "./v3-to-v4";
export { transformProjectV4ToV5 } from "./v4-to-v5";
+export { transformProjectV17ToV18 } from "./v17-to-v18";
export type { MigrationResult, ProjectRecord } from "./types";
diff --git a/apps/web/src/services/storage/migrations/transformers/v0-to-v1.ts b/apps/web/src/services/storage/migrations/transformers/v0-to-v1.ts
index a26feb3b..b1fcf00b 100644
--- a/apps/web/src/services/storage/migrations/transformers/v0-to-v1.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v0-to-v1.ts
@@ -1,8 +1,17 @@
import { generateUUID } from "@/utils/id";
-import type { SerializedScene } from "@/services/storage/types";
import type { MigrationResult, ProjectRecord } from "./types";
import { isRecord } from "./utils";
+interface V1Scene {
+ id: string;
+ name: string;
+ isMain: boolean;
+ tracks: unknown[];
+ bookmarks: unknown[];
+ createdAt: string;
+ updatedAt: string;
+}
+
export interface TransformV0ToV1Options {
now?: Date;
}
@@ -25,7 +34,7 @@ export function transformProjectV0ToV1({
const sceneCreatedAt = now.toISOString();
const sceneUpdatedAt = now.toISOString();
- const mainScene: SerializedScene = {
+ const mainScene: V1Scene = {
id: sceneId,
name: "Main scene",
isMain: true,
diff --git a/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts b/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts
index 297d1c58..52701cd5 100644
--- a/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts
@@ -6,14 +6,6 @@ import {
} from "@/constants/project-constants";
import { IndexedDBAdapter } from "@/services/storage/indexeddb-adapter";
import type { MediaAssetData } from "@/services/storage/types";
-import type {
- AudioElement,
- ImageElement,
- TextElement,
- TimelineTrack,
- Transform,
- VideoElement,
-} from "@/types/timeline";
import type { MigrationResult, ProjectRecord } from "./types";
import { getProjectId, isRecord } from "./utils";
@@ -50,6 +42,112 @@ interface LegacyMediaTrack {
[key: string]: unknown;
}
+interface V2Transform {
+ scale: number;
+ position: { x: number; y: number };
+ rotate: number;
+}
+
+interface V2VideoElement {
+ id: string;
+ name: string;
+ type: "video";
+ mediaId: string;
+ muted: boolean;
+ hidden: boolean;
+ transform: V2Transform;
+ opacity: number;
+ duration: number;
+ startTime: number;
+ trimStart: number;
+ trimEnd: number;
+}
+
+interface V2ImageElement {
+ id: string;
+ name: string;
+ type: "image";
+ mediaId: string;
+ duration: number;
+ startTime: number;
+ trimStart: number;
+ trimEnd: number;
+ hidden: boolean;
+ transform: V2Transform;
+ opacity: number;
+}
+
+interface V2TextElement {
+ id: string;
+ name: string;
+ type: "text";
+ content: string;
+ fontSize: number;
+ fontFamily: string;
+ color: string;
+ background: {
+ enabled: boolean;
+ color: string;
+ cornerRadius: number;
+ paddingX: number;
+ paddingY: number;
+ offsetX: number;
+ offsetY: number;
+ };
+ textAlign: "left" | "center" | "right";
+ fontWeight: "normal" | "bold";
+ fontStyle: "normal" | "italic";
+ textDecoration: "none" | "underline" | "line-through";
+ hidden: boolean;
+ transform: V2Transform;
+ opacity: number;
+ duration: number;
+ startTime: number;
+ trimStart: number;
+ trimEnd: number;
+}
+
+interface V2AudioElement {
+ id: string;
+ name: string;
+ type: "audio";
+ sourceType: "upload";
+ mediaId: string;
+ volume: number;
+ duration: number;
+ startTime: number;
+ trimStart: number;
+ trimEnd: number;
+}
+
+interface V2VideoTrack {
+ id: string;
+ name: string;
+ type: "video";
+ elements: (V2VideoElement | V2ImageElement)[];
+ isMain: boolean;
+ muted: boolean;
+ hidden: boolean;
+}
+
+interface V2TextTrack {
+ id: string;
+ name: string;
+ type: "text";
+ elements: V2TextElement[];
+ hidden: boolean;
+}
+
+interface V2AudioTrack {
+ id: string;
+ name: string;
+ type: "audio";
+ elements: V2AudioElement[];
+ muted: boolean;
+}
+
+type V2TimelineTrack = V2VideoTrack | V2TextTrack | V2AudioTrack;
+
export interface TransformV1ToV2Options {
loadMediaAsset?: ({
mediaId,
@@ -259,13 +357,13 @@ async function transformTracks({
}: {
mediaId: string;
}) => Promise<MediaAssetData | null>;
-}): Promise<TimelineTrack[]> {
+}): Promise<V2TimelineTrack[]> {
if (!Array.isArray(tracks)) {
return [];
}
let isFirstVideoTrackFound = false;
- const transformedTracks: (TimelineTrack | null)[] = [];
+ const transformedTracks: (V2TimelineTrack | null)[] = [];
for (const track of tracks) {
if (!isRecord(track)) {
@@ -299,7 +397,7 @@ async function transformTracks({
}
return transformedTracks.filter(
- (track): track is TimelineTrack => track !== null,
+ (track): track is V2TimelineTrack => track !== null,
);
}
@@ -315,7 +413,7 @@ async function transformMediaTrack({
mediaId: string;
}) => Promise<MediaAssetData | null>;
isMain: boolean;
-}): Promise<TimelineTrack> {
+}): Promise<V2VideoTrack> {
const elements = Array.isArray(track.elements) ? track.elements : [];
const transformedElements = await Promise.all(
@@ -338,7 +436,7 @@ async function transformMediaTrack({
}
}
- const defaultTransform: Transform = {
+ const defaultTransform: V2Transform = {
scale: 1,
position: { x: 0, y: 0 },
rotate: 0,
@@ -347,7 +445,7 @@ async function transformMediaTrack({
const muted = mediaElement.muted === true;
if (mediaType === "image") {
- const imageElement: ImageElement = {
+ const imageElement: V2ImageElement = {
id: getStringValue({ value: element.id, fallback: "" }),
name: getStringValue({ value: element.name, fallback: "" }),
type: "image",
@@ -369,7 +467,7 @@ async function transformMediaTrack({
return imageElement;
}
- const videoElement: VideoElement = {
+ const videoElement: V2VideoElement = {
id: getStringValue({ value: element.id, fallback: "" }),
name: getStringValue({ value: element.name, fallback: "" }),
type: "video",
@@ -388,7 +486,7 @@ async function transformMediaTrack({
);
const validElements = transformedElements.filter(
- (element): element is VideoElement | ImageElement => element !== null,
+ (element): element is V2VideoElement | V2ImageElement => element !== null,
);
return {
@@ -406,11 +504,11 @@ function transformTextTrack({
track,
}: {
track: Record<string, unknown>;
-}): TimelineTrack {
+}): V2TextTrack {
const elements = Array.isArray(track.elements) ? track.elements : [];
const transformedElements = elements
- .map((element): TextElement | null => {
+ .map((element): V2TextElement | null => {
if (!isRecord(element) || element.type !== "text") {
return null;
}
@@ -427,7 +525,7 @@ function transformTextTrack({
fallback: 1,
});
- const transform: Transform = {
+ const transform: V2Transform = {
scale: 1,
position: { x, y },
rotate: rotation,
@@ -487,7 +585,7 @@ function transformTextTrack({
trimEnd: getNumberValue({ value: element.trimEnd, fallback: 0 }),
};
})
- .filter((element): element is TextElement => element !== null);
+ .filter((element): element is V2TextElement => element !== null);
return {
id: getStringValue({ value: track.id, fallback: "" }),
@@ -502,11 +600,11 @@ function transformAudioTrack({
track,
}: {
track: Record<string, unknown>;
-}): TimelineTrack {
+}): V2AudioTrack {
const elements = Array.isArray(track.elements) ? track.elements : [];
const transformedElements = elements
- .map((element): AudioElement | null => {
+ .map((element): V2AudioElement | null => {
if (!isRecord(element) || element.type !== "audio") {
return null;
}
@@ -530,7 +628,7 @@ function transformAudioTrack({
trimEnd: getNumberValue({ value: element.trimEnd, fallback: 0 }),
};
})
- .filter((element): element is AudioElement => element !== null);
+ .filter((element): element is V2AudioElement => element !== null);
return {
id: getStringValue({ value: track.id, fallback: "" }),
diff --git a/apps/web/src/services/storage/migrations/transformers/v10-to-v11.ts b/apps/web/src/services/storage/migrations/transformers/v10-to-v11.ts
new file mode 100644
index 00000000..b48f5e88
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v10-to-v11.ts
@@ -0,0 +1,113 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV10ToV11({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 11) {
+ return { project, skipped: true, reason: "already v11" };
+ }
+
+ const migratedProject = migrateProjectScale({ project });
+
+ return {
+ project: { ...migratedProject, version: 11 },
+ skipped: false,
+ };
+}
+
+function migrateProjectScale({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) return project;
+
+ const migratedScenes = scenesValue.map((scene) =>
+ migrateSceneScale({ scene }),
+ );
+
+ return { ...project, scenes: migratedScenes };
+}
+
+function migrateSceneScale({ scene }: { scene: unknown }): unknown {
+ if (!isRecord(scene)) return scene;
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) return scene;
+
+ const migratedTracks = tracksValue.map((track) =>
+ migrateTrackScale({ track }),
+ );
+
+ return { ...scene, tracks: migratedTracks };
+}
+
+function migrateTrackScale({ track }: { track: unknown }): unknown {
+ if (!isRecord(track)) return track;
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) return track;
+
+ const migratedElements = elementsValue.map((element) =>
+ migrateElementScale({ element }),
+ );
+
+ return { ...track, elements: migratedElements };
+}
+
+function migrateElementScale({ element }: { element: unknown }): unknown {
+ if (!isRecord(element)) return element;
+
+ const transform = element.transform;
+ if (!isRecord(transform)) return element;
+
+ const scale = transform.scale;
+ if (typeof scale !== "number") return element;
+
+ const migratedTransform = {
+ ...transform,
+ scaleX: scale,
+ scaleY: scale,
+ };
+ delete (migratedTransform as Record<string, unknown>).scale;
+
+ let migratedElement: ProjectRecord = {
+ ...element,
+ transform: migratedTransform,
+ };
+
+ const animations = element.animations;
+ if (isRecord(animations) && isRecord(animations.channels)) {
+ const channels = animations.channels as Record<string, unknown>;
+ const scaleChannel = channels["transform.scale"];
+ if (scaleChannel && isRecord(scaleChannel)) {
+ const keyframes = (scaleChannel as { keyframes?: unknown[] }).keyframes;
+ if (Array.isArray(keyframes)) {
+ const newChannels = { ...channels };
+ delete newChannels["transform.scale"];
+ newChannels["transform.scaleX"] = {
+ ...scaleChannel,
+ keyframes: [...keyframes],
+ };
+ newChannels["transform.scaleY"] = {
+ ...scaleChannel,
+ keyframes: keyframes.map((kf) => (isRecord(kf) ? { ...kf } : kf)),
+ };
+ migratedElement = {
+ ...migratedElement,
+ animations: { ...animations, channels: newChannels },
+ };
+ }
+ }
+ }
+
+ return migratedElement;
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v11-to-v12.ts b/apps/web/src/services/storage/migrations/transformers/v11-to-v12.ts
new file mode 100644
index 00000000..fa1bd371
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v11-to-v12.ts
@@ -0,0 +1,196 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV11ToV12({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 12) {
+ return { project, skipped: true, reason: "already v12" };
+ }
+
+ const migratedProject = migrateProjectPosition({ project });
+
+ return {
+ project: { ...migratedProject, version: 12 },
+ skipped: false,
+ };
+}
+
+function migrateProjectPosition({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) return project;
+
+ const migratedScenes = scenesValue.map((scene) =>
+ migrateScenePosition({ scene }),
+ );
+
+ return { ...project, scenes: migratedScenes };
+}
+
+function migrateScenePosition({ scene }: { scene: unknown }): unknown {
+ if (!isRecord(scene)) return scene;
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) return scene;
+
+ const migratedTracks = tracksValue.map((track) =>
+ migrateTrackPosition({ track }),
+ );
+
+ return { ...scene, tracks: migratedTracks };
+}
+
+function migrateTrackPosition({ track }: { track: unknown }): unknown {
+ if (!isRecord(track)) return track;
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) return track;
+
+ const migratedElements = elementsValue.map((element) =>
+ migrateElementPosition({ element }),
+ );
+
+ return { ...track, elements: migratedElements };
+}
+
+function migrateElementPosition({ element }: { element: unknown }): unknown {
+ if (!isRecord(element)) return element;
+
+ const animations = element.animations;
+ if (!isRecord(animations) || !isRecord(animations.channels)) return element;
+
+ const channels = animations.channels as Record<string, unknown>;
+ const xChannel = channels["transform.position.x"];
+ const yChannel = channels["transform.position.y"];
+
+ if (!xChannel && !yChannel) return element;
+
+ const baseTransform = isRecord(element.transform) ? element.transform : {};
+ const basePosition = isRecord(baseTransform.position)
+ ? baseTransform.position
+ : {};
+ const baseX = typeof basePosition.x === "number" ? basePosition.x : 0;
+ const baseY = typeof basePosition.y === "number" ? basePosition.y : 0;
+
+ const xKeyframes = getKeyframes({ channel: xChannel });
+ const yKeyframes = getKeyframes({ channel: yChannel });
+
+ const allTimes = Array.from(
+ new Set([
+ ...xKeyframes.map((kf) => kf.time),
+ ...yKeyframes.map((kf) => kf.time),
+ ]),
+ ).sort((a, b) => a - b);
+
+ const vectorKeyframes = allTimes.map((time) => {
+ const xKf = xKeyframes.find((kf) => Math.abs(kf.time - time) < 0.001);
+ const yKf = yKeyframes.find((kf) => Math.abs(kf.time - time) < 0.001);
+ const x =
+ typeof xKf?.value === "number"
+ ? xKf.value
+ : interpolateScalarAtTime({
+ keyframes: xKeyframes,
+ time,
+ fallback: baseX,
+ });
+ const y =
+ typeof yKf?.value === "number"
+ ? yKf.value
+ : interpolateScalarAtTime({
+ keyframes: yKeyframes,
+ time,
+ fallback: baseY,
+ });
+ const interpolation = xKf?.interpolation ?? yKf?.interpolation ?? "linear";
+ return {
+ id: xKf?.id ?? yKf?.id ?? crypto.randomUUID(),
+ time,
+ value: { x, y },
+ interpolation,
+ };
+ });
+
+ const newChannels = { ...channels };
+ delete newChannels["transform.position.x"];
+ delete newChannels["transform.position.y"];
+ newChannels["transform.position"] = {
+ valueKind: "vector",
+ keyframes: vectorKeyframes,
+ };
+
+ return {
+ ...element,
+ animations: { ...animations, channels: newChannels },
+ };
+}
+
+interface ScalarKeyframe {
+ id: string;
+ time: number;
+ value: number;
+ interpolation: string;
+}
+
+function getKeyframes({ channel }: { channel: unknown }): ScalarKeyframe[] {
+ if (!isRecord(channel)) return [];
+ if (!Array.isArray(channel.keyframes)) return [];
+ return channel.keyframes.flatMap((kf) => {
+ if (!isRecord(kf)) return [];
+ if (
+ typeof kf.id !== "string" ||
+ typeof kf.time !== "number" ||
+ typeof kf.value !== "number"
+ )
+ return [];
+ return [
+ {
+ id: kf.id,
+ time: kf.time,
+ value: kf.value,
+ interpolation:
+ typeof kf.interpolation === "string" ? kf.interpolation : "linear",
+ },
+ ];
+ });
+}
+
+function interpolateScalarAtTime({
+ keyframes,
+ time,
+ fallback,
+}: {
+ keyframes: ScalarKeyframe[];
+ time: number;
+ fallback: number;
+}): number {
+ if (keyframes.length === 0) return fallback;
+
+ const sorted = [...keyframes].sort((a, b) => a.time - b.time);
+ const first = sorted[0];
+ const last = sorted[sorted.length - 1];
+
+ if (!first || !last) return fallback;
+ if (time <= first.time) return first.value;
+ if (time >= last.time) return last.value;
+
+ for (let i = 0; i < sorted.length - 1; i++) {
+ const left = sorted[i];
+ const right = sorted[i + 1];
+ if (time < left.time || time > right.time) continue;
+ if (left.interpolation === "hold") return left.value;
+ const t = (time - left.time) / (right.time - left.time);
+ return left.value + (right.value - left.value) * t;
+ }
+
+ return last.value;
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v12-to-v13.ts b/apps/web/src/services/storage/migrations/transformers/v12-to-v13.ts
new file mode 100644
index 00000000..59b29732
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v12-to-v13.ts
@@ -0,0 +1,102 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV12ToV13({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 13) {
+ return { project, skipped: true, reason: "already v13" };
+ }
+
+ const migratedProject = migrateProjectMasks({ project });
+
+ return {
+ project: { ...migratedProject, version: 13 },
+ skipped: false,
+ };
+}
+
+function migrateProjectMasks({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) return project;
+
+ const migratedScenes = scenesValue.map((scene) =>
+ migrateSceneMasks({ scene }),
+ );
+
+ return { ...project, scenes: migratedScenes };
+}
+
+function migrateSceneMasks({ scene }: { scene: unknown }): unknown {
+ if (!isRecord(scene)) return scene;
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) return scene;
+
+ const migratedTracks = tracksValue.map((track) =>
+ migrateTrackMasks({ track }),
+ );
+
+ return { ...scene, tracks: migratedTracks };
+}
+
+function migrateTrackMasks({ track }: { track: unknown }): unknown {
+ if (!isRecord(track)) return track;
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) return track;
+
+ const migratedElements = elementsValue.map((element) =>
+ migrateElementMasks({ element }),
+ );
+
+ return { ...track, elements: migratedElements };
+}
+
+function migrateElementMasks({ element }: { element: unknown }): unknown {
+ if (!isRecord(element)) return element;
+
+ const masksValue = element.masks;
+ if (!Array.isArray(masksValue)) return element;
+
+ const migratedMasks = masksValue.map((mask) => migrateMask({ mask }));
+
+ return { ...element, masks: migratedMasks };
+}
+
+function migrateMask({ mask }: { mask: unknown }): unknown {
+ if (!isRecord(mask)) return mask;
+
+ const params = isRecord(mask.params) ? { ...mask.params } : {};
+ const result = { ...mask };
+
+ result.params = {
+ ...params,
+ feather: typeof mask.feather === "number" ? mask.feather : 0,
+ inverted: typeof mask.inverted === "boolean" ? mask.inverted : false,
+ strokeColor:
+ isRecord(mask.stroke) && typeof mask.stroke.color === "string"
+ ? mask.stroke.color
+ : "#ffffff",
+ strokeWidth:
+ isRecord(mask.stroke) && typeof mask.stroke.width === "number"
+ ? mask.stroke.width
+ : 0,
+ };
+
+ delete (result as Record<string, unknown>).feather;
+ delete (result as Record<string, unknown>).inverted;
+ delete (result as Record<string, unknown>).stroke;
+
+ return result;
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v13-to-v14.ts b/apps/web/src/services/storage/migrations/transformers/v13-to-v14.ts
new file mode 100644
index 00000000..01a3cc3e
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v13-to-v14.ts
@@ -0,0 +1,106 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV13ToV14({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 14) {
+ return { project, skipped: true, reason: "already v14" };
+ }
+
+ const migratedProject = migrateProjectSplitMasks({ project });
+
+ return {
+ project: { ...migratedProject, version: 14 },
+ skipped: false,
+ };
+}
+
+function migrateProjectSplitMasks({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) return project;
+
+ const migratedScenes = scenesValue.map((scene) =>
+ migrateSceneSplitMasks({ scene }),
+ );
+
+ return { ...project, scenes: migratedScenes };
+}
+
+function migrateSceneSplitMasks({ scene }: { scene: unknown }): unknown {
+ if (!isRecord(scene)) return scene;
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) return scene;
+
+ const migratedTracks = tracksValue.map((track) =>
+ migrateTrackSplitMasks({ track }),
+ );
+
+ return { ...scene, tracks: migratedTracks };
+}
+
+function migrateTrackSplitMasks({ track }: { track: unknown }): unknown {
+ if (!isRecord(track)) return track;
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) return track;
+
+ const migratedElements = elementsValue.map((element) =>
+ migrateElementSplitMasks({ element }),
+ );
+
+ return { ...track, elements: migratedElements };
+}
+
+function migrateElementSplitMasks({ element }: { element: unknown }): unknown {
+ if (!isRecord(element)) return element;
+
+ const masksValue = element.masks;
+ if (!Array.isArray(masksValue)) return element;
+
+ const migratedMasks = masksValue.map((mask) => migrateSplitMask({ mask }));
+
+ return { ...element, masks: migratedMasks };
+}
+
+/**
+ * Converts split mask params from position-along-normal to explicit (x, y) anchor.
+ *
+ * Old: center = (cx + (position-0.5)*W*cos(rot), cy + (position-0.5)*W*sin(rot))
+ * New: center = (cx + x*W, cy + y*W)
+ *
+ * Conversion: x = (position-0.5)*cos(rot), y = (position-0.5)*sin(rot)
+ */
+function migrateSplitMask({ mask }: { mask: unknown }): unknown {
+ if (!isRecord(mask)) return mask;
+ if (mask.type !== "split") return mask;
+
+ const params = isRecord(mask.params) ? mask.params : {};
+ const position = typeof params.position === "number" ? params.position : 0.5;
+ const rotation = typeof params.rotation === "number" ? params.rotation : 0;
+
+ const angleRad = (rotation * Math.PI) / 180;
+ const x = (position - 0.5) * Math.cos(angleRad);
+ const y = (position - 0.5) * Math.sin(angleRad);
+
+ const { position: _removed, ...restParams } = params as Record<
+ string,
+ unknown
+ > & { position: unknown };
+
+ return {
+ ...mask,
+ params: { ...restParams, x, y },
+ };
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v14-to-v15.ts b/apps/web/src/services/storage/migrations/transformers/v14-to-v15.ts
new file mode 100644
index 00000000..beef05d4
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v14-to-v15.ts
@@ -0,0 +1,67 @@
+import { STICKER_INTRINSIC_SIZE_FALLBACK } from "@/constants/sticker-constants";
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV14ToV15({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 15) {
+ return { project, skipped: true, reason: "already v15" };
+ }
+
+ const migratedProject = backfillStickerIntrinsicDimensions({ project });
+
+ return {
+ project: { ...migratedProject, version: 15 },
+ skipped: false,
+ };
+}
+
+function backfillStickerIntrinsicDimensions({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) return project;
+
+ const migratedScenes = scenesValue.map((scene) => {
+ if (!isRecord(scene)) return scene;
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) return scene;
+
+ const migratedTracks = tracksValue.map((track) => {
+ if (!isRecord(track)) return track;
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) return track;
+
+ const migratedElements = elementsValue.map((element) => {
+ if (!isRecord(element)) return element;
+ if (element.type !== "sticker") return element;
+ if (
+ typeof element.intrinsicWidth === "number" &&
+ typeof element.intrinsicHeight === "number"
+ ) {
+ return element;
+ }
+ return {
+ ...element,
+ intrinsicWidth: STICKER_INTRINSIC_SIZE_FALLBACK,
+ intrinsicHeight: STICKER_INTRINSIC_SIZE_FALLBACK,
+ };
+ });
+
+ return { ...track, elements: migratedElements };
+ });
+
+ return { ...scene, tracks: migratedTracks };
+ });
+
+ return { ...project, scenes: migratedScenes };
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v15-to-v16.ts b/apps/web/src/services/storage/migrations/transformers/v15-to-v16.ts
new file mode 100644
index 00000000..15e2f3bb
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v15-to-v16.ts
@@ -0,0 +1,60 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV15ToV16({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 16) {
+ return { project, skipped: true, reason: "already v16" };
+ }
+
+ return {
+ project: {
+ ...renameStickerTracksToGraphic({ project }),
+ version: 16,
+ },
+ skipped: false,
+ };
+}
+
+function renameStickerTracksToGraphic({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) {
+ return project;
+ }
+
+ const migratedScenes = scenesValue.map((scene) => {
+ if (!isRecord(scene) || !Array.isArray(scene.tracks)) {
+ return scene;
+ }
+
+ return {
+ ...scene,
+ tracks: scene.tracks.map((track) => {
+ if (!isRecord(track) || track.type !== "sticker") {
+ return track;
+ }
+
+ return {
+ ...track,
+ type: "graphic",
+ };
+ }),
+ };
+ });
+
+ return {
+ ...project,
+ scenes: migratedScenes,
+ };
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v16-to-v17.ts b/apps/web/src/services/storage/migrations/transformers/v16-to-v17.ts
new file mode 100644
index 00000000..7fec70e9
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v16-to-v17.ts
@@ -0,0 +1,107 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV16ToV17({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 17) {
+ return { project, skipped: true, reason: "already v17" };
+ }
+
+ return {
+ project: {
+ ...backfillMaskStrokeAlign({ project }),
+ version: 17,
+ },
+ skipped: false,
+ };
+}
+
+function backfillMaskStrokeAlign({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) {
+ return project;
+ }
+
+ const migratedScenes = scenesValue.map((scene) => {
+ if (!isRecord(scene)) {
+ return scene;
+ }
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) {
+ return scene;
+ }
+
+ const migratedTracks = tracksValue.map((track) => {
+ if (!isRecord(track)) {
+ return track;
+ }
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) {
+ return track;
+ }
+
+ const migratedElements = elementsValue.map((element) => {
+ if (!isRecord(element)) {
+ return element;
+ }
+
+ const masksValue = element.masks;
+ if (!Array.isArray(masksValue)) {
+ return element;
+ }
+
+ const migratedMasks = masksValue.map((mask) => {
+ if (!isRecord(mask)) {
+ return mask;
+ }
+
+ const paramsValue = mask.params;
+ if (!isRecord(paramsValue) || typeof paramsValue.strokeAlign === "string") {
+ return mask;
+ }
+
+ return {
+ ...mask,
+ params: {
+ ...paramsValue,
+ strokeAlign: "center",
+ },
+ };
+ });
+
+ return {
+ ...element,
+ masks: migratedMasks,
+ };
+ });
+
+ return {
+ ...track,
+ elements: migratedElements,
+ };
+ });
+
+ return {
+ ...scene,
+ tracks: migratedTracks,
+ };
+ });
+
+ return {
+ ...project,
+ scenes: migratedScenes,
+ };
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v17-to-v18.ts b/apps/web/src/services/storage/migrations/transformers/v17-to-v18.ts
new file mode 100644
index 00000000..31a60121
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v17-to-v18.ts
@@ -0,0 +1,105 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { VOLUME_DB_MIN } from "@/lib/timeline/audio-constants";
+import { clampDb } from "@/lib/timeline/audio-state";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV17ToV18({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 18) {
+ return { project, skipped: true, reason: "already v18" };
+ }
+
+ return {
+ project: {
+ ...migrateElementVolumes({ project }),
+ version: 18,
+ },
+ skipped: false,
+ };
+}
+
+function migrateElementVolumes({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const scenesValue = project.scenes;
+ if (!Array.isArray(scenesValue)) {
+ return project;
+ }
+
+ const migratedScenes = scenesValue.map((scene) => {
+ if (!isRecord(scene)) {
+ return scene;
+ }
+
+ const tracksValue = scene.tracks;
+ if (!Array.isArray(tracksValue)) {
+ return scene;
+ }
+
+ const migratedTracks = tracksValue.map((track) => {
+ if (!isRecord(track)) {
+ return track;
+ }
+
+ const elementsValue = track.elements;
+ if (!Array.isArray(elementsValue)) {
+ return track;
+ }
+
+ const migratedElements = elementsValue.map((element) => {
+ if (!isRecord(element)) {
+ return element;
+ }
+
+ if (element.type !== "audio" && element.type !== "video") {
+ return element;
+ }
+
+ const legacyVolume = element.volume;
+ return {
+ ...element,
+ volume:
+ typeof legacyVolume === "number"
+ ? linearGainToDb(legacyVolume)
+ : 0,
+ };
+ });
+
+ return {
+ ...track,
+ elements: migratedElements,
+ };
+ });
+
+ return {
+ ...scene,
+ tracks: migratedTracks,
+ };
+ });
+
+ return {
+ ...project,
+ scenes: migratedScenes,
+ };
+}
+
+function linearGainToDb(gain: number): number {
+ if (!Number.isFinite(gain)) {
+ return 0;
+ }
+
+ if (gain <= 0) {
+ return VOLUME_DB_MIN;
+ }
+
+ return clampDb(20 * Math.log10(gain));
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v18-to-v19.ts b/apps/web/src/services/storage/migrations/transformers/v18-to-v19.ts
new file mode 100644
index 00000000..1946b829
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v18-to-v19.ts
@@ -0,0 +1,46 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId, isRecord } from "./utils";
+
+export function transformProjectV18ToV19({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 19) {
+ return { project, skipped: true, reason: "already v19" };
+ }
+
+ return {
+ project: {
+ ...migrateCanvasSizeSettings({ project }),
+ version: 19,
+ },
+ skipped: false,
+ };
+}
+
+function migrateCanvasSizeSettings({
+ project,
+}: {
+ project: ProjectRecord;
+}): ProjectRecord {
+ const settingsValue = project.settings;
+ if (!isRecord(settingsValue)) {
+ return project;
+ }
+
+ const migratedSettings: Record<string, unknown> = {
+ ...settingsValue,
+ canvasSizeMode: "preset",
+ lastCustomCanvasSize: null,
+ };
+
+ return {
+ ...project,
+ settings: migratedSettings,
+ };
+}
diff --git a/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts b/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
index 094b8bd8..0807d4fb 100644
--- a/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v2-to-v3.ts
@@ -1,5 +1,3 @@
-import { getProjectDurationFromScenes } from "@/lib/scenes";
-import type { TScene } from "@/types/timeline";
import type { MigrationResult, ProjectRecord } from "./types";
import { getProjectId, isRecord } from "./utils";
@@ -18,7 +16,7 @@ export function transformProjectV2ToV3({
}
const scenes = getScenes({ project });
- const duration = getProjectDurationFromScenes({ scenes });
+ const duration = getDurationFromScenes({ scenes });
const metadataValue = project.metadata;
const metadata = isRecord(metadataValue)
@@ -36,13 +34,42 @@ export function transformProjectV2ToV3({
export { getProjectId } from "./utils";
-function getScenes({ project }: { project: ProjectRecord }): TScene[] {
+function getScenes({ project }: { project: ProjectRecord }): unknown[] {
const scenesValue = project.scenes;
if (!Array.isArray(scenesValue)) {
return [];
}
- return scenesValue.filter(isRecord) as unknown as TScene[];
+ return scenesValue.filter(isRecord);
+}
+
+function getDurationFromScenes({ scenes }: { scenes: unknown[] }): number {
+ const mainScene =
+ scenes.find(
+ (s): s is Record<string, unknown> =>
+ isRecord(s) && s.isMain === true,
+ ) ??
+ scenes.find(isRecord) ??
+ null;
+
+ if (!mainScene || !Array.isArray(mainScene.tracks)) {
+ return 0;
+ }
+
+ let maxEnd = 0;
+ for (const track of mainScene.tracks) {
+ if (!isRecord(track) || !Array.isArray(track.elements)) continue;
+ for (const element of track.elements) {
+ if (!isRecord(element)) continue;
+ const startTime =
+ typeof element.startTime === "number" ? element.startTime : 0;
+ const duration =
+ typeof element.duration === "number" ? element.duration : 0;
+ maxEnd = Math.max(maxEnd, startTime + duration);
+ }
+ }
+
+ return maxEnd;
}
function isV3Project({ project }: { project: ProjectRecord }): boolean {
diff --git a/apps/web/src/services/storage/migrations/transformers/v9-to-v10.ts b/apps/web/src/services/storage/migrations/transformers/v9-to-v10.ts
new file mode 100644
index 00000000..52d13295
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/transformers/v9-to-v10.ts
@@ -0,0 +1,21 @@
+import type { MigrationResult, ProjectRecord } from "./types";
+import { getProjectId } from "./utils";
+
+export function transformProjectV9ToV10({
+ project,
+}: {
+ project: ProjectRecord;
+}): MigrationResult<ProjectRecord> {
+ if (!getProjectId({ project })) {
+ return { project, skipped: true, reason: "no project id" };
+ }
+
+ if (typeof project.version === "number" && project.version >= 10) {
+ return { project, skipped: true, reason: "already v10" };
+ }
+
+ return {
+ project: { ...project, version: 10 },
+ skipped: false,
+ };
+}
diff --git a/apps/web/src/services/storage/migrations/v10-to-v11.ts b/apps/web/src/services/storage/migrations/v10-to-v11.ts
new file mode 100644
index 00000000..68439fbe
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v10-to-v11.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV10ToV11 } from "./transformers/v10-to-v11";
+
+export class V10toV11Migration extends StorageMigration {
+ from = 10;
+ to = 11;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV10ToV11({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v11-to-v12.ts b/apps/web/src/services/storage/migrations/v11-to-v12.ts
new file mode 100644
index 00000000..5efedbef
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v11-to-v12.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV11ToV12 } from "./transformers/v11-to-v12";
+
+export class V11toV12Migration extends StorageMigration {
+ from = 11;
+ to = 12;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV11ToV12({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v12-to-v13.ts b/apps/web/src/services/storage/migrations/v12-to-v13.ts
new file mode 100644
index 00000000..5c6e05fc
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v12-to-v13.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV12ToV13 } from "./transformers/v12-to-v13";
+
+export class V12toV13Migration extends StorageMigration {
+ from = 12;
+ to = 13;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV12ToV13({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v13-to-v14.ts b/apps/web/src/services/storage/migrations/v13-to-v14.ts
new file mode 100644
index 00000000..fbc9fc5f
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v13-to-v14.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV13ToV14 } from "./transformers/v13-to-v14";
+
+export class V13toV14Migration extends StorageMigration {
+ from = 13;
+ to = 14;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV13ToV14({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v14-to-v15.ts b/apps/web/src/services/storage/migrations/v14-to-v15.ts
new file mode 100644
index 00000000..1d18423f
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v14-to-v15.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV14ToV15 } from "./transformers/v14-to-v15";
+
+export class V14toV15Migration extends StorageMigration {
+ from = 14;
+ to = 15;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV14ToV15({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v15-to-v16.ts b/apps/web/src/services/storage/migrations/v15-to-v16.ts
new file mode 100644
index 00000000..800c9c07
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v15-to-v16.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV15ToV16 } from "./transformers/v15-to-v16";
+
+export class V15toV16Migration extends StorageMigration {
+ from = 15;
+ to = 16;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV15ToV16({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v16-to-v17.ts b/apps/web/src/services/storage/migrations/v16-to-v17.ts
new file mode 100644
index 00000000..f4029db6
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v16-to-v17.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV16ToV17 } from "./transformers/v16-to-v17";
+
+export class V16toV17Migration extends StorageMigration {
+ from = 16;
+ to = 17;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV16ToV17({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v17-to-v18.ts b/apps/web/src/services/storage/migrations/v17-to-v18.ts
new file mode 100644
index 00000000..75beb36b
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v17-to-v18.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV17ToV18 } from "./transformers/v17-to-v18";
+
+export class V17toV18Migration extends StorageMigration {
+ from = 17;
+ to = 18;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV17ToV18({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v18-to-v19.ts b/apps/web/src/services/storage/migrations/v18-to-v19.ts
new file mode 100644
index 00000000..166d9855
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v18-to-v19.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV18ToV19 } from "./transformers/v18-to-v19";
+
+export class V18toV19Migration extends StorageMigration {
+ from = 18;
+ to = 19;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV18ToV19({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/migrations/v9-to-v10.ts b/apps/web/src/services/storage/migrations/v9-to-v10.ts
new file mode 100644
index 00000000..801096fe
--- /dev/null
+++ b/apps/web/src/services/storage/migrations/v9-to-v10.ts
@@ -0,0 +1,16 @@
+import { StorageMigration } from "./base";
+import type { ProjectRecord } from "./transformers/types";
+import { transformProjectV9ToV10 } from "./transformers/v9-to-v10";
+
+export class V9toV10Migration extends StorageMigration {
+ from = 9;
+ to = 10;
+
+ async transform(project: ProjectRecord): Promise<{
+ project: ProjectRecord;
+ skipped: boolean;
+ reason?: string;
+ }> {
+ return transformProjectV9ToV10({ project });
+ }
+}
diff --git a/apps/web/src/services/storage/quota.ts b/apps/web/src/services/storage/quota.ts
new file mode 100644
index 00000000..1eb6028e
--- /dev/null
+++ b/apps/web/src/services/storage/quota.ts
@@ -0,0 +1,145 @@
+const BYTE_UNITS = ["B", "KB", "MB", "GB", "TB"] as const;
+
+export const STORAGE_HEADROOM_RESERVE_BYTES = 50 * 1024 * 1024;
+
+export interface StorageQuotaStatus {
+ quotaBytes: number | null;
+ usageBytes: number | null;
+ headroomBytes: number | null;
+ availableBytes: number | null;
+}
+
+export interface StorageCapacityCheckResult {
+ canStore: boolean;
+ reason: "enough-space" | "insufficient-space" | "estimate-unavailable";
+ availableBytes: number | null;
+}
+
+function normalizeByteValue({ value }: { value: unknown }): number | null {
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
+ return null;
+ }
+
+ return value;
+}
+
+export function formatStorageBytes({ bytes }: { bytes: number }): string {
+ if (!Number.isFinite(bytes) || bytes <= 0) {
+ return "0 B";
+ }
+
+ let value = bytes;
+ let unitIndex = 0;
+
+ while (value >= 1024 && unitIndex < BYTE_UNITS.length - 1) {
+ value /= 1024;
+ unitIndex += 1;
+ }
+
+ const precision = value >= 10 || unitIndex === 0 ? 0 : 1;
+ return `${value.toFixed(precision)} ${BYTE_UNITS[unitIndex]}`;
+}
+
+export async function readStorageQuotaStatus(): Promise<StorageQuotaStatus> {
+ if (
+ typeof navigator === "undefined" ||
+ !navigator.storage ||
+ typeof navigator.storage.estimate !== "function"
+ ) {
+ return {
+ quotaBytes: null,
+ usageBytes: null,
+ headroomBytes: null,
+ availableBytes: null,
+ };
+ }
+
+ const estimate = await navigator.storage.estimate();
+ const quotaBytes = normalizeByteValue({ value: estimate.quota });
+ const usageBytes = normalizeByteValue({ value: estimate.usage });
+
+ if (quotaBytes === null || usageBytes === null) {
+ return {
+ quotaBytes,
+ usageBytes,
+ headroomBytes: null,
+ availableBytes: null,
+ };
+ }
+
+ const headroomBytes = Math.max(quotaBytes - usageBytes, 0);
+ const availableBytes = Math.max(
+ headroomBytes - STORAGE_HEADROOM_RESERVE_BYTES,
+ 0,
+ );
+
+ return {
+ quotaBytes,
+ usageBytes,
+ headroomBytes,
+ availableBytes,
+ };
+}
+
+export function evaluateStorageCapacity({
+ requiredBytes,
+ quotaStatus,
+}: {
+ requiredBytes: number;
+ quotaStatus: StorageQuotaStatus;
+}): StorageCapacityCheckResult {
+ if (quotaStatus.availableBytes === null) {
+ return {
+ canStore: true,
+ reason: "estimate-unavailable",
+ availableBytes: null,
+ };
+ }
+
+ if (requiredBytes > quotaStatus.availableBytes) {
+ return {
+ canStore: false,
+ reason: "insufficient-space",
+ availableBytes: quotaStatus.availableBytes,
+ };
+ }
+
+ return {
+ canStore: true,
+ reason: "enough-space",
+ availableBytes: quotaStatus.availableBytes,
+ };
+}
+
+export class StorageQuotaExceededError extends Error {
+ requiredBytes: number;
+
+ constructor({ requiredBytes }: { requiredBytes: number }) {
+ super(
+ `Not enough browser storage to save a ${formatStorageBytes({ bytes: requiredBytes })} file.`,
+ );
+
+ this.name = "StorageQuotaExceededError";
+ this.requiredBytes = requiredBytes;
+ }
+}
+
+export function isStorageQuotaExceededError({
+ error,
+}: {
+ error: unknown;
+}): boolean {
+ if (error instanceof StorageQuotaExceededError) {
+ return true;
+ }
+
+ if (!(error instanceof Error)) {
+ return false;
+ }
+
+ return (
+ error.name === "QuotaExceededError" ||
+ error.name === "NS_ERROR_DOM_QUOTA_REACHED" ||
+ error.message.toLowerCase().includes("quota")
+ );
+}
diff --git a/apps/web/src/services/storage/service.ts b/apps/web/src/services/storage/service.ts
index aac152da..3a014894 100644
--- a/apps/web/src/services/storage/service.ts
+++ b/apps/web/src/services/storage/service.ts
@@ -1,20 +1,27 @@
-import type { TProject, TProjectMetadata } from "@/types/project";
+import type { TProject, TProjectMetadata } from "@/lib/project/types";
import { getProjectDurationFromScenes } from "@/lib/scenes";
-import type { MediaAsset } from "@/types/assets";
+import type { MediaAsset } from "@/lib/media/types";
import { IndexedDBAdapter } from "./indexeddb-adapter";
import { OPFSAdapter } from "./opfs-adapter";
+import {
+ type StorageCapacityCheckResult,
+ StorageQuotaExceededError,
+ evaluateStorageCapacity,
+ isStorageQuotaExceededError,
+ readStorageQuotaStatus,
+} from "./quota";
import type {
MediaAssetData,
StorageConfig,
SerializedProject,
SerializedScene,
} from "./types";
-import type { SavedSoundsData, SavedSound, SoundEffect } from "@/types/sounds";
+import type { SavedSoundsData, SavedSound, SoundEffect } from "@/lib/sounds/types";
import {
migrations,
runStorageMigrations,
} from "@/services/storage/migrations";
-import type { Bookmark, TimelineTrack, TScene } from "@/types/timeline";
+import type { Bookmark, TimelineTrack, TScene } from "@/lib/timeline";
function normalizeBookmarks({ raw }: { raw: unknown }): Bookmark[] {
if (!Array.isArray(raw)) return [];
@@ -90,6 +97,22 @@ class StorageService {
return { mediaMetadataAdapter, mediaAssetsAdapter };
}
+ async canStoreFile({
+ size,
+ }: {
+ size: number;
+ }): Promise<StorageCapacityCheckResult> {
+ const quotaStatus = await readStorageQuotaStatus();
+ return evaluateStorageCapacity({
+ requiredBytes: size,
+ quotaStatus,
+ });
+ }
+
+ isQuotaExceededError({ error }: { error: unknown }): boolean {
+ return isStorageQuotaExceededError({ error });
+ }
+
private stripAudioBuffers({
tracks,
}: {
@@ -238,8 +261,6 @@ class StorageService {
const { mediaMetadataAdapter, mediaAssetsAdapter } =
this.getProjectMediaAdapters({ projectId });
- await mediaAssetsAdapter.set(mediaAsset.id, mediaAsset.file);
-
const metadata: MediaAssetData = {
id: mediaAsset.id,
name: mediaAsset.name,
@@ -253,7 +274,24 @@ class StorageService {
ephemeral: mediaAsset.ephemeral,
};
- await mediaMetadataAdapter.set(mediaAsset.id, metadata);
+ try {
+ await mediaAssetsAdapter.set(mediaAsset.id, mediaAsset.file);
+ await mediaMetadataAdapter.set(mediaAsset.id, metadata);
+ } catch (error) {
+ try {
+ await mediaAssetsAdapter.remove(mediaAsset.id);
+ } catch {
+ // Ignore cleanup failures so the original storage error is preserved.
+ }
+
+ if (this.isQuotaExceededError({ error })) {
+ throw new StorageQuotaExceededError({
+ requiredBytes: mediaAsset.file.size,
+ });
+ }
+
+ throw error;
+ }
}
async loadMediaAsset({
diff --git a/apps/web/src/services/storage/types.ts b/apps/web/src/services/storage/types.ts
index 7481c73c..1dcf6545 100644
--- a/apps/web/src/services/storage/types.ts
+++ b/apps/web/src/services/storage/types.ts
@@ -1,10 +1,10 @@
-import type { MediaType } from "@/types/assets";
+import type { MediaType } from "@/lib/media/types";
import type {
TProject,
TProjectMetadata,
TTimelineViewState,
-} from "@/types/project";
-import type { TScene } from "@/types/timeline";
+} from "@/lib/project/types";
+import type { TScene } from "@/lib/timeline";
export interface StorageAdapter<T> {
get(key: string): Promise<T | null>;
@@ -24,6 +24,7 @@ export interface MediaAssetData {
height?: number;
duration?: number;
fps?: number;
+ hasAudio?: boolean;
ephemeral?: boolean;
thumbnailUrl?: string;
}
diff --git a/apps/web/src/services/transcription/service.ts b/apps/web/src/services/transcription/service.ts
index c34a82ce..ab88106c 100644
--- a/apps/web/src/services/transcription/service.ts
+++ b/apps/web/src/services/transcription/service.ts
@@ -3,7 +3,7 @@ import type {
TranscriptionResult,
TranscriptionProgress,
TranscriptionModelId,
-} from "@/types/transcription";
+} from "@/lib/transcription/types";
import {
DEFAULT_TRANSCRIPTION_MODEL,
TRANSCRIPTION_MODELS,
diff --git a/apps/web/src/services/transcription/worker.ts b/apps/web/src/services/transcription/worker.ts
index 2aa9673c..e583b2ab 100644
--- a/apps/web/src/services/transcription/worker.ts
+++ b/apps/web/src/services/transcription/worker.ts
@@ -3,7 +3,7 @@ import {
type AutomaticSpeechRecognitionPipeline,
type AutomaticSpeechRecognitionOutput,
} from "@huggingface/transformers";
-import type { TranscriptionSegment } from "@/types/transcription";
+import type { TranscriptionSegment } from "@/lib/transcription/types";
import {
DEFAULT_CHUNK_LENGTH_SECONDS,
DEFAULT_STRIDE_SECONDS,
diff --git a/apps/web/src/stores/editor-store.ts b/apps/web/src/stores/editor-store.ts
index ad351bf9..96009928 100644
--- a/apps/web/src/stores/editor-store.ts
+++ b/apps/web/src/stores/editor-store.ts
@@ -1,6 +1,6 @@
import { create } from "zustand";
import { DEFAULT_CANVAS_PRESETS } from "@/constants/project-constants";
-import type { TCanvasSize } from "@/types/project";
+import type { TCanvasSize } from "@/lib/project/types";
interface EditorState {
isInitializing: boolean;
diff --git a/apps/web/src/stores/keybindings-store.ts b/apps/web/src/stores/keybindings-store.ts
index 906e9aa8..b4cf2703 100644
--- a/apps/web/src/stores/keybindings-store.ts
+++ b/apps/web/src/stores/keybindings-store.ts
@@ -6,10 +6,10 @@ import type { TActionWithOptionalArgs } from "@/lib/actions";
import { getDefaultShortcuts } from "@/lib/actions";
import { isTypableDOMElement } from "@/utils/browser";
import { isAppleDevice } from "@/utils/platform";
-import type { KeybindingConfig, ShortcutKey } from "@/types/keybinding";
+import type { KeybindingConfig, ShortcutKey } from "@/lib/actions/keybinding";
import { runMigrations, CURRENT_VERSION } from "./keybindings/migrations";
-export const defaultKeybindings: KeybindingConfig = getDefaultShortcuts();
+const defaultKeybindings: KeybindingConfig = getDefaultShortcuts();
export interface KeybindingConflict {
key: ShortcutKey;
@@ -20,7 +20,9 @@ export interface KeybindingConflict {
interface KeybindingsState {
keybindings: KeybindingConfig;
isCustomized: boolean;
- keybindingsEnabled: boolean;
+ overlayDepth: number;
+ openOverlayIds: string[];
+ isLoadingProject: boolean;
isRecording: boolean;
updateKeybinding: (key: ShortcutKey, action: TActionWithOptionalArgs) => void;
@@ -28,8 +30,9 @@ interface KeybindingsState {
resetToDefaults: () => void;
importKeybindings: (config: KeybindingConfig) => void;
exportKeybindings: () => KeybindingConfig;
- enableKeybindings: () => void;
- disableKeybindings: () => void;
+ openOverlay: (overlayId: string, source: string) => void;
+ closeOverlay: (overlayId: string, source: string) => void;
+ setLoadingProject: (loading: boolean) => void;
setIsRecording: (isRecording: boolean) => void;
validateKeybinding: (
key: ShortcutKey,
@@ -48,9 +51,112 @@ export const useKeybindingsStore = create<KeybindingsState>()(
(set, get) => ({
keybindings: { ...defaultKeybindings },
isCustomized: false,
- keybindingsEnabled: true,
+ overlayDepth: 0,
+ openOverlayIds: [],
+ isLoadingProject: false,
isRecording: false,
+ openOverlay: (overlayId, source) =>
+ set((s) => {
+ const openOverlayIds = s.openOverlayIds.includes(overlayId)
+ ? s.openOverlayIds
+ : [...s.openOverlayIds, overlayId];
+ const nextOverlayDepth = openOverlayIds.length;
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H2",
+ location: "keybindings-store.ts:openOverlay",
+ message: "Overlay depth incremented",
+ data: {
+ source,
+ overlayId,
+ overlayDepth: s.overlayDepth,
+ nextOverlayDepth,
+ openOverlayIds,
+ },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ return {
+ openOverlayIds,
+ overlayDepth: nextOverlayDepth,
+ };
+ }),
+ closeOverlay: (overlayId, source) =>
+ set((s) => {
+ const openOverlayIds = s.openOverlayIds.filter(
+ (id) => id !== overlayId,
+ );
+ const nextOverlayDepth = openOverlayIds.length;
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H2",
+ location: "keybindings-store.ts:closeOverlay",
+ message: "Overlay depth decremented",
+ data: {
+ source,
+ overlayId,
+ overlayDepth: s.overlayDepth,
+ nextOverlayDepth,
+ openOverlayIds,
+ },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ return {
+ openOverlayIds,
+ overlayDepth: nextOverlayDepth,
+ };
+ }),
+ setLoadingProject: (loading) => {
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H2",
+ location: "keybindings-store.ts:setLoadingProject",
+ message: "Loading gate updated",
+ data: { loading },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
+ set({ isLoadingProject: loading });
+ },
+
updateKeybinding: (key: ShortcutKey, action: TActionWithOptionalArgs) => {
set((state) => {
const newKeybindings = { ...state.keybindings };
@@ -82,17 +188,9 @@ export const useKeybindingsStore = create<KeybindingsState>()(
});
},
- enableKeybindings: () => {
- set({ keybindingsEnabled: true });
- },
-
- disableKeybindings: () => {
- set({ keybindingsEnabled: false });
- },
-
- importKeybindings: (config: KeybindingConfig) => {
- for (const [key] of Object.entries(config)) {
- if (typeof key !== "string" || key.length === 0) {
+ importKeybindings: (config: KeybindingConfig) => {
+ for (const [key] of Object.entries(config)) {
+ if (typeof key !== "string" || key.length === 0) {
throw new Error(`Invalid key format: ${key}`);
}
}
@@ -124,6 +222,27 @@ export const useKeybindingsStore = create<KeybindingsState>()(
return null;
},
setIsRecording: (isRecording: boolean) => {
+ // #region agent log
+ fetch(
+ "http://127.0.0.1:7245/ingest/669b22f8-172b-4e65-aa3f-1c702ede83f7",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-Debug-Session-Id": "3997d9",
+ },
+ body: JSON.stringify({
+ sessionId: "3997d9",
+ runId: "initial",
+ hypothesisId: "H2",
+ location: "keybindings-store.ts:setIsRecording",
+ message: "Recording gate updated",
+ data: { isRecording },
+ timestamp: Date.now(),
+ }),
+ },
+ ).catch(() => {});
+ // #endregion
set({ isRecording });
},
@@ -169,7 +288,10 @@ function generateKeybindingString(ev: KeyboardEvent): ShortcutKey | null {
return `${modifierKey}+${key}` as ShortcutKey;
}
- if (isDOMElement(target) && isTypableDOMElement({ element: target as HTMLElement }))
+ if (
+ isDOMElement(target) &&
+ isTypableDOMElement({ element: target as HTMLElement })
+ )
return null;
return `${key}` as ShortcutKey;
diff --git a/apps/web/src/stores/keybindings/migrations/index.ts b/apps/web/src/stores/keybindings/migrations/index.ts
index e6641f41..330c7df7 100644
--- a/apps/web/src/stores/keybindings/migrations/index.ts
+++ b/apps/web/src/stores/keybindings/migrations/index.ts
@@ -1,6 +1,7 @@
import { v2ToV3 } from "./v2-to-v3";
import { v3ToV4 } from "./v3-to-v4";
import { v4ToV5 } from "./v4-to-v5";
+import { v5ToV6 } from "./v5-to-v6";
type MigrationFn = ({ state }: { state: unknown }) => unknown;
@@ -8,9 +9,10 @@ const migrations: Record<number, MigrationFn> = {
2: v2ToV3,
3: v3ToV4,
4: v4ToV5,
+ 5: v5ToV6,
};
-export const CURRENT_VERSION = 5;
+export const CURRENT_VERSION = 6;
export function runMigrations({
state,
diff --git a/apps/web/src/stores/keybindings/migrations/v2-to-v3.ts b/apps/web/src/stores/keybindings/migrations/v2-to-v3.ts
index 1517b52b..da0df588 100644
--- a/apps/web/src/stores/keybindings/migrations/v2-to-v3.ts
+++ b/apps/web/src/stores/keybindings/migrations/v2-to-v3.ts
@@ -1,4 +1,4 @@
-import type { KeybindingConfig, ShortcutKey } from "@/types/keybinding";
+import type { KeybindingConfig, ShortcutKey } from "@/lib/actions/keybinding";
import type { TActionWithOptionalArgs } from "@/lib/actions";
interface V2State {
diff --git a/apps/web/src/stores/keybindings/migrations/v3-to-v4.ts b/apps/web/src/stores/keybindings/migrations/v3-to-v4.ts
index b53e082f..be3b4a64 100644
--- a/apps/web/src/stores/keybindings/migrations/v3-to-v4.ts
+++ b/apps/web/src/stores/keybindings/migrations/v3-to-v4.ts
@@ -1,6 +1,6 @@
import type { TActionWithOptionalArgs } from "@/lib/actions";
-import type { ShortcutKey } from "@/types/keybinding";
-import type { KeybindingConfig } from "@/types/keybinding";
+import type { ShortcutKey } from "@/lib/actions/keybinding";
+import type { KeybindingConfig } from "@/lib/actions/keybinding";
interface V3State {
keybindings: KeybindingConfig;
diff --git a/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts b/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts
index 2ab39247..4e23e0f4 100644
--- a/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts
+++ b/apps/web/src/stores/keybindings/migrations/v4-to-v5.ts
@@ -1,4 +1,4 @@
-import type { KeybindingConfig } from "@/types/keybinding";
+import type { KeybindingConfig } from "@/lib/actions/keybinding";
interface V4State {
keybindings: KeybindingConfig;
diff --git a/apps/web/src/stores/keybindings/migrations/v5-to-v6.ts b/apps/web/src/stores/keybindings/migrations/v5-to-v6.ts
new file mode 100644
index 00000000..3545815d
--- /dev/null
+++ b/apps/web/src/stores/keybindings/migrations/v5-to-v6.ts
@@ -0,0 +1,17 @@
+import type { KeybindingConfig } from "@/lib/actions/keybinding";
+
+interface V5State {
+ keybindings: KeybindingConfig;
+ isCustomized: boolean;
+}
+
+export function v5ToV6({ state }: { state: unknown }): unknown {
+ const v5 = state as V5State;
+ const keybindings = { ...v5.keybindings };
+
+ if (keybindings.escape === "deselect-all") {
+ keybindings.escape = "cancel-interaction";
+ }
+
+ return { ...v5, keybindings };
+}
diff --git a/apps/web/src/stores/preview-store.ts b/apps/web/src/stores/preview-store.ts
index 03b28fe2..cd6488b3 100644
--- a/apps/web/src/stores/preview-store.ts
+++ b/apps/web/src/stores/preview-store.ts
@@ -1,20 +1,28 @@
import { create } from "zustand";
import { persist } from "zustand/middleware";
-import type { TPlatformLayout } from "@/types/editor";
-
-interface LayoutGuideSettings {
- platform: TPlatformLayout | null;
-}
+import { isGuideId, type GuideId } from "@/lib/guides";
+import { DEFAULT_GRID_CONFIG } from "@/constants/guide-constants";
+import type { GridConfig } from "@/lib/guides/types";
interface PreviewOverlaysState {
bookmarks: boolean;
}
+interface PersistedPreviewState {
+ activeGuide?: string | null;
+ layoutGuide?: {
+ platform?: string | null;
+ };
+ overlays?: PreviewOverlaysState;
+ gridConfig?: GridConfig;
+}
+
interface PreviewState {
- layoutGuide: LayoutGuideSettings;
+ activeGuide: GuideId | null;
overlays: PreviewOverlaysState;
- setLayoutGuide: (settings: Partial<LayoutGuideSettings>) => void;
- toggleLayoutGuide: (platform: TPlatformLayout) => void;
+ gridConfig: GridConfig;
+ toggleGuide: (guideId: GuideId) => void;
+ setGridConfig: (config: Partial<GridConfig>) => void;
setOverlayVisibility: ({
overlay,
isVisible,
@@ -33,24 +41,33 @@ const DEFAULT_PREVIEW_OVERLAYS: PreviewOverlaysState = {
bookmarks: true,
};
+function getPersistedActiveGuide(
+ state: PersistedPreviewState | undefined,
+): GuideId | null {
+ const persistedGuide =
+ state?.activeGuide ?? state?.layoutGuide?.platform ?? null;
+
+ if (typeof persistedGuide !== "string") {
+ return null;
+ }
+
+ return isGuideId(persistedGuide) ? persistedGuide : null;
+}
+
export const usePreviewStore = create<PreviewState>()(
persist(
(set) => ({
- layoutGuide: { platform: null },
+ activeGuide: null,
overlays: DEFAULT_PREVIEW_OVERLAYS,
- setLayoutGuide: (settings) => {
+ gridConfig: DEFAULT_GRID_CONFIG,
+ toggleGuide: (guideId) => {
set((state) => ({
- layoutGuide: {
- ...state.layoutGuide,
- ...settings,
- },
+ activeGuide: state.activeGuide === guideId ? null : guideId,
}));
},
- toggleLayoutGuide: (platform) => {
+ setGridConfig: (config) => {
set((state) => ({
- layoutGuide: {
- platform: state.layoutGuide.platform === platform ? null : platform,
- },
+ gridConfig: { ...state.gridConfig, ...config },
}));
},
setOverlayVisibility: ({ overlay, isVisible }) => {
@@ -72,22 +89,23 @@ export const usePreviewStore = create<PreviewState>()(
}),
{
name: "preview-settings",
- version: 2,
+ version: 4,
migrate: (persistedState) => {
- const state = persistedState as
- | {
- layoutGuide?: LayoutGuideSettings;
- overlays?: PreviewOverlaysState;
- }
- | undefined;
+ const state = persistedState as PersistedPreviewState | undefined;
+
return {
- layoutGuide: state?.layoutGuide ?? { platform: null },
+ activeGuide: getPersistedActiveGuide(state),
overlays: state?.overlays ?? DEFAULT_PREVIEW_OVERLAYS,
+ gridConfig: {
+ rows: state?.gridConfig?.rows ?? DEFAULT_GRID_CONFIG.rows,
+ cols: state?.gridConfig?.cols ?? DEFAULT_GRID_CONFIG.cols,
+ },
};
},
partialize: (state) => ({
- layoutGuide: state.layoutGuide,
+ activeGuide: state.activeGuide,
overlays: state.overlays,
+ gridConfig: state.gridConfig,
}),
},
),
diff --git a/apps/web/src/stores/sounds-store.ts b/apps/web/src/stores/sounds-store.ts
index 8edbcc97..1c58bd69 100644
--- a/apps/web/src/stores/sounds-store.ts
+++ b/apps/web/src/stores/sounds-store.ts
@@ -1,5 +1,5 @@
import { create } from "zustand";
-import type { SoundEffect, SavedSound } from "@/types/sounds";
+import type { SoundEffect, SavedSound } from "@/lib/sounds/types";
import { storageService } from "@/services/storage/service";
import { toast } from "sonner";
import { EditorCore } from "@/core";
diff --git a/apps/web/src/stores/stickers-store.ts b/apps/web/src/stores/stickers-store.ts
index 3f713b3d..7a678084 100644
--- a/apps/web/src/stores/stickers-store.ts
+++ b/apps/web/src/stores/stickers-store.ts
@@ -1,16 +1,20 @@
import { create } from "zustand";
import { persist } from "zustand/middleware";
-import { EditorCore } from "@/core";
-import { searchStickers as searchStickersFromProviders } from "@/lib/stickers";
-import type { StickerSearchResult } from "@/lib/stickers";
-import { buildStickerElement } from "@/lib/timeline/element-utils";
+import {
+ browseAll,
+ browseCategory,
+ searchAll,
+ searchStickers as searchStickersFromProviders,
+} from "@/lib/stickers";
+import type { StickerBrowseResult, StickerSearchResult } from "@/lib/stickers";
import { STICKER_CATEGORIES } from "@/constants/sticker-constants";
-import type { StickerCategory } from "@/types/stickers";
+import type { StickerCategory } from "@/lib/stickers/types";
import { registerDefaultStickerProviders } from "@/lib/stickers/providers";
-import { hasProvider } from "@/lib/stickers/registry";
+import { stickersRegistry } from "@/lib/stickers/registry";
import { parseStickerId } from "@/lib/stickers/sticker-id";
const MAX_RECENT_STICKERS = 50;
+let browseRequestVersion = 0;
function isValidStickerId(value: unknown): value is string {
if (typeof value !== "string") {
@@ -19,7 +23,7 @@ function isValidStickerId(value: unknown): value is string {
try {
const parsed = parseStickerId({ stickerId: value });
- return hasProvider({ providerId: parsed.providerId });
+ return stickersRegistry.has(parsed.providerId);
} catch {
return false;
}
@@ -60,20 +64,15 @@ interface StickersStore {
selectedCategory: StickerCategory;
viewMode: ViewMode;
searchResults: StickerSearchResult | null;
+ browseContent: StickerBrowseResult | null;
recentStickers: string[];
isSearching: boolean;
- addingSticker: string | null;
+ isBrowsing: boolean;
setSearchQuery: ({ query }: { query: string }) => void;
setSelectedCategory: ({ category }: { category: StickerCategory }) => void;
searchStickers: ({ query }: { query: string }) => Promise<void>;
- addStickerToTimeline: ({
- stickerId,
- name,
- }: {
- stickerId: string;
- name?: string;
- }) => void;
+ browseStickers: () => Promise<void>;
addToRecentStickers: ({ stickerId }: { stickerId: string }) => void;
clearRecentStickers: () => void;
}
@@ -86,22 +85,34 @@ export const useStickersStore = create<StickersStore>()(
viewMode: "browse",
searchResults: null,
+ browseContent: null,
recentStickers: [],
isSearching: false,
- addingSticker: null,
+ isBrowsing: false,
setSearchQuery: ({ query }) => set({ searchQuery: query }),
- setSelectedCategory: ({ category }) =>
- set({
- selectedCategory: category in STICKER_CATEGORIES ? category : "all",
- viewMode: "browse",
- }),
+ setSelectedCategory: ({ category }) => {
+ set({
+ selectedCategory: category in STICKER_CATEGORIES ? category : "all",
+ browseContent: null,
+ });
+
+ const query = get().searchQuery.trim();
+ if (query) {
+ void get().searchStickers({ query });
+ return;
+ }
+
+ void get().browseStickers();
+ },
searchStickers: async ({ query }: { query: string }) => {
- if (!query.trim()) {
+ const trimmedQuery = query.trim();
+ if (!trimmedQuery) {
set({ searchResults: null, viewMode: "browse" });
+ await get().browseStickers();
return;
}
@@ -111,12 +122,17 @@ export const useStickersStore = create<StickersStore>()(
set({ isSearching: true, viewMode: "search" });
try {
- const results = await searchStickersFromProviders({
- query,
- category: selectedCategory,
- limit: 100,
- });
- set({ searchResults: results });
+ if (selectedCategory === "all") {
+ const browseContent = await searchAll({ query: trimmedQuery });
+ set({ browseContent, searchResults: null });
+ } else {
+ const results = await searchStickersFromProviders({
+ query: trimmedQuery,
+ category: selectedCategory,
+ limit: 100,
+ });
+ set({ searchResults: results });
+ }
} catch (error) {
console.error("Search failed:", error);
set({ searchResults: null });
@@ -125,67 +141,70 @@ export const useStickersStore = create<StickersStore>()(
}
},
- addStickerToTimeline: ({
- stickerId,
- name,
- }: {
- stickerId: string;
- name?: string;
- }) => {
- set({ addingSticker: stickerId });
- try {
- const editor = EditorCore.getInstance();
- const currentTime = editor.playback.getCurrentTime();
- const tracks = editor.timeline.getTracks();
+ browseStickers: async () => {
+ const version = ++browseRequestVersion;
+ const category = get().selectedCategory;
+ const selectedCategory =
+ category in STICKER_CATEGORIES ? category : "all";
- const stickerTrack = tracks.find((t) => t.type === "sticker");
- let trackId: string;
+ set({ isBrowsing: true, viewMode: "browse" });
+ try {
+ const browseContent =
+ selectedCategory === "all"
+ ? await browseAll({
+ recentStickers: get().recentStickers,
+ })
+ : await browseCategory({
+ category: selectedCategory,
+ });
- if (stickerTrack) {
- trackId = stickerTrack.id;
- } else {
- trackId = editor.timeline.addTrack({ type: "sticker" });
- }
+ if (version !== browseRequestVersion) return;
+ set({ browseContent });
+ } catch (error) {
+ if (version !== browseRequestVersion) return;
+ console.error("Browse failed:", error);
+ set({ browseContent: null });
+ } finally {
+ if (version === browseRequestVersion) {
+ set({ isBrowsing: false });
+ }
+ }
+ },
- const element = buildStickerElement({
- stickerId,
- name,
- startTime: currentTime,
- });
- editor.timeline.insertElement({
- placement: { mode: "explicit", trackId },
- element,
- });
+ addToRecentStickers: ({ stickerId }: { stickerId: string }) => {
+ const sanitizedStickerIds = sanitizeRecentStickers({
+ recentStickers: [stickerId],
+ });
+ if (sanitizedStickerIds.length === 0) {
+ return;
+ }
- get().addToRecentStickers({ stickerId });
- } finally {
- set({ addingSticker: null });
- }
- },
+ set((state) => {
+ const recent = [
+ sanitizedStickerIds[0],
+ ...state.recentStickers.filter((s) => s !== sanitizedStickerIds[0]),
+ ];
+ return {
+ recentStickers: recent.slice(0, MAX_RECENT_STICKERS),
+ };
+ });
- addToRecentStickers: ({ stickerId }: { stickerId: string }) => {
- const sanitizedStickerIds = sanitizeRecentStickers({
- recentStickers: [stickerId],
- });
- if (sanitizedStickerIds.length === 0) {
- return;
- }
+ if (get().viewMode === "browse" && get().selectedCategory === "all") {
+ void get().browseStickers();
+ }
+ },
- set((state) => {
- const recent = [
- sanitizedStickerIds[0],
- ...state.recentStickers.filter((s) => s !== sanitizedStickerIds[0]),
- ];
- return {
- recentStickers: recent.slice(0, MAX_RECENT_STICKERS),
- };
- });
- },
+ clearRecentStickers: () => {
+ set({ recentStickers: [] });
- clearRecentStickers: () => set({ recentStickers: [] }),
+ if (get().viewMode === "browse" && get().selectedCategory === "all") {
+ void get().browseStickers();
+ }
+ },
}),
{
name: "stickers-settings",
+ version: 1,
migrate: (persistedState) => {
if (
typeof persistedState === "object" &&
diff --git a/apps/web/src/stores/timeline-store.ts b/apps/web/src/stores/timeline-store.ts
index e5723bfa..e4c8ec89 100644
--- a/apps/web/src/stores/timeline-store.ts
+++ b/apps/web/src/stores/timeline-store.ts
@@ -5,7 +5,7 @@
import { create } from "zustand";
import { persist } from "zustand/middleware";
-import type { ClipboardItem } from "@/types/timeline";
+import type { ClipboardItem } from "@/lib/timeline";
interface TimelineStore {
snappingEnabled: boolean;
diff --git a/apps/web/src/types/editor.ts b/apps/web/src/types/editor.ts
deleted file mode 100644
index 0413b208..00000000
--- a/apps/web/src/types/editor.ts
+++ /dev/null
@@ -1 +0,0 @@
-export type TPlatformLayout = "tiktok";
diff --git a/apps/web/src/types/effects.ts b/apps/web/src/types/effects.ts
deleted file mode 100644
index 6c96dfb2..00000000
--- a/apps/web/src/types/effects.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-export interface Effect {
- id: string;
- type: string;
- params: EffectParamValues;
- enabled: boolean;
-}
-
-export type EffectParamType = "number" | "boolean" | "select" | "color";
-
-export type EffectParamValues = Record<string, number | string | boolean>;
-
-interface BaseEffectParamDefinition {
- key: string;
- label: string;
-}
-
-export interface NumberEffectParamDefinition extends BaseEffectParamDefinition {
- type: "number";
- default: number;
- min: number;
- max: number;
- step: number;
-}
-
-interface BooleanEffectParamDefinition extends BaseEffectParamDefinition {
- type: "boolean";
- default: boolean;
-}
-
-interface SelectEffectParamDefinition extends BaseEffectParamDefinition {
- type: "select";
- default: string;
- options: Array<{ value: string; label: string }>;
-}
-
-interface ColorEffectParamDefinition extends BaseEffectParamDefinition {
- type: "color";
- default: string;
-}
-
-export type EffectParamDefinition =
- | NumberEffectParamDefinition
- | BooleanEffectParamDefinition
- | SelectEffectParamDefinition
- | ColorEffectParamDefinition;
-
-export interface WebGLEffectPass {
- fragmentShader: string;
- uniforms(params: {
- effectParams: EffectParamValues;
- width: number;
- height: number;
- }): Record<string, number | number[]>;
-}
-
-export interface WebGLEffectRenderer {
- type: "webgl";
- passes: WebGLEffectPass[];
-}
-
-export type EffectRenderer = WebGLEffectRenderer;
-
-export interface EffectDefinition {
- type: string;
- name: string;
- keywords: string[];
- params: EffectParamDefinition[];
- renderer: EffectRenderer;
-}
diff --git a/apps/web/src/types/export.ts b/apps/web/src/types/export.ts
deleted file mode 100644
index 2c2408d8..00000000
--- a/apps/web/src/types/export.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-export const EXPORT_QUALITY_VALUES = [
- "low",
- "medium",
- "high",
- "very_high",
-] as const;
-
-export const EXPORT_FORMAT_VALUES = ["mp4", "webm"] as const;
-
-export type ExportFormat = (typeof EXPORT_FORMAT_VALUES)[number];
-export type ExportQuality = (typeof EXPORT_QUALITY_VALUES)[number];
-
-export interface ExportOptions {
- format: ExportFormat;
- quality: ExportQuality;
- fps?: number;
- includeAudio?: boolean;
-}
-
-export interface ExportResult {
- success: boolean;
- buffer?: ArrayBuffer;
- error?: string;
- cancelled?: boolean;
-}
-
-export interface ExportState {
- isExporting: boolean;
- progress: number;
- result: ExportResult | null;
-}
diff --git a/apps/web/src/types/language.ts b/apps/web/src/types/language.ts
deleted file mode 100644
index a3f527c8..00000000
--- a/apps/web/src/types/language.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import type { LANGUAGES } from "@/constants/language-constants";
-
-export type Language = (typeof LANGUAGES)[number];
-export type LanguageCode = Language["code"];
diff --git a/apps/web/src/types/soundtouchjs.d.ts b/apps/web/src/types/soundtouchjs.d.ts
new file mode 100644
index 00000000..c10f1ff3
--- /dev/null
+++ b/apps/web/src/types/soundtouchjs.d.ts
@@ -0,0 +1,14 @@
+declare module "soundtouchjs" {
+ export class PitchShifter {
+ constructor(
+ context: BaseAudioContext,
+ buffer: AudioBuffer,
+ bufferSize: number,
+ onEnd?: () => void,
+ );
+ tempo: number;
+ pitch: number;
+ connect(destination: AudioNode): void;
+ off(): void;
+ }
+}
diff --git a/apps/web/src/types/stickers.ts b/apps/web/src/types/stickers.ts
deleted file mode 100644
index 65c9aeb2..00000000
--- a/apps/web/src/types/stickers.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import type { STICKER_CATEGORIES } from "@/constants/sticker-constants";
-
-export type StickerCategory = keyof typeof STICKER_CATEGORIES;
-
-export interface StickerItem {
- id: string;
- provider: string;
- name: string;
- previewUrl: string;
- metadata: Record<string, unknown>;
-}
-
-export interface StickerSearchResult {
- items: StickerItem[];
- total: number;
- hasMore: boolean;
-}
-
-export interface StickerProviderSearchOptions {
- limit?: number;
-}
-
-export interface StickerProviderBrowseOptions {
- page?: number;
- limit?: number;
-}
-
-export interface StickerResolveOptions {
- width?: number;
- height?: number;
-}
-
-export interface StickerProvider {
- id: string;
- search({
- query,
- options,
- }: {
- query: string;
- options?: StickerProviderSearchOptions;
- }): Promise<StickerSearchResult>;
- browse({
- options,
- }: {
- options?: StickerProviderBrowseOptions;
- }): Promise<StickerSearchResult>;
- resolveUrl({
- stickerId,
- options,
- }: {
- stickerId: string;
- options?: StickerResolveOptions;
- }): string;
-}
diff --git a/apps/web/src/types/time.ts b/apps/web/src/types/time.ts
deleted file mode 100644
index 4009a1e1..00000000
--- a/apps/web/src/types/time.ts
+++ /dev/null
@@ -1 +0,0 @@
-export type TTimeCode = "MM:SS" | "HH:MM:SS" | "HH:MM:SS:CS" | "HH:MM:SS:FF";
diff --git a/apps/web/src/utils/browser.ts b/apps/web/src/utils/browser.ts
index cfd3b31b..bfe69b11 100644
--- a/apps/web/src/utils/browser.ts
+++ b/apps/web/src/utils/browser.ts
@@ -15,6 +15,20 @@ export function downloadBlob({
URL.revokeObjectURL(url);
}
+export function findScrollParent({
+ element,
+}: {
+ element: HTMLElement;
+}): HTMLElement | null {
+ let parent = element.parentElement;
+ while (parent) {
+ const { overflow, overflowX } = window.getComputedStyle(parent);
+ if (/auto|scroll/.test(overflow + overflowX)) return parent;
+ parent = parent.parentElement;
+ }
+ return null;
+}
+
export function isTypableDOMElement({
element,
}: {
diff --git a/apps/web/src/utils/math.ts b/apps/web/src/utils/math.ts
index d45e71c0..24f9eaf4 100644
--- a/apps/web/src/utils/math.ts
+++ b/apps/web/src/utils/math.ts
@@ -10,6 +10,41 @@ export function clamp({
return Math.max(min, Math.min(max, value));
}
+export function clampRound({
+ value,
+ min,
+ max,
+}: {
+ value: number;
+ min: number;
+ max: number;
+}): number {
+ return Math.round(clamp({ value, min, max }));
+}
+
+function getFractionDigitsForStep({ step }: { step: number }): number {
+ const normalizedStep = step.toString().toLowerCase();
+ if (normalizedStep.includes("e-")) {
+ return Number(normalizedStep.split("e-")[1] ?? 0);
+ }
+ const [, fractionalPart = ""] = normalizedStep.split(".");
+ return fractionalPart.length;
+}
+
+export function snapToStep({
+ value,
+ step,
+}: {
+ value: number;
+ step: number;
+}): number {
+ if (step <= 0) return value;
+ const snappedValue = Math.round(value / step) * step;
+ return Number(
+ snappedValue.toFixed(getFractionDigitsForStep({ step })),
+ );
+}
+
export function isNearlyEqual({
leftValue,
rightValue,
@@ -22,6 +57,16 @@ export function isNearlyEqual({
return Math.abs(leftValue - rightValue) <= epsilon;
}
+export function formatNumberForDisplay({
+ value,
+ maxFractionDigits = 6,
+}: {
+ value: number;
+ maxFractionDigits?: number;
+}): string {
+ return Number(value.toFixed(maxFractionDigits)).toString();
+}
+
export function evaluateMathExpression({
input,
}: {
diff --git a/apps/web/tsconfig.tsbuildinfo b/apps/web/tsconfig.tsbuildinfo
index a8f86303..82d6fc79 100644
--- a/apps/web/tsconfig.tsbuildinfo
+++ b/apps/web/tsconfig.tsbuildinfo
@@ -1 +1 @@
-{"fileNames":["../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/global.d.ts","../../node_modules/.bun/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.bun/@types+prop-types@15.7.15/node_modules/@types/prop-types/index.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/index.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.bun/drizzle-kit@0.31.4/node_modules/drizzle-kit/index-baurj6ib.d.mts","../../node_modules/.bun/drizzle-kit@0.31.4/node_modules/drizzle-kit/index.d.mts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/utility.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/header.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/readable.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/connector.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/client-stats.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/errors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/api.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/util.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/patch.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cache.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/index.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/globals.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/assert.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/buffer.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/child_process.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/cluster.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/console.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/constants.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/crypto.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dgram.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dns.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/domain.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dom-events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/fs.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/http.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/http2.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/https.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/inspector.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/module.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/net.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/os.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/path.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/process.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/punycode.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/querystring.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/readline.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/repl.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/sea.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/sqlite.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/web.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/test.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/timers.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/tls.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/trace_events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/tty.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/url.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/util.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/v8.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/vm.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/wasi.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/zlib.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/index.d.ts","../../node_modules/.bun/dotenv@16.6.1/node_modules/dotenv/lib/main.d.ts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/registries.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/util.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/versions.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/schemas.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/checks.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/errors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/core.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/parse.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/regexes.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ar.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/az.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/be.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/bg.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ca.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/cs.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/da.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/de.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/en.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/eo.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/es.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fa.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fi.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr-ca.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/he.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hu.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hy.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/id.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/is.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/it.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ja.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ka.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/kh.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/km.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ko.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/lt.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/mk.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ms.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/nl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/no.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ota.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ps.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pt.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ru.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sv.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ta.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/th.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/tr.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ua.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uk.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ur.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uz.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/vi.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-cn.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-tw.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/yo.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/doc.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/api.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-generator.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/errors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/parse.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/checks.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/compat.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/from-json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/iso.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/coerce.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/index.d.cts","../../packages/env/src/web.ts","./drizzle.config.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/canary.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/experimental.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/index.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/canary.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/experimental.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/fallback.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/entry-constants.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/body-streams.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/cache-control.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/worker.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/constants.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/bundler.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/experimental/ppr.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/page-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/require-hook.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-baseline.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/random.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/date.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/node-environment.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-kind.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/cache-handlers/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/render-result.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/instrumentation/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/trace/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/trace/trace.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/trace/shared.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/trace/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/.bun/@next+env@16.1.3/node_modules/@next/env/dist/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/build-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/swc/generated-native.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/swc/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/shared/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/parse-stack.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/server/shared.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/debug-channel.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/i18n-provider.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/after/builtin-request-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/deep-readonly.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/render.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/with-router.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/router.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/route-loader.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/page-loader.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/readonly-url-search-params.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/app-router-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/flight-data-helpers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/segment-cache/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/segment-cache/navigation.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/pages/module.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/load-default-error-components.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-matchers/route-matcher.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/normalizer.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/request/suffix.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/request/rsc.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/request/next-data.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/static-paths/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/base-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/async-callback-set.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/next-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/lru-cache.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/use-cache/cache-life.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/next.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/route-module.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/load-components.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/adapter.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/cache-signal.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/fallback-params.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/lazy-result.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/implicit-tags.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/staged-rendering.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/client-segment.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/search-params.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/resolvers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/types/icons.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/metadata.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/lib/framework/boundary-components.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/collect-segment-data.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/rendering-mode.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/jsx-dev-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/client.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-page/module.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/async-storage/work-store.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/http.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/redirect-error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/templates/app-route.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-route/module.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/segment-config/app/app-segments.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/utils.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/turborepo-access-trace/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/turborepo-access-trace/result.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/turborepo-access-trace/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/export/routes/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/export/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/export/worker.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/worker.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/after/after.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/after/after-context.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/create-error-handler.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/params.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/route-matches/route-match.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request-meta.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/cli/next-test.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/config-shared.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/build/adapter/build-complete.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/pages/_app.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/app.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/use-cache/cache-tag.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/cache.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/pages/_document.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/document.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dynamic.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/pages/_error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/head.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/cookies.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/headers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/draft-mode.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/headers.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/image-component.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/image.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/link.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/link.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/unrecognized-action-error.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/forbidden.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/unauthorized.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/unstable-rethrow.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/navigation.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/router.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/client/script.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/script.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/after/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/server/request/connection.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/server.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/types/global.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/types/compiled.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/image-types/global.d.ts","./next-env.d.ts","../../node_modules/.bun/botid@1.4.2+9bc11be94d70553a/node_modules/botid/dist/next/config/index.d.ts","./next.config.ts","./src/middleware.ts","../../node_modules/.bun/@types+react@19.2.7/node_modules/@types/react/global.d.ts","../../node_modules/.bun/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.bun/@types+react@19.2.7/node_modules/@types/react/index.d.ts","../../node_modules/.bun/@types+react@19.2.7/node_modules/@types/react/jsx-runtime.d.ts","../../packages/ui/src/icons/index.tsx","./src/constants/site-constants.ts","./src/app/metadata.ts","./src/app/robots.ts","./src/types/blog.ts","../../node_modules/.bun/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../node_modules/.bun/vfile-message@4.0.2/node_modules/vfile-message/lib/index.d.ts","../../node_modules/.bun/vfile-message@4.0.2/node_modules/vfile-message/index.d.ts","../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/index.d.ts","../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/callable-instance.d.ts","../../node_modules/.bun/trough@2.2.0/node_modules/trough/lib/index.d.ts","../../node_modules/.bun/trough@2.2.0/node_modules/trough/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/index.d.ts","../../node_modules/.bun/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/html.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/token.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/decode.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/interface.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/default.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/serializer/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/index.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/info.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/find.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/normalize.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/index.d.ts","../../node_modules/.bun/hast-util-from-parse5@8.0.3/node_modules/hast-util-from-parse5/lib/index.d.ts","../../node_modules/.bun/hast-util-from-parse5@8.0.3/node_modules/hast-util-from-parse5/index.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/errors.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/types.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/index.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/index.d.ts","../../node_modules/.bun/rehype-parse@9.0.1/node_modules/rehype-parse/lib/index.d.ts","../../node_modules/.bun/rehype-parse@9.0.1/node_modules/rehype-parse/index.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/index.d.ts","../../node_modules/.bun/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.d.ts","../../node_modules/.bun/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/index.d.ts","../../node_modules/.bun/rehype-stringify@10.0.1/node_modules/rehype-stringify/index.d.ts","../../node_modules/.bun/rehype-slug@6.0.0/node_modules/rehype-slug/lib/index.d.ts","../../node_modules/.bun/rehype-slug@6.0.0/node_modules/rehype-slug/index.d.ts","../../node_modules/.bun/hast-util-is-element@3.0.0/node_modules/hast-util-is-element/lib/index.d.ts","../../node_modules/.bun/hast-util-is-element@3.0.0/node_modules/hast-util-is-element/index.d.ts","../../node_modules/.bun/rehype-autolink-headings@7.1.0/node_modules/rehype-autolink-headings/lib/index.d.ts","../../node_modules/.bun/rehype-autolink-headings@7.1.0/node_modules/rehype-autolink-headings/index.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/index.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/schema.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/index.d.ts","../../node_modules/.bun/rehype-sanitize@6.0.0/node_modules/rehype-sanitize/lib/index.d.ts","../../node_modules/.bun/rehype-sanitize@6.0.0/node_modules/rehype-sanitize/index.d.ts","./src/lib/blog/query.ts","./src/app/sitemap.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/helper.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/helper.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/standard-schema.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/error.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/cookies.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/openapi.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/endpoint.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/middleware.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/context.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/router.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/to-response.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/cookie.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/account.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/session.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/user.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/verification.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/get-tables.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/shared.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/types.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/logger.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/utils.d.mts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/types.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/general/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/general/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/compact/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/flattened/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/general/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/compact/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/flattened/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/general/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwk/thumbprint.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwk/embedded.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwks/local.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwks/remote.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/unsecured.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/export.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/import.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/decode_protected_header.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/decode_jwt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/errors.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/generate_key_pair.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/generate_secret.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/base64url.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/verify.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/apple.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/discord.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/figma.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/github.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/google.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/slack.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/kick.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/linear.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/vk.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/notion.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/naver.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/line.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/polar.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/context.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/api/index.d.mts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/identifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/check-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/default-value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/generated-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/schemable-identifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/delete-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/update-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/type-error.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/merge-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/type-utils.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/references-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/rename-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/raw-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alter-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/foreign-key-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/primary-key-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/modify-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/rename-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/where-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-schema-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/value-list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/from-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/group-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/group-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/having-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/join-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/limit-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/offset-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/collate-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/order-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/order-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alias-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-all-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/reference-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/simple-reference-expression-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/selection-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/common-table-expression-name-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/common-table-expression-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/with-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-modifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-source.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/explainable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/explain-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/set-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/fetch-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/top-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-schema-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/output-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/returning-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/when-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/merge-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-conflict-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-duplicate-key-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/or-action-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/insert-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/update-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/using-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/delete-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/refresh-materialized-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/query-id.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/compiled-query.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/database-connection.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/database-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/kysely-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/compilable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/default-value-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/data-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/data-type-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/foreign-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-column-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-drop-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/select-query-builder-expression.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/binary-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/value-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/column-type.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/binary-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/join-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/table-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/join-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic-reference-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/select-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/collate-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/order-by-item-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/order-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/group-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/where-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/no-result-error.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/having-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/set-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/streamable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/and-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/or-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/parens-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression-wrapper.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/order-by-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/select-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/coalesce-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/partition-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/partition-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/over-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/aggregate-function-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/partition-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/over-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/aggregate-function-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/function-module.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/case-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/case-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-path-leg-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-path-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-operator-chain-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-reference-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/json-path-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/tuple-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/select-from-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/expression-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/reference-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/unique-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/primary-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/check-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-schema-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-schema-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/raw-builder/raw-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-type-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-type-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/refresh-materialized-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/schema.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/primitive-value-list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/values-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/insert-values-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/returning-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/returning-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/output-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/delete-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/cte-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/with-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/delete-from-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/update-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/merge-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/merge-into-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-creator.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/log.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/savepoint-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/provide-controlled-connection.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/kysely.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/raw-builder/sql.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor-base.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/default-query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/noop-query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/default-insert-value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/unary-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/function-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/tuple-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/matched-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/cast-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/default-connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/single-connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/dummy-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/migration/migrator.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/migration/file-migration-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/camel-case/camel-case-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/infer-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/log-once.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/unary-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/init-options.d.mts","../../node_modules/.bun/@better-fetch+fetch@1.1.21/node_modules/@better-fetch/fetch/dist/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/atom/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/map/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/map-creator/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/task/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/computed/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/deep-map/path.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/deep-map/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/effect/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/keep-mount/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/plugin-client.d.mts","../../node_modules/.bun/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/type.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/plugin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/plugin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/helper.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/field.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/adapter-base.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/adapter-kysely.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/field-converter.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/adapters/kysely-adapter/types.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/get-migration.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/get-schema.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/color-depth.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/env-impl.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/internal-adapter.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/helper.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/standard-schema.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/error.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/cookies.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/openapi.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/endpoint.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/middleware.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/context.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/router.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/to-response.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/api.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/plugins.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/adapter.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/utils/get-request-ip.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/middlewares/oauth.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/middlewares/origin-check.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/middlewares/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/account.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/callback.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/email-verification.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/error.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/ok.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/password.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/session.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/sign-in.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/sign-out.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/sign-up.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/update-user.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/routes/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/api/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/error/codes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/error/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/auth.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/types/models.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/schema.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/to-zod.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/with-hooks.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/db/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/client/path-to-object.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/client/types.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/auth/full.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/oauth2/state.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/utils/hide-metadata.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/deprecate.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/error-codes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/id.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/json.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/string.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/utils/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/async_hooks/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/global.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/request-state.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/transaction.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/index.d.mts","../../node_modules/.bun/@better-auth+telemetry@1.4.15+a0cddfd1733416ff/node_modules/@better-auth/telemetry/dist/index.d.mts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/index.d.cts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/adapters/drizzle-adapter/drizzle-adapter.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/adapters/drizzle-adapter/index.d.mts","../../node_modules/.bun/@upstash+redis@1.35.4/node_modules/@upstash/redis/zmscore-dwj9vh1g.d.mts","../../node_modules/.bun/@upstash+redis@1.35.4/node_modules/@upstash/redis/nodejs.d.mts","../../node_modules/.bun/postgres@3.4.7/node_modules/postgres/types/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/entity.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/logger.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/casing.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/operations.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/sql.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/conditions.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/aggregate.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/sequence.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/int.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bigintt.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bytes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/date-duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/double-precision.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/localdate.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/localtime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/relative-duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/timestamptz.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/uuid.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/roles.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/policies.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/relations.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-promise.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/runnable-query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/refresh-materialized-view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/binary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/datetime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/double.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/float.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/int.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/mediumint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/tinyint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/varbinary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/year.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/migrator.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/bigserial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/cidr.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/double-precision.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/inet.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/sequence.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/int.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/interval.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/jsonb.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/line.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/macaddr.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/macaddr8.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/numeric.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/point.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/smallserial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/uuid.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/roles.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/policies.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils/array.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/binary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/datetime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/double.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/float.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/int.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/mediumint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/tinyint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/varbinary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/year.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore/driver.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/numeric.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/column-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/column.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/errors.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/cache.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/driver.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/index.d.ts","./src/lib/db/schema.ts","./src/lib/db/index.ts","./src/lib/auth/server.ts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/integrations/next-js.d.mts","./src/app/api/auth/[...all]/route.ts","./src/app/api/health/route.ts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/typealiases.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/index.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/zoderror.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/enumutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/partialutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/standard-schema.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/external.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/index.d.cts","../../node_modules/.bun/@upstash+redis@1.35.1/node_modules/@upstash/redis/zmscore-bsheakn7.d.mts","../../node_modules/.bun/@upstash+redis@1.35.1/node_modules/@upstash/redis/nodejs.d.mts","../../node_modules/.bun/@upstash+core-analytics@0.0.10/node_modules/@upstash/core-analytics/dist/index.d.ts","../../node_modules/.bun/@upstash+ratelimit@2.0.6+56bca893043c254b/node_modules/@upstash/ratelimit/dist/index.d.ts","./src/lib/rate-limit.ts","./src/app/api/sounds/search/route.ts","../../node_modules/.bun/feed@5.1.0/node_modules/feed/lib/feed.d.ts","./src/app/rss.xml/route.ts","../../node_modules/.bun/lucide-react@0.468.0+f4eacebf2041cd4f/node_modules/lucide-react/dist/lucide-react.d.ts","../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/clsx.d.mts","../../node_modules/.bun/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/types.d.ts","./src/utils/ui.ts","../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/index.d.ts","../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/index.d.ts","../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/types.d-bq-qm38r.d.ts","../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/types/index.d.ts","../../node_modules/.bun/motion@12.23.6+6dbf9a050bc9aadb/node_modules/motion/dist/react.d.ts","../../node_modules/.bun/react-country-flag@3.1.0+f4eacebf2041cd4f/node_modules/react-country-flag/dist/index.d.ts","./src/components/language-select.tsx","./src/constants/captions-constants.ts","./src/types/editor.ts","./src/constants/editor-constants.ts","./src/types/export.ts","./src/constants/export-constants.ts","./src/constants/font-constants.ts","./src/types/timeline.ts","./src/types/project.ts","./src/constants/project-constants.ts","./src/constants/stickers-constants.ts","./src/constants/timeline-constants.tsx","./src/constants/text-constants.ts","./src/types/transcription.ts","./src/constants/transcription-constants.ts","./src/core/managers/playback-manager.ts","./src/utils/id.ts","./src/lib/timeline/track-utils.ts","./src/lib/timeline/element-utils.ts","./src/lib/timeline/zoom-utils.ts","./src/lib/timeline/index.ts","./src/lib/commands/base-command.ts","./src/lib/commands/timeline/track/add-track.ts","./src/lib/commands/timeline/track/remove-track.ts","./src/lib/commands/timeline/track/toggle-track-mute.ts","./src/lib/commands/timeline/track/toggle-track-visibility.ts","./src/lib/commands/timeline/track/index.ts","./src/services/storage/types.ts","./src/types/assets.ts","./src/lib/commands/timeline/element/insert-element.ts","./src/lib/commands/timeline/element/delete-elements.ts","./src/lib/commands/timeline/element/duplicate-elements.ts","./src/lib/commands/timeline/element/update-element-trim.ts","./src/lib/commands/timeline/element/update-element-duration.ts","./src/lib/commands/timeline/element/update-element-start-time.ts","./src/lib/commands/timeline/element/split-elements.ts","./src/lib/commands/timeline/element/update-text-element.ts","./src/lib/commands/timeline/element/toggle-elements-visibility.ts","./src/lib/commands/timeline/element/toggle-elements-muted.ts","./src/lib/commands/timeline/element/move-elements.ts","./src/lib/commands/timeline/element/index.ts","./src/lib/commands/timeline/clipboard/paste.ts","./src/lib/commands/timeline/clipboard/index.ts","./src/lib/commands/timeline/index.ts","./src/core/managers/timeline-manager.ts","./src/services/storage/indexeddb-adapter.ts","./src/services/storage/opfs-adapter.ts","./src/types/sounds.ts","./src/services/storage/migrations/base.ts","./src/services/storage/migrations/version-manager.ts","./src/services/storage/migrations/runner.ts","./src/lib/scenes.ts","./src/services/storage/migrations/v0-to-v1.ts","./src/services/storage/migrations/v1-to-v2.ts","./src/services/storage/migrations/index.ts","./src/services/storage/storage-service.ts","./src/types/time.ts","./src/lib/time.ts","./src/lib/timeline/bookmarks.ts","./src/lib/commands/scene/create-scene.ts","./src/lib/commands/scene/delete-scene.ts","./src/lib/commands/scene/rename-scene.ts","./src/lib/commands/scene/toggle-bookmark.ts","./src/lib/commands/scene/remove-bookmark.ts","./src/lib/commands/scene/index.ts","./src/core/managers/scenes-manager.ts","../../node_modules/.bun/sonner@1.7.4+6dbf9a050bc9aadb/node_modules/sonner/dist/index.d.ts","./src/lib/commands/project/update-project-settings.ts","./src/lib/commands/project/index.ts","./src/lib/media/media-utils.ts","../../node_modules/.bun/@types+dom-webcodecs@0.1.13/node_modules/@types/dom-webcodecs/webcodecs.generated.d.ts","../../node_modules/.bun/@types+dom-webcodecs@0.1.13/node_modules/@types/dom-webcodecs/index.d.ts","../../node_modules/.bun/@types+dom-mediacapture-transform@0.1.11/node_modules/@types/dom-mediacapture-transform/index.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/misc.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/metadata.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/packet.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/codec-data.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/subtitles.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/codec.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/sample.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/encode.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/media-source.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/output-format.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/target.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/output.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/source.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input-format.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/media-sink.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input-track.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/conversion.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/custom-coder.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/index.d.ts","./src/lib/media/audio.ts","./src/lib/media/mediabunny.ts","./src/lib/media/processing.ts","./src/core/managers/project-manager.ts","./src/services/media/video-cache.ts","./src/core/managers/media-manager.ts","./src/services/renderer/canvas-renderer.ts","./src/services/renderer/nodes/base-node.ts","./src/services/renderer/nodes/root-node.ts","../../node_modules/.bun/eventemitter3@5.0.1/node_modules/eventemitter3/index.d.ts","./src/services/renderer/scene-exporter.ts","./src/services/renderer/nodes/video-node.ts","./src/services/renderer/nodes/image-node.ts","./src/services/renderer/nodes/text-node.ts","./src/services/renderer/nodes/sticker-node.ts","./src/lib/gradients/parser.ts","./src/lib/gradients/canvas.ts","./src/lib/gradients/index.ts","./src/services/renderer/nodes/color-node.ts","./src/services/renderer/nodes/blur-background-node.ts","./src/services/renderer/scene-builder.ts","./src/core/managers/renderer-manager.ts","./src/lib/commands/media/add-media-asset.ts","./src/lib/commands/media/remove-media-asset.ts","./src/lib/commands/media/index.ts","./src/lib/commands/index.ts","./src/core/managers/commands.ts","./src/core/managers/save-manager.ts","./src/core/index.ts","./src/data/colors/pattern-craft.ts","./src/data/colors/solid.ts","./src/hooks/use-editor.ts","./src/types/drag.ts","./src/lib/drag-data.ts","./src/hooks/use-file-upload.ts","./src/hooks/use-infinite-scroll.ts","./src/types/keybinding.ts","./src/lib/actions/definitions.ts","./src/lib/actions/types.ts","./src/lib/actions/registry.ts","./src/lib/actions/index.ts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/vanilla.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/react.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/index.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware/redux.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware/devtools.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware/subscribewithselector.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware/combine.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware/persist.d.mts","../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware.d.mts","./src/utils/browser.ts","./src/utils/platform.ts","./src/stores/keybindings-store.ts","./src/hooks/use-keybindings.ts","./src/hooks/use-keyboard-shortcuts-help.ts","./src/hooks/use-raf-loop.ts","./src/hooks/use-reveal-item.ts","./src/stores/sounds-store.ts","./src/hooks/use-sound-search.ts","./src/hooks/actions/use-action-handler.ts","./src/stores/timeline-store.ts","./src/hooks/timeline/element/use-element-selection.ts","./src/hooks/actions/use-editor-actions.ts","./src/hooks/timeline/use-edge-auto-scroll.ts","./src/hooks/timeline/use-scroll-sync.ts","./src/hooks/timeline/use-selection-box.ts","./src/hooks/timeline/use-snap-indicator-position.ts","./src/lib/timeline/drop-utils.ts","./src/hooks/timeline/use-timeline-drag-drop.ts","./src/hooks/timeline/use-timeline-playhead.ts","./src/hooks/timeline/use-timeline-seek.ts","./src/hooks/timeline/use-timeline-snapping.ts","./src/hooks/timeline/use-timeline-zoom.ts","./src/hooks/timeline/element/use-element-interaction.ts","./src/hooks/timeline/element/use-element-resize.ts","./src/lib/export.ts","./src/lib/iconify-api.ts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/client/react/react-store.d.mts","../../node_modules/.bun/better-auth@1.4.15+dd42c8d3451e57ba/node_modules/better-auth/dist/client/react/index.d.mts","./src/lib/auth/client.ts","./src/lib/transcription/caption.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/onnx-model.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-factory.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-conversion.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-utils.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/type-helper.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/onnx-value.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/inference-session.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/backend-impl.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/backend.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/env.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/trace.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/index.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/env.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/core.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/devices.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/dtypes.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/hub.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/backends/onnx.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/maths.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/tensor.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/configs.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/data-structures.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/tokenizers.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/streamers.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/configuration_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/stopping_criteria.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/logits_process.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/parameters.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/generation_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/image.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/image_processors_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/feature_extraction_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/processing_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/audio.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/processing_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/pipelines.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/video.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/encodec/feature_extraction_encodec.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/clap/feature_extraction_clap.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dac/feature_extraction_dac.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/gemma3n/feature_extraction_gemma3n.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/moonshine/feature_extraction_moonshine.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/parakeet/feature_extraction_parakeet.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pyannote/feature_extraction_pyannote.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/seamless_m4t/feature_extraction_seamless_m4t.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/snac/feature_extraction_snac.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/speecht5/feature_extraction_speecht5.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2/feature_extraction_wav2vec2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wespeaker/feature_extraction_wespeaker.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/feature_extraction_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/feature_extractors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/feature_extraction_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/beit/image_processing_beit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/bit/image_processing_bit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/chinese_clip/image_processing_chinese_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/clip/image_processing_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/convnext/image_processing_convnext.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/deit/image_processing_deit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/detr/image_processing_detr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dinov3_vit/image_processing_dinov3_vit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/donut/image_processing_donut.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dpt/image_processing_dpt.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/efficientnet/image_processing_efficientnet.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/glpn/image_processing_glpn.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/grounding_dino/image_processing_grounding_dino.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/idefics3/image_processing_idefics3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/janus/image_processing_janus.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/jina_clip/image_processing_jina_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/llava_onevision/image_processing_llava_onevision.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/maskformer/image_processing_maskformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mask2former/image_processing_mask2former.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v1/image_processing_mobilenet_v1.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v2/image_processing_mobilenet_v2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v3/image_processing_mobilenet_v3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v4/image_processing_mobilenet_v4.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilevit/image_processing_mobilevit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/nougat/image_processing_nougat.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlvit/image_processing_owlvit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlv2/image_processing_owlv2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/phi3_v/image_processing_phi3_v.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pixtral/image_processing_pixtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pvt/image_processing_pvt.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/qwen2_vl/image_processing_qwen2_vl.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/rt_detr/image_processing_rt_detr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam/image_processing_sam.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam2/image_processing_sam2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam3/image_processing_sam3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/segformer/image_processing_segformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/siglip/image_processing_siglip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/smolvlm/image_processing_smolvlm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/swin2sr/image_processing_swin2sr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vit/image_processing_vit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vitmatte/image_processing_vitmatte.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vitpose/image_processing_vitpose.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/yolos/image_processing_yolos.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/image_processors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/image_processing_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/florence2/processing_florence2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/gemma3n/processing_gemma3n.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/grounding_dino/processing_grounding_dino.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/idefics3/processing_idefics3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/janus/processing_janus.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/jina_clip/processing_jina_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/llava/processing_llava.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mgp_str/processing_mgp_str.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/moonshine/processing_moonshine.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlvit/processing_owlvit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/paligemma/processing_paligemma.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/phi3_v/processing_phi3_v.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pixtral/processing_pixtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pyannote/processing_pyannote.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/qwen2_vl/processing_qwen2_vl.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam/processing_sam.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam2/processing_sam2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/smolvlm/processing_smolvlm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/speecht5/processing_speecht5.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/ultravox/processing_ultravox.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/voxtral/processing_voxtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2/processing_wav2vec2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/processing_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/processors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/transformers.d.ts","./src/services/transcription/worker.ts","./src/services/transcription/index.ts","./src/stores/assets-panel-store.ts","./src/stores/editor-store.ts","./src/stores/panel-store.ts","./src/types/stickers.ts","./src/stores/stickers-store.ts","./src/stores/text-properties-store.ts","./src/utils/date.ts","./src/utils/geometry.ts","./src/utils/math.ts","./src/utils/string-utils.ts","../../node_modules/.bun/@radix-ui+react-accessible-icon@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-accessible-icon/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-context@1.1.2+0e2fb8dbc083adda/node_modules/@radix-ui/react-context/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-primitive@2.1.3+b41f8805ee63d2ff/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-collapsible@1.1.11+b41f8805ee63d2ff/node_modules/@radix-ui/react-collapsible/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-accordion@1.2.11+b41f8805ee63d2ff/node_modules/@radix-ui/react-accordion/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dismissable-layer@1.1.10+b41f8805ee63d2ff/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-focus-scope@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-portal@1.1.9+b41f8805ee63d2ff/node_modules/@radix-ui/react-portal/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dialog@1.1.14+b41f8805ee63d2ff/node_modules/@radix-ui/react-dialog/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-alert-dialog@1.1.14+b41f8805ee63d2ff/node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-aspect-ratio@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-aspect-ratio/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-avatar@1.1.10+b41f8805ee63d2ff/node_modules/@radix-ui/react-avatar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-checkbox@1.3.2+b41f8805ee63d2ff/node_modules/@radix-ui/react-checkbox/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-arrow@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-arrow/dist/index.d.mts","../../node_modules/.bun/@radix-ui+rect@1.1.1/node_modules/@radix-ui/rect/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-popper@1.2.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-popper/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-roving-focus@1.1.10+b41f8805ee63d2ff/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-menu@2.1.15+b41f8805ee63d2ff/node_modules/@radix-ui/react-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-context-menu@2.2.15+b41f8805ee63d2ff/node_modules/@radix-ui/react-context-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-direction@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-direction/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dropdown-menu@2.1.15+b41f8805ee63d2ff/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-label@2.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-label/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-form@0.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-form/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-hover-card@1.1.14+b41f8805ee63d2ff/node_modules/@radix-ui/react-hover-card/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-menubar@1.1.15+b41f8805ee63d2ff/node_modules/@radix-ui/react-menubar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-visually-hidden@1.2.3+b41f8805ee63d2ff/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-navigation-menu@1.2.13+b41f8805ee63d2ff/node_modules/@radix-ui/react-navigation-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-one-time-password-field@0.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-one-time-password-field/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-password-toggle-field@0.1.2+b41f8805ee63d2ff/node_modules/@radix-ui/react-password-toggle-field/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-popover@1.1.14+b41f8805ee63d2ff/node_modules/@radix-ui/react-popover/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-progress@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-progress/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-radio-group@1.3.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-radio-group/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-scroll-area@1.2.9+b41f8805ee63d2ff/node_modules/@radix-ui/react-scroll-area/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-select@2.2.5+b41f8805ee63d2ff/node_modules/@radix-ui/react-select/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-separator@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-separator/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-slider@1.3.5+b41f8805ee63d2ff/node_modules/@radix-ui/react-slider/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-slot@1.2.3+0e2fb8dbc083adda/node_modules/@radix-ui/react-slot/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-switch@1.2.5+b41f8805ee63d2ff/node_modules/@radix-ui/react-switch/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-tabs@1.1.12+b41f8805ee63d2ff/node_modules/@radix-ui/react-tabs/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toast@1.2.14+b41f8805ee63d2ff/node_modules/@radix-ui/react-toast/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toggle@1.1.9+b41f8805ee63d2ff/node_modules/@radix-ui/react-toggle/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toggle-group@1.1.10+b41f8805ee63d2ff/node_modules/@radix-ui/react-toggle-group/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toolbar@1.1.10+b41f8805ee63d2ff/node_modules/@radix-ui/react-toolbar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-tooltip@1.2.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-tooltip/dist/index.d.mts","../../node_modules/.bun/radix-ui@1.4.2+b41f8805ee63d2ff/node_modules/radix-ui/dist/index.d.mts","../../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/types.d.ts","../../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.d.ts","./src/components/ui/button.tsx","../../node_modules/.bun/next-themes@0.4.6+6dbf9a050bc9aadb/node_modules/next-themes/dist/index.d.ts","./src/components/theme-toggle.tsx","./src/components/header.tsx","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconsmanifest.d.ts","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconbase.d.ts","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconcontext.d.ts","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/index.d.ts","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/ri/index.d.ts","../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/fa6/index.d.ts","./src/components/footer.tsx","./src/app/base-page.tsx","./src/components/ui/sonner.tsx","./src/components/ui/tooltip.tsx","../../node_modules/.bun/botid@1.4.2+9bc11be94d70553a/node_modules/botid/dist/client/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@next/font/dist/types.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","../../node_modules/.bun/next@16.1.3+6dbf9a050bc9aadb/node_modules/next/font/google/index.d.ts","./src/app/layout.tsx","./src/components/landing/handlebars.tsx","./src/components/landing/hero.tsx","./src/app/page.tsx","./src/components/ui/avatar.tsx","./src/components/ui/separator.tsx","./src/app/blog/page.tsx","./src/components/ui/prose.tsx","./src/app/blog/[slug]/page.tsx","./src/components/ui/card.tsx","./src/components/github-contribute-section.tsx","./src/app/contributors/page.tsx","./src/app/editor/[project_id]/layout.tsx","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/panel.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/types.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/panelgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/panelresizehandleregistry.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/panelresizehandle.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/constants.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/assert.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/csp.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/cursor.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelelementsforgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelgroupelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelementindex.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelementsforgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandlepanelids.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/types.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/getintersectingrectangle.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/intersects.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/declarations/src/index.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/react-resizable-panels.cjs.d.mts","./src/components/ui/resizable.tsx","./src/components/editor/assets-panel/tabbar.tsx","./src/components/editor/assets-panel/drag-overlay.tsx","./src/components/ui/context-menu.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/ui/aspect-ratio.tsx","./src/components/editor/draggable-item.tsx","./src/components/editor/assets-panel/views/media.tsx","./src/components/ui/scroll-area.tsx","./src/components/ui/tabs.tsx","./src/components/editor/panel-base-view.tsx","./src/components/editor/assets-panel/views/text.tsx","./src/components/ui/input.tsx","./src/components/ui/dialog.tsx","./src/components/editor/assets-panel/views/sounds.tsx","./src/components/ui/input-with-back.tsx","./src/components/editor/assets-panel/views/stickers.tsx","./src/components/ui/select.tsx","./src/components/editor/properties-panel/property-item.tsx","./src/data/colors/syntax-ui.tsx","./src/components/editor/assets-panel/views/settings.tsx","./src/components/editor/assets-panel/views/captions.tsx","./src/components/editor/assets-panel/index.tsx","./src/components/editor/properties-panel/audio-properties.tsx","./src/components/editor/properties-panel/video-properties.tsx","./src/components/ui/textarea.tsx","./src/components/ui/font-picker.tsx","./src/components/ui/slider.tsx","./src/components/ui/color-picker.tsx","./src/components/editor/properties-panel/text-properties.tsx","./src/components/editor/properties-panel/index.tsx","../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/event-emitter.d.ts","../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/base-plugin.d.ts","../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/dom.d.ts","../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/player.d.ts","../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/wavesurfer.d.ts","./src/components/editor/timeline/audio-waveform.tsx","./src/components/editor/timeline/timeline-element.tsx","./src/components/editor/timeline/timeline-track.tsx","./src/components/editor/timeline/timeline-playhead.tsx","./src/components/editor/selection-box.tsx","./src/components/editor/timeline/snap-indicator.tsx","./src/components/ui/split-button.tsx","./src/components/editor/editable-timecode.tsx","./src/components/ui/sheet.tsx","./src/components/editor/scenes-view.tsx","./src/components/editor/timeline/timeline-toolbar.tsx","./src/components/editor/timeline/timeline-tick.tsx","./src/components/editor/timeline/timeline-ruler.tsx","./src/components/editor/timeline/bookmarks.tsx","./src/components/editor/timeline/drag-line.tsx","./src/components/editor/timeline/index.tsx","../../node_modules/.bun/use-deep-compare-effect@1.8.1+f4eacebf2041cd4f/node_modules/use-deep-compare-effect/dist/index.d.ts","./src/components/editor/preview-panel.tsx","./src/components/keyboard-shortcuts-help.tsx","./src/components/rename-project-dialog.tsx","./src/components/editor/delete-project-dialog.tsx","./src/components/ui/popover.tsx","./src/components/ui/label.tsx","./src/components/ui/radio-group.tsx","./src/components/ui/progress.tsx","./src/components/ui/checkbox.tsx","./src/components/editor/export-button.tsx","./src/components/editor/editor-header.tsx","./src/components/providers/editor-provider.tsx","../../node_modules/.bun/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/footer.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/index.d.ts","../../node_modules/.bun/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.d.ts","../../node_modules/.bun/remark-rehype@11.1.2/node_modules/remark-rehype/index.d.ts","../../node_modules/.bun/react-markdown@10.1.0+0e2fb8dbc083adda/node_modules/react-markdown/lib/index.d.ts","../../node_modules/.bun/react-markdown@10.1.0+0e2fb8dbc083adda/node_modules/react-markdown/index.d.ts","./src/components/editor/onboarding.tsx","./src/components/editor/migration-dialog.tsx","./src/app/editor/[project_id]/page.tsx","./src/components/ui/accordion.tsx","./src/app/privacy/page.tsx","./src/components/ui/skeleton.tsx","./src/app/projects/page.tsx","./src/components/ui/badge.tsx","./src/components/ui/react-markdown-wrapper.tsx","./src/app/roadmap/page.tsx","./src/app/sponsors/page.tsx","./src/app/terms/page.tsx","./src/components/storage-provider.tsx","./src/components/editor/layout-guide-overlay.tsx","./src/components/ui/alert-dialog.tsx","./src/components/ui/alert.tsx","./src/components/ui/breadcrumb.tsx","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/fp/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/add.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/adddays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/areintervalsoverlapping.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/clamp.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/closestindexto.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/closestto.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/compareasc.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/comparedesc.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructfrom.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructnow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/daystoweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendardays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendaryears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceindays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachdayofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachhourofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachminuteofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachmonthofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachquarterofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachyearofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofhour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofsecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endoftoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endoftomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/formatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/longformatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistance.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancestrict.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancetonow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancetonowstrict.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatiso.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatiso9075.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatisoduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrfc3339.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrfc7231.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrelative.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/fromunixtime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdaysinmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdaysinyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/defaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdefaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/gethours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweeksinyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getoverlappingdaysinintervals.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/gettime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getunixtime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweekofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweeksinmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/interval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intervaltoduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intlformat.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intlformatdistance.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isafter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isbefore.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isequal.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isexists.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfirstdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfuture.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/islastdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isleapyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ismatch.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ismonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ispast.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamehour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamemonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamequarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamesecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthishour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthismonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthissecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isvalid.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/iswednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isweekend.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/iswithininterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/lightformatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lightformat.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/max.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/milliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/min.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/monthstoquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/monthstoyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextmonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextsaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextsunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nexttuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextwednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/setter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parser.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parseiso.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parsejson.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousmonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoussaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoussunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoustuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previouswednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/quarterstomonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/quarterstoyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/roundtonearesthours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/roundtonearestminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/set.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdefaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/sethours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofhour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofsecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startoftoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startoftomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/sub.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/submilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/submonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/todate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/transpose.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/weekstodays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstodays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstomonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstoquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/index.d.mts","../../node_modules/.bun/react-day-picker@8.10.1+97355278ff284068/node_modules/react-day-picker/dist/index.d.ts","./src/components/ui/calendar.tsx","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/alignment.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/noderects.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/axis.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slidestoscroll.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/limit.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrollcontain.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/dragtracker.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/utils.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/animations.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/counter.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/eventhandler.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/eventstore.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/percentofview.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/resizehandler.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/vector1d.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrollbody.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrollbounds.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrolllooper.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrollprogress.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slideregistry.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrolltarget.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/scrollto.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slidefocus.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/translate.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slidelooper.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slideshandler.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/slidesinview.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/engine.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/optionshandler.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/plugins.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/emblacarousel.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/draghandler.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/components/options.d.ts","../../node_modules/.bun/embla-carousel@8.6.0/node_modules/embla-carousel/esm/index.d.ts","../../node_modules/.bun/embla-carousel-react@8.6.0+f4eacebf2041cd4f/node_modules/embla-carousel-react/esm/components/useemblacarousel.d.ts","../../node_modules/.bun/embla-carousel-react@8.6.0+f4eacebf2041cd4f/node_modules/embla-carousel-react/esm/index.d.ts","./src/components/ui/carousel.tsx","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/container/surface.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/container/layer.d.ts","../../node_modules/.bun/@types+d3-time@3.0.4/node_modules/@types/d3-time/index.d.ts","../../node_modules/.bun/@types+d3-scale@4.0.9/node_modules/@types/d3-scale/index.d.ts","../../node_modules/.bun/victory-vendor@36.9.2/node_modules/victory-vendor/d3-scale.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/xaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/yaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/types.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/defaultlegendcontent.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/payload/getuniqpayload.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/legend.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/defaulttooltipcontent.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/tooltip.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/responsivecontainer.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/cell.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/text.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/label.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/labellist.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/component/customized.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/sector.d.ts","../../node_modules/.bun/@types+d3-path@3.1.1/node_modules/@types/d3-path/index.d.ts","../../node_modules/.bun/@types+d3-shape@3.1.7/node_modules/@types/d3-shape/index.d.ts","../../node_modules/.bun/victory-vendor@36.9.2/node_modules/victory-vendor/d3-shape.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/curve.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/rectangle.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/polygon.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/dot.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/cross.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/symbols.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/polargrid.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/polarradiusaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/polarangleaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/pie.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/radar.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/polar/radialbar.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/brush.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/ifoverflowmatches.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/referenceline.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/referencedot.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/referencearea.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/cartesianaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/cartesiangrid.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/line.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/area.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/barutils.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/bar.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/zaxis.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/errorbar.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/cartesian/scatter.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/getlegendprops.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/chartutils.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/accessibilitymanager.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/types.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/generatecategoricalchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/linechart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/barchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/piechart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/treemap.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/sankey.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/radarchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/scatterchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/areachart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/radialbarchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/composedchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/sunburstchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/shape/trapezoid.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/numberaxis/funnel.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/chart/funnelchart.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/util/global.d.ts","../../node_modules/.bun/recharts@2.15.4+6dbf9a050bc9aadb/node_modules/recharts/types/index.d.ts","./src/components/ui/chart.tsx","./src/components/ui/collapsible.tsx","../../node_modules/.bun/@radix-ui+react-dismissable-layer@1.1.11+b41f8805ee63d2ff/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dialog@1.1.15+b41f8805ee63d2ff/node_modules/@radix-ui/react-dialog/dist/index.d.mts","../../node_modules/.bun/cmdk@1.1.1+b41f8805ee63d2ff/node_modules/cmdk/dist/index.d.ts","./src/components/ui/command.tsx","../../node_modules/.bun/vaul@1.1.2+b41f8805ee63d2ff/node_modules/vaul/dist/index.d.mts","./src/components/ui/drawer.tsx","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/constants.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/utils/createsubject.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/events.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/path/common.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/path/eager.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/path/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/fieldarray.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/resolvers.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/form.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/utils.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/fields.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/errors.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/validator.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/controller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/types/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/controller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/form.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/logic/appenderrors.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/logic/createformcontrol.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/logic/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/usecontroller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/usefieldarray.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/useform.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/useformcontext.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/useformstate.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/usewatch.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/utils/get.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/utils/set.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/utils/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+f4eacebf2041cd4f/node_modules/react-hook-form/dist/index.d.ts","./src/components/ui/form.tsx","./src/components/ui/hover-card.tsx","../../node_modules/.bun/input-otp@1.4.2+6dbf9a050bc9aadb/node_modules/input-otp/dist/index.d.ts","./src/components/ui/input-otp.tsx","./src/components/ui/menubar.tsx","./src/components/ui/navigation-menu.tsx","./src/components/ui/pagination.tsx","../../node_modules/.bun/libphonenumber-js@1.12.10/node_modules/libphonenumber-js/types.d.ts","../../node_modules/.bun/libphonenumber-js@1.12.10/node_modules/libphonenumber-js/core/index.d.ts","../../node_modules/.bun/libphonenumber-js@1.12.10/node_modules/libphonenumber-js/min/index.d.ts","../../node_modules/.bun/react-phone-number-input@3.4.12+6dbf9a050bc9aadb/node_modules/react-phone-number-input/index.d.ts","../../node_modules/.bun/react-phone-number-input@3.4.12+6dbf9a050bc9aadb/node_modules/react-phone-number-input/flags/index.d.ts","./src/components/ui/phone-input.tsx","./src/components/ui/switch.tsx","./src/components/ui/table.tsx","./src/components/ui/toast.tsx","./src/components/ui/toggle.tsx","./src/components/ui/toggle-group.tsx","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/globals.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/s3.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/fetch.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/bun.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/globals.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/s3.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/fetch.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/bun.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/extensions.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/devserver.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/ffi.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/html-rewriter.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/jsc.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/sqlite.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/index.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/test.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/wasm.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/overrides.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/deprecated.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/redis.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/shell.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/experimental.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/sql.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/security.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/bun.ns.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/index.d.ts","../../node_modules/.bun/@types+bun@1.2.21+fccada1f982c16e9/node_modules/@types/bun/index.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/extensions.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/devserver.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/ffi.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/html-rewriter.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/jsc.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/sqlite.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/vendor/expect-type/index.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/test.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/wasm.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/overrides.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/deprecated.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/redis.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/shell.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/serve.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/sql.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/security.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/bundle.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/bun.ns.d.ts","../../node_modules/.bun/bun-types@1.3.6/node_modules/bun-types/index.d.ts","../../node_modules/.bun/@types+bun@1.3.6/node_modules/@types/bun/index.d.ts","../../node_modules/.bun/pg-types@2.2.0/node_modules/pg-types/index.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/messages.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/serializer.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/parser.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/index.d.ts","../../node_modules/.bun/@types+pg@8.15.4/node_modules/@types/pg/lib/type-overrides.d.ts","../../node_modules/.bun/@types+pg@8.15.4/node_modules/@types/pg/index.d.ts"],"fileIdsList":[[85,87,90,135,186,264,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,584,585,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,587,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1421,1422,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,580,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,580,1438,1443,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,1819,1826,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,556,568,584,598,658,1827,1839,1841,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,558,584,598,658,1827,1838,1839,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,558,584,594,595,1447,1816,1827,1838,1843,1844,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,568,1761,1868,1890,1898,1919,1921,1931,1932,1966,1967,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,571,596,1817,1828,1829,1830,1833,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,595,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,595,1819,1826,1836,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,595,1827,1839,1969,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,556,558,568,1447,1465,1523,1581,1765,1816,1829,1843,1872,1880,1923,1924,1929,1967,1971,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,1450,1827,1844,1973,1974,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,595,658,1445,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,584,595,658,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,556,558,584,595,1447,1827,1843,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1816,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1759,1839,1869,1875,1879,1882,1884,1888,1889,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1759,1829,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1457,1458,1469,1470,1550,1551,1581,1630,1758,1816,1878,1886,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1464,1468,1485,1523,1552,1581,1584,1606,1759,1816,1829,1870,1871,1872,1874,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,556,1447,1450,1465,1466,1579,1580,1581,1760,1766,1878,1885,1886,1887,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1504,1585,1607,1608,1816,1839,1872,1876,1877,1880,1881,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,556,1447,1450,1467,1523,1585,1626,1762,1763,1816,1829,1874,1876,1878,1883,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1469,1475,1581,1874,1878,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1816,1881,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,274,275,276,1447,1450,1581,1582,1583,1816,1829,1873,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1513,1514,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,558,568,595,1447,1523,1581,1816,1818,1825,1872,1922,1923,1924,1930,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,594,1447,1450,1461,1462,1581,1625,1816,1886,1925,1926,1927,1928,1929,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,556,1760,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1581,1881,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,595,1447,1816,1881,1965,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,1839,1876,1877,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1556,1558,1570,1581,1605,1920,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1581,1611,1876,1891,1892,1897,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1463,1464,1466,1581,1764,1767,1768,1816,1829,1878,1880,1886,1893,1894,1895,1896,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1508,1523,1581,1816,1881,1912,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1903,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1468,1581,1876,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1617,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1464,1468,1477,1581,1610,1611,1614,1615,1618,1619,1620,1621,1622,1623,1871,1876,1906,1907,1908,1909,1914,1916,1917,1918,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1616,1621,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1464,1468,1477,1485,1526,1581,1590,1611,1621,1624,1759,1871,1904,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1468,1581,1619,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1466,1468,1581,1876,1915,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1468,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1450,1468,1514,1581,1590,1610,1816,1829,1895,1910,1911,1913,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,1464,1468,1581,1611,1613,1621,1905,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,556,558,595,1768,1824,1825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,558,594,595,1447,1816,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,556,558,594,595,1447,1450,1455,1816,1818,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1523,1602,1604,1816,1881,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,556,558,1447,1816,1835,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1455,1456,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,568,1447,1581,1603,1612,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1816,1880,1881,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1512,1523,1581,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1450,1816,1817,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1813,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1813,1816,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1815,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1813,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1813,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1813,1815,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1816,2240,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1816,2277,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,2290,2348,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,274,275,276,1450,1880,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1881,2352,2353,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1813,1815,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1813,1876,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,2355,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1463,1885,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1813,1926,2386,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,2389,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1455,1816,1880,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1816,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1447,1450,1816,1876,1880,1925,2354,2397,2398,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,1965,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,1867,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1803,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1450,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1523,1817,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1816,1839,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1450,1813,1815,2403,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1457,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1459,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1461,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1465,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,594,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1468,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1464,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1470,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1472,1501,1522,1553,1555,1571,1576,1577,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1575,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1473,1475,1485,1512,1554,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1461,1464,1465,1466,1473,1508,1511,1512,1523,1525,1552,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1461,1550,1558,1560,1570,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1474,1508,1512,1515,1521,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1477,1486,1500,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1590,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1581,1609,1610,1611,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1464,1468,1473,1514,1581,1611,1617,1621,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1464,1514,1578,1610,1621,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1610,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1468,1477,1581,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1464,1468,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1464,1468,1475,1514,1523,1552,1581,1582,1583,1617,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1468,1514,1581,1613,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1468,1514,1581,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1468,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1583,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1590,1602,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1590,1601,1602,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1607,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1586,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1587,1588,1589,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1588,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1587,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,1628,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,1113,1115,1117,1420,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,598,608,639,646,648,652,657,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1478,1500,1521,1525,1574,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1473,1478,1485,1512,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1572,1573,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1475,1478,1485,1512,1554,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1524,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1465,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1478,1508,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1516,1517,1518,1519,1520,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1478,1508,1515,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1498,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1473,1474,1475,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1477,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1473,1474,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1468,1473,1474,1475,1478,1485,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1474,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1473,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1475,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1478,1578,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1483,1497,1499,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1479,1480,1481,1482,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,1118,1418,1419,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1318,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1461,1462,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1565,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1565,1566,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1475,1477,1485,1526,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1485,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1485,1549,1550,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1485,1523,1526,1549,1551,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,264,1117,1442,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1473,1474,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1513,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1514,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1468,1474,1475,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1468,1469,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1474,1475,1476,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1468,1473,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1470,1471,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1549,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1557,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1556,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1556,1557,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1556,1557,1567,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1556,1557,1561,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1556,1557,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1549,1556,1557,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1465,1466,1477,1485,1558,1561,1562,1563,1564,1568,1569,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1549,1556,1558,1559,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1484,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1505,1506,1507,1509,1510,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1502,1505,1506,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1484,1502,1505,1508,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1466,1502,1505,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1502,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1465,1484,1485,1502,1503,1504,1511,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1465,1485,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1470,1471,1757,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1470,1471,1756,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1447,1593,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1459,1465,1466,1593,1599,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1586,1590,1593,1599,1600,1601,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1460,1593,1599,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1475,1504,1512,1523,1578,1593,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1467,1475,1578,1593,1626,1762,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1593,1599,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1464,1593,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1590,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1467,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,1448,1449,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,671,672,675,676,680,690,691,692,730,765,1018,1035,1036,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,671,765,1035,1104,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1104,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1105,1106,1107,1108,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,690,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,681,682,683,684,685,686,687,690,1018,1035,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1036,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1018,1035,1036,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,681,682,683,684,685,686,687,688,689,1018,1035,1036,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,690,1018,1035,1036,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1018,1035,1036,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,673,674,675,676,677,678,679,1036,1037,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,1034,1035,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,691,1048,1049,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1084,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,672,765,1018,1033,1035,1038,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,692,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,692,730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,692,693,694,695,696,728,729,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,1035,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,692,727,730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,727,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,692,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,671,672,673,675,676,677,680,690,691,692,730,1018,1036,1038,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,671,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,672,765,1018,1033,1034,1038,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,166,660,671,673,674,675,676,677,680,690,691,764,765,766,1017,1036,1038,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,1018,1019,1032,1038,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,660,671,680,765,766,1017,1018,1037,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,691,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1097,1098,1099,1100,1101,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1643,1646,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1651,1661,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1654,1663,1664,1756,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1645,1646,1647,1648,1651,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1643,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1652,1655,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1660,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1655,1656,1657,1658,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1654,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1651,1652,1656,1657,1659,1660,1661,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1664,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1664,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1663,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1665,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1663,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1671,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1661,1663,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1663,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1654,1665,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1654,1661,1665,1666,1685,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1654,1661,1665,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1654,1661,1663,1665,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1703,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1663,1756,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1654,1665,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1654,1665,1685,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1694,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1711,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,1663,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1665,1677,1756,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1665,1730,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1718,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1746,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1719,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1699,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1734,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1673,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1664,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1661,1663,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1656,1659,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1651,1654,1656,1661,1662,1665,1666,1667,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1648,1651,1653,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1644,1646,1647,1648,1650,1651,1652,1654,1655,1657,1658,1661,1662,1663,1664,1665,1666,1667,1668,1669,1684,1685,1729,1730,1755,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1651,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1643,1645,1646,1647,1652,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,420,1651,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1649,1650,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1661,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1772,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1777,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1771,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1770,1771,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1786,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,1775,1776,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1775,1776,2351,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1770,1771,1790,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,1776,1784,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,1775,1776,1784,1785,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1770,1771,1785,1786,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,1794,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1771,1785,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,1775,1776,1784,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1782,1783,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1785,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1774,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1785,1809,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1770,1771,1785,1803,1810,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2471,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2495],[90,135,2281,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2299,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,599,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,132,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,136,141,147,148,155,167,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,136,137,147,155,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,138,179,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,139,140,148,156,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,167,175,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,141,143,147,155,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,142,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,143,144,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,145,147,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,147,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,148,149,167,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,148,149,162,167,170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,130,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,130,135,143,147,150,155,167,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,148,150,151,155,167,175,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,152,167,175,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[88,89,90,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,153,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,154,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,143,147,155,167,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,156,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,157,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,158,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,132,133,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,160,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,161,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,162,163,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,162,164,179,181,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,167,168,170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,169,170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,167,168,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,171,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,132,135,167,172,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,173,174,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,173,174,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,155,167,175,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,176,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,155,177,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,179,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,167,180,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,154,181,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,182,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,149,158,167,170,178,180,181,183,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,167,184,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,167,175,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2497,2498,2501,2502,2503],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2503],[84,90,135,274,275,276,490,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,274,275,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,275,490,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,269,273,531,577,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,269,272,531,577,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[81,82,83,90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,590,591,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,592,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1440,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1117,1441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1439,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1116,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,690,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1114,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,253,263,730,766,1039,1040,1041,1050,1062,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1086,1087,1091,1113,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1068,1069,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1039,1062,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,730,1062,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,1062,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,1039,1062,1066,1087,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1062,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,1039,1040,1062,1066,1087,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1039,1066,1086,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1019,1039,1040,1062,1093,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1019,1032,1039,1040,1085,1093,1627,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1032,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1039,1040,1041,1066,1086,1087,1091,1092,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1034,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1039,1045,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1041,1042,1043,1044,1046,1047,1051,1088,1089,1090,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,690,1039,1050,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1039,1066,1087,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,263,680,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,690,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,253,263,680,727,730,764,1039,1040,1050,1062,1063,1064,1065,1066,1083,1085,1086,1087,1093,1094,1095,1096,1102,1103,1109,1110,1112,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1039,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,690,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1040,1062,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1039,1040,1063,1064,1083,1085,1087,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,764,1039,1040,1063,1064,1065,1086,1087,1093,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1039,1040,1041,1086,1091,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,680,1039,1040,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1095,1096,1102,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1052,1053,1054,1055,1057,1058,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1052,1053,1054,1055,1056,1058,1059,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1053,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1052,1057,1059,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1057,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1057,1058,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,661,662,663,664,666,667,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,661,662,663,664,665,667,668,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,662,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,661,662,663,664,665,666,667,668,669,670,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,661,666,668,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,666,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,666,667,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,584,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,148,150,175,179,183,2441,2442,2443,2444,2445,2446,2447,2448,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2441,2442,2443,2444,2445,2446,2447,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,158,167,170,175,179,183,2441,2442,2443,2444,2445,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,148,149,156,170,175,178,184,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,148,2442,2443,2444,2445,2446,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2460,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2456,2457,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2456,2457,2458,2459,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2456,2458,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2456,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,148,150,175,179,183,2441,2442,2443,2444,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2441,2442,2443,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,158,167,170,175,179,183,2441,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2476,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[13,90,131,135,138,140,148,149,156,170,175,178,184,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2489,2490,2491,2492],[90,135,148,2442,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2483,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2479,2480,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2479,2480,2481,2482,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2479,2481,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2479,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2486,2487,2488,2489,2490,2491,2492],[90,135,1448,1814,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1448,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1777,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1985,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1983,1985,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1983,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1985,2049,2050,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2052,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2053,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2070,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2146,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1985,2050,2170,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1983,2167,2168,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2169,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2167,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1983,1984,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,178,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,175,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[86,90,135,175,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1126,1172,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1171,1410,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1196,1251,1318,1370,1404,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1126,1127,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1165,1170,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1135,1165,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1150,1151,1152,1153,1154,1155,1156,1157,1158,1168,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1138,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1160,1165,1166,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1165,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1167,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1165,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1150,1151,1152,1153,1154,1155,1156,1157,1158,1167,1168,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1137,1167,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1149,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1149,1165,1167,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1132,1165,1169,1170,1172,1174,1177,1178,1179,1181,1187,1188,1192,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1165,1169,1172,1187,1191,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1165,1169,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1136,1137,1160,1161,1162,1163,1164,1165,1166,1169,1179,1180,1181,1187,1188,1190,1191,1193,1194,1195,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1165,1169,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1161,1165,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1165,1181,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1165,1175,1176,1181,1188,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1182,1183,1184,1185,1186,1189,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1124,1125,1126,1132,1160,1165,1167,1175,1176,1181,1183,1188,1189,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1132,1169,1179,1186,1188,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1165,1172,1175,1176,1181,1188,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1173,1175,1176,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1175,1176,1181,1188,1191,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1165,1169,1170,1171,1175,1176,1179,1181,1188,1192,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1125,1126,1127,1132,1165,1169,1170,1181,1186,1191,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1124,1125,1126,1127,1165,1167,1170,1175,1176,1181,1188,1192,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1137,1165,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1135,1171,1172,1173,1180,1188,1192,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1125,1126,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1136,1159,1160,1162,1163,1164,1166,1167,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1126,1136,1160,1162,1163,1164,1165,1166,1169,1170,1191,1196,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1125,1126,1127,1132,1167,1170,1189,1190,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1120,1122,1123,1124,1127,1135,1172,1175,1405,1406,1407,1408,1409,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1226,1234,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1226,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1217,1218,1219,1220,1221,1229,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1228,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1228,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1226,1227,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1226,1228,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1226,1228,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1217,1218,1219,1220,1221,1228,1229,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1208,1228,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1216,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1172,1226,1233,1234,1239,1240,1241,1242,1244,1247,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1226,1228,1231,1232,1237,1238,1244,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1226,1230,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1197,1223,1224,1225,1226,1227,1230,1233,1239,1241,1243,1244,1245,1246,1248,1249,1250,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1226,1230,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1226,1234,1244,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1175,1226,1228,1239,1244,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1232,1235,1236,1237,1238,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1126,1132,1171,1175,1176,1226,1228,1236,1237,1239,1244,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1233,1235,1239,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1175,1226,1239,1244,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1171,1175,1223,1226,1230,1233,1234,1239,1244,1247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1125,1126,1127,1132,1226,1230,1234,1235,1244,1246,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1171,1175,1226,1228,1239,1244,1247,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1226,1246,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1171,1172,1239,1243,1247,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1125,1126,1132,1236,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1197,1222,1223,1224,1225,1227,1228,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1197,1223,1224,1225,1226,1227,1234,1235,1246,1251,1410,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1125,1126,1132,1230,1234,1236,1245,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1126,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1293,1299,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1135,1293,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1253,1254,1255,1256,1257,1259,1260,1261,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1296,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1263,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1288,1293,1294,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1293,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1295,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1258,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1293,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1253,1254,1255,1256,1257,1259,1260,1261,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1295,1296,1297,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1262,1295,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1265,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1293,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1258,1265,1293,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1258,1293,1295,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1172,1293,1298,1299,1300,1304,1305,1307,1308,1311,1312,1411,1412,1413,1414,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1231,1293,1298,1300,1307,1311,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1293,1298,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1252,1262,1288,1289,1290,1291,1292,1293,1294,1298,1300,1305,1307,1308,1310,1311,1313,1314,1315,1317,1415,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1293,1298,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1289,1293,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1293,1300,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1132,1171,1175,1176,1293,1300,1308,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1301,1302,1303,1304,1306,1309,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1124,1125,1126,1132,1171,1175,1176,1288,1293,1295,1300,1302,1308,1309,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1298,1305,1306,1308,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1175,1176,1293,1300,1308,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1175,1176,1300,1308,1311,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1171,1175,1176,1293,1298,1299,1300,1305,1308,1312,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1125,1126,1127,1132,1293,1298,1299,1300,1306,1311,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1124,1125,1126,1127,1132,1171,1175,1176,1293,1295,1299,1300,1308,1312,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1262,1293,1297,1311,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1135,1171,1172,1173,1308,1312,1411,1415,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1125,1126,1132,1309,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1252,1287,1288,1290,1291,1292,1294,1295,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1126,1252,1288,1290,1291,1292,1293,1294,1298,1299,1311,1318,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1316,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1125,1126,1127,1132,1295,1299,1309,1310,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1118,1119,1127,1415,1416,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1416,1417,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1118,1119,1120,1126,1127,1171,1172,1300,1308,1312,1318,1356,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1126,1127,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1126,1127,1130,1406,1410,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1410,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1348,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1338,1339,1340,1341,1342,1343,1350,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1348,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1348,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1348,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1135,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1338,1339,1340,1341,1342,1343,1349,1350,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1329,1349,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1337,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1172,1348,1355,1358,1359,1360,1363,1365,1366,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1231,1348,1349,1352,1353,1354,1365,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1345,1346,1347,1348,1351,1355,1360,1363,1364,1365,1367,1368,1369,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1348,1351,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1348,1351,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1348,1365,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1175,1348,1349,1355,1365,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1352,1353,1354,1361,1362,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1126,1175,1176,1348,1349,1353,1355,1365,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1355,1360,1361,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1171,1175,1348,1351,1355,1360,1365,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1125,1126,1127,1132,1348,1351,1361,1365,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1175,1348,1349,1355,1365,1366,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1348,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1171,1172,1355,1364,1366,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1125,1126,1132,1362,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1344,1345,1346,1347,1349,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1126,1345,1346,1347,1348,1370,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1120,1127,1172,1355,1357,1364,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1120,1126,1127,1171,1172,1355,1356,1365,1366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1126,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1128,1129,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1131,1133,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1126,1132,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1126,1130,1134,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1121,1122,1124,1125,1127,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1376,1397,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1397,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1372,1392,1393,1394,1395,1400,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1399,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1397,1398,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1397,1399,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1372,1392,1393,1394,1395,1399,1400,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1391,1397,1399,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1399,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1127,1397,1399,1405,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1126,1127,1172,1376,1377,1378,1379,1382,1387,1388,1397,1402,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1231,1382,1387,1397,1401,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1397,1401,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1371,1373,1374,1375,1379,1380,1382,1387,1388,1390,1391,1397,1398,1401,1403,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1397,1401,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1382,1390,1397,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1175,1176,1382,1388,1397,1399,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1383,1384,1385,1386,1389,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1175,1176,1373,1382,1384,1388,1389,1397,1399,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1379,1386,1388,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1127,1172,1175,1176,1382,1388,1397,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1173,1175,1176,1388,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1132,1171,1175,1176,1376,1379,1382,1388,1397,1401,1402,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1122,1123,1124,1125,1126,1127,1132,1376,1382,1386,1390,1397,1401,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1124,1125,1126,1127,1175,1176,1376,1382,1388,1397,1399,1402,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1126,1171,1172,1173,1175,1380,1381,1388,1402,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1125,1126,1132,1389,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1122,1371,1373,1374,1375,1396,1398,1399,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1397,1399,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1124,1126,1371,1373,1374,1375,1376,1390,1397,1398,1404,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1125,1126,1132,1376,1389,1399,1405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1119,1123,1126,1127,1406,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1120,1122,1126,1406,1411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2275,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2276,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2249,2269,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2243,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2244,2248,2249,2250,2251,2252,2254,2256,2257,2262,2263,2272,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2244,2249,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2252,2269,2271,2274,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2243,2244,2245,2246,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2273,2274,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2272,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2242,2244,2245,2247,2255,2264,2267,2268,2273,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2249,2274,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2270,2272,2274,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2243,2244,2249,2252,2272,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2256,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2246,2254,2256,2257,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2246,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2246,2256,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2250,2251,2252,2256,2257,2262,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2252,2253,2257,2261,2263,2272,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2244,2256,2265,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2245,2246,2247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2252,2272,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2252,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2243,2244,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2244,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2248,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2252,2257,2269,2270,2271,2272,2274,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,614,615,616,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1451,1452,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,1451,1452,1453,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,633,635,636,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,609,633,635,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,601,633,634,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,599,603,609,632,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,609,626,631,633,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,649,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,653,654,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,655,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,644,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,631,633,643,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,697,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,859,963,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,963,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,857,858,859,963,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,963,980,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,778,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,857,858,859,860,963,1000,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,854,856,857,1000,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,858,963,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,783,784,798,812,813,842,976,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,859,963,980,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,856,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,857,858,859,860,963,987,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,854,855,856,857,987,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,800,976,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,857,858,859,860,963,993,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,854,855,856,857,993,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,976,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,857,858,859,860,963,981,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,855,856,857,981,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,846,969,976,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,854,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,856,857,861,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,855,856,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,856,857,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,856,861,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,819,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,816,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,881,884,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,778,780,826,863,868,876,877,878,879,882,898,900,909,911,916,917,918,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,778,780,816,826,879,895,896,897,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,816,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,769,770,771,772,773,774,775,776,777,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,866,867,869,870,875,876,877,878,879,880,881,882,883,884,885,886,887,888,890,891,892,894,895,896,897,898,899,900,902,903,904,905,908,909,910,911,912,913,914,915,916,919,920,921,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,947,948,949,950,951,952,957,959,960,963,964,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,826,853,854,856,857,858,860,862,863,864,909,911,933,940,941,959,960,961,962,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1005,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,782,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,791,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,786,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,799,814,815,904,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,786,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,774,783,784,785,787,792,793,794,795,796,797,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,841,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,769,770,771,772,781,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,774,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,821,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,769,788,789,790,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,774,786,799,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,774,780,782,791,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,773,803,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,773,786,833,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,799,805,810,811,814,815,823,828,832,839,840,849,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,773,774,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,774,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,773,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,827,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,830,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,770,774,781,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,806,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,774,823,828,832,839,840,844,845,846,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,809,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,830,876,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,876,912,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,818,913,914,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,774,810,816,823,832,839,840,841,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,770,799,843,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,843,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,769,770,771,772,773,774,781,782,783,784,785,786,787,788,789,790,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,820,821,822,823,824,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,852,853,867,875,876,895,896,897,902,903,904,905,910,912,913,914,915,942,943,968,969,970,971,972,973,974,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,769,770,771,772,773,774,781,782,783,784,785,786,787,788,789,790,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,820,821,822,823,824,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,852,867,875,876,895,896,897,902,903,904,905,910,912,913,914,915,942,943,968,969,970,971,972,973,974,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,813,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,814,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,814,815,902,903,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,819,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,902,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,770,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,799,810,814,815,820,826,827,828,832,833,839,840,842,847,848,850,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,774,817,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,774,780,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,820,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,799,805,806,807,808,810,811,812,814,815,820,823,824,828,829,831,832,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,774,816,817,819,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,770,818,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,799,805,810,811,815,823,828,832,839,840,843,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,803,942,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,822,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,825,826,875,876,877,878,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,826,867,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,826,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,776,780,882,952,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,816,826,874,919,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,806,919,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,770,877,878,919,943,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,810,880,882,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,779,780,882,957,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,814,826,884,887,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,884,902,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,770,780,816,818,819,826,874,876,878,884,888,915,920,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,775,776,777,779,885,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,786,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,882,900,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,820,826,878,884,900,919,920,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,826,829,919,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,774,780,816,826,881,920,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,877,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,876,920,921,970,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,777,780,882,951,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,843,877,878,919,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,826,830,874,920,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,822,826,950,951,952,953,959,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,855,856,862,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,855,856,862,1011,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,803,875,876,942,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,853,855,856,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,816,826,879,888,899,905,907,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,778,826,877,879,898,910,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,822,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,776,778,780,825,826,827,850,851,853,854,862,863,864,877,879,882,883,885,888,890,891,894,899,920,921,946,947,949,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,778,780,826,874,878,898,901,908,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,879,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,775,778,780,825,826,827,847,851,853,854,862,863,864,878,885,891,894,920,944,945,946,947,948,949,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,810,825,879,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,816,826,913,915,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,779,780,825,826,842,851,853,854,863,864,877,879,882,883,885,891,920,921,944,945,946,947,949,951,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,851,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,825,826,844,878,879,890,920,921,945,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,826,888,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,814,825,886,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,919,920,946,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,826,888,899,904,906,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,878,885,946,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,826,833,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,778,780,826,827,831,832,833,851,853,854,862,863,864,874,877,878,879,882,883,885,888,889,890,891,892,893,894,898,899,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,777,778,780,825,826,827,848,851,853,854,862,863,864,877,879,882,883,885,888,890,891,894,899,920,921,945,946,947,949,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,879,920,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,853,855,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,767,768,769,770,771,772,773,774,781,782,783,784,785,786,787,788,789,790,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,820,821,822,823,824,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,852,853,854,855,867,875,876,895,896,897,902,903,904,905,910,912,913,914,915,942,943,968,969,970,971,972,973,974,975,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,786,795,798,800,801,802,804,834,835,836,837,838,842,851,852,853,854,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,775,823,862,863,882,885,900,918,950,953,954,955,956,958,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,853,854,855,856,859,861,862,965,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,854,859,862,965,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,853,854,855,856,859,861,862,863,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,863,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,853,854,855,856,859,861,862,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,786,826,853,854,856,862,933,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,934,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,787,825,865,868,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,781,798,825,853,854,863,864,869,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,798,800,825,826,853,854,863,864,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,798,825,826,853,854,863,864,866,868,869,870,871,872,873,922,923,924,925,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,798,825,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,769,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,781,782,825,826,865,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,800,825,826,853,854,863,864,879,919,921,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,801,825,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,802,825,826,853,854,863,864,866,868,869,923,924,925,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,804,825,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,834,853,854,863,864,900,934,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,795,825,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,835,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,836,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,837,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,838,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,781,788,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,789,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,825,852,853,854,863,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,862,863,926,927,928,929,930,931,932,935,936,937,938,939,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,790,825,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,826,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,775,776,777,779,780,854,864,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,780,854,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,775,776,777,778,779,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2394,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,1933,1934,1935,1959,1960,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,1934,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,1933,1934,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,609,633,1933,1935,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1531,1532,1535,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1533,1534,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,1531,1535,1536,1537,1541,1545,1546,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,1532,1535,1536,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1532,1535,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1528,1529,1530,1531,1532,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,1531,1532,1535,1541,1544,1546,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1531,1542,1543,1545,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,1532,1536,1545,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1532,1535,1536,1537,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1535,1538,1541,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,1531,1538,1539,1540,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1530,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1451,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1454,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1021,1022,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1020,1021,1024,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1020,1021,1026,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1021,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1025,1032,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1020,1021,1022,1023,1024,1025,1027,1028,1029,1030,1031,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1020,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,534,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,536,537,538,539,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,281,283,287,298,487,515,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,293,294,295,297,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,330,332,334,335,338,527,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,287,289,290,291,321,415,487,505,506,514,527,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,294,385,494,503,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,277,385,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,340,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,339,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,485,494,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,453,465,503,522,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,396,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,508,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,507,508,509,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,507,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,271,277,283,287,290,292,294,298,299,312,313,340,415,426,504,515,527,531,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,281,283,296,330,331,336,337,527,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,296,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,281,313,440,527,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,296,297,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,333,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,299,505,513,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,161,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,457,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,383,393,394,523,559,566,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,382,500,560,561,562,563,565,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,499,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,499,500,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,321,385,386,390,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,385,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,385,389,391,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,385,386,387,388,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,564,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,284,553,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,296,375,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,296,515,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,373,377,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,374,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1831,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,150,185,269,272,273,531,575,576,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,287,320,371,416,437,439,510,511,515,527,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,312,512,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,531,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,282,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,442,455,464,474,476,522,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,161,442,455,473,474,475,522,581,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,467,468,469,470,471,472,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,469,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,473,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[85,90,135,347,348,350,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,341,342,343,344,349,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,347,349,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,345,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,346,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,374,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,532,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,416,517,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,517,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,528,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,461,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,460,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,322,385,402,439,448,451,453,454,493,522,525,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,367,385,482,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,453,522,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,453,458,459,461,462,463,464,465,466,477,478,479,480,481,483,484,522,523,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,447,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,284,320,323,344,368,369,416,426,437,438,493,516,527,528,529,531,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,522,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,294,369,426,450,516,518,519,520,521,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,453,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,320,356,402,443,444,445,446,447,448,449,451,452,522,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,356,357,443,528,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,294,416,426,439,516,522,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,527,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,167,525,528,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,178,277,287,296,322,323,325,353,358,363,367,368,369,371,400,402,404,407,409,412,413,414,415,437,439,515,516,523,525,527,528,529,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,167,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,284,285,292,525,526,531,533,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,281,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,352,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,167,178,315,338,340,341,342,343,344,350,351,582,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,161,178,277,315,330,362,363,364,400,401,402,407,415,416,422,425,427,437,439,516,523,525,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,292,299,312,415,426,516,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,178,284,287,402,420,525,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,352,423,424,434,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,525,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,448,450,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,369,402,515,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,326,330,401,407,422,425,429,525,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,299,312,330,430,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,283,325,432,515,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,178,344,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,296,324,325,326,335,352,431,433,515,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,271,369,436,531,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,399,437,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,178,287,298,299,312,322,323,358,362,363,364,368,400,401,402,404,416,417,419,421,437,439,515,516,523,524,525,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,167,299,422,428,434,525,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,302,303,304,305,306,307,308,309,310,311,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,353,408,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,410,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,408,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,410,411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,287,290,320,321,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,282,284,322,367,368,369,370,398,437,525,529,531,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,178,286,321,370,402,448,516,524,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,443,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,444,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,385,415,493,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,445,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,314,318,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,287,314,322,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,317,318,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,319,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,314,315,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,314,365,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,314,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,353,406,524,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,405,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,315,523,524,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,403,524,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,315,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,493,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,287,316,322,369,385,402,436,439,442,448,455,456,486,487,489,492,515,525,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,378,381,383,384,393,394,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,274,275,276,488,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,85,90,135,274,275,276,488,491,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,502,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,294,357,369,436,439,453,461,465,495,496,497,498,500,501,504,515,522,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,393,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,398,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,398,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,322,366,371,395,397,436,525,531,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,378,379,380,381,383,384,393,394,532,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,161,178,271,314,315,323,368,369,402,434,435,437,515,516,525,527,528,531,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,357,359,362,516,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,353,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,356,453,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,355,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,357,358,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,354,356,527,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,150,286,357,359,360,361,527,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,385,392,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,279,280,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,284,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,382,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,271,368,369,531,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,284,553,554,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,377,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,161,178,282,337,372,374,376,533,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,296,523,528,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,418,523,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,148,150,161,281,282,332,377,531,532,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,272,273,531,577,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,266,267,268,269,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,140,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,327,328,329,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,327,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,150,152,161,185,269,272,273,274,276,277,282,323,429,473,529,530,533,577,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,541,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,543,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,545,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1832,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,547,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,549,550,551,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,555,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,270,535,540,542,544,546,548,552,556,558,568,569,571,580,581,582,583,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,557,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,567,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,374,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,570,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,134,135,357,359,360,362,572,573,574,577,578,579,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1638,1640,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1637,1638,1639,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1635,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1631,1632,1633,1636,1637,1638,1640,1641,1642,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1631,1635,1637,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1636,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1632,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1633,1636,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1632,1634,1635,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,611,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,611,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,611,612,618,619,622,623,624,625,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,611,619,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,611,612,618,619,620,621,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,619,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,619,623,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,611,612,613,617,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,612,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,610,611,619,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2498,2499,2500],[90,135,167,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492,2498],[90,135,167,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,628,629,630,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,627,631,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,631,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1769,1772,1773,1776,1777,1778,1779,1780,1781,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2239,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2371,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2371,2372,2373,2376,2377,2378,2379,2380,2381,2382,2385,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2371,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2374,2375,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2369,2371,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2366,2367,2369,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2362,2365,2367,2369,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2366,2369,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2357,2358,2359,2362,2363,2364,2366,2367,2368,2369,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2359,2362,2363,2364,2365,2366,2367,2368,2369,2370,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2366,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2360,2366,2367,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2360,2361,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2365,2367,2368,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2365,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2357,2362,2367,2368,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2383,2384,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1823,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1820,1821,1822,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1964,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,608,609,633,639,646,1961,1963,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2397,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2395,2396,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1847,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1864,1865,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1848,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,1850,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1848,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1847,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1863,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1866,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2302,2305,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2295,2303,2323,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2283,2286,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2321,2324,2327,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2295,2302,2305,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2295,2303,2315,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2295,2305,2315,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2295,2315,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2284,2285,2286,2290,2296,2302,2307,2325,2326,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2286,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2330,2331,2332,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2329,2330,2331,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2303,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2329,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2295,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2287,2288,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2288,2290,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2279,2280,2284,2285,2286,2287,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2316,2317,2318,2319,2320,2321,2322,2324,2325,2326,2327,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2344,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2298,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2305,2309,2310,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2296,2298,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2301,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2324,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2286,2301,2328,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2289,2329,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[84,90,135,2283,2284,2285,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,651,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,650,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,608,609,633,637,638,639,646,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,609,633,637,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,655,656,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,609,633,655,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,647,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,608,609,633,639,645,646,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1961,1962,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,608,609,633,639,646,1933,1961,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,167,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,642,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,640,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,640,641,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,605,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,178,2413,2417,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,167,178,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2408,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,175,178,2410,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,155,175,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2408,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,155,178,2410,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,147,167,178,2405,2406,2409,2412,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2420,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2405,2411,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2434,2435,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,170,178,185,2409,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2434,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,185,2407,2408,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2407,2408,2409,2410,2411,2412,2413,2414,2415,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2435,2436,2437,2438,2439,2440,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2428,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2420,2421,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2411,2413,2421,2422,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2412,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2405,2408,2413,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2413,2417,2421,2422,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2417,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,178,2411,2413,2416,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2405,2410,2413,2420,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,183,185,2408,2413,2434,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,97,100,103,104,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,135,167,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,104,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,94,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,98,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,96,97,100,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,94,135,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,96,100,135,155,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,91,92,93,95,99,135,147,167,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,108,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,92,98,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,124,125,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,92,95,100,135,170,178,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,96,100,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,91,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,94,95,96,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,117,120,135,143,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,108,109,110,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,98,100,109,111,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,99,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,92,94,100,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,104,109,111,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,104,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,98,100,103,135,178,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,92,96,100,108,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,100,117,135,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,94,100,124,135,170,183,185,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2463,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,603,607,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,599,603,604,606,608,639,646,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,600,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,601,602,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,599,601,603,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2282,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,2300,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1899,1903,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1899,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1900,1901,1902,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1437,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1428,1429,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1425,1426,1428,1430,1431,1436,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1426,1428,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1436,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1428,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1425,1426,1428,1431,1432,1433,1434,1435,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1425,1426,1427,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,262,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,253,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,253,256,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,248,251,253,254,255,256,257,258,259,260,261,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,187,189,256,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,253,254,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,188,253,255,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,189,191,193,194,195,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,191,193,195,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,191,193,195,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,188,191,193,194,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,187,189,190,191,192,193,194,195,196,197,198,248,249,250,251,252,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,187,189,190,193,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,189,190,193,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,193,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,187,188,190,191,192,194,195,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,187,188,189,193,253,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,193,194,195,196,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1111,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,195,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1591,1592,1594,1595,1596,1598,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1594,1595,1596,1597,1598,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,1591,1594,1595,1596,1598,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492],[90,135,593,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2454,2455,2461,2462,2464,2465,2466,2467,2468,2469,2473,2474,2475,2477,2478,2484,2485,2486,2487,2488,2489,2490,2491,2492]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"472f5aab7edc498a0a761096e8e254c5bc3323d07a1e7f5f8b8ec0d6395b60a0","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"92d5369f7f9480aac66bbcd295c0b2d82077295c8bf0f0fe08fa3c3321225e49","impliedFormat":99},{"version":"878390f2f3d349610300c7603fb9dff16cfb92fcc6f5fc1f9b262e5bbd6479e5","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"db39d9a16e4ddcd8a8f2b7b3292b362cc5392f92ad7ccd76f00bccf6838ac7de","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"067bdd82d9768baddbdc8df51d85f7b96387c47176bf7f895d2e21e2b6b2f1f4","impliedFormat":1},{"version":"42d30e7d04915facc3ded22b4127c9f517973b4c2b1326e56c10ff70daf6800a","impliedFormat":1},{"version":"bd8b644c5861b94926687618ec2c9e60ad054d334d6b7eb4517f23f53cb11f91","impliedFormat":1},{"version":"bcbabfaca3f6b8a76cb2739e57710daf70ab5c9479ab70f5351c9b4932abf6bd","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"55f370475031b3d36af8dd47fb3934dff02e0f1330d13f1977c9e676af5c2e70","impliedFormat":1},{"version":"c54f0b30a787b3df16280f4675bd3d9d17bf983ae3cd40087409476bc50b922d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"e07c573ac1971ea89e2c56ff5fd096f6f7bba2e6dbcd5681d39257c8d954d4a8","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"1e080418e53f9b7a05db81ab517c4e1d71b7194ee26ddd54016bcef3ac474bd4","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"3b63610eaabadf26aadf51a563e4b2a8bf56eeaab1094f2a2b21509008eaef0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d5d50cd0667d9710d4d2f6e077cc4e0f9dc75e106cccaea59999b36873c5a0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","impliedFormat":1},{"version":"4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446","impliedFormat":1},{"version":"f8529fe0645fd9af7441191a4961497cc7638f75a777a56248eac6a079bb275d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4445f6ce6289c5b2220398138da23752fd84152c5c95bb8b58dedefc1758c036","impliedFormat":1},{"version":"a51f786b9f3c297668f8f322a6c58f85d84948ef69ade32069d5d63ec917221c","impliedFormat":1},{"version":"0c5f112b6d3377b9e8214d8920e1a69d8098b881d941f2ab3ca45234d13d68de","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"82919acbb38870fcf5786ec1292f0f5afe490f9b3060123e48675831bd947192","impliedFormat":1},{"version":"e222701788ec77bd57c28facbbd142eadf5c749a74d586bc2f317db7e33544b1","impliedFormat":1},{"version":"09154713fae0ed7befacdad783e5bd1970c06fc41a5f866f7f933b96312ce764","impliedFormat":1},{"version":"8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652","impliedFormat":1},{"version":"a91c8d28d10fee7fe717ddf3743f287b68770c813c98f796b6e38d5d164bd459","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"f6f827cd43e92685f194002d6b52a9408309cda1cec46fb7ca8489a95cbd2fd4","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"a270a1a893d1aee5a3c1c8c276cd2778aa970a2741ee2ccf29cc3210d7da80f5","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8926594ee895917e90701d8cbb5fdf77fc238b266ac540f929c7253f8ad6233d","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"ed8763205f02fb65e84eff7432155258df7f93b7d938f01785cb447d043d53f3","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"d4a5b1d2ff02c37643e18db302488cd64c342b00e2786e65caac4e12bda9219b","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"108d357ffaa6137eaa9a61814c6efb04d0e5e06bd5b8cd9dc92f94bdbe291df3",{"version":"151da46be65068c00e99f52ee3e47f2a9d7764357d9abc2d874fa6fc5aa6acb2","signature":"e3fd68af9446c93814ce312dbdd1c5bbad5341e324f7acbf2e9d08a8f46b30e1"},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"3609e455ffcba8176c8ce0aa57f8258fe10cf03987e27f1fab68f702b4426521","impliedFormat":1},{"version":"d1bd4e51810d159899aad1660ccb859da54e27e08b8c9862b40cd36c1d9ff00f","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"5c9b31919ea1cb350a7ae5e71c9ced8f11723e4fa258a8cc8d16ae46edd623c7","impliedFormat":1},{"version":"4aa42ce8383b45823b3a1d3811c0fdd5f939f90254bc4874124393febbaf89f6","impliedFormat":1},{"version":"96ffa70b486207241c0fcedb5d9553684f7fa6746bc2b04c519e7ebf41a51205","impliedFormat":1},{"version":"5c24c66b3ba29ce9f2a79c719967e6e944131352a117a0bc43fa5b346b5562b3","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f4625edcb57b37b84506e8b276eb59ca30d31f88c6656d29d4e90e3bc58e69df","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"c685d9f68c70fe11ce527287526585a06ea13920bb6c18482ca84945a4e433a7","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"4e01846df98d478a2a626ec3641524964b38acaac13945c2db198bf9f3df22ee","impliedFormat":1},{"version":"678d6d4c43e5728bf66e92fc2269da9fa709cb60510fed988a27161473c3853f","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"e2a37ac938c4bede5bb284b9d2d042da299528f1e61f6f57538f1bd37d760869","impliedFormat":1},{"version":"76def37aff8e3a051cf406e10340ffba0f28b6991c5d987474cc11137796e1eb","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"bfb7f8475428637bee12bdd31bd9968c1c8a1cc2c3e426c959e2f3a307f8936f","impliedFormat":1},{"version":"6f491d0108927478d3247bbbc489c78c2da7ef552fd5277f1ab6819986fdf0b1","impliedFormat":1},{"version":"0d8f2b8781c721170b87a6b662b3cb038fd1a721165ecca390352c818d425872","impliedFormat":1},{"version":"7cb0ee103671d1e201cd53dda12bc1cd0a35f1c63d6102720c6eeb322cb8e17e","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"803cd2aaf1921c218916c2c7ee3fce653e852d767177eb51047ff15b5b253893","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"7ab12b2f1249187223d11a589f5789c75177a0b597b9eb7f8e2e42d045393347","impliedFormat":1},{"version":"ad37fb4be61c1035b68f532b7220f4e8236cf245381ce3b90ac15449ecfe7305","impliedFormat":1},{"version":"93436bd74c66baba229bfefe1314d122c01f0d4c1d9e35081a0c4f0470ac1a6c","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"6e9082e91370de5040e415cd9f24e595b490382e8c7402c4e938a8ce4bccc99f","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"12d218a49dbe5655b911e6cc3c13b2c655e4c783471c3b0432137769c79e1b3c","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"6b0fc04121360f752d196ba35b6567192f422d04a97b2840d7d85f8b79921c92","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"42b81043b00ff27c6bd955aea0f6e741545f2265978bf364b614702b72a027ab","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"97e5ccc7bb88419005cbdf812243a5b3186cdef81b608540acabe1be163fc3e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"6b3453eebd474cc8acf6d759f1668e6ce7425a565e2996a20b644c72916ecf75","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"89cd3444e389e42c56fd0d072afef31387e7f4107651afd2c03950f22dc36f77","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"e39a304f882598138a8022106cb8de332abbbb87f3fee71c5ca6b525c11c51fc","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"fcdf3e40e4a01b9a4b70931b8b51476b210c511924fcfe3f0dae19c4d52f1a54","impliedFormat":1},{"version":"345c4327b637d34a15aba4b7091eb068d6ab40a3dedaab9f00986253c9704e53","impliedFormat":1},{"version":"3a788c7fb7b1b1153d69a4d1d9e1d0dfbcf1127e703bdb02b6d12698e683d1fb","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"2b5b70d7782fe028487a80a1c214e67bd610532b9f978b78fa60f5b4a359f77e","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"162e071992b34bc36ca257d629547f93cb43728d6fe073ad18a237e4f7c52d7d","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"7e6ac205dcb9714f708354fd863bffa45cee90740706cc64b3b39b23ebb84744","impliedFormat":1},{"version":"61dc6e3ac78d64aa864eedd0a208b97b5887cc99c5ba65c03287bf57d83b1eb9","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"8baa8dbdc393e3c6b26e8e31384b938756ce2effdc126648d43e58291ce9869b","impliedFormat":1},{"version":"933aee906d42ea2c53b6892192a8127745f2ec81a90695df4024308ba35a8ff4","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75","impliedFormat":1},{"version":"a3e3f0efcae272ab8ee3298e4e819f7d9dd9ff411101f45444877e77cfeca9a4","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"58659b06d33fa430bee1105b75cf876c0a35b2567207487c8578aec51ca2d977","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"30e6520444df1a004f46fdc8096f3fe06f7bbd93d09c53ada9dcdde59919ccca","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"a58beefce74db00dbb60eb5a4bb0c6726fb94c7797c721f629142c0ae9c94306","impliedFormat":1},{"version":"41eeb453ccb75c5b2c3abef97adbbd741bd7e9112a2510e12f03f646dc9ad13d","impliedFormat":1},{"version":"502fa5863df08b806dbf33c54bee8c19f7e2ad466785c0fc35465d7c5ff80995","impliedFormat":1},{"version":"c91a2d08601a1547ffef326201be26db94356f38693bb18db622ae5e9b3d7c92","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"8b4b8ebc2d99ae651c5c4169ee8b24e2b0e02a3dfaef84e357d677b663c18fdf","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"55095860901097726220b6923e35a812afdd49242a1246d7b0942ee7eb34c6e4","impliedFormat":1},{"version":"96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"d193c8a86144b3a87b22bc1f5534b9c3e0f5a187873ec337c289a183973a58fe","impliedFormat":1},{"version":"1a6e6ba8a07b74e3ad237717c0299d453f9ceb795dbc2f697d1f2dd07cb782d2","impliedFormat":1},{"version":"58d70c38037fc0f949243388ff7ae20cf43321107152f14a9d36ca79311e0ada","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"190da5eac6478d61ab9731ab2146fbc0164af2117a363013249b7e7992f1cccb","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"8a8c64dafaba11c806efa56f5c69f611276471bef80a1db1f71316ec4168acef","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"d0a4cac61fa080f2be5ebb68b82726be835689b35994ba0e22e3ed4d2bc45e3b","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"205a31b31beb7be73b8df18fcc43109cbc31f398950190a0967afc7a12cb478c","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"dba6c7006e14a98ec82999c6f89fbbbfd1c642f41db148535f3b77b8018829b8","impliedFormat":1},{"version":"7f897b285f22a57a5c4dc14a27da2747c01084a542b4d90d33897216dceeea2e","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"2ded4f930d6abfaa0625cf55e58f565b7cbd4ab5b574dd2cb19f0a83a2f0be8b","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"ca0f4d9068d652bad47e326cf6ba424ac71ab866e44b24ddb6c2bd82d129586a","affectsGlobalScope":true,"impliedFormat":1},{"version":"04d36005fcbeac741ac50c421181f4e0316d57d148d37cc321a8ea285472462b","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},{"version":"736a8712572e21ee73337055ce15edb08142fc0f59cd5410af4466d04beff0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"a46dba563f70f32f9e45ae015f3de979225f668075d7a427f874e0f6db584991","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"02c4fc9e6bb27545fa021f6056e88ff5fdf10d9d9f1467f1d10536c6e749ac50","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"d24ff95760ea2dfcc7c57d0e269356984e7046b7e0b745c80fea71559f15bdd8","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"13c1b657932e827a7ed510395d94fc8b743b9d053ab95b7cd829b2bc46fb06db","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"078131f3a722a8ad3fc0b724cd3497176513cdcb41c80f96a3acbda2a143b58e","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"9e155d2255348d950b1f65643fb26c0f14f5109daf8bd9ee24a866ad0a743648","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"7a883e9c84e720810f86ef4388f54938a65caa0f4d181a64e9255e847a7c9f51","impliedFormat":1},{"version":"a0ba218ac1baa3da0d5d9c1ec1a7c2f8676c284e6f5b920d6d049b13fa267377","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d408d6f32de8d1aba2ff4a20f1aa6a6edd7d92c997f63b90f8ad3f9017cf5e46","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"221e915caef37c5cbaabd4946418f97dcc20591469e260732b31008321024dd8","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"371bf6127c1d427836de95197155132501cb6b69ef8709176ce6e0b85d059264","impliedFormat":1},{"version":"2bafd700e617d3693d568e972d02b92224b514781f542f70d497a8fdf92d52a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"5542d8a7ea13168cb573be0d1ba0d29460d59430fb12bb7bf4674efd5604e14c","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"b6c1f64158da02580f55e8a2728eda6805f79419aed46a930f43e68ad66a38fc","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"4c0a1233155afb94bd4d7518c75c84f98567cd5f13fc215d258de196cdb40d91","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"7ad303e40d4fddf44f156129e397511953a71481c5cfd86b1862649aaaf240cc",{"version":"93cddca2ec6a5a8a1b942af0459cbd78d1b1b48e576cdabecc82811843a2cc28","impliedFormat":1},{"version":"8521ef2eafecd8a02a4aa7fb6e2d977537bcad7247fc4568553abfad801c26be","signature":"9c0eeb8de8dfdfb63ebcef09564c84ae1f6b6187c8e8e274fc5b0ee0a2c8432b"},{"version":"606779a35d17b249511fe72a5c66503ada20e0772cd31f165c35090ac06fde20","signature":"6bc2680fe9c4b4b45eba0548ae7aecb482332ce1a56d8bb250d324b82e31636a"},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"5e76305d58bcdc924ff2bf14f6a9dc2aa5441ed06464b7e7bd039e611d66a89b","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},"32d33bdc36258d570964d03f51e4f47bd4dc829c238ec3304f1ae32a8fa54ad7",{"version":"62c99d5d7de97c4c8441cc86b8efb1bc5b3284faf70f96ea7fe704cc451a1c83","signature":"62bf6303f60d24103151b02e6b065fe77a22b261a6ed3cb62753327f8f150018"},{"version":"f6d772dde6a58aeaae92ee2b65e02caa315f621d79cac38e5df9b2e8f5249dbc","signature":"87b79fd569bcdf71c08547d45eceadfd769d52e070d3d55e6252790c232d47a6"},{"version":"0759a2bffadfe8f19d9f7693d6703f0dcb5f46aa3fadccac39d41f5052e85e8c","signature":"5f5303388c23daf221df682ba0e6ed13924ad3a925fae5ec71f4cdfb6adf1b79"},{"version":"0af499d2713aef4ec7966d400cfef65a44f757c731937d340d93db85710f2a1e","signature":"39104c0ab7ff0e8994a3da419b2ea6d46a7a9f67529e2d643bafad2d68f3f6ac"},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"5c5d901a999dfe64746ef4244618ae0628ac8afdb07975e3d5ed66e33c767ed0","impliedFormat":99},{"version":"85d08536e6cd9787f82261674e7d566421a84d286679db1503432a6ccf9e9625","impliedFormat":99},{"version":"5702b3c2f5d248290ed99419d77ca1cc3e6c29db5847172377659c50e6303768","impliedFormat":99},{"version":"9764b2eb5b4fc0b8951468fb3dbd6cd922d7752343ef5fbf1a7cd3dfcd54a75e","impliedFormat":99},{"version":"1fc2d3fe8f31c52c802c4dee6c0157c5a1d1f6be44ece83c49174e316cf931ad","impliedFormat":99},{"version":"dc4aae103a0c812121d9db1f7a5ea98231801ed405bf577d1c9c46a893177e36","impliedFormat":99},{"version":"106d3f40907ba68d2ad8ce143a68358bad476e1cc4a5c710c11c7dbaac878308","impliedFormat":99},{"version":"42ad582d92b058b88570d5be95393cf0a6c09a29ba9aa44609465b41d39d2534","impliedFormat":99},{"version":"36e051a1e0d2f2a808dbb164d846be09b5d98e8b782b37922a3b75f57ee66698","impliedFormat":99},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"2ccdfd33a753c18e8e5fe8a1eadefff968531d920bc9cdc7e4c97b0c6d3dcaf8","impliedFormat":99},{"version":"d64a434d7fb5040dbe7d5f4911145deda53e281b3f1887b9a610defd51b3c1a2","impliedFormat":99},{"version":"927f406568919fd7cd238ef7fe5e9c5e9ec826f1fff89830e480aff8cfd197da","impliedFormat":99},{"version":"a77d742410fe78bb054d325b690fda75459531db005b62ba0e9371c00163353c","impliedFormat":99},{"version":"f8de61dd3e3c4dc193bb341891d67d3979cb5523a57fcacaf46bf1e6284e6c35","impliedFormat":99},{"version":"43866c6355cd21476b3a5cf0dc422e8a56f7acf5010acf7d9c7ea296b3beed44","impliedFormat":99},{"version":"70a8c15739dae81bdd251aecfa667521beac1ca3d62d5510ef1d168367976efd","impliedFormat":99},{"version":"117fc7342e10087d11eea826713624c5ae6b2d886e4a4a592b1cb6a30e3a1eca","impliedFormat":99},{"version":"c9bb4f55c9b9f1942bd206cce9722107b1653236a2c3805a3ffc1b78e60129a7","impliedFormat":99},{"version":"fc610233291d35d0d2c3a0214f4a46d20ad989c74431b9b5d535141065890e41","impliedFormat":99},{"version":"09b7befce01ae33053c59bcdf1c66502af074023fae5a2729b8a0411e1b94788","impliedFormat":99},{"version":"add39e62eed912ab8defd0c6473b6a4d158e22b6343f960a96825924ac87621c","impliedFormat":99},{"version":"64cd32a60b0316be7adc86fad333ec9befbab241486ecf9b0e867b80acc7e9f1","impliedFormat":99},{"version":"a65735a086ae8b401c1c41b51b41546532670c919fd2cedc1606fd186fcee2d7","impliedFormat":99},{"version":"fe021dbde66bd0d6195d4116dcb4c257966ebc8cfba0f34441839415e9e913e1","impliedFormat":99},{"version":"d52a4b1cabee2c94ed18c741c480a45dd9fed32477dd94a9cc8630a8bc263426","impliedFormat":99},{"version":"d059a52684789e6ef30f8052244cb7c52fb786e4066ac415c50642174cc76d14","impliedFormat":99},{"version":"addca1bb7478ebc3f1c67b710755acc945329875207a3c9befd6b5cbcab12574","impliedFormat":99},{"version":"50b565f4771b6b150cbf3ae31eb815c31f15e2e0f45518958a5f4348a1a01660","impliedFormat":99},{"version":"74958763e089797b627dae00e31679752826f7e91c0818e971be919dacb21c1b","impliedFormat":99},{"version":"2cab237ff67a4f114999005809e65fd586f7fdb56e253e1208cabea827df7e42","impliedFormat":99},{"version":"4e3ab6678655e507463a9bfa1aa39a4a5497fac4c75e5f7f7a16c0b7d001c34a","impliedFormat":99},{"version":"49766a3e83c44708ea1357fa410c309837f4420826a5e265e3fb81e0087c7025","impliedFormat":99},{"version":"9f9fba2db9bb11058b153cdede4ec4e3ceed37d51a18a2edfaf7dfbef0a2b241","impliedFormat":99},{"version":"7a8db4befe8f75591173ae1038856ef6ce3ecfee9e22f1b616779018a8779471","impliedFormat":99},{"version":"006ffd4a92ea7050298f50e44dcc03155b943454bb874c0a5a3ad7c8ae92a50b","impliedFormat":99},{"version":"e981c553d5f18821019546df17a5ade9e26316417279a4e478f28d72cfe6c6f8","impliedFormat":99},{"version":"4b29df4bba7b409b5fa9a8db9f4b672eed5ef80664ff09de5d11724aebc5a30b","impliedFormat":99},{"version":"f5282507ffe12947a832a8d9be748df429b3ef61454df95750fb72ff24108a68","impliedFormat":99},{"version":"22872735dfe76e24d30e89624385361d3d077c8d940257aea9b48d57839c906f","impliedFormat":99},{"version":"bd93deb5a61f121242eb17014a20254b517e411b7144769b2389cc56bb254c40","impliedFormat":99},{"version":"0574c7abba287242b2b56e75a37599682fa2ed3d24ff9cc1233a49fffef6cc81","signature":"2ac0937aa98b6c278485c2f01ea1f1a4407ea167fcc064ea361a3f64db054cac"},{"version":"bbcee7849113a4e4439c91e7b55712f1570ff7db4c760253d7693eb2b0541118","signature":"a6861a72bed1cae361b69956a9d680a181b9774d468210f4868ba9a4bd07610d"},{"version":"6e7eb495ef234ffb72dfed736d4526bb91f764e62c1c564b054403432cd523e2","impliedFormat":99},{"version":"767cfb1496df590e9132052dbf9d5a2ed4d7864823eafb4eafcc5f9569f3c152","impliedFormat":99},{"version":"b9f9f77327ef54fc055ab78fc6fc6c93b88410621fd9b2374bb956022018a62a","impliedFormat":99},{"version":"82147ff6ea10d9182855cb50ed6f28d36c1d4f54a792ec2173d42074225caa5d","impliedFormat":99},{"version":"aa015d746ff96c12818a7ad742e45f40bc6f72f4b7df2af0f7200dacfe0ca65e","impliedFormat":99},{"version":"01a6da71fc05a9195f334ab1092b3f4952b0f2e2c460ea55d206ef629309062d","impliedFormat":99},{"version":"66f0b814ca2e007985a604145f5d70793a9f66d2fc7d6c57b2e094c15b7eb83f","impliedFormat":99},{"version":"8d9b0d78ee11670d4caa429ce908ef681663d65e94dc1507b47d6eb44abf903d","impliedFormat":99},{"version":"888cd85dc7c3d5d1fe0c975a8a42387203a6040f6945d9e834044f4cdcaa7177","impliedFormat":99},{"version":"87783efceaa85da75752e808792e347efda30d7aa7d7a76e62398df4a86c31e5","impliedFormat":99},{"version":"6a8ab860d18807ef3ebcbba3c436ae6432640a8e9fd3b3e965d3b923d7ab1043","impliedFormat":99},{"version":"41560bfeef3407476ecbf1e87fe10ad8bb66493854c8810bf1475c1927e9509c","impliedFormat":99},{"version":"6832c3df6998885275fc6cd413f83aab3dfeac3b5b2d9ae0acc29707af0dfde6","impliedFormat":99},{"version":"c3367f21f12005ddb218db94e8f45502526a0c5934456492f39c6c4596b9aa25","impliedFormat":99},{"version":"85985824476f773241686f7b04c9983cef819dcdbea5a6564958898377cc3a50","impliedFormat":99},{"version":"0a0bd6b6fcd60d1165cee9bf6ef911a0d99508214386152d8f2e1e9ad6b0d61e","impliedFormat":99},{"version":"cdd20c5393a901a75302ba47d99425905028f9755c8469cc2641ed8cab9198e4","impliedFormat":99},{"version":"ad4d3582ba33d300a03f929ebc2a14239ab5e1f9aa8b555b4aa6533038ec20c0","impliedFormat":99},{"version":"73b50f5889069014a3063ace1a2ee649b8d64b5664302c10856a7a7ef4c8a404","impliedFormat":99},{"version":"a34c55195ac6e244b0d31f62f0c56545fc8a5e95fcb2b13e5e14fde434536dea","impliedFormat":99},{"version":"f72da096641226a5ab0556e1f4fec5406ac536194a3048d107a10a67e7b9addf","impliedFormat":99},{"version":"52d28c311133f70529f3e34c139fef3976b851b49390217059f743e927ac2aa7","impliedFormat":99},{"version":"6e998866598c2a811ededdb103763750fe3b763d9553ba9750ee8ed4085f6f03","impliedFormat":99},{"version":"e725c7b2ef6718b41be54c450d8983e346a923ecd54ec0d17f53fbfdff6bb11a","impliedFormat":99},{"version":"5b10dc5b06ad30df43ea4df39181eba3c68715af0fde9124fcc0943e40d50c92","impliedFormat":99},{"version":"2567af91666fc79d94fd70a25d7bd13ff340bea3bf677d096e3072c53d55e09f","impliedFormat":99},{"version":"0559c28b4b44c127446a6a528ad2ad5986153c17a667416fcc053f25af64f99d","impliedFormat":99},{"version":"c7ee05e266d06aa759dc6e3e1d6f9fdab337cc39cc3924496b2eb7e472f2f830","impliedFormat":99},{"version":"b06b851cd2fb5d33cfa6c4d12fcb4455898a4c270b20c87c8b119b945c64e1c1","impliedFormat":99},{"version":"a21c78c299f733901aeabd0d9c70115af96ba53c4703362e36acfd5cc32f2d26","impliedFormat":99},{"version":"93ccad407f8b531feeadff9a8337309643fb2b582d4960df8ca33963fe48e345","impliedFormat":99},{"version":"ac036d642dae91d521f48564b87903404bd5d25ea9adcdff3dcde7b34e8120ee","impliedFormat":99},{"version":"033de0ed908f278acc13eb5ad6e7c74ebd6eee9bb952a909b3408300bc0f2aac","impliedFormat":99},{"version":"26b5b5171b6239b01fc878b20a4c46fe6f30ab4c2600f6e0d75f17a0369310e9","impliedFormat":99},{"version":"ad3935c73e8fbcb9b36770aaa55edf61034a8128f434673f2e9770181c4cd517","impliedFormat":99},{"version":"ae46e99d567b4f131dedd3bda872f86836aff70d37a80c7ebc2469cc7ad774ca","impliedFormat":99},{"version":"805544b983979e4ba24049f35b59f1155470c38298c9bf64520d2ba602289d00","impliedFormat":99},{"version":"f8281fad02736e3f7e2475b14bb15990b00b8358b5767a0e7dc3e774f9bf81e7","impliedFormat":99},{"version":"a380cd0a371b5b344c2f679a932593f02445571f9de0014bdf013dddf2a77376","impliedFormat":99},{"version":"dbbcd13911daafc1554acc17dad18ab92f91b5b8f084c6c4370cb8c60520c3b6","impliedFormat":99},{"version":"ab17464cd8391785c29509c629aa8477c8e86d4d3013f4c200b71ac574774ec2","impliedFormat":99},{"version":"b026daf5c00c8f2abdb49008322a7d51fbadcd7b200a99ee7a4452dbd40f0420","impliedFormat":99},{"version":"e130a73d7e1e34953b1964c17c218fd14fccd1df6f15f111352b0d53291311bb","impliedFormat":99},{"version":"4ddecad872558e2b3df434ef0b01114d245e7a18a86afa6e7b5c68e75f9b8f76","impliedFormat":99},{"version":"a0ab7a82c3f844d4d4798f68f7bd6dc304e9ad6130631c90a09fb2636cb62756","impliedFormat":99},{"version":"270ceb915b1304c042b6799de28ff212cfa4baf06900d3a8bc4b79f62f00c8a7","impliedFormat":99},{"version":"1b3174ea6e3b4ae157c88eb28bf8e6d67f044edc9c552daf5488628fd8e5be97","impliedFormat":99},{"version":"6564db88fa4cf3bae5c8e0de01c701c6228eaeef1118b4ad6a49a8aaf8556350","impliedFormat":99},{"version":"9c5a4a21ed5686b2ea080557488b966c3aeea641ef1aa8975a10e5fc59dd569f","impliedFormat":99},{"version":"5585ed538922e2e58655218652dcb262f08afa902f26f490cdec4967887ac31a","impliedFormat":99},{"version":"b46de7238d9d2243b27a21797e4772ba91465caae9c31f21dc43748dc9de9cd0","impliedFormat":99},{"version":"625fdbce788630c62f793cb6c80e0072ce0b8bf1d4d0a9922430671164371e0b","impliedFormat":99},{"version":"b6790300d245377671c085e76e9ef359b3cbba6821b913d6ce6b2739d00b9fb1","impliedFormat":99},{"version":"c92c9dc7415bf7969931ac5339f21c65687909b32d05ac89789b411372e52991","impliedFormat":99},{"version":"a36c717362d06d76e7332d9c1d2744c2c5e4b4a5da6218ef7b4a299a62d23a6d","impliedFormat":99},{"version":"a61f8455fd21cec75a8288cd761f5bcc72441848841eb64aa09569e9d8929ff0","impliedFormat":99},{"version":"b135437aa8444e851e10cb514b4a73141813e0adcfcc06d702df6aa0fd922587","impliedFormat":99},{"version":"cc82fa360f22d73b4cc7f446d08ad52b11f5aba66aa04b1ed8feb11a509e8aff","impliedFormat":99},{"version":"466e7296272b827c55b53a7858502de733733558966e2e3a7cc78274e930210a","impliedFormat":99},{"version":"364a5c527037fdd7d494ab0a97f510d3ceda30b8a4bc598b490c135f959ff3c6","impliedFormat":99},{"version":"f198de1cd91b94acc7f4d72cbccc11abadb1570bedc4ede174810e1f6985e06e","impliedFormat":99},{"version":"83d2dab980f2d1a2fe333f0001de8f42c831a438159d47b77c686ae405891b7f","impliedFormat":99},{"version":"ca369bcbdafc423d1a9dccd69de98044534900ff8236d2dd970b52438afb5355","impliedFormat":99},{"version":"5b90280e84e8eba347caaefc18210de3ce6ac176f5e82705a28e7f497dcc8689","impliedFormat":99},{"version":"34e2f00467aa6f46c1d7955f8d57bffb48ccc6ad2bbc847d0b1ccef1d55a9c3c","impliedFormat":99},{"version":"f09dfae4ff5f84c1341d74208e9b442659c32d039e9d27c09f79a203755e953d","impliedFormat":99},{"version":"e7878d8cd1fd0d0f1c55dcd8f5539f4c22e44993852f588dd194bd666b230727","impliedFormat":99},{"version":"0d22b18cb407b03331edf3413b93e568da71130c906fd69911090df2abf55414","impliedFormat":99},{"version":"2a39f2a7f99dba7a6ec561378d8a1f2e9d2761ac272a006777f78825822fc419","impliedFormat":99},{"version":"ddc0727ff009562bced85c9e7d55b29fb2a5ca23598350eb16299e57a3516a4a","impliedFormat":99},{"version":"b8fefeec475a9f1e78e1e5ae56f7fbc77ae5fb9b8494a8205360ad4b304a511e","impliedFormat":99},{"version":"fad5ca404b01ebde453f9cd5aa80353633878e7e1e1c22ad4a77fd841a49c922","impliedFormat":99},{"version":"64155a3d9cb589603d04c37f1327f91d640f9924c999d4f47284e7a5eec5cf55","impliedFormat":99},{"version":"b1727992696e552fb934bb72673da49085a9eef76050e748448c1e0c2568f63a","impliedFormat":99},{"version":"4eae6595d59a0967571e022dd63f99f3fcfe624e50e17cd26195412e16f22549","impliedFormat":99},{"version":"b62a3b99a2544eb853035484e4e1c71a7675ffc4a4e375fc3c6fa89450f61293","impliedFormat":99},{"version":"b9d571d39d729a623a60d6fb7318e49e41b32e94935ffda36103b43f7d824c5b","impliedFormat":99},{"version":"00f37073c33a43720d2e2236e4dcf43fda3d2113c66703a22a82c066415054e8","impliedFormat":99},{"version":"04bc73f52fd9447154bb396f89640f90434b084939ad22f16b42b2b967d21cde","impliedFormat":99},{"version":"2f6c7cc2633c2a3e4f51aaebe5f07efdfa04405697b7d31c8f7dc19997747521","impliedFormat":99},{"version":"abef69ad896a9e33bf221b4161d7eb3710c30c9cad6a7b6b053df043580a6f43","impliedFormat":99},{"version":"3e7761d82206ddf29dda7f2c1b169b205f4707e043eaf854fa3908dd7e5b0220","impliedFormat":99},{"version":"50ce52224dcdc3d9a431a5dd08f814c76e3cad3100f7a511cf9f0fea3e022245","impliedFormat":99},{"version":"7461a12eefe80a0dd858e8ddbfd3ee2af7627c64aae2c58f8cc3a1f1810a0300","impliedFormat":99},{"version":"d169dee8be7c5c62179b381a7d823d874b0c218604db989d25b8493e3ec932ca","impliedFormat":99},{"version":"26e23b6bbe7b0f8686e4374c69693b0925538608d3af66095fcd5a4debe99cb3","impliedFormat":99},{"version":"20d89ee7150b3ba09c98a1ed855b9dc55d0d883095cc010af0eeafbfe0b60cd8","impliedFormat":99},{"version":"cedfd67cfe921e49f0743aeefc7d93564d2fa7b34d3cf0860f3488ebc4e0e057","impliedFormat":99},{"version":"c048e95315c9725df4687c03b21980f12e9a3ec8c288db45233618f5ce685d27","impliedFormat":99},{"version":"754b10aa3bc061c937bec5e3d2f825e4211ec72ccb94f5aebaefb765ab80c56f","impliedFormat":99},{"version":"95f1648d8c0e1094e2375fb3531a4bad0a99adfc619832fec800fca6934095ce","impliedFormat":99},{"version":"c363c5eaab6f4ead856243f0734d0c320d3748ec777fda05484e17258b515cbe","impliedFormat":99},{"version":"e5bf7408d2d66195b132ae905b89f83d660dde24a588c3d1c43dc000bd5fcf71","impliedFormat":99},{"version":"b3bcacabc80b752dd496e7d154e4707b79e755d2e9d0547e402e6d3fa0326c9e","impliedFormat":99},{"version":"b11aba62a6d6eba8f5487182096d8615ca8d5d5b8a50c99bb0f0717ed7e061b2","impliedFormat":99},{"version":"761bd09a063914a0dddf95c6e9203d769487f1aea46a82ff1fd96cc0ede2d32f","impliedFormat":99},{"version":"cafe5ab7aa61b213d16cef121e65269dcda6607462c5762ef21124c1fb2d644f","impliedFormat":99},{"version":"7a43534274fe9532fee5414984708a56f0baaded902466c2eba2cbfc601ae20e","impliedFormat":99},{"version":"1cff175af3f1ff70546a36d9f2f118451df21e2d59bb837ea6b3cdefd5e2c7bf","impliedFormat":99},{"version":"1998b2e12b3de685ce74eab487748303705062861abe695beae5adb3092cfb98","impliedFormat":99},{"version":"11f999c38bd526002c0809a8157c366d032a0d46314d54c9724302140c5f32fd","impliedFormat":99},{"version":"607751697c8b64c78e2a3e89225a93cfd6a7f2c4399197d7c6f52f2a911d5522","impliedFormat":99},{"version":"c12bfbef4bf57182e240a916ae15d017defdec55d2920a4d08644563970b2036","impliedFormat":99},{"version":"1d7ad8c09354264ec80cf989015bd4bf232c356722d935c5ac38bbb83a6aafbb","impliedFormat":99},{"version":"6b821199f43755f7be315b84ede22b7e51fc91e98b01625cc0610042719cd0f7","impliedFormat":99},{"version":"4e8c57027a125d5d221b6f306eeff8443142bc9a0b1113c7c5de96478c388cc1","impliedFormat":99},{"version":"128dc4bc5697686aa6f876fd5ad6fae6d19a5652eca99f874b40a8afba6057d0","impliedFormat":99},{"version":"df09e59ace0cf7fd8e3c767b0b8f3d5b2212bd40d4e9dbf49a388526ead5e545","impliedFormat":99},{"version":"03fe713f6d3e69f47d4871545b2cd40e1f714b11e3945f6ab1e05361cad19192","impliedFormat":99},{"version":"25ea3ca113eb33c517ace8bd6555e8caf1c99d34dea7b3a48b074bdc5e7cc735","impliedFormat":99},{"version":"d5f83721da8ee61cd1620f0e4abc9d60453b4ef0b25945172bbd478ff6e3adcb","impliedFormat":99},{"version":"597536b4c8e7e309dd823f61206ff169ca90a3d68245343a5226a8d20f7a9ffd","impliedFormat":99},{"version":"cfed3c4118baa2ae69ec0da47b5fa722c49e5915c1cb7ffa8d5b53b678b641ca","impliedFormat":99},{"version":"3b5f9ed01add914f4bf2220544cdd4099583c2a72895b2ea495e9284be88b894","impliedFormat":99},{"version":"575425068684056c113b93ec316870eca50195835f04179630997e7b075164d4","impliedFormat":99},{"version":"aa0af7166f48f67765f96dc70c1d7f9f55ae264b96cadf5b6077b2bc0aa2b5dd","impliedFormat":99},{"version":"2fc9c7c6695b151ffd3ed667d6d793c2f656461978e840eff1d1350fc0bb1ebb","impliedFormat":99},{"version":"4d590f0e0b4abaf693f94d08b5c414928f2571aea5ac6efb97e4646e195dac48","impliedFormat":99},{"version":"bf1655c135bd654637f98f934f9a9eb4d6450194ca2f4968b79263608da59fdd","impliedFormat":99},{"version":"1ebe079cc9ed9ec4cd11d02c70f209caf16e9dd8e1e801a36648ce711bb3c404","impliedFormat":99},{"version":"b9a49ec04f7dac4bdcb928894d3c6bfc15a4ffee5f14d4b2bef69069de2b1d25","impliedFormat":99},{"version":"d2554dc921a526fc29600ef66da5d37577ce64557eaceebdb2b6170776051ffd","impliedFormat":99},{"version":"1fffc635777e6b7edc2caf5e8473fd161ba8fe5605ae84b64746a2a34045e6e3","impliedFormat":99},{"version":"f6f35852e407d4c04e578478e743c8101227037abd405ad71564e8430d4e4c1c","impliedFormat":99},{"version":"0e16f517285c960f284ff5367c239c24e20acfd3b3aced00d7842c7cd867898c","impliedFormat":99},{"version":"063929189f06ac3087123f98ce8736eea5c2a4cecbaa46c54b58118608fb8708","impliedFormat":99},{"version":"95e249a5d61382550bbf6341cb31a3114b0c10c232b0fbac97da74f83275dbab","impliedFormat":99},{"version":"34880c694bdb6f266bf484dbc60bd887890ab1c8d6807459fdf93f6ab0b0c792","impliedFormat":99},{"version":"d490c69a03b97298294b4d2159175f2f9b62a7dfcd81efc63ea3505c60fc0ac8","impliedFormat":99},{"version":"c0511c2a0a6ae726a66a0b25336fdc61c632c6c1505eb0bbbe1556055fd06919","impliedFormat":99},{"version":"bbd577f9d34a868d751e14a904401a6a026de322bd0f7cc7d51ecc585b57c6e6","impliedFormat":99},{"version":"e06f1dbc167fd37808d2f36aee8ef3bfae734d13fc4afcd9994072a30099df0b","impliedFormat":99},{"version":"7e0693b9604ff4fd358a2f21db90982fce11a4ff216eeae85e326f108d648d68","impliedFormat":99},{"version":"69d5a40440e664ec9493c61169414208472583f342346fb31dcbebad23c6a780","impliedFormat":99},{"version":"3d1efa91afa616c307864fa93f9e7777672bf90ac79c16936969efbc6629cbc1","impliedFormat":99},{"version":"722d99f854a33867a3397fe397924c0de326741e9d7830876481ccf87643a133","impliedFormat":99},{"version":"6ddebf5efb47d10d48d734f855b5cd13772de6d14b50779a17590afa30fcaefc","impliedFormat":99},{"version":"0c4e55d5ee917d3efca585b9eb138df9eb9cd38ec5a8ab258fc0e4fe8d54abd6","impliedFormat":99},{"version":"a41283ab6303ab1d21729da5723952e1b7d9d1bf379b9cce09132403f6f0f07d","impliedFormat":99},{"version":"1557f6fa35f1fc5d23911982761a7ddc4fbe9322eda575f6dadca8d5515e0cee","impliedFormat":99},{"version":"ded4768515ff723001ca99221ec8a7b751a4f90af8be95c885ec8a21efa548d4","impliedFormat":99},{"version":"86a6b6352a6a47fa8698f68119eb716ea951f541128d108382137e3d85900162","impliedFormat":99},{"version":"b9e6aa9de64cbd004d2c59ad79cff12a5d34406153456b869eae6b1d8f5bbb61","impliedFormat":99},{"version":"b864079910dbf273badc3367d21910e6f8887705defda6d51882084ef5b6ebb5","impliedFormat":99},{"version":"5e1fbca4c7648ff481cd7dda46ca8651239f4898bbed3d5066b8d6db0f60c555","impliedFormat":99},{"version":"0fd72d2cd43f9da04478aa6cbb922c27fda6b4a0ca7235aee8f6a933941bae92","impliedFormat":99},{"version":"28a5fc04797c6992303791a4b79ed99431bf2af90b77842948e3e8bc0f681d97","impliedFormat":99},{"version":"20a397ebeea68a193465caeb8f1b3225c49c6bdc4545a0ca6521fa684ef2fc5b","impliedFormat":99},{"version":"9edb51982e31faae66cef7076aacce409cab4637f0ec6e6851331fc87d9fa872","impliedFormat":99},{"version":"8a954a3b53672645d10a61e617272cd309bd7dc442f914427291ea8a2cb3c599","impliedFormat":99},{"version":"69e56ac933cbb0a62cbed3436a44068445460c3a246ae5b7b70e010dd3d8e0e5","impliedFormat":99},{"version":"dbafd3b17be2ca81493a6d6daf7afb6d04b83dd3b80c556ae5973e9a375aa6ff","impliedFormat":99},{"version":"8ea7264ce539f97f4720250a14695a1f82c3ac33ed66617991438cfb3d41947f","impliedFormat":99},{"version":"abf4fe7ebd8771a5c9d963754ae0c088c159e0e12ff77ed2e48f69d86ed50be5","impliedFormat":99},{"version":"050985cfd782bb62131bdc040cd444f65bbd35ca1b45e3eefde79ef713ddeb1b","impliedFormat":99},{"version":"cd935cd60191b79134684160cf08d5ab555512b7befd5f88b449681f7e037a3e","impliedFormat":99},{"version":"5e61341da5f93b211c8c11f6ca709a2dda33feded2cb3e1481d0b727aed23cd7","impliedFormat":99},{"version":"3df29fc79cceaa80012df2005f745c1b635a41dda0766ddd29ac8e078c4216f8","impliedFormat":99},{"version":"bb8aac29b972b3826d70b106373ed2600bfa8377ddd5672b0b5e256f361acfb9","impliedFormat":99},{"version":"721e984c6181cf2f1587226d11d2265f5bd1450da58e7598845ae15cee0465b4","impliedFormat":99},{"version":"bfa5dd71d432e277bbf3c44b3dd91db853fd833da21f43cc3a0a2dc324b7af47","impliedFormat":99},{"version":"987f95fafbf1296cd653459ac69b3a73cc4f7f37f38a1c769902bcaabd516452","impliedFormat":99},{"version":"5f3f4c3ea0ce78180d0482cfc808410092b441b727bee9a26d26ef09decb64c3","impliedFormat":99},{"version":"6b1c226b8c0d272c37948df86f81f100157b7cef9d97d2651f1d8e740a2be268","impliedFormat":99},{"version":"3e1e6a7a6e3d0615d046dd62062c557404c9e1c622dfbef4fa83d17c628e314a","impliedFormat":99},{"version":"ded6a76ae5fa6fc3f7f860a187f3b1c81b5bafb953be192501a937307dc739b9","impliedFormat":99},{"version":"8ee4717c4ad7d5976ab1bece799c68045b7b346e274d7774e86ff394cf867d47","impliedFormat":99},{"version":"a9e3299c6098d323bcd9787e2ac5e4d74457e5427c305ebd432e52ed13dd23c0","impliedFormat":99},{"version":"3b8ddc84907c11d89e5240f8299e87fe506a1c18764fb9d546b02f9e347f93e4","impliedFormat":99},{"version":"4b5186a238a3fbfeca1b14fe6b234b8bd5b93ac89a47984715f76f8919e29d96","impliedFormat":99},{"version":"dd693a36f441a1337e9a34b6da2cfdc53d7cd9dbf0d1cde334cab196c3e6f17a","impliedFormat":99},{"version":"e284b0d144003a25e3b7da92c55d80a085531c0c84a77a62f1a3e2bfe82454b1","impliedFormat":99},{"version":"e09a001b1588cde9f5e77560730c5ec6ea346ea09da2d65b3a02629e390d0923","impliedFormat":99},{"version":"77a38dc0e4afa289c6ceaf9121c7718fac9231904ff5f30c0c1201524fb25f23","impliedFormat":99},{"version":"2505ab6e616e35b2a63dcc8cafd3d6092c6e0109b206cec1be7d80cd450cfb7e","impliedFormat":99},{"version":"c2d66e86bd5f13ad098ddb98ab863bcf0d15b323cc9bce6ff56e20eb50648926","impliedFormat":99},{"version":"1959affb5ce54dd86a2bca9ba087da5a29fcd1849eb1710f1d6807512ac513d6","impliedFormat":99},{"version":"8ae1ca3c5186af2c3a6e979998c00c82a363d024ed26a8bcb84a6ef21878d4b4","impliedFormat":99},{"version":"05ec4ee3055f601ad3f932832a0b7fb5842fafa6d3a4f29b200c49e0c8d36bc4","impliedFormat":99},{"version":"cf0430d48488f45abbb7184e36b580c1933cc8078581c038583e16cdfa80863d","impliedFormat":99},{"version":"aeb0806490c71f371a75629556f469419997367aafa673ae2e86705652f39227","impliedFormat":99},{"version":"b445ce66b11750fb2172525591647d30b75ec8d003a93ee3efc12954ffb8d5ec","impliedFormat":99},{"version":"a36860808f7994a6ce2c965e11e7a971ae9b438422ffefe9471ed4f3ba3ef3f6","impliedFormat":99},{"version":"6335dfc1f7c285b25ca643890becb12d22fd24079624d91b660f31a3ef130f8a","impliedFormat":99},{"version":"e0e3a4eb638ceb6583ebfa8a83fb27d5ca98ba93ce00d396dd09d41630834a68","impliedFormat":99},{"version":"54927a5dc7fa2c1d7b8232c756d658d051f2c0620533c4048343e671d18c7983","impliedFormat":99},{"version":"8ff6d24bddad8f2bb8ac0ae129760dd1df427765f4f6199390347c0009ff9b48","impliedFormat":99},{"version":"25a0403b5a28416593fc09c3e5150e981c742afedf0b6e423f8a94f1351352c8","impliedFormat":99},{"version":"0db51b9c351d7c2313296e5879fbad8f20af8b9061885c8590ae0216ff6154a2","impliedFormat":99},{"version":"1c6454d7f733067337f1685a06c4981a78d1925ae0381bcd09f2c43b73755aaf","impliedFormat":99},{"version":"fa7cfbc437c87d93860a4a1304a12e8fa9a28a24695e1f4c36d266b4cbdf4e7b","impliedFormat":99},{"version":"4afe4410e572d10448fb1f7f254bc2eca329e00180e75529be8b22465718b2c4","impliedFormat":99},{"version":"6d57f0ab1e858b12895e1eca5e6f407a835c13038fadd5f85134740e6e32b613","impliedFormat":99},{"version":"5d6ef65ccf14b0d51af503adffccdbaa846848cf0fe82310816cf82eb364d107","impliedFormat":99},{"version":"397a17567b445fbeed01f58163c2b9667638ff815881f349cffec5ad30844905","impliedFormat":99},{"version":"4bbac0cdef9e2f41b2d70826633298df274436caf011a093bfc1bd57dd2269c1","impliedFormat":99},{"version":"38bc1e63328558fecd8e2c3f9159ded06a2fd86059b0a91e93f11aeebeb1f177","impliedFormat":99},{"version":"e4756baf25dba2f6660043ca4fc6e36ab8d31a0c34d507624d8a12cbe6ab9b30","impliedFormat":99},{"version":"4be799bfee1766047c11b3b5d371ca9e3993526d50c3e276e7cdb3943dd680a6","impliedFormat":99},{"version":"513f887178e2df3ea70340c20bffc633827c2f0a4e1340a4176eecb6d3c5a4e7","impliedFormat":99},{"version":"7b6ae8994d485350989d50cae27221f2d9929d60677b8c5de4ceb81baf480d3e","impliedFormat":99},{"version":"7adc87c8c1d3fdf85652694a636c6e032b7ea76335de7a110ffb215970d9b1f0","impliedFormat":99},{"version":"27f60ec60daf015ed0510587fd37d65818c085d47f320f03e2178e80ae1b96d2","impliedFormat":99},{"version":"69f868104a0f83fc97451cb143d1fdee65d6133442e585048983a8e27c6dd4be","impliedFormat":99},{"version":"a4fd1c983504d251988ad2e8629dc110228a591e1bc9f85e57b35895e8141cf3","impliedFormat":99},{"version":"8e82daa0bb799f366cfc646fcd65e507d3db4921082426dc45b78cedcb60f71c","impliedFormat":99},{"version":"a2f99636b48361b7e10c232cdeeb3aede976279f950b7f84e8b970471a0dc606","impliedFormat":99},{"version":"e31bcde9cdc47ff503a45bb8d68c38fd39039b06567c8017021f9116e31ecde2","impliedFormat":99},{"version":"bddecda3271cc5aaf904e94c2b65c23cb7528e27567ef31d1302bc8845374e56","impliedFormat":99},{"version":"23306c0e57b32fdf724bb0aba128d0023fd57b856490b1cd69bdc0de2acc334a","impliedFormat":99},{"version":"4df175087aed418f42fd5cf507c1f57f0972484cadbe0f6c38cabd0c6b3576ce","impliedFormat":99},{"version":"df51e368f1e65529fd132dd67c8312f21b644063ce7950e8b820905d70b28eb7","impliedFormat":99},{"version":"74d10836d7259d3a664ed517a3c8547003e1de056d85b8e324a11dbca522503e","impliedFormat":99},{"version":"b020142c9cb2c061e119c6ebc1712f2e66a68968657f4867332789688c706189","impliedFormat":99},{"version":"df08a61b7eb2b11b4e9c771cc3b538f3fc4260c170f8fd89110843323fac2ba2","impliedFormat":99},{"version":"acc1e28219b83d788ef0e28b8d7ff1f3a8fc7df6a49ec141402e044badc84108","impliedFormat":99},{"version":"3552e9ab64219d9d980f9406c354e620f04ca17944459d4b23c62d472d9be2dc","impliedFormat":99},{"version":"e9f94a086b52c2f522f2bc9ecf7539d7bffc390578cc41db9547005b93df5d88","impliedFormat":99},{"version":"a8f5b86c67a9c2774ccdd1db31968ad888fc41ad166a5d5d066dbe86637b2f66","impliedFormat":99},{"version":"5c25d35c4bbeabb961925d2b114602191800afb4d4f164e45979dd2c83f965c2","impliedFormat":99},{"version":"8b989bf267ff6ef7a00f318e95794bcefd06cda44f3cffde905ca579d17acad5","impliedFormat":99},{"version":"f3983ffdad35bf9234e36a691bf959934b723134c070fa5dffccffe046009e2f","impliedFormat":99},{"version":"2d8c69bb71790264bc61c5858afcfd00d5bd7bca6c9c38185f07896661053790","impliedFormat":99},{"version":"0396db572d4384fab79c5ad3b2cf330f167496da87da0e61a3f55e803f0fcc4b","impliedFormat":99},{"version":"9eb195a59362d107cf8f1d92d704fcd034bd92796f72cf031ad0525d88e36d4f","impliedFormat":99},{"version":"b60a1aeffa207842414020d16c86854f99bebff51832478b00451c1770fc9708","impliedFormat":99},{"version":"178ae1eaa5cd24618fec31c62ee6b66f5f57d76b075d9d8b34cc0db5543c0fec","impliedFormat":99},{"version":"4f31b5dbde1dcb81687ef4e06c2636809f6a0517615876bc937fa266f42e87b4","impliedFormat":99},{"version":"33d7dde5b3614d1f000ab11f9be2cb0f032615b726ca8537afc272db0b522a7e","impliedFormat":99},{"version":"97b8ea7292ec9f0828af2d58952ea17497a73943eaa0a2dd3046a4e07a530c61","impliedFormat":99},{"version":"ebba07507741f7d53d05cbb59a8dea0b3b75aba278810b4d2696776f95b779e1","impliedFormat":99},{"version":"5c840682cf2d211808e4f0dc5cd32da409352e8b3d11d7e9ba25c92796932cdf","impliedFormat":99},{"version":"f278958ac0fde187482abb825e61be120427e8aecb42a9155f0144767a29a358","impliedFormat":99},{"version":"cf35b9aa3b45b2098ec7033db87d004913ac7bf1ce52c9c8154fa86477e9046e","impliedFormat":99},{"version":"8002100726ad65ae695ef88b091b9c8cb73e024eaf23b31d228a5a8ce19af31f","impliedFormat":99},{"version":"f7a7233cef5a86a5c2c5e4dab11b46e0688707bd066a80aa5249e6cd6e0211f6","impliedFormat":99},{"version":"354126b46c623665e6aac86b6deb693dc43499dbd71bf655aa5f6bcd7753dae0","impliedFormat":99},{"version":"1f1d4396e7a118ba9e1f49f290b29d0aa946e91fc8180909b1d64b2998b08953","impliedFormat":99},{"version":"534f6fde91eb366097dbf65174356c88c2726d513c55f0f60b2098fc3f6e87ab","impliedFormat":99},{"version":"bc8d8ff31066bbfb937d223a528d545abfba45a0a646b141e2a15dd1948026e9","impliedFormat":99},{"version":"8a03c390eab5e99798e3d24c1d86a9b0ee851d315c0cb7480b42f6a49338d694","impliedFormat":99},{"version":"46b25c26bc3816d779c0353b3c1f6b83eeda1030b99401472a4341a9ab94138f","impliedFormat":99},{"version":"0ba4da683fe4d459827bca4e9c2befc46b9fe589353a08d874440dc6b1119df9","impliedFormat":99},{"version":"a5ed548aea7fdd435b68149641d20d0c823ae4341afc4c5c027d246a321e358b","impliedFormat":99},{"version":"c831a507ce1fa56d927c77b0296eaebbe63208dc2e10bea30ee19c19d3832ac9","impliedFormat":99},{"version":"0e0775f99d5750b8ea2409b6d5783ecb7465552176022512c4ab695e2cc07b25","impliedFormat":99},{"version":"998b22c2762b4c5dda982144f4273439478216601e1dbf607f8da50f90028302","impliedFormat":99},{"version":"de07059049dbb4d7b800fad4f5919c62c0c572d021f2cde9b4cb92d9d312464b","impliedFormat":99},{"version":"b006db5c3868f18e051c60c815dd8d18b42f0bd1f2a4732e8baab08e56443fa4","impliedFormat":99},{"version":"f6162b05c0a5b26d3446503c022652af632a803010319ff6c65ddb425c88c1da","impliedFormat":99},{"version":"ce99d9af9d4091b04b4c2266c06f38d7f39e5614616973e0d17f01a36212c516","impliedFormat":99},{"version":"d78d9cf92e8957b87ff73a5029aabd2f591a40f4b915af5566122824a328d451","impliedFormat":99},{"version":"afbf6dde412faa5825df13ab00b8eabe1358558603d6e4c34b4ff83c06128500","impliedFormat":99},{"version":"9468d74878264e4ed6214c0127326482d3d81d8b39c2ffb3ef0887348cfc116c","impliedFormat":99},{"version":"5d761b75b6780d20af311198f88e4a894243753acf28338ce7cc0cb1d5e3bfca","impliedFormat":99},{"version":"4c02021950d7f559417399582f74b4f23e7acf96bf4abfc8511ca9f349e7b090","impliedFormat":99},{"version":"f05da64b51a564bd57764011df409a699928b2b9e018a9692e06d5a3e761a8ae","impliedFormat":99},{"version":"448a1d960c3243442ffb6ddec7087a5dbd062a8b2fdbbc39f6ced3f5b7dd1cef","impliedFormat":99},{"version":"c01a88ada696e9f65a4dd8248bd9a568a3f1ce0c2eaa5e7f8696a2c3b3573654","impliedFormat":99},{"version":"6ca73337f9333cbe5e31c1e03fee42dfbdb119e7fdf991e8aa96767f4696d0b3","impliedFormat":99},{"version":"9235105279d1e63c87e3ea34fb6b20eb4968d7696c4783236a2d8ab5e924807f","impliedFormat":99},{"version":"fb3a41f5d7c41e4195119f98b0df0018e7e04a1b025d7b10ed82741f65c0493d","impliedFormat":99},{"version":"bf21257fb910b2a765ad8529cb457d0d9eb99d8d14ef01836bf04422c185f230","impliedFormat":99},{"version":"9dfbe916e48a8172cc0db07e20248214755205bbd16cd5bc0672dc2cbd80a429","impliedFormat":99},{"version":"cfb85bf0a694c3e0630400fdb2c1f135132b500c152aee6b9ae9d842637378f8","impliedFormat":99},{"version":"2067e20e971aec9f9c3b7a80aa3f2ce908fa690d29614956ab939d4137527d46","impliedFormat":99},{"version":"469bd9ff94e8ee2180eaa7be310e626022f4b97990e01fdee2cb681eadfca444","impliedFormat":99},{"version":"9199cfe666c63b59bfc7a0215ad7b834165e2c8678769aa29b6b15d4035dd874","impliedFormat":99},{"version":"75c20bb61d4944a90fd9fc4d79be814af84552497a30059d1f4a5979e338b576","impliedFormat":99},{"version":"e36d57187446a9b265d011815e80c5ac2d31cdd839e5dfed3cadbade9d63084d","impliedFormat":99},{"version":"ff94c04aacb366b85fa01b058ce27e3f2a26305e87a512b6472013f3951a7639","impliedFormat":99},{"version":"f28c4909885c804c93aabb9561ef520ff620576369eb310195a7a6bbb8d9e587","impliedFormat":99},{"version":"e971398a29ade533ddc2730c360a22672144389e077633fc950660f4c4d9d046","impliedFormat":99},{"version":"52677e8175f66b1d6b684e8249f7b12af8932267f0b2f363ab973fb94ee4d319","impliedFormat":99},{"version":"d1e84e4b4b53354c6333f50ae4337b96f1004f28875d3d7b3800cdf79b0ffd4c","impliedFormat":99},{"version":"a9f319a6a5287c95b72c37b461e0f70f490324cc4a55d71378e2a37f1ca67adc","impliedFormat":99},{"version":"df7c9a0919ac54bb69647b916261beffb40d84494f9cc3e68fc7927a79ccb64f","impliedFormat":99},{"version":"30a24fccfdf6a40249949b222a11c755421b9479bd68a96ee97413540443216b","impliedFormat":99},{"version":"da0ed328391d742978219a5ab07decbdcd353bbdbc87708a2176afa971056a3d","impliedFormat":99},{"version":"14a5746786128a83561f1d719290db89ed9b225e42959bbe0023112035a6e0a0","impliedFormat":99},{"version":"71db39385fc6c5eddb6cc70b1b68920b2aa06cd85ca4a95b1de585e127984881","impliedFormat":99},{"version":"c9f95e2f5326df254b2c867de54f7264763065fa4d29f5f9d10960d97352afcf","impliedFormat":99},{"version":"59e6446d76c9c7a1cf516435f942c5e122b3fa9c80d4962c4eeae63f3bb605af","impliedFormat":99},{"version":"ee28654c6c98fe6b359d34465dbe1f9798d1e7a6ed5ece29daf19de11cb8323e","impliedFormat":99},{"version":"68d524e37e75f230102cd0444befe3e17a8c85438060a552322e7e400519f2c3","impliedFormat":99},{"version":"282d6f2f2150a26e8c5cce93eaf68e829a8683171ba13e92ad7dc8b28a12c623","impliedFormat":99},{"version":"34b95fa727e92d0a2fbe45e37352127297aedd9af64e56dfb324ff1280517f3c","impliedFormat":99},{"version":"4d37c6842a01d7310940ed2d39cfd4a8d63e7676d1113070b3cd725131347844","impliedFormat":99},{"version":"38ccba9a0d7f301e4b590f7a52de8a8fb12e9edb1de6d7ede6a8843176abfd54","impliedFormat":99},{"version":"db4e72e734c0d11d2051dea52f678270eb423be4541e3c39ede40bd29e733484","impliedFormat":99},{"version":"b6fa5f1295afc4b3a9bbae107ea00d1fc37956f25b846338916cbb195515a4e2","impliedFormat":99},{"version":"4b3e07d081541bd9f0418c1963a44b02a65923b6de04d6ef7bfaab8e8b1087d7","impliedFormat":99},{"version":"438659c94886ae81435567673c83b61937048729da03385738a023174cbff051","impliedFormat":99},{"version":"63310e90fe40fb7a431b9ff640d54b70ef30d31b23a634890799569521cc2a02","impliedFormat":99},{"version":"911e8affa1bea9b54a8926ce39295e190ba3e5e36182c7808c3d657fbd77d705","impliedFormat":99},{"version":"02353129e38fd07cc487b5f822ac710ec117e43e479e9f9f8039418ed3291ff5","impliedFormat":99},{"version":"54bd44d1d220488406919d2ddbdb92cef690c8ebfe41d2cdc61a8aaf26d6396c","impliedFormat":99},{"version":"790d0cef4abbfedbde0ff29c9a1865d5ed8364e9e251e25bb13794d30c13ac4b","impliedFormat":99},{"version":"88f2b0ad065d1ff42736c1efeb0e14061b3091d9376c272672be3f27d167a152","impliedFormat":99},{"version":"81de941dc5851bd7ce1e8f81d4d31db1e035de774e571947f8d03b351fe9f764","impliedFormat":99},{"version":"fdc68f982f0c7b074e3787534a5137c3f9d746edc323efddde286931ceb9c954","impliedFormat":99},{"version":"be922b6a92064b78554dfbf46decbddf5a0b023f49a656a7865e17ab0bf710c8","impliedFormat":99},{"version":"609d27139ad9aa20641c466c993b2d8f8c413296ee814b1afd79f48bd809a0f6","impliedFormat":99},{"version":"176b071fba5783d15078411e7c0753d2a874dc0ba0bf334c402e358b59e78f54","affectsGlobalScope":true,"impliedFormat":99},{"version":"774d51ea5facd44ed191c2e420f2a0ab4da76a41905e8c1c3aa2a532ec340d97","impliedFormat":99},{"version":"2be23228f8822815f04418af4b3616f6c12d2e8310d3536537ca59c791fd71bd","impliedFormat":99},{"version":"3e9c9a37943e0f4c86e33e47c598a43f25117acf8fdf177e6ff5e0476e6d0cee","impliedFormat":99},{"version":"2c0b6ecefb1757ad6ce6d2414b3c268cb9092cff307f6794c75e27f7b1b3b358","impliedFormat":99},{"version":"10f2d3d9c642a1e734adad62f07866c3217b1f5f89f9f3f47d3fd6a295bef8d9","impliedFormat":99},{"version":"4894b371550ff623685722b8fc3064eec2a1353d0a4f7a4f46707b446d3cd607","impliedFormat":99},{"version":"1306e750b3d9089eddb926279035e88119bff73ba6d12bcd1ac3907eef2bc235","impliedFormat":99},{"version":"f97a6ead0f9c40bd2bf83cdae4aa47655aea300282afd44998180d9cf62b7d76","impliedFormat":99},{"version":"a5d1b10c57d14126c7a312e2bb28763c745a87c4f5c005ec6b9ad79aa16850ae","impliedFormat":99},{"version":"33b25938d78614b92778d270bde2c971ecd7f369ef6c990d13e247eb2c7882ad","impliedFormat":99},{"version":"ef325176a8c255a9a55bec7c23d6289c98b00ebfd67112bd4b915c679d721b1d","impliedFormat":99},{"version":"81c53ecba335a74d626d838f842eaa7cf84289776b413356bcd61560f07c9e51","impliedFormat":99},{"version":"47a102af679f68d61d7754dd8f133fab95c3cf7c2dc6674e70efd1b7b7c815ce","impliedFormat":99},{"version":"41931aa72d208139935cd9537c83679c6ca91fe69fd1bd8ec88bbe8e93fe2a2e","impliedFormat":99},{"version":"793014c8196d3044e2d425d7de6339e130a8f81136c5876e2e88e1b8279dbea5","impliedFormat":99},{"version":"7cfcb8c758cb502085d9128ba3ff999084cafd64b9b7c317f87fc85170d1282c","impliedFormat":99},{"version":"6d0b4092bc1fdd4843d9a4313b470b6b7773b5fb712545d6174fd4d703265ae3","impliedFormat":99},{"version":"b6e63e92b837071df07652d3f5632727214b713881c8416a133f7afa977d6e44","impliedFormat":99},{"version":"b09eefc95f09a9a9c61e4f2ed3c1e22069c703493f8e231bc76d3c6cf7ab1422","impliedFormat":99},{"version":"1b08cc33d8dedfa20adf4a779020ec36d494ab7ea503395c658c5e286a3b50e1","impliedFormat":99},{"version":"2c94d2217244dd31275ca5e404560c5c2105b5f06f8985d0f039f39caa1e9e30","impliedFormat":99},{"version":"e77d73e81f5824767db0df8bdb7b7c72cb1741d5fd74e099bfaa6369b8716491","impliedFormat":99},{"version":"077f88e83a13ea89300c26c39ca8ec3708bfd09a15464c71e2fd762708fbecea","impliedFormat":99},{"version":"fed7941cd69554080ce4abb7f4422dcca93a6021f27cc8d2986875ee2c6bb39e","impliedFormat":99},{"version":"774a6eb661aad32b5f9b73bf9d08af7f9204a4bc67a583494caf43fa09fb2af9","impliedFormat":99},{"version":"0c3d92e5fac4a662f12b04c12ca741b4f34a1bf2824a470414322ddb61b350bb","impliedFormat":99},{"version":"b2035f5bb429bbd282a7c947e80bd344ee948a4f7042a019271d3bd114d09afa","impliedFormat":99},{"version":"a4c05674bf833557741ebbcc3fa4a25ddd052e1c762a91037db94a2d7688ebbe","impliedFormat":99},{"version":"97006e8ef367bc2388ea292d7eb6cf471bd2b53d266642ef8284b66afe6d01bf","impliedFormat":99},{"version":"927c282fb88ca5c95a9aaea00175b56b0a6dc8728b246c9e0ec455de40d54fe9","impliedFormat":99},{"version":"7dac0babb2b88108fc5a5410aaf6fe6e59ef1e158e3b5283a990ea503ac3ea07","impliedFormat":99},{"version":"2f4620eeb98e884074a0ba924445a69b29654da70dcff2e3f84f58092741e6f7","impliedFormat":99},{"version":"669f1bc764b5fd840e483e123909aefdab8dc82c9aeadae194d75129fbba0b53","impliedFormat":99},{"version":"23769d3f0549de671a5ec795a8c2c6c4fd80c22af92348daa349073b65355fe8","impliedFormat":99},{"version":"774182677ec80bd5e58d287833ec21e02bcfccfdd20247780375691f201a0263","impliedFormat":99},{"version":"66bc333acb797d6c079d8830ef73bd4a34c4e1709e6a9d40bc20d5b92141d50d","impliedFormat":99},{"version":"92fe8e78ad5d9f9eca627b40cbc1fcfc095a230aba0911101d1c74f3ef77c32c","impliedFormat":99},{"version":"78dc76bd9afff09e5cea823d477657d25be9b0e1da7582df7df6e713abc6b7e0","impliedFormat":99},{"version":"651be876b03c705ac06a8cddd6ea90f635855d6312702a441e37b710d4291387","impliedFormat":99},{"version":"ae2d7f7735a249142233a5b9624baf7d1076c1b8e30bf6f9ed1f1f96641d368c","impliedFormat":99},{"version":"667514a0b45b9137a724df446646e49c6c5ff8e6c52b51faf7e7d97c07876339","impliedFormat":99},{"version":"dab36fd79d1c298c9252b588fff62da099aebd9b0987650f0268f0e580a6b8ea","impliedFormat":99},{"version":"24e34d276c6b1d5b38adc1a02ebca9d211154478cf875a3d175c12bd2473180d","impliedFormat":99},{"version":"2e7a903e7bad7e1053fd16172349f653b8e1f04b118fa6a0c94f03a05ce66ee8","impliedFormat":99},{"version":"a2b7e8befa2bec65d655a9205fe6ba2c6c313e8af050e0ec6878d667368b0370","impliedFormat":99},{"version":"1fdae95c93d7a258da7b02e50e7c4f4eb2041c4e8c86819c6bab35f1d3b33825","impliedFormat":99},{"version":"8c1eacab9cdc1a87e6142c96994b4679c81c9445557e14fdf3210352b7586209","impliedFormat":99},{"version":"05c811914dd75723518d9e11ab4e406bf49ea23b21ca4b0c014f529630cd6bfc","impliedFormat":99},{"version":"cfb373d580586808b221e2ec5555e381569bbcd65ed91abf6467235796e4011f","impliedFormat":99},{"version":"c01126bfe2cf99a27503a39cb9bd923760f43179322d9ee06640c2e329e00916","impliedFormat":99},{"version":"2b6cf5f7e4b87a9d212aa0b043a4e0203f75aa7a505457838c5c12ef3c5cccf8","impliedFormat":99},{"version":"e9214291673a507e06de72638d08cb77a5a83946ff371fe3118231fd14b66148","impliedFormat":99},{"version":"09949a01affc32445e16e0360269d2a7c3f925c2e67789934fbbaf5658669765","impliedFormat":99},{"version":"03d14a43dbd73bfea94b21aba29128157d81858018a543db71f27cd369903ca6","impliedFormat":99},{"version":"fbed6c54bdcfe0fe3fef66a9998b281f924c1c54813ad24af237cea18fab6f1e","impliedFormat":99},{"version":"469121354c88f9bcc57322407eb5d0d5b8a96cfeb9192494e8b46b2688126e2a","impliedFormat":99},{"version":"e75861934b956453abb77723352171ca00f00ab55e34502eedfe74fba7c6449f","impliedFormat":99},{"version":"450c3dc5526f8e73bba30f955e9e35e42076f82559e4f3ca733e30a99f608fb6","impliedFormat":99},{"version":"840457a9dca7071b074b79ec4bbb07e26daa4899b1939b3bfdffadca62fb157f","impliedFormat":99},{"version":"0bb96d1b7886f8348ee457c22db99c258f563e6e4371410c8c0137c54f8b6332","impliedFormat":99},{"version":"107dec9919e26cd898658841caac2186b3b10ca2e81ba0ecc9407ac989b0b860","impliedFormat":99},{"version":"a6f32c6ebdf43913196c351ed0152695f0d76dbe8226002e2d6654835e0cb685","impliedFormat":99},{"version":"8560d14dc193327f1792881dc467e70e73a74c0623d68adab861f0848619e6ea","impliedFormat":99},{"version":"469827f7ebcc9bea7ea42913b61d3570de20b823081cfa369e37f32f9b6578ce","impliedFormat":99},{"version":"d225636174c86016bb4902443c3cefb17ac3ad480aed999676848dc74df78751","impliedFormat":99},{"version":"ee10a6b8d4948616a923e953b40dd564d87f4c6c960353a4ab40f9ac5953508a","impliedFormat":99},{"version":"616f4301604d5263a177d9d378a417940ee51f4661dc970c446265139b3dc2d7","impliedFormat":99},{"version":"cc8621f4a86f09a9d63af2008516e3284fa8dee2da7ac3e010a7a344267e9fb9","impliedFormat":99},{"version":"318a5c102f218073bb58800a24742df255fef6b4b8b3ad82a0ce2169983331b4","impliedFormat":99},{"version":"88773471c8c8e81e190a0821424744c512320799e0e6596258751e8e7b573b02","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"b535fbac200d9abb725ff62adc9009598cbac617cf4c94c0111e37b956a51076","impliedFormat":99},{"version":"fe430799297f16036bee1fcf981c81b9c560f339dc87d703102f19347bca922c","impliedFormat":99},{"version":"8eb0d9018c369133b17adcb4eddc1bca329d3be6f82f8e00373b46315ba5a67d","impliedFormat":99},{"version":"dd89def02d5b8071facad4869deb42b2c3284880502ea4f46596606f380bcfef","impliedFormat":99},{"version":"82d5a2d180f3acffab13d4073bfc304cf30b551dd0b8c398f501a5547d0971e9","impliedFormat":99},{"version":"16dce5a31e379fc832306def780d9c7a66b611c9d5680c1d50f3872278afa987","impliedFormat":99},{"version":"8206bc99be58c7e6e541f75ba3ea281bc2e98630025e05eacf121a0312e94d2d","impliedFormat":99},{"version":"4504027d521a810f190f5a1fb6b6235db3e4fcfe4e383361e849157fd4017cc3","impliedFormat":99},{"version":"6cc22fc095dd4bfc296a2abddacf950b999c5ea21032c147d992c1e3bc9f2151","impliedFormat":99},{"version":"107fe9df1e4aa36cdb51032b4f51fe26eacbed9f9452c05b0ed145afb91dafbc","impliedFormat":99},{"version":"6f912d1d946525532c3537fecc0bffe9b2b25fc6b95087d00191b56403c64b02","impliedFormat":99},{"version":"d8d5640bc8ce5f5352324ebf9772c8052948e993f26b41267f78bb0570090367","impliedFormat":99},{"version":"399194d25a36f88cf475f80ae64aaab76f3c404055b582538aeb7888fbfb7aaf","impliedFormat":99},{"version":"334b8c2139f3f2b14517c68ad6e847669a58327d0401fb134480dda0826b21c6","impliedFormat":99},{"version":"646ef0e6b8a5dda70fea93b94c589512cf58b5a4f13ea8f2ad20b63a0207be8b","impliedFormat":99},{"version":"d51e1af504216f68350d001baef42b14de9aa2f8e287c9ff35aacb6c67460947","impliedFormat":99},{"version":"ab6dd1e3fdcc478cb81caef96c7047c2ec0811480f86f71be363baad015e4cd5","impliedFormat":99},{"version":"767cfb1496df590e9132052dbf9d5a2ed4d7864823eafb4eafcc5f9569f3c152","impliedFormat":99},{"version":"b9f9f77327ef54fc055ab78fc6fc6c93b88410621fd9b2374bb956022018a62a","impliedFormat":99},{"version":"82147ff6ea10d9182855cb50ed6f28d36c1d4f54a792ec2173d42074225caa5d","impliedFormat":99},{"version":"aa015d746ff96c12818a7ad742e45f40bc6f72f4b7df2af0f7200dacfe0ca65e","impliedFormat":99},{"version":"01a6da71fc05a9195f334ab1092b3f4952b0f2e2c460ea55d206ef629309062d","impliedFormat":99},{"version":"66f0b814ca2e007985a604145f5d70793a9f66d2fc7d6c57b2e094c15b7eb83f","impliedFormat":99},{"version":"8d9b0d78ee11670d4caa429ce908ef681663d65e94dc1507b47d6eb44abf903d","impliedFormat":99},{"version":"888cd85dc7c3d5d1fe0c975a8a42387203a6040f6945d9e834044f4cdcaa7177","impliedFormat":99},{"version":"87783efceaa85da75752e808792e347efda30d7aa7d7a76e62398df4a86c31e5","impliedFormat":99},{"version":"6a8ab860d18807ef3ebcbba3c436ae6432640a8e9fd3b3e965d3b923d7ab1043","impliedFormat":99},{"version":"41560bfeef3407476ecbf1e87fe10ad8bb66493854c8810bf1475c1927e9509c","impliedFormat":99},{"version":"92a57d4092fa036a6df221404a9263bb67c267aff1d0a9fc6912c720d06d5b2e","impliedFormat":99},{"version":"dbfa5e96e7827fcd26ad524c28d62238de9e58cadc28f347038aed618fdc7a7b","impliedFormat":99},{"version":"596bf741b2e8a7df8738e9210fc36bde96c4006d5737f11fad33c7e366ae40de","impliedFormat":99},{"version":"735ce9068435b7cddb5620d2f4dfa24b1d20914bbf1fb0cdae15e8c9fe946708","impliedFormat":99},{"version":"e1ee6eaef7fb5f2aeaecec5af531fde8e953f1e38b808a31edb1ed667433504a","impliedFormat":99},{"version":"5ee7350ef93ccadb9f50d4faff03ca3287a20daf94457baa7a06b1caccf9895e","impliedFormat":99},{"version":"e1faebf35150fefc223425ebfabb27ea35c8501e8a6cd886349ad4c224599228","impliedFormat":99},{"version":"d96d274e5284eba9927f58c163c0f76f9b42300b2acf690b088ba874bb7c7713","impliedFormat":99},{"version":"d1cb52c406810e8a61028dbddc1c76329a57641f274d85d923d031d6db5b698c","impliedFormat":99},{"version":"44778cc47965a17ca3ddc25b38b477c05412ebd7a11a2400a957de1449cdb5d6","impliedFormat":99},{"version":"090d14278c4f8bb64425275a537241ee6c2423eab2044305f324b7af9d27c539","impliedFormat":99},{"version":"64a821c22015703e99902dfb093bd189db8682b8f59245ee215c335a78b75a3b","impliedFormat":99},{"version":"20d994898c03bab9c60f1d2b8589cd85dbbb4ce8d01fbf13c9695f1b955be534","impliedFormat":99},{"version":"a1a34cf5ba4eea15a74e5333b365586e4054c972d5f1c86ea31d766fac26d22d","impliedFormat":99},{"version":"01541bebe87f69a3eb400ef26ce82339dee293774bf97a12a7d6e0a94b18d07b","impliedFormat":99},{"version":"74aac6d7662936f593c50c8cae13fbf2be2adc6b0f917f949a682e0ba7ba1036","impliedFormat":99},{"version":"6bafdd64b01c1e66f791cdafbd86ff49abf8580d65ae9cee39c2a01918ad2a72","impliedFormat":99},{"version":"343d92ebaf6b63a7a174fb434dd6123f9efc1c27a0e5e39b3c3a6d0bd571cef0","impliedFormat":99},{"version":"fd8a7776f01ed84c7299ecd56635a7c3a977bd2694b2fe1cf98c0e1d8938b7f2","impliedFormat":99},{"version":"5c58006a7bde1813224dc715df836b7f23d12440b65ab1eeaea20ba573b823b8","impliedFormat":99},{"version":"a6668aee0652306f94268fdb12eab4026eb77f177f48496a9df6ff4f2cc50706","impliedFormat":99},{"version":"d0b217bc167cb6d1873c1aedc1891c68c42a7ec55317bff8c52f60f33341021d","impliedFormat":99},{"version":"87547e2163fb58f4ec906f5c81a879e14d5079fb15d74839f841f458fc9caa90","impliedFormat":99},{"version":"db2ab0896701b2cd55281af7132029104263bee659904d65685c33f436bb1bbf","impliedFormat":99},{"version":"357484e7b33f0366b4d918e5623ea38c42e1b79093cf57b37fdd129f08f747b6","impliedFormat":99},{"version":"0ceaf0c8182145c000c6d6ac87d6293bfadc924a893de45515660f4459d29bc6","impliedFormat":99},{"version":"5adfe7cda513ac8ab76c9a42f5fe7dbfcc5f162ad8c0a65275f9dd6c8ed51e3b","impliedFormat":99},{"version":"df75e076d5e167de6a985cc2487779bf5e551430dcdf3b43aa7168391c42e7d3","impliedFormat":99},{"version":"3b794c3c657b91712aef51da5d1f1fa8e96278b7e0068b67c1e4e32dd39052e2","impliedFormat":99},{"version":"e5d521e00e91df030e7ef2db79294f97c3258f213cebac04fb1d7e545e036c92","impliedFormat":99},{"version":"a9c2beeda1479ab211a437d27da7170170f00c080dc0534a234e0f0bfd80d0e4","impliedFormat":99},{"version":"65186b1f46c6306bc4375f2ddf5e17b77213a5e9e0a701bcd901b1d2e46d01a6","impliedFormat":99},{"version":"44bce55aaf52d5b55fd0221a159717679b2b8a1965a31cbb282068c088fc14ec","impliedFormat":99},{"version":"a2577da4ebf625ac5e8d015e1b85a534f324aa42073e5de539b526c1b6ac9368","impliedFormat":99},{"version":"4f1653400fb4ef5c777b5a4ec0b5ba0367129d171259b942f30133bea639175a","impliedFormat":99},{"version":"2c2ea93c9df7a231c01de9ca95b681439ce7e008573432b8a37a634dbd3cd1f8","impliedFormat":99},{"version":"6b6859f495bcd50ae254bd5c0348ce161ab9dc64f315cc96a235c88027b255d5","impliedFormat":99},{"version":"2c0e2a9291d2ae42225fb79483e7ec328823bf9f1fb5d7c7cdae5761e66b91a9","impliedFormat":99},{"version":"fc518fafcc0f671ca4362205bce0d54efc6463b97e667fc1cfaa7e259766a4b2","impliedFormat":99},{"version":"3cdbe580c6d90224bc0bb9cc59101b786773d795a295818eeffad9e9e410618e","impliedFormat":99},{"version":"f13a0aad613324ade17df982376b78e0807cce490ddde44098e64a86be7408f0","impliedFormat":99},{"version":"55af2e7ea5c20ea6b77c6798aab8e6a6ba1af8f03b3ad5699f73e3432904473a","impliedFormat":99},{"version":"ca52b3f0d81184e1aa8ffc3c89e8f85cc0116461b9035bc7f0a137b40a1bf600","impliedFormat":99},{"version":"26a021aeb112c6b6a2f84cb8298586e7b88c82b2aaee38d5fed488b554768507","impliedFormat":99},{"version":"dc72c2a3d5a60b487b2afdee0fd30522c2ab395d5e95a9c61f20533c9e2052b9","impliedFormat":99},{"version":"a8fa80829673c4fe4be9c6bdd2375c74db979b85082001413bbfaa159253b84a","impliedFormat":99},{"version":"38f3aa240e10764cecc0dbb93d103740124aa6086d23d2dd242b27153a5e4954","impliedFormat":99},{"version":"11d819e69caa33068ad0ddb9424d7afc1c39abb48d342e3e1df7700bbffb8b88","impliedFormat":99},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"c6a7b7568c1e9ccd661e7e9a2219f3d41805d79f79d19687de1904edf975e7d5","impliedFormat":99},{"version":"d131d83d3a4f6a640c18169c05957ff4e96264b48fd5d4ef2a87aab682877488","impliedFormat":99},{"version":"e8929e15b0295c54e6a5d0a7f9516585de299b116a5efaefe57dfbe08167cf23","impliedFormat":99},{"version":"e2ffff11859a3c055c87837df65f1c079ca0baf72f7010a99b20229fa658e6fb","impliedFormat":99},{"version":"d25d1708b5c923d5f7b94d183dc7f746f921580b0f2a4fdd4e623882b98642ee","impliedFormat":99},{"version":"12d19496f25ecd6afef2094be494b3b0ae12c02bd631901f6da760c7540a5ec1","impliedFormat":1},{"version":"c6fe327c538417b8dd5b9bb32abcd7911534b10da3a4514f3445cdb28cf3abf2","impliedFormat":99},{"version":"0065cdb7ac9f5b19921632de63f888ec2cc11ad57f7fc868f44bf0faad2fce3e","impliedFormat":99},{"version":"8c1adc3171d0287f3a26f4891a7d1834c89999573a9b444aa5ff519dcc43a2b7","impliedFormat":99},{"version":"27aee784c447854a4719f11058579e49f08faa70d06d8e30abe00f5e25538de6","impliedFormat":99},{"version":"fbc610f9dde70f0bbea39eefec2e31ca1d99f715e9c71fb118bd2306a832bcb5","impliedFormat":99},{"version":"a829052855dca3affb8e2ef0afa0f013b03fa9b55762348b1fba76d9c2741c99","impliedFormat":99},{"version":"1d61288b34b2dd2029b85bc70fabbb1da90c2a370396d5df5f620e62eb47ddbe","impliedFormat":99},{"version":"5a2cf4cd852a58131b320da62269b2143850920ce27e8fdec41fed5c2c54ec95","impliedFormat":99},{"version":"43552100e757fad5a9bb5dabc0ea24ba3b6f2632eb1a4be8915da39d65e83e1c","impliedFormat":99},{"version":"6a99940a8a76a1aa20ae6f2afd8e909e47e0b17df939e7cf5a585171480655ff","impliedFormat":99},{"version":"043195af0b52aadd10713870dd60369df0377ed153104b26e6bac1213b19f63e","impliedFormat":99},{"version":"ad17a36132569045ab97c8e5badf8febb556011a8ed7b2776ff823967d6d5aca","impliedFormat":99},{"version":"698d2b22251dbbfc0735e2d6ed350addead9ad031fac48b8bb316e0103d865db","impliedFormat":99},{"version":"7298d28b75c52e89c0b3e5681eac19e14480132cd30baaba5e5ca10211a740ef","impliedFormat":99},{"version":"ff10facf373a13d2864ff4de38c4892d74be27d9c6468dac49c08adabbf9b0eb","impliedFormat":99},{"version":"97b1cf4599cc3bc2e84b997aa1af60d91ca489d96bea0e20aaff0e52a5504b29","impliedFormat":99},{"version":"853dfbcd0999d3edc6be547d83dc0e0d75bf44530365b9583e75519d35984c35","impliedFormat":99},{"version":"9c80bed388d4ed47080423402db9cb1b35a31449045a83a0487f4dfde3d9d747","impliedFormat":99},{"version":"f29bc6a122a4a26c4e23289daae3aa845a18af10da90989cb8b51987e962b7be","impliedFormat":99},{"version":"3a1f39e098971c10633a064bd7a5dbdec464fcf3864300772763c16aa24457f9","impliedFormat":99},{"version":"20e614d6e045d687c3f7d707561b7655ad6177e859afc0c55649b7e346704c77","impliedFormat":99},{"version":"aa0ae1910ba709bc9db460bdc89a6a24d262be1fbea99451bedac8cbbc5fb0cd","impliedFormat":99},{"version":"161d113c2a8b8484de2916480c7ba505c81633d201200d12678f7f91b7a086f0","impliedFormat":99},{"version":"b998a57d4f43e32ac50a1a11f4505e1d7f71c3b87f155c140debe40df10386c8","impliedFormat":99},{"version":"5710e8ed9797ae0042e815eb8f87df2956cb1bf912939c9b98eeb58494a63c13","impliedFormat":99},{"version":"a6bb421dccfec767dbd3e99180b24c07c4a216c0fd549f54a3313f6ce3f9d2c7","impliedFormat":99},{"version":"3b6f1be46f573b1c1f3e6cd949890bfb96b40ff90b6f313e425a379c1c4d5d77","impliedFormat":99},{"version":"28a2c54d0a78d32c29f7279ca04dc6c7860c008579e4e3033938c0ed0201eb9a","impliedFormat":99},{"version":"c2714a402843287624210a47ebea2b1c8dd3ad1438f448633f6831e31eaf37b8","impliedFormat":99},{"version":"b89945ec6707415d739f3e76f2820982d4927dc6b681910b3c433b5ad261b817","impliedFormat":99},{"version":"a72d5822fb2a2c1ef985b30aed889f4c00342c90e12318762fccc550c6a599cf","impliedFormat":99},{"version":"c8616ab60eda93ca87fbb20aada1d6a6cdbcd2cb181a70a2d7728a3cb0613391","impliedFormat":99},{"version":"eeddfd3e0b09890822068de5248d38144f8328e74b5292847eb4e558d8aba8cb","impliedFormat":99},{"version":"d4dc0b6592543314c8549c71e35ad2ec4a57904662d905ff9585836bde1c855a","impliedFormat":99},{"version":"56e1687a174cd10912a35a4676af434bb213aafa5d4371040986c578afe644ab","impliedFormat":99},{"version":"470c280cc484340b97d0942e0c3aa312399eba3849ceb95312d0d7413bac7458","impliedFormat":99},{"version":"ae183f4a6300aad2be92cdbd4dd12d8bcd36eddf8dd1846f998c237235fe0c33","impliedFormat":99},{"version":"4b0eeffddaf51b967e95926a825a6ba1205b81b3a8fecddbe21eaf0e86bdee91","impliedFormat":99},{"version":"bf3ec0d42e33e487c359a989b30e1c9e90fa06de484dc4751e93fb34a9b5cf90","impliedFormat":99},{"version":"7b9656a61d83df1a46c38c2984dbf96dd057bf48f477ddf3f8990311ab98ec23","impliedFormat":99},{"version":"366b85ddb698f3a035e0caa68dc9fef39a85c4368c0810eaf937c3a3c63ac31e","impliedFormat":99},{"version":"d440ee730bc60a5c605903842e398863e7ecdb7a91fc32a9152f14061bf6cc17","impliedFormat":99},{"version":"a12c86c4a691608d19a75320946c80bbce38bb62c091dda32572aee7158edd38","impliedFormat":99},{"version":"3109cb3f8ab0308d2944c26742b6a8a02b4a4ffc23f479a81f0e945d6a6721dd","impliedFormat":99},{"version":"a2289c12a987f2a06f4cf049afde4fdc9455a4af37913445148865938c6eb613","impliedFormat":99},{"version":"55933c1450edcfaf166429425dbbad0a27c0ae8672d5ab5d427e46946a6f2f63","impliedFormat":99},{"version":"6c684fda6998db4112e82367c9e82e27996dc8086a10d58ac9b51d89770d5f9d","impliedFormat":99},{"version":"5c4b4dd983471fcaed17ad3241c98a1f880729f1ca579ddbcdae7e0bf04035df","impliedFormat":99},{"version":"9e430429c7e9e70071a836ac91a1bf6e6651f91d47d9f4baf0a92eefc6130818","impliedFormat":99},{"version":"b3db7f6d7ef72669dc83fa1ff7b90a2ec31d1d8f82778f2a00ef6d101f5247e5","impliedFormat":99},{"version":"354f61bd2a5acaf20462bc4d61048aa25f8fc0dd04dfe3d2f30bdbabbab54e7d","impliedFormat":99},{"version":"d51756340928e549f076c832d7bc2b4180385597b0b4daaa50e422bed53e1a72","impliedFormat":99},{"version":"32c6e3ef96f2bcbc1db7d7f891459241657633aa663cab6812fb28ade7c90608","impliedFormat":99},{"version":"ac2ea00eb8f73665842e57e729e14c6d3feabe9859dc5e87a1ed451b20b889e4","impliedFormat":99},{"version":"730cb342a128f5a8a036ffbd6dbc1135b623ce2100cefe1e1817bb8845bc7100","impliedFormat":99},{"version":"78e387f16df573a98dd51b3c86d023ddbd5bf68e510711a9fee8340e7ccc3703","impliedFormat":99},{"version":"e2381c64702025b4d57b005e94ed0b994b5592488d76f1e5f67f59d1860ebb70","impliedFormat":99},{"version":"d7dfcb039ff9cff38ccd48d2cc1ba95ca45c316670eddbcf81784e21b7128692","impliedFormat":99},{"version":"acaf0a60eb243938f7742df08bf5d52482fbea033fd27141ee3a6d878bbb0d3d","impliedFormat":99},{"version":"fb89aeecfc8eb28f5677c2c89bced74d13442b7f4ebd01ce2ce92127d1b36d69","impliedFormat":99},{"version":"9e91cb0a5bd7aefa2b94a2872828d6d2321df0ca44412e74d99e8b94e579b7d8","impliedFormat":99},{"version":"3e4f06b464ef1654b91be02777d1773ccc5d43b53c1c8b0a9794ec224cfe8928","impliedFormat":99},{"version":"192c1a207b44af476190ae66920636de5d56c33b57206bbc2421adc23f673e2e","impliedFormat":99},{"version":"e5aa35b3740170492e06e60989d35a222cfda2148507c650ea55753f726c9213","impliedFormat":99},{"version":"057aa42f6983120c35373aed62b219ffcbd7b476b2df08709139a9eb8dfeed26","impliedFormat":99},{"version":"95a0c46b4675d4d02de6a7c167738f1176b53b26ebec9ccfe8e5d9acb0dc7aee","impliedFormat":99},{"version":"94ad4d9745811c482ae3bad61e5b206e0904f77e0dacf783199193a3df9f6ce6","impliedFormat":99},{"version":"407dc18ecd25802296fade17be81d0d4f499ae75fe88ed132f94e7efdad269e2","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"f6dfe21d867aa5e13bc53d536b69b66427f571707a01e7c3604dc51ded097313","impliedFormat":99},{"version":"4ecd02d0e4ccf7befb9c28802c6c208060e33291d56fd1868900ca295c399077","impliedFormat":99},{"version":"37ada75be4b3f6b888f538091020d81b2a0ad721dc42734f70f639fa4703a5c8","impliedFormat":99},{"version":"aa73ff0024d5434a3e87ea2824f6faece7aad7b9f6c22bd399268241ca051dc7","impliedFormat":99},{"version":"4c9fb50b0697756bab3e4095f28839cf5b55430a4744d2ebbaf850ec8dca54d8","impliedFormat":99},{"version":"782868b723c055c5612c4a243f72a78a8b3c0c3b707ae04954e36e8ab966df4c","impliedFormat":99},{"version":"3de9d9ad4876972e7599fc0b3bddb0fddb1923be75787480a599045a30f14292","impliedFormat":99},{"version":"0f4b3c05937bbdb9cf954722ddc97cd72624e3b810f6f2cf4be334adb1796ec1","impliedFormat":99},{"version":"9fc243c4c87d8560348501080341e923be2e70bf7b5e09a1b26c585d97ae8535","impliedFormat":99},{"version":"4f97089fe15655ae448c9d005bb9a87cc4e599b155edc9e115738c87aa788464","impliedFormat":99},{"version":"f948d562d0a8085f1bd17b50798d5032529a75c147f40adfeb4fd3e453368643","impliedFormat":99},{"version":"22929f9874783b059156ee3cfa864d6f718e1abf9c139f298a037ae0274186f6","impliedFormat":99},{"version":"c72a7c316459b2e872ca4a9aca36cc05d1354798cee10077c57ff34a34440ac2","impliedFormat":99},{"version":"3e5bbf8893b975875f5325ebf790ab1ab38a4173f295ffea2ed1f108d9b1512c","impliedFormat":99},{"version":"9e4a38448c1d26d4503cf408cc96f81b7440a3f0a95d2741df2459fe29807f67","impliedFormat":99},{"version":"84124d21216da35986f92d4d7d1192ca54620baeca32b267d6d7f08b5db00df9","impliedFormat":99},{"version":"efba354914a2dc1056a55510188b6ced85ead18c5d10cc8a767b534e2db4b11b","impliedFormat":99},{"version":"25f5bf39f0785a2976d0af5ac02f5c18ca759cde62bc48dd1d0d99871d9ad86f","impliedFormat":99},{"version":"e711fa7718a2060058ff98ac6bff494c1615b9d42c4f03aa9c8270bc34927164","impliedFormat":99},{"version":"e324b2143fa6e32fac37ed9021b88815e181b045a9f17dbb555b72d55e47cdc1","impliedFormat":99},{"version":"3e90ea83e3803a3da248229e3027a01428c3b3de0f3029f86c121dc76c5cdcc2","impliedFormat":99},{"version":"9368c3e26559a30ad3431d461f3e1b9060ab1d59413f9576e37e19aaf2458041","impliedFormat":99},{"version":"915e5bb8e0e5e65f1dc5f5f36b53872ffcdcaef53903e1c5db7338ea0d57587a","impliedFormat":99},{"version":"92cf986f065f18496f7fcb4f135bff8692588c5973e6c270d523191ef13525ad","impliedFormat":99},{"version":"652f2bd447e7135918bc14c74b964e5fe48f0ba10ff05e96ed325c45ac2e65fb","impliedFormat":99},{"version":"cc2156d0ec0f00ff121ce1a91e23bd2f35b5ab310129ad9f920ddaf1a18c2a4d","impliedFormat":99},{"version":"7b371e5d6e44e49b5c4ff88312ae00e11ab798cfcdd629dee13edc97f32133d8","impliedFormat":99},{"version":"e9166dab89930e97bb2ce6fc18bcc328de1287b1d6e42c2349a0f136fc1f73e6","impliedFormat":99},{"version":"6dc0813d9091dfaed7d19df0c5a079ee72e0248ce5e412562c5633913900be25","impliedFormat":99},{"version":"e704c601079399b3f2ec4acdfc4c761f5fe42f533feaaab7d2c1c1528248ca3e","impliedFormat":99},{"version":"49104d28daa32b15716179e61d76b343635c40763d75fe11369f681a8346b976","impliedFormat":99},{"version":"04cd3418706b1851d2c1d394644775626529c23e615a829b8abfe26ec0ee3aef","impliedFormat":99},{"version":"21e459e9485fc48f21708d946c102e4aaa4a87b4c9ad178e1c5667e3ff6bbc59","impliedFormat":99},{"version":"97e685ac984fc93dcdae6c24f733a7a466274c103fdcf5d3b028eaa9245f59d6","impliedFormat":99},{"version":"68526ea8f3bbf75a95f63a3629bebe3eb8a8d2f81af790ce40bc6aad352a0c12","impliedFormat":99},{"version":"bcab57f5fe8791f2576249dfcc21a688ecf2a5929348cfe94bf3eb152cff8205","impliedFormat":99},{"version":"b5428f35f4ebf7ea46652b0158181d9c709e40a0182e93034b291a9dc53718d8","impliedFormat":99},{"version":"0afcd28553038bca2db622646c1e7fcf3fb6a1c4d3b919ef205a6014edeeae0f","impliedFormat":99},{"version":"ee016606dd83ceedc6340f36c9873fbc319a864948bc88837e71bd3b99fdb4f6","impliedFormat":99},{"version":"0e09ffe659fdd2e452e1cbe4159a51059ae4b2de7c9a02227553f69b82303234","impliedFormat":99},{"version":"4126cb6e6864f09ca50c23a6986f74e8744e6216f08c0e1fe91ab16260dab248","impliedFormat":99},{"version":"4927dba9193c224e56aa3e71474d17623d78a236d58711d8f517322bd752b320","impliedFormat":99},{"version":"3d3f189177511d1452e7095471e3e7854b8c44d94443485dc21f6599c2161921","impliedFormat":99},{"version":"bb0519ff5ef245bbf829d51ad1f90002de702b536691f25334136864be259ec5","impliedFormat":99},{"version":"a64e28f2333ea0324632cf81fd73dc0f7090525547a76308cb1dfe5dab96596a","impliedFormat":99},{"version":"883f9faa0229f5d114f8c89dadd186d0bdf60bdafe94d67d886e0e3b81a3372e","impliedFormat":99},{"version":"d204b9ae964f73721d593e97c54fc55f7fd67de826ce9e9f14b1e762190f23d1","impliedFormat":99},{"version":"91830d20b424859e5582a141efe9a799dc520b5cce17d61b579fb053c9a6cd85","impliedFormat":99},{"version":"68115cdc58303bad32e2b6d59e821ccaada2c3fb63f964df7bd4b2ebd6735e80","impliedFormat":99},{"version":"ee27e47098f1d0955c8a70a50ab89eb0d033d28c5f2d76e071d8f52a804afe07","impliedFormat":99},{"version":"7957b11f126c6af955dc2e08a1288013260f9ec2776ff8cc69045270643bf43e","impliedFormat":99},{"version":"d010efe139c8bb78497dc7185dddbbcefc84d3059b5d8549c26221257818a961","impliedFormat":99},{"version":"85059ed9b6605d92c753daf3a534855ba944be69ff1a12ab4eca28cefbabd07a","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ea68a96f4e2ba9ca97d557b7080fbdb7f6e6cf781bb6d2e084e54da2ac2bb36c","impliedFormat":99},{"version":"879de92d0104d490be2f9571face192664ec9b45e87afd3f024dbbf18afb4399","impliedFormat":99},{"version":"424df1d45a2602f93010cb92967dfe76c3fcadad77d59deb9ca9f7ab76995d40","impliedFormat":99},{"version":"21f96085ed19d415725c5a7d665de964f8283cacef43957de10bdd0333721cc4","impliedFormat":99},{"version":"e8d4da9e0859c6d41c4f1c3f4d0e70446554ba6a6ab91e470f01af6a2dcac9bf","impliedFormat":99},{"version":"2e2421a3eec7afefa5a1344a6852d6fee6304678e2d4ee5380b7805f0ac8b58a","impliedFormat":99},{"version":"a10fd5d76a2aaba572bec4143a35ff58912e81f107aa9e6d97f0cd11e4f12483","impliedFormat":99},{"version":"1215f54401c4af167783d0f88f5bfb2dcb6f0dacf48495607920229a84005538","impliedFormat":99},{"version":"476f8eb2ea60d8ad6b2e9a056fdda655b13fd891b73556b85ef0e2af4f764180","impliedFormat":99},{"version":"2fe93aef0ee58eaa1b22a9b93c8d8279fe94490160703e1aabeff026591f8300","impliedFormat":99},{"version":"bbb02e695c037f84947e56da3485bb0d0da9493ed005fa59e4b3c5bc6d448529","impliedFormat":99},{"version":"ba666b3ab51c8bc916c0cebc11a23f4afec6c504c767fd5f0228358f7d285322","impliedFormat":99},{"version":"c10972922d1887fe48ed1722e04ab963e85e1ac12263a167edef9b804a2af097","impliedFormat":99},{"version":"6efeacbd1759ea57a4c7264eb766c531ae0ab2c00385294be58bc5031ef43ad1","impliedFormat":99},{"version":"1c261f5504d0175be4f1b6b99f101f4c3a129a5a29fc768e65c52d6861ca5784","impliedFormat":99},{"version":"f0e69b5877b378d47cbac219992b851e2bbc0f7e3a3d3579d67496dabd341ec4","impliedFormat":99},{"version":"b5ea27f19a54feca5621f5ba36a51026128ea98e7777e5d47f08b79637527cf5","impliedFormat":99},{"version":"b54890769fa3c34ab3eb7e315b474f52d5237c86c35f17d59eb21541e7078f11","impliedFormat":99},{"version":"c133db4b6c17a96db7fa36607c59151dec1e5364d9444cbe15e8c0ea4943861e","impliedFormat":99},{"version":"3a0514f77606d399838431166a0da6dbd9f3c7914eae5bbfbd603e3b6a552959","impliedFormat":99},{"version":"fa568f8d605595e1cffbfca3e8c8c492cf88ae2c6ed151f6c64acf0f9e8c25d8","impliedFormat":99},{"version":"c76fb65cb2eb09a0ee91f02ff5b43a607b94a12c34d16d005b2c0afc62870766","impliedFormat":99},{"version":"cf7af60a0d4308a150df0ab01985aabb1128638df2c22dd81a2f5b74495a3e45","impliedFormat":99},{"version":"913bbf31f6b3a7388b0c92c39aec4e2b5dba6711bf3b04d065bd80c85b6da007","impliedFormat":99},{"version":"42d8c168ca861f0a5b3c4c1a91ff299f07e07c2dd31532cd586fd1ee7b5e3ae6","impliedFormat":99},{"version":"a29faa7cb35193109ec1777562ca52c72e7382ffe9916b26859b5874ad61ff29","impliedFormat":99},{"version":"15bdf2eeef95500ba9f1602896e288cb425e50462b77a07fa4ca23f1068abb21","impliedFormat":99},{"version":"452db58fd828ab87401f6cecc9a44e75fa40716cc4be80a6f66cf0a43c5a60cc","impliedFormat":99},{"version":"54592d0215a3fd239a6aa773b1e1a448dc598b7be6ce9554629cd006ee63a9d6","impliedFormat":99},{"version":"9ee28966bb038151e21e240234f81c6ba5be6fde90b07a9e57d4d84ae8bc030c","impliedFormat":99},{"version":"2fe1c1b2b8a41c22a4e44b0ac7316323d1627d8c72f3f898fa979e8b60d83753","impliedFormat":99},{"version":"956e43b28b5244b27fdb431a1737a90f68c042e162673769330947a8d727d399","impliedFormat":99},{"version":"92a2034da56c329a965c55fd7cffb31ccb293627c7295a114a2ccd19ab558d28","impliedFormat":99},{"version":"c1b7957cd42a98ab392ef9027565404e5826d290a2b3239a81fbac51970b2e63","impliedFormat":99},{"version":"4861ee34a633706bcbba4ea64216f52c82c0b972f3e790b14cf02202994d87c5","impliedFormat":99},{"version":"7af4e33f8b95528de005282d6cca852c48d293655dd7118ad3ce3d4e2790146f","impliedFormat":99},{"version":"df345b8d5bf736526fb45ae28992d043b2716838a128d73a47b18efffe90ffa7","impliedFormat":99},{"version":"d22c5b9861c5fc08ccd129b5fc3dcdc7536e053c0c1d463f3ab39820f751c923","impliedFormat":99},{"version":"dcc38f415a89780b34d827b45493d6dbadb05447d194feb4498172e508c416ac","impliedFormat":99},{"version":"7e917e3b599572a2dd9cfa58ff1f68fda9e659537c077a2c08380b2f2b14f523","impliedFormat":99},{"version":"20b108e922abd1c1966c3f7eb79e530d9ac2140e5f51bfa90f299ad5a3180cf9","impliedFormat":99},{"version":"2bc82315d4e4ed88dc470778e2351a11bc32d57e5141807e4cdb612727848740","impliedFormat":99},{"version":"e2dd1e90801b6cd63705f8e641e41efd1e65abd5fce082ef66d472ba1e7b531b","impliedFormat":99},{"version":"a3cb22545f99760ba147eec92816f8a96222fbb95d62e00706a4c0637176df28","impliedFormat":99},{"version":"287671a0fe52f3e017a58a7395fd8e00f1d7cd9af974a8c4b2baf35cfda63cfa","impliedFormat":99},{"version":"e2cdad7543a43a2fb6ed9b5928821558a03665d3632c95e3212094358ae5896b","impliedFormat":99},{"version":"326a980e72f7b9426be0805774c04838e95195b467bea2072189cefe708e9be7","impliedFormat":99},{"version":"e3588e9db86c6eaa572c313a23bf10f7f2f8370e62972996ac79b99da065acaa","impliedFormat":99},{"version":"1f4700278d1383d6b53ef1f5aecd88e84d1b7e77578761838ffac8e305655c29","impliedFormat":99},{"version":"6362a4854c52419f71f14d3fee88b3b434d1e89dcd58a970e9a82602c0fd707a","impliedFormat":99},{"version":"fb1cc1e09d57dfeb315875453a228948b904cbe1450aaf8fda396ff58364a740","impliedFormat":99},{"version":"50652ed03ea16011bb20e5fa5251301bb7e88c80a6bf0c2ea7ed469be353923b","impliedFormat":99},{"version":"d388e0c1c9a42d59ce88412d3f6ce111f63ce2ff558e0a3f84510092431dfee0","impliedFormat":99},{"version":"35ea0a1e995aef5ae19b1553548a793c76eb31bdf7fef30bc74656660c3a09c3","impliedFormat":99},{"version":"56f4ae4e34cbff1e4158ccada4feea68a357bae86adb3bedaa65260d0af579df","impliedFormat":99},{"version":"6eebdacf8e85b2cf70ad7a2f43ead1f8acccfd214ab57ff1d989e9e35661015d","impliedFormat":99},{"version":"a4f90a12cbfac13b45d256697ce70a6b4227790ca2bf3898ffd2359c19eab4eb","impliedFormat":99},{"version":"4a6c2ac831cff2d8fa846dfb010ee5f7afce3f1b9bd294298ee54fdc555f1161","impliedFormat":99},{"version":"a8d491b4eb728dab387933a518d9e1f32d5c9d5a5225ff134d847b0c8cc9c8ce","impliedFormat":99},{"version":"668f628ae1f164dcf6ea8f334ea6a629d5d1a8e7a2754245720a8326ff7f1dc0","impliedFormat":99},{"version":"5105c00e1ae2c0a17c4061e552fa9ec8c74ec41f69359b8719cb88523781018e","impliedFormat":99},{"version":"d2c033af6f2ea426de4657177f0e548ee5bed6756c618a8b3b296c424e542388","impliedFormat":99},{"version":"2d4530d6228c27906cb4351f0b6af52ff761a7fab728622c5f67e946f55f7f00","impliedFormat":99},{"version":"ec359d001e98bf56b0e06b4882bd1421fd088d4d181dff3138f52175c0582a51","impliedFormat":99},{"version":"45be28de10e6f91aacb29fbd2955ba65a0fd3d1b5fddefece9c381043e91e68d","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"6801ebe0b7ab3b24832bc352e939302f481496b5d90b3bc128c00823990d7c7d","impliedFormat":99},{"version":"0abb1feddc76a0283c7e8e8910c28b366612a71f8bfdd5ca42271d7ad96e50b2","impliedFormat":99},{"version":"ac56b2f316b70d6a727fdbbcfa8d124bcd1798c293487acb2b27a43b5c886bb0","impliedFormat":99},{"version":"d849376baf73ec0b17ffd29de702a2fdbbe0c0390ec91bebf12b6732bf430d29","impliedFormat":99},{"version":"40dcd290c10cc7b04a55f7ee5c76f77250f48022cea1624eba2c0589753993b4","impliedFormat":99},{"version":"0f9c9f7d13a5cf1c63eb56318b6ae4dfa2accef1122b2e88b5ed1c22a4f24e3b","impliedFormat":99},{"version":"9c4178832d47d29c9af3b1377c6b019f7813828887b80bb96777393f700eb260","impliedFormat":99},{"version":"dddb8672a0a6d0e51958d539beb906669a0f1d3be87425aaa0ae3141a9ad6402","impliedFormat":99},{"version":"6b514d5159d0d189675a1d5a707ba068a6da6bc097afb2828aae0c98d8b32f08","impliedFormat":99},{"version":"39d7dbcfec85393fedc8c7cf62ee93f7e97c67605279492b085723b54ccaca8e","impliedFormat":99},{"version":"81882f1fa8d1e43debb7fa1c71f50aa14b81de8c94a7a75db803bb714a9d4e27","impliedFormat":99},{"version":"c727a1218e119f1549b56dd0057e721d67cfa456c060174bac8a5594d95cdb2d","impliedFormat":99},{"version":"bca335fd821572e3f8f1522f6c3999b0bc1fe3782b4d443c317df57c925543ed","impliedFormat":99},{"version":"73332a05f142e33969f9a9b4fb9c12b08b57f09ada25eb3bb94194ca035dc83d","impliedFormat":99},{"version":"c366621e6a8febe9bbca8c26275a1272d99a45440156ca11c860df7aa9d97e6d","impliedFormat":99},{"version":"d9397a54c21d12091a2c9f1d6e40d23baa327ae0b5989462a7a4c6e88e360781","impliedFormat":99},{"version":"dc0e2f7f4d1f850eb20e226de8e751d29d35254b36aa34412509e74d79348b75","impliedFormat":99},{"version":"af3102f6aec26d237c750decefdc7a37d167226bb1f90af80e1e900ceb197659","impliedFormat":99},{"version":"dea1773a15722931fbfe48c14a2a1e1ad4b06a9d9f315b6323ee112c0522c814","impliedFormat":99},{"version":"b26e3175cf5cee8367964e73647d215d1bf38be594ac5362a096c611c0e2eea8","impliedFormat":99},{"version":"4280093ace6386de2a0d941b04cff77dda252f59a0c08282bd3d41ccc79f1a50","impliedFormat":99},{"version":"fe17427083904947a4125a325d5e2afa3a3d34adaedf6630170886a74803f4a2","impliedFormat":99},{"version":"0246f9f332b3c3171dcdd10edafab6eccb918c04b2509a74e251f82e8d423fb7","impliedFormat":99},{"version":"f6ef33c2ff6bbdf1654609a6ca52e74600d16d933fda1893f969fc922160d4d7","impliedFormat":99},{"version":"1abd22816a0d992fd33b3465bf17a5c8066bf13a8c6ca4fc0cd28884b495762d","impliedFormat":99},{"version":"82032a08169ea01cf01aa5fd3f7a02f1f417697df5e42fc27d811d23450bc28d","impliedFormat":99},{"version":"9c8cbd1871126e98602502444cffb28997e6aa9fbc62d85a844d9fd142e9ae1b","impliedFormat":99},{"version":"b0e20abc4a73df8f97b3f1223cc330e9ba3b2062db1908aa2a97754a792139ac","impliedFormat":99},{"version":"bc1f2428d738ab789339030078adf313100471c37d8d69f6cf512a5715333afc","impliedFormat":99},{"version":"dc500c6a23c9432849c82478bdab762fa7bdf9245298c2279a7063dd05ae9f9a","impliedFormat":99},{"version":"cd1b6a2503fc554dcab602e053565c4696e4262b641b897664d840a61f519229","impliedFormat":99},{"version":"af1580cd202df0e33fc592fe1d75d720c15930a4127a87633542b33811316724","impliedFormat":99},{"version":"538608f9242fbf4260d694f19c95b454f855152ab3b882ac72114f19b08984d2","impliedFormat":99},{"version":"cd0e1083bd8ae52661544329c311836abdda5d5dda89fc5d7ab038956c0394e8","impliedFormat":99},{"version":"9ea6fea875302b2bb3976f7431680affc45a4319499d057ce12be04e4f487bf9","impliedFormat":99},{"version":"66e0c3f9875da7be383d0c78c8b8940b6ebae3c6a0fbfd7e77698b5e8ade3b05","impliedFormat":99},{"version":"da38d326fe6a72491cad23ea22c4c94dfc244363b6a3ec8a03b5ad5f4ee6337b","impliedFormat":99},{"version":"da587bf084b08ea4e36a134ec5fb19ae71a0f32ec3ec2a22158029cb2b671e28","impliedFormat":99},{"version":"517a31c520e08c51cfe6d372bc0f5a6bf7bd6287b670bcaa180a1e05c6d4c4da","impliedFormat":99},{"version":"0263d94b7d33716a01d3e3a348b56c2c59e6d897d89b4210bdbf27311127223c","impliedFormat":99},{"version":"d0120e583750834bf1951c8b9936781a98426fe8d3ad3d951f96e12f43090469","impliedFormat":99},{"version":"a2e6a99c0fb4257e9301d592da0834a2cb321b9b1e0a81498424036109295f8b","impliedFormat":99},{"version":"c6b5ae9f99f1fccadc23d56307a28c8490c48e687678f2cafa006b3b9b8e73e4","impliedFormat":99},{"version":"eae178ee8d7292bcd23be2b773dda60b055bc008a0ddce2acc1bfe30cc36cf04","impliedFormat":99},{"version":"e0b5f197fb47b39a4689ad356b8488e335bbf399b283492c0ffae0cfda88837b","impliedFormat":99},{"version":"adb7aa4b8d8b423d0d7e78b6a8affb88c3a32a98e21cd54fcafd570ad8588d0c","impliedFormat":99},{"version":"643e22362c15304f344868ec0e7c0b4a1bc2b56c8b81d5b9f0ee0a6f3c690fff","impliedFormat":99},{"version":"f89e713e33bfcc7cc1d505a1e76f260b7aae72f8ba83f800ab47b5db2fed8653","impliedFormat":99},{"version":"4e095c719ab15aa641872ab286d8be229562c4b3dc4eec79888bc4e8e0426ed8","impliedFormat":99},{"version":"6022afc443d2fe0af44f2f5912a0bdd7d17e32fd1d49e6c5694cbc2c0fa11a8f","impliedFormat":99},{"version":"6dd3f823ac463041d89c84d7bbf74931a38d874a9716040492ac7a16c7d2f023","impliedFormat":99},{"version":"a5bf6d947ce6a4f1935e692c376058493dbfbd9f69d9b60bbaf43fd5d22c324b","impliedFormat":99},{"version":"4927ef881b202105603e8416d63f317a1f1ea47d321e32826b9b20a44caa55e2","impliedFormat":99},{"version":"914d11655546eba92ac24d73e6efdb350738bcf4a9a161a2b96e904bad4de809","impliedFormat":99},{"version":"f9fdd2efc37eefc321338d39b5bd341b2aa82292b72610cb900f205f6803ff66","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"62e7bd567baa5bac0771297f45c78365918fb7ba7adba64013b32faa645e5d6d","impliedFormat":99},{"version":"3fb3501967b0f0224023736d0ad41419482b88a69122e5cb46a50ae5635adb6a","impliedFormat":99},{"version":"06d66a6723085295f3f0ecd254a674478c4dba80e7b01c23a9693a586682252f","impliedFormat":99},{"version":"cc411cd97607f993efb008c8b8a67207e50fdd927b7e33657e8e332c2326c9f3","impliedFormat":99},{"version":"b144c6cdf6525af185cd417dc85fd680a386f0840d7135932a8b6839fdee4da6","impliedFormat":99},{"version":"e8dfa804c81c6b3e3dc411ea7cea81adf192fe20b7c6db21bf5574255f1c9c0e","impliedFormat":99},{"version":"572ee8f367fe4068ccb83f44028ddb124c93e3b2dcc20d65e27544d77a0b84d3","impliedFormat":99},{"version":"7d604c1d876ef8b7fec441cf799296fd0d8f66844cf2232d82cf36eb2ddff8fe","impliedFormat":99},{"version":"7b86b536d3e8ca578f8fbc7e48500f89510925aeda67ed82d5b5a3213baf5685","impliedFormat":99},{"version":"861596a3b58ade9e9733374bd6b45e5833b8b80fd2eb9fe504368fc8f73ae257","impliedFormat":99},{"version":"a3da7cf20826f3344ad9a8a56da040186a1531cace94e2788a2db795f277df94","impliedFormat":99},{"version":"900a9da363740d29e4df6298e09fad18ae01771d4639b4024aa73841c6a725da","impliedFormat":99},{"version":"442f6a9e83bb7d79ff61877dc5f221eea37f1d8609d8848dfbc6228ebc7a8e90","impliedFormat":99},{"version":"4e979a85e80e332414f45089ff02f396683c0b5919598032a491eb7b981fedfd","impliedFormat":99},{"version":"6d3496cac1c65b8a645ecbb3e45ec678dd4d39ce360eecbcb6806a33e3d9a7ae","impliedFormat":99},{"version":"9909129eb7301f470e49bbf19f62a6e7dcdfe9c39fdc3f5030fd1578565c1d28","impliedFormat":99},{"version":"7ee8d0a327359e4b13421db97c77a3264e76474d4ee7d1b1ca303a736060dbc6","impliedFormat":99},{"version":"7e4fc245cc369ba9c1a39df427563e008b8bfe5bf73c6c3f5d3a928d926a8708","impliedFormat":99},{"version":"3aa7c4c9a6a658802099fb7f72495b9ba80d8203b2a35c4669ddfcbbe4ff402b","impliedFormat":99},{"version":"d39330cb139d83d5fa5071995bb615ea48aa093018646d4985acd3c04b4e443d","impliedFormat":99},{"version":"663800dc36a836040573a5bb161d044da01e1eaf827ccc71a40721c532125a80","impliedFormat":99},{"version":"f28691d933673efd0f69ac7eae66dea47f44d8aa29ec3f9e8b3210f3337d34df","impliedFormat":99},{"version":"ae89fb16575dc616df3ff907c6338d94cfa731881ecef82155b21ab4134b3826","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"f716500cce26a598e550ac0908723b9c452e0929738c55a3c7fe3c348416c3d0","impliedFormat":99},{"version":"6b7c511d20403a5a1e3f5099056bc55973479960ceff56c066ff0dd14174c53c","impliedFormat":99},{"version":"48b83bd0962dac0e99040e91a49f794d341c7271e1744d84e1077e43ecda9e04","impliedFormat":99},{"version":"b8fd98862aa6e7ea8fe0663309f15b15f54add29d610e70d62cbccff39ea5065","impliedFormat":99},{"version":"ffa53626a9de934a9447b4152579a54a61b2ea103dbbf02b0f65519bfef98cdd","impliedFormat":99},{"version":"d171a70a6e5ff6700fa3e2f0569a15b12401ad9bc5f4d650f8b844f7f20ef977","impliedFormat":99},{"version":"b6e9b15869788861fff21ec7f371bda9a2e1a1b15040cc005db4d2e792ece5ca","impliedFormat":99},{"version":"22c844fbe7c52ee4e27da1e33993c3bbb60f378fa27bb8348f32841baecb9086","impliedFormat":99},{"version":"dee6934166088b55fe84eae24de63d2e7aae9bfe918dfe635b252f682ceca95a","impliedFormat":99},{"version":"c39b9c4f5cc37a8ed51bef12075f5d023135e11a9b215739fd0dd87ee8da804a","impliedFormat":99},{"version":"db027bc9edef650cff3cbe542959f0d4ef8532073308c04a5217af25fc4f5860","impliedFormat":99},{"version":"a4e026fe4d88d36f577fbd38a390bd846a698206b6d0ca669a70c226e444af1b","impliedFormat":99},{"version":"b5a0d4f7a2d54acbe0d05f4d9f5c9efaaeddc06c3ee0ca0c66aba037e1dca34b","impliedFormat":99},{"version":"fa910f88f55844718a277ee9519206abce66629de2692676c3e2ad1c9278bdfd","impliedFormat":99},{"version":"a886a5af337cce28fe3e956fd0ed921345933163f5b14f739266ba9400b92484","impliedFormat":99},{"version":"9ae87bd743e93b6384efbfa306bde1fa70b6ff27533983e1e1fe08a4ef7037b8","impliedFormat":99},{"version":"5f7c0a4aad7a3406db65d674a5de9e36e0d08773f638b0f49d70e441de7127c0","impliedFormat":99},{"version":"29062edaa0d16f06627831f95681877b49c576c0a439ccd1a2f2a8173774d6b2","impliedFormat":99},{"version":"49fcfda71ea42a9475b530479a547f93d4e88c2deb0c713845243f5c08af8d76","impliedFormat":99},{"version":"6d640d840f53fb5f1613829a7627096717b9b0d98356fb86bb771b6168299e2e","impliedFormat":99},{"version":"07603bb68d27ff41499e4ed871cde4f6b4bb519c389dcf25d7f0256dfaa56554","impliedFormat":99},{"version":"6bd4aa523d61e94da44cee0ee0f3b6c8d5f1a91ef0bd9e8a8cf14530b0a1a6df","impliedFormat":99},{"version":"e3ee1b2216275817b78d5ae0a448410089bc1bd2ed05951eb1958b66affbdec0","impliedFormat":99},{"version":"17da8f27c18a2a07c1a48feb81887cb69dacc0af77c3257217016dacf9202151","impliedFormat":99},{"version":"8395cc6350a8233a4da1c471bdac6b63d5ed0a0605da9f1e0c50818212145b5b","impliedFormat":99},{"version":"b58dda762d6bd8608d50e1a9cc4b4a1663a9d4aa50a9476d592a6ecdc6194af4","impliedFormat":99},{"version":"bc14cb4f3868dab2a0293f54a8fe10aa23c0428f37aece586270e35631dd6b67","impliedFormat":99},{"version":"946e34a494ec3237c2e2a3cb4320f5d678936845c0acf680b6358acf5ecc7a34","impliedFormat":99},{"version":"b85aa9cc05b0c2d32bec9a10c8329138d9297e3ab76d4dd321d6e08b767b33ed","impliedFormat":99},{"version":"b478cef88033c3b939a6b8a9076af57fc7030e7fd957557f82f2f57eddfc2b51","impliedFormat":99},{"version":"2fac70f99da22181acfda399eed248b47395a8eeb33c9c82d75ca966aee58912","impliedFormat":99},{"version":"54c28c9fc4cae7c4fb9fb7e6245ebe1a405075c190cecd6d9c15d1882473a44e","signature":"369d0e3e9dfada71a1b6dd9ecef32b43ae570f0575996c2d2b71cddf58dd100f"},{"version":"6ad69e42f510ef065216c52cffc2c2f15cf24c20e6da1d622bd32c4123d31bec","signature":"a5c773a8b089f84882db294570016c3c8c314cb829d5dadf810b4b723f927958"},{"version":"d630aaa0315d21c1b78cad038ec90a89ccd4c3c04bcdcc6cca19253413dd41fa","signature":"7546981df71df0ba42aa669a52101937bc2df45aee792832ef26c0d0a2cbbd5d"},{"version":"853aa2acd51cd7300884c400532303bec106892146fbe0b64974bf4dfba845ab","impliedFormat":99},{"version":"5fd06addc09e3585eb52b0d8e731dd7ee79fe59e84f07279f80f5ff9772357ef","signature":"010c7c70c42e3ae1797dd61ea025f3dc9d0470f423be2e57583c6f2b41dbd54a"},{"version":"e64ad9a760a7a4d1fab99793776829d360a7ab34e7e7a0d20fe183c34fb71a11","signature":"a3df50373eaab5122c1384f66eac08aedf5505f13be691f57565e2dc852a3ea0"},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"bcf5edfb2b188348d16a7dd26c83a79856a7e81a7800051109d99aa211ef6947","impliedFormat":99},{"version":"6d870cbc76c9654c649c58dd664a875bab499e3e746b34ff2a6b6d363a3e0686","impliedFormat":99},{"version":"c1da3f540f39091e02624208125e7d825fe6839d153399c21315725acf0adbe1","impliedFormat":1},{"version":"91648eebacde37f34eace96a9d3f269875ae85331e70a4ffb89e76f0382338ae","impliedFormat":1},{"version":"b67aac762d89fc868d6560040d7e83b51fadf4471f7996060897c7344583db7f","signature":"1df7e07dee5c21c5473587ad884f55787fdadcd50af170a9010e7b0b0d795cef"},{"version":"384ef34eda1333e1bdcf728bb0b3cd3a4f67003d4bd1b117b8d2f74554dee0f0","signature":"4ce0f057e01df35065ac049ced53e5a4aff789db91a3f4e871f88bdd9921cc59"},{"version":"e1be4a2a139d2a99071ff9c81d7c3401a04612b032c16b4212a66e254c784217","impliedFormat":99},{"version":"86f417a032f112eef217852657f7dc939cfcb87f7770b0a85360ccc2cb14ce5c","signature":"193f3698143959625b77bab03ef64fae1876dda0ed7438f9da236b49a3b9b826"},{"version":"40eb4eb274d7def754b3352c23328af96a69261fe5e99d20df41f1d5de8d0f5e","impliedFormat":1},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"26c57c9f839e6d2048d6c25e81f805ba0ca32a28fd4d824399fd5456c9b0575b","impliedFormat":1},{"version":"02a523d3492e97440de9c080a59f3aa9366ca92bb6914078a75ae8a6f3e90a7f","signature":"512960c0e955a2324b34354dac25e3e4d431a1af4cd33077935eda5e95c8b7e1"},{"version":"37c7961117708394f64361ade31a41f96cef7f2a6606300821c72438dd4abda3","impliedFormat":1},{"version":"19feb8551285d9041090b2aac242de4089aa0abe3777a89ff9a804225e561832","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4553f8b822eb81601e9ff242bde19eebc440201e687161598c267892ee84bdf","affectsGlobalScope":true,"impliedFormat":1},{"version":"724dea86a503f9bdf755f5c628cea9de4a63aafdf0f6ca25db5e0172ddc0d883","impliedFormat":1},{"version":"39875f62f78dfcd829f2d38f7b06e8a8d5e39bbb9487abe63b81b41fe3b58c04","impliedFormat":1},{"version":"db9c5f6f63db334bd716569e5354ba232b4b10b7971b9ca57b4b7187b16d4ed5","impliedFormat":1},{"version":"0e139fd856b5953593d16dce2e9246ba9d2cfe0e0ea097e0f3f3c1f39abbdccf","signature":"d0fc15d80d4bd49eab0060e9013580bd40c3d09711b887c6f5b802727bc52630"},{"version":"e83039dc0b4cdf1b92e7c48cba8e00cf26a55db2541034edfe05481816cec202","signature":"a802ec5726974ae76675b9c3a9989a5b2a0cd765ed44124a5f1c8c1b549e17fb"},"e5a5e11a003b49f8b996a57718738f431f2f5c01ab28a866d1c58a9c936e7c8f",{"version":"69e94001c9bd657dc320a0fef9b5a3638e8e127fbee3680066162bce663a0264","signature":"b12f4a22f70ee31bce50622f528a1f7b5b0fe7ce991253ed7c428a748acab351"},{"version":"8da5668b646a09752f09e373a50c1c701037a4fceaed606fae523c436b839267","signature":"3ef125ce9c030718edbe5c69e42a585570b64d61401abea48f5fbfb159558d92"},{"version":"947791420ead2de787f21ccfe43e481460a829d8291533e1d2557a4786099320","signature":"3ffdd8285724697502c4e7e5431281ecd4d8abd99d3e74da01a9076a51711408"},{"version":"ad84aa2aa1f40cb360232de5dd042a167f3c6d9df230f5d45ba5682254a3ee6c","signature":"d0d0b3d9e3ac3534f4e3033589f51ec1ca8505d382dca6b15779c105c7bf9ad2"},{"version":"68ec28272a4f87e783345308c4de9f3e4c31a99bf7ac8a03526a984572f69090","signature":"67aaf9256efc2277f383e89582965e2f9929305c9591bc7092be3e63c3da38ab"},{"version":"5955c00fae6439e230605e2111c0a184753bcb0e204e7d33fd4f73cf1591810b","signature":"9303adb50b794e326768da0980356d1f9999b772876bdb7655701bd567b9db53"},{"version":"dd4c33c6803ee1fab2255ef6aea3c2956da2720b8709e522ccd4161df177af16","signature":"441ba5aac89d55a5b021b2e6a234685afb3b9e2bf0e3f7cfaf6a627552308cdd"},{"version":"fa64b85e3ce81da13ba42ec9a641c91b1c264f36c30f2f7be60c827edc11b523","signature":"dd653302ff9ac172b9efc43fb38a247b99a225a961f1927f59ac43bfa31267ad"},{"version":"fd4adbd0536ed2b88e46a0f9f99841df45a9604aceb6aae8a05f5b59891dbbb0","signature":"2eab959c5749eb603889c6fef43662efcfb14588b5b9fecc912d7eff57f5c11d"},{"version":"d6cf0453674a5d863e055009933dab639e33be1c24d1a498c88510d98aa1483c","signature":"c2b75a7a7fd1a8d6b4131da817f058f89f803d5a1bd71a2628fd8de5522c70f1"},{"version":"0fb1c7b4cd7af758a533dd15270781c84e971f4fd46cdce12aef8b08c09ad06c","signature":"41642e6c042c6a1848edd5954903ddf39a3e93ff3d982cfc52b70c8fdc86eab0"},{"version":"6c5039dee5f9e604c82bafc56889c35f72fa70acc3fc825e491ad5286f6194cd","signature":"854f41282a40dcd7ae4024bd9874935a496fe46d6de35de8f6be1336969ec17e"},{"version":"cf4f62163284ae3d8a7bfd0091e4068ff75dde1cf37cb6447a3411171481b0c8","signature":"0c1abfce570b9969f8bf7118b5dffe70ba43369adba22af3154d89c225ef7fb1"},{"version":"bf4f2229d74a2b8def938a43ddb324daf9b527d9a42d2b6f58b8df2de9b1998d","signature":"914ccf74f18ee798574084c10b93299703fe8e9118d7f3e0e7c0b1d97282db87"},{"version":"13ddffcc1f56698113dbae80fa0eb371b3e0e5b22a86cf351920eaa8c99f5a57","signature":"0cc9ff77c05295b47bff4b2c6d03595fd99b91876656601e9e085306a3d23b4a"},{"version":"d55dd647a31afd67af853f250f794285f3c84f8d934cc1bf24845216cca7d0d3","signature":"42293684b652c3bea06c01bd00da78aaf62776202058b63eec8f1f39c07efd3b"},{"version":"785e659603a3dc19f17ca340c4adcb46f1bfe2311280660d237f0292b3765d87","signature":"ec78ab3cf641624f7d2f7e135acf2c0f4ab0192f67f7ff0d6e1aba33135cecd2"},{"version":"7ea1cbc8f1d66cf4ca1f708ec360e364427adbaefaf4b78351164773fbe58931","signature":"c46ee4bea4e866697b8b78bddd73cc74f511b1fb73c7c434df209391242f85cb"},{"version":"c5779f1371a25486741e2e7772d8320d9a97647d3d6223b9268ca26820661deb","signature":"de63220978c0f91d9e9999976d75db3b610a07460c91b2c9b43b336402eb5a8c"},{"version":"26ef4c32b59e64c1f165ef465a9d47d92d4b63c947d35cd9f132a1bd72e9d7e9","signature":"3c15d8148ca08e01a7284719498e82573afd7a636d974b5ca7b7c567f34427eb"},{"version":"7c60a4c129dbadd911c2d0abaa3c9c0257671c149c5ede9dc885cf3f836c8c39","signature":"1802a255970ffaee6b86ab889a84e2cde4579f071136b20652d9d25920368443"},{"version":"3e1810144e96ab91710c57448594d0d1ba91db25d2146f3c25ffd3c234bef9d9","signature":"332ca7ff77a8ea6b6882dc20715d210def9a804f521c835f693af0de517529cd"},{"version":"9c96de243256bfed19f0a2a2654e37b385089a655783c0d183fb2af74272224e","signature":"0a2050b1a984eeeea3d252e307ab46255646e71838763fb2f42899d6e681caa6"},"8562116c7dc8f01afdf66dee0181a3a0c30b0aa7f3ca59bdfd3935073424c545",{"version":"f9b57b7d7f2a096ce89e8c5e81a725112bcd57642a5d87c2b08b756eb0539383","signature":"0cbe679a9a33573193531d1bf6b6f46a7d21b99f3c7a8e784d1d6ff8b58e1f4d","affectsGlobalScope":true},{"version":"0714ea0ae1ca5e03c1c8e289732488bd3cae7158a1bc4a24074e9d4efb356b42","signature":"55c2696a68a74e32d1fcd2f5a90dd84910ccfbb2aec83f8ffe8b16c2bff84062"},{"version":"2a7580f35d47293ca0e5d1857da35c023515de04501ed02149f5e30e63305db1","signature":"c7bd1b09f85b4bd8b214d205af65111db97c94fcdbbdaeda2cde274bb6c37b5e"},{"version":"672ae324228b7215afd251560a6c1a0943ae8f5fd7a5acb7413fd6ee3b248e23","signature":"2ed125a3f0181ed618ddd13c092f33d1cd22088bc57341fae51c51c87daed6d6"},{"version":"5e8447245195785ad68a25421055841e1f37224a163a94d416707f993fd7fe35","signature":"4697990787d82b43a7860b2815ec2c051ca83dc56288f2e90a7a6a32a145c277"},{"version":"b2df4c7a260ad9da5844b26291c9b8fd656bdc2023d9efbd87e2a74eadb65e8e","signature":"bfd1eb0cb29a18ac66194bba68306bff26536d499f48b78026721e0cb577ae0e"},{"version":"4c750ceb1795c8093bd5c62e434dec15db2ee657225c09e53dd8b053ffb30b12","signature":"0fda42aacca8f228d9d11a7248f7f38bd01e32abd159f5b2d60fe83954f1134b"},{"version":"484696ec6d899e5ae44ace4da931d8e57468c8b8c58bd874ba268ee176f02442","signature":"3f9f60ee24518eeb21de0b3437c092d9c25140412e60d61325f688fc976a56d6"},{"version":"bebc21fd5e8ca60f720bf114bd6a3e6cf2f0f28f34a6fea0abb50641aede2d99","signature":"42bf37bf6d38942111f166530e8f47c5946106c1dd1445cbd6f38891d04bece2"},{"version":"2ba7d8cd1cd949d35d71d9b671769d88d0f18e5491e360a93805931479f6a0b3","signature":"31173d0ffc212ed6bc0619aa4748168843ff21786fbabd40fd64c1693c01fc19"},{"version":"e05284b247ff98755c74264c43a51f1f3481171f16f4202cedc14a13ca2c2389","signature":"1c5aa26007d4f769821837a5ab63113c26faacb64b82941e0fda868e2d075c26"},{"version":"e53c823cdecc247a5b180e38be79756372f4f63e93dc0f540a3d1f22018adb01","signature":"15b0fdec4d28c7cf60c34943d69ecd0dd5e34540ff328335346249bef51e3e41"},{"version":"7c4fc7da6184a91b511b38311bb9c58d316d0db4b797996ca091bba06eb1e642","signature":"8a24e2e3b3d0725c1660921fb95530c886a9c5c278cef47de40a091a02e87d73"},"e35ecebf0e24c37a1a79e00a09d7a9059d3549f6c8cb328f0900c86289d7aa5f",{"version":"ee07be51e6f9fe68b65166e1a6412e86ca13a22f679f89f6f2d15c6fd09dc128","signature":"f025160a6f5342fe0283b8f4fdf94b772c193b14f838b71e69adc626f842e5e5"},"edd6fedc43b0e0bc286b1be00cd065cc4e18a55e85bcf7587cc87ae2f67f2829","6ad8bec672da8779b95ab41a7db8499e867290886bf452c8c21cf8515ed81727",{"version":"b588cbc4ff7110aa2de6c3523ab05675adb92660a381518029697418261c33fe","signature":"3e009be01e991d604aea4037befbd90d045b4ce17bd2fa76c6b4e3e7511fc7fa"},{"version":"9dae4a69a9e8ef7743e7c26a3177717c9480a5a5c7445ced84d6b14c16c26beb","signature":"d3eaa6ad62855b898b718baed188f521a9b844689937a34205422d7a16120252"},{"version":"2bd3ee23d20ffdb309062af641f298b92f19f63efc3662df2a69229e453c08b6","signature":"a575347f08bceafc67ec61295040ebd6d8a8f697126fdb88ccd620ec1824bc08"},{"version":"bfcd0e14df47f0e064e1a4986468629b7f96eb37b3b4a0fe2a3f838b70f00f09","signature":"95871d797695d7e808d51b05b5eb68ff0b675e403cd35e463296b336d299745d"},{"version":"a58be083e01f26481c892acaf164e05ffddaadbb93432ef4621307888d85b906","signature":"bd11709018d7c0be79ed6ce7ccd3eaa9e0c74619b66b6a8c79c6d9407f8ad30c"},{"version":"1c5a5cabdedb944b0dff17ddbad2a09cc334d1943c32a009f9b7b9bbc623630e","signature":"3f02ce38faaa02a97261f60e24286a3abf6b31b93565ad276c32b1fcdd6c144e"},{"version":"3dcef5bcc791db341ec241337e7a9a6d1794b707099bfdf8d66557f5a43fcc9a","signature":"52695dde8f8749f6b5e20a480143d8809df82e70e66df33d07ce8ad4a43a0b63"},{"version":"d085ecf4c41c9698491a6b393a8cd82bc17c5f498999629188b51dc0727f4e7a","signature":"f46610761267deb6fd9fcc1938834193c50c7ecdc7ae3a6612617b8e182844e7"},{"version":"04aa0fc9987bba7035e600c50d174a3cfbc448e6f36662d85721c061cd9b10c0","signature":"e6a6ba05b5c8d27e7a39a7f0231d8b40aa20bdce6d25edb6d9a1314b3ef1bdaf"},{"version":"dfca847ebb25bdf52061760b25bba2c00f5fa9d2cdcbb297308fd98c840e3eff","signature":"08879cd061050170003634aad0ee6fbc5151e0396ae646050284dd744f6d218b"},{"version":"df4bca5517eb6d54f07e2ab809d3167c01894331aeb0c1ac81d20e17e72f5754","signature":"d58e456651d257d90c3c61c198fbf7d10dbc60b11922b0c832ebd4a68411c20a"},{"version":"7e24397ae6da929f14889e183eb0cbe46096df27f863cef367501416a306348d","signature":"e6963e71dc146d13e5c347571c233e413f5f5e0d21eba5c69d879fd94048b447"},"23284bd62b7ffcbbf579f77d93fe5572b364f81d94ce0e1d5d59235198ff32eb",{"version":"b5154dc39f4c3a18b5225a9d9b4d46785972dc2e365e5f788dc121f80f031331","signature":"f2e890f66ae0ca0a78b94014a5db16d0475cd7c8961e5f45395e821f75801799"},{"version":"77b2c2b02fc5591ceb54245f70c434247d3c85673df180b7151498bb1494e1cd","signature":"e8050e1446b8eec1b3c154fb3502c264b749358cacf0f6346d0024ec5d1c457e"},{"version":"78d9b75fd3b33eea3eefd7b1999f8b46f42771113042a56f0fdd98add710982b","signature":"30f003fd12e5bb1fc4939b0c64577bf0ede6de3f1d0ccb80b28b079bbacd1308"},{"version":"5efc64e707bda4626eb9b08beccf34b3673986e897eb9b2f7e8ce1f096a6a51a","signature":"f2574d729531fad0dde200109ebfdd731eb7c4241427b2ca245d596e57e4d797"},{"version":"1119273bed52c96e895ad22b3e8fee9648f1d5d621cb6b7cceccc4638c7b7533","signature":"9e867c1bbc1aa70f581e5095caf3aeec6a320bcdcf14f01b4a83b687890e530d"},{"version":"18807fcc265ed7a189ed2d1b794e571668b3a3eb2810405c1a79b1f3edc5d209","signature":"1860b01d52322d49a4c13672b5835ad2d7be45cc97e20798a9bf303bed0b4f22"},{"version":"6255f8f5f4f919d6caa95a6dec3154a18a11e9147197d8a2d68325c65761f495","signature":"99814c49572093c22c0997eb925518a619f7cf8e990af4b4b8682e9208d023e6"},"4da26603960e508de660ef80c9d1617039bb0603b96b7d2c824add333ddf3068",{"version":"569e133ebdfe508e1f2ac78006fc15f785b0fcf51629cc138b4e2620943a42bb","signature":"3d2be884614ce89df1aba049ad4c89960fed913bc3b34b6c8f6edb4313c70452"},{"version":"e6b8f3cd057e49a50b57a52acc38cff7c224def2249464d489295e0e1d200af6","impliedFormat":1},{"version":"74b89b20ef68166153e24a4ea7a13306c8daa65660815c0a7574f4ef35eb4fc6","signature":"8b23ab4f166c71cd3faa1fa3d6f02e4d626fc6675cc640649a7e8ad401a3015b"},"ccde58ef224ad07068ddeb3533011b986b08b0db6f686e50943f518bbcfbcff0",{"version":"4fa68a3551e639f34e943d51855c4df87d414470356a3ff4ee23adfa02054193","signature":"3545f5333a8c04e118b0bd3a19e7636dcb542d32710d6f1c39cac9a34e7872be"},{"version":"d44c53a5185ae285987268f3f30cdadf3dc7bff19d230bfcb5c6505d4f268299","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7f161bf747d17d98f49d7c2a9e67da87031da2c2cbcf356698fbfc184788b20","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ff2131e0cd0d00541853f45cf91d93570f4657717daee949596e828dfecd5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a36dceefb767f35c0e04cd731ce8f302da8f5c4db047afd412749cf9cefab338","impliedFormat":99},{"version":"4fa9937fecb08fd85e2c8a7ffe4ef27fc02cc0ecf5c638133f65ebcc665c155d","impliedFormat":99},{"version":"67500feb82f479142b553d4735477a64838014a335a62033516a93173b2b0d69","impliedFormat":99},{"version":"1bf74c0a319d262ea9b3b7381ca4a05b790ea1fb25e91e4838ca7a03a80e53e8","impliedFormat":99},{"version":"d6f734b1c568ee0b2cc21fdf336ba7e07674d5a244c082961fcb0cfcd1d14d9d","impliedFormat":99},{"version":"3c8e78579c681799fbed1e83c1b42a27497551a66d73620cee86724e16d00c7c","impliedFormat":99},{"version":"d4f1150636fab34b29c20492de16ad8cbfcd165b75fd59f3fc43eb925c3cdda2","impliedFormat":99},{"version":"a423e3eefa50036e6fa64c5559397b2fdd415a635d71f1dc6e6d497fa9ad5733","impliedFormat":99},{"version":"19013bfbe9b85acad69621aee4d4baabea52dd563a55503f4697d31123b4917e","impliedFormat":99},{"version":"c4d678fac1ec9dbe16381c3effdc1e1af1a909eb97c9bc7f6ba8fd832a0c2fbb","impliedFormat":99},{"version":"55605ec08188e2c9183059ab382d904bb0e0e2167edf218a2eeadf755d85c8dc","impliedFormat":99},{"version":"0d6cf4704ba2281eb23e0fb0ef0d9dcb5cad22118515747e5cf62b69a559e198","impliedFormat":99},{"version":"6938a4140037dc171101639cc5601de23db9d150ea2e0ca63149f2ef18c2f943","impliedFormat":99},{"version":"7e05897b8740792b19a75b33f3c18271afcebba23a79a961228422cccf7b107f","impliedFormat":99},{"version":"033ca4aee625d77f77d91ebbb1f2d06c81e6aa5a8e08685b7821164a28ab41f3","impliedFormat":99},{"version":"21a6d8961711f30abcf347ea33621442b239104dad95ca8f6e5c45397f0436ec","impliedFormat":99},{"version":"c1f63a7b774263ad335590fedf52a593a76758fe98c4f28782624c77c4eb59f4","impliedFormat":99},{"version":"4e97d48d7072ad1ce17c5877e8d033c862864b342eed72f951375285411d05df","impliedFormat":99},{"version":"ced21f7dc368280f9928d4f8fa267f04155d9d80dd6e468f17ed1b7b7581d67c","impliedFormat":99},{"version":"71fb51ae6da8a075f61e69a4b8246701c7733a5766d4e895516a13f089788102","impliedFormat":99},{"version":"10467b66b4bfd7c5612004b3efd179333e1fb9108af1cb1a4aca41c4b37d8d9d","signature":"85b9ad1c8e81c0fc2979b37e41ba97e184d91b99d891078f8483750cb12f21b7"},{"version":"88edfe911b08b657b2db83173e56cbe713583dae187ddc869106281b16350bf8","signature":"e76fb79d8346319b35077ecf61bdb65455ad4a2cbec912ded6987f3441393a15"},{"version":"963e329f031c13da20bc9fa1147d1771406630ff92a2ff13491e0ffac0f8e2a7","signature":"2771b190fa173a437f292c7d62adfe0f112a5d298ab4a2959305ea2dd5aef465"},{"version":"9ed19238e79715d3f9c2990785f28240637824a9be27fbdc2b648f073e121c2f","signature":"20ebf4347d0ec57537e4854f496c3b079e60280151a77d1ed4767e59d2c1c781"},{"version":"244e187f8b27c559f429cc7cfa657cca211756223d5513511bd2472d8e8c02f8","signature":"bd74979199c545ec5eef198b3d1b6fea00cca6a299da54e4a8e2ec239a1db3be"},{"version":"f2bf8a98d07f85deeee38fe7123d4584cfe497f9aea4f52e72fb19e540a115ed","signature":"bf7a635f3ff32efe790f51901b961209e068f035e9ba15ff12ca8fc622a6b0a9"},{"version":"b38ba74698e9c65aae350c9235b5b7b64c49518987d52f55efde6e525e0aa802","signature":"4b2a341b2424f7fd6625a872ba05ec2ae70648ff752357868e79867c1c29fb16"},{"version":"f43d6919feff5b1ffe219d212b86b0cfd93056b7ad3d29043f8b1636bb4ba5ab","signature":"f66d247f1974868005ecb8257f60a7d919ae982c1964fe054e7cf54f99dcbcfb"},{"version":"b300c151425070781649957f8232cc12462c7ea871e54d1a113488d62fec0845","signature":"f95c422272723a5e6b7f80fdd2792e4a9bb4e32cc83725d70ebac1759eceb0bb"},{"version":"27679e96d1bd38c5938178aaf4abe8627493090b63d6bae2ce8436e6a87ebe4d","impliedFormat":1},{"version":"d95c8f5d77d5c0cbeff895adc0a5e2230a0e746b58faddeb303dbe0c88c9fa1f","signature":"ea55f358814e5b18a3e1aedaace42db93be906b6948d4cd46c45516867980c51"},{"version":"47086e8e03bc57b1f63d307df4ea211a9a39b25fc0d7235df4f46d41fd5b150f","signature":"fe3798f1ab0d3b67864e33cfe90ce0bd207668acdb794fb0b33abb24aec98b76"},{"version":"448ebc11999f8c4bc677f348b9f02cdab84d5ae940708e96ed3653bb7da5eeb0","signature":"af58445cc7a94f4e967c842bc6bc3d8b99ebcc03b8403c0eb5de711cf23f360f"},{"version":"b2aee1c60cb80700b1e1c0ba938741afc718b5b1ef57ea130cefcd39e38a681c","signature":"3647e4bd2c930df19a43700049e96ce23a10c63405e91a9ecde47e392b2278f4"},{"version":"11870d43a526496e4170ec3bccf9a4f33c7e310c3a1b81fa71ead161b50897ff","signature":"a34f05b827f8b88b33d79c075f55b54bcb8fc833a53143e3b95a9f77b752cbf2"},{"version":"22ac1ebc310cc9deb2fbee76c8ba461070726263be6690f646af410de133cb90","signature":"7136d2ead5ac866e6051b066295e32482530c0c25ebe224d8139381fdf4b119f"},{"version":"fa06fe901eb57b28502f1d03a5c54d7486f255207aa72957d7322b491a7f1633","signature":"c5c57756c6d726b5f590f6268c0d21d3154b91179b6c2134cbbc96e219f613bc"},"6bfa52d6836a8d59c9e506be487c9ce8824da608087278fd3ead167b906d8a11",{"version":"012313a4418195e5ca806962d4df70613c909156d760dc11e9de450c2dbb0561","signature":"fe8df7722f77b779c792cded68cc7769ed89d5e9e50a5dfbdd07ff3f4c420548"},{"version":"aa58edf51b13f8e6dbdb49aecfd69953eb79d14ffb589022567cf80e06af6822","signature":"5de4a9f20b79a71e28aceb8916e26cc12c0d6ca0f442face5b21f98194ce1783"},{"version":"59e907b2109ebe4311b430ed2644a5bea52f2f300fe97ac91a437ef9803195a9","signature":"aa624c5a540fa657676b4c90482d711db9e862659b8bcd5652d43fcffcf5ca7e"},{"version":"b3e9641f3fbbc4cc77cbc8390f4278395b06f3639c6d9559f9a42ad6e17a3d1b","signature":"73aa3daff7523a80b8d229daaa7d127db8a7ba16a5b19986b0bb4c6348888b18"},{"version":"1de2061215e15865b1494f40cb67d017466279bd89a2eb4c5a1dbeeb4e69752c","signature":"a59a49e2d8a3646b5460c7a39e30e96c85dd1fd5855c3d57586987c7284286aa"},{"version":"34105e5bc42e67653de3a238e1648d509e0f818c36c82c457574bf381356f72d","signature":"c9678010531d9ad25826ec1223e8f2b18f97651f9099df4399f9ec6a62af7f5a"},"2440951e1d2dfcd2bbc2073dcc1daa284614e25b9955a9dc60110980e1eff120",{"version":"99942dee5eae15c971e5d008c86e503363f0f1259b0825f8a0bfb8f658ab48f8","signature":"c1e9ae11a135ce5bc4791652c59ae49b1cacaf363f681e5e6cbda84e74002649"},{"version":"d04722411249c2c67672f59b3edc29920ffafe20dc9f29cc860b5ef998f11de5","signature":"9fac5abc302bbcd46367973fd59ce6037560afb28185c5936c8c0ee10baf3f08"},{"version":"81833f8d76c4b585b1083147ffe2e81a819defe5067123b99fac522df2b94697","signature":"2d43165a9050c4e38892846fe05679fcd87ec750ed627b96f43feebfa43aaeba"},{"version":"2b6c7b3f1b1318387ea782aa5be83a9591cc8e1447967f053a0bcd12ad781330","signature":"cea0e10aee11176819ed82281791274ebd65f1befb38d190aac1d74a0b52e000"},{"version":"a6620c7b41052efe5d464acb253a8782dd9eb7e2f3dc2c335a15c3a39e14237b","signature":"51f78abea67d46ede962fd483206a4b536256b0692ab098fca0bca39fcad27ac"},{"version":"11d2f7b4a200c44f382332df87c13bc4ab0041b4947c4b3e55c41287a902ce7d","signature":"355893155b6e80bb1d801e19ecf8b00c1c837681b0876f0571afb9a12325e43f"},{"version":"8d5a652c5bf960a7a7970adcbcc3cdacf86ed7264171aa7dd5231a081c568d5e","signature":"dc3c8ca72eadb931568e0f393a9f6899d13a0dabfe5790000af8a1283a528aa2"},{"version":"df7611f6fe98422dab6c66b43fd70d62c31d190b904e931d944bf9798cde3444","signature":"5256546ff0ee98ff0e9a2094eadb783cf66ce5a46eea777e8215b682b4b10d9d"},{"version":"e425a226e117cb02225226e8d6e41b5184b06e5ce388713fcc00191cc9608356","signature":"00c2b559af7488dc403623c3f0ac67e0fabf5f7b11e93f5a00a2299085a742be"},{"version":"22a6dfb677630fc06f3c1ab654ff56d0e552ae6994c9281c594b593ee6019c86","signature":"6149b5dfb982efadf38000e5956b5fa482362a6e021fb4f3aa08748ab21f900e"},{"version":"f47c7a32b3a33823318cafa457bee692cde6a1d2290a18c446a46f95a29c85ab","signature":"df3c84f2f4c30f7ed7ff9e7bd9ce547b0fe4d901faafbf4295dfd64e7aaa678d"},{"version":"e71080e48e1bba8f91d721bde022001c0fcb8eb73f2b663d859e4a48b2bae81c","signature":"4d48980474af38c429dc09cbd4c4e3ffa8176a8c75e013d1a7101b4feb33b97b"},{"version":"1b80788bfeac9b129e7aa7625134ee25ea5f59486f820cbbbd9c591383edb82d","signature":"6663f58fd684d3191ebc40cf64d66c0078d2722fb6c84967ef285b09f98e7e68"},{"version":"d117c9acaac2e5c8d61f3cd7a574913d8c522b461ee221839afd7dd459558486","signature":"552f04e4d0005c53ba4321cfcf50ca09aeeb45762e87459d635ee0570fcd859e"},{"version":"5394a413e4c01677b46657453bd97c58423ade875920930440397620df53d0ac","signature":"5fb6588a3626c1652d15e2635db10f74c3390c0bbef850d2ceaa1f10e3cce011"},"57948437dcc7024f23c80945cd6dfd8b472614b160d73b2d42ee45cb01c6738e",{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"68219da40672405b0632a0a544d1319b5bfe3fa0401f1283d4c9854b0cc114ce","impliedFormat":99},{"version":"ee40ce45ec7c5888f0c1042abc595649d08f51e509af2c78c77403f1db75482a","impliedFormat":99},{"version":"7841bca23a8296afd82fd036fc8d3b1fed3c1e0c82ee614254693ccd47e916fc","impliedFormat":99},{"version":"b09c433ed46538d0dc7e40f49a9bf532712221219761a0f389e60349c59b3932","impliedFormat":99},{"version":"06360da67958e51b36f6f2545214dca3f1bf61c9aef6e451294fcc9aca230690","impliedFormat":99},{"version":"50bc55fc955fa799a4a1a11c3484077f06cc87033c68f5da6466b520876cb12f","impliedFormat":99},{"version":"0555222d33e7f5be196abdb5e9c1f65ded892bbb8008c7567ec09781e12fdf16","signature":"ba446f853a94d297818b1619d98f0b8c8c3c22eb005992e96ee8a713da8ffa62"},{"version":"bae4b6cc20e2f525e56254d06e774b2b9790b2c5d04e28852b807fde92b0b18d","signature":"f2e048e3ad15cfcd70f8e2303f0d23162f27fa4807757e02683210700339aa4d"},{"version":"ef29dc5b566427383555f9e389db0d17e7a90337e8a59e45fc1ff0004a81714c","signature":"f36a8db2263fc2fe5488bfa8ca7c737df57447f7db39595800298c3c70ca3854"},{"version":"b5f17e563ca43fff78f0238cd86be479546a15cc7091f403184fd912d19b9d87","signature":"963c2a3b2e53abed1302ff62aec14bce2a3f9784060bd3180de5c70d5145d141"},{"version":"6e9be985fc82eca7fd867c803f1baeef8443196062783391672d967e65539239","signature":"72c0cd5e567e7d5faf0621a1838c593231f9a810f4f3c6846f07f122ace09e40"},{"version":"feccb8bfca0e7b7bfc7e68e3a7cd7f4b35089007c56d01718b22ba9335b36c3b","signature":"3451e9ca965c68c5e582dfe07731d12ed49a55dd0b2c4cb131e57ff92486a9ca"},{"version":"90f7a56109b5cca9773cb2514a4aef73fc04e806ef0f13647967c5ee02812125","signature":"877796d8522483f9b57f36306bde0715ed2d519db26cff52cafb35ba2b2032a1"},{"version":"f1c17717b5f6e13311f105b055345940838c4aec26df3564aac864ecadd169b3","signature":"6f5706e199dec5b336c4f714123481e1511174241e232848866660458eb8b1eb"},{"version":"2e821e34791212a2c57b950b58cb8aa1ed1c8cc395d91513bc8392196c537d15","signature":"b3a7da67acca49e318d34f2453e43d62e8b583deba3db902466e5215f44d3403"},{"version":"30a1bb696377e33db61161acdfa3624d4ea1620ad91b1648e99e6cb702613773","signature":"4bce2cef1bf4a5894ea7d588e044cb2f9564e93efeaef9646d55ca1f7a93cf33"},{"version":"62d8e68188f506e2305c52c80e3893c6d2cead3e056ad6a0d403fc19cc75971d","signature":"604b1fd70119593d63f33840d9a8d343ba897cefeff151eaac4afbb7d20e854e"},{"version":"34e8fd52e671fcc6a53b631436464e0a02be5751549dacb542e500c914ccfefe","signature":"e8f86c45a3ba214c82f6349e8a0e124f661124b6be4f0b81887ec8a7beeb9b36"},{"version":"82a53ff4b7db8e943edb08e42c06eb5c41ac7adc3917b0a682032f5833819d4d","signature":"128b66558240654e7d7c9e15bc920647eaa13c9bc7802637ba68e1236bf7afd8"},{"version":"006755bee766f39d1f4f304d9f7e7750444c829dbba0cc7cdae7f26f7af29761","signature":"3d643d640e2fa236a4710079bedf031b2c08fe2ce9becd58642ba1e85f306840"},{"version":"d418151cbf765c1c6e9b465fe1a907eee0f60d18755bb7f47eb8d01ca69b58d9","signature":"41fd46cefa78095ffdb66d546473835cf068ed04d5c05ca0876a8f939b67a385"},{"version":"44ef4381f39e630140a3ef5682dd823a5ed7829f84e4e1b1b43bf96b9f4cf0ec","signature":"ca726a73a928bda6c27d5873f3e3e1327c69c7baa5a9cf9f19bd8a50683c7c88"},{"version":"74b551c80bf0e39e40ccec0583d04b465cb63a4de6135b1ffe0e45859bb3ac31","signature":"f59a391b0a6a9d0493173775e2784bd724e5eddcce7b96b9a1539a1835203b40"},{"version":"6174aec681cca42dddd61a1f5ac5f2633260b81081e771e811078df6c07d776b","signature":"43d354f979393f7a695f29226300cd869b7391efc15827f2d054d2799ce3cf83"},{"version":"992fec81909b0127aa2fd2aa7632e2fc880687210da03e441a14adcf663b6b37","signature":"1988ea4433ed5358f72344f0458036df36384fc9577fbd77d5ba261c46a0a5c1"},{"version":"a969ed96044c8fd0b580eca806037504cb564987d3172335d0469b204cbd8dcf","signature":"9d5ba1b70a3cf01909cdfd9e6665652e85cd320aff06cd18e5c13127900f1009"},{"version":"e8a7d2f46fe31854e8cc006a1eebcc75735dc2acc4baf6bbeacd96374b8af90e","signature":"f4b3a35d21ed9fa28605483d6e14618bdec7215f9693482bac2d0434b236c59b"},{"version":"be2140a7969dab064ebbca0499aa34fce68f3ef929f0da837853efd5bce9f217","signature":"79595033604ac169448461d7371bb79abff9c522ded3101c629249ac2d44f486"},{"version":"ab8583b84ec3374e8f373243086e614689f0b3558dcc0d46bcab5e87c819eeb0","signature":"5b7887ae3c98c0325422ddfd857566abcc96752c11c6e5a6d1961bef330b7676"},{"version":"03ab226323b4c542fe0d9701c0306196239dd5277bc4e63aacd3d8d804a3a2a6","signature":"49e2cf2ef33a42c094abc82aa5344e3506d3843637d748b50c581ead77a36d6f"},{"version":"f0386c9b6afd7a13ee65cd70054f7ae2c3880f537d7374603943dedce2dbfeed","signature":"ef02aefab55e48be91d7b0a51089dc874ff9bdef7fdecd47d4b0b8578325098b"},{"version":"981b479b8d9c4b601ecca190b1daf605f2c3ac71a6a2b79f8735e8f3462607bb","signature":"b1e82efbedf562a6ef7b7f5da47acc1cd2a00577258d5f484f935d702cb8a2b3"},{"version":"a3a9d5742ef909668627cebc3d1015a52f2bad82c0753afa4356f8e0e84cae6d","signature":"40eb508d66c06150f3ab576082189cc2ac348ea1c6043b8662812e1289445523"},{"version":"38d41e008a795cd17529fddc2623e063d32cf7ec976a441fda720f2d20c2f88a","impliedFormat":99},{"version":"91407743d47699adac8c5d7b98886e2557c7ba96c28a0271b186b02acb44c175","impliedFormat":99},{"version":"8b57396f46911d904aadc7eaa47ef54e83880ff2b78052ffe2f81b184f47a36f","signature":"61ed765f05edb47c8df2954354ddda71dd8db974b66e504f0ff1bcf18a4e9eb5"},{"version":"90dc6d5b12dcad3bae4894e97cb5114aad22edbc594ad4c209a152f8e53cc44d","signature":"602d69063fd721a3da0bb5430d4c3d47042bec45fa619e313103e468988e41b9"},{"version":"41a3c233eaf120c47c05501d5eadc56948203af00403838bf74a722ed028a313","impliedFormat":99},{"version":"3670561369ca68a09d52476b583259506a7fb405f8766a1be016d92a795425df","impliedFormat":99},{"version":"c18e72b043d29d83286b33917b380ea78dc695fd31e2834e17133a17539a94bb","impliedFormat":99},{"version":"24f97620d161b9c421246ba30172522e00cb21524f8ece75e275cdf30e22eab5","impliedFormat":99},{"version":"43a1c4c14c1d87ddfeec20e9b044c69db6da86fe868ca8833b8ab5c81b326c68","impliedFormat":99},{"version":"a5a72c4adbbbd805860d5c2b847e25b45b3a6dcbdf471cda1e206c7c4e9f6bd6","impliedFormat":99},{"version":"acca062f4ecb504ba5a1a479b3c2ffb2a6957925f83ac7efdb0b0aba11aefa1c","impliedFormat":99},{"version":"72daabbd93e93b80aa2de51f9e039cf7fcff47c51a9154425cc6a902c3522959","impliedFormat":99},{"version":"2099dbc466f37ac4364a71360471f844929db80aaf41629b260852f075b7e95f","impliedFormat":99},{"version":"38d63c3e7dff35365e72859b041a09b0ba3507e1fb10198c64b2fa31c1f4c6ae","impliedFormat":99},{"version":"24397529aec71e82a879b881f6179fbafb23fdce7aab0de18d4eae73d77d32e8","impliedFormat":99},{"version":"e0e20dda0bb709540cea318a9cec834ad4e8529f2f53234a23094343efc8b19e","impliedFormat":99},{"version":"758359ab39eb58fdc1340f5ddb5743b9bd5f7f5f37d58202b01a0de2fa6e38bf","impliedFormat":99},{"version":"e9cd6b1c0f5b49e2771e96ddcba10cab43d9df34c80bb6ed5a5fd31462cf23c9","impliedFormat":99},{"version":"bb573d0b9de06c261a63b6697dc6148421794a51566690b36af5e616962aa980","impliedFormat":99},{"version":"c9f2ebfd4bdc356a24c0a659efc9ab4832a246fff1cd713729e3997740efb57a","impliedFormat":99},{"version":"0630f136ee5704beb9e4c905abe59ee8cf3feddbf26d9fd0d7d9c226082aafef","impliedFormat":99},{"version":"585638c97811f86301c6396518f349e4f692c7b66e9946a794a828483c804ad6","impliedFormat":99},{"version":"1bf1fcf895db1e2a2221a75cbad91ba1cdf654c0e73018398453f127eb14682a","impliedFormat":99},{"version":"92274791f9af7731fd88b2ded67cd684099f2d268238fe2c099924c6952dc3b6","impliedFormat":99},{"version":"523101fd85530559aa9f0175a8c6ce1d3a80ef2234ebdd13d64d6b81361e929a","impliedFormat":99},{"version":"8685357eaac6a23e2c808cbfe4f73d2454f65c54acadea1579ab4b5755e6b6b3","impliedFormat":99},{"version":"1a0cc12da0de949c4dc73aecd3c3896285f0c1af51a663655e6b71a6130c3e82","impliedFormat":99},{"version":"04004ba4ff682db11df64bf5d5cb1c09616cae3c424e41d18b00bc14ac4f7b6a","impliedFormat":99},{"version":"d95236c56f7f89c2ca50b0573fbdc889609dc87efbf09fa57fcfc2daddfcbf3e","impliedFormat":99},{"version":"8090920245b6bb972deed05e9592ca886a017701fde5aa9e4559714863586823","impliedFormat":99},{"version":"cbbb0bd07f4c7491d2f9af50699a8ec2b22351636335e6275e037ddda7eba7b2","impliedFormat":99},{"version":"61f43d11b4e1548c0197bf72094864d16dedc43371f92c07c44de83473e6369e","impliedFormat":99},{"version":"4d54b2df904582f2b7fdc63a7ea3e0196b74f96cfc72a524770f7a8ba1172d05","impliedFormat":99},{"version":"1a46550a0d8f494566e69a915451468338f1a3331e3ac4afbb52bf0d52bcd647","impliedFormat":99},{"version":"f0d2acb0f37fc5fcf4829220a88bc0e3b5fc8f6d4fd18c30e960c4c31d0998f9","impliedFormat":99},{"version":"62468010f26e1398fa8d2c787a24b1920264497f70b1291697170d51e8c93d15","impliedFormat":99},{"version":"ee40b5746f4aea666abdc84469686077cbb0b1f9e128ca15c7c2f6318fd2faf2","impliedFormat":99},{"version":"11a4440d50d17aae2021ed56bd723619d2f3526966b66b8ee71f99f90aee001b","impliedFormat":99},{"version":"0e7444c2c5c62592662463f953ac5e51f7f7fa02730704e76494bd35659621a1","impliedFormat":99},{"version":"526703c640b52e2a6e362f03dc3c2edc21649a3ca73503d2848ff6f124c2456e","impliedFormat":99},{"version":"5ddd6faa3ef0097ba3c0d64ef86021785d54aca62d672d60f7dac465e15630bb","impliedFormat":99},{"version":"c1f0e5b2a899399fa1788ab79f55b8908841a7dc01baaa8fbc9468fa1a705dc6","impliedFormat":99},{"version":"1f32b1d6620d7831af97596fe6cebc1d4796d65b16592fb6ed542bf2aa580dbe","impliedFormat":99},{"version":"887f38bd46cd7bd27122853c6a3a3f19f93de4138d345bc01f25d97702afb856","impliedFormat":99},{"version":"e95243b24b3a9f410886c29e4a6f05b9174257e0da0151e742f73f65fffe6860","impliedFormat":99},{"version":"606bf8ab190fea5213f45fa8d187f232f5ede10db66c4d2640e466b1eb010723","impliedFormat":99},{"version":"ec66f21c2debd53c8dc23034359ef14fb315cbf911a1c2268af7fd2c61d05538","impliedFormat":99},{"version":"87a87fe8dc65ebaf5d1f296fca81a3a7b02d99d9955dbbd240a6150052c0aafe","impliedFormat":99},{"version":"88cea16c4f051deba1578741810dde95361a3f3d6198829eee1c7aa3b27f5602","impliedFormat":99},{"version":"2f1207758095b2af21b93256eb916a8e3ad916d259c0f8f2bb212b7f00700eb4","impliedFormat":99},{"version":"a5e9081741bf85356d256b96ed191a407e674733ba3c634ff36b2c5498789337","impliedFormat":99},{"version":"0da2fc8007d5d7cba3fe5c9db6a3517e1253409397686f218f7bc780706eb30b","impliedFormat":99},{"version":"b49949a16a4cbe1bca5a73e165f5d46431cb37040f4558df54d50df429c2c38f","impliedFormat":99},{"version":"19b0f0727865e775d21de405d2700c3196f6621bfa619c8c73ef1e1ad964ff55","impliedFormat":99},{"version":"40525b8ec87e8e63e18975722a0f02313942962162fad09caa212f6858effba9","impliedFormat":99},{"version":"cd0e5287f17e1eb6527b1e8b9a706a27e3cbe77f9926430c083fe908a89e2cdd","impliedFormat":99},{"version":"9aacfa9c2cca9598ea4ab8168f77629258e3349292ef281beb8be4948d18228a","impliedFormat":99},{"version":"a3db855047aca46f97fc3b4208b5032ffca77a88985a5e377e85807ecf90bb33","impliedFormat":99},{"version":"e6dbac9ac42976ad196b59756bb60b6588e582307d8c75a4e7971e42e455572b","impliedFormat":99},{"version":"644df01317e55aa6b46b8f3c3c5f9f90eb4947c23dd059bba22d78625005bbfd","impliedFormat":99},{"version":"76a7523ee41103396246de53afb3e103abb7532991de1f3f8fa8384a605ad611","impliedFormat":99},{"version":"1cbcef88c4eecb1de19882fe26349a5cfd44f7b3d5eeaa77f2d0926767cf4495","impliedFormat":99},{"version":"5241e12bc1969d2e0afc0ce91f2da1fc76017ea4e7564b0395f6b8ce35f60d97","impliedFormat":99},{"version":"279ed1bfa8cf4829fbd653c446d786ac5e2a0cef055fe017deabd3076a6fce49","impliedFormat":99},{"version":"bdc8be81152eedd261b069237d84bfdfdd9b5d998a89a3133c8590001df12b6f","impliedFormat":99},{"version":"d308a5d41f15e3a15443ac397c007bd251f4aa046fe4df96db55730b186225c6","impliedFormat":99},{"version":"471d7a10e4396aa877d9cd6292967c95dbfd07fbf62742df615ade1b09e8b435","impliedFormat":99},{"version":"a2a48a2515b88aee6190fa34e149e084ddeb4e9412217ae86fe2949701a835a5","impliedFormat":99},{"version":"8c4a3b1dce4fe45431ca488e303b4d44e4ad66c18eaba9bb3fa6512f4b642a53","impliedFormat":99},{"version":"cba1b57ba0b082720cec477229bcf0d1b701d6a5e3df9d7167e8010bdac15508","impliedFormat":99},{"version":"cfc0c66f91c2c6f41fdc59a658e6e01698c17c13b447911dccc9074167671ee6","impliedFormat":99},{"version":"947ce55683a307873d47ff95a503036b70beb5fed68e4c10dc219faf8ca8b530","impliedFormat":99},{"version":"f0c625c44dcd9eae0094c138637c7e4e333782574df09903050d8dcac006053d","impliedFormat":99},{"version":"d453aa5944b07ef8d739296d9547df75c19a665f0b17ea085640ef9f02caced3","impliedFormat":99},{"version":"e14025e566058d9fd7d9baae9c937a9ad5220ddb87ffb250583b95a85d4d527f","impliedFormat":99},{"version":"0143111a64deefba83c688e35d9b81b6c2688c0323831c411c4fdfba72220b6b","impliedFormat":99},{"version":"9b02af01eaed2a35b94ffd191a27659a70dbe4b9ffb369d8d791c3070eecd3d4","impliedFormat":99},{"version":"adfa5d8d9788fd85749e849cb15277b46a1306c117b4dd73eaa4e35586b67e62","impliedFormat":99},{"version":"c9386c27a10b6a607d8583dd0cc0cbb8dbb5e18e4e0eb3f85f9a45baa9671546","impliedFormat":99},{"version":"a3d092ee18c11b913571df6019a224bbd07ab14830accfa31558598852a7afe0","impliedFormat":99},{"version":"30bdf14c7ed60f3a3d9998fc862800b636afd861089aef669c49266576d5f78c","impliedFormat":99},{"version":"bb3caf11814f7265729f580f52f463d6ffb6b755d9bbe8d4aeb9848c5fef26fd","impliedFormat":99},{"version":"cb9f1584cfdb5f4b9fdf0b838cc2872f0cde4dd7ec6345fd99264ed0bf71831b","impliedFormat":99},{"version":"2454f5d5b0a053c9e65f62bc73905e86e5dc113d86aace26fbea1e74902bcc0a","impliedFormat":99},{"version":"9d5a231dc0db79e4c0381581956d35750956c067812867e3f9d379b9b43248d8","impliedFormat":99},{"version":"378885d39de12f15e3960dbe68916154a6c8dcbdff72df5d09b2b504a9a65565","impliedFormat":99},{"version":"8ff9ad3a9f35597251c664432033f5f9db25a71b887bb7c5f3111fd57755f32b","impliedFormat":99},{"version":"d91b2cf7b3baa8302d63038d8612b1aab48efcc0bf5f9b11d3bdba358b365308","impliedFormat":99},{"version":"59274bbf27983be9810f88969e30c1899cef2f07e2ad37a17aad504466cb6cd7","impliedFormat":99},{"version":"0ea47f42ee816b289fd31ae2dd431203439392f34949180847e910d1f236df5d","impliedFormat":99},{"version":"7f4b0d988fffac25e8b99d53344e6cae20da15912496a892dc113d98982be6f5","impliedFormat":99},{"version":"446401e1e324921d25439a67f39b2356fc78c4f0e0aef23666379d84e9cf89f0","impliedFormat":99},{"version":"3886d0501785ef1a7139fd5360758c4e06fb370768e7abdcb7701dd89ee2c0b5","impliedFormat":99},{"version":"da36e84c3469c725c3f95c88922e3a9a38d75bbc9b5235711b3882609b7bb690","impliedFormat":99},{"version":"fb2331578931cd9b4a074dad8f761f5d7bf4ffe4be1cf42168de580871f81676","impliedFormat":99},{"version":"13445ea5f883f11166f5c1bb7d10f9fb602ca04c8ba37f1fce541b99dbafa440","impliedFormat":99},{"version":"4e69f563abc4910a81f9bd9ba16eab762ad94f1805aaaaa356780fb44d2013e5","impliedFormat":99},{"version":"729f5bda320a664a3b427633d4608fb2de329a54c0c9126cf37bdef529770c98","impliedFormat":99},{"version":"4eed6be4e1f8c3b30b53760af31120d3cefd981a23c94af3c2f33b13ebb6d88d","impliedFormat":99},{"version":"3f2b7367ee831669c773edce5547bcad1159e045f4983c0cbb1acac86d5b5cae","impliedFormat":99},{"version":"ecf6628b6de4ab2097eeb61d810a8e8f83b2f32cbb25aeea3f3e02aa87b4db50","impliedFormat":99},{"version":"b5c1a561b4510dd597fef4380a16e642d6ef3cce51610f0a10fa551ef21633f4","impliedFormat":99},{"version":"bef6e54976d3bc274ef623cc52c323228df7e71a18d7efb8b8326bfe841a8662","impliedFormat":99},{"version":"a112b882bace2440d365474987e0d62657ec0b05821cfa11c5bb69bc51b62634","impliedFormat":99},{"version":"36d2861063b4466b217118725f63fda2001067bfed6407057567d41560c8850f","impliedFormat":99},{"version":"bbc65478104dc679951ff2988d1fdecbd066a9c6ab469eb5b994ea271b7fb724","impliedFormat":99},{"version":"9438e581b06ebf30041297db2ecb993e732b897e29f653eea7719e7904758e93","impliedFormat":99},{"version":"4c413d48eff8f50b8b3f361f231f07707241174eda70dcdff163626dd412e363","impliedFormat":99},{"version":"445653b1ccbbf22009cad4953757fb810f65d313e60526be256665dbffc76a93","impliedFormat":99},{"version":"9cfb34e97729d62aa06bd1f237ec107ea08f7d99874fec5842b4c40ac3767f29","impliedFormat":99},{"version":"358f53870afb50137b0febe4dce1c5e1875553cbd1dfbd59c911d8757d751459","impliedFormat":99},{"version":"5fafb533b24b3cc866b94153881b79815b0cff20969b1b132d266669b6faeff9","impliedFormat":99},{"version":"36cc6e9ec80b9f87389af9dcbffe3554766ebc0eef19eb832c35d3b2b57fa4b7","impliedFormat":99},{"version":"57dcc891c7ce218c3367b8919f93111274361caa23ddf631f6728eb4b69c73b9","impliedFormat":99},{"version":"250c818258ee810d6686d71c3e742803a3cb366064174ab47804921152807c2d","impliedFormat":99},{"version":"0176e8839a101f835597b1ba38e64b2ce7efe98ed63ba893d37968757171c04d","impliedFormat":99},{"version":"aff778492d364e97e647357629660027281eee4ff87761e73cf6d536bc703456","impliedFormat":99},{"version":"90dd653f3958e52ec5e566299e000bc9d4469b0faa40e32931f90d20eb5483df","impliedFormat":99},{"version":"c4272a849d65ce90763bedc02ad31ba374aab2b542d69fe7c79da2c689241678","impliedFormat":99},{"version":"24f01c4507f2c5527b8fe1cbaf25d3439304c503b1825fe0340e06ba319ea1e7","impliedFormat":99},{"version":"072f8a0ccdcb05fc0ef047ab63e057e723caa7b60d193cf0922ef86e42205a52","impliedFormat":99},{"version":"077dceca4e374e246b03df8e185408f22d317ce1b33db22c0cec9a59b5753e7d","impliedFormat":99},{"version":"99d37f9ff252cacfddd4744f3d1f736fbe733b762c6de6dd1d48059ba46beb4f","impliedFormat":99},{"version":"ad61b1b1341264580b5eee0e6e8f107cc1ee47675bf4476f4a05d28b8440b8d6","impliedFormat":99},{"version":"d783a003c0c534585704f16f435ad66185d32fd90fefdd60db3a60da6659336f","impliedFormat":99},{"version":"1f8b4a56d208e8d44879dc87bfc23e37a8d6282f3873b785c87559a2fdcfb5ff","impliedFormat":99},{"version":"5c5602a73d94e9f230a13aa4e20758ed7126f107187c70e4375aef40f6731b56","impliedFormat":99},{"version":"fe3dd75e8dea26d91ab4b5996d38f63994297e955d5060035c35cdea5c4637ac","impliedFormat":99},{"version":"4a5f2bff495d0276b6635d90ac177c0364a67b4fe0399cca1dbf4b4da7d770a3","impliedFormat":99},{"version":"b3bfeaa99d47de0a2acde802241b587d4ce8e3fda00c2d82d11ae63bfa1bd292","impliedFormat":99},{"version":"6d1d185a1db2bc415994b4256a5e62515869add07e7818070ead666168719dea","signature":"028baa65b32f4e285d499dcc7f1277424d731f86f2dd63e8bc9a378858b55839"},{"version":"84e355331be36b794c48e777caafb35afd40a56928d8f3092898fbca149495dc","signature":"cb73bb30cfd3e285e8ad5d9b27c43067a636f4cb82d7a2737ade85ea81d23d2f"},{"version":"324f8860d76fadff9939e31f46ec649efb841446c0199d17ccbd82799d7770b4","signature":"c935537b8d7a55870a339fba8c8317bfa5ba6635e9fcf152f6821724e0ede8b7"},{"version":"c9beadb45ad904ebd3ec1ed112c523828ac9df0171de7a8e1dc4f1d963ef233f","signature":"271d39e82290269846a9d48c6632bf452c85733c9b63d795a94af2ad99c2f565"},{"version":"86a871bbc3bd89cd5f58a5f27fea40ced742d47dd75b4c2d1e258fef3abe2f97","signature":"2768868b308e0bc8124ed7a3815bc7cd68af01d3081e2f49813b5f2a56c492d1"},{"version":"ab4b81fb87b400abe57962ce107cb6b84dfc18d487651745c61910e3c4b4fb73","signature":"093f39c4226cacf0c8b7681419330b3f0838aee56efa5a226d9b23fff24bf105"},{"version":"76b696eb4559199439db04652837e158577b904a03e87692962118928490361e","signature":"ccedbfa657c9e51d4473fcbf080dedcb0c3bc7c78b7d4c31804eace72847a410"},{"version":"abf70f24768cf5e9bb78e45d91e302f51cb18149d436aa2362a3baef5a8beef3","signature":"02d51df70bb92c9090062774118e617480e2cbc8066208068907e00298d0152f"},{"version":"09c80ef840f4b7d31eaf1360dec8404db9976e4a48a3f5293bfe7590cfe6ea80","signature":"10462d3c80d5a3e8570d87f31ce10c1767b67c4e63bf4980a2805b36c1a73d39"},{"version":"7ca5dcede3e372947ce0112245be4f982ab0a1c69eeb40f80467a0e3246a8218","signature":"3320a8f8ccd6d4ad2c8b89e3be7297661beb2c796ea2bb1995f27ef8008fbfb8"},{"version":"42bd37579e6500a66958e0b00e2fffe50e41cffcbde0a5aaad0527efde5f9d4b","signature":"d7c1b98a2382d6fa3ca3ebcd8a157f2a428129bfb362fc7c909bed43a4d198b6"},{"version":"7dc248bfac1a29ee5a3c9a5c7d176fb11fa8b040b3b9fab350690fda029771cf","signature":"4109e8e7f7f80b7091f21f9f3ba27c594f67db0368e1331dd1bf6308a1b1daa7"},{"version":"024829c0b317972acf4f871bf701525f81896ad74015f1a52d46ae6036205cb9","impliedFormat":99},{"version":"a9373d52584b48809ffd61d74f5b3dfd127da846e3c4ee3c415560386df3994b","impliedFormat":99},{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"0943a6e4e026d0de8a4969ee975a7283e0627bf41aa4635d8502f6f24365ac9b","impliedFormat":99},{"version":"1461efc4aefd3e999244f238f59c9b9753a7e3dfede923ebe2b4a11d6e13a0d0","impliedFormat":99},{"version":"7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79","impliedFormat":99},{"version":"8dd450de6d756cee0761f277c6dc58b0b5a66b8c274b980949318b8cad26d712","impliedFormat":99},{"version":"904d6ad970b6bd825449480488a73d9b98432357ab38cf8d31ffd651ae376ff5","impliedFormat":99},{"version":"dfcf16e716338e9fe8cf790ac7756f61c85b83b699861df970661e97bf482692","impliedFormat":99},{"version":"31c30cc54e8c3da37c8e2e40e5658471f65915df22d348990d1601901e8c9ff3","impliedFormat":99},{"version":"36d8011f1437aecf0e6e88677d933e4fb3403557f086f4ac00c5a4cb6d028ac2","impliedFormat":99},{"version":"8085954ba165e611c6230596078063627f3656fed3fb68ad1e36a414c4d7599a","impliedFormat":99},{"version":"2c57db2bf2dbd9e8ef4853be7257d62a1cb72845f7b976bb4ee827d362675f96","impliedFormat":99},{"version":"6b5f886fe41e2e767168e491fe6048398ed6439d44e006d9f51cc31265f08978","impliedFormat":99},{"version":"56a87e37f91f5625eb7d5f8394904f3f1e2a90fb08f347161dc94f1ae586bdd0","impliedFormat":99},{"version":"6b863463764ae572b9ada405bf77aac37b5e5089a3ab420d0862e4471051393b","impliedFormat":99},{"version":"68b6a7501a56babd7bcd840e0d638ee7ec582f1e70b3c36ebf32e5e5836913c8","impliedFormat":99},{"version":"89783bd45ab35df55203b522f8271500189c3526976af533a599a86caaf31362","impliedFormat":99},{"version":"6da2e0928bdab05861abc4e4abebea0c7cf0b67e25374ba35a94df2269563dd8","impliedFormat":99},{"version":"e7b00bec016013bcde74268d837a8b57173951add2b23c8fd12ffe57f204d88f","impliedFormat":99},{"version":"26e6c521a290630ea31f0205a46a87cab35faac96e2b30606f37bae7bcda4f9d","impliedFormat":99},{"version":"71acd198e19fa38447a3cbc5c33f2f5a719d933fccf314aaff0e8b0593271324","impliedFormat":99},{"version":"044047026c70439867589d8596ffe417b56158a1f054034f590166dd793b676b","impliedFormat":99},{"version":"89ad9a4e8044299f356f38879a1c2176bc60c997519b442c92cc5a70b731a360","impliedFormat":99},{"version":"fd4f58cd6b5fc8ce8af0d04bfef5142f15c4bafaac9a9899c6daa056f10bb517","impliedFormat":99},{"version":"2a00cea77767cb26393ee6f972fd32941249a0d65b246bfcb20a780a2b919a21","impliedFormat":99},{"version":"440cb5b34e06fabe3dcb13a3f77b98d771bf696857c8e97ce170b4f345f8a26b","impliedFormat":99},{"version":"5bc7f0946c94e23765bd1b8f62dc3ab65d7716285ca7cf45609f57777ddb436f","impliedFormat":99},{"version":"7d5a5e603a68faea3d978630a84cacad7668f11e14164c4dd10224fa1e210f56","impliedFormat":99},{"version":"2535fc1a5fe64892783ff8f61321b181c24f824e688a4a05ae738da33466605b","impliedFormat":99},{"version":"cbfd5ef0c8fdb4983202252b5f5758a579f4500edc3b9ad413da60cffb5c3564","impliedFormat":99},{"version":"9f7a3c434912fd3feb87af4aabdf0d1b614152ecb5e7b2aa1fff3429879cdd51","impliedFormat":99},{"version":"99d1a601593495371e798da1850b52877bf63d0678f15722d5f048e404f002e4","impliedFormat":99},{"version":"1179ef8174e0e4a09d35576199df04803b1db17c0fb35b9326442884bc0b0cce","impliedFormat":99},{"version":"9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159","impliedFormat":99},{"version":"cc3738ba01d9af5ba1206a313896837ff8779791afcd9869e582783550f17f38","impliedFormat":99},{"version":"a80ec72f5e178862476deaeed532c305bdfcd3627014ae7ac2901356d794fc93","impliedFormat":99},{"version":"4a5aa16151dbec524bb043a5cbce2c3fec75957d175475c115a953aca53999a9","impliedFormat":99},{"version":"7a14bf21ae8a29d64c42173c08f026928daf418bed1b97b37ac4bb2aa197b89b","impliedFormat":99},{"version":"c5013d60cbff572255ccc87c314c39e198c8cc6c5aa7855db7a21b79e06a510f","impliedFormat":99},{"version":"69ec8d900cfec3d40e50490fedbbea5c1b49d32c38adbc236e73a3b8978c0b11","impliedFormat":99},{"version":"7fd629484ba6772b686885b443914655089246f75a13dd685845d0abae337671","impliedFormat":99},{"version":"13dcccb62e8537329ac0448f088ab16fe5b0bbed71e56906d28d202072759804","impliedFormat":99},{"version":"233267a4a036c64aee95f66a0d31e3e0ef048cccc57dd66f9cf87582b38691e4","impliedFormat":99},{"version":"ccb9fbe369885d02cf6c2b2948fb5060451565d37b04356bbe753807f98e0682","impliedFormat":99},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},{"version":"b613cee05aa862b1004d8eef06ee56649e8a628b8ba2452ce42ca778d34ee363","signature":"c2b32082ae6fa2fbf67c6e5b69d762ffae35158ed2901b5d16da1e5351fcf735"},{"version":"6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0","impliedFormat":1},{"version":"44433e18e092339f0f547578cf8da911c99ef9f1ac31cf14c6ab8d05891508ee","signature":"28146598b49f0e770cb4e9a3056d14a8962816c7c8d9031fc36995f65d73f452"},{"version":"9780540210ec95e12504069cc1504296c636d193524f4bbc79e99dddacea69c9","signature":"0a5a9f14c5cf8c76f560e44248244813b1ebbea85f58b3bfacc20e61aabd1327"},{"version":"d04f947114fa00a20ee3c3182bb2863c30869df93293cc673f200defadbd69d9","impliedFormat":1},{"version":"4c629a21fb1b4f2428660f662d5fef6282e359d369f9e5ec5fd6ac197c1906ee","impliedFormat":1},{"version":"785926dee839d0b3f5e479615d5653d77f6a9ef8aa4eea5bbdce2703c860b254","impliedFormat":1},{"version":"66d5c68894bb2975727cd550b53cd6f9d99f7cb77cb0cbecdd4af1c9332b01dd","impliedFormat":1},{"version":"cf62a7edc0f8e389ef165baf6d664cc20eb272de3e5ce056064031ffb0c452f0","impliedFormat":1},{"version":"c991b4ab8278b08f73510d383ae74a9df03a876ba4aa66efa9d87d0bfdbf486b","impliedFormat":1},{"version":"232b55f1b20b63510304141f6c727f30d9e5bcaa0dbc7ca314d3433ae17e66ce","signature":"1043c497f77ed2451a49a4fde80a171b375ea0bc554ac33d929ae2858abba968"},{"version":"e15fd514d3cd04d013dee2da6552007114cd17534c053cd518fade984092e375","signature":"f928b250f56464d321a512ae80ae9a9cdbeec853f3c93f672f426e42d4a64059"},{"version":"65caacfa38aa1a1d355fa23afdfe3348e02d5afea3f9d420d1bf1244d742c535","signature":"edcfbd6f6493084dda84c63c9417cb1d416590b50a6400ef376380dd4b368cf6"},{"version":"cd022c5a34f9de91d8130b4a7ff9600fa17f3129e7b68eb27e8bac396da94e27","signature":"843330ee2523524ab81205761189fbda4045934773deaac8304a653a89c2b26a"},{"version":"afb5c44616d15e04c44ac6ee0abdb32983c1134a5dd3827f1bc701d73fb6199b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"f5705d196b442afbdbd971b6e44bad96f4e32afb53cebfa2e5afe3140017bfc6","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"65cbb4a386921bfc89c179edd252af3111ef3b2bf1ed31cdf9c6971753ab284b","signature":"cf48fd24ed6fedc83571c12f4b61772768d19072695ea29872ce333a83b223a6"},{"version":"f16bd9ebe1b8bc63cf0b20b452d54036e7aa8e53ff70020d3fd2e9fe31fa77e0","signature":"325cb56ac5a8ae580ae4ad38545f301d38be5af6e06df0932d26143614b46545"},{"version":"a59526ebfcf02aa335eeef4d7c5ef4ee4ef47f8a702fec5efd22bcf34ca6c05a","signature":"0bc39dc388297e2ce321bbcc9f75407e1afa56a456c14a5deb533c1f6683ee2b"},{"version":"1a9394db306975810471381adabb6e56e9303ee877ada9a231566346a548b2ba","signature":"a4cf55cf0916b2b5b71bc055a596154bc44faf5b4e1f2dcf383cbc03fc4079be"},{"version":"7b3da78fdd3146c85afc94d1237b5ae56472bc48fca17a7502317c183f603118","signature":"33e8cebeb0e9014cddffb1bd6967251edca2c0e6f4b4607ffd054f0f757eb3c6"},{"version":"9e6a0cfebc97aa1f9b7bf2557382ef9f2ecfa91baf2dc5d52d114a6915237205","signature":"9e2b7a970acb37795476eb2e0e6ef9397c03a82abbba1e0bce24e23879279d0e"},{"version":"b64fe8de7ecadcc5b77a2bfb05979f07f687c4ceb371bbea04c63fb29e6e44ca","signature":"70b276f94971173c963d21dcf14c41aa82c0466373cda35f0dcffda72aac78ac"},{"version":"8c7da38e08e4ee7812e78c92b2df464c14df622bea24a30484f1b332a0e79779","signature":"c71f02f55f1f534aa71a54a16e930d47ca35aa9699ae7fe40d0b0024c35b201a"},{"version":"1c8dba38cd2f0b450dea3cbd776b5230436673e3933d21b7e89223ae7964d498","signature":"69cf45f0e77e26059c62a166ef6ca55c4f2c4cd9b4f766efb0eff62d5fcb4a67"},{"version":"e11e18d5b8d1a6fb1cc6eea0bb3fe8676a5b2cf716036feea8b4fff336ca6640","signature":"8fc67ddd42c820c7ce9d330fd429fbf2da5362b5424f80c2a5f3244f5f50f6c5"},{"version":"d71968ed1142146cb1381833baf1f5aa6556e00397af4f1eaccddb35662be6f9","signature":"801e74ce17d94e107be303c816254216fb816277b7d4c584e9f910be669fe0f6"},{"version":"108f68b95944ae7d83b4d099e3f04ec7cb3245e2c1e1caaf2cf642a5097d44d7","signature":"741b040c5ed3e80597053f0472b1cfa6e5f3e6fbbc5961d182327585f5769ee4"},{"version":"5cc035b7c8cd0c6b0c0a7c2e68e54c0e084982b41ba448fe856287682d3b50d0","signature":"6ce028076d966ca2177da2af76b859abc1a6a1f5252ddd2831d3668b81af8095"},{"version":"a81a0eea036dd60a2c2edc52466bb2853bef379c3b9de327fe9fff6e3c38e6c5","impliedFormat":1},{"version":"348c13a1c9160681e41bc5cd3cc519dd8170d38a36a30480b41849f60f5bf8a0","impliedFormat":1},{"version":"c772a37a02356897d6f9872e30fcc2108f43ad943cc112bd1acc5415a876e9f8","impliedFormat":1},{"version":"279248c34ecd223fc46224f86384ebf49c775eb69329ad644d3d99f1205f3e7d","impliedFormat":1},{"version":"74dedffc2d09627f5a4de02bbd7eedf634938c13c2cc4e92f0b4135573432783","impliedFormat":1},{"version":"1f2bbbe38d5e536607b385f04c3d2cbf1e678c5ded7e8c5871ad8ae91ef33c3d","impliedFormat":1},{"version":"3aa3513d5e13d028202e788d763f021d2d113bd673087b42a2606ab50345492d","impliedFormat":1},{"version":"f012173d64d0579875aa60405de21ad379af7971b93bf46bee23acc5fa2b76a4","impliedFormat":1},{"version":"dcf5dc3ce399d472929c170de58422b549130dd540531623c830aaaaf3dd5f93","impliedFormat":1},{"version":"ec35f1490510239b89c745c948007c5dd00a8dca0861a836dcf0db5360679a2d","impliedFormat":1},{"version":"32868e4ec9b6bd4b1d96d24611343404b3a0a37064a7ac514b1d66b48325a911","impliedFormat":1},{"version":"4bbea07f21ff84bf3ceeb218b5a8c367c6e0f08014d3fd09e457d2ffb2826b9c","impliedFormat":1},{"version":"873a07dbeb0f8a3018791d245c0cf10c3289c8f7162cdbbb4a5b9cf723136185","impliedFormat":1},{"version":"43839af7f24edbd4b4e42e861eb7c0d85d80ec497095bb5002c93b451e9fcf88","impliedFormat":1},{"version":"54a7ee56aadecbe8126744f7787f54f79d1e110adab8fe7026ad83a9681f136a","impliedFormat":1},{"version":"6333c727ee2b79cdab55e9e10971e59cbfee26c73dfb350972cfd97712fc2162","impliedFormat":1},{"version":"8743b4356e522c26dc37f20cde4bcdb5ebd0a71a3afe156e81c099db7f34621d","impliedFormat":1},{"version":"af3d97c3a0da9491841efc4e25585247aa76772b840dd279dbff714c69d3a1ec","impliedFormat":1},{"version":"d9ac50fe802967929467413a79631698b8d8f4f2dc692b207e509b6bb3a92524","impliedFormat":1},{"version":"34d017b29ca5107bf2832b992e4cee51ed497f074724a4b4a7b6386b7f8297c9","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"b646f38fe19c1d8fa72b4736b329cb3f035410547a9158304ed6020d9d858bc8","signature":"2e92e26a539957daa7a99cd7e4a54b576ab7acf9214997cf9461c0ef866a28b1"},{"version":"6771ef5fbe637e8134f7967dc1238a102d47c4565d55d8aaabaa504e33b883f8","signature":"55028774add71c8a553cf1bc62515f028ccd5a9014b467a3f83515750738070d"},{"version":"1a5c8052279d906e2d5abf2f866b126c1d702d199abe0b0171d9a111aa1bdb49","signature":"4f25ab40289e8e4900dad829c06b6aa102268cb39963790949426e6f6e5508de"},{"version":"17959bea1c07a02e960a6abb6dc2b76fee68b518f6768db33e3bf81211acc99f","signature":"5d5d6411d6a2c9a11baf2b820a2b3d1e37e9f696e9bf5d8f2ffd1fdf172d09c5"},{"version":"c956a8498035db49b3a351fe4f7da36c155ec15d27bb44802b8349ebfc34160a","signature":"370475cfabcb3b420f82852ce94d1a6c4e0ee2478a14f39829ff02bc79ceb028"},{"version":"61548add80e1cfe788b6fd3af8256c097ca0c3a033f861de5662ab0fc9b38d63","signature":"d870380b279ca88c89db97f332a61f051fbc5000b151348df9ace8e2d82bae5a"},{"version":"8a56ac7e11d465fe195cb981a4681b8f500ba0ccc0f2bd584dac6f977e21e9b2","signature":"940d21e60314f263ad5f38def86fa76e8f4eeb8396c0577e0efc3ae9640c5de6"},{"version":"8779ef6b9edb33882a85edaba150a0378a35ff83a888bc332d98f904e0013d51","signature":"de631aa7fd99a8c92707ef269142872004a344fc5cbb35df49aff4658f24b8d6"},{"version":"ee4c1779c27bd58ce25abdca52b5100fbac78f9758b81173428afeb3a06e2928","signature":"901f0d8f7518f1393dc9c80d42a6ea61c5545ec66e7f80a2f17e18833fc89f1a"},{"version":"5730df43d52be31ef007534b70b01b9d3864cba7a223d12c740be782cc8f491c","signature":"7b19c29db78da0b295d52145f5a8c8926bdbe05316cddd45bfa891b869f8089e"},{"version":"afcf96e118455a6b2e65649a2ef28aaa70f0593e693ec75c4ddd8b5a68fadf86","signature":"15f9aa32f0d88edba00004aee54bc55cc0c79da615a6897fc1c63aa516d2fd5b"},{"version":"e10dc6606dec33ddbf49dfb311584fed48258387d4fdc63e2e3099cf3316bc90","signature":"b7826d3f1e7ea2dab860430e9c8ed3d00bdf4465279e957a18bbd404dadc3e31"},{"version":"a950e6602a8b89e221c6696eadd96f1f969d4927c7cd2a8686c664937a291c3c","signature":"ee2856fbc955acbffcc7b08698e5c846a6bbaa1cef107e837100fefdee86299b"},{"version":"7697b5c79fa763b9a27bc7cd33791f81d22a8082a115d38ebd15acbfa954ba78","signature":"fbd698540e016f4ac0c526ec9d71c56347e36373598949562e2f8611bf2ef6eb"},{"version":"bc4b1b3cdcf612882f01cdc68299e2eeaf24e57cbaaa4e6be5474d982f8abc39","signature":"a57465dfce3296d955e0ee5cf4ffd7c9cf95529700125a74614362ed02aee4f5"},{"version":"b64e4e4b1f0c82f25711dd163b84529eca05fa9311670677788ee4e25d6ae005","signature":"eaefd466bec4201cc35417995f31553b8b01b52713d2d856ce7a89b0d92e7e37"},{"version":"1bc53509e1766094e7cbe702ed8820a43e89515a558393dcf273468dfe5babca","signature":"146557827b38b2916cfbefdad876a09388975ebea9ce4023ff7ab64e55ba94eb"},{"version":"2d2a3451d1801b39fde9df004af4d235fa5581ce7d6fa6ab49ff222fc2331eae","signature":"516fa9bdd584eb5dc7ddccef1bf5fcab29973583a34c9a25018aac29920c2023"},{"version":"0b3bbebf0c6a6b5121c9d62d1541113a9ac3db91cd0cc08e2d5705239c16b7c3","signature":"c070695728e82facd438241ae2bd7963f980e6642fbbc23339df02bb05d641ce"},{"version":"0690049208cbb56942c2ad7d2a8dba7b5a0b3803a18861aafe4c5f20d4e1c5f1","signature":"111b7ba046a51d89e2eb536b2d54dd60df204675889970500c566a17dd855dbb"},{"version":"d469338f1463107b33d01775bbc0384f039ef3dd4397ab3c27615f5e243a789f","signature":"525a83b8b4fb505f1e33510cf87d758332a650c79ec819cfc8a44720c9e11556"},{"version":"50eae0983a73214de9bc2d44a275ab7e923b176566a49228f63df7cc2c0dcb64","signature":"b4dff931f0e2b4206119572a07b76c108ffa97b224226119acfa94c74617b1d6"},{"version":"727fa6e475a80c9656269f9793b2ff6eb9ae6f3d7637953b1873c83a59001dea","signature":"b490d52317e53e8de4fd5f554239dc93dd1439e58884193f7e6a986454c6722f"},{"version":"b8270e7c94765534fdfc1e58f6df9ec20ba1eef17f3ebdb1aca06dc50ed6141c","signature":"ad1ac1e6c5b78655198b21dadb508c10092f2eec7e09e9e91728e3a825960f22"},{"version":"a5f4a153510f045c3647f047f2efa4b1506770008272a24fe83d2e6e5e916b18","signature":"449ec902da103543dabfc3d568c5c127a64aa822ffcbdc72e36d989a6c8d3479"},{"version":"aa6aca1b3d4c91707ff6cf9a5088887a8e611db8cf2c2b700f8e58f3be607036","signature":"a013754e9c9372195578014767d9daa25f3a37a2cac34b96228225fbf6ba5c86"},{"version":"7f0cc554e33de28f1bb9e734d161596169694e44e50b0d3d4e011be821134180","signature":"e919070751c17e6c6af648b3c864251cc3e2ef8edd29c3065601d14f7120237f"},{"version":"c9cbcb9de0930c02998a3a46b35c34a684ac54d76a9d3c8feeb9a5edfda3ffda","signature":"4380ba8dda48544e6b271c3b9bbc98802ab7962dad4e47e0e361d87b586df8fe"},{"version":"5720c3159e99ad7e8eb8940a735a8253696f1a7635e209fc2d9c833000ea066a","signature":"5cacd83cc14fc0247cb4c79054b88d800fd2115ebf75393ba8e3329d93573c77"},{"version":"3168c83114c392806aefd84d10f1f7938ed826c4f6769bd0510cddb31270f0c0","signature":"217b72dd3f5c861d2bd45ee2f49b367fdfa225a2ff48f68d09289ebd1d64d617"},{"version":"ccb5f1380c78822e662e4755fb68beb52373330cab2ccbc6714990a42f8c10c9","signature":"bd467a6429a4d7da9c2f4f7baede68cd94764288b0939d222899a14a312e7cec"},{"version":"9edcaa14e241f336ce11fbb13dfad933a5b2bf82dac5adb263dccfc40b890476","impliedFormat":99},{"version":"e3954ab905c6b7b87abd112e8f4c37865e63a7c3e0d089e2a533bd6614e254f2","impliedFormat":99},{"version":"0fb59682975069330ff1ae73ff3536dcd8b3f882d1f499eac023fd5ab22b4662","impliedFormat":99},{"version":"e7a4acd437c3e337f6580360cfe0827f00bfc94641ece1b7af4d5f75dfe4dbdf","impliedFormat":99},{"version":"e64b8b239623500a8d3d43f7b78146b9a9868c559208e603cc6e6199f854173c","impliedFormat":99},{"version":"983f2d62a5fea3f795daea5091142b1deb67ceed9699ea05b5ff0fa9c5722ac8","signature":"d192259e5653779c2dffc50750a2dd891a84e45600c0e9d4eac39eab47737c72"},{"version":"c94f4a3b60c4d56c74dd6f8acf30e452b2703e29f844b697e4f8d420467f1fa1","signature":"f72757c8bfed29b817c1b8ffbfb71499e7957d51a5a672e0624d3ca00b5c80a0"},{"version":"c02e0f4976b734922abb5d68a6c15e3f07e28d84923edfe5739ac3d83dc6405a","signature":"10f861596460a444575746d17a8decd0f63ab4e0c47a995b6dd0b9478ec8dc39"},{"version":"180b5b21b4eb741aa5f065cb983ef2ff8f71a76cb83db4d883020401e09e68df","signature":"2af0673e5797f13598119b43b457f475d32620b9e982c5fc77fcc1d448f95561"},{"version":"af5124076dbe7662b7cb42a8d2d82085205f50ee3ea1bb1983825e064a1f91f7","signature":"d2db95ce6280e925b5b1e91092ccb0ba1f26d82240ce4de17fb7bd14b9b1b8ae"},{"version":"16796d8369a31ed22940f2d5c6ebca441eb6f3970b628913c91b58aff2400dec","signature":"617021a8407f9e18085a76742a472110c990858f4f891c4757d5437464c65a42"},{"version":"14b1d491bea4d6f3ddf6aff63d2f9eb4292effb212338d802d1774aef384514e","signature":"1c7b96efc4934bf375c9532e425db9420b16e60c96d13e8360d5dc0aac1ac50c"},{"version":"f3fad80daae47a4793735e4cae9682e61aa810a6981c96ff9c53540ffe28d0d4","signature":"7fe4d763556414f26f9a105b5aee8559c924f0b994417a4a7e01bd3953cc7098"},{"version":"7cb11cf7ee462913efd70233b29240ae74537af4dcbe6e6ac2bded72b5c25ec7","signature":"c52e333daeb1d1e05ab0205d1b5e7b6ec23f6518d11b56cf0e5c8c69f3de6a27"},{"version":"c3ad67cca5d7ee10867e2ab3408da6680fbbbded54d6313c6107a824a80e63ec","signature":"24823b6d0199de6d6f4b6239435f8c19ef0d35ae2a7cf494d5261fe5ee90be88"},{"version":"f4adb3576376407d1f7a90f21c0d7ec0657b20c10d48239efa51f4562e0dd451","signature":"91947a6885a3f483787bf1c6dbc19ecc2d8976d26942701ac3ff1df939836ac2"},{"version":"cfe6ad7d453686c1a03915bf4926a4293fb7c055eb8e264be0093678eb7e7872","signature":"b035d9ebd86bead78b7681f4e0baddb98f7b3d6781477164cefae6658ed33b7a"},{"version":"e41a1b01a0e5f60cf974a577e964d72a98d48d7678a97ac7b8a4d72c5a9da4e8","signature":"34cad735b48de7b6a9c29ea0760fbf0cb638817af7064e7803fa7d748070d995"},{"version":"3ff992ef7f5cd48fb95d0a8f76e37a1a930c624c43d4e2de4e350e32efbc55f1","signature":"4b6ee5c7fc5778390685788b994fd66f38eecea26e84fefabb7fa1bef0cbe63f"},{"version":"4cac53e726832ba9f802152898bba71e67cce8b71cdf65b97645141eb119b017","signature":"50e6fdafd43addc7f683824647a0a138619ebc2fe750e79d0f2dea6127cf20c0"},{"version":"b9ba180528e0ea34555c1806009666d1410fbb903d9c83af9cb6f7f9529fb29f","signature":"0be0badd6525a1cf42d0812985ebd504bc3b946817197b0a0e3236fe14bf2e3f"},{"version":"fc47aaa9bc9770c09325dfe5079e2acdbaafd52f5034c77f86c9ce64afc88317","impliedFormat":1},{"version":"a776c6d004117c04952de1fe28ed3decd91e7f74f20ead15ecfff8398262d5ec","signature":"cc196972ba073ddf7ae15707bd8747040de3104e196ce1445bb2fac40ced6d85"},{"version":"fecaef0b025e03681adacd216eb0962745a29bdc3b4dc0dfb683b1d536a739d0","signature":"03937876f986bd3c80a25bcde9bedd562e736ad1e39980e12a294f368c0e2157"},{"version":"f7d3613e8996d7e152fa158df1fdbfaf2a994b351193d334d44de26d0eece1b7","signature":"15608aa80f70852d2f51d0a089639de08626a3ab6b49b27261bd045d595d6976"},{"version":"bfe27f03f05badcff7d5fa012a6bcde9d6ed38ffe799ac40a540851ed11d75dc","signature":"b633f945de6ba0936f71fac2077dd6dc3b01f3e8a6670ece054ebce1b3f50b22"},{"version":"570f4ba8501cceea1a57b6be7e47e08a86e1ba0b40aef5f571bdd11e2fbcdf71","signature":"9b0fc84934fe47863b2b614f2855a7aa0e88a38dc2cdb49f2c83983c615a5cb3"},{"version":"2ab06735fa97917a2bd36397e7f7526851f5dee5f21c7b357f7ac11f3f33dbd2","signature":"74f7141a41f4fb646176486a9bda7ad6ce22202a2c46afcb42a691fdc4261c15"},{"version":"2bb574c3d5031b16ea903d791d5064f1c4f4c7bc587672390afaa63a617a83bc","signature":"af84054c9bbd37500c026a1453c398ad1b002598c1e3adea687daa440a08933e"},{"version":"cc38192081a66abb7cb1bd2b22d6f351147e268c2a0f3e9619fdb646509d9d6c","signature":"ee8f7490d800ed0d3034d1323f59c9b3f84bc6eff75eab4659b22e0c24ed91d1"},{"version":"f0f4c585862bb04477dbeb71aa2df8364755565d8fbb78e52dd62be66b229628","signature":"62078e13c0629f619120e6439193760e66dab737560a7bbf73492b17e2b623e6"},{"version":"f8ce8be585eadd785d32dbe087cac8e96503c16004fa6b5ec5cb185805da46a1","signature":"0157a779263bb0ac1edfa28f73bebf5cde42617bd38bac8015e639eddd1a1a44"},{"version":"2cd9d1f20b53d8e2000d63b190d6a702415beadf54d2e8130006c9914bed3c53","signature":"dbcf12cbb3fc513eaa953a2382bda83342b82809560db86b3124269002ca4036"},{"version":"a4562fd63f900a3bba4e0931942781a0d59c2e6dc50f78a4e0433cd6cf796e8c","signature":"efe5302deed61111fa47beb030820be816ff03963bc6aa2b45ea2ed345a65915"},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"a510938c29a2e04183c801a340f0bbb5a0ae091651bd659214a8587d710ddfbb","impliedFormat":99},{"version":"07bcf85b52f652572fc2a7ec58e6de5dd4fcaf9bbc6f4706b124378cedcbb95c","impliedFormat":99},{"version":"4368a800522ca3dd131d3bbc05f2c46a8b7d612eefca41d5c2e5ac0428a45582","impliedFormat":99},{"version":"720e56f06175c21512bcaeed59a4d4173cd635ea7b4df3739901791b83f835b9","impliedFormat":99},{"version":"349949a8894257122f278f418f4ee2d39752c67b1f06162bb59747d8d06bbc51","impliedFormat":99},{"version":"364832fbef8fb60e1fee868343c0b64647ab8a4e6b0421ca6dafb10dff9979ba","impliedFormat":99},{"version":"dfe4d1087854351e45109f87e322a4fb9d3d28d8bd92aa0460f3578320f024e9","impliedFormat":99},{"version":"886051ae2ccc4c5545bedb4f9af372d69c7c3844ae68833ed1fba8cae8d90ef8","impliedFormat":99},{"version":"3f4e5997cb760b0ef04a7110b4dd18407718e7502e4bf6cd8dd8aa97af8456ff","impliedFormat":99},{"version":"381b5f28b29f104bbdd130704f0a0df347f2fc6cb7bab89cfdc2ec637e613f78","impliedFormat":99},{"version":"a52baccd4bf285e633816caffe74e7928870ce064ebc2a702e54d5e908228777","impliedFormat":99},{"version":"c6120582914acd667ce268849283702a625fee9893e9cad5cd27baada5f89f50","impliedFormat":99},{"version":"da1c22fbbf43de3065d227f8acbc10b132dfa2f3c725db415adbe392f6d1359f","impliedFormat":99},{"version":"858880acbe7e15f7e4f06ac82fd8f394dfe2362687271d5860900d584856c205","impliedFormat":99},{"version":"8dfb1bf0a03e4db2371bafe9ac3c5fb2a4481c77e904d2a210f3fed7d2ad243a","impliedFormat":99},{"version":"bc840f0c5e7274e66f61212bb517fb4348d3e25ed57a27e7783fed58301591e0","impliedFormat":99},{"version":"26438d4d1fc8c9923aea60424369c6e9e13f7ce2672e31137aa3d89b7e1ba9af","impliedFormat":99},{"version":"1ace7207aa2566178c72693b145a566f1209677a2d5e9fb948c8be56a1a61ca9","impliedFormat":99},{"version":"a776df294180c0fdb62ba1c56a959b0bb1d2967d25b372abefdb13d6eba14caf","impliedFormat":99},{"version":"6c88ea4c3b86430dd03de268fd178803d22dc6aa85f954f41b1a27c6bb6227f2","impliedFormat":99},{"version":"11e17a3addf249ae2d884b35543d2b40fabf55ddcbc04f8ee3dcdae8a0ce61eb","impliedFormat":99},{"version":"4fd8aac8f684ee9b1a61807c65ee48f217bf12c77eb169a84a3ba8ddf7335a86","impliedFormat":99},{"version":"1d0736a4bfcb9f32de29d6b15ac2fa0049fd447980cf1159d219543aa5266426","impliedFormat":99},{"version":"11083c0a8f45d2ec174df1cb565c7ba9770878d6820bf01d76d4fedb86052a77","impliedFormat":99},{"version":"d8e37104ef452b01cefe43990821adc3c6987423a73a1252aa55fb1d9ebc7e6d","impliedFormat":99},{"version":"f5622423ee5642dcf2b92d71b37967b458e8df3cf90b468675ff9fddaa532a0f","impliedFormat":99},{"version":"21a942886d6b3e372db0504c5ee277285cbe4f517a27fc4763cf8c48bd0f4310","impliedFormat":99},{"version":"41a4b2454b2d3a13b4fc4ec57d6a0a639127369f87da8f28037943019705d619","impliedFormat":99},{"version":"e9b82ac7186490d18dffaafda695f5d975dfee549096c0bf883387a8b6c3ab5a","impliedFormat":99},{"version":"eed9b5f5a6998abe0b408db4b8847a46eb401c9924ddc5b24b1cede3ebf4ee8c","impliedFormat":99},{"version":"af85fde8986fdad68e96e871ae2d5278adaf2922d9879043b9313b18fae920b1","impliedFormat":99},{"version":"8a1f5d2f7cf4bf851cc9baae82056c3316d3c6d29561df28aff525556095554b","impliedFormat":99},{"version":"2c823e44b7aef6502cdbcb8e6b2a3f10300219b5b94a498d98706b66e0ac12c9","signature":"d05cdde5a88e7c3ee725f4783575b81853295b3e32243e8a9b6a60ff073889d2"},{"version":"112b662745cfe4a133ab24cc26489706dc0a6f8ccefd4d09fd8db66873b2db4e","signature":"e489da6130474d966af11ec19ccbc47179d27d4b1ec3ed96b8c3eb640254cb64"},{"version":"a93b141af25e401c20417b04c94e8ca4a81d6faac4472f9da0f3a6a8c8b13b7a","signature":"6597271c8ff378fa6a11192dfcd88c6e11067a502213a2c20c8541a8a21984b8"},{"version":"466e6198d0e8f74258f2af51a9f57c346019b5c10b36b2a56e165c2cf35bb346","signature":"270bd604cb5498de3612dbff8cc7e93c32ce404c0e6809a598e3abf7825ccc75"},{"version":"09cab2cb1f80db4ebb13d4e7b2782f9e993f09af82508f01cc7c023f0db76155","signature":"d4e2ccb01e03009b6d9efb5b9d5f949d296a55966d164d97cd1862cf43a0f220"},{"version":"f26a848f45c71a7d2d0b4bb239d8469788f0a674c286d0d09a5e2953d7a6f248","signature":"5479b9eb983587140f49ba93b8da22defda965082a506c6bce6701e6bd8a07cd"},{"version":"2c6f51d12755e6c90597fd38117271e83c281e2a3c9e1ec2bd8dbbcd5c28069f","signature":"2f51ac914c15319a173b3cc18e93dd70be6935d8cfb75aef178585ae843d9f44"},{"version":"27d713d70bca974cc8f3aa4b6ab15d1df28a57995c690006ec08b1f9698be6fe","signature":"a64b24855b03d171f4132d50ae1f918ace79f36e88438589ab7bb6823884df9a"},{"version":"37c09d6949d80db68bb32167e98d0fa0035283d87de44c9edcf85d7b734c5a74","signature":"681b7b64b80180ceea95447cd309cf2142b50ff83518fd98be41035ed1f6a982"},{"version":"01a2d8ca93b05dbaecae197865f6bc043664487c881f81e5eed0a7e2808a02bc","signature":"430df2d0295d0f521c1a703aa278eb3eba8b6f794fd92e259203ac780091c03c"},{"version":"ac044a7a34f306aee16b19ce75a4cf2715f2979e4f9cdc54fdb72ba47ce81970","signature":"67dabb71f5eabbb97a46f9484a4b13e1af4f7a8add3eb579ffdb5082a6d71b16"},{"version":"233ac954d5d751a459f3af17a105f0050a39169a26831a01c9fb06bddbb26cda","signature":"e1640fe408f9c3c109e626c9d76346861a897d4aa094b3b0639adc0e721008d7"},{"version":"c74fa3619b9b051debc2cf793eeede6bf3d43f8a2342870a224e25c32503e8e9","signature":"90cc0ff80f1f3547017c2f9b11659b3a177da5bf7757d8749c7fbf131c606636"},{"version":"61ade85ce4280272feffcd55c7375d50c21b2ff580396561ba2770c549235d0c","signature":"909b1f35671d97e01b041add10e76d4247a7ed0e478de667ac54b73a2dda6fca"},{"version":"3bac135aab166beb4373ce12017aa4afbffc37d3ef4e803d6fdb72ba5e071070","signature":"c83dccdb6f44e24c1fad277fba1a1cc50be8c0954118cceb82b407051273d227"},{"version":"d981bed1e8964c88dbf9493443d8b0736b9816169dd8a50be95a8be6923b463e","signature":"40e93b7a8225ba3beaeab6c675cc64115ddf43ebbdd490d7578e9d4b6f1d0cc1"},{"version":"b6c0d04e3c19a47f9d1b6a288436eb3a3839bc08dd9fb56e700c6feb2024108c","signature":"0c4fcbb188842315c1999bd9fb0ae5af6e8c9daa068a0ec95458996c4597f528"},{"version":"f4e8f4151c3490cf7b68c685aabe901cbab19f962aaa2f118a97550e22689a76","impliedFormat":1},{"version":"799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399","impliedFormat":1},{"version":"d998eea476c695d8e4ff9d007d5b46d49ca2ffa052f74dc20ca516425abd57b1","impliedFormat":1},{"version":"a0bd46d587005aad4819980f6cf2dbcd80ebf584ed1a946202326a27158ba70e","impliedFormat":1},{"version":"07fcbb61a71bd69a92a5bbde69e60654666cf966b5675c2010c3bf9f436f056a","impliedFormat":1},{"version":"88b2eb23d36692162f2bf1e50577ebcde26de017260473e03ed9a0e61e2726a4","impliedFormat":1},{"version":"23ffbd8c0e20a697d2ea5a0cf7513fb6e42c955a7648f021da12541728f62182","impliedFormat":1},{"version":"43fba5fc019a4ce721a6f53ddb97fdc34c55049cfb793bc544d5c864ee5560b9","impliedFormat":1},{"version":"f4e12292c9a7663a13d152195019711c427c552eb0fa02705e0f61370cd5547a","impliedFormat":1},{"version":"c127ebf14d1b59d1604865008fb072865c5ca52277621f566092fe1f42ce0954","impliedFormat":1},{"version":"def638da26d84825a312113a20649d3086861de7c06a18ea13121278702976fd","impliedFormat":1},{"version":"fbaf86f8ba11298dea2727ce0da84b4ab6ae6c265e1919d44aff7d9b2bbc578a","impliedFormat":1},{"version":"c1010caaeaca8e420c6e040c2e822dbe18702459c93a7d2d5de38597d477b8cd","impliedFormat":1},{"version":"e1f0d8392efd9d71f2644eb97d3f33d90827e30ea8051d93b6f92bb11dff520a","impliedFormat":1},{"version":"085211167559ca307d4053bb8d2298d5ad83cbc3d2ae9bb4c8435a4cabf59369","impliedFormat":1},{"version":"55fc49198d8a85a73cdb79e596d9381cfdc9de93c32c77d42e661c1c1e7268ef","impliedFormat":1},{"version":"6a53fb3df8dd32ed1a65502ca30aeae19cfe80990e78ba68162d6cb2a7fed129","impliedFormat":1},{"version":"b5dcc18d7902597a5584a43c1146ca4fe0295ceb5125f724c1348f6a851dd6ed","impliedFormat":1},{"version":"0c6b0f3fbe6eb6a3805170b3766a341118c92ed7b6d1f193b9f35aa82f594846","impliedFormat":1},{"version":"60eaadb36cf157c5cae9c40e84fa367d04f52a150db3920dbe35139780739143","impliedFormat":1},{"version":"4680a32b1098c49dc87881329af1e68af9af94e051e1b9e19fed555a786f6ce6","impliedFormat":1},{"version":"89fcd129ec37f321cddcdb6b258ffe562de4281e90ec3ccbe7c1199ba39359ca","impliedFormat":1},{"version":"4313011f692861c2c1f5205d7f9a473e763adab6444f9853b96937b187fb19f7","impliedFormat":1},{"version":"caa57157e7bdb8d5f1efe56826fb84a6c8f22a1927bba7fa21fd54e2a44ccba2","impliedFormat":1},{"version":"6b74700abfe4a9b88be957fd8e373cfd998efb1a5f6ad122da49a92997e183ad","impliedFormat":1},{"version":"9ef1342f193bd8bae86c64e450c3ac468ef08652110355e1f3cdd45362eb95c4","impliedFormat":1},{"version":"6853c91662c36a2bf4c8371a87177c819007c76a23c293ef3f686ce9157ae4c8","impliedFormat":1},{"version":"9be1c5dabce43380d13fc621100676b03d420b5687b08d1288f479bee68ab7a8","impliedFormat":1},{"version":"8996d218010896712678e6a0337d8ef8b81c1066ab76f637dd8253f0d6ff838d","impliedFormat":1},{"version":"a15603bf387fc45defe28a68f405a6c29105e135c4e8538eeb6d0a1ef5b69a81","impliedFormat":1},{"version":"84e2532e4d42949a2775cdd8bb7b2b97370dd6ddb683d0c199b21bf6978b152d","impliedFormat":1},{"version":"22bf5f19f620db3b8392cfece44bdd587cdbed80ba39c88a53697d427135bf37","impliedFormat":1},{"version":"23ebbd8d484d07e1c1d8783169c20570ed8409966b28f6be6cf8e970d76ef491","impliedFormat":1},{"version":"18b6fa2c778cad6489f2febf76433453f5e2432ec3535f2d45ae7d803b93cc17","impliedFormat":1},{"version":"609d0d7419999cf44529e6ba687e2944b2fc7ad2570d278fd4e6b1683c075149","impliedFormat":1},{"version":"249cf421b8878a3fe948d9c02f6b0bae65491b3bb974c2ffc612341406fa78ff","impliedFormat":1},{"version":"b4aa22522d653428c8148ddbf1dcc1fb3a3471e15eb1964429a67c390d8c7f38","impliedFormat":1},{"version":"30b2cee905b1848b61c7d28082ebfa2675dd5545c0d25d1c093ce21a905cdccc","impliedFormat":1},{"version":"0a2a2eed4137368735205de97c245f2a685af1a7f1bf8d636b918a0ee4ff4326","impliedFormat":1},{"version":"69f342ce86706aa2835a62898e93ea7a1f21b1d89c70845da69371441bb6cd56","impliedFormat":1},{"version":"b5ab4282affcfd860dd1cc3201653f591509a586d110f8e5b1b010508ba79b2c","impliedFormat":1},{"version":"d396233f6cd3edf0d33c2fbfc84ded029c3ea4a05af3c94d09d31a367cced111","impliedFormat":1},{"version":"bc41a726c817624a5136ae893d7aac7c4dc93c771e8d243a670324bccf39b02b","impliedFormat":1},{"version":"710728600e4b3197f834c4dd1956443be787d2e647a72f190bf6519f235aaadd","impliedFormat":1},{"version":"a45097e01ef30ba26640fed365376ab3ccd5faf97d03f20daff3355a7e60286a","impliedFormat":1},{"version":"763cbb7c22199f43fd5c2b1566af5ba96bf7366f125dd31a038a2291cbc89254","impliedFormat":1},{"version":"031933bf279b7563e11100b5e1746397caf3a278596796a87bc0db23cf68dc9e","impliedFormat":1},{"version":"a4a54c1f58fc6e25a82e2c0f651bf680058bd7f72cfb2d43b85ee0ab5fe2e87e","impliedFormat":1},{"version":"9613d789b6f1037f2523a8f70e1b736f1da4566b470593da062be5c9e13dac57","impliedFormat":1},{"version":"0d2a320763a0c9c71493f8f1069971018c8720a6e7e5a8f10c26b6de79aa2f7d","impliedFormat":1},{"version":"817e0df27a237a268dc16e5acffc19f9a74467093af7a0ba164ee927007a4d25","impliedFormat":1},{"version":"43102521b5ca50ff1865188c3c60790feaed94dc9262b25d4adec4dbc76f9035","impliedFormat":1},{"version":"f99947f8d873b960b0115e506ef9c43f4e40c2071b1d20375564538af4a6023b","impliedFormat":1},{"version":"c1e5ad5ca89d18d2a36d25e8ec105623648cf35615825e202c7d8295a49d61ab","impliedFormat":1},{"version":"2b6c9cb81da4e0a2e32a58230e8c0dec49fc5b345efb7f7a3648b98956be4b13","impliedFormat":1},{"version":"99e34af3ede50062dcc826a1c3ce2d45562060dfd0f29f8066381a6ef548bf2a","impliedFormat":1},{"version":"49f5c2a23ea5fc4b2cdb4426f09d1c8b83f8409fa2af13ef38845cc9b9d4bc3d","impliedFormat":1},{"version":"e935227675144b64ecde3489e4a5e242eeb25fdd6b7464b8c21ad1f7a0faa88b","impliedFormat":1},{"version":"b42e6bbe88dc79c2d6dc5605fb9c15184e70f64bdd7b8d4069b802b90ce86df6","impliedFormat":1},{"version":"b9cd712399fdc00fdae07e96c9b39c3cb311e2a8a5425f1bd583f13cab35e44b","impliedFormat":1},{"version":"5a978550ae131b7fef441d67372fd972abab98ea9fdb9fa266e8bdc89edcb8d6","impliedFormat":1},{"version":"4f287919cfc1d26420db9f0457cd5c8780b1ef0a9f949570936abe48d3a43d91","impliedFormat":1},{"version":"496b23b2fd07e614bc01d90dd4388996cb18cd5f3a612d98201e9f683e58ad2e","impliedFormat":1},{"version":"dcfbe42824f37c5fb6dc7b9427ef2500791ec0d30825ecb614f15b8d5bf5a667","impliedFormat":1},{"version":"390124ad2361b46bf01851d25e331cd7eed355d04451d8b2a4aa985c9de4f8ce","impliedFormat":1},{"version":"14d94f17772c3a58eda01b6603490983d845ee2012cd643f7497b4e22566aacb","impliedFormat":1},{"version":"03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5","impliedFormat":1},{"version":"66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea","impliedFormat":1},{"version":"5b48ba9a30a93176a93c87f9e0abf26a9df457eeb808928009439ca578b56f27","impliedFormat":1},{"version":"4707625392316d3c16edbd0716f4ac310e8ff5d346d58f4d01a2b7e0533a23df","impliedFormat":1},{"version":"154d58a4b2d9c552dc864ea39c223d66efd0ed2dd8b55bd13db5225d14322915","impliedFormat":1},{"version":"6a830433fa072931b4ea3eb9aa5fa7d283f470080586a27bfe69837a0f12de9a","impliedFormat":1},{"version":"d25e930e181f4f69b2b128514538f2abb54ef1d48a046ad776ac6f1cda885a72","impliedFormat":1},{"version":"0259b4c21bc93b52ca82c755f97fc90481072bcc44a8010131b2ea7326cf03fe","impliedFormat":1},{"version":"bea43a13a1104a640da0cb049db85c6993f484a6cc03660496b97824719ecc91","impliedFormat":1},{"version":"0224239d61fe66d4900544d912b2e11c2cca24b4707d53fdb94b874a01e29f48","impliedFormat":1},{"version":"2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df","impliedFormat":1},{"version":"9c4ad63738346873d685e5c086acbf41199e7022eff5b72bb668931e9ca42404","impliedFormat":1},{"version":"cfb6329bf8ce324e83fe4bbdee537d866a0d5328246f149a0958b75d033de409","impliedFormat":1},{"version":"efc3816f19ea87a7050c84271ea3d3aad9631a517c168013c4f4b6724c287ce0","impliedFormat":1},{"version":"f99f6737336140047e8dd4ade3859f08331aa4b17bc2bd5f156a25c54e0febbc","impliedFormat":1},{"version":"12a2b25c7c9c05c8994adf193e65749926acfcc076381f7166c2f709a97bdf0a","impliedFormat":1},{"version":"0f93a3fdd517c1e45218cd0027c1d6b82237e379dc6b66d693aab1fe74c82e81","impliedFormat":1},{"version":"03c753da0bee80ad0d0f1819b9b42dfe9bf9f436664caf15325aa426246fd891","impliedFormat":1},{"version":"18f5bf1dae429c451f20171427c9e3223fade4346af4dfd817725cbeb247a09d","impliedFormat":1},{"version":"a4eece5fab202e840dd84f7239e511017a8162edb8fc8b54ff2851c5c844125c","impliedFormat":1},{"version":"c4a94af483a63bf947d89f97553a55df5107c605ec8a26f0b9b8bdcc14bd6d89","impliedFormat":1},{"version":"19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8","impliedFormat":1},{"version":"9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd","impliedFormat":1},{"version":"3b568b63f0e8b3873629a4d7a918dce4266ad41461004ab979f8dcdfd13532bb","impliedFormat":1},{"version":"a5e5223c775fe30d606b8aaa521953c925d5ad176a531c2b69437d2461aaabbd","impliedFormat":1},{"version":"8cbf41d2d1ce8ac2066783ae00613c33feef07493796f638e30beaf892e4354a","impliedFormat":1},{"version":"e22ad737718160df198cd428f18da707177d0467934cecdeed4be6e067b0c619","impliedFormat":1},{"version":"15bf5ed8cb7c1a1e1db53fa9b45bc1a1c73c0497735343a8d0c59fdb596a3744","impliedFormat":1},{"version":"791fce84bce8b6948e4f23422d9cbbd7d08c74b3f91cca12dcae83d96079798b","impliedFormat":1},{"version":"8a2619c8e24305f6b9700b35af178394b995dcb28690a57a71cca87ee7e709ae","impliedFormat":1},{"version":"f95fd2fc3cc164921a891f5d6c935fa0d014a576223dd098fc64677e696b0025","impliedFormat":1},{"version":"8c9cecaaa9caba9a8caa47f46dcf24b524b27899b286d8edcc75a81b370d2ba3","impliedFormat":1},{"version":"2b7a82692ecc877c5379df9653902e23f2d0d0bc9f210ec3cf9e47be54413c5c","impliedFormat":1},{"version":"e2ad09c011cf9d7ee128875406bef787eeb504659495f42656a0098c15fe646c","impliedFormat":1},{"version":"eb518567ea6b0b2623f9a6d37c364e1b1ac9d8b508d79e558f64ac05c17e2685","impliedFormat":1},{"version":"630a48fb8f6b07161588e0aee3f9d301c59c97e1532c884118f89368baf4073b","impliedFormat":1},{"version":"14736c608aa46120f8d6d0bc5e0721b46b927bc7eba20e479600571935f27062","impliedFormat":1},{"version":"7574803692d2230db13205a7749b9c3587dccaccdf9e76f003f9e08078bb6d09","impliedFormat":1},{"version":"f3cc1588e666651c51353b1728460bee8acbc6e0f36be8c025eaaf292dca525d","impliedFormat":1},{"version":"0d4ea8a20527dcf3ad6cf1bd188b8ad4e449df174fad09b9e540ed81080af834","impliedFormat":1},{"version":"aa82876d59912d25becff5a79ed7341af04c71bfeb2221cc0417bc34531125e2","impliedFormat":1},{"version":"6f4b0389f439adc84cba35d45428668eabcfbdd351ba17e459d414ca51ab8eb8","impliedFormat":1},{"version":"d5dd33d15fbb07668c264b38065ac542a07a7650af4917727bbc09b58570e862","impliedFormat":1},{"version":"7d90202d0212e9cdc91a20bfddf04a539c89f09fe1d64db3343546fa2eb37e71","impliedFormat":1},{"version":"1a5d073c95a3a4480b17d2fa7fd41862a9df0cb2afaee86834b13649e96bdb45","impliedFormat":1},{"version":"2092495a5b3116c760527a690c4529748f2d8b126cdd5f56b2ce2230b48aba3f","impliedFormat":1},{"version":"620b29d6adbd4061bc0a8fedf145fcc8e8fc9648fb6e0a39726e33babb4e07bc","impliedFormat":1},{"version":"931eda51b5977f7f3fa7a0d9afde01cfd8b0cc1df0bb66dcf8c2cf6e7090384e","impliedFormat":1},{"version":"b084a412374bdd124048c52c4e8a82d64f3adec6c0a9ad5ecbb7317636039b0f","impliedFormat":1},{"version":"11199daa694c3ced3cc2a382a3fa7bd64e95eb40f9bbc3979fc8fb43f5ba38cc","impliedFormat":1},{"version":"2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223","impliedFormat":1},{"version":"dfb53b9d748df3e140b0fddb75f74d21d7623e800bb1f233817a1a2118d4bb24","impliedFormat":1},{"version":"8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844","impliedFormat":1},{"version":"7730c538d6d35efe95d2c0d246b1371565b13037e893178033360b4c9d2ac863","impliedFormat":1},{"version":"b256694544b0d45495942720852d9597116979d52f2b53c559fda31f635c60df","impliedFormat":1},{"version":"794e8831c68cc471671430ee0998397ea7a62c3b706b30304efdc3eaff77545a","impliedFormat":1},{"version":"9cfc1b227477e31988e3fb18d26b6988618f4a5da9b7da6bc3df7fc12fb2602e","impliedFormat":1},{"version":"264a292b6024567dd901fdabbf3239a8742bea426432cdbda4cf390b224188e1","impliedFormat":1},{"version":"f1556a28bb8e33862dcfa9da7e6f1dca0b149faf433fe6a50153ae76f3362db1","impliedFormat":1},{"version":"1d321aea1c6a77b2a44e02e5c2aeff290e3f1675ead1a86652b6d77f5fea2b32","impliedFormat":1},{"version":"4910efc2ce1f96d6e71a9e7c9437812ffae5764b33ab3831c614663f62294124","impliedFormat":1},{"version":"e3ceab51a36e8b34ab787af1a7cf02b9312b6651bac67c750579b3f05af646c1","impliedFormat":1},{"version":"baf9f145bcee1b765bed6e79fd45e1ff0ca297a81315944de81eb5d6fff2d13d","impliedFormat":1},{"version":"2afd62362b83db93cd20de22489fe4d46c6f51822069802620589a51ccad4b99","impliedFormat":1},{"version":"9f0cd9bd4ab608123b88328c78814738cbdee620f29258b89ef8cd923f07ff9c","impliedFormat":1},{"version":"801186c9e765583c825f28dab63a7ad12db5609e36dc6d9acbdc97d23888a463","impliedFormat":1},{"version":"96c515141c6135ccd6fb655fb9e3500074a9216ba956fb685dc8edc33f689594","impliedFormat":1},{"version":"416af6d65fc76c9ced6795f255cb1096c9d7947bede75b82289732b74d902784","impliedFormat":1},{"version":"a280c68b128ebba35fb044965d67895201c2f83b6b28281bb8b023ade68bf665","impliedFormat":1},{"version":"6fa118f15723b099a41d3beea98ed059bcd1b3eda708acf98c5eff0c7e88832f","impliedFormat":1},{"version":"dcbf582243e20ea50d283f28f4f64e9990b4ed4a608757e996160c63cff6aa99","impliedFormat":1},{"version":"efa432d8fd562529c4e9f859fd936676dd8fef5d3b4bedb06f754e4740056ea9","impliedFormat":1},{"version":"a59b66720b2ccf2e0150fafb49e8da8dabdf4e1be36244a4ccd92f5bd18e1e9e","impliedFormat":1},{"version":"c657fb1ec3b727d6a14a24c71ea20c41cb7d26a503e8e41b726bb919eb964534","impliedFormat":1},{"version":"50d6d3174868f6e974355bf8e8db8c8b3fcf059315282a0c359ecf799d95514a","impliedFormat":1},{"version":"86bf79091014a1424fc55122caa47f08622b721a4d614b97dd620e3037711541","impliedFormat":1},{"version":"7a63313dff3a57f824a926e49a7262f7bd14e0e833cf45fa5af6da25286769c2","impliedFormat":1},{"version":"36dcaeffe1a1aed1cb84d4feba32895bf442795170edccc874fa32232b2354e5","impliedFormat":1},{"version":"686c6962d04d90edafc174aa5940acb9c9db8949c8d425131c01d796cf9a3aef","impliedFormat":1},{"version":"2b1dbc3d5762d6865744b6e7be94b8b9004097698c37e93e06983e42dd8fe93b","impliedFormat":1},{"version":"eb5e8f74826bdf3a6a0644d37a0f48133f8ad0b5298cc2c574102868542ba4eb","impliedFormat":1},{"version":"c6a82a9673ba517cf04dd0803513257d0adf101aed2e3b162a54d840c9a1a3b2","impliedFormat":1},{"version":"fc9f0f415abaa323efcecc4a4e0b6763bfe576e32043546d44f1de6541b6399b","impliedFormat":1},{"version":"2c4d772ac7ac56a44deef82903364eb7c78dd7bc997701123df0ce4639fe39bb","impliedFormat":1},{"version":"9369ef11eed17c1c223fdea9c0fa39e83f3722914ef390b1448db3d71620c93a","impliedFormat":1},{"version":"aa84130dbc9049bba6095f87932138698f53259b642635f6c9e92dd0ddc7512c","impliedFormat":1},{"version":"084ceadd21efabd4b58667dca00d4f644306099151d2ee18cd28a395855b8009","impliedFormat":1},{"version":"b9503e29f06c99b352b7cae052da19e3599fa42899509d32b23a27c9bb5bebf6","impliedFormat":1},{"version":"75188920fe6ccc14070fe9a65c036049f1141d968c627b623d4a897ec3587e15","impliedFormat":1},{"version":"e2e1df7f45013d2b34f8d08e6ae5a9339724b0ea251b5445fcca3e170e640105","impliedFormat":1},{"version":"af06feb5d18a6ea11c088b683bdb571800d1f76b98d848eecdf41e5ec8f317fd","impliedFormat":1},{"version":"0596af52b95e0c8adc2c07f49f109d746b164739c5866fa8bb394dd6329a3725","impliedFormat":1},{"version":"c3365d08fe7a1ccc3b8e8638edc30123007f3241b4604e2585b9f14422ab97d8","impliedFormat":1},{"version":"a7a3d96b04bb0ec8cb7d2669767c4756f97dd70d08548f9e6522dde4de8e8a03","impliedFormat":1},{"version":"745e960e885a4ba04c872225cbb44bd67a7490d169ceaefab7c0dfc444768676","impliedFormat":1},{"version":"0b1ce1768cde3535493a9daf99e3bbb8c7dcc3a7f9d8cd358cb846af71ce5cdf","impliedFormat":1},{"version":"48b9603f6e8a7c94b727277592a089f94261baa64e6c9d18165da0481663a69e","impliedFormat":1},{"version":"3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f","impliedFormat":1},{"version":"4dc64902cb86e677a928293593658fbf53388f9a30d2b934140c70a7267b07ec","impliedFormat":1},{"version":"cb4fd56539a61d163ea9befe6b0292c32aa68a104c1f68f61416f1bc769bcfba","impliedFormat":1},{"version":"0d852bdc2b72b22393a8eebe374ee3efe3e0d44e630037b5e1b6087985388e62","impliedFormat":1},{"version":"b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a","impliedFormat":1},{"version":"f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948","impliedFormat":1},{"version":"faa72893e85cb8ebb1dafde6b427e5204e60bb5f3ee6576bb64c01db1f255bc8","impliedFormat":1},{"version":"95b7ed47b31a6eaddcdd853ee0871f2bb61e39ce36a01d03dfafb83766f6c10c","impliedFormat":1},{"version":"19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6","impliedFormat":1},{"version":"fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1","impliedFormat":1},{"version":"3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349","impliedFormat":1},{"version":"765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa","impliedFormat":1},{"version":"de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8","impliedFormat":1},{"version":"d95c4eaad4df9e564859f0c74a177fa0b2e5f8a155939b52580566ab6b311c3f","impliedFormat":1},{"version":"7192a6d17bfa06e83ba14287907b7c671bef9b7111c146f59c6ea753cfc736b9","impliedFormat":1},{"version":"5156d3d392db5d77e1e2f3ea723c0a8bd3ca8acffe3b754b10c84b12f55a6e10","impliedFormat":1},{"version":"a6494e7833ee04386a9f0c686726f7cb05f52f6e069d9293475ccb1e791ee0da","impliedFormat":1},{"version":"d9af0c89a310256851238f509a22aa1071a464d35dc22ea8c2a0bae42dd81bc5","impliedFormat":1},{"version":"291642a66e55e6ca38b029bc6921c7301f5c7b7acf21ae588a5f352e6c1f6d58","impliedFormat":1},{"version":"43cd7c37298b051d1ce0307d94105bcd792c6c7e017282c9d13f1097c27408e8","impliedFormat":1},{"version":"e00d8cce6e2e627654e49c543b582568ad0bf27c1d4ad1018d26aff78d7599df","impliedFormat":1},{"version":"ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278","impliedFormat":1},{"version":"fcb934d0fcdee06a8571bd90aa3a63aa288c784b3ebcecfe7ae90d3104d321f4","impliedFormat":1},{"version":"af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66","impliedFormat":1},{"version":"0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8","impliedFormat":1},{"version":"7dc0b5e3d7be8e1f451f0545448c2eaa02683f230797d24434b36f9820d5a641","impliedFormat":1},{"version":"247af61cdc3f4ec7876b9e993a2ecdd069e10934ff790c9cee5811842bff49eb","impliedFormat":1},{"version":"4be8c2c63d5cd1381081d90021ddfaef106881df4129eddeeaba906f2d0f75d0","impliedFormat":1},{"version":"012f621d6eb28172afb1b2dc23898d8bc74cf35a6d76b63e5581aa8e50fa71b3","impliedFormat":1},{"version":"3a561fa91097e4580c5349ce72e69d247c31c11d29f39e1d0bd3716042ff2c0b","impliedFormat":1},{"version":"bc9981a79dda3badea61d716d368a280c370267e900f43321f828495f4fef23c","impliedFormat":1},{"version":"2ed3b93d55aea416d7be8d49fe25016430caab0fe64c87d641e4c2c551130d17","impliedFormat":1},{"version":"3d66dfc31dd26092c3663d9623b6fc5cec90878606941a19e2b884c4eacd1a24","impliedFormat":1},{"version":"6916c678060af14a8ce8d78a1929d84184e9507fba7ab75142c1bcb646e1c789","impliedFormat":1},{"version":"3eea74afae095028597b3954bde69390f568afc66d457f64fff56e416ea47811","impliedFormat":1},{"version":"549fb2d19deb7d7cae64922918ddddf190109508cc6c7c47033478f7359556d2","impliedFormat":1},{"version":"e7023afc677a74f03f8ccb567532fe9eedd1f5241ee74be7b75ac2336514f6f6","impliedFormat":1},{"version":"ff55505622eac7d104b9ab9570f4cc67166ba47dd8f3badfb85605d55dd6bdc9","impliedFormat":1},{"version":"102fac015b1eebfa13305cb90fd91a4f0bbcabb10f2343556b3483bbb0a04b62","impliedFormat":1},{"version":"18a1f4493f2dbad5fd4f7d9bfba683c98cf5ed5a4fa704fa0d9884e3876e2446","impliedFormat":1},{"version":"f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56","impliedFormat":1},{"version":"cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077","impliedFormat":1},{"version":"1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74","impliedFormat":1},{"version":"310fe80ff40a158c2de408efbe9de11e249c53d2de5e33ca32798e6f3fbc8822","impliedFormat":1},{"version":"d6ce96c7bb34945c1d444101f44e0f8ba0bba8ab7587a6cc009a9934b538c335","impliedFormat":1},{"version":"1b10a2715917601939a9288d49beccd45b591723256495b229569cd67bbe48a8","impliedFormat":1},{"version":"7498dfdeed2e003ec49cdf726ff6c293002d1d7fdadbc398ce8aafe6d0688de7","impliedFormat":1},{"version":"8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc","impliedFormat":1},{"version":"9c86abbc4fd0248f56abc12aaecd76854517389af405d5ec2eb187fdb00a606f","impliedFormat":1},{"version":"9ffd906f14f8b059d6b95d6640920f530507e596e548f7a595da58ab66e3ce76","impliedFormat":1},{"version":"1884bccc10ce40adca470c2c371c1c938b36824f169c56f7f43d860416ca0a4c","impliedFormat":1},{"version":"986b55b4f920c99d77c1845f2542df6f746cb5adc9ab93eb1545a7e6ef37590d","impliedFormat":1},{"version":"cd00906068b81fbd8a22d021580ac505e272844408174520fafed0ae00627a5d","impliedFormat":1},{"version":"69fab68a769c17a52a24b868aeb644f3ee14abaa5064115f575ddd59231105ce","impliedFormat":1},{"version":"e181eb86b2caf80fe18c72efce6b913bc226e4a69a5456eaf4f859f1c29c6fd6","impliedFormat":1},{"version":"93f7871380478bc6acf02ad9f3dc7da0c21997caebbe782eb93a11b7bd06a46d","impliedFormat":1},{"version":"d00279ab020713264f570d5181c89ca362b7de8abddf96733de86bce0eca082c","impliedFormat":1},{"version":"f7db473f1d5d2a124f14886ac9dbfeccfbb94a98bbe1610a47c30c2933afa279","impliedFormat":1},{"version":"f44cf6c6d608ef925831e550b19841b5d71bd87195bd346604ff05644fb0d29c","impliedFormat":1},{"version":"154f23902d7a3fcdace4c20b654da7355fee4b7f807d1f77d6c9a24a8756013a","impliedFormat":1},{"version":"562f4f3c75a497d3ad7709381f850bb8c7646a9c6e94fdf8e91928e23d155411","impliedFormat":1},{"version":"4583380b676ee59b70a9696b42acfa986cd5f32430f37672e04f31f40b05df74","impliedFormat":1},{"version":"ad0a13f35a0d88803979f8ea9050ad7441e09d21a509abf2f303e18c1267af17","impliedFormat":1},{"version":"ba9781c718ab3d09cbde1216029072698d2da6135f0d2f856ba387d6caceb13e","impliedFormat":1},{"version":"d7c597c14698ba5fc8010076afa426f029b2d8edabb5073270c070cc645ba638","impliedFormat":1},{"version":"bd2afc69cf1d85cd950a99813bc7eff007d8afa496e7c2142a845cd1181d0474","impliedFormat":1},{"version":"558b462b23ea186d094dbff158d652acd58c0988c9fd53af81a8903412aa5901","impliedFormat":1},{"version":"0e984ae642a15973d652fd7b0d2712a284787d0d7a1db99aa49af0121e47f1df","impliedFormat":1},{"version":"0ad53ee208a23eef2a5cb3d85f2a9dc1019fd5e69179c4b0c02dc56c40d611c4","impliedFormat":1},{"version":"7a6898b26947bd356f33f4efef3eb23e61174d85dca19f41a8780d6bb4bfb405","impliedFormat":1},{"version":"9fe30349d26f34e85209fb06340bac34177f7eae3d6bb69dc12cd179d2c13ddf","impliedFormat":1},{"version":"d568c51d2c4360fd407445e39f4d86891dba04083402602bf5f24fd3969cacbb","impliedFormat":1},{"version":"b2483a924349ec835f4d778dd6787447a2f8bfbb651164851bff29d5b3d990a6","impliedFormat":1},{"version":"aae66889332cff4b2f7586c5c8758abc394d8d1c48f9b04b0c257e58f629d285","impliedFormat":1},{"version":"0f86c85130c64d6dbe6a9090bb3df71c4b0987bce4a08afe1ac4ece597655b9c","impliedFormat":1},{"version":"0ce28ad2671baed24517e1c1f4f2a986029137635bce788ee8fb542f002ac5b8","impliedFormat":1},{"version":"cd12e4fe77d24db98d66049360a4269299bcfb9dc3a1b47078ab1b4afac394cb","impliedFormat":1},{"version":"1589e5ac394b2b2e64264da3e1798d0e103b4f408f5bae1527d9e706f98269c7","impliedFormat":1},{"version":"ff8181aa0fde5ec2d737aecc5ebaa9e881379041f13e5ce1745620e17f78dcf9","impliedFormat":1},{"version":"0b2e54504b568c08df1e7db11c105786742866ba51e20486ab9b2286637d268f","impliedFormat":1},{"version":"bc1ffc3a2dca8ee715571739be3ec74d079e60505e1d0d2446e4978f6c75ba5c","impliedFormat":1},{"version":"770a40373470dff27b3f7022937ea2668a0854d7977c9d22073e1c62af537727","impliedFormat":1},{"version":"a0f8ce72cb02247a112ce4a2fa0f122478a8e99c90a5e6b676b41a68b1891ad2","impliedFormat":1},{"version":"6e957ea18b2bf951cf3995d115ad9bfa439e8d891aeb1afc901d793202c0b90d","impliedFormat":1},{"version":"a1c65bd78725f9172b5846c3c58ddf4bcbb43a30ab19e951f0102552fbfd3d5d","impliedFormat":1},{"version":"04718c7325e7df4bac9a6d026a0a2bd5a8b54501f274aaf93a03b5d1d0635bd1","impliedFormat":1},{"version":"405205f932d4e0ce688a380fa3150b1c7ff60e7fc89909e11a33eab7af240edb","impliedFormat":1},{"version":"566fc1a6616a522f8b45082032a33e6d37ff7df3f7d4d63c3cce9017d0345178","impliedFormat":1},{"version":"3b699b08db04559803b85aa0809748e61427b3d831f77834b8206e9f2ed20c93","impliedFormat":1},{"version":"b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1","impliedFormat":1},{"version":"e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68","impliedFormat":1},{"version":"072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873","impliedFormat":1},{"version":"e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02","impliedFormat":1},{"version":"8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898","impliedFormat":99},{"version":"8079d851ffa1dbe193fe36643b3d67f4fdf8d360df4c900065788eff44bc15a7","impliedFormat":1},{"version":"da99399a43db3aa559a2d319fe00ee07d54874fa489d1d05c1ee6ea54e2d33b9","signature":"64d1a70b42747a5ff82fc6f3060ed022c404836d60679b338e4ffb8864dd5195"},{"version":"e516240bc1e5e9faef055432b900bc0d3c9ca7edce177fdabbc6c53d728cced8","impliedFormat":99},{"version":"5402765feacf44e052068ccb4535a346716fa1318713e3dae1af46e1e85f29a9","impliedFormat":99},{"version":"e16ec5d4796e7a765810efee80373675cedc4aa4814cf7272025a88addf5f0be","impliedFormat":99},{"version":"1f57157fcd45f9300c6efcfc53e2071fbe43396b0a7ed2701fbd1efb5599f07f","impliedFormat":99},{"version":"9f1886f3efddfac35babcada2d454acd4e23164345d11c979966c594af63468b","impliedFormat":99},{"version":"a3541c308f223863526df064933e408eba640c0208c7345769d7dc330ad90407","impliedFormat":99},{"version":"59af208befeb7b3c9ab0cb6c511e4fec54ede11922f2ffb7b497351deaf8aa2e","impliedFormat":99},{"version":"928b16f344f6cddaba565da8238f4cf2ddf12fe03eb426ab46a7560e9b3078fa","impliedFormat":99},{"version":"120bdf62bccef4ea96562a3d30dd60c9d55481662f5cf31c19725f56c0056b34","impliedFormat":99},{"version":"39e0da933908de42ba76ea1a92e4657305ae195804cfaa8760664e80baac2d6a","impliedFormat":99},{"version":"55ce6ca8df9d774d60cef58dd5d716807d5cc8410b8b065c06d3edac13f2e726","impliedFormat":99},{"version":"788a0faf3f28d43ce3793b4147b7539418a887b4a15a00ffb037214ed8f0b7f6","impliedFormat":99},{"version":"a3e66e7b8ccdab967cd4ada0f178151f1c42746eabb589a06958482fd4ed354e","impliedFormat":99},{"version":"bf45a2964a872c9966d06b971d0823daecbd707f97e927f2368ba54bb1b13a90","impliedFormat":99},{"version":"39973a12c57e06face646fb79462aabe8002e5523eec4e86e399228eb34b32c9","impliedFormat":99},{"version":"f01091e9b5028acfb38208113ae051fad8a0b4b8ec1f7137a2a5cf903c47eefc","impliedFormat":99},{"version":"b3e87824c9e7e3a3be7f76246e45c8d603ce83d116733047200b3aa95875445b","impliedFormat":99},{"version":"7e1f7f9ae14e362d41167dc861be6a8d76eca30dde3a9893c42946dc5a5fc686","impliedFormat":99},{"version":"9308ef3b9433063ac753a55c3f36d6d89fa38a8e6c51e05d9d8329c7f1174f24","impliedFormat":99},{"version":"cd3bb1aa24726a0abd67558fde5759fe968c3c6aa3ec7bad272e718851502894","impliedFormat":99},{"version":"1ae0f22c3b8420b5c2fec118f07b7ebd5ae9716339ab3477f63c603fe7a151c8","impliedFormat":99},{"version":"919ff537fff349930acc8ad8b875fd985a17582fb1beb43e2f558c541fd6ecd9","impliedFormat":99},{"version":"4e67811e45bae6c44bd6f13a160e4188d72fd643665f40c2ac3e8a27552d3fd9","impliedFormat":99},{"version":"3d1450fd1576c1073f6f4db9ebae5104e52e2c4599afb68d7d6c3d283bdbaf4f","impliedFormat":99},{"version":"c072af873c33ff11af126c56a846dfada32461b393983a72b6da7bff373e0002","impliedFormat":99},{"version":"de66e997ea5376d4aeb16d77b86f01c7b7d6d72fbb738241966459d42a4089e0","impliedFormat":99},{"version":"d77ea3b91e4bc44d710b7c9487c2c6158e8e5a3439d25fc578befeb27b03efd7","impliedFormat":99},{"version":"a3d5c695c3d1ebc9b0bd55804afaf2ac7c97328667cbeedf2c0861b933c45d3e","impliedFormat":99},{"version":"270724545d446036f42ddea422ee4d06963db1563ccc5e18b01c76f6e67968ae","impliedFormat":99},{"version":"85441c4f6883f7cfd1c5a211c26e702d33695acbabec8044e7fa6831ed501b45","impliedFormat":99},{"version":"0f268017a6b1891fdeea69c2a11d576646d7fd9cdfc8aac74d003cd7e87e9c5a","impliedFormat":99},{"version":"9ece188c336c80358742a5a0279f2f550175f5a07264349d8e0ce64db9701c0b","impliedFormat":99},{"version":"cf41b0fc7d57643d1a8d21af07b0247db2f2d7e2391c2e55929e9c00fbe6ab9a","impliedFormat":99},{"version":"11e7ddddd9eddaac56a6f23d8699ae7a94c2a55ae8c986fdabc719d3c3e875a1","impliedFormat":99},{"version":"dd129c2d348be7dbf9f15d34661defdfc11ee00628ca6f7161bead46095c6bc3","impliedFormat":99},{"version":"c38d8e7cfc64bbfc14a63346388249c1cfa2cc02166c5f37e5a57da4790ce27f","impliedFormat":99},{"version":"c0ef234e74cabdbaa46b2e5b3d27facd07f949afa402fc381305e885e08416c8","signature":"77a8091fc8ef1f8b7608330b519ca909ac3e9ce1329af32c1153ef8851762ed2"},{"version":"7e3373dde2bba74076250204bd2af3aa44225717435e46396ef076b1954d2729","impliedFormat":1},{"version":"1c3dfad66ff0ba98b41c98c6f41af096fc56e959150bc3f44b2141fb278082fd","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"eb9271b3c585ea9dc7b19b906a921bf93f30f22330408ffec6df6a22057f3296","impliedFormat":1},{"version":"0205ee059bd2c4e12dcadc8e2cbd0132e27aeba84082a632681bd6c6c61db710","impliedFormat":1},{"version":"a694d38afadc2f7c20a8b1d150c68ac44d1d6c0229195c4d52947a89980126bc","impliedFormat":1},{"version":"9f1e00eab512de990ba27afa8634ca07362192063315be1f8166bc3dcc7f0e0f","impliedFormat":1},{"version":"9674788d4c5fcbd55c938e6719177ac932c304c94e0906551cc57a7942d2b53b","impliedFormat":1},{"version":"86dac6ce3fcd0a069b67a1ac9abdbce28588ea547fd2b42d73c1a2b7841cf182","impliedFormat":1},{"version":"4d34fbeadba0009ed3a1a5e77c99a1feedec65d88c4d9640910ff905e4e679f7","impliedFormat":1},{"version":"9d90361f495ed7057462bcaa9ae8d8dbad441147c27716d53b3dfeaea5bb7fc8","impliedFormat":1},{"version":"8fcc5571404796a8fe56e5c4d05049acdeac9c7a72205ac15b35cb463916d614","impliedFormat":1},{"version":"a3b3a1712610260c7ab96e270aad82bd7b28a53e5776f25a9a538831057ff44c","impliedFormat":1},{"version":"33a2af54111b3888415e1d81a7a803d37fada1ed2f419c427413742de3948ff5","impliedFormat":1},{"version":"d5a4fca3b69f2f740e447efb9565eecdbbe4e13f170b74dd4a829c5c9a5b8ebf","impliedFormat":1},{"version":"56f1e1a0c56efce87b94501a354729d0a0898508197cb50ab3e18322eb822199","impliedFormat":1},{"version":"8960e8c1730aa7efb87fcf1c02886865229fdbf3a8120dd08bb2305d2241bd7e","impliedFormat":1},{"version":"27bf82d1d38ea76a590cbe56873846103958cae2b6f4023dc59dd8282b66a38a","impliedFormat":1},{"version":"0daaab2afb95d5e1b75f87f59ee26f85a5f8d3005a799ac48b38976b9b521e69","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"bb220eaac1677e2ad82ac4e7fd3e609a0c7b6f2d6d9c673a35068c97f9fcd5cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c60b14c297cc569c648ddaea70bc1540903b7f4da416edd46687e88a543515a1","impliedFormat":1},{"version":"94a802503ca276212549e04e4c6b11c4c14f4fa78722f90f7f0682e8847af434","impliedFormat":1},{"version":"9c0217750253e3bf9c7e3821e51cff04551c00e63258d5e190cf8bd3181d5d4a","impliedFormat":1},{"version":"5c2e7f800b757863f3ddf1a98d7521b8da892a95c1b2eafb48d652a782891677","impliedFormat":1},{"version":"21317aac25f94069dbcaa54492c014574c7e4d680b3b99423510b51c4e36035f","impliedFormat":1},{"version":"c61d8275c35a76cb12c271b5fa8707bb46b1e5778a370fd6037c244c4df6a725","impliedFormat":1},{"version":"c7793cb5cd2bef461059ca340fbcd19d7ddac7ab3dcc6cd1c90432fca260a6ae","impliedFormat":1},{"version":"fd3bf6d545e796ebd31acc33c3b20255a5bc61d963787fc8473035ea1c09d870","impliedFormat":1},{"version":"c7af51101b509721c540c86bb5fc952094404d22e8a18ced30c38a79619916fa","impliedFormat":1},{"version":"59c8f7d68f79c6e3015f8aee218282d47d3f15b85e5defc2d9d1961b6ffed7a0","impliedFormat":1},{"version":"93a2049cbc80c66aa33582ec2648e1df2df59d2b353d6b4a97c9afcbb111ccab","impliedFormat":1},{"version":"d04d359e40db3ae8a8c23d0f096ad3f9f73a9ef980f7cb252a1fdc1e7b3a2fb9","impliedFormat":1},{"version":"84aa4f0c33c729557185805aae6e0df3bd084e311da67a10972bbcf400321ff0","impliedFormat":1},{"version":"cf6cbe50e3f87b2f4fd1f39c0dc746b452d7ce41b48aadfdb724f44da5b6f6ed","impliedFormat":1},{"version":"3cf494506a50b60bf506175dead23f43716a088c031d3aa00f7220b3fbcd56c9","impliedFormat":1},{"version":"f2d47126f1544c40f2b16fc82a66f97a97beac2085053cf89b49730a0e34d231","impliedFormat":1},{"version":"724ac138ba41e752ae562072920ddee03ba69fe4de5dafb812e0a35ef7fb2c7e","impliedFormat":1},{"version":"e4eb3f8a4e2728c3f2c3cb8e6b60cadeb9a189605ee53184d02d265e2820865c","impliedFormat":1},{"version":"f16cb1b503f1a64b371d80a0018949135fbe06fb4c5f78d4f637b17921a49ee8","impliedFormat":1},{"version":"f4808c828723e236a4b35a1415f8f550ff5dec621f81deea79bf3a051a84ffd0","impliedFormat":1},{"version":"3b810aa3410a680b1850ab478d479c2f03ed4318d1e5bf7972b49c4d82bacd8d","impliedFormat":1},{"version":"0ce7166bff5669fcb826bc6b54b246b1cf559837ea9cc87c3414cc70858e6097","impliedFormat":1},{"version":"6ea095c807bc7cc36bc1774bc2a0ef7174bf1c6f7a4f6b499170b802ce214bfe","impliedFormat":1},{"version":"3549400d56ee2625bb5cc51074d3237702f1f9ffa984d61d9a2db2a116786c22","impliedFormat":1},{"version":"5327f9a620d003b202eff5db6be0b44e22079793c9a926e0a7a251b1dbbdd33f","impliedFormat":1},{"version":"b60f6734309d20efb9b0e0c7e6e68282ee451592b9c079dd1a988bb7a5eeb5e7","impliedFormat":1},{"version":"f4187a4e2973251fd9655598aa7e6e8bba879939a73188ee3290bb090cc46b15","impliedFormat":1},{"version":"44c1a26f578277f8ccef3215a4bd642a0a4fbbaf187cf9ae3053591c891fdc9c","impliedFormat":1},{"version":"a5989cd5e1e4ca9b327d2f93f43e7c981f25ee12a81c2ebde85ec7eb30f34213","impliedFormat":1},{"version":"f65b8fa1532dfe0ef2c261d63e72c46fe5f089b28edcd35b3526328d42b412b8","impliedFormat":1},{"version":"1060083aacfc46e7b7b766557bff5dafb99de3128e7bab772240877e5bfe849d","impliedFormat":1},{"version":"d61a3fa4243c8795139e7352694102315f7a6d815ad0aeb29074cfea1eb67e93","impliedFormat":1},{"version":"1f66b80bad5fa29d9597276821375ddf482c84cfb12e8adb718dc893ffce79e0","impliedFormat":1},{"version":"1ed8606c7b3612e15ff2b6541e5a926985cbb4d028813e969c1976b7f4133d73","impliedFormat":1},{"version":"c086ab778e9ba4b8dbb2829f42ef78e2b28204fc1a483e42f54e45d7a96e5737","impliedFormat":1},{"version":"dd0b9b00a39436c1d9f7358be8b1f32571b327c05b5ed0e88cc91f9d6b6bc3c9","impliedFormat":1},{"version":"a951a7b2224a4e48963762f155f5ad44ca1145f23655dde623ae312d8faeb2f2","impliedFormat":1},{"version":"cd960c347c006ace9a821d0a3cffb1d3fbc2518a4630fb3d77fe95f7fd0758b8","impliedFormat":1},{"version":"fe1f3b21a6cc1a6bc37276453bd2ac85910a8bdc16842dc49b711588e89b1b77","impliedFormat":1},{"version":"1a6a21ff41d509ab631dbe1ea14397c518b8551f040e78819f9718ef80f13975","impliedFormat":1},{"version":"0a55c554e9e858e243f714ce25caebb089e5cc7468d5fd022c1e8fa3d8e8173d","impliedFormat":1},{"version":"3a5e0fe9dcd4b1a9af657c487519a3c39b92a67b1b21073ff20e37f7d7852e32","impliedFormat":1},{"version":"977aeb024f773799d20985c6817a4c0db8fed3f601982a52d4093e0c60aba85f","impliedFormat":1},{"version":"d59cf5116848e162c7d3d954694f215b276ad10047c2854ed2ee6d14a481411f","impliedFormat":1},{"version":"50098be78e7cbfc324dfc04983571c80539e55e11a0428f83a090c13c41824a2","impliedFormat":1},{"version":"08e767d9d3a7e704a9ea5f057b0f020fd5880bc63fbb4aa6ffee73be36690014","impliedFormat":1},{"version":"dd6051c7b02af0d521857069c49897adb8595d1f0e94487d53ebc157294ef864","impliedFormat":1},{"version":"79c6a11f75a62151848da39f6098549af0dd13b22206244961048326f451b2a8","impliedFormat":1},{"version":"f410816c0670492da1b23df3fc24b02bdc4710640d8095523b653eb5daeb3c08","signature":"cb4e4c54076f9a3d2a70bbb13dde81b7b451925d7c67502bc9aae6e9cf1b2ef4"},{"version":"731330fd1896d45e2ed00cf09ff0037580d5abc6b83c171f0f3b413142cf49d0","signature":"36b328f629e1ddb764e4620846380d6758f02514308a74eb128378fe6207da55"},{"version":"7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79","impliedFormat":99},{"version":"dfcf16e716338e9fe8cf790ac7756f61c85b83b699861df970661e97bf482692","impliedFormat":99},{"version":"bb703864a1bc9ca5ac3589ffd83785f6dc86f7f6c485c97d7ffd53438777cb9e","impliedFormat":1},{"version":"c218369b6c0664232b3940fc05c14386c26e6c031a674baf9d1161fda68b8bd5","signature":"41a0db130cfb6020f150fbee6c36ee82a4feacb3922f1cfdece9deac59a47e42"},{"version":"e7441be68f390975c6155c805cea8f54cc1b7f3656b6b9440ecbbbd7753499e6","impliedFormat":99},{"version":"3b1a3d1bedd1c351f54af7e402693480c036f188951d148817ab7e5c17f04f16","signature":"2f72f5f0f83025ca5baf5b2c2eb9b3f0ca8df6bc6c02b8eaa8b7074de0a65120"},{"version":"91b4ce96f6ad631a0a6920eb0ab928159ff01a439ae0e266ecdc9ea83126a195","impliedFormat":1},{"version":"88efe27bebddb62da9655a9f093e0c27719647e96747f16650489dc9671075d6","impliedFormat":1},{"version":"e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","impliedFormat":1},{"version":"8ee6b07974528da39b7835556e12dd3198c0a13e4a9de321217cd2044f3de22e","impliedFormat":1},{"version":"5e1d8a07714f909beaaaf4d0ffe507345a99f2db967493dd8ebbfbb4f18e83ca","impliedFormat":1},{"version":"5f12132800d430adbe59b49c2c0354d85a71ada7d756e34250a655baa8ad4ae5","impliedFormat":1},{"version":"1996d1cd7d585a8359a35878f67abdd73cc35b1f675c9c6b147b202fdd8dfc3f","impliedFormat":1},{"version":"5a50dbfc042633fdb558e53b30b0a005e0b78e142a1fe1147a8d6618ca69ec99","impliedFormat":1},{"version":"a8b0f3d8b205c32395727230bff7849c947150fdd6288855cbe75bc662c4e236","impliedFormat":1},{"version":"6fb55bb881f4a7167649e6925df076f64a1db2f50632df4674e4621a9445c954","impliedFormat":1},{"version":"4374cefdde5c6e9bad52b0436e887b8325b8f407c12035194ad02c28f1553a3a","impliedFormat":1},{"version":"9b70cad270593f676aecfe4d1611dc766464f0b8138527b0ebbf1ff773578d69","impliedFormat":1},{"version":"b4f85bfb7e831703ac81737361842f1ae4d924b42c5d1af2bff93cca521de4d1","impliedFormat":1},{"version":"5fea76008a2d537ca09d569ffae4e08b991b4a5ff90e9f4783bc983584454ede","impliedFormat":1},{"version":"21575cdeaca6a2c2a0beb8c2ecbc981d9deb95f879f82dc7d6e325fe8737b5ba","impliedFormat":1},{"version":"40ec58f0fadd0b3981b3d383e1c12fa0680115ae9f018387fc2cfc0bbcf23204","impliedFormat":1},{"version":"849b9e7283b7309a4556c9b90bb8e2dfc27751f157798065bbc513dcddb09a8c","impliedFormat":1},{"version":"10e109212c7be8a9f66e988e5d6c2a8900c9d14bf6beadf5fa70d32ada3425cf","impliedFormat":1},{"version":"2b821aeb31e690092f8eae671dd961a9d0fd598ff4883ce0a600c90e9e8fa716","impliedFormat":1},{"version":"26602933b613e4df3868a6c82e14fffa2393a08531cb333ed27b151923462981","impliedFormat":1},{"version":"f57a588d8f6b3ce5c8b494f2dc759a8885eaee18e80a4952df47de45403fedbe","impliedFormat":1},{"version":"34735727b3fe7a0ed0651a0f88d06449163d1989a2b2de7f047473adc7c1c383","impliedFormat":1},{"version":"a5b13abc88ab3186e713c445e59e2f6eee20c6167943517bc2f56985d89b8c55","impliedFormat":1},{"version":"3844b45a774bafe226260cf0772376dce72121ebb801d03902c70a7f11da832b","impliedFormat":1},{"version":"7ae65fe95b18205e241e6695cb2c61c0828d660aca7d08f68781b439a800e6b8","impliedFormat":1},{"version":"e025419f23ccceafd7f5ab3141a86a6bb9fc3b33c44fe62b288d7b19baffc95b","impliedFormat":1},{"version":"369b7270eeeb37982203b2cb18c7302947b89bf5818c1d3d2e95a0418f02b74e","impliedFormat":1},{"version":"94f95d223e2783b0aef4d15d7f6990a6a550fe17d099c501395f690337f7105e","impliedFormat":1},{"version":"039bd8d1e0d151570b66e75ee152877fb0e2f42eca43718632ac195e6884be34","impliedFormat":1},{"version":"89fb1e22c3c98cbb86dc3e5949012bdae217f2b5d768a2cc74e1c4b413c25ad2","impliedFormat":1},{"version":"24c371f70751acb269f7fdcb358c4b20ba63e85a4621fae4b562ec0cc0011cb6","signature":"8645fd739fb78ff1e6433f42605595a2a3a1047f5dd87bde6603968b0bfad4cc"},{"version":"92d566eae4dbbe8db9ca1db01911b48e1f53d11dc45b643f8aab6648831dd165","signature":"994534597e772bc135a36815cd936a8a63f27a29879b249eac14caf6e341364d"},{"version":"b843496b17a2bbd79c83809c73fd9c59fab53d3e361e04e52e2d489524eea764","impliedFormat":1},{"version":"a174e474f30d8a13d10d90975f7338efd5bb02c0b1a9c3808719ef3d4d963906","signature":"5edeac74f5feafae2554b5acf4a797463e1f270371f61f89c7cbc5d816b0b41c"},{"version":"82e23bd8aa4c3c9d8825b5d6d7a5f831bde56c51491666d3bb6a6669a933afff","signature":"833875c2409cce5c125064f63cf4cd0b6d43436a961f926d9ee67d1fdaed7c6b"},{"version":"08b059b3ca4faf951bb4b39c17345462ea91bff07d8f8f99c96a71e0a264f326","signature":"bc566a7efbfa5e0f5ae124a0d2c2f66291391387483da8da6278e9c4e642615e"},{"version":"4b983779d67a080b61e66a613c5273c93ec33d0dc7ea885c35bedf9f8e9f0eac","signature":"6147691e841c1e4a3ea56d26412211418dd8d2b77ec0751e5ab830865344c2a7"},{"version":"4d9bffaca7e0f0880868bab5fd351f9e4d57fcc6567654c4c330516fea7932aa","impliedFormat":99},{"version":"867b845defb7e20f8928fdb8c5e2e7c473f701bb54e8f6624cdc3ebfec2e1c50","impliedFormat":99},{"version":"fcebf6064ee19f019cd677748310bbea900dc57fd8646427cf3418af70902d86","impliedFormat":99},{"version":"a93a11986f470d2c99c689ee101a04003d3b08d66e884782c147865017c15484","impliedFormat":99},{"version":"73b48bdb2946a0fa88829e88d32a69daee9b7c22db26524f89e9abe31f9b7cca","impliedFormat":99},{"version":"d3f91fbf8f379271187b8d06fe1900a63853845871c27376b7d37e664a32e930","signature":"6e792f758932bcb89403f0efca4da19a9a8b02bf358f6f1846bdb49d0f1dbbd6"},{"version":"b7467f53d674849e92daa0d5f283c91f316a86a569f3eccace7d3f8f9a7a2944","signature":"f77dac591bbb93fd5024c15a73ccb10025f76c5b33a001760c579e13341ae834"},{"version":"8535cbb3e75a83fa3fb8a261d288fb8685e343cbb814cea806349c69e021475e","signature":"523cbf15f5b12fdc02dbcf3f59602623f8b49c4cc351678ce8b0106575cdddbf"},{"version":"83de4884db640c144f753216c544995b73dad95a0bc36d58ed9da59c0dc75f62","signature":"ca24bbf78a8fd1cc64ae781cc893d96efaffd225c7c4da1087d478843515407e"},{"version":"284e8e8fcfb85ad5c4d6e3f87ecc362a39492cd4b9dfbb8eb2414bf5f51bcbdd","signature":"5bbd9a79fbf27b68134b226d7545e21bd74518258720cf56d833a80fd66073c6"},{"version":"a0b87928e96701063a8e983c83267a3f9a9d4284b424902927279b21bd3e41e0","signature":"43176e4d525a623257cd59078550387aa9495f39389402e2d648e40d95a57925"},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"dbecf494aac7d3ee1b23cdaafae0d0bfea8590567fc153db58fe00ed9fa66c24","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"c74b33e4465a03e398a080ec56b8f7cf19edba5d7c4dab482b4be4a5c4efb1ca","impliedFormat":1},{"version":"6edb7a98f0d3483a88041013608fda8e02c9f2f5361c327ad090dc522fcdbeff","affectsGlobalScope":true,"impliedFormat":1},{"version":"53e074a281b50dc3bbdddac7a1c2946100c80a7f5c3161452ab98b31db2e31ba","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"6a121c24083c9f164330b85ce7aa8ef97b64fedaf8694ec14cddc34d921ad209","impliedFormat":1},{"version":"49ae37a1b5de16f762c8a151eeaec6b558ce3c27251052ef7a361144af42cad4","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7115f1157a00937d712e042a011eb85e9d80b13eff78bac5f210ee852f96879d","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"31bd1a31f935276adf90384a35edbd4614018ff008f57d62ffb57ac538e94e51","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"8c61ed247159a025ccc4c3702862b97ef3dbac5460e87f57205f6c37c9e7edbd","impliedFormat":1},{"version":"b05b9ef20d18697e468c3ae9cecfff3f47e8976f9522d067047e3f236db06a41","affectsGlobalScope":true,"impliedFormat":1},{"version":"f434b00addaec462abb14aee113fefdb22ba5a60044b782b1b05f7ae489aa335","affectsGlobalScope":true,"impliedFormat":1},{"version":"3ba38f41c6344cc89270450751e89d0cb60279af2db0e20f0b6858994e6785a8","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4b5520626a9a1333f2518839db11f9649ba853e7cc7e9a25eb6addb5d1307e9","impliedFormat":1},{"version":"06e0e96bcdc4bf6032b9e0b83451bcb1148880772b337842de991164e6f00b34","impliedFormat":1},{"version":"c61c37176b7a6c043df76f437e402ea9abc9f19e9652a0d37629dfc8b7e83497","impliedFormat":1},{"version":"5602c92b934a62d674506c40755f3ca46e3c4a6dfbf01674289714a51f238b40","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"067f76ab5254b1bdfc94154730b7a30c12e3aad8b9d04ec62c0d6b7a1f40ea0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b08cdb4a66b9fe95fa19b3133036c91fe9314ec4e2bff533dd1d60fd81e1bed","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"49ae37a1b5de16f762c8a151eeaec6b558ce3c27251052ef7a361144af42cad4","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"b5a907deaba678e5083ccdd7cc063a3a8c3413c688098f6de29d6e4cefabc85f","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"561c795984d06b91091780cebeac616e9e41d83240770e1af14e6ec083b713d5","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"9b4f7ff9681448c72abe38ea8eefd7ffe0c3aefe495137f02012a08801373f71","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"fe62b82c98a4d5bca3f8de616b606d20211b18c14e881bb6856807d9ab58131b","impliedFormat":1}],"root":[265,586,588,589,[595,598],658,659,[1419,1421],1423,1424,1443,1444,1446,1450,[1457,1522],[1524,1526],[1550,1558],[1560,1590],[1600,1626],1629,1630,[1757,1768],1816,1818,1819,[1826,1829],[1834,1846],[1868,1898],[1904,1919],[1921,1932],[1966,1982],2241,2278,2349,2350,2354,2356,2387,2388,[2390,2393],[2399,2404]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":4},"referencedMap":[[265,1],[586,2],[588,3],[1423,4],[1424,5],[1444,6],[1827,7],[1842,8],[1840,9],[1845,10],[1846,11],[1968,12],[1834,13],[596,14],[1837,15],[1970,16],[1972,17],[1975,18],[597,14],[1446,19],[659,20],[1976,21],[1977,16],[1870,22],[1890,23],[1869,24],[1889,25],[1875,26],[1888,27],[1882,28],[1884,29],[1879,30],[1924,31],[1874,32],[1911,33],[1931,34],[1930,35],[1979,36],[1967,37],[1966,38],[1878,39],[1921,40],[1891,41],[1898,42],[1886,43],[1897,44],[1892,41],[1913,45],[1908,46],[1904,47],[1917,48],[1918,49],[1919,50],[1909,51],[1905,52],[1907,53],[1916,54],[1915,55],[1914,56],[1906,57],[1826,58],[1844,59],[1819,60],[1922,61],[1835,46],[1836,62],[1457,63],[1932,64],[1923,65],[1978,66],[1818,67],[1969,68],[1980,69],[1981,70],[1873,71],[1838,72],[1973,70],[1982,68],[1816,73],[2241,74],[1843,75],[2278,76],[2349,77],[1929,68],[2350,71],[1896,78],[2354,79],[1871,80],[1881,81],[2356,82],[1872,80],[1894,83],[2387,84],[2388,72],[2390,85],[1883,86],[1880,87],[1926,73],[2391,68],[2392,80],[2393,87],[2399,88],[1925,72],[1928,72],[1841,75],[1927,68],[1974,89],[1868,90],[1876,75],[1885,80],[1839,91],[1912,80],[1971,92],[1895,72],[1828,93],[1910,94],[2400,72],[2401,75],[1877,72],[1893,75],[2402,80],[2404,95],[2403,73],[1829,73],[1458,96],[1460,97],[1462,98],[1463,11],[1466,99],[595,100],[1467,11],[1469,101],[1468,102],[1471,103],[1578,104],[1576,105],[1555,106],[1472,107],[1553,108],[1571,109],[1577,107],[1522,110],[1501,111],[1579,11],[1580,11],[1887,11],[1609,112],[1612,113],[1623,114],[1624,115],[1611,116],[1613,46],[1614,46],[1615,117],[1616,118],[1618,119],[1619,120],[1620,121],[1621,118],[1622,122],[1581,123],[1584,124],[1585,46],[1603,125],[1604,126],[1605,46],[1606,46],[1608,127],[1587,128],[1590,129],[1589,130],[1588,131],[1629,132],[1421,133],[658,134],[1478,11],[1575,135],[1572,136],[1574,137],[1573,138],[1525,139],[1524,140],[1516,141],[1517,141],[1521,142],[1520,143],[1518,141],[1519,143],[1499,144],[1498,145],[1487,146],[1488,147],[1497,148],[1486,149],[1496,150],[1492,151],[1495,152],[1494,152],[1490,153],[1491,153],[1489,153],[1493,153],[1500,154],[1479,147],[1483,155],[1480,146],[1481,146],[1482,146],[1420,156],[1419,157],[1583,158],[1625,159],[1566,160],[1567,161],[1565,11],[1626,11],[1550,162],[1526,163],[1551,164],[1552,165],[1443,166],[1508,167],[1514,168],[1515,169],[1617,170],[1475,171],[1477,172],[1474,173],[1476,55],[1630,174],[589,5],[1554,175],[1556,176],[1557,177],[1569,178],[1568,179],[1562,180],[1558,176],[1564,181],[1563,181],[1561,182],[1570,183],[1560,184],[1502,185],[1505,11],[1511,186],[1507,187],[1509,188],[1510,189],[1506,190],[1503,185],[1512,191],[1484,192],[1758,193],[1757,194],[1759,195],[1760,196],[1602,197],[1761,198],[1607,199],[1763,200],[1764,201],[1610,202],[1485,185],[598,11],[1582,11],[1459,11],[1461,11],[1586,203],[1465,41],[1504,11],[1762,204],[1513,11],[1464,11],[1470,11],[1600,11],[1765,11],[1766,11],[1473,11],[1767,11],[1601,11],[1768,11],[1450,205],[766,206],[1104,207],[1105,208],[1106,209],[1109,210],[1107,209],[1108,211],[688,212],[681,213],[682,213],[683,214],[684,213],[685,214],[686,213],[690,215],[687,216],[689,213],[678,217],[680,218],[1037,213],[673,219],[674,219],[675,219],[679,219],[676,219],[677,219],[1036,220],[1048,221],[1049,221],[1050,222],[691,221],[1084,221],[1085,223],[1039,224],[693,225],[694,226],[730,227],[692,228],[695,225],[696,225],[728,229],[729,230],[731,226],[732,226],[733,226],[734,226],[745,226],[735,226],[736,226],[737,226],[749,226],[739,226],[740,226],[764,231],[757,226],[746,226],[759,226],[747,226],[748,226],[738,226],[758,226],[756,226],[760,226],[761,226],[762,226],[751,226],[752,226],[753,226],[741,226],[742,226],[750,226],[743,226],[744,226],[763,226],[754,226],[755,226],[765,232],[672,233],[660,221],[1035,234],[1018,235],[1033,236],[1038,237],[1097,238],[1098,221],[1099,221],[1102,239],[1100,221],[1101,221],[1110,240],[1019,221],[1649,241],[1664,242],[1663,243],[1665,244],[1652,245],[1644,246],[1656,247],[1658,248],[1659,249],[1657,221],[1655,250],[1662,251],[1670,252],[1685,253],[1730,254],[1667,255],[1686,256],[1687,256],[1688,256],[1672,252],[1689,256],[1690,256],[1673,257],[1691,256],[1692,258],[1693,256],[1694,256],[1695,256],[1696,256],[1671,252],[1684,259],[1731,260],[1674,252],[1732,261],[1697,256],[1698,258],[1733,262],[1699,258],[1734,262],[1729,263],[1700,256],[1735,264],[1701,256],[1736,260],[1737,262],[1702,256],[1704,265],[1703,266],[1738,267],[1705,256],[1706,256],[1707,256],[1708,256],[1709,256],[1675,252],[1739,268],[1710,269],[1712,270],[1711,266],[1740,260],[1741,262],[1676,252],[1713,271],[1742,262],[1714,256],[1743,262],[1755,272],[1715,256],[1677,252],[1744,273],[1716,271],[1745,262],[1717,266],[1718,258],[1746,274],[1719,275],[1747,276],[1720,277],[1678,252],[1721,266],[1722,256],[1723,278],[1748,279],[1679,280],[1680,281],[1749,268],[1724,256],[1750,268],[1725,256],[1726,282],[1727,271],[1751,268],[1681,252],[1752,268],[1753,268],[1682,252],[1683,252],[1660,283],[1754,268],[1728,266],[1668,284],[1654,285],[1756,286],[1666,287],[1645,221],[1653,221],[1646,221],[1647,221],[1648,288],[1661,289],[1650,221],[1651,290],[1669,291],[332,221],[1769,292],[1773,293],[1778,294],[1782,295],[1779,295],[1780,296],[1781,297],[1772,296],[1787,298],[1770,292],[1777,299],[2352,300],[1788,292],[1774,295],[2351,295],[1789,298],[1775,295],[1791,301],[1792,302],[1790,295],[1786,303],[1793,304],[1795,305],[1796,306],[1797,292],[1798,307],[1784,308],[1776,295],[1771,292],[1799,296],[1800,309],[1785,296],[1801,296],[1802,307],[1803,295],[1804,296],[1805,292],[1806,296],[1807,309],[1808,310],[1810,311],[1809,295],[1811,312],[1812,302],[1794,295],[1783,221],[1034,221],[2472,313],[2496,314],[2299,221],[2282,315],[2300,316],[2281,221],[1529,317],[1528,318],[1527,221],[609,319],[1933,319],[132,320],[133,320],[134,207],[90,321],[135,322],[136,323],[137,324],[88,221],[138,325],[139,326],[140,327],[141,328],[142,329],[143,330],[144,330],[146,221],[145,331],[147,332],[148,333],[149,334],[131,335],[89,221],[150,336],[151,337],[152,338],[185,339],[153,340],[154,341],[155,342],[156,343],[157,344],[158,345],[159,346],[160,347],[161,348],[162,349],[163,349],[164,350],[165,221],[166,221],[167,351],[169,352],[168,353],[170,354],[171,355],[172,356],[173,357],[174,358],[175,359],[176,360],[177,361],[178,362],[179,363],[180,364],[181,365],[182,366],[183,367],[184,368],[2503,369],[2502,370],[83,221],[275,371],[490,292],[276,372],[274,292],[491,373],[272,374],[273,375],[81,221],[84,376],[488,292],[85,292],[590,221],[592,377],[593,378],[599,221],[1441,379],[1442,380],[1440,381],[1439,221],[1117,382],[1116,221],[1114,383],[1115,384],[1045,221],[1083,385],[1070,386],[1068,221],[1069,387],[1071,388],[1072,389],[1073,390],[1074,391],[1082,392],[1075,391],[1076,389],[1077,393],[1078,390],[1079,391],[1080,390],[1081,390],[1094,394],[1092,395],[1628,396],[1627,397],[1093,398],[1042,383],[1043,383],[1044,399],[1041,400],[1046,401],[1047,240],[1091,402],[1051,403],[1088,404],[1089,405],[1090,406],[1113,407],[1422,387],[1095,408],[1065,409],[1063,410],[1086,411],[1040,408],[1066,412],[1087,413],[1064,414],[1067,408],[1096,221],[1103,415],[1059,416],[1055,221],[1057,417],[1054,418],[1052,221],[1062,419],[1058,420],[1056,421],[1060,422],[1053,221],[1061,221],[668,423],[664,221],[666,424],[663,425],[661,221],[671,426],[667,427],[665,428],[669,429],[662,221],[670,221],[1830,11],[587,430],[2449,431],[2470,221],[2464,432],[2451,433],[2467,434],[2450,435],[2448,436],[2452,437],[2446,438],[2453,221],[2471,439],[2454,440],[2463,441],[2465,442],[2447,443],[2469,444],[2466,445],[2468,446],[2455,447],[2461,448],[2458,449],[2460,450],[2459,451],[2457,452],[2456,221],[2462,453],[2445,454],[2494,221],[2493,221],[2487,455],[2474,456],[2473,457],[2444,458],[2475,459],[2442,460],[2476,221],[2495,461],[2477,462],[2486,463],[2488,464],[2443,465],[2492,466],[2490,467],[2489,468],[2491,469],[2478,470],[2484,471],[2481,472],[2483,473],[2482,474],[2480,475],[2479,221],[2485,476],[1815,477],[1814,478],[1448,221],[2353,479],[82,221],[591,221],[2070,480],[2049,481],[2146,221],[2050,482],[1986,480],[1987,221],[1988,221],[1989,221],[1990,221],[1991,221],[1992,221],[1993,221],[1994,221],[1995,221],[1996,221],[1997,221],[1998,480],[1999,480],[2000,221],[2001,221],[2002,221],[2003,221],[2004,221],[2005,221],[2006,221],[2007,221],[2008,221],[2010,221],[2009,221],[2011,221],[2012,221],[2013,480],[2014,221],[2015,221],[2016,480],[2017,221],[2018,221],[2019,480],[2020,221],[2021,480],[2022,480],[2023,480],[2024,221],[2025,480],[2026,480],[2027,480],[2028,480],[2029,480],[2031,480],[2032,221],[2033,221],[2030,480],[2034,480],[2035,221],[2036,221],[2037,221],[2038,221],[2039,221],[2040,221],[2041,221],[2042,221],[2043,221],[2044,221],[2045,221],[2046,480],[2047,221],[2048,221],[2051,483],[2052,480],[2053,480],[2054,484],[2055,485],[2056,480],[2057,480],[2058,480],[2059,480],[2062,480],[2060,221],[2061,221],[1984,221],[2063,221],[2064,221],[2065,221],[2066,221],[2067,221],[2068,221],[2069,221],[2071,486],[2072,221],[2073,221],[2074,221],[2076,221],[2075,221],[2077,221],[2078,221],[2079,221],[2080,480],[2081,221],[2082,221],[2083,221],[2084,221],[2085,480],[2086,480],[2088,480],[2087,480],[2089,221],[2090,221],[2091,221],[2092,221],[2239,487],[2093,480],[2094,480],[2095,221],[2096,221],[2097,221],[2098,221],[2099,221],[2100,221],[2101,221],[2102,221],[2103,221],[2104,221],[2105,221],[2106,221],[2107,480],[2108,221],[2109,221],[2110,221],[2111,221],[2112,221],[2113,221],[2114,221],[2115,221],[2116,221],[2117,221],[2118,480],[2119,221],[2120,221],[2121,221],[2122,221],[2123,221],[2124,221],[2125,221],[2126,221],[2127,221],[2128,480],[2129,221],[2130,221],[2131,221],[2132,221],[2133,221],[2134,221],[2135,221],[2136,221],[2137,480],[2138,221],[2139,221],[2140,221],[2141,221],[2142,221],[2143,221],[2144,480],[2145,221],[2147,488],[1983,480],[2148,221],[2149,480],[2150,221],[2151,221],[2152,221],[2153,221],[2154,221],[2155,221],[2156,221],[2157,221],[2158,221],[2159,480],[2160,221],[2161,221],[2162,221],[2163,221],[2164,221],[2165,221],[2166,221],[2171,489],[2169,490],[2170,491],[2168,492],[2167,480],[2172,221],[2173,221],[2174,480],[2175,221],[2176,221],[2177,221],[2178,221],[2179,221],[2180,221],[2181,221],[2182,221],[2183,221],[2184,480],[2185,480],[2186,221],[2187,221],[2188,221],[2189,480],[2190,221],[2191,480],[2192,221],[2193,486],[2194,221],[2195,221],[2196,221],[2197,221],[2198,221],[2199,221],[2200,221],[2201,221],[2202,221],[2203,480],[2204,480],[2205,221],[2206,221],[2207,221],[2208,221],[2209,221],[2210,221],[2211,221],[2212,221],[2213,221],[2214,221],[2215,221],[2216,221],[2217,480],[2218,480],[2219,221],[2220,221],[2221,480],[2222,221],[2223,221],[2224,221],[2225,221],[2226,221],[2227,221],[2228,221],[2229,221],[2230,221],[2231,221],[2232,221],[2233,221],[2234,480],[1985,493],[2235,221],[2236,221],[2237,221],[2238,221],[186,494],[86,495],[87,496],[1407,497],[1411,498],[1356,499],[1171,221],[1121,500],[1405,501],[1406,502],[1119,221],[1408,503],[1193,504],[1136,505],[1159,506],[1168,507],[1139,507],[1140,508],[1141,508],[1167,509],[1142,510],[1143,508],[1149,511],[1144,512],[1145,508],[1146,508],[1169,513],[1138,514],[1147,507],[1148,512],[1150,515],[1151,515],[1152,512],[1153,508],[1154,507],[1155,508],[1156,516],[1157,516],[1158,508],[1180,517],[1188,518],[1166,519],[1196,520],[1160,521],[1162,522],[1163,519],[1174,523],[1182,524],[1187,525],[1184,526],[1189,527],[1177,528],[1178,529],[1185,530],[1186,531],[1192,532],[1183,533],[1161,503],[1194,534],[1137,503],[1181,535],[1179,536],[1165,537],[1164,519],[1195,538],[1170,539],[1190,221],[1191,540],[1410,541],[1120,503],[1231,221],[1248,542],[1197,543],[1222,544],[1229,545],[1198,545],[1199,545],[1200,546],[1228,547],[1201,548],[1216,545],[1202,549],[1203,549],[1204,546],[1205,545],[1206,546],[1207,545],[1230,550],[1208,545],[1209,545],[1210,551],[1211,545],[1212,545],[1213,551],[1214,546],[1215,545],[1217,552],[1218,551],[1219,545],[1220,546],[1221,545],[1243,553],[1239,554],[1227,555],[1251,556],[1223,557],[1224,555],[1240,558],[1232,559],[1241,560],[1238,561],[1236,562],[1242,563],[1235,564],[1247,565],[1237,566],[1249,567],[1244,568],[1233,569],[1226,570],[1225,555],[1250,571],[1234,539],[1245,221],[1246,572],[1123,573],[1313,574],[1252,575],[1287,576],[1296,577],[1253,578],[1254,578],[1255,579],[1256,578],[1295,580],[1257,581],[1258,582],[1259,583],[1260,578],[1297,584],[1298,585],[1261,578],[1263,586],[1264,577],[1266,587],[1267,588],[1268,588],[1269,579],[1270,578],[1271,578],[1272,584],[1273,579],[1274,579],[1275,588],[1276,578],[1277,577],[1278,578],[1279,579],[1280,589],[1265,590],[1281,578],[1282,579],[1283,578],[1284,578],[1285,578],[1286,578],[1415,591],[1308,592],[1294,593],[1318,594],[1288,595],[1290,596],[1291,593],[1412,597],[1301,598],[1307,599],[1303,600],[1309,601],[1413,602],[1414,529],[1304,603],[1306,604],[1312,605],[1302,606],[1289,503],[1314,607],[1262,503],[1300,608],[1305,609],[1293,610],[1292,593],[1315,611],[1316,221],[1317,612],[1299,539],[1310,221],[1311,613],[1417,614],[1418,615],[1416,616],[1132,617],[1125,618],[1175,503],[1172,619],[1176,620],[1173,621],[1367,622],[1344,623],[1350,624],[1319,624],[1320,624],[1321,625],[1349,626],[1322,627],[1337,624],[1323,628],[1324,628],[1325,625],[1326,624],[1327,629],[1328,624],[1351,630],[1329,624],[1330,624],[1331,631],[1332,624],[1333,624],[1334,631],[1335,625],[1336,624],[1338,632],[1339,631],[1340,624],[1341,625],[1342,624],[1343,624],[1364,633],[1355,634],[1370,635],[1345,636],[1346,637],[1359,638],[1352,639],[1363,640],[1354,641],[1362,642],[1361,643],[1366,644],[1353,645],[1368,646],[1365,647],[1360,648],[1348,649],[1347,637],[1369,650],[1358,651],[1357,652],[1128,653],[1130,654],[1129,653],[1131,653],[1134,655],[1133,656],[1135,657],[1126,658],[1403,659],[1371,660],[1396,661],[1400,662],[1399,663],[1372,664],[1401,665],[1392,666],[1393,662],[1394,667],[1395,668],[1380,669],[1388,670],[1398,671],[1404,672],[1373,673],[1374,671],[1377,674],[1383,675],[1387,676],[1385,677],[1389,678],[1378,679],[1381,680],[1386,681],[1402,682],[1384,683],[1382,684],[1379,685],[1397,686],[1375,687],[1391,688],[1376,539],[1390,689],[1124,539],[1122,690],[1127,691],[1409,221],[2276,692],[2277,693],[2242,221],[2250,694],[2244,695],[2251,221],[2273,696],[2248,697],[2272,698],[2269,699],[2252,700],[2253,221],[2246,221],[2243,221],[2274,701],[2270,702],[2254,221],[2271,703],[2255,704],[2257,705],[2258,706],[2247,707],[2259,708],[2260,707],[2262,708],[2263,709],[2264,710],[2266,711],[2261,712],[2267,713],[2268,714],[2245,715],[2265,716],[2249,717],[2256,221],[2275,718],[616,221],[617,719],[614,221],[615,221],[1559,221],[1445,221],[1453,720],[1454,721],[637,722],[634,221],[636,723],[635,724],[633,725],[632,726],[650,727],[649,728],[655,729],[653,728],[654,730],[645,731],[644,732],[2389,292],[727,733],[698,734],[707,734],[699,734],[708,734],[700,734],[701,734],[715,734],[714,734],[716,734],[717,734],[709,734],[702,734],[710,734],[703,734],[711,734],[704,734],[706,734],[713,734],[712,734],[718,734],[705,734],[719,734],[724,734],[725,734],[720,734],[697,221],[726,221],[722,734],[721,734],[723,734],[858,221],[980,735],[859,736],[860,737],[999,738],[1000,739],[1001,740],[1002,741],[1003,742],[1004,743],[992,744],[987,745],[988,746],[989,747],[991,742],[990,748],[986,744],[993,745],[995,749],[994,750],[985,742],[984,751],[998,744],[981,745],[982,752],[983,753],[997,742],[996,754],[861,745],[856,755],[977,756],[857,757],[979,758],[978,759],[884,760],[881,761],[941,762],[919,763],[898,764],[826,765],[1017,766],[963,767],[1006,768],[1005,736],[783,769],[792,770],[796,771],[905,772],[816,773],[787,774],[798,775],[895,773],[875,773],[910,776],[974,773],[769,777],[813,777],[782,778],[770,777],[843,773],[821,779],[822,780],[791,781],[800,782],[801,777],[802,783],[804,784],[834,785],[867,773],[969,773],[771,773],[850,786],[784,787],[793,777],[795,788],[835,777],[836,789],[837,790],[838,790],[828,791],[831,792],[788,793],[805,773],[971,773],[772,773],[806,773],[807,794],[808,773],[768,773],[847,795],[810,796],[914,797],[912,773],[913,798],[915,799],[811,773],[968,773],[973,773],[842,800],[794,769],[812,773],[844,801],[845,802],[809,773],[825,773],[1013,803],[975,804],[767,221],[876,773],[846,773],[896,773],[814,805],[815,806],[839,773],[904,807],[897,773],[902,808],[903,809],[789,810],[942,773],[851,811],[786,773],[818,812],[781,813],[852,790],[785,787],[797,777],[840,814],[773,777],[817,773],[824,773],[833,815],[820,816],[829,773],[819,817],[774,790],[832,773],[972,773],[970,773],[790,810],[848,818],[849,773],[803,773],[830,773],[943,819],[841,773],[799,773],[823,820],[879,821],[901,822],[886,221],[868,823],[865,824],[955,825],[920,826],[889,827],[944,828],[883,829],[958,830],[888,831],[906,832],[921,833],[946,834],[961,835],[918,836],[885,837],[893,838],[882,839],[917,840],[1016,841],[956,842],[945,843],[877,844],[954,845],[1007,846],[1008,846],[1012,847],[1011,848],[862,849],[1010,846],[1009,846],[908,850],[911,851],[953,852],[952,853],[776,221],[909,854],[892,855],[950,856],[775,221],[880,857],[916,858],[957,859],[779,221],[891,860],[948,861],[899,862],[887,863],[949,864],[907,865],[947,866],[874,867],[900,868],[951,869],[777,221],[890,870],[854,871],[976,872],[855,873],[959,874],[966,875],[967,876],[965,877],[933,878],[863,879],[934,880],[964,881],[870,882],[872,883],[922,884],[926,885],[873,886],[871,886],[925,887],[866,888],[927,889],[928,890],[929,891],[937,892],[935,893],[930,894],[931,895],[932,896],[938,897],[936,898],[869,899],[924,900],[939,901],[940,902],[923,903],[878,904],[864,755],[827,905],[1014,906],[1015,221],[960,907],[962,759],[853,221],[894,221],[778,221],[780,908],[2395,909],[2396,909],[2394,221],[1447,292],[1961,910],[1935,911],[1936,912],[1937,912],[1938,912],[1939,912],[1940,912],[1941,912],[1942,912],[1943,912],[1944,912],[1945,912],[1959,913],[1946,912],[1947,912],[1948,912],[1949,912],[1950,912],[1951,912],[1952,912],[1953,912],[1955,912],[1956,912],[1954,912],[1957,912],[1958,912],[1960,912],[1934,914],[1533,915],[1535,916],[1547,917],[1548,918],[1537,919],[1549,920],[1543,221],[1545,921],[1546,922],[1544,923],[1538,924],[1531,221],[1530,221],[1539,925],[1541,926],[1532,221],[1536,927],[1542,927],[1534,221],[1540,221],[1452,928],[1451,221],[1455,929],[1020,221],[1023,930],[1025,931],[1027,932],[1026,933],[1028,934],[1032,935],[1029,930],[1030,933],[1031,933],[1022,933],[1021,936],[1024,221],[1817,292],[535,937],[540,938],[530,939],[296,940],[336,941],[515,942],[331,943],[313,221],[487,221],[294,221],[504,944],[361,945],[295,221],[415,946],[339,947],[340,948],[486,949],[501,950],[397,951],[509,952],[510,953],[508,954],[507,221],[505,955],[338,956],[297,957],[440,221],[441,958],[367,959],[298,960],[368,959],[363,959],[285,959],[334,961],[333,221],[514,962],[526,221],[321,221],[462,963],[463,964],[457,292],[562,221],[465,221],[466,46],[458,965],[567,966],[566,967],[561,221],[382,221],[500,968],[499,221],[560,969],[459,292],[391,970],[387,971],[392,972],[390,221],[389,973],[388,221],[563,221],[559,221],[565,974],[564,221],[386,971],[554,975],[557,976],[376,977],[375,978],[374,979],[570,292],[373,980],[355,221],[573,221],[1832,981],[1831,221],[576,221],[575,292],[577,982],[278,221],[511,983],[512,984],[513,985],[291,221],[324,221],[290,986],[277,221],[478,292],[283,987],[477,988],[476,989],[467,221],[468,221],[475,221],[470,221],[473,990],[469,221],[471,991],[474,992],[472,991],[293,221],[288,221],[289,959],[344,221],[349,993],[350,994],[348,995],[346,996],[347,997],[342,221],[484,46],[370,46],[534,998],[541,999],[545,1000],[518,1001],[517,221],[358,221],[578,1002],[529,1003],[460,1004],[461,1005],[455,1006],[446,221],[483,1007],[520,292],[447,1008],[485,1009],[480,1010],[479,221],[481,221],[452,221],[439,1011],[519,1012],[522,1013],[449,1014],[453,1015],[444,1016],[496,1017],[528,1018],[401,1019],[416,1020],[286,1021],[527,1022],[282,1023],[351,1024],[343,221],[352,1025],[428,1026],[341,221],[427,1027],[271,221],[421,1028],[323,221],[442,1029],[417,221],[287,221],[317,221],[425,1030],[292,221],[353,1031],[451,1032],[516,1033],[450,221],[424,221],[345,221],[430,1034],[431,1035],[506,221],[433,1036],[435,1037],[434,1038],[326,221],[423,1021],[437,1039],[400,1040],[422,1041],[429,1042],[301,221],[305,221],[304,221],[303,221],[308,221],[302,221],[311,221],[310,221],[307,221],[306,221],[309,221],[312,1043],[300,221],[409,1044],[408,221],[413,1045],[410,1046],[412,1047],[414,1045],[411,1046],[322,1048],[371,1049],[525,1050],[579,221],[549,1051],[551,1052],[448,1053],[550,1054],[523,1012],[464,1012],[299,221],[402,1055],[318,1056],[319,1057],[320,1058],[316,1059],[495,1059],[365,1059],[403,1060],[366,1060],[315,1061],[314,221],[407,1062],[406,1063],[405,1064],[404,1065],[524,1066],[494,1067],[493,1068],[456,1069],[489,1070],[492,1071],[503,1072],[502,1073],[498,1074],[399,1075],[396,1076],[398,1077],[395,1078],[436,1079],[426,221],[539,221],[438,1080],[497,221],[354,1081],[445,983],[443,1082],[356,1083],[359,1084],[574,221],[357,1085],[360,1085],[537,221],[536,221],[538,221],[572,221],[362,1086],[521,221],[393,1087],[385,292],[337,221],[281,1088],[369,221],[543,292],[280,221],[553,1089],[384,292],[547,46],[383,1090],[532,1091],[381,1089],[284,221],[555,1092],[379,292],[380,292],[372,221],[279,221],[378,1093],[377,1094],[325,1095],[454,348],[364,348],[432,221],[419,1096],[418,221],[482,971],[394,292],[533,1097],[266,292],[269,1098],[270,1099],[267,292],[268,221],[335,1100],[330,1101],[329,221],[328,1102],[327,221],[531,1103],[542,1104],[544,1105],[546,1106],[1833,1107],[548,1108],[552,1109],[585,1110],[556,1110],[584,1111],[558,1112],[568,1113],[569,1114],[571,1115],[580,1116],[583,986],[582,221],[581,1117],[1639,1118],[1640,1119],[1641,1120],[1643,1121],[1638,1122],[1631,221],[1637,1123],[1633,1124],[1632,1123],[1634,1125],[1636,1126],[1642,221],[1635,221],[612,1127],[625,1128],[610,221],[611,1129],[626,1130],[621,1131],[622,1132],[620,1133],[624,1134],[618,1135],[613,1136],[623,1137],[619,1128],[2501,1138],[2498,1117],[2500,1139],[2499,221],[2497,221],[1118,1140],[631,1141],[628,1142],[629,221],[630,221],[627,1143],[1813,1144],[1456,292],[2240,1145],[2357,221],[2372,1146],[2373,1146],[2386,1147],[2374,1148],[2375,1148],[2376,1149],[2370,1150],[2368,1151],[2359,221],[2363,1152],[2367,1153],[2365,1154],[2371,1155],[2360,1156],[2361,1157],[2362,1158],[2364,1159],[2366,1160],[2369,1161],[2377,1148],[2378,1148],[2379,1148],[2380,1146],[2381,1148],[2382,1148],[2358,1148],[2383,221],[2385,1162],[2384,1148],[1825,1163],[1821,292],[1822,292],[1820,221],[1823,1164],[1824,1163],[1965,1165],[1964,1166],[2398,1167],[2397,1168],[1852,221],[1866,1169],[1847,292],[1849,1170],[1851,1171],[1850,1172],[1848,221],[1853,221],[1854,221],[1855,221],[1856,221],[1857,221],[1858,221],[1859,221],[1860,221],[1861,221],[1862,1173],[1864,1174],[1865,1174],[1863,221],[1867,1175],[2322,1176],[2324,1177],[2314,1178],[2319,1179],[2320,1180],[2326,1181],[2321,1182],[2318,1183],[2317,1184],[2316,1185],[2327,1186],[2284,1179],[2285,1179],[2325,1179],[2330,1187],[2340,1188],[2334,1188],[2342,1188],[2346,1188],[2332,1189],[2333,1188],[2335,1188],[2338,1188],[2341,1188],[2337,1190],[2339,1188],[2343,292],[2336,1179],[2331,1191],[2293,292],[2297,292],[2287,1179],[2290,292],[2295,1179],[2296,1192],[2289,1193],[2292,292],[2294,292],[2291,1194],[2280,292],[2279,292],[2348,1195],[2345,1196],[2311,1197],[2310,1179],[2308,292],[2309,1179],[2312,1198],[2313,1199],[2306,292],[2302,1200],[2305,1179],[2304,1179],[2303,1179],[2298,1179],[2307,1200],[2344,1179],[2323,1201],[2329,1202],[2328,1203],[2347,221],[2315,221],[2288,221],[2286,1204],[652,1205],[651,1206],[639,1207],[638,1208],[657,1209],[656,1210],[648,1211],[647,728],[646,1212],[1963,1213],[1962,1214],[420,1215],[1523,292],[643,1216],[641,1217],[642,1218],[640,221],[1449,221],[606,1219],[605,221],[79,221],[80,221],[13,221],[14,221],[16,221],[15,221],[2,221],[17,221],[18,221],[19,221],[20,221],[21,221],[22,221],[23,221],[24,221],[3,221],[25,221],[26,221],[4,221],[27,221],[31,221],[28,221],[29,221],[30,221],[32,221],[33,221],[34,221],[5,221],[35,221],[36,221],[37,221],[38,221],[6,221],[42,221],[39,221],[40,221],[41,221],[43,221],[7,221],[44,221],[49,221],[50,221],[45,221],[46,221],[47,221],[48,221],[8,221],[54,221],[51,221],[52,221],[53,221],[55,221],[9,221],[56,221],[57,221],[58,221],[60,221],[59,221],[61,221],[62,221],[10,221],[63,221],[64,221],[65,221],[11,221],[66,221],[67,221],[68,221],[69,221],[70,221],[1,221],[71,221],[72,221],[12,221],[76,221],[74,221],[78,221],[73,221],[77,221],[75,221],[2420,1220],[2430,1221],[2419,1220],[2440,1222],[2411,1223],[2410,1224],[2439,1117],[2433,1225],[2438,1226],[2413,1227],[2427,1228],[2412,1229],[2436,1230],[2408,1231],[2407,1117],[2437,1232],[2409,1233],[2414,1234],[2415,221],[2418,1234],[2405,221],[2441,1235],[2431,1236],[2422,1237],[2423,1238],[2425,1239],[2421,1240],[2424,1241],[2434,1117],[2416,1242],[2417,1243],[2426,1244],[2406,1140],[2429,1236],[2428,1234],[2432,221],[2435,1245],[108,1246],[119,1247],[106,1248],[120,1140],[129,1249],[97,1250],[98,1251],[96,1224],[128,1117],[123,1252],[127,1253],[100,1254],[116,1255],[99,1256],[126,1257],[94,1258],[95,1252],[101,1259],[102,221],[107,1260],[105,1259],[92,1261],[130,1262],[121,1263],[111,1264],[110,1259],[112,1265],[114,1266],[109,1267],[113,1268],[124,1117],[103,1269],[104,1270],[115,1271],[93,1140],[118,1272],[117,1259],[122,221],[91,221],[125,1273],[608,1274],[604,221],[607,1275],[1920,292],[2355,479],[601,1276],[600,319],[603,1277],[602,1278],[2283,1279],[2301,1280],[1900,1281],[1901,221],[1899,221],[1902,1282],[1903,1283],[1438,1284],[1430,1285],[1437,1286],[1432,221],[1433,221],[1431,1287],[1434,1288],[1425,221],[1426,221],[1427,1284],[1429,1289],[1435,221],[1436,1290],[1428,1291],[263,1292],[257,1293],[261,1294],[258,1294],[254,1293],[262,1295],[259,1296],[1111,1292],[260,1294],[255,1297],[256,1298],[250,1299],[194,1300],[196,1301],[249,221],[195,1302],[253,1303],[252,1304],[251,1305],[187,221],[197,1300],[198,221],[189,1306],[193,1307],[188,221],[190,1308],[191,1309],[192,221],[1112,1310],[199,1311],[200,1311],[201,1311],[202,1311],[203,1311],[204,1311],[205,1311],[206,1311],[207,1311],[208,1311],[209,1311],[210,1311],[211,1311],[213,1311],[212,1311],[214,1311],[215,1311],[216,1311],[217,1311],[248,1312],[218,1311],[219,1311],[220,1311],[221,1311],[222,1311],[223,1311],[224,1311],[225,1311],[226,1311],[227,1311],[228,1311],[229,1311],[230,1311],[232,1311],[231,1311],[233,1311],[234,1311],[235,1311],[236,1311],[237,1311],[238,1311],[239,1311],[240,1311],[241,1311],[242,1311],[243,1311],[244,1311],[247,1311],[245,1311],[246,1311],[1593,1313],[1599,1314],[1597,1315],[1595,1315],[1598,1315],[1594,1315],[1596,1315],[1592,1315],[1591,221],[264,219],[594,1316]],"affectedFilesPendingEmit":[265,588,1423,1424,1444,1827,1842,1840,1845,1846,1968,1834,596,1837,1970,1972,1975,597,1446,659,1976,1977,1870,1890,1869,1889,1875,1888,1882,1884,1879,1924,1874,1911,1931,1930,1979,1967,1966,1878,1921,1891,1898,1886,1897,1892,1913,1908,1904,1917,1918,1919,1909,1905,1907,1916,1915,1914,1906,1826,1844,1819,1922,1835,1836,1457,1932,1923,1978,1818,1969,1980,1981,1873,1838,1973,1982,1816,2241,1843,2278,2349,1929,2350,1896,2354,1871,1881,2356,1872,1894,2387,2388,2390,1883,1880,1926,2391,2392,2393,2399,1925,1928,1841,1927,1974,1868,1876,1885,1839,1912,1971,1895,1828,1910,2400,2401,1877,1893,2402,2404,2403,1829,1458,1460,1462,1463,1466,595,1467,1469,1468,1471,1578,1576,1555,1472,1553,1571,1577,1522,1501,1579,1580,1887,1609,1612,1623,1624,1611,1613,1614,1615,1616,1618,1619,1620,1621,1622,1581,1584,1585,1603,1604,1605,1606,1608,1587,1590,1589,1588,1629,1421,658,1478,1575,1572,1574,1573,1525,1524,1516,1517,1521,1520,1518,1519,1499,1498,1487,1488,1497,1486,1496,1492,1495,1494,1490,1491,1489,1493,1500,1479,1483,1480,1481,1482,1420,1419,1583,1625,1566,1567,1565,1626,1550,1526,1551,1552,1443,1508,1514,1515,1617,1475,1477,1474,1476,1630,589,1554,1556,1557,1569,1568,1562,1558,1564,1563,1561,1570,1560,1502,1505,1511,1507,1509,1510,1506,1503,1512,1484,1758,1757,1759,1760,1602,1761,1607,1763,1764,1610,1485,598,1582,1459,1461,1586,1465,1504,1762,1513,1464,1470,1600,1765,1766,1473,1767,1601,1768,1450],"version":"5.8.3"} \ No newline at end of file
+{"fileNames":["../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.bun/@types+react@19.2.10/node_modules/@types/react/global.d.ts","../../node_modules/.bun/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.bun/@types+react@19.2.10/node_modules/@types/react/index.d.ts","../../node_modules/.bun/@types+react@19.2.10/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.bun/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.bun/@content-collections+core@0.14.1+5bbfac422febb175/node_modules/@content-collections/core/dist/index.d.ts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/typealiases.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/index.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/zoderror.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/enumutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/partialutil.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/standard-schema.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/external.d.cts","../../node_modules/.bun/zod@3.25.76/node_modules/zod/index.d.cts","./content-collections.ts","../../node_modules/.bun/drizzle-kit@0.31.4/node_modules/drizzle-kit/index-baurj6ib.d.mts","../../node_modules/.bun/drizzle-kit@0.31.4/node_modules/drizzle-kit/index.d.mts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/utility.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/header.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/readable.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/connector.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/client-stats.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/errors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/api.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/util.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/patch.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/cache.d.ts","../../node_modules/.bun/undici-types@7.10.0/node_modules/undici-types/index.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/globals.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/assert.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/buffer.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/child_process.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/cluster.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/console.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/constants.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/crypto.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dgram.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dns.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/domain.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/dom-events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/fs.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/http.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/http2.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/https.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/inspector.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/module.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/net.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/os.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/path.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/process.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/punycode.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/querystring.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/readline.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/repl.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/sea.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/sqlite.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/stream/web.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/test.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/timers.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/tls.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/trace_events.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/tty.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/url.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/util.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/v8.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/vm.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/wasi.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/zlib.d.ts","../../node_modules/.bun/@types+node@24.2.1/node_modules/@types/node/index.d.ts","../../node_modules/.bun/dotenv@16.6.1/node_modules/dotenv/lib/main.d.ts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/registries.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/util.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/versions.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/schemas.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/checks.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/errors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/core.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/parse.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/regexes.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ar.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/az.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/be.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/bg.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ca.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/cs.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/da.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/de.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/en.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/eo.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/es.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fa.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fi.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/fr-ca.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/he.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hu.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/hy.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/id.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/is.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/it.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ja.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ka.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/kh.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/km.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ko.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/lt.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/mk.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ms.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/nl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/no.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ota.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ps.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/pt.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ru.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sl.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/sv.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ta.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/th.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/tr.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ua.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uk.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/ur.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/uz.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/vi.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-cn.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/zh-tw.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/yo.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/locales/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/doc.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/api.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/json-schema-generator.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/core/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/errors.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/parse.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/schemas.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/checks.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/compat.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/from-json-schema.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/iso.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/coerce.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/external.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/index.d.cts","../../packages/env/src/web.ts","./drizzle.config.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/global.d.ts","../../node_modules/.bun/csstype@3.1.3/node_modules/csstype/index.d.ts","../../node_modules/.bun/@types+prop-types@15.7.15/node_modules/@types/prop-types/index.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/styled-jsx/types/css.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/styled-jsx/types/macro.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/styled-jsx/types/style.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/styled-jsx/types/global.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/styled-jsx/types/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/get-page-files.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/canary.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/experimental.d.ts","../../node_modules/.bun/@types+react-dom@19.2.3+c3ba17a945f9f28a/node_modules/@types/react-dom/index.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/index.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/canary.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/experimental.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/fallback.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/webpack/webpack.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/entry-constants.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/constants.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/load-custom-routes.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/image-config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/body-streams.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/cache-control.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/setup-exception-listeners.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/worker.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/constants.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/bundler.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/experimental/ppr.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/page-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/require-hook.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-polyfill-crypto.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-baseline.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/random.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/date.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/node-environment.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/page-extensions-type.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-kind.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/cache-handlers/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/response-cache/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/app-router-headers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/render-result.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/instrumentation/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/coalesced-function.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-utils/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/trace/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/trace/trace.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/trace/shared.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/trace/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/load-jsconfig.d.ts","../../node_modules/.bun/@next+env@16.1.3/node_modules/@next/env/dist/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/telemetry/storage.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/build-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/bloom-filter.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack-config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/swc/generated-native.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/swc/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/parse-version-info.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/shared/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/parse-stack.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/server/shared.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/debug-channel.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/i18n-provider.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/next-url.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/request.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/after/builtin-request-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/response.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/deep-readonly.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/render.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/mitt.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/with-router.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/router.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/route-loader.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/page-loader.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/router.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/readonly-url-search-params.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/app-router-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/flight-data-helpers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/segment-cache/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/segment-cache/navigation.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/templates/pages.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/pages/module.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/load-default-error-components.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/base-http/node.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/response-cache/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-matchers/route-matcher.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/normalizer.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/request/suffix.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/request/rsc.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/request/next-data.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/static-paths/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/base-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/async-callback-set.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","../../node_modules/.bun/sharp@0.34.5/node_modules/sharp/lib/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/image-optimizer.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/next-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/lru-cache.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/use-cache/cache-life.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/static-paths-worker.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/dev/next-dev-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/next.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/render-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/route-module.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/load-components.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/adapter.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/app-dir-module.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/cache-signal.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/fallback-params.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/lazy-result.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/implicit-tags.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/staged-rendering.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/app-render.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/error-boundary.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/layout-router.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/render-from-template-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/client-page.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/client-segment.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/search-params.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/hooks-server-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/resolvers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/types/icons.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/metadata/metadata.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/lib/framework/boundary-components.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/rsc/taint.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/collect-segment-data.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/entry-base.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/templates/app-page.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/rendering-mode.d.ts","../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/jsx-dev-runtime.d.ts","../../node_modules/.bun/@types+react@19.2.10/node_modules/@types/react/compiler-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/client.d.ts","../../node_modules/.bun/@types+react-dom@18.3.7+fccada1f982c16e9/node_modules/@types/react-dom/server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-page/module.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/async-storage/work-store.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/http.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/redirect-status-code.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/redirect-error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/templates/app-route.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-route/module.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/segment-config/app/app-segments.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/utils.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/turborepo-access-trace/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/turborepo-access-trace/result.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/turborepo-access-trace/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/export/routes/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/export/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/export/worker.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/worker.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/after/after.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/after/after-context.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/create-error-handler.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/params.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/route-matches/route-match.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request-meta.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/cli/next-test.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/config-shared.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/base-http/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/api-utils/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/build/adapter/build-complete.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/utils.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/pages/_app.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/app.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/use-cache/cache-tag.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/cache.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/pages/_document.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/document.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/dynamic.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dynamic.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/pages/_error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/head.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/head.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/cookies.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/headers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/draft-mode.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/headers.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/get-img-props.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/image-component.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/shared/lib/image-external.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/image.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/link.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/link.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/unrecognized-action-error.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/redirect.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/not-found.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/forbidden.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/unauthorized.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/unstable-rethrow.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/navigation.react-server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/components/navigation.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/navigation.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/router.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/client/script.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/script.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@vercel/og/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/after/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/server/request/connection.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/server.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/types/global.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/types/compiled.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/image-types/global.d.ts","./.next/dev/types/routes.d.ts","./next-env.d.ts","../../node_modules/.bun/botid@1.4.2+dc73a62373ff452c/node_modules/botid/dist/next/config/index.d.ts","../../node_modules/.bun/@content-collections+next@0.2.11+131a5f6df76548b8/node_modules/@content-collections/next/dist/index.d.ts","./next.config.ts","../../node_modules/.bun/@napi-rs+canvas@0.1.92/node_modules/@napi-rs/canvas/index.d.ts","./scripts/generate-font-sprites.ts","./src/proxy.ts","../../packages/ui/src/icons/brand.tsx","../../packages/ui/src/icons/ui.tsx","../../packages/ui/src/icons/index.tsx","./src/constants/site-constants.ts","./src/app/metadata.ts","./src/app/robots.ts","./src/lib/blog/types.ts","../../node_modules/.bun/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../node_modules/.bun/vfile-message@4.0.2/node_modules/vfile-message/lib/index.d.ts","../../node_modules/.bun/vfile-message@4.0.2/node_modules/vfile-message/index.d.ts","../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/index.d.ts","../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/callable-instance.d.ts","../../node_modules/.bun/trough@2.2.0/node_modules/trough/lib/index.d.ts","../../node_modules/.bun/trough@2.2.0/node_modules/trough/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/index.d.ts","../../node_modules/.bun/unified@11.0.5/node_modules/unified/index.d.ts","../../node_modules/.bun/@types+hast@3.0.4/node_modules/@types/hast/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/html.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/token.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/decode-codepoint.d.ts","../../node_modules/.bun/entities@6.0.1/node_modules/entities/dist/esm/decode.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/interface.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/parser/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/tree-adapters/default.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/serializer/index.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.d.ts","../../node_modules/.bun/parse5@7.3.0/node_modules/parse5/dist/index.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/info.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/find.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/normalize.d.ts","../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/index.d.ts","../../node_modules/.bun/hast-util-from-parse5@8.0.3/node_modules/hast-util-from-parse5/lib/index.d.ts","../../node_modules/.bun/hast-util-from-parse5@8.0.3/node_modules/hast-util-from-parse5/index.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/errors.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/types.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/lib/index.d.ts","../../node_modules/.bun/hast-util-from-html@2.0.3/node_modules/hast-util-from-html/index.d.ts","../../node_modules/.bun/rehype-parse@9.0.1/node_modules/rehype-parse/lib/index.d.ts","../../node_modules/.bun/rehype-parse@9.0.1/node_modules/rehype-parse/index.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.d.ts","../../node_modules/.bun/stringify-entities@4.0.4/node_modules/stringify-entities/index.d.ts","../../node_modules/.bun/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.d.ts","../../node_modules/.bun/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/index.d.ts","../../node_modules/.bun/rehype-stringify@10.0.1/node_modules/rehype-stringify/index.d.ts","../../node_modules/.bun/rehype-slug@6.0.0/node_modules/rehype-slug/lib/index.d.ts","../../node_modules/.bun/rehype-slug@6.0.0/node_modules/rehype-slug/index.d.ts","../../node_modules/.bun/hast-util-is-element@3.0.0/node_modules/hast-util-is-element/lib/index.d.ts","../../node_modules/.bun/hast-util-is-element@3.0.0/node_modules/hast-util-is-element/index.d.ts","../../node_modules/.bun/rehype-autolink-headings@7.1.0/node_modules/rehype-autolink-headings/lib/index.d.ts","../../node_modules/.bun/rehype-autolink-headings@7.1.0/node_modules/rehype-autolink-headings/index.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/index.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/schema.d.ts","../../node_modules/.bun/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/index.d.ts","../../node_modules/.bun/rehype-sanitize@6.0.0/node_modules/rehype-sanitize/lib/index.d.ts","../../node_modules/.bun/rehype-sanitize@6.0.0/node_modules/rehype-sanitize/index.d.ts","./src/lib/blog/query.ts","./src/app/sitemap.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/helper.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/helper.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/standard-schema.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/error.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/cookies.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/openapi.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/endpoint.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/middleware.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/context.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/router.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/to-response.d.mts","../../node_modules/.bun/better-call@1.1.8/node_modules/better-call/dist/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/cookie.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/account.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/session.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/user.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/verification.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/get-tables.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/schema/shared.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/types.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/adapter/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/logger.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/utils.d.mts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/types.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/general/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/general/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/compact/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/flattened/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/general/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/verify.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/decrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/compact/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/flattened/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jws/general/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/sign.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/encrypt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwk/thumbprint.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwk/embedded.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwks/local.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwks/remote.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/jwt/unsecured.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/export.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/import.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/decode_protected_header.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/decode_jwt.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/errors.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/generate_key_pair.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/key/generate_secret.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/util/base64url.d.ts","../../node_modules/.bun/jose@6.1.3/node_modules/jose/dist/types/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/verify.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/oauth2/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/apple.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/discord.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/figma.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/github.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/google.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/slack.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/kick.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/linear.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/vk.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/notion.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/naver.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/line.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/polar.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/social-providers/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/context.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/api/index.d.mts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/identifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/check-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/default-value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/generated-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/schemable-identifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/insert-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/delete-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/update-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/type-error.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/merge-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/type-utils.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/references-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-definition-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/rename-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/raw-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alter-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/foreign-key-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/primary-key-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/unique-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/modify-column-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/add-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/rename-constraint-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alter-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/where-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-index-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-schema-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/value-list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/from-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/group-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/group-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/having-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/join-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/limit-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/offset-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/collate-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/order-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/order-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/alias-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-all-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/reference-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/simple-reference-expression-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/selection-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/common-table-expression-name-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/common-table-expression-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/with-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-modifier-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-source.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/explainable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/explain-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/set-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/fetch-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/top-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/select-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/create-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-schema-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-table-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/drop-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/output-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/returning-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/when-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/merge-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/column-update-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-conflict-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/on-duplicate-key-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/or-action-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/insert-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/update-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/using-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/delete-query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/query-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/refresh-materialized-view-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/query-id.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/compiled-query.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/database-connection.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/database-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/kysely-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/compilable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/default-value-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/column-definition-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/data-type-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/data-type-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/foreign-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-column-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-drop-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/select-query-builder-expression.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/binary-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operator-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/value-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/column-type.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/binary-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/join-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/table-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/join-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic-reference-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/select-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/collate-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/order-by-item-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/order-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/group-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/where-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/no-result-error.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/having-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/set-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/streamable.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/and-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/or-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/parens-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression-wrapper.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/order-by-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/select-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/coalesce-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/partition-by-item-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/partition-by-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/over-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/aggregate-function-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/partition-by-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/over-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/aggregate-function-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/function-module.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/case-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/case-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-path-leg-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-path-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-operator-chain-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/json-reference-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/json-path-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/tuple-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/select-from-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/expression/expression-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/expression-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/reference-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/unique-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/primary-key-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/check-constraint-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/alter-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-schema-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-index-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-schema-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-table-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/raw-builder/raw-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/create-type-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/drop-type-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/refresh-materialized-view-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/schema/schema.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dynamic/dynamic.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/primitive-value-list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/values-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/insert-values-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/update-set-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/returning-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/returning-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/output-interface.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/delete-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/cte-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/with-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/delete-from-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/update-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-builder/merge-query-builder.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/merge-into-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-creator.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/log.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/savepoint-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/provide-controlled-connection.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/kysely.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/raw-builder/sql.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/query-executor-base.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/default-query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-executor/noop-query-executor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/list-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/default-insert-value-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/unary-operation-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/function-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/tuple-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/matched-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/cast-node.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-visitor.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/query-compiler/default-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/default-connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/single-connection-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/driver/dummy-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mysql/mysql-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-adapter.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect-config.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-driver.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-introspector.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/dialect/mssql/mssql-query-compiler.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/migration/migrator.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/migration/file-migration-provider.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/camel-case/camel-case-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/with-schema/with-schema-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/operation-node/operation-node-transformer.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/infer-result.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/util/log-once.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/parser/unary-operation-parser.d.ts","../../node_modules/.bun/kysely@0.28.9/node_modules/kysely/dist/esm/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/init-options.d.mts","../../node_modules/.bun/@better-fetch+fetch@1.1.21/node_modules/@better-fetch/fetch/dist/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/atom/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/map/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/map-creator/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/clean-stores/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/task/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/computed/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/deep-map/path.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/deep-map/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/effect/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/keep-mount/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/lifecycle/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/listen-keys/index.d.ts","../../node_modules/.bun/nanostores@1.1.0/node_modules/nanostores/index.d.ts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/plugin-client.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/type.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/db/plugin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/types/plugin.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/helper.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/field.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/adapter-base.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/adapter-kysely.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/field-converter.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/adapters/kysely-adapter/types.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/get-migration.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/get-schema.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/color-depth.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/env-impl.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/env/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/internal-adapter.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/helper.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/standard-schema.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/error.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/cookies.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/openapi.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/endpoint.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/middleware.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/context.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/router.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/to-response.d.mts","../../node_modules/.bun/better-call@1.1.8+3b1ddfa528571d14/node_modules/better-call/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/api.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/plugins.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/adapter.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/utils/get-request-ip.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/middlewares/oauth.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/middlewares/origin-check.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/middlewares/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/account.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/callback.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/email-verification.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/error.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/ok.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/password.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/session.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/sign-in.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/sign-out.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/sign-up.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/update-user.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/routes/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/api/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/error/codes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/error/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/auth.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/types/models.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/schema.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/to-zod.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/with-hooks.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/db/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/client/path-to-object.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/client/types.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/auth/full.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/oauth2/state.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/utils/hide-metadata.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/deprecate.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/error-codes.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/id.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/json.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/string.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/utils/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/utils/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/async_hooks/index.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/global.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/request-state.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/transaction.d.mts","../../node_modules/.bun/@better-auth+core@1.4.15+914e986bb716334c/node_modules/@better-auth/core/dist/context/index.d.mts","../../node_modules/.bun/@better-auth+telemetry@1.4.15+a0cddfd1733416ff/node_modules/@better-auth/telemetry/dist/index.d.mts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/classic/index.d.cts","../../node_modules/.bun/zod@4.3.5/node_modules/zod/v4/index.d.cts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/index.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/adapters/drizzle-adapter/drizzle-adapter.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/adapters/drizzle-adapter/index.d.mts","../../node_modules/.bun/@upstash+redis@1.35.4/node_modules/@upstash/redis/zmscore-dwj9vh1g.d.mts","../../node_modules/.bun/@upstash+redis@1.35.4/node_modules/@upstash/redis/nodejs.d.mts","../../node_modules/.bun/postgres@3.4.7/node_modules/postgres/types/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/entity.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/logger.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/casing.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/operations.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/sql.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/conditions.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/expressions/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/aggregate.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/functions/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sql/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/sequence.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/int.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bigintt.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bytes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/date-duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/double-precision.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/localdate.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/localtime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/relative-duration.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/timestamptz.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/uuid.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/roles.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/policies.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/relations.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/query-promise.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/runnable-query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/refresh-materialized-view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/gel-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/binary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/datetime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/double.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/float.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/int.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/mediumint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/tinyint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/varbinary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/year.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/migrator.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/mysql-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/bigserial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/cidr.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/double-precision.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/inet.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/sequence.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/int.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/interval.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/jsonb.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/line.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/macaddr.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/macaddr8.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/numeric.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/point.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/smallserial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/uuid.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/roles.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/policies.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils/array.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/utils/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/binary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/boolean.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/char.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/date.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/datetime.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/decimal.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/double.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/enum.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/float.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/int.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/json.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/mediumint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/serial.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/smallint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/time.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/date.common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/timestamp.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/tinyint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/varbinary.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/varchar.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/vector.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/year.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/bigint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore/driver.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/schema.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/singlestore-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/checks.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/custom.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/indexes.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/primary-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/unique-constraint.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/view-base.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/subquery.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/delete.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/update.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/insert.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/select.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/dialect.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/view.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/utils.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/integer.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/numeric.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/real.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/text.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/all.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/table.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/foreign-keys.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/blob.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/columns/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/sqlite-core/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/column-builder.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/column.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/alias.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/errors.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/view-common.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/index.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/cache/core/cache.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/count.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/query.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/query-builders/raw.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/pg-core/db.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/session.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/driver.d.ts","../../node_modules/.bun/drizzle-orm@0.44.3+7fe4c603ac54098d/node_modules/drizzle-orm/postgres-js/index.d.ts","./src/lib/db/schema.ts","./src/lib/db/index.ts","./src/lib/auth/server.ts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/integrations/next-js.d.mts","./src/app/api/auth/[...all]/route.ts","./src/app/api/health/route.ts","../../node_modules/.bun/@upstash+redis@1.35.1/node_modules/@upstash/redis/zmscore-bsheakn7.d.mts","../../node_modules/.bun/@upstash+redis@1.35.1/node_modules/@upstash/redis/nodejs.d.mts","../../node_modules/.bun/@upstash+core-analytics@0.0.10/node_modules/@upstash/core-analytics/dist/index.d.ts","../../node_modules/.bun/@upstash+ratelimit@2.0.6+56bca893043c254b/node_modules/@upstash/ratelimit/dist/index.d.ts","./src/lib/rate-limit.ts","./src/app/api/sounds/search/route.ts","./.content-collections/generated/index.d.ts","./src/app/changelog/utils.ts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/vanilla.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/react.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/index.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware/redux.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware/devtools.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware/subscribewithselector.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware/combine.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware/persist.d.mts","../../node_modules/.bun/zustand@5.0.6+357b98ae0eae2ec3/node_modules/zustand/esm/middleware.d.mts","./src/lib/animation/types.ts","./src/lib/params.ts","./src/lib/effects/types.ts","./src/lib/timeline/drag.ts","./src/lib/rendering.ts","../../node_modules/.bun/@hugeicons+core-free-icons@3.1.1/node_modules/@hugeicons/core-free-icons/dist/types/index.d.ts","../../node_modules/.bun/@hugeicons+react@1.1.4+2f44e903108183df/node_modules/@hugeicons/react/dist/types/hugeiconsicon.d.ts","../../node_modules/.bun/@hugeicons+react@1.1.4+2f44e903108183df/node_modules/@hugeicons/react/dist/types/index.d.ts","./src/constants/timeline-constants.tsx","./src/utils/id.ts","./src/lib/timeline/track-utils.ts","./src/lib/timeline/track-element-update.ts","./src/constants/text-constants.ts","./src/services/storage/types.ts","./src/lib/media/types.ts","./src/lib/registry.ts","./src/lib/effects/registry.ts","./src/lib/effects/definitions/blur.ts","./src/lib/effects/definitions/index.ts","./src/lib/effects/index.ts","./src/utils/string.ts","./src/lib/timeline/element-utils.ts","./src/lib/timeline/zoom-utils.ts","./src/lib/timeline/ruler-utils.ts","./src/lib/timeline/ripple-utils.ts","./src/lib/timeline/pixel-utils.ts","./src/lib/timeline/index.ts","./src/lib/text/layout.ts","./src/lib/animation/vector-channel.ts","./src/constants/animation-constants.ts","./src/lib/animation/interpolation.ts","./src/lib/animation/property-registry.ts","./src/lib/animation/keyframes.ts","./src/lib/animation/color-channel.ts","./src/lib/animation/number-channel.ts","./src/lib/animation/resolve.ts","./src/lib/animation/keyframe-query.ts","./src/lib/animation/property-groups.ts","./src/lib/animation/index.ts","./src/lib/preview/element-bounds.ts","./src/lib/masks/types.ts","./src/lib/timeline/types.ts","./src/lib/project/types.ts","./src/app/projects/store.ts","../../node_modules/.bun/feed@5.1.0/node_modules/feed/lib/feed.d.ts","./src/app/rss.xml/route.ts","./src/core/managers/playback-manager.ts","./src/lib/commands/base-command.ts","./src/lib/commands/timeline/track/add-track.ts","./src/lib/commands/timeline/track/remove-track.ts","./src/lib/commands/timeline/track/toggle-track-mute.ts","./src/lib/commands/timeline/track/toggle-track-visibility.ts","./src/lib/commands/timeline/track/index.ts","./src/lib/commands/timeline/element/insert-element.ts","./src/lib/commands/timeline/element/delete-elements.ts","./src/lib/commands/timeline/element/duplicate-elements.ts","./src/lib/commands/timeline/element/update-element-trim.ts","./src/lib/commands/timeline/element/update-element-duration.ts","./src/lib/commands/timeline/element/update-element-start-time.ts","./src/lib/retime/resolve.ts","./src/lib/retime/audio-stretch.ts","./src/lib/retime/presets.ts","./src/lib/retime/split.ts","./src/lib/retime/index.ts","./src/lib/commands/timeline/element/split-elements.ts","./src/lib/commands/timeline/element/update-element.ts","./src/lib/commands/timeline/element/toggle-elements-visibility.ts","./src/lib/commands/timeline/element/toggle-elements-muted.ts","./src/lib/commands/timeline/element/move-elements.ts","./src/lib/animation/effect-param-channel.ts","./src/lib/commands/timeline/element/keyframes/remove-effect-param-keyframe.ts","./src/lib/commands/timeline/element/keyframes/remove-keyframe.ts","./src/lib/commands/timeline/element/keyframes/retime-keyframe.ts","./src/lib/commands/timeline/element/keyframes/upsert-effect-param-keyframe.ts","./src/lib/commands/timeline/element/keyframes/upsert-keyframe.ts","./src/lib/commands/timeline/element/keyframes/index.ts","./src/lib/commands/timeline/element/effects/add-effect.ts","./src/lib/commands/timeline/element/effects/remove-effect.ts","./src/lib/commands/timeline/element/effects/toggle-effect.ts","./src/lib/commands/timeline/element/effects/update-effect-params.ts","./src/lib/commands/timeline/element/effects/reorder-effect.ts","./src/lib/commands/timeline/element/effects/index.ts","./src/lib/commands/timeline/element/masks/remove-mask.ts","./src/lib/commands/timeline/element/masks/toggle-mask-inverted.ts","./src/lib/commands/timeline/element/masks/index.ts","./src/lib/commands/timeline/element/retime/update-element-retime.ts","./src/lib/commands/timeline/element/retime/index.ts","./src/lib/commands/timeline/element/index.ts","./src/lib/commands/timeline/clipboard/paste.ts","./src/lib/commands/timeline/clipboard/index.ts","./src/lib/commands/timeline/tracks-snapshot.ts","./src/lib/commands/timeline/index.ts","./src/lib/commands/batch-command.ts","../../node_modules/.bun/sonner@1.7.4+aeb0770a64f5c00c/node_modules/sonner/dist/index.d.ts","./src/lib/scenes.ts","./src/services/storage/indexeddb-adapter.ts","./src/services/storage/opfs-adapter.ts","./src/services/storage/quota.ts","./src/lib/sounds/types.ts","./src/services/storage/migrations/transformers/types.ts","./src/services/storage/migrations/base.ts","./src/services/storage/migrations/transformers/utils.ts","./src/services/storage/migrations/transformers/v0-to-v1.ts","./src/services/storage/migrations/v0-to-v1.ts","./src/constants/project-constants.ts","./src/services/storage/migrations/transformers/v1-to-v2.ts","./src/services/storage/migrations/v1-to-v2.ts","./src/services/storage/migrations/transformers/v2-to-v3.ts","./src/services/storage/migrations/v2-to-v3.ts","./src/services/storage/migrations/transformers/v3-to-v4.ts","./src/services/storage/migrations/v3-to-v4.ts","./src/services/storage/migrations/transformers/v4-to-v5.ts","./src/services/storage/migrations/v4-to-v5.ts","./src/services/storage/migrations/transformers/v5-to-v6.ts","./src/services/storage/migrations/v5-to-v6.ts","./src/services/storage/migrations/transformers/v6-to-v7.ts","./src/services/storage/migrations/v6-to-v7.ts","./src/services/storage/migrations/transformers/v7-to-v8.ts","./src/services/storage/migrations/v7-to-v8.ts","./src/services/storage/migrations/transformers/v8-to-v9.ts","./src/services/storage/migrations/v8-to-v9.ts","./src/services/storage/migrations/transformers/v9-to-v10.ts","./src/services/storage/migrations/v9-to-v10.ts","./src/services/storage/migrations/transformers/v10-to-v11.ts","./src/services/storage/migrations/v10-to-v11.ts","./src/services/storage/migrations/transformers/v11-to-v12.ts","./src/services/storage/migrations/v11-to-v12.ts","./src/services/storage/migrations/transformers/v12-to-v13.ts","./src/services/storage/migrations/v12-to-v13.ts","./src/services/storage/migrations/transformers/v13-to-v14.ts","./src/services/storage/migrations/v13-to-v14.ts","./src/services/storage/migrations/runner.ts","./src/services/storage/migrations/index.ts","./src/services/storage/service.ts","./src/lib/commands/media/add-media-asset.ts","../../node_modules/.bun/@types+dom-webcodecs@0.1.13/node_modules/@types/dom-webcodecs/webcodecs.generated.d.ts","../../node_modules/.bun/@types+dom-webcodecs@0.1.13/node_modules/@types/dom-webcodecs/index.d.ts","../../node_modules/.bun/@types+dom-mediacapture-transform@0.1.11/node_modules/@types/dom-mediacapture-transform/index.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/misc.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/metadata.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/packet.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/codec-data.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/subtitles.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/codec.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/sample.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/encode.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/media-source.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/output-format.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/target.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/output.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/source.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input-format.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/media-sink.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input-track.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/input.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/conversion.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/custom-coder.d.ts","../../node_modules/.bun/mediabunny@1.29.1/node_modules/mediabunny/dist/modules/src/index.d.ts","./src/services/video-cache/service.ts","./src/lib/commands/media/remove-media-asset.ts","./src/lib/commands/media/index.ts","./src/lib/commands/scene/create-scene.ts","./src/lib/commands/scene/delete-scene.ts","./src/lib/commands/scene/rename-scene.ts","./src/lib/time.ts","./src/lib/timeline/bookmarks.ts","./src/lib/commands/scene/toggle-bookmark.ts","./src/lib/commands/scene/remove-bookmark.ts","./src/lib/commands/scene/update-bookmark.ts","./src/lib/commands/scene/move-bookmark.ts","./src/lib/commands/scene/index.ts","./src/lib/commands/project/update-project-settings.ts","./src/lib/commands/project/index.ts","./src/lib/commands/index.ts","./src/core/managers/timeline-manager.ts","./src/core/managers/scenes-manager.ts","./src/constants/export-constants.ts","./src/lib/export.ts","./src/services/renderer/canvas-renderer.ts","./src/services/renderer/nodes/base-node.ts","./src/services/renderer/nodes/root-node.ts","./src/services/renderer/canvas-utils.ts","./src/lib/masks/registry.ts","./src/constants/mask-constants.ts","./src/lib/masks/param-update.ts","./src/lib/masks/definitions/box-like.ts","./src/lib/masks/definitions/ellipse.ts","./src/lib/masks/definitions/rectangle.ts","./src/lib/masks/utils.ts","./src/lib/masks/definitions/split.ts","./src/lib/masks/definitions/index.ts","./src/lib/masks/index.ts","./src/services/renderer/webgl/webgl-context.ts","./src/services/renderer/webgl/webgl-utils.ts","./src/services/renderer/webgl/webgl-effect-renderer.ts","./src/services/renderer/webgl/jfa.ts","./src/services/renderer/mask-feather.ts","./src/services/renderer/nodes/visual-node.ts","./src/services/renderer/nodes/video-node.ts","./src/services/renderer/nodes/image-node.ts","./src/utils/math.ts","./src/services/renderer/nodes/text-node.ts","./src/constants/sticker-constants.ts","./src/lib/stickers/types.ts","./src/lib/stickers/registry.ts","./src/lib/stickers/sticker-id.ts","./src/lib/iconify-api.ts","./src/lib/stickers/providers/emoji.ts","./src/lib/stickers/providers/flags.ts","./src/lib/stickers/providers/logos.ts","./src/lib/stickers/providers/shapes.ts","./src/lib/stickers/providers/index.ts","./src/lib/stickers/resolver.ts","./src/lib/stickers/index.ts","./src/services/renderer/nodes/sticker-node.ts","./src/lib/gradients/parser.ts","./src/lib/gradients/canvas.ts","./src/lib/gradients/index.ts","./src/services/renderer/nodes/color-node.ts","./src/services/renderer/nodes/blur-background-node.ts","./src/services/renderer/nodes/effect-layer-node.ts","./src/services/renderer/scene-builder.ts","./src/lib/fonts/types.ts","./src/constants/font-constants.ts","./src/lib/fonts/google-fonts.ts","./src/core/managers/project-manager.ts","./src/core/managers/media-manager.ts","../../node_modules/.bun/eventemitter3@5.0.1/node_modules/eventemitter3/index.d.ts","./src/services/renderer/scene-exporter.ts","./src/lib/media/media-utils.ts","./src/lib/media/audio.ts","./src/utils/browser.ts","./src/core/managers/renderer-manager.ts","./src/core/managers/commands.ts","./src/core/managers/save-manager.ts","./src/core/managers/audio-manager.ts","./src/core/managers/selection-manager.ts","./src/core/index.ts","./src/hooks/use-editor.ts","./src/components/editor/panels/properties/hooks/use-element-playhead.ts","./src/components/editor/panels/properties/hooks/use-keyframed-color-property.ts","./src/components/editor/panels/properties/hooks/use-property-draft.ts","./src/components/editor/panels/properties/hooks/use-keyframed-number-property.ts","./src/components/editor/panels/properties/hooks/use-keyframed-vector-property.ts","./src/components/editor/panels/properties/stores/properties-store.ts","./src/lib/actions/types.ts","./src/lib/actions/keybinding.ts","./src/lib/actions/definitions.ts","./src/lib/actions/registry.ts","./src/lib/actions/index.ts","./src/utils/platform.ts","./src/stores/keybindings/migrations/v2-to-v3.ts","./src/stores/keybindings/migrations/v3-to-v4.ts","./src/stores/keybindings/migrations/v4-to-v5.ts","./src/stores/keybindings/migrations/v5-to-v6.ts","./src/stores/keybindings/migrations/index.ts","./src/stores/keybindings-store.ts","./src/components/ui/use-overlay-open-change.ts","./src/constants/editor-constants.ts","./src/constants/guide-constants.ts","./src/constants/language-constants.ts","./src/lib/transcription/types.ts","./src/constants/transcription-constants.ts","./src/data/colors/pattern-craft.ts","./src/data/colors/solid.ts","./src/hooks/use-resize-observer.ts","./src/hooks/use-container-size.ts","./src/hooks/use-element-preview.ts","./src/lib/drag-data.ts","./src/hooks/use-file-upload.ts","./src/hooks/use-focus-lock.ts","./src/hooks/use-font-atlas.ts","./src/hooks/use-fullscreen.ts","./src/hooks/use-infinite-scroll.ts","./src/stores/timeline-store.ts","./src/hooks/use-keybindings.ts","./src/hooks/use-keyboard-shortcuts-help.ts","./src/lib/preview/preview-coords.ts","./src/components/editor/panels/preview/preview-viewport.tsx","./src/hooks/use-shift-key.ts","./src/lib/masks/handle-positions.ts","./src/lib/preview/preview-snap.ts","./src/lib/masks/geometry.ts","./src/lib/masks/snap.ts","./src/lib/cancel-interaction.ts","./src/hooks/use-mask-handles.ts","./src/hooks/use-menu-preview.ts","./src/hooks/use-mobile.ts","./src/lib/media/mediabunny.ts","./src/lib/media/processing.ts","./src/lib/media/upload-toast.ts","./src/hooks/use-paste-media.ts","./src/lib/preview/hit-test.ts","./src/hooks/use-preview-interaction.ts","./src/hooks/use-raf-loop.ts","./src/stores/sounds-store.ts","./src/hooks/use-sound-search.ts","./src/hooks/use-storage-persistence.ts","./src/hooks/use-transform-handles.ts","./src/hooks/actions/use-action-handler.ts","./src/hooks/timeline/element/use-element-selection.ts","./src/hooks/timeline/element/use-keyframe-selection.ts","./src/lib/selection/scope.ts","./src/hooks/actions/use-editor-actions.ts","./src/hooks/storage/use-local-storage.ts","./src/lib/timeline/drag-utils.ts","./src/lib/timeline/snap-utils.ts","./src/hooks/timeline/use-bookmark-drag.ts","./src/hooks/timeline/use-edge-auto-scroll.ts","./src/hooks/timeline/use-initial-scroll-bottom.ts","./src/hooks/timeline/use-scroll-position.ts","./src/hooks/timeline/use-scroll-sync.ts","./src/hooks/timeline/use-snap-indicator-position.ts","./src/lib/timeline/drop-utils.ts","./src/hooks/timeline/use-timeline-drag-drop.ts","./src/hooks/timeline/use-timeline-playhead.ts","./src/hooks/timeline/use-timeline-seek.ts","./src/hooks/timeline/use-timeline-zoom.ts","./src/hooks/timeline/element/use-element-interaction.ts","./src/hooks/timeline/element/use-element-resize.ts","./src/hooks/timeline/element/use-keyframe-drag.ts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/client/react/react-store.d.mts","../../node_modules/.bun/better-auth@1.4.15+afed95b48178fb2d/node_modules/better-auth/dist/client/react/index.d.mts","./src/lib/auth/client.ts","./src/lib/commands/preview-tracker.ts","./src/lib/guides/types.ts","../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/clsx.d.mts","../../node_modules/.bun/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/types.d.ts","./src/utils/ui.ts","../../node_modules/.bun/@radix-ui+react-accessible-icon@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-accessible-icon/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-context@1.1.2+357b98ae0eae2ec3/node_modules/@radix-ui/react-context/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-primitive@2.1.3+6b35f2f089ddc4d4/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-collapsible@1.1.12+6b35f2f089ddc4d4/node_modules/@radix-ui/react-collapsible/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-accordion@1.2.12+6b35f2f089ddc4d4/node_modules/@radix-ui/react-accordion/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dismissable-layer@1.1.11+6b35f2f089ddc4d4/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-focus-scope@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-portal@1.1.9+6b35f2f089ddc4d4/node_modules/@radix-ui/react-portal/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dialog@1.1.15+6b35f2f089ddc4d4/node_modules/@radix-ui/react-dialog/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-alert-dialog@1.1.15+6b35f2f089ddc4d4/node_modules/@radix-ui/react-alert-dialog/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-aspect-ratio@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-aspect-ratio/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-avatar@1.1.10+6b35f2f089ddc4d4/node_modules/@radix-ui/react-avatar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-checkbox@1.3.3+6b35f2f089ddc4d4/node_modules/@radix-ui/react-checkbox/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-arrow@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-arrow/dist/index.d.mts","../../node_modules/.bun/@radix-ui+rect@1.1.1/node_modules/@radix-ui/rect/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-popper@1.2.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-popper/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-roving-focus@1.1.11+6b35f2f089ddc4d4/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-menu@2.1.16+6b35f2f089ddc4d4/node_modules/@radix-ui/react-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-context-menu@2.2.16+6b35f2f089ddc4d4/node_modules/@radix-ui/react-context-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-direction@1.1.1+357b98ae0eae2ec3/node_modules/@radix-ui/react-direction/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-dropdown-menu@2.1.16+6b35f2f089ddc4d4/node_modules/@radix-ui/react-dropdown-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-label@2.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-label/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-form@0.1.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-form/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-hover-card@1.1.15+6b35f2f089ddc4d4/node_modules/@radix-ui/react-hover-card/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-menubar@1.1.16+6b35f2f089ddc4d4/node_modules/@radix-ui/react-menubar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-visually-hidden@1.2.3+6b35f2f089ddc4d4/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-navigation-menu@1.2.14+6b35f2f089ddc4d4/node_modules/@radix-ui/react-navigation-menu/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-one-time-password-field@0.1.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-one-time-password-field/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-password-toggle-field@0.1.3+6b35f2f089ddc4d4/node_modules/@radix-ui/react-password-toggle-field/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-popover@1.1.15+6b35f2f089ddc4d4/node_modules/@radix-ui/react-popover/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-progress@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-progress/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-radio-group@1.3.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-radio-group/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-scroll-area@1.2.10+6b35f2f089ddc4d4/node_modules/@radix-ui/react-scroll-area/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-select@2.2.6+6b35f2f089ddc4d4/node_modules/@radix-ui/react-select/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-separator@1.1.7+6b35f2f089ddc4d4/node_modules/@radix-ui/react-separator/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-slider@1.3.6+6b35f2f089ddc4d4/node_modules/@radix-ui/react-slider/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-slot@1.2.3+357b98ae0eae2ec3/node_modules/@radix-ui/react-slot/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-switch@1.2.6+6b35f2f089ddc4d4/node_modules/@radix-ui/react-switch/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-tabs@1.1.13+6b35f2f089ddc4d4/node_modules/@radix-ui/react-tabs/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toast@1.2.15+6b35f2f089ddc4d4/node_modules/@radix-ui/react-toast/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toggle@1.1.10+6b35f2f089ddc4d4/node_modules/@radix-ui/react-toggle/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toggle-group@1.1.11+6b35f2f089ddc4d4/node_modules/@radix-ui/react-toggle-group/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-toolbar@1.1.11+6b35f2f089ddc4d4/node_modules/@radix-ui/react-toolbar/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-tooltip@1.2.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-tooltip/dist/index.d.mts","../../node_modules/.bun/radix-ui@1.4.3+6b35f2f089ddc4d4/node_modules/radix-ui/dist/index.d.mts","../../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/types.d.ts","../../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.d.ts","./src/components/ui/button.tsx","./src/components/ui/number-field.tsx","./src/stores/preview-store.ts","./src/lib/guides/definitions/grid.tsx","./src/lib/guides/definitions/tiktok-layout.tsx","./src/lib/guides/definitions/platforms.tsx","./src/lib/guides/registry.tsx","./src/lib/guides/index.ts","./src/lib/masks/__tests__/snap.test.ts","./src/lib/retime/__tests__/resolve.test.ts","./src/lib/retime/__tests__/split.test.ts","./src/lib/selection/constants.ts","./src/lib/selection/hit-testing.ts","./src/lib/selection/context.tsx","./src/lib/selection/types.ts","./src/lib/selection/selectable-item.tsx","./src/lib/selection/selection-box.tsx","./src/lib/selection/state.ts","./src/lib/selection/hooks/use-box-select.ts","./src/lib/selection/selectable-surface.tsx","./src/lib/selection/hooks/use-selection-scope.ts","./src/lib/selection/index.ts","./src/lib/stickers/__tests__/sticker-id.test.ts","./src/lib/timeline/selection-hit-testing.ts","./src/lib/transcription/caption.ts","./src/services/renderer/effect-preview.ts","./src/services/storage/migrations/__tests__/fixtures/v0.ts","./src/services/storage/migrations/__tests__/fixtures/v1.ts","./src/services/storage/migrations/__tests__/fixtures/v2.ts","./src/services/storage/migrations/__tests__/fixtures/v3.ts","./src/services/storage/migrations/__tests__/fixtures/v5.ts","./src/services/storage/migrations/__tests__/fixtures/index.ts","./src/services/storage/migrations/__tests__/v0-to-v1.test.ts","./src/services/storage/migrations/__tests__/v1-to-v2.test.ts","./src/services/storage/migrations/__tests__/v2-to-v3.test.ts","./src/services/storage/migrations/__tests__/v3-to-v4.test.ts","./src/services/storage/migrations/__tests__/v4-to-v5.test.ts","./src/services/storage/migrations/__tests__/v5-to-v6.test.ts","./src/services/storage/migrations/__tests__/v8-to-v9.test.ts","./src/services/storage/migrations/transformers/index.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/onnx-model.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-factory.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-conversion.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor-utils.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/type-helper.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/tensor.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/onnx-value.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/inference-session.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/backend-impl.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/backend.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/env.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/trace.d.ts","../../node_modules/.bun/onnxruntime-common@1.21.0/node_modules/onnxruntime-common/dist/esm/index.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/env.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/core.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/devices.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/dtypes.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/hub.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/backends/onnx.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/maths.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/tensor.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/configs.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/data-structures.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/tokenizers.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/streamers.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/configuration_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/stopping_criteria.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/logits_process.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/generation/parameters.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/generation_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/image.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/image_processors_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/feature_extraction_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/base/processing_utils.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/audio.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/processing_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/pipelines.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/utils/video.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/encodec/feature_extraction_encodec.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/clap/feature_extraction_clap.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dac/feature_extraction_dac.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/gemma3n/feature_extraction_gemma3n.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/moonshine/feature_extraction_moonshine.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/parakeet/feature_extraction_parakeet.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pyannote/feature_extraction_pyannote.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/seamless_m4t/feature_extraction_seamless_m4t.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/snac/feature_extraction_snac.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/speecht5/feature_extraction_speecht5.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2/feature_extraction_wav2vec2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wespeaker/feature_extraction_wespeaker.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/feature_extraction_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/feature_extractors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/feature_extraction_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/beit/image_processing_beit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/bit/image_processing_bit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/chinese_clip/image_processing_chinese_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/clip/image_processing_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/convnext/image_processing_convnext.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/deit/image_processing_deit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/detr/image_processing_detr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dinov3_vit/image_processing_dinov3_vit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/donut/image_processing_donut.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/dpt/image_processing_dpt.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/efficientnet/image_processing_efficientnet.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/glpn/image_processing_glpn.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/grounding_dino/image_processing_grounding_dino.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/idefics3/image_processing_idefics3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/janus/image_processing_janus.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/jina_clip/image_processing_jina_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/llava_onevision/image_processing_llava_onevision.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/maskformer/image_processing_maskformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mask2former/image_processing_mask2former.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v1/image_processing_mobilenet_v1.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v2/image_processing_mobilenet_v2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v3/image_processing_mobilenet_v3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilenet_v4/image_processing_mobilenet_v4.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mobilevit/image_processing_mobilevit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/nougat/image_processing_nougat.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlvit/image_processing_owlvit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlv2/image_processing_owlv2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/phi3_v/image_processing_phi3_v.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pixtral/image_processing_pixtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pvt/image_processing_pvt.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/qwen2_vl/image_processing_qwen2_vl.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/rt_detr/image_processing_rt_detr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam/image_processing_sam.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam2/image_processing_sam2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam3/image_processing_sam3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/segformer/image_processing_segformer.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/siglip/image_processing_siglip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/smolvlm/image_processing_smolvlm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/swin2sr/image_processing_swin2sr.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vit/image_processing_vit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vitmatte/image_processing_vitmatte.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/vitpose/image_processing_vitpose.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/yolos/image_processing_yolos.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/image_processors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/auto/image_processing_auto.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/florence2/processing_florence2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/gemma3n/processing_gemma3n.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/grounding_dino/processing_grounding_dino.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/idefics3/processing_idefics3.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/janus/processing_janus.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/jina_clip/processing_jina_clip.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/llava/processing_llava.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/mgp_str/processing_mgp_str.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/moonshine/processing_moonshine.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/owlvit/processing_owlvit.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/paligemma/processing_paligemma.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/phi3_v/processing_phi3_v.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pixtral/processing_pixtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/pyannote/processing_pyannote.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/qwen2_vl/processing_qwen2_vl.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam/processing_sam.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/sam2/processing_sam2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/smolvlm/processing_smolvlm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/speecht5/processing_speecht5.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/ultravox/processing_ultravox.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/voxtral/processing_voxtral.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2/processing_wav2vec2.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/whisper/processing_whisper.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/models/processors.d.ts","../../node_modules/.bun/@huggingface+transformers@3.8.1/node_modules/@huggingface/transformers/types/transformers.d.ts","./src/services/transcription/worker.ts","./src/services/transcription/service.ts","./src/stores/editor-store.ts","./src/stores/panel-store.ts","./src/stores/properties-store.ts","./src/stores/stickers-store.ts","./src/types/eyedropper.d.ts","./src/types/glsl.d.ts","./src/types/soundtouchjs.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/fixup/alpha.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/piecewise.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/linear.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/parsehex.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/colors/named.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/parsenamed.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/parsergb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/parsergblegacy.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/parsetransparent.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rgb/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/a98/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/a98/converta98toxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/a98/convertxyz65toa98.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/a98/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/cubehelix/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlab/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlch/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsi/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsv/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hwb/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/itp/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jch/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch65/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lchuv/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lrgb/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/luv/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsl/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsv/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklch/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/p3/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/prophoto/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rec2020/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyb/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz50/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/yiq/types.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/common.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/converter.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/average.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/difference.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/fixup/hue.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/cubehelix/convertcubehelixtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/cubehelix/convertrgbtocubehelix.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/cubehelix/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlab/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlch/convertdlchtolab65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlch/convertlab65todlch.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/dlch/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsi/converthsitorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsi/convertrgbtohsi.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsi/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/converthsltorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/convertrgbtohsl.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/parsehsl.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/parsehsllegacy.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsl/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsv/converthsvtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsv/convertrgbtohsv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hsv/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hwb/converthwbtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hwb/convertrgbtohwb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hwb/parsehwb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/hwb/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/convertjabtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/convertjabtoxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/convertrgbtojab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/convertxyz65tojab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jab/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jch/convertjabtojch.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jch/convertjchtojab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/jch/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/convertlabtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/convertlabtoxyz50.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/convertrgbtolab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/convertxyz50tolab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/parselab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/convertlab65torgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/convertlab65toxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/convertrgbtolab65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/convertxyz65tolab65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lab65/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch/convertlabtolch.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch/convertlchtolab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch/parselch.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lch65/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz50/convertrgbtoxyz50.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz50/convertxyz50torgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lchuv/convertlchuvtoluv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lchuv/convertluvtolchuv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lchuv/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lrgb/convertlrgbtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lrgb/convertrgbtolrgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/lrgb/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/luv/convertluvtoxyz50.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/luv/convertxyz50toluv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/luv/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsl/convertokhsltooklab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsl/convertoklabtookhsl.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsl/modeokhsl.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsv/convertokhsvtooklab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsv/convertoklabtookhsv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/okhsv/modeokhsv.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/convertlrgbtooklab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/convertoklabtolrgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/convertoklabtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/convertrgbtooklab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/parseoklab.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklab/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklch/parseoklch.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/oklch/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/p3/convertp3toxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/p3/convertxyz65top3.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/p3/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/prophoto/convertprophototoxyz50.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/prophoto/convertxyz50toprophoto.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/prophoto/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rec2020/convertrec2020toxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rec2020/convertxyz65torec2020.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/rec2020/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz50/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/convertrgbtoxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/convertxyz65torgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/convertxyz50toxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/convertxyz65toxyz50.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyz65/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/yiq/convertrgbtoyiq.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/yiq/convertyiqtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/yiq/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/formatter.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/blend.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/random.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/map.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/interpolate.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/round.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/splinebasis.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/splinenatural.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/splinemonotone.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/clamp.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/interpolate/lerp.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyb/convertrgbtoxyb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyb/convertxybtorgb.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/xyb/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/modes.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/nearest.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/parse.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/samples.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/filter.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/deficiency.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/easing/gamma.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/easing/inoutsine.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/easing/midpoint.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/easing/smootherstep.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/easing/smoothstep.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/wcag.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/itp/convertitptoxyz65.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/itp/convertxyz65toitp.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/index-fn.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/itp/definition.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/src/index.d.ts","./src/utils/color.ts","./src/utils/date.ts","./src/utils/geometry.ts","../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/index.d.ts","../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/index.d.ts","../../node_modules/.bun/framer-motion@12.23.6+aeb0770a64f5c00c/node_modules/framer-motion/dist/types.d-bq-qm38r.d.ts","../../node_modules/.bun/framer-motion@12.23.6+aeb0770a64f5c00c/node_modules/framer-motion/dist/types/index.d.ts","../../node_modules/.bun/motion@12.23.6+aeb0770a64f5c00c/node_modules/motion/dist/react.d.ts","../../node_modules/.bun/lucide-react@0.562.0+2f44e903108183df/node_modules/lucide-react/dist/lucide-react.d.ts","../../node_modules/.bun/next-themes@0.4.6+aeb0770a64f5c00c/node_modules/next-themes/dist/index.d.ts","./src/components/theme-toggle.tsx","./src/components/ui/context-menu.tsx","./src/components/header.tsx","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/lib/iconsmanifest.d.ts","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/lib/iconbase.d.ts","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/lib/iconcontext.d.ts","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/lib/index.d.ts","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/ri/index.d.ts","../../node_modules/.bun/react-icons@5.5.0+2f44e903108183df/node_modules/react-icons/fa6/index.d.ts","./src/components/footer.tsx","./src/app/base-page.tsx","./src/components/ui/sonner.tsx","./src/components/ui/tooltip.tsx","../../node_modules/.bun/botid@1.4.2+dc73a62373ff452c/node_modules/botid/dist/client/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@next/font/dist/types.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","../../node_modules/.bun/next@16.1.3+aeb0770a64f5c00c/node_modules/next/font/google/index.d.ts","./src/app/layout.tsx","./src/components/landing/handlebars.tsx","./src/components/landing/hero.tsx","./src/app/page.tsx","../../node_modules/.bun/@radix-ui+react-primitive@2.1.4+6b35f2f089ddc4d4/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../node_modules/.bun/@radix-ui+react-separator@1.1.8+6b35f2f089ddc4d4/node_modules/@radix-ui/react-separator/dist/index.d.mts","./src/components/ui/separator.tsx","./src/app/blog/page.tsx","./src/components/ui/prose.tsx","./src/app/blog/[slug]/page.tsx","./src/components/ui/card.tsx","./src/app/brand/page.tsx","./src/app/changelog/components/release.tsx","./src/app/changelog/page.tsx","./src/app/changelog/components/copy-markdown-button.tsx","./src/app/changelog/[version]/page.tsx","./src/components/github-contribute-section.tsx","./src/components/ui/avatar.tsx","./src/app/contributors/page.tsx","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/panel.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/types.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/panelgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/panelresizehandleregistry.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/panelresizehandle.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/constants.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/assert.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/csp.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/cursor.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelelementsforgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getpanelgroupelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelement.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelementindex.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandleelementsforgroup.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/dom/getresizehandlepanelids.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/types.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/getintersectingrectangle.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/utils/rects/intersects.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/declarations/src/index.d.ts","../../node_modules/.bun/react-resizable-panels@2.1.9+aeb0770a64f5c00c/node_modules/react-resizable-panels/dist/react-resizable-panels.cjs.d.mts","./src/components/ui/resizable.tsx","./src/stores/assets-panel-store.tsx","./src/components/editor/panels/assets/tabbar.tsx","./src/components/editor/panels/assets/views/base-panel.tsx","./src/components/ui/select.tsx","./src/components/ui/spinner.tsx","./src/components/ui/label.tsx","./src/components/section.tsx","./src/components/editor/panels/assets/views/captions.tsx","./src/components/editor/panels/assets/drag-overlay.tsx","./src/components/ui/aspect-ratio.tsx","./src/components/editor/panels/assets/draggable-item.tsx","./src/components/ui/dropdown-menu.tsx","./src/components/editor/panels/assets/views/assets.tsx","./src/data/colors/syntax-ui.tsx","./src/components/editor/panels/assets/views/settings/background.tsx","./src/components/editor/panels/assets/views/settings/index.tsx","./src/components/ui/dialog.tsx","./src/components/ui/input.tsx","./src/components/ui/scroll-area.tsx","./src/components/ui/tabs.tsx","./src/components/editor/panels/assets/views/sounds.tsx","./src/components/editor/panels/assets/views/stickers.tsx","./src/components/editor/panels/assets/views/text.tsx","./src/components/editor/panels/assets/views/effects.tsx","./src/components/editor/panels/assets/index.tsx","./src/components/editor/panels/properties/components/keyframe-toggle.tsx","./src/components/editor/panels/properties/tabs/transform-tab.tsx","./src/components/editor/panels/properties/tabs/blending-tab.tsx","./src/components/editor/panels/properties/tabs/audio-tab.tsx","./src/components/ui/textarea.tsx","../../node_modules/.bun/react-window@2.2.7+aeb0770a64f5c00c/node_modules/react-window/dist/react-window.d.ts","./src/components/ui/popover.tsx","./src/components/ui/font-picker.tsx","./src/components/ui/color-picker.tsx","./src/components/editor/panels/properties/tabs/text-tab.tsx","./src/components/ui/slider.tsx","./src/components/ui/switch.tsx","./src/components/editor/panels/properties/components/property-param-field.tsx","./src/components/editor/panels/properties/tabs/effects-tab.tsx","./src/components/editor/panels/properties/tabs/masks-tab.tsx","./src/components/editor/panels/properties/tabs/speed-tab.tsx","./src/components/editor/panels/properties/registry.tsx","./src/components/editor/panels/properties/empty-view.tsx","./src/components/editor/panels/properties/index.tsx","./src/components/editor/panels/timeline/audio-waveform.tsx","./src/components/editor/panels/timeline/timeline-element.tsx","./src/components/editor/panels/timeline/timeline-track.tsx","./src/components/editor/panels/timeline/timeline-playhead.tsx","./src/components/editor/panels/timeline/snap-indicator.tsx","./src/components/ui/split-button.tsx","./src/components/ui/sheet.tsx","./src/components/editor/scenes-view.tsx","./src/components/editor/panels/timeline/timeline-toolbar.tsx","./src/components/editor/panels/timeline/timeline-tick.tsx","./src/components/editor/panels/timeline/timeline-ruler.tsx","./src/components/editor/panels/timeline/bookmarks.tsx","./src/components/editor/panels/timeline/drag-line.tsx","./src/components/editor/panels/timeline/index.tsx","../../node_modules/.bun/use-deep-compare-effect@1.8.1+2f44e903108183df/node_modules/use-deep-compare-effect/dist/index.d.ts","./src/components/editor/panels/preview/handle-primitives.tsx","./src/components/editor/panels/preview/transform-handles.tsx","./src/components/editor/panels/preview/mask-handles.tsx","./src/components/editor/panels/preview/snap-guides.tsx","./src/components/editor/panels/preview/text-edit-overlay.tsx","./src/components/editor/panels/preview/preview-interaction-overlay.tsx","./src/components/editor/panels/preview/bookmark-note-overlay.tsx","./src/components/editor/panels/preview/guide-overlay.tsx","./src/components/editor/panels/preview/context-menu.tsx","./src/components/editable-timecode.tsx","./src/components/editor/panels/preview/guide-popover.tsx","./src/components/editor/panels/preview/toolbar.tsx","./src/components/editor/panels/preview/index.tsx","./src/components/editor/dialogs/rename-project-dialog.tsx","./src/components/ui/alert.tsx","./src/components/editor/dialogs/delete-project-dialog.tsx","./src/components/ui/radio-group.tsx","./src/components/ui/progress.tsx","./src/components/ui/checkbox.tsx","./src/components/editor/export-button.tsx","./src/components/editor/dialogs/shortcuts-dialog.tsx","./src/components/editor/editor-header.tsx","./src/components/providers/editor-provider.tsx","../../node_modules/.bun/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/footer.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/index.d.ts","../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/index.d.ts","../../node_modules/.bun/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.d.ts","../../node_modules/.bun/remark-rehype@11.1.2/node_modules/remark-rehype/index.d.ts","../../node_modules/.bun/react-markdown@10.1.0+357b98ae0eae2ec3/node_modules/react-markdown/lib/index.d.ts","../../node_modules/.bun/react-markdown@10.1.0+357b98ae0eae2ec3/node_modules/react-markdown/index.d.ts","./src/components/editor/onboarding.tsx","./src/components/editor/dialogs/migration-dialog.tsx","./src/components/editor/mobile-gate.tsx","./src/app/editor/[project_id]/page.tsx","./src/components/ui/accordion.tsx","./src/app/privacy/page.tsx","./src/components/editor/dialogs/storage-persistence-dialog.tsx","./src/components/ui/skeleton.tsx","./src/components/ui/breadcrumb.tsx","./src/components/editor/dialogs/project-info-dialog.tsx","./src/app/projects/page.tsx","./src/components/ui/badge.tsx","./src/components/ui/react-markdown-wrapper.tsx","./src/app/roadmap/page.tsx","./src/app/sponsors/page.tsx","./src/app/terms/page.tsx","./src/components/storage-provider.tsx","./src/components/editor/panels/assets/views/settings/settings-legacy.tsx","./src/components/ui/alert-dialog.tsx","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/locale/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/fp/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/add.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/adddays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/addyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/areintervalsoverlapping.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/clamp.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/closestindexto.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/closestto.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/compareasc.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/comparedesc.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructfrom.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/constructnow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/daystoweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendardays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarisoweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendarweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceincalendaryears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceindays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinmonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/differenceinyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachdayofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachhourofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachminuteofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachmonthofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachquarterofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachweekendofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/eachyearofinterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofhour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofsecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endoftoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endoftomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/endofyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/formatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/longformatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistance.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancestrict.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancetonow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatdistancetonowstrict.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatiso.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatiso9075.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatisoduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrfc3339.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrfc7231.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/formatrelative.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/fromunixtime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdaysinmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdaysinyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/defaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getdefaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/gethours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getisoweeksinyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getoverlappingdaysinintervals.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/gettime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getunixtime.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweekofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getweeksinmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/getyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/hourstoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/interval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intervaltoduration.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intlformat.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/intlformatdistance.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isafter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isbefore.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isequal.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isexists.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfirstdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isfuture.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/islastdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isleapyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ismatch.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ismonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/ispast.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamehour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamemonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamequarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issamesecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issameyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/issunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthishour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthismonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthissecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthisyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/istuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isvalid.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/iswednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isweekend.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/iswithininterval.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/isyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lastdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/_lib/format/lightformatters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/lightformat.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/max.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/milliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/millisecondstoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/min.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/minutestoseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/monthstoquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/monthstoyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextmonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextsaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextsunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nexttuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/nextwednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/types.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/setter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parser.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parse.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parseiso.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/parsejson.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousfriday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousmonday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoussaturday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoussunday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previousthursday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previoustuesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/previouswednesday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/quarterstomonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/quarterstoyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/roundtonearesthours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/roundtonearestminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstohours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstomilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/secondstominutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/set.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdayofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setdefaultoptions.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/sethours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setmilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/setyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofdecade.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofhour.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofisoweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofisoweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofminute.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofmonth.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofquarter.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofsecond.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startoftoday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startoftomorrow.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofweek.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofweekyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofyear.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/startofyesterday.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/sub.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subbusinessdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subdays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subhours.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subisoweekyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/submilliseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subminutes.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/submonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subseconds.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subweeks.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/subyears.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/todate.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/transpose.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/weekstodays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstodays.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstomonths.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/yearstoquarters.d.ts","../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/index.d.mts","../../node_modules/.bun/react-day-picker@8.10.1+7f6c301668ead98b/node_modules/react-day-picker/dist/index.d.ts","./src/components/ui/calendar.tsx","./src/components/ui/collapsible.tsx","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/constants.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/utils/createsubject.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/events.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/path/common.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/path/eager.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/path/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/fieldarray.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/resolvers.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/form.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/utils.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/fields.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/errors.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/validator.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/controller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/types/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/controller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/form.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/logic/appenderrors.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/logic/createformcontrol.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/logic/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/usecontroller.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/usefieldarray.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/useform.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/useformcontext.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/useformstate.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/usewatch.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/utils/get.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/utils/set.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/utils/index.d.ts","../../node_modules/.bun/react-hook-form@7.60.0+2f44e903108183df/node_modules/react-hook-form/dist/index.d.ts","./src/components/ui/form.tsx","./src/components/ui/hover-card.tsx","./src/components/ui/menubar.tsx","./src/components/ui/navigation-menu.tsx","./src/components/ui/table.tsx","./src/components/ui/toast.tsx","./src/components/ui/toggle.tsx","./src/components/ui/toggle-group.tsx","./src/lib/guides/definitions/custom.tsx","./.next/dev/types/cache-life.d.ts","./.next/dev/types/validator.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.bun/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/globals.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/s3.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/fetch.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/jsx.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/bun.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/globals.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/s3.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/fetch.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/bun.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/extensions.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/devserver.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/ffi.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/html-rewriter.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/jsc.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/sqlite.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/vendor/expect-type/index.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/test.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/wasm.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/overrides.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/deprecated.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/redis.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/shell.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/experimental.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/sql.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/security.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/bun.ns.d.ts","../../node_modules/.bun/bun-types@1.2.21+fccada1f982c16e9/node_modules/bun-types/index.d.ts","../../node_modules/.bun/@types+bun@1.2.21+fccada1f982c16e9/node_modules/@types/bun/index.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/extensions.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/devserver.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/ffi.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/html-rewriter.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/jsc.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/sqlite.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/vendor/expect-type/index.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/test.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/wasm.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/overrides.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/deprecated.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/redis.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/shell.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/serve.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/sql.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/security.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/bundle.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/bun.ns.d.ts","../../node_modules/.bun/bun-types@1.3.11/node_modules/bun-types/index.d.ts","../../node_modules/.bun/@types+bun@1.3.11/node_modules/@types/bun/index.d.ts","../../node_modules/.bun/@types+culori@4.0.1/node_modules/@types/culori/index.d.ts","../../node_modules/.bun/pg-types@2.2.0/node_modules/pg-types/index.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/messages.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/serializer.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/parser.d.ts","../../node_modules/.bun/pg-protocol@1.10.3/node_modules/pg-protocol/dist/index.d.ts","../../node_modules/.bun/@types+pg@8.15.4/node_modules/@types/pg/lib/type-overrides.d.ts","../../node_modules/.bun/@types+pg@8.15.4/node_modules/@types/pg/index.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/cellmeasurer.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/grid.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/arrowkeystepper.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/autosizer.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/collection.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/columnsizer.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/infiniteloader.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/list.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/masonry.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/multigrid.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/scrollsync.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/table.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/dist/es/windowscroller.d.ts","../../node_modules/.bun/@types+react-virtualized@9.22.3/node_modules/@types/react-virtualized/index.d.ts"],"fileIdsList":[[86,101,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,559,560,561,562,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,603,606,609,1447,1448,1454,1511,2212,2215,2219,2221,2223,2225,2227,2230,2371,2373,2378,2381,2382,2383,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,86,100,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,103,106,151,202,280,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,607,608,609,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,611,612,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,164,165,173,194,442,614,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1445,1446,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,100,106,151,280,603,1453,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,2197,2204,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,579,591,607,623,683,2205,2218,2220,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,581,607,623,683,2205,2218,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,581,1794,1842,2193,2205,2218,2222,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,581,591,607,1455,1456,2193,2205,2224,2226,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1456,1794,1842,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,581,1456,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,1456,2205,2218,2224,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1455,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,581,607,620,2205,2222,2228,2229,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,591,1757,2011,2252,2277,2296,2310,2324,2333,2334,2368,2369,2370,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,280,594,621,2194,2206,2207,2208,2211,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,620,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,620,2197,2204,2214,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,620,2205,2218,2372,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,581,591,619,1471,1473,1508,1509,1559,1630,1704,1794,1842,2186,2196,2222,2258,2264,2270,2325,2327,2330,2369,2374,2375,2376,2377,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1508,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,1794,2205,2228,2379,2380,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,620,683,1510,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,607,620,683,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,579,581,607,620,1471,1473,1794,2205,2222,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1630,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1842,2258,2269,2270,2326,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1704,2193,2269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1508,1630,1842,2186,2269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1842,2258,2269,2270,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1559,1722,1742,1842,2269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1763,1842,2269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,581,591,620,1471,1473,1559,1704,1794,1842,2195,2203,2264,2325,2327,2331,2332,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1642,1643,1704,1794,1842,2193,2258,2259,2284,2328,2329,2330,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,581,591,1471,1473,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,620,1770,1842,2193,2269,2367,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,294,1469,1704,1734,1794,1842,2193,2207,2262,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,2218,2253,2254,2260,2265,2268,2273,2274,2275,2276,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1842,2207,2253,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,1471,1473,1474,1480,1487,1492,1559,1704,1715,1735,1755,1756,1794,1842,1863,2196,2207,2253,2255,2261,2263,2264,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1478,1639,1696,1704,1727,1728,1754,1842,1866,2009,2255,2256,2257,2259,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1468,1485,1487,1704,1867,2255,2263,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1508,1570,1704,1729,1730,1794,1842,1867,2259,2266,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1570,1704,2010,2187,2255,2256,2258,2259,2267,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,1570,1704,1729,1730,1794,2010,2187,2255,2256,2266,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1564,1739,1761,1762,1794,1842,2218,2264,2269,2270,2271,2272,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,1471,1473,1559,1668,1669,1671,1679,1794,1842,2013,2207,2255,2256,2257,2263,2270,2271,2272,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1478,1487,1704,2255,2263,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1560,1631,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1559,1704,1744,1844,2196,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1744,1844,1849,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,1844,1849,2192,2218,2258,2284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1473,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1630,1644,1646,1687,1704,1732,1738,1744,1760,1844,2196,2311,2317,2318,2319,2320,2323,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1471,1506,1657,1744,1747,1751,2312,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1704,1710,1744,1747,1759,2313,2314,2315,2316,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1666,1724,1743,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1744,1747,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1478,1492,1493,1704,1744,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1630,1704,1715,1724,1744,1842,1844,1849,2218,2256,2321,2322,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1487,1505,1744,1759,1764,2312,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1794,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1666,1707,1843,2256,2259,2288,2289,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1495,1504,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1492,1504,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1492,1504,1704,1707,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1666,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1704,1710,1766,1794,1842,2207,2271,2294,2295,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,619,1471,1473,1480,1492,2279,2280,2281,2287,2291,2292,2293,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,2259,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,619,1466,1470,1471,1473,1474,1492,1504,1666,1704,1705,1708,1752,1843,2256,2259,2278,2279,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1467,1468,1471,1473,1485,1492,1704,1733,1794,1842,2218,2253,2259,2290,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,619,1467,1471,1473,1492,1495,1505,1506,1657,1666,1704,1707,1733,1752,1794,1842,1843,2207,2259,2264,2286,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,2259,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,619,1471,1473,1478,1486,1492,1504,1570,1666,1704,1705,1706,1707,1708,1794,1842,1843,2259,2278,2279,2282,2285,2286,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1474,1492,1504,1666,1704,1705,1708,1709,1710,1842,1843,2259,2278,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1696,1697,1731,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1474,1486,1492,1570,1630,1631,1666,1703,1704,1773,1842,2258,2270,2284,2286,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1779,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1474,1492,1704,1715,1740,1766,1772,1773,1774,1775,1780,1781,1782,1783,1784,1794,1858,1860,1865,2196,2271,2299,2300,2301,2305,2307,2308,2309,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1772,1778,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,1466,1471,1473,1474,1480,1486,1492,1504,1679,1695,1704,1710,1715,1766,1767,1772,1785,1786,1794,2196,2253,2297,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1492,1704,1781,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1489,1570,1704,1776,2306,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1489,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1474,1488,1704,1715,1740,1794,1842,2193,2207,2271,2288,2302,2304,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1492,1704,1766,1772,1774,2298,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1559,1560,1704,1794,1842,2193,2269,2303,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,579,581,620,1486,2202,2203,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,581,620,1471,1473,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,579,581,620,1471,1473,1794,1842,2192,2193,2195,2196,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,579,581,1842,2193,2213,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,591,1690,1703,1704,1722,1741,1769,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1794,1842,2258,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1559,1599,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1794,1842,2194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1794,1841,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1839,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1841,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,1839,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,1841,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1842,2193,2644,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1794,1842,2185,2256,2270,2284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1723,1794,1839,1841,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1723,1794,1839,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1723,1794,1839,1841,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1688,1689,1690,1737,1794,1842,2193,2270,2283,2284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,2258,2676,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1841,1842,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,1841,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1736,1794,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1723,1794,1839,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,633,664,671,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,2367,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1794,2251,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1471,1473,1723,1794,1839,1841,2193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,2217,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1559,2194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1794,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1842,2218,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1839,1841,2683,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1722,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1643,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1508,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,619,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,619,1470,1471,1473,1492,1508,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1726,1727,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1485,1512,1640,1641,1657,1691,1692,1698,1699,1700,1701,1702,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1529,1623,1696,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1639,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1480,1559,1599,1624,1639,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1475,1487,1508,1559,1560,1570,1598,1599,1638,1643,1644,1687,1690,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1630,1643,1644,1646,1687,1694,1696,1697,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1476,1492,1560,1599,1631,1636,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1467,1492,1519,1557,1639,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1715,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1492,1704,1715,1740,1750,1765,1766,1767,1768,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1475,1492,1630,1704,1740,1745,1750,1766,1771,1772,1779,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1492,1529,1630,1704,1740,1745,1750,1772,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1466,1474,1492,1513,1538,1630,1639,1704,1750,1767,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1466,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1492,1630,1704,1745,1771,1772,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1469,1474,1476,1487,1492,1557,1559,1630,1639,1704,1734,1755,1756,1779,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1492,1630,1704,1745,1772,1774,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1630,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1488,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1731,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1734,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1688,1689,1690,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1697,1715,1722,1740,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1715,1716,1722,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1467,1492,1505,1506,1657,1704,1744,1745,1746,1747,1749,1750,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1474,1480,1487,1557,1626,1639,1697,1704,1715,1755,1756,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1470,1487,1492,1505,1704,1744,1745,1747,1750,1758,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1761,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1466,1470,1487,1504,1505,1704,1744,1745,1747,1750,1759,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1712,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1711,1713,1714,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1711,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1713,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1467,1468,1496,1498,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1494,1496,1497,1498,1501,1502,1503,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1494,1495,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1495,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1475,1494,1495,1496,1497,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1502,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1478,1487,1492,1494,1495,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1470,1494,1496,1499,1500,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,280,1788,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,280,1137,1139,1141,1444,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,623,633,664,671,673,677,682,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1513,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1513,1557,1558,1626,1636,1638,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1480,1487,1513,1559,1599,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1600,1625,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1487,1492,1513,1599,1624,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1637,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1508,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1513,1560,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1627,1628,1629,1632,1633,1634,1635,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1513,1560,1631,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1554,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1476,1487,1492,1504,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1476,1492,1504,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1485,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1542,1543,1544,1545,1546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1519,1520,1521,1522,1523,1524,1530,1531,1532,1533,1534,1541,1547,1550,1552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1475,1476,1480,1487,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1536,1537,1538,1539,1540,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1487,1492,1513,1535,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1492,1504,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1548,1549,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1506,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1476,1490,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1504,1513,1529,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1492,1504,1513,1529,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1487,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1504,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1476,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1476,1492,1504,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1518,1553,1555,1556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1476,1492,1513,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1514,1515,1516,1517,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,280,1142,1442,1443,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1342,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1469,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1468,2015,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1482,1483,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1468,1475,1481,1482,1484,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1468,1481,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1642,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1688,1689,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1681,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1681,1682,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1791,1842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1473,1666,1725,1791,1794,1843,1844,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,579,1791,1846,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1791,1848,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1791,1845,1847,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1505,1506,1655,1748,1749,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1506,1649,1650,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1506,1651,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1471,1506,1648,1652,1653,1655,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1506,1650,1654,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1505,1506,1649,1747,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1505,1506,1649,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1506,1648,1656,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1506,1649,1657,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1473,1481,1506,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1505,1649,1747,1748,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1505,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1487,1492,1529,1623,1695,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1492,1529,1623,1696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1559,1563,1599,1623,1695,1754,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1479,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1559,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1478,1480,1492,1493,1504,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1505,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1507,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,280,1141,1452,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1529,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1525,2016,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1525,1526,1527,1528,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1525,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1476,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1856,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1768,1855,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1855,1857,1861,1862,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1853,1855,1856,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1794,1853,1854,1855,1856,1858,1859,1860,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1856,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1671,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1668,1669,1670,1677,1678,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1669,1671,1672,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1669,1671,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1669,1670,1673,1674,1675,1676,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1669,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1481,1669,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1669,1670,1671,1677,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1668,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1478,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1492,1630,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1476,1487,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1478,1480,1485,1486,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1469,1476,1477,1487,1488,1489,1490,1491,1507,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1492,1504,1631,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1474,1475,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1467,1468,1470,1506,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1727,1728,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1726,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,603,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1645,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1481,1485,1647,1659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1658,1659,1661,2015,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1644,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1483,1492,1495,1529,1624,1644,1645,1647,1660,1665,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1644,1645,1683,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1467,1485,1644,1645,1660,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1644,1663,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1644,1663,1679,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1478,1485,1492,1493,1504,1535,1644,1645,1647,1660,1666,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1624,1644,1663,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1466,1468,1470,1485,1492,1495,1504,1506,1529,1535,1644,1645,1647,1657,1660,1662,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1492,1508,1570,1645,1646,1664,1665,1667,1680,1684,1685,1686,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1623,1643,1644,1646,1693,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1659,2015,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1647,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1658,1659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,2015,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1868,1869,1870,1871,1872,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1568,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1479,1570,1571,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1573,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1575,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1577,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1579,1873,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1585,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1566,1569,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1597,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1561,1565,1566,1567,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1568,1571,1573,1575,1577,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1475,1565,1567,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1479,1561,1565,1567,1570,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1567,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1568,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1479,1561,1565,1566,1571,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1589,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1591,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1593,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1595,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1573,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1575,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1577,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1579,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1581,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1583,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1585,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1565,1566,1587,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1479,1480,1492,1508,1560,1561,1562,1563,1564,1598,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1480,1492,1508,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1727,1728,2008,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1727,1728,2007,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1623,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,84,106,151,1459,1465,1471,1473,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1508,1570,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1697,1712,1715,1716,1721,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1717,1718,1719,1720,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1712,1715,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1724,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1725,1791,1849,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1487,1559,1564,1599,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1487,1668,1669,1670,1671,1677,1679,1703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1459,1465,1492,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,2184,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,1792,1793,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,696,697,700,701,705,715,716,717,755,790,1043,1059,1060,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,696,790,1059,1128,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1128,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1129,1130,1131,1132,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,715,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,706,707,708,709,710,711,712,715,1043,1059,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1043,1059,1060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,706,707,708,709,710,711,712,713,714,1043,1059,1060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,685,715,1043,1059,1060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1043,1059,1060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,698,699,700,701,702,703,704,1060,1061,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[85,106,151,685,1059,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,716,1072,1073,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1108,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,685,697,790,1043,1058,1059,1062,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,717,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,717,755,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,717,718,719,720,721,753,754,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,685,1059,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,717,752,755,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,752,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,717,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,696,697,698,700,701,702,705,715,716,717,755,1043,1060,1062,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[85,106,151,685,697,790,1043,1058,1062,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,182,685,696,698,699,700,701,702,705,715,716,789,790,791,1042,1060,1062,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,685,1043,1044,1057,1062,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,685,696,705,790,791,1042,1043,1061,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,716,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1121,1122,1123,1124,1125,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[85,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,607,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1472,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1894,1897,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1902,1912,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1905,1914,1915,2007,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1896,1897,1898,1899,1902,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1894,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1903,1906,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1911,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1906,1907,1908,1909,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1905,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1902,1903,1907,1908,1910,1911,1912,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1915,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1915,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1914,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1916,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1914,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1922,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1912,1914,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1914,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1905,1916,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1905,1912,1916,1917,1936,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1905,1912,1916,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1905,1912,1914,1916,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1954,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1914,2007,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1905,1916,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1905,1916,1936,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1945,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1962,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,1914,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1916,1928,2007,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1916,1981,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1969,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1997,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1970,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1950,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1985,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1924,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1915,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1912,1914,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1907,1910,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1902,1905,1907,1912,1913,1916,1917,1918,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1899,1902,1904,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1895,1897,1898,1899,1901,1902,1903,1905,1906,1908,1909,1912,1913,1914,1915,1916,1917,1918,1919,1920,1935,1936,1980,1981,2006,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1902,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1894,1896,1897,1898,1903,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,442,1902,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1900,1901,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1912,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,183,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1798,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1803,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1797,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1796,1797,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,1796,1797,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1812,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1796,1797,1800,1801,1802,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,1796,1797,1816,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1800,1802,1810,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1800,1801,1802,1810,1811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,1796,1797,1811,1812,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1800,1820,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1797,1811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1800,1801,1802,1810,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1796,1797,1808,1809,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1796,1797,1800,1801,1802,1810,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,2216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1800,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1811,1835,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1797,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1796,1797,1811,1829,1836,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,1796,1797,1800,1802,1810,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2755,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2779],[106,151,2184,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2029,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2027,2029,2030,2031,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2028,2029,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2033,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2062,2063,2064,2065,2066,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2020,2034,2044,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2035,2044,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2020,2034,2035,2062,2063,2064,2069,2070,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2060,2157,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2037,2060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2036,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2062,2063,2064,2072,2073,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2037,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2037,2062,2063,2064,2075,2076,2077,2078,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2037,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2038,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2062,2063,2064,2080,2081,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2039,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2039,2062,2063,2064,2083,2084,2085,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2039,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2183,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2018,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2040,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2180,2181,2182,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2041,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2041,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2087,2088,2089,2090,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2041,2042,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2020,2042,2062,2063,2064,2092,2093,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2043,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2043,2058,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2043,2095,2096,2097,2098,2099,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2043,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2044,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2044,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2100,2101,2102,2103,2104,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2043,2060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2043,2045,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2020,2045,2062,2063,2064,2106,2107,2108,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2045,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2044,2045,2046,2109,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2047,2049,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2062,2063,2064,2111,2112,2113,2114,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2048,2060,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2048,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2027,2116,2117,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2049,2058,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2020,2049,2119,2120,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2027,2032,2060,2061,2067,2068,2071,2074,2079,2082,2086,2091,2094,2100,2105,2109,2110,2115,2118,2121,2124,2127,2133,2135,2138,2141,2144,2145,2150,2153,2167,2183,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2060,2063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2050,2052,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2050,2079,2122,2123,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2051,2052,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2051,2082,2125,2126,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2048,2052,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2052,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2052,2100,2128,2129,2130,2131,2132,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2052,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2052,2053,2109,2134,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2053,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2054,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2027,2054,2136,2137,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2055,2058,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2027,2055,2139,2140,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2056,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2027,2056,2142,2143,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2021,2023,2024,2025,2026,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2022,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2057,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2165,2166,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2058,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2096,2098,2111,2112,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2028,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2028,2058,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2146,2147,2148,2149,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2020,2059,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2017,2019,2151,2152,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1602,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1601,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,624,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,148,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,152,157,163,164,171,183,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,152,153,163,171,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,154,195,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,155,156,164,172,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,183,191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,157,159,163,171,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,158,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,159,160,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,161,163,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,163,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,164,165,183,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,164,165,178,183,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,146,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,146,151,159,163,166,171,183,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,164,166,167,171,183,191,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,168,183,191,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[104,105,106,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,169,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,170,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,159,163,171,183,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,172,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,173,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,174,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,176,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,177,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,178,179,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,178,180,195,197,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,183,184,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,185,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,183,184,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,186,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,187,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,148,151,183,188,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,189,190,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,189,190,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,171,183,191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,192,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,171,193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,195,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,183,196,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,170,197,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,198,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,165,174,183,186,194,196,197,199,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,183,200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,183,191,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2782,2783,2786,2787,2788],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2788],[106,151,285,295,296,297,513,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,295,296,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,296,513,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2790],[83,106,151,284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2802],[83,106,151,284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2789,2802],[83,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2789,2790,2802],[83,106,151,284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2789,2790],[83,106,151,284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2789,2790,2802],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801],[106,151,285,289,293,554,600,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,289,292,554,600,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,282,283,284,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[81,82,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1450,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1141,1451,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1449,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1140,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,715,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1138,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,269,279,755,791,1063,1064,1065,1074,1086,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1110,1111,1115,1137,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1092,1093,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1063,1086,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,755,1086,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,1086,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,1063,1086,1090,1111,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1086,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,1063,1064,1086,1090,1111,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1063,1090,1110,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1044,1063,1064,1086,1117,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1044,1057,1063,1064,1109,1117,1787,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,1057,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1063,1064,1065,1090,1110,1111,1115,1116,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[85,106,151,705,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1063,1069,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1065,1066,1067,1068,1070,1071,1075,1112,1113,1114,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,715,1063,1074,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1063,1090,1111,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,279,705,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,715,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,269,279,705,752,755,789,1063,1064,1074,1086,1087,1088,1089,1090,1107,1109,1110,1111,1117,1118,1119,1120,1126,1127,1133,1134,1136,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1063,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,715,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1064,1086,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1063,1064,1087,1088,1107,1109,1111,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,789,1063,1064,1087,1088,1089,1110,1111,1117,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1063,1064,1065,1110,1115,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,705,1063,1064,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1119,1120,1126,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1076,1077,1078,1079,1081,1082,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1076,1077,1078,1079,1080,1082,1083,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1077,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1076,1081,1083,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1081,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1081,1082,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,686,687,688,689,691,692,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,686,687,688,689,690,692,693,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,687,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,686,687,688,689,690,691,692,693,694,695,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,686,691,693,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,691,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,691,692,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,370,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,164,166,191,195,199,2724,2725,2726,2727,2729,2730,2731,2732,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2724,2725,2726,2727,2729,2730,2731,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,174,183,186,191,195,199,2724,2725,2726,2727,2729,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,164,165,172,186,191,194,200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,164,2725,2726,2727,2729,2730,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2744,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2740,2741,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2740,2741,2742,2743,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2740,2742,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2740,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,164,166,191,195,199,2724,2725,2726,2727,2728,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2724,2725,2726,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,174,183,186,191,195,199,2724,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2760,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[13,106,147,151,154,156,164,165,172,186,191,194,200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2773,2774,2775,2776],[106,151,164,2725,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2767,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2763,2764,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2763,2764,2765,2766,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2763,2765,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2763,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2770,2771,2772,2773,2774,2775,2776],[106,151,1792,1840,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1792,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2389,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2387,2389,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2387,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2389,2453,2454,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2456,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2457,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2474,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2389,2454,2574,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2387,2571,2572,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2573,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2571,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2387,2388,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,194,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[102,106,151,191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1150,1196,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1195,1434,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1220,1275,1342,1394,1428,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1150,1151,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1189,1194,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1159,1189,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1174,1175,1176,1177,1178,1179,1180,1181,1182,1192,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1162,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1184,1189,1190,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1189,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1191,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1189,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1174,1175,1176,1177,1178,1179,1180,1181,1182,1191,1192,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1161,1191,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1173,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1173,1189,1191,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1156,1189,1193,1194,1196,1198,1201,1202,1203,1205,1211,1212,1216,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1189,1193,1196,1211,1215,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1189,1193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1160,1161,1184,1185,1186,1187,1188,1189,1190,1193,1203,1204,1205,1211,1212,1214,1215,1217,1218,1219,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1189,1193,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1185,1189,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1189,1205,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1189,1199,1200,1205,1212,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1206,1207,1208,1209,1210,1213,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1148,1149,1150,1156,1184,1189,1191,1199,1200,1205,1207,1212,1213,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1156,1193,1203,1210,1212,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1189,1196,1199,1200,1205,1212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1197,1199,1200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1199,1200,1205,1212,1215,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1189,1193,1194,1195,1199,1200,1203,1205,1212,1216,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1149,1150,1151,1156,1189,1193,1194,1205,1210,1215,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1148,1149,1150,1151,1189,1191,1194,1199,1200,1205,1212,1216,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1161,1189,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1159,1195,1196,1197,1204,1212,1216,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1149,1150,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1160,1183,1184,1186,1187,1188,1190,1191,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1150,1160,1184,1186,1187,1188,1189,1190,1193,1194,1215,1220,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1149,1150,1151,1156,1191,1194,1213,1214,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1144,1146,1147,1148,1151,1159,1196,1199,1429,1430,1431,1432,1433,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1250,1258,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1250,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1253,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1252,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1252,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1250,1251,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1250,1252,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1250,1252,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1241,1242,1243,1244,1245,1252,1253,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1232,1252,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1240,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1196,1250,1257,1258,1263,1264,1265,1266,1268,1271,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1250,1252,1255,1256,1261,1262,1268,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1250,1254,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1221,1247,1248,1249,1250,1251,1254,1257,1263,1265,1267,1268,1269,1270,1272,1273,1274,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1250,1254,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1250,1258,1268,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1199,1250,1252,1263,1268,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1256,1259,1260,1261,1262,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1150,1156,1195,1199,1200,1250,1252,1260,1261,1263,1268,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1257,1259,1263,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1199,1250,1263,1268,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1195,1199,1247,1250,1254,1257,1258,1263,1268,1271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1149,1150,1151,1156,1250,1254,1258,1259,1268,1270,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1195,1199,1250,1252,1263,1268,1271,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1250,1270,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1195,1196,1263,1267,1271,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1149,1150,1156,1260,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1221,1246,1247,1248,1249,1251,1252,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1221,1247,1248,1249,1250,1251,1258,1259,1270,1275,1434,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1149,1150,1156,1254,1258,1260,1269,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1150,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1317,1323,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1159,1317,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1277,1278,1279,1280,1281,1283,1284,1285,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1320,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1287,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1312,1317,1318,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1317,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1319,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1282,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1317,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1277,1278,1279,1280,1281,1283,1284,1285,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1319,1320,1321,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1286,1319,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1289,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1317,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1282,1289,1317,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1282,1317,1319,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1196,1317,1322,1323,1324,1328,1329,1331,1332,1335,1336,1435,1436,1437,1438,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1255,1317,1322,1324,1331,1335,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1317,1322,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1276,1286,1312,1313,1314,1315,1316,1317,1318,1322,1324,1329,1331,1332,1334,1335,1337,1338,1339,1341,1439,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1317,1322,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1313,1317,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1317,1324,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1156,1195,1199,1200,1317,1324,1332,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1325,1326,1327,1328,1330,1333,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1148,1149,1150,1156,1195,1199,1200,1312,1317,1319,1324,1326,1332,1333,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1322,1329,1330,1332,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1199,1200,1317,1324,1332,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1199,1200,1324,1332,1335,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1195,1199,1200,1317,1322,1323,1324,1329,1332,1336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1149,1150,1151,1156,1317,1322,1323,1324,1330,1335,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1148,1149,1150,1151,1156,1195,1199,1200,1317,1319,1323,1324,1332,1336,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1286,1317,1321,1335,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1159,1195,1196,1197,1332,1336,1435,1439,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1149,1150,1156,1333,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1276,1311,1312,1314,1315,1316,1318,1319,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1150,1276,1312,1314,1315,1316,1317,1318,1322,1323,1335,1342,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1340,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1149,1150,1151,1156,1319,1323,1333,1334,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1142,1143,1151,1439,1440,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1440,1441,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1142,1143,1144,1150,1151,1195,1196,1324,1332,1336,1342,1380,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1159,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1150,1151,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1150,1151,1154,1430,1434,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1434,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1372,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1362,1363,1364,1365,1366,1367,1374,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1372,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1372,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1372,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1159,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1362,1363,1364,1365,1366,1367,1373,1374,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1353,1373,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1361,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1196,1372,1379,1382,1383,1384,1387,1389,1390,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1255,1372,1373,1376,1377,1378,1389,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1369,1370,1371,1372,1375,1379,1384,1387,1388,1389,1391,1392,1393,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1372,1375,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1372,1375,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1372,1389,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1199,1372,1373,1379,1389,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1376,1377,1378,1385,1386,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1150,1199,1200,1372,1373,1377,1379,1389,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1379,1384,1385,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1195,1199,1372,1375,1379,1384,1389,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1149,1150,1151,1156,1372,1375,1385,1389,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1199,1372,1373,1379,1389,1390,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1372,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1195,1196,1379,1388,1390,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1149,1150,1156,1386,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1368,1369,1370,1371,1373,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1150,1369,1370,1371,1372,1394,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1144,1151,1196,1379,1381,1388,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1144,1150,1151,1195,1196,1379,1380,1389,1390,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1150,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1152,1153,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1155,1157,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1150,1156,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1150,1154,1158,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1145,1146,1148,1149,1151,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1400,1421,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1421,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1396,1416,1417,1418,1419,1424,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1423,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1421,1422,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1421,1423,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1396,1416,1417,1418,1419,1423,1424,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1415,1421,1423,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1423,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1151,1421,1423,1429,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1150,1151,1196,1400,1401,1402,1403,1406,1411,1412,1421,1426,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1255,1406,1411,1421,1425,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1421,1425,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1395,1397,1398,1399,1403,1404,1406,1411,1412,1414,1415,1421,1422,1425,1427,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1421,1425,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1406,1414,1421,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1199,1200,1406,1412,1421,1423,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1407,1408,1409,1410,1413,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1199,1200,1397,1406,1408,1412,1413,1421,1423,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1403,1410,1412,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1151,1196,1199,1200,1406,1412,1421,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1197,1199,1200,1412,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1156,1195,1199,1200,1400,1403,1406,1412,1421,1425,1426,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1146,1147,1148,1149,1150,1151,1156,1400,1406,1410,1414,1421,1425,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1148,1149,1150,1151,1199,1200,1400,1406,1412,1421,1423,1426,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1150,1195,1196,1197,1199,1404,1405,1412,1426,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1149,1150,1156,1413,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1146,1395,1397,1398,1399,1420,1422,1423,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1421,1423,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1148,1150,1395,1397,1398,1399,1400,1414,1421,1422,1428,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1149,1150,1156,1400,1413,1423,1429,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1143,1147,1150,1151,1430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1144,1146,1150,1430,1435,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,639,640,641,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,285,370,2188,2189,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,285,370,2188,2189,2190,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,658,660,661,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,634,658,660,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,626,658,659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,624,628,634,657,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,634,651,656,658,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,674,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,678,679,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,680,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,669,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,656,658,668,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,722,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,884,988,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,988,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,882,883,884,988,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,988,1005,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,803,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,882,883,884,885,988,1025,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,879,881,882,1025,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,883,988,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,808,809,823,837,838,867,1001,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,884,988,1005,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,881,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,882,883,884,885,988,1012,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,879,880,881,882,1012,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,825,1001,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,882,883,884,885,988,1018,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,879,880,881,882,1018,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1001,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,882,883,884,885,988,1006,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,880,881,882,1006,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,871,994,1001,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,879,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,881,882,886,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,880,881,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,881,882,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,881,886,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,844,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,841,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,906,909,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,803,805,851,888,893,901,902,903,904,907,923,925,934,936,941,942,943,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,803,805,841,851,904,920,921,922,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,841,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,794,795,796,797,798,799,800,801,802,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,891,892,894,895,900,901,902,903,904,905,906,907,908,909,910,911,912,913,915,916,917,919,920,921,922,923,924,925,927,928,929,930,933,934,935,936,937,938,939,940,941,944,945,946,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,972,973,974,975,976,977,982,984,985,988,989,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,851,878,879,881,882,883,885,887,888,889,934,936,958,965,966,984,985,986,987,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1030,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,807,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,816,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,824,839,840,929,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,799,808,809,810,812,817,818,819,820,821,822,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,866,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,794,795,796,797,806,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,799,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,846,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,794,813,814,815,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,799,811,824,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,799,805,807,816,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,798,828,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,798,811,858,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,824,830,835,836,839,840,848,853,857,864,865,874,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,798,799,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,799,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,798,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,852,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,855,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,795,799,806,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,831,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,799,848,853,857,864,865,869,870,871,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,834,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,855,901,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,901,937,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,843,938,939,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,799,835,841,848,857,864,865,866,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,795,824,868,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,868,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,794,795,796,797,798,799,806,807,808,809,810,811,812,813,814,815,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,845,846,847,848,849,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,877,878,892,900,901,920,921,922,927,928,929,930,935,937,938,939,940,967,968,993,994,995,996,997,998,999,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,794,795,796,797,798,799,806,807,808,809,810,811,812,813,814,815,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,845,846,847,848,849,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,877,892,900,901,920,921,922,927,928,929,930,935,937,938,939,940,967,968,993,994,995,996,997,998,999,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,838,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,839,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,839,840,927,928,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,844,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,927,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,795,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,824,835,839,840,845,851,852,853,857,858,864,865,867,872,873,875,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,799,842,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,799,805,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,845,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,824,830,831,832,833,835,836,837,839,840,845,848,849,853,854,856,857,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,799,841,842,844,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,795,843,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,824,830,835,836,840,848,853,857,864,865,868,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,828,967,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,847,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,850,851,900,901,902,903,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,851,892,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,851,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,801,805,907,977,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,841,851,899,944,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,831,944,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,795,902,903,944,968,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,835,905,907,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,804,805,907,982,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,839,851,909,912,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,909,927,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,795,805,841,843,844,851,899,901,903,909,913,940,945,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,800,801,802,804,910,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,811,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,907,925,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,845,851,903,909,925,944,945,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,851,854,944,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,799,805,841,851,906,945,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,902,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,901,945,946,995,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,802,805,907,976,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,868,902,903,944,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,851,855,899,945,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,847,851,975,976,977,978,984,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,880,881,887,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,880,881,887,1036,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,828,900,901,967,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,878,880,881,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,841,851,904,913,924,930,932,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,803,851,902,904,923,935,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,847,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,801,803,805,850,851,852,875,876,878,879,887,888,889,902,904,907,908,910,913,915,916,919,924,945,946,971,972,974,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,803,805,851,899,903,923,926,933,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,904,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,800,803,805,850,851,852,872,876,878,879,887,888,889,903,910,916,919,945,969,970,971,972,973,974,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,835,850,904,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,841,851,938,940,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,804,805,850,851,867,876,878,879,888,889,902,904,907,908,910,916,945,946,969,970,971,972,974,976,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,876,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,850,851,869,903,904,915,945,946,970,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,851,913,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,839,850,911,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,944,945,971,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,851,913,924,929,931,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,903,910,971,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,851,858,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,803,805,851,852,856,857,858,876,878,879,887,888,889,899,902,903,904,907,908,910,913,914,915,916,917,918,919,923,924,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,802,803,805,850,851,852,873,876,878,879,887,888,889,902,904,907,908,910,913,915,916,919,924,945,946,970,971,972,974,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,904,945,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,878,880,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,792,793,794,795,796,797,798,799,806,807,808,809,810,811,812,813,814,815,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,845,846,847,848,849,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,877,878,879,880,892,900,901,920,921,922,927,928,929,930,935,937,938,939,940,967,968,993,994,995,996,997,998,999,1000,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,811,820,823,825,826,827,829,859,860,861,862,863,867,876,877,878,879,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,800,848,887,888,907,910,925,943,975,978,979,980,981,983,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,878,879,880,881,884,886,887,990,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,879,884,887,990,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,878,879,880,881,884,886,887,888,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,888,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,878,879,880,881,884,886,887,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,811,851,878,879,881,887,958,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,959,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,812,850,890,893,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,806,823,850,878,879,888,889,894,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,823,825,850,851,878,879,888,889,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,823,850,851,878,879,888,889,891,893,894,895,896,897,898,947,948,949,950,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,823,850,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,794,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,806,807,850,851,890,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,825,850,851,878,879,888,889,904,944,946,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,826,850,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,827,850,851,878,879,888,889,891,893,894,948,949,950,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,829,850,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,859,878,879,888,889,925,959,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,820,850,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,860,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,861,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,862,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,863,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,806,813,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,814,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,850,877,878,879,888,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,887,888,951,952,953,954,955,956,957,960,961,962,963,964,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,815,850,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,851,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,800,801,802,804,805,879,889,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,805,879,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,800,801,802,803,804,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,2335,2336,2337,2361,2362,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,2336,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,2335,2336,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,634,658,2335,2337,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1605,1606,1609,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1607,1608,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,1605,1609,1610,1611,1615,1619,1620,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,1606,1609,1610,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1606,1609,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1602,1603,1604,1605,1606,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,1605,1606,1609,1615,1618,1620,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1605,1616,1617,1619,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,1606,1610,1619,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1606,1609,1610,1611,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1609,1612,1615,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,1605,1612,1613,1614,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1604,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2188,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1046,1047,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1045,1046,1049,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1045,1046,1051,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1046,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1050,1057,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1045,1046,1047,1048,1049,1050,1052,1053,1054,1055,1056,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1045,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,557,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,302,304,308,319,509,538,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,314,315,316,318,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,351,353,355,356,359,550,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,308,310,311,312,342,437,509,528,529,537,550,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,315,407,517,526,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,298,407,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,361,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,360,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,507,517,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,475,487,526,545,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,418,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,531,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,530,531,532,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,530,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,291,298,304,308,311,313,315,319,320,333,334,361,437,448,527,538,550,554,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,302,304,317,351,352,357,358,550,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,317,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,302,334,462,550,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,317,318,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,354,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,320,528,536,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,177,370,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,370,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,479,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,405,415,416,546,582,589,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,404,523,583,584,585,586,588,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,522,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,522,523,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,342,407,408,412,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,407,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,407,411,413,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,407,408,409,410,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,587,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,305,576,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,194,285,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,317,397,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,317,538,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,395,399,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,396,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2209,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,166,201,285,289,292,293,554,598,599,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,308,341,393,438,459,461,533,534,538,550,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,333,535,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,554,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,303,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,464,477,486,496,498,545,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,177,464,477,495,496,497,545,604,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,489,490,491,492,493,494,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,491,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,495,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,368,369,370,372,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,362,363,364,365,371,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,368,371,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,366,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,367,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,396,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,555,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,370,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,438,540,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,540,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,551,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,483,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,482,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,343,407,424,461,470,473,475,476,516,545,548,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,389,407,504,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,475,545,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,475,480,481,483,484,485,486,487,488,499,500,501,502,503,505,506,545,546,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,469,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,305,341,344,365,390,391,438,448,459,460,516,539,550,551,552,554,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,545,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,315,391,448,472,539,541,542,543,544,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,475,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,341,378,424,465,466,467,468,469,470,471,473,474,545,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,378,379,465,551,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,315,438,448,461,539,545,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,550,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,183,548,551,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,194,298,308,317,343,344,346,375,380,385,389,390,391,393,422,424,426,429,431,434,435,436,437,459,461,538,539,546,548,550,551,552,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,183,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,305,306,313,548,549,554,556,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,302,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,374,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,183,194,336,359,361,362,363,364,365,372,373,605,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,177,194,298,336,351,384,385,386,422,423,424,429,437,438,444,447,449,459,461,539,546,548,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,313,320,333,437,448,539,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,194,305,308,424,442,548,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,463,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,374,445,446,456,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,548,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,470,472,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,391,424,538,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,347,351,423,429,444,447,451,548,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,320,333,351,452,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,304,346,454,538,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,194,365,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,317,345,346,347,356,374,453,455,538,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,291,391,458,554,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,421,459,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,194,308,319,320,333,343,344,380,384,385,386,390,422,423,424,426,438,439,441,443,459,461,538,539,546,547,548,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,183,320,444,450,456,548,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,323,324,325,326,327,328,329,330,331,332,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,375,430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,432,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,430,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,432,433,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,308,311,341,342,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,303,305,343,389,390,391,392,420,459,548,552,554,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,194,307,342,392,424,470,539,547,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,465,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,466,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,407,437,516,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,467,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,335,339,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,308,335,343,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,338,339,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,340,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,335,336,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,335,387,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,335,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,375,428,547,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,427,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,336,546,547,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,425,547,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,336,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,516,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,308,337,343,391,407,424,458,461,464,470,477,478,508,509,512,515,538,548,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,400,403,405,406,415,416,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,295,296,297,370,510,511,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,295,296,297,370,510,511,514,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,525,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,315,379,391,458,461,475,483,487,518,519,520,521,523,524,527,538,545,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,415,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,420,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,420,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,343,388,393,417,419,458,548,554,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,400,401,402,403,405,406,415,416,555,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,177,194,291,335,336,344,390,391,424,456,457,459,538,539,548,550,551,554,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,379,381,384,539,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,375,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,378,475,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,377,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,379,380,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,376,378,550,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,166,307,379,381,382,383,550,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,407,414,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,300,301,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,305,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,404,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,291,390,391,554,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,305,576,577,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,399,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,177,194,285,303,358,394,396,398,556,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,317,546,551,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,440,546,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,164,166,177,285,302,303,353,399,554,555,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,292,293,554,600,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,286,287,288,289,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,156,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,348,349,350,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,348,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,166,168,177,201,285,289,292,293,294,297,298,303,344,451,495,552,553,556,600,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,564,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,566,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,568,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2210,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,570,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,572,573,574,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,578,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,290,558,563,565,567,569,571,575,579,581,591,592,594,603,604,605,606,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,580,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,590,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,396,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,593,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,150,151,379,381,382,384,595,596,597,600,601,602,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1889,1891,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1888,1889,1890,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1886,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1882,1883,1884,1887,1888,1889,1891,1892,1893,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1882,1886,1888,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1887,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1883,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1884,1887,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1883,1885,1886,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,636,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,636,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,636,637,643,644,647,648,649,650,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,636,644,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,636,637,643,644,645,646,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,644,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,644,648,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,636,637,638,642,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,637,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,635,636,644,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2783,2784,2785],[106,151,183,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776,2783],[106,151,183,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,653,654,655,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,652,656,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,656,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1795,1798,1799,1802,1803,1804,1805,1806,1807,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2643,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2661,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2661,2662,2663,2666,2667,2668,2669,2670,2671,2672,2675,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2661,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2664,2665,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2659,2661,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2656,2657,2659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2652,2655,2657,2659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2656,2659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2647,2648,2649,2652,2653,2654,2656,2657,2658,2659,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2649,2652,2653,2654,2655,2656,2657,2658,2659,2660,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2656,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2650,2656,2657,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2650,2651,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2655,2657,2658,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2655,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2647,2652,2657,2658,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2673,2674,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2198,2199,2200,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2366,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[83,106,151,633,634,658,664,671,2363,2365,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2231,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2248,2249,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2232,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,285,2234,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2232,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2231,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2247,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2250,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,676,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,675,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,633,634,658,662,663,664,671,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,634,658,662,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,680,681,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,634,658,680,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,672,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,633,634,658,664,670,671,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2363,2364,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,633,634,658,664,671,2335,2363,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,183,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,667,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,665,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,665,666,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,630,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,194,2696,2700,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,183,194,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2691,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,191,194,2693,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,171,191,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2691,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,171,194,2693,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,163,183,194,2688,2689,2692,2695,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2688,2694,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2717,2718,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,186,194,201,2692,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2717,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,201,2690,2691,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2690,2691,2692,2693,2694,2695,2696,2697,2698,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2718,2719,2720,2721,2722,2723,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2711,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2703,2704,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2694,2696,2704,2705,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2695,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2688,2691,2696,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2696,2700,2704,2705,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2700,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,194,2694,2696,2699,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,2688,2693,2696,2703,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,199,201,2691,2696,2717,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,113,116,119,120,151,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,151,183,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,120,151,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,110,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,114,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,112,113,116,151,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,110,151,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,112,116,151,171,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,107,108,109,111,115,151,163,183,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,124,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,108,114,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,140,141,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,108,111,116,151,186,194,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,112,116,151,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,107,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,110,111,112,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,142,143,144,145,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,133,136,151,159,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,124,125,126,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,114,116,125,127,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,115,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,108,110,116,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,120,125,127,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,120,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,114,116,119,151,194,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,108,112,116,124,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,116,133,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,110,116,140,151,186,199,201,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2747,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,628,632,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,624,628,629,631,633,664,671,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,625,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,626,627,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,624,626,628,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[99,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[90,91,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[87,88,90,92,93,98,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[88,90,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[98,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[90,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[87,88,90,93,94,95,96,97,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[87,88,89,106,151,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,278,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,269,272,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,264,267,269,270,271,272,273,274,275,276,277,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,203,205,272,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,269,270,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,204,269,271,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,205,207,209,210,211,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,207,209,211,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,207,209,211,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,204,207,209,210,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,203,205,206,207,208,209,210,211,212,213,214,264,265,266,267,268,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,203,205,206,209,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,205,206,209,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,209,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,203,204,206,207,208,210,211,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,203,204,205,209,269,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,209,210,211,212,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1135,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,211,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1457,1458,1460,1461,1462,1464,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1460,1461,1462,1463,1464,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[106,151,1457,1460,1461,1462,1464,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,279,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776],[84,106,151,617,618,2725,2726,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2745,2746,2748,2749,2750,2751,2752,2753,2757,2758,2759,2761,2762,2768,2769,2770,2771,2772,2773,2774,2775,2776]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"b9b8a0e45c7b6172a689aee1d7662b7e86994b1648b392efee24b0b557f81126","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"1f6a3418d83e9fcc68dd19072f91f65ff84a563ecc586e89c66f1540749d3e8b","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},"b252d1222f14c2f21a89c842c0034b48d0068c1623c63fdf59c0e973cdd5b4f9",{"version":"92d5369f7f9480aac66bbcd295c0b2d82077295c8bf0f0fe08fa3c3321225e49","impliedFormat":99},{"version":"878390f2f3d349610300c7603fb9dff16cfb92fcc6f5fc1f9b262e5bbd6479e5","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"003ec918ec442c3a4db2c36dc0c9c766977ea1c8bcc1ca7c2085868727c3d3f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"db39d9a16e4ddcd8a8f2b7b3292b362cc5392f92ad7ccd76f00bccf6838ac7de","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"5078cd62dbdf91ae8b1dc90b1384dec71a9c0932d62bdafb1a811d2a8e26bef2","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"067bdd82d9768baddbdc8df51d85f7b96387c47176bf7f895d2e21e2b6b2f1f4","impliedFormat":1},{"version":"42d30e7d04915facc3ded22b4127c9f517973b4c2b1326e56c10ff70daf6800a","impliedFormat":1},{"version":"bd8b644c5861b94926687618ec2c9e60ad054d334d6b7eb4517f23f53cb11f91","impliedFormat":1},{"version":"bcbabfaca3f6b8a76cb2739e57710daf70ab5c9479ab70f5351c9b4932abf6bd","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"55f370475031b3d36af8dd47fb3934dff02e0f1330d13f1977c9e676af5c2e70","impliedFormat":1},{"version":"c54f0b30a787b3df16280f4675bd3d9d17bf983ae3cd40087409476bc50b922d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"e07c573ac1971ea89e2c56ff5fd096f6f7bba2e6dbcd5681d39257c8d954d4a8","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"1e080418e53f9b7a05db81ab517c4e1d71b7194ee26ddd54016bcef3ac474bd4","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"3b63610eaabadf26aadf51a563e4b2a8bf56eeaab1094f2a2b21509008eaef0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"2d5d50cd0667d9710d4d2f6e077cc4e0f9dc75e106cccaea59999b36873c5a0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","impliedFormat":1},{"version":"4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446","impliedFormat":1},{"version":"f8529fe0645fd9af7441191a4961497cc7638f75a777a56248eac6a079bb275d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4445f6ce6289c5b2220398138da23752fd84152c5c95bb8b58dedefc1758c036","impliedFormat":1},{"version":"a51f786b9f3c297668f8f322a6c58f85d84948ef69ade32069d5d63ec917221c","impliedFormat":1},{"version":"0c5f112b6d3377b9e8214d8920e1a69d8098b881d941f2ab3ca45234d13d68de","impliedFormat":1},{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"82919acbb38870fcf5786ec1292f0f5afe490f9b3060123e48675831bd947192","impliedFormat":1},{"version":"e222701788ec77bd57c28facbbd142eadf5c749a74d586bc2f317db7e33544b1","impliedFormat":1},{"version":"09154713fae0ed7befacdad783e5bd1970c06fc41a5f866f7f933b96312ce764","impliedFormat":1},{"version":"8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652","impliedFormat":1},{"version":"a91c8d28d10fee7fe717ddf3743f287b68770c813c98f796b6e38d5d164bd459","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"f6f827cd43e92685f194002d6b52a9408309cda1cec46fb7ca8489a95cbd2fd4","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"a270a1a893d1aee5a3c1c8c276cd2778aa970a2741ee2ccf29cc3210d7da80f5","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8926594ee895917e90701d8cbb5fdf77fc238b266ac540f929c7253f8ad6233d","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"ed8763205f02fb65e84eff7432155258df7f93b7d938f01785cb447d043d53f3","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"d4a5b1d2ff02c37643e18db302488cd64c342b00e2786e65caac4e12bda9219b","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"63e84bace96cc5195d6fbb11e4124a0e2015b3de1a1e739d2ed3888da22abf6f","9367a2b6eb67019ccf3d52f366e2955a3ae31002b39b36a8bf77684b9d571a3c",{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"472f5aab7edc498a0a761096e8e254c5bc3323d07a1e7f5f8b8ec0d6395b60a0","affectsGlobalScope":true,"impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"3609e455ffcba8176c8ce0aa57f8258fe10cf03987e27f1fab68f702b4426521","impliedFormat":1},{"version":"d1bd4e51810d159899aad1660ccb859da54e27e08b8c9862b40cd36c1d9ff00f","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"5c9b31919ea1cb350a7ae5e71c9ced8f11723e4fa258a8cc8d16ae46edd623c7","impliedFormat":1},{"version":"4aa42ce8383b45823b3a1d3811c0fdd5f939f90254bc4874124393febbaf89f6","impliedFormat":1},{"version":"96ffa70b486207241c0fcedb5d9553684f7fa6746bc2b04c519e7ebf41a51205","impliedFormat":1},{"version":"5c24c66b3ba29ce9f2a79c719967e6e944131352a117a0bc43fa5b346b5562b3","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f4625edcb57b37b84506e8b276eb59ca30d31f88c6656d29d4e90e3bc58e69df","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"c685d9f68c70fe11ce527287526585a06ea13920bb6c18482ca84945a4e433a7","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"4e01846df98d478a2a626ec3641524964b38acaac13945c2db198bf9f3df22ee","impliedFormat":1},{"version":"678d6d4c43e5728bf66e92fc2269da9fa709cb60510fed988a27161473c3853f","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"e2a37ac938c4bede5bb284b9d2d042da299528f1e61f6f57538f1bd37d760869","impliedFormat":1},{"version":"76def37aff8e3a051cf406e10340ffba0f28b6991c5d987474cc11137796e1eb","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"bfb7f8475428637bee12bdd31bd9968c1c8a1cc2c3e426c959e2f3a307f8936f","impliedFormat":1},{"version":"6f491d0108927478d3247bbbc489c78c2da7ef552fd5277f1ab6819986fdf0b1","impliedFormat":1},{"version":"0d8f2b8781c721170b87a6b662b3cb038fd1a721165ecca390352c818d425872","impliedFormat":1},{"version":"7cb0ee103671d1e201cd53dda12bc1cd0a35f1c63d6102720c6eeb322cb8e17e","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"803cd2aaf1921c218916c2c7ee3fce653e852d767177eb51047ff15b5b253893","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"7ab12b2f1249187223d11a589f5789c75177a0b597b9eb7f8e2e42d045393347","impliedFormat":1},{"version":"ad37fb4be61c1035b68f532b7220f4e8236cf245381ce3b90ac15449ecfe7305","impliedFormat":1},{"version":"93436bd74c66baba229bfefe1314d122c01f0d4c1d9e35081a0c4f0470ac1a6c","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"6e9082e91370de5040e415cd9f24e595b490382e8c7402c4e938a8ce4bccc99f","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"12d218a49dbe5655b911e6cc3c13b2c655e4c783471c3b0432137769c79e1b3c","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"6b0fc04121360f752d196ba35b6567192f422d04a97b2840d7d85f8b79921c92","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"42b81043b00ff27c6bd955aea0f6e741545f2265978bf364b614702b72a027ab","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"97e5ccc7bb88419005cbdf812243a5b3186cdef81b608540acabe1be163fc3e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"6b3453eebd474cc8acf6d759f1668e6ce7425a565e2996a20b644c72916ecf75","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"89cd3444e389e42c56fd0d072afef31387e7f4107651afd2c03950f22dc36f77","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"e39a304f882598138a8022106cb8de332abbbb87f3fee71c5ca6b525c11c51fc","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"fcdf3e40e4a01b9a4b70931b8b51476b210c511924fcfe3f0dae19c4d52f1a54","impliedFormat":1},{"version":"345c4327b637d34a15aba4b7091eb068d6ab40a3dedaab9f00986253c9704e53","impliedFormat":1},{"version":"3a788c7fb7b1b1153d69a4d1d9e1d0dfbcf1127e703bdb02b6d12698e683d1fb","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"2b5b70d7782fe028487a80a1c214e67bd610532b9f978b78fa60f5b4a359f77e","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"162e071992b34bc36ca257d629547f93cb43728d6fe073ad18a237e4f7c52d7d","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"7e6ac205dcb9714f708354fd863bffa45cee90740706cc64b3b39b23ebb84744","impliedFormat":1},{"version":"61dc6e3ac78d64aa864eedd0a208b97b5887cc99c5ba65c03287bf57d83b1eb9","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"8baa8dbdc393e3c6b26e8e31384b938756ce2effdc126648d43e58291ce9869b","impliedFormat":1},{"version":"933aee906d42ea2c53b6892192a8127745f2ec81a90695df4024308ba35a8ff4","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75","impliedFormat":1},{"version":"a3e3f0efcae272ab8ee3298e4e819f7d9dd9ff411101f45444877e77cfeca9a4","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"58659b06d33fa430bee1105b75cf876c0a35b2567207487c8578aec51ca2d977","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"30e6520444df1a004f46fdc8096f3fe06f7bbd93d09c53ada9dcdde59919ccca","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"a58beefce74db00dbb60eb5a4bb0c6726fb94c7797c721f629142c0ae9c94306","impliedFormat":1},{"version":"41eeb453ccb75c5b2c3abef97adbbd741bd7e9112a2510e12f03f646dc9ad13d","impliedFormat":1},{"version":"502fa5863df08b806dbf33c54bee8c19f7e2ad466785c0fc35465d7c5ff80995","impliedFormat":1},{"version":"c91a2d08601a1547ffef326201be26db94356f38693bb18db622ae5e9b3d7c92","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"8b4b8ebc2d99ae651c5c4169ee8b24e2b0e02a3dfaef84e357d677b663c18fdf","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"55095860901097726220b6923e35a812afdd49242a1246d7b0942ee7eb34c6e4","impliedFormat":1},{"version":"96171c03c2e7f314d66d38acd581f9667439845865b7f85da8df598ff9617476","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"d193c8a86144b3a87b22bc1f5534b9c3e0f5a187873ec337c289a183973a58fe","impliedFormat":1},{"version":"1a6e6ba8a07b74e3ad237717c0299d453f9ceb795dbc2f697d1f2dd07cb782d2","impliedFormat":1},{"version":"58d70c38037fc0f949243388ff7ae20cf43321107152f14a9d36ca79311e0ada","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"190da5eac6478d61ab9731ab2146fbc0164af2117a363013249b7e7992f1cccb","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"8a8c64dafaba11c806efa56f5c69f611276471bef80a1db1f71316ec4168acef","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"d0a4cac61fa080f2be5ebb68b82726be835689b35994ba0e22e3ed4d2bc45e3b","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"205a31b31beb7be73b8df18fcc43109cbc31f398950190a0967afc7a12cb478c","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"dba6c7006e14a98ec82999c6f89fbbbfd1c642f41db148535f3b77b8018829b8","impliedFormat":1},{"version":"7f897b285f22a57a5c4dc14a27da2747c01084a542b4d90d33897216dceeea2e","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"2ded4f930d6abfaa0625cf55e58f565b7cbd4ab5b574dd2cb19f0a83a2f0be8b","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"ca0f4d9068d652bad47e326cf6ba424ac71ab866e44b24ddb6c2bd82d129586a","affectsGlobalScope":true,"impliedFormat":1},{"version":"04d36005fcbeac741ac50c421181f4e0316d57d148d37cc321a8ea285472462b","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"05321b823dd3781d0b6aac8700bfdc0c9181d56479fe52ba6a40c9196fd661a8","impliedFormat":1},{"version":"736a8712572e21ee73337055ce15edb08142fc0f59cd5410af4466d04beff0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"a46dba563f70f32f9e45ae015f3de979225f668075d7a427f874e0f6db584991","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"02c4fc9e6bb27545fa021f6056e88ff5fdf10d9d9f1467f1d10536c6e749ac50","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"d24ff95760ea2dfcc7c57d0e269356984e7046b7e0b745c80fea71559f15bdd8","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"13c1b657932e827a7ed510395d94fc8b743b9d053ab95b7cd829b2bc46fb06db","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"078131f3a722a8ad3fc0b724cd3497176513cdcb41c80f96a3acbda2a143b58e","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"9e155d2255348d950b1f65643fb26c0f14f5109daf8bd9ee24a866ad0a743648","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"7a883e9c84e720810f86ef4388f54938a65caa0f4d181a64e9255e847a7c9f51","impliedFormat":1},{"version":"a0ba218ac1baa3da0d5d9c1ec1a7c2f8676c284e6f5b920d6d049b13fa267377","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d408d6f32de8d1aba2ff4a20f1aa6a6edd7d92c997f63b90f8ad3f9017cf5e46","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"221e915caef37c5cbaabd4946418f97dcc20591469e260732b31008321024dd8","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"371bf6127c1d427836de95197155132501cb6b69ef8709176ce6e0b85d059264","impliedFormat":1},{"version":"2bafd700e617d3693d568e972d02b92224b514781f542f70d497a8fdf92d52a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"5542d8a7ea13168cb573be0d1ba0d29460d59430fb12bb7bf4674efd5604e14c","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"b6c1f64158da02580f55e8a2728eda6805f79419aed46a930f43e68ad66a38fc","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"4c0a1233155afb94bd4d7518c75c84f98567cd5f13fc215d258de196cdb40d91","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"a9db360da86bd3283b2cb73c5e2920ec19b5fc2446418f3900cb367bce050ec7","affectsGlobalScope":true},"7ad303e40d4fddf44f156129e397511953a71481c5cfd86b1862649aaaf240cc",{"version":"93cddca2ec6a5a8a1b942af0459cbd78d1b1b48e576cdabecc82811843a2cc28","impliedFormat":1},{"version":"633efa4815322c94a4008f00050483209122cd97c8d8cb4233323a4330087f85","impliedFormat":99},"f1f855f9adc665adb1988db3ec17a34e530aa9a84219380933397d91fabfe336",{"version":"0f04ed30163f6501da3a7e0832e987a9396b5223674849974fbd6594a8112556","impliedFormat":1},"77b1ed45159f7b885ad01b1eaf9f8549e01d9c1190f13a0728783ddf5f29bee9","b2de7d3c91f9edf2dee4133f037b0cac85b5770a1af773af7640e33fa96dec97","9131fd2d7a9194e8555f503e8f3637faebe8e1b77f83b3e0f9b235270be5c2a3","8bb5f3a8883bd905776f962ceba64bbb493ba9b1f59d9b68b6ca52714f5b0b6d","aa0c4abffc2025e25ecc8f7e32766fb3f6ba38cba7e7423c43ac0ff8122e92c6","d9cf32374356cdf648de0ec9c5c4071a1e36f3aa08b27078bff72b4307978d4a","ef6db618a5a6063726f0baa5f1f6aaa38ee3e421c1d2aad199ccc9314ffcc50f","0d08137e517d6db537aa5459485d91cd4f5c493cf21049cbebb2029e49894762","0aaa06787cdb807f4a39731ab4dbcbcde69f66ba6ba37573e8df686dcd412b8e",{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"5c5d901a999dfe64746ef4244618ae0628ac8afdb07975e3d5ed66e33c767ed0","impliedFormat":99},{"version":"85d08536e6cd9787f82261674e7d566421a84d286679db1503432a6ccf9e9625","impliedFormat":99},{"version":"5702b3c2f5d248290ed99419d77ca1cc3e6c29db5847172377659c50e6303768","impliedFormat":99},{"version":"9764b2eb5b4fc0b8951468fb3dbd6cd922d7752343ef5fbf1a7cd3dfcd54a75e","impliedFormat":99},{"version":"1fc2d3fe8f31c52c802c4dee6c0157c5a1d1f6be44ece83c49174e316cf931ad","impliedFormat":99},{"version":"dc4aae103a0c812121d9db1f7a5ea98231801ed405bf577d1c9c46a893177e36","impliedFormat":99},{"version":"106d3f40907ba68d2ad8ce143a68358bad476e1cc4a5c710c11c7dbaac878308","impliedFormat":99},{"version":"42ad582d92b058b88570d5be95393cf0a6c09a29ba9aa44609465b41d39d2534","impliedFormat":99},{"version":"36e051a1e0d2f2a808dbb164d846be09b5d98e8b782b37922a3b75f57ee66698","impliedFormat":99},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"2ccdfd33a753c18e8e5fe8a1eadefff968531d920bc9cdc7e4c97b0c6d3dcaf8","impliedFormat":99},{"version":"d64a434d7fb5040dbe7d5f4911145deda53e281b3f1887b9a610defd51b3c1a2","impliedFormat":99},{"version":"927f406568919fd7cd238ef7fe5e9c5e9ec826f1fff89830e480aff8cfd197da","impliedFormat":99},{"version":"a77d742410fe78bb054d325b690fda75459531db005b62ba0e9371c00163353c","impliedFormat":99},{"version":"f8de61dd3e3c4dc193bb341891d67d3979cb5523a57fcacaf46bf1e6284e6c35","impliedFormat":99},{"version":"43866c6355cd21476b3a5cf0dc422e8a56f7acf5010acf7d9c7ea296b3beed44","impliedFormat":99},{"version":"70a8c15739dae81bdd251aecfa667521beac1ca3d62d5510ef1d168367976efd","impliedFormat":99},{"version":"117fc7342e10087d11eea826713624c5ae6b2d886e4a4a592b1cb6a30e3a1eca","impliedFormat":99},{"version":"c9bb4f55c9b9f1942bd206cce9722107b1653236a2c3805a3ffc1b78e60129a7","impliedFormat":99},{"version":"fc610233291d35d0d2c3a0214f4a46d20ad989c74431b9b5d535141065890e41","impliedFormat":99},{"version":"09b7befce01ae33053c59bcdf1c66502af074023fae5a2729b8a0411e1b94788","impliedFormat":99},{"version":"add39e62eed912ab8defd0c6473b6a4d158e22b6343f960a96825924ac87621c","impliedFormat":99},{"version":"64cd32a60b0316be7adc86fad333ec9befbab241486ecf9b0e867b80acc7e9f1","impliedFormat":99},{"version":"a65735a086ae8b401c1c41b51b41546532670c919fd2cedc1606fd186fcee2d7","impliedFormat":99},{"version":"fe021dbde66bd0d6195d4116dcb4c257966ebc8cfba0f34441839415e9e913e1","impliedFormat":99},{"version":"d52a4b1cabee2c94ed18c741c480a45dd9fed32477dd94a9cc8630a8bc263426","impliedFormat":99},{"version":"d059a52684789e6ef30f8052244cb7c52fb786e4066ac415c50642174cc76d14","impliedFormat":99},{"version":"addca1bb7478ebc3f1c67b710755acc945329875207a3c9befd6b5cbcab12574","impliedFormat":99},{"version":"50b565f4771b6b150cbf3ae31eb815c31f15e2e0f45518958a5f4348a1a01660","impliedFormat":99},{"version":"74958763e089797b627dae00e31679752826f7e91c0818e971be919dacb21c1b","impliedFormat":99},{"version":"2cab237ff67a4f114999005809e65fd586f7fdb56e253e1208cabea827df7e42","impliedFormat":99},{"version":"4e3ab6678655e507463a9bfa1aa39a4a5497fac4c75e5f7f7a16c0b7d001c34a","impliedFormat":99},{"version":"49766a3e83c44708ea1357fa410c309837f4420826a5e265e3fb81e0087c7025","impliedFormat":99},{"version":"9f9fba2db9bb11058b153cdede4ec4e3ceed37d51a18a2edfaf7dfbef0a2b241","impliedFormat":99},{"version":"7a8db4befe8f75591173ae1038856ef6ce3ecfee9e22f1b616779018a8779471","impliedFormat":99},{"version":"006ffd4a92ea7050298f50e44dcc03155b943454bb874c0a5a3ad7c8ae92a50b","impliedFormat":99},{"version":"e981c553d5f18821019546df17a5ade9e26316417279a4e478f28d72cfe6c6f8","impliedFormat":99},{"version":"4b29df4bba7b409b5fa9a8db9f4b672eed5ef80664ff09de5d11724aebc5a30b","impliedFormat":99},{"version":"f5282507ffe12947a832a8d9be748df429b3ef61454df95750fb72ff24108a68","impliedFormat":99},{"version":"22872735dfe76e24d30e89624385361d3d077c8d940257aea9b48d57839c906f","impliedFormat":99},{"version":"bd93deb5a61f121242eb17014a20254b517e411b7144769b2389cc56bb254c40","impliedFormat":99},"eade485860011affc651da753c53269c3b620b8f58ed3abf193567fd94048ccb","3a35cf431bd1f782ef30e68516b7378e74c7624f0cb470731251413191e14a09",{"version":"6e7eb495ef234ffb72dfed736d4526bb91f764e62c1c564b054403432cd523e2","impliedFormat":99},{"version":"767cfb1496df590e9132052dbf9d5a2ed4d7864823eafb4eafcc5f9569f3c152","impliedFormat":99},{"version":"b9f9f77327ef54fc055ab78fc6fc6c93b88410621fd9b2374bb956022018a62a","impliedFormat":99},{"version":"82147ff6ea10d9182855cb50ed6f28d36c1d4f54a792ec2173d42074225caa5d","impliedFormat":99},{"version":"aa015d746ff96c12818a7ad742e45f40bc6f72f4b7df2af0f7200dacfe0ca65e","impliedFormat":99},{"version":"01a6da71fc05a9195f334ab1092b3f4952b0f2e2c460ea55d206ef629309062d","impliedFormat":99},{"version":"66f0b814ca2e007985a604145f5d70793a9f66d2fc7d6c57b2e094c15b7eb83f","impliedFormat":99},{"version":"8d9b0d78ee11670d4caa429ce908ef681663d65e94dc1507b47d6eb44abf903d","impliedFormat":99},{"version":"888cd85dc7c3d5d1fe0c975a8a42387203a6040f6945d9e834044f4cdcaa7177","impliedFormat":99},{"version":"87783efceaa85da75752e808792e347efda30d7aa7d7a76e62398df4a86c31e5","impliedFormat":99},{"version":"6a8ab860d18807ef3ebcbba3c436ae6432640a8e9fd3b3e965d3b923d7ab1043","impliedFormat":99},{"version":"41560bfeef3407476ecbf1e87fe10ad8bb66493854c8810bf1475c1927e9509c","impliedFormat":99},{"version":"6832c3df6998885275fc6cd413f83aab3dfeac3b5b2d9ae0acc29707af0dfde6","impliedFormat":99},{"version":"c3367f21f12005ddb218db94e8f45502526a0c5934456492f39c6c4596b9aa25","impliedFormat":99},{"version":"85985824476f773241686f7b04c9983cef819dcdbea5a6564958898377cc3a50","impliedFormat":99},{"version":"0a0bd6b6fcd60d1165cee9bf6ef911a0d99508214386152d8f2e1e9ad6b0d61e","impliedFormat":99},{"version":"cdd20c5393a901a75302ba47d99425905028f9755c8469cc2641ed8cab9198e4","impliedFormat":99},{"version":"ad4d3582ba33d300a03f929ebc2a14239ab5e1f9aa8b555b4aa6533038ec20c0","impliedFormat":99},{"version":"73b50f5889069014a3063ace1a2ee649b8d64b5664302c10856a7a7ef4c8a404","impliedFormat":99},{"version":"a34c55195ac6e244b0d31f62f0c56545fc8a5e95fcb2b13e5e14fde434536dea","impliedFormat":99},{"version":"f72da096641226a5ab0556e1f4fec5406ac536194a3048d107a10a67e7b9addf","impliedFormat":99},{"version":"52d28c311133f70529f3e34c139fef3976b851b49390217059f743e927ac2aa7","impliedFormat":99},{"version":"6e998866598c2a811ededdb103763750fe3b763d9553ba9750ee8ed4085f6f03","impliedFormat":99},{"version":"e725c7b2ef6718b41be54c450d8983e346a923ecd54ec0d17f53fbfdff6bb11a","impliedFormat":99},{"version":"5b10dc5b06ad30df43ea4df39181eba3c68715af0fde9124fcc0943e40d50c92","impliedFormat":99},{"version":"2567af91666fc79d94fd70a25d7bd13ff340bea3bf677d096e3072c53d55e09f","impliedFormat":99},{"version":"0559c28b4b44c127446a6a528ad2ad5986153c17a667416fcc053f25af64f99d","impliedFormat":99},{"version":"c7ee05e266d06aa759dc6e3e1d6f9fdab337cc39cc3924496b2eb7e472f2f830","impliedFormat":99},{"version":"b06b851cd2fb5d33cfa6c4d12fcb4455898a4c270b20c87c8b119b945c64e1c1","impliedFormat":99},{"version":"a21c78c299f733901aeabd0d9c70115af96ba53c4703362e36acfd5cc32f2d26","impliedFormat":99},{"version":"93ccad407f8b531feeadff9a8337309643fb2b582d4960df8ca33963fe48e345","impliedFormat":99},{"version":"ac036d642dae91d521f48564b87903404bd5d25ea9adcdff3dcde7b34e8120ee","impliedFormat":99},{"version":"033de0ed908f278acc13eb5ad6e7c74ebd6eee9bb952a909b3408300bc0f2aac","impliedFormat":99},{"version":"26b5b5171b6239b01fc878b20a4c46fe6f30ab4c2600f6e0d75f17a0369310e9","impliedFormat":99},{"version":"ad3935c73e8fbcb9b36770aaa55edf61034a8128f434673f2e9770181c4cd517","impliedFormat":99},{"version":"ae46e99d567b4f131dedd3bda872f86836aff70d37a80c7ebc2469cc7ad774ca","impliedFormat":99},{"version":"805544b983979e4ba24049f35b59f1155470c38298c9bf64520d2ba602289d00","impliedFormat":99},{"version":"f8281fad02736e3f7e2475b14bb15990b00b8358b5767a0e7dc3e774f9bf81e7","impliedFormat":99},{"version":"a380cd0a371b5b344c2f679a932593f02445571f9de0014bdf013dddf2a77376","impliedFormat":99},{"version":"dbbcd13911daafc1554acc17dad18ab92f91b5b8f084c6c4370cb8c60520c3b6","impliedFormat":99},{"version":"ab17464cd8391785c29509c629aa8477c8e86d4d3013f4c200b71ac574774ec2","impliedFormat":99},{"version":"b026daf5c00c8f2abdb49008322a7d51fbadcd7b200a99ee7a4452dbd40f0420","impliedFormat":99},{"version":"e130a73d7e1e34953b1964c17c218fd14fccd1df6f15f111352b0d53291311bb","impliedFormat":99},{"version":"4ddecad872558e2b3df434ef0b01114d245e7a18a86afa6e7b5c68e75f9b8f76","impliedFormat":99},{"version":"a0ab7a82c3f844d4d4798f68f7bd6dc304e9ad6130631c90a09fb2636cb62756","impliedFormat":99},{"version":"270ceb915b1304c042b6799de28ff212cfa4baf06900d3a8bc4b79f62f00c8a7","impliedFormat":99},{"version":"1b3174ea6e3b4ae157c88eb28bf8e6d67f044edc9c552daf5488628fd8e5be97","impliedFormat":99},{"version":"6564db88fa4cf3bae5c8e0de01c701c6228eaeef1118b4ad6a49a8aaf8556350","impliedFormat":99},{"version":"9c5a4a21ed5686b2ea080557488b966c3aeea641ef1aa8975a10e5fc59dd569f","impliedFormat":99},{"version":"5585ed538922e2e58655218652dcb262f08afa902f26f490cdec4967887ac31a","impliedFormat":99},{"version":"b46de7238d9d2243b27a21797e4772ba91465caae9c31f21dc43748dc9de9cd0","impliedFormat":99},{"version":"625fdbce788630c62f793cb6c80e0072ce0b8bf1d4d0a9922430671164371e0b","impliedFormat":99},{"version":"b6790300d245377671c085e76e9ef359b3cbba6821b913d6ce6b2739d00b9fb1","impliedFormat":99},{"version":"c92c9dc7415bf7969931ac5339f21c65687909b32d05ac89789b411372e52991","impliedFormat":99},{"version":"a36c717362d06d76e7332d9c1d2744c2c5e4b4a5da6218ef7b4a299a62d23a6d","impliedFormat":99},{"version":"a61f8455fd21cec75a8288cd761f5bcc72441848841eb64aa09569e9d8929ff0","impliedFormat":99},{"version":"b135437aa8444e851e10cb514b4a73141813e0adcfcc06d702df6aa0fd922587","impliedFormat":99},{"version":"cc82fa360f22d73b4cc7f446d08ad52b11f5aba66aa04b1ed8feb11a509e8aff","impliedFormat":99},{"version":"466e7296272b827c55b53a7858502de733733558966e2e3a7cc78274e930210a","impliedFormat":99},{"version":"364a5c527037fdd7d494ab0a97f510d3ceda30b8a4bc598b490c135f959ff3c6","impliedFormat":99},{"version":"f198de1cd91b94acc7f4d72cbccc11abadb1570bedc4ede174810e1f6985e06e","impliedFormat":99},{"version":"83d2dab980f2d1a2fe333f0001de8f42c831a438159d47b77c686ae405891b7f","impliedFormat":99},{"version":"ca369bcbdafc423d1a9dccd69de98044534900ff8236d2dd970b52438afb5355","impliedFormat":99},{"version":"5b90280e84e8eba347caaefc18210de3ce6ac176f5e82705a28e7f497dcc8689","impliedFormat":99},{"version":"34e2f00467aa6f46c1d7955f8d57bffb48ccc6ad2bbc847d0b1ccef1d55a9c3c","impliedFormat":99},{"version":"f09dfae4ff5f84c1341d74208e9b442659c32d039e9d27c09f79a203755e953d","impliedFormat":99},{"version":"e7878d8cd1fd0d0f1c55dcd8f5539f4c22e44993852f588dd194bd666b230727","impliedFormat":99},{"version":"0d22b18cb407b03331edf3413b93e568da71130c906fd69911090df2abf55414","impliedFormat":99},{"version":"2a39f2a7f99dba7a6ec561378d8a1f2e9d2761ac272a006777f78825822fc419","impliedFormat":99},{"version":"ddc0727ff009562bced85c9e7d55b29fb2a5ca23598350eb16299e57a3516a4a","impliedFormat":99},{"version":"b8fefeec475a9f1e78e1e5ae56f7fbc77ae5fb9b8494a8205360ad4b304a511e","impliedFormat":99},{"version":"fad5ca404b01ebde453f9cd5aa80353633878e7e1e1c22ad4a77fd841a49c922","impliedFormat":99},{"version":"64155a3d9cb589603d04c37f1327f91d640f9924c999d4f47284e7a5eec5cf55","impliedFormat":99},{"version":"b1727992696e552fb934bb72673da49085a9eef76050e748448c1e0c2568f63a","impliedFormat":99},{"version":"4eae6595d59a0967571e022dd63f99f3fcfe624e50e17cd26195412e16f22549","impliedFormat":99},{"version":"b62a3b99a2544eb853035484e4e1c71a7675ffc4a4e375fc3c6fa89450f61293","impliedFormat":99},{"version":"b9d571d39d729a623a60d6fb7318e49e41b32e94935ffda36103b43f7d824c5b","impliedFormat":99},{"version":"00f37073c33a43720d2e2236e4dcf43fda3d2113c66703a22a82c066415054e8","impliedFormat":99},{"version":"04bc73f52fd9447154bb396f89640f90434b084939ad22f16b42b2b967d21cde","impliedFormat":99},{"version":"2f6c7cc2633c2a3e4f51aaebe5f07efdfa04405697b7d31c8f7dc19997747521","impliedFormat":99},{"version":"abef69ad896a9e33bf221b4161d7eb3710c30c9cad6a7b6b053df043580a6f43","impliedFormat":99},{"version":"3e7761d82206ddf29dda7f2c1b169b205f4707e043eaf854fa3908dd7e5b0220","impliedFormat":99},{"version":"50ce52224dcdc3d9a431a5dd08f814c76e3cad3100f7a511cf9f0fea3e022245","impliedFormat":99},{"version":"7461a12eefe80a0dd858e8ddbfd3ee2af7627c64aae2c58f8cc3a1f1810a0300","impliedFormat":99},{"version":"d169dee8be7c5c62179b381a7d823d874b0c218604db989d25b8493e3ec932ca","impliedFormat":99},{"version":"26e23b6bbe7b0f8686e4374c69693b0925538608d3af66095fcd5a4debe99cb3","impliedFormat":99},{"version":"20d89ee7150b3ba09c98a1ed855b9dc55d0d883095cc010af0eeafbfe0b60cd8","impliedFormat":99},{"version":"cedfd67cfe921e49f0743aeefc7d93564d2fa7b34d3cf0860f3488ebc4e0e057","impliedFormat":99},{"version":"c048e95315c9725df4687c03b21980f12e9a3ec8c288db45233618f5ce685d27","impliedFormat":99},{"version":"754b10aa3bc061c937bec5e3d2f825e4211ec72ccb94f5aebaefb765ab80c56f","impliedFormat":99},{"version":"95f1648d8c0e1094e2375fb3531a4bad0a99adfc619832fec800fca6934095ce","impliedFormat":99},{"version":"c363c5eaab6f4ead856243f0734d0c320d3748ec777fda05484e17258b515cbe","impliedFormat":99},{"version":"e5bf7408d2d66195b132ae905b89f83d660dde24a588c3d1c43dc000bd5fcf71","impliedFormat":99},{"version":"b3bcacabc80b752dd496e7d154e4707b79e755d2e9d0547e402e6d3fa0326c9e","impliedFormat":99},{"version":"b11aba62a6d6eba8f5487182096d8615ca8d5d5b8a50c99bb0f0717ed7e061b2","impliedFormat":99},{"version":"761bd09a063914a0dddf95c6e9203d769487f1aea46a82ff1fd96cc0ede2d32f","impliedFormat":99},{"version":"cafe5ab7aa61b213d16cef121e65269dcda6607462c5762ef21124c1fb2d644f","impliedFormat":99},{"version":"7a43534274fe9532fee5414984708a56f0baaded902466c2eba2cbfc601ae20e","impliedFormat":99},{"version":"1cff175af3f1ff70546a36d9f2f118451df21e2d59bb837ea6b3cdefd5e2c7bf","impliedFormat":99},{"version":"1998b2e12b3de685ce74eab487748303705062861abe695beae5adb3092cfb98","impliedFormat":99},{"version":"11f999c38bd526002c0809a8157c366d032a0d46314d54c9724302140c5f32fd","impliedFormat":99},{"version":"607751697c8b64c78e2a3e89225a93cfd6a7f2c4399197d7c6f52f2a911d5522","impliedFormat":99},{"version":"c12bfbef4bf57182e240a916ae15d017defdec55d2920a4d08644563970b2036","impliedFormat":99},{"version":"1d7ad8c09354264ec80cf989015bd4bf232c356722d935c5ac38bbb83a6aafbb","impliedFormat":99},{"version":"6b821199f43755f7be315b84ede22b7e51fc91e98b01625cc0610042719cd0f7","impliedFormat":99},{"version":"4e8c57027a125d5d221b6f306eeff8443142bc9a0b1113c7c5de96478c388cc1","impliedFormat":99},{"version":"128dc4bc5697686aa6f876fd5ad6fae6d19a5652eca99f874b40a8afba6057d0","impliedFormat":99},{"version":"df09e59ace0cf7fd8e3c767b0b8f3d5b2212bd40d4e9dbf49a388526ead5e545","impliedFormat":99},{"version":"03fe713f6d3e69f47d4871545b2cd40e1f714b11e3945f6ab1e05361cad19192","impliedFormat":99},{"version":"25ea3ca113eb33c517ace8bd6555e8caf1c99d34dea7b3a48b074bdc5e7cc735","impliedFormat":99},{"version":"d5f83721da8ee61cd1620f0e4abc9d60453b4ef0b25945172bbd478ff6e3adcb","impliedFormat":99},{"version":"597536b4c8e7e309dd823f61206ff169ca90a3d68245343a5226a8d20f7a9ffd","impliedFormat":99},{"version":"cfed3c4118baa2ae69ec0da47b5fa722c49e5915c1cb7ffa8d5b53b678b641ca","impliedFormat":99},{"version":"3b5f9ed01add914f4bf2220544cdd4099583c2a72895b2ea495e9284be88b894","impliedFormat":99},{"version":"575425068684056c113b93ec316870eca50195835f04179630997e7b075164d4","impliedFormat":99},{"version":"aa0af7166f48f67765f96dc70c1d7f9f55ae264b96cadf5b6077b2bc0aa2b5dd","impliedFormat":99},{"version":"2fc9c7c6695b151ffd3ed667d6d793c2f656461978e840eff1d1350fc0bb1ebb","impliedFormat":99},{"version":"4d590f0e0b4abaf693f94d08b5c414928f2571aea5ac6efb97e4646e195dac48","impliedFormat":99},{"version":"bf1655c135bd654637f98f934f9a9eb4d6450194ca2f4968b79263608da59fdd","impliedFormat":99},{"version":"1ebe079cc9ed9ec4cd11d02c70f209caf16e9dd8e1e801a36648ce711bb3c404","impliedFormat":99},{"version":"b9a49ec04f7dac4bdcb928894d3c6bfc15a4ffee5f14d4b2bef69069de2b1d25","impliedFormat":99},{"version":"d2554dc921a526fc29600ef66da5d37577ce64557eaceebdb2b6170776051ffd","impliedFormat":99},{"version":"1fffc635777e6b7edc2caf5e8473fd161ba8fe5605ae84b64746a2a34045e6e3","impliedFormat":99},{"version":"f6f35852e407d4c04e578478e743c8101227037abd405ad71564e8430d4e4c1c","impliedFormat":99},{"version":"0e16f517285c960f284ff5367c239c24e20acfd3b3aced00d7842c7cd867898c","impliedFormat":99},{"version":"063929189f06ac3087123f98ce8736eea5c2a4cecbaa46c54b58118608fb8708","impliedFormat":99},{"version":"95e249a5d61382550bbf6341cb31a3114b0c10c232b0fbac97da74f83275dbab","impliedFormat":99},{"version":"34880c694bdb6f266bf484dbc60bd887890ab1c8d6807459fdf93f6ab0b0c792","impliedFormat":99},{"version":"d490c69a03b97298294b4d2159175f2f9b62a7dfcd81efc63ea3505c60fc0ac8","impliedFormat":99},{"version":"c0511c2a0a6ae726a66a0b25336fdc61c632c6c1505eb0bbbe1556055fd06919","impliedFormat":99},{"version":"bbd577f9d34a868d751e14a904401a6a026de322bd0f7cc7d51ecc585b57c6e6","impliedFormat":99},{"version":"e06f1dbc167fd37808d2f36aee8ef3bfae734d13fc4afcd9994072a30099df0b","impliedFormat":99},{"version":"7e0693b9604ff4fd358a2f21db90982fce11a4ff216eeae85e326f108d648d68","impliedFormat":99},{"version":"69d5a40440e664ec9493c61169414208472583f342346fb31dcbebad23c6a780","impliedFormat":99},{"version":"3d1efa91afa616c307864fa93f9e7777672bf90ac79c16936969efbc6629cbc1","impliedFormat":99},{"version":"722d99f854a33867a3397fe397924c0de326741e9d7830876481ccf87643a133","impliedFormat":99},{"version":"6ddebf5efb47d10d48d734f855b5cd13772de6d14b50779a17590afa30fcaefc","impliedFormat":99},{"version":"0c4e55d5ee917d3efca585b9eb138df9eb9cd38ec5a8ab258fc0e4fe8d54abd6","impliedFormat":99},{"version":"a41283ab6303ab1d21729da5723952e1b7d9d1bf379b9cce09132403f6f0f07d","impliedFormat":99},{"version":"1557f6fa35f1fc5d23911982761a7ddc4fbe9322eda575f6dadca8d5515e0cee","impliedFormat":99},{"version":"ded4768515ff723001ca99221ec8a7b751a4f90af8be95c885ec8a21efa548d4","impliedFormat":99},{"version":"86a6b6352a6a47fa8698f68119eb716ea951f541128d108382137e3d85900162","impliedFormat":99},{"version":"b9e6aa9de64cbd004d2c59ad79cff12a5d34406153456b869eae6b1d8f5bbb61","impliedFormat":99},{"version":"b864079910dbf273badc3367d21910e6f8887705defda6d51882084ef5b6ebb5","impliedFormat":99},{"version":"5e1fbca4c7648ff481cd7dda46ca8651239f4898bbed3d5066b8d6db0f60c555","impliedFormat":99},{"version":"0fd72d2cd43f9da04478aa6cbb922c27fda6b4a0ca7235aee8f6a933941bae92","impliedFormat":99},{"version":"28a5fc04797c6992303791a4b79ed99431bf2af90b77842948e3e8bc0f681d97","impliedFormat":99},{"version":"20a397ebeea68a193465caeb8f1b3225c49c6bdc4545a0ca6521fa684ef2fc5b","impliedFormat":99},{"version":"9edb51982e31faae66cef7076aacce409cab4637f0ec6e6851331fc87d9fa872","impliedFormat":99},{"version":"8a954a3b53672645d10a61e617272cd309bd7dc442f914427291ea8a2cb3c599","impliedFormat":99},{"version":"69e56ac933cbb0a62cbed3436a44068445460c3a246ae5b7b70e010dd3d8e0e5","impliedFormat":99},{"version":"dbafd3b17be2ca81493a6d6daf7afb6d04b83dd3b80c556ae5973e9a375aa6ff","impliedFormat":99},{"version":"8ea7264ce539f97f4720250a14695a1f82c3ac33ed66617991438cfb3d41947f","impliedFormat":99},{"version":"abf4fe7ebd8771a5c9d963754ae0c088c159e0e12ff77ed2e48f69d86ed50be5","impliedFormat":99},{"version":"050985cfd782bb62131bdc040cd444f65bbd35ca1b45e3eefde79ef713ddeb1b","impliedFormat":99},{"version":"cd935cd60191b79134684160cf08d5ab555512b7befd5f88b449681f7e037a3e","impliedFormat":99},{"version":"5e61341da5f93b211c8c11f6ca709a2dda33feded2cb3e1481d0b727aed23cd7","impliedFormat":99},{"version":"3df29fc79cceaa80012df2005f745c1b635a41dda0766ddd29ac8e078c4216f8","impliedFormat":99},{"version":"bb8aac29b972b3826d70b106373ed2600bfa8377ddd5672b0b5e256f361acfb9","impliedFormat":99},{"version":"721e984c6181cf2f1587226d11d2265f5bd1450da58e7598845ae15cee0465b4","impliedFormat":99},{"version":"bfa5dd71d432e277bbf3c44b3dd91db853fd833da21f43cc3a0a2dc324b7af47","impliedFormat":99},{"version":"987f95fafbf1296cd653459ac69b3a73cc4f7f37f38a1c769902bcaabd516452","impliedFormat":99},{"version":"5f3f4c3ea0ce78180d0482cfc808410092b441b727bee9a26d26ef09decb64c3","impliedFormat":99},{"version":"6b1c226b8c0d272c37948df86f81f100157b7cef9d97d2651f1d8e740a2be268","impliedFormat":99},{"version":"3e1e6a7a6e3d0615d046dd62062c557404c9e1c622dfbef4fa83d17c628e314a","impliedFormat":99},{"version":"ded6a76ae5fa6fc3f7f860a187f3b1c81b5bafb953be192501a937307dc739b9","impliedFormat":99},{"version":"8ee4717c4ad7d5976ab1bece799c68045b7b346e274d7774e86ff394cf867d47","impliedFormat":99},{"version":"a9e3299c6098d323bcd9787e2ac5e4d74457e5427c305ebd432e52ed13dd23c0","impliedFormat":99},{"version":"3b8ddc84907c11d89e5240f8299e87fe506a1c18764fb9d546b02f9e347f93e4","impliedFormat":99},{"version":"4b5186a238a3fbfeca1b14fe6b234b8bd5b93ac89a47984715f76f8919e29d96","impliedFormat":99},{"version":"dd693a36f441a1337e9a34b6da2cfdc53d7cd9dbf0d1cde334cab196c3e6f17a","impliedFormat":99},{"version":"e284b0d144003a25e3b7da92c55d80a085531c0c84a77a62f1a3e2bfe82454b1","impliedFormat":99},{"version":"e09a001b1588cde9f5e77560730c5ec6ea346ea09da2d65b3a02629e390d0923","impliedFormat":99},{"version":"77a38dc0e4afa289c6ceaf9121c7718fac9231904ff5f30c0c1201524fb25f23","impliedFormat":99},{"version":"2505ab6e616e35b2a63dcc8cafd3d6092c6e0109b206cec1be7d80cd450cfb7e","impliedFormat":99},{"version":"c2d66e86bd5f13ad098ddb98ab863bcf0d15b323cc9bce6ff56e20eb50648926","impliedFormat":99},{"version":"1959affb5ce54dd86a2bca9ba087da5a29fcd1849eb1710f1d6807512ac513d6","impliedFormat":99},{"version":"8ae1ca3c5186af2c3a6e979998c00c82a363d024ed26a8bcb84a6ef21878d4b4","impliedFormat":99},{"version":"05ec4ee3055f601ad3f932832a0b7fb5842fafa6d3a4f29b200c49e0c8d36bc4","impliedFormat":99},{"version":"cf0430d48488f45abbb7184e36b580c1933cc8078581c038583e16cdfa80863d","impliedFormat":99},{"version":"aeb0806490c71f371a75629556f469419997367aafa673ae2e86705652f39227","impliedFormat":99},{"version":"b445ce66b11750fb2172525591647d30b75ec8d003a93ee3efc12954ffb8d5ec","impliedFormat":99},{"version":"a36860808f7994a6ce2c965e11e7a971ae9b438422ffefe9471ed4f3ba3ef3f6","impliedFormat":99},{"version":"6335dfc1f7c285b25ca643890becb12d22fd24079624d91b660f31a3ef130f8a","impliedFormat":99},{"version":"e0e3a4eb638ceb6583ebfa8a83fb27d5ca98ba93ce00d396dd09d41630834a68","impliedFormat":99},{"version":"54927a5dc7fa2c1d7b8232c756d658d051f2c0620533c4048343e671d18c7983","impliedFormat":99},{"version":"8ff6d24bddad8f2bb8ac0ae129760dd1df427765f4f6199390347c0009ff9b48","impliedFormat":99},{"version":"25a0403b5a28416593fc09c3e5150e981c742afedf0b6e423f8a94f1351352c8","impliedFormat":99},{"version":"0db51b9c351d7c2313296e5879fbad8f20af8b9061885c8590ae0216ff6154a2","impliedFormat":99},{"version":"1c6454d7f733067337f1685a06c4981a78d1925ae0381bcd09f2c43b73755aaf","impliedFormat":99},{"version":"fa7cfbc437c87d93860a4a1304a12e8fa9a28a24695e1f4c36d266b4cbdf4e7b","impliedFormat":99},{"version":"4afe4410e572d10448fb1f7f254bc2eca329e00180e75529be8b22465718b2c4","impliedFormat":99},{"version":"6d57f0ab1e858b12895e1eca5e6f407a835c13038fadd5f85134740e6e32b613","impliedFormat":99},{"version":"5d6ef65ccf14b0d51af503adffccdbaa846848cf0fe82310816cf82eb364d107","impliedFormat":99},{"version":"397a17567b445fbeed01f58163c2b9667638ff815881f349cffec5ad30844905","impliedFormat":99},{"version":"4bbac0cdef9e2f41b2d70826633298df274436caf011a093bfc1bd57dd2269c1","impliedFormat":99},{"version":"38bc1e63328558fecd8e2c3f9159ded06a2fd86059b0a91e93f11aeebeb1f177","impliedFormat":99},{"version":"e4756baf25dba2f6660043ca4fc6e36ab8d31a0c34d507624d8a12cbe6ab9b30","impliedFormat":99},{"version":"4be799bfee1766047c11b3b5d371ca9e3993526d50c3e276e7cdb3943dd680a6","impliedFormat":99},{"version":"513f887178e2df3ea70340c20bffc633827c2f0a4e1340a4176eecb6d3c5a4e7","impliedFormat":99},{"version":"7b6ae8994d485350989d50cae27221f2d9929d60677b8c5de4ceb81baf480d3e","impliedFormat":99},{"version":"7adc87c8c1d3fdf85652694a636c6e032b7ea76335de7a110ffb215970d9b1f0","impliedFormat":99},{"version":"27f60ec60daf015ed0510587fd37d65818c085d47f320f03e2178e80ae1b96d2","impliedFormat":99},{"version":"69f868104a0f83fc97451cb143d1fdee65d6133442e585048983a8e27c6dd4be","impliedFormat":99},{"version":"a4fd1c983504d251988ad2e8629dc110228a591e1bc9f85e57b35895e8141cf3","impliedFormat":99},{"version":"8e82daa0bb799f366cfc646fcd65e507d3db4921082426dc45b78cedcb60f71c","impliedFormat":99},{"version":"a2f99636b48361b7e10c232cdeeb3aede976279f950b7f84e8b970471a0dc606","impliedFormat":99},{"version":"e31bcde9cdc47ff503a45bb8d68c38fd39039b06567c8017021f9116e31ecde2","impliedFormat":99},{"version":"bddecda3271cc5aaf904e94c2b65c23cb7528e27567ef31d1302bc8845374e56","impliedFormat":99},{"version":"23306c0e57b32fdf724bb0aba128d0023fd57b856490b1cd69bdc0de2acc334a","impliedFormat":99},{"version":"4df175087aed418f42fd5cf507c1f57f0972484cadbe0f6c38cabd0c6b3576ce","impliedFormat":99},{"version":"df51e368f1e65529fd132dd67c8312f21b644063ce7950e8b820905d70b28eb7","impliedFormat":99},{"version":"74d10836d7259d3a664ed517a3c8547003e1de056d85b8e324a11dbca522503e","impliedFormat":99},{"version":"b020142c9cb2c061e119c6ebc1712f2e66a68968657f4867332789688c706189","impliedFormat":99},{"version":"df08a61b7eb2b11b4e9c771cc3b538f3fc4260c170f8fd89110843323fac2ba2","impliedFormat":99},{"version":"acc1e28219b83d788ef0e28b8d7ff1f3a8fc7df6a49ec141402e044badc84108","impliedFormat":99},{"version":"3552e9ab64219d9d980f9406c354e620f04ca17944459d4b23c62d472d9be2dc","impliedFormat":99},{"version":"e9f94a086b52c2f522f2bc9ecf7539d7bffc390578cc41db9547005b93df5d88","impliedFormat":99},{"version":"a8f5b86c67a9c2774ccdd1db31968ad888fc41ad166a5d5d066dbe86637b2f66","impliedFormat":99},{"version":"5c25d35c4bbeabb961925d2b114602191800afb4d4f164e45979dd2c83f965c2","impliedFormat":99},{"version":"8b989bf267ff6ef7a00f318e95794bcefd06cda44f3cffde905ca579d17acad5","impliedFormat":99},{"version":"f3983ffdad35bf9234e36a691bf959934b723134c070fa5dffccffe046009e2f","impliedFormat":99},{"version":"2d8c69bb71790264bc61c5858afcfd00d5bd7bca6c9c38185f07896661053790","impliedFormat":99},{"version":"0396db572d4384fab79c5ad3b2cf330f167496da87da0e61a3f55e803f0fcc4b","impliedFormat":99},{"version":"9eb195a59362d107cf8f1d92d704fcd034bd92796f72cf031ad0525d88e36d4f","impliedFormat":99},{"version":"b60a1aeffa207842414020d16c86854f99bebff51832478b00451c1770fc9708","impliedFormat":99},{"version":"178ae1eaa5cd24618fec31c62ee6b66f5f57d76b075d9d8b34cc0db5543c0fec","impliedFormat":99},{"version":"4f31b5dbde1dcb81687ef4e06c2636809f6a0517615876bc937fa266f42e87b4","impliedFormat":99},{"version":"33d7dde5b3614d1f000ab11f9be2cb0f032615b726ca8537afc272db0b522a7e","impliedFormat":99},{"version":"97b8ea7292ec9f0828af2d58952ea17497a73943eaa0a2dd3046a4e07a530c61","impliedFormat":99},{"version":"ebba07507741f7d53d05cbb59a8dea0b3b75aba278810b4d2696776f95b779e1","impliedFormat":99},{"version":"5c840682cf2d211808e4f0dc5cd32da409352e8b3d11d7e9ba25c92796932cdf","impliedFormat":99},{"version":"f278958ac0fde187482abb825e61be120427e8aecb42a9155f0144767a29a358","impliedFormat":99},{"version":"cf35b9aa3b45b2098ec7033db87d004913ac7bf1ce52c9c8154fa86477e9046e","impliedFormat":99},{"version":"8002100726ad65ae695ef88b091b9c8cb73e024eaf23b31d228a5a8ce19af31f","impliedFormat":99},{"version":"f7a7233cef5a86a5c2c5e4dab11b46e0688707bd066a80aa5249e6cd6e0211f6","impliedFormat":99},{"version":"354126b46c623665e6aac86b6deb693dc43499dbd71bf655aa5f6bcd7753dae0","impliedFormat":99},{"version":"1f1d4396e7a118ba9e1f49f290b29d0aa946e91fc8180909b1d64b2998b08953","impliedFormat":99},{"version":"534f6fde91eb366097dbf65174356c88c2726d513c55f0f60b2098fc3f6e87ab","impliedFormat":99},{"version":"bc8d8ff31066bbfb937d223a528d545abfba45a0a646b141e2a15dd1948026e9","impliedFormat":99},{"version":"8a03c390eab5e99798e3d24c1d86a9b0ee851d315c0cb7480b42f6a49338d694","impliedFormat":99},{"version":"46b25c26bc3816d779c0353b3c1f6b83eeda1030b99401472a4341a9ab94138f","impliedFormat":99},{"version":"0ba4da683fe4d459827bca4e9c2befc46b9fe589353a08d874440dc6b1119df9","impliedFormat":99},{"version":"a5ed548aea7fdd435b68149641d20d0c823ae4341afc4c5c027d246a321e358b","impliedFormat":99},{"version":"c831a507ce1fa56d927c77b0296eaebbe63208dc2e10bea30ee19c19d3832ac9","impliedFormat":99},{"version":"0e0775f99d5750b8ea2409b6d5783ecb7465552176022512c4ab695e2cc07b25","impliedFormat":99},{"version":"998b22c2762b4c5dda982144f4273439478216601e1dbf607f8da50f90028302","impliedFormat":99},{"version":"de07059049dbb4d7b800fad4f5919c62c0c572d021f2cde9b4cb92d9d312464b","impliedFormat":99},{"version":"b006db5c3868f18e051c60c815dd8d18b42f0bd1f2a4732e8baab08e56443fa4","impliedFormat":99},{"version":"f6162b05c0a5b26d3446503c022652af632a803010319ff6c65ddb425c88c1da","impliedFormat":99},{"version":"ce99d9af9d4091b04b4c2266c06f38d7f39e5614616973e0d17f01a36212c516","impliedFormat":99},{"version":"d78d9cf92e8957b87ff73a5029aabd2f591a40f4b915af5566122824a328d451","impliedFormat":99},{"version":"afbf6dde412faa5825df13ab00b8eabe1358558603d6e4c34b4ff83c06128500","impliedFormat":99},{"version":"9468d74878264e4ed6214c0127326482d3d81d8b39c2ffb3ef0887348cfc116c","impliedFormat":99},{"version":"5d761b75b6780d20af311198f88e4a894243753acf28338ce7cc0cb1d5e3bfca","impliedFormat":99},{"version":"4c02021950d7f559417399582f74b4f23e7acf96bf4abfc8511ca9f349e7b090","impliedFormat":99},{"version":"f05da64b51a564bd57764011df409a699928b2b9e018a9692e06d5a3e761a8ae","impliedFormat":99},{"version":"448a1d960c3243442ffb6ddec7087a5dbd062a8b2fdbbc39f6ced3f5b7dd1cef","impliedFormat":99},{"version":"c01a88ada696e9f65a4dd8248bd9a568a3f1ce0c2eaa5e7f8696a2c3b3573654","impliedFormat":99},{"version":"6ca73337f9333cbe5e31c1e03fee42dfbdb119e7fdf991e8aa96767f4696d0b3","impliedFormat":99},{"version":"9235105279d1e63c87e3ea34fb6b20eb4968d7696c4783236a2d8ab5e924807f","impliedFormat":99},{"version":"fb3a41f5d7c41e4195119f98b0df0018e7e04a1b025d7b10ed82741f65c0493d","impliedFormat":99},{"version":"bf21257fb910b2a765ad8529cb457d0d9eb99d8d14ef01836bf04422c185f230","impliedFormat":99},{"version":"9dfbe916e48a8172cc0db07e20248214755205bbd16cd5bc0672dc2cbd80a429","impliedFormat":99},{"version":"cfb85bf0a694c3e0630400fdb2c1f135132b500c152aee6b9ae9d842637378f8","impliedFormat":99},{"version":"2067e20e971aec9f9c3b7a80aa3f2ce908fa690d29614956ab939d4137527d46","impliedFormat":99},{"version":"469bd9ff94e8ee2180eaa7be310e626022f4b97990e01fdee2cb681eadfca444","impliedFormat":99},{"version":"9199cfe666c63b59bfc7a0215ad7b834165e2c8678769aa29b6b15d4035dd874","impliedFormat":99},{"version":"75c20bb61d4944a90fd9fc4d79be814af84552497a30059d1f4a5979e338b576","impliedFormat":99},{"version":"e36d57187446a9b265d011815e80c5ac2d31cdd839e5dfed3cadbade9d63084d","impliedFormat":99},{"version":"ff94c04aacb366b85fa01b058ce27e3f2a26305e87a512b6472013f3951a7639","impliedFormat":99},{"version":"f28c4909885c804c93aabb9561ef520ff620576369eb310195a7a6bbb8d9e587","impliedFormat":99},{"version":"e971398a29ade533ddc2730c360a22672144389e077633fc950660f4c4d9d046","impliedFormat":99},{"version":"52677e8175f66b1d6b684e8249f7b12af8932267f0b2f363ab973fb94ee4d319","impliedFormat":99},{"version":"d1e84e4b4b53354c6333f50ae4337b96f1004f28875d3d7b3800cdf79b0ffd4c","impliedFormat":99},{"version":"a9f319a6a5287c95b72c37b461e0f70f490324cc4a55d71378e2a37f1ca67adc","impliedFormat":99},{"version":"df7c9a0919ac54bb69647b916261beffb40d84494f9cc3e68fc7927a79ccb64f","impliedFormat":99},{"version":"30a24fccfdf6a40249949b222a11c755421b9479bd68a96ee97413540443216b","impliedFormat":99},{"version":"da0ed328391d742978219a5ab07decbdcd353bbdbc87708a2176afa971056a3d","impliedFormat":99},{"version":"14a5746786128a83561f1d719290db89ed9b225e42959bbe0023112035a6e0a0","impliedFormat":99},{"version":"71db39385fc6c5eddb6cc70b1b68920b2aa06cd85ca4a95b1de585e127984881","impliedFormat":99},{"version":"c9f95e2f5326df254b2c867de54f7264763065fa4d29f5f9d10960d97352afcf","impliedFormat":99},{"version":"59e6446d76c9c7a1cf516435f942c5e122b3fa9c80d4962c4eeae63f3bb605af","impliedFormat":99},{"version":"ee28654c6c98fe6b359d34465dbe1f9798d1e7a6ed5ece29daf19de11cb8323e","impliedFormat":99},{"version":"68d524e37e75f230102cd0444befe3e17a8c85438060a552322e7e400519f2c3","impliedFormat":99},{"version":"282d6f2f2150a26e8c5cce93eaf68e829a8683171ba13e92ad7dc8b28a12c623","impliedFormat":99},{"version":"34b95fa727e92d0a2fbe45e37352127297aedd9af64e56dfb324ff1280517f3c","impliedFormat":99},{"version":"4d37c6842a01d7310940ed2d39cfd4a8d63e7676d1113070b3cd725131347844","impliedFormat":99},{"version":"38ccba9a0d7f301e4b590f7a52de8a8fb12e9edb1de6d7ede6a8843176abfd54","impliedFormat":99},{"version":"db4e72e734c0d11d2051dea52f678270eb423be4541e3c39ede40bd29e733484","impliedFormat":99},{"version":"b6fa5f1295afc4b3a9bbae107ea00d1fc37956f25b846338916cbb195515a4e2","impliedFormat":99},{"version":"4b3e07d081541bd9f0418c1963a44b02a65923b6de04d6ef7bfaab8e8b1087d7","impliedFormat":99},{"version":"438659c94886ae81435567673c83b61937048729da03385738a023174cbff051","impliedFormat":99},{"version":"63310e90fe40fb7a431b9ff640d54b70ef30d31b23a634890799569521cc2a02","impliedFormat":99},{"version":"911e8affa1bea9b54a8926ce39295e190ba3e5e36182c7808c3d657fbd77d705","impliedFormat":99},{"version":"02353129e38fd07cc487b5f822ac710ec117e43e479e9f9f8039418ed3291ff5","impliedFormat":99},{"version":"54bd44d1d220488406919d2ddbdb92cef690c8ebfe41d2cdc61a8aaf26d6396c","impliedFormat":99},{"version":"790d0cef4abbfedbde0ff29c9a1865d5ed8364e9e251e25bb13794d30c13ac4b","impliedFormat":99},{"version":"88f2b0ad065d1ff42736c1efeb0e14061b3091d9376c272672be3f27d167a152","impliedFormat":99},{"version":"81de941dc5851bd7ce1e8f81d4d31db1e035de774e571947f8d03b351fe9f764","impliedFormat":99},{"version":"fdc68f982f0c7b074e3787534a5137c3f9d746edc323efddde286931ceb9c954","impliedFormat":99},{"version":"be922b6a92064b78554dfbf46decbddf5a0b023f49a656a7865e17ab0bf710c8","impliedFormat":99},{"version":"609d27139ad9aa20641c466c993b2d8f8c413296ee814b1afd79f48bd809a0f6","impliedFormat":99},{"version":"176b071fba5783d15078411e7c0753d2a874dc0ba0bf334c402e358b59e78f54","affectsGlobalScope":true,"impliedFormat":99},{"version":"774d51ea5facd44ed191c2e420f2a0ab4da76a41905e8c1c3aa2a532ec340d97","impliedFormat":99},{"version":"2be23228f8822815f04418af4b3616f6c12d2e8310d3536537ca59c791fd71bd","impliedFormat":99},{"version":"3e9c9a37943e0f4c86e33e47c598a43f25117acf8fdf177e6ff5e0476e6d0cee","impliedFormat":99},{"version":"2c0b6ecefb1757ad6ce6d2414b3c268cb9092cff307f6794c75e27f7b1b3b358","impliedFormat":99},{"version":"10f2d3d9c642a1e734adad62f07866c3217b1f5f89f9f3f47d3fd6a295bef8d9","impliedFormat":99},{"version":"4894b371550ff623685722b8fc3064eec2a1353d0a4f7a4f46707b446d3cd607","impliedFormat":99},{"version":"1306e750b3d9089eddb926279035e88119bff73ba6d12bcd1ac3907eef2bc235","impliedFormat":99},{"version":"f97a6ead0f9c40bd2bf83cdae4aa47655aea300282afd44998180d9cf62b7d76","impliedFormat":99},{"version":"a5d1b10c57d14126c7a312e2bb28763c745a87c4f5c005ec6b9ad79aa16850ae","impliedFormat":99},{"version":"33b25938d78614b92778d270bde2c971ecd7f369ef6c990d13e247eb2c7882ad","impliedFormat":99},{"version":"ef325176a8c255a9a55bec7c23d6289c98b00ebfd67112bd4b915c679d721b1d","impliedFormat":99},{"version":"81c53ecba335a74d626d838f842eaa7cf84289776b413356bcd61560f07c9e51","impliedFormat":99},{"version":"47a102af679f68d61d7754dd8f133fab95c3cf7c2dc6674e70efd1b7b7c815ce","impliedFormat":99},{"version":"41931aa72d208139935cd9537c83679c6ca91fe69fd1bd8ec88bbe8e93fe2a2e","impliedFormat":99},{"version":"793014c8196d3044e2d425d7de6339e130a8f81136c5876e2e88e1b8279dbea5","impliedFormat":99},{"version":"7cfcb8c758cb502085d9128ba3ff999084cafd64b9b7c317f87fc85170d1282c","impliedFormat":99},{"version":"6d0b4092bc1fdd4843d9a4313b470b6b7773b5fb712545d6174fd4d703265ae3","impliedFormat":99},{"version":"b6e63e92b837071df07652d3f5632727214b713881c8416a133f7afa977d6e44","impliedFormat":99},{"version":"b09eefc95f09a9a9c61e4f2ed3c1e22069c703493f8e231bc76d3c6cf7ab1422","impliedFormat":99},{"version":"1b08cc33d8dedfa20adf4a779020ec36d494ab7ea503395c658c5e286a3b50e1","impliedFormat":99},{"version":"2c94d2217244dd31275ca5e404560c5c2105b5f06f8985d0f039f39caa1e9e30","impliedFormat":99},{"version":"e77d73e81f5824767db0df8bdb7b7c72cb1741d5fd74e099bfaa6369b8716491","impliedFormat":99},{"version":"077f88e83a13ea89300c26c39ca8ec3708bfd09a15464c71e2fd762708fbecea","impliedFormat":99},{"version":"fed7941cd69554080ce4abb7f4422dcca93a6021f27cc8d2986875ee2c6bb39e","impliedFormat":99},{"version":"774a6eb661aad32b5f9b73bf9d08af7f9204a4bc67a583494caf43fa09fb2af9","impliedFormat":99},{"version":"0c3d92e5fac4a662f12b04c12ca741b4f34a1bf2824a470414322ddb61b350bb","impliedFormat":99},{"version":"b2035f5bb429bbd282a7c947e80bd344ee948a4f7042a019271d3bd114d09afa","impliedFormat":99},{"version":"a4c05674bf833557741ebbcc3fa4a25ddd052e1c762a91037db94a2d7688ebbe","impliedFormat":99},{"version":"97006e8ef367bc2388ea292d7eb6cf471bd2b53d266642ef8284b66afe6d01bf","impliedFormat":99},{"version":"927c282fb88ca5c95a9aaea00175b56b0a6dc8728b246c9e0ec455de40d54fe9","impliedFormat":99},{"version":"7dac0babb2b88108fc5a5410aaf6fe6e59ef1e158e3b5283a990ea503ac3ea07","impliedFormat":99},{"version":"2f4620eeb98e884074a0ba924445a69b29654da70dcff2e3f84f58092741e6f7","impliedFormat":99},{"version":"669f1bc764b5fd840e483e123909aefdab8dc82c9aeadae194d75129fbba0b53","impliedFormat":99},{"version":"23769d3f0549de671a5ec795a8c2c6c4fd80c22af92348daa349073b65355fe8","impliedFormat":99},{"version":"774182677ec80bd5e58d287833ec21e02bcfccfdd20247780375691f201a0263","impliedFormat":99},{"version":"66bc333acb797d6c079d8830ef73bd4a34c4e1709e6a9d40bc20d5b92141d50d","impliedFormat":99},{"version":"92fe8e78ad5d9f9eca627b40cbc1fcfc095a230aba0911101d1c74f3ef77c32c","impliedFormat":99},{"version":"78dc76bd9afff09e5cea823d477657d25be9b0e1da7582df7df6e713abc6b7e0","impliedFormat":99},{"version":"651be876b03c705ac06a8cddd6ea90f635855d6312702a441e37b710d4291387","impliedFormat":99},{"version":"ae2d7f7735a249142233a5b9624baf7d1076c1b8e30bf6f9ed1f1f96641d368c","impliedFormat":99},{"version":"667514a0b45b9137a724df446646e49c6c5ff8e6c52b51faf7e7d97c07876339","impliedFormat":99},{"version":"dab36fd79d1c298c9252b588fff62da099aebd9b0987650f0268f0e580a6b8ea","impliedFormat":99},{"version":"24e34d276c6b1d5b38adc1a02ebca9d211154478cf875a3d175c12bd2473180d","impliedFormat":99},{"version":"2e7a903e7bad7e1053fd16172349f653b8e1f04b118fa6a0c94f03a05ce66ee8","impliedFormat":99},{"version":"a2b7e8befa2bec65d655a9205fe6ba2c6c313e8af050e0ec6878d667368b0370","impliedFormat":99},{"version":"1fdae95c93d7a258da7b02e50e7c4f4eb2041c4e8c86819c6bab35f1d3b33825","impliedFormat":99},{"version":"8c1eacab9cdc1a87e6142c96994b4679c81c9445557e14fdf3210352b7586209","impliedFormat":99},{"version":"05c811914dd75723518d9e11ab4e406bf49ea23b21ca4b0c014f529630cd6bfc","impliedFormat":99},{"version":"cfb373d580586808b221e2ec5555e381569bbcd65ed91abf6467235796e4011f","impliedFormat":99},{"version":"c01126bfe2cf99a27503a39cb9bd923760f43179322d9ee06640c2e329e00916","impliedFormat":99},{"version":"2b6cf5f7e4b87a9d212aa0b043a4e0203f75aa7a505457838c5c12ef3c5cccf8","impliedFormat":99},{"version":"e9214291673a507e06de72638d08cb77a5a83946ff371fe3118231fd14b66148","impliedFormat":99},{"version":"09949a01affc32445e16e0360269d2a7c3f925c2e67789934fbbaf5658669765","impliedFormat":99},{"version":"03d14a43dbd73bfea94b21aba29128157d81858018a543db71f27cd369903ca6","impliedFormat":99},{"version":"fbed6c54bdcfe0fe3fef66a9998b281f924c1c54813ad24af237cea18fab6f1e","impliedFormat":99},{"version":"469121354c88f9bcc57322407eb5d0d5b8a96cfeb9192494e8b46b2688126e2a","impliedFormat":99},{"version":"e75861934b956453abb77723352171ca00f00ab55e34502eedfe74fba7c6449f","impliedFormat":99},{"version":"450c3dc5526f8e73bba30f955e9e35e42076f82559e4f3ca733e30a99f608fb6","impliedFormat":99},{"version":"840457a9dca7071b074b79ec4bbb07e26daa4899b1939b3bfdffadca62fb157f","impliedFormat":99},{"version":"0bb96d1b7886f8348ee457c22db99c258f563e6e4371410c8c0137c54f8b6332","impliedFormat":99},{"version":"107dec9919e26cd898658841caac2186b3b10ca2e81ba0ecc9407ac989b0b860","impliedFormat":99},{"version":"a6f32c6ebdf43913196c351ed0152695f0d76dbe8226002e2d6654835e0cb685","impliedFormat":99},{"version":"8560d14dc193327f1792881dc467e70e73a74c0623d68adab861f0848619e6ea","impliedFormat":99},{"version":"469827f7ebcc9bea7ea42913b61d3570de20b823081cfa369e37f32f9b6578ce","impliedFormat":99},{"version":"d225636174c86016bb4902443c3cefb17ac3ad480aed999676848dc74df78751","impliedFormat":99},{"version":"ee10a6b8d4948616a923e953b40dd564d87f4c6c960353a4ab40f9ac5953508a","impliedFormat":99},{"version":"616f4301604d5263a177d9d378a417940ee51f4661dc970c446265139b3dc2d7","impliedFormat":99},{"version":"cc8621f4a86f09a9d63af2008516e3284fa8dee2da7ac3e010a7a344267e9fb9","impliedFormat":99},{"version":"318a5c102f218073bb58800a24742df255fef6b4b8b3ad82a0ce2169983331b4","impliedFormat":99},{"version":"88773471c8c8e81e190a0821424744c512320799e0e6596258751e8e7b573b02","impliedFormat":99},{"version":"b535fbac200d9abb725ff62adc9009598cbac617cf4c94c0111e37b956a51076","impliedFormat":99},{"version":"fe430799297f16036bee1fcf981c81b9c560f339dc87d703102f19347bca922c","impliedFormat":99},{"version":"8eb0d9018c369133b17adcb4eddc1bca329d3be6f82f8e00373b46315ba5a67d","impliedFormat":99},{"version":"dd89def02d5b8071facad4869deb42b2c3284880502ea4f46596606f380bcfef","impliedFormat":99},{"version":"82d5a2d180f3acffab13d4073bfc304cf30b551dd0b8c398f501a5547d0971e9","impliedFormat":99},{"version":"16dce5a31e379fc832306def780d9c7a66b611c9d5680c1d50f3872278afa987","impliedFormat":99},{"version":"8206bc99be58c7e6e541f75ba3ea281bc2e98630025e05eacf121a0312e94d2d","impliedFormat":99},{"version":"4504027d521a810f190f5a1fb6b6235db3e4fcfe4e383361e849157fd4017cc3","impliedFormat":99},{"version":"6cc22fc095dd4bfc296a2abddacf950b999c5ea21032c147d992c1e3bc9f2151","impliedFormat":99},{"version":"107fe9df1e4aa36cdb51032b4f51fe26eacbed9f9452c05b0ed145afb91dafbc","impliedFormat":99},{"version":"6f912d1d946525532c3537fecc0bffe9b2b25fc6b95087d00191b56403c64b02","impliedFormat":99},{"version":"d8d5640bc8ce5f5352324ebf9772c8052948e993f26b41267f78bb0570090367","impliedFormat":99},{"version":"399194d25a36f88cf475f80ae64aaab76f3c404055b582538aeb7888fbfb7aaf","impliedFormat":99},{"version":"334b8c2139f3f2b14517c68ad6e847669a58327d0401fb134480dda0826b21c6","impliedFormat":99},{"version":"646ef0e6b8a5dda70fea93b94c589512cf58b5a4f13ea8f2ad20b63a0207be8b","impliedFormat":99},{"version":"d51e1af504216f68350d001baef42b14de9aa2f8e287c9ff35aacb6c67460947","impliedFormat":99},{"version":"ab6dd1e3fdcc478cb81caef96c7047c2ec0811480f86f71be363baad015e4cd5","impliedFormat":99},{"version":"767cfb1496df590e9132052dbf9d5a2ed4d7864823eafb4eafcc5f9569f3c152","impliedFormat":99},{"version":"b9f9f77327ef54fc055ab78fc6fc6c93b88410621fd9b2374bb956022018a62a","impliedFormat":99},{"version":"82147ff6ea10d9182855cb50ed6f28d36c1d4f54a792ec2173d42074225caa5d","impliedFormat":99},{"version":"aa015d746ff96c12818a7ad742e45f40bc6f72f4b7df2af0f7200dacfe0ca65e","impliedFormat":99},{"version":"01a6da71fc05a9195f334ab1092b3f4952b0f2e2c460ea55d206ef629309062d","impliedFormat":99},{"version":"66f0b814ca2e007985a604145f5d70793a9f66d2fc7d6c57b2e094c15b7eb83f","impliedFormat":99},{"version":"8d9b0d78ee11670d4caa429ce908ef681663d65e94dc1507b47d6eb44abf903d","impliedFormat":99},{"version":"888cd85dc7c3d5d1fe0c975a8a42387203a6040f6945d9e834044f4cdcaa7177","impliedFormat":99},{"version":"87783efceaa85da75752e808792e347efda30d7aa7d7a76e62398df4a86c31e5","impliedFormat":99},{"version":"6a8ab860d18807ef3ebcbba3c436ae6432640a8e9fd3b3e965d3b923d7ab1043","impliedFormat":99},{"version":"41560bfeef3407476ecbf1e87fe10ad8bb66493854c8810bf1475c1927e9509c","impliedFormat":99},{"version":"92a57d4092fa036a6df221404a9263bb67c267aff1d0a9fc6912c720d06d5b2e","impliedFormat":99},{"version":"dbfa5e96e7827fcd26ad524c28d62238de9e58cadc28f347038aed618fdc7a7b","impliedFormat":99},{"version":"596bf741b2e8a7df8738e9210fc36bde96c4006d5737f11fad33c7e366ae40de","impliedFormat":99},{"version":"735ce9068435b7cddb5620d2f4dfa24b1d20914bbf1fb0cdae15e8c9fe946708","impliedFormat":99},{"version":"e1ee6eaef7fb5f2aeaecec5af531fde8e953f1e38b808a31edb1ed667433504a","impliedFormat":99},{"version":"5ee7350ef93ccadb9f50d4faff03ca3287a20daf94457baa7a06b1caccf9895e","impliedFormat":99},{"version":"e1faebf35150fefc223425ebfabb27ea35c8501e8a6cd886349ad4c224599228","impliedFormat":99},{"version":"d96d274e5284eba9927f58c163c0f76f9b42300b2acf690b088ba874bb7c7713","impliedFormat":99},{"version":"d1cb52c406810e8a61028dbddc1c76329a57641f274d85d923d031d6db5b698c","impliedFormat":99},{"version":"44778cc47965a17ca3ddc25b38b477c05412ebd7a11a2400a957de1449cdb5d6","impliedFormat":99},{"version":"090d14278c4f8bb64425275a537241ee6c2423eab2044305f324b7af9d27c539","impliedFormat":99},{"version":"64a821c22015703e99902dfb093bd189db8682b8f59245ee215c335a78b75a3b","impliedFormat":99},{"version":"20d994898c03bab9c60f1d2b8589cd85dbbb4ce8d01fbf13c9695f1b955be534","impliedFormat":99},{"version":"a1a34cf5ba4eea15a74e5333b365586e4054c972d5f1c86ea31d766fac26d22d","impliedFormat":99},{"version":"01541bebe87f69a3eb400ef26ce82339dee293774bf97a12a7d6e0a94b18d07b","impliedFormat":99},{"version":"74aac6d7662936f593c50c8cae13fbf2be2adc6b0f917f949a682e0ba7ba1036","impliedFormat":99},{"version":"6bafdd64b01c1e66f791cdafbd86ff49abf8580d65ae9cee39c2a01918ad2a72","impliedFormat":99},{"version":"343d92ebaf6b63a7a174fb434dd6123f9efc1c27a0e5e39b3c3a6d0bd571cef0","impliedFormat":99},{"version":"fd8a7776f01ed84c7299ecd56635a7c3a977bd2694b2fe1cf98c0e1d8938b7f2","impliedFormat":99},{"version":"5c58006a7bde1813224dc715df836b7f23d12440b65ab1eeaea20ba573b823b8","impliedFormat":99},{"version":"a6668aee0652306f94268fdb12eab4026eb77f177f48496a9df6ff4f2cc50706","impliedFormat":99},{"version":"d0b217bc167cb6d1873c1aedc1891c68c42a7ec55317bff8c52f60f33341021d","impliedFormat":99},{"version":"87547e2163fb58f4ec906f5c81a879e14d5079fb15d74839f841f458fc9caa90","impliedFormat":99},{"version":"db2ab0896701b2cd55281af7132029104263bee659904d65685c33f436bb1bbf","impliedFormat":99},{"version":"357484e7b33f0366b4d918e5623ea38c42e1b79093cf57b37fdd129f08f747b6","impliedFormat":99},{"version":"0ceaf0c8182145c000c6d6ac87d6293bfadc924a893de45515660f4459d29bc6","impliedFormat":99},{"version":"5adfe7cda513ac8ab76c9a42f5fe7dbfcc5f162ad8c0a65275f9dd6c8ed51e3b","impliedFormat":99},{"version":"df75e076d5e167de6a985cc2487779bf5e551430dcdf3b43aa7168391c42e7d3","impliedFormat":99},{"version":"3b794c3c657b91712aef51da5d1f1fa8e96278b7e0068b67c1e4e32dd39052e2","impliedFormat":99},{"version":"e5d521e00e91df030e7ef2db79294f97c3258f213cebac04fb1d7e545e036c92","impliedFormat":99},{"version":"a9c2beeda1479ab211a437d27da7170170f00c080dc0534a234e0f0bfd80d0e4","impliedFormat":99},{"version":"65186b1f46c6306bc4375f2ddf5e17b77213a5e9e0a701bcd901b1d2e46d01a6","impliedFormat":99},{"version":"44bce55aaf52d5b55fd0221a159717679b2b8a1965a31cbb282068c088fc14ec","impliedFormat":99},{"version":"a2577da4ebf625ac5e8d015e1b85a534f324aa42073e5de539b526c1b6ac9368","impliedFormat":99},{"version":"4f1653400fb4ef5c777b5a4ec0b5ba0367129d171259b942f30133bea639175a","impliedFormat":99},{"version":"2c2ea93c9df7a231c01de9ca95b681439ce7e008573432b8a37a634dbd3cd1f8","impliedFormat":99},{"version":"6b6859f495bcd50ae254bd5c0348ce161ab9dc64f315cc96a235c88027b255d5","impliedFormat":99},{"version":"2c0e2a9291d2ae42225fb79483e7ec328823bf9f1fb5d7c7cdae5761e66b91a9","impliedFormat":99},{"version":"fc518fafcc0f671ca4362205bce0d54efc6463b97e667fc1cfaa7e259766a4b2","impliedFormat":99},{"version":"3cdbe580c6d90224bc0bb9cc59101b786773d795a295818eeffad9e9e410618e","impliedFormat":99},{"version":"f13a0aad613324ade17df982376b78e0807cce490ddde44098e64a86be7408f0","impliedFormat":99},{"version":"55af2e7ea5c20ea6b77c6798aab8e6a6ba1af8f03b3ad5699f73e3432904473a","impliedFormat":99},{"version":"ca52b3f0d81184e1aa8ffc3c89e8f85cc0116461b9035bc7f0a137b40a1bf600","impliedFormat":99},{"version":"26a021aeb112c6b6a2f84cb8298586e7b88c82b2aaee38d5fed488b554768507","impliedFormat":99},{"version":"dc72c2a3d5a60b487b2afdee0fd30522c2ab395d5e95a9c61f20533c9e2052b9","impliedFormat":99},{"version":"a8fa80829673c4fe4be9c6bdd2375c74db979b85082001413bbfaa159253b84a","impliedFormat":99},{"version":"38f3aa240e10764cecc0dbb93d103740124aa6086d23d2dd242b27153a5e4954","impliedFormat":99},{"version":"11d819e69caa33068ad0ddb9424d7afc1c39abb48d342e3e1df7700bbffb8b88","impliedFormat":99},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"c6a7b7568c1e9ccd661e7e9a2219f3d41805d79f79d19687de1904edf975e7d5","impliedFormat":99},{"version":"d131d83d3a4f6a640c18169c05957ff4e96264b48fd5d4ef2a87aab682877488","impliedFormat":99},{"version":"e8929e15b0295c54e6a5d0a7f9516585de299b116a5efaefe57dfbe08167cf23","impliedFormat":99},{"version":"e2ffff11859a3c055c87837df65f1c079ca0baf72f7010a99b20229fa658e6fb","impliedFormat":99},{"version":"d25d1708b5c923d5f7b94d183dc7f746f921580b0f2a4fdd4e623882b98642ee","impliedFormat":99},{"version":"12d19496f25ecd6afef2094be494b3b0ae12c02bd631901f6da760c7540a5ec1","impliedFormat":1},{"version":"c6fe327c538417b8dd5b9bb32abcd7911534b10da3a4514f3445cdb28cf3abf2","impliedFormat":99},{"version":"0065cdb7ac9f5b19921632de63f888ec2cc11ad57f7fc868f44bf0faad2fce3e","impliedFormat":99},{"version":"8c1adc3171d0287f3a26f4891a7d1834c89999573a9b444aa5ff519dcc43a2b7","impliedFormat":99},{"version":"27aee784c447854a4719f11058579e49f08faa70d06d8e30abe00f5e25538de6","impliedFormat":99},{"version":"fbc610f9dde70f0bbea39eefec2e31ca1d99f715e9c71fb118bd2306a832bcb5","impliedFormat":99},{"version":"a829052855dca3affb8e2ef0afa0f013b03fa9b55762348b1fba76d9c2741c99","impliedFormat":99},{"version":"1d61288b34b2dd2029b85bc70fabbb1da90c2a370396d5df5f620e62eb47ddbe","impliedFormat":99},{"version":"5a2cf4cd852a58131b320da62269b2143850920ce27e8fdec41fed5c2c54ec95","impliedFormat":99},{"version":"43552100e757fad5a9bb5dabc0ea24ba3b6f2632eb1a4be8915da39d65e83e1c","impliedFormat":99},{"version":"6a99940a8a76a1aa20ae6f2afd8e909e47e0b17df939e7cf5a585171480655ff","impliedFormat":99},{"version":"043195af0b52aadd10713870dd60369df0377ed153104b26e6bac1213b19f63e","impliedFormat":99},{"version":"ad17a36132569045ab97c8e5badf8febb556011a8ed7b2776ff823967d6d5aca","impliedFormat":99},{"version":"698d2b22251dbbfc0735e2d6ed350addead9ad031fac48b8bb316e0103d865db","impliedFormat":99},{"version":"7298d28b75c52e89c0b3e5681eac19e14480132cd30baaba5e5ca10211a740ef","impliedFormat":99},{"version":"ff10facf373a13d2864ff4de38c4892d74be27d9c6468dac49c08adabbf9b0eb","impliedFormat":99},{"version":"97b1cf4599cc3bc2e84b997aa1af60d91ca489d96bea0e20aaff0e52a5504b29","impliedFormat":99},{"version":"853dfbcd0999d3edc6be547d83dc0e0d75bf44530365b9583e75519d35984c35","impliedFormat":99},{"version":"9c80bed388d4ed47080423402db9cb1b35a31449045a83a0487f4dfde3d9d747","impliedFormat":99},{"version":"f29bc6a122a4a26c4e23289daae3aa845a18af10da90989cb8b51987e962b7be","impliedFormat":99},{"version":"3a1f39e098971c10633a064bd7a5dbdec464fcf3864300772763c16aa24457f9","impliedFormat":99},{"version":"20e614d6e045d687c3f7d707561b7655ad6177e859afc0c55649b7e346704c77","impliedFormat":99},{"version":"aa0ae1910ba709bc9db460bdc89a6a24d262be1fbea99451bedac8cbbc5fb0cd","impliedFormat":99},{"version":"161d113c2a8b8484de2916480c7ba505c81633d201200d12678f7f91b7a086f0","impliedFormat":99},{"version":"b998a57d4f43e32ac50a1a11f4505e1d7f71c3b87f155c140debe40df10386c8","impliedFormat":99},{"version":"5710e8ed9797ae0042e815eb8f87df2956cb1bf912939c9b98eeb58494a63c13","impliedFormat":99},{"version":"a6bb421dccfec767dbd3e99180b24c07c4a216c0fd549f54a3313f6ce3f9d2c7","impliedFormat":99},{"version":"3b6f1be46f573b1c1f3e6cd949890bfb96b40ff90b6f313e425a379c1c4d5d77","impliedFormat":99},{"version":"28a2c54d0a78d32c29f7279ca04dc6c7860c008579e4e3033938c0ed0201eb9a","impliedFormat":99},{"version":"c2714a402843287624210a47ebea2b1c8dd3ad1438f448633f6831e31eaf37b8","impliedFormat":99},{"version":"b89945ec6707415d739f3e76f2820982d4927dc6b681910b3c433b5ad261b817","impliedFormat":99},{"version":"a72d5822fb2a2c1ef985b30aed889f4c00342c90e12318762fccc550c6a599cf","impliedFormat":99},{"version":"c8616ab60eda93ca87fbb20aada1d6a6cdbcd2cb181a70a2d7728a3cb0613391","impliedFormat":99},{"version":"eeddfd3e0b09890822068de5248d38144f8328e74b5292847eb4e558d8aba8cb","impliedFormat":99},{"version":"d4dc0b6592543314c8549c71e35ad2ec4a57904662d905ff9585836bde1c855a","impliedFormat":99},{"version":"56e1687a174cd10912a35a4676af434bb213aafa5d4371040986c578afe644ab","impliedFormat":99},{"version":"470c280cc484340b97d0942e0c3aa312399eba3849ceb95312d0d7413bac7458","impliedFormat":99},{"version":"ae183f4a6300aad2be92cdbd4dd12d8bcd36eddf8dd1846f998c237235fe0c33","impliedFormat":99},{"version":"4b0eeffddaf51b967e95926a825a6ba1205b81b3a8fecddbe21eaf0e86bdee91","impliedFormat":99},{"version":"bf3ec0d42e33e487c359a989b30e1c9e90fa06de484dc4751e93fb34a9b5cf90","impliedFormat":99},{"version":"7b9656a61d83df1a46c38c2984dbf96dd057bf48f477ddf3f8990311ab98ec23","impliedFormat":99},{"version":"366b85ddb698f3a035e0caa68dc9fef39a85c4368c0810eaf937c3a3c63ac31e","impliedFormat":99},{"version":"d440ee730bc60a5c605903842e398863e7ecdb7a91fc32a9152f14061bf6cc17","impliedFormat":99},{"version":"a12c86c4a691608d19a75320946c80bbce38bb62c091dda32572aee7158edd38","impliedFormat":99},{"version":"3109cb3f8ab0308d2944c26742b6a8a02b4a4ffc23f479a81f0e945d6a6721dd","impliedFormat":99},{"version":"a2289c12a987f2a06f4cf049afde4fdc9455a4af37913445148865938c6eb613","impliedFormat":99},{"version":"55933c1450edcfaf166429425dbbad0a27c0ae8672d5ab5d427e46946a6f2f63","impliedFormat":99},{"version":"6c684fda6998db4112e82367c9e82e27996dc8086a10d58ac9b51d89770d5f9d","impliedFormat":99},{"version":"5c4b4dd983471fcaed17ad3241c98a1f880729f1ca579ddbcdae7e0bf04035df","impliedFormat":99},{"version":"9e430429c7e9e70071a836ac91a1bf6e6651f91d47d9f4baf0a92eefc6130818","impliedFormat":99},{"version":"b3db7f6d7ef72669dc83fa1ff7b90a2ec31d1d8f82778f2a00ef6d101f5247e5","impliedFormat":99},{"version":"354f61bd2a5acaf20462bc4d61048aa25f8fc0dd04dfe3d2f30bdbabbab54e7d","impliedFormat":99},{"version":"d51756340928e549f076c832d7bc2b4180385597b0b4daaa50e422bed53e1a72","impliedFormat":99},{"version":"32c6e3ef96f2bcbc1db7d7f891459241657633aa663cab6812fb28ade7c90608","impliedFormat":99},{"version":"ac2ea00eb8f73665842e57e729e14c6d3feabe9859dc5e87a1ed451b20b889e4","impliedFormat":99},{"version":"730cb342a128f5a8a036ffbd6dbc1135b623ce2100cefe1e1817bb8845bc7100","impliedFormat":99},{"version":"78e387f16df573a98dd51b3c86d023ddbd5bf68e510711a9fee8340e7ccc3703","impliedFormat":99},{"version":"e2381c64702025b4d57b005e94ed0b994b5592488d76f1e5f67f59d1860ebb70","impliedFormat":99},{"version":"d7dfcb039ff9cff38ccd48d2cc1ba95ca45c316670eddbcf81784e21b7128692","impliedFormat":99},{"version":"acaf0a60eb243938f7742df08bf5d52482fbea033fd27141ee3a6d878bbb0d3d","impliedFormat":99},{"version":"fb89aeecfc8eb28f5677c2c89bced74d13442b7f4ebd01ce2ce92127d1b36d69","impliedFormat":99},{"version":"9e91cb0a5bd7aefa2b94a2872828d6d2321df0ca44412e74d99e8b94e579b7d8","impliedFormat":99},{"version":"3e4f06b464ef1654b91be02777d1773ccc5d43b53c1c8b0a9794ec224cfe8928","impliedFormat":99},{"version":"192c1a207b44af476190ae66920636de5d56c33b57206bbc2421adc23f673e2e","impliedFormat":99},{"version":"e5aa35b3740170492e06e60989d35a222cfda2148507c650ea55753f726c9213","impliedFormat":99},{"version":"057aa42f6983120c35373aed62b219ffcbd7b476b2df08709139a9eb8dfeed26","impliedFormat":99},{"version":"95a0c46b4675d4d02de6a7c167738f1176b53b26ebec9ccfe8e5d9acb0dc7aee","impliedFormat":99},{"version":"94ad4d9745811c482ae3bad61e5b206e0904f77e0dacf783199193a3df9f6ce6","impliedFormat":99},{"version":"407dc18ecd25802296fade17be81d0d4f499ae75fe88ed132f94e7efdad269e2","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"f6dfe21d867aa5e13bc53d536b69b66427f571707a01e7c3604dc51ded097313","impliedFormat":99},{"version":"4ecd02d0e4ccf7befb9c28802c6c208060e33291d56fd1868900ca295c399077","impliedFormat":99},{"version":"37ada75be4b3f6b888f538091020d81b2a0ad721dc42734f70f639fa4703a5c8","impliedFormat":99},{"version":"aa73ff0024d5434a3e87ea2824f6faece7aad7b9f6c22bd399268241ca051dc7","impliedFormat":99},{"version":"4c9fb50b0697756bab3e4095f28839cf5b55430a4744d2ebbaf850ec8dca54d8","impliedFormat":99},{"version":"782868b723c055c5612c4a243f72a78a8b3c0c3b707ae04954e36e8ab966df4c","impliedFormat":99},{"version":"3de9d9ad4876972e7599fc0b3bddb0fddb1923be75787480a599045a30f14292","impliedFormat":99},{"version":"0f4b3c05937bbdb9cf954722ddc97cd72624e3b810f6f2cf4be334adb1796ec1","impliedFormat":99},{"version":"9fc243c4c87d8560348501080341e923be2e70bf7b5e09a1b26c585d97ae8535","impliedFormat":99},{"version":"4f97089fe15655ae448c9d005bb9a87cc4e599b155edc9e115738c87aa788464","impliedFormat":99},{"version":"f948d562d0a8085f1bd17b50798d5032529a75c147f40adfeb4fd3e453368643","impliedFormat":99},{"version":"22929f9874783b059156ee3cfa864d6f718e1abf9c139f298a037ae0274186f6","impliedFormat":99},{"version":"c72a7c316459b2e872ca4a9aca36cc05d1354798cee10077c57ff34a34440ac2","impliedFormat":99},{"version":"3e5bbf8893b975875f5325ebf790ab1ab38a4173f295ffea2ed1f108d9b1512c","impliedFormat":99},{"version":"9e4a38448c1d26d4503cf408cc96f81b7440a3f0a95d2741df2459fe29807f67","impliedFormat":99},{"version":"84124d21216da35986f92d4d7d1192ca54620baeca32b267d6d7f08b5db00df9","impliedFormat":99},{"version":"efba354914a2dc1056a55510188b6ced85ead18c5d10cc8a767b534e2db4b11b","impliedFormat":99},{"version":"25f5bf39f0785a2976d0af5ac02f5c18ca759cde62bc48dd1d0d99871d9ad86f","impliedFormat":99},{"version":"e711fa7718a2060058ff98ac6bff494c1615b9d42c4f03aa9c8270bc34927164","impliedFormat":99},{"version":"e324b2143fa6e32fac37ed9021b88815e181b045a9f17dbb555b72d55e47cdc1","impliedFormat":99},{"version":"3e90ea83e3803a3da248229e3027a01428c3b3de0f3029f86c121dc76c5cdcc2","impliedFormat":99},{"version":"9368c3e26559a30ad3431d461f3e1b9060ab1d59413f9576e37e19aaf2458041","impliedFormat":99},{"version":"915e5bb8e0e5e65f1dc5f5f36b53872ffcdcaef53903e1c5db7338ea0d57587a","impliedFormat":99},{"version":"92cf986f065f18496f7fcb4f135bff8692588c5973e6c270d523191ef13525ad","impliedFormat":99},{"version":"652f2bd447e7135918bc14c74b964e5fe48f0ba10ff05e96ed325c45ac2e65fb","impliedFormat":99},{"version":"cc2156d0ec0f00ff121ce1a91e23bd2f35b5ab310129ad9f920ddaf1a18c2a4d","impliedFormat":99},{"version":"7b371e5d6e44e49b5c4ff88312ae00e11ab798cfcdd629dee13edc97f32133d8","impliedFormat":99},{"version":"e9166dab89930e97bb2ce6fc18bcc328de1287b1d6e42c2349a0f136fc1f73e6","impliedFormat":99},{"version":"6dc0813d9091dfaed7d19df0c5a079ee72e0248ce5e412562c5633913900be25","impliedFormat":99},{"version":"e704c601079399b3f2ec4acdfc4c761f5fe42f533feaaab7d2c1c1528248ca3e","impliedFormat":99},{"version":"49104d28daa32b15716179e61d76b343635c40763d75fe11369f681a8346b976","impliedFormat":99},{"version":"04cd3418706b1851d2c1d394644775626529c23e615a829b8abfe26ec0ee3aef","impliedFormat":99},{"version":"21e459e9485fc48f21708d946c102e4aaa4a87b4c9ad178e1c5667e3ff6bbc59","impliedFormat":99},{"version":"97e685ac984fc93dcdae6c24f733a7a466274c103fdcf5d3b028eaa9245f59d6","impliedFormat":99},{"version":"68526ea8f3bbf75a95f63a3629bebe3eb8a8d2f81af790ce40bc6aad352a0c12","impliedFormat":99},{"version":"bcab57f5fe8791f2576249dfcc21a688ecf2a5929348cfe94bf3eb152cff8205","impliedFormat":99},{"version":"b5428f35f4ebf7ea46652b0158181d9c709e40a0182e93034b291a9dc53718d8","impliedFormat":99},{"version":"0afcd28553038bca2db622646c1e7fcf3fb6a1c4d3b919ef205a6014edeeae0f","impliedFormat":99},{"version":"ee016606dd83ceedc6340f36c9873fbc319a864948bc88837e71bd3b99fdb4f6","impliedFormat":99},{"version":"0e09ffe659fdd2e452e1cbe4159a51059ae4b2de7c9a02227553f69b82303234","impliedFormat":99},{"version":"4126cb6e6864f09ca50c23a6986f74e8744e6216f08c0e1fe91ab16260dab248","impliedFormat":99},{"version":"4927dba9193c224e56aa3e71474d17623d78a236d58711d8f517322bd752b320","impliedFormat":99},{"version":"3d3f189177511d1452e7095471e3e7854b8c44d94443485dc21f6599c2161921","impliedFormat":99},{"version":"bb0519ff5ef245bbf829d51ad1f90002de702b536691f25334136864be259ec5","impliedFormat":99},{"version":"a64e28f2333ea0324632cf81fd73dc0f7090525547a76308cb1dfe5dab96596a","impliedFormat":99},{"version":"883f9faa0229f5d114f8c89dadd186d0bdf60bdafe94d67d886e0e3b81a3372e","impliedFormat":99},{"version":"d204b9ae964f73721d593e97c54fc55f7fd67de826ce9e9f14b1e762190f23d1","impliedFormat":99},{"version":"91830d20b424859e5582a141efe9a799dc520b5cce17d61b579fb053c9a6cd85","impliedFormat":99},{"version":"68115cdc58303bad32e2b6d59e821ccaada2c3fb63f964df7bd4b2ebd6735e80","impliedFormat":99},{"version":"ee27e47098f1d0955c8a70a50ab89eb0d033d28c5f2d76e071d8f52a804afe07","impliedFormat":99},{"version":"7957b11f126c6af955dc2e08a1288013260f9ec2776ff8cc69045270643bf43e","impliedFormat":99},{"version":"d010efe139c8bb78497dc7185dddbbcefc84d3059b5d8549c26221257818a961","impliedFormat":99},{"version":"85059ed9b6605d92c753daf3a534855ba944be69ff1a12ab4eca28cefbabd07a","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"ea68a96f4e2ba9ca97d557b7080fbdb7f6e6cf781bb6d2e084e54da2ac2bb36c","impliedFormat":99},{"version":"879de92d0104d490be2f9571face192664ec9b45e87afd3f024dbbf18afb4399","impliedFormat":99},{"version":"424df1d45a2602f93010cb92967dfe76c3fcadad77d59deb9ca9f7ab76995d40","impliedFormat":99},{"version":"21f96085ed19d415725c5a7d665de964f8283cacef43957de10bdd0333721cc4","impliedFormat":99},{"version":"e8d4da9e0859c6d41c4f1c3f4d0e70446554ba6a6ab91e470f01af6a2dcac9bf","impliedFormat":99},{"version":"2e2421a3eec7afefa5a1344a6852d6fee6304678e2d4ee5380b7805f0ac8b58a","impliedFormat":99},{"version":"a10fd5d76a2aaba572bec4143a35ff58912e81f107aa9e6d97f0cd11e4f12483","impliedFormat":99},{"version":"1215f54401c4af167783d0f88f5bfb2dcb6f0dacf48495607920229a84005538","impliedFormat":99},{"version":"476f8eb2ea60d8ad6b2e9a056fdda655b13fd891b73556b85ef0e2af4f764180","impliedFormat":99},{"version":"2fe93aef0ee58eaa1b22a9b93c8d8279fe94490160703e1aabeff026591f8300","impliedFormat":99},{"version":"bbb02e695c037f84947e56da3485bb0d0da9493ed005fa59e4b3c5bc6d448529","impliedFormat":99},{"version":"ba666b3ab51c8bc916c0cebc11a23f4afec6c504c767fd5f0228358f7d285322","impliedFormat":99},{"version":"c10972922d1887fe48ed1722e04ab963e85e1ac12263a167edef9b804a2af097","impliedFormat":99},{"version":"6efeacbd1759ea57a4c7264eb766c531ae0ab2c00385294be58bc5031ef43ad1","impliedFormat":99},{"version":"1c261f5504d0175be4f1b6b99f101f4c3a129a5a29fc768e65c52d6861ca5784","impliedFormat":99},{"version":"f0e69b5877b378d47cbac219992b851e2bbc0f7e3a3d3579d67496dabd341ec4","impliedFormat":99},{"version":"b5ea27f19a54feca5621f5ba36a51026128ea98e7777e5d47f08b79637527cf5","impliedFormat":99},{"version":"b54890769fa3c34ab3eb7e315b474f52d5237c86c35f17d59eb21541e7078f11","impliedFormat":99},{"version":"c133db4b6c17a96db7fa36607c59151dec1e5364d9444cbe15e8c0ea4943861e","impliedFormat":99},{"version":"3a0514f77606d399838431166a0da6dbd9f3c7914eae5bbfbd603e3b6a552959","impliedFormat":99},{"version":"fa568f8d605595e1cffbfca3e8c8c492cf88ae2c6ed151f6c64acf0f9e8c25d8","impliedFormat":99},{"version":"c76fb65cb2eb09a0ee91f02ff5b43a607b94a12c34d16d005b2c0afc62870766","impliedFormat":99},{"version":"cf7af60a0d4308a150df0ab01985aabb1128638df2c22dd81a2f5b74495a3e45","impliedFormat":99},{"version":"913bbf31f6b3a7388b0c92c39aec4e2b5dba6711bf3b04d065bd80c85b6da007","impliedFormat":99},{"version":"42d8c168ca861f0a5b3c4c1a91ff299f07e07c2dd31532cd586fd1ee7b5e3ae6","impliedFormat":99},{"version":"a29faa7cb35193109ec1777562ca52c72e7382ffe9916b26859b5874ad61ff29","impliedFormat":99},{"version":"15bdf2eeef95500ba9f1602896e288cb425e50462b77a07fa4ca23f1068abb21","impliedFormat":99},{"version":"452db58fd828ab87401f6cecc9a44e75fa40716cc4be80a6f66cf0a43c5a60cc","impliedFormat":99},{"version":"54592d0215a3fd239a6aa773b1e1a448dc598b7be6ce9554629cd006ee63a9d6","impliedFormat":99},{"version":"9ee28966bb038151e21e240234f81c6ba5be6fde90b07a9e57d4d84ae8bc030c","impliedFormat":99},{"version":"2fe1c1b2b8a41c22a4e44b0ac7316323d1627d8c72f3f898fa979e8b60d83753","impliedFormat":99},{"version":"956e43b28b5244b27fdb431a1737a90f68c042e162673769330947a8d727d399","impliedFormat":99},{"version":"92a2034da56c329a965c55fd7cffb31ccb293627c7295a114a2ccd19ab558d28","impliedFormat":99},{"version":"c1b7957cd42a98ab392ef9027565404e5826d290a2b3239a81fbac51970b2e63","impliedFormat":99},{"version":"4861ee34a633706bcbba4ea64216f52c82c0b972f3e790b14cf02202994d87c5","impliedFormat":99},{"version":"7af4e33f8b95528de005282d6cca852c48d293655dd7118ad3ce3d4e2790146f","impliedFormat":99},{"version":"df345b8d5bf736526fb45ae28992d043b2716838a128d73a47b18efffe90ffa7","impliedFormat":99},{"version":"d22c5b9861c5fc08ccd129b5fc3dcdc7536e053c0c1d463f3ab39820f751c923","impliedFormat":99},{"version":"dcc38f415a89780b34d827b45493d6dbadb05447d194feb4498172e508c416ac","impliedFormat":99},{"version":"7e917e3b599572a2dd9cfa58ff1f68fda9e659537c077a2c08380b2f2b14f523","impliedFormat":99},{"version":"20b108e922abd1c1966c3f7eb79e530d9ac2140e5f51bfa90f299ad5a3180cf9","impliedFormat":99},{"version":"2bc82315d4e4ed88dc470778e2351a11bc32d57e5141807e4cdb612727848740","impliedFormat":99},{"version":"e2dd1e90801b6cd63705f8e641e41efd1e65abd5fce082ef66d472ba1e7b531b","impliedFormat":99},{"version":"a3cb22545f99760ba147eec92816f8a96222fbb95d62e00706a4c0637176df28","impliedFormat":99},{"version":"287671a0fe52f3e017a58a7395fd8e00f1d7cd9af974a8c4b2baf35cfda63cfa","impliedFormat":99},{"version":"e2cdad7543a43a2fb6ed9b5928821558a03665d3632c95e3212094358ae5896b","impliedFormat":99},{"version":"326a980e72f7b9426be0805774c04838e95195b467bea2072189cefe708e9be7","impliedFormat":99},{"version":"e3588e9db86c6eaa572c313a23bf10f7f2f8370e62972996ac79b99da065acaa","impliedFormat":99},{"version":"1f4700278d1383d6b53ef1f5aecd88e84d1b7e77578761838ffac8e305655c29","impliedFormat":99},{"version":"6362a4854c52419f71f14d3fee88b3b434d1e89dcd58a970e9a82602c0fd707a","impliedFormat":99},{"version":"fb1cc1e09d57dfeb315875453a228948b904cbe1450aaf8fda396ff58364a740","impliedFormat":99},{"version":"50652ed03ea16011bb20e5fa5251301bb7e88c80a6bf0c2ea7ed469be353923b","impliedFormat":99},{"version":"d388e0c1c9a42d59ce88412d3f6ce111f63ce2ff558e0a3f84510092431dfee0","impliedFormat":99},{"version":"35ea0a1e995aef5ae19b1553548a793c76eb31bdf7fef30bc74656660c3a09c3","impliedFormat":99},{"version":"56f4ae4e34cbff1e4158ccada4feea68a357bae86adb3bedaa65260d0af579df","impliedFormat":99},{"version":"6eebdacf8e85b2cf70ad7a2f43ead1f8acccfd214ab57ff1d989e9e35661015d","impliedFormat":99},{"version":"a4f90a12cbfac13b45d256697ce70a6b4227790ca2bf3898ffd2359c19eab4eb","impliedFormat":99},{"version":"4a6c2ac831cff2d8fa846dfb010ee5f7afce3f1b9bd294298ee54fdc555f1161","impliedFormat":99},{"version":"a8d491b4eb728dab387933a518d9e1f32d5c9d5a5225ff134d847b0c8cc9c8ce","impliedFormat":99},{"version":"668f628ae1f164dcf6ea8f334ea6a629d5d1a8e7a2754245720a8326ff7f1dc0","impliedFormat":99},{"version":"5105c00e1ae2c0a17c4061e552fa9ec8c74ec41f69359b8719cb88523781018e","impliedFormat":99},{"version":"d2c033af6f2ea426de4657177f0e548ee5bed6756c618a8b3b296c424e542388","impliedFormat":99},{"version":"2d4530d6228c27906cb4351f0b6af52ff761a7fab728622c5f67e946f55f7f00","impliedFormat":99},{"version":"ec359d001e98bf56b0e06b4882bd1421fd088d4d181dff3138f52175c0582a51","impliedFormat":99},{"version":"45be28de10e6f91aacb29fbd2955ba65a0fd3d1b5fddefece9c381043e91e68d","impliedFormat":99},{"version":"77dabe31d44c48782c529d5c9acddc41f799bf9b424b259596131efc77355478","impliedFormat":99},{"version":"6801ebe0b7ab3b24832bc352e939302f481496b5d90b3bc128c00823990d7c7d","impliedFormat":99},{"version":"0abb1feddc76a0283c7e8e8910c28b366612a71f8bfdd5ca42271d7ad96e50b2","impliedFormat":99},{"version":"ac56b2f316b70d6a727fdbbcfa8d124bcd1798c293487acb2b27a43b5c886bb0","impliedFormat":99},{"version":"d849376baf73ec0b17ffd29de702a2fdbbe0c0390ec91bebf12b6732bf430d29","impliedFormat":99},{"version":"40dcd290c10cc7b04a55f7ee5c76f77250f48022cea1624eba2c0589753993b4","impliedFormat":99},{"version":"0f9c9f7d13a5cf1c63eb56318b6ae4dfa2accef1122b2e88b5ed1c22a4f24e3b","impliedFormat":99},{"version":"9c4178832d47d29c9af3b1377c6b019f7813828887b80bb96777393f700eb260","impliedFormat":99},{"version":"dddb8672a0a6d0e51958d539beb906669a0f1d3be87425aaa0ae3141a9ad6402","impliedFormat":99},{"version":"6b514d5159d0d189675a1d5a707ba068a6da6bc097afb2828aae0c98d8b32f08","impliedFormat":99},{"version":"39d7dbcfec85393fedc8c7cf62ee93f7e97c67605279492b085723b54ccaca8e","impliedFormat":99},{"version":"81882f1fa8d1e43debb7fa1c71f50aa14b81de8c94a7a75db803bb714a9d4e27","impliedFormat":99},{"version":"c727a1218e119f1549b56dd0057e721d67cfa456c060174bac8a5594d95cdb2d","impliedFormat":99},{"version":"bca335fd821572e3f8f1522f6c3999b0bc1fe3782b4d443c317df57c925543ed","impliedFormat":99},{"version":"73332a05f142e33969f9a9b4fb9c12b08b57f09ada25eb3bb94194ca035dc83d","impliedFormat":99},{"version":"c366621e6a8febe9bbca8c26275a1272d99a45440156ca11c860df7aa9d97e6d","impliedFormat":99},{"version":"d9397a54c21d12091a2c9f1d6e40d23baa327ae0b5989462a7a4c6e88e360781","impliedFormat":99},{"version":"dc0e2f7f4d1f850eb20e226de8e751d29d35254b36aa34412509e74d79348b75","impliedFormat":99},{"version":"af3102f6aec26d237c750decefdc7a37d167226bb1f90af80e1e900ceb197659","impliedFormat":99},{"version":"dea1773a15722931fbfe48c14a2a1e1ad4b06a9d9f315b6323ee112c0522c814","impliedFormat":99},{"version":"b26e3175cf5cee8367964e73647d215d1bf38be594ac5362a096c611c0e2eea8","impliedFormat":99},{"version":"4280093ace6386de2a0d941b04cff77dda252f59a0c08282bd3d41ccc79f1a50","impliedFormat":99},{"version":"fe17427083904947a4125a325d5e2afa3a3d34adaedf6630170886a74803f4a2","impliedFormat":99},{"version":"0246f9f332b3c3171dcdd10edafab6eccb918c04b2509a74e251f82e8d423fb7","impliedFormat":99},{"version":"f6ef33c2ff6bbdf1654609a6ca52e74600d16d933fda1893f969fc922160d4d7","impliedFormat":99},{"version":"1abd22816a0d992fd33b3465bf17a5c8066bf13a8c6ca4fc0cd28884b495762d","impliedFormat":99},{"version":"82032a08169ea01cf01aa5fd3f7a02f1f417697df5e42fc27d811d23450bc28d","impliedFormat":99},{"version":"9c8cbd1871126e98602502444cffb28997e6aa9fbc62d85a844d9fd142e9ae1b","impliedFormat":99},{"version":"b0e20abc4a73df8f97b3f1223cc330e9ba3b2062db1908aa2a97754a792139ac","impliedFormat":99},{"version":"bc1f2428d738ab789339030078adf313100471c37d8d69f6cf512a5715333afc","impliedFormat":99},{"version":"dc500c6a23c9432849c82478bdab762fa7bdf9245298c2279a7063dd05ae9f9a","impliedFormat":99},{"version":"cd1b6a2503fc554dcab602e053565c4696e4262b641b897664d840a61f519229","impliedFormat":99},{"version":"af1580cd202df0e33fc592fe1d75d720c15930a4127a87633542b33811316724","impliedFormat":99},{"version":"538608f9242fbf4260d694f19c95b454f855152ab3b882ac72114f19b08984d2","impliedFormat":99},{"version":"cd0e1083bd8ae52661544329c311836abdda5d5dda89fc5d7ab038956c0394e8","impliedFormat":99},{"version":"9ea6fea875302b2bb3976f7431680affc45a4319499d057ce12be04e4f487bf9","impliedFormat":99},{"version":"66e0c3f9875da7be383d0c78c8b8940b6ebae3c6a0fbfd7e77698b5e8ade3b05","impliedFormat":99},{"version":"da38d326fe6a72491cad23ea22c4c94dfc244363b6a3ec8a03b5ad5f4ee6337b","impliedFormat":99},{"version":"da587bf084b08ea4e36a134ec5fb19ae71a0f32ec3ec2a22158029cb2b671e28","impliedFormat":99},{"version":"517a31c520e08c51cfe6d372bc0f5a6bf7bd6287b670bcaa180a1e05c6d4c4da","impliedFormat":99},{"version":"0263d94b7d33716a01d3e3a348b56c2c59e6d897d89b4210bdbf27311127223c","impliedFormat":99},{"version":"d0120e583750834bf1951c8b9936781a98426fe8d3ad3d951f96e12f43090469","impliedFormat":99},{"version":"a2e6a99c0fb4257e9301d592da0834a2cb321b9b1e0a81498424036109295f8b","impliedFormat":99},{"version":"c6b5ae9f99f1fccadc23d56307a28c8490c48e687678f2cafa006b3b9b8e73e4","impliedFormat":99},{"version":"eae178ee8d7292bcd23be2b773dda60b055bc008a0ddce2acc1bfe30cc36cf04","impliedFormat":99},{"version":"e0b5f197fb47b39a4689ad356b8488e335bbf399b283492c0ffae0cfda88837b","impliedFormat":99},{"version":"adb7aa4b8d8b423d0d7e78b6a8affb88c3a32a98e21cd54fcafd570ad8588d0c","impliedFormat":99},{"version":"643e22362c15304f344868ec0e7c0b4a1bc2b56c8b81d5b9f0ee0a6f3c690fff","impliedFormat":99},{"version":"f89e713e33bfcc7cc1d505a1e76f260b7aae72f8ba83f800ab47b5db2fed8653","impliedFormat":99},{"version":"4e095c719ab15aa641872ab286d8be229562c4b3dc4eec79888bc4e8e0426ed8","impliedFormat":99},{"version":"6022afc443d2fe0af44f2f5912a0bdd7d17e32fd1d49e6c5694cbc2c0fa11a8f","impliedFormat":99},{"version":"6dd3f823ac463041d89c84d7bbf74931a38d874a9716040492ac7a16c7d2f023","impliedFormat":99},{"version":"a5bf6d947ce6a4f1935e692c376058493dbfbd9f69d9b60bbaf43fd5d22c324b","impliedFormat":99},{"version":"4927ef881b202105603e8416d63f317a1f1ea47d321e32826b9b20a44caa55e2","impliedFormat":99},{"version":"914d11655546eba92ac24d73e6efdb350738bcf4a9a161a2b96e904bad4de809","impliedFormat":99},{"version":"f9fdd2efc37eefc321338d39b5bd341b2aa82292b72610cb900f205f6803ff66","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"62e7bd567baa5bac0771297f45c78365918fb7ba7adba64013b32faa645e5d6d","impliedFormat":99},{"version":"3fb3501967b0f0224023736d0ad41419482b88a69122e5cb46a50ae5635adb6a","impliedFormat":99},{"version":"06d66a6723085295f3f0ecd254a674478c4dba80e7b01c23a9693a586682252f","impliedFormat":99},{"version":"cc411cd97607f993efb008c8b8a67207e50fdd927b7e33657e8e332c2326c9f3","impliedFormat":99},{"version":"b144c6cdf6525af185cd417dc85fd680a386f0840d7135932a8b6839fdee4da6","impliedFormat":99},{"version":"e8dfa804c81c6b3e3dc411ea7cea81adf192fe20b7c6db21bf5574255f1c9c0e","impliedFormat":99},{"version":"572ee8f367fe4068ccb83f44028ddb124c93e3b2dcc20d65e27544d77a0b84d3","impliedFormat":99},{"version":"7d604c1d876ef8b7fec441cf799296fd0d8f66844cf2232d82cf36eb2ddff8fe","impliedFormat":99},{"version":"7b86b536d3e8ca578f8fbc7e48500f89510925aeda67ed82d5b5a3213baf5685","impliedFormat":99},{"version":"861596a3b58ade9e9733374bd6b45e5833b8b80fd2eb9fe504368fc8f73ae257","impliedFormat":99},{"version":"a3da7cf20826f3344ad9a8a56da040186a1531cace94e2788a2db795f277df94","impliedFormat":99},{"version":"900a9da363740d29e4df6298e09fad18ae01771d4639b4024aa73841c6a725da","impliedFormat":99},{"version":"442f6a9e83bb7d79ff61877dc5f221eea37f1d8609d8848dfbc6228ebc7a8e90","impliedFormat":99},{"version":"4e979a85e80e332414f45089ff02f396683c0b5919598032a491eb7b981fedfd","impliedFormat":99},{"version":"6d3496cac1c65b8a645ecbb3e45ec678dd4d39ce360eecbcb6806a33e3d9a7ae","impliedFormat":99},{"version":"9909129eb7301f470e49bbf19f62a6e7dcdfe9c39fdc3f5030fd1578565c1d28","impliedFormat":99},{"version":"7ee8d0a327359e4b13421db97c77a3264e76474d4ee7d1b1ca303a736060dbc6","impliedFormat":99},{"version":"7e4fc245cc369ba9c1a39df427563e008b8bfe5bf73c6c3f5d3a928d926a8708","impliedFormat":99},{"version":"3aa7c4c9a6a658802099fb7f72495b9ba80d8203b2a35c4669ddfcbbe4ff402b","impliedFormat":99},{"version":"d39330cb139d83d5fa5071995bb615ea48aa093018646d4985acd3c04b4e443d","impliedFormat":99},{"version":"663800dc36a836040573a5bb161d044da01e1eaf827ccc71a40721c532125a80","impliedFormat":99},{"version":"f28691d933673efd0f69ac7eae66dea47f44d8aa29ec3f9e8b3210f3337d34df","impliedFormat":99},{"version":"ae89fb16575dc616df3ff907c6338d94cfa731881ecef82155b21ab4134b3826","impliedFormat":99},{"version":"687208233ae7a969baa2d0c565c9f24eb4cb1e64d6cfb30f71afec9e929e58c2","impliedFormat":99},{"version":"f716500cce26a598e550ac0908723b9c452e0929738c55a3c7fe3c348416c3d0","impliedFormat":99},{"version":"6b7c511d20403a5a1e3f5099056bc55973479960ceff56c066ff0dd14174c53c","impliedFormat":99},{"version":"48b83bd0962dac0e99040e91a49f794d341c7271e1744d84e1077e43ecda9e04","impliedFormat":99},{"version":"b8fd98862aa6e7ea8fe0663309f15b15f54add29d610e70d62cbccff39ea5065","impliedFormat":99},{"version":"ffa53626a9de934a9447b4152579a54a61b2ea103dbbf02b0f65519bfef98cdd","impliedFormat":99},{"version":"d171a70a6e5ff6700fa3e2f0569a15b12401ad9bc5f4d650f8b844f7f20ef977","impliedFormat":99},{"version":"b6e9b15869788861fff21ec7f371bda9a2e1a1b15040cc005db4d2e792ece5ca","impliedFormat":99},{"version":"22c844fbe7c52ee4e27da1e33993c3bbb60f378fa27bb8348f32841baecb9086","impliedFormat":99},{"version":"dee6934166088b55fe84eae24de63d2e7aae9bfe918dfe635b252f682ceca95a","impliedFormat":99},{"version":"c39b9c4f5cc37a8ed51bef12075f5d023135e11a9b215739fd0dd87ee8da804a","impliedFormat":99},{"version":"db027bc9edef650cff3cbe542959f0d4ef8532073308c04a5217af25fc4f5860","impliedFormat":99},{"version":"a4e026fe4d88d36f577fbd38a390bd846a698206b6d0ca669a70c226e444af1b","impliedFormat":99},{"version":"b5a0d4f7a2d54acbe0d05f4d9f5c9efaaeddc06c3ee0ca0c66aba037e1dca34b","impliedFormat":99},{"version":"fa910f88f55844718a277ee9519206abce66629de2692676c3e2ad1c9278bdfd","impliedFormat":99},{"version":"a886a5af337cce28fe3e956fd0ed921345933163f5b14f739266ba9400b92484","impliedFormat":99},{"version":"9ae87bd743e93b6384efbfa306bde1fa70b6ff27533983e1e1fe08a4ef7037b8","impliedFormat":99},{"version":"5f7c0a4aad7a3406db65d674a5de9e36e0d08773f638b0f49d70e441de7127c0","impliedFormat":99},{"version":"29062edaa0d16f06627831f95681877b49c576c0a439ccd1a2f2a8173774d6b2","impliedFormat":99},{"version":"49fcfda71ea42a9475b530479a547f93d4e88c2deb0c713845243f5c08af8d76","impliedFormat":99},{"version":"6d640d840f53fb5f1613829a7627096717b9b0d98356fb86bb771b6168299e2e","impliedFormat":99},{"version":"07603bb68d27ff41499e4ed871cde4f6b4bb519c389dcf25d7f0256dfaa56554","impliedFormat":99},{"version":"6bd4aa523d61e94da44cee0ee0f3b6c8d5f1a91ef0bd9e8a8cf14530b0a1a6df","impliedFormat":99},{"version":"e3ee1b2216275817b78d5ae0a448410089bc1bd2ed05951eb1958b66affbdec0","impliedFormat":99},{"version":"17da8f27c18a2a07c1a48feb81887cb69dacc0af77c3257217016dacf9202151","impliedFormat":99},{"version":"8395cc6350a8233a4da1c471bdac6b63d5ed0a0605da9f1e0c50818212145b5b","impliedFormat":99},{"version":"b58dda762d6bd8608d50e1a9cc4b4a1663a9d4aa50a9476d592a6ecdc6194af4","impliedFormat":99},{"version":"bc14cb4f3868dab2a0293f54a8fe10aa23c0428f37aece586270e35631dd6b67","impliedFormat":99},{"version":"946e34a494ec3237c2e2a3cb4320f5d678936845c0acf680b6358acf5ecc7a34","impliedFormat":99},{"version":"b85aa9cc05b0c2d32bec9a10c8329138d9297e3ab76d4dd321d6e08b767b33ed","impliedFormat":99},{"version":"b478cef88033c3b939a6b8a9076af57fc7030e7fd957557f82f2f57eddfc2b51","impliedFormat":99},{"version":"2fac70f99da22181acfda399eed248b47395a8eeb33c9c82d75ca966aee58912","impliedFormat":99},"39d3f850de312a17cc8daf70c60ff553ec5ce34638634f30cff998af394bb165","c78fa897edb7bfb56914df7400fac1fb8605b309d8b8b35ed0add148d1f615be","43bdc374d89d24d546fe00cc8ee95b5d5211181bc858cc72c4f86ee1ba39ff71",{"version":"853aa2acd51cd7300884c400532303bec106892146fbe0b64974bf4dfba845ab","impliedFormat":99},"5fd06addc09e3585eb52b0d8e731dd7ee79fe59e84f07279f80f5ff9772357ef","8214124af71c3fd95e6c15f7bde7da0fb98617a1746120e27dec8d7bed51f6f7",{"version":"bcf5edfb2b188348d16a7dd26c83a79856a7e81a7800051109d99aa211ef6947","impliedFormat":99},{"version":"6d870cbc76c9654c649c58dd664a875bab499e3e746b34ff2a6b6d363a3e0686","impliedFormat":99},{"version":"c1da3f540f39091e02624208125e7d825fe6839d153399c21315725acf0adbe1","impliedFormat":1},{"version":"91648eebacde37f34eace96a9d3f269875ae85331e70a4ffb89e76f0382338ae","impliedFormat":1},"e5c8642b6eb0555f834e8970b475fe53be0c8ba1eece191f2c639401bdc76d06","748adbaf3b204e53a11716e5212373fdcd6a9d8583a3bbff77508f1eb0387576","8e9a966d0fbd83b3d6bac0163d452687cc20a3f2eee0b97c1b5ea7b6169e9781","5819c1b29a76e0aee7188f7be7ccd5e8324e3e651200a01e6eaf7dcf1d802bb2",{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"68219da40672405b0632a0a544d1319b5bfe3fa0401f1283d4c9854b0cc114ce","impliedFormat":99},{"version":"ee40ce45ec7c5888f0c1042abc595649d08f51e509af2c78c77403f1db75482a","impliedFormat":99},{"version":"7841bca23a8296afd82fd036fc8d3b1fed3c1e0c82ee614254693ccd47e916fc","impliedFormat":99},{"version":"b09c433ed46538d0dc7e40f49a9bf532712221219761a0f389e60349c59b3932","impliedFormat":99},{"version":"06360da67958e51b36f6f2545214dca3f1bf61c9aef6e451294fcc9aca230690","impliedFormat":99},{"version":"50bc55fc955fa799a4a1a11c3484077f06cc87033c68f5da6466b520876cb12f","impliedFormat":99},"692a15ffc1571f733244b03cd6b6b58a133e4e01856df1467ce6c3444c1259a3","cd2c1a180cf79f8a47df34564e51a507b538495fb6146f02bf58d065697da499","9968d8553658752ed8f344eb68e993a2f180fdbaf111d87476a39c344200f1d7","691e10778cac0b19bb0c68ef93d6bb6a9f085ef9ea636cd701a264465736ae19","b11958374bc4d9c727b74d80612041e688326b711bbee6a083a4823bea27adeb",{"version":"8d723a4b559e0ee480f0c58628a7042b34a7e1d8dc574a87dadde6aa14ff5e06","impliedFormat":99},{"version":"5c3fb14d3f91d6e84afe24a17a238f14a1cc46ece36bc80d9ef8b70b75dbadba","impliedFormat":1},{"version":"f098084154c4fdcf042b749f7356d4942431f7620eb2e1ebf9470938348baf91","impliedFormat":1},"cb82e82443c9802d6daa5235720844ba6711841b7c0a80d48c83d29675e4183c","02d1f76af07293255fc752f76e6eafbbdb65190f0b94baf585dfcaa11fa282c8","e8b1752ddb12d594d3fb94f323a9a7d9226b1e1136b9a498f6d41c46c968473a","d2310ec17c89403ead75d49b580bdd2e381bc055fcf1c6696654e5916c757731","1ca0bb97ef3fc881b291bad2fc6e2cde43202e8795f2dc21dd9adf27af462cb2",{"version":"e6b0c0063fbdd803451c48584da7e56dae719b32cdb16a9323ef24f8d8226286","affectsGlobalScope":true},"6ae398f854a68cf136b7db107034649c0cc311c5da8f8825eea7e58675b9b346","3a75eb33099d9c5dfae2270ae4218837f3677cb07fe4a17f97b18f232fa46c1e","2a3620433da493bec64629b059c23e3e495bba32934f5b57a2418217bec815a5","3352ad8f7d7bbc8a8ac2d082fc171e770d51ebba4a3047899cc139651bd1b420","dd56697a2c1f1a2526ff142603a1eb06642542dfb2ba36cb94bca3e13a448a92","8d58ec4f131c12001f8f6725910aad0f2f234ea1ca5ce0a4b799a0740f147c9e","4a86d186395943e48d8b4f07de989122a7f650e927f9c0f7b1b5ccbfc3cb5a97","966d39a8dfbb749db801f011c48f5ac5c12005594a23dc362ddc91083684f4fd","b84166706bb40fd3ea02ab3567a894cba4967002345fec8d7c3cc03b53b02d8a","7a70f867fd95d327218764003253d829a1b175157dd557e2edadc488b602e951","f55e7501022cdefc9c8de2a3bfd3eb32e9eacf6e627d4ef9331c8bed2bac1aa1","ca65f3485f8d4126b50143b4fd0056518cc37bb603fcf3f1083801da6bb8f840",{"version":"7868829dbcc4714c0cedf2170b0c6b4b54857ebdc504c69895eed186101ebf4a","signature":"626b7d4e8d86ed054f3d881721f1f252ab156f7a6e83f84b9bda497dd7591c56"},"727116b778e16bfae4f0d7d64c402f1215b42bc82b79d0b6735065500ce074ea","33c5be5cbc666f28499d133c12a1e7388fa4d3ea8e2a99f1b54a294038a705b6","cf27d3afd290eaa17a56d9acbf7c0c28aee6f71e2d912f37670797ea900fcd03","dfbbafc2265ad5c2d567eff23471dfd624a45041ec00248077ffe85cb30ceb6e","330b9194184dc7d8b7a5b8f72430e5cc68b0ce958b6da8452ebff967bc119f0a","9e42b3e452e133b377e29bcbeead870f851f09fd0792bf713a43904c0305e0e6","c08b47111cc516dbfc5bdef1a65e7f891db38e51e87f80712160d4bdb075a2d5","1b68ae90a12f7e1ea24e198b11929b950f5592f7a82c977307af3ccf6bbb4eaf","b436e9fcf14a599ab395b1a487504c30b2d1d19ac6bb8e33361459a1645e1048","13344faa1053b25ed69b664f5dbf2e1b16ab1d061ee06b4acf31d42036774e51","649d506c55b4b9acfb3d17e16efe05771843ad6d76ffd39a7d7f1a462f23f591","2eec155b0d515abed949b4be74d6ccca06c0b4bc1beeafc27e85e035b3042782","9c1c0b797af5c8c753da518c5ddfe2bc8b8b5669deb0ce27c6785247bb71b341","89e96601fb9071df995ded317cc45cfef4af997bf0728698468672bcfc925035","63c5752c01ca63e68edb7e7b7bffbb8a152bfea6a77f71b3f0e0733d4645b889","fb2155211ee7c70d32054f698da9675b9e7fda4c35fb1ce69bcb8f792fb9deae","f9aff74a4b22d16d9ff2547418bd8457019cc09edfc72b8dd74cee088645f118",{"version":"e1be4a2a139d2a99071ff9c81d7c3401a04612b032c16b4212a66e254c784217","impliedFormat":99},"810603f1938c248f11897af108e37cee5ee59d877109cee1cd76dd1e1b52e25d","b2be6bd0cabf93bc336b763782fe68f171a6efecff971b6f995e5334183b2f24","de3ccd759ae2eb138fb4b86a4dabf7f438c763bb0eb1ed3c49455baa7fa44b28","87b3ca930cc19128af08e4205f633019e6aaea8763e79fe022e4abf2cb635172","c7fd99902f3334a4326c0bfced3e84fa372c91dc068ae0bf1223f0dc07e51b0d","3a9456c9c14f79405e18ca3f6999611903e919c22d652facd83089c6e8e5ca50","0f3fd64800c166074429e68606af4be3af0e13a4895a41b7fc5f3adf0453eedf","8562116c7dc8f01afdf66dee0181a3a0c30b0aa7f3ca59bdfd3935073424c545","6a74016492f9761fcf64bd526b41dc3df8e12cbf3ee61f316a2c39771607dd82","c632baf04bbd2335ea118f38387c7942890d8716d2953b04b846f68cd3015518","c28e5a7dd172b5a2ea155b280f2db8c8cf1e2382d744626dd13e964b8e69cbf8","d276e9ed2b3ddefcc7d4e7311fe6bbd04b798ecc95a645f96cc098ade701880e","ad1a2e71640f1d8891bce1bd7d186ce51b2f90a0a1630a7abe07d596c2722e7c","855aa18e4b2b9ead2ad336fb3c70c4700796458861b54c9606cb19814344b392","84c2ee74e4f95ca8851249e89f3318d3b52920583dcc0eaf03cbd01d6a6a267e","ec37cb4c2a969b1c24097a235562f8562eb8ad0230d3a5384343b9071d7b0233","00e2790cbb93d79390db3b02db340993f8c2c9183670f99727263b909ffe9d35","a8130642faa414646903d6e7d49e7b6c7f59c5ef866822bad90ebf00fef11bbb","b348ec964cfb7e34c7897d65fea67b2dfe108f3416cfab801d689edf070d145d","1959bf79bcb4a350879e996b772a04e938498e805b6b743b3d0cd87fc20c4dc6","f090835e8c3e4cda235dd4ea19b6bf0425278878f002e85303f9eaf1caffb32d","e56d5ad1ab8f01127ebb0e07d79ed01e79171c0955012e325b114ec4018b7749","d4fcb3c326ca35fdde5e17fe839acfe8809f451fae9d8bc14b611acaf35ffb38","f5448737711cc5db5296dfc2cc738c8d3a5fe4d801eaa413f57900049d77da31","23433d6bff4bccb7d8668de3e0ca61615a498ac5b919cef01590de05fa92e902","b9913bb531f45752c837af883d997d4eda0adb0fd93118260b637e83f5c03928","efca758bd50dd6012a476c766fa110b570c249a7877fbd8cd4667f6ceabe3b9b","cb156de2b8ef84b95a91f10c1bfe9b7db7d2a35ff0a2ae4c967cda2b688fada3","8a21d83dc205f15c4650b2fd75a66fd58fd724cb0a353fea6b6d69f4242df988","21f7ac78e577d4d710307ff3c2f7c01540a38d79dd0b440e2dbb683f1d9623c9","4ae01b02256fe0eb736408fac3df12ee4bf77fa195f60ff70f090059ba4ef5f6","ae65ec7d76bc3fd87cb6d315667ac2fdd699451f3efbc4e8d388e4304058ce57","4b562cf9e0719f90a670b2dfc412a3db5b971adf00460775abe64509798937dd","0a45507ef86c729b650538e8db48a149786c8d9b77ec0a625b86e1a216d3436e","7dfa9e1175bb87f0c526ec0229c98c17066d05b11b80d83836c55ab3086286f1","82314ac9d75fdf5f5ce840cb09fb52f288f1df1e85958a485a4b24b5e53557e5","3b7e5177de77bae0379005b5c69d355fc581110ba01cc5bb6889dc903e43b828","66b11a874c9de9b1a12f0ccfc8e6b79f80789454022e9a5c05414da9a7ea98c5","c300e74a570e9ef2705ae4bd4e984063e3d3154f8b306129b1e3f3905761c10e","8c9c00c5aac58a12e814c91377d96d884a2fb1d7c9d317731ef9f98df2f42a5e","392d9976ee21554bf72199f7a9df8f974f84ef0bf307407fccf2181d79325817","a2bb0fc53a1c7acb71897d698f1e077784af999c1097560a89f2906825f1a4fc","5f1324b3a337420dcfc57371bbb3dd0da72e169527f417ba21aa5927adfb92a8","95d93cdf704f2ace7db935cc65602d1267e2fbae6b37f1372c4aface473844d8","edd6fedc43b0e0bc286b1be00cd065cc4e18a55e85bcf7587cc87ae2f67f2829","3e650aba4c29bc7b1b14ce6cf682c773a0e919ea4526330c965043aa89b91bd7","e11d7d5b4442870141a31d1437c4af4f0234180d5609696bee4cd6b1abc40349","fa48b2666fa1b1963eb0603286019a327abb191dd39f216d354f883bc29f268d",{"version":"e6b8f3cd057e49a50b57a52acc38cff7c224def2249464d489295e0e1d200af6","impliedFormat":1},"f4c120df4f91a4f0c875893a5ab70b9d774b925e8dfcd7264697f2aef095a29a","6148b96a0e233ce77def68752a7f3a1a58d79ed9554bdaa09f627abd557fa734","e3ff923ddb66b417ab7ee1f62614613a9e3e5f66769ca635aca857d465969023","3eb9f64871f43bad72400e58676cf13f507e64c4d823e3ab8c4246a6b6863039","ab1ab1a06cb622c3e43db0cfcb4ab664829f4575dd6f2ff4b28ec2669208d4e0","d07945cfadc00681dd4d81fc4779eb731ac0048ecb9474a19f72ba21d2833439","357f60c349cc2d647f9387e18284f4c5d4bebf79aa5cfee8c0e01ecb10836f01","0003d722e7ddf9903a935005962ca1684aa84bd1476372ee916a23003ca54ca8","5b0adb7543a2827aa82f853b9cc0304c109851bea698681afdd5aa8a8d909fd9","ff8fd0b0ef0bbe1631697964f20765934f64b50576f61b954e5282f62f57c904","3196b4a9775036992ad446e691cbfa584ca453648f6f51f41d898e637b12581e","d062c26e0df9e01a6ea4007e7b9f18c9c1b39e0b8ce464ce5839f23e9ecc83d1","ae0b133261f76ef6f30c79793eedcc921b71c0b5615571c0d6608dfc7c13b6e7","27ecdc06ac1a975faa80f4e247e6eb1410d05dfa18f623cea1d25c6399c56b77","232f71957b81d9ea36b591bbfad1bba96748bb3a8b07aea1f8d9ee47baf9695e","053e6c1baa785cd0213ece6c18486accfbbd26af926eec7ab98c694b98521ec5","91224ef357897c005104f9346d473cf5a2795939dc87400a322af363a4f92d75","bbb6fdf963b4e79d65fd9974f3cceb6da8c6818f167c958acd11d36b828da6f0","5d9a7e5a6a1d9e2b704190992e7bdc31c1a14aeaa11d27259728c704a01dc5ab","450f097797537a9bb709638238d6f559384f9b6ba33879afd16c2517bd308ad0","f7115f512ec176fd9248f9bcf5765ae0cb3208c983b531b76498a7802c076f75","dd695c84f4f600ef17b160983cde3a767033610b1a4c6c545b946b7ed41769e8","452920d21fde6bf86adc3c952fc903cbfdbf38846f1351eac5b6ec49e2dee0d5","e4c71fc60d0a3ccd19931d283d85264d5f3c6ec99ae1cb1525dfd99b1a805cc7","63105c29af8cfd6f3a09bbcc9c7c3a5bbcc81352ea90ae7ae763c01f70d39a96","b6ba4936174740de3fdfe5a0d7de32afb7ba6663da6f0dbae8e3b028f658d6f6","d7099a34db4a42d1831ca11e5fad9213a82a4d63ecba12f4f778d33828094212","95145b348f3e48a283d95a21f9108de965e3055d80644239683af27cecdbe234","a8ed788d7f6edfe8ddbd335924b3c26b9c3c8623bdfa80ddc809984a5bde8645","4b2828bbfe09cc2f419cac54d3793d2fba624766822d54f756062546203f9826","f217f74a8101bd8d8f524e75705bef0410c5f763406fc9832114aaf5591767ab","a6fb0592bba612372d5fe4da906a2bab5eae29d49cbaa2add8f4e7010444c537","79cbe09b9d801282164ffb131771fd7e7333b5481d141b326fff6bf845712671","d8dfc8edfb5eb77a42e1ad0a69d555c60baaacb52094154875c256535488f01b","2274723cd1ef89e15a7e5ad925055c09cdea111908bf9214af6bed793923c423","8b9069ba952d5461321ef33c4071a884868fc0e137e746c05ea46b0e74b1c4c3","2626a34b276b1f76ff936b37cf5e5ffdfcfe70106606d4e2fb13482be180abe9","375502a1765f507f058432b2401a2e2bf70e0c6c0241ec2a57dc17c097b27343","620875ebb4d37e6938cbbc32486014f1201e35c58e55193355fd033b0cdd8d58","fd9fad846793e232cad2b854b53aad3d1fcecc3ffa250ba4cffd9b7dbbc3dc39","530d0468f856c652072ab36758433af243248a199a6f2a551237ba7e289f76d8",{"version":"d44c53a5185ae285987268f3f30cdadf3dc7bff19d230bfcb5c6505d4f268299","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7f161bf747d17d98f49d7c2a9e67da87031da2c2cbcf356698fbfc184788b20","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ff2131e0cd0d00541853f45cf91d93570f4657717daee949596e828dfecd5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a36dceefb767f35c0e04cd731ce8f302da8f5c4db047afd412749cf9cefab338","impliedFormat":99},{"version":"4fa9937fecb08fd85e2c8a7ffe4ef27fc02cc0ecf5c638133f65ebcc665c155d","impliedFormat":99},{"version":"67500feb82f479142b553d4735477a64838014a335a62033516a93173b2b0d69","impliedFormat":99},{"version":"1bf74c0a319d262ea9b3b7381ca4a05b790ea1fb25e91e4838ca7a03a80e53e8","impliedFormat":99},{"version":"d6f734b1c568ee0b2cc21fdf336ba7e07674d5a244c082961fcb0cfcd1d14d9d","impliedFormat":99},{"version":"3c8e78579c681799fbed1e83c1b42a27497551a66d73620cee86724e16d00c7c","impliedFormat":99},{"version":"d4f1150636fab34b29c20492de16ad8cbfcd165b75fd59f3fc43eb925c3cdda2","impliedFormat":99},{"version":"a423e3eefa50036e6fa64c5559397b2fdd415a635d71f1dc6e6d497fa9ad5733","impliedFormat":99},{"version":"19013bfbe9b85acad69621aee4d4baabea52dd563a55503f4697d31123b4917e","impliedFormat":99},{"version":"c4d678fac1ec9dbe16381c3effdc1e1af1a909eb97c9bc7f6ba8fd832a0c2fbb","impliedFormat":99},{"version":"55605ec08188e2c9183059ab382d904bb0e0e2167edf218a2eeadf755d85c8dc","impliedFormat":99},{"version":"0d6cf4704ba2281eb23e0fb0ef0d9dcb5cad22118515747e5cf62b69a559e198","impliedFormat":99},{"version":"6938a4140037dc171101639cc5601de23db9d150ea2e0ca63149f2ef18c2f943","impliedFormat":99},{"version":"7e05897b8740792b19a75b33f3c18271afcebba23a79a961228422cccf7b107f","impliedFormat":99},{"version":"033ca4aee625d77f77d91ebbb1f2d06c81e6aa5a8e08685b7821164a28ab41f3","impliedFormat":99},{"version":"21a6d8961711f30abcf347ea33621442b239104dad95ca8f6e5c45397f0436ec","impliedFormat":99},{"version":"c1f63a7b774263ad335590fedf52a593a76758fe98c4f28782624c77c4eb59f4","impliedFormat":99},{"version":"4e97d48d7072ad1ce17c5877e8d033c862864b342eed72f951375285411d05df","impliedFormat":99},{"version":"ced21f7dc368280f9928d4f8fa267f04155d9d80dd6e468f17ed1b7b7581d67c","impliedFormat":99},{"version":"71fb51ae6da8a075f61e69a4b8246701c7733a5766d4e895516a13f089788102","impliedFormat":99},"b4f7e520fe25d7c34f2568c372a43df69f54da57b203719cf3a23715dd99f705","a3c25088e2b34cedeee677548a2d221fa0a41c93daba489df583185f5b594978","2440951e1d2dfcd2bbc2073dcc1daa284614e25b9955a9dc60110980e1eff120","7685db0af3005e03a22399c14c4547cd273af528ebe1ffa12a6119b25ff8c4e9","4bd39368e2e125bd86a6f45762bfa098bee444ec084278c6db5f45778f7826ec","97110726b074f3e3bef3a55a5f22be719185781eec364c4e7edb8868b9255ccd","4b6cbfedaccee412345b8920a902f53307c25ff18a572edb4af281d24c6c91e0","8bc8d18d48b7aee2f8cef0b6303ccd328ed37f1b3dd2658fc32ddaee0861f250","bd12ab4eb388a4e0c8abc523f976242335446f1dd87bea49e98d5972c7f98008","3ca0e2b22ff163f451eee07f1d9e0bf08678c22ff4caafd72eea8e64ca06e7ed","398f6d5753b8413b35d821b60df213baedd649695401110923e5eeb250be5ba7","e8b20809aca74f8aef9f58c09c4579bcb0157f3a1861e8adfc8462083157a5d3","33bed821259d5326366535a651b1147202e951c263b432521a0abd89db35adac","bfcf9971863c6277fd01864084367a9bf819a4b77cbf07c9c7c608473a24d79d","ccde58ef224ad07068ddeb3533011b986b08b0db6f686e50943f518bbcfbcff0","c470cdf31709653b05d0f38a15e8d1c878cb44031891d53e0c56b82f6c3feb27","80b190e1b08d0ba437bc3f05c38e06c4ac56d2efff00ae329cc3dd99c8162fbf","3d71a6d2276482ff6f074e79fbf279df4c48b5e0c08db7a16dfdab1622bc6c6e","0678c1cdb20b21a0eb6adae7cc6318c22edd4b2c067dc5a7a101a7420966989d","7a8ef7c309e58a3493d06cb46a031d20ad8788e29c2fd1771dde9cbef3be5eaa","673c13ec7da3721837eb79253668d3a78713ecff3155cda396a53dad6c5ff016","1a08ef06f4a9e7c04e16b283895222db336a91af9cdd17e12cf0e678a9fb960e","5c767f4290f6c008cb1a3f58e8eda3d719211409b6867c5326a1fe457c278f54","376f3de5bd3724fe96737917d9e5922344c9317e8f35879d379735b41d81e193","a4b905d0e9dad950fd7f11e6bfed931541586299c0fa8250d1672fd4e6bb2112","3799c25c5ea730a154a0564e5aa21845f238d5390b3889bcaf32565189cb2a8b","4665bfa5ddc57b4841b7e45513edad54a23e899949e99c08b2d87457588c3ce2","bd6fa09e8fc8e1f94a9b7182123fadd027c4060ade19c5170c38f49faaad6e0f","be6706d53820ab4350af297e7c220274ceba5fa108600d46b727a1defcb650ff","15ed103893f7a2ab91907886b87823be9ce2dbc12ac755f300d5792e70d2d81f","55105600de0ff174ff8a351dc3c12e2470bf24de3725e4a97c28b8b6561d40f5","8b891bb499f46eebc267cac374c0ff2dc7eeef79c381ff67ab6f1c725ea5328b","22058f88e10e80437ccc4891019664166cd61222f24c94c0e18e128f4f788c2c","9390d1f8a701922a9b31f390bae0650ef7358184ed3e3eddce8a0a992170e063","3e0facdbd91810be315103b29d7b1d022859e54c18779da0bd9361fa696e86a2","86b9bf11977e4c3f274318d25c49df61f046d4855df822d17876a1227107538d","1e952fd27b996ddf2d94fd77ae1659d1e619c45973b92b72abc236c90ada8787","0a140b4df53199443df23af7db9d19516e3fb866948187216205cf403a5e6135","7f2090c85f3929a0fb6509f0afaa27c94acf3cb8741bb9c7eb7eda6f8519ec89","618f53196323b2ba00dc726bed4ac33a05132888d6261ff921827d6e8de0de4a","f2b6bc27c46c76f02f8c0a1d302527173a7271d43ca0ea52ec1a5aea7178cce2","a679d997ad7376b1bcd5ea671b40eb9b2d59968fdec155a1578dcfcf4acdcc42","fc7c62380ae7605b11b26c6d129e4bba98278ee4fd42cbce838e9565c62ef69a","1f8529318847b08e09bdc1d7d1ec9f642ce2138b58d7f284d3f7aed42972a1f8","6f874626900d0913e97bb78d6a70081dbde73572976115b8d74ab1340141c0b9","d5fb83e351bc3dcb4192d3019df4538439fd420894fc2b011310fe8be79d4ff4","64fce2389b691d3698e182e6120375a0114b4ae64f065fc15c8dbe6fda4b1225","89ec73a7cf181ef2bbf3ac64c1dda4230ecf099fa4dd2e422c73a5d6881df016","0889e102118e8b8c384a3238e1d7412fa1cb5ea686ad18207ec581bad7e565f4","c755ce0a3326f4399fe4bf2c26afcdf3b383688e676a58119cc99e9ec35ab62e","4dc6687afa080e2b007da7c4659a118dbb9549c257784504bba3184e51874a91","2ef2e50355aff946506e435465da73a84e4d783452ee3541b4a3a2ae6e753796","cfd9e723bdb9d723ade50600d9992468afb38a761b756dd023832cbca96f77f3","8219513ec2b1499f3359c951882b06d15498a4f4bf7b83db066695ad7378709f","fe439a0c921410da173e0ac5eff5651ef0b21d3d3b32c1a2c46a158f3f6a96df","1e1f5f75dab423bce9d137f041199eeefa60c0bf4096623530c3001e37ce350b","fff4a48d1992d1de945d2a385a90c5d280639735ce4bf7d215373b35a866f972","31e2b6526544bf757789b42980c9c80968aef8c9ba2f36faaec09942de12241f","27a57b33d46294bb81a43ed9e2a06d7c1b47379fb181dc8a277fa3a64b35008d","6bfa52d6836a8d59c9e506be487c9ce8824da608087278fd3ead167b906d8a11","750fed49ef1b3929ebe3a49a3c7dae65a95f6615bf18c5f08d85f589e03deebe","4d05336513aae17c7e3d0ec3acd50d3be2c4e3c11f993ee183bd90a047ce05cc","8f05b1ada17e92aa5eedfd5af9daf8abbdd12f963ec4f1048e2a1078d9e377f9","d524ddb181b8598be11cfd2b701768932d3c466cb13de14e7f0ac4d7898819c0","18b653c616f976db6ffeaad9a0e5b09f18bd8dcf0842311cbd928fd9af1995b2","3d7b1b942f82aa255466705649765f7cbc10ea3d4ab97fe70b887bdb7bc16b80","09909b8c991b44f673163b3718db11c5bdddbb8a6b7adf4f2a59d6f2410783d7","7a825c1379587176b9038d86317fa922447adc98d55f90022ebde4c8a87b13be","05838b236d71f9ebb43d34d8048502644a19713bbcc399d9ddc2f0e03378a9b3",{"version":"27679e96d1bd38c5938178aaf4abe8627493090b63d6bae2ce8436e6a87ebe4d","impliedFormat":1},"1c6228e0f48977fd482900c2165d7cb59fa0d9e0fc7c9073f75df16673989072","59a2a3cb4dd820dd047b4f50f661e346a20a3f1bce7e6e7677ece3f9572b61b1","fbd9c098692c76b327165f4c823aeefbbfb983d88b0f91a0fe5fd49e60769584","b2a5cf8e822d39d3a9fa5b517bd857713e6d728afa553623ee1a215e1c228505","bcc663cb1d4f9ea33526a8147cc3495bd9f4cb6315e58f7a6456354601bc120e","c81b6eadbf3c6e661ae22b483efeb12741afc40083eeb37f444839847a5b6b3b","b858c48c4936ef34996fe2da3fff59098012fa11b39e3ac7ab03c34baf6039d8","9cd67f9d93e55845901cf051927d53b4c723fa080fa43402861c572b66adde21","7dd44822321a0e332473edb48a3c9bfbf0efe46bc1433aed6c48b1c4417971da","e4ee05bf8e8a57b39be55dee729f6f40966f54fd2bad8d5c1303a7b06a7457f9","199213b3dfcc9f9ed0b65a2483d88527aad98722e4988933c391030956ad92e5","4892882b8675c7711df6e964cf97bb89328f63c3425d879422d7d0a08a1c2e97","706026949123d970f55f4cbd5fd68edee12487f45c18ab789059c4772d17c15a","1a3942b909f0f0a4571f5f4ea170d9c508f5ece0bb936066c026f73aabb736b2","c988d9e0330848c403c29461ddd6816de665c0a8be144f615f2f12ed58e0a651","52ac8d8f5bc2f3ae231cd390c57f1ed5ffebd1e6ff139b5e16a6aa4ef5c02a3f","7dbfe463552da6674be1978badca32ff4041a53965083ae17c4827080d49c581","8c943693e72a065eaf8a17055a2802ac0c56c14d8ceac09ee244945c7704f841","52e63c36d7b6271b9762b270c891482e5cc0e05e2a64e90168f813e6e6a3f530","b57c8b56affb33d4377121d09823600c4f53f459b746d972e4b53fe709a36c9f","b247647388ab7a01ca3505e03e4e37246c8c8df6650f8f614af415d923698853","57948437dcc7024f23c80945cd6dfd8b472614b160d73b2d42ee45cb01c6738e","263cc0240bbd146f050decc24521b41cc19f54f92d929cf744407e8cf5e8f670","d0f1277bd67a9710e6311583c015919ece92b52e930883a7f440e4a1a44b9096","4a546d85e40a5b930285c6c82abe21216e92ff4018937b0ec6ea577ae3866257","093ee5a1bc240b61d81344a52f0812309430dbcfe653adc3e6afa23853933b5e","9d50241f3192b68df60742a83c14aceee6edbf5c780f3bce05c63e5a1cf1ff4e","30a40fbd60109dff7129d02d1a4cfdddd7a05adbdaa92b7ede10da2ac72fd75f","621d4aff84036c5e449779bfc92ef375c836be64a64001373eadefec9877c6e9","8d565e5055352eff0ea62a4e6a2e0b110504fb393586bfe692ed6ccebdf5b899","516c73b3b84f786908a8797cafd7c8359fc77460856f8c8751b6d9df95ec42d4","0e13aec2baae61878677c731d897ddc1e8062d814ee534b48e46f6695d68e2a1","6d3be7c76044fc75237ebf2d4a404b0f2b03289467c19b5477fddea549c0c4e8","474cbbb6597a20c71ef2fd7e274d72da5beb3b561781aff36f100dca75f2b212","b511d2745690dbe82e3e9ca24f62c0458e5020d33e63ccb0d0ea28f35c4c0042","fe1ac3e6b3743c79d8c6305ab4106e3b66c2a5feb45828cee2f08d22994ede19","e9a05d6d66093b3e1051593d62d584738b0901d13b6986ca229397eacbdb49ba","e55fd3a9dc6c225ade061e02126943dc8fa95f65af6dfc78e928904f03355e63","ec8af9411e43bd615e903c457d1595e24785131fcb8a5f69971e3fe823e78cf0","18cf2a265779fa6d48d8031cb18cda7c9e1d7aad98449fd87f66a2cad7e88b6a","4ba5968e7908e4da249a7a5b6245ea892d7d40bab133f144b7b0efb226970b49","5f2df693de399f528408ca480d06f5cd158d3a284e72f90b701e1b6b70c1bc19","1696fe56410765cb7d9e68373128ad7c3b32e0a366b4a3aa3dcbceb78f7e36d9","2c3d7b01f1990f27dec93fcdba7931dbb21943af821fa2420aa9288df3093ee7","c1760d975e2350b89a1b1ee1c4d59291c91741bb4ed5f06a80a0047c398c5238","f5f3b00c4f0b51f43647cc6505735e432beab8e4d25b637ccb64f319d30851a0","44c7b437c00d91a218a3bf60f7d112da50b2d60fc4be7bc6289014e9e6fa8844","8c5f3654a9c356841066dedc3e577ff0ffbfed100eea84821c5758ee6559f850","19c758e3e4401284b5e8d6999f3ca9226b7888e01e9fa4ef95c5436d8694f550","3f7384b1b15f9d1df4e312b08044f7868bff084302d9137321ab82ef63c80656","c9537545e1807ceb9d9b63aae49f8df1271ef6d6589cde70f8c8995f5e97a605","92865341aaa6b5ac9d0161996a6d368af581fb86dd69166d27cf55f481243526","e33ff55aba2cbaa6c805d9c3fac470ed1895bc2b46e1f3edc7530c32ccb29444","405dab283d980adcd2b7b64fec21d1c9541cfcd6240acd53a3f10938640e48ad","0e3c41e1a7391eef5a86c82b95c232e85e1ad9dfb8d62aad29130c2ca358c4ef","e434f342d1df60752703ee6295a489cb584131cfeca0b045dbfe740371e9e200","b33d33bea47760130b2c9cdc50754b163fa7aa53f4b3825470908dfdbd35902b","3d2ef7935486e2236cc79dc5bdaf8d437da627e6b97e6ccce24ade36120a1411","cc14b6c03dee858b717584f95869e3a793717673a3e730d539a4504495cb8ae5","98ac1f5ccb4d596a14604531810fe7c8a7b2cc6cc642f4090a10f68ec6a0c29c","b0ce191d87ae12a1bb4f2bda5614dd140ce44bb290edd4805cb18f34b29f7d6d","3e855891db3e781fe4ee1455cc0c27d4b6184c4096023fd5015a2397dd26e665","497c115ba774f65a2c26749e4e2bf023667bf99ae8d38af5695eace68e56607e","85797ffcc74b44d3b7a1ee209632a4df69391c9b876ef9c16c4cf7a866012554","bfc77e82251d68a9d6979ed011246f1689fce453df7afa6b94d9cf8770848211","441ca1bbc84439be9c10bb4097250f693dee05df20f432c63fff075adade4719","8079e6c7bcaf974b7d3d1b942ae551232ba816fa10dcf6305e98af0decb9018c","5a3073d040276eefb872843335301994cf05e1c470a608d2c79aa72f2d763c09","55fb79602081b4095dc25709d6a39aa342a515d9905f70f20420817f1c91adeb","dc9d2af79f17617ea624978a8141c33723cf5a8dc02b749d3850cbebfb881841","5a5dc88377d6fb305f07416063332b9971d5d5d7e036a936740a40b66cddd22d","cbd055c57b312cb5237989ced3acdf910228313cfc970b4066492546d31b085a","ce6f8cf64848604978fee72dd1aecb9a8c2ed731ab76f6a2f57d55f94c7f6e94","730d5736159ea366cd7e7c7a0b4538060f7b737ec70c5f6339ecec5a5dad00e3","ec8beb784088743a53e4f3a1890d70fad714eff2c44e35e0c82aafeed31c0dcb","b5b7b8c6cfd6dee7c3358fbda3888edb28621f201313a3b4931df8bd7664a8cb","3a3e02d3e74cedafa65071b23cf7db095c69ce001e32d7003a0a574a5231eaae","e11cfe5500e4f1019fa9f4ff5120881ee61b31830d607be629ed7d84356a5be3","99d6a9d2ceb2a7b06097b685a9b737fd96fde1443f3e37c48e4f4b408ddc2d28","7e171bf2b8338f87882de47fd05d046deee20d5c22304664000244a8b76de0cb","9210f40ae76f466e88beedff79ac468b461fc7b30f665cad416f4784240914f3","990d4b522698fb398832798035c27e6f7a16cf10a3b720b23cc1421f571c172c","89b4b056737f7beb7ed50e2a2266b1f91d49a753af0bfe3dfa2517a1ed414d0d","2ed142f1b91515ca6eb20b5ec12fecec6069f4f7701bbec43fd6f2bc9ad3c6df","37d27b2bdb3f3e364debc2c365b4ef7005acdef683cbf9fbfc47ca824cd9602d","a318a4c44a0f2e1459be2bbb76fbe7ea87155b6cdfb9f3b56663f2ee4243ae8a","6ffb22ec8f6060b37e079f18a59ba4cc481f9c597768547c99da99733de18744","4c059445e0256782added292b695dfb5eec4be46680071cbb322436f88d81522","97fc75017d95d815f38b2580c554e8481fa9761180316b4f1661a0291c0d4915","ebbe08dbcd49d37df7ef9b8606c9e1c85ecaf9706fe3afa59289358b0f893bad","5744e7e4701b0e658f429c7f6b06a25fae9de84c7ad1ae641120e38b6ceb5342","1f5807499a4a532176a2332fe1410a0e45257952fa3148b4c419456f35061845","9b75d624f80ccbaa8791dd9e81da15e3a32191be7194e20d92917a888a8edd22",{"version":"38d41e008a795cd17529fddc2623e063d32cf7ec976a441fda720f2d20c2f88a","impliedFormat":99},{"version":"91407743d47699adac8c5d7b98886e2557c7ba96c28a0271b186b02acb44c175","impliedFormat":99},"37358bcb810f25147fbf8f02f5fadb9b3b18ba361324ee2816e259272a1728ca","0f383ebccf9a02a1bfc0c2814aad3799c878789df11802a851f0fc555fdcac21","5b88141e15cfbfdb8db9acbde1b58e0a65ce6eb7d4a1c2965afc95fae5b20adf",{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"8658354b90861a76abc7b3c04ece2124295c7da0cc4c4d31c2c78d8607188d03","impliedFormat":1},"91d4f0916864d87f8b8fd10283a3b0078f5b70089862a02f04fef781d9278f51",{"version":"024829c0b317972acf4f871bf701525f81896ad74015f1a52d46ae6036205cb9","impliedFormat":99},{"version":"a9373d52584b48809ffd61d74f5b3dfd127da846e3c4ee3c415560386df3994b","impliedFormat":99},{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"0943a6e4e026d0de8a4969ee975a7283e0627bf41aa4635d8502f6f24365ac9b","impliedFormat":99},{"version":"1461efc4aefd3e999244f238f59c9b9753a7e3dfede923ebe2b4a11d6e13a0d0","impliedFormat":99},{"version":"7ec047b73f621c526468517fea779fec2007dd05baa880989def59126c98ef79","impliedFormat":99},{"version":"8dd450de6d756cee0761f277c6dc58b0b5a66b8c274b980949318b8cad26d712","impliedFormat":99},{"version":"904d6ad970b6bd825449480488a73d9b98432357ab38cf8d31ffd651ae376ff5","impliedFormat":99},{"version":"dfcf16e716338e9fe8cf790ac7756f61c85b83b699861df970661e97bf482692","impliedFormat":99},{"version":"31c30cc54e8c3da37c8e2e40e5658471f65915df22d348990d1601901e8c9ff3","impliedFormat":99},{"version":"36d8011f1437aecf0e6e88677d933e4fb3403557f086f4ac00c5a4cb6d028ac2","impliedFormat":99},{"version":"8085954ba165e611c6230596078063627f3656fed3fb68ad1e36a414c4d7599a","impliedFormat":99},{"version":"2c57db2bf2dbd9e8ef4853be7257d62a1cb72845f7b976bb4ee827d362675f96","impliedFormat":99},{"version":"6b5f886fe41e2e767168e491fe6048398ed6439d44e006d9f51cc31265f08978","impliedFormat":99},{"version":"56a87e37f91f5625eb7d5f8394904f3f1e2a90fb08f347161dc94f1ae586bdd0","impliedFormat":99},{"version":"6b863463764ae572b9ada405bf77aac37b5e5089a3ab420d0862e4471051393b","impliedFormat":99},{"version":"68b6a7501a56babd7bcd840e0d638ee7ec582f1e70b3c36ebf32e5e5836913c8","impliedFormat":99},{"version":"89783bd45ab35df55203b522f8271500189c3526976af533a599a86caaf31362","impliedFormat":99},{"version":"6da2e0928bdab05861abc4e4abebea0c7cf0b67e25374ba35a94df2269563dd8","impliedFormat":99},{"version":"e7b00bec016013bcde74268d837a8b57173951add2b23c8fd12ffe57f204d88f","impliedFormat":99},{"version":"26e6c521a290630ea31f0205a46a87cab35faac96e2b30606f37bae7bcda4f9d","impliedFormat":99},{"version":"71acd198e19fa38447a3cbc5c33f2f5a719d933fccf314aaff0e8b0593271324","impliedFormat":99},{"version":"044047026c70439867589d8596ffe417b56158a1f054034f590166dd793b676b","impliedFormat":99},{"version":"89ad9a4e8044299f356f38879a1c2176bc60c997519b442c92cc5a70b731a360","impliedFormat":99},{"version":"fd4f58cd6b5fc8ce8af0d04bfef5142f15c4bafaac9a9899c6daa056f10bb517","impliedFormat":99},{"version":"2a00cea77767cb26393ee6f972fd32941249a0d65b246bfcb20a780a2b919a21","impliedFormat":99},{"version":"440cb5b34e06fabe3dcb13a3f77b98d771bf696857c8e97ce170b4f345f8a26b","impliedFormat":99},{"version":"5bc7f0946c94e23765bd1b8f62dc3ab65d7716285ca7cf45609f57777ddb436f","impliedFormat":99},{"version":"7d5a5e603a68faea3d978630a84cacad7668f11e14164c4dd10224fa1e210f56","impliedFormat":99},{"version":"2535fc1a5fe64892783ff8f61321b181c24f824e688a4a05ae738da33466605b","impliedFormat":99},{"version":"cbfd5ef0c8fdb4983202252b5f5758a579f4500edc3b9ad413da60cffb5c3564","impliedFormat":99},{"version":"9f7a3c434912fd3feb87af4aabdf0d1b614152ecb5e7b2aa1fff3429879cdd51","impliedFormat":99},{"version":"99d1a601593495371e798da1850b52877bf63d0678f15722d5f048e404f002e4","impliedFormat":99},{"version":"1179ef8174e0e4a09d35576199df04803b1db17c0fb35b9326442884bc0b0cce","impliedFormat":99},{"version":"9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159","impliedFormat":99},{"version":"cc3738ba01d9af5ba1206a313896837ff8779791afcd9869e582783550f17f38","impliedFormat":99},{"version":"a80ec72f5e178862476deaeed532c305bdfcd3627014ae7ac2901356d794fc93","impliedFormat":99},{"version":"4a5aa16151dbec524bb043a5cbce2c3fec75957d175475c115a953aca53999a9","impliedFormat":99},{"version":"7a14bf21ae8a29d64c42173c08f026928daf418bed1b97b37ac4bb2aa197b89b","impliedFormat":99},{"version":"c5013d60cbff572255ccc87c314c39e198c8cc6c5aa7855db7a21b79e06a510f","impliedFormat":99},{"version":"69ec8d900cfec3d40e50490fedbbea5c1b49d32c38adbc236e73a3b8978c0b11","impliedFormat":99},{"version":"7fd629484ba6772b686885b443914655089246f75a13dd685845d0abae337671","impliedFormat":99},{"version":"13dcccb62e8537329ac0448f088ab16fe5b0bbed71e56906d28d202072759804","impliedFormat":99},{"version":"233267a4a036c64aee95f66a0d31e3e0ef048cccc57dd66f9cf87582b38691e4","impliedFormat":99},{"version":"ccb9fbe369885d02cf6c2b2948fb5060451565d37b04356bbe753807f98e0682","impliedFormat":99},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},"8aaffb829c5190f388200656bc18a64d5d5153d710da447d1391ce358db9cfd6","1560ca796d36ac52d463910cfc1ecff4a48275917c8c0869f9d2c55b77d32656","e37ff30832dfeee34608f0621fa971ecc7a9e3f7f41ff170f8faa7d91a5e3f8b","0a4d13e80bbecefc7ba77bdbdafa47b23a790147421b9f59a760438478e8414a","f42892db3e269860c8fe702b02d266bc3607f1808bf4e15711ad100a1873945d","4ab3a5ebf49650921476962a68bb3978a157bfefc0de1448fb15491603d832f5","b88545c68a7134306375ca37b2b7566ab1fde6f83b5ba6fc1d7c66a60ff77399","5ee244ab9fcb7524672013b8bb4affb9235450c38bc1bcdb3d0bc0aeb6d7b369","845423b448620c28bc8ed114ea672e1e1f62bbdf14e1013cf4c6b87a0af1e37f","fa71c18bcc895a8b77d21b002fb7b8cc8c316aa522d51e73cbe5aa7536a965c6","17f576dc5b8b52a6fa46f782be100c68e7a8c93089b2ba9d52464279c635dd44","46f6a3f92d42aa3d298123f56d2c77baeba4e965e6fffbd5cca24e74ff9fbbac","f2fe28e5ef25028bc6088bb7e08019c1d3d35d029811a60e6a25273c83dcc60e","1946d2935c9fdde5b153566653dccab78a48f52366eaafcb86c12e0fbd9d79ad","1d91f31d182f596380bf95effab0991895c17502a99badc75726e5e58b372b9d","36da78021a11edb36e196a8924fd24a98bf23bc012f7aaf0516c9cae674b42f9","843c62f9a3c8de2a86cd19d4f1e02fd93fecbe844859978bd0d7b6d9d559d63f","a5f693aaa7401655656f3dd25a32dc3c10522d7942411d521efe6389548db575","7021d322b24c9758afd3f8af59dbcb1415990a9bb47a52c3119d5cb5ecb011cb","7647c7ea4e5a74a11ff270fb5f5d26e62f73a0975a52eaca450989cdac3c0abb","cdfe964db8cfc511c4e76b5dbd9511932053ea2787f988327b70e2466ba387fc","65aca561080322e6f00e329705aabb13fb76803025d6a6dab9db7fb5b3b6ed4b","e58e855325dcf4b8ecd0d43d9510ce84a7c3923f3b627cfeff513621d3cf9fe9","4528c3ab2275701016dff4519c3e77d1d01b93f5f294799506d3ce07f4d306ea","173efda82ec543896641ede8961a5794c2213b3401175a34f85865b7b0b8b2cf","2ff2b0dd869d0e298be0e93d486378309e4425b185dd890feacabe38d6505962","b066b37a751c3d85bb7707b40b12346f76b7ba59a8380a515073a5c6e57f3f4f","a1361ca6dd51c45d15d74febadad7c234e8cb704fa289f791d96c89c5ba02962","9a5d3970ab0093a5075f7cddc3b547f838f97d3c1b9c8a94f98d25d98f87a588","7104a243f9e5b13efc0e8b8de76ae846dd359d686ef81887dca0479f9126006b","d2c129bb910872f90f9615f8136b081379d9417b6cde9119d30674dbe4b9ee8f","acfbc6b3d859185e8b46191941fb27c2f5ef17b1c8bfd0dd743e08fa01ab15bd","397244452c51ceaa44345857ee214a35f7541900795b64e3b96c68f0935a799c","13d54173800f17ec95a29e350e807b6b4402e59d98295073d3ae7e554d1711f4","3cea514afd42acd90a0190b6cd87caf95f620c0016ab5524505f4b68defa896c","11eedcac01cbf33507aa6899ccebc5d1d0143a702dbb213602b43d5bf67cffcf","c35ddb8e04f1b1dc3cacb7b3b5bae05cd8cf2f25aebdf881b02f0d654f7cd33d","3c483319183f5519e4e2a5a703d58cfc27e02b1bd7de5d441fad7e1c58d24bfd","56e22c96e36a25fc7034c66e6ef6e5adc368231cfabfb89bce5f4a9140e3a671","6b42c2e007cd836c5f2fb5e5795b10008f4f24df8040a1d648d2a0c887d22227",{"version":"41a3c233eaf120c47c05501d5eadc56948203af00403838bf74a722ed028a313","impliedFormat":99},{"version":"3670561369ca68a09d52476b583259506a7fb405f8766a1be016d92a795425df","impliedFormat":99},{"version":"c18e72b043d29d83286b33917b380ea78dc695fd31e2834e17133a17539a94bb","impliedFormat":99},{"version":"24f97620d161b9c421246ba30172522e00cb21524f8ece75e275cdf30e22eab5","impliedFormat":99},{"version":"43a1c4c14c1d87ddfeec20e9b044c69db6da86fe868ca8833b8ab5c81b326c68","impliedFormat":99},{"version":"a5a72c4adbbbd805860d5c2b847e25b45b3a6dcbdf471cda1e206c7c4e9f6bd6","impliedFormat":99},{"version":"acca062f4ecb504ba5a1a479b3c2ffb2a6957925f83ac7efdb0b0aba11aefa1c","impliedFormat":99},{"version":"72daabbd93e93b80aa2de51f9e039cf7fcff47c51a9154425cc6a902c3522959","impliedFormat":99},{"version":"2099dbc466f37ac4364a71360471f844929db80aaf41629b260852f075b7e95f","impliedFormat":99},{"version":"38d63c3e7dff35365e72859b041a09b0ba3507e1fb10198c64b2fa31c1f4c6ae","impliedFormat":99},{"version":"24397529aec71e82a879b881f6179fbafb23fdce7aab0de18d4eae73d77d32e8","impliedFormat":99},{"version":"e0e20dda0bb709540cea318a9cec834ad4e8529f2f53234a23094343efc8b19e","impliedFormat":99},{"version":"758359ab39eb58fdc1340f5ddb5743b9bd5f7f5f37d58202b01a0de2fa6e38bf","impliedFormat":99},{"version":"e9cd6b1c0f5b49e2771e96ddcba10cab43d9df34c80bb6ed5a5fd31462cf23c9","impliedFormat":99},{"version":"bb573d0b9de06c261a63b6697dc6148421794a51566690b36af5e616962aa980","impliedFormat":99},{"version":"c9f2ebfd4bdc356a24c0a659efc9ab4832a246fff1cd713729e3997740efb57a","impliedFormat":99},{"version":"0630f136ee5704beb9e4c905abe59ee8cf3feddbf26d9fd0d7d9c226082aafef","impliedFormat":99},{"version":"585638c97811f86301c6396518f349e4f692c7b66e9946a794a828483c804ad6","impliedFormat":99},{"version":"1bf1fcf895db1e2a2221a75cbad91ba1cdf654c0e73018398453f127eb14682a","impliedFormat":99},{"version":"92274791f9af7731fd88b2ded67cd684099f2d268238fe2c099924c6952dc3b6","impliedFormat":99},{"version":"523101fd85530559aa9f0175a8c6ce1d3a80ef2234ebdd13d64d6b81361e929a","impliedFormat":99},{"version":"8685357eaac6a23e2c808cbfe4f73d2454f65c54acadea1579ab4b5755e6b6b3","impliedFormat":99},{"version":"1a0cc12da0de949c4dc73aecd3c3896285f0c1af51a663655e6b71a6130c3e82","impliedFormat":99},{"version":"04004ba4ff682db11df64bf5d5cb1c09616cae3c424e41d18b00bc14ac4f7b6a","impliedFormat":99},{"version":"d95236c56f7f89c2ca50b0573fbdc889609dc87efbf09fa57fcfc2daddfcbf3e","impliedFormat":99},{"version":"8090920245b6bb972deed05e9592ca886a017701fde5aa9e4559714863586823","impliedFormat":99},{"version":"cbbb0bd07f4c7491d2f9af50699a8ec2b22351636335e6275e037ddda7eba7b2","impliedFormat":99},{"version":"61f43d11b4e1548c0197bf72094864d16dedc43371f92c07c44de83473e6369e","impliedFormat":99},{"version":"4d54b2df904582f2b7fdc63a7ea3e0196b74f96cfc72a524770f7a8ba1172d05","impliedFormat":99},{"version":"1a46550a0d8f494566e69a915451468338f1a3331e3ac4afbb52bf0d52bcd647","impliedFormat":99},{"version":"f0d2acb0f37fc5fcf4829220a88bc0e3b5fc8f6d4fd18c30e960c4c31d0998f9","impliedFormat":99},{"version":"62468010f26e1398fa8d2c787a24b1920264497f70b1291697170d51e8c93d15","impliedFormat":99},{"version":"ee40b5746f4aea666abdc84469686077cbb0b1f9e128ca15c7c2f6318fd2faf2","impliedFormat":99},{"version":"11a4440d50d17aae2021ed56bd723619d2f3526966b66b8ee71f99f90aee001b","impliedFormat":99},{"version":"0e7444c2c5c62592662463f953ac5e51f7f7fa02730704e76494bd35659621a1","impliedFormat":99},{"version":"526703c640b52e2a6e362f03dc3c2edc21649a3ca73503d2848ff6f124c2456e","impliedFormat":99},{"version":"5ddd6faa3ef0097ba3c0d64ef86021785d54aca62d672d60f7dac465e15630bb","impliedFormat":99},{"version":"c1f0e5b2a899399fa1788ab79f55b8908841a7dc01baaa8fbc9468fa1a705dc6","impliedFormat":99},{"version":"1f32b1d6620d7831af97596fe6cebc1d4796d65b16592fb6ed542bf2aa580dbe","impliedFormat":99},{"version":"887f38bd46cd7bd27122853c6a3a3f19f93de4138d345bc01f25d97702afb856","impliedFormat":99},{"version":"e95243b24b3a9f410886c29e4a6f05b9174257e0da0151e742f73f65fffe6860","impliedFormat":99},{"version":"606bf8ab190fea5213f45fa8d187f232f5ede10db66c4d2640e466b1eb010723","impliedFormat":99},{"version":"ec66f21c2debd53c8dc23034359ef14fb315cbf911a1c2268af7fd2c61d05538","impliedFormat":99},{"version":"87a87fe8dc65ebaf5d1f296fca81a3a7b02d99d9955dbbd240a6150052c0aafe","impliedFormat":99},{"version":"88cea16c4f051deba1578741810dde95361a3f3d6198829eee1c7aa3b27f5602","impliedFormat":99},{"version":"2f1207758095b2af21b93256eb916a8e3ad916d259c0f8f2bb212b7f00700eb4","impliedFormat":99},{"version":"a5e9081741bf85356d256b96ed191a407e674733ba3c634ff36b2c5498789337","impliedFormat":99},{"version":"0da2fc8007d5d7cba3fe5c9db6a3517e1253409397686f218f7bc780706eb30b","impliedFormat":99},{"version":"b49949a16a4cbe1bca5a73e165f5d46431cb37040f4558df54d50df429c2c38f","impliedFormat":99},{"version":"19b0f0727865e775d21de405d2700c3196f6621bfa619c8c73ef1e1ad964ff55","impliedFormat":99},{"version":"40525b8ec87e8e63e18975722a0f02313942962162fad09caa212f6858effba9","impliedFormat":99},{"version":"cd0e5287f17e1eb6527b1e8b9a706a27e3cbe77f9926430c083fe908a89e2cdd","impliedFormat":99},{"version":"9aacfa9c2cca9598ea4ab8168f77629258e3349292ef281beb8be4948d18228a","impliedFormat":99},{"version":"a3db855047aca46f97fc3b4208b5032ffca77a88985a5e377e85807ecf90bb33","impliedFormat":99},{"version":"e6dbac9ac42976ad196b59756bb60b6588e582307d8c75a4e7971e42e455572b","impliedFormat":99},{"version":"644df01317e55aa6b46b8f3c3c5f9f90eb4947c23dd059bba22d78625005bbfd","impliedFormat":99},{"version":"76a7523ee41103396246de53afb3e103abb7532991de1f3f8fa8384a605ad611","impliedFormat":99},{"version":"1cbcef88c4eecb1de19882fe26349a5cfd44f7b3d5eeaa77f2d0926767cf4495","impliedFormat":99},{"version":"5241e12bc1969d2e0afc0ce91f2da1fc76017ea4e7564b0395f6b8ce35f60d97","impliedFormat":99},{"version":"279ed1bfa8cf4829fbd653c446d786ac5e2a0cef055fe017deabd3076a6fce49","impliedFormat":99},{"version":"bdc8be81152eedd261b069237d84bfdfdd9b5d998a89a3133c8590001df12b6f","impliedFormat":99},{"version":"d308a5d41f15e3a15443ac397c007bd251f4aa046fe4df96db55730b186225c6","impliedFormat":99},{"version":"471d7a10e4396aa877d9cd6292967c95dbfd07fbf62742df615ade1b09e8b435","impliedFormat":99},{"version":"a2a48a2515b88aee6190fa34e149e084ddeb4e9412217ae86fe2949701a835a5","impliedFormat":99},{"version":"8c4a3b1dce4fe45431ca488e303b4d44e4ad66c18eaba9bb3fa6512f4b642a53","impliedFormat":99},{"version":"cba1b57ba0b082720cec477229bcf0d1b701d6a5e3df9d7167e8010bdac15508","impliedFormat":99},{"version":"cfc0c66f91c2c6f41fdc59a658e6e01698c17c13b447911dccc9074167671ee6","impliedFormat":99},{"version":"947ce55683a307873d47ff95a503036b70beb5fed68e4c10dc219faf8ca8b530","impliedFormat":99},{"version":"f0c625c44dcd9eae0094c138637c7e4e333782574df09903050d8dcac006053d","impliedFormat":99},{"version":"d453aa5944b07ef8d739296d9547df75c19a665f0b17ea085640ef9f02caced3","impliedFormat":99},{"version":"e14025e566058d9fd7d9baae9c937a9ad5220ddb87ffb250583b95a85d4d527f","impliedFormat":99},{"version":"0143111a64deefba83c688e35d9b81b6c2688c0323831c411c4fdfba72220b6b","impliedFormat":99},{"version":"9b02af01eaed2a35b94ffd191a27659a70dbe4b9ffb369d8d791c3070eecd3d4","impliedFormat":99},{"version":"adfa5d8d9788fd85749e849cb15277b46a1306c117b4dd73eaa4e35586b67e62","impliedFormat":99},{"version":"c9386c27a10b6a607d8583dd0cc0cbb8dbb5e18e4e0eb3f85f9a45baa9671546","impliedFormat":99},{"version":"a3d092ee18c11b913571df6019a224bbd07ab14830accfa31558598852a7afe0","impliedFormat":99},{"version":"30bdf14c7ed60f3a3d9998fc862800b636afd861089aef669c49266576d5f78c","impliedFormat":99},{"version":"bb3caf11814f7265729f580f52f463d6ffb6b755d9bbe8d4aeb9848c5fef26fd","impliedFormat":99},{"version":"cb9f1584cfdb5f4b9fdf0b838cc2872f0cde4dd7ec6345fd99264ed0bf71831b","impliedFormat":99},{"version":"2454f5d5b0a053c9e65f62bc73905e86e5dc113d86aace26fbea1e74902bcc0a","impliedFormat":99},{"version":"9d5a231dc0db79e4c0381581956d35750956c067812867e3f9d379b9b43248d8","impliedFormat":99},{"version":"378885d39de12f15e3960dbe68916154a6c8dcbdff72df5d09b2b504a9a65565","impliedFormat":99},{"version":"8ff9ad3a9f35597251c664432033f5f9db25a71b887bb7c5f3111fd57755f32b","impliedFormat":99},{"version":"d91b2cf7b3baa8302d63038d8612b1aab48efcc0bf5f9b11d3bdba358b365308","impliedFormat":99},{"version":"59274bbf27983be9810f88969e30c1899cef2f07e2ad37a17aad504466cb6cd7","impliedFormat":99},{"version":"0ea47f42ee816b289fd31ae2dd431203439392f34949180847e910d1f236df5d","impliedFormat":99},{"version":"7f4b0d988fffac25e8b99d53344e6cae20da15912496a892dc113d98982be6f5","impliedFormat":99},{"version":"446401e1e324921d25439a67f39b2356fc78c4f0e0aef23666379d84e9cf89f0","impliedFormat":99},{"version":"3886d0501785ef1a7139fd5360758c4e06fb370768e7abdcb7701dd89ee2c0b5","impliedFormat":99},{"version":"da36e84c3469c725c3f95c88922e3a9a38d75bbc9b5235711b3882609b7bb690","impliedFormat":99},{"version":"fb2331578931cd9b4a074dad8f761f5d7bf4ffe4be1cf42168de580871f81676","impliedFormat":99},{"version":"13445ea5f883f11166f5c1bb7d10f9fb602ca04c8ba37f1fce541b99dbafa440","impliedFormat":99},{"version":"4e69f563abc4910a81f9bd9ba16eab762ad94f1805aaaaa356780fb44d2013e5","impliedFormat":99},{"version":"729f5bda320a664a3b427633d4608fb2de329a54c0c9126cf37bdef529770c98","impliedFormat":99},{"version":"4eed6be4e1f8c3b30b53760af31120d3cefd981a23c94af3c2f33b13ebb6d88d","impliedFormat":99},{"version":"3f2b7367ee831669c773edce5547bcad1159e045f4983c0cbb1acac86d5b5cae","impliedFormat":99},{"version":"ecf6628b6de4ab2097eeb61d810a8e8f83b2f32cbb25aeea3f3e02aa87b4db50","impliedFormat":99},{"version":"b5c1a561b4510dd597fef4380a16e642d6ef3cce51610f0a10fa551ef21633f4","impliedFormat":99},{"version":"bef6e54976d3bc274ef623cc52c323228df7e71a18d7efb8b8326bfe841a8662","impliedFormat":99},{"version":"a112b882bace2440d365474987e0d62657ec0b05821cfa11c5bb69bc51b62634","impliedFormat":99},{"version":"36d2861063b4466b217118725f63fda2001067bfed6407057567d41560c8850f","impliedFormat":99},{"version":"bbc65478104dc679951ff2988d1fdecbd066a9c6ab469eb5b994ea271b7fb724","impliedFormat":99},{"version":"9438e581b06ebf30041297db2ecb993e732b897e29f653eea7719e7904758e93","impliedFormat":99},{"version":"4c413d48eff8f50b8b3f361f231f07707241174eda70dcdff163626dd412e363","impliedFormat":99},{"version":"445653b1ccbbf22009cad4953757fb810f65d313e60526be256665dbffc76a93","impliedFormat":99},{"version":"9cfb34e97729d62aa06bd1f237ec107ea08f7d99874fec5842b4c40ac3767f29","impliedFormat":99},{"version":"358f53870afb50137b0febe4dce1c5e1875553cbd1dfbd59c911d8757d751459","impliedFormat":99},{"version":"5fafb533b24b3cc866b94153881b79815b0cff20969b1b132d266669b6faeff9","impliedFormat":99},{"version":"36cc6e9ec80b9f87389af9dcbffe3554766ebc0eef19eb832c35d3b2b57fa4b7","impliedFormat":99},{"version":"57dcc891c7ce218c3367b8919f93111274361caa23ddf631f6728eb4b69c73b9","impliedFormat":99},{"version":"250c818258ee810d6686d71c3e742803a3cb366064174ab47804921152807c2d","impliedFormat":99},{"version":"0176e8839a101f835597b1ba38e64b2ce7efe98ed63ba893d37968757171c04d","impliedFormat":99},{"version":"aff778492d364e97e647357629660027281eee4ff87761e73cf6d536bc703456","impliedFormat":99},{"version":"90dd653f3958e52ec5e566299e000bc9d4469b0faa40e32931f90d20eb5483df","impliedFormat":99},{"version":"c4272a849d65ce90763bedc02ad31ba374aab2b542d69fe7c79da2c689241678","impliedFormat":99},{"version":"24f01c4507f2c5527b8fe1cbaf25d3439304c503b1825fe0340e06ba319ea1e7","impliedFormat":99},{"version":"072f8a0ccdcb05fc0ef047ab63e057e723caa7b60d193cf0922ef86e42205a52","impliedFormat":99},{"version":"077dceca4e374e246b03df8e185408f22d317ce1b33db22c0cec9a59b5753e7d","impliedFormat":99},{"version":"99d37f9ff252cacfddd4744f3d1f736fbe733b762c6de6dd1d48059ba46beb4f","impliedFormat":99},{"version":"ad61b1b1341264580b5eee0e6e8f107cc1ee47675bf4476f4a05d28b8440b8d6","impliedFormat":99},{"version":"d783a003c0c534585704f16f435ad66185d32fd90fefdd60db3a60da6659336f","impliedFormat":99},{"version":"1f8b4a56d208e8d44879dc87bfc23e37a8d6282f3873b785c87559a2fdcfb5ff","impliedFormat":99},{"version":"5c5602a73d94e9f230a13aa4e20758ed7126f107187c70e4375aef40f6731b56","impliedFormat":99},{"version":"fe3dd75e8dea26d91ab4b5996d38f63994297e955d5060035c35cdea5c4637ac","impliedFormat":99},{"version":"4a5f2bff495d0276b6635d90ac177c0364a67b4fe0399cca1dbf4b4da7d770a3","impliedFormat":99},{"version":"b3bfeaa99d47de0a2acde802241b587d4ce8e3fda00c2d82d11ae63bfa1bd292","impliedFormat":99},"e9972acc5a82ebb284dd5a15038cc376db721cb0d72b6fbaae8aaa2bbbdc3e9e","2759d0c6f243f6d775f0673a8a1a8d4feafa9bee4c334027ab05ccffab084a0d","cc8444f0f6d6edde3771c5c73698b30e8e649672c3cb84705430c0311fdebb58","fe0a69aa11bd47f37d4125551f05b54db13cdb2ed4baee5d4964d03787e83263","b04b36446e10335dc60fd2b038668520bc0e536936bf067cb0b5d6e4941e9184","d39e8d50e7fd5bd0a099a5379674d3fa582032a2f3f8a148b6b4aeb5cd20c3fd",{"version":"2308c79679c2dc5d7aa508a6235aa684b8046003ec789d45b3dced4b2a73cb9f","affectsGlobalScope":true},"504e61c40b503d09ba8eac8136ef3467f22723c4d43146afbb115f0b19efbd82","1f3ec5188e1d8b1d3f44cd902518d03369e072e4d3c2c1390e462cba3b96ddd2",{"version":"091ad46298e439dd7891d101970467abdbdc86a4548c09ffd49429fd37106083","impliedFormat":99},{"version":"1cad07d6261ed2857f8c6c5d12405fb4c85bca655068b6ebbddf2d224d50bc02","impliedFormat":99},{"version":"f139cc201007c3127c4a4d9211f1f63f7a26aedfa7120e52da1955002f621e50","impliedFormat":99},{"version":"5910958d1e102c74bd1b5466fc9791ebc7d81b712cb268de2109218b071268dd","impliedFormat":99},{"version":"1c520311926707b2ebb80be72da4b08f5b103136727e633845778cbc596b8cfa","impliedFormat":99},{"version":"8e8c0567bc007bb72e715dfd346c2e9babcb241867a05c6e6a9b89551d32c240","impliedFormat":99},{"version":"7e96e2dadec9f298a9d18ab2246f070c1c90c48f860643c06ae747563852c5f0","impliedFormat":99},{"version":"706b479fe85dbbf23f634dbd40134033cf783fe8dcf56ac36e4aa4dee8dc7e6d","impliedFormat":99},{"version":"a8669fcf0896abc9ba9eac9b6bd99df5185b94304f1b4386dfe3f74757d27e56","impliedFormat":99},{"version":"8e421b7da6e8fbda876c162b16cad2f32a36ab36497525fb8d1b6eb142342d94","impliedFormat":99},{"version":"3f4bb2ba11bccb5e01dd89d68ae9a493efd248e9f46a42d3e4976e66381393f8","impliedFormat":99},{"version":"2320b7df4bf47158a996a7184c408e0d1ae7504b132b614f28c287ae9a999f4f","impliedFormat":99},{"version":"434f7c26ef7ac14e1d5aee137083420be8ad2ca86f2d4729d51d7f434fd4a9fe","impliedFormat":99},{"version":"f948dc6764ed9f488a017645ecbef0ea5d3d6c712a49dda6b9d7e516cf0434d8","impliedFormat":99},{"version":"0545dbbe15de151654ef09b6c5df7528fdb0fd7fb2c9683290f3ac87395b5007","impliedFormat":99},{"version":"2c9729040aec124d66155608ad7b2ad0a113e73b5d9dac24b7b62d2a4c265b66","impliedFormat":99},{"version":"2ca1c87742497a198adbc66aa9c7fbbb6e6ae02c82b3ef3b31cfef28c798096d","impliedFormat":99},{"version":"4565c9d4c27676fbbe53f72f9e5e2238f0a9d105b709631a0c014b4693d6f86f","impliedFormat":99},{"version":"962a90dae2248ccc57db8939fe9db47f3eb774d7a8191234c4add1b2d734c84b","impliedFormat":99},{"version":"9a0859252ba4af8b8b7d9e64ca9f6ef2219e4e7406a0baafa4a6b9f9af08b62a","impliedFormat":99},{"version":"df296373e612082dfe1b8e57b00c95640c9560f15d4f68e8f8d8b33eeed12376","impliedFormat":99},{"version":"1ffc6ab96228da6658d247e8c32070de2d7c54c4e1d1360aacad9c5ae2e24bad","impliedFormat":99},{"version":"d2e093f5917a76e6fd9715239ee8fed1c013fa931b8c2f62a423077a6536ae2d","impliedFormat":99},{"version":"c5cb0ebdd4f027070acb2629fe7908ec31bae348d77ed167c2fc6b547c1deb25","impliedFormat":99},{"version":"68b626d883443c1854464b69f9a9359ba7748f0faf3cc54ca00d45661813956b","impliedFormat":99},{"version":"f4d006f77065c0ffbca5a083aecc50f2d5d6f4ca2c99a644a7fcb8208f6efc61","impliedFormat":99},{"version":"87b411b3ccfd63deaf295e4089fe34ed84c6be77697d1717a3965627725941b5","impliedFormat":99},{"version":"7867bd68a003910f59f7062199d0b3a334e2d4aa3998ddef379c9e6a8bb850ba","impliedFormat":99},{"version":"13e281bc4291bde73c29e061546c575e1676556886f5ea5c32ae99f6e7f973f1","impliedFormat":99},{"version":"2033da3ad1d997038196df66251ae3ad6035ba9914422dca264bb0ae40329369","impliedFormat":99},{"version":"39766e0bc951ac82d1ebb0872e5a4610af3b8aca62d00f0f8609f3cb92367f5e","impliedFormat":99},{"version":"48237210b09840ce2a73fea713b06e2648528cd87a8caa059911f5232007cf70","impliedFormat":99},{"version":"b5b3826d174268c027eaac88be948b0547d6a53fa92e83b2ef19648a7858b398","impliedFormat":99},{"version":"e07df745efdcc7d8629b5293b56b608cd9aba848613ba83d35f16a3385f8d67a","impliedFormat":99},{"version":"1f1eb5866aa022b3210578931107370c6faedf285581eb160d2633121b31ee79","impliedFormat":99},{"version":"4f9e92aca534aa0b080e094f7f0dc7f64acf1db97feb10e4a2538f41fd216ff9","impliedFormat":99},{"version":"2278dc73e0e9f1773362449b2ca6dd260384b21ac3a0843d9f3948fcbbbf8117","impliedFormat":99},{"version":"10d385b968d2df11e85e4c2e42a1e8e12da259ec47df8d8c8274e391c48878d5","impliedFormat":99},{"version":"af83003a04d49181a3c86232d2da43c9f8d40db6665b004b3204b85988834bb4","impliedFormat":99},{"version":"95ce8876b346deb5357de135bfd570b03a291d9f9ac9f0e920de4cafa72e6157","impliedFormat":99},{"version":"9415cbdc11666a7d262db9fbb1624ae158d2af0a3362253b9de611d816ee9b69","impliedFormat":99},{"version":"da7dc41675a537b5e2916f8141dfc4aff0f5c6a1ec07b4bfbca0605b8032f9d2","impliedFormat":99},{"version":"aa8facec6ebb0d73624f7288a135ff46511bbbe2eaf3e445999395f4270b2bd9","impliedFormat":99},{"version":"762639c6c5d6f85c2f712f36fb3126f27955305a854e74e8cdf10ad8852dbbb9","impliedFormat":99},{"version":"e5c3799a6f9262db9d6de8fa2724b22b961d2551991a8b3884996c8784787ef8","impliedFormat":99},{"version":"b232233a5149739f368d2b11d866394081d77a3ba0e4980c5b6508869881bc25","impliedFormat":99},{"version":"2a6c37c418da0411abf8ae917c2c88c710a18eb4acbb1723c0166a42b7a8c755","impliedFormat":99},{"version":"94fc60a69f128331572eeeedad12e94a3b0925845d84a3b7aa114f0d08876f7c","impliedFormat":99},{"version":"2e13f3d2ced30c876eb123c8ac691377a5112af5f8d698344f5a674c59ae555e","impliedFormat":99},{"version":"f06647f31ae08947e859d36b8bf93f8550182f4d84f296599db6b9cc5b5b3999","impliedFormat":99},{"version":"d508374ca6d0460ffe82cf3fc090a00882b14e7b9c20f4bc582ec61b0f67d826","impliedFormat":99},{"version":"3e6ec3e511b7d1c59c4bf8e62b1c0f680e449890df446447d86da07775730841","impliedFormat":99},{"version":"9fde1d41b64cd840baa634dc7102388767cc8a7d041abfc9eb6f8633a2f41708","impliedFormat":99},{"version":"ea3871e16a65d6538518950cfb382b1e24d433ab5332d65d8fa5693dff639061","impliedFormat":99},{"version":"38e7bf65590101bbebb9e9c5313284aeb1927e8984d7f6564e810f7cf06face6","impliedFormat":99},{"version":"0e536d1318c6031a96b721d3dfe4eb4ca996c84adf3e03971ed58f66349d7644","impliedFormat":99},{"version":"7a2f2d3b4914613c6a81a5b57e5c7d0cebb910ef4b73f1b0b57a40c57b5cf67c","impliedFormat":99},{"version":"93b0a9fcc282c60e927a42fc26ae600833d5a7246c6db0d6e3fd8683f10ed9f1","impliedFormat":99},{"version":"e53112a39dc0c489de0dc29e432566bd0b2a6bfbee784ae830ddcd9170ad4a2a","impliedFormat":99},{"version":"d0825237ac8417634a4556d0ef999d70b5cd89be66e5c9e0ea12ff8ae09f989f","impliedFormat":99},{"version":"6a530cb04d50a24b73fdfd4d6a42c6d2cb32c84e0f7da5f8384e1308be3f8f54","impliedFormat":99},{"version":"916752a7101dcf5e22d9f4acc00d0480e61668a328d0f521459f007473d15c33","impliedFormat":99},{"version":"b79539b48be723ed1436042f869c2ce47ffce7e998a664b51975485bbdbfdc98","impliedFormat":99},{"version":"49437dcad5a7340bc879396fe98df8589328e237679e72c4e2d2b77bf6bbc92e","impliedFormat":99},{"version":"f84ac7315986300ca9361cfa36cf877b381058f9471e92cfb9fe3a6253648127","impliedFormat":99},{"version":"86ade6e18a792a2d438fbfd61ac1c3fdb7bc85c8786278962df2ada6a0aa0fa7","impliedFormat":99},{"version":"aa95361b0aeb0180ac5013d34b301228f1499fc688e548e8eccb2832075321f4","impliedFormat":99},{"version":"d6abf42fc3eeee2951c4f92b1732c152962429446ec3143a4c227fadc38b231b","impliedFormat":99},{"version":"6579f20b13b6f9798898884432e3d99599948ce44fa4288ef71fafadbdc19299","impliedFormat":99},{"version":"7b335e802e23893004e909be8fc08c43522a60ac32df27e779f0d113fd078658","impliedFormat":99},{"version":"0a67638173eda7bdbc37e44decfb028720f1a708a6903d4f8cdc8ccf30b73cc8","impliedFormat":99},{"version":"e95e3a23cd01515156d49eff14bd0c6bda4b1f2e3a1be166b012ab63ec15bea6","impliedFormat":99},{"version":"98b3a28846cb1579b226efc48dd2179680493f507606b342cdf7ccd1a2af86b4","impliedFormat":99},{"version":"7d099569b09971942f88e17087a8aa0fb1cca17e307c46cf14170b920d8cb8ac","impliedFormat":99},{"version":"6bf6854002b7e7206f592730ea9cdd5a63c74573d1b542654c4c8e7e16af68d3","impliedFormat":99},{"version":"617da88a3194a7ab4d822db3003e9f89a7bde3e9550a81c5794dcf3a3c402e28","impliedFormat":99},{"version":"46e873703b2551becf54ffc657b5c6c7140e3e65750e02cdd892b5f78aec4bcf","impliedFormat":99},{"version":"3309262b4d4c01b673630552897c1fed45b7a0bec3ec1ff08ddc36516909b898","impliedFormat":99},{"version":"d73fd836e74e8ae983e3767d7eb4af6b91f2b0049482cfb2cce649e58879928f","impliedFormat":99},{"version":"428d450c10a6ad0114d7921d0dd061dac61882d0b519f5b9c0ff006b65861af4","impliedFormat":99},{"version":"16d47c4ded96a64c0b53e337c117e7f20ca6a09d4ba2879d871f66b4d7e52359","impliedFormat":99},{"version":"bd5cdf9c6dc62511af6f5975b2955aafe896ad1a5d7f561e5252c69a62565062","impliedFormat":99},{"version":"804cbf186a6123573cad71ceecbf03416757fd48c62388fc91b04fa95062fc58","impliedFormat":99},{"version":"04246eba017303cfa659ce442974c31b3c8d4011570542e851aa0ecf9fe9e0d5","impliedFormat":99},{"version":"2d96c0a743feddc1fe1ca3186cccd6f74ea882e25f0fb8ac74b25a4c7eea7109","impliedFormat":99},{"version":"89fe29912450e748a77b0320376668a05eff9eca647283d5e4a35b4a16c32eef","impliedFormat":99},{"version":"aab8d179e6fa0c87885a6002277ec3a069cdf614370eef5ba62ec1a6b43b7ba3","impliedFormat":99},{"version":"8df8850fee4df75425323438d2c8bbdbe05710f4cbd7bbd556a7e3e8d75d043a","impliedFormat":99},{"version":"2c9e1d24604cc0f841be1fbbc2d86f6c3da8f278f7451e225b01cdc998188038","impliedFormat":99},{"version":"1d0ab8575bfc2e3ce7e39b01aa2d6e4020407dab1f81c02ccb0d1668539ff540","impliedFormat":99},{"version":"6434c187dc67342b23a4bc60fb1a9b0b4ebe5e3922176f915088b1db88e4abf1","impliedFormat":99},{"version":"73ea53b8caa55c53436b9774f0422f00571a9196835a7b9f88b9ad22589deb57","impliedFormat":99},{"version":"90843e4fb5ac01d81b2f92f041e36edeb356e158eeabcd820da7f81842806f76","impliedFormat":99},{"version":"065d291963bb55d4477eb741ac9c8c2d98a78f79b16e3e651ff73c456a15e299","impliedFormat":99},{"version":"fe7b19aac44ff3ae1b2772e5dc17e901bb0aeac9956a23b114dce1309d9a47e4","impliedFormat":99},{"version":"54a9939dd3ae49687006c151df0603fe85233001db3e3bbde9b0eede003c644c","impliedFormat":99},{"version":"6e52bd988d7e831ec0c85c5b64f1e536296fb97d8dece257a2fbc0b5f434d7a6","impliedFormat":99},{"version":"455b9f8df0ad3b4e1d1334ab493a721a121181e784b5778872064f4a67425828","impliedFormat":99},{"version":"973cd75323b9f84812440f9335edf4d346361592c536883ed31c70e6b80ff778","impliedFormat":99},{"version":"58130427c1e931b5cdb4370ea17e4599d338e2ed180cfa1a25b6c759257992f8","impliedFormat":99},{"version":"55bbf8786b7a6f899ab47c22be380b286734a4f458ec00a34d3bb20fff9c3ce3","impliedFormat":99},{"version":"17d66b6a3414e635fc233b70098d33c48241f5ed367e941445b8d9e79f0be154","impliedFormat":99},{"version":"559052ef35ded27b14dcf693a4c16501651af4924f1d4ba18285b582272f935c","impliedFormat":99},{"version":"2cd45efcacfaa44508d6a2c83bbb27ed0ed2fe4bc4123ead691801551e45e30d","impliedFormat":99},{"version":"dda1b73d68730a8eece77733a1b9a98aef8b8cfb8e1a5448d0f8adc8cc4d967f","impliedFormat":99},{"version":"c95d402e26a31ca34158c7b14b32d45564f3ad4be112d6ee2baaba67c5754382","impliedFormat":99},{"version":"4c5f01646718608bc48ffa3680f2fe6c33e21baa60ea38f6263c5db5753a9bb1","impliedFormat":99},{"version":"85b14d995156c07474ae2533b3245ff2784730040a623beb52a0eae3007432e4","impliedFormat":99},{"version":"c76568a423cfaee9e048dd83faa5ad3736c50aca30688f94a4505bb0e19c0f55","impliedFormat":99},{"version":"9c078fe3559480637e95415ee0bd7f3196158b21b84dbae9ddb49241eabae09c","impliedFormat":99},{"version":"ccfa748912ecb617312e1edab096361b34754c36649380b9cb0e4b3b6e1758ec","impliedFormat":99},{"version":"eed70ad85299aa854c4b8b71b38ba20a04ddc11ff77cf440f22ea081362b4cb1","impliedFormat":99},{"version":"85772399424fc1ea2418a94eee5a86476c2dc324d78801d2a6eb3f1b8b9d366d","impliedFormat":99},{"version":"cf8efc7fb5f1ec3b78d088e7bf0ba398580e3e04dc336890848e843a9a2eafae","impliedFormat":99},{"version":"0f1d0bc4ef6744c30a6099cbec32cf4a42f00b70b12e264aacab4d99c8348389","impliedFormat":99},{"version":"7c9eea2b3442ebd85c6ab4287afebe3b97fb417aeb67a9069a4325cc7fc66126","impliedFormat":99},{"version":"e12b8458dae9efedb2d04b3a25cf914088c69f45a23c75bc84d90cf9e2a6636a","impliedFormat":99},{"version":"7555108a8b0df70b8e6de4f9e3c494409f4486204ce3a06295c94834fe1d210d","impliedFormat":99},{"version":"623c5eb3aadc90abfc69ab154e776e0a3b8b328c6403289f43083f6707433c4a","impliedFormat":99},{"version":"7d65f4f02591d4cc8a4086f9e93f8e9a7da3b606d46f0237198081463c8e2b2b","impliedFormat":99},{"version":"a5a9cf98f161ccc7c5a3956799c4cba27d9a3e36f73b68a2d056096ba663c744","impliedFormat":99},{"version":"eb1a24dea6aa7e92f0e49eb5635f2df5a8e7e046bb81fa525ad9b47680f1b57c","impliedFormat":99},{"version":"c450750f9568b59900613b9cfb84de672e94dd0036dc0e8f24cb70c04b019e9a","impliedFormat":99},{"version":"fcac49120e28d518deb8e52befb80d04be01f666001db6612861ed190973ac5f","impliedFormat":99},{"version":"ff553c410a8de082bcd94ddde6886717b32d3325c6418a4abb93fdf6608e23f9","impliedFormat":99},{"version":"d36e10d5c514f1d8db63457c798cad67cfdd5cc2e606615fe507cae5662a773e","impliedFormat":99},{"version":"bcd7453cd16ffa7b1c12cb2886b3e61d1d2f325fd2d7f56e6edbc2119b4f9345","impliedFormat":99},{"version":"552d0187326426be1d7b05faf6980a3095f735f6bc14c4f38aecccffd92ed7f6","impliedFormat":99},{"version":"892db6beeb20a8c03f521c44cb41807091e26fed212c67293b7c78d711da5d39","impliedFormat":99},{"version":"00e5eaf058be14f36c10c7eace603caadb7cea18eb689a445b1f6f250ce041f2","impliedFormat":99},{"version":"1e6ac276ed23b6dc862c7662de67707388343a38b9766899ff5fdf652e469d2e","impliedFormat":99},{"version":"a28165ddc1381f40b6b6baf4462acab9193d83e26a7417a07245c9b3a8442fa4","impliedFormat":99},{"version":"269b0cb4ade5e877061f769813291054a0d2c3e506e1e2c750925b7c1c3d5aec","impliedFormat":99},{"version":"eba080065ffaa571b58dfa00645bfce262fe83be873dedbe1d63fe51b8f40450","impliedFormat":99},{"version":"70de49f58b7450aaa453d41314f620dcb6d77a0109fe4eb20276fa12e50cc009","impliedFormat":99},{"version":"37b2c4cd9cd4b505a1c27f9f6c06fe27ffef1eb2cef604aaaf9981484fd455ad","impliedFormat":99},{"version":"adb0caa395cf68b5de68ae7289d695565b72e2e2640cfeed7157a8ad79e40caf","impliedFormat":99},{"version":"919c66ee56ef7a58e60e0cd90571e1279ec555b372a578a4062c5e07434b6383","impliedFormat":99},{"version":"c2b70f381ff3c7cc773d003a005ab3b00221ea80433252a6280308313216259b","impliedFormat":99},{"version":"e426a76da21df2e06814412cf6638ae157658707b0e201cc0ce5994a2d618867","impliedFormat":99},{"version":"0739cb1455bc7ee6b81dee19bec75073998a33a51e2e8d268e0164620309dcbb","impliedFormat":99},{"version":"d917c42beefcb99ffd5e3ae108381a0602d2c40c64a61b478f08aff167ba5b1e","impliedFormat":99},{"version":"c9c35332fcbaf93f8aa4b17cc488e2e0586d8c0fe464d4a9d65ca8cc6bd85329","impliedFormat":99},{"version":"5206a9bd977c91315df60e407be4778e273c9166123291970d0cbed57a4f25c4","impliedFormat":99},{"version":"343f27865f6f9d9fc4ebe65749d752ac79323b5c55f0a2218d47df2c4034f9d8","impliedFormat":99},{"version":"8019a4cf149acb6888f41af31d75f13b09a6c8fdf6f4017dd0e53ce76b20059e","impliedFormat":99},{"version":"9e95c6318942120572de2858483ed86ac86b15021eb5191484911b24396fcd00","impliedFormat":99},{"version":"056f93894a09d84c2c15c9da5da46954cf5796ad7b10fb03771af6cb59929b29","impliedFormat":99},{"version":"2551c5a6b9569cc0b0082921a0795f4dd5c8748c2069f5e4d3aa9373d8dd9513","impliedFormat":99},{"version":"2a5925f04dadc5ef2360731d22b022f6032ac6458bf3b89235b6e5c4372bf0bd","impliedFormat":99},{"version":"3d7af281d668e202480db15a7fcbf9accb9ecfa688b668038fb106a319f3ed5c","impliedFormat":99},{"version":"4c7d3c0a23ae5244919313c9e97c8e34866dcab5946461cffa97e553ad87a3ab","impliedFormat":99},{"version":"8cacba1161585c06b852af395311ee6852977491a2c0c7e9c60e7288434a8c27","impliedFormat":99},{"version":"c387fe7db525a0cfbe3ac66efcbe6ad0f4c74d6ff6fc25b84eabbb68027ee388","impliedFormat":99},{"version":"e8bc039da13eb4951be87e1048dd1497a69b811ca7fbc17009e67372352f2f3a","impliedFormat":99},{"version":"8b6173ab48664d4ce4df9ae59cddfefa2b43ad3ff5cc7ad7c70c5967c62874fa","impliedFormat":99},{"version":"c15386f9204b2372b16d4706107bd1e6626f935283104c90c8589bd1e0653295","impliedFormat":99},{"version":"87659416f52ed5e6f564d43b5f84d266f64637c97ab5f2f0ec7ef7df395b57c7","impliedFormat":99},{"version":"06eb6fad9801f24f5a61def0c4997a815ab2942e6ae663daa24bce778841df0b","impliedFormat":99},{"version":"6ed93757eec09ff17d1075d265b296b3d53f8fd636c9406e1e6ec9819532c481","impliedFormat":99},{"version":"a1d16d3af6d1eb953600c34b50642f43bd65c8cda08ad41c3c783efc48fc8a8e","impliedFormat":99},{"version":"753da51f0f3105f010b4210efa94e8795601fea6ef9851287ecb56a38595f1f5","impliedFormat":99},{"version":"b3156a5dec4d1e0eff1c11dfb8ff3ba2195a29e3e13ec8160a1a94586b61382a","impliedFormat":99},{"version":"ce6f7100c02f9d94f6059b34d8f3c8358ba64feb4f47e767c97017ec76f64814","impliedFormat":99},{"version":"287b5f3b145f2ab99fc6ae7ed7b0a5e5cc903a52eac9bb3a436d6081c4103a6f","impliedFormat":99},{"version":"1c8199df7d2299f23bcc239d805ca3f434cae9e14a430ce6a1e0862cca0f6214","impliedFormat":99},{"version":"59b3fef1b2c38ef9f64a68a1098dd451d909b8b8c9526eb0a8cd6660bceb527d","impliedFormat":99},{"version":"4c016b9d2a3f3aae18e759e647f9bdbb266d36f6d8ff483b637d4e3445c7d666","impliedFormat":99},"11535c6aaf4a8caa0487745fc597c7d92602fa166e6e65bb39ce514380ccdfbc","fa7084ed93116464ea667ef45e71a8c784fc98933f8f88852e6b76fba654c5c0","123ab9c0c1811f5299212ffce05cbff4fe14db2d58e52e00f114bf70b84caf58",{"version":"37c7961117708394f64361ade31a41f96cef7f2a6606300821c72438dd4abda3","impliedFormat":1},{"version":"19feb8551285d9041090b2aac242de4089aa0abe3777a89ff9a804225e561832","affectsGlobalScope":true,"impliedFormat":1},{"version":"a4553f8b822eb81601e9ff242bde19eebc440201e687161598c267892ee84bdf","affectsGlobalScope":true,"impliedFormat":1},{"version":"724dea86a503f9bdf755f5c628cea9de4a63aafdf0f6ca25db5e0172ddc0d883","impliedFormat":1},{"version":"39875f62f78dfcd829f2d38f7b06e8a8d5e39bbb9487abe63b81b41fe3b58c04","impliedFormat":1},{"version":"1fd7bfea6c425ce8ec33a7d92edae59f10bc09f86ae01658447509d09ca663f1","impliedFormat":1},{"version":"6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0","impliedFormat":1},"86b28222ebe4dcab1cb52dd8abab565efe4a10b39dea92732da091c88333b241","fb48d963c742a97d5ec399b880fec24e44adb4cbca4a431ddce6c0ac1ea81cf3","621f42d1c9fa0f53b86e66edd19f5954c88eee4026d6a1dd296357249a3fc817",{"version":"d04f947114fa00a20ee3c3182bb2863c30869df93293cc673f200defadbd69d9","impliedFormat":1},{"version":"4c629a21fb1b4f2428660f662d5fef6282e359d369f9e5ec5fd6ac197c1906ee","impliedFormat":1},{"version":"785926dee839d0b3f5e479615d5653d77f6a9ef8aa4eea5bbdce2703c860b254","impliedFormat":1},{"version":"66d5c68894bb2975727cd550b53cd6f9d99f7cb77cb0cbecdd4af1c9332b01dd","impliedFormat":1},{"version":"cf62a7edc0f8e389ef165baf6d664cc20eb272de3e5ce056064031ffb0c452f0","impliedFormat":1},{"version":"c991b4ab8278b08f73510d383ae74a9df03a876ba4aa66efa9d87d0bfdbf486b","impliedFormat":1},"57b309ba4c03d28630390edcab9df199b1c55daf2001b03283f9ace6a4720dc0","429388f11f610c4c912e09558fbce13223f7422ae556b65e1ba99adea602cf8e","426482d188cff2eee7a600958f772b1ad18d5ee2a8069c9c37d514d4bb0c1ac0","d93f29e0c95d4f1980fd06c0e285bb87120274e527a5793edb32cd2a405ff467",{"version":"afb5c44616d15e04c44ac6ee0abdb32983c1134a5dd3827f1bc701d73fb6199b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"f5705d196b442afbdbd971b6e44bad96f4e32afb53cebfa2e5afe3140017bfc6","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},"6fbb2720d4007538909c77c37890f32ea5db065679bb5251865969aad54681c4","f3666d74fd27b10bece27eacf260302b8cbe68410b733a74001c258eb3d46bdd","96f9139db651f37ca2950889900ac4b2bf8c8ec4598f2199c395c71495574bee","dad8b1681930806a2ed7069435678857850cce238fc92606aa09649531ca9e86",{"version":"caf4af98bf464ad3e10c46cf7d340556f89197aab0f87f032c7b84eb8ddb24d9","impliedFormat":99},{"version":"9c580c6eae94f8c9a38373566e59d5c3282dc194aa266b23a50686fe10560159","impliedFormat":99},"03e9d54f5cf9c0b84012410c9c43cc03c74e408f88fb68de7abf40f1ecb8dfd6","8dd77f44732563284a3b4b30ab6cac026b13d23db533173b291195243debb564","b5fc0296b58c9b81ab929a1e161d25585d4413a7c83c107c456849baa5dcfb85","e093be6af28ec9eae14570c56132f8249abe9d6ae7b7c891a513f3abe9c48776","816718f61a07994d37bc847bdf58f4ad898f0c9452c29d0a7b2afa36d54d5432","2026b21a5f624bd4318bd0dfe3555c06ddb8db1987bf68855ec4f390275b1077","0c7aceb17dddbd752209cae123f0350420d36d697a598151f0b050c8b38dcea2","5e81ff52c17963d5f4f350acf6ac6506f440c4c3a385035d3ffca055a574ac5d","1719357912231c2f21ae87b4077583b0b9ea9809b339bb5f759f47b592e17c7a","5c42bfee345d1f43b75c0437f7ba232a7c3e8cc07948c14add3595fe3a9be02f","3dd44f76b7e67b200af27f03ef7c623f107bcf37fd4fb504fc4d44dc13c5cc08","67c7f262b40c821328e376d5c0336cefa63a6cfc3ca17ef084df8a20196f3e97","9b67451f6732f0893fe421dfd7ce5bf5fd2e1d59945590d2945c17479f3a9baa",{"version":"a81a0eea036dd60a2c2edc52466bb2853bef379c3b9de327fe9fff6e3c38e6c5","impliedFormat":1},{"version":"348c13a1c9160681e41bc5cd3cc519dd8170d38a36a30480b41849f60f5bf8a0","impliedFormat":1},{"version":"c772a37a02356897d6f9872e30fcc2108f43ad943cc112bd1acc5415a876e9f8","impliedFormat":1},{"version":"279248c34ecd223fc46224f86384ebf49c775eb69329ad644d3d99f1205f3e7d","impliedFormat":1},{"version":"74dedffc2d09627f5a4de02bbd7eedf634938c13c2cc4e92f0b4135573432783","impliedFormat":1},{"version":"1f2bbbe38d5e536607b385f04c3d2cbf1e678c5ded7e8c5871ad8ae91ef33c3d","impliedFormat":1},{"version":"3aa3513d5e13d028202e788d763f021d2d113bd673087b42a2606ab50345492d","impliedFormat":1},{"version":"f012173d64d0579875aa60405de21ad379af7971b93bf46bee23acc5fa2b76a4","impliedFormat":1},{"version":"dcf5dc3ce399d472929c170de58422b549130dd540531623c830aaaaf3dd5f93","impliedFormat":1},{"version":"ec35f1490510239b89c745c948007c5dd00a8dca0861a836dcf0db5360679a2d","impliedFormat":1},{"version":"32868e4ec9b6bd4b1d96d24611343404b3a0a37064a7ac514b1d66b48325a911","impliedFormat":1},{"version":"4bbea07f21ff84bf3ceeb218b5a8c367c6e0f08014d3fd09e457d2ffb2826b9c","impliedFormat":1},{"version":"873a07dbeb0f8a3018791d245c0cf10c3289c8f7162cdbbb4a5b9cf723136185","impliedFormat":1},{"version":"43839af7f24edbd4b4e42e861eb7c0d85d80ec497095bb5002c93b451e9fcf88","impliedFormat":1},{"version":"54a7ee56aadecbe8126744f7787f54f79d1e110adab8fe7026ad83a9681f136a","impliedFormat":1},{"version":"6333c727ee2b79cdab55e9e10971e59cbfee26c73dfb350972cfd97712fc2162","impliedFormat":1},{"version":"8743b4356e522c26dc37f20cde4bcdb5ebd0a71a3afe156e81c099db7f34621d","impliedFormat":1},{"version":"af3d97c3a0da9491841efc4e25585247aa76772b840dd279dbff714c69d3a1ec","impliedFormat":1},{"version":"d9ac50fe802967929467413a79631698b8d8f4f2dc692b207e509b6bb3a92524","impliedFormat":1},{"version":"34d017b29ca5107bf2832b992e4cee51ed497f074724a4b4a7b6386b7f8297c9","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},"b42ebbc75be178f33b7c6d3aff04b446198007e3f202e1b717b3b9a2f2ce0ba4","2e6bd45cece333a2a0c7a0d4baf3b3e9ef1dbd1a854571ba08687553c25f0056","8a059def184e4a4883bcd2f312dccf6301651aa0a2e9f9d9aefd5a19fc973bec","6d98e865480db37ba23e52d47997c818c67b29a7469ae1ed28421171949db322","3487666cc2fe4c60600abaa11c56bc49dc0e0654275844484b69451538201af5","32531946121f977ad8e5a7d2b3c87d9f3ff4a75ecb92dbb6b6c778b4e355414d","be2e1f6b1c5a698281cf81c9b2464347eaae07df03f6607a74d2f15de3f9a6ce","4dc667c69e949fee60a5fafdca7c4b3c9e27ed57db970c7a39ef9855734a4b79","604f5e17d26d5de20d6fe8039038a683c3b1366d590b2faa48cf21578f0a7621","43f0abb58dd3cfc6ac307c78654630a790a410cb5802a0683426f8add047065a","61548add80e1cfe788b6fd3af8256c097ca0c3a033f861de5662ab0fc9b38d63","6f3c03ea1694340fb37a7edb1af0de66e74d8e0a28380e5e9fbb006dbec85527","cb4e474de1b99f179863f6a6f8625c615c2e00103343b7def992bdd7b2a3674b","b8c80e433b04f6a7597a9cb687b6774ab4a7d2aa357f965ff26f005dd7f7c655","14662be43505168b0b693cfa6c9e92cfb8e4bc505bbed63ef8253246d073825f","5e9b528875761af91c8178d8892eedbbaaadd01850a71cc87f63623d0546e6ec","9ed6dcba38c037e5432580fbd631fa1b1fcef44649a1c4a615133bf3910db563","9de30a8790b8f7060cf686f9e5e9117d07db908515a26797d210552b157ca3f1","3ac64bf7ec5e7d8bc92a718c8f836677183c4bff7b16b412d1211898bb04dede","abe8b38f8afdd3d5f67cfd47f4b058f577293a695fd56ffa496058720cdc001c","c46e843e3ff04886599e1865f2fcb577388fd39c8682e3f3a3c8d6f538968096","5b3f91a4082f66edb70e1c924ac8460185141e89185147cb46f90637b3bf4eb9","768e78eea8d72a2d7d48396a9a32d1047d2db341e813ceb27d9a2bd411bdcc21","ad1bf53f079eb70423cf68001a0bccdde0e39a1dfe0f2a456ce054b7a3e7180b","eb12d32025d02d9fa05cca441cc5fc1c0dd9779a19922e8d0b6135db903eda06","4d4eb0af2314a89343870df579df26880ead4845be262e6a82c476cedd82bbf7","6cff1500d0ad66f8f252b067690254a4875afcb5634c8de2a3fb15790c5048f7","bb635f558a5c7c04b5e0f100b92f561388c16d599810841780118311f4fd9c34","c97bc1e0d55e4abe3b9c9d4850076ac3e262d07b2f323f2e8baea9231ff60e9b","90045b36215c0b513ee424a0e0beedbf49e72e9da449471d8cc2dbbf3bc2b10f","5096219e00032fdf96cb345db86d85ca1604952a01590efadfe4683cd3a40ff2",{"version":"7328b4a41410d71cce34e134220b06a3fa87738182c44784b69b762884790a2e","impliedFormat":99},"97c2f657d14688dd572568cc0f20e7595d296b8c28829394547f67f979321e9a","ea9026f6080c2064d6818b1f7756fa9c928f7b9af0505c113551256414bf39f1","2479dd90f342fe37f37c5573b11ed712418cb05e18ed26d1390c55470ed6c15e","d5b9cc21a769907808a1016f32f5a57842e15c9d782637e4ceecc53715c748af","f27fdc6dcd974cf1c58804b4149eed0b11eabff7742254f8c099962486f74c56","a1e889c55f0c00dad040bd38bb8523daee00061ca0f3a725f8c29b1c7055e0e5","a9012861f680d4722402350dc857c1e06e144b8dab56afd16d5ecf0782e8d176","359a2b96edd884c3db6736fd413e42c35a3a73212c31fa43db94155c6678129b","71cf369a4897be097c3621f74adf158ff21b91f270614eeca56f09b033c3fe3e","e201f20144104730b2bb2839f76331ceb851c4b28eedf9863469687cb1d12c15","0688d4a9f7e04eee0561f28acefc8bae0ff0d2e97c9e8b2c4308c69b02bd3825","05bba5708eda44abf7adba5f0a1ced41cd9e9ba8ed665a71a7076f8a5ba9bf4f","4da5bf5d58560ebcdfdb4296e4765f236d45ae5a6849db14fb75ab309c6495b6","b3e2549d343a8b4e4127dd2f05c9a45787f4a66ad414a6fe196ce07b676a0e9d","50600f33e999297b75832a44c650b657ae473c4bff8d642047533d1f9f2f3ce2","de95ecf415fbf90a7d8619e78f42e675d474538602bd786efd8ab17ed4ec72ab","51921db3666c62a881fc97b2307bbf94199b34a27e9272b5464c732567d9f83e","7abebd1c7f45d43be664c74500138a4b264eac35d2fc8aeb7725d02903a23c30","64d95f4bde1070bd45da0fbcfe17312e95fbbc47f02bf7cd2e4c3ca94492a248","6a03f6128faeec8ec0fdaba1a2e52200d5208f96e002bf1f4e2a2415f67f1173","88a04d9a287c6df06bb619cc27471fbc7c68662f62557ebb475fcac32c2734f1","beb32f060ab2e902d6e39012943cafb89d32a72264db9eddbea901a16df32be2","e16fae56655e21f430272aa9b9e599792f88fd6caeeab04a1a398551d9bd645f","1e16d4addda52b357bfea36e1b855571099308c0b71c6cdfff7942ea31807936","e45472a96e63583a4a86386045093e9a9bb874a3ffd96783af3f2929de7b33fb","a9eaf0c8b683611e7744a98ee54e15ccabdef039a9207d2fb8f026fc22d2d938","4b501edd8caca929b9a685e437f65125bc36ca6667e2a4d6c6d60b669ac95899",{"version":"fc47aaa9bc9770c09325dfe5079e2acdbaafd52f5034c77f86c9ce64afc88317","impliedFormat":1},"66f2743e31ae7ffa71949e4cbffaa34ef14a110d323b21a81434dc85e334a82a","4a2002c441f188c64fa5e49ff43051025bd0f7c18b30e10ac687598a9324c841","5d71d7189342ef6f54a89d8ff44ef18b73b605c4efdfe86a18e29738d12b40d1","a388f4085f5380e7fab50ecf6d643661702f167b1b58905062892fab339e1822","3774c54d2cab098602ed3fd2c33678aa81de38bd001bcf90b50591e9f5f72263","385adb8380f91cb7250564afea5789bcaca88f681541eca3ea5609b69625fd2c","bcd7ea03bf9e0a588554b4eda5fbbb1d4762f5a33cc9ac8b4eb49cdccf90fe10","4a8d3170e3bc122b2ea6e791044fa276ef3aa1feaeecdd0b7c4f0d82c6bfaed9","d83259553a7156720008b7fbdcd405f04b608e79cf4e4fcf490fbdc2d17a53b5","41ce76080eb4de73200aa89aa5ec2c81f5f9544fc017a157fbd6e12147b6ff07","16b21c735fb9619fe878557c1e0e65f7ce67148e095a58c950f1c2549b59ddbb","9d379acda265662aa70db97664556e52707630a5855ac21c95f84ca4575f9041","bc591e3824047e1cd042f0969357dceb7c7c285714efa013822acb89a65cbe55","60802e37c118d34ffd3f30159cdb211bfb985343180d9dcfd66ceb1dae82104c","5ba2b498e53c4c1876e78b0ddc8029787f06af538cda3ad1d29eca2dc0272d99","64cf5b1620f7544170698efba147b4e65d2c0e39599fa352a2ce0f90aadc56c4","b3edcccd46cd0144fd60f64d2e71a369b2f2c14fc041a817b2cfc5960e59f367","dbb336f673badc5c281bfd60ae6f4f8793d3d52dfa54305ba978e51f3edb982b","1050ceb282c85ac370c444e57e30fd2fb7fef76989b6de8ba126ba77bbb9fde2","a6e3d41f3b1402eda4a1b32a267922de05365053aed0e25a09bb82ef8c669071","e504125d6ef483624e55bdd4fd689d10141a3058c5fc7550a6688b1c2e5ecb48","4c89c1310b64fc61db9902ef63bd37614e2bb26768c12fb24b580468d2df93a0","22fd31b94f2b7bb86a3c378e98032bac4f1bf02b2950135d3d7ea209e7b825d4",{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"a510938c29a2e04183c801a340f0bbb5a0ae091651bd659214a8587d710ddfbb","impliedFormat":99},{"version":"07bcf85b52f652572fc2a7ec58e6de5dd4fcaf9bbc6f4706b124378cedcbb95c","impliedFormat":99},{"version":"4368a800522ca3dd131d3bbc05f2c46a8b7d612eefca41d5c2e5ac0428a45582","impliedFormat":99},{"version":"720e56f06175c21512bcaeed59a4d4173cd635ea7b4df3739901791b83f835b9","impliedFormat":99},{"version":"349949a8894257122f278f418f4ee2d39752c67b1f06162bb59747d8d06bbc51","impliedFormat":99},{"version":"364832fbef8fb60e1fee868343c0b64647ab8a4e6b0421ca6dafb10dff9979ba","impliedFormat":99},{"version":"dfe4d1087854351e45109f87e322a4fb9d3d28d8bd92aa0460f3578320f024e9","impliedFormat":99},{"version":"886051ae2ccc4c5545bedb4f9af372d69c7c3844ae68833ed1fba8cae8d90ef8","impliedFormat":99},{"version":"3f4e5997cb760b0ef04a7110b4dd18407718e7502e4bf6cd8dd8aa97af8456ff","impliedFormat":99},{"version":"381b5f28b29f104bbdd130704f0a0df347f2fc6cb7bab89cfdc2ec637e613f78","impliedFormat":99},{"version":"a52baccd4bf285e633816caffe74e7928870ce064ebc2a702e54d5e908228777","impliedFormat":99},{"version":"c6120582914acd667ce268849283702a625fee9893e9cad5cd27baada5f89f50","impliedFormat":99},{"version":"da1c22fbbf43de3065d227f8acbc10b132dfa2f3c725db415adbe392f6d1359f","impliedFormat":99},{"version":"858880acbe7e15f7e4f06ac82fd8f394dfe2362687271d5860900d584856c205","impliedFormat":99},{"version":"8dfb1bf0a03e4db2371bafe9ac3c5fb2a4481c77e904d2a210f3fed7d2ad243a","impliedFormat":99},{"version":"bc840f0c5e7274e66f61212bb517fb4348d3e25ed57a27e7783fed58301591e0","impliedFormat":99},{"version":"26438d4d1fc8c9923aea60424369c6e9e13f7ce2672e31137aa3d89b7e1ba9af","impliedFormat":99},{"version":"1ace7207aa2566178c72693b145a566f1209677a2d5e9fb948c8be56a1a61ca9","impliedFormat":99},{"version":"a776df294180c0fdb62ba1c56a959b0bb1d2967d25b372abefdb13d6eba14caf","impliedFormat":99},{"version":"6c88ea4c3b86430dd03de268fd178803d22dc6aa85f954f41b1a27c6bb6227f2","impliedFormat":99},{"version":"11e17a3addf249ae2d884b35543d2b40fabf55ddcbc04f8ee3dcdae8a0ce61eb","impliedFormat":99},{"version":"4fd8aac8f684ee9b1a61807c65ee48f217bf12c77eb169a84a3ba8ddf7335a86","impliedFormat":99},{"version":"1d0736a4bfcb9f32de29d6b15ac2fa0049fd447980cf1159d219543aa5266426","impliedFormat":99},{"version":"11083c0a8f45d2ec174df1cb565c7ba9770878d6820bf01d76d4fedb86052a77","impliedFormat":99},{"version":"d8e37104ef452b01cefe43990821adc3c6987423a73a1252aa55fb1d9ebc7e6d","impliedFormat":99},{"version":"f5622423ee5642dcf2b92d71b37967b458e8df3cf90b468675ff9fddaa532a0f","impliedFormat":99},{"version":"21a942886d6b3e372db0504c5ee277285cbe4f517a27fc4763cf8c48bd0f4310","impliedFormat":99},{"version":"41a4b2454b2d3a13b4fc4ec57d6a0a639127369f87da8f28037943019705d619","impliedFormat":99},{"version":"e9b82ac7186490d18dffaafda695f5d975dfee549096c0bf883387a8b6c3ab5a","impliedFormat":99},{"version":"eed9b5f5a6998abe0b408db4b8847a46eb401c9924ddc5b24b1cede3ebf4ee8c","impliedFormat":99},{"version":"af85fde8986fdad68e96e871ae2d5278adaf2922d9879043b9313b18fae920b1","impliedFormat":99},{"version":"8a1f5d2f7cf4bf851cc9baae82056c3316d3c6d29561df28aff525556095554b","impliedFormat":99},"5ae003fb7aafc5533b69e6cde54b1370a7a53eab313af20fe04c88dfe70f24fa","2471de92011f6b52a5b51df4e38f5a94c2f21eaf3cb8bc15a0044bfa727143b3","53c02dd98757700f17313091fd6da8538b375efbe4e3ec5b3d73e2a61c9137f3","b95e5e598df459c91bf3d864b24a5b38bf70cbe0d50c79062bc03c1d1f3e4e6b","285a6218f538711c54cab4399fe3ac9cc60ba940b525f0240b1636f548c67799","ac296883bd8df67f3c51d4a19ce3f3c5f0fdf406616f65e86d7d5e5505fe23da","8bb514d73669f864589041e37e2652449eff6dd812d7ab21568a2c1af52b845e","eba940376d96f40e4ac5035f770af116440aea5f06b106e335240bfb1c161e86","e4f4b9b9a1916de9a677d3e28656739ed479f7ecee1d07a01ef368480e1b9941","c8f24b5a28ec83d4be461141533d9424e39d7810e180b477108d68731f5ce174","80eddfed5cab1efc8d5bfbb9d78262c5fc6b71242b86a288eb2c0b2ee31d2a4d","f6f63ed4f3e38b095ee520d63776e28e0e465fb6afe31abac8ccb9c687db32a3","8aaff0d68ac85ef414f41bef44b81a2c8c5370109079a771677493abc3a579b8","aa65f05fbc1650fc785a9448e8853f31e06009a4024fbc5794284eb6accdc9dc","7e1888e762f4fc9294cb81359440e0444fddce1896ffa8861144f270ac89cf37","52d2ddaeb96e936f02b69e964273b8618d64024aa27fa685fd4c8e5cf43ad165","dff7260cb22d76c4b24beef02ca0d20531e2c29ebe75865e3c59626725e96e29","1e56e594eb6b94b4ee584d773c6e05fc9e4b60c0e45158114bd4c1ed6cc88c1e","d12c620b64eded0f1fd445f497578a70b4be3b4ba71d82ca163ebac1fbc32cb2",{"version":"f4e8f4151c3490cf7b68c685aabe901cbab19f962aaa2f118a97550e22689a76","impliedFormat":1},{"version":"799003c0ab928582fca04977f47b8d85b43a8de610f4eef0ad2d069fbb9f9399","impliedFormat":1},{"version":"d998eea476c695d8e4ff9d007d5b46d49ca2ffa052f74dc20ca516425abd57b1","impliedFormat":1},{"version":"a0bd46d587005aad4819980f6cf2dbcd80ebf584ed1a946202326a27158ba70e","impliedFormat":1},{"version":"07fcbb61a71bd69a92a5bbde69e60654666cf966b5675c2010c3bf9f436f056a","impliedFormat":1},{"version":"88b2eb23d36692162f2bf1e50577ebcde26de017260473e03ed9a0e61e2726a4","impliedFormat":1},{"version":"23ffbd8c0e20a697d2ea5a0cf7513fb6e42c955a7648f021da12541728f62182","impliedFormat":1},{"version":"43fba5fc019a4ce721a6f53ddb97fdc34c55049cfb793bc544d5c864ee5560b9","impliedFormat":1},{"version":"f4e12292c9a7663a13d152195019711c427c552eb0fa02705e0f61370cd5547a","impliedFormat":1},{"version":"c127ebf14d1b59d1604865008fb072865c5ca52277621f566092fe1f42ce0954","impliedFormat":1},{"version":"def638da26d84825a312113a20649d3086861de7c06a18ea13121278702976fd","impliedFormat":1},{"version":"fbaf86f8ba11298dea2727ce0da84b4ab6ae6c265e1919d44aff7d9b2bbc578a","impliedFormat":1},{"version":"c1010caaeaca8e420c6e040c2e822dbe18702459c93a7d2d5de38597d477b8cd","impliedFormat":1},{"version":"e1f0d8392efd9d71f2644eb97d3f33d90827e30ea8051d93b6f92bb11dff520a","impliedFormat":1},{"version":"085211167559ca307d4053bb8d2298d5ad83cbc3d2ae9bb4c8435a4cabf59369","impliedFormat":1},{"version":"55fc49198d8a85a73cdb79e596d9381cfdc9de93c32c77d42e661c1c1e7268ef","impliedFormat":1},{"version":"6a53fb3df8dd32ed1a65502ca30aeae19cfe80990e78ba68162d6cb2a7fed129","impliedFormat":1},{"version":"b5dcc18d7902597a5584a43c1146ca4fe0295ceb5125f724c1348f6a851dd6ed","impliedFormat":1},{"version":"0c6b0f3fbe6eb6a3805170b3766a341118c92ed7b6d1f193b9f35aa82f594846","impliedFormat":1},{"version":"60eaadb36cf157c5cae9c40e84fa367d04f52a150db3920dbe35139780739143","impliedFormat":1},{"version":"4680a32b1098c49dc87881329af1e68af9af94e051e1b9e19fed555a786f6ce6","impliedFormat":1},{"version":"89fcd129ec37f321cddcdb6b258ffe562de4281e90ec3ccbe7c1199ba39359ca","impliedFormat":1},{"version":"4313011f692861c2c1f5205d7f9a473e763adab6444f9853b96937b187fb19f7","impliedFormat":1},{"version":"caa57157e7bdb8d5f1efe56826fb84a6c8f22a1927bba7fa21fd54e2a44ccba2","impliedFormat":1},{"version":"6b74700abfe4a9b88be957fd8e373cfd998efb1a5f6ad122da49a92997e183ad","impliedFormat":1},{"version":"9ef1342f193bd8bae86c64e450c3ac468ef08652110355e1f3cdd45362eb95c4","impliedFormat":1},{"version":"6853c91662c36a2bf4c8371a87177c819007c76a23c293ef3f686ce9157ae4c8","impliedFormat":1},{"version":"9be1c5dabce43380d13fc621100676b03d420b5687b08d1288f479bee68ab7a8","impliedFormat":1},{"version":"8996d218010896712678e6a0337d8ef8b81c1066ab76f637dd8253f0d6ff838d","impliedFormat":1},{"version":"a15603bf387fc45defe28a68f405a6c29105e135c4e8538eeb6d0a1ef5b69a81","impliedFormat":1},{"version":"84e2532e4d42949a2775cdd8bb7b2b97370dd6ddb683d0c199b21bf6978b152d","impliedFormat":1},{"version":"22bf5f19f620db3b8392cfece44bdd587cdbed80ba39c88a53697d427135bf37","impliedFormat":1},{"version":"23ebbd8d484d07e1c1d8783169c20570ed8409966b28f6be6cf8e970d76ef491","impliedFormat":1},{"version":"18b6fa2c778cad6489f2febf76433453f5e2432ec3535f2d45ae7d803b93cc17","impliedFormat":1},{"version":"609d0d7419999cf44529e6ba687e2944b2fc7ad2570d278fd4e6b1683c075149","impliedFormat":1},{"version":"249cf421b8878a3fe948d9c02f6b0bae65491b3bb974c2ffc612341406fa78ff","impliedFormat":1},{"version":"b4aa22522d653428c8148ddbf1dcc1fb3a3471e15eb1964429a67c390d8c7f38","impliedFormat":1},{"version":"30b2cee905b1848b61c7d28082ebfa2675dd5545c0d25d1c093ce21a905cdccc","impliedFormat":1},{"version":"0a2a2eed4137368735205de97c245f2a685af1a7f1bf8d636b918a0ee4ff4326","impliedFormat":1},{"version":"69f342ce86706aa2835a62898e93ea7a1f21b1d89c70845da69371441bb6cd56","impliedFormat":1},{"version":"b5ab4282affcfd860dd1cc3201653f591509a586d110f8e5b1b010508ba79b2c","impliedFormat":1},{"version":"d396233f6cd3edf0d33c2fbfc84ded029c3ea4a05af3c94d09d31a367cced111","impliedFormat":1},{"version":"bc41a726c817624a5136ae893d7aac7c4dc93c771e8d243a670324bccf39b02b","impliedFormat":1},{"version":"710728600e4b3197f834c4dd1956443be787d2e647a72f190bf6519f235aaadd","impliedFormat":1},{"version":"a45097e01ef30ba26640fed365376ab3ccd5faf97d03f20daff3355a7e60286a","impliedFormat":1},{"version":"763cbb7c22199f43fd5c2b1566af5ba96bf7366f125dd31a038a2291cbc89254","impliedFormat":1},{"version":"031933bf279b7563e11100b5e1746397caf3a278596796a87bc0db23cf68dc9e","impliedFormat":1},{"version":"a4a54c1f58fc6e25a82e2c0f651bf680058bd7f72cfb2d43b85ee0ab5fe2e87e","impliedFormat":1},{"version":"9613d789b6f1037f2523a8f70e1b736f1da4566b470593da062be5c9e13dac57","impliedFormat":1},{"version":"0d2a320763a0c9c71493f8f1069971018c8720a6e7e5a8f10c26b6de79aa2f7d","impliedFormat":1},{"version":"817e0df27a237a268dc16e5acffc19f9a74467093af7a0ba164ee927007a4d25","impliedFormat":1},{"version":"43102521b5ca50ff1865188c3c60790feaed94dc9262b25d4adec4dbc76f9035","impliedFormat":1},{"version":"f99947f8d873b960b0115e506ef9c43f4e40c2071b1d20375564538af4a6023b","impliedFormat":1},{"version":"c1e5ad5ca89d18d2a36d25e8ec105623648cf35615825e202c7d8295a49d61ab","impliedFormat":1},{"version":"2b6c9cb81da4e0a2e32a58230e8c0dec49fc5b345efb7f7a3648b98956be4b13","impliedFormat":1},{"version":"99e34af3ede50062dcc826a1c3ce2d45562060dfd0f29f8066381a6ef548bf2a","impliedFormat":1},{"version":"49f5c2a23ea5fc4b2cdb4426f09d1c8b83f8409fa2af13ef38845cc9b9d4bc3d","impliedFormat":1},{"version":"e935227675144b64ecde3489e4a5e242eeb25fdd6b7464b8c21ad1f7a0faa88b","impliedFormat":1},{"version":"b42e6bbe88dc79c2d6dc5605fb9c15184e70f64bdd7b8d4069b802b90ce86df6","impliedFormat":1},{"version":"b9cd712399fdc00fdae07e96c9b39c3cb311e2a8a5425f1bd583f13cab35e44b","impliedFormat":1},{"version":"5a978550ae131b7fef441d67372fd972abab98ea9fdb9fa266e8bdc89edcb8d6","impliedFormat":1},{"version":"4f287919cfc1d26420db9f0457cd5c8780b1ef0a9f949570936abe48d3a43d91","impliedFormat":1},{"version":"496b23b2fd07e614bc01d90dd4388996cb18cd5f3a612d98201e9f683e58ad2e","impliedFormat":1},{"version":"dcfbe42824f37c5fb6dc7b9427ef2500791ec0d30825ecb614f15b8d5bf5a667","impliedFormat":1},{"version":"390124ad2361b46bf01851d25e331cd7eed355d04451d8b2a4aa985c9de4f8ce","impliedFormat":1},{"version":"14d94f17772c3a58eda01b6603490983d845ee2012cd643f7497b4e22566aacb","impliedFormat":1},{"version":"03ef2386c683707ce741a1c30cb126e8c51a908aa0acc01c3471fafb9baaacd5","impliedFormat":1},{"version":"66a372e03c41d2d5e920df5282dadcec2acae4c629cb51cab850825d2a144cea","impliedFormat":1},{"version":"5b48ba9a30a93176a93c87f9e0abf26a9df457eeb808928009439ca578b56f27","impliedFormat":1},{"version":"4707625392316d3c16edbd0716f4ac310e8ff5d346d58f4d01a2b7e0533a23df","impliedFormat":1},{"version":"154d58a4b2d9c552dc864ea39c223d66efd0ed2dd8b55bd13db5225d14322915","impliedFormat":1},{"version":"6a830433fa072931b4ea3eb9aa5fa7d283f470080586a27bfe69837a0f12de9a","impliedFormat":1},{"version":"d25e930e181f4f69b2b128514538f2abb54ef1d48a046ad776ac6f1cda885a72","impliedFormat":1},{"version":"0259b4c21bc93b52ca82c755f97fc90481072bcc44a8010131b2ea7326cf03fe","impliedFormat":1},{"version":"bea43a13a1104a640da0cb049db85c6993f484a6cc03660496b97824719ecc91","impliedFormat":1},{"version":"0224239d61fe66d4900544d912b2e11c2cca24b4707d53fdb94b874a01e29f48","impliedFormat":1},{"version":"2bce8fd2d16a9432110bbe0ba1e663fd02f7d8b8968cd10178ea7bc306c4a5df","impliedFormat":1},{"version":"9c4ad63738346873d685e5c086acbf41199e7022eff5b72bb668931e9ca42404","impliedFormat":1},{"version":"cfb6329bf8ce324e83fe4bbdee537d866a0d5328246f149a0958b75d033de409","impliedFormat":1},{"version":"efc3816f19ea87a7050c84271ea3d3aad9631a517c168013c4f4b6724c287ce0","impliedFormat":1},{"version":"f99f6737336140047e8dd4ade3859f08331aa4b17bc2bd5f156a25c54e0febbc","impliedFormat":1},{"version":"12a2b25c7c9c05c8994adf193e65749926acfcc076381f7166c2f709a97bdf0a","impliedFormat":1},{"version":"0f93a3fdd517c1e45218cd0027c1d6b82237e379dc6b66d693aab1fe74c82e81","impliedFormat":1},{"version":"03c753da0bee80ad0d0f1819b9b42dfe9bf9f436664caf15325aa426246fd891","impliedFormat":1},{"version":"18f5bf1dae429c451f20171427c9e3223fade4346af4dfd817725cbeb247a09d","impliedFormat":1},{"version":"a4eece5fab202e840dd84f7239e511017a8162edb8fc8b54ff2851c5c844125c","impliedFormat":1},{"version":"c4a94af483a63bf947d89f97553a55df5107c605ec8a26f0b9b8bdcc14bd6d89","impliedFormat":1},{"version":"19de2915ccebc0a1482c2337b34cb178d446def2493bf775c4018a4ea355adb8","impliedFormat":1},{"version":"9be8fc03c8b5392cd17d40fd61063d73f08d0ee3457ecf075dcb3768ae1427bd","impliedFormat":1},{"version":"3b568b63f0e8b3873629a4d7a918dce4266ad41461004ab979f8dcdfd13532bb","impliedFormat":1},{"version":"a5e5223c775fe30d606b8aaa521953c925d5ad176a531c2b69437d2461aaabbd","impliedFormat":1},{"version":"8cbf41d2d1ce8ac2066783ae00613c33feef07493796f638e30beaf892e4354a","impliedFormat":1},{"version":"e22ad737718160df198cd428f18da707177d0467934cecdeed4be6e067b0c619","impliedFormat":1},{"version":"15bf5ed8cb7c1a1e1db53fa9b45bc1a1c73c0497735343a8d0c59fdb596a3744","impliedFormat":1},{"version":"791fce84bce8b6948e4f23422d9cbbd7d08c74b3f91cca12dcae83d96079798b","impliedFormat":1},{"version":"8a2619c8e24305f6b9700b35af178394b995dcb28690a57a71cca87ee7e709ae","impliedFormat":1},{"version":"f95fd2fc3cc164921a891f5d6c935fa0d014a576223dd098fc64677e696b0025","impliedFormat":1},{"version":"8c9cecaaa9caba9a8caa47f46dcf24b524b27899b286d8edcc75a81b370d2ba3","impliedFormat":1},{"version":"2b7a82692ecc877c5379df9653902e23f2d0d0bc9f210ec3cf9e47be54413c5c","impliedFormat":1},{"version":"e2ad09c011cf9d7ee128875406bef787eeb504659495f42656a0098c15fe646c","impliedFormat":1},{"version":"eb518567ea6b0b2623f9a6d37c364e1b1ac9d8b508d79e558f64ac05c17e2685","impliedFormat":1},{"version":"630a48fb8f6b07161588e0aee3f9d301c59c97e1532c884118f89368baf4073b","impliedFormat":1},{"version":"14736c608aa46120f8d6d0bc5e0721b46b927bc7eba20e479600571935f27062","impliedFormat":1},{"version":"7574803692d2230db13205a7749b9c3587dccaccdf9e76f003f9e08078bb6d09","impliedFormat":1},{"version":"f3cc1588e666651c51353b1728460bee8acbc6e0f36be8c025eaaf292dca525d","impliedFormat":1},{"version":"0d4ea8a20527dcf3ad6cf1bd188b8ad4e449df174fad09b9e540ed81080af834","impliedFormat":1},{"version":"aa82876d59912d25becff5a79ed7341af04c71bfeb2221cc0417bc34531125e2","impliedFormat":1},{"version":"6f4b0389f439adc84cba35d45428668eabcfbdd351ba17e459d414ca51ab8eb8","impliedFormat":1},{"version":"d5dd33d15fbb07668c264b38065ac542a07a7650af4917727bbc09b58570e862","impliedFormat":1},{"version":"7d90202d0212e9cdc91a20bfddf04a539c89f09fe1d64db3343546fa2eb37e71","impliedFormat":1},{"version":"1a5d073c95a3a4480b17d2fa7fd41862a9df0cb2afaee86834b13649e96bdb45","impliedFormat":1},{"version":"2092495a5b3116c760527a690c4529748f2d8b126cdd5f56b2ce2230b48aba3f","impliedFormat":1},{"version":"620b29d6adbd4061bc0a8fedf145fcc8e8fc9648fb6e0a39726e33babb4e07bc","impliedFormat":1},{"version":"931eda51b5977f7f3fa7a0d9afde01cfd8b0cc1df0bb66dcf8c2cf6e7090384e","impliedFormat":1},{"version":"b084a412374bdd124048c52c4e8a82d64f3adec6c0a9ad5ecbb7317636039b0f","impliedFormat":1},{"version":"11199daa694c3ced3cc2a382a3fa7bd64e95eb40f9bbc3979fc8fb43f5ba38cc","impliedFormat":1},{"version":"2c86f279d7db3c024de0f21cd9c8c2c972972f842357016bfbbd86955723b223","impliedFormat":1},{"version":"dfb53b9d748df3e140b0fddb75f74d21d7623e800bb1f233817a1a2118d4bb24","impliedFormat":1},{"version":"8cfc293b33082003cacbf7856b8b5e2d6dd3bde46abbd575b0c935dc83af4844","impliedFormat":1},{"version":"7730c538d6d35efe95d2c0d246b1371565b13037e893178033360b4c9d2ac863","impliedFormat":1},{"version":"b256694544b0d45495942720852d9597116979d52f2b53c559fda31f635c60df","impliedFormat":1},{"version":"794e8831c68cc471671430ee0998397ea7a62c3b706b30304efdc3eaff77545a","impliedFormat":1},{"version":"9cfc1b227477e31988e3fb18d26b6988618f4a5da9b7da6bc3df7fc12fb2602e","impliedFormat":1},{"version":"264a292b6024567dd901fdabbf3239a8742bea426432cdbda4cf390b224188e1","impliedFormat":1},{"version":"f1556a28bb8e33862dcfa9da7e6f1dca0b149faf433fe6a50153ae76f3362db1","impliedFormat":1},{"version":"1d321aea1c6a77b2a44e02e5c2aeff290e3f1675ead1a86652b6d77f5fea2b32","impliedFormat":1},{"version":"4910efc2ce1f96d6e71a9e7c9437812ffae5764b33ab3831c614663f62294124","impliedFormat":1},{"version":"e3ceab51a36e8b34ab787af1a7cf02b9312b6651bac67c750579b3f05af646c1","impliedFormat":1},{"version":"baf9f145bcee1b765bed6e79fd45e1ff0ca297a81315944de81eb5d6fff2d13d","impliedFormat":1},{"version":"2afd62362b83db93cd20de22489fe4d46c6f51822069802620589a51ccad4b99","impliedFormat":1},{"version":"9f0cd9bd4ab608123b88328c78814738cbdee620f29258b89ef8cd923f07ff9c","impliedFormat":1},{"version":"801186c9e765583c825f28dab63a7ad12db5609e36dc6d9acbdc97d23888a463","impliedFormat":1},{"version":"96c515141c6135ccd6fb655fb9e3500074a9216ba956fb685dc8edc33f689594","impliedFormat":1},{"version":"416af6d65fc76c9ced6795f255cb1096c9d7947bede75b82289732b74d902784","impliedFormat":1},{"version":"a280c68b128ebba35fb044965d67895201c2f83b6b28281bb8b023ade68bf665","impliedFormat":1},{"version":"6fa118f15723b099a41d3beea98ed059bcd1b3eda708acf98c5eff0c7e88832f","impliedFormat":1},{"version":"dcbf582243e20ea50d283f28f4f64e9990b4ed4a608757e996160c63cff6aa99","impliedFormat":1},{"version":"efa432d8fd562529c4e9f859fd936676dd8fef5d3b4bedb06f754e4740056ea9","impliedFormat":1},{"version":"a59b66720b2ccf2e0150fafb49e8da8dabdf4e1be36244a4ccd92f5bd18e1e9e","impliedFormat":1},{"version":"c657fb1ec3b727d6a14a24c71ea20c41cb7d26a503e8e41b726bb919eb964534","impliedFormat":1},{"version":"50d6d3174868f6e974355bf8e8db8c8b3fcf059315282a0c359ecf799d95514a","impliedFormat":1},{"version":"86bf79091014a1424fc55122caa47f08622b721a4d614b97dd620e3037711541","impliedFormat":1},{"version":"7a63313dff3a57f824a926e49a7262f7bd14e0e833cf45fa5af6da25286769c2","impliedFormat":1},{"version":"36dcaeffe1a1aed1cb84d4feba32895bf442795170edccc874fa32232b2354e5","impliedFormat":1},{"version":"686c6962d04d90edafc174aa5940acb9c9db8949c8d425131c01d796cf9a3aef","impliedFormat":1},{"version":"2b1dbc3d5762d6865744b6e7be94b8b9004097698c37e93e06983e42dd8fe93b","impliedFormat":1},{"version":"eb5e8f74826bdf3a6a0644d37a0f48133f8ad0b5298cc2c574102868542ba4eb","impliedFormat":1},{"version":"c6a82a9673ba517cf04dd0803513257d0adf101aed2e3b162a54d840c9a1a3b2","impliedFormat":1},{"version":"fc9f0f415abaa323efcecc4a4e0b6763bfe576e32043546d44f1de6541b6399b","impliedFormat":1},{"version":"2c4d772ac7ac56a44deef82903364eb7c78dd7bc997701123df0ce4639fe39bb","impliedFormat":1},{"version":"9369ef11eed17c1c223fdea9c0fa39e83f3722914ef390b1448db3d71620c93a","impliedFormat":1},{"version":"aa84130dbc9049bba6095f87932138698f53259b642635f6c9e92dd0ddc7512c","impliedFormat":1},{"version":"084ceadd21efabd4b58667dca00d4f644306099151d2ee18cd28a395855b8009","impliedFormat":1},{"version":"b9503e29f06c99b352b7cae052da19e3599fa42899509d32b23a27c9bb5bebf6","impliedFormat":1},{"version":"75188920fe6ccc14070fe9a65c036049f1141d968c627b623d4a897ec3587e15","impliedFormat":1},{"version":"e2e1df7f45013d2b34f8d08e6ae5a9339724b0ea251b5445fcca3e170e640105","impliedFormat":1},{"version":"af06feb5d18a6ea11c088b683bdb571800d1f76b98d848eecdf41e5ec8f317fd","impliedFormat":1},{"version":"0596af52b95e0c8adc2c07f49f109d746b164739c5866fa8bb394dd6329a3725","impliedFormat":1},{"version":"c3365d08fe7a1ccc3b8e8638edc30123007f3241b4604e2585b9f14422ab97d8","impliedFormat":1},{"version":"a7a3d96b04bb0ec8cb7d2669767c4756f97dd70d08548f9e6522dde4de8e8a03","impliedFormat":1},{"version":"745e960e885a4ba04c872225cbb44bd67a7490d169ceaefab7c0dfc444768676","impliedFormat":1},{"version":"0b1ce1768cde3535493a9daf99e3bbb8c7dcc3a7f9d8cd358cb846af71ce5cdf","impliedFormat":1},{"version":"48b9603f6e8a7c94b727277592a089f94261baa64e6c9d18165da0481663a69e","impliedFormat":1},{"version":"3c20a3bb0c50c819419f44aa55acc58476dad4754a16884cef06012d02b0722f","impliedFormat":1},{"version":"4dc64902cb86e677a928293593658fbf53388f9a30d2b934140c70a7267b07ec","impliedFormat":1},{"version":"cb4fd56539a61d163ea9befe6b0292c32aa68a104c1f68f61416f1bc769bcfba","impliedFormat":1},{"version":"0d852bdc2b72b22393a8eebe374ee3efe3e0d44e630037b5e1b6087985388e62","impliedFormat":1},{"version":"b6c9a2deefb6a57ff68d2a38d33c34407b9939487fc9ee9f32ba3ecf2987a88a","impliedFormat":1},{"version":"f6b371377bab3018dac2bca63e27502ecbd5d06f708ad7e312658d3b5315d948","impliedFormat":1},{"version":"faa72893e85cb8ebb1dafde6b427e5204e60bb5f3ee6576bb64c01db1f255bc8","impliedFormat":1},{"version":"95b7ed47b31a6eaddcdd853ee0871f2bb61e39ce36a01d03dfafb83766f6c10c","impliedFormat":1},{"version":"19287d6b76288c2814f1633bdd68d2b76748757ffd355e73e41151644e4773d6","impliedFormat":1},{"version":"fc4e6ec7dade5f9d422b153c5d8f6ad074bd9cc4e280415b7dc58fb5c52b5df1","impliedFormat":1},{"version":"3aea973106e1184db82d8880f0ca134388b6cbc420f7309d1c8947b842886349","impliedFormat":1},{"version":"765e278c464923da94dda7c2b281ece92f58981642421ae097862effe2bd30fa","impliedFormat":1},{"version":"de260bed7f7d25593f59e859bd7c7f8c6e6bb87e8686a0fcafa3774cb5ca02d8","impliedFormat":1},{"version":"d95c4eaad4df9e564859f0c74a177fa0b2e5f8a155939b52580566ab6b311c3f","impliedFormat":1},{"version":"7192a6d17bfa06e83ba14287907b7c671bef9b7111c146f59c6ea753cfc736b9","impliedFormat":1},{"version":"5156d3d392db5d77e1e2f3ea723c0a8bd3ca8acffe3b754b10c84b12f55a6e10","impliedFormat":1},{"version":"a6494e7833ee04386a9f0c686726f7cb05f52f6e069d9293475ccb1e791ee0da","impliedFormat":1},{"version":"d9af0c89a310256851238f509a22aa1071a464d35dc22ea8c2a0bae42dd81bc5","impliedFormat":1},{"version":"291642a66e55e6ca38b029bc6921c7301f5c7b7acf21ae588a5f352e6c1f6d58","impliedFormat":1},{"version":"43cd7c37298b051d1ce0307d94105bcd792c6c7e017282c9d13f1097c27408e8","impliedFormat":1},{"version":"e00d8cce6e2e627654e49c543b582568ad0bf27c1d4ad1018d26aff78d7599df","impliedFormat":1},{"version":"ed13354f0d96fb6d5878655b1fead51722b54875e91d5e53ef16de5b71a0e278","impliedFormat":1},{"version":"fcb934d0fcdee06a8571bd90aa3a63aa288c784b3ebcecfe7ae90d3104d321f4","impliedFormat":1},{"version":"af682dfabe85688289b420d939020a10eb61f0120e393d53c127f1968b3e9f66","impliedFormat":1},{"version":"0dca04006bf13f72240c6a6a502df9c0b49c41c3cab2be75e81e9b592dcd4ea8","impliedFormat":1},{"version":"7dc0b5e3d7be8e1f451f0545448c2eaa02683f230797d24434b36f9820d5a641","impliedFormat":1},{"version":"247af61cdc3f4ec7876b9e993a2ecdd069e10934ff790c9cee5811842bff49eb","impliedFormat":1},{"version":"4be8c2c63d5cd1381081d90021ddfaef106881df4129eddeeaba906f2d0f75d0","impliedFormat":1},{"version":"012f621d6eb28172afb1b2dc23898d8bc74cf35a6d76b63e5581aa8e50fa71b3","impliedFormat":1},{"version":"3a561fa91097e4580c5349ce72e69d247c31c11d29f39e1d0bd3716042ff2c0b","impliedFormat":1},{"version":"bc9981a79dda3badea61d716d368a280c370267e900f43321f828495f4fef23c","impliedFormat":1},{"version":"2ed3b93d55aea416d7be8d49fe25016430caab0fe64c87d641e4c2c551130d17","impliedFormat":1},{"version":"3d66dfc31dd26092c3663d9623b6fc5cec90878606941a19e2b884c4eacd1a24","impliedFormat":1},{"version":"6916c678060af14a8ce8d78a1929d84184e9507fba7ab75142c1bcb646e1c789","impliedFormat":1},{"version":"3eea74afae095028597b3954bde69390f568afc66d457f64fff56e416ea47811","impliedFormat":1},{"version":"549fb2d19deb7d7cae64922918ddddf190109508cc6c7c47033478f7359556d2","impliedFormat":1},{"version":"e7023afc677a74f03f8ccb567532fe9eedd1f5241ee74be7b75ac2336514f6f6","impliedFormat":1},{"version":"ff55505622eac7d104b9ab9570f4cc67166ba47dd8f3badfb85605d55dd6bdc9","impliedFormat":1},{"version":"102fac015b1eebfa13305cb90fd91a4f0bbcabb10f2343556b3483bbb0a04b62","impliedFormat":1},{"version":"18a1f4493f2dbad5fd4f7d9bfba683c98cf5ed5a4fa704fa0d9884e3876e2446","impliedFormat":1},{"version":"f57e6707d035ab89a03797d34faef37deefd3dd90aa17d90de2f33dce46a2c56","impliedFormat":1},{"version":"cc8b559b2cf9380ca72922c64576a43f000275c72042b2af2415ce0fb88d7077","impliedFormat":1},{"version":"1a337ca294c428ba8f2eb01e887b28d080ee4a4307ae87e02e468b1d26af4a74","impliedFormat":1},{"version":"310fe80ff40a158c2de408efbe9de11e249c53d2de5e33ca32798e6f3fbc8822","impliedFormat":1},{"version":"d6ce96c7bb34945c1d444101f44e0f8ba0bba8ab7587a6cc009a9934b538c335","impliedFormat":1},{"version":"1b10a2715917601939a9288d49beccd45b591723256495b229569cd67bbe48a8","impliedFormat":1},{"version":"7498dfdeed2e003ec49cdf726ff6c293002d1d7fdadbc398ce8aafe6d0688de7","impliedFormat":1},{"version":"8492306a4864a1dc6fc7e0cc0de0ae9279cbd37f3aae3e9dc1065afcdc83dddc","impliedFormat":1},{"version":"9c86abbc4fd0248f56abc12aaecd76854517389af405d5ec2eb187fdb00a606f","impliedFormat":1},{"version":"9ffd906f14f8b059d6b95d6640920f530507e596e548f7a595da58ab66e3ce76","impliedFormat":1},{"version":"1884bccc10ce40adca470c2c371c1c938b36824f169c56f7f43d860416ca0a4c","impliedFormat":1},{"version":"986b55b4f920c99d77c1845f2542df6f746cb5adc9ab93eb1545a7e6ef37590d","impliedFormat":1},{"version":"cd00906068b81fbd8a22d021580ac505e272844408174520fafed0ae00627a5d","impliedFormat":1},{"version":"69fab68a769c17a52a24b868aeb644f3ee14abaa5064115f575ddd59231105ce","impliedFormat":1},{"version":"e181eb86b2caf80fe18c72efce6b913bc226e4a69a5456eaf4f859f1c29c6fd6","impliedFormat":1},{"version":"93f7871380478bc6acf02ad9f3dc7da0c21997caebbe782eb93a11b7bd06a46d","impliedFormat":1},{"version":"d00279ab020713264f570d5181c89ca362b7de8abddf96733de86bce0eca082c","impliedFormat":1},{"version":"f7db473f1d5d2a124f14886ac9dbfeccfbb94a98bbe1610a47c30c2933afa279","impliedFormat":1},{"version":"f44cf6c6d608ef925831e550b19841b5d71bd87195bd346604ff05644fb0d29c","impliedFormat":1},{"version":"154f23902d7a3fcdace4c20b654da7355fee4b7f807d1f77d6c9a24a8756013a","impliedFormat":1},{"version":"562f4f3c75a497d3ad7709381f850bb8c7646a9c6e94fdf8e91928e23d155411","impliedFormat":1},{"version":"4583380b676ee59b70a9696b42acfa986cd5f32430f37672e04f31f40b05df74","impliedFormat":1},{"version":"ad0a13f35a0d88803979f8ea9050ad7441e09d21a509abf2f303e18c1267af17","impliedFormat":1},{"version":"ba9781c718ab3d09cbde1216029072698d2da6135f0d2f856ba387d6caceb13e","impliedFormat":1},{"version":"d7c597c14698ba5fc8010076afa426f029b2d8edabb5073270c070cc645ba638","impliedFormat":1},{"version":"bd2afc69cf1d85cd950a99813bc7eff007d8afa496e7c2142a845cd1181d0474","impliedFormat":1},{"version":"558b462b23ea186d094dbff158d652acd58c0988c9fd53af81a8903412aa5901","impliedFormat":1},{"version":"0e984ae642a15973d652fd7b0d2712a284787d0d7a1db99aa49af0121e47f1df","impliedFormat":1},{"version":"0ad53ee208a23eef2a5cb3d85f2a9dc1019fd5e69179c4b0c02dc56c40d611c4","impliedFormat":1},{"version":"7a6898b26947bd356f33f4efef3eb23e61174d85dca19f41a8780d6bb4bfb405","impliedFormat":1},{"version":"9fe30349d26f34e85209fb06340bac34177f7eae3d6bb69dc12cd179d2c13ddf","impliedFormat":1},{"version":"d568c51d2c4360fd407445e39f4d86891dba04083402602bf5f24fd3969cacbb","impliedFormat":1},{"version":"b2483a924349ec835f4d778dd6787447a2f8bfbb651164851bff29d5b3d990a6","impliedFormat":1},{"version":"aae66889332cff4b2f7586c5c8758abc394d8d1c48f9b04b0c257e58f629d285","impliedFormat":1},{"version":"0f86c85130c64d6dbe6a9090bb3df71c4b0987bce4a08afe1ac4ece597655b9c","impliedFormat":1},{"version":"0ce28ad2671baed24517e1c1f4f2a986029137635bce788ee8fb542f002ac5b8","impliedFormat":1},{"version":"cd12e4fe77d24db98d66049360a4269299bcfb9dc3a1b47078ab1b4afac394cb","impliedFormat":1},{"version":"1589e5ac394b2b2e64264da3e1798d0e103b4f408f5bae1527d9e706f98269c7","impliedFormat":1},{"version":"ff8181aa0fde5ec2d737aecc5ebaa9e881379041f13e5ce1745620e17f78dcf9","impliedFormat":1},{"version":"0b2e54504b568c08df1e7db11c105786742866ba51e20486ab9b2286637d268f","impliedFormat":1},{"version":"bc1ffc3a2dca8ee715571739be3ec74d079e60505e1d0d2446e4978f6c75ba5c","impliedFormat":1},{"version":"770a40373470dff27b3f7022937ea2668a0854d7977c9d22073e1c62af537727","impliedFormat":1},{"version":"a0f8ce72cb02247a112ce4a2fa0f122478a8e99c90a5e6b676b41a68b1891ad2","impliedFormat":1},{"version":"6e957ea18b2bf951cf3995d115ad9bfa439e8d891aeb1afc901d793202c0b90d","impliedFormat":1},{"version":"a1c65bd78725f9172b5846c3c58ddf4bcbb43a30ab19e951f0102552fbfd3d5d","impliedFormat":1},{"version":"04718c7325e7df4bac9a6d026a0a2bd5a8b54501f274aaf93a03b5d1d0635bd1","impliedFormat":1},{"version":"405205f932d4e0ce688a380fa3150b1c7ff60e7fc89909e11a33eab7af240edb","impliedFormat":1},{"version":"566fc1a6616a522f8b45082032a33e6d37ff7df3f7d4d63c3cce9017d0345178","impliedFormat":1},{"version":"3b699b08db04559803b85aa0809748e61427b3d831f77834b8206e9f2ed20c93","impliedFormat":1},{"version":"b27242dd3af2a5548d0c7231db7da63d6373636d6c4e72d9b616adaa2acef7e1","impliedFormat":1},{"version":"e0ee7ba0571b83c53a3d6ec761cf391e7128d8f8f590f8832c28661b73c21b68","impliedFormat":1},{"version":"072bfd97fc61c894ef260723f43a416d49ebd8b703696f647c8322671c598873","impliedFormat":1},{"version":"e70875232f5d5528f1650dd6f5c94a5bed344ecf04bdbb998f7f78a3c1317d02","impliedFormat":1},{"version":"8e495129cb6cd8008de6f4ff8ce34fe1302a9e0dcff8d13714bd5593be3f7898","impliedFormat":99},{"version":"8079d851ffa1dbe193fe36643b3d67f4fdf8d360df4c900065788eff44bc15a7","impliedFormat":1},"32c5de4841cf12dbc9e38aa628f9738e0b2ae0d552ba98e8c20decefec04afd7","731330fd1896d45e2ed00cf09ff0037580d5abc6b83c171f0f3b413142cf49d0",{"version":"91b4ce96f6ad631a0a6920eb0ab928159ff01a439ae0e266ecdc9ea83126a195","impliedFormat":1},{"version":"88efe27bebddb62da9655a9f093e0c27719647e96747f16650489dc9671075d6","impliedFormat":1},{"version":"e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","impliedFormat":1},{"version":"8ee6b07974528da39b7835556e12dd3198c0a13e4a9de321217cd2044f3de22e","impliedFormat":1},{"version":"5e1d8a07714f909beaaaf4d0ffe507345a99f2db967493dd8ebbfbb4f18e83ca","impliedFormat":1},{"version":"5f12132800d430adbe59b49c2c0354d85a71ada7d756e34250a655baa8ad4ae5","impliedFormat":1},{"version":"1996d1cd7d585a8359a35878f67abdd73cc35b1f675c9c6b147b202fdd8dfc3f","impliedFormat":1},{"version":"5a50dbfc042633fdb558e53b30b0a005e0b78e142a1fe1147a8d6618ca69ec99","impliedFormat":1},{"version":"a8b0f3d8b205c32395727230bff7849c947150fdd6288855cbe75bc662c4e236","impliedFormat":1},{"version":"6fb55bb881f4a7167649e6925df076f64a1db2f50632df4674e4621a9445c954","impliedFormat":1},{"version":"4374cefdde5c6e9bad52b0436e887b8325b8f407c12035194ad02c28f1553a3a","impliedFormat":1},{"version":"9b70cad270593f676aecfe4d1611dc766464f0b8138527b0ebbf1ff773578d69","impliedFormat":1},{"version":"b4f85bfb7e831703ac81737361842f1ae4d924b42c5d1af2bff93cca521de4d1","impliedFormat":1},{"version":"5fea76008a2d537ca09d569ffae4e08b991b4a5ff90e9f4783bc983584454ede","impliedFormat":1},{"version":"21575cdeaca6a2c2a0beb8c2ecbc981d9deb95f879f82dc7d6e325fe8737b5ba","impliedFormat":1},{"version":"40ec58f0fadd0b3981b3d383e1c12fa0680115ae9f018387fc2cfc0bbcf23204","impliedFormat":1},{"version":"849b9e7283b7309a4556c9b90bb8e2dfc27751f157798065bbc513dcddb09a8c","impliedFormat":1},{"version":"10e109212c7be8a9f66e988e5d6c2a8900c9d14bf6beadf5fa70d32ada3425cf","impliedFormat":1},{"version":"2b821aeb31e690092f8eae671dd961a9d0fd598ff4883ce0a600c90e9e8fa716","impliedFormat":1},{"version":"26602933b613e4df3868a6c82e14fffa2393a08531cb333ed27b151923462981","impliedFormat":1},{"version":"f57a588d8f6b3ce5c8b494f2dc759a8885eaee18e80a4952df47de45403fedbe","impliedFormat":1},{"version":"34735727b3fe7a0ed0651a0f88d06449163d1989a2b2de7f047473adc7c1c383","impliedFormat":1},{"version":"a5b13abc88ab3186e713c445e59e2f6eee20c6167943517bc2f56985d89b8c55","impliedFormat":1},{"version":"3844b45a774bafe226260cf0772376dce72121ebb801d03902c70a7f11da832b","impliedFormat":1},{"version":"7ae65fe95b18205e241e6695cb2c61c0828d660aca7d08f68781b439a800e6b8","impliedFormat":1},{"version":"e025419f23ccceafd7f5ab3141a86a6bb9fc3b33c44fe62b288d7b19baffc95b","impliedFormat":1},{"version":"369b7270eeeb37982203b2cb18c7302947b89bf5818c1d3d2e95a0418f02b74e","impliedFormat":1},{"version":"94f95d223e2783b0aef4d15d7f6990a6a550fe17d099c501395f690337f7105e","impliedFormat":1},{"version":"039bd8d1e0d151570b66e75ee152877fb0e2f42eca43718632ac195e6884be34","impliedFormat":1},{"version":"89fb1e22c3c98cbb86dc3e5949012bdae217f2b5d768a2cc74e1c4b413c25ad2","impliedFormat":1},"e3766d651d9e8b2dc1ef6b42040e2b8500dbc35ea05f94bd3548239fb7e9ebc4","4c52e4662840c5312382f904a5629fe32da0a93a476938c13b4c3f8d2f8442fb","794ea01438f2c0c91859b442710470da7332f493d520e62be6f031346b461f5a","f5c6d105cd84f4a39258ed35653775388077969d202258bd26fc6212e6631b88","fa3e24c36adfdca1b6ca732aa1f99475b41a3d32abfd205423ce4732e77e9fd5","97f8cf303d9f9f36272ecf6e66152a6fa132bade8c11cb0c4e0c3444480c116d","eb999fa28b5dd642d413f8b88e6f1393cf7d2a9ec80a077ab2cc24872b58f3c5","edf2d02dd59cb5d59074e8f6b6334e5f270ac89487dd2568d6fb3bdf2ba959a7","39fe21e961a8b84575071c3707c876eb256b5ef73be87bed86824b5668f6381e","d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7","58031f2a70b1f5e0c4181f3cd8aaab83f6d7023500e60904a0f9f81588e9ed10",{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d759cc99e081cacd0352467a0c24e979a6ef748329aa6ddea2d789664580201","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"314607151cc203975193d5f44765f38597be3b0a43f466d3c1bfb17176dd3bd3","impliedFormat":1},{"version":"5beb6b7c030620fbc8cb339028593127dd0cf02bdc079fd94baf6d794a83e3d8","impliedFormat":1},{"version":"6edb7a98f0d3483a88041013608fda8e02c9f2f5361c327ad090dc522fcdbeff","affectsGlobalScope":true,"impliedFormat":1},{"version":"53e074a281b50dc3bbdddac7a1c2946100c80a7f5c3161452ab98b31db2e31ba","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"6a121c24083c9f164330b85ce7aa8ef97b64fedaf8694ec14cddc34d921ad209","impliedFormat":1},{"version":"49ae37a1b5de16f762c8a151eeaec6b558ce3c27251052ef7a361144af42cad4","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7115f1157a00937d712e042a011eb85e9d80b13eff78bac5f210ee852f96879d","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"31bd1a31f935276adf90384a35edbd4614018ff008f57d62ffb57ac538e94e51","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"8c61ed247159a025ccc4c3702862b97ef3dbac5460e87f57205f6c37c9e7edbd","impliedFormat":1},{"version":"b05b9ef20d18697e468c3ae9cecfff3f47e8976f9522d067047e3f236db06a41","affectsGlobalScope":true,"impliedFormat":1},{"version":"f434b00addaec462abb14aee113fefdb22ba5a60044b782b1b05f7ae489aa335","affectsGlobalScope":true,"impliedFormat":1},{"version":"3ba38f41c6344cc89270450751e89d0cb60279af2db0e20f0b6858994e6785a8","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4b5520626a9a1333f2518839db11f9649ba853e7cc7e9a25eb6addb5d1307e9","impliedFormat":1},{"version":"06e0e96bcdc4bf6032b9e0b83451bcb1148880772b337842de991164e6f00b34","impliedFormat":1},{"version":"c61c37176b7a6c043df76f437e402ea9abc9f19e9652a0d37629dfc8b7e83497","impliedFormat":1},{"version":"5602c92b934a62d674506c40755f3ca46e3c4a6dfbf01674289714a51f238b40","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"067f76ab5254b1bdfc94154730b7a30c12e3aad8b9d04ec62c0d6b7a1f40ea0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b08cdb4a66b9fe95fa19b3133036c91fe9314ec4e2bff533dd1d60fd81e1bed","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"f40aad6c91017f20fc542f5701ec41e0f6aeba63c61bbf7aa13266ec29a50a3b","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"b5a907deaba678e5083ccdd7cc063a3a8c3413c688098f6de29d6e4cefabc85f","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"998da6b85ebace9ebea67040dd1a640f0156064e3d28dbe9bd9c0229b6f72347","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"70116e9fcfd0ba759c41ce45ce89cf7a286f3a77bcabd1da6ea2d54325d1bf58","impliedFormat":99},{"version":"f60e3e3060207ac982da13363181fd7ee4beecc19a7c569f0d6bb034331066c2","impliedFormat":1},{"version":"17230b34bb564a3a2e36f9d3985372ccab4ad1722df2c43f7c5c2b553f68e5db","impliedFormat":1},{"version":"6e5c9272f6b3783be7bdddaf207cccdb8e033be3d14c5beacc03ae9d27d50929","impliedFormat":1},{"version":"9b4f7ff9681448c72abe38ea8eefd7ffe0c3aefe495137f02012a08801373f71","impliedFormat":1},{"version":"0dfe35191a04e8f9dc7caeb9f52f2ee07402736563d12cbccd15fb5f31ac877f","impliedFormat":1},{"version":"798367363a3274220cbed839b883fe2f52ba7197b25e8cb2ac59c1e1fd8af6b7","impliedFormat":1},{"version":"fe62b82c98a4d5bca3f8de616b606d20211b18c14e881bb6856807d9ab58131b","impliedFormat":1},{"version":"4ff9d7eb230ddb351700f4dd20ecebc5088fbfb677c987382ae67bb9035aee65","impliedFormat":1},{"version":"5245557384c98f06283eae8d5f198bac3691325ec30342ea518690aa5b7f458f","impliedFormat":1},{"version":"11f2d766a2a86fd0807de76a338d933f0125a62296a1945b4c7b8b30b89e9933","impliedFormat":1},{"version":"9357f2a862f58cac431727600ff7a63820b74ec7dd2141cc430e00afe99d04ae","impliedFormat":1},{"version":"72ce7ba2f77098e8220675c58804130418ec145394c2b8e61bcb7d22256ee963","impliedFormat":1},{"version":"bfbdf9e6f7ed0b5f551329bab482dcfcadb90a387680a5b25354db34520742fe","impliedFormat":1},{"version":"1fb54b0c01853e4786cd4fdb1afa54a3eee07ed0c0d695e0df3fc951565f9d03","impliedFormat":1},{"version":"62275d2dfd8a8e1762859487fe95da987c2e484a0eb8c57eb07947ecd9633336","impliedFormat":1},{"version":"342fc8357664cc05cbf318bdad7289e09626b29234b389d33132a8711d270ee7","impliedFormat":1},{"version":"9b650b8240a1fab29b684ab3852b5a49a89972509a9e664c96709d1f113dfa43","impliedFormat":1},{"version":"5f3b5d4617feb57cf58f01f6bb30ac77fd4af808e512d264642e741d7214d400","impliedFormat":1},{"version":"fd5e509e0e309a3791837e07f6199a31b9cacb7e9d60efd16d62a5930334f11a","impliedFormat":1},{"version":"9cc504cd3f0636fdd019964ecdf530f45bce66a52f75b3b01f76a98e7b328a3d","impliedFormat":1},{"version":"a514065dd5c021dbed15241db3369b42b41a2102cd09b16ff2ffc2c422aae80c","impliedFormat":1}],"root":[101,281,609,610,613,615,616,[620,623],683,684,[1443,1445],1447,1448,1453,1454,1456,[1466,1470],[1474,1509],[1511,1558],[1560,1600],[1624,1692],[1694,1786],[1789,1791],1794,[1842,1881],[2008,2016],[2185,2187],[2195,2197],[2204,2207],[2212,2215],[2218,2230],[2252,2282],[2284,2310],[2312,2334],[2368,2386],2645,2646,[2677,2687]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":4},"referencedMap":[[1455,1],[2686,2],[609,3],[2687,4],[101,5],[281,6],[610,7],[613,8],[615,9],[1447,10],[1448,11],[1454,12],[2205,13],[2221,14],[2219,15],[2223,16],[2227,17],[2226,18],[2224,19],[2225,20],[1456,21],[2230,22],[2371,23],[2212,24],[621,25],[2215,26],[2373,27],[2378,28],[1509,29],[2381,30],[622,25],[1511,31],[684,32],[2382,33],[2383,27],[2321,34],[2327,35],[2369,36],[2377,37],[2325,38],[2332,39],[2374,40],[2333,41],[2331,42],[2370,43],[2368,44],[2261,45],[2263,46],[2277,47],[2254,48],[2265,49],[2255,50],[2260,51],[2276,52],[2267,53],[2268,54],[2385,55],[2273,56],[2274,57],[2275,58],[2318,59],[2320,60],[2319,61],[2322,62],[2312,63],[2324,64],[2314,65],[2317,66],[1744,67],[2315,68],[2316,69],[2323,70],[2313,71],[2278,72],[2290,73],[2295,45],[1705,74],[1706,75],[1708,76],[1709,76],[1707,77],[2296,78],[2294,79],[1710,80],[2281,81],[2280,82],[2291,83],[2292,84],[2293,85],[2287,86],[2279,87],[2297,88],[2308,89],[2309,90],[2310,91],[2301,92],[2298,93],[2300,94],[2307,95],[2306,96],[2305,97],[2299,98],[2304,99],[2204,100],[2228,101],[2197,102],[2213,103],[2214,104],[2334,105],[2259,106],[2384,107],[2195,108],[2372,109],[2386,110],[2326,111],[2262,112],[2229,113],[2379,114],[2376,115],[1842,116],[2645,117],[2222,118],[2330,109],[2646,112],[2286,119],[2196,120],[2269,121],[2264,122],[2285,123],[2677,124],[2678,113],[2270,125],[2258,116],[2679,109],[2680,126],[1843,127],[2284,128],[2329,113],[2220,129],[2328,109],[2380,130],[2252,131],[2271,118],[2256,132],[2218,133],[2303,122],[2375,50],[2288,113],[2206,134],[2257,135],[2302,136],[2289,113],[2681,118],[2272,113],[2282,118],[2682,126],[2684,137],[2683,116],[2207,116],[1723,138],[1495,11],[1724,11],[1642,139],[1689,11],[1725,11],[1726,11],[1649,11],[1570,140],[620,141],[1668,11],[1478,142],[1474,143],[1728,144],[1703,145],[1701,146],[1699,147],[1692,148],[1512,149],[1691,150],[1698,151],[1700,149],[1641,152],[1702,153],[1640,154],[1729,11],[1730,11],[2266,11],[1765,155],[1769,156],[1770,103],[1784,157],[1785,158],[1766,159],[1786,160],[1767,161],[1773,162],[1774,103],[1775,103],[1776,103],[1777,103],[1778,163],[1780,164],[1781,165],[1782,166],[1783,167],[1732,168],[1704,169],[1733,170],[1735,171],[1736,103],[1737,172],[1738,103],[1739,103],[1741,173],[1742,174],[1751,175],[1752,159],[1753,103],[1757,176],[1759,177],[1760,103],[1731,103],[1745,103],[1762,178],[1763,103],[1764,179],[1713,180],[1715,181],[1712,182],[1714,182],[1711,183],[1499,184],[1535,185],[1504,186],[1496,187],[1502,188],[1498,189],[1500,184],[1503,190],[1497,191],[1501,192],[1466,11],[1494,184],[1789,193],[1445,194],[683,195],[623,11],[1750,11],[1513,11],[1558,196],[1639,197],[1600,198],[1626,199],[1625,200],[1790,11],[1638,201],[1637,202],[1627,203],[1628,203],[1636,204],[1635,205],[1633,205],[1629,203],[1632,205],[1634,205],[1555,206],[1554,207],[1520,208],[1521,209],[1542,210],[1547,211],[1543,208],[1546,208],[1544,208],[1545,212],[1553,213],[1519,214],[1541,215],[1536,216],[1537,217],[1538,217],[1539,216],[1540,217],[1550,218],[1548,208],[1549,219],[1534,220],[1552,221],[1551,222],[1530,223],[1533,224],[1532,224],[1523,225],[1524,226],[1522,227],[1531,208],[1557,228],[1514,229],[1518,230],[1515,208],[1516,208],[1517,208],[1556,208],[1444,231],[1443,232],[1734,233],[1483,234],[1484,235],[1485,236],[1482,237],[1468,238],[1643,239],[1690,240],[1688,11],[1682,241],[1683,242],[1681,11],[2685,243],[1845,244],[1847,245],[1846,11],[1849,246],[1848,247],[1791,103],[1672,11],[1850,248],[1651,249],[1652,250],[1656,251],[1653,250],[1655,252],[1748,253],[1746,254],[1657,255],[1650,256],[1648,257],[1749,258],[1506,259],[1654,11],[1696,260],[1695,261],[1754,262],[1755,263],[1480,264],[1756,265],[1467,11],[1505,266],[1758,267],[1743,11],[1747,11],[1508,268],[1453,269],[1481,238],[1470,11],[1851,270],[1852,270],[1526,271],[1529,272],[1527,273],[1525,273],[1528,274],[1560,275],[1853,11],[1855,103],[1854,11],[1860,276],[1862,277],[1863,278],[1768,11],[1857,279],[1861,280],[1858,103],[1859,281],[1856,11],[1564,11],[1864,282],[1679,283],[1673,284],[1674,285],[1677,286],[1675,287],[1676,285],[1670,288],[1678,289],[1671,11],[1669,290],[1493,291],[1630,11],[1631,292],[1771,293],[1469,268],[1779,294],[1487,295],[1492,296],[1491,293],[1490,273],[1489,293],[1865,142],[1772,297],[1477,273],[1476,298],[1507,299],[1488,293],[1866,300],[1727,301],[616,302],[1644,303],[1647,11],[1867,304],[1662,305],[1645,306],[1685,307],[1684,308],[1686,309],[1665,310],[1646,303],[1680,311],[1667,312],[1664,313],[1663,314],[1687,315],[1694,316],[1661,317],[1658,318],[1660,319],[1659,320],[1561,264],[1873,321],[1868,11],[1869,11],[1870,11],[1871,11],[1872,11],[1874,322],[1875,323],[1876,324],[1877,325],[1878,326],[1879,327],[1880,328],[1566,329],[1598,330],[1597,331],[1881,332],[1565,11],[1567,329],[1568,333],[1571,334],[1589,335],[1591,335],[1593,335],[1595,335],[1573,335],[1575,335],[1577,335],[1579,335],[1581,335],[1583,335],[1585,335],[1587,335],[1569,336],[1572,337],[1590,338],[1592,339],[1594,340],[1596,341],[1574,342],[1576,343],[1578,344],[1580,345],[1582,346],[1584,347],[1586,348],[1588,349],[1562,264],[1563,11],[1599,350],[1479,351],[2009,352],[2008,353],[1624,354],[2253,355],[2010,356],[1722,357],[1721,358],[1717,359],[1718,359],[1719,180],[1720,180],[2011,360],[1844,361],[2012,80],[1761,362],[2013,363],[1740,364],[2014,3],[2015,3],[2016,3],[1697,11],[2185,365],[2186,11],[2187,11],[1475,11],[1666,11],[1716,11],[1486,11],[1794,366],[791,367],[1128,368],[1129,369],[1130,370],[1133,371],[1131,370],[1132,372],[713,373],[706,374],[707,374],[708,375],[709,374],[710,375],[711,374],[715,376],[712,377],[714,374],[703,378],[705,379],[1061,374],[698,380],[699,380],[700,380],[704,380],[701,380],[702,380],[1060,381],[1072,3],[1073,3],[1074,382],[716,3],[1108,3],[1109,383],[1063,384],[718,385],[719,386],[755,387],[717,388],[720,385],[721,385],[753,389],[754,390],[756,386],[757,386],[758,386],[759,386],[770,386],[760,386],[761,386],[762,386],[774,386],[764,386],[765,386],[789,391],[782,386],[771,386],[784,386],[772,386],[773,386],[763,386],[783,386],[781,386],[785,386],[786,386],[787,386],[776,386],[777,386],[778,386],[766,386],[767,386],[775,386],[768,386],[769,386],[788,386],[779,386],[780,386],[790,392],[697,393],[685,3],[1059,394],[1043,395],[1058,396],[1062,397],[1121,398],[1122,3],[1123,3],[1126,399],[1124,3],[1125,3],[1134,400],[1044,3],[86,401],[612,402],[1471,3],[1472,403],[1473,404],[1900,405],[1915,406],[1914,407],[1916,408],[1903,409],[1895,410],[1907,411],[1909,412],[1910,413],[1908,3],[1906,414],[1913,415],[1921,416],[1936,417],[1981,418],[1918,419],[1937,420],[1938,420],[1939,420],[1923,416],[1940,420],[1941,420],[1924,421],[1942,420],[1943,422],[1944,420],[1945,420],[1946,420],[1947,420],[1922,416],[1935,423],[1982,424],[1925,416],[1983,425],[1948,420],[1949,422],[1984,426],[1950,422],[1985,426],[1980,427],[1951,420],[1986,428],[1952,420],[1987,424],[1988,426],[1953,420],[1955,429],[1954,430],[1989,431],[1956,420],[1957,420],[1958,420],[1959,420],[1960,420],[1926,416],[1990,432],[1961,433],[1963,434],[1962,430],[1991,424],[1992,426],[1927,416],[1964,435],[1993,426],[1965,420],[1994,426],[2006,436],[1966,420],[1928,416],[1995,437],[1967,435],[1996,426],[1968,430],[1969,422],[1997,438],[1970,439],[1998,440],[1971,441],[1929,416],[1972,430],[1973,420],[1974,442],[1999,443],[1930,444],[1931,445],[2000,432],[1975,420],[2001,432],[1976,420],[1977,446],[1978,435],[2002,432],[1932,416],[2003,432],[2004,432],[1933,416],[1934,416],[1911,447],[2005,432],[1979,430],[1919,448],[1905,449],[2007,450],[1917,451],[1896,3],[1904,3],[1897,3],[1898,3],[1899,452],[1912,453],[1901,3],[1902,454],[1920,455],[614,456],[353,3],[1795,457],[1799,458],[1804,459],[1808,460],[1805,460],[1806,461],[1807,462],[1798,463],[1813,464],[1796,457],[1803,465],[1814,457],[1800,460],[1815,464],[1801,460],[1817,466],[1818,467],[1816,460],[1812,468],[1819,469],[1821,470],[1822,471],[1823,403],[1824,472],[1810,473],[1802,460],[1797,457],[2216,457],[1825,461],[1826,474],[1811,463],[1827,463],[1828,475],[1829,460],[2217,476],[1830,463],[1831,457],[1832,463],[1833,474],[1834,477],[1836,478],[1835,479],[1837,480],[1838,481],[1820,460],[1809,3],[85,3],[2756,482],[2780,483],[2781,484],[2030,485],[2031,485],[2032,486],[2029,3],[2062,487],[2155,487],[2163,488],[2022,3],[2060,489],[2061,488],[2065,490],[2066,490],[2067,491],[2033,3],[2173,488],[2063,488],[2068,492],[2034,3],[2069,493],[2070,493],[2071,494],[2035,3],[2174,3],[2175,3],[2176,3],[2177,3],[2178,3],[2172,495],[2017,3],[2064,3],[2154,496],[2072,497],[2073,497],[2074,498],[2036,3],[2075,499],[2076,499],[2079,500],[2077,501],[2078,501],[2037,3],[2080,502],[2081,502],[2082,503],[2038,3],[2083,504],[2084,504],[2086,505],[2085,506],[2039,3],[2182,507],[2184,508],[2158,495],[2164,3],[2019,509],[2018,3],[2160,3],[2162,3],[2161,3],[2180,510],[2181,510],[2183,511],[2040,3],[2087,512],[2088,513],[2089,512],[2090,513],[2091,514],[2041,3],[2092,515],[2093,515],[2094,516],[2042,3],[2095,517],[2096,518],[2097,517],[2098,518],[2100,519],[2099,520],[2043,3],[2101,521],[2102,522],[2103,521],[2104,522],[2105,523],[2044,3],[2106,524],[2107,525],[2109,526],[2108,527],[2045,3],[2110,528],[2046,3],[2113,529],[2114,529],[2115,530],[2047,3],[2116,531],[2117,532],[2118,533],[2048,3],[2119,534],[2120,534],[2121,535],[2049,3],[2157,487],[2168,536],[2169,537],[2122,538],[2123,538],[2124,539],[2050,3],[2125,540],[2126,540],[2127,541],[2051,3],[2128,542],[2129,542],[2130,543],[2131,543],[2133,544],[2132,545],[2052,3],[2135,546],[2134,547],[2053,3],[2136,548],[2137,548],[2138,549],[2054,3],[2170,488],[2139,550],[2140,550],[2141,551],[2055,3],[2156,487],[2142,552],[2143,552],[2144,553],[2056,3],[2027,554],[2021,555],[2023,556],[2024,555],[2025,555],[2026,3],[2020,3],[2159,3],[2171,3],[2179,488],[2165,557],[2166,557],[2167,558],[2057,3],[2111,559],[2112,559],[2145,560],[2058,3],[2146,561],[2148,562],[2147,561],[2149,562],[2150,563],[2028,3],[2151,564],[2152,564],[2153,565],[2059,3],[1603,566],[1602,567],[1601,3],[634,568],[2335,568],[148,569],[149,569],[150,368],[106,570],[151,571],[152,572],[153,573],[104,3],[154,574],[155,575],[156,576],[157,577],[158,578],[159,579],[160,579],[162,3],[161,580],[163,581],[164,582],[165,583],[147,584],[105,3],[166,585],[167,586],[168,587],[201,588],[169,589],[170,590],[171,591],[172,592],[173,593],[174,594],[175,595],[176,596],[177,597],[178,598],[179,598],[180,599],[181,3],[182,3],[183,600],[185,601],[184,602],[186,603],[187,604],[188,605],[189,606],[190,607],[191,608],[192,609],[193,610],[194,611],[195,612],[196,613],[197,614],[198,615],[199,616],[200,617],[2788,618],[2787,619],[284,3],[296,620],[513,403],[297,621],[295,403],[514,622],[294,457],[2791,623],[2792,457],[2789,457],[2793,624],[2794,625],[2790,626],[2795,624],[2796,627],[2797,626],[2798,628],[2799,625],[2800,629],[2801,457],[2802,630],[292,631],[293,632],[282,3],[285,633],[510,403],[370,403],[511,3],[81,3],[83,634],[84,457],[624,3],[1451,635],[1452,636],[1450,637],[1449,3],[1141,638],[1140,3],[1138,639],[1139,640],[1069,3],[1107,641],[1094,642],[1092,3],[1093,643],[1095,644],[1096,645],[1097,646],[1098,647],[1106,648],[1099,647],[1100,645],[1101,649],[1102,646],[1103,647],[1104,646],[1105,646],[1118,650],[1116,651],[1788,652],[1787,653],[1117,654],[1066,639],[1067,639],[1068,655],[1065,656],[1070,657],[1071,400],[1115,658],[1075,659],[1112,660],[1113,661],[1114,662],[1137,663],[1446,643],[1119,664],[1089,665],[1087,666],[1110,667],[1064,664],[1090,668],[1111,669],[1088,670],[1091,664],[1120,3],[1127,671],[1083,672],[1079,3],[1081,673],[1078,674],[1076,3],[1086,675],[1082,676],[1080,677],[1084,678],[1077,3],[1085,3],[693,679],[689,3],[691,680],[688,681],[686,3],[696,682],[692,683],[690,684],[694,685],[687,3],[695,3],[2208,686],[611,402],[2733,687],[2754,3],[2748,688],[2735,689],[2751,690],[2734,691],[2732,692],[2736,693],[2730,694],[2737,3],[2755,695],[2738,696],[2747,697],[2749,698],[2731,699],[2753,700],[2750,701],[2752,702],[2739,703],[2745,704],[2742,705],[2744,706],[2743,707],[2741,708],[2740,3],[2746,709],[2729,710],[2778,3],[2777,3],[2771,711],[2758,712],[2757,713],[2727,714],[2759,715],[2725,716],[2760,3],[2779,717],[2761,718],[2728,3],[2770,719],[2772,720],[2726,721],[2776,722],[2774,723],[2773,724],[2775,725],[2762,726],[2768,727],[2765,728],[2767,729],[2766,730],[2764,731],[2763,3],[2769,732],[1841,733],[1840,734],[1792,3],[283,3],[82,3],[2474,735],[2453,736],[2550,3],[2454,737],[2390,735],[2391,3],[2392,3],[2393,3],[2394,3],[2395,3],[2396,3],[2397,3],[2398,3],[2399,3],[2400,3],[2401,3],[2402,735],[2403,735],[2404,3],[2405,3],[2406,3],[2407,3],[2408,3],[2409,3],[2410,3],[2411,3],[2412,3],[2414,3],[2413,3],[2415,3],[2416,3],[2417,735],[2418,3],[2419,3],[2420,735],[2421,3],[2422,3],[2423,735],[2424,3],[2425,735],[2426,735],[2427,735],[2428,3],[2429,735],[2430,735],[2431,735],[2432,735],[2433,735],[2435,735],[2436,3],[2437,3],[2434,735],[2438,735],[2439,3],[2440,3],[2441,3],[2442,3],[2443,3],[2444,3],[2445,3],[2446,3],[2447,3],[2448,3],[2449,3],[2450,735],[2451,3],[2452,3],[2455,738],[2456,735],[2457,735],[2458,739],[2459,740],[2460,735],[2461,735],[2462,735],[2463,735],[2466,735],[2464,3],[2465,3],[2388,3],[2467,3],[2468,3],[2469,3],[2470,3],[2471,3],[2472,3],[2473,3],[2475,741],[2476,3],[2477,3],[2478,3],[2480,3],[2479,3],[2481,3],[2482,3],[2483,3],[2484,735],[2485,3],[2486,3],[2487,3],[2488,3],[2489,735],[2490,735],[2492,735],[2491,735],[2493,3],[2494,3],[2495,3],[2496,3],[2643,742],[2497,735],[2498,735],[2499,3],[2500,3],[2501,3],[2502,3],[2503,3],[2504,3],[2505,3],[2506,3],[2507,3],[2508,3],[2509,3],[2510,3],[2511,735],[2512,3],[2513,3],[2514,3],[2515,3],[2516,3],[2517,3],[2518,3],[2519,3],[2520,3],[2521,3],[2522,735],[2523,3],[2524,3],[2525,3],[2526,3],[2527,3],[2528,3],[2529,3],[2530,3],[2531,3],[2532,735],[2533,3],[2534,3],[2535,3],[2536,3],[2537,3],[2538,3],[2539,3],[2540,3],[2541,735],[2542,3],[2543,3],[2544,3],[2545,3],[2546,3],[2547,3],[2548,735],[2549,3],[2551,743],[2387,735],[2552,3],[2553,735],[2554,3],[2555,3],[2556,3],[2557,3],[2558,3],[2559,3],[2560,3],[2561,3],[2562,3],[2563,735],[2564,3],[2565,3],[2566,3],[2567,3],[2568,3],[2569,3],[2570,3],[2575,744],[2573,745],[2574,746],[2572,747],[2571,735],[2576,3],[2577,3],[2578,735],[2579,3],[2580,3],[2581,3],[2582,3],[2583,3],[2584,3],[2585,3],[2586,3],[2587,3],[2588,735],[2589,735],[2590,3],[2591,3],[2592,3],[2593,735],[2594,3],[2595,735],[2596,3],[2597,741],[2598,3],[2599,3],[2600,3],[2601,3],[2602,3],[2603,3],[2604,3],[2605,3],[2606,3],[2607,735],[2608,735],[2609,3],[2610,3],[2611,3],[2612,3],[2613,3],[2614,3],[2615,3],[2616,3],[2617,3],[2618,3],[2619,3],[2620,3],[2621,735],[2622,735],[2623,3],[2624,3],[2625,735],[2626,3],[2627,3],[2628,3],[2629,3],[2630,3],[2631,3],[2632,3],[2633,3],[2634,3],[2635,3],[2636,3],[2637,3],[2638,735],[2389,748],[2639,3],[2640,3],[2641,3],[2642,3],[202,749],[102,750],[103,751],[1431,752],[1435,753],[1380,754],[1195,3],[1145,755],[1429,756],[1430,757],[1143,3],[1432,758],[1217,759],[1160,760],[1183,761],[1192,762],[1163,762],[1164,763],[1165,763],[1191,764],[1166,765],[1167,763],[1173,766],[1168,767],[1169,763],[1170,763],[1193,768],[1162,769],[1171,762],[1172,767],[1174,770],[1175,770],[1176,767],[1177,763],[1178,762],[1179,763],[1180,771],[1181,771],[1182,763],[1204,772],[1212,773],[1190,774],[1220,775],[1184,776],[1186,777],[1187,774],[1198,778],[1206,779],[1211,780],[1208,781],[1213,782],[1201,783],[1202,784],[1209,785],[1210,786],[1216,787],[1207,788],[1185,758],[1218,789],[1161,758],[1205,790],[1203,791],[1189,792],[1188,774],[1219,793],[1194,794],[1214,3],[1215,795],[1434,796],[1144,758],[1255,3],[1272,797],[1221,798],[1246,799],[1253,800],[1222,800],[1223,800],[1224,801],[1252,802],[1225,803],[1240,800],[1226,804],[1227,804],[1228,801],[1229,800],[1230,801],[1231,800],[1254,805],[1232,800],[1233,800],[1234,806],[1235,800],[1236,800],[1237,806],[1238,801],[1239,800],[1241,807],[1242,806],[1243,800],[1244,801],[1245,800],[1267,808],[1263,809],[1251,810],[1275,811],[1247,812],[1248,810],[1264,813],[1256,814],[1265,815],[1262,816],[1260,817],[1266,818],[1259,819],[1271,820],[1261,821],[1273,822],[1268,823],[1257,824],[1250,825],[1249,810],[1274,826],[1258,794],[1269,3],[1270,827],[1147,828],[1337,829],[1276,830],[1311,831],[1320,832],[1277,833],[1278,833],[1279,834],[1280,833],[1319,835],[1281,836],[1282,837],[1283,838],[1284,833],[1321,839],[1322,840],[1285,833],[1287,841],[1288,832],[1290,842],[1291,843],[1292,843],[1293,834],[1294,833],[1295,833],[1296,839],[1297,834],[1298,834],[1299,843],[1300,833],[1301,832],[1302,833],[1303,834],[1304,844],[1289,845],[1305,833],[1306,834],[1307,833],[1308,833],[1309,833],[1310,833],[1439,846],[1332,847],[1318,848],[1342,849],[1312,850],[1314,851],[1315,848],[1436,852],[1325,853],[1331,854],[1327,855],[1333,856],[1437,857],[1438,784],[1328,858],[1330,859],[1336,860],[1326,861],[1313,758],[1338,862],[1286,758],[1324,863],[1329,864],[1317,865],[1316,848],[1339,866],[1340,3],[1341,867],[1323,794],[1334,3],[1335,868],[1441,869],[1442,870],[1440,871],[1156,872],[1149,873],[1199,758],[1196,874],[1200,875],[1197,876],[1391,877],[1368,878],[1374,879],[1343,879],[1344,879],[1345,880],[1373,881],[1346,882],[1361,879],[1347,883],[1348,883],[1349,880],[1350,879],[1351,884],[1352,879],[1375,885],[1353,879],[1354,879],[1355,886],[1356,879],[1357,879],[1358,886],[1359,880],[1360,879],[1362,887],[1363,886],[1364,879],[1365,880],[1366,879],[1367,879],[1388,888],[1379,889],[1394,890],[1369,891],[1370,892],[1383,893],[1376,894],[1387,895],[1378,896],[1386,897],[1385,898],[1390,899],[1377,900],[1392,901],[1389,902],[1384,903],[1372,904],[1371,892],[1393,905],[1382,906],[1381,907],[1152,908],[1154,909],[1153,908],[1155,908],[1158,910],[1157,911],[1159,912],[1150,913],[1427,914],[1395,915],[1420,916],[1424,917],[1423,918],[1396,919],[1425,920],[1416,921],[1417,917],[1418,922],[1419,923],[1404,924],[1412,925],[1422,926],[1428,927],[1397,928],[1398,926],[1401,929],[1407,930],[1411,931],[1409,932],[1413,933],[1402,934],[1405,935],[1410,936],[1426,937],[1408,938],[1406,939],[1403,940],[1421,941],[1399,942],[1415,943],[1400,794],[1414,944],[1148,794],[1146,945],[1151,946],[1433,3],[641,3],[642,947],[639,3],[640,3],[1693,3],[1510,3],[2190,948],[2191,949],[662,950],[659,3],[661,951],[660,952],[658,953],[657,954],[675,955],[674,956],[680,957],[678,956],[679,958],[670,959],[669,960],[752,961],[723,962],[732,962],[724,962],[733,962],[725,962],[726,962],[740,962],[739,962],[741,962],[742,962],[734,962],[727,962],[735,962],[728,962],[736,962],[729,962],[731,962],[738,962],[737,962],[743,962],[730,962],[744,962],[749,962],[750,962],[745,962],[722,3],[751,3],[747,962],[746,962],[748,962],[883,3],[1005,963],[884,964],[885,965],[1024,966],[1025,967],[1026,968],[1027,969],[1028,970],[1029,971],[1017,972],[1012,973],[1013,974],[1014,975],[1016,970],[1015,976],[1011,972],[1018,973],[1020,977],[1019,978],[1010,970],[1009,979],[1023,972],[1006,973],[1007,980],[1008,981],[1022,970],[1021,982],[886,973],[881,983],[1002,984],[882,985],[1004,986],[1003,987],[909,988],[906,989],[966,990],[944,991],[923,992],[851,993],[1042,994],[988,995],[1031,996],[1030,964],[808,997],[817,998],[821,999],[930,1000],[841,1001],[812,1002],[823,1003],[920,1001],[900,1001],[935,1004],[999,1001],[794,1005],[838,1005],[807,1006],[795,1005],[868,1001],[846,1007],[847,1008],[816,1009],[825,1010],[826,1005],[827,1011],[829,1012],[859,1013],[892,1001],[994,1001],[796,1001],[875,1014],[809,1015],[818,1005],[820,1016],[860,1005],[861,1017],[862,1018],[863,1018],[853,1019],[856,1020],[813,1021],[830,1001],[996,1001],[797,1001],[831,1001],[832,1022],[833,1001],[793,1001],[872,1023],[835,1024],[939,1025],[937,1001],[938,1026],[940,1027],[836,1001],[993,1001],[998,1001],[867,1028],[819,997],[837,1001],[869,1029],[870,1030],[834,1001],[850,1001],[1038,1031],[1000,1032],[792,3],[901,1001],[871,1001],[921,1001],[839,1033],[840,1034],[864,1001],[929,1035],[922,1001],[927,1036],[928,1037],[814,1038],[967,1001],[876,1039],[811,1001],[843,1040],[806,1041],[877,1018],[810,1015],[822,1005],[865,1042],[798,1005],[842,1001],[849,1001],[858,1043],[845,1044],[854,1001],[844,1045],[799,1018],[857,1001],[997,1001],[995,1001],[815,1038],[873,1046],[874,1001],[828,1001],[855,1001],[968,1047],[866,1001],[824,1001],[848,1048],[904,1049],[926,1050],[911,3],[893,1051],[890,1052],[980,1053],[945,1054],[914,1055],[969,1056],[908,1057],[983,1058],[913,1059],[931,1060],[946,1061],[971,1062],[986,1063],[943,1064],[910,1065],[918,1066],[907,1067],[942,1068],[1041,1069],[981,1070],[970,1071],[902,1072],[979,1073],[1032,1074],[1033,1074],[1037,1075],[1036,1076],[887,1077],[1035,1074],[1034,1074],[933,1078],[936,1079],[978,1080],[977,1081],[801,3],[934,1082],[917,1083],[975,1084],[800,3],[905,1085],[941,1086],[982,1087],[804,3],[916,1088],[973,1089],[924,1090],[912,1091],[974,1092],[932,1093],[972,1094],[899,1095],[925,1096],[976,1097],[802,3],[915,1098],[879,1099],[1001,1100],[880,1101],[984,1102],[991,1103],[992,1104],[990,1105],[958,1106],[888,1107],[959,1108],[989,1109],[895,1110],[897,1111],[947,1112],[951,1113],[898,1114],[896,1114],[950,1115],[891,1116],[952,1117],[953,1118],[954,1119],[962,1120],[960,1121],[955,1122],[956,1123],[957,1124],[963,1125],[961,1126],[894,1127],[949,1128],[964,1129],[965,1130],[948,1131],[903,1132],[889,983],[852,1133],[1039,1134],[1040,3],[985,1135],[987,987],[878,3],[919,3],[803,3],[805,1136],[2193,403],[2363,1137],[2337,1138],[2338,1139],[2339,1139],[2340,1139],[2341,1139],[2342,1139],[2343,1139],[2344,1139],[2345,1139],[2346,1139],[2347,1139],[2361,1140],[2348,1139],[2349,1139],[2350,1139],[2351,1139],[2352,1139],[2353,1139],[2354,1139],[2355,1139],[2357,1139],[2358,1139],[2356,1139],[2359,1139],[2360,1139],[2362,1139],[2336,1141],[1607,1142],[1609,1143],[1621,1144],[1622,1145],[1611,1146],[1623,1147],[1617,3],[1619,1148],[1620,1149],[1618,1150],[1612,1151],[1605,3],[1604,3],[1613,1152],[1615,1153],[1606,3],[1610,1154],[1616,1154],[1608,3],[1614,3],[2189,1155],[2188,3],[2192,1156],[1045,3],[1048,1157],[1050,1158],[1052,1159],[1051,1160],[1053,1161],[1057,1162],[1054,1157],[1055,1160],[1056,1160],[1047,1160],[1046,1163],[1049,3],[2194,403],[558,1164],[563,2],[553,1165],[317,1166],[357,1167],[538,1168],[352,1169],[334,3],[509,3],[315,3],[527,1170],[383,1171],[316,3],[437,1172],[360,1173],[361,1174],[508,1175],[524,1176],[419,1177],[532,1178],[533,1179],[531,1180],[530,3],[528,1181],[359,1182],[318,1183],[462,3],[463,1184],[389,1185],[319,1186],[390,1185],[385,1185],[306,1185],[355,1187],[354,3],[537,1188],[549,3],[342,3],[484,1189],[485,1190],[479,403],[585,3],[487,3],[488,1191],[480,1192],[590,1193],[589,1194],[584,3],[404,3],[523,1195],[522,3],[583,1196],[481,403],[413,1197],[409,1198],[414,1199],[412,3],[411,1200],[410,3],[586,3],[582,3],[588,1201],[587,3],[408,1198],[577,1202],[580,1203],[398,1204],[397,1205],[396,1206],[593,403],[395,1207],[377,3],[596,3],[2210,1208],[2209,3],[599,3],[598,403],[600,1209],[299,3],[534,1210],[535,1211],[536,1212],[312,3],[345,3],[311,1213],[298,3],[500,403],[304,1214],[499,1215],[498,1216],[489,3],[490,3],[497,3],[492,3],[495,1217],[491,3],[493,1218],[496,1219],[494,1218],[314,3],[309,3],[310,1185],[365,3],[371,1220],[372,1221],[369,1222],[367,1223],[368,1224],[363,3],[506,1191],[392,1191],[557,1225],[564,1226],[568,1227],[541,1228],[540,3],[380,3],[601,1229],[552,1230],[482,1231],[483,1232],[477,1233],[468,3],[505,1234],[543,403],[469,1235],[507,1236],[502,1237],[501,3],[503,3],[474,3],[461,1238],[542,1239],[545,1240],[471,1241],[475,1242],[466,1243],[519,1244],[551,1245],[423,1246],[438,1247],[307,1248],[550,1249],[303,1250],[373,1251],[364,3],[374,1252],[450,1253],[362,3],[449,1254],[291,3],[443,1255],[344,3],[464,1256],[439,3],[308,3],[338,3],[447,1257],[313,3],[375,1258],[473,1259],[539,1260],[472,3],[446,3],[366,3],[452,1261],[453,1262],[529,3],[455,1263],[457,1264],[456,1265],[347,3],[445,1248],[459,1266],[422,1267],[444,1268],[451,1269],[322,3],[326,3],[325,3],[324,3],[329,3],[323,3],[332,3],[331,3],[328,3],[327,3],[330,3],[333,1270],[321,3],[431,1271],[430,3],[435,1272],[432,1273],[434,1274],[436,1272],[433,1273],[343,1275],[393,1276],[548,1277],[602,3],[572,1278],[574,1279],[470,1280],[573,1281],[546,1239],[486,1239],[320,3],[424,1282],[339,1283],[340,1284],[341,1285],[337,1286],[518,1286],[387,1286],[425,1287],[388,1287],[336,1288],[335,3],[429,1289],[428,1290],[427,1291],[426,1292],[547,1293],[517,1294],[516,1295],[478,1296],[512,1297],[515,1298],[526,1299],[525,1300],[521,1301],[421,1302],[418,1303],[420,1304],[417,1305],[458,1306],[448,3],[562,3],[460,1307],[520,3],[376,1308],[467,1210],[465,1309],[378,1310],[381,1311],[597,3],[379,1312],[382,1312],[560,3],[559,3],[561,3],[595,3],[384,1313],[544,3],[415,1314],[407,403],[358,3],[302,1315],[391,3],[566,403],[301,3],[576,1316],[406,403],[570,1191],[405,1317],[555,1318],[403,1316],[305,3],[578,1319],[401,403],[402,403],[394,3],[300,3],[400,1320],[399,1321],[346,1322],[476,597],[386,597],[454,3],[441,1323],[440,3],[504,1198],[416,403],[556,1324],[286,403],[289,1325],[290,1326],[287,403],[288,3],[356,1327],[351,1328],[350,3],[349,1329],[348,3],[554,1330],[565,1331],[567,1332],[569,1333],[2211,1334],[571,1335],[575,1336],[608,1337],[579,1337],[607,1338],[581,1339],[591,1340],[592,1341],[594,1342],[603,1343],[606,1213],[605,3],[604,1344],[1890,1345],[1891,1346],[1892,1347],[1894,1348],[1889,1349],[1882,3],[1888,1350],[1884,1351],[1883,1350],[1885,1352],[1887,1353],[1893,3],[1886,3],[637,1354],[650,1355],[635,3],[636,1356],[651,1357],[646,1358],[647,1359],[645,1360],[649,1361],[643,1362],[638,1363],[648,1364],[644,1355],[2786,1365],[2783,1344],[2785,1366],[2784,3],[2782,3],[1142,1367],[656,1368],[653,1369],[654,3],[655,3],[652,1370],[1839,1371],[2644,1372],[2647,3],[2662,1373],[2663,1373],[2676,1374],[2664,1375],[2665,1375],[2666,1376],[2660,1377],[2658,1378],[2649,3],[2653,1379],[2657,1380],[2655,1381],[2661,1382],[2650,1383],[2651,1384],[2652,1385],[2654,1386],[2656,1387],[2659,1388],[2667,1375],[2668,1375],[2669,1375],[2670,1373],[2671,1375],[2672,1375],[2648,1375],[2673,3],[2675,1389],[2674,1375],[2203,1390],[2199,403],[2200,403],[2198,3],[2201,1391],[2202,1390],[2367,1392],[2366,1393],[2236,3],[2250,1394],[2231,403],[2233,1395],[2235,1396],[2234,1397],[2232,3],[2237,3],[2238,3],[2239,3],[2240,3],[2241,3],[2242,3],[2243,3],[2244,3],[2245,3],[2246,1398],[2248,1399],[2249,1399],[2247,3],[2251,1400],[2283,403],[677,1401],[676,1402],[664,1403],[663,1404],[682,1405],[681,1406],[673,1407],[672,956],[671,1408],[2365,1409],[2364,1410],[442,1411],[1559,403],[668,1412],[666,1413],[667,1414],[665,3],[1793,3],[631,1415],[630,3],[79,3],[80,3],[13,3],[14,3],[16,3],[15,3],[2,3],[17,3],[18,3],[19,3],[20,3],[21,3],[22,3],[23,3],[24,3],[3,3],[25,3],[26,3],[4,3],[27,3],[31,3],[28,3],[29,3],[30,3],[32,3],[33,3],[34,3],[5,3],[35,3],[36,3],[37,3],[38,3],[6,3],[42,3],[39,3],[40,3],[41,3],[43,3],[7,3],[44,3],[49,3],[50,3],[45,3],[46,3],[47,3],[48,3],[8,3],[54,3],[51,3],[52,3],[53,3],[55,3],[9,3],[56,3],[57,3],[58,3],[60,3],[59,3],[61,3],[62,3],[10,3],[63,3],[64,3],[65,3],[11,3],[66,3],[67,3],[68,3],[69,3],[70,3],[1,3],[71,3],[72,3],[12,3],[76,3],[74,3],[78,3],[73,3],[77,3],[75,3],[2703,1416],[2713,1417],[2702,1416],[2723,1418],[2694,1419],[2693,1420],[2722,1344],[2716,1421],[2721,1422],[2696,1423],[2710,1424],[2695,1425],[2719,1426],[2691,1427],[2690,1344],[2720,1428],[2692,1429],[2697,1430],[2698,3],[2701,1430],[2688,3],[2724,1431],[2714,1432],[2705,1433],[2706,1434],[2708,1435],[2704,1436],[2707,1437],[2717,1344],[2699,1438],[2700,1439],[2709,1440],[2689,1367],[2712,1432],[2711,1430],[2715,3],[2718,1441],[124,1442],[135,1443],[122,1444],[136,1367],[145,1445],[113,1446],[114,1447],[112,1420],[144,1344],[139,1448],[143,1449],[116,1450],[132,1451],[115,1452],[142,1453],[110,1454],[111,1448],[117,1455],[118,3],[123,1456],[121,1455],[108,1457],[146,1458],[137,1459],[127,1460],[126,1455],[128,1461],[130,1462],[125,1463],[129,1464],[140,1344],[119,1465],[120,1466],[131,1467],[109,1367],[134,1468],[133,1455],[138,3],[107,3],[141,1469],[633,1470],[629,3],[632,1471],[2311,403],[626,1472],[625,568],[628,1473],[627,1474],[100,1475],[92,1476],[99,1477],[94,3],[95,3],[93,1478],[96,1479],[87,3],[88,3],[89,1475],[91,1480],[97,3],[98,1481],[90,1482],[279,1483],[273,1484],[277,1485],[274,1485],[270,1484],[278,1486],[275,1487],[1135,1483],[276,1485],[271,1488],[272,1489],[266,1490],[210,1491],[212,1492],[265,3],[211,1493],[269,1494],[268,1495],[267,1496],[203,3],[213,1491],[214,3],[205,1497],[209,1498],[204,3],[206,1499],[207,1500],[208,3],[1136,1501],[215,1502],[216,1502],[217,1502],[218,1502],[219,1502],[220,1502],[221,1502],[222,1502],[223,1502],[224,1502],[225,1502],[226,1502],[227,1502],[229,1502],[228,1502],[230,1502],[231,1502],[232,1502],[233,1502],[264,1503],[234,1502],[235,1502],[236,1502],[237,1502],[238,1502],[239,1502],[240,1502],[241,1502],[242,1502],[243,1502],[244,1502],[245,1502],[246,1502],[248,1502],[247,1502],[249,1502],[250,1502],[251,1502],[252,1502],[253,1502],[254,1502],[255,1502],[256,1502],[257,1502],[258,1502],[259,1502],[260,1502],[263,1502],[261,1502],[262,1502],[1459,1504],[1465,1505],[1463,1506],[1461,1506],[1464,1506],[1460,1506],[1462,1506],[1458,1506],[1457,3],[280,1507],[617,11],[619,1508],[618,11]],"semanticDiagnosticsPerFile":[[1701,[{"start":11983,"length":4,"code":2339,"category":1,"messageText":"Property 'mode' does not exist on type 'RetimeConfig'."}]],[1722,[{"start":476,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type 'Record<ShortcutKey, \"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | ... 20 more ... | \"remove-media-assets\">' is not assignable to type 'KeybindingConfig'.","category":1,"code":2322,"next":[{"messageText":"Types of property '0' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type '\"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | \"jump-backward\" | \"goto-start\" | ... 18 more ... | \"remove-media-assets\"' is not assignable to type 'TActionWithOptionalArgs | undefined'.","category":1,"code":2322,"next":[{"messageText":"Type '\"remove-media-asset\"' is not assignable to type 'TActionWithOptionalArgs | undefined'.","category":1,"code":2322}],"canonicalHead":{"code":2322,"messageText":"Type 'Record<ShortcutKey, \"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | ... 20 more ... | \"remove-media-assets\">' is not assignable to type 'KeybindingConfig'."}}]}]}}]],[1879,[{"start":1027,"length":49,"messageText":"Spread types may only be created from object types.","category":1,"code":2698}]],[2196,[{"start":1844,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":1862,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ContextMenuSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":1929,"length":31,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":2687,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuSubContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2768,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ContextMenuSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":3227,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { container?: HTMLElement | null | undefined; }'.","category":1,"code":2339},{"start":3385,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onCloseAutoFocus?: any; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ContextMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":3976,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; icon?: ReactNode; textRight?: string | undefined; }'.","category":1,"code":2339},{"start":4033,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; icon?: ReactNode; textRight?: string | undefined; }'.","category":1,"code":2339},{"start":4158,"length":25,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":5101,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":5112,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":5188,"length":33,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; onCheckedChange?: ((checked: boolean) => void) | undefined; ref: ForwardedRef<...>; className: string; checked: CheckedState | undefined; }' is not assignable to type 'IntrinsicAttributes & ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":5457,"length":34,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & ContextMenuItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":6130,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":6141,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ContextMenuRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":6202,"length":30,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; value: string; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":6423,"length":34,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & ContextMenuItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":7026,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuLabelProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":7050,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ContextMenuLabelProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; icon?: ReactNode; }'.","category":1,"code":2339},{"start":7084,"length":26,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":7669,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ContextMenuSeparatorProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":7749,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ContextMenuSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ContextMenuSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2197,[{"start":1378,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":1695,"length":18,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'."},{"start":1724,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; onClick: () => Promise<void>; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":2038,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":2389,"length":15,"code":2559,"category":1,"messageText":"Type '{ children: (string | Element)[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'."}]],[2224,[{"start":1540,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type 'React.ReactNode' is not assignable to type 'import(\"D:/Coding Projects/Web Apps/Next JS/video-editor-oss/node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/index\").ReactNode'.","category":1,"code":2322,"next":[{"messageText":"Type 'ReactElement<unknown, string | JSXElementConstructor<any>>' is not assignable to type 'ReactNode'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' is missing in type 'ReactElement<unknown, string | JSXElementConstructor<any>>' but required in type 'ReactPortal'.","category":1,"code":2741,"canonicalHead":{"code":2322,"messageText":"Type 'ReactElement<unknown, string | JSXElementConstructor<any>>' is not assignable to type 'ReactPortal'."}}]}]},"relatedInformation":[{"file":"../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/index.d.ts","start":12829,"length":8,"messageText":"'children' is declared here.","category":3,"code":2728},{"file":"../../node_modules/.bun/@types+react@18.3.23/node_modules/@types/react/index.d.ts","start":92624,"length":8,"messageText":"The expected type comes from property 'children' which is declared here on type 'IntrinsicAttributes & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, keyof LinkProps<any>> & LinkProps<...> & { ...; } & RefAttributes<...>'","category":3,"code":6500}]}]],[2264,[{"start":1773,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; }'.","category":1,"code":2339},{"start":1791,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<DropdownMenuSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; variant?: \"default\" | ... 2 more ... | undefined; }'.","category":1,"code":2339},{"start":1846,"length":32,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":2437,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuSubContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2519,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & DropdownMenuSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":2952,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2963,"length":10,"messageText":"Property 'sideOffset' does not exist on type 'Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3082,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onCloseAutoFocus: any; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<...>; sideOffset: any; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'sideOffset' does not exist on type 'IntrinsicAttributes & DropdownMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":3128,"length":1,"messageText":"Parameter 'e' implicitly has an 'any' type.","category":1,"code":7006},{"start":3780,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; icon?: ReactNode; variant?: \"default\" | ... 2 more ... | undefined; }'.","category":1,"code":2339},{"start":3837,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; icon?: ReactNode; variant?: \"default\" | ... 2 more ... | undefined; }'.","category":1,"code":2339},{"start":3850,"length":7,"messageText":"Property 'asChild' does not exist on type 'Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; icon?: ReactNode; variant?: \"default\" | ... 2 more ... | undefined; }'.","category":1,"code":2339},{"start":4421,"length":26,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<...>; asChild: any; \"data-has-icon\": string | undefined; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":5064,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; }'.","category":1,"code":2339},{"start":5075,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; }'.","category":1,"code":2339},{"start":5139,"length":34,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; onSelect: (event: Event) => void; disabled?: boolean | undefined; textValue?: string | undefined; onCheckedChange?: ((checked: boolean) => void) | undefined; ref: ForwardedRef<...>; className: string; checked: CheckedState | undefined; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":5462,"length":35,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & DropdownMenuItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":5978,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; }'.","category":1,"code":2339},{"start":5989,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<DropdownMenuRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: \"default\" | \"destructive\" | null | undefined; }'.","category":1,"code":2339},{"start":6044,"length":31,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; value: string; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":6281,"length":35,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & DropdownMenuItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":6750,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuLabelProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; }'.","category":1,"code":2339},{"start":6834,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & DropdownMenuLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":7257,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<DropdownMenuSeparatorProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":7338,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & DropdownMenuSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2265,[{"start":7466,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: ReactNode; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":7529,"length":18,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'."},{"start":7554,"length":15,"code":2559,"category":1,"messageText":"Type '{ children: string; }' has no properties in common with type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'."},{"start":7606,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: \"destructive\"; onClick: (event: MouseEvent<HTMLDivElement, MouseEvent>) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":12477,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":12792,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; align: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":14368,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string[]; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2272,[{"start":792,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<TabsListProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":928,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & TabsListProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & TabsListProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":1405,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":1544,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & TabsTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & TabsTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":2410,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2549,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; key?: Key | null | undefined; forceMount?: true | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & TabsContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & TabsContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2273,[{"start":1166,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; defaultValue: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: TabsVariant | undefined; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: TabsVariant | undefined; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1277,"length":8,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<TabsListProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<never>'."},{"start":1294,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; value: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1363,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; value: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1416,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; value: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1530,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1685,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1831,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":5922,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":6171,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; align: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6228,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2274,[{"start":2093,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; defaultValue: string; variant: \"underline\"; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: TabsVariant | undefined; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsProps & RefAttributes<HTMLDivElement>, \"ref\"> & { variant?: TabsVariant | undefined; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":2143,"length":8,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<TabsListProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<never>'."},{"start":2225,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; key: string; value: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":2326,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<TabsContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":3988,"length":4,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key: string; item: StickerItem; shouldCapSize: boolean; }' is not assignable to type 'IntrinsicAttributes'.","category":1,"code":2322,"next":[{"messageText":"Property 'item' does not exist on type 'IntrinsicAttributes'.","category":1,"code":2339}]}}]],[2284,[{"start":828,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":839,"length":5,"messageText":"Property 'align' does not exist on type 'Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":857,"length":10,"messageText":"Property 'sideOffset' does not exist on type 'Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":966,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; onOpenAutoFocus?: any; onCloseAutoFocus?: any; forceMount?: true | undefined; ref: ForwardedRef<never>; align: any; sideOffset: any; className: string; }' is not assignable to type 'IntrinsicAttributes & PopoverContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'align' does not exist on type 'IntrinsicAttributes & PopoverContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2285,[{"start":2497,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; }' is not assignable to type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":3178,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (false | Element | null)[]; className: string; align: string; side: string; onOpenAutoFocus: (event: any) => void; onCloseAutoFocus: (event: any) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":3290,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":3399,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006}]],[2286,[{"start":8717,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":9619,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; side: string; sideOffset: number; onOpenAutoFocus: (event: any) => void; onCloseAutoFocus: (event: any) => void; onInteractOutside: (event: any) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":9762,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":9839,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":9917,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":10700,"length":12,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & PopoverCloseProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & PopoverCloseProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}}]],[2288,[{"start":360,"length":20,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value?: number[] | undefined; name?: string | undefined; form?: string | undefined; max?: number | undefined; key?: Key | null | undefined; min?: number | undefined; ... 10 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & SliderProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & SliderProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":519,"length":21,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; }' is not assignable to type 'IntrinsicAttributes & SliderTrackProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & SliderTrackProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":647,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ className: string; }' is not assignable to type 'IntrinsicAttributes & SliderRangeProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & SliderRangeProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":743,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ className: string; }' is not assignable to type 'IntrinsicAttributes & SliderThumbProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & SliderThumbProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}}]],[2289,[{"start":286,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<SwitchProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":321,"length":21,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; ref: ForwardedRef<never>; key?: Key | null | undefined; defaultChecked?: boolean | undefined; checked?: boolean | undefined; required?: boolean | undefined; onCheckedChange?: ((checked: boolean) => void) | undefined; className: string; }' is not assignable to type 'IntrinsicAttributes & SwitchProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & SwitchProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":806,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ className: string; }' is not assignable to type 'IntrinsicAttributes & SwitchThumbProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & SwitchThumbProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}}]],[2292,[{"start":6040,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":6263,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; onPointerLeave: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6379,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; key: MaskType; onPointerEnter: () => void; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2298,[{"start":7147,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":8227,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (false | Element)[]; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":9125,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: (event: MouseEvent<Element, MouseEvent>) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":9346,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; disabled: true; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":21516,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: ReactNode; ref?: Ref<never> | undefined; icon?: ReactNode; key?: string | number | bigint | null | undefined; onSelect?: ((event: Event) => void) | undefined; ... 5 more ...; textRight: string; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":21621,"length":6,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '\"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | \"jump-backward\" | \"goto-start\" | ... 18 more ... | \"remove-media-assets\"' is not assignable to parameter of type 'TActionWithOptionalArgs'.","category":1,"code":2345,"next":[{"messageText":"Type '\"remove-media-asset\"' is not assignable to type 'TActionWithOptionalArgs'.","category":1,"code":2322}]}}]],[2308,[{"start":5469,"length":13,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & PopoverAnchorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & PopoverAnchorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":7731,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; align: string; side: string; sideOffset: number; onOpenAutoFocus: (event: any) => any; }' is not assignable to type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":7868,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006}]],[2310,[{"start":16123,"length":6,"code":2322,"category":1,"messageText":{"messageText":"Type '{ snapPoint: SnapPoint | null; zoomLevel: number; timelineRef: RefObject<HTMLDivElement | null>; tracksScrollRef: RefObject<HTMLDivElement | null>; isVisible: boolean; tracks: TimelineTrack[]; }' is not assignable to type 'IntrinsicAttributes & SnapIndicatorProps'.","category":1,"code":2322,"next":[{"messageText":"Property 'tracks' does not exist on type 'IntrinsicAttributes & SnapIndicatorProps'.","category":1,"code":2339}]}},{"start":20257,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":21376,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (false | Element)[]; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":21420,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: (event: MouseEvent<Element, MouseEvent>) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":21679,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: (event: MouseEvent<Element, MouseEvent>) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":22034,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: (event: MouseEvent<Element, MouseEvent>) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":22417,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: (event: MouseEvent<Element, MouseEvent>) => void; variant: \"destructive\"; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2320,[{"start":1188,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; container: HTMLElement | null; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1262,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => void; inset: true; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1388,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => void; inset: true; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1482,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => Promise<void>; inset: true; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1578,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => Promise<void>; inset: true; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1702,"length":23,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: (checked: boolean) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2322,[{"start":801,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; sideOffset: number; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2324,[{"start":7092,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}}]],[2328,[{"start":342,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<RadioGroupProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":416,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ ref: ForwardedRef<never>; value?: string | null | undefined; name?: string | undefined; key?: Key | null | undefined; orientation?: \"horizontal\" | \"vertical\" | undefined; ... 6 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & RadioGroupProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & RadioGroupProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":723,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":769,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; value: string; key?: Key | null | undefined; checked?: boolean | undefined; required?: boolean | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & RadioGroupItemProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & RadioGroupItemProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":1068,"length":29,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; }' is not assignable to type 'IntrinsicAttributes & RadioGroupIndicatorProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & RadioGroupIndicatorProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}}]],[2330,[{"start":342,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":378,"length":22,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; key?: Key | null | undefined; defaultChecked?: CheckedState | undefined; checked?: CheckedState | undefined; required?: boolean | undefined; onCheckedChange?: ((checked: CheckedState) => void) | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & CheckboxProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & CheckboxProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":795,"length":27,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; }' is not assignable to type 'IntrinsicAttributes & CheckboxIndicatorProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & CheckboxIndicatorProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}}]],[2331,[{"start":1904,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & PopoverTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":4536,"length":14,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<PopoverContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":5350,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value: \"mp4\" | \"webm\"; onValueChange: (value: string) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":5644,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":5881,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6281,"length":10,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value: \"high\" | \"low\" | \"medium\" | \"very_high\"; onValueChange: (value: string) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6578,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6778,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":6975,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":7174,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; id: string; }' is not assignable to type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<RadioGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":7661,"length":2,"code":2322,"category":1,"messageText":{"messageText":"Type '{ id: string; checked: boolean; onCheckedChange: (checked: CheckedState) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'id' does not exist on type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2332,[{"start":1337,"length":24,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '\"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | \"jump-backward\" | \"goto-start\" | ... 18 more ... | \"remove-media-assets\"' is not assignable to parameter of type 'TActionWithOptionalArgs'.","category":1,"code":2345,"next":[{"messageText":"Type '\"remove-media-asset\"' is not assignable to type 'TActionWithOptionalArgs'.","category":1,"code":2322}]}},{"start":1600,"length":24,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '\"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | \"jump-backward\" | \"goto-start\" | ... 18 more ... | \"remove-media-assets\"' is not assignable to parameter of type 'TActionWithOptionalArgs'.","category":1,"code":2345,"next":[{"messageText":"Type '\"remove-media-asset\"' is not assignable to type 'TActionWithOptionalArgs'.","category":1,"code":2322}]}},{"start":1732,"length":24,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '\"split\" | \"toggle-play\" | \"stop-playback\" | \"seek-forward\" | \"seek-backward\" | \"frame-step-forward\" | \"frame-step-backward\" | \"jump-forward\" | \"jump-backward\" | \"goto-start\" | ... 18 more ... | \"remove-media-assets\"' is not assignable to parameter of type 'TActionWithOptionalArgs'.","category":1,"code":2345,"next":[{"messageText":"Type '\"remove-media-asset\"' is not assignable to type 'TActionWithOptionalArgs'.","category":1,"code":2322}]}}]],[2333,[{"start":2931,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":3250,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; align: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":3314,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => Promise<void>; disabled: boolean; icon: Element; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":3494,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; onClick: () => void; icon: Element; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":3697,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; icon: Element; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2372,[{"start":403,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AccordionItemProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":479,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value: string; key?: Key | null | undefined; disabled?: boolean | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AccordionItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AccordionItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":762,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":773,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":808,"length":25,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; className: string; }' is not assignable to type 'IntrinsicAttributes & AccordionHeaderProps & RefAttributes<HTMLHeadingElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & AccordionHeaderProps & RefAttributes<HTMLHeadingElement>'.","category":1,"code":2339}]}},{"start":856,"length":26,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AccordionTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & AccordionTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":1511,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AccordionContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":1522,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<AccordionContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":1557,"length":26,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; key?: Key | null | undefined; forceMount?: true | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AccordionContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & AccordionContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2373,[{"start":957,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; type: \"single\"; collapsible: true; className: string; }' is not assignable to type 'IntrinsicAttributes & ((AccordionSingleProps | AccordionMultipleProps) & RefAttributes<HTMLDivElement>)'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & AccordionSingleProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":1019,"length":13,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<AccordionItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<AccordionItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1117,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1215,"length":16,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<AccordionContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'."}]],[2378,[{"start":6697,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ className: string; id: string; checked: boolean | \"indeterminate\"; onCheckedChange: (checked: CheckedState) => void; }' is not assignable to type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":9671,"length":6,"messageText":"'editor' is of type 'unknown'.","category":1,"code":18046},{"start":9836,"length":6,"messageText":"'editor' is of type 'unknown'.","category":1,"code":18046},{"start":10018,"length":6,"messageText":"'editor' is of type 'unknown'.","category":1,"code":18046},{"start":11398,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; className: string; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":11614,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; align: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":11696,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (Element | \"Delete\" | \"Duplicate\")[]; key: \"delete\" | \"duplicate\"; variant: \"destructive\" | undefined; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":12369,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: ReactNode; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":12434,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; align: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":12492,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":12678,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":12865,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":13038,"length":24,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; checked: boolean; onCheckedChange: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":17630,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ checked: boolean; onMouseDown: (event: any) => any; onClick: (event: any) => void; onCheckedChange: () => void; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'onMouseDown' does not exist on type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":17644,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":17692,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":18319,"length":18,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ContextMenuTriggerProps & RefAttributes<HTMLSpanElement>'.","category":1,"code":2339}]}},{"start":18578,"length":11,"code":2322,"category":1,"messageText":{"messageText":"Type '{ checked: boolean; onMouseDown: (event: any) => any; onClick: (event: any) => void; onCheckedChange: () => void; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'onMouseDown' does not exist on type 'IntrinsicAttributes & Omit<CheckboxProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":18592,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":18645,"length":5,"messageText":"Parameter 'event' implicitly has an 'any' type.","category":1,"code":7006},{"start":20459,"length":18,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<ContextMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'."},{"start":20483,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":20616,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":20755,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; icon: Element; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":20923,"length":15,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; variant: \"destructive\"; icon: Element; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<ContextMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":22253,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; asChild: true; }' is not assignable to type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & DropdownMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":23038,"length":19,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; className: string; align: string; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":23093,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":23216,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":23345,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":23480,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: (string | Element)[]; variant: \"destructive\"; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<DropdownMenuItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { ...; } & RefAttributes<...>'.","category":1,"code":2339}]}}]],[2383,[{"start":910,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; type: \"single\"; collapsible: true; className: string; }' is not assignable to type 'IntrinsicAttributes & ((AccordionSingleProps | AccordionMultipleProps) & RefAttributes<HTMLDivElement>)'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & AccordionSingleProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":971,"length":13,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element[]; value: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<AccordionItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<AccordionItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1065,"length":16,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: string; className: string; }' is not assignable to type 'IntrinsicAttributes & Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & Omit<AccordionTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\"> & RefAttributes<...>'.","category":1,"code":2339}]}},{"start":1160,"length":16,"code":2559,"category":1,"messageText":"Type '{ children: Element[]; }' has no properties in common with type 'IntrinsicAttributes & Omit<AccordionContentProps & RefAttributes<HTMLDivElement>, \"ref\"> & RefAttributes<...>'."}]],[2386,[{"start":526,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogOverlayProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":592,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ ref: ForwardedRef<never>; key?: Key | null | undefined; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogOverlayProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogOverlayProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":1067,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":1194,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":2584,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogTitleProps & RefAttributes<HTMLHeadingElement>, \"ref\">'.","category":1,"code":2339},{"start":2660,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogTitleProps & RefAttributes<HTMLHeadingElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogTitleProps & RefAttributes<HTMLHeadingElement>'.","category":1,"code":2339}]}},{"start":2991,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogDescriptionProps & RefAttributes<HTMLParagraphElement>, \"ref\">'.","category":1,"code":2339},{"start":3073,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogDescriptionProps & RefAttributes<HTMLParagraphElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogDescriptionProps & RefAttributes<HTMLParagraphElement>'.","category":1,"code":2339}]}},{"start":3410,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogActionProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":3487,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogActionProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogActionProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":3798,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<AlertDialogCancelProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":3875,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & AlertDialogCancelProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & AlertDialogCancelProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}}]],[2678,[{"start":409,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<HoverCardContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":420,"length":5,"messageText":"Property 'align' does not exist on type 'Omit<HoverCardContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":438,"length":10,"messageText":"Property 'sideOffset' does not exist on type 'Omit<HoverCardContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":519,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<never>; align: any; sideOffset: any; className: string; }' is not assignable to type 'IntrinsicAttributes & HoverCardContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'align' does not exist on type 'IntrinsicAttributes & HoverCardContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2679,[{"start":584,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":655,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ value?: string | undefined; key?: Key | null | undefined; loop?: boolean | undefined; dir?: Direction | undefined; defaultValue?: string | undefined; onValueChange?: ((value: string) => void) | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":1015,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":1089,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":1631,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; }'.","category":1,"code":2339},{"start":1649,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<MenubarSubTriggerProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; }'.","category":1,"code":2339},{"start":1683,"length":27,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & MenubarSubTriggerProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":2347,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarSubContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2424,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarSubContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":3161,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3172,"length":5,"messageText":"Property 'align' does not exist on type 'Omit<MenubarContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3189,"length":11,"messageText":"Property 'alignOffset' does not exist on type 'Omit<MenubarContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3207,"length":10,"messageText":"Property 'sideOffset' does not exist on type 'Omit<MenubarContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3325,"length":5,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; loop?: boolean | undefined; onCloseAutoFocus?: any; onEscapeKeyDown?: any; onPointerDownOutside?: any; onFocusOutside?: any; onInteractOutside?: any; forceMount?: true | undefined; ... 4 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'align' does not exist on type 'IntrinsicAttributes & MenubarContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":4154,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarItemProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; }'.","category":1,"code":2339},{"start":4232,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":4757,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":4768,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<MenubarCheckboxItemProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":4811,"length":29,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; onCheckedChange?: ((checked: boolean) => void) | undefined; ref: ForwardedRef<...>; className: string; checked: CheckedState | undefined; }' is not assignable to type 'IntrinsicAttributes & MenubarCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & MenubarCheckboxItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":5223,"length":30,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & MenubarItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":5633,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":5644,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<MenubarRadioItemProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":5678,"length":26,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; value: string; key?: Key | null | undefined; onSelect?: ((event: Event) => void) | undefined; disabled?: boolean | undefined; textValue?: string | undefined; ref: ForwardedRef<...>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & MenubarRadioItemProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":6067,"length":30,"code":2559,"category":1,"messageText":"Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes & MenubarItemIndicatorProps & RefAttributes<HTMLSpanElement>'."},{"start":6496,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarLabelProps & RefAttributes<HTMLDivElement>, \"ref\"> & { inset?: boolean | undefined; }'.","category":1,"code":2339},{"start":6575,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarLabelProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":6923,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<MenubarSeparatorProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":6999,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & MenubarSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & MenubarSeparatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2680,[{"start":400,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuProps & RefAttributes<HTMLElement>, \"ref\">'.","category":1,"code":2339},{"start":411,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<NavigationMenuProps & RefAttributes<HTMLElement>, \"ref\">'.","category":1,"code":2339},{"start":445,"length":28,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; value?: string | undefined; key?: Key | null | undefined; orientation?: Orientation | undefined; dir?: Direction | undefined; defaultValue?: string | undefined; ... 4 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuProps & RefAttributes<HTMLElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & NavigationMenuProps & RefAttributes<HTMLElement>'.","category":1,"code":2339}]}},{"start":934,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuListProps & RefAttributes<HTMLUListElement>, \"ref\">'.","category":1,"code":2339},{"start":1012,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuListProps & RefAttributes<HTMLUListElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & NavigationMenuListProps & RefAttributes<HTMLUListElement>'.","category":1,"code":2339}]}},{"start":1832,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":1843,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<NavigationMenuTriggerProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":1877,"length":31,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any[]; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & NavigationMenuTriggerProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":2472,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuContentProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":2553,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; forceMount?: true | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & NavigationMenuContentProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":3283,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuViewportProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3425,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; forceMount?: true | undefined; className: string; ref: ForwardedRef<never>; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuViewportProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & NavigationMenuViewportProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":4119,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<NavigationMenuIndicatorProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":4154,"length":33,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; key?: Key | null | undefined; forceMount?: true | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & NavigationMenuIndicatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & NavigationMenuIndicatorProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2682,[{"start":447,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastViewportProps & RefAttributes<HTMLOListElement>, \"ref\">'.","category":1,"code":2339},{"start":521,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ label?: string | undefined; key?: Key | null | undefined; hotkey?: string[] | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToastViewportProps & RefAttributes<HTMLOListElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToastViewportProps & RefAttributes<HTMLOListElement>'.","category":1,"code":2339}]}},{"start":1816,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastProps & RefAttributes<HTMLLIElement>, \"ref\"> & VariantProps<(props?: (ConfigVariants<{ variant: { default: string; destructive: string; }; }> & ClassProp) | undefined) => string>'.","category":1,"code":2339},{"start":1908,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ type?: \"background\" | \"foreground\" | undefined; duration?: number | undefined; key?: Key | null | undefined; onPause?: (() => void) | undefined; open?: boolean | undefined; onOpenChange?: ((open: boolean) => void) | undefined; ... 9 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & ToastProps & RefAttributes<HTMLLIElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToastProps & RefAttributes<HTMLLIElement>'.","category":1,"code":2339}]}},{"start":2200,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastActionProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":2272,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; altText: string; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToastActionProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToastActionProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":3030,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastCloseProps & RefAttributes<HTMLButtonElement>, \"ref\">'.","category":1,"code":2339},{"start":3065,"length":21,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; \"toast-close\": string; }' is not assignable to type 'IntrinsicAttributes & ToastCloseProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ToastCloseProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}},{"start":3804,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastTitleProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":3875,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToastTitleProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToastTitleProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}},{"start":4195,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToastDescriptionProps & RefAttributes<HTMLDivElement>, \"ref\">'.","category":1,"code":2339},{"start":4272,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToastDescriptionProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToastDescriptionProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}}]],[2683,[{"start":1163,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToggleProps & RefAttributes<HTMLButtonElement>, \"ref\"> & VariantProps<(props?: (ConfigVariants<{ variant: { default: string; outline: string; }; size: { ...; }; }> & ClassProp) | undefined) => string>'.","category":1,"code":2339},{"start":1248,"length":9,"code":2322,"category":1,"messageText":{"messageText":"Type '{ key?: Key | null | undefined; pressed?: boolean | undefined; defaultPressed?: boolean | undefined; onPressedChange?: ((pressed: boolean) => void) | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToggleProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'className' does not exist on type 'IntrinsicAttributes & ToggleProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}}]],[2684,[{"start":586,"length":9,"messageText":"Property 'className' does not exist on type '(Omit<ToggleGroupSingleProps & RefAttributes<HTMLDivElement>, \"ref\"> | Omit<ToggleGroupMultipleProps & RefAttributes<...>, \"ref\">) & VariantProps<...>'.","category":1,"code":2339},{"start":612,"length":8,"messageText":"Property 'children' does not exist on type '(Omit<ToggleGroupSingleProps & RefAttributes<HTMLDivElement>, \"ref\"> | Omit<ToggleGroupMultipleProps & RefAttributes<...>, \"ref\">) & VariantProps<...>'.","category":1,"code":2339},{"start":646,"length":25,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; value?: string | undefined; type: \"single\"; key?: Key | null | undefined; orientation?: \"horizontal\" | \"vertical\" | undefined; loop?: boolean | undefined; ... 6 more ...; className: string; } | { ...; }' is not assignable to type 'IntrinsicAttributes & ((ToggleGroupSingleProps | ToggleGroupMultipleProps) & RefAttributes<HTMLDivElement>)'.","category":1,"code":2322,"next":[{"messageText":"Type '{ children: Element; value?: string | undefined; type: \"single\"; key?: Key | null | undefined; orientation?: \"horizontal\" | \"vertical\" | undefined; loop?: boolean | undefined; ... 6 more ...; className: string; }' is not assignable to type 'IntrinsicAttributes & ((ToggleGroupSingleProps | ToggleGroupMultipleProps) & RefAttributes<HTMLDivElement>)'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ToggleGroupSingleProps & RefAttributes<HTMLDivElement>'.","category":1,"code":2339}]}]}},{"start":1182,"length":9,"messageText":"Property 'className' does not exist on type 'Omit<ToggleGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & VariantProps<(props?: (ConfigVariants<{ variant: { default: string; outline: string; }; size: { ...; }; }> & ClassProp) | undefined) => string>'.","category":1,"code":2339},{"start":1193,"length":8,"messageText":"Property 'children' does not exist on type 'Omit<ToggleGroupItemProps & RefAttributes<HTMLButtonElement>, \"ref\"> & VariantProps<(props?: (ConfigVariants<{ variant: { default: string; outline: string; }; size: { ...; }; }> & ClassProp) | undefined) => string>'.","category":1,"code":2339},{"start":1309,"length":25,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: any; value: string; key?: Key | null | undefined; ref: ForwardedRef<never>; className: string; }' is not assignable to type 'IntrinsicAttributes & ToggleGroupItemProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2322,"next":[{"messageText":"Property 'children' does not exist on type 'IntrinsicAttributes & ToggleGroupItemProps & RefAttributes<HTMLButtonElement>'.","category":1,"code":2339}]}}]]],"affectedFilesPendingEmit":[2687,101,281,613,615,1447,1448,1454,2205,2221,2219,2223,2227,2226,2224,2225,1456,2230,2371,2212,621,2215,2373,2378,1509,2381,622,1511,684,2382,2383,2321,2327,2369,2377,2325,2332,2374,2333,2331,2370,2368,2261,2263,2277,2254,2265,2255,2260,2276,2267,2268,2385,2273,2274,2275,2318,2320,2319,2322,2312,2324,2314,2317,1744,2315,2316,2323,2313,2278,2290,2295,1705,1706,1708,1709,1707,2296,2294,1710,2281,2280,2291,2292,2293,2287,2279,2297,2308,2309,2310,2301,2298,2300,2307,2306,2305,2299,2304,2204,2228,2197,2213,2214,2334,2259,2384,2195,2372,2386,2326,2262,2229,2379,2376,1842,2645,2222,2330,2646,2286,2196,2269,2264,2285,2677,2678,2270,2258,2679,2680,1843,2284,2329,2220,2328,2380,2252,2271,2256,2218,2303,2375,2288,2206,2257,2302,2289,2681,2272,2282,2682,2684,2683,2207,1723,1495,1724,1642,1689,1725,1726,1649,1570,620,1668,1478,1474,1728,1703,1701,1699,1692,1512,1691,1698,1700,1641,1702,1640,1729,1730,2266,1765,1769,1770,1784,1785,1766,1786,1767,1773,1774,1775,1776,1777,1778,1780,1781,1782,1783,1732,1704,1733,1735,1736,1737,1738,1739,1741,1742,1751,1752,1753,1757,1759,1760,1731,1745,1762,1763,1764,1713,1715,1712,1714,1711,1499,1535,1504,1496,1502,1498,1500,1503,1497,1501,1466,1494,1789,1445,683,623,1750,1513,1558,1639,1600,1626,1625,1790,1638,1637,1627,1628,1636,1635,1633,1629,1632,1634,1555,1554,1520,1521,1542,1547,1543,1546,1544,1545,1553,1519,1541,1536,1537,1538,1539,1540,1550,1548,1549,1534,1552,1551,1530,1533,1532,1523,1524,1522,1531,1557,1514,1518,1515,1516,1517,1556,1444,1443,1734,1483,1484,1485,1482,1468,1643,1690,1688,1682,1683,1681,2685,1845,1847,1846,1849,1848,1791,1672,1850,1651,1652,1656,1653,1655,1748,1746,1657,1650,1648,1749,1506,1654,1696,1695,1754,1755,1480,1756,1467,1505,1758,1743,1747,1508,1453,1481,1470,1851,1852,1526,1529,1527,1525,1528,1560,1853,1855,1854,1860,1862,1863,1768,1857,1861,1858,1859,1856,1564,1864,1679,1673,1674,1677,1675,1676,1670,1678,1671,1669,1493,1630,1631,1771,1469,1779,1487,1492,1491,1490,1489,1865,1772,1477,1476,1507,1488,1866,1727,616,1644,1647,1867,1662,1645,1685,1684,1686,1665,1646,1680,1667,1664,1663,1687,1694,1661,1658,1660,1659,1561,1873,1868,1869,1870,1871,1872,1874,1875,1876,1877,1878,1879,1880,1566,1598,1597,1881,1565,1567,1568,1571,1589,1591,1593,1595,1573,1575,1577,1579,1581,1583,1585,1587,1569,1572,1590,1592,1594,1596,1574,1576,1578,1580,1582,1584,1586,1588,1562,1563,1599,1479,2009,2008,1624,2253,2010,1722,1721,1717,1718,1719,1720,2011,1844,2012,1761,2013,1740,1697,2185,2186,2187,1475,1666,1716,1486,1794],"version":"5.8.3"} \ No newline at end of file
diff --git a/biome.json b/biome.json
index 55134582..c20f01ab 100644
--- a/biome.json
+++ b/biome.json
@@ -32,6 +32,12 @@
"quoteStyle": "double"
}
},
+ "css": {
+ "parser": {
+ "cssModules": true,
+ "tailwindDirectives": true
+ }
+ },
"assist": {
"enabled": true,
"actions": {
diff --git a/bun.lock b/bun.lock
index 12453d3c..f019d1e5 100644
--- a/bun.lock
+++ b/bun.lock
@@ -4,6 +4,7 @@
"": {
"name": "opencut",
"dependencies": {
+ "@biomejs/biome": "^2.4.8",
"@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3",
"better-auth": "^1.4.15",
@@ -18,13 +19,9 @@
"name": "@opencut/web",
"version": "0.1.0",
"dependencies": {
- "@ffmpeg/core": "^0.12.10",
- "@ffmpeg/ffmpeg": "^0.12.15",
- "@ffmpeg/util": "^0.12.2",
"@hello-pangea/dnd": "^18.0.1",
- "@hookform/resolvers": "^3.9.1",
"@hugeicons/core-free-icons": "^3.1.1",
- "@hugeicons/react": "^1.1.4",
+ "@hugeicons/react": "^1.1.6",
"@huggingface/transformers": "^3.8.1",
"@opencut/env": "workspace:*",
"@opencut/ui": "workspace:*",
@@ -40,15 +37,12 @@
"@types/culori": "^4.0.1",
"@upstash/ratelimit": "^2.0.6",
"@upstash/redis": "^1.35.4",
- "@vercel/analytics": "^1.4.1",
- "aws4fetch": "^1.0.20",
"better-auth": "^1.2.7",
"botid": "^1.4.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.0.0",
"culori": "^4.0.2",
- "dayjs": "^1.11.13",
"drizzle-orm": "^0.44.2",
"embla-carousel-react": "^8.5.1",
"eventemitter3": "^5.0.1",
@@ -69,21 +63,19 @@
"react-hook-form": "^7.54.0",
"react-icons": "^5.4.0",
"react-markdown": "^10.1.0",
- "react-phone-number-input": "^3.4.11",
"react-resizable-panels": "^2.1.7",
"react-window": "^2.2.7",
- "recharts": "^2.14.1",
"rehype-autolink-headings": "^7.1.0",
"rehype-parse": "^9.0.1",
"rehype-sanitize": "^6.0.0",
"rehype-slug": "^6.0.0",
"rehype-stringify": "^10.0.1",
"sonner": "^1.7.1",
+ "soundtouchjs": "^0.3.0",
"tailwind-merge": "^3.5.0",
"tailwindcss-animate": "^1.0.7",
"unified": "^11.0.5",
"use-deep-compare-effect": "^1.8.1",
- "vaul": "^1.1.2",
"wavesurfer.js": "^7.9.8",
"zod": "^3.25.67",
"zustand": "^5.0.2",
@@ -106,7 +98,6 @@
"raw-loader": "^4.0.2",
"sharp": "^0.34.5",
"tailwindcss": "^4.2.1",
- "tsx": "^4.7.1",
"typescript": "^5.8.3",
},
},
@@ -153,6 +144,24 @@
"@better-fetch/fetch": ["@better-fetch/fetch@1.1.21", "", {}, "sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A=="],
+ "@biomejs/biome": ["@biomejs/biome@2.4.8", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.8", "@biomejs/cli-darwin-x64": "2.4.8", "@biomejs/cli-linux-arm64": "2.4.8", "@biomejs/cli-linux-arm64-musl": "2.4.8", "@biomejs/cli-linux-x64": "2.4.8", "@biomejs/cli-linux-x64-musl": "2.4.8", "@biomejs/cli-win32-arm64": "2.4.8", "@biomejs/cli-win32-x64": "2.4.8" }, "bin": { "biome": "bin/biome" } }, "sha512-ponn0oKOky1oRXBV+rlSaUlixUxf1aZvWC19Z41zBfUOUesthrQqL3OtiAlSB1EjFjyWpn98Q64DHelhA6jNlA=="],
+
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ARx0tECE8I7S2C2yjnWYLNbBdDoPdq3oyNLhMglmuctThwUsuzFWRKrHmIGwIRWKz0Mat9DuzLEDp52hGnrxGQ=="],
+
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-Jg9/PsB9vDCJlANE8uhG7qDhb5w0Ix69D7XIIc8IfZPUoiPrbLm33k2Ig3NOJ/7nb3UbesFz3D1aDKm9DvzjhQ=="],
+
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-5CdrsJct76XG2hpKFwXnEtlT1p+4g4yV+XvvwBpzKsTNLO9c6iLlAxwcae2BJ7ekPGWjNGw9j09T5KGPKKxQig=="],
+
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-Zo9OhBQDJ3IBGPlqHiTISloo5H0+FBIpemqIJdW/0edJ+gEcLR+MZeZozcUyz3o1nXkVA7++DdRKQT0599j9jA=="],
+
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.8", "", { "os": "linux", "cpu": "x64" }, "sha512-PdKXspVEaMCQLjtZCn6vfSck/li4KX9KGwSDbZdgIqlrizJ2MnMcE3TvHa2tVfXNmbjMikzcfJpuPWH695yJrw=="],
+
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.8", "", { "os": "linux", "cpu": "x64" }, "sha512-Gi8quv8MEuDdKaPFtS2XjEnMqODPsRg6POT6KhoP+VrkNb+T2ywunVB+TvOU0LX1jAZzfBr+3V1mIbBhzAMKvw=="],
+
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-LoFatS0tnHv6KkCVpIy3qZCih+MxUMvdYiPWLHRri7mhi2vyOOs8OrbZBcLTUEWCS+ktO72nZMy4F96oMhkOHQ=="],
+
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.8", "", { "os": "win32", "cpu": "x64" }, "sha512-vAn7iXDoUbqFXqVocuq1sMYAd33p8+mmurqJkWl6CtIhobd/O6moe4rY5AJvzbunn/qZCdiDVcveqtkFh1e7Hg=="],
+
"@content-collections/core": ["@content-collections/core@0.14.1", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "camelcase": "^8.0.0", "chokidar": "^4.0.3", "esbuild": "^0.25.11", "gray-matter": "^4.0.3", "p-limit": "^6.1.0", "picomatch": "^4.0.2", "pluralize": "^8.0.0", "serialize-javascript": "^6.0.2", "tinyglobby": "^0.2.5", "yaml": "^2.4.5" }, "peerDependencies": { "typescript": "^5.0.2" } }, "sha512-mfviKnONzVcr1D3uasZFEk0E9N4a7liCra06imQrmKF07nGDuvrRKUFoUwUc2IGrW3EYqKF/KV06zfJRzNe3sg=="],
"@content-collections/integrations": ["@content-collections/integrations@0.5.0", "", { "peerDependencies": { "@content-collections/core": "0.x" } }, "sha512-1en7r518sct0Y8CQ5IsuuBN4uAmtNLaWuxmseW43OxeXyj43Uu2aPBfbopjL4b5xH8WZBdDrrPmikgOl42U46A=="],
@@ -219,14 +228,6 @@
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
- "@ffmpeg/core": ["@ffmpeg/core@0.12.10", "", {}, "sha512-dzNplnn2Nxle2c2i2rrDhqcB19q9cglCkWnoMTDN9Q9l3PvdjZWd1HfSPjCNWc/p8Q3CT+Es9fWOR0UhAeYQZA=="],
-
- "@ffmpeg/ffmpeg": ["@ffmpeg/ffmpeg@0.12.15", "", { "dependencies": { "@ffmpeg/types": "^0.12.4" } }, "sha512-1C8Obr4GsN3xw+/1Ww6PFM84wSQAGsdoTuTWPOj2OizsRDLT4CXTaVjPhkw6ARyDus1B9X/L2LiXHqYYsGnRFw=="],
-
- "@ffmpeg/types": ["@ffmpeg/types@0.12.4", "", {}, "sha512-k9vJQNBGTxE5AhYDtOYR5rO5fKsspbg51gbcwtbkw2lCdoIILzklulcjJfIDwrtn7XhDeF2M+THwJ2FGrLeV6A=="],
-
- "@ffmpeg/util": ["@ffmpeg/util@0.12.2", "", {}, "sha512-ouyoW+4JB7WxjeZ2y6KpRvB+dLp7Cp4ro8z0HIVpZVCM7AwFlHa0c4R8Y/a4M3wMqATpYKhC7lSFHQ0T11MEDw=="],
-
"@floating-ui/core": ["@floating-ui/core@1.7.2", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw=="],
"@floating-ui/dom": ["@floating-ui/dom@1.7.2", "", { "dependencies": { "@floating-ui/core": "^1.7.2", "@floating-ui/utils": "^0.2.10" } }, "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA=="],
@@ -237,11 +238,9 @@
"@hello-pangea/dnd": ["@hello-pangea/dnd@18.0.1", "", { "dependencies": { "@babel/runtime": "^7.26.7", "css-box-model": "^1.2.1", "raf-schd": "^4.0.3", "react-redux": "^9.2.0", "redux": "^5.0.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-xojVWG8s/TGrKT1fC8K2tIWeejJYTAeJuj36zM//yEm/ZrnZUSFGS15BpO+jGZT1ybWvyXmeDJwPYb4dhWlbZQ=="],
- "@hookform/resolvers": ["@hookform/resolvers@3.10.0", "", { "peerDependencies": { "react-hook-form": "^7.0.0" } }, "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag=="],
-
"@hugeicons/core-free-icons": ["@hugeicons/core-free-icons@3.1.1", "", {}, "sha512-UpS2lUQFi5sKyJSWwM6rO+BnPLvVz1gsyCpPHeZyVuZqi89YH8ksliza4cwaODqKOZyeXmG8juo1ty4QtQofkg=="],
- "@hugeicons/react": ["@hugeicons/react@1.1.4", "", { "peerDependencies": { "react": ">=16.0.0" } }, "sha512-gsc3eZyd2fGqRUThW9+lfjxxsOkz6KNVmRXRgJjP32GL0OnnLJnl3hytKt47CBbiQj2xE2kCw+rnP3UQCThcKw=="],
+ "@hugeicons/react": ["@hugeicons/react@1.1.6", "", { "peerDependencies": { "react": ">=16.0.0" } }, "sha512-c2LhXJMAW5wN1pC/smBXG0YPqUON6ceR/ZdXHCjEI9KvB+hjtqYjmzIxok5hAQOeXGz0WtORgCQMzqewFKAZwg=="],
"@huggingface/jinja": ["@huggingface/jinja@0.5.3", "", {}, "sha512-asqfZ4GQS0hD876Uw4qiUb7Tr/V5Q+JZuo2L+BtdrD4U40QU58nIRq3ZSgAzJgT874VLjhGVacaYfrdpXtEvtA=="],
@@ -543,28 +542,10 @@
"@tailwindcss/typography": ["@tailwindcss/typography@0.5.19", "", { "dependencies": { "postcss-selector-parser": "6.0.10" }, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg=="],
- "@types/bun": ["@types/bun@1.3.10", "", { "dependencies": { "bun-types": "1.3.10" } }, "sha512-0+rlrUrOrTSskibryHbvQkDOWRJwJZqZlxrUs1u4oOoTln8+WIXBPmAuCF35SWB2z4Zl3E84Nl/D0P7803nigQ=="],
+ "@types/bun": ["@types/bun@1.3.11", "", { "dependencies": { "bun-types": "1.3.11" } }, "sha512-5vPne5QvtpjGpsGYXiFyycfpDF2ECyPcTSsFBMa0fraoxiQyMJ3SmuQIGhzPg2WJuWxVBoxWJ2kClYTcw/4fAg=="],
"@types/culori": ["@types/culori@4.0.1", "", {}, "sha512-43M51r/22CjhbOXyGT361GZ9vncSVQ39u62x5eJdBQFviI8zWp2X5jzqg7k4M6PVgDQAClpy2bUe2dtwEgEDVQ=="],
- "@types/d3-array": ["@types/d3-array@3.2.1", "", {}, "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg=="],
-
- "@types/d3-color": ["@types/d3-color@3.1.3", "", {}, "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="],
-
- "@types/d3-ease": ["@types/d3-ease@3.0.2", "", {}, "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA=="],
-
- "@types/d3-interpolate": ["@types/d3-interpolate@3.0.4", "", { "dependencies": { "@types/d3-color": "*" } }, "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA=="],
-
- "@types/d3-path": ["@types/d3-path@3.1.1", "", {}, "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg=="],
-
- "@types/d3-scale": ["@types/d3-scale@4.0.9", "", { "dependencies": { "@types/d3-time": "*" } }, "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw=="],
-
- "@types/d3-shape": ["@types/d3-shape@3.1.7", "", { "dependencies": { "@types/d3-path": "*" } }, "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg=="],
-
- "@types/d3-time": ["@types/d3-time@3.0.4", "", {}, "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g=="],
-
- "@types/d3-timer": ["@types/d3-timer@3.0.2", "", {}, "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw=="],
-
"@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="],
"@types/dom-mediacapture-transform": ["@types/dom-mediacapture-transform@0.1.11", "", { "dependencies": { "@types/dom-webcodecs": "*" } }, "sha512-Y2p+nGf1bF2XMttBnsVPHUWzRRZzqUoJAKmiP10b5umnO6DDrWI0BrGDJy1pOHoOULVmGSfFNkQrAlC5dcj6nQ=="],
@@ -607,8 +588,6 @@
"@upstash/redis": ["@upstash/redis@1.35.4", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-WE1ZnhFyBiIjTDW13GbO6JjkiMVVjw5VsvS8ENmvvJsze/caMQ5paxVD44+U68IUVmkXcbsLSoE+VIYsHtbQEw=="],
- "@vercel/analytics": ["@vercel/analytics@1.5.0", "", { "peerDependencies": { "@remix-run/react": "^2", "@sveltejs/kit": "^1 || ^2", "next": ">= 13", "react": "^18 || ^19 || ^19.0.0-rc", "svelte": ">= 4", "vue": "^3", "vue-router": "^4" }, "optionalPeers": ["@remix-run/react", "@sveltejs/kit", "next", "react", "svelte", "vue", "vue-router"] }, "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g=="],
-
"@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="],
"@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="],
@@ -657,8 +636,6 @@
"aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="],
- "aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="],
-
"bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
"baseline-browser-mapping": ["baseline-browser-mapping@2.9.15", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg=="],
@@ -677,7 +654,7 @@
"buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
- "bun-types": ["bun-types@1.3.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg=="],
+ "bun-types": ["bun-types@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-1KGPpoxQWl9f6wcZh57LvrPIInQMn2TQ7jsgxqpRzg+l0QPOFvJVH7HmvHo/AiPgwXy+/Thf6Ov3EdVn1vOabg=="],
"camelcase": ["camelcase@8.0.0", "", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="],
@@ -701,8 +678,6 @@
"class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="],
- "classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="],
-
"client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="],
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
@@ -713,8 +688,6 @@
"commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="],
- "country-flag-icons": ["country-flag-icons@1.5.19", "", {}, "sha512-D/ZkRyj+ywJC6b2IrAN3/tpbReMUqmuRLlcKFoY/o0+EPQN9Ev/e8tV+D3+9scvu/tarxwLErNwS73C3yzxs/g=="],
-
"cross-env": ["cross-env@7.0.3", "", { "dependencies": { "cross-spawn": "^7.0.1" }, "bin": { "cross-env": "src/bin/cross-env.js", "cross-env-shell": "src/bin/cross-env-shell.js" } }, "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw=="],
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
@@ -727,36 +700,10 @@
"culori": ["culori@4.0.2", "", {}, "sha512-1+BhOB8ahCn4O0cep0Sh2l9KCOfOdY+BXJnKMHFFzDEouSr/el18QwXEMRlOj9UY5nCeA8UN3a/82rUWRBeyBw=="],
- "d3-array": ["d3-array@3.2.4", "", { "dependencies": { "internmap": "1 - 2" } }, "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="],
-
- "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="],
-
- "d3-ease": ["d3-ease@3.0.1", "", {}, "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="],
-
- "d3-format": ["d3-format@3.1.0", "", {}, "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="],
-
- "d3-interpolate": ["d3-interpolate@3.0.1", "", { "dependencies": { "d3-color": "1 - 3" } }, "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="],
-
- "d3-path": ["d3-path@3.1.0", "", {}, "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ=="],
-
- "d3-scale": ["d3-scale@4.0.2", "", { "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", "d3-interpolate": "1.2.0 - 3", "d3-time": "2.1.1 - 3", "d3-time-format": "2 - 4" } }, "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="],
-
- "d3-shape": ["d3-shape@3.2.0", "", { "dependencies": { "d3-path": "^3.1.0" } }, "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA=="],
-
- "d3-time": ["d3-time@3.1.0", "", { "dependencies": { "d3-array": "2 - 3" } }, "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="],
-
- "d3-time-format": ["d3-time-format@4.1.0", "", { "dependencies": { "d3-time": "1 - 3" } }, "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="],
-
- "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="],
-
"date-fns": ["date-fns@3.6.0", "", {}, "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww=="],
- "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="],
-
"debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
- "decimal.js-light": ["decimal.js-light@2.5.1", "", {}, "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg=="],
-
"decode-named-character-reference": ["decode-named-character-reference@1.2.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q=="],
"define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="],
@@ -775,8 +722,6 @@
"devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="],
- "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="],
-
"dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="],
"drizzle-kit": ["drizzle-kit@0.31.4", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA=="],
@@ -833,8 +778,6 @@
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
- "fast-equals": ["fast-equals@5.2.2", "", {}, "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw=="],
-
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
"fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="],
@@ -847,8 +790,6 @@
"framer-motion": ["framer-motion@12.23.6", "", { "dependencies": { "motion-dom": "^12.23.6", "motion-utils": "^12.23.6", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-dsJ389QImVE3lQvM8Mnk99/j8tiZDM/7706PCqvkQ8sSCnpmWxsgX+g0lj7r5OBVL0U36pIecCTBoIWcM2RuKw=="],
- "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
-
"get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="],
"get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="],
@@ -901,12 +842,8 @@
"inline-style-parser": ["inline-style-parser@0.2.4", "", {}, "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q=="],
- "input-format": ["input-format@0.3.14", "", { "dependencies": { "prop-types": "^15.8.1" }, "peerDependencies": { "react": ">=18.1.0", "react-dom": ">=18.1.0" }, "optionalPeers": ["react", "react-dom"] }, "sha512-gHMrgrbCgmT4uK5Um5eVDUohuV9lcs95ZUUN9Px2Y0VIfjTzT2wF8Q3Z4fwLFm7c5Z2OXCm53FHoovj6SlOKdg=="],
-
"input-otp": ["input-otp@1.4.2", "", { "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA=="],
- "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="],
-
"is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="],
"is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
@@ -943,8 +880,6 @@
"kysely": ["kysely@0.28.9", "", {}, "sha512-3BeXMoiOhpOwu62CiVpO6lxfq4eS6KMYfQdMsN/2kUCRNuF2YiEr7u0HLHaQU+O4Xu8YXE3bHVkwaQ85i72EuA=="],
- "libphonenumber-js": ["libphonenumber-js@1.12.10", "", {}, "sha512-E91vHJD61jekHHR/RF/E83T/CMoaLXT7cwYA75T4gim4FZjnM6hbJjVIGg7chqlSqRsSvQ3izGmOjHy1SQzcGQ=="],
-
"lightningcss": ["lightningcss@1.31.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.31.1", "lightningcss-darwin-arm64": "1.31.1", "lightningcss-darwin-x64": "1.31.1", "lightningcss-freebsd-x64": "1.31.1", "lightningcss-linux-arm-gnueabihf": "1.31.1", "lightningcss-linux-arm64-gnu": "1.31.1", "lightningcss-linux-arm64-musl": "1.31.1", "lightningcss-linux-x64-gnu": "1.31.1", "lightningcss-linux-x64-musl": "1.31.1", "lightningcss-win32-arm64-msvc": "1.31.1", "lightningcss-win32-x64-msvc": "1.31.1" } }, "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ=="],
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.31.1", "", { "os": "android", "cpu": "arm64" }, "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg=="],
@@ -973,8 +908,6 @@
"loader-utils": ["loader-utils@2.0.4", "", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="],
- "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="],
-
"long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="],
"longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
@@ -1079,8 +1012,6 @@
"node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="],
- "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
-
"object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="],
"onnxruntime-common": ["onnxruntime-common@1.21.0", "", {}, "sha512-Q632iLLrtCAVOTO65dh2+mNbQir/QNTVBG3h/QdZBpns7mZ0RYbLRBgGABPbpU9351AgYy7SJf1WaeVwMrBFPQ=="],
@@ -1135,8 +1066,6 @@
"postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="],
- "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
-
"property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
"protobufjs": ["protobufjs@7.5.4", "", { "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", "@protobufjs/eventemitter": "^1.1.0", "@protobufjs/fetch": "^1.1.0", "@protobufjs/float": "^1.0.2", "@protobufjs/inquire": "^1.1.0", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", "@types/node": ">=13.7.0", "long": "^5.0.0" } }, "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg=="],
@@ -1161,12 +1090,8 @@
"react-icons": ["react-icons@5.5.0", "", { "peerDependencies": { "react": "*" } }, "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw=="],
- "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
-
"react-markdown": ["react-markdown@10.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "html-url-attributes": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "unified": "^11.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "peerDependencies": { "@types/react": ">=18", "react": ">=18" } }, "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ=="],
- "react-phone-number-input": ["react-phone-number-input@3.4.12", "", { "dependencies": { "classnames": "^2.5.1", "country-flag-icons": "^1.5.17", "input-format": "^0.3.10", "libphonenumber-js": "^1.11.20", "prop-types": "^15.8.1" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-Raob77KdtLGm49iC6nuOX9qy6Mg16idkgC7Y1mHmvG2WBYoauHpzxYNlfmFskQKeiztrJIwPhPzBhjFwjenNCA=="],
-
"react-redux": ["react-redux@9.2.0", "", { "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "@types/react": "^18.2.25 || ^19", "react": "^18.0 || ^19", "redux": "^5.0.0" }, "optionalPeers": ["@types/react", "redux"] }, "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g=="],
"react-remove-scroll": ["react-remove-scroll@2.7.1", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA=="],
@@ -1175,20 +1100,12 @@
"react-resizable-panels": ["react-resizable-panels@2.1.9", "", { "peerDependencies": { "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ=="],
- "react-smooth": ["react-smooth@4.0.4", "", { "dependencies": { "fast-equals": "^5.0.1", "prop-types": "^15.8.1", "react-transition-group": "^4.4.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q=="],
-
"react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="],
- "react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="],
-
"react-window": ["react-window@2.2.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SH5nvfUQwGHYyriDUAOt7wfPsfG9Qxd6OdzQxl5oQ4dsSsUicqQvjV7dR+NqZ4coY0fUn3w1jnC5PwzIUWEg5w=="],
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
- "recharts": ["recharts@2.15.4", "", { "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.21", "react-is": "^18.3.1", "react-smooth": "^4.0.4", "recharts-scale": "^0.4.4", "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw=="],
-
- "recharts-scale": ["recharts-scale@0.4.5", "", { "dependencies": { "decimal.js-light": "^2.4.1" } }, "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w=="],
-
"redux": ["redux@5.0.1", "", {}, "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="],
"rehype-autolink-headings": ["rehype-autolink-headings@7.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-heading-rank": "^3.0.0", "hast-util-is-element": "^3.0.0", "unified": "^11.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw=="],
@@ -1241,6 +1158,8 @@
"sonner": ["sonner@1.7.4", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw=="],
+ "soundtouchjs": ["soundtouchjs@0.3.0", "", {}, "sha512-P/+SwnIE4BLrMbYK8aB8+GfXRfLv3+BV8HFMrEqOuF0F9BsI3sKEN1T+kY/JqiVURcCQgr50BC8D/uVzE/GozQ=="],
+
"source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
@@ -1289,8 +1208,6 @@
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
- "tsx": ["tsx@4.20.3", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ=="],
-
"turbo": ["turbo@2.7.5", "", { "optionalDependencies": { "turbo-darwin-64": "2.7.5", "turbo-darwin-arm64": "2.7.5", "turbo-linux-64": "2.7.5", "turbo-linux-arm64": "2.7.5", "turbo-windows-64": "2.7.5", "turbo-windows-arm64": "2.7.5" }, "bin": { "turbo": "bin/turbo" } }, "sha512-7Imdmg37joOloTnj+DPrab9hIaQcDdJ5RwSzcauo/wMOSAgO+A/I/8b3hsGGs6PWQz70m/jkPgdqWsfNKtwwDQ=="],
"turbo-darwin-64": ["turbo-darwin-64@2.7.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-nN3wfLLj4OES/7awYyyM7fkU8U8sAFxsXau2bYJwAWi6T09jd87DgHD8N31zXaJ7LcpyppHWPRI2Ov9MuZEwnQ=="],
@@ -1339,16 +1256,12 @@
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
- "vaul": ["vaul@1.1.2", "", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA=="],
-
"vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="],
"vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="],
"vfile-message": ["vfile-message@4.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw=="],
- "victory-vendor": ["victory-vendor@36.9.2", "", { "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", "@types/d3-interpolate": "^3.0.1", "@types/d3-scale": "^4.0.2", "@types/d3-shape": "^3.1.0", "@types/d3-time": "^3.0.0", "@types/d3-timer": "^3.0.0", "d3-array": "^3.1.6", "d3-ease": "^3.0.1", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-shape": "^3.1.0", "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } }, "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ=="],
-
"watchpack": ["watchpack@2.5.1", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg=="],
"wavesurfer.js": ["wavesurfer.js@7.10.0", "", {}, "sha512-GiyAHdorqGtUYG5fe4BfTf5lmtSLhrXoHeNlMsR80JOiOZxOrIOv9QaIR8RnqlleJ6D8R9cqvZKR9lfJcWcapg=="],
@@ -1501,8 +1414,6 @@
"cmdk/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
- "dom-helpers/csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="],
-
"drizzle-kit/esbuild": ["esbuild@0.25.8", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.8", "@esbuild/android-arm": "0.25.8", "@esbuild/android-arm64": "0.25.8", "@esbuild/android-x64": "0.25.8", "@esbuild/darwin-arm64": "0.25.8", "@esbuild/darwin-x64": "0.25.8", "@esbuild/freebsd-arm64": "0.25.8", "@esbuild/freebsd-x64": "0.25.8", "@esbuild/linux-arm": "0.25.8", "@esbuild/linux-arm64": "0.25.8", "@esbuild/linux-ia32": "0.25.8", "@esbuild/linux-loong64": "0.25.8", "@esbuild/linux-mips64el": "0.25.8", "@esbuild/linux-ppc64": "0.25.8", "@esbuild/linux-riscv64": "0.25.8", "@esbuild/linux-s390x": "0.25.8", "@esbuild/linux-x64": "0.25.8", "@esbuild/netbsd-arm64": "0.25.8", "@esbuild/netbsd-x64": "0.25.8", "@esbuild/openbsd-arm64": "0.25.8", "@esbuild/openbsd-x64": "0.25.8", "@esbuild/openharmony-arm64": "0.25.8", "@esbuild/sunos-x64": "0.25.8", "@esbuild/win32-arm64": "0.25.8", "@esbuild/win32-ia32": "0.25.8", "@esbuild/win32-x64": "0.25.8" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q=="],
"esrecurse/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
@@ -1515,8 +1426,6 @@
"postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
- "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
-
"radix-ui/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
"radix-ui/@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.7", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA=="],
@@ -1525,16 +1434,10 @@
"react-day-picker/react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="],
- "recharts/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
-
"roarr/sprintf-js": ["sprintf-js@1.1.3", "", {}, "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="],
"terser-webpack-plugin/schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="],
- "tsx/esbuild": ["esbuild@0.25.8", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.8", "@esbuild/android-arm": "0.25.8", "@esbuild/android-arm64": "0.25.8", "@esbuild/android-x64": "0.25.8", "@esbuild/darwin-arm64": "0.25.8", "@esbuild/darwin-x64": "0.25.8", "@esbuild/freebsd-arm64": "0.25.8", "@esbuild/freebsd-x64": "0.25.8", "@esbuild/linux-arm": "0.25.8", "@esbuild/linux-arm64": "0.25.8", "@esbuild/linux-ia32": "0.25.8", "@esbuild/linux-loong64": "0.25.8", "@esbuild/linux-mips64el": "0.25.8", "@esbuild/linux-ppc64": "0.25.8", "@esbuild/linux-riscv64": "0.25.8", "@esbuild/linux-s390x": "0.25.8", "@esbuild/linux-x64": "0.25.8", "@esbuild/netbsd-arm64": "0.25.8", "@esbuild/netbsd-x64": "0.25.8", "@esbuild/openbsd-arm64": "0.25.8", "@esbuild/openbsd-x64": "0.25.8", "@esbuild/openharmony-arm64": "0.25.8", "@esbuild/sunos-x64": "0.25.8", "@esbuild/win32-arm64": "0.25.8", "@esbuild/win32-ia32": "0.25.8", "@esbuild/win32-x64": "0.25.8" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q=="],
-
- "vaul/@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw=="],
-
"webpack/schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="],
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="],
@@ -1717,70 +1620,6 @@
"terser-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="],
- "tsx/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.8", "", { "os": "aix", "cpu": "ppc64" }, "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA=="],
-
- "tsx/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.8", "", { "os": "android", "cpu": "arm" }, "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw=="],
-
- "tsx/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.8", "", { "os": "android", "cpu": "arm64" }, "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w=="],
-
- "tsx/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.8", "", { "os": "android", "cpu": "x64" }, "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA=="],
-
- "tsx/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw=="],
-
- "tsx/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg=="],
-
- "tsx/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.8", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA=="],
-
- "tsx/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.8", "", { "os": "freebsd", "cpu": "x64" }, "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw=="],
-
- "tsx/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.8", "", { "os": "linux", "cpu": "arm" }, "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg=="],
-
- "tsx/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w=="],
-
- "tsx/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.8", "", { "os": "linux", "cpu": "ia32" }, "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg=="],
-
- "tsx/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ=="],
-
- "tsx/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw=="],
-
- "tsx/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.8", "", { "os": "linux", "cpu": "ppc64" }, "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ=="],
-
- "tsx/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg=="],
-
- "tsx/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.8", "", { "os": "linux", "cpu": "s390x" }, "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg=="],
-
- "tsx/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.8", "", { "os": "linux", "cpu": "x64" }, "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ=="],
-
- "tsx/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw=="],
-
- "tsx/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.8", "", { "os": "none", "cpu": "x64" }, "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg=="],
-
- "tsx/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.8", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ=="],
-
- "tsx/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.8", "", { "os": "openbsd", "cpu": "x64" }, "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ=="],
-
- "tsx/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg=="],
-
- "tsx/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.8", "", { "os": "sunos", "cpu": "x64" }, "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w=="],
-
- "tsx/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ=="],
-
- "tsx/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg=="],
-
- "tsx/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.8", "", { "os": "win32", "cpu": "x64" }, "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/primitive": ["@radix-ui/primitive@1.1.2", "", {}, "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.10", "", { "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="],
-
- "vaul/@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="],
-
"webpack/schema-utils/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="],
"webpack/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="],
diff --git a/docs/effects-renderer.md b/docs/effects-renderer.md
index fd41282b..a26bcae6 100644
--- a/docs/effects-renderer.md
+++ b/docs/effects-renderer.md
@@ -28,11 +28,41 @@ renderer: {
}
```
-All WebGL rendering — both the main renderer and the effect preview — goes through `applyMultiPassEffect` in `apps/web/src/services/renderer/webgl-utils.ts`. Don't add a new rendering path somewhere else; update that function if needed.
+### Dynamic pass counts with `buildPasses`
+
+Some effects need a variable number of passes depending on their parameters (e.g. blur needs more iterations at high intensity to keep quality). For these, add a `buildPasses` function to the renderer:
+
+```typescript
+renderer: {
+ type: "webgl",
+ passes: [ /* static fallback — used if buildPasses is absent */ ],
+ buildPasses: ({ effectParams, width, height }) => {
+ // return ResolvedEffectPass[] with pre-computed uniforms
+ },
+}
+```
+
+When `buildPasses` is present, all rendering paths use it instead of the static `passes` array. The static array is kept as a structural reference and fallback for effects that don't need dynamic pass counts.
+
+### Resolving passes — always use `resolveEffectPasses`
+
+All code that consumes effect passes should go through the helper, never access `definition.renderer.passes` directly:
+
+```typescript
+import { resolveEffectPasses } from "@/lib/effects";
+
+const passes = resolveEffectPasses({ definition, effectParams, width, height });
+```
+
+This handles the `buildPasses` vs static `passes` dispatch automatically.
+
+### Pipeline
+
+Linear effect chains (blur, color grading, bloom) go through `applyMultiPassEffect` in `apps/web/src/services/renderer/webgl-utils.ts`. Non-linear GPU pipelines that need branching or multi-texture passes (like JFA for signed distance fields) get their own orchestrator in `services/renderer/` and share the WebGL context via `webgl-context.ts`.
## Writing fragment shaders
-Shaders live in `apps/web/src/lib/effects/definitions/`. The shared vertex shader (`effect.vert.glsl`) maps clip space to UV coordinates — don't replace it unless you have a specific reason.
+Effect-specific shaders live in `apps/web/src/lib/effects/definitions/`. General-purpose GPU algorithm shaders (like JFA) live in `apps/web/src/lib/shaders/`. Domain-specific shaders that consume a general algorithm (like the mask feather smoothstep) live with their domain (e.g. `lib/masks/shaders/`). The shared vertex shader (`effect.vert.glsl`) maps clip space to UV coordinates — don't replace it unless you have a specific reason.
Available uniforms (automatically injected, no need to pass them manually):
- `u_texture` — the input texture (sampler2D)
@@ -40,22 +70,22 @@ Available uniforms (automatically injected, no need to pass them manually):
Any additional uniforms come from the `uniforms()` function in the pass definition.
-**Sampling density — the most common mistake**
+**Sampling density and step scaling**
-Always use a step of 1 texel when sampling neighbors. Do not scale the step size with the blur radius or intensity — it creates visible discrete artifacts (ghosting/glow look) because there are large gaps between samples that the GPU fills with linear interpolation instead of your intended curve.
+A fixed kernel (e.g. ±30 samples) can only cover ±30 texels at step=1. When the target sigma grows beyond ~10, the kernel can't cover enough of the Gaussian curve and the result degrades into a box filter.
-```glsl
-// correct — step is always 1 texel, loop count controls radius
-for (int i = -30; i <= 30; i++) {
- color += texture2D(u_texture, v_texCoord + texelSize * u_direction * float(i)) * weight;
-}
+The fix is a `u_step` uniform that spaces samples further apart. With step=4 the same 61-sample kernel covers ±120 texels. Bilinear texture filtering smooths the gaps between samples. For very large sigma, combine step scaling with **multi-iteration stacking** (multiple H+V pass pairs via `buildPasses`) — each iteration compounds the blur, and the effective sigma = per-pass sigma × √iterations.
-// wrong — stepping 6 texels at a time looks ghosty at high intensity
-vec2 offset = texelSize * u_direction * u_radius;
-color += texture2D(u_texture, v_texCoord + offset * 2.0) * someWeight;
+Keep the step size moderate (≤4) to avoid visible banding. If you need more blur than step=4 allows in a single iteration, add iterations instead of increasing the step further.
+
+```glsl
+// u_step scales the distance between samples
+float pos = float(i) * u_step;
+float weight = exp(-(pos * pos) / (2.0 * u_sigma * u_sigma));
+color += texture2D(u_texture, v_texCoord + texelSize * u_direction * pos) * weight;
```
-If you need a large radius with a fixed kernel size, increase the number of samples rather than the step.
+Do **not** use large step sizes (>6) in a single pass — it creates visible banding regardless of bilinear interpolation. Use multiple iterations instead.
## Y-flip and coordinate systems
diff --git a/apps/web/src/components/editor/panels/properties/audio-properties.tsx b/legacy/components/properties/audio-properties.tsx
index 2ad46497..2ad46497 100644
--- a/apps/web/src/components/editor/panels/properties/audio-properties.tsx
+++ b/legacy/components/properties/audio-properties.tsx
diff --git a/apps/web/src/components/editor/panels/properties/clip-effects-properties.tsx b/legacy/components/properties/clip-effects-properties.tsx
index a1324bdf..a1324bdf 100644
--- a/apps/web/src/components/editor/panels/properties/clip-effects-properties.tsx
+++ b/legacy/components/properties/clip-effects-properties.tsx
diff --git a/apps/web/src/components/editor/panels/properties/effect-param-field.tsx b/legacy/components/properties/effect-param-field.tsx
index 408d430a..408d430a 100644
--- a/apps/web/src/components/editor/panels/properties/effect-param-field.tsx
+++ b/legacy/components/properties/effect-param-field.tsx
diff --git a/apps/web/src/components/editor/panels/properties/effect-properties.tsx b/legacy/components/properties/effect-properties.tsx
index 75fc30a1..75fc30a1 100644
--- a/apps/web/src/components/editor/panels/properties/effect-properties.tsx
+++ b/legacy/components/properties/effect-properties.tsx
diff --git a/legacy/components/properties/keyframe-toggle.tsx b/legacy/components/properties/keyframe-toggle.tsx
new file mode 100644
index 00000000..b5b8685f
--- /dev/null
+++ b/legacy/components/properties/keyframe-toggle.tsx
@@ -0,0 +1,32 @@
+import { Button } from "@/components/ui/button";
+import { HugeiconsIcon } from "@hugeicons/react";
+import { KeyframeIcon } from "@hugeicons/core-free-icons";
+import { cn } from "@/utils/ui";
+
+export function KeyframeToggle({
+ isActive,
+ isDisabled = false,
+ title,
+ onToggle,
+}: {
+ isActive: boolean;
+ isDisabled?: boolean;
+ title: string;
+ onToggle: () => void;
+}) {
+ return (
+ <Button
+ variant="text"
+ aria-pressed={isActive}
+ disabled={isDisabled}
+ title={title}
+ onClick={onToggle}
+ className="[&>svg]:size-3.5 mb-0.5"
+ >
+ <HugeiconsIcon
+ icon={KeyframeIcon}
+ className={cn(isActive && "text-primary fill-primary")}
+ />
+ </Button>
+ );
+}
diff --git a/apps/web/src/components/editor/panels/properties/section.tsx b/legacy/components/properties/section.tsx
index 5989108b..5989108b 100644
--- a/apps/web/src/components/editor/panels/properties/section.tsx
+++ b/legacy/components/properties/section.tsx
diff --git a/apps/web/src/components/editor/panels/properties/text-properties.tsx b/legacy/components/properties/text-properties.tsx
index ae6de420..ae6de420 100644
--- a/apps/web/src/components/editor/panels/properties/text-properties.tsx
+++ b/legacy/components/properties/text-properties.tsx
diff --git a/apps/web/src/components/editor/panels/properties/video-properties.tsx b/legacy/components/properties/video-properties.tsx
index 49dd8fe5..49dd8fe5 100644
--- a/apps/web/src/components/editor/panels/properties/video-properties.tsx
+++ b/legacy/components/properties/video-properties.tsx
diff --git a/apps/web/src/components/editor/panels/properties/sections/blending.tsx b/legacy/sections/blending.tsx
index a50e84e7..a50e84e7 100644
--- a/apps/web/src/components/editor/panels/properties/sections/blending.tsx
+++ b/legacy/sections/blending.tsx
diff --git a/apps/web/src/components/editor/panels/properties/sections/index.tsx b/legacy/sections/index.tsx
index 8be58f39..8be58f39 100644
--- a/apps/web/src/components/editor/panels/properties/sections/index.tsx
+++ b/legacy/sections/index.tsx
diff --git a/apps/web/src/components/editor/panels/properties/sections/transform.tsx b/legacy/sections/transform.tsx
index 6aaaa1fe..6aaaa1fe 100644
--- a/apps/web/src/components/editor/panels/properties/sections/transform.tsx
+++ b/legacy/sections/transform.tsx
diff --git a/apps/web/src/hooks/timeline/use-selection-box.ts b/legacy/timeline/use-selection-box.ts
index c4f8d6ce..027d3d76 100644
--- a/apps/web/src/hooks/timeline/use-selection-box.ts
+++ b/legacy/timeline/use-selection-box.ts
@@ -5,10 +5,14 @@ import { useEditor } from "../use-editor";
interface UseSelectionBoxProps {
containerRef: React.RefObject<HTMLElement | null>;
- headerRef: React.RefObject<HTMLElement | null>;
- onSelectionComplete: (
- elements: { trackId: string; elementId: string }[],
- ) => void;
+ headerRef?: React.RefObject<HTMLElement | null>;
+ onSelectionComplete: ({
+ elements,
+ isAdditive,
+ }: {
+ elements: { trackId: string; elementId: string }[];
+ isAdditive: boolean;
+ }) => void;
isEnabled?: boolean;
tracksScrollRef: React.RefObject<HTMLDivElement | null>;
zoomLevel: number;
@@ -18,6 +22,7 @@ interface SelectionBoxState {
startPos: { x: number; y: number };
currentPos: { x: number; y: number };
isActive: boolean;
+ isAdditive: boolean;
}
interface SelectionRectangle {
@@ -54,16 +59,17 @@ function getSelectionRectangleInContent({
endPos: { x: number; y: number };
}): SelectionRectangle {
const containerRect = container.getBoundingClientRect();
+ const scrollRect = scrollContainer?.getBoundingClientRect() ?? containerRect;
const scrollLeft = scrollContainer?.scrollLeft ?? 0;
const scrollTop = scrollContainer?.scrollTop ?? 0;
const adjustedStart = {
x: startPos.x - containerRect.left + scrollLeft,
- y: startPos.y - containerRect.top + scrollTop,
+ y: startPos.y - scrollRect.top + scrollTop,
};
const adjustedEnd = {
x: endPos.x - containerRect.left + scrollLeft,
- y: endPos.y - containerRect.top + scrollTop,
+ y: endPos.y - scrollRect.top + scrollTop,
};
return getNormalizedRectangle({
@@ -96,20 +102,20 @@ export function useSelectionBox({
zoomLevel,
}: UseSelectionBoxProps) {
const editor = useEditor();
- const tracks = editor.timeline.getTracks();
const [selectionBox, setSelectionBox] = useState<SelectionBoxState | null>(
null,
);
const justFinishedSelectingRef = useRef(false);
const handleMouseDown = useCallback(
- ({ clientX, clientY }: React.MouseEvent) => {
+ ({ clientX, clientY, shiftKey, ctrlKey, metaKey }: React.MouseEvent) => {
if (!isEnabled) return;
setSelectionBox({
startPos: { x: clientX, y: clientY },
currentPos: { x: clientX, y: clientY },
isActive: false,
+ isAdditive: shiftKey || ctrlKey || metaKey,
});
},
[isEnabled],
@@ -119,12 +125,15 @@ export function useSelectionBox({
({
startPos,
endPos,
+ isAdditive,
}: {
startPos: { x: number; y: number };
endPos: { x: number; y: number };
+ isAdditive: boolean;
}) => {
if (!containerRef.current) return;
+ const tracks = editor.timeline.getTracks();
const container = containerRef.current;
const selectionRectangle = getSelectionRectangleInContent({
container,
@@ -134,7 +143,7 @@ export function useSelectionBox({
});
const pixelsPerSecond = TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;
const timelineHeaderHeight =
- headerRef.current?.getBoundingClientRect().height ?? 0;
+ headerRef?.current?.getBoundingClientRect().height ?? 0;
const selectedElements: { trackId: string; elementId: string }[] = [];
for (const [trackIndex, track] of tracks.entries()) {
@@ -171,13 +180,13 @@ export function useSelectionBox({
}
}
}
- onSelectionComplete(selectedElements);
+ onSelectionComplete({ elements: selectedElements, isAdditive });
},
[
containerRef,
headerRef,
onSelectionComplete,
- tracks,
+ editor,
tracksScrollRef,
zoomLevel,
],
@@ -203,6 +212,7 @@ export function useSelectionBox({
selectElementsInBox({
startPos: newSelectionBox.startPos,
endPos: newSelectionBox.currentPos,
+ isAdditive: newSelectionBox.isAdditive,
});
}
};
diff --git a/legacy/use-assets-selection-box.ts b/legacy/use-assets-selection-box.ts
new file mode 100644
index 00000000..cb8ae2ed
--- /dev/null
+++ b/legacy/use-assets-selection-box.ts
@@ -0,0 +1,198 @@
+import { useCallback, useEffect, useRef, useState } from "react";
+
+interface SelectionBoxState {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+ isActive: boolean;
+ isAdditive: boolean;
+ initialSelectedIds: string[];
+ initialAnchorId: string | null;
+}
+
+function isIntersecting({
+ selectionRect,
+ itemRect,
+}: {
+ selectionRect: DOMRect;
+ itemRect: DOMRect;
+}) {
+ return !(
+ itemRect.right < selectionRect.left ||
+ itemRect.left > selectionRect.right ||
+ itemRect.bottom < selectionRect.top ||
+ itemRect.top > selectionRect.bottom
+ );
+}
+
+function createSelectionRect({
+ startPos,
+ currentPos,
+}: {
+ startPos: { x: number; y: number };
+ currentPos: { x: number; y: number };
+}) {
+ return new DOMRect(
+ Math.min(startPos.x, currentPos.x),
+ Math.min(startPos.y, currentPos.y),
+ Math.abs(currentPos.x - startPos.x),
+ Math.abs(currentPos.y - startPos.y),
+ );
+}
+
+export function useAssetsSelectionBox({
+ containerRef,
+ getSelectableElements,
+ selectedIds,
+ selectionAnchorId,
+ onSelectionChange,
+}: {
+ containerRef: React.RefObject<HTMLElement | null>;
+ getSelectableElements: () => Map<string, HTMLElement>;
+ selectedIds: string[];
+ selectionAnchorId: string | null;
+ onSelectionChange: ({
+ intersectedIds,
+ initialSelectedIds,
+ initialAnchorId,
+ isAdditive,
+ }: {
+ intersectedIds: string[];
+ initialSelectedIds: string[];
+ initialAnchorId: string | null;
+ isAdditive: boolean;
+ }) => void;
+}) {
+ const [selectionBox, setSelectionBox] = useState<SelectionBoxState | null>(
+ null,
+ );
+ const justFinishedSelectingRef = useRef(false);
+ const isAssetItemTarget = useCallback((target: EventTarget | null) => {
+ return target instanceof Element && target.closest("[data-asset-item='true']");
+ }, []);
+
+ const handleMouseDown = useCallback(
+ (event: React.MouseEvent<HTMLElement>) => {
+ if (event.button !== 0) {
+ return;
+ }
+
+ if (isAssetItemTarget(event.target)) {
+ return;
+ }
+
+ setSelectionBox({
+ startPos: { x: event.clientX, y: event.clientY },
+ currentPos: { x: event.clientX, y: event.clientY },
+ isActive: false,
+ isAdditive: event.ctrlKey || event.metaKey,
+ initialSelectedIds: selectedIds,
+ initialAnchorId: selectionAnchorId,
+ });
+ },
+ [isAssetItemTarget, selectedIds, selectionAnchorId],
+ );
+
+ const updateSelection = useCallback(
+ ({
+ startPos,
+ currentPos,
+ isAdditive,
+ initialSelectedIds,
+ initialAnchorId,
+ }: SelectionBoxState) => {
+ const selectionRect = createSelectionRect({ startPos, currentPos });
+ const intersectedIds = [...getSelectableElements().entries()]
+ .filter(([, element]) =>
+ isIntersecting({
+ selectionRect,
+ itemRect: element.getBoundingClientRect(),
+ }),
+ )
+ .map(([id]) => id);
+
+ onSelectionChange({
+ intersectedIds,
+ initialSelectedIds,
+ initialAnchorId,
+ isAdditive,
+ });
+ },
+ [getSelectableElements, onSelectionChange],
+ );
+
+ useEffect(() => {
+ if (!selectionBox) {
+ return;
+ }
+
+ const handleMouseMove = ({ clientX, clientY }: MouseEvent) => {
+ const deltaX = Math.abs(clientX - selectionBox.startPos.x);
+ const deltaY = Math.abs(clientY - selectionBox.startPos.y);
+ const shouldActivate = deltaX > 5 || deltaY > 5;
+ const nextSelectionBox = {
+ ...selectionBox,
+ currentPos: { x: clientX, y: clientY },
+ isActive: shouldActivate || selectionBox.isActive,
+ };
+
+ setSelectionBox(nextSelectionBox);
+
+ if (!nextSelectionBox.isActive) {
+ return;
+ }
+
+ updateSelection(nextSelectionBox);
+ };
+
+ const handleMouseUp = () => {
+ if (selectionBox.isActive) {
+ justFinishedSelectingRef.current = true;
+ requestAnimationFrame(() => {
+ justFinishedSelectingRef.current = false;
+ });
+ }
+
+ setSelectionBox(null);
+ };
+
+ window.addEventListener("mousemove", handleMouseMove);
+ window.addEventListener("mouseup", handleMouseUp);
+
+ return () => {
+ window.removeEventListener("mousemove", handleMouseMove);
+ window.removeEventListener("mouseup", handleMouseUp);
+ };
+ }, [selectionBox, updateSelection]);
+
+ useEffect(() => {
+ if (!selectionBox) {
+ return;
+ }
+
+ const previousBodyUserSelect = document.body.style.userSelect;
+ const previousContainerUserSelect = containerRef.current?.style.userSelect ?? "";
+
+ document.body.style.userSelect = "none";
+ if (containerRef.current) {
+ containerRef.current.style.userSelect = "none";
+ }
+
+ return () => {
+ document.body.style.userSelect = previousBodyUserSelect;
+ if (containerRef.current) {
+ containerRef.current.style.userSelect = previousContainerUserSelect;
+ }
+ };
+ }, [containerRef, selectionBox]);
+
+ const shouldIgnoreClick = useCallback(() => {
+ return justFinishedSelectingRef.current;
+ }, []);
+
+ return {
+ selectionBox,
+ isSelecting: selectionBox?.isActive ?? false,
+ handleMouseDown,
+ shouldIgnoreClick,
+ };
+}
diff --git a/legacy/use-assets-selection.ts b/legacy/use-assets-selection.ts
new file mode 100644
index 00000000..89d245e6
--- /dev/null
+++ b/legacy/use-assets-selection.ts
@@ -0,0 +1,209 @@
+import { useCallback, useEffect, useMemo } from "react";
+import { useAssetsPanelStore } from "@/stores/assets-panel-store";
+
+function mergeUniqueIds({ ids }: { ids: string[] }) {
+ return [...new Set(ids)];
+}
+
+function getRangeIds({
+ orderedIds,
+ anchorId,
+ targetId,
+}: {
+ orderedIds: string[];
+ anchorId: string;
+ targetId: string;
+}) {
+ const anchorIndex = orderedIds.indexOf(anchorId);
+ const targetIndex = orderedIds.indexOf(targetId);
+
+ if (anchorIndex === -1 || targetIndex === -1) {
+ return [targetId];
+ }
+
+ const rangeStart = Math.min(anchorIndex, targetIndex);
+ const rangeEnd = Math.max(anchorIndex, targetIndex);
+ return orderedIds.slice(rangeStart, rangeEnd + 1);
+}
+
+export function useAssetsSelection({
+ orderedIds,
+}: {
+ orderedIds: string[];
+}) {
+ const {
+ selectedMediaIds,
+ selectionAnchorId,
+ setMediaSelection,
+ clearMediaSelection,
+ } = useAssetsPanelStore();
+ const selectedIdSet = useMemo(() => {
+ return new Set(selectedMediaIds);
+ }, [selectedMediaIds]);
+
+ useEffect(() => {
+ const validIds = new Set(orderedIds);
+ const nextSelectedIds = selectedMediaIds.filter((id) => validIds.has(id));
+ const nextAnchorId =
+ selectionAnchorId && validIds.has(selectionAnchorId)
+ ? selectionAnchorId
+ : nextSelectedIds[nextSelectedIds.length - 1] ?? null;
+ const isSelectionUnchanged =
+ nextSelectedIds.length === selectedMediaIds.length &&
+ nextAnchorId === selectionAnchorId;
+
+ if (isSelectionUnchanged) {
+ return;
+ }
+
+ setMediaSelection({
+ ids: nextSelectedIds,
+ anchorId: nextAnchorId,
+ });
+ }, [orderedIds, selectedMediaIds, selectionAnchorId, setMediaSelection]);
+
+ const replaceSelection = useCallback(
+ (ids: string[], anchorId?: string | null) => {
+ setMediaSelection({
+ ids: mergeUniqueIds({ ids }),
+ anchorId,
+ });
+ },
+ [setMediaSelection],
+ );
+
+ const isSelected = useCallback(
+ (id: string) => {
+ return selectedIdSet.has(id);
+ },
+ [selectedIdSet],
+ );
+
+ const toggleSelection = useCallback(
+ (id: string) => {
+ if (selectedIdSet.has(id)) {
+ const nextSelectedIds = selectedMediaIds.filter(
+ (selectedId) => selectedId !== id,
+ );
+ const nextAnchorId =
+ selectionAnchorId === id
+ ? nextSelectedIds[nextSelectedIds.length - 1] ?? null
+ : selectionAnchorId;
+ replaceSelection(nextSelectedIds, nextAnchorId);
+ return;
+ }
+
+ replaceSelection([...selectedMediaIds, id], id);
+ },
+ [
+ selectedIdSet,
+ selectedMediaIds,
+ selectionAnchorId,
+ replaceSelection,
+ ],
+ );
+
+ const selectRange = useCallback(
+ ({
+ targetId,
+ isAdditive,
+ }: {
+ targetId: string;
+ isAdditive: boolean;
+ }) => {
+ const anchorId =
+ selectionAnchorId ??
+ selectedMediaIds[selectedMediaIds.length - 1] ??
+ targetId;
+ const rangeIds = getRangeIds({
+ orderedIds,
+ anchorId,
+ targetId,
+ });
+ const nextSelectedIds = isAdditive
+ ? mergeUniqueIds({
+ ids: [...selectedMediaIds, ...rangeIds],
+ })
+ : rangeIds;
+
+ replaceSelection(nextSelectedIds, anchorId);
+ },
+ [orderedIds, replaceSelection, selectedMediaIds, selectionAnchorId],
+ );
+
+ const handleItemClick = useCallback(
+ ({
+ event,
+ id,
+ }: {
+ event: React.MouseEvent;
+ id: string;
+ }) => {
+ const isToggleSelection = event.ctrlKey || event.metaKey;
+
+ if (event.shiftKey) {
+ selectRange({
+ targetId: id,
+ isAdditive: isToggleSelection,
+ });
+ return;
+ }
+
+ if (isToggleSelection) {
+ toggleSelection(id);
+ return;
+ }
+
+ replaceSelection([id], id);
+ },
+ [replaceSelection, selectRange, toggleSelection],
+ );
+
+ const handleItemContextMenu = useCallback(
+ (id: string) => {
+ if (selectedIdSet.has(id)) {
+ return;
+ }
+
+ replaceSelection([id], id);
+ },
+ [selectedIdSet, replaceSelection],
+ );
+
+ const applyBoxSelection = useCallback(
+ ({
+ intersectedIds,
+ initialSelectedIds,
+ initialAnchorId,
+ isAdditive,
+ }: {
+ intersectedIds: string[];
+ initialSelectedIds: string[];
+ initialAnchorId: string | null;
+ isAdditive: boolean;
+ }) => {
+ const nextSelectedIds = isAdditive
+ ? mergeUniqueIds({
+ ids: [...initialSelectedIds, ...intersectedIds],
+ })
+ : intersectedIds;
+ const nextAnchorId = isAdditive
+ ? initialAnchorId ?? intersectedIds[intersectedIds.length - 1] ?? null
+ : intersectedIds[intersectedIds.length - 1] ?? null;
+
+ replaceSelection(nextSelectedIds, nextAnchorId);
+ },
+ [replaceSelection],
+ );
+
+ return {
+ selectedMediaIds,
+ selectionAnchorId,
+ isSelected,
+ replaceSelection,
+ clearSelection: clearMediaSelection,
+ handleItemClick,
+ handleItemContextMenu,
+ applyBoxSelection,
+ };
+}
diff --git a/legacy/use-element-registry.ts b/legacy/use-element-registry.ts
new file mode 100644
index 00000000..85704318
--- /dev/null
+++ b/legacy/use-element-registry.ts
@@ -0,0 +1,31 @@
+import { useCallback, useRef } from "react";
+
+export function useElementRegistry() {
+ const elementRefs = useRef<Map<string, HTMLElement>>(new Map());
+
+ const registerElement = useCallback(
+ (id: string, element: HTMLElement | null) => {
+ if (element) {
+ elementRefs.current.set(id, element);
+ return;
+ }
+
+ elementRefs.current.delete(id);
+ },
+ [],
+ );
+
+ const getElement = useCallback((id: string) => {
+ return elementRefs.current.get(id) ?? null;
+ }, []);
+
+ const getElements = useCallback(() => {
+ return elementRefs.current;
+ }, []);
+
+ return {
+ registerElement,
+ getElement,
+ getElements,
+ };
+}
diff --git a/apps/web/src/hooks/use-reveal-item.ts b/legacy/use-reveal-item.ts
index 5004f60c..f77ef17f 100644
--- a/apps/web/src/hooks/use-reveal-item.ts
+++ b/legacy/use-reveal-item.ts
@@ -1,27 +1,19 @@
-import { useEffect, useState, useRef } from "react";
+import { useEffect, useState } from "react";
export function useRevealItem(
highlightId: string | null,
onClearHighlight: () => void,
+ getElement: (id: string) => HTMLElement | null,
highlightDuration = 1000,
) {
const [highlightedId, setHighlightedId] = useState<string | null>(null);
- const elementRefs = useRef<Map<string, HTMLElement>>(new Map());
-
- const registerElement = (id: string, element: HTMLElement | null) => {
- if (element) {
- elementRefs.current.set(id, element);
- } else {
- elementRefs.current.delete(id);
- }
- };
useEffect(() => {
if (!highlightId) return;
setHighlightedId(highlightId);
- const target = elementRefs.current.get(highlightId);
+ const target = getElement(highlightId);
target?.scrollIntoView({ block: "center" });
const timeout = setTimeout(() => {
@@ -30,7 +22,7 @@ export function useRevealItem(
}, highlightDuration);
return () => clearTimeout(timeout);
- }, [highlightId, onClearHighlight, highlightDuration]);
+ }, [highlightId, onClearHighlight, highlightDuration, getElement]);
- return { highlightedId, registerElement };
+ return { highlightedId };
}
diff --git a/package.json b/package.json
index 521b90b6..4d8adf32 100644
--- a/package.json
+++ b/package.json
@@ -12,12 +12,13 @@
"build:tools": "turbo run build --filter=@opencut/tools",
"start:tools": "turbo run start --filter=@opencut/tools",
"lint:web": "biome lint apps/web/src --max-diagnostics=1000",
- "lint:web:fix": "biome lint apps/web/src --write --max-diagnostics=1000",
+ "lint:web:fix": "biome lint apps/web/src --write --unsafe --max-diagnostics=1000",
"format:web": "biome format apps/web/src/services/renderer --write --max-diagnostics=1000",
"test": "bun test",
"generate:fonts": "npx tsx apps/web/scripts/generate-font-sprites.ts"
},
"dependencies": {
+ "@biomejs/biome": "^2.4.8",
"@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3",
"better-auth": "^1.4.15",
diff --git a/packages/ui/src/icons/ui.tsx b/packages/ui/src/icons/ui.tsx
index e9d4cb39..61af3b90 100644
--- a/packages/ui/src/icons/ui.tsx
+++ b/packages/ui/src/icons/ui.tsx
@@ -239,3 +239,147 @@ export function OcFontIcon({
</svg>
);
}
+
+export function OcShapesIcon({
+ className = "",
+ size = 32,
+ strokeWidth = 1.5,
+}: {
+ className?: string;
+ size?: number;
+ strokeWidth?: number;
+}) {
+ return (
+ <svg
+ width={size}
+ height={size}
+ viewBox="0 0 24 24"
+ fill="none"
+ xmlns="http://www.w3.org/2000/svg"
+ aria-hidden
+ className={className}
+ >
+ <title>Shapes</title>
+ <defs>
+ <clipPath id="clip" clipPathUnits="userSpaceOnUse">
+ <path d="M0 0H24V24H0ZM8 8H24V24H8Z" clipRule="evenodd" />
+ </clipPath>
+ </defs>
+ <circle
+ cx="8.5"
+ cy="8.5"
+ r="7.75"
+ stroke="currentColor"
+ strokeWidth={strokeWidth}
+ clipPath="url(#clip)"
+ />
+ <rect
+ x="8.75"
+ y="8.75"
+ width="14.5"
+ height="14.5"
+ stroke="currentColor"
+ strokeWidth={strokeWidth}
+ />
+ </svg>
+ );
+}
+
+export function OcMirrorIcon({
+ className = "",
+ size = 32,
+}: {
+ className?: string;
+ size?: number;
+}) {
+ return (
+ <svg
+ width={size}
+ height={size}
+ viewBox="0 0 24 24"
+ fill="none"
+ xmlns="http://www.w3.org/2000/svg"
+ aria-hidden
+ className={className}
+ >
+ <title>Mirror</title>
+ <g clipPath="url(#clip0_5_41)">
+ <path
+ d="M12 23.2242C5.8043 23.2242 0.7817 18.2016 0.7817 12.0059C0.7817 5.81026 5.8043 0.787682 12 0.787682C18.1957 0.787682 23.2183 5.81026 23.2183 12.0059C23.2183 18.2016 18.1957 23.2242 12 23.2242Z"
+ stroke="black"
+ strokeWidth="1.5"
+ strokeLinecap="round"
+ strokeLinejoin="round"
+ />
+ <path
+ d="M12 0.787682C14.9752 0.787682 17.8287 1.9696 19.9325 4.07343C22.0363 6.17726 23.2182 9.03067 23.2182 12.0059C23.2182 14.9812 22.0363 17.8346 19.9325 19.9384C17.8287 22.0423 14.9752 23.2242 12 23.2242V0.787682Z"
+ fill="black"
+ />
+ </g>
+ <defs>
+ <clipPath id="clip0_5_41">
+ <rect width="24" height="24" fill="white" />
+ </clipPath>
+ </defs>
+ </svg>
+ );
+}
+
+export function OcSquarePlusIcon({
+ className = "",
+ size = 32,
+ strokeWidth = 1.5,
+}: {
+ className?: string;
+ size?: number;
+ strokeWidth?: number;
+}) {
+ return (
+ <svg
+ width={size}
+ height={size}
+ viewBox="0 0 24 24"
+ fill="none"
+ xmlns="http://www.w3.org/2000/svg"
+ aria-hidden
+ className={className}
+ >
+ <title>Square Plus</title>
+ <defs>
+ <mask id="frameMask" maskUnits="userSpaceOnUse">
+ <rect width="24" height="24" fill="white" />
+ <rect x="14.636" y="14.636" width="9.364" height="9.364" fill="black" />
+ </mask>
+ <clipPath id="plusClip" clipPathUnits="userSpaceOnUse">
+ <rect x="16" y="16" width="9" height="8" />
+ </clipPath>
+ </defs>
+ <rect
+ x="0.923"
+ y="0.923"
+ width="22.154"
+ height="22.154"
+ rx="2.769"
+ stroke="currentColor"
+ strokeWidth={strokeWidth}
+ mask="url(#frameMask)"
+ />
+ <rect
+ x="19.493"
+ y="16.486"
+ width="1.503"
+ height="7.514"
+ fill="currentColor"
+ clipPath="url(#plusClip)"
+ />
+ <rect
+ x="16.487"
+ y="19.492"
+ width="7.514"
+ height="1.503"
+ fill="currentColor"
+ clipPath="url(#plusClip)"
+ />
+ </svg>
+ );
+}