├── .babelrc
├── .editorconfig
├── .env.example
├── .eslintrc.js
├── .github
└── workflows
│ └── checkLint.yml
├── .gitignore
├── .prettierrc
├── README.md
├── components
├── Card.tsx
├── ChannelTalk.tsx
├── Chart
│ └── Map.tsx
├── Container.tsx
├── Emoji.tsx
├── Jumbotron.tsx
├── Main
│ ├── Desktop.tsx
│ ├── Mobile.tsx
│ └── StatTable.tsx
├── MapPolygon.tsx
├── Mask
│ ├── Map.tsx
│ ├── card.tsx
│ └── search.tsx
└── StatCard.tsx
├── layouts
├── components
│ ├── Footer.tsx
│ ├── Header.tsx
│ ├── HeaderMobile.tsx
│ ├── Menu.ts
│ └── Sidebar.tsx
└── main.tsx
├── manifest.yml
├── maps
└── southKorea.js
├── next-env.d.ts
├── next.config.js
├── now.json
├── package.json
├── pages
├── _app.tsx
├── _document.tsx
├── _error.tsx
├── index.tsx
└── mask.tsx
├── public
├── robots.txt
└── static
│ ├── favicon
│ └── favicon.ico
│ └── images
│ └── bg.png
├── styles
├── core.scss
└── libraries
│ ├── _grid.scss
│ └── _reset.scss
├── tsconfig.json
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel", "@emotion/babel-preset-css-prop"],
3 | "plugins": [["emotion"]]
4 | }
5 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | charset = utf-8
7 | trim_trailing_whitespace = false
8 | insert_final_newline = false
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | API_URL=https://api.coronas.info
2 | NAVER_MAP_API=
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | parser: '@typescript-eslint/parser',
3 | extends: [
4 | 'plugin:@typescript-eslint/recommended',
5 | 'prettier/@typescript-eslint',
6 | 'react-app',
7 | 'plugin:prettier/recommended',
8 | ],
9 | plugins: ['@typescript-eslint', 'react'],
10 | rules: {},
11 | }
12 |
--------------------------------------------------------------------------------
/.github/workflows/checkLint.yml:
--------------------------------------------------------------------------------
1 | name: ESLint Check
2 |
3 | on:
4 | pull_request:
5 | branches:
6 | - master
7 | push:
8 | branches:
9 | - master
10 |
11 | jobs:
12 | build:
13 |
14 | runs-on: ubuntu-latest
15 |
16 | steps:
17 | - uses: actions/checkout@v2
18 | - name: Setup Node
19 | uses: actions/setup-node@v1
20 | with:
21 | node-version: '12.x'
22 | - name: Get yarn cache
23 | id: yarn-cache
24 | run: echo "::set-output name=dir::$(yarn cache dir)"
25 | - name: Cache dependencies
26 | uses: actions/cache@v1
27 | with:
28 | path: ${{ steps.yarn-cache.outputs.dir }}
29 | key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
30 | restore-keys: |
31 | ${{ runner.os }}-yarn-
32 | - run: yarn install
33 | - run: yarn lint
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | .env
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 | .env
27 | package-lock.json
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 100,
3 | "tabWidth": 2,
4 | "singleQuote": true,
5 | "trailingComma": "all",
6 | "bracketSpacing": true,
7 | "semi": false,
8 | "useTabs": false,
9 | "arrowParens": "avoid",
10 | "endOfLine": "auto"
11 | }
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
코로나인포
2 | 신종 코로나바이러스에 대한 정보를 알려드립니다!
3 |
4 |
5 |
6 |
7 |
8 | ---
9 |
10 | ## Development
11 |
12 | ```
13 | yarn dev
14 | ```
15 |
--------------------------------------------------------------------------------
/components/Card.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 |
4 | const CardStyle = styled.div`
5 | display: block;
6 | padding: 20px 0;
7 | border-radius: 8px;
8 | padding: 20px;
9 | line-height: 1.5;
10 | background: #fff;
11 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
12 | border: 0;
13 | z-index: 101;
14 | `
15 |
16 | interface CardProps {
17 | children: React.ReactNode
18 | style?: React.CSSProperties
19 | }
20 |
21 | const Card = ({ children, style }: CardProps): JSX.Element => {
22 | return (
23 | <>
24 | {children}
25 | >
26 | )
27 | }
28 |
29 | export default Card
30 |
--------------------------------------------------------------------------------
/components/ChannelTalk.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect } from 'react'
2 |
3 | declare global {
4 | interface Window {
5 | ChannelIO: any
6 | ChannelIOInitialized: any
7 | attachEvent: any
8 | }
9 | }
10 |
11 | const ChannelTalk = ({ pluginId }): JSX.Element => {
12 | useEffect(() => {
13 | if (window.ChannelIO) {
14 | return (window.console.error || window.console.log)('ChannelIO script included twice.')
15 | }
16 | const document = window.document
17 | const ch = function() {
18 | // eslint-disable-next-line prefer-rest-params
19 | ch.c(arguments)
20 | }
21 | ch.q = []
22 | ch.c = function(args) {
23 | ch.q.push(args)
24 | }
25 | window.ChannelIO = ch
26 | function l() {
27 | if (window.ChannelIOInitialized) {
28 | return
29 | }
30 | window.ChannelIOInitialized = true
31 | const s = document.createElement('script')
32 | s.type = 'text/javascript'
33 | s.async = true
34 | s.src = 'https://cdn.channel.io/plugin/ch-plugin-web.js'
35 | s.charset = 'UTF-8'
36 | const x = document.getElementsByTagName('script')[0]
37 | x.parentNode.insertBefore(s, x)
38 | }
39 | if (document.readyState === 'complete') {
40 | l()
41 | } else if (window.attachEvent) {
42 | window.attachEvent('onload', l)
43 | } else {
44 | window.addEventListener('DOMContentLoaded', l, false)
45 | window.addEventListener('load', l, false)
46 | }
47 | window.ChannelIO('boot', {
48 | pluginKey: pluginId,
49 | })
50 | return () => {
51 | window.ChannelIO('shutdown')
52 | }
53 | }, [])
54 | return <>>
55 | }
56 |
57 | export default ChannelTalk
58 |
--------------------------------------------------------------------------------
/components/Chart/Map.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react'
2 | import { css } from '@emotion/core'
3 | import styled from '@emotion/styled'
4 |
5 | import SouthKoreaSvg from '../../maps/southKorea'
6 | import { SVGMap } from 'react-svg-map'
7 |
8 | const getLocationName = (event): string => {
9 | return event.target.attributes.name.value
10 | }
11 |
12 | const ChartMap = ({ location }): JSX.Element => {
13 | const createCSS = () => {
14 | let styles = ''
15 |
16 | location.forEach(item => {
17 | let color = ''
18 | if (item.total >= 100000) {
19 | color = '#BE1D1D'
20 | } else if (item.total >= 10000) {
21 | color = '#E03232'
22 | } else if (item.total >= 5000) {
23 | color = '#FF3939'
24 | } else if (item.total >= 1000) {
25 | color = '#FF6161'
26 | } else if (item.total >= 100) {
27 | color = '#FF7E7E'
28 | } else if (item.total >= 50) {
29 | color = '#FFB4B4'
30 | } else if (item.total >= 10) {
31 | color = '#FFD4D4'
32 | } else if (item.total >= 1) {
33 | color = '#FFEBEB'
34 | } else {
35 | color = '#FFF'
36 | }
37 | styles += `
38 | path[name='${item.name}'] {
39 | fill: ${color};
40 | }
41 | `
42 | })
43 |
44 | return css`
45 | ${styles}
46 | `
47 | }
48 |
49 | const ChartMapStyle = styled.div`
50 | @import 'react-svg-map/lib/index.css';
51 | padding: 20px;
52 | width: 350px;
53 | margin: 0 auto;
54 | @media (max-width: 992px) {
55 | width: 100%;
56 | }
57 | .map__tooltip {
58 | position: fixed;
59 | min-width: 130px;
60 | padding: 10px 20px;
61 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.29);
62 | border-radius: 8px;
63 | background-color: white;
64 | text-align: center;
65 | .total {
66 | font-size: 17px;
67 | font-weight: 500;
68 | }
69 | }
70 | path {
71 | stroke: #a2a2a2;
72 | stroke-width: 1px;
73 | }
74 | ${createCSS()};
75 | `
76 |
77 | const [pointedLocation, setPointedLocation] = useState(null)
78 | const [tooltipStyle, setTooltipStyle] = useState({ display: 'none' })
79 | const mouseOver = event => {
80 | const pointedLocation = getLocationName(event)
81 | setPointedLocation(pointedLocation)
82 | }
83 |
84 | const handleLocationMouseMove = event => {
85 | const tooltipStyle = {
86 | display: 'block',
87 | top: event.clientY + 10,
88 | left: event.clientX - 100,
89 | }
90 | setTooltipStyle(tooltipStyle)
91 | }
92 |
93 | const handleLocationMouseOut = () => {
94 | setPointedLocation(null)
95 | setTooltipStyle({ display: 'none' })
96 | }
97 |
98 | // 툴팁 내부 정보 처리
99 | const [locationData, setLocationData] = useState({ id: 0, name: '', total: 0, increase: 0 })
100 | useEffect(() => {
101 | const findData = location.find(d => {
102 | return d.name === pointedLocation
103 | })
104 | setLocationData(findData)
105 | }, [location, pointedLocation])
106 |
107 | const Tooltip = (): JSX.Element => {
108 | if (locationData) {
109 | return (
110 | <>
111 |
112 |
{locationData.name}
113 |
{locationData.total.toLocaleString()}명
114 |
115 | >
116 | )
117 | } else {
118 | return <>>
119 | }
120 | }
121 |
122 | return (
123 |
124 |
130 |
131 |
132 | )
133 | }
134 |
135 | export default ChartMap
136 |
--------------------------------------------------------------------------------
/components/Container.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled'
2 |
3 | const Container = styled.div`
4 | width: 100%;
5 | padding: 0 5px;
6 | margin: 0 auto;
7 |
8 | @media (min-width: 576px) {
9 | max-width: 540px;
10 | }
11 |
12 | @media (min-width: 768px) {
13 | max-width: 720px;
14 | }
15 |
16 | @media (min-width: 992px) {
17 | max-width: 960px;
18 | }
19 |
20 | @media (min-width: 1200px) {
21 | max-width: 1140px;
22 | }
23 |
24 | @media (min-width: 1300px) {
25 | max-width: 1240px;
26 | }
27 | `
28 |
29 | export default Container
30 |
--------------------------------------------------------------------------------
/components/Emoji.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 | import Twemoji from 'react-twemoji'
4 |
5 | const EmojiBox = styled.span`
6 | .emoji {
7 | height: 1em;
8 | width: 1em;
9 | margin: 0 0.05em 0 0.1em;
10 | vertical-align: -0.2em;
11 | }
12 | `
13 |
14 | interface EmojiProps {
15 | str: string
16 | }
17 |
18 | const Emoji: React.FC = props => {
19 | const TwemojiOptions = {
20 | folder: 'svg',
21 | ext: '.svg',
22 | }
23 | return (
24 |
25 |
26 | {props.str}
27 |
28 |
29 | )
30 | }
31 |
32 | export default Emoji
33 |
--------------------------------------------------------------------------------
/components/Jumbotron.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 | import Container from './Container'
4 |
5 | const Jumbotron = styled.div`
6 | background: #f1f1f1;
7 | padding: 35px 0;
8 | line-height: 1.6;
9 | h1 {
10 | font-size: 1.7rem;
11 | font-weight: 700;
12 | }
13 | p.description {
14 | font-size: 1rem;
15 | }
16 | @media (max-width: 992px) {
17 | padding: 35px 10px;
18 | }
19 | `
20 |
21 | interface JumboProps {
22 | title?: string
23 | desc?: string
24 | }
25 |
26 | const JumbotronComponent = ({ title, desc }: JumboProps): JSX.Element => (
27 | <>
28 |
29 |
30 | {title}
31 | {desc}
32 |
33 |
34 | >
35 | )
36 |
37 | export default JumbotronComponent
38 |
--------------------------------------------------------------------------------
/components/Main/Desktop.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled'
2 | import dynamic from 'next/dynamic'
3 | import React from 'react'
4 | import Card from '../Card'
5 | import Container from '../Container'
6 | import StatCard from '../StatCard'
7 |
8 | const MapChart = dynamic(() => import('@/components/Chart/Map'), { ssr: false })
9 | const StatTable = dynamic(() => import('./StatTable'))
10 |
11 | const MapContainer = styled.section`
12 | padding: 20px 0;
13 | h2 {
14 | font-size: 20px;
15 | font-weight: 500;
16 | margin-bottom: 15px;
17 | padding-left: 6px;
18 | span {
19 | font-size: 15px;
20 | }
21 | }
22 | `
23 |
24 | const MainDesktop = ({ report, location }): JSX.Element => {
25 | return (
26 | <>
27 |
32 |
33 |
34 |
39 |
40 |
41 |
45 |
46 |
47 | }
48 | />
49 |
50 |
51 |
56 |
57 |
61 |
62 |
63 | }
64 | />
65 |
66 |
67 |
72 |
73 |
77 |
78 |
79 |
80 |
81 | }
82 | />
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
확진자 지도
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | 감염 통계 (오늘 기준)
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | >
111 | )
112 | }
113 |
114 | export default MainDesktop
115 |
--------------------------------------------------------------------------------
/components/Main/Mobile.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled'
2 | import dynamic from 'next/dynamic'
3 | import React from 'react'
4 | import Card from '../Card'
5 | import Container from '../Container'
6 | import Link from 'next/link'
7 |
8 | import { Icon, InlineIcon } from '@iconify/react'
9 | import mapIcon from '@iconify/icons-ion/map'
10 | import receiptIcon from '@iconify/icons-ion/receipt'
11 | import personIcon from '@iconify/icons-ion/person'
12 | import peopleSharp from '@iconify/icons-ion/people-sharp'
13 |
14 | const MapChart = dynamic(() => import('@/components/Chart/Map'), { ssr: false })
15 | const StatTable = dynamic(() => import('./StatTable'))
16 |
17 | const MapContainer = styled.section`
18 | padding: 20px 10px;
19 | h2 {
20 | font-size: 20px;
21 | font-weight: 500;
22 | margin-bottom: 15px;
23 | padding-left: 6px;
24 | span {
25 | font-size: 15px;
26 | }
27 | }
28 | `
29 |
30 | const MarginBox = styled.div`
31 | margin-bottom: 20px;
32 | `
33 |
34 | const StatusItem = styled.div`
35 | text-align: center;
36 | h3 {
37 | font-size: 20px;
38 | font-weight: 600;
39 | &.total {
40 | color: var(--main);
41 | }
42 | &.cure {
43 | color: #33a77c;
44 | }
45 | &.death {
46 | color: #f24147;
47 | }
48 | }
49 | `
50 |
51 | const QuickLink = styled.a`
52 | display: block;
53 | border-radius: 8px;
54 | padding: 20px 17px;
55 | color: #333;
56 | background: #fff;
57 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
58 | text-decoration: none;
59 | text-align: center;
60 |
61 | h3 {
62 | font-size: 16px;
63 | font-weight: 500;
64 | }
65 | svg {
66 | width: 28px;
67 | height: auto;
68 | margin-bottom: 10px;
69 | &.orange {
70 | color: #ff7800;
71 | }
72 | &.green {
73 | color: #13b363;
74 | }
75 | &.blue {
76 | color: #24a5ff;
77 | }
78 | &.red {
79 | color: #ff5454;
80 | }
81 | }
82 | `
83 |
84 | const MainMobile = ({ report, location }): JSX.Element => {
85 | return (
86 | <>
87 |
88 |
89 |
90 |
91 |
96 |
97 |
98 | 확진자
99 | {report.total_count.toLocaleString()}
100 |
101 |
102 | 격리 해제
103 | {report.cure_count.toLocaleString()}
104 |
105 |
106 | 사망
107 | {report.death_count.toLocaleString()}
108 |
109 |
110 |
111 |
117 |
118 |
119 |
120 |
121 | 주변 마스크
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 | 확진자 통계
130 |
131 |
132 |
133 |
134 |
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 | export default MainMobile
178 |
--------------------------------------------------------------------------------
/components/Main/StatTable.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 |
4 | const StatTable = styled.table`
5 | width: 100%;
6 | text-align: center;
7 | td {
8 | padding: 10px 20px;
9 | border: 0;
10 | width: 50%;
11 | }
12 | h4 {
13 | font-size: 15px;
14 | margin-bottom: 3px;
15 | }
16 | .data {
17 | font-weight: 500;
18 | font-size: 24px;
19 | span.small {
20 | font-size: 14px;
21 | }
22 | }
23 | .green {
24 | color: #27af7d;
25 | }
26 | .red {
27 | color: #f24147;
28 | }
29 | `
30 |
31 | const StatTableComponent = ({ report }): JSX.Element => (
32 |
33 |
34 |
35 |
36 | 오늘 확진자 증가
37 | 0 ? 'data red' : 'data'}>
38 | {report.increase_count.toLocaleString()}명
39 |
40 | |
41 |
42 | 격리해제 (완치) 비율
43 | {report.cure_rate}%
44 | |
45 |
46 |
47 |
48 | 확진자 제일 많은 지역
49 |
50 | {report.top_rate_total_location.name}{' '}
51 |
52 | ({report.top_rate_total_location.total.toLocaleString()}명)
53 |
54 |
55 | |
56 |
57 | 오늘 확진자 제일 증가한 지역
58 |
59 | {report.top_rate_increase_location.name}{' '}
60 |
61 | (+{report.top_rate_increase_location.increase.toLocaleString()}명)
62 |
63 |
64 | |
65 |
66 |
67 |
68 | )
69 |
70 | export default StatTableComponent
71 |
--------------------------------------------------------------------------------
/components/MapPolygon.tsx:
--------------------------------------------------------------------------------
1 | import React, { useRef, useEffect } from 'react'
2 | import { RenderAfterNavermapsLoaded, NaverMap, Polyline } from 'react-naver-maps'
3 | import randomColor from 'randomcolor'
4 |
5 | declare global {
6 | interface Window {
7 | naver: any
8 | }
9 | }
10 |
11 | const Map = ({ pdata }): JSX.Element => {
12 | const data = {}
13 | pdata.map(item => {
14 | if (data.hasOwnProperty(item.index)) {
15 | data[item.index] = [...data[item.index], item]
16 | } else {
17 | data[item.index] = [item]
18 | }
19 | })
20 | return (
21 | <>
22 |
31 | {Object.keys(data).map(key => {
32 | const navermaps = window.naver.maps
33 | const color = randomColor()
34 | const paths = []
35 | data[key].map(item => {
36 | paths.push(new navermaps.LatLng(item.lat, item.lng))
37 | })
38 | return (
39 |
50 | )
51 | })}
52 |
53 | >
54 | )
55 | }
56 | const MapComponent = ({ pdata }): JSX.Element => {
57 | if (window.naver.maps) {
58 | return
59 | } else {
60 | return Loading...
61 | }
62 | }
63 | export default MapComponent
64 |
--------------------------------------------------------------------------------
/components/Mask/Map.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { NaverMap, Marker } from 'react-naver-maps'
3 | import styled from '@emotion/styled'
4 |
5 | declare global {
6 | interface Window {
7 | naver: any
8 | }
9 | const naver: any
10 | const MarkerClustering: any
11 | const N: any
12 | }
13 |
14 | const MapContainer = styled.div`
15 | display: block;
16 | `
17 |
18 | class MaskMap extends React.Component {
19 | mapRef: any
20 |
21 | render(): JSX.Element {
22 | return (
23 |
24 | {
26 | this.mapRef = ref
27 | }}
28 | mapDivId={'dash-map'} // default: react-naver-map
29 | style={{
30 | width: '100%',
31 | height: '100vh',
32 | }}
33 | defaultCenter={{ lat: 36.3213564, lng: 127.0978459 }}
34 | defaultZoom={17}
35 | >
36 |
37 | )
38 | }
39 |
40 | componentDidMount(): void {
41 | navigator.geolocation.getCurrentPosition(
42 | position => {
43 | this.mapRef.instance.setCenter(
44 | new naver.maps.LatLng(position.coords.latitude, position.coords.longitude),
45 | )
46 | new naver.maps.Marker({
47 | position: new naver.maps.LatLng(position.coords.latitude, position.coords.longitude),
48 | map: this.mapRef.instance,
49 | })
50 | },
51 | err => {
52 | console.log(err)
53 | },
54 | )
55 | }
56 | }
57 |
58 | export default MaskMap
59 |
--------------------------------------------------------------------------------
/components/Mask/card.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react'
2 | import styled from '@emotion/styled'
3 | import Card from '@/components/Card'
4 |
5 | const StyleSection = styled.div`
6 | line-height: 1.5;
7 | .gray {
8 | color: gray;
9 | }
10 | .name {
11 | font-size: 20px;
12 | font-weight: 600;
13 | span {
14 | margin-left: 8px;
15 | font-size: 14px;
16 | }
17 | }
18 | .openBtn {
19 | width: 30px;
20 | float: right;
21 | }
22 | table {
23 | width: 100%;
24 | td {
25 | padding: 12px 16px;
26 | border: 1px solid #dedede;
27 | &:nth-of-type(1) {
28 | font-weight: 500;
29 | width: 130px;
30 | text-align: center;
31 | }
32 | }
33 | tbody {
34 | background: #fff;
35 | }
36 | }
37 | .infomation {
38 | margin-top: 20px;
39 | }
40 | .mapLink {
41 | margin-top: 15px;
42 | a {
43 | display: block;
44 | background: #fae000;
45 | color: #1d1d1d;
46 | text-decoration: none;
47 | text-align: center;
48 | padding: 10px 0;
49 | font-size: 16px;
50 | &.naver {
51 | background: rgb(3, 207, 93);
52 | }
53 | }
54 | }
55 | `
56 | const Tag = styled.span`
57 | display: inline-block;
58 | border-radius: 24px;
59 | color: #fff;
60 | font-weight: 500;
61 | padding: 3px 30px;
62 | margin-bottom: 3px;
63 |
64 | &.plenty {
65 | background: #00a769;
66 | }
67 | &.some {
68 | background: #f1c40f;
69 | color: #000;
70 | }
71 | &.few {
72 | background: #de2e2e;
73 | }
74 | &.empty {
75 | background: #6b6b6b;
76 | }
77 | &.break {
78 | background: #fff;
79 | color: #333;
80 | }
81 | `
82 |
83 | const Address = styled.span`
84 | color: #888;
85 | `
86 |
87 | const MaskCard = ({ data }) => {
88 | const [open, setOpen] = useState(false)
89 |
90 | const changeOpen = (): void => {
91 | open ? setOpen(false) : setOpen(true)
92 | }
93 |
94 | let color
95 |
96 | switch (data.remain_stat) {
97 | case 'plenty':
98 | color = '#d7fdef'
99 | break
100 | case 'some':
101 | color = '#fffae6'
102 | break
103 | case 'few':
104 | color = '#ffdede'
105 | break
106 | case 'empty':
107 | color = '#dcdcdc'
108 | break
109 | case 'break':
110 | color = '#f7f7f7'
111 | break
112 | default:
113 | color = '#fff'
114 | break
115 | }
116 |
117 | return (
118 | <>
119 |
124 |
125 |
126 | {open ? (
127 |
130 | ) : (
131 |
134 | )}
135 |
136 | {data.remain_stat === 'plenty' && (
137 | <>
138 | 넉넉 (100개 이상)
139 | >
140 | )}
141 | {data.remain_stat === 'some' && (
142 | <>
143 | 조금 (30~100)
144 | >
145 | )}
146 | {data.remain_stat === 'few' && (
147 | <>
148 | 부족 (2~30)
149 | >
150 | )}
151 | {data.remain_stat === 'empty' && (
152 | <>
153 | 없음 (1개 이하)
154 | >
155 | )}
156 | {data.remain_stat === 'break' && (
157 | <>
158 | 판매 중지
159 | >
160 | )}
161 |
162 | {data.name}
163 | {data.type === '01' && (약국)}
164 | {data.type === '02' && (우체국)}
165 | {data.type === '03' && (농협)}
166 |
167 | {data.addr}
168 | {open === true && (
169 | <>
170 |
171 |
172 |
173 |
174 | 최근 입고 |
175 |
176 | {data.stock_at ? (
177 | {data.stock_at}
178 | ) : (
179 | 정보 없음
180 | )}
181 | |
182 |
183 |
184 | 재고 상태 |
185 |
186 | {data.remain_stat ? (
187 |
188 | {data.remain_stat === 'plenty' && (
189 | <>
190 | 100개 이상
191 | >
192 | )}
193 | {data.remain_stat === 'some' && (
194 | <>
195 | 30~100
196 | >
197 | )}
198 | {data.remain_stat === 'few' && (
199 | <>
200 | 2~30
201 | >
202 | )}
203 | {data.remain_stat === 'empty' && (
204 | <>
205 | 1개 이하
206 | >
207 | )}
208 | {data.remain_stat === 'break' && (
209 | <>
210 | 판매 중지
211 | >
212 | )}
213 |
214 | ) : (
215 | 정보 없음
216 | )}
217 | |
218 |
219 |
220 | 정보 업데이트 |
221 |
222 | {data.created_at ? (
223 | {data.created_at}
224 | ) : (
225 | 정보 없음
226 | )}
227 | |
228 |
229 |
230 |
231 |
262 |
263 | >
264 | )}
265 |
266 |
267 | >
268 | )
269 | }
270 |
271 | export default MaskCard
272 |
--------------------------------------------------------------------------------
/components/Mask/search.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react'
2 | import styled from '@emotion/styled'
3 | import Card from '@/components/Card'
4 | import { InlineIcon } from '@iconify/react'
5 | import bxSearch from '@iconify/icons-bx/bx-search'
6 |
7 | const SearchForm = styled.form`
8 | margin: 20px 0;
9 | display: flex;
10 | border-radius: 8px;
11 | justify-content: space-between;
12 | width: 100%;
13 | background: #fff;
14 | box-shadow: 0 3px 6px rgba(0, 0, 0, 0.07);
15 | transition: box-shadow 0.3s ease-in-out;
16 | &:hover,
17 | &:focus,
18 | &:active {
19 | box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
20 | }
21 | input {
22 | border: 0;
23 | background: transparent;
24 | outline: none;
25 | padding: 20px 30px;
26 | font-size: 16px;
27 | width: 100%;
28 | -webkit-appearance: none;
29 | }
30 | button {
31 | -webkit-appearance: none;
32 | background: transparent;
33 | border: 0;
34 | outline: none;
35 | padding: 20px 30px;
36 | cursor: pointer;
37 | svg {
38 | width: 20px;
39 | height: 20px;
40 | }
41 | }
42 | `
43 |
44 | const SearchResult = styled.div`
45 | margin: 15px 0;
46 | div {
47 | cursor: pointer;
48 | }
49 | `
50 |
51 | const MaskSearch = (): JSX.Element => {
52 | const [keyword, setKeyword] = useState('')
53 | const [data, setData] = useState(null)
54 |
55 | const searchAction = () => {
56 | if (keyword !== '') {
57 | fetch('https://dapi.kakao.com/v2/local/search/keyword.json?query=' + keyword, {
58 | method: 'get',
59 | headers: {
60 | Authorization: 'KakaoAK 1b4a73d6cb2add7318c6c956f2c4022e',
61 | },
62 | })
63 | .then(function(res) {
64 | return res.json()
65 | })
66 | .then(function(json) {
67 | console.log(json)
68 | setData(json)
69 | })
70 | }
71 | }
72 |
73 | const formOnSubmit = e => {
74 | e.preventDefault()
75 | searchAction()
76 | }
77 |
78 | const DataCard = ({ data }) => (
79 |
84 | {data.address_name}
85 |
86 | )
87 |
88 | const SearchResultContainer = (): JSX.Element => {
89 | if (data !== null) {
90 | if (data.documents && data.documents.length > 0) {
91 | return (
92 |
93 | {data.documents.map((row, i) => {
94 | return
95 | })}
96 |
97 | )
98 | } else {
99 | return (
100 |
101 | 검색 결과가 없거나, 오류입니다.
102 |
103 | )
104 | }
105 | } else {
106 | return <>>
107 | }
108 | }
109 |
110 | return (
111 | <>
112 |
113 | {
117 | setKeyword(e.target.value)
118 | }}
119 | />
120 |
123 |
124 |
125 | >
126 | )
127 | }
128 |
129 | export default MaskSearch
130 |
--------------------------------------------------------------------------------
/components/StatCard.tsx:
--------------------------------------------------------------------------------
1 | import styled from '@emotion/styled'
2 | import React from 'react'
3 |
4 | const Card = styled.div`
5 | display: flex;
6 | align-items: center;
7 | padding: 20px 0;
8 | border-radius: 8px;
9 | line-height: 1.6;
10 | background: #fff;
11 | border: 0;
12 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
13 | z-index: 101;
14 | .a {
15 | display: flex;
16 | align-items: center;
17 | justify-content: center;
18 | width: 100px;
19 | margin-left: 5px;
20 | svg {
21 | width: 45px;
22 | }
23 | }
24 | .b {
25 | margin-bottom: -3px;
26 | .d {
27 | font-weight: 500;
28 | font-size: 18px;
29 | @media (max-width: 997px) {
30 | font-size: 15px;
31 | }
32 | }
33 | .n {
34 | font-weight: 700;
35 | font-size: 24px;
36 | }
37 | }
38 | `
39 |
40 | const StatCard = ({ icon, title, content }): JSX.Element => {
41 | return (
42 | <>
43 |
44 | {icon}
45 |
46 |
{title}
47 |
{content}
48 |
49 |
50 | >
51 | )
52 | }
53 |
54 | export default StatCard
55 |
--------------------------------------------------------------------------------
/layouts/components/Footer.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react'
2 | import styled from '@emotion/styled'
3 | import Emoji from '../../components/Emoji'
4 | import fetch from 'isomorphic-unfetch'
5 |
6 | const StyledFooter = styled.footer`
7 | width: 100%;
8 | height: 50px;
9 | display: flex;
10 | align-items: center;
11 | justify-content: center;
12 | background: #ffffff;
13 | border-top: 1px solid #e4e4e4;
14 | text-align: center;
15 | padding: 25px 0;
16 | line-height: 2;
17 | a {
18 | text-decoration: none;
19 | color: #194a7d;
20 | }
21 | .small {
22 | font-size: 90%;
23 | }
24 | `
25 |
26 | const Footer = (): JSX.Element => {
27 | return (
28 |
29 |
38 |
39 | )
40 | }
41 |
42 | export default Footer
43 |
--------------------------------------------------------------------------------
/layouts/components/Header.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Link from 'next/link'
3 | import styled from '@emotion/styled'
4 | import Container from '@/components/Container'
5 | import { Menu } from '@/layouts/components/Menu'
6 |
7 | const EditedContainer = styled(Container)`
8 | align-items: center;
9 | display: flex;
10 | height: 100%;
11 | `
12 |
13 | const Nav = styled.nav`
14 | background: #fff;
15 | height: 60px;
16 | z-index: 20;
17 | &.fixed {
18 | position: fixed;
19 | width: 100%;
20 | top: 0;
21 | z-index: 999;
22 | }
23 | `
24 |
25 | const NavLogo = styled.a`
26 | font-size: 1.3rem;
27 | text-decoration: none;
28 | color: #2c2c2c;
29 | span {
30 | color: var(--main);
31 | font-weight: 700;
32 | }
33 | `
34 |
35 | const NavMenu = styled.ul`
36 | align-items: center;
37 | display: flex;
38 | list-style: none;
39 | margin-left: 20px;
40 | a {
41 | padding: 0 13px;
42 | font-size: 0.95rem;
43 | text-decoration: none;
44 | color: #585858;
45 | }
46 | `
47 |
48 | // const NavRight = styled.div`
49 | // display: block;
50 | // margin-left: auto;
51 | // `
52 |
53 | // const NavButton = styled.a`
54 | // background: var(--main);
55 | // border-radius: 30px;
56 | // color: #fff;
57 | // padding: 10px 48px;
58 | // font-weight: 500;
59 | // `
60 |
61 | interface HeaderProps {
62 | fix?: boolean
63 | }
64 |
65 | const Header = ({ fix }: HeaderProps): JSX.Element => {
66 | return (
67 |
89 | )
90 | }
91 |
92 | export default Header
93 |
--------------------------------------------------------------------------------
/layouts/components/HeaderMobile.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 | import Container from '../../components/Container'
4 | import Link from 'next/link'
5 |
6 | const EditedContainer = styled(Container)`
7 | align-items: center;
8 | display: flex;
9 | height: 100%;
10 | position: relative;
11 | justify-content: space-between;
12 | padding: 0 10px;
13 | `
14 |
15 | const Nav = styled.nav`
16 | background: #fff;
17 | height: 60px;
18 | width: 100vw;
19 | &.fixed {
20 | position: fixed;
21 | top: 0;
22 | width: 100%;
23 | z-index: 30;
24 | }
25 | `
26 |
27 | const NavLogo = styled.a`
28 | position: absolute;
29 | left: 50%;
30 | -webkit-transform: translateX(-50%);
31 | transform: translateX(-50%);
32 | font-size: 1.3rem;
33 | cursor: pointer;
34 | span {
35 | color: var(--main);
36 | font-weight: 700;
37 | }
38 | `
39 |
40 | const Menubar = styled.button`
41 | background: transparent;
42 | border: 0;
43 | height: 100%;
44 | outline: none;
45 | cursor: pointer;
46 | `
47 |
48 | interface HeaderProps {
49 | sidebarChange: () => void
50 | fix?: boolean
51 | }
52 |
53 | const Header = (props: HeaderProps): JSX.Element => {
54 | return (
55 |
81 | )
82 | }
83 |
84 | export default Header
85 |
--------------------------------------------------------------------------------
/layouts/components/Menu.ts:
--------------------------------------------------------------------------------
1 | export const Menu = [{ title: '마스크 재고 현황', href: '/mask' }]
2 |
--------------------------------------------------------------------------------
/layouts/components/Sidebar.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 | import Link from 'next/link'
4 | import { Menu } from '@/layouts/components/Menu'
5 |
6 | const Aside = styled.aside`
7 | background: #fff;
8 | width: 230px;
9 | height: 100%;
10 | z-index: 600;
11 | padding: 25px 25px;
12 | .logo {
13 | display: flex;
14 | justify-content: space-between;
15 | align-items: center;
16 | button {
17 | background: none;
18 | border: 0;
19 | outline: none;
20 | cursor: pointer;
21 | }
22 | }
23 | .menu {
24 | padding: 30px 0;
25 | ul {
26 | list-style: none;
27 | a,
28 | li {
29 | color: inherit;
30 | text-decoration: none;
31 | display: list-item;
32 | padding: 12px 0;
33 | font-size: 1rem;
34 | }
35 | }
36 | }
37 | `
38 |
39 | const NavLogo = styled.a`
40 | font-size: 1.4rem;
41 | line-height: 1.1;
42 | cursor: pointer;
43 | span {
44 | color: var(--main);
45 | font-weight: 700;
46 | }
47 | `
48 |
49 | interface SidebarProps {
50 | sidebarChange: () => void
51 | }
52 |
53 | const Sidebar: React.FC = props => {
54 | return (
55 |
95 | )
96 | }
97 |
98 | export default Sidebar
99 |
--------------------------------------------------------------------------------
/layouts/main.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react'
2 | import styled from '@emotion/styled'
3 | import dynamic from 'next/dynamic'
4 |
5 | const HeaderMobile = dynamic(() => import('./components/HeaderMobile'))
6 | const Header = dynamic(() => import('./components/Header'))
7 | const Footer = dynamic(() => import('./components/Footer'))
8 |
9 | const LayoutWrapper = styled.div``
10 |
11 | const SideBackground = styled.div`
12 | position: absolute;
13 | visibility: hidden;
14 | top: 0;
15 | bottom: 0;
16 | left: 0;
17 | right: 0;
18 | background: rgba(0, 0, 0, 0.4);
19 | opacity: 0;
20 | transition: visibility 0s, opacity 0.1s linear;
21 | z-index: 200;
22 | &.show {
23 | visibility: visible;
24 | opacity: 1;
25 | }
26 | `
27 |
28 | const SidebarWrapper = styled.div`
29 | position: absolute;
30 | top: 0;
31 | bottom: 0;
32 | left: -230px;
33 | right: 0;
34 | z-index: 400;
35 | visibility: hidden;
36 | transition: visibility 0s, left 0.3s ease-in-out;
37 | &.show {
38 | visibility: visible;
39 | left: 0;
40 | }
41 | `
42 |
43 | interface MainLayoutProps {
44 | header?: boolean
45 | footer?: boolean
46 | isFull?: boolean
47 | children?: React.ReactNode
48 | }
49 |
50 | const MainLayout = ({ children, isFull, header, footer }: MainLayoutProps): JSX.Element => {
51 | const [isMobile, setIsMobile] = useState(false) // 모바일 여부
52 | const [sidebar, setSidebar] = useState(false) // 사이드바 On/Off
53 |
54 | const resizeEvent = (): void => {
55 | if (window.innerWidth < 992) {
56 | setIsMobile(true)
57 | } else {
58 | setIsMobile(false)
59 | setSidebar(false) // desktop 버전으로 가면 사이드바 해제해놓기
60 | }
61 | }
62 |
63 | const sidebarChange = (): void => {
64 | sidebar ? setSidebar(false) : setSidebar(true)
65 | }
66 |
67 | useEffect(() => {
68 | if (typeof window !== 'undefined') {
69 | resizeEvent()
70 | window.addEventListener('resize', resizeEvent)
71 | return (): void => {
72 | window.removeEventListener('resize', resizeEvent)
73 | }
74 | }
75 | }, [])
76 |
77 | if (isMobile) {
78 | // mobile mode
79 | const HeaderMobile = dynamic(() => import('./components/HeaderMobile'))
80 | const Sidebar = dynamic(() => import('./components/Sidebar'))
81 | return (
82 | <>
83 | {header && (
84 | <>
85 |
86 |
87 |
88 |
89 |
90 | >
91 | )}
92 | {children}
93 | {footer && }
94 | >
95 | )
96 | } else {
97 | // desktop mode
98 | const Header = dynamic(() => import('./components/Header'))
99 | return (
100 | <>
101 |
102 | {header && }
103 | {children}
104 | {footer && }
105 |
106 | >
107 | )
108 | }
109 | }
110 |
111 | MainLayout.defaultProps = {
112 | header: true,
113 | footer: true,
114 | }
115 |
116 | export default MainLayout
117 |
--------------------------------------------------------------------------------
/manifest.yml:
--------------------------------------------------------------------------------
1 | applications:
2 | - name: coronas # 애플리케이션 이름
3 | memory: 2048M # 애플리케이션 메모리 사이즈
4 | instances: 7 # 애플리케이션 인스턴스 개수
5 | command: npm start # 애플리케이션 실행 명령어
6 | path: ./ # 배포될 애플리케이션의 위치
7 |
--------------------------------------------------------------------------------
/maps/southKorea.js:
--------------------------------------------------------------------------------
1 | export default {
2 | label: 'Map of South Korea',
3 | viewBox: '0 0 524 631',
4 | locations: [
5 | {
6 | name: '부산',
7 | id: 'busan',
8 | path:
9 | 'm 362.20429,382.50884 0.04,0.76 3.97,0 1.34,1.34 0,0 1,1.68 -0.17,1.51 -0.9,0.32 -0.6,0.77 -0.37,1.02 0.26,1.67 -0.73,2.34 -0.87,-0.06 -0.1,0.93 -0.89,0.13 0.58,0.55 1.02,-0.35 0.31,1.63 -1.42,3.04 -0.63,-0.03 -0.34,-0.48 -0.6,1.41 0.79,1.38 -0.08,0.48 -0.45,0 -0.03,1.25 -0.5,0.26 -0.31,-0.45 -0.53,0.74 -1,0.13 -0.58,2.21 -0.76,0.16 -0.37,0.54 -1.65,-0.61 -0.6,0.1 -0.68,0.83 -1.65,-1.09 0.11,0.8 -1.63,0.22 -0.23,0.54 0.29,0.86 -0.66,0.67 1.02,0.16 0.52,1.5 -0.13,2.62 -1.18,-0.64 -0.71,0 -0.29,0.51 -0.92,-0.19 -0.1,-1.02 -0.21,0.64 -1.94,-0.26 0.21,-1.98 -0.71,-0.45 -0.58,0.8 -1.21,0.51 -0.31,0.57 0.24,0.38 -1.63,1.73 -0.21,1.79 -0.81,0.1 0.68,1.44 -0.71,1.15 -0.92,-2.04 -0.18,-1.53 -1.08,0.19 0.92,3.86 -0.34,0.54 -0.6,-0.13 -0.16,-1.47 -0.97,-0.35 -0.29,0.67 0.63,0.16 -0.13,0.83 -1.16,-0.13 0.69,0.93 -0.45,0 -0.73,0.83 0.1,-1.76 -0.73,-0.38 -0.81,-3.32 0.55,-3.03 -0.58,-0.06 -0.34,1.73 -1.15,0.77 -0.13,-1.18 0.47,-1.6 -0.42,-0.1 -0.68,2.01 -1.26,0.74 -0.03,0.86 -1.65,0 0.5,-3.8 0.53,-0.73 -1.05,-0.38 -0.97,4.92 -1.5,-0.51 -2.94,0 -1.5,-1.63 -0.24,0.7 -1.55,0.16 -1.15,1.31 -0.52,-0.06 -0.24,-0.83 0.76,-1.05 0.87,0.16 0.21,-0.64 -1.26,0.19 0.32,-2.32 0,0 0.2,-0.47 2.43,-1 4.3,-1.15 0.43,-5.01 2.29,-0.29 3.87,-2.43 4.15,-0.14 1.43,-1.57 0.86,-2 0.79,-0.2 0.98,-1.16 3.95,-2.48 1.84,0.32 1.03,-1.34 0.86,-2.72 1.72,-2.58 4.87,-0.57 0.57,-1.86 2.95,-2.71 0,0 0.24,0.27 z m -14.5,30.88 1.86,1.6 -0.29,1.63 1.94,1.63 -0.5,1.09 -0.89,0 -0.47,-1.18 -0.63,0.26 -0.5,-0.48 -0.08,-0.8 -1.31,-0.42 -1.81,-1.88 0.03,-0.48 0.81,-0.51 1.84,-0.46 z',
10 | },
11 | {
12 | name: '대구',
13 | id: 'daegu',
14 | path:
15 | 'm 298.06429,351.13884 -0.78,1 -0.8,3.59 -1.08,0.6 -2.42,-0.89 0,0 -1.53,0.37 0,0 -3.49,2.5 -2.41,0.06 0,0 -0.73,-3.43 -4.06,-4.99 0.31,-2.81 1.87,0.62 1.56,1.25 2.19,0 0.62,-2.49 -3.12,-3.44 1.25,-3.12 1.25,-2.81 5.3,-0.93 -0.31,-1.87 -2.81,-2.19 -4.68,-0.31 0.31,-3.12 1.25,-2.81 2.19,-3.12 2.18,-0.62 1.87,-1.25 0.63,5.61 2.49,0 0.94,-3.12 2.5,-4.99 5.92,-1.25 2.81,-3.12 3.43,-0.93 3.12,0.31 3.75,3.12 0,4.37 0.62,3.12 1.88,4.05 -0.94,2.19 -3.43,1.25 -1.56,3.43 0,3.12 -2.5,0.31 0,1.87 1.25,1.56 0,4.06 -3.43,1.25 -1.57,1.87 -2.8,-0.31 -0.63,-2.81 -3.12,0 -2.18,1.25 -1.56,2.5 z',
16 | },
17 | {
18 | name: '대전',
19 | id: 'daejeon',
20 | path:
21 | 'm 192.76429,261.00884 0.31,0.17 0,0 0.48,-0.09 0.98,-2.28 0,0 0.61,-0.64 0,0 1.39,0.18 -0.32,1.3 0,0 -0.07,0.64 0,0 0,0.26 2.86,-2.66 0,0 2.5,2.5 0,0 0.24,2.62 0.65,0.75 1.78,0.41 -0.32,1.63 0.77,0.21 1.25,2.18 -1.25,0.31 -1.56,1.56 0,0 -0.94,5.62 0,0 -1.25,6.24 1.17,3.75 0,0 -3.35,2.18 -2.18,2.81 -3.75,-2.19 -2.18,-3.74 0,-1.87 -0.63,-1.56 -1.56,0 0.32,3.12 -0.63,4.99 -0.93,2.19 -1.25,0 -0.94,-3.13 -2.5,-0.93 -1.56,-2.19 -0.31,-3.43 -2.18,-1.87 -0.31,-4.06 2.18,-2.49 -0.31,-8.74 0,0 2.52,-0.58 0,0 0.91,-0.04 3.43,-1.56 0.94,-2.81 0.33,-3.29 -0.31,-0.04 0,0 -0.23,-0.31 3.95,-0.42 z',
22 | },
23 | {
24 | name: '강원',
25 | id: 'gangwon',
26 | path:
27 | 'm 281.58429,0.358837 1.42,2.81 2.15,2.75 0.58,-0.17 0.78,1.74 -0.02,0.73 -0.53,0.54 0.69,0.8 -0.08,0.54 1.15,1 -0.58,1.3 0.37,0.8 0.79,0.21 -0.16,1.46 1,0.77 -0.18,0.84 0.68,0.37 2.2,2.9 -0.44,0.57 -0.16,-0.3 -0.53,0.23 -0.05,1.71 3.78,5.8 1.74,1.8 -0.63,0.44 0.26,1.66 1.6,2.24 -0.03,1.46 2.32,2 -0.24,1.7 1,1.87 0.07,2.06 3.42,5 0.58,0.2 -0.74,0.4 -0.08,0.73 2.03,2.73 -0.92,0.99 0.5,1.87 -0.16,0.93 0.58,1.26 0.91,1.3 0.69,0.26 0.97,2.13 1.42,1.73 1.6,1.16 0.71,3.03 4.04,4.31 1.1,0.1 -0.5,1.89 3.76,6.17 1.68,1.2 -0.08,1.06 3.28,3.35 0.82,0.39 0.39,0.86 -0.47,1.63 1.86,2.65 2.52,2.38 0.24,1.46 9.51,10.030003 3.7,5.02 3.75,3.44 -0.29,2.47 -0.55,0.17 -0.52,1.06 0.16,0.95 2.38,3.24 4.5,3.69 0.36,1.82 -0.94,1.94 1.26,2.25 -0.32,0.69 1.39,1.98 -0.39,0.26 1.76,1.38 3.41,3.92 1.11,5.04 4.83,3.75 0.08,2.24 0.91,1.15 0.71,3.49 1.84,1.61 1.03,-0.1 0.47,2.53 0.63,-0.26 1.02,0.33 -0.05,0.66 0.87,0.42 -0.27,1.81 2.13,1.94 0.05,1.05 0.63,0.43 -1.47,1.11 0.71,1.78 -0.84,2.39 0.55,2.59 1.21,1.22 0.95,2.46 0.58,0.26 -0.32,1.18 0.81,0.84 0,0 -4.27,0.71 0,0 -1.87,2.19 -2.5,0.93 -2.81,2.5 0,0 -1.56,2.18 0,1.25 0,0 1.56,2.81 -6.54,0.16 0,0 -2.65,-2.27 -2.95,-1.03 -2.62,-0.4 -2.54,2.52 -1.01,-0.2 -3.07,-1.74 -3.35,-0.68 -1.17,-0.03 -2.18,0.75 -0.68,-1.33 -1.72,-0.68 0,0 -0.93,0.59 -1.98,3.72 0,0 -0.93,1.24 -4.06,0 -3.43,-2.8 -2.81,-1.56 -2.02,0.18 -0.65,2.32 0.11,2.4 -0.37,0.75 -0.75,0.37 -1.45,-0.96 -1.61,-0.42 -1.92,0.26 -3.09,-2.1 -1.17,-0.24 0,0 -1.73,-1.35 0,0 -0.64,-0.79 0,0 -2.14,0.26 0,0 -1.35,-0.05 -3.96,-1.27 0,0 -1.62,-0.72 -1.97,-2.2 -1.66,-0.52 -0.35,0.43 0,0 -0.94,0.43 0,0 -3.29,0.58 -0.82,-0.25 -0.31,0.59 -0.76,0.12 -0.82,-1.39 0,0 -0.18,-0.83 0,0 -1.15,-0.53 0,0 -0.46,-0.29 0,0 0.01,-1.95 0,0 0.09,-0.67 0,0 -0.96,-0.81 -1.46,0.33 -2.42,-0.19 0,0 -0.86,0.05 -1.19,1.25 0,0 -1.47,0.14 -0.5,0.52 0,0 -0.7,0.47 -2.31,-1.77 0,0 -0.66,-1.69 1.52,-1.27 0,0 1.74,-0.76 0,0 2.36,-2.73 0.1,-1.36 -0.58,-0.53 -0.97,0 -1.37,0.83 0,0 -1.05,0.27 0,0 -1.71,-0.24 -1.48,-1.73 -2.12,-0.43 -1.98,-1.51 -2.46,0.59 -1.12,0.93 -0.67,1.51 -0.68,0.1 -2.97,-1.01 -1.59,1.78 -2.09,1.3 0,0 -2.13,0.37 0,0 -2.04,0.82 0,0 -0.9,-0.33 0,0 -0.34,-0.47 0.06,-3.37 0,0 -1.77,-3.31 0,0 -2.05,-0.52 0,0 -2.22,0.08 -1.5,0.94 0,0 -2.38,1.69 -0.46,1 0.28,2.7 0.71,1.99 -0.42,1.8 -2.04,0.79 -0.44,0.95 -0.67,0.36 -2.33,-1.15 -3.03,0.09 -1.45,1.88 -2.19,0.93 -4.05,-3.12 -0.62,-3.48 0,0 0.62,-7.44 -0.63,-3.43 1.56,-1.25 -0.31,-7.49 3.43,-8.11 0.32,-4.06 -1.96,-0.71 -0.78,-2.38 2.77,-3.14 0.36,-0.89 2.07,-0.7 0.79,-2.19 -1.27,-1.55 -0.38,-1.35 -2.24,0.17 -0.86,-0.79 -2.28,-0.62 -3.59,-0.12 -4.31,-3.7 -2.69,-0.32 -1.81,-1.46 -2.3,-1.02 -3.64,1.4 -1.28,-0.91 -1.36,-1.94 1.75,-3.51 0.31,-4.39 -1.56,0.56 -0.74,-0.14 -0.66,0.64 -0.63,-0.15 0.12,-2.03 2.16,-1.85 0.54,-1.23 -1.32,-3.5 0.01,-0.92 0.81,-1.04 -0.2,-1.75 -0.64,-1.200003 0.58,-1.52 2.27,-0.76 1.8,-2.06 2.61,-0.57 0.7,-0.5 1,-3.97 -0.82,-4.03 -1.45,-1.59 -2.01,-0.39 -2.19,-1.03 -0.08,-2.71 -0.88,-0.6 -3.22,0.34 -3.1,-1.53 -1.25,-1.59 -0.3,-1.43 -0.41,-7.51 -1.42,-1.98 -0.74,-0.09 -1.22,1.14 -0.7,-0.96 -1.39,-0.59 -1.49,0.19 -2.37,0.81 -1.21,1.41 -0.53,-0.28 -1.91,-2.18 -1.36,-0.22 -1.19,-1.19 -0.32,-1.97 0.55,-1.12 0.25,-2.23 1.09,-0.92 -1.97,-0.88 -0.57,0.04 -1.41,1.31 -1.68,2.39 -2.44,0.17 -1.64,-0.84 -0.51,-0.93 0.12,-2.26 -1,0.31 -0.18,-1.07 0.63,-1.87 -1.56,-1.25 -0.94,-5.31 -4.68,0 0,-1.87 1.25,-0.94 -4.74,-4.41 0,0 0.99,-1.18 3.05,-2.08 1.11,-0.23 2.26,0.62 3.7,-1.29 2.99,-1.77 3.41,0.52 1.61,1.19 1.5,-0.4 1.69,0.29 1.14,-0.95 2.09,0.01 1.88,-1.02 2.04,-0.11 1.97,0.83 1.25,1.07 1.57,-0.16 2.22,0.84 2.22,1.42 5.31,-3.21 2.93,-1.03 1.45,0.32 1.16,1.12 1.5,0.09 2.28,-0.5 2.67,0.67 1.95,-1.31 5.79,0.29 2.54,-1.4 0.62,0.36 0.71,1.79 2.34,2.45 2.13,-0.92 1.79,-0.19 0.82,-0.45 1.3,-1.79 6.29,1.84 1.78,-0.43 6.45,1.44 2.96,-0.46 2.98,-2.44 2.64,0.1 0.7,-0.38 2.93,-2.96 3.87,-2.45 1.29,-2.11 1.76,-1.15 3.77,-3.69 2.16,-4.61 -0.23,-1.44 1.05,-3.15 -0.53,-9.08 0.56,-0.74 z',
28 | },
29 | {
30 | name: '광주',
31 | id: 'gwangju',
32 | path:
33 | 'm 151.37429,399.96884 -1.95,-2.34 -1.82,-0.87 -2.44,-0.09 -2.44,0.96 -2,1.04 -2.01,2.09 -1.48,0.09 -2.09,-0.7 -1.48,-1.39 -0.61,-2.18 -2.18,-0.08 -2.09,5.31 -2.35,-0.09 -1.74,2.09 -1.13,4.79 0.43,4.09 7.23,1.05 1.83,2.26 1.92,3.84 3.74,0 3.4,-2.01 3.83,0 1.48,-1.04 3.14,0.61 3.39,-2.35 1.4,-1.83 0.78,-1.66 0.09,-2.61 0.87,-1.83 0,-1.39 -2.09,-0.96 -2.61,-0.26',
34 | },
35 | {
36 | name: '경기',
37 | id: 'gyeonggi',
38 | path:
39 | 'm 79.574286,102.98884 -1.73,-1.49 -0.08,-0.6 0.84,-0.5 0.68,-1.160003 -0.16,-1.19 0.37,-1.09 1.58,-1.49 0.84,0.3 1.81,-0.3 3.05,1.75 1.55,0 0.84,-0.66 1.08,1.19 -1.71,2.780003 -1.97,1.19 -2.62,-0.33 -0.79,0.53 -1.44,0.07 -1.05,1.42 -1.09,-0.42 z m 10.61,58.28 -0.37,0.53 -0.34,-0.26 -0.21,0.43 -1.39,-0.89 -0.45,0.2 -1.52,-0.49 -0.08,-0.59 -0.81,0.17 0.21,0.76 -0.47,0.33 1.26,1.22 0.11,-0.43 0.5,0.49 0.89,-0.13 0.21,0.79 0.18,-0.43 0.42,0.03 0.42,0.56 2.07,-0.52 0.74,-1.22 -0.84,-0.53 -0.53,0 z m -7.77,-43.87 -0.05,-0.99 0.5,-0.89 -0.26,-0.5 -1.53,0.07 -0.68,-0.4 -0.92,0.23 -0.08,0.6 1.39,1.49 1.87,1.02 0.55,0.76 0.34,-0.56 -0.47,-0.5 -0.66,-0.33 z m -11.47,45.78 -0.24,-0.56 -0.92,0.63 -0.08,-1.35 -0.39,-0.03 -0.29,-1.48 -0.6,-0.43 -0.5,0.26 0.18,0.46 -1.18,2.5 0.08,2.17 -0.6,0.89 1.26,-0.2 -0.21,-0.46 0.39,-0.33 0.39,1.28 1.16,-0.36 0.13,0.72 -0.66,0.33 0.37,0.39 1.76,-0.33 0.6,0.23 0.13,-0.52 0.89,0.1 0.05,-0.56 1.55,-1.31 -0.29,-0.3 -2.98,-1.74 z m 6.14,-52.22 -0.37,-0.13 -1.26,1.52 -1.05,-0.36 -1.34,0.4 0.11,0.5 1.18,0.73 1.16,-0.5 0.94,0.69 -0.08,0.79 0.47,-0.2 1.39,0.53 -0.29,-0.76 0.58,-0.69 -1.08,-1.06 -0.36,-1.46 z m 83.090004,-69.870003 -5.57,4.26 -1,1.83 -3.9,3.98 -2.81,0 -4.68,-1.87 -2.5,1.56 -2.81,1.87 -2.81,2.81 -3.43,4.99 1.87,0.94 1.87,3.75 6.31,0.29 3.37,1.9 0.62,3.12 -1.25,0.94 -0.31,1.87 -2.18,-0.62 -2.81,0 -0.31,3.75 -1.56,0.94 0.31,2.5 1.87,0.94 -0.31,6.55 -2.18,1.25 -1.56,-2.5 -1.56,-1.25 1.25,-4.37 -1.96,-2.47 -2.4,0.07 -0.32,2.71 -1.87,1.87 -3.47,-3.34 -0.74,0.11 -0.28,0.84 1.17,4.06 -0.49,1.87 3.49,0.83 1.25,0.94 3.43,4.99 -6.55,1.87 -2.83,0 -0.96,4.55 -3,0.18 -1.12,0.530003 -1.96,1.94 -3.56,-0.53 -2.02,-1.610003 -0.6,1.170003 -1.08,0.1 -0.68,0.69 1.1,1.75 -0.87,4.23 1.08,1.79 0.08,1.49 -0.58,1.62 1.16,0.53 -0.05,1.26 -0.71,0.46 1.68,3.04 0.97,3.3 2.37,3.1 0,0 2.46,-1.99 1.69,-0.73 0.62,-1.58 1.5,-1.27 2.08,0.19 7.46,6.03 0,0 3.82,1.29 0,0 1.16,-0.99 1.02,-2.47 1.26,0.33 1.39,1.72 2.42,1.15 3.63,-1.61 0.63,-0.36 0.16,-3.1 0.84,-1.06 5.15,-0.4 1.1,-0.79 0.08,-3 1.1,-1.06 -0.03,-1.19 0.55,-0.53 1.26,-0.53 0.92,-0.99 2.34,0.53 2.63,-0.33 1.18,0.2 0.92,1.09 0.11,4.53 0.89,1.16 0.08,1.85 1.1,1.72 -1.44,4.16 0.03,1.19 0.37,0.59 1.18,-0.16 1.18,-0.76 2.47,-0.59 1.16,-0.82 0.79,1.15 0.66,2.41 -0.44,0.53 -1.76,0.63 -1,0.99 -0.39,2.5 1.18,0.49 0,0.59 -1.29,1.71 -0.63,0.46 -0.63,-0.16 -0.42,0.59 0.45,0.56 -1.68,1.58 -2.99,0.26 -3.65,2.08 -0.68,-1.22 0,-1.71 -3.07,0.3 -4.18,2.31 -2.39,0.1 -1.21,-0.49 -1.81,0.72 -0.52,-0.13 -2.57,-5.7 -2.41,1.25 -0.55,0.1 -0.58,-0.53 -0.31,-3.1 -0.55,-0.53 0.1,-1.78 -3.81,-3.82 0,0 -3.54,4.55 0,0 0.13,4.02 3.31,2.9 0,0 0.03,1.19 -0.71,0.79 -0.02,0.66 0,0 0.26,1.15 -0.94,0.82 0,0 -0.55,0.43 -0.29,1.08 0,0 0.81,0 0.42,0.59 -3.96,-0.76 -0.89,1.05 0.81,0.63 -0.39,1.51 -1.97,1.65 -0.76,-0.07 -0.47,0.69 -1.5,0.36 -0.26,0.95 0.53,0.13 0.03,0.43 -7.6,2.52 -2.94,2.24 -0.92,-0.26 0.47,0.99 -1.29,1.38 -0.58,-0.03 -0.03,-0.66 -2.28,-0.69 2.13,2.2 0.32,1.48 0.45,0.36 -0.34,2.07 -0.47,0.43 -1.1,-0.03 -0.24,0.72 0.11,0.66 1.1,0.07 0.24,0.76 -1.21,0 0.29,0.85 -0.6,0.16 -0.47,0.92 0.39,0.26 0.55,-0.89 0.71,-0.06 1.02,1.58 0.71,-0.75 -0.21,-0.62 0.63,-1.35 0.71,-0.66 0.87,0.69 0.58,-0.06 0.5,0.85 0.37,-0.49 0.71,0.56 -0.21,-1.25 1,-2.07 0.26,1.64 2,1.25 -0.5,0.69 -0.03,1.02 0.58,0.62 0.37,-0.85 -0.18,-0.72 0.6,-0.75 -0.34,-1.64 -2.63,-1.35 -0.24,-1.44 -0.52,-0.43 0.13,-0.82 -0.94,-0.46 -1.26,0.07 -0.97,-1.35 -1.16,-0.66 1.1,-1.15 -0.08,-0.66 3.2,-2.23 6.49,-2.24 1,-0.07 3.52,2.79 4.86,1.81 3.1,-0.39 1.16,2.1 1.05,0.43 0.55,0.76 1.26,-0.43 -0.87,0.82 -0.13,0.95 -1.58,-2 -0.47,0.36 -1.44,-0.85 0.16,-0.92 -0.89,0.33 -0.34,0.79 0.76,0.56 0.18,0.72 -1.1,-0.56 -0.81,0.46 0.74,1.74 -0.92,0.85 0.66,0.2 -0.71,0.2 0.32,0.49 -1.84,2.66 -0.34,-0.59 -0.97,-0.29 0.58,-0.69 -0.47,-0.66 -0.13,-2.37 -2.65,0.85 -0.34,-1.08 -0.89,0.13 -2.68,-0.89 -0.89,1.12 0.16,0.72 -1.71,0.36 0.39,1.74 0.53,-0.2 0.4,0.79 -0.92,0.79 -0.03,0.95 0.97,1.54 -1.42,0.03 -1.16,1.48 1.18,2.59 -1.08,0.95 1,-0.03 0.5,-0.59 0.26,0.4 1.29,-0.39 0.11,0.66 0.79,-0.16 -1.34,1.84 -0.89,0.3 0.32,0.39 0.58,-0.16 0.39,0.59 0.34,1.25 -0.52,0.52 0.84,0.79 0.4,-1.61 0.89,-0.26 0.47,-0.92 0.55,-0.03 0.08,0.33 1.37,-1.02 2.07,-3.41 2.55,0.23 0.37,-0.59 0.45,0.03 0.58,-1.57 -0.03,1.21 0.68,0.2 -0.21,0.72 0.5,0.26 -2.15,1.31 4.67,0.07 0.05,0.36 -2.13,0.23 0.95,0.56 -0.03,0.46 -0.81,-0.36 -0.34,0.82 -1.02,0.49 -1.05,-0.72 -2.02,1.94 -0.18,0.92 0.71,1.8 -0.47,4.36 -0.37,0.46 -0.24,0.03 -0.95,1.44 -0.03,0.82 0.37,0.79 3.49,-0.03 0.81,0.36 0.29,2.1 -0.5,-0.2 -0.84,0.62 0.05,0.82 0.55,0.52 1.81,-0.2 1.55,0.49 1.5,2.59 0.29,1.01 -0.66,-0.36 0.5,0.92 1.92,0.79 0.45,1.87 1.94,-0.33 1.42,0.92 0.87,4.56 0,0 0.99,-0.06 0.83,-1.21 1.64,-0.81 7.55,1.76 0.83,-0.61 0.94,0.01 3.17,-1.16 3.01,-2.07 2.58,-0.08 2.99,1.43 1.34,1.8 1.95,1.59 5.1,0.7 0,0 2.77,-0.23 0,0 1.52,-0.91 0,0 1.56,-0.35 0,0 0.7,-0.44 0,0 1.71,-1.24 2.21,0.14 0.91,-1.35 0.89,-0.39 0.17,-2.11 -0.3,-1.08 0,0 2,-1.59 0,0 3.09,-1.41 -0.18,-0.45 0.93,-1.14 0.05,-1.04 2.34,-2.57 0.8,1.19 1.48,-0.02 -0.27,2.07 1.6,-3.22 4.3,0.78 4.06,-3.74 2.5,-0.31 0.63,-7.8 1.56,0 1.56,1.87 1.87,0 2.66,-6.65 2.65,-0.58 0,0 0.62,-7.44 -0.62,-3.43 1.56,-1.25 -0.31,-7.49 3.43,-8.11 0.31,-4.06 -1.95,-0.71 -0.79,-2.38 2.77,-3.14 0.37,-0.89 2.06,-0.7 0.79,-2.18 -1.27,-1.55 -0.38,-1.35 -2.24,0.17 -0.85,-0.79 -2.28,-0.62 -3.59,-0.12 -4.31,-3.69 -2.69,-0.32 -1.82,-1.46 -2.3,-1.02 -3.64,1.4 -1.28,-0.91 -1.36,-1.93 1.75,-3.51 0.31,-4.39 -1.56,0.55 -0.75,-0.14 -0.66,0.64 -0.63,-0.15 0.12,-2.02 2.16,-1.85 0.54,-1.23 -1.32,-3.5 0.01,-0.92 0.82,-1.04 -0.2,-1.75 -0.65,-1.200003 0.59,-1.52 2.26,-0.75 1.8,-2.06 2.62,-0.57 0.69,-0.5 1,-3.97 -0.82,-4.03 -1.44,-1.59 -2.01,-0.39 -2.19,-1.03 -0.08,-2.7 -0.88,-0.6 -3.22,0.34 -3.09,-1.53 -1.25,-1.59 -0.3,-1.43 -0.4,-7.52 -1.42,-1.97 -0.73,-0.09 -1.22,1.14 -0.7,-0.96 -1.4,-0.59 -1.49,0.2 -2.37,0.81 -1.22,1.41 -0.52,-0.29 -1.92,-2.18 -1.36,-0.21 -1.19,-1.19 -0.31,-1.97 0.55,-1.12 0.25,-2.23 1.09,-0.92 -1.97,-0.88 -0.57,0.04 -1.41,1.31 -1.68,2.4 -2.44,0.16 -1.64,-0.83 -0.51,-0.94 0.12,-2.25 -0.99,0.31 -0.18,-1.08 0.63,-1.87 -1.56,-1.25 -0.94,-5.3 -4.68,0 0,-1.87 1.25,-0.94 -4.74,-4.42 -1.48,0.39 z m -65.840004,70.330003 -1.08,-0.79 0.03,-0.5 -2.49,-0.36 -2.1,-1.65 -0.03,-2.31 1.02,-2.08 -0.92,-0.56 -3.23,1.32 -0.08,3.41 -0.24,0.4 -1.02,-0.23 -0.26,0.4 1.86,1.72 2.73,1.45 1.02,1.45 -0.26,2.08 1.26,0.63 -0.18,0.43 0.74,0 -0.21,-0.76 3.05,-1.98 0.39,-2.07 z m 13.580004,3.6 0.21,-0.56 0.76,-0.2 -0.03,-0.46 -1.13,-0.46 -0.34,-0.89 0.79,-3.17 -0.87,-0.76 -0.29,-0.96 0.13,-1.22 0.97,-1.42 0.13,-1.09 -1.37,-1.69 0.16,-1.02 -0.5,-1.260003 -4.52,-2.94 -2.150004,-2.78 -1,-0.23 -0.58,0.79 -2.36,0.17 -0.84,2.02 -3.49,1.89 0.6,3.440003 -0.42,2.68 0.34,3.97 2.99,0.79 0.39,0.56 -0.23,0.79 1.37,1.32 0.45,1.92 -0.16,1.49 -0.71,0.89 -3.18,0.59 0.81,0.53 0.34,1.55 -0.71,0.46 0.13,0.33 0.42,-0.07 1.26,1.19 1.26,0.2 0.34,0.63 5.360004,0.36 0.03,-1.02 0.89,0.43 0.58,-0.92 2.21,0.99 0.95,-0.07 0.81,-1.65 1.37,-0.4 0.05,-0.56 -1.22,-4.18 z m -3.08,43.89 -0.92,0.13 -0.6,-0.76 -1.55,0.56 -0.39,-0.13 -0.34,0.59 0.16,0.69 -1.550004,-0.13 -0.16,1.25 -0.55,0.26 0.45,0.3 0.37,1.68 -0.5,0.16 0.16,1.71 1.890004,-0.03 0.32,0.39 -0.26,0.53 0.63,-0.06 0.45,-0.72 0.89,-0.39 -0.26,-0.85 1.52,-0.1 0,-0.49 -0.52,0.13 0.03,-0.53 -0.66,-0.43 0.74,-0.29 0.53,0.26 -0.21,-0.76 1,0.72 0.42,-0.43 0.26,-1.54 -0.47,-0.89 -0.88,-0.83 z',
40 | },
41 | {
42 | name: '인천',
43 | id: 'incheon',
44 | path:
45 | 'm 113.77429,124.42884 2.46,-1.99 1.69,-0.73 0.62,-1.58 1.5,-1.27 2.08,0.19 7.46,6.03 0,0 3.83,1.29 -0.13,1.25 0.58,0.33 0,0 -3.54,4.55 0,0 0.13,4.02 3.31,2.9 0,0 0.03,1.19 -0.71,0.79 -0.02,0.66 0,0 0.26,1.15 -0.94,0.82 0,0 -0.55,0.43 -0.29,1.08 0,0 -0.55,-0.16 -0.13,-0.2 -1.31,-0.23 0.47,-1.81 -0.68,-0.53 -0.26,0.07 0.6,0.49 -0.13,0.76 -0.6,0.36 -0.29,-2.2 -0.31,-0.13 0.05,2.27 0.42,0.23 -0.03,0.49 -1.97,2.27 -3.57,-0.49 -3.68,4.64 -3.2,0.03 -0.13,0 -1.26,0.1 -0.34,1.09 -1,-0.03 0.84,-0.26 0.53,-1.84 2.18,0 -0.45,0.82 2.84,0 3.6,-4.51 -1.34,-0.43 -2.7,-2.73 -0.94,-4.28 -0.5,2.31 -1.47,-0.1 0.37,-0.82 -0.5,-0.72 0.68,-0.1 -0.47,-0.39 0.11,-0.56 -0.81,1.29 -0.97,-0.1 -0.24,-0.39 0.37,-1.38 -0.21,-0.89 0.6,-0.03 -0.34,-0.82 0.79,-1.52 2.99,-1.19 1.23,0.4 -0.76,-0.54 -0.16,-1.14 -1.05,0.99 -1.36,0.13 0.05,-1.32 -0.73,-0.39 -0.29,-0.69 0.97,0.1 -0.16,-1.25 -0.58,0 -0.05,-0.82 -0.53,0 -0.08,-0.43 0.68,-0.3 0.05,-1.42 -2.62,1.02 -0.16,0.63 -0.39,-0.4 -0.6,0.23 -2.31,2.02 2.21,-2.08 3.91,-1.62 -0.84,-1.06 -0.74,-0.13 -0.52,-1.42 z m -26.000004,1.62 1.76,0.89 0.08,0.36 0.87,-0.26 0.53,1.55 0.89,0.46 2.97,-0.43 -0.26,1.45 -2.05,-0.43 -1.86,0.63 -0.05,-0.56 -0.34,0 -1.02,0.96 0.37,-2.11 -1.94,-1.91 0.05,-0.6 z m 19.640004,3.16 0.76,0.73 -0.03,0.46 3.57,0.99 0.55,0.92 0.84,0.4 0.42,1.85 -2.26,1.42 -1.39,-0.07 -0.6,-0.59 -1,1.25 -2.13,0.96 -1.73,2.24 -4.02,2.93 -1.550004,-0.2 -1.31,0.76 -0.05,-0.53 0.58,-0.33 -0.18,-1.12 -0.94,-0.66 -1.23,0.82 0.89,-0.92 -0.47,-0.72 -0.74,0.23 0,0.79 -0.63,-0.53 -0.24,0.76 -0.52,-0.72 -1.1,-0.1 0.87,-0.62 -0.47,-0.16 0.13,-0.95 -0.55,0.07 -0.66,-0.72 -0.18,-0.69 0.42,-0.69 1.65,-0.03 3.94,-2.8 5.570004,-0.26 1.34,-0.96 0.68,-2.7 1.77,-0.51 z m -9.850004,14.66 0.11,0.82 0.79,0.26 0.79,1.28 1.100004,0.53 -0.08,0.59 -0.630004,-0.07 0.580004,0.43 -0.710004,0.49 0,0.69 -1.57,0.43 -0.95,-0.92 0.37,-1.25 -0.26,-0.69 -1.18,-0.3 0.81,-1.45 0.08,-0.99 0.75,0.15 z',
46 | },
47 | {
48 | name: '제주',
49 | id: 'jeju',
50 | path:
51 | 'm 148.84429,592.92884 0.68,0.78 -0.45,0.6 0.79,-0.31 0.66,0.22 -0.52,0.53 0.39,1.16 -0.55,1.22 -2.07,-0.5 -0.45,-1.44 0.79,-1.97 0.73,-0.29 z m -4.62,15.13 -1.44,0.53 -1.71,1.75 -0.47,2.03 -2.47,2.48 0.16,1.44 -1.31,1.47 -2.13,0.47 -2.94,-0.56 -3.12,3.25 -2.42,0.16 -3.81,1.06 -0.76,-0.41 -2.02,0.31 -2.68,2.16 -0.08,0.78 -1.81,0.69 -0.87,-0.37 -0.13,-0.53 -1.71,-0.06 -0.52,1.28 -1.47,-0.87 -2.15,0.19 -1.6,0.81 -3.7,0.84 -1.1,-1.69 -0.74,-0.15 -2.340004,0.63 -1.34,-1.06 -0.52,0.06 -3.31,1.5 -4.23,-1.12 -3.1,2.03 0.03,2.97 -0.55,0.16 -0.31,-0.62 -0.52,-0.03 -0.95,0.62 -0.89,-0.59 0.24,-1.12 -0.84,-0.03 -2.13,-2.87 -2.99,-1.28 -1.89,-1.56 -1.84,-3 0.58,-3.31 -0.58,-1.81 0.42,-0.78 1.37,-0.69 0.03,-1.41 2.76,-1.78 1.18,-1.81 1.21,0.19 2.18,-2.5 0.45,-2.82 4.2,-1.69 0.08,-1.69 0.37,-0.28 1.94,-0.03 1.89,-0.53 0.24,-0.53 1.31,0.06 1.66,-1.35 0.47,-0.03 0.71,0.78 1.16,-0.88 4.150004,-1.1 1.26,-1 1.34,-0.09 0.34,-0.81 0.74,-0.41 2.02,0.6 1.26,-0.22 1.16,-0.75 0.97,0.44 1.26,-0.69 2.08,0.16 0.79,-1.16 3.7,-0.25 0.11,-0.81 1,-1.19 1.89,1.51 0.87,-0.28 0.24,-0.85 0.87,0.35 3.78,-1.25 3.18,0.38 0.24,-0.94 3.02,0.6 0.32,0.53 1.84,-0.6 0.92,0.1 0.1,1.41 1.21,1.6 1.08,0.09 0.68,0.85 1,-0.63 2.21,0.28 1.05,0.75 -0.42,1.32 1.02,0 0.34,0.94 -0.16,1.32 -0.81,0.09 -0.18,0.75 1.81,1.44 1.34,-0.5 0.13,0.88 0.95,0.81 -0.47,0.56 -1,-0.66 -0.81,1.22 -0.1,1.03 1.5,1.1 -0.73,0.88 -0.63,-0.5 0.26,-0.47 -0.87,-0.34 -1,4.65 z',
52 | },
53 | {
54 | name: '충북',
55 | id: 'north-chungcheong',
56 | path:
57 | 'm 214.60429,306.87884 -0.93,-2.8 -1.56,-3.12 -2.19,-1.88 -0.31,-2.8 0,0 1.25,-2.81 -0.31,-3.12 -1.87,-3.12 0,0 -2.8,0.26 -1.03,-0.84 -2.93,-1.08 -1.05,-3.65 1.25,-6.24 0,0 0.94,-5.62 0,0 1.56,-1.56 1.25,-0.31 -1.25,-2.18 -0.77,-0.21 0.32,-1.63 -1.78,-0.41 -0.65,-0.75 -0.24,-2.62 0,0 -2.5,-2.5 0,0 -2.86,2.66 0,-0.26 0,0 0.07,-0.64 0,0 0.32,-1.3 -1.39,-0.18 0,0 -0.61,0.64 0,0 -0.98,2.28 -0.48,0.09 0,0 -0.31,-0.17 0,0 -1.25,-5.3 -3.95,0.42 -0.39,-0.55 -0.71,-0.14 -0.4,0.33 0,0 -0.57,0.78 0,0 1.86,-6.1 -1.08,-1.14 0.83,-1.83 0.09,-1.45 -3.34,-0.2 -0.45,-1.35 0,0 0,-2.81 -2.81,-3.43 2.19,-0.63 0.31,-2.81 0,0 -1.56,-2.18 4.99,-7.8 3.75,0.31 1.56,-1.87 -1.25,-3.75 -3.12,-2.18 -2.88,0 0,0 -1.08,-0.48 0.16,-1.99 0,0 -0.06,-0.42 -0.53,-0.07 0,0 -1.48,-0.71 0,0 -0.23,-2.66 -2.84,-1.92 -0.91,-2.42 2.76,-0.23 0,0 1.52,-0.91 0,0 1.56,-0.35 0,0 0.7,-0.44 0,0 1.71,-1.24 2.21,0.14 0.9,-1.36 0.89,-0.39 0.17,-2.11 -0.3,-1.08 0,0 1.99,-1.6 0,0 3.09,-1.41 -0.17,-0.45 0.92,-1.15 0.05,-1.03 2.34,-2.57 0.81,1.19 1.48,-0.02 -0.27,2.07 1.59,-3.23 4.31,0.78 4.05,-3.74 2.5,-0.31 0.62,-7.8 1.57,0 1.56,1.87 1.87,0 2.66,-6.65 2.65,-0.58 0.62,3.48 4.05,3.12 2.19,-0.93 1.44,-1.88 3.04,-0.09 1.92,1.08 1.08,-0.29 0.44,-0.95 2.04,-0.79 0.42,-1.8 -0.72,-1.99 -0.27,-2.7 0.46,-1 2.38,-1.69 0,0 1.5,-0.94 2.22,-0.08 0,0 2.05,0.52 0,0 1.77,3.31 0,0 -0.06,3.37 0.34,0.47 0,0 0.9,0.33 0,0 2.04,-0.82 0,0 2.13,-0.37 0,0 2.09,-1.3 1.59,-1.78 2.97,1.01 0.68,-0.09 0.67,-1.52 1.12,-0.93 2.46,-0.59 1.98,1.51 2.12,0.43 1.48,1.73 1.71,0.24 0,0 1.05,-0.27 0,0 1.37,-0.83 0.97,0 0.58,0.53 -0.1,1.36 -2.36,2.73 0,0 -1.74,0.76 0,0 -1.52,1.27 0.66,1.69 0,0 2.31,1.77 0.7,-0.47 0,0 0.5,-0.52 1.47,-0.14 0,0 1.19,-1.25 0.86,-0.05 0,0 2.42,0.19 1.46,-0.33 0.96,0.81 0,0 -0.09,0.67 0,0 -0.01,1.95 0,0 0.46,0.29 0,0 1.15,0.53 0,0 0.18,0.83 0,0 0.82,1.4 0.76,-0.13 0.31,-0.59 0.82,0.25 3.29,-0.58 0,0 0.94,-0.43 0,0 0.35,-0.43 1.66,0.52 1.97,2.2 1.62,0.72 0,0 3.96,1.27 1.35,0.05 0,0 2.14,-0.26 0,0 0.64,0.79 0,0 1.73,1.35 -1.27,1.28 0,0 -0.93,0.88 -0.47,-0.23 0,0 -0.92,-0.33 0,0 -0.75,0.31 0,0 -1.45,2.14 -0.83,0.48 0,0 -0.62,0.28 0,0 -3.29,3.25 -2.8,0.8 0,0 -0.79,1.25 0,0 -0.46,1 -3.08,1.75 -0.09,0.88 -1.49,1.47 -1.58,3.31 0,0 -0.83,1.57 0,0 -0.06,1.33 1.32,0.61 0,0 0.53,0.82 0,0 0.26,2.1 -2.84,3.89 0,0 -1.43,0.3 0,0 -2.11,0.15 0,0 -0.46,0.33 0,0 -0.92,1.04 -2.44,-0.06 0,0 -1.65,0.44 -0.55,-0.26 0,0 -1.03,-2.79 -1.46,-2.13 -3.24,-1.85 -1.18,-1.97 0,0 -1.08,1.28 -0.28,1.02 0,0 -0.31,0.75 -1.13,0.34 -0.24,2.59 0,0 -0.2,0.64 0,0 -0.37,0.57 -5.21,-1.29 -0.49,-0.45 0,0 -0.42,-0.63 0,0 -1.07,-0.37 -0.61,0.62 0,0 -1.38,1.15 0,0 -1.15,1.94 0,0 -1.38,0.19 0,0 -1.64,-1.74 -0.51,0.3 -2.71,6.34 0,0 -0.15,0.35 0,0 3.24,4.45 0.15,0.8 -1.19,0.1 -3.41,-1.02 0,0 -1.18,-0.66 -1.21,0.59 0,0 -2.19,-1.02 0,0 -1.12,-0.61 0,0 -1.17,2.33 -1.71,1.4 -1.6,1.04 -2,0.13 0,0 -0.65,0.25 0,0 -1.68,2.38 0.48,2.22 0,0 -0.45,0.7 0,0 -2.2,1.91 0,0 -0.58,0.73 0,0 -0.95,1.5 -0.81,0.05 0,0 -1.56,0.35 0,0 -0.82,1 -0.17,0.91 0.72,1.1 5.37,1.13 1.22,1.22 -0.14,0.93 0,0 0.38,1.56 0.58,0.41 0,0 1.64,0.68 0.37,0.68 -0.42,1.71 0,0 -0.13,0.56 0,0 -1.89,0.33 0,0 -0.43,1.34 0,0 0.3,3.59 -0.68,2.7 0.6,1.18 0,1.29 -1.29,2.02 1.32,3.25 0,0 0.5,0.31 0,0 -1,2.56 -2.67,2.31 0,0 -0.07,4.28 0.37,0.79 1.79,0.99 0,0 1.84,-1.07 1.17,-1.51 0.4,0.02 0.47,1.45 2.24,0.79 0.26,0.69 0,0 0.09,0.5 0,0 0.98,0.32 0,0 0.78,0.75 0,0 0.33,0.49 0.84,-0.09 0,0 1.99,-0.84 0,0 2.23,-0.79 2.02,0.7 0,0 0.62,1.07 0,0 -0.35,1.06 0.5,2.11 0,0 0.57,1.3 0.69,0.57 0,0 -0.09,0.79 -1.15,0.56 -2.47,-1.48 -2.41,1.43 -0.66,0.86 -0.52,0.88 0.08,1.19 1.09,1.77 -0.51,1.41 0.1,2.16 -1.75,1.46 0.18,0.92 -1,1.68 -0.22,2.04 -1.84,2.6 -0.76,0.33 -0.88,-0.66 -1.24,0.23 -3.82,3.64 -2,-2.22 -0.9,-0.06 0,0 -1.37,0.45 0,0 -2.73,1.62 0,0 -0.89,0.33 0,0 -0.36,0.91 0,0 -2.6,0 -0.15,-0.92 0,0 -1.71,-1.04 0,0 -1.17,-0.29 0,0 -2.26,-0.56 0,0 -0.67,-0.57 0,0 -1.05,-2.27 z',
58 | },
59 | {
60 | name: '경북',
61 | id: 'north-gyeongsang',
62 | path:
63 | 'm 522.63429,128.21884 0.94,0.28 -0.73,0.38 -0.32,1.08 0.96,1.76 -0.73,2.61 0.94,0.68 -0.99,0.36 -0.85,0.96 -0.47,-0.17 -1.23,0.72 -0.75,1.9 -0.57,-0.56 -1.79,-0.58 -0.88,0.18 -1.47,-1.14 -1.6,-0.36 -0.65,-1.06 0.24,-2.44 -1.04,-1.2 0.03,-1.08 0.75,0.48 4.06,-2.08 1.41,0.08 1.44,-0.94 1.63,0.24 0.77,-0.86 0.73,0.04 0.17,0.72 z m -223.29,222.72 0,0 0.69,1.28 -0.47,3.05 0,0 0.79,2.37 0.9,1.29 2.12,1.69 0,0 0.94,1.08 1.39,0.7 0,0 5.88,-1.1 0,0 3.44,0.77 4,1.97 0,0 1.92,0.57 1.57,-0.56 3.95,-3.27 1.01,0.3 0,0 1.14,-0.44 1.81,-2.29 0,0 2.02,-1.42 0,0 2.1,0.04 0,0 1.34,0.1 1.59,0.77 0,0 1.29,0.71 0,0 2.42,0.87 0,0 0.96,-0.35 0,0 0.77,-0.79 3.92,-3.09 1.66,-0.17 0,0 0.67,0.13 0.66,-0.86 -1.35,-2.48 -0.22,-1.06 0.6,-0.49 4.16,-2.58 3.11,-1.02 1.63,0.3 2.59,-0.65 1.09,0.42 1.8,1.47 2.01,0.31 0.97,0.59 0.24,0.83 0,0 -0.43,2.84 0,0 0.29,0.77 0.73,0.34 0,0 1.98,0.65 0,0 1.43,-0.24 2.82,-1.84 1.12,-0.31 0,0 1.49,-0.01 0,0 4.89,1.73 0,0 1.76,0.42 0,0 3.01,0.22 -0.81,-0.26 0,-0.55 -0.63,-0.58 -0.24,-2.32 0.76,-0.39 0.5,-1.99 1.05,-0.1 0,-1.61 0.52,0.06 0.63,-1.35 -0.45,-1.83 1.24,-2.8 -0.13,-1.48 0.97,-1 -0.34,-0.81 0.26,-1.26 0.37,-0.19 -0.63,-1.9 0.97,-0.77 -0.26,-0.58 0.89,-0.9 0.34,0.19 0.24,-1.35 -0.52,-0.77 1.13,-1.52 -0.18,-1.35 0.68,-0.55 0.05,-1.1 0.79,-1 -1.6,-0.32 0.21,-0.81 0.89,-0.26 -0.44,-1.32 0.87,-0.74 -1.47,-2.36 -0.05,-0.87 1.44,-0.77 0.68,-1.68 0.81,-0.19 -0.18,-0.52 0.79,-1.45 -0.37,-1.19 1.39,-1.23 -0.03,-0.87 1.71,-2.26 -0.68,-0.94 0.5,-0.42 0.05,-0.42 -0.55,-0.35 0.4,-0.16 0.24,-1.13 -1.31,-2.59 0.1,-1.16 -0.97,-0.29 -0.21,-0.78 -1.23,0.29 -0.03,0.94 -0.89,1.36 -3.07,3.33 -0.05,1.33 -4.17,2.49 -0.3,1.19 -0.82,0.26 -2.54,-1 -0.42,-0.77 0.71,-0.84 -0.55,-0.52 -2.34,0.61 0.19,-0.74 0.74,-0.35 0.45,-0.81 1.39,0.32 0.89,-0.1 -0.02,-0.42 -2.6,-0.94 -1.68,1.16 -1,-1.65 0.66,-2.33 1.31,0 0.5,-0.78 1.65,-0.58 -0.18,-1.45 1.21,-1.07 0.1,-0.58 0.08,-0.97 -3.02,-2.49 -0.47,-1.13 0.63,-1.68 -0.02,-1.23 -0.6,-1.98 -0.18,-0.39 -1.21,-0.23 -0.84,-1.59 0.21,-0.71 0.84,-0.23 0.34,-1.3 -0.44,-1.3 0.45,-1 -1.23,-1.46 0.29,-1.95 0.52,-0.55 -0.68,-1.59 0.45,-0.26 0.29,-3.67 -0.26,-1.23 0.89,-1.85 -0.08,-0.97 1.68,-2.89 0.21,-1.04 0.47,0 1.65,-2.4 0.58,-1.92 -0.29,-1.69 0.42,-2.76 -0.37,-1.85 1.08,-0.98 0.11,-1.79 0.6,-0.23 -0.47,-0.78 -0.39,0 -0.29,-4.62 -2.13,-2.41 -0.58,-1.24 -0.18,-1.79 0.6,-0.29 -0.39,-2.51 0.47,-1.86 1.08,-1.2 0.84,-2.61 1.18,-0.98 1.31,0.07 0.4,-1.76 0.87,-0.65 -0.55,-2.58 0.55,-0.52 -0.03,-0.91 -0.81,-1.53 -0.1,-1.3 1.05,-1.11 -1.44,-2.38 -0.58,-3.23 -0.89,-1.04 -0.1,-1.01 -1.68,-1.86 -0.84,-2.42 0.24,-0.62 -0.63,-1.27 -0.08,-0.75 0.55,-0.56 -0.52,-1.34 0.55,-4.25 -1.18,-3.96 1.05,-1.86 -0.05,-1.41 -0.92,-2.78 0.68,-0.52 -0.39,-1.28 0.21,-1.24 0.63,-0.43 0.55,0.36 0.42,-0.29 -0.6,-1.05 -2.86,-2.1 -0.1,-0.62 -1.68,-1.47 -0.18,-1.18 0.55,-0.84 0,0 -4.28,0.72 0,0 -1.87,2.19 -2.5,0.94 -2.81,2.5 0,0 -1.56,2.19 0,1.25 0,0 1.56,2.81 -6.53,0.16 0,0 -2.66,-2.27 -2.95,-1.03 -2.61,-0.4 -2.55,2.52 -1.01,-0.19 -3.07,-1.75 -3.35,-0.67 -1.17,-0.03 -2.18,0.74 -0.68,-1.32 -1.72,-0.68 0,0 -0.93,0.6 -1.98,3.71 0,0 -0.94,1.25 -4.06,0 -3.43,-2.81 -2.81,-1.56 -2.02,0.18 -0.65,2.32 0.11,2.4 -0.36,0.76 -0.75,0.36 -1.46,-0.95 -1.61,-0.42 -1.92,0.26 -3.08,-2.1 -1.17,-0.24 0,0 -1.27,1.28 0,0 -0.93,0.88 -0.47,-0.23 0,0 -0.93,-0.33 0,0 -0.75,0.31 0,0 -1.45,2.14 -0.83,0.47 0,0 -0.62,0.28 0,0 -3.29,3.25 -2.8,0.81 0,0 -0.79,1.24 0,0 -0.47,1 -3.08,1.75 -0.09,0.88 -1.48,1.47 -1.58,3.32 0,0 -0.83,1.57 0,0 -0.05,1.33 1.31,0.61 0,0 0.53,0.81 0,0 0.26,2.1 -2.84,3.9 0,0 -1.43,0.3 0,0 -2.11,0.15 0,0 -0.45,0.33 0,0 -0.92,1.03 -2.44,-0.05 0,0 -1.64,0.44 -0.55,-0.25 0,0 -1.04,-2.8 -1.46,-2.12 -3.24,-1.85 -1.18,-1.97 0,0 -1.08,1.28 -0.28,1.02 0,0 -0.31,0.75 -1.13,0.34 -0.24,2.59 0,0 -0.2,0.64 0,0 -0.37,0.57 -5.2,-1.3 -0.5,-0.44 0,0 -0.42,-0.63 0,0 -1.06,-0.38 -0.61,0.63 0,0 -1.38,1.15 0,0 -1.15,1.94 0,0 -1.38,0.19 0,0 -1.64,-1.75 -0.51,0.31 -2.71,6.34 0,0 -0.16,0.35 0,0 3.24,4.45 0.15,0.8 -1.19,0.11 -3.41,-1.01 0,0 -1.18,-0.67 -1.21,0.59 0,0 -2.19,-1.02 0,0 -1.12,-0.61 0,0 -1.17,2.34 -1.71,1.39 -1.6,1.05 -2,0.12 0,0 -0.64,0.25 0,0 -1.68,2.38 0.48,2.22 0,0 -0.45,0.7 0,0 -2.21,1.91 0,0 -0.58,0.73 0,0 -0.94,1.51 -0.81,0.05 0,0 -1.56,0.35 0,0 -0.82,1 -0.17,0.91 0.73,1.1 5.37,1.13 1.22,1.22 -0.14,0.93 0,0 0.39,1.56 0.58,0.41 0,0 1.64,0.68 0.37,0.68 -0.42,1.71 0,0 -0.12,0.56 0,0 -1.89,0.33 0,0 -0.43,1.34 0,0 0.3,3.6 -0.67,2.69 0.6,1.18 0,1.3 -1.28,2.02 1.32,3.25 0,0 0.5,0.31 0,0 -1,2.56 -2.66,2.31 0,0 -0.07,4.29 0.37,0.79 1.79,0.99 0,0 1.85,-1.07 1.16,-1.51 0.41,0.02 0.46,1.44 2.24,0.8 0.26,0.68 0,0 0.09,0.5 0,0 0.98,0.32 0,0 0.78,0.75 0,0 0.34,0.5 0.84,-0.1 0,0 1.99,-0.84 0,0 2.23,-0.79 2.02,0.7 0,0 0.62,1.07 0,0 -0.36,1.07 0.51,2.1 0,0 0.57,1.31 0.69,0.57 0,0 -0.09,0.8 -1.15,0.55 -2.47,-1.48 -2.41,1.43 -1.18,1.74 0.08,1.19 1.1,1.77 -0.51,1.41 0.1,2.16 -1.76,1.46 0.18,0.92 -0.99,1.68 -0.23,2.04 -1.84,2.6 -0.75,0.33 -0.88,-0.67 -1.24,0.24 -1.08,1.07 0,0 3.48,5.67 1.23,3.31 -0.27,2.77 -1.01,2.25 0,0 0.13,1.94 0.57,0.87 1.14,0.9 1.56,-0.01 0,0 0.71,0.37 0,0 0.31,2.61 0.94,0.56 0,0 2.14,0.33 0,0 1.78,0.22 0.58,1.13 1.15,0.64 0,0 4.44,0.78 0,0 2.55,-0.26 0,0 1.49,0.75 0,0 1.54,0.75 0.49,0.74 0.78,2.88 0,0 0.66,0.5 0,0 2.07,0.99 0.66,1.15 -0.23,0.61 2.52,1.49 0.94,1.79 -0.24,2.21 -1.82,3.97 0,0 -0.27,1.66 0.89,1.64 0,0 3.8,1.49 2.25,-0.3 0,0 1.19,-0.31 0,0 2.96,-1.09 2.2,1.09 2.29,0.27 0,0 2.24,2.18 0,0 1.71,1.25 0,0 -0.73,-3.43 -4.06,-4.99 0.31,-2.81 1.87,0.62 1.56,1.25 2.18,0 0.62,-2.5 -3.12,-3.43 1.25,-3.12 1.25,-2.81 5.31,-0.94 -0.31,-1.87 -2.81,-2.18 -4.68,-0.31 0.31,-3.12 1.25,-2.81 2.19,-3.12 2.18,-0.62 1.87,-1.25 0.62,5.62 2.5,0 0.94,-3.12 2.5,-4.99 5.93,-1.25 2.81,-3.12 3.43,-0.94 3.12,0.31 3.74,3.12 0,4.37 0.63,3.12 1.87,4.06 -0.94,2.19 -3.43,1.25 -1.56,3.43 0,3.12 -2.5,0.31 0,1.87 1.25,1.56 0,4.06 -3.43,1.25 -1.56,1.87 -2.81,-0.31 -0.62,-2.81 -3.12,0 -2.18,1.25 -1.56,2.5 0.45,1.51 0,0 0.3,-0.22 0.81,-0.18 z',
64 | },
65 | {
66 | name: '전북',
67 | id: 'north-jeolla',
68 | path:
69 | 'm 129.12429,307.63884 1.31,-0.55 1.48,1.36 4.37,-1.56 7.18,-3.44 0,-8.44 2.01,-0.67 2.68,-2.01 3.69,0.67 3.76,2.27 1.27,-0.38 2.19,2.01 0.31,3.74 2.44,0.2 0.02,1.21 0.51,0.81 2.55,0.18 1.48,-0.72 2.3,-0.23 1.9,-1.15 1.12,0.16 1.73,1.73 5.3,-0.31 -0.62,-2.5 4.36,0.31 0,0 2.42,-2.01 1.14,1.62 0,0 2.96,5.11 0.35,2.77 1.87,4.37 1.25,0 0,0 3.06,-1.72 0,0 0.61,0.16 0,0 0.07,2.18 0,0 0.63,2.81 3.43,0.31 3.12,-0.62 0.94,-1.87 0,0 0.15,-2.21 1.03,-0.18 0,0 1.89,-1 2.54,1.2 1.56,1.25 2.81,-2.81 0,-2.48 0,0 0.31,-0.33 0.79,-0.3 1.05,2.27 0,0 0.67,0.57 0,0 2.26,0.56 0,0 1.17,0.29 0,0 1.71,1.04 0,0 0.15,0.92 2.6,0 0,0 0.36,-0.91 0,0 0.89,-0.33 0,0 2.73,-1.62 0,0 1.37,-0.45 0,0 0.9,0.06 2,2.22 2.74,-2.56 0,0 3.48,5.66 1.23,3.31 -0.27,2.77 -1.01,2.24 0,0 -2.33,1.52 -1.51,2.68 -0.53,1.94 -1.33,0.24 -1.78,1.64 -1.46,0.01 0,0 -1.83,1.15 0,0 -1.3,0.06 0,0 -0.71,-0.5 0,0 -0.45,-0.16 -0.2,0.63 0,0 -0.19,0.59 0,0 -0.66,1.2 0,0 -0.81,2.29 -3.27,3.59 -1.67,1.15 -0.78,4.82 0,0 -0.16,1.92 -0.89,0.79 0,0 -0.94,1.45 -1.91,4.95 0,0 -0.78,4.73 0,0 -1.59,3.28 0,0 0.17,2.32 0,0 2.07,0.67 0.7,0.7 0,0 -0.08,1.86 0.5,1.05 0,0 1.27,2.27 0,0 -0.68,3.34 0,0 0.69,1.93 0,0 1.63,0.43 0,0 0.1,0.54 0,0 -0.56,3.47 -3.7,3.56 -0.82,1.99 -0.33,1.16 0.55,2.87 -2.22,2.3 0,0 -0.23,0.21 0,0 -3.07,-2.65 -3.31,-1.81 0,0 -1.03,-0.92 -3.51,-1.16 0,0 -2,0.11 0,0 -1.75,0.98 -2.95,3.79 -0.63,0.45 -1.12,0.02 0,0 -3.2,-0.37 -2.38,0.7 0,0 -6.15,0.02 -1.13,-0.65 0,0 -1.44,-1.38 -1.93,1.12 0,0 -3.16,-1.35 -1.3,0.83 0,0 -0.96,0.9 0,0 -1.43,0.95 -1.61,0.14 0,0 -2.09,-0.54 0,0 -2.6,-1.97 0.42,-3.61 -1.01,-2.88 0,0 -1.59,0.01 -0.49,-0.68 -0.08,-0.93 1.15,-1.38 0,0 0.15,-2.51 -0.61,-1.91 -1.35,-1.03 -1.81,-0.4 -0.71,0.32 -0.98,1.78 -1,0.65 -0.53,2.08 0,0 -0.14,1.02 0,0 -1.02,0.69 -1.97,-0.57 0,0 -1.04,-0.89 0,0 -2.52,-4.77 -1.1,-1.13 -2.95,-1.86 -3.02,-0.61 -1.57,1.87 -1.08,-0.22 0,0 -1.53,-0.35 0,0 -2.27,0.98 -0.61,0.81 -0.18,1.18 0,0 0.15,3.09 -0.59,0.68 0,0 -1.45,0.95 -0.15,0.68 0,0 0.26,0.77 0,0 0.14,0.96 -0.76,2.01 -2.42,1.22 0,0 -3.14,0.97 -1.53,1.49 0,0 -2.07,0.71 -0.97,-0.43 0,0 -1.11,-0.24 -0.99,0.36 -1.45,1.54 -4.35,0.23 0,0 -0.37,-1.7 -1.72,0 -1.24,-4.06 -1.88,-2.18 -0.15,-2.96 -0.78,-2.66 -1.87,-1.56 0,0 -1.88,-0.62 0,0 -1.94,-0.18 0.02,-0.42 -0.44,-0.13 -0.740004,0.44 -0.73,-0.21 3.310004,-5.62 0.86,-2.57 0.63,-0.25 0.32,-1.39 0.31,-0.09 0.37,1.12 0.68,0.26 0.48,-0.45 -0.5,-0.16 0.26,-0.96 1.79,-1.16 0.99,-0.13 1.21,1.06 0.74,-1.19 1.49,-0.9 2.55,0.32 0.24,1.26 0.23,-1 0.84,-0.87 0.45,-1.7 0.55,0.16 -0.05,-1.22 0.5,0.35 0.94,-0.77 1.6,0.48 1.97,2 0.5,1.06 0.08,-0.71 -0.73,-1.67 0.34,-0.9 -0.97,-0.58 0.15,-0.67 0.45,0.38 0.55,-0.77 -1.39,0.03 0,-0.51 -0.68,-0.61 -0.69,0.09 -0.68,-0.67 -0.29,0.87 -0.71,0.19 -0.76,-0.42 -0.79,0.93 -0.68,-0.03 0.08,-0.48 -0.63,-0.45 -0.42,0.77 -1.76,-0.26 -2.34,0.55 -0.81,-0.32 -1.16,1.09 -0.91,-0.06 -0.35,-1 -0.57,1.06 -1.71,-0.74 -1.1,-2.02 -1.24,0.58 -0.73,-1.64 0.39,-1.39 0.66,-0.51 -0.11,-0.48 -0.73,-0.07 -0.42,-0.48 0.86,-0.32 0.03,-0.55 1.08,0.1 0.86,-1.1 1.47,-0.58 3.34,-3.57 1.84,-1.19 1.15,0.61 1.55,-1.67 0.95,-0.45 1.76,-2.9 1.31,-1.35 -0.13,-3.58 -0.58,-0.74 1.05,-1.61 1.86,0.93 4.63,-0.71 4.49,1.2 2.1,1.74 0.5,2.22 0.84,0.81 0.68,-0.65 -1.23,-0.35 0.02,-1.55 0.58,-0.74 -0.69,-2.9 -4.01,-2.13 -3.28,-2.58 -1.47,-0.29 1.44,-1.48 3.2,-1.23 3.63,0.65 0.55,-0.42 1.13,0 0.92,-1.13 -0.34,-0.97 0.42,-1.13 1.78,-0.55 1.13,-0.87 -0.24,-0.45 -1.39,0.52 -1.05,-0.26 -1.49,0.32 -1.66,1.65 -2.81,-0.29 -2.15,0.77 -3.26,-1 -1.36,1.23 -5.18,-0.29 -0.31,-3.78 0.5,-2.78 -2.08,-0.67 -2.47,0.19 -0.02,-1.1 -1.89,-1.48 0.73,-0.91 2.76,-0.16 0.66,0.39 1.49,-0.58 0.95,0.16 0.21,0.84 0.71,-0.84 0.6,0.32 5.12,-1.13 1.66,-1.23 2.88,1.13 1.11,-0.68 0.6,-1.19 0.32,-1.33 z',
70 | },
71 | {
72 | name: '세종',
73 | id: 'sejong',
74 | path:
75 | 'm 181.53429,232.61884 1.56,2.18 -0.31,2.81 -2.19,0.63 2.81,3.43 0,2.81 0.45,1.35 3.34,0.2 -0.09,1.45 -0.83,1.83 1.08,1.14 -1.86,6.1 0.57,-0.78 0.4,-0.33 0.71,0.14 0.62,0.86 0.31,0.04 -0.33,3.29 -0.94,2.81 -3.43,1.56 -0.91,0.04 -2.52,0.58 0.31,8.74 -2.18,2.49 -1.71,-2.05 -1.75,-1.35 -1.22,-3.1 0.14,-4.05 -0.27,-2.83 -1.35,-3.91 -2.7,-1.48 -1.88,-2.56 -0.14,-2.02 1.08,-2.43 0,-3.1 -0.13,-3.5 -0.27,-3.37 0.67,-2.43 -0.27,-3.1 -0.54,-2.02 -1.08,-2.02 0.41,-1.76 2.69,-1.08 2.57,0.81 1.48,1.62 2.69,1.62 2.57,0.94 z',
76 | },
77 | {
78 | name: '서울',
79 | id: 'seoul',
80 | path:
81 | 'm 133.25429,127.63884 0.58,0.33 0,0 3.8,3.83 -0.1,1.78 0.55,0.52 0.32,3.1 0.57,0.53 0.56,-0.1 2.41,-1.25 2.57,5.7 0.53,0.13 1.81,-0.73 1.21,0.5 2.39,-0.1 4.17,-2.31 3.08,-0.29 0,1.71 0.68,1.22 3.65,-2.08 2.99,-0.26 1.68,-1.58 -0.45,-0.56 0.43,-0.59 0.63,0.16 0.63,-0.46 1.28,-1.72 0,-0.59 -1.18,-0.49 0.4,-2.51 0.99,-0.99 1.76,-0.62 0.45,-0.53 -0.66,-2.41 -0.79,-1.15 -1.15,0.82 -2.47,0.6 -1.18,0.76 -1.18,0.16 -0.37,-0.59 -0.03,-1.19 1.45,-4.16 -1.11,-1.71 -0.07,-1.85 -0.9,-1.16 -0.1,-4.52 -0.92,-1.09 -1.18,-0.2 -2.63,0.33 -2.33,-0.53 -0.92,0.99 -1.26,0.53 -0.56,0.53 0.03,1.19 -1.1,1.06 -0.08,3 -1.1,0.79 -5.15,0.4 -0.84,1.05 -0.16,3.11 -0.63,0.36 -3.62,1.61 -2.42,-1.15 -1.39,-1.72 -1.26,-0.32 -1.02,2.47 -1.16,0.99 z',
82 | },
83 | {
84 | name: '충남',
85 | id: 'south-chungcheong',
86 | path:
87 | 'm 92.784286,270.55884 -0.1,0.91 -1.31,-0.62 -0.47,0.68 -0.24,-1.39 1.08,-0.75 0.03,-1.33 0,0 0.66,0 0.21,1.69 0.95,0.71 -0.81,0.1 z m 7.280004,-4.78 -0.730004,0.78 1.160004,0.58 1.58,0.16 -0.16,0.94 -1.42,-0.13 -0.18,-0.62 -1.650004,-0.45 -1.63,0.03 -0.39,-0.58 -1.21,0.42 -0.66,-0.26 -0.03,-1.07 0.74,-0.55 1.44,0.49 1.08,0.91 -0.52,-1.43 0.95,-0.46 0,0 1.02,0.1 0.16,1.04 0.450004,0.1 z m -5.750004,-16.7 0.26,0.33 1.16,-0.03 0.81,0.94 0.21,1.11 -0.53,0.36 -0.02,0.55 1.1,-0.32 -0.16,1.82 0.87,1.43 -1,1.43 0.79,0.2 0.71,1.43 0.87,0.13 -0.21,0.98 0.47,1.17 -1.29,1.01 0.58,1.36 -0.84,0.13 0.21,-0.46 -0.34,-0.45 -0.5,0.29 -0.16,-1.17 -1.21,0 0.37,-0.75 -1.92,-0.03 -0.05,0.58 -0.92,0.52 -0.5,-0.62 -0.42,0.07 -0.13,-1.01 -0.68,0.03 0.55,-1.88 -2,0.2 -0.45,-0.58 0.24,-0.65 -0.37,-0.98 0.76,-1.72 -1.37,0.39 0.11,-0.49 0.68,-0.29 0.29,-2.11 -0.05,-0.65 -0.6,-0.29 0.29,-0.91 -0.52,-0.19 0.32,-5.21 -1.44,-1.85 -0.21,-1.53 0.89,-0.85 0.05,-0.81 2.78,-2.12 0,0 0.42,-0.16 0.92,0.78 -0.05,1.14 0.79,0.62 -0.18,0.75 0.42,0.1 -0.05,1.14 -1.36,0.46 -0.16,0.52 1.47,0.68 0.34,1.76 -0.24,1.5 1.02,1.37 -0.1,0.59 -0.72,0.24 z m 6.770004,-61.83 -2.810004,0.3 0.29,-0.98 -0.6,-1.08 0.26,-0.72 0,0 2.360004,0.39 0.53,0.82 -0.03,1.27 z m 4.52,-2.55 2.02,0.72 0,0 1.55,2.26 2.21,0.36 6.8,4.06 1.6,0.39 4.75,-0.16 0.37,0.79 7.51,2.03 0.29,0.43 -0.37,0.95 1.58,2.68 -0.31,0.43 0.42,0.79 0.37,0.56 0.29,-0.33 0.47,0.16 0.53,3.37 0.95,1.08 0.03,0.56 3.57,0.65 1.71,-0.78 2.78,-0.28 0.99,-0.06 0.83,-1.21 1.64,-0.81 7.55,1.76 0.83,-0.61 0.94,0.01 3.17,-1.16 3.01,-2.07 2.58,-0.08 2.99,1.43 1.34,1.8 1.95,1.59 5.1,0.7 0.91,2.42 2.84,1.92 0.23,2.66 1.48,0.71 0.53,0.07 0.06,0.42 -0.16,2 1.08,0.48 2.88,0 3.12,2.18 1.25,3.75 -1.56,1.87 -3.74,-0.31 -4.99,7.8 -2.44,0.2 -2.56,-0.94 -2.7,-1.62 -1.48,-1.62 -2.56,-0.81 -2.7,1.08 -0.4,1.75 1.08,2.02 0.54,2.02 0.27,3.1 -0.67,2.43 0.27,3.37 0.14,3.51 0,3.1 -1.08,2.43 0.14,2.02 1.89,2.56 2.7,1.48 1.35,3.91 0.27,2.83 -0.13,4.04 1.21,3.1 1.75,1.35 1.71,2.06 0.31,4.06 2.18,1.87 0.31,3.43 1.56,2.19 2.5,0.94 0.94,3.12 1.25,0 0.94,-2.18 0.63,-4.99 -0.31,-3.12 1.56,0 0.62,1.56 0,1.87 2.18,3.74 3.75,2.19 2.18,-2.81 3.35,-2.18 2.8,0.98 1.03,0.85 2.8,-0.27 1.87,3.12 0.31,3.12 -1.25,2.81 0.31,2.81 2.18,1.87 1.56,3.12 0.93,2.8 -0.31,0.33 0,2.49 -2.81,2.81 -1.56,-1.25 -2.6,-1.28 -1.89,1 -1.03,0.18 -0.16,2.21 -0.94,1.87 -3.12,0.62 -3.43,-0.31 -0.62,-2.81 -0.07,-2.18 -0.61,-0.16 -3.06,1.72 -1.25,0 -1.87,-4.37 -0.35,-2.77 -2.96,-5.1 -1.13,-1.63 -2.42,2.02 -4.37,-0.31 0.63,2.5 -5.3,0.31 -1.73,-1.73 -1.12,-0.16 -1.9,1.15 -2.3,0.23 -1.48,0.72 -2.55,-0.18 -0.51,-0.81 -0.02,-1.21 -2.43,-0.19 -0.31,-3.74 -2.19,-2.01 -1.27,0.38 -3.76,-2.27 -3.68,-0.67 -2.68,2.01 -2.01,0.67 0,8.44 -7.18,3.43 -4.37,1.56 -1.48,-1.36 -1.31,0.56 -0.68,-0.33 -0.31,1.03 -1.08,1.13 -4.28,-1.07 -1.13,0.61 -0.73,-0.74 0.42,-1.07 -0.47,-1.07 0.68,-0.06 0.08,-0.42 -2.26,-2.59 -1.05,0.1 -0.29,-2.81 -1.05,0.19 0.68,-1.03 0.73,0.42 1.1,-0.81 -0.08,-0.52 -1.18,0.32 0.03,-0.84 -1.05,-0.49 -0.81,0.71 -1.34,-2.94 -2.55,-2.2 -1.39,1.39 -0.13,-0.91 -0.79,-0.94 -2.63,-0.94 -1.18,0.32 -0.29,2.4 -1.08,-0.97 0.03,-2.75 0.81,0.45 1.55,-0.23 0.76,-0.97 -0.18,-2.23 1.1,-1.59 0.39,-0.03 -0.89,-4.5 0.66,-0.78 0.32,-1.75 0.71,-0.13 0.05,-0.49 -0.58,-0.97 -0.73,-0.29 0.5,-0.32 -1.18,-2.24 -0.92,0.13 -0.42,-1.62 -1.23,-1.59 0.45,-0.52 0.84,0.42 0.63,-0.81 2.23,-0.78 0.29,-0.68 0.92,-0.55 2.6,0.23 -3.26,-0.68 -4.73,-3.28 -1.78,-0.03 0.42,-3.21 0.92,-1.92 1,-0.23 1.39,-1.43 1.26,0 0.66,-1.2 0.68,0.1 0.18,-0.39 1.5,0.1 0.68,-2.76 1.26,0.72 1.44,-0.26 1,-1.24 -2.23,0.78 -1.44,-0.91 -0.5,0.49 -0.5,-0.59 -0.1,0.75 -2.1,1.37 -0.31,1.17 -0.79,0.06 -0.31,1.4 -2.62,1.33 0.26,-1.2 -1.23,-1.3 0.11,-1.79 -0.66,-1.01 0.24,-3.41 0.71,-0.26 0.26,-0.98 1.05,-0.88 2.15,0.81 1.29,1.53 0.76,-0.1 -1.65,-1.56 -1.76,-0.68 -0.73,-0.75 -1.5,1.27 -0.23,-1.01 -2.13,-1.89 0.66,-1.69 -0.73,-3.03 -1,-1.2 -3.460004,-1.4 -0.55,-0.94 -3.62,-0.59 -0.68,-0.65 -2.34,1.4 -1.58,1.53 -0.58,1.56 -0.6,-0.59 -1.58,1.86 -0.21,-0.91 -0.81,-0.81 0.66,-1.04 -0.1,-1.89 1.05,-0.75 -0.13,-3.16 -1.08,-2.31 -0.55,-0.42 -0.8,0.33 -0.92,-0.23 -0.08,-0.75 0.4,-0.36 -0.53,-0.33 -0.1,-0.72 0.11,-0.69 1.02,-0.68 -0.21,-1.44 0.29,-0.78 0.47,0.13 0.34,-0.42 -0.39,-0.75 -0.87,0.07 -1,1.47 -2.1,-0.1 -0.18,0.98 0.6,0.49 -0.1,0.36 -0.76,0.23 0.13,0.59 -2.31,0.23 0.13,0.65 -0.94,0.23 0.18,0.46 -0.45,0.98 -0.79,0.26 -0.31,-0.75 -0.89,0.39 -1.92,-0.29 -0.6,-2.02 0.34,-0.29 -0.56,-0.57 0.26,-0.42 1.18,-0.29 -0.29,-0.39 0.95,-0.78 1.29,0.36 1.47,1.11 0.81,0.07 0.97,-0.72 0.58,-1.21 -0.89,-0.65 -1.05,0.65 0.05,-0.65 1.21,-1.69 -1.23,0.59 -1.92,-1.08 1.02,-1.34 -0.87,0.2 -0.31,-0.42 -1.5,-0.06 -0.87,0.55 -1.55,-0.85 0.13,0.91 0.87,0.75 0.16,2.02 -2.68,2.68 -0.42,0 0.13,-0.78 0.53,-0.29 -0.34,-1.17 1.13,-1.63 -0.39,-0.62 0.31,-0.42 -0.16,-0.29 -0.71,0.29 -0.34,-0.56 0.24,-0.68 -0.39,-0.06 0.18,-0.49 -0.81,-0.46 -0.08,-0.56 1.81,-0.36 -0.03,-1.27 0.42,0.52 1.05,-0.85 0.42,-1.57 -0.5,0 -0.24,-0.65 0.68,-0.39 -0.03,-0.56 0.66,-0.06 0.18,-1.18 -1.29,-1.21 0.92,-0.03 -0.58,-1.04 0.63,0.29 0.47,-0.75 0.08,1.08 1.02,0.06 -0.5,1.31 0.63,0.59 -0.18,1.83 0.24,0.2 0.45,-0.72 1.29,3.33 0.63,0.36 -0.53,-2.64 -0.84,-0.49 -0.26,-1.21 1.1,-0.1 -1.42,-1.57 1.13,-0.78 0.95,-1.96 -1,0.07 0.05,-1.21 -0.66,0 -0.08,-0.49 0.89,-0.69 -0.52,-0.69 -0.92,-0.16 0.1,-0.36 1,-0.29 0.45,0.52 0.42,-0.1 0.29,-0.56 -0.29,-0.33 0.68,-0.39 -0.18,-0.98 0.92,0.79 0.55,-0.82 1.55,-0.39 0.26,-0.69 0.5,0.26 0.97,-0.36 -0.45,0.69 2.68,1.31 1.02,-0.23 -0.37,-1.08 0.84,-1.31 -0.29,-3.7 -0.76,-1.44 0.42,-0.72 0.87,0 0.53,-0.98 0.53,-0.1 0.26,0.75 -0.45,0.82 -1.02,0.26 0.81,1.05 0.63,-0.36 0.37,0.26 -0.95,1.31 0,3.24 0.66,0.46 0.13,0.75 0.87,0.26 0.18,1.6 0.97,0 -0.13,0.56 -1.23,0.03 -0.39,0.36 -0.03,0.82 -0.97,1.21 -0.03,1.01 -0.62,0.62 -0.08,1.18 2.1,0.46 -0.16,0.69 -1.92,0.95 -1.13,-0.03 -0.23,0.75 0.68,0.42 -0.21,1.31 0.5,0.62 0.53,-0.52 -0.13,-0.59 0.37,-0.26 0.26,0.52 0.32,-0.2 -0.31,-0.62 0.34,-0.42 0.76,0.43 0.87,-0.88 0.53,0.59 0.6,-0.03 0.08,-0.39 -0.94,-0.75 -0.1,-0.75 0.39,-0.42 -0.97,-0.75 1.13,-2.68 0.76,0.46 0.84,-0.16 -0.42,1.7 1.26,1.73 0.81,0.1 -0.89,-1.86 1.44,-1.24 0.03,-1.34 -0.63,-0.88 1.23,-0.72 1.94,0.26 -0.16,-1.54 0.71,0.29 0.11,-0.75 0.97,0.39 0.29,-0.49 1.1,-0.06 0.13,-0.36 -0.45,-0.56 -1.71,-0.26 0.21,-0.78 -0.55,-0.36 -0.08,-0.29 0.87,0.2 0.53,-0.52 -0.03,-1.5 -0.92,-0.43 0.05,0.46 -0.97,0.1 -0.76,0.79 -0.63,-0.56 -0.24,-1.28 -1.18,-0.26 -0.94,0.92 -0.26,-0.26 0.45,-1.08 -0.92,-0.16 -0.18,-1.15 -1.44,0.16 0.21,-1.08 2.47,0 0.71,1.11 0.45,-0.98 1.1,0 0.11,-0.36 -0.13,-0.33 -0.87,0.16 0.1,-0.72 -0.55,-0.52 -0.81,0.49 -0.18,-0.49 -2.97,-0.23 -0.31,-1.83 0.71,0.36 1.65,-0.88 0.32,-0.79 0.81,0.52 1.76,-0.36 0.34,-0.69 0.37,0.49 3.6,-0.1 2.680004,1.34 1.26,-0.65 -1,-1.9 0.42,0.1 2.18,-2.52 -0.53,-0.56 0.71,-1.38 0.5,0 0.37,-0.74 z',
88 | },
89 | {
90 | name: '경남',
91 | id: 'south-gyeongsang',
92 | path:
93 | 'm 240.12429,325.42884 1.14,0.9 1.56,-0.01 0,0 0.71,0.37 0,0 0.31,2.61 0.95,0.56 0,0 2.14,0.33 0,0 1.78,0.22 0.58,1.13 1.15,0.63 0,0 4.44,0.78 0,0 2.55,-0.26 0,0 1.49,0.75 0,0 1.54,0.75 0.49,0.74 0.78,2.88 0,0 0.66,0.5 0,0 2.07,0.99 0.66,1.15 -0.23,0.61 2.52,1.49 0.94,1.79 -0.24,2.21 -1.82,3.97 0,0 -0.27,1.66 0.89,1.64 0,0 3.8,1.49 2.25,-0.3 0,0 1.19,-0.31 0,0 2.96,-1.09 2.2,1.09 2.29,0.27 0,0 2.24,2.18 0,0 1.66,1.24 2.46,-0.05 3.49,-2.5 0,0 1.52,-0.38 0,0 2.42,0.89 1.08,-0.59 0.81,-3.59 0.78,-1 0.3,-0.22 0.98,0.01 0,0 0.69,1.28 -0.47,3.05 0,0 0.79,2.37 0.9,1.29 2.12,1.69 0,0 0.94,1.08 1.39,0.7 0,0 5.88,-1.1 0,0 3.44,0.77 4,1.97 0,0 1.92,0.57 1.57,-0.56 3.95,-3.27 1.01,0.3 0,0 1.14,-0.44 1.81,-2.29 0,0 2.02,-1.42 0,0 2.1,0.04 0,0 1.34,0.1 1.6,0.77 0,0 1.29,0.71 0,0 2.42,0.87 0,0 0.96,-0.35 0,0 0.77,-0.79 0,0 1.47,2.43 0,1.47 -1.2,1.05 0,0 -2.23,1.89 0.34,4.83 2.23,1.05 2.75,0 0,0 2.4,0.21 3.26,3.35 0,0 3.43,3.98 2.23,1.89 0,0 3.09,0.21 0,0 1.27,1.55 0,0 -2.95,2.71 -0.57,1.86 -4.87,0.57 -1.72,2.58 -0.86,2.72 -1.03,1.34 -1.84,-0.32 -3.95,2.48 -0.98,1.17 -0.79,0.2 -0.86,2 -1.43,1.58 -4.15,0.14 -3.86,2.43 -2.29,0.29 -0.43,5.01 -4.29,1.15 -2.43,1 -0.2,0.47 0,0 -1.81,2.23 -0.97,-0.73 0.16,1.25 -1.21,0.1 -1.05,-0.77 -0.66,1.05 -0.47,0 -0.37,-0.73 -0.87,0.19 -0.05,-0.93 -1.23,-0.03 0.11,0.51 -0.71,0.32 -0.71,-0.73 -0.21,-0.48 0.89,-0.41 0.82,-1.31 -0.66,-0.77 0.05,-1.06 -0.87,-0.29 0.21,-0.99 -1.68,0.8 0.52,1.76 -1.18,0.96 -0.34,-1.53 -1.78,-0.73 -0.16,-0.77 0.45,-0.58 -1.84,0.32 -0.42,1.73 -0.63,-0.83 -0.84,0.26 0.76,-1.09 -0.66,-1.02 0.19,-0.86 -0.55,0.23 -0.97,-1.31 -0.21,-3.23 1.63,-1.22 1.44,-0.16 0.87,-0.99 -1.23,0.74 -2.97,0.61 -2.21,2.59 0.47,1.25 0.92,0.35 -0.63,0.61 0.34,0.7 0.58,-0.32 0.55,0.45 0.95,2.11 -0.34,0.54 -1.02,0.29 -0.81,-0.29 -0.13,0.7 1.02,0.35 0.81,-0.51 0.68,0.1 -0.31,0.93 0.37,2.46 2.44,1.95 0.03,0.29 -2.28,0.35 0.79,0.96 1.37,-0.32 0.84,0.32 0.03,0.38 -2.81,1.15 -3.13,0.61 0.55,-0.89 0.87,-0.25 0.34,-1.05 -0.34,-0.06 -0.42,0.9 -0.31,-0.41 -1.65,0.22 0.58,1.37 -0.47,0.32 -0.74,-0.16 -1.29,-1.82 2.23,-0.16 -0.31,-1.21 0.97,-0.67 0.89,-0.06 0,-0.38 -3.78,-1.15 0.6,-0.73 -0.37,-0.35 -0.5,0.32 -0.08,-1.44 -1.02,1.82 -0.52,-0.16 -1.02,0.8 -0.63,0.03 -0.86,-0.93 -1.02,-0.29 0.1,0.83 -1.02,0.42 -1.42,-0.83 -0.87,-0.06 -0.21,1.06 2.97,1.72 0,0.39 -0.42,0.35 -0.66,-0.74 -0.42,0.96 -2.1,0.19 -1.31,1.95 -1.15,0 0.05,-0.83 -0.39,-0.06 -1.1,0.99 -1.55,0.38 -0.08,0.54 -0.76,-0.41 0.71,1.6 -0.84,0.67 -0.39,-0.19 0.13,0.89 -1.13,0.86 0.03,0.67 0.84,-0.73 1.89,-0.35 0.11,-1.76 1.5,-0.89 4.07,-1.02 -0.58,-0.99 0.39,-1.02 0.79,-0.19 0.39,0.83 0.89,-0.51 0.08,-0.93 1.26,1.31 -0.45,0.86 0.39,0.35 -0.26,0.9 -1.34,-0.35 -0.44,0.29 0.71,0.51 1.31,0.16 0.39,0.57 -0.42,0.83 1.87,0.9 0.11,0.61 -0.92,1.24 -0.37,-0.64 -0.47,0.1 0.13,1.18 -0.71,0.1 -0.03,0.67 -1.29,-0.51 0.34,0.89 -0.39,0.13 -2.18,-0.73 -3.02,-0.06 0.03,1.44 0.87,-0.51 1.08,0.1 1.21,0.38 0.24,1.05 -1,1.4 -0.94,0.54 0.58,0.26 0.08,1.09 -0.5,0.61 1,0.89 -0.66,0.45 0.08,1.31 -1.1,0.77 0.79,0.77 -0.6,0.77 0.39,1.53 -0.21,1.24 0.92,-0.67 0.26,-0.51 -0.34,-0.13 0.08,-0.51 1.44,-1.43 -0.13,-0.7 -0.63,-0.45 0.16,-0.32 1.23,-0.1 0.66,1.12 -0.08,0.57 0.45,0 0.08,0.83 0.81,-0.1 0.16,0.35 -0.76,2.29 -0.68,-0.22 -0.37,-1.11 -0.31,0.92 0.32,1.02 -0.87,-0.13 0.63,0.86 -0.13,1.4 -1.68,1.02 -0.81,-0.29 -1.44,0.64 2.76,0.64 0.24,0.92 -0.26,0.57 0.24,1.5 -0.89,-0.29 -0.1,0.45 0.81,0.86 -0.58,0.54 -1.31,-0.25 1.52,1.21 -1.02,1.34 -0.13,0.89 -1.68,-0.09 -0.24,-0.64 -0.58,0.35 -0.08,-1.69 -0.21,-0.19 -0.6,0.57 -0.21,-0.54 0.5,-0.64 -0.84,-1.21 -0.63,0.96 -0.18,-0.6 -0.94,-0.16 0.79,-0.89 0.71,-0.06 -0.37,-0.54 0.31,-0.73 -2.99,-1.21 -1.05,0.96 -0.58,-1.05 0,-0.64 0.34,0.35 0.58,-0.32 -0.24,-1.43 0.5,0.1 0.16,1.02 0.5,-0.29 -0.16,-0.73 0.6,-0.16 0.47,0.35 -0.13,0.57 0.74,0.51 0.63,-0.54 1.23,2.52 -0.18,-1.75 1,0.32 0.95,-0.76 -0.47,-0.29 -0.63,0.61 -0.24,-0.64 -0.55,0.06 0.42,-0.86 -1.31,0.1 0.31,-0.48 -0.68,-0.67 0.76,-0.1 0.97,-1.27 2.26,0.48 0.66,-0.35 -0.34,-0.6 -2.81,0 -0.5,-0.67 0.32,-1.02 -0.37,-0.67 -0.29,0.7 -0.79,-0.41 0.63,1.47 -0.34,0.42 -1.57,-0.32 -0.47,-1.69 -0.21,1.56 -0.66,-0.19 0,-0.83 -0.76,-0.1 0.37,0.61 -0.89,0.19 -0.03,-1.24 -1.08,0.8 -0.63,-1.47 -1.15,-0.86 0,-0.38 1.39,-0.7 2.49,0 0.79,0.48 0.79,-0.35 -0.31,-0.51 0.29,-0.67 -0.68,-0.06 -0.16,-0.25 0.37,-0.16 -0.6,-0.57 0.18,-0.86 -0.47,-1.53 -0.47,0.45 -0.55,-0.25 0.21,-1.08 -0.34,0.16 -0.97,-0.8 0.18,1.18 -0.34,0.13 0.45,0.7 -0.42,0.07 -0.18,0.6 -1.42,0.22 0.47,2.07 -1.42,1.02 -0.71,-0.73 0.03,1.4 -0.58,-0.03 -0.03,-0.67 -0.94,-0.22 0.24,-0.67 -0.63,-0.51 0.73,-1.37 -0.31,-0.67 -0.63,-0.1 -0.37,0.45 -0.66,-0.61 -0.29,0.7 -0.02,-0.86 -0.58,-0.19 -1.05,0.51 -0.58,-0.6 -0.42,0.83 -0.52,-0.41 -0.18,0.45 -0.31,-0.29 -1,0.45 0.79,1.27 -0.5,1.24 0.31,2.45 -1.89,-0.16 -0.66,-1.4 -0.21,1.21 -0.74,0 -0.68,-1.21 -1.6,0.57 -0.87,1.56 -1,-1.85 -1.05,0.26 -0.73,-1.02 0.6,-0.89 0.66,-0.16 0.18,0.54 0.24,-0.8 -4.15,-0.44 -0.1,0.38 -2.07,-0.7 -1.37,-1.24 -0.03,-0.7 -0.92,-1.34 1.81,-1.37 0.37,-0.96 -0.76,-0.38 -0.58,-1.69 1.02,-2.33 -0.42,-0.8 -0.73,0.64 -0.16,-0.51 0.6,-1.02 -0.26,-1.21 0.95,-3.22 1.16,-0.99 -0.63,-0.32 -2.02,1.53 0.21,0.61 -0.92,0.86 0.39,1.05 -0.32,1.53 -0.55,0.61 -1.08,-0.25 -0.34,-0.48 1.18,-0.64 -0.24,-0.7 -0.03,0.45 -0.71,0.42 -0.32,-0.61 -1.73,-0.32 -0.5,1.25 -0.39,0.1 -0.03,0.29 0.87,0 0.24,-0.8 0.84,0.16 -0.16,0.67 1.29,1.06 -0.13,1.09 1.13,0.26 -0.39,2.23 -0.71,-0.41 0.05,1.53 -0.44,-0.19 0.18,-0.51 -0.71,-0.89 -0.45,0.16 0.13,1.15 -0.42,-0.57 -0.42,0.19 0.55,0.73 -0.87,0.45 -1.13,-2.17 -0.79,0.19 -0.47,1.18 -0.45,-0.22 -0.47,0.32 0.5,0.86 -1.5,-0.54 0.37,-0.83 -0.6,0.22 -0.26,-0.64 0.32,-0.51 0.45,0.29 0.08,-1.24 -0.71,-0.19 -0.84,-1.25 -0.47,0.7 0.29,0.73 -0.63,1.4 0.21,0.99 -0.92,0 0.4,1.25 -1,0.13 -0.5,0.99 0.18,0.35 -0.73,0.57 -0.74,0 -0.37,0.77 -1.44,0.19 -0.45,-0.45 -1.05,0.45 -0.24,-1.53 -0.42,-0.25 -0.16,0.64 -0.55,-0.86 -0.42,2.1 -0.5,0.32 -0.47,-0.73 -0.75,0.16 -0.09,-0.45 -0.7,-0.32 0.04,-2.93 -1.58,-4.11 0,0 -1.74,-1.33 0,0 -1.18,-1.87 -1.62,-0.69 -0.77,-1.24 0,0 -1.09,-1.05 0,0 -0.19,-2.9 -3.04,-3.64 -2.22,-1.13 -1.3,-1.69 -0.91,-9.22 -2.66,-2.99 0.02,-1.56 0.79,-0.7 0,0 0.23,-0.2 0,0 2.22,-2.31 -0.55,-2.87 0.34,-1.16 0.82,-1.99 3.7,-3.57 0.56,-3.46 0,0 -0.1,-0.55 0,0 -1.63,-0.43 0,0 -0.69,-1.93 0,0 0.69,-3.34 0,0 -1.27,-2.27 0,0 -0.5,-1.05 0.08,-1.86 0,0 -0.69,-0.7 -2.08,-0.67 0,0 -0.17,-2.32 0,0 1.59,-3.28 0,0 0.79,-4.74 0,0 1.91,-4.94 0.94,-1.45 0,0 0.89,-0.8 0.16,-1.92 0,0 0.78,-4.82 1.67,-1.14 3.27,-3.59 0.81,-2.29 0,0 0.67,-1.21 0,0 0.18,-0.58 0,0 0.21,-0.64 0.44,0.17 0,0 0.71,0.49 0,0 1.31,-0.05 0,0 1.83,-1.15 0,0 1.46,-0.01 1.78,-1.65 1.32,-0.24 0.54,-1.94 1.51,-2.69 2.33,-1.51 0.13,1.94 0.3,0.77 z m 85.94,91.96 0.4,0.06 0.11,1.37 1.02,-0.29 0.47,1.76 -1.63,3.42 0.66,0.8 -0.58,1.44 -0.73,0.41 0.26,-0.6 -0.76,0 0,-0.77 -0.34,-0.19 0.13,-0.8 0.69,-0.41 -2.05,-0.89 -0.08,-0.38 0.66,0.06 0.37,-0.48 -0.76,-0.61 0.45,-0.19 -0.05,-0.67 -0.52,-0.7 -0.76,-0.13 -0.13,-0.7 0.87,-0.29 0.03,-0.38 1.58,-0.1 0.13,-0.67 0.56,-0.07 z m -14.31,3 0.73,0.29 0.45,0.86 0.76,-0.1 -0.05,-0.54 0.53,0.51 0.79,0 0.89,1.47 -0.87,1.66 -0.55,-0.45 -0.5,0.35 -0.1,0.38 0.52,0.19 0.08,0.48 -1.37,0.06 0.18,0.61 0.61,-0.09 -0.52,1.15 0.13,1.09 0.66,0 0.4,0.89 0.89,0.03 -0.18,0.83 0.37,0.77 0.66,0.19 0.13,1.15 -0.42,0.22 -0.44,-0.32 0.03,2.17 0.53,0.77 -0.37,0.51 -0.89,-0.29 0.63,1.31 -0.97,0.16 -0.34,0.7 -0.68,0.29 -0.05,1.05 1.45,0.29 -0.45,0.64 0.34,0.26 0.76,-1.47 1.1,-0.76 0.97,0.57 1.18,-1.05 -0.87,1.21 0.16,0.48 -0.58,0.1 0.45,1.24 -0.66,0.7 -0.94,-0.54 -0.26,0.26 1.16,2.39 -1.13,0.28 -0.58,-0.99 -1.6,1.05 0.03,0.89 0.63,0.54 0.87,-1.02 0.74,0.54 0.11,0.57 -0.71,0.51 2,3.37 0.03,0.77 -0.5,0.1 -0.5,-0.76 -1.89,-0.19 -0.02,-0.41 0.58,-0.38 -0.76,-1.37 -0.97,0.64 0.11,1.21 -0.29,0.06 -0.68,-0.19 0.34,-0.48 -0.13,-0.76 -2.07,-0.45 -0.24,2.29 0.71,0.86 -1.44,1.27 -1.18,-0.44 -0.73,1.78 1.39,2.39 1.97,-0.25 0.73,0.45 0.13,0.41 -0.63,0.13 0.03,0.86 -0.52,-0.83 -1.42,-0.51 -0.39,0.64 -1.18,-0.19 -0.92,0.57 -0.18,-0.7 -0.47,0.76 0.84,1.21 0.81,0.22 0.24,0.54 -0.39,0.38 -0.63,0.03 -0.58,-0.51 -1.5,1.46 -1.81,-0.92 -1.29,0.76 -0.16,-0.54 0.5,-0.98 0.74,-0.1 -0.29,-0.67 1.76,-0.48 0.32,-0.51 -0.58,-0.7 -1.36,0.06 -0.89,-0.48 0.03,-1.27 0.45,-0.51 -0.26,-0.67 2.05,-0.16 -0.05,-0.44 -0.81,-0.32 0.5,-0.86 -1.42,0.29 -0.71,-0.35 -1.24,1.4 -0.76,-0.19 -0.08,-0.89 1.42,-1.4 -1,-0.16 -1.39,1.56 0.24,-1.05 -0.66,-0.38 0.97,-0.16 0.24,-0.54 2,0.03 1.18,-0.51 0.03,-2.29 1.05,-0.86 -0.08,-0.76 -0.71,0.19 -0.18,-0.86 -0.66,-0.19 -0.16,-0.48 1.05,0.32 0.03,-0.7 -1.44,-0.83 -0.97,1.34 0.16,1.15 -2.34,-0.29 -0.21,0.7 -0.76,-0.45 -0.47,0.64 0.37,0.73 -0.76,-0.25 0.37,0.92 -0.66,0.77 -0.6,-0.03 -0.13,-0.99 -0.81,-0.7 0.68,-0.86 -1.21,-0.16 -1.26,-0.92 -0.37,-0.89 0.26,-0.35 -0.63,-0.38 0.37,-0.35 -0.52,-1.75 0.42,-1.27 0.76,-0.54 0.71,-1.34 0.82,-0.06 -0.39,-0.7 0.81,0.35 -0.47,-0.8 0.6,0.41 0.84,-0.22 -0.03,-0.64 0.95,-0.92 0.92,0.19 0.97,0.86 0.03,0.54 1.94,1.21 0.92,-0.16 0.05,-0.41 -0.6,-0.51 1.44,-0.77 0.53,0.83 0.53,-0.25 0.21,0.67 0.79,-0.38 0.68,1.43 1,0.32 0.05,-0.73 -0.89,-1.47 0.26,-0.64 -1,0.29 0.26,-1.05 -0.71,-0.1 -0.79,-1.88 -0.92,-0.29 0.34,-1.05 0.42,0.41 0.53,-0.57 -0.13,-1.37 0.74,-0.51 0.47,0.29 -0.5,1.09 1.13,-0.64 1.47,0.29 -0.03,-0.64 0.89,0.89 0.74,0.16 0.29,-0.32 -0.55,-0.22 0.11,-1.12 0.5,-0.89 0.58,-0.22 -0.5,-0.06 -0.05,-0.67 1.05,-0.26 -0.5,-0.8 0.74,0.35 0.34,-0.48 0.4,0.99 0.6,0.03 -0.73,-1.31 0.84,-0.16 -0.1,-0.57 -0.42,0.42 -0.89,-0.29 0.39,-1.66 0.4,-0.06 -0.03,-1.28 0.89,-0.13 -0.87,-0.57 0.13,-0.34 z m -2.81,2.17 0.47,1.25 -0.66,1.24 -0.05,0.42 0.58,0.16 -0.63,0.06 -0.05,1.72 -1.73,0.38 0.29,-0.41 -0.79,-0.29 -0.39,0.89 -0.76,0.19 0.21,-1.4 0.45,-0.22 0.18,0.32 0.74,-0.92 -0.08,-0.29 -0.92,0.03 0.11,-0.51 1.58,-0.03 -0.23,-1.12 0.63,-0.77 0.52,0.38 0.53,-1.08 z m -71.45,8.65 0.55,0.54 0.89,-0.03 0.08,0.45 0.47,-0.35 0.21,0.67 0.18,-0.8 0.63,0.29 -0.39,0.64 0.71,2.13 -0.47,1.56 0.16,1.24 -0.58,-0.03 -0.95,0.96 -0.71,-0.1 -0.34,1.5 1,2.23 0.63,0.45 -0.58,0.92 1.47,1.05 0.71,-0.29 1,0.67 0.16,2.13 0.92,0.45 0.79,-0.19 0.34,-0.32 -0.68,-0.54 1.81,-0.7 -0.1,-0.67 1.23,-0.7 2.68,0.19 0.05,-0.32 1,-0.16 0.39,0.83 1.08,0.57 0.24,-0.38 1.18,0.48 0.55,0.96 -0.47,0.92 0.39,0.45 -0.45,0.32 -0.73,-0.25 -0.13,0.64 0.6,0.32 -0.76,1.21 0.87,3.53 -0.26,0.7 -0.66,0.19 -1.24,1.31 -0.18,0.83 2.49,1.78 -0.66,-0.32 -0.03,0.45 -0.6,0.06 -0.39,0.61 -0.73,-0.13 0.13,-0.48 -0.87,-0.03 -0.24,0.79 -0.49,-0.15 0.66,-1.94 -0.94,-0.6 -0.79,0.29 0.31,0.7 -0.24,0.38 -0.47,0 -0.26,-0.51 -0.79,0.32 -0.34,-0.83 -0.47,0.29 0.39,0.7 -0.39,0.45 -1.1,-0.32 -1.47,0.26 -0.39,-0.86 0.47,-0.19 -0.05,-0.48 -0.66,-0.22 -0.6,-2.54 0.39,-2.1 0.66,-0.89 -0.42,-0.54 -2.1,0.19 -2.26,1.15 0.71,3.69 -0.5,0.73 -1.63,0.6 -2.99,-0.64 0.42,-0.73 -1.08,-0.41 0.53,-0.54 -0.34,-0.67 -1.5,-0.1 -0.16,-0.86 0.58,-0.13 0.21,-0.6 -0.26,-0.54 1.08,-0.25 -0.6,-2 -0.73,-0.26 -0.37,-0.7 0.24,-1.43 -0.84,-0.32 0.05,-0.73 -1.39,-1.85 -0.58,-2.83 0.97,-0.89 -0.21,-0.73 0.29,-0.35 0.97,-0.06 -0.18,-0.89 0.6,-0.92 -0.34,-0.32 1,-0.54 0.18,-0.86 0.39,0.61 1.65,-0.22 -0.97,-1.27 0,-0.86 0.53,0 -0.42,-0.7 1.08,-0.38 -0.08,-0.57 0.5,-0.67 2.15,-0.6 z m 12.95,2.77 0.24,0.7 -0.71,1.69 -0.89,0.83 -0.55,3.15 1.29,0.29 -0.13,-2.07 1.31,-1.75 1,0.13 0.21,1.59 0.6,-0.26 1.08,1.31 -0.13,1.4 -0.76,0.25 -0.34,0.8 0.76,-0.32 0.26,0.73 -0.39,0.45 1.45,0 0.03,0.7 0.89,0.26 0.16,0.99 -0.87,0 -0.5,-0.86 -0.73,0.6 -0.97,-0.95 -0.79,0.32 -2.28,-1.53 -0.31,1.21 -1.39,0.32 -1.63,-0.06 -1.65,-0.83 0.26,-0.35 -0.76,-0.73 -0.24,-1.18 0.18,-0.96 1.31,-0.83 0.11,-0.83 1.16,-0.92 0.05,-1.05 0.68,-0.96 1.76,-1.05 0.58,0.19 0.65,-0.42 z m 16.07,7.14 2.31,0.99 0.76,0.8 -0.26,0.32 -2.23,-0.1 -0.58,0.41 -0.47,1.24 -0.97,0.38 -0.55,-0.76 0.42,-0.54 -1.29,-0.32 -0.29,-1.34 3.15,-1.08 z m 3.46,2.2 1.26,1.98 1.5,0.89 -0.55,0.8 -2.02,-0.19 0.58,1.15 -0.31,0.73 -0.47,-0.76 -1.26,0.03 -0.03,-0.79 -1.26,0.06 -0.13,-0.38 0.69,-0.16 -0.19,-0.32 -1.36,-0.38 0.16,-0.8 0.39,0.41 0.81,-0.03 -0.66,-0.6 0.87,-1.24 1.98,-0.4 z m 23.4,2.67 0.1,0.32 -0.71,0.38 0.37,0.41 0.1,-0.45 0.42,0.03 -0.24,0.54 0.68,0.77 0.11,2.13 1.21,-0.25 0.55,0.83 -0.32,1.18 -1.89,1.11 -0.66,-0.51 -1.34,0.06 0.37,-0.25 -0.37,-0.64 0.58,-0.25 -1.34,-1.78 0.32,-0.54 -0.08,-1.75 0.53,0.57 -0.05,1.21 0.76,-0.38 -0.16,-1.05 1.13,0.64 -0.68,-1.02 -0.87,0.25 -0.29,-0.73 0.29,-0.83 1.48,0 z m -22.61,18.9 1.21,0.95 0.66,-0.22 1,0.83 -0.24,0.57 -0.76,0.13 0.68,0.32 0.26,0.64 0.95,-1.65 1.34,-0.03 -0.55,0.54 0.29,0.38 -0.81,0.45 0.16,0.92 -1.65,-0.1 -0.08,-0.48 -0.76,-0.28 -0.68,0.89 -1.08,0.03 -0.16,0.92 -0.89,-0.16 -0.26,-0.57 1.08,-0.19 0.05,-0.51 -0.79,-0.57 0.26,-0.76 -0.87,0.51 -0.45,-0.73 1.1,-0.38 -0.68,-0.98 0.55,-0.41 1.12,-0.06 z',
94 | },
95 | {
96 | name: '전남',
97 | id: 'south-jeolla',
98 | path:
99 | 'm 67.004286,506.88884 0.37,1.2 -0.6,-0.79 -1.23,-0.38 -0.68,1.2 -0.45,-0.41 0.24,-1.2 -0.42,0.35 -0.6,-0.28 0.47,1.04 -0.45,0.54 -0.47,-1.11 -0.47,0.22 -0.55,-0.47 -0.42,0.35 -1.02,-0.28 0.45,-0.57 -0.26,-0.54 -0.95,0.22 0.32,-0.85 0.34,-0.25 0.39,0.28 0.66,-0.76 -1.02,-0.31 0.16,-0.38 0.63,0.38 0.39,-0.38 -0.42,-0.38 0.87,-0.32 1.29,1.68 2.55,-0.38 0.79,-0.51 -0.21,1.58 0.71,1.11 -0.41,0.4 z m 27.52,-23.66 -0.74,-0.47 0.05,-0.41 0.84,-0.25 -0.47,-1.14 -0.87,-0.32 -0.76,-1.27 -0.79,-0.13 0.18,-0.54 -0.79,-0.6 -0.08,-0.63 -0.92,0.32 0.63,-1.11 -1.44,0.35 -0.16,0.67 -0.84,-0.22 -1.34,-1.52 0.76,-0.67 -0.73,-1.08 -1,-0.09 0,-0.51 -3.18,-1.24 -1.6,0.03 -0.29,0.48 0.55,0.35 -0.39,1.65 1,0.22 0,0.32 -1.5,2.92 -0.55,-0.03 -0.29,-0.63 -0.08,1.21 -0.63,-0.19 -0.6,0.6 1.1,1.21 -1.89,0.16 -0.37,1.05 0.74,0.83 -1.13,0.54 -0.5,-0.48 -0.03,-0.7 0.47,-0.89 -0.45,-0.22 -1.57,2.19 0.21,0.38 -0.37,0.79 -2.23,0.79 -0.52,0.76 -2.49,1.33 0.21,0.7 0.74,0.16 0,0.86 -0.66,-0.57 -1.13,0.44 -1.08,1.05 0.13,0.63 -0.79,1.43 2.7,4.56 0.89,0 0.39,-0.82 1.05,0.03 0.29,0.79 -1.02,0.44 0.39,0.6 -0.94,1.23 1.65,0 -0.13,-0.73 0.76,-0.22 0.92,1.62 1.31,-0.22 0.95,0.28 0.11,-0.51 2.55,-0.47 -0.66,-1.27 1.23,0.54 0.92,-0.89 0.6,0.67 0.89,-1.2 1.63,0.13 0.5,-0.6 -0.81,-0.32 0.45,-1.2 1.16,0.1 -0.02,0.7 0.37,0 1.58,-0.82 -0.81,-0.98 0.89,-0.38 0.1,0.6 0.71,0.1 -0.37,-1.2 1.16,0.86 -0.24,-1.81 1.39,1.74 -0.6,0.16 0.24,0.57 0.37,0.35 0.87,-0.32 -0.03,-1.68 1.18,-0.89 0.5,-1.39 1.13,-0.89 -0.71,-1.65 0.55,-0.82 0.6,-0.03 0.16,-0.82 -1.21,-0.35 0.03,-0.85 1.5,-0.41 0.58,0.86 0.32,-0.41 -0.52,-0.98 0.14,-0.31 z m -41.68,-26.17 0.21,-0.51 -1.02,-0.7 0.13,-0.35 0.92,0.19 -1.26,-1.91 0.05,-1.46 1.13,0.06 0.21,-0.48 2.89,0.22 0.18,-0.67 0.63,0.19 0.34,-1.34 1.16,-0.16 0.21,-1.46 -0.47,-1.37 -0.34,-0.09 -0.18,0.45 -0.63,-0.22 -0.05,0.48 -0.81,-0.29 -0.45,0.41 0.05,0.67 -0.68,0.29 0.11,0.54 -1.23,-0.25 0.21,0.64 -1.21,0.73 -1.21,0.26 -0.97,-0.16 -0.05,-0.57 -1.02,-0.13 -0.45,0.32 -0.29,-0.32 -0.16,0.96 0.58,0.25 -0.81,0.38 -0.13,-0.54 -0.39,0.76 0.58,0.7 -0.45,0.13 0,1.05 0.39,-0.16 -0.71,1.08 0.03,1.18 0.6,-0.16 -0.13,0.67 0.74,0.16 0.32,0.7 1.34,0.44 0.71,-0.19 1.38,-0.42 z m 77.730004,47.71 0.47,-0.1 0.47,-0.92 -0.63,-0.76 -1.44,0.03 -0.03,-1.01 -1.13,-1.46 0.03,-0.89 -0.68,-0.41 0.08,-2.82 -1.08,-1.2 -0.66,-0.09 -1,-1.2 -1.31,-0.1 -0.42,-0.44 -3.1,1.08 -0.97,0.89 -0.26,0.89 0.58,1.17 -0.37,0.41 0.37,2.03 -0.37,0.63 0.71,0.67 -0.5,0.89 1.97,0.41 0.53,0.92 0.66,0.1 0.45,0.79 -0.34,0.38 1.55,1.42 1.55,-0.6 2.5,1.27 -0.5,-1.77 0.32,-0.31 1.18,1.49 1.23,-0.1 0.76,0.63 0.79,-0.03 -0.47,-0.89 -0.76,-0.38 -0.18,-0.62 z m -70.790004,-45 -0.31,-0.6 -0.87,0.16 -1.47,-1.43 -1.26,-0.32 -0.47,-0.73 -0.05,-1.4 -0.45,-0.25 -0.16,1.81 -1.23,-0.06 0.26,1.4 -0.37,0.6 -0.97,-0.57 0.26,-0.6 -2.1,0.44 -0.21,2.96 0.6,1.65 0.74,-0.29 -0.08,-0.57 0.47,0.06 0.29,0.67 -0.34,0.44 0.84,0.51 0,-0.48 0.74,0.1 0.03,-0.67 0.53,0.03 0.29,0.45 -0.52,0.6 0.13,0.51 0.97,0.32 1.5,-0.67 0.03,-1.08 1.5,-1.02 0.16,-1.05 1.08,0.29 0.13,-1.21 0.31,0 z m 62.910004,59.64 0.55,-0.73 -1.63,-1.58 -1.73,-0.57 -0.66,1.55 -0.89,-0.09 0.79,0.35 -0.58,0.41 0.58,0.41 0.45,-0.47 0.58,1.36 -1.13,0.95 -0.47,1.26 -0.47,-0.1 -0.24,0.51 0.55,0.48 -0.37,0.63 0.66,0.51 0.05,1.14 1.05,-1.01 0.32,0.22 -0.13,1.61 1,0.47 0.89,-1.04 -0.37,-0.66 0.6,-0.57 -0.37,-1.39 0.29,-0.22 0.81,0.6 0.26,-1.07 -0.42,-0.28 -0.89,0.25 -0.05,-1.42 -1.15,-0.38 0.13,-0.85 1.99,-0.28 z m -5.96,-4.58 -0.79,-0.41 0.03,-0.6 -1.36,-0.35 -0.76,0.35 -0.63,-0.54 -0.52,0.73 -0.47,-1.39 -1.42,0.06 0.71,0.47 0.05,0.54 0.47,0.06 0,0.6 -0.89,0.1 -0.26,0.76 0.31,0.22 0.29,-0.54 0.37,0.32 -0.47,0.63 -0.66,0.03 0.55,0.32 -0.6,0.6 0.45,0.35 -0.92,0.41 1.6,0.41 -0.05,1.17 2.57,0.54 -1.34,-1.55 0.32,-0.38 1.68,-0.13 -0.1,0.92 1.63,0.19 0.26,-0.22 -0.24,-0.73 -1,-1.2 1.81,0 0.26,-0.63 -0.58,-0.28 -0.3,-0.83 z m -0.55,6.1 -0.37,-0.54 -2.31,-0.41 -0.66,0.44 0.05,0.57 -0.39,-0.25 -0.1,-0.85 -1.39,0.28 -0.03,-0.73 -1.52,-0.89 -1.6,1.3 -0.58,0.03 -0.03,0.57 -1.08,0.6 0.47,0.85 -0.55,0.73 0.53,0.28 -0.52,0.6 0.84,1.96 0.63,-0.44 0.76,0.51 3.31,-1.61 0.4,-1.04 0.97,-0.03 -0.24,-0.5 0.66,-0.41 -0.18,-0.63 0.79,0.16 0.34,-0.76 1.16,2.02 0.05,-1.67 1.23,1.39 0.71,-0.95 -0.24,-0.92 -1.11,0.34 z m -55.880004,-48.84 -0.45,0.54 0.1,0.73 0.6,0.51 -0.26,1.18 0.97,-0.13 -0.18,-0.86 0.58,0.1 0.16,-0.54 0.6,0.98 0.76,-0.57 0.6,0.54 -0.08,-0.35 0.53,-0.13 -0.18,-0.48 0.55,-0.7 -0.42,-1.11 -0.71,0.64 0.24,-2 -1.44,0.45 -0.31,-0.35 0.21,-0.6 -0.47,0.29 -0.26,-0.6 0.03,-0.92 0.66,-0.35 0.11,-0.86 -1.05,0.25 0.16,-0.79 -0.47,0.35 -0.95,-0.38 -0.45,0.48 0.6,1.43 -0.55,1.3 0.32,0.57 -0.29,0.67 0.82,-0.44 0.6,0.57 -0.26,0.7 -0.42,-0.12 z m 24.11,-31.35 -0.34,-1.02 -0.24,1.34 -0.52,0.48 -2.07,-0.38 -0.74,-0.51 -0.47,1.82 1.23,0.1 1.21,0.83 0.87,0.1 1.58,-1.88 1.34,0.06 0.34,0.41 1.47,-0.13 0.37,0.86 0.45,-0.6 0.84,0.03 0.63,0.73 -0.05,0.54 0.71,-0.29 0.1,0.92 -0.47,0.1 -0.24,0.77 -1,0.22 0.45,0.67 1.76,0.54 0.18,-0.95 0.32,0.41 1.18,-0.64 -0.45,-1.94 0.79,-0.16 -0.29,-1.59 -1.08,0.45 -0.42,-0.77 0.55,-0.19 -0.1,-0.32 -1.94,-0.1 -1.18,0.41 -0.97,-0.83 1.02,-0.48 -1.08,-0.73 0.37,-0.48 0.79,0.29 0.05,-1.24 0.68,0.54 0.37,-0.73 0.58,-0.16 0.58,0.86 0.21,-0.35 -0.03,-0.99 -1.05,-0.35 -0.39,-0.89 -1.23,-0.29 -0.29,0.54 -0.73,-0.06 -0.66,-1.4 -0.66,-0.26 -1.57,1.05 -0.13,0.32 1.31,0.99 0.89,1.66 -1.02,0.64 -0.66,-0.67 -0.52,0.06 -0.21,1.63 0.71,0.64 -0.29,0.57 -0.84,-0.2 z m -14.73,17.06 0.84,-1.34 1.42,-0.13 -0.32,0.73 0.82,0.41 0.13,1.88 0.76,-0.44 1.13,0.57 0.89,-0.7 -0.16,-1.21 0.45,-0.57 -0.63,-2.42 -1.26,-0.8 0.08,-0.86 -1.79,0.67 -1,-0.76 -0.71,-1.46 -1.73,0.54 -1.81,-0.92 0.05,0.89 -0.39,0.32 -0.47,0 0,-0.57 -0.81,0.28 -0.63,-0.25 0.26,0.41 1,0.16 0.45,1.43 -0.71,0.51 -0.39,1.34 0.24,0.29 1.05,-1.08 1,-0.13 0.1,1.02 0.66,-0.29 -0.37,1.88 1.18,-0.16 -0.13,0.41 0.8,0.35 z m 7.79,8.26 -1.52,0.54 -0.18,-0.7 0.5,-0.83 -0.6,-0.73 -0.63,0.13 0,-0.79 -1,-0.06 -0.21,-0.67 -0.6,-0.22 -0.97,0.32 -0.63,1.56 -0.79,-0.57 -0.31,0.95 -1.18,0.1 0.26,1.02 1,-0.64 0.58,0.73 -0.45,1.21 -0.6,0.41 0.45,0.6 -0.37,0.76 0.63,0.26 0.79,-0.64 1.26,0.06 -0.05,-0.67 0.53,-0.28 0.97,0 0.21,0.6 0.5,-0.03 0.63,-1.05 1.52,-0.16 0.37,-0.41 -0.11,-0.8 z m -3.28,-50.49 -0.47,1.88 0.58,-0.8 0.13,0.7 0.97,-0.29 -0.55,0.77 1.89,0.38 -0.03,-0.48 0.45,-0.13 0.84,1.05 1.79,-0.16 0.97,0.61 -0.42,1.66 0.92,0.19 0.87,1.6 0.84,0.35 0.58,-0.22 0.97,-1.91 -1.15,-0.73 -0.39,-2.43 -1.42,-0.99 -0.05,-1.21 0.55,-1.53 -0.52,-0.64 -1.39,0.9 -0.39,-1.05 -0.73,-0.22 -1.23,0.57 0.11,-0.67 -1.1,-0.58 -0.37,0.35 -0.68,-0.13 -0.32,0.7 -0.84,-0.16 -1.13,0.83 -0.08,1.09 0.8,0.7 z m -7.98,25.68 -0.63,0.96 -1.57,0.29 1.68,2.55 1.37,1.31 0.53,1.02 -0.16,1.05 2.21,-0.35 0.5,-1.4 -0.92,-1.65 0.68,-0.54 0.11,-0.6 1.13,0.51 1.6,-1.24 -1.02,-1.08 -0.71,-0.03 -0.03,-0.8 0.55,-0.32 1.29,0.38 0.6,-0.8 -0.39,-0.51 -0.45,0.22 -0.55,-1.53 -0.47,0.77 -0.68,-0.61 -0.71,0.13 -0.81,-0.41 -0.58,0.38 0.55,0.8 -0.55,0.45 0.16,0.54 0.89,0.73 -0.5,0.92 -2.13,-0.64 -0.34,-0.64 -0.65,0.14 z m 1.52,-16.26 0.71,0.51 1.44,-0.03 0.24,-0.48 0.95,-0.13 0.76,0.45 1.84,-0.03 0.71,-1.15 -0.52,-0.19 0.45,-0.54 -0.37,-0.41 -2.84,-0.99 -0.58,0.03 -0.24,0.99 -0.87,-0.06 -0.66,1.53 -0.55,-0.32 -0.47,0.82 z m -10.87,15.33 -0.52,0.38 0.6,0.19 0.45,-0.35 0.58,0.45 0.37,-0.51 0.97,0.8 0.47,-0.6 1.76,0.57 1.05,1.85 0.37,-0.38 -0.55,-1.4 0.76,-0.22 0.21,0.76 1.44,-0.45 -0.52,-0.57 0.18,-0.22 1.97,0.1 -0.6,-1.43 1.92,-0.92 0.05,-0.57 -1.02,-0.13 -0.47,-0.8 1.52,-1.4 -1.42,-0.22 -0.08,-0.41 0.66,-0.29 0.13,-0.51 -1.23,0.29 -0.31,-0.51 0.42,-0.8 -2.1,-0.86 0.39,2.17 -0.58,0.96 -1.02,0.19 -0.42,-1.11 -0.55,0.03 0.31,0.48 -0.42,0.7 -1.1,0.16 -0.71,-0.51 -0.05,0.96 -0.89,1.63 -0.53,0.35 -0.5,-0.22 0.29,0.77 -0.52,0.73 -1,-0.29 -1.13,0.32 -0.03,0.48 1.1,-0.32 0.3,0.68 z m 6.25,-22.23 0.87,-0.38 -0.05,0.9 0.66,0.13 -0.42,-1.37 1.58,-0.26 -0.26,1.15 0.26,0.45 0.81,0.06 0.11,0.38 0.81,-0.13 0.08,0.57 0.55,0.06 -0.05,-0.51 0.47,0 -0.39,-1.05 1.52,0.1 -0.68,-0.7 -0.13,-0.83 0.6,0.32 0.63,-0.54 -0.16,-0.48 -1.34,-0.51 -0.29,-0.77 0.32,-1.5 0.55,-0.38 0.63,0.35 -0.18,-1.47 0.5,-1.63 0.37,-0.54 1.73,-0.19 0.26,-0.64 1.47,-0.29 -1.29,-0.22 -2.78,0.74 -0.58,-0.29 0.24,0.54 -0.34,0.54 -2.81,2.97 -1.34,0.67 -1.86,-0.1 0.18,1.09 -0.87,1.18 1.58,0.93 -0.31,0.86 -1.68,-0.25 0,0.54 0.5,-0.16 0.53,0.66 z m -56.2399997,41.87 -0.84,0.38 -0.31,1.02 -0.69,0 -0.66,-0.73 1.29,-1.05 -2.49,0.13 -0.6,0.44 0.05,1.24 -1.08,1.02 -0.03,1.24 -0.97000002,0.67 0.24,0.73 0.84000002,0.28 -0.05,0.32 -1.19000002,0.28 0.95000002,1.65 1.58,0.57 -0.08,-1.68 0.6,-0.16 0.03,-0.44 1,-0.09 -0.55,-1.59 1.23,0 0.32,-0.29 0.34,-0.19 0.24,-2.06 0.97,-0.51 0.34,0.57 0.55,-0.7 -0.24,-0.76 -0.5,0.06 -0.29,-0.35 z m 138.5900037,58.06 -0.81,0.51 -0.39,-0.16 0.42,-0.35 0.08,-0.85 -0.79,-0.88 0.79,-0.44 -0.08,-0.76 -1.58,0.03 -0.31,-0.57 -0.68,0.06 -0.29,0.57 -0.89,0.22 -0.18,0.82 -1.18,0.31 0.47,0.44 -0.92,1.11 0.47,0.98 -0.79,-0.16 -0.21,0.51 0.34,0.7 0.45,-0.51 0.37,0.35 -1,0.89 0.58,0.19 -0.21,0.51 0.34,0.69 0.32,-1.29 0.87,-0.47 1.18,1.26 -0.08,0.6 1.79,-0.69 0.79,0.6 1.02,-0.91 0.6,-2.53 -0.49,-0.78 z m 80.08,-80.44 0.87,0.61 0.84,-0.03 -0.13,-3.44 -1.71,-1.69 -2.7,-0.06 0.26,-1.72 -0.79,-0.64 -1.44,1.56 -0.13,0.64 -1,0.38 0.05,2.01 5.36,1.21 0.5,0.7 0.16,-1.88 -0.45,-0.29 0,-0.54 0.95,-0.35 0.79,1.54 0.15,2.38 -1.26,-0.32 -0.32,-0.07 z m -0.23,34.13 0.5,0.64 1,-0.16 0.89,0.54 1.55,-0.6 0.16,-0.86 -1.86,-1.24 0.39,-0.41 -0.08,-1.75 0.84,-0.35 -0.18,-2.89 0.79,-0.29 -0.05,-0.44 -1.02,0.13 -0.18,-0.51 0.73,-0.22 -0.58,-0.06 -0.23,-0.63 -0.74,0.32 -0.79,-1.24 0.45,-0.7 -0.16,-1.18 -0.45,-0.16 -0.84,0.51 -0.66,-1.08 0.58,-0.76 0.84,0.67 0.45,-0.79 0.18,0.45 -0.47,0.64 0.81,-0.13 0.11,0.45 0.39,0 -0.24,-2 -4.04,-1.97 -0.47,0.03 -0.26,0.6 0.47,0.16 0.47,1.5 1.13,0.16 -0.42,1.78 0.24,0.76 1.44,0.7 -1.79,0.32 -0.52,0.73 0.03,0.73 -1.76,1.46 -0.52,0.03 -0.58,1.43 0.66,0.95 -1.34,1.52 0.89,0.95 1.66,0.22 -0.03,0.76 1.18,1.4 1.43,-0.12 z m -6.07,-14.9 -1.31,-1.11 -0.79,-0.16 0.34,-0.67 -0.97,-0.95 -0.79,-0.13 0.05,-0.73 -0.6,0.16 0.18,1.02 -0.79,0.38 -1.05,2.74 -0.42,-0.06 0.71,1.44 -1.55,-0.55 0,-0.83 -0.34,0.22 -0.08,1.08 -0.26,-0.26 -0.47,0.26 0.05,0.51 1.26,0.76 -0.42,1.02 0.71,0.48 0.68,-0.13 -0.71,0.54 -0.84,-0.19 0,0.32 0.71,0.35 0.6,1.88 -0.66,0.51 0.63,0.67 0.32,-0.35 0.37,0.19 -0.21,0.79 -1,0.67 1.02,0.03 0.42,1.14 -0.81,0.16 -0.24,-0.76 -0.95,0.32 0.18,-0.35 -1.15,-1.27 -2.42,-0.98 -1.21,0.38 0.71,2.19 -0.26,-0.03 -1.44,-2.73 -0.58,-0.57 -0.55,0.06 -0.21,-0.86 0.34,-0.54 0.63,-0.03 0.21,-0.6 -1.1,-0.35 0.05,-1.59 0.63,-0.06 -0.29,-0.29 0.53,-0.41 1.34,0.19 0.16,-0.32 -0.5,-0.29 -0.79,0.22 0,-0.83 -1.02,0.96 0.37,-1.53 -0.76,0.38 -0.05,-0.29 0.24,-0.73 1.23,-0.54 -0.24,-0.92 0.63,0.48 1.05,-0.57 -0.08,-0.7 0.55,-0.03 -0.13,-0.7 1.92,0.06 -1.1,-0.7 -0.71,0.1 0.63,-0.83 -0.68,-1.34 -0.34,0.89 -0.66,0.19 -0.03,-1.59 -1.29,-0.38 1.21,-0.25 0.16,-0.48 -0.39,0.03 -0.21,-0.92 -0.76,-0.54 -0.13,-1.3 -1.1,-0.35 -0.21,0.54 -0.6,-0.03 -1.21,-0.38 0.18,-1.62 1.16,-0.99 0.45,-1.18 -0.97,0.13 -0.68,-0.38 -0.79,-4.01 -1.24,0.61 -1.31,0.1 0.19,3.06 -0.6,0.77 -1.78,-0.54 -0.53,0.48 -1,0.1 -0.16,0.48 -0.66,-0.13 -0.05,-1.4 -0.42,0.03 -0.42,1.37 -3.36,1.34 -1.29,-1.34 -2.34,-0.1 -0.05,0.35 0.76,0.41 1.52,0.42 0.92,1.46 0.53,-0.29 1.65,0.51 0.92,-0.41 0.26,0.22 -1.5,1.31 -1.6,0.7 -0.71,1.08 -0.08,0.92 -1.94,-0.1 0.32,0.32 2.23,0.13 0.89,0.8 -0.39,1.24 -1.65,0.8 -0.73,1.08 1.55,3.4 0.79,0.64 0.39,-0.16 0.52,0.38 0,0.54 1.58,0.89 0.21,0.95 0.6,0.38 -0.45,0.7 0.84,-0.44 1,0.48 -0.24,1.37 1.21,-0.83 -0.05,0.83 0.95,0.1 -0.47,-1.08 1.47,-0.13 -0.03,0.86 -0.42,0.06 0.05,1.08 1.55,0.51 -0.03,0.89 -1.18,-0.67 -0.34,0.83 -0.55,-0.13 -0.37,-0.83 -0.47,0.44 0.84,0.92 2.78,0.6 -0.26,0.7 0.42,0.67 -0.18,0.51 0.87,1.14 -0.03,1.24 -1.71,1.43 -0.05,0.98 -0.55,-0.54 -0.47,-0.13 -0.37,0.57 -1.05,-0.7 0,-1.21 -0.39,-0.06 -0.05,0.89 -1.18,0.79 -1,-0.57 0,-0.73 -1.47,0.64 -0.37,-0.22 0.13,-0.48 -0.68,-0.22 -1.42,0.54 -2.55,0.03 0.05,0.67 2.36,-0.19 0.24,0.95 1.31,-0.79 -0.39,1.37 -0.63,0.57 -1.58,-0.19 -0.18,1.08 1.97,-0.57 1.08,0.45 1.18,-0.06 -0.63,0.57 1.37,-0.32 0.63,0.57 -0.6,0.76 0.42,0.95 -0.63,-0.28 -0.23,0.76 -0.39,-0.03 0.74,1.21 -0.29,0.28 0.18,0.7 -1.26,-0.82 -0.81,-0.06 -0.47,0.64 0.37,0.13 -0.24,0.92 -1.05,0 -0.37,-0.6 -1.05,0.73 1.13,1.43 -0.24,0.92 -0.29,-0.38 -0.47,0.35 -0.13,-0.44 -0.45,0.86 -0.39,-0.06 -0.21,-0.73 -1.13,-0.57 -0.47,1.62 -0.31,-0.06 0.18,-0.63 -0.5,0.03 -1.08,0.92 -0.58,-0.09 1.13,1.01 -0.37,0.44 -0.84,-0.73 -0.47,0.48 1.23,0.76 0,0.38 0.45,-0.19 0.26,1.01 -1.13,0.82 -1,-0.06 -0.68,-0.92 -0.52,0.13 0.03,-0.63 1.1,0.03 -0.71,-0.98 -0.39,0.44 -0.1,-0.67 -0.68,0.19 0.34,-0.86 -0.81,-0.03 -0.58,-0.76 -1.65,-0.44 0.45,-1.3 0.97,-0.63 -2.76,-2.63 -0.97,0.03 -0.03,0.73 -1.18,-0.38 0.21,-0.79 -1.15,-0.98 -0.66,-0.06 -0.58,-1.05 0.08,2.6 -0.89,-0.48 -0.39,-0.86 -1.13,0.06 -0.11,-0.44 -0.79,0.92 -0.05,0.83 -0.5,-0.67 -2.94,0.35 -1.47,-0.79 0.08,-1.24 -0.94,-0.63 0.47,-1.94 1.13,-1.11 0.58,0.03 -0.18,-0.63 1.1,-0.7 -0.24,-0.67 0.58,-1.21 0.21,0.79 0.74,0.28 1.23,-0.38 -0.37,-0.92 0.42,-0.25 0,-2.41 2.55,-2.54 2.68,-0.67 0.42,-2.48 1.1,-1.08 -0.71,-0.86 0.32,-0.8 1.16,-0.54 1.08,-1.43 0.68,0.54 0.42,-0.86 0.55,0.06 -0.08,2.26 0.5,0.03 0.08,0.48 -0.73,2.42 0.76,0.8 2.68,0.25 0.66,-1.14 -0.37,-0.83 0.94,-1.05 0.47,-1.91 1.13,-0.35 -0.1,-0.51 -1.05,-0.03 -0.63,-4.17 -1.26,-0.13 -0.79,0.38 -1.13,2.19 -0.45,-0.6 -1.52,-0.64 -0.76,1.15 -0.79,-0.76 -0.94,-2.55 -1.55,0.35 -1.73,2.16 -0.34,2.26 -0.79,1.37 -0.71,0.29 -0.68,1.18 -3.86,0.13 -0.68,-0.99 -0.63,-0.22 -1.37,1.24 -0.45,1.49 -1.13,0.92 -2.94,1.08 -0.42,0.48 0.16,0.7 -0.63,0.28 -0.89,1.49 -0.87,-0.06 -1.89,1.33 -3.33,-0.38 -2,0.32 0.84,0.54 0.66,-0.44 1.55,0.16 -0.03,0.95 1.39,0.76 -0.03,0.35 -1,0.1 0.13,0.76 -0.58,0.44 -0.21,1.37 -1.08,0.95 0.95,0.7 1.63,-0.32 -0.13,1.49 -0.26,0.29 -0.5,-0.89 -0.84,0.13 0.03,2.48 -1.55,-0.38 -1.15,1.3 0.24,0.73 1.42,1.3 -0.03,0.51 -0.92,0 -0.37,1.56 1.18,0.82 0.32,1.27 -0.73,0.28 -0.37,-0.32 -0.95,0.86 -1.39,-1.59 -0.58,0.83 0.37,1.59 0.6,0.73 -0.84,1.05 -1.05,-0.03 -0.6,-0.76 -4.73,-0.19 1.52,2.47 -0.16,1.46 -1.21,-1.81 -1.55,-0.51 -1.05,-1.08 -0.63,-0.19 -0.81,0.6 -1.1,-0.06 -1.29,-0.92 0.29,-1.4 -2.05,-0.06 0.08,-0.86 0.95,-0.38 -0.73,-3.14 0.26,-0.38 -0.47,-0.32 0.47,-1.59 -0.1,-1.59 0.68,-0.76 -0.53,0 -0.13,-0.51 -0.16,-0.89 0.58,-0.82 -0.87,-1.02 0.24,-1.17 -1.02,-0.92 0.37,-0.38 -0.37,-2.41 0.5,-1.59 0.66,-0.6 -0.31,-0.19 -0.68,1.97 -0.87,0.76 -0.6,9.43 0.55,0.64 -0.97,0.25 -0.08,0.41 0.26,2.22 0.42,0.41 -0.66,0.32 0.11,0.54 -0.68,-0.1 -1.31,0.79 0.79,1.55 -2.21,3.3 -0.55,-0.38 -0.84,0.79 -0.97,-0.13 -1.71,1.62 -0.63,-0.19 0.37,0.8 -0.45,0.15 -0.81,-0.82 -0.6,0.7 -0.76,-0.22 -0.52,1.49 -0.97,-0.25 -0.55,1.05 -0.55,-0.57 -0.6,0.79 0.5,0.57 -0.94,1.17 0.29,0.76 0.55,-0.03 -0.05,2.34 -1.71,1.08 0.6,0.51 -0.79,1.01 0.29,0.76 -0.21,1.11 0.45,0.51 -0.81,0.32 -1,-0.89 -2.47,-0.28 -1.5,2.21 -1.44,0.25 -0.34,1.01 -0.87,-0.31 0.26,-2.21 -0.66,-0.54 1.39,-1.68 -0.6,-1.14 0,-1.93 -1.44,-0.63 -0.55,0.73 -0.84,0 -1.13,1.14 -0.66,0.16 0,-0.63 -0.6,-0.44 -0.08,-0.54 0.39,-0.13 0.92,0.85 0.21,-0.35 -0.42,-0.66 0.97,0.09 -0.84,-0.66 0.37,-0.7 -0.74,-0.13 -0.05,-0.73 2.39,-0.41 -1.13,-1.58 0.29,-0.47 -0.24,-0.38 1.52,0.48 0.16,0.44 1.08,-1.65 -0.73,-1.27 0.5,-0.85 -0.47,-0.7 -1.13,0.92 -0.47,-0.38 -0.81,0.1 0,0.98 -0.71,-0.22 -0.66,-1.3 -1.26,-0.92 -0.1,-0.38 0.95,-0.47 0.6,0.76 0.53,-0.29 -0.76,-0.73 -0.05,-0.6 0.63,-0.35 -0.42,-0.7 -0.63,0.25 -0.74,-0.95 0.03,-0.57 0.97,-0.16 -0.92,-2.06 1.34,-0.82 -0.79,-1.36 -1.92,-0.16 0.13,-0.57 1.02,-0.19 1.05,-0.92 -0.31,-0.82 -0.97,0.19 -0.08,0.51 -1,-0.06 -0.03,-1.59 -2.280004,-0.79 0.21,1.21 -1.5,0.25 0.03,0.95 -1.44,0.7 -0.79,-0.79 0.92,-1.11 0,-1.24 -2.21,-0.09 -2.86,-1.43 -2,0.7 -0.94,-1.14 0.87,-1.02 -3.18,-1.18 0.53,-0.98 -0.45,-0.6 0.32,-1.02 -0.29,-0.35 1.23,-1.02 -0.42,-0.57 -0.45,0.64 -1.18,-0.29 -1.18,-1.14 -0.39,-2.8 0.39,-0.64 -0.45,-0.76 0.76,-0.7 -0.45,-1.08 0.29,-1.37 0.58,0.45 0.68,-1.11 0,-1.75 1.05,-3.4 1.31,-0.54 1.05,0.99 -0.32,0.73 1.26,-0.13 -0.29,0.76 0.92,0.51 0.37,1.97 0.84,0.25 0.92,1.15 0.03,0.64 -1.58,0.67 -0.24,1.94 0.4,0.83 -0.71,0.99 0.21,0.57 2.34,0.86 -0.1,2.89 1.31,0.64 0.26,1.84 0.42,-1.3 0.6,-0.19 2.02,1.37 0.71,-0.19 -0.13,0.67 4.150004,2.22 -0.18,-0.89 2.89,-1.46 0.45,-1.14 -0.08,-0.54 -0.79,0 -0.66,0.64 -0.55,-0.29 -0.81,0.64 -0.45,-2.89 -0.52,0 -0.66,1.18 -0.810004,-2.45 -1.05,0.25 0.5,-1.84 -0.74,-0.06 0.05,-0.83 -0.87,0.03 -0.31,1.24 -0.6,-0.19 -0.79,1.11 -1.08,-0.95 1.65,-1.97 -0.18,-1.87 -0.52,-0.54 0.6,0.1 0.53,0.83 0.47,-0.41 -0.18,-0.76 -0.58,-0.22 0.03,-0.79 -1.05,-0.19 0.05,-0.54 0.66,0.32 0.34,-0.73 1.55,2.13 -0.1,0.89 0.37,0.48 0.95,-1.08 0.58,-0.06 0.13,-0.76 0.500004,0.6 0.55,-0.95 1.13,0.67 -0.16,0.64 -1.31,0.89 -1.100004,2.07 1.130004,1.27 0.97,-0.38 -0.03,0.89 0.89,0.13 0.73,1.08 3.94,0.51 1.58,1.37 1,-1.33 -1.31,-0.38 -0.24,-1.24 0.37,-0.16 2.21,0.22 0.31,0.89 3.26,1.4 3.1,0.29 0.45,-0.44 -0.89,-0.76 -1.92,-0.09 -1.42,-1.4 -1.6,-0.83 -0.37,-1.37 0.6,-1.3 -1.26,-0.38 -1.13,0.25 -1.18,-2.92 -2.68,-3.18 -0.95,-0.38 -1.52,0.13 -0.73,0.19 -0.71,0.92 -0.5,-0.25 -0.24,-1.4 -1.260004,0.03 -0.45,0.51 -0.24,-0.67 -0.89,0.25 -0.45,-0.67 -0.66,0.38 -0.05,0.6 -1.1,-0.13 0.18,0.64 -0.79,0.35 -2.34,-0.86 -0.05,-0.48 1.68,-1.08 -0.26,-0.76 0.55,-0.48 -0.5,-0.32 1.16,-0.44 -0.08,-1.34 -1.99,0.13 -0.71,-2.17 0.87,-1.04 0,-0.8 0.47,-0.67 0.6,0.19 0.18,-0.92 0.34,-0.45 0.39,0.13 0.13,-0.7 0.79,-0.6 1.02,-0.1 -0.71,-0.54 -0.13,-1.98 -0.76,-0.38 0.63,-1.31 -0.73,-0.25 -0.55,-0.1 0.45,-1.24 -0.16,-0.73 0.42,0.26 0.42,-0.25 0.45,-1.27 -1.29,-1.21 -0.18,-0.67 0.66,-0.73 -0.79,-1.21 0.53,-2.23 -1.15,-0.77 -0.1,-1.91 -0.81,-1.34 -0.45,0.57 0.13,2.2 -0.87,0.7 0.08,0.77 0.79,-0.13 0.63,0.73 -0.89,1.44 0.76,0.51 -0.71,0.86 0.39,0.93 -0.24,0.41 -1.52,-0.13 -0.1,0.54 -0.63,0.22 -1.36,-0.16 -0.24,-1.62 -0.94,-0.22 -0.5,0.7 -0.47,-0.22 -0.18,-0.73 0.45,0.19 1.05,-1.24 -1.08,-0.48 -0.24,-0.89 -1.13,-1.15 0.21,-1.18 0.5,-0.1 0.21,-0.89 0.71,-0.38 -0.29,1.4 0.68,0.03 0.26,-0.7 0.81,1.69 1.89,-0.96 0.34,-0.89 0.63,-0.16 -0.03,-0.99 -1.86,-0.41 4.91,-3.16 -0.08,-1.5 -0.89,-1.12 -0.97,0.03 -1.65,0.8 -0.42,-1.02 0.42,-0.45 -0.26,-0.57 -1.65,-0.41 0.81,-0.26 0.45,-0.7 -1.15,-2.17 -1.34,-0.03 -0.13,0.73 -1.37,-0.96 1.21,2.24 -1.37,1.05 1.05,0.29 0.21,0.61 -1.29,1.21 -0.71,-1.72 -0.76,-0.35 -0.79,0.9 -1.29,0.1 0.08,-1.05 -0.68,-1.95 -1.02,-0.67 0.42,-1.28 1.65,-0.13 -2.21,-2.43 0.82,-1.92 0.39,0.48 0.37,-0.17 -0.47,-0.76 0.21,-0.54 1.47,-0.9 0.71,1.92 1,-0.22 -0.31,-0.51 0.37,-0.1 1.37,0.42 0.08,1.25 1.29,-0.06 0.92,-1.63 -0.68,-0.45 0.08,-0.32 0.37,-0.38 0.6,0.38 1.08,-1.28 0.05,2.56 -0.79,1.63 0.29,0.19 -0.18,0.51 -0.76,0.22 -0.18,0.9 0.53,0.38 0.05,0.83 -0.52,0.35 1.21,0.22 0.89,-1.02 -0.08,1.63 -0.68,0.45 0.05,0.57 0.37,0.26 0.24,-0.45 0.63,0.61 0.74,-0.57 0.21,1.95 0.42,-0.1 0.76,-2.11 1.05,-0.54 -0.66,2.27 0.47,0.16 0.66,-1.34 1,1.53 0.03,0.42 -1.58,1.85 0.97,-0.03 0.1,1.85 2.23,-0.06 -0.6,-0.99 0.03,-0.77 0.42,-0.61 1.680004,-0.8 1.44,-2.3 -2.070004,-0.96 2.100004,-0.67 0.66,-1.18 -1.71,-0.64 -2.360004,-0.1 -1.63,-3.16 -1.21,-0.51 -0.81,-1.41 0.03,-0.73 -0.92,-0.13 -0.6,-1.06 -0.66,-0.06 0.29,-1.34 -1,-0.48 1.63,-0.54 -0.18,-1.12 0.58,-0.29 0.29,-1.15 -1.79,0.9 -0.03,-0.42 -1,-0.22 -1.29,0.61 -0.39,-0.61 -1.18,-0.19 0.18,-0.77 -0.45,-0.96 -0.58,-0.54 -0.79,-0.06 0,-0.51 1.1,-2.08 0.66,1.54 0.66,0.55 0.03,0.77 0.63,-1.15 0.74,-0.22 -0.55,-0.99 1.6,-2.18 -0.29,-0.7 -1.29,0.45 -0.47,-0.42 0.74,-1.31 3.13,0.03 0.63,-2.37 0.11,-2.92 1.76,-4.45 1.47,0.58 0.68,-0.19 0.95,0.99 1.600004,0.19 -0.24,-0.67 -1.050004,0.19 -0.31,-0.74 -1.86,-1.15 -0.76,-2.4 0.74,-1.8 -0.29,-0.55 1.47,-1.41 2.230004,0.16 0.32,-0.58 1.94,0.18 0,0 1.87,0.62 0,0 1.87,1.56 0.78,2.66 0.16,2.96 1.87,2.19 1.25,4.06 1.71,0 0.38,1.7 0,0 4.35,-0.23 1.45,-1.54 0.99,-0.35 1.11,0.24 0,0 0.97,0.43 2.07,-0.71 0,0 1.53,-1.5 3.14,-0.96 0,0 2.41,-1.22 0.77,-2.01 -0.14,-0.96 0,0 -0.26,-0.77 0,0 0.15,-0.68 1.45,-0.95 0,0 0.59,-0.68 -0.15,-3.1 0,0 0.18,-1.18 0.61,-0.81 2.27,-0.98 0,0 1.53,0.35 0,0 1.08,0.22 1.57,-1.87 3.02,0.61 2.95,1.86 1.1,1.13 2.52,4.77 0,0 1.04,0.9 0,0 1.97,0.57 1.02,-0.69 0,0 0.14,-1.02 0,0 0.53,-2.08 1,-0.64 0.98,-1.79 0.71,-0.32 1.81,0.4 1.35,1.04 0.61,1.91 -0.16,2.51 0,0 -1.15,1.38 0.09,0.94 0.49,0.68 1.59,-0.01 0,0 1.01,2.88 -0.42,3.61 2.59,1.98 0,0 2.1,0.54 0,0 1.61,-0.15 1.42,-0.94 0,0 0.96,-0.9 0,0 1.3,-0.84 3.16,1.36 0,0 1.93,-1.12 1.44,1.37 0,0 1.13,0.66 6.15,-0.02 0,0 2.38,-0.7 3.19,0.36 0,0 1.13,-0.02 0.62,-0.44 2.95,-3.79 1.76,-0.98 0,0 2,-0.11 0,0 3.51,1.16 1.04,0.92 0,0 3.31,1.82 3.07,2.65 0,0 -0.78,0.7 -0.01,1.56 2.66,2.99 0.91,9.22 1.3,1.69 2.22,1.13 3.04,3.64 0.19,2.9 0,0 1.09,1.05 0,0 0.77,1.24 1.62,0.69 1.18,1.87 0,0 1.75,1.33 0,0 1.58,4.11 -0.04,2.93 0.7,0.32 0,0.87 -1.84,0.29 -0.95,-0.38 -1.36,-2.97 -0.58,-0.03 -0.63,1.15 -1.76,0.54 -0.05,-2.9 -1.42,-2.04 0.08,1.63 0.68,0.54 0.37,3.03 -1.55,1.18 -0.24,0.93 -0.63,-0.19 -0.68,0.89 -0.71,0.06 -0.18,0.48 0.47,0.96 -1.63,1.12 -1.57,0.41 0.21,0.48 -1.15,0.89 -0.95,-1.21 0.45,-0.57 -2.07,0.22 -0.47,-1.31 -1.05,-0.96 0.16,-2.45 -0.71,-0.67 0.29,1.21 -0.42,1.79 -1.15,0.19 -0.31,-0.29 -0.5,0.64 1.16,0.29 1.29,1.59 -0.5,0.8 0.61,1.02 -0.5,0.19 -0.5,-1.02 -0.73,0.7 -0.6,-0.54 -0.58,0.64 1.1,0.13 0.34,0.41 0.08,1.37 1.39,1.37 -0.26,0.42 0.37,0.6 0.37,0.22 0.42,-0.41 0.68,1.02 1.42,-0.16 -0.08,0.77 -0.81,0 -0.05,0.54 0.24,0.7 0.92,0.73 0.03,-1.11 0.84,0 1.47,0.8 1.21,-1.31 1.34,-0.48 0.92,-1.53 -0.55,-0.45 0.05,-0.76 0.6,0.92 0.1,-0.38 1.5,0.1 1.58,-0.67 -0.95,0.86 1.76,0.7 -0.13,-0.76 2.31,-0.83 1.34,1.34 -0.84,0.19 0.31,0.86 -0.71,2.32 0.66,0.19 -0.68,0.35 0.13,2.17 -0.89,-0.06 -0.29,1.53 -1.05,1.08 0.76,1.4 -0.34,1.18 0.53,0.38 -0.58,0.41 0.79,0.57 -0.18,0.6 -0.42,0.29 -1.58,-0.29 -0.26,1.11 -2.52,0.96 -0.66,-0.03 -0.12,-0.79 z m -64.24,-52.04 -2.61,-0.26 -1.02,-4.54 -1.94,-2.34 -1.83,-0.87 -2.44,-0.09 -2.44,0.96 -2,1.05 -2,2.09 -1.48,0.09 -2.09,-0.7 -1.48,-1.39 -0.61,-2.18 -2.18,-0.09 -2.09,5.31 -2.35,-0.09 -1.74,2.09 -1.13,4.79 0.44,4.09 7.23,1.04 1.83,2.27 1.92,3.83 3.75,0 3.4,-2 3.83,0 1.48,-1.04 3.14,0.61 3.4,-2.35 1.39,-1.83 0.78,-1.65 0.09,-2.61 0.87,-1.83 0,-1.39 -2.12,-0.97 z m 48.85,83.47 -1.6,-0.6 0.08,-0.41 -1.5,-1.87 -0.05,1.14 -0.42,0.19 -0.26,-0.6 -0.45,1.01 -0.92,-0.03 0.66,-0.82 -1.68,0.16 -0.52,-0.79 -0.92,-0.57 -0.31,0.19 0,1.93 0.39,0.63 -0.81,0.48 0.16,0.28 1.08,-0.76 0.53,0.25 0.45,-0.28 1,0.6 -0.21,0.63 -1.47,-0.6 -0.39,0.38 1.21,1.27 0.89,-0.51 0.21,0.51 0.58,0 0.21,0.82 -0.76,0.92 0.05,0.48 0.45,0.22 2.39,-1.2 0.32,-0.51 1,0.48 0.76,-0.95 -0.24,-0.7 0.09,-1.37 z m 24.69,-5.55 -0.55,0.03 0.03,-0.66 -2.47,-0.86 1.39,-0.06 0,-0.44 -0.13,-0.63 -1.71,-1.62 0.18,-0.57 -0.73,-1.59 -1.71,0.03 -2.55,1.75 -0.68,-0.32 -0.73,0.19 0.39,0.73 1.1,0.35 0.68,0.7 1.26,-0.41 -0.74,1.17 0.18,0.38 1.31,0.32 -0.74,0.54 0.13,0.35 0.66,0.22 1.18,-0.41 -0.03,0.64 1.65,0.28 -0.21,0.48 -0.66,0.1 0.81,0.38 1.89,0.13 0.13,-0.51 0.67,-0.69 z m -5.23,-45.27 -1.5,0.1 -0.94,-0.83 -1.76,0.67 -0.68,1.18 0.95,0.73 -0.47,0.45 1.79,0.1 0.47,0.48 0.92,-1.91 1.58,-0.38 -0.36,-0.59 z m -93.9,58.74 0.6,-0.44 2.15,0.13 -0.71,0.79 -0.6,1.81 1.39,0.82 -0.31,-0.51 0.47,-0.63 -0.13,-0.76 1.08,-1.46 1.02,-0.44 1.52,0.35 0.42,-0.54 -0.37,-0.44 0.5,-0.98 1.81,0.51 0.5,0.73 0.45,-0.41 1.1,0.32 0.08,-0.82 -0.71,0 0.24,-0.41 -0.39,-0.95 -0.81,0.13 0.47,-0.6 -0.26,-0.63 -1.1,0.82 -1.42,-1.01 1.79,-0.1 0.29,-0.98 -0.58,-0.57 -0.55,0.28 -0.08,-1.39 -3.04,1.39 -1.21,-0.16 -2.23,2.57 0.34,1.36 -0.79,0.38 -0.89,1.3 -0.04,0.54 z m 67.25,-11.34 -0.1,-0.57 0.81,-0.35 1.44,0.32 0.39,-0.7 0.13,0.7 0.45,0 1.13,-0.82 -1.39,-1.97 -2.89,-0.22 -0.24,-0.57 0.39,-0.22 1.21,0.38 -0.5,-1.14 -1.08,-0.19 0.05,-0.44 1.39,-0.09 0.45,-0.7 -0.47,-0.92 -1.52,-0.16 -0.45,0.29 -1.79,2.6 0.55,0.54 0.84,-0.16 0.66,0.67 -0.42,0.54 0.66,0.06 0,0.38 -1.68,1.05 0.81,0.76 0.13,0.79 1.04,0.14 z m 32.82,3.36 -0.6,-0.41 0.32,-1.01 -1.08,0.57 0.29,0.89 -1.15,2.22 1.5,-0.25 0.03,0.32 -1.13,0.25 -0.37,1.08 0.26,0.54 0.87,-0.48 0.11,0.82 0.71,0.03 -0.29,-0.63 0.5,-0.16 -0.18,-1.33 0.95,-2.91 -0.74,0.46 z m -76.57,12.54 -0.58,0.35 -0.79,-0.57 -1.42,0.22 -1.16,1.36 0.26,2.12 0.55,-0.38 0.26,0.95 0.55,0.32 0.39,-0.6 2.34,-0.89 0.21,-0.89 1.08,-0.22 -0.13,-0.92 -0.6,0.06 -0.96,-0.91 z m -13.57,3.39 1.1,-0.51 -0.39,-0.79 0.34,-0.16 0.79,0.95 -0.26,0.51 1.08,-0.03 0.32,-1.58 -0.55,-0.32 0,-0.44 0.66,-0.35 0.84,0.19 0.1,-1.52 -1.68,0.92 -0.71,-1.45 -1.44,0.41 -0.13,-0.66 -0.68,0.85 -0.55,-0.5 0.08,-0.41 -1.02,-0.7 -1.37,1.3 0.13,1.04 -1.23,0.51 -0.45,0.03 -1.15,-1.46 -1.39,1.27 -1.18,-0.41 -1,0.28 0.45,0.47 2.28,0.51 1.21,1.39 1.44,-1.39 1.87,0.13 0.5,0.44 0.13,0.89 0.42,0.1 -0.31,0.82 0.47,0.89 0.84,-0.25 0.44,-0.97 z m 21.48,-4.94 0.32,-0.57 -0.92,0 0.03,-0.48 -1,0.13 -0.6,0.85 -1.31,0.29 -0.24,-0.76 0.37,-0.16 -0.39,-0.51 0.32,-0.54 -0.55,-0.06 -1,-1.39 -0.21,0.89 -1.15,-0.51 -0.47,0.51 0.63,0.63 -0.18,0.32 -0.37,-0.47 -0.34,0.22 0.42,0.35 -0.42,0.79 -2.13,-0.32 2.13,1.24 0.71,-0.73 1.34,0.86 0.34,0.79 -1.42,0.32 0.81,0.16 0.34,0.51 0.45,0.03 0.37,-0.95 1.23,-0.03 0.13,0.73 -1.57,1.11 0.42,1.84 0.95,-1.87 0.5,0.16 0.21,-1.07 2.02,-0.51 -1.71,-0.28 0.55,-0.89 0.58,0.44 1.31,0.13 0.18,0.6 0.76,0.25 0.47,-0.28 -0.66,-0.63 -1.25,-1.14 z m -14.18,-4.34 -0.97,-0.47 -0.84,0.41 -0.6,-1.33 -0.66,0.6 -0.47,-0.7 0.13,0.82 -0.29,0.1 -1,-1.27 -0.05,0.54 -0.71,0.25 -0.37,-0.32 0.32,-0.57 -0.87,-0.41 -0.31,0.63 0.76,0.63 0.18,0.73 -0.79,2.38 0.68,0.57 1.34,-0.6 0.32,1.62 0.97,0.1 0.81,0.6 0.21,-0.66 0.79,0.38 0.63,-0.51 0.39,-1.17 0.89,0.51 0.92,-0.16 0.21,-0.79 -0.87,-1.17 0.29,-1.2 0.74,-0.92 -0.55,-1.11 -1.23,2.49 z m 30.8,15.89 -1.44,0.32 -0.03,1.17 -0.92,0.1 -0.71,2.78 0.37,-0.28 0.92,0.03 0.18,-0.41 0.37,0.47 1.31,0.38 -0.05,-0.89 -0.76,-0.32 1.1,-0.28 -0.29,-1.11 -0.05,-1.96 z m -2.21,-25.62 -0.29,-1.11 -1.55,-1.11 -1.39,0.86 -0.39,-0.03 -0.05,-0.48 -1.57,0.22 -1.58,1.27 -1.36,-0.13 -0.55,0.89 -0.58,-0.03 0.03,-0.7 -0.79,0.09 -0.42,-1.43 -0.47,0.44 -0.31,-0.38 -0.16,1.62 -0.68,0.13 -0.42,0.73 -0.55,-0.6 -0.34,0.41 1.26,1.74 -0.66,0.51 0.26,0.44 -0.26,0.44 0.87,0.1 0.03,-0.6 0.74,-0.13 -0.08,1.08 0.81,0.22 0.05,0.7 1.13,0.22 0.52,0.98 0.05,-0.82 0.53,-0.41 1.47,0.28 -0.16,-0.54 0.37,-0.22 2,0.57 2.05,0.06 0.84,-0.82 0.45,-2.12 1.15,-2.34 z m -17.98,1.78 -0.97,0.54 -1.1,0.03 0.21,0.51 0.89,0.16 0.34,3.2 0.81,0.79 0.6,-0.32 -0.26,-1.27 0.47,-0.22 0.58,0.48 -0.24,0.82 0.37,1.97 1.02,-1.68 -0.63,-0.51 0.81,-0.25 -0.03,-0.7 -0.92,-2.54 -0.97,-0.82 0.18,0.44 -0.58,0.32 -0.58,-0.95 z',
100 | },
101 | {
102 | name: '울산',
103 | id: 'ulsan',
104 | path:
105 | 'm 361.40429,346.70884 1.8,1.47 2.01,0.31 0.98,0.59 0.23,0.82 0,0 -0.42,2.85 0,0 0.28,0.77 0.74,0.33 0,0 1.97,0.66 0,0 1.43,-0.25 2.82,-1.84 1.12,-0.31 0,0 1.48,-0.01 0,0 4.89,1.74 0,0 1.76,0.42 0,0 2.9,0.41 0.7,1.45 -0.03,1.38 -0.74,0.2 -0.39,0.58 0.53,3.14 -0.61,1.06 -0.05,1.35 -0.11,0.36 -1.02,0.16 0.03,0.48 0.73,-0.39 -0.18,1.58 -1.21,0.51 0.03,0.29 0.84,-0.16 0.13,0.61 -1.26,0.61 0.18,0.45 0.95,-0.39 0.36,0.65 -0.47,-0.07 -0.55,1.25 -1,-0.41 0.08,0.35 -1,0.13 0.05,0.51 -0.52,0.48 -0.42,-0.19 -0.24,-1.48 0.4,-0.99 -0.63,-0.84 -0.53,-0.06 0.19,-1.38 -0.82,-1.57 -1.94,-2.13 -1.5,-0.48 0,0.68 1.39,0.48 0.92,1.19 -0.08,1.12 0.97,0.26 -0.07,0.83 0.42,0.62 -0.32,0.44 -0.52,-0.22 -1.03,0.35 -0.5,-0.45 0.53,0.71 0.97,-0.26 0.89,1.58 -0.63,0.45 -0.13,1.15 -0.65,0.23 -1.19,1.41 -0.68,-0.03 -0.5,-1.13 -1.05,-0.54 0.68,0.8 0.08,2.21 0.29,0.26 0.87,-0.32 -0.5,0.99 1.36,-0.73 -0.41,0.73 0.41,0.87 -0.31,0.39 -1.02,0.06 -0.24,0.77 0.39,1.15 0.71,0 0.03,0.58 -0.5,0.16 -0.29,1.41 -0.81,0.36 -0.21,0.99 0.1,0.74 0.97,0.29 0.71,1.47 -1.49,0.87 -0.56,-0.55 -0.63,0.06 -0.5,1.13 -0.6,-0.03 -0.1,0.67 -0.5,0.22 -0.32,1.09 -1.07,0.07 -0.27,1.18 -1.15,-0.13 -0.29,-0.8 -0.55,0.26 0.17,-1.51 -1,-1.68 0,0 -1.34,-1.34 -3.98,0 -0.04,-0.76 0,0 -1.54,-1.88 0,0 -3.09,-0.21 0,0 -2.23,-1.89 -3.43,-3.98 0,0 -3.26,-3.36 -2.4,-0.2 0,0 -2.75,0 -2.23,-1.05 -0.34,-4.83 2.23,-1.89 0,0 1.2,-1.05 0,-1.46 -1.47,-2.43 0,0 3.92,-3.09 0,0 1.66,-0.17 0,0 0.68,0.13 0.65,-0.87 -1.35,-2.48 -0.22,-1.06 0.59,-0.5 4.16,-2.57 3.11,-1.02 1.63,0.29 2.59,-0.65 z',
106 | },
107 | ],
108 | }
109 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | const withSass = require('@zeit/next-sass')
3 | const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin')
4 | const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
5 | const TerserPlugin = require('terser-webpack-plugin')
6 | const { config } = require('dotenv')
7 |
8 | config()
9 | module.exports = withSass({
10 | env: {
11 | API_URL: process.env.API_URL,
12 | NAVER_MAP_API: process.env.NAVER_MAP_API,
13 | CHANNEL_TALK: process.env.CHANNEL_TALK,
14 | },
15 | poweredByHeader: false,
16 | webpack: (config, options) => {
17 | // tsconfig-paths
18 | if (config.resolve.plugins) {
19 | config.resolve.plugins.push(new TsconfigPathsPlugin())
20 | } else {
21 | config.resolve.plugins = [new TsconfigPathsPlugin()]
22 | }
23 |
24 | // CSS Minified
25 | config.optimization.minimizer = []
26 | config.optimization.minimizer.push(new OptimizeCSSAssetsPlugin({}))
27 | config.optimization.minimizer.push(new TerserPlugin({
28 | test: /\.js(\?.*)?$/i,
29 | }))
30 |
31 | return config
32 | },
33 | devIndicators: {
34 | autoPrerender: false,
35 | },
36 | })
37 |
--------------------------------------------------------------------------------
/now.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "coronainfo-frontend",
3 | "scope": "croco",
4 | "build": {
5 | "env": {
6 | "API_URL": "@api-url",
7 | "NAVER_MAP_API": "@naver-map-api",
8 | "CHANNEL_TALK": "@channel-talk",
9 | "NODE_ENV": "production"
10 | }
11 | },
12 | "routes": [
13 | {
14 | "src": "/(.*)",
15 | "headers": {
16 | "X-XSS-Protection": "1; mode=block",
17 | "X-Content-Type-Options": "nosniff"
18 | }
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "coronainfo",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start -p 8080",
9 | "lint": "eslint --ext .js,.ts,.jsx,.tsx --ignore-path .gitignore ."
10 | },
11 | "dependencies": {
12 | "@emotion/core": "^10.0.27",
13 | "@emotion/styled": "^10.0.27",
14 | "@iconify/icons-ion": "^1.0.10",
15 | "@sentry/browser": "^5.13.0",
16 | "@zeit/next-sass": "^1.0.1",
17 | "acorn": "^7.1.1",
18 | "dotenv": "^8.2.0",
19 | "isomorphic-unfetch": "^3.0.0",
20 | "next": "9.2.1",
21 | "next-seo": "^4.1.0",
22 | "node-sass": "^4.13.1",
23 | "randomcolor": "^0.5.4",
24 | "react": "16.12.0",
25 | "react-app-polyfill": "^1.0.6",
26 | "react-dom": "16.12.0",
27 | "react-ga": "^2.7.0",
28 | "react-naver-maps": "^0.0.13",
29 | "react-router-dom": "^5.1.2",
30 | "react-svg-map": "^2.0.2",
31 | "react-twemoji": "^0.2.3",
32 | "recharts": "^2.0.0-beta.1"
33 | },
34 | "devDependencies": {
35 | "@emotion/babel-preset-css-prop": "^10.0.27",
36 | "@iconify/icons-bx": "^1.0.1",
37 | "@iconify/react": "^1.1.2",
38 | "@types/next-seo": "^1.10.0",
39 | "@types/node": "^13.7.0",
40 | "@types/randomcolor": "^0.5.3",
41 | "@types/react": "^16.9.19",
42 | "@types/recharts": "^1.8.5",
43 | "@typescript-eslint/eslint-plugin": "^2.18.0",
44 | "@typescript-eslint/parser": "^2.18.0",
45 | "babel-plugin-emotion": "^10.0.27",
46 | "eslint": "^6.8.0",
47 | "eslint-config-prettier": "^6.10.0",
48 | "eslint-config-react-app": "^5.2.0",
49 | "eslint-plugin-flowtype": "^4.6.0",
50 | "eslint-plugin-import": "^2.20.1",
51 | "eslint-plugin-jsx-a11y": "^6.2.3",
52 | "eslint-plugin-prettier": "^3.1.2",
53 | "eslint-plugin-react": "^7.18.3",
54 | "eslint-plugin-react-hooks": "^2.5.0",
55 | "optimize-css-assets-webpack-plugin": "^5.0.3",
56 | "prettier": "^1.19.1",
57 | "terser-webpack-plugin": "^2.3.5",
58 | "tsconfig-paths-webpack-plugin": "^3.2.0",
59 | "typescript": "^3.7.5"
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import App from 'next/app'
3 | import ReactGA from 'react-ga'
4 | import { DefaultSeo } from 'next-seo'
5 | import * as Sentry from '@sentry/browser'
6 | import ChannelTalk from '@/components/ChannelTalk'
7 | import 'react-app-polyfill/ie11'
8 |
9 | // 👁 Global Style
10 | import '@/styles/core.scss'
11 |
12 | if (process.env.NODE_ENV === 'production') {
13 | Sentry.init({ dsn: 'https://f6473d1b251f4eeca529512dd58ddfcf@sentry.io/3324211' })
14 | }
15 |
16 | class MyApp extends App {
17 | componentDidMount(): void {
18 | ReactGA.initialize('UA-158027501-01')
19 | ReactGA.pageview(window.location.pathname)
20 | }
21 |
22 | componentDidCatch(error, errorInfo): void {
23 | Sentry.withScope(scope => {
24 | Object.keys(errorInfo).forEach(key => {
25 | scope.setExtra(key, errorInfo[key])
26 | })
27 |
28 | Sentry.captureException(error)
29 | })
30 |
31 | super.componentDidCatch(error, errorInfo)
32 | }
33 |
34 | render(): JSX.Element {
35 | const { Component, pageProps } = this.props
36 |
37 | return (
38 | <>
39 |
58 |
59 |
60 | >
61 | )
62 | }
63 | }
64 |
65 | export default MyApp
66 |
--------------------------------------------------------------------------------
/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import Document, { Head, Main, NextScript } from 'next/document'
2 | import React from 'react'
3 | import * as Sentry from '@sentry/browser'
4 |
5 | const naverMapClientId = process.env.NAVER_MAP_API || ''
6 |
7 | process.on('unhandledRejection', err => {
8 | Sentry.captureException(err)
9 | })
10 |
11 | process.on('uncaughtException', err => {
12 | Sentry.captureException(err)
13 | })
14 |
15 | export default class MyDocument extends Document {
16 | render(): JSX.Element {
17 | return (
18 |
19 |
20 |
21 |
25 |
26 |
30 |
31 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | )
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/pages/_error.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 |
4 | const ErrorStyle = styled.div`
5 | height: 100vh;
6 | line-height: 1.7;
7 | display: flex;
8 | align-items: center;
9 | justify-content: center;
10 | `
11 |
12 | const Logo = styled.div`
13 | text-align: center;
14 | font-size: 1.7rem;
15 | span {
16 | color: var(--main);
17 | font-weight: 700;
18 | }
19 | `
20 | const StatusCode = styled.div`
21 | text-align: center;
22 | font-weight: bold;
23 | font-size: 4rem;
24 | `
25 | const Button = styled.a`
26 | padding: 5px 15px;
27 | text-decoration: none;
28 | outline: none;
29 | cursor: pointer;
30 | background-color: var(--main);
31 | transition: 0.5s;
32 | font-size: 0.85rem;
33 | border-radius: 3px;
34 | color: #fff;
35 | &:hover {
36 | border: none;
37 | color: white;
38 | font-size: 0.92rem;
39 | transform: scale(1.1);
40 | }
41 | `
42 | const Error = ({ statusCode }): JSX.Element => {
43 | return (
44 |
45 |
46 |
47 | 이런!
48 |
49 |
{statusCode}
50 |
55 | {statusCode ? `서버에서 ${statusCode} 오류가 발생했어요!` : '클라이언트 오류 발생했어요!'}
56 |
57 |
58 |
64 |
65 |
66 |
67 |
68 | )
69 | }
70 |
71 | Error.getInitialProps = ({ res, err }): object => {
72 | const statusCode = res ? res.statusCode : err ? err.statusCode : 404
73 | return { statusCode }
74 | }
75 |
76 | export default Error
77 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from '@emotion/styled'
3 | import Layout from '@/layouts/main'
4 | import { NextSeo } from 'next-seo'
5 |
6 | const HomeStyle = styled.div`
7 | background: #fff;
8 | padding: 40px 0;
9 | word-break: break-all;
10 | line-height: 1.6;
11 | div {
12 | font-size: 14px;
13 | margin: 0 auto;
14 | max-width: 600px;
15 | padding: 0 20px;
16 | }
17 | h2 {
18 | font-size: 20px;
19 | font-weight: 600;
20 | margin-bottom: 10px;
21 | }
22 | `
23 |
24 | const Home = (): JSX.Element => {
25 | return (
26 | <>
27 |
28 |
29 |
30 |
31 |
코로나인포 정보 서비스 종료 안내
32 |
코로나인포는 2020년 2월 3일에 시작한 COVID-19 정보 페이지입니다.
33 |
34 |
35 | 정확한 정보를 전달하기 위한 것이 목적이였지만, 정보 업데이트와 꾸준한 유지보수의
36 | 어려움으로 서비스 종료를 결정하였습니다.
37 |
38 |
이 공지가 제공된 이후로, 마스크 재고 현황을 제외한 모든 기능들을 종료하였습니다.
39 |
40 |
41 | 마스크 재고 현황의 경우에는, 재고 API 제공이 중단될 때까지 서비스를 유지 할
42 | 예정입니다.
43 |
44 |
45 |
그 동안 코로나인포를 이용해주셔서 감사합니다.
46 |
- 개발자 정도현, 강희원 드림
47 |
48 |
49 |
50 | >
51 | )
52 | }
53 |
54 | export default Home
55 |
--------------------------------------------------------------------------------
/pages/mask.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react'
2 | import styled from '@emotion/styled'
3 | import Layout from '@/layouts/main'
4 | import Container from '@/components/Container'
5 | import Jumbotron from '@/components/Jumbotron'
6 | import MaskCard from '@/components/Mask/card'
7 | // import MaskSearch from '@/components/Mask/search'
8 | import { NextSeo } from 'next-seo'
9 |
10 | // const calDistance = (lat1, lng1, lat2, lng2) => {
11 | // const deg2rad = deg => {
12 | // return deg * (Math.PI / 180)
13 | // }
14 |
15 | // const R = 6371 // Radius of the earth in km
16 | // const dLat = deg2rad(lat2 - lat1) // deg2rad below
17 | // const dLon = deg2rad(lng2 - lng1)
18 | // const a =
19 | // Math.sin(dLat / 2) * Math.sin(dLat / 2) +
20 | // Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2)
21 | // const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))
22 | // const d = R * c // Distance in km
23 | // return d
24 | // }
25 |
26 | const Callout = styled.div`
27 | padding: 20px 25px;
28 | background: #feeff2;
29 | line-height: 1.7;
30 | color: #3e4042;
31 | margin: 20px;
32 | h3 {
33 | color: #ca4545;
34 | font-size: 20px;
35 | font-weight: bold;
36 | }
37 | `
38 |
39 | const Select = styled.select`
40 | -webkit-appearance: none;
41 | font-size: 0.95rem;
42 | background: #fff;
43 | border: 1px solid #ccc;
44 | border-radius: 6px;
45 | padding: 7px 20px;
46 | margin-top: 20px;
47 | cursor: pointer;
48 | `
49 |
50 | const AgreeInfomation = styled.div`
51 | background: #fff;
52 | line-height: 1.6;
53 | padding: 20px 25px;
54 | margin: 25px 0;
55 | border: 1px solid #e4e4e4;
56 | border-top: 5px solid #c361ff;
57 | h2 {
58 | font-size: 24px;
59 | font-weight: bold;
60 | }
61 | ul {
62 | margin-top: 10px;
63 | margin-left: 20px;
64 | }
65 | b {
66 | font-weight: bold;
67 | }
68 | button {
69 | -webkit-appearance: none;
70 | margin-top: 15px;
71 | font-size: 0.95rem;
72 | border: 0;
73 | background: var(--main);
74 | padding: 7px 23px;
75 | color: #fff;
76 | cursor: pointer;
77 | font-family: inherit;
78 | }
79 | `
80 |
81 | const SelectDistanceBlock = styled.div`
82 | label {
83 | margin-right: 6px;
84 | }
85 | `
86 |
87 | const Mask = (): JSX.Element => {
88 | const [start, setStart] = useState(false) // 시작 여부
89 | const [err, setErr] = useState(0)
90 | const [search, setSearch] = useState(false) // 검색이 필요한가요?
91 | const [data, setData] = useState([]) // 검색 반환 데이터
92 |
93 | const [showDistance, setShowDistance] = useState(1000)
94 |
95 | const dataLoading = async (lat, lng, dis = 1000) => {
96 | const fetchData = await fetch(
97 | 'https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v2/storesByGeo/json?lat=' +
98 | lat +
99 | '&lng=' +
100 | lng +
101 | '&m=' +
102 | dis,
103 | )
104 | const jsonData = await fetchData.json()
105 | if (jsonData.count <= 0) setErr(2)
106 | else {
107 | const data = jsonData.stores.sort((a, b) => {
108 | return Math.sqrt(
109 | Math.pow(Math.abs(a.lat - b.lat) * (Math.PI / 180), 2) +
110 | Math.pow(Math.abs(a.lng - b.lng) * (Math.PI / 180), 2),
111 | )
112 | })
113 | setData(data)
114 | }
115 | }
116 |
117 | const loadOperation = (dis = 1000) => {
118 | if (!navigator.geolocation) {
119 | setSearch(true)
120 | } else {
121 | navigator.geolocation.getCurrentPosition(
122 | position => {
123 | dataLoading(position.coords.latitude, position.coords.longitude, dis)
124 | },
125 | err => {
126 | console.log(err)
127 | if (err.code === err.PERMISSION_DENIED) {
128 | setErr(1)
129 | }
130 | },
131 | )
132 | }
133 | }
134 |
135 | const changeDistance = (e): void => {
136 | setErr(0)
137 | setShowDistance(e.target.value)
138 | const action = (): void => {
139 | loadOperation(e.target.value)
140 | }
141 |
142 | // 사용자 기기 걱정
143 | if (
144 | e.target.value >= 3000 &&
145 | window.confirm(
146 | '주변에 약국이 많은 지역에서는 3km 이상의 검색은 비권장합니다.\n계속하겠습니까?',
147 | )
148 | ) {
149 | action()
150 | } else {
151 | action()
152 | }
153 | }
154 |
155 | if (process.browser) {
156 | const Infomation = (): JSX.Element => {
157 | if (search === true) {
158 | // 검색 페이지
159 | } else {
160 | return (
161 | <>
162 |
163 |
164 |
165 |
174 |
175 |
176 |
182 | {err === 2 ? (
183 | <>
184 |
185 | API가 동작하지 않거나 데이터가 없습니다.
186 |
187 | >
188 | ) : (
189 | <>
190 | {data && data.length > 0 ? (
191 | <>
192 | {data.map((item, i) => {
193 | if (item.remain_stat !== null) {
194 | return (
195 |
200 |
201 |
202 | )
203 | }
204 | })}
205 | >
206 | ) : (
207 | <>
208 |
Loading...
209 | >
210 | )}
211 | >
212 | )}
213 |
214 | >
215 | )
216 | }
217 | }
218 | return (
219 | <>
220 |
221 |
222 |
226 |
227 | {err === 1 && (
228 | <>
229 |
230 | 위치를 받아올 수 없습니다.
231 | 위치 권한이 수락되지 않았습니다.
232 |
233 | >
234 | )}
235 | {start ? (
236 |
237 | ) : (
238 | <>
239 |
240 |
241 | 사용 전 읽어주세요.
242 |
243 | -
244 |
245 | 제공되는 데이터는 실시간이 아니며, 5분 이상의 차이가 있을 수 있습니다.
246 |
247 |
248 | -
249 | 정보 업데이트 시각을 기준으로 현명한 판단 바랍니다.
250 |
251 | -
252 | 실제 재고와는 차이가 있기 때문에, 해당 데이터를 신뢰하지는 마시기 바랍니다.
253 |
254 | - 해당 데이터로 인하여 생기는 피해는 책임지지 않습니다.
255 |
256 |
264 |
265 |
266 | >
267 | )}
268 |
269 |
270 | >
271 | )
272 | } else {
273 | return (
274 | <>
275 |
276 |
277 |
281 |
282 | 해당 기능은 JavaScript가 켜져 있어야 이용 가능합니다.
283 |
284 |
285 | >
286 | )
287 | }
288 | }
289 |
290 | export default Mask
291 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
--------------------------------------------------------------------------------
/public/static/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/croco-dev/coronaInfo-frontend/77182b34ff45e06d0bb8db8077697442d3db3fe4/public/static/favicon/favicon.ico
--------------------------------------------------------------------------------
/public/static/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/croco-dev/coronaInfo-frontend/77182b34ff45e06d0bb8db8077697442d3db3fe4/public/static/images/bg.png
--------------------------------------------------------------------------------
/styles/core.scss:
--------------------------------------------------------------------------------
1 | // Reset
2 | @import './libraries/reset';
3 |
4 | :root {
5 | --main: #c361ff;
6 | }
7 |
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | body {
15 | background: #f5f5f5;
16 | color: #2c2c2c;
17 | font-family: 'Noto Sans KR', sans-serif;
18 | font-size: 0.9rem;
19 | }
20 |
21 | @import './libraries/grid';
22 |
--------------------------------------------------------------------------------
/styles/libraries/_grid.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)
3 | * Copyright 2011-2019 The Bootstrap Authors
4 | * Copyright 2011-2019 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 | .row {
8 | display: -ms-flexbox;
9 | display: flex;
10 | -ms-flex-wrap: wrap;
11 | flex-wrap: wrap;
12 | }
13 |
14 | .no-gutters {
15 | margin-right: 0;
16 | margin-left: 0;
17 | }
18 |
19 | .no-gutters > .col,
20 | .no-gutters > [class*='col-'] {
21 | padding-right: 0;
22 | padding-left: 0;
23 | }
24 |
25 | .col-1,
26 | .col-2,
27 | .col-3,
28 | .col-4,
29 | .col-5,
30 | .col-6,
31 | .col-7,
32 | .col-8,
33 | .col-9,
34 | .col-10,
35 | .col-11,
36 | .col-12,
37 | .col,
38 | .col-auto,
39 | .col-sm-1,
40 | .col-sm-2,
41 | .col-sm-3,
42 | .col-sm-4,
43 | .col-sm-5,
44 | .col-sm-6,
45 | .col-sm-7,
46 | .col-sm-8,
47 | .col-sm-9,
48 | .col-sm-10,
49 | .col-sm-11,
50 | .col-sm-12,
51 | .col-sm,
52 | .col-sm-auto,
53 | .col-md-1,
54 | .col-md-2,
55 | .col-md-3,
56 | .col-md-4,
57 | .col-md-5,
58 | .col-md-6,
59 | .col-md-7,
60 | .col-md-8,
61 | .col-md-9,
62 | .col-md-10,
63 | .col-md-11,
64 | .col-md-12,
65 | .col-md,
66 | .col-md-auto,
67 | .col-lg-1,
68 | .col-lg-2,
69 | .col-lg-3,
70 | .col-lg-4,
71 | .col-lg-5,
72 | .col-lg-6,
73 | .col-lg-7,
74 | .col-lg-8,
75 | .col-lg-9,
76 | .col-lg-10,
77 | .col-lg-11,
78 | .col-lg-12,
79 | .col-lg,
80 | .col-lg-auto,
81 | .col-xl-1,
82 | .col-xl-2,
83 | .col-xl-3,
84 | .col-xl-4,
85 | .col-xl-5,
86 | .col-xl-6,
87 | .col-xl-7,
88 | .col-xl-8,
89 | .col-xl-9,
90 | .col-xl-10,
91 | .col-xl-11,
92 | .col-xl-12,
93 | .col-xl,
94 | .col-xl-auto {
95 | position: relative;
96 | width: 100%;
97 | padding: 0 10px;
98 | }
99 |
100 | .col {
101 | -ms-flex-preferred-size: 0;
102 | flex-basis: 0;
103 | -ms-flex-positive: 1;
104 | flex-grow: 1;
105 | max-width: 100%;
106 | }
107 |
108 | .row-cols-1 > * {
109 | -ms-flex: 0 0 100%;
110 | flex: 0 0 100%;
111 | max-width: 100%;
112 | }
113 |
114 | .row-cols-2 > * {
115 | -ms-flex: 0 0 50%;
116 | flex: 0 0 50%;
117 | max-width: 50%;
118 | }
119 |
120 | .row-cols-3 > * {
121 | -ms-flex: 0 0 33.333333%;
122 | flex: 0 0 33.333333%;
123 | max-width: 33.333333%;
124 | }
125 |
126 | .row-cols-4 > * {
127 | -ms-flex: 0 0 25%;
128 | flex: 0 0 25%;
129 | max-width: 25%;
130 | }
131 |
132 | .row-cols-5 > * {
133 | -ms-flex: 0 0 20%;
134 | flex: 0 0 20%;
135 | max-width: 20%;
136 | }
137 |
138 | .row-cols-6 > * {
139 | -ms-flex: 0 0 16.666667%;
140 | flex: 0 0 16.666667%;
141 | max-width: 16.666667%;
142 | }
143 |
144 | .col-auto {
145 | -ms-flex: 0 0 auto;
146 | flex: 0 0 auto;
147 | width: auto;
148 | max-width: 100%;
149 | }
150 |
151 | .col-1 {
152 | -ms-flex: 0 0 8.333333%;
153 | flex: 0 0 8.333333%;
154 | max-width: 8.333333%;
155 | }
156 |
157 | .col-2 {
158 | -ms-flex: 0 0 16.666667%;
159 | flex: 0 0 16.666667%;
160 | max-width: 16.666667%;
161 | }
162 |
163 | .col-3 {
164 | -ms-flex: 0 0 25%;
165 | flex: 0 0 25%;
166 | max-width: 25%;
167 | }
168 |
169 | .col-4 {
170 | -ms-flex: 0 0 33.333333%;
171 | flex: 0 0 33.333333%;
172 | max-width: 33.333333%;
173 | }
174 |
175 | .col-5 {
176 | -ms-flex: 0 0 41.666667%;
177 | flex: 0 0 41.666667%;
178 | max-width: 41.666667%;
179 | }
180 |
181 | .col-6 {
182 | -ms-flex: 0 0 50%;
183 | flex: 0 0 50%;
184 | max-width: 50%;
185 | }
186 |
187 | .col-7 {
188 | -ms-flex: 0 0 58.333333%;
189 | flex: 0 0 58.333333%;
190 | max-width: 58.333333%;
191 | }
192 |
193 | .col-8 {
194 | -ms-flex: 0 0 66.666667%;
195 | flex: 0 0 66.666667%;
196 | max-width: 66.666667%;
197 | }
198 |
199 | .col-9 {
200 | -ms-flex: 0 0 75%;
201 | flex: 0 0 75%;
202 | max-width: 75%;
203 | }
204 |
205 | .col-10 {
206 | -ms-flex: 0 0 83.333333%;
207 | flex: 0 0 83.333333%;
208 | max-width: 83.333333%;
209 | }
210 |
211 | .col-11 {
212 | -ms-flex: 0 0 91.666667%;
213 | flex: 0 0 91.666667%;
214 | max-width: 91.666667%;
215 | }
216 |
217 | .col-12 {
218 | -ms-flex: 0 0 100%;
219 | flex: 0 0 100%;
220 | max-width: 100%;
221 | }
222 |
223 | .order-first {
224 | -ms-flex-order: -1;
225 | order: -1;
226 | }
227 |
228 | .order-last {
229 | -ms-flex-order: 13;
230 | order: 13;
231 | }
232 |
233 | .order-0 {
234 | -ms-flex-order: 0;
235 | order: 0;
236 | }
237 |
238 | .order-1 {
239 | -ms-flex-order: 1;
240 | order: 1;
241 | }
242 |
243 | .order-2 {
244 | -ms-flex-order: 2;
245 | order: 2;
246 | }
247 |
248 | .order-3 {
249 | -ms-flex-order: 3;
250 | order: 3;
251 | }
252 |
253 | .order-4 {
254 | -ms-flex-order: 4;
255 | order: 4;
256 | }
257 |
258 | .order-5 {
259 | -ms-flex-order: 5;
260 | order: 5;
261 | }
262 |
263 | .order-6 {
264 | -ms-flex-order: 6;
265 | order: 6;
266 | }
267 |
268 | .order-7 {
269 | -ms-flex-order: 7;
270 | order: 7;
271 | }
272 |
273 | .order-8 {
274 | -ms-flex-order: 8;
275 | order: 8;
276 | }
277 |
278 | .order-9 {
279 | -ms-flex-order: 9;
280 | order: 9;
281 | }
282 |
283 | .order-10 {
284 | -ms-flex-order: 10;
285 | order: 10;
286 | }
287 |
288 | .order-11 {
289 | -ms-flex-order: 11;
290 | order: 11;
291 | }
292 |
293 | .order-12 {
294 | -ms-flex-order: 12;
295 | order: 12;
296 | }
297 |
298 | .offset-1 {
299 | margin-left: 8.333333%;
300 | }
301 |
302 | .offset-2 {
303 | margin-left: 16.666667%;
304 | }
305 |
306 | .offset-3 {
307 | margin-left: 25%;
308 | }
309 |
310 | .offset-4 {
311 | margin-left: 33.333333%;
312 | }
313 |
314 | .offset-5 {
315 | margin-left: 41.666667%;
316 | }
317 |
318 | .offset-6 {
319 | margin-left: 50%;
320 | }
321 |
322 | .offset-7 {
323 | margin-left: 58.333333%;
324 | }
325 |
326 | .offset-8 {
327 | margin-left: 66.666667%;
328 | }
329 |
330 | .offset-9 {
331 | margin-left: 75%;
332 | }
333 |
334 | .offset-10 {
335 | margin-left: 83.333333%;
336 | }
337 |
338 | .offset-11 {
339 | margin-left: 91.666667%;
340 | }
341 |
342 | @media (min-width: 576px) {
343 | .col-sm {
344 | -ms-flex-preferred-size: 0;
345 | flex-basis: 0;
346 | -ms-flex-positive: 1;
347 | flex-grow: 1;
348 | max-width: 100%;
349 | }
350 | .row-cols-sm-1 > * {
351 | -ms-flex: 0 0 100%;
352 | flex: 0 0 100%;
353 | max-width: 100%;
354 | }
355 | .row-cols-sm-2 > * {
356 | -ms-flex: 0 0 50%;
357 | flex: 0 0 50%;
358 | max-width: 50%;
359 | }
360 | .row-cols-sm-3 > * {
361 | -ms-flex: 0 0 33.333333%;
362 | flex: 0 0 33.333333%;
363 | max-width: 33.333333%;
364 | }
365 | .row-cols-sm-4 > * {
366 | -ms-flex: 0 0 25%;
367 | flex: 0 0 25%;
368 | max-width: 25%;
369 | }
370 | .row-cols-sm-5 > * {
371 | -ms-flex: 0 0 20%;
372 | flex: 0 0 20%;
373 | max-width: 20%;
374 | }
375 | .row-cols-sm-6 > * {
376 | -ms-flex: 0 0 16.666667%;
377 | flex: 0 0 16.666667%;
378 | max-width: 16.666667%;
379 | }
380 | .col-sm-auto {
381 | -ms-flex: 0 0 auto;
382 | flex: 0 0 auto;
383 | width: auto;
384 | max-width: 100%;
385 | }
386 | .col-sm-1 {
387 | -ms-flex: 0 0 8.333333%;
388 | flex: 0 0 8.333333%;
389 | max-width: 8.333333%;
390 | }
391 | .col-sm-2 {
392 | -ms-flex: 0 0 16.666667%;
393 | flex: 0 0 16.666667%;
394 | max-width: 16.666667%;
395 | }
396 | .col-sm-3 {
397 | -ms-flex: 0 0 25%;
398 | flex: 0 0 25%;
399 | max-width: 25%;
400 | }
401 | .col-sm-4 {
402 | -ms-flex: 0 0 33.333333%;
403 | flex: 0 0 33.333333%;
404 | max-width: 33.333333%;
405 | }
406 | .col-sm-5 {
407 | -ms-flex: 0 0 41.666667%;
408 | flex: 0 0 41.666667%;
409 | max-width: 41.666667%;
410 | }
411 | .col-sm-6 {
412 | -ms-flex: 0 0 50%;
413 | flex: 0 0 50%;
414 | max-width: 50%;
415 | }
416 | .col-sm-7 {
417 | -ms-flex: 0 0 58.333333%;
418 | flex: 0 0 58.333333%;
419 | max-width: 58.333333%;
420 | }
421 | .col-sm-8 {
422 | -ms-flex: 0 0 66.666667%;
423 | flex: 0 0 66.666667%;
424 | max-width: 66.666667%;
425 | }
426 | .col-sm-9 {
427 | -ms-flex: 0 0 75%;
428 | flex: 0 0 75%;
429 | max-width: 75%;
430 | }
431 | .col-sm-10 {
432 | -ms-flex: 0 0 83.333333%;
433 | flex: 0 0 83.333333%;
434 | max-width: 83.333333%;
435 | }
436 | .col-sm-11 {
437 | -ms-flex: 0 0 91.666667%;
438 | flex: 0 0 91.666667%;
439 | max-width: 91.666667%;
440 | }
441 | .col-sm-12 {
442 | -ms-flex: 0 0 100%;
443 | flex: 0 0 100%;
444 | max-width: 100%;
445 | }
446 | .order-sm-first {
447 | -ms-flex-order: -1;
448 | order: -1;
449 | }
450 | .order-sm-last {
451 | -ms-flex-order: 13;
452 | order: 13;
453 | }
454 | .order-sm-0 {
455 | -ms-flex-order: 0;
456 | order: 0;
457 | }
458 | .order-sm-1 {
459 | -ms-flex-order: 1;
460 | order: 1;
461 | }
462 | .order-sm-2 {
463 | -ms-flex-order: 2;
464 | order: 2;
465 | }
466 | .order-sm-3 {
467 | -ms-flex-order: 3;
468 | order: 3;
469 | }
470 | .order-sm-4 {
471 | -ms-flex-order: 4;
472 | order: 4;
473 | }
474 | .order-sm-5 {
475 | -ms-flex-order: 5;
476 | order: 5;
477 | }
478 | .order-sm-6 {
479 | -ms-flex-order: 6;
480 | order: 6;
481 | }
482 | .order-sm-7 {
483 | -ms-flex-order: 7;
484 | order: 7;
485 | }
486 | .order-sm-8 {
487 | -ms-flex-order: 8;
488 | order: 8;
489 | }
490 | .order-sm-9 {
491 | -ms-flex-order: 9;
492 | order: 9;
493 | }
494 | .order-sm-10 {
495 | -ms-flex-order: 10;
496 | order: 10;
497 | }
498 | .order-sm-11 {
499 | -ms-flex-order: 11;
500 | order: 11;
501 | }
502 | .order-sm-12 {
503 | -ms-flex-order: 12;
504 | order: 12;
505 | }
506 | .offset-sm-0 {
507 | margin-left: 0;
508 | }
509 | .offset-sm-1 {
510 | margin-left: 8.333333%;
511 | }
512 | .offset-sm-2 {
513 | margin-left: 16.666667%;
514 | }
515 | .offset-sm-3 {
516 | margin-left: 25%;
517 | }
518 | .offset-sm-4 {
519 | margin-left: 33.333333%;
520 | }
521 | .offset-sm-5 {
522 | margin-left: 41.666667%;
523 | }
524 | .offset-sm-6 {
525 | margin-left: 50%;
526 | }
527 | .offset-sm-7 {
528 | margin-left: 58.333333%;
529 | }
530 | .offset-sm-8 {
531 | margin-left: 66.666667%;
532 | }
533 | .offset-sm-9 {
534 | margin-left: 75%;
535 | }
536 | .offset-sm-10 {
537 | margin-left: 83.333333%;
538 | }
539 | .offset-sm-11 {
540 | margin-left: 91.666667%;
541 | }
542 | }
543 |
544 | @media (min-width: 768px) {
545 | .col-md {
546 | -ms-flex-preferred-size: 0;
547 | flex-basis: 0;
548 | -ms-flex-positive: 1;
549 | flex-grow: 1;
550 | max-width: 100%;
551 | }
552 | .row-cols-md-1 > * {
553 | -ms-flex: 0 0 100%;
554 | flex: 0 0 100%;
555 | max-width: 100%;
556 | }
557 | .row-cols-md-2 > * {
558 | -ms-flex: 0 0 50%;
559 | flex: 0 0 50%;
560 | max-width: 50%;
561 | }
562 | .row-cols-md-3 > * {
563 | -ms-flex: 0 0 33.333333%;
564 | flex: 0 0 33.333333%;
565 | max-width: 33.333333%;
566 | }
567 | .row-cols-md-4 > * {
568 | -ms-flex: 0 0 25%;
569 | flex: 0 0 25%;
570 | max-width: 25%;
571 | }
572 | .row-cols-md-5 > * {
573 | -ms-flex: 0 0 20%;
574 | flex: 0 0 20%;
575 | max-width: 20%;
576 | }
577 | .row-cols-md-6 > * {
578 | -ms-flex: 0 0 16.666667%;
579 | flex: 0 0 16.666667%;
580 | max-width: 16.666667%;
581 | }
582 | .col-md-auto {
583 | -ms-flex: 0 0 auto;
584 | flex: 0 0 auto;
585 | width: auto;
586 | max-width: 100%;
587 | }
588 | .col-md-1 {
589 | -ms-flex: 0 0 8.333333%;
590 | flex: 0 0 8.333333%;
591 | max-width: 8.333333%;
592 | }
593 | .col-md-2 {
594 | -ms-flex: 0 0 16.666667%;
595 | flex: 0 0 16.666667%;
596 | max-width: 16.666667%;
597 | }
598 | .col-md-3 {
599 | -ms-flex: 0 0 25%;
600 | flex: 0 0 25%;
601 | max-width: 25%;
602 | }
603 | .col-md-4 {
604 | -ms-flex: 0 0 33.333333%;
605 | flex: 0 0 33.333333%;
606 | max-width: 33.333333%;
607 | }
608 | .col-md-5 {
609 | -ms-flex: 0 0 41.666667%;
610 | flex: 0 0 41.666667%;
611 | max-width: 41.666667%;
612 | }
613 | .col-md-6 {
614 | -ms-flex: 0 0 50%;
615 | flex: 0 0 50%;
616 | max-width: 50%;
617 | }
618 | .col-md-7 {
619 | -ms-flex: 0 0 58.333333%;
620 | flex: 0 0 58.333333%;
621 | max-width: 58.333333%;
622 | }
623 | .col-md-8 {
624 | -ms-flex: 0 0 66.666667%;
625 | flex: 0 0 66.666667%;
626 | max-width: 66.666667%;
627 | }
628 | .col-md-9 {
629 | -ms-flex: 0 0 75%;
630 | flex: 0 0 75%;
631 | max-width: 75%;
632 | }
633 | .col-md-10 {
634 | -ms-flex: 0 0 83.333333%;
635 | flex: 0 0 83.333333%;
636 | max-width: 83.333333%;
637 | }
638 | .col-md-11 {
639 | -ms-flex: 0 0 91.666667%;
640 | flex: 0 0 91.666667%;
641 | max-width: 91.666667%;
642 | }
643 | .col-md-12 {
644 | -ms-flex: 0 0 100%;
645 | flex: 0 0 100%;
646 | max-width: 100%;
647 | }
648 | .order-md-first {
649 | -ms-flex-order: -1;
650 | order: -1;
651 | }
652 | .order-md-last {
653 | -ms-flex-order: 13;
654 | order: 13;
655 | }
656 | .order-md-0 {
657 | -ms-flex-order: 0;
658 | order: 0;
659 | }
660 | .order-md-1 {
661 | -ms-flex-order: 1;
662 | order: 1;
663 | }
664 | .order-md-2 {
665 | -ms-flex-order: 2;
666 | order: 2;
667 | }
668 | .order-md-3 {
669 | -ms-flex-order: 3;
670 | order: 3;
671 | }
672 | .order-md-4 {
673 | -ms-flex-order: 4;
674 | order: 4;
675 | }
676 | .order-md-5 {
677 | -ms-flex-order: 5;
678 | order: 5;
679 | }
680 | .order-md-6 {
681 | -ms-flex-order: 6;
682 | order: 6;
683 | }
684 | .order-md-7 {
685 | -ms-flex-order: 7;
686 | order: 7;
687 | }
688 | .order-md-8 {
689 | -ms-flex-order: 8;
690 | order: 8;
691 | }
692 | .order-md-9 {
693 | -ms-flex-order: 9;
694 | order: 9;
695 | }
696 | .order-md-10 {
697 | -ms-flex-order: 10;
698 | order: 10;
699 | }
700 | .order-md-11 {
701 | -ms-flex-order: 11;
702 | order: 11;
703 | }
704 | .order-md-12 {
705 | -ms-flex-order: 12;
706 | order: 12;
707 | }
708 | .offset-md-0 {
709 | margin-left: 0;
710 | }
711 | .offset-md-1 {
712 | margin-left: 8.333333%;
713 | }
714 | .offset-md-2 {
715 | margin-left: 16.666667%;
716 | }
717 | .offset-md-3 {
718 | margin-left: 25%;
719 | }
720 | .offset-md-4 {
721 | margin-left: 33.333333%;
722 | }
723 | .offset-md-5 {
724 | margin-left: 41.666667%;
725 | }
726 | .offset-md-6 {
727 | margin-left: 50%;
728 | }
729 | .offset-md-7 {
730 | margin-left: 58.333333%;
731 | }
732 | .offset-md-8 {
733 | margin-left: 66.666667%;
734 | }
735 | .offset-md-9 {
736 | margin-left: 75%;
737 | }
738 | .offset-md-10 {
739 | margin-left: 83.333333%;
740 | }
741 | .offset-md-11 {
742 | margin-left: 91.666667%;
743 | }
744 | }
745 |
746 | @media (min-width: 992px) {
747 | .col-lg {
748 | -ms-flex-preferred-size: 0;
749 | flex-basis: 0;
750 | -ms-flex-positive: 1;
751 | flex-grow: 1;
752 | max-width: 100%;
753 | }
754 | .row-cols-lg-1 > * {
755 | -ms-flex: 0 0 100%;
756 | flex: 0 0 100%;
757 | max-width: 100%;
758 | }
759 | .row-cols-lg-2 > * {
760 | -ms-flex: 0 0 50%;
761 | flex: 0 0 50%;
762 | max-width: 50%;
763 | }
764 | .row-cols-lg-3 > * {
765 | -ms-flex: 0 0 33.333333%;
766 | flex: 0 0 33.333333%;
767 | max-width: 33.333333%;
768 | }
769 | .row-cols-lg-4 > * {
770 | -ms-flex: 0 0 25%;
771 | flex: 0 0 25%;
772 | max-width: 25%;
773 | }
774 | .row-cols-lg-5 > * {
775 | -ms-flex: 0 0 20%;
776 | flex: 0 0 20%;
777 | max-width: 20%;
778 | }
779 | .row-cols-lg-6 > * {
780 | -ms-flex: 0 0 16.666667%;
781 | flex: 0 0 16.666667%;
782 | max-width: 16.666667%;
783 | }
784 | .col-lg-auto {
785 | -ms-flex: 0 0 auto;
786 | flex: 0 0 auto;
787 | width: auto;
788 | max-width: 100%;
789 | }
790 | .col-lg-1 {
791 | -ms-flex: 0 0 8.333333%;
792 | flex: 0 0 8.333333%;
793 | max-width: 8.333333%;
794 | }
795 | .col-lg-2 {
796 | -ms-flex: 0 0 16.666667%;
797 | flex: 0 0 16.666667%;
798 | max-width: 16.666667%;
799 | }
800 | .col-lg-3 {
801 | -ms-flex: 0 0 25%;
802 | flex: 0 0 25%;
803 | max-width: 25%;
804 | }
805 | .col-lg-4 {
806 | -ms-flex: 0 0 33.333333%;
807 | flex: 0 0 33.333333%;
808 | max-width: 33.333333%;
809 | }
810 | .col-lg-5 {
811 | -ms-flex: 0 0 41.666667%;
812 | flex: 0 0 41.666667%;
813 | max-width: 41.666667%;
814 | }
815 | .col-lg-6 {
816 | -ms-flex: 0 0 50%;
817 | flex: 0 0 50%;
818 | max-width: 50%;
819 | }
820 | .col-lg-7 {
821 | -ms-flex: 0 0 58.333333%;
822 | flex: 0 0 58.333333%;
823 | max-width: 58.333333%;
824 | }
825 | .col-lg-8 {
826 | -ms-flex: 0 0 66.666667%;
827 | flex: 0 0 66.666667%;
828 | max-width: 66.666667%;
829 | }
830 | .col-lg-9 {
831 | -ms-flex: 0 0 75%;
832 | flex: 0 0 75%;
833 | max-width: 75%;
834 | }
835 | .col-lg-10 {
836 | -ms-flex: 0 0 83.333333%;
837 | flex: 0 0 83.333333%;
838 | max-width: 83.333333%;
839 | }
840 | .col-lg-11 {
841 | -ms-flex: 0 0 91.666667%;
842 | flex: 0 0 91.666667%;
843 | max-width: 91.666667%;
844 | }
845 | .col-lg-12 {
846 | -ms-flex: 0 0 100%;
847 | flex: 0 0 100%;
848 | max-width: 100%;
849 | }
850 | .order-lg-first {
851 | -ms-flex-order: -1;
852 | order: -1;
853 | }
854 | .order-lg-last {
855 | -ms-flex-order: 13;
856 | order: 13;
857 | }
858 | .order-lg-0 {
859 | -ms-flex-order: 0;
860 | order: 0;
861 | }
862 | .order-lg-1 {
863 | -ms-flex-order: 1;
864 | order: 1;
865 | }
866 | .order-lg-2 {
867 | -ms-flex-order: 2;
868 | order: 2;
869 | }
870 | .order-lg-3 {
871 | -ms-flex-order: 3;
872 | order: 3;
873 | }
874 | .order-lg-4 {
875 | -ms-flex-order: 4;
876 | order: 4;
877 | }
878 | .order-lg-5 {
879 | -ms-flex-order: 5;
880 | order: 5;
881 | }
882 | .order-lg-6 {
883 | -ms-flex-order: 6;
884 | order: 6;
885 | }
886 | .order-lg-7 {
887 | -ms-flex-order: 7;
888 | order: 7;
889 | }
890 | .order-lg-8 {
891 | -ms-flex-order: 8;
892 | order: 8;
893 | }
894 | .order-lg-9 {
895 | -ms-flex-order: 9;
896 | order: 9;
897 | }
898 | .order-lg-10 {
899 | -ms-flex-order: 10;
900 | order: 10;
901 | }
902 | .order-lg-11 {
903 | -ms-flex-order: 11;
904 | order: 11;
905 | }
906 | .order-lg-12 {
907 | -ms-flex-order: 12;
908 | order: 12;
909 | }
910 | .offset-lg-0 {
911 | margin-left: 0;
912 | }
913 | .offset-lg-1 {
914 | margin-left: 8.333333%;
915 | }
916 | .offset-lg-2 {
917 | margin-left: 16.666667%;
918 | }
919 | .offset-lg-3 {
920 | margin-left: 25%;
921 | }
922 | .offset-lg-4 {
923 | margin-left: 33.333333%;
924 | }
925 | .offset-lg-5 {
926 | margin-left: 41.666667%;
927 | }
928 | .offset-lg-6 {
929 | margin-left: 50%;
930 | }
931 | .offset-lg-7 {
932 | margin-left: 58.333333%;
933 | }
934 | .offset-lg-8 {
935 | margin-left: 66.666667%;
936 | }
937 | .offset-lg-9 {
938 | margin-left: 75%;
939 | }
940 | .offset-lg-10 {
941 | margin-left: 83.333333%;
942 | }
943 | .offset-lg-11 {
944 | margin-left: 91.666667%;
945 | }
946 | }
947 |
948 | @media (min-width: 1200px) {
949 | .col-xl {
950 | -ms-flex-preferred-size: 0;
951 | flex-basis: 0;
952 | -ms-flex-positive: 1;
953 | flex-grow: 1;
954 | max-width: 100%;
955 | }
956 | .row-cols-xl-1 > * {
957 | -ms-flex: 0 0 100%;
958 | flex: 0 0 100%;
959 | max-width: 100%;
960 | }
961 | .row-cols-xl-2 > * {
962 | -ms-flex: 0 0 50%;
963 | flex: 0 0 50%;
964 | max-width: 50%;
965 | }
966 | .row-cols-xl-3 > * {
967 | -ms-flex: 0 0 33.333333%;
968 | flex: 0 0 33.333333%;
969 | max-width: 33.333333%;
970 | }
971 | .row-cols-xl-4 > * {
972 | -ms-flex: 0 0 25%;
973 | flex: 0 0 25%;
974 | max-width: 25%;
975 | }
976 | .row-cols-xl-5 > * {
977 | -ms-flex: 0 0 20%;
978 | flex: 0 0 20%;
979 | max-width: 20%;
980 | }
981 | .row-cols-xl-6 > * {
982 | -ms-flex: 0 0 16.666667%;
983 | flex: 0 0 16.666667%;
984 | max-width: 16.666667%;
985 | }
986 | .col-xl-auto {
987 | -ms-flex: 0 0 auto;
988 | flex: 0 0 auto;
989 | width: auto;
990 | max-width: 100%;
991 | }
992 | .col-xl-1 {
993 | -ms-flex: 0 0 8.333333%;
994 | flex: 0 0 8.333333%;
995 | max-width: 8.333333%;
996 | }
997 | .col-xl-2 {
998 | -ms-flex: 0 0 16.666667%;
999 | flex: 0 0 16.666667%;
1000 | max-width: 16.666667%;
1001 | }
1002 | .col-xl-3 {
1003 | -ms-flex: 0 0 25%;
1004 | flex: 0 0 25%;
1005 | max-width: 25%;
1006 | }
1007 | .col-xl-4 {
1008 | -ms-flex: 0 0 33.333333%;
1009 | flex: 0 0 33.333333%;
1010 | max-width: 33.333333%;
1011 | }
1012 | .col-xl-5 {
1013 | -ms-flex: 0 0 41.666667%;
1014 | flex: 0 0 41.666667%;
1015 | max-width: 41.666667%;
1016 | }
1017 | .col-xl-6 {
1018 | -ms-flex: 0 0 50%;
1019 | flex: 0 0 50%;
1020 | max-width: 50%;
1021 | }
1022 | .col-xl-7 {
1023 | -ms-flex: 0 0 58.333333%;
1024 | flex: 0 0 58.333333%;
1025 | max-width: 58.333333%;
1026 | }
1027 | .col-xl-8 {
1028 | -ms-flex: 0 0 66.666667%;
1029 | flex: 0 0 66.666667%;
1030 | max-width: 66.666667%;
1031 | }
1032 | .col-xl-9 {
1033 | -ms-flex: 0 0 75%;
1034 | flex: 0 0 75%;
1035 | max-width: 75%;
1036 | }
1037 | .col-xl-10 {
1038 | -ms-flex: 0 0 83.333333%;
1039 | flex: 0 0 83.333333%;
1040 | max-width: 83.333333%;
1041 | }
1042 | .col-xl-11 {
1043 | -ms-flex: 0 0 91.666667%;
1044 | flex: 0 0 91.666667%;
1045 | max-width: 91.666667%;
1046 | }
1047 | .col-xl-12 {
1048 | -ms-flex: 0 0 100%;
1049 | flex: 0 0 100%;
1050 | max-width: 100%;
1051 | }
1052 | .order-xl-first {
1053 | -ms-flex-order: -1;
1054 | order: -1;
1055 | }
1056 | .order-xl-last {
1057 | -ms-flex-order: 13;
1058 | order: 13;
1059 | }
1060 | .order-xl-0 {
1061 | -ms-flex-order: 0;
1062 | order: 0;
1063 | }
1064 | .order-xl-1 {
1065 | -ms-flex-order: 1;
1066 | order: 1;
1067 | }
1068 | .order-xl-2 {
1069 | -ms-flex-order: 2;
1070 | order: 2;
1071 | }
1072 | .order-xl-3 {
1073 | -ms-flex-order: 3;
1074 | order: 3;
1075 | }
1076 | .order-xl-4 {
1077 | -ms-flex-order: 4;
1078 | order: 4;
1079 | }
1080 | .order-xl-5 {
1081 | -ms-flex-order: 5;
1082 | order: 5;
1083 | }
1084 | .order-xl-6 {
1085 | -ms-flex-order: 6;
1086 | order: 6;
1087 | }
1088 | .order-xl-7 {
1089 | -ms-flex-order: 7;
1090 | order: 7;
1091 | }
1092 | .order-xl-8 {
1093 | -ms-flex-order: 8;
1094 | order: 8;
1095 | }
1096 | .order-xl-9 {
1097 | -ms-flex-order: 9;
1098 | order: 9;
1099 | }
1100 | .order-xl-10 {
1101 | -ms-flex-order: 10;
1102 | order: 10;
1103 | }
1104 | .order-xl-11 {
1105 | -ms-flex-order: 11;
1106 | order: 11;
1107 | }
1108 | .order-xl-12 {
1109 | -ms-flex-order: 12;
1110 | order: 12;
1111 | }
1112 | .offset-xl-0 {
1113 | margin-left: 0;
1114 | }
1115 | .offset-xl-1 {
1116 | margin-left: 8.333333%;
1117 | }
1118 | .offset-xl-2 {
1119 | margin-left: 16.666667%;
1120 | }
1121 | .offset-xl-3 {
1122 | margin-left: 25%;
1123 | }
1124 | .offset-xl-4 {
1125 | margin-left: 33.333333%;
1126 | }
1127 | .offset-xl-5 {
1128 | margin-left: 41.666667%;
1129 | }
1130 | .offset-xl-6 {
1131 | margin-left: 50%;
1132 | }
1133 | .offset-xl-7 {
1134 | margin-left: 58.333333%;
1135 | }
1136 | .offset-xl-8 {
1137 | margin-left: 66.666667%;
1138 | }
1139 | .offset-xl-9 {
1140 | margin-left: 75%;
1141 | }
1142 | .offset-xl-10 {
1143 | margin-left: 83.333333%;
1144 | }
1145 | .offset-xl-11 {
1146 | margin-left: 91.666667%;
1147 | }
1148 | }
1149 |
--------------------------------------------------------------------------------
/styles/libraries/_reset.scss:
--------------------------------------------------------------------------------
1 | html,
2 | body,
3 | div,
4 | span,
5 | applet,
6 | object,
7 | iframe,
8 | h1,
9 | h2,
10 | h3,
11 | h4,
12 | h5,
13 | h6,
14 | p,
15 | blockquote,
16 | pre,
17 | a,
18 | abbr,
19 | acronym,
20 | address,
21 | big,
22 | cite,
23 | code,
24 | del,
25 | dfn,
26 | em,
27 | img,
28 | ins,
29 | kbd,
30 | q,
31 | s,
32 | samp,
33 | small,
34 | strike,
35 | strong,
36 | sub,
37 | sup,
38 | tt,
39 | var,
40 | b,
41 | u,
42 | i,
43 | center,
44 | dl,
45 | dt,
46 | dd,
47 | ol,
48 | ul,
49 | li,
50 | fieldset,
51 | form,
52 | label,
53 | legend,
54 | table,
55 | caption,
56 | tbody,
57 | tfoot,
58 | thead,
59 | tr,
60 | th,
61 | td,
62 | article,
63 | aside,
64 | canvas,
65 | details,
66 | embed,
67 | figure,
68 | figcaption,
69 | footer,
70 | header,
71 | hgroup,
72 | menu,
73 | nav,
74 | output,
75 | ruby,
76 | section,
77 | summary,
78 | time,
79 | mark,
80 | audio,
81 | video {
82 | margin: 0;
83 | padding: 0;
84 | border: 0;
85 | font-size: 100%;
86 | font: inherit;
87 | vertical-align: baseline;
88 | }
89 | article,
90 | aside,
91 | details,
92 | figcaption,
93 | figure,
94 | footer,
95 | header,
96 | hgroup,
97 | menu,
98 | nav,
99 | section {
100 | display: block;
101 | }
102 | body {
103 | line-height: 1;
104 | }
105 | blockquote,
106 | q {
107 | quotes: none;
108 | }
109 | blockquote:before,
110 | blockquote:after,
111 | q:before,
112 | q:after {
113 | content: '';
114 | content: none;
115 | }
116 | table {
117 | border-collapse: collapse;
118 | border-spacing: 0;
119 | }
120 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": false,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "baseUrl": "./",
17 | "paths": {
18 | "@/*": ["./*"]
19 | }
20 | },
21 | "exclude": ["node_modules"],
22 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
23 | }
24 |
--------------------------------------------------------------------------------