데이터 시각화 특강 (2주차) 9월13일
박스플랏, 히스토그램, 히스토그램 평활화
• 최서연 • 71 min read
-
(1/8): 박스플랏: 전북고예제 (평균은 좋은 측정값인가?) (숫자 무시~~)
-
(2/8): 박스플랏 기본개념
-
(3/8): plotly
-
(4/8): 히스토그램
-
(5/8): 히스토그램 2개 겹쳐서 비교하기
-
(7/8): 히스토그램 평활화
-
(8/8): 히스토그램 평활화
import matplotlib.pyplot as plt
import numpy as np
-
전북고등학교에서 통계학을 수업하는 두 선생님이 있다. 편의상 A선생님과 B선생님이라고 하자. A선생님이 강의한 반의 통계학 점수는 79.1점이고, B선생님이 강의한 반의 통계학 점수는 78.3점 이라고 하자.
-
의사결정: A선생님에게 배운 학생들의 실력이 평균적으로 좋을 것이다.
y1=[75,75,76,76,77,77,79,79,79,98] # A선생님에게 통계학을 배운 학생의 점수들
y2=[76,76,77,77,78,78,80,80,80,81] # B선생님에게 통계학을 배운 학생의 점수들
np.mean(y1),np.mean(y2)
(79.1, 78.3)
-
평균은 A반(=A선생님에게 통계학을 배운 반)이 더 높다. 그런데 98점을 받은 학생때문에 전체평균이 올라간 것이고, 나머지 학생들은 전체적으로 B반 학생들이 점수가 더 높다고 해석할 수 있다.
-
단순한 평균비교보다 분포를 비교해보는 것이 중요하다. 분포를 살펴보는 방법 중 유용한 방법이 박스플랏이다.
plt.boxplot(y1)
{'whiskers': [<matplotlib.lines.Line2D at 0x7f6a8ef5e430>, <matplotlib.lines.Line2D at 0x7f6a8ef5e7c0>], 'caps': [<matplotlib.lines.Line2D at 0x7f6a8ef5eb50>, <matplotlib.lines.Line2D at 0x7f6a8ef5eee0>], 'boxes': [<matplotlib.lines.Line2D at 0x7f6a8ef5e0a0>], 'medians': [<matplotlib.lines.Line2D at 0x7f6a8ef672b0>], 'fliers': [<matplotlib.lines.Line2D at 0x7f6a8ef67640>], 'means': []}
- A반의 boxplot
- 뚝 떨어진 하나의 점은 98점
- 붉은 선은 중앙값 (평균이 아니라 중앙값)
- 나머지 점들은 7~80점에 분포되어있다.
plt.boxplot(y2)
{'whiskers': [<matplotlib.lines.Line2D at 0x7f6a8eec0ac0>, <matplotlib.lines.Line2D at 0x7f6a8eec0e50>], 'caps': [<matplotlib.lines.Line2D at 0x7f6a8eecc220>, <matplotlib.lines.Line2D at 0x7f6a8eecc5b0>], 'boxes': [<matplotlib.lines.Line2D at 0x7f6a8eec0700>], 'medians': [<matplotlib.lines.Line2D at 0x7f6a8eecc940>], 'fliers': [<matplotlib.lines.Line2D at 0x7f6a8eecccd0>], 'means': []}
- B반의 boxplot
-
아래와 같이 하면 박스플랏을 나란히 그릴 수 있다.
plt.boxplot([y1,y2]) # 묶어주는 것 잊지 말기..
{'whiskers': [<matplotlib.lines.Line2D at 0x7f6a8eeb07c0>, <matplotlib.lines.Line2D at 0x7f6a8eeb0b50>, <matplotlib.lines.Line2D at 0x7f6a8ee47130>, <matplotlib.lines.Line2D at 0x7f6a8ee474c0>], 'caps': [<matplotlib.lines.Line2D at 0x7f6a8eeb0ee0>, <matplotlib.lines.Line2D at 0x7f6a8ee3c2b0>, <matplotlib.lines.Line2D at 0x7f6a8ee47850>, <matplotlib.lines.Line2D at 0x7f6a8ee47be0>], 'boxes': [<matplotlib.lines.Line2D at 0x7f6a8eeb0430>, <matplotlib.lines.Line2D at 0x7f6a8ee3cd60>], 'medians': [<matplotlib.lines.Line2D at 0x7f6a8ee3c640>, <matplotlib.lines.Line2D at 0x7f6a8ee47f70>], 'fliers': [<matplotlib.lines.Line2D at 0x7f6a8ee3c9d0>, <matplotlib.lines.Line2D at 0x7f6a8ee55340>], 'means': []}
-
미적인 그래프는 아니지만 이정도는 괜찮은것 같다.
np.random.seed(916170)
# connection path is here: https://stackoverflow.com/questions/6146290/plotting-a-line-over-several-graphs
mu, sigma = 0, 1 # mean and standard deviation
s = np.random.normal(mu, sigma, 1000)
fig, axes = plt.subplots(nrows = 1, ncols = 1, figsize=(10, 5))
# rectangular box plot
bplot = axes.boxplot(s,
vert=False,
patch_artist=True,
showfliers=True, # This would show outliers (the remaining .7% of the data)
positions = [0],
boxprops = dict(linestyle='--', linewidth=2, color='Black', facecolor = 'red', alpha = .4),
medianprops = dict(linestyle='-', linewidth=2, color='Yellow'),
whiskerprops = dict(linestyle='-', linewidth=2, color='Blue', alpha = .4),
capprops = dict(linestyle='-', linewidth=2, color='Black'),
flierprops = dict(marker='o', markerfacecolor='green', markersize=10,
linestyle='none', alpha = .4),
widths = .3,
zorder = 1)
axes.set_xlim(-4, 4)
plt.xticks(fontsize = 14)
axes.set_yticks([])
axes.annotate(r'',
xy=(-.73, .205), xycoords='data',
xytext=(.66, .205), textcoords='data',
arrowprops=dict(arrowstyle="|-|",
connectionstyle="arc3")
);
axes.text(0, .25, "Interquartile Range \n(IQR)", horizontalalignment='center', fontsize=18)
axes.text(0, -.21, r"Median", horizontalalignment='center', fontsize=16);
axes.text(2.65, -.15, "\"Maximum\"", horizontalalignment='center', fontsize=18);
axes.text(-2.65, -.15, "\"Minimum\"", horizontalalignment='center', fontsize=18);
axes.text(-.68, -.24, r"Q1", horizontalalignment='center', fontsize=18);
axes.text(-2.65, -.21, r"(Q1 - 1.5*IQR)", horizontalalignment='center', fontsize=16);
axes.text(.6745, -.24, r"Q3", horizontalalignment='center', fontsize=18);
axes.text(.6745, -.30, r"(75th Percentile)", horizontalalignment='center', fontsize=12);
axes.text(-.68, -.30, r"(25th Percentile)", horizontalalignment='center', fontsize=12);
axes.text(2.65, -.21, r"(Q3 + 1.5*IQR)", horizontalalignment='center', fontsize=16);
axes.annotate('Outliers', xy=(2.93,0.015), xytext=(2.52,0.20), fontsize = 18,
arrowprops={'arrowstyle': '->', 'color': 'black', 'lw': 2},
va='center');
axes.annotate('Outliers', xy=(-3.01,0.015), xytext=(-3.41,0.20), fontsize = 18,
arrowprops={'arrowstyle': '->', 'color': 'black', 'lw': 2},
va='center');
fig.tight_layout()
- 이상점은 동 떨어진 점들
- 1사분위부터 3사분위까지 박스로 나타냄!
- 1사분위수 - 1.5IQR부터 3사분위수 + 1.5IQR까지 선으로 나타냄
!pip install plotly
!pip install ipywidgets
!pip install jupyter-dash
!pip install dash
!pip install pandas
import plotly.express as px
import pandas as pd
from IPython.display import HTML
A=pd.DataFrame({'score':y1,'class':['A']*len(y1)})
# score열에는 y1을 입력, class 열에는 A를 y1의 길이만큼 반복
B=pd.DataFrame({'score':y2,'class':['B']*len(y2)})
# score열에는 y2를 입력, class 열에는 B를 y2의 길이만큼 반복
df=pd.concat([A,B],ignore_index=True)
# ignore_index는 순서를 이어주는, 즉 각 데이터 셋의 순서 무시하기
df
score | class | |
---|---|---|
0 | 75 | A |
1 | 75 | A |
2 | 76 | A |
3 | 76 | A |
4 | 77 | A |
5 | 77 | A |
6 | 79 | A |
7 | 79 | A |
8 | 79 | A |
9 | 98 | A |
10 | 76 | B |
11 | 76 | B |
12 | 77 | B |
13 | 77 | B |
14 | 78 | B |
15 | 78 | B |
16 | 80 | B |
17 | 80 | B |
18 | 80 | B |
19 | 81 | B |
fig=px.box(data_frame=df, x='class',y='score')
HTML(fig.to_html(include_plotlyjs='cdn',include_mathjax=False))
# 이거 해줘야 블로그 같은 곳에 나타남/
-
X축이 변수의 구간, Y축은 그 구간에 포함된 빈도를 의미하는 그림
-
예를들면 아래와 같음
plt.hist(np.random.normal(loc=0, scale=1, size=1000000))
# 평균은 0이고 표준편차는 1인 1000000 사이즈의 랜덤 정규분포
(array([2.40000e+01, 1.21000e+03, 2.13380e+04, 1.39948e+05, 3.51614e+05, 3.39662e+05, 1.27147e+05, 1.80510e+04, 9.87000e+02, 1.90000e+01]), array([-5.05590169, -4.03792348, -3.01994528, -2.00196708, -0.98398887, 0.03398933, 1.05196753, 2.06994573, 3.08792394, 4.10590214, 5.12388034]), <BarContainer object of 10 artists>)
-
중심경향값, 집중경향치 (Measure of central tendency): 분포의 중심성을 나타내기 위한 값, 예시로는 평균, 중앙값.
-
'평균이 항상 좋은 중심경향값은 아니다.'라는 사실은 이해했음.
-
하지만 특수한 상황을 가정하면 평균이 좋은 중심경향값임
np.random.seed(43052)
y1=np.random.normal(loc=0,scale=1,size=10000) #전북고 A반의 통계학 성적이라 생각하자.
y2=np.random.normal(loc=0.5,scale=1,size=10000) #전북고 B반의 통계학 성적이라 생각하자.
np.mean(y1), np.mean(y2)
(-0.011790879905079434, 0.4979147460611458)
(np.mean(y2)-np.mean(y1)).round(3)
0.51
plt.boxplot([y1,y2])
{'whiskers': [<matplotlib.lines.Line2D at 0x7f6a86a419d0>, <matplotlib.lines.Line2D at 0x7f6a86a41d60>, <matplotlib.lines.Line2D at 0x7f6a86a59370>, <matplotlib.lines.Line2D at 0x7f6a86a59700>], 'caps': [<matplotlib.lines.Line2D at 0x7f6a86a4f130>, <matplotlib.lines.Line2D at 0x7f6a86a4f4c0>, <matplotlib.lines.Line2D at 0x7f6a86a59a90>, <matplotlib.lines.Line2D at 0x7f6a86a59e20>], 'boxes': [<matplotlib.lines.Line2D at 0x7f6a86a41640>, <matplotlib.lines.Line2D at 0x7f6a86a4ffa0>], 'medians': [<matplotlib.lines.Line2D at 0x7f6a86a4f880>, <matplotlib.lines.Line2D at 0x7f6a86a651f0>], 'fliers': [<matplotlib.lines.Line2D at 0x7f6a86a4fc10>, <matplotlib.lines.Line2D at 0x7f6a86a65580>], 'means': []}
- 분포의 모양이 거의 비슷하고, 왼쪽그림을 거의 컨트롤+C,V 오른쪽에 붙인다음 위치조정을 한 느낌
- 이런상황에서는 $B반의 성적 \approx A반의 성적 + 0.51$ 라고 주장해도 큰 무리가 없음.
-
정규분포인것은 어떻게 아는가? $\to$ 히스토그램을 그려보아서 종 모양이 나오는지 살펴보자.
plt.hist(y1,bins=50)
# 50개의 구간으로 나누어서 히스토그램을 그릴것
(array([ 1., 1., 3., 0., 1., 4., 5., 12., 14., 26., 32., 52., 67., 89., 144., 171., 238., 282., 325., 378., 489., 492., 561., 635., 652., 636., 626., 606., 573., 539., 475., 444., 350., 250., 232., 172., 137., 80., 58., 47., 30., 23., 17., 12., 9., 4., 4., 0., 1., 1.]), array([-4.12186916, -3.96068404, -3.79949892, -3.6383138 , -3.47712868, -3.31594356, -3.15475844, -2.99357332, -2.8323882 , -2.67120308, -2.51001796, -2.34883284, -2.18764772, -2.0264626 , -1.86527748, -1.70409236, -1.54290724, -1.38172212, -1.220537 , -1.05935188, -0.89816676, -0.73698164, -0.57579652, -0.4146114 , -0.25342628, -0.09224116, 0.06894396, 0.23012908, 0.3913142 , 0.55249932, 0.71368444, 0.87486956, 1.03605468, 1.1972398 , 1.35842492, 1.51961004, 1.68079516, 1.84198028, 2.0031654 , 2.16435052, 2.32553564, 2.48672076, 2.64790588, 2.809091 , 2.97027612, 3.13146124, 3.29264636, 3.45383148, 3.6150166 , 3.77620172, 3.93738684]), <BarContainer object of 50 artists>)
plt.hist(y2,bins=50)
(array([ 1., 0., 3., 2., 4., 5., 5., 10., 16., 25., 33., 56., 74., 116., 119., 152., 244., 272., 351., 362., 438., 509., 531., 621., 624., 690., 636., 571., 564., 514., 462., 402., 356., 297., 233., 184., 144., 113., 80., 55., 38., 34., 21., 18., 4., 3., 2., 4., 1., 1.]), array([-3.5752867 , -3.4164866 , -3.2576865 , -3.0988864 , -2.9400863 , -2.7812862 , -2.6224861 , -2.463686 , -2.3048859 , -2.1460858 , -1.9872857 , -1.8284856 , -1.6696855 , -1.5108854 , -1.3520853 , -1.1932852 , -1.0344851 , -0.875685 , -0.7168849 , -0.5580848 , -0.3992847 , -0.2404846 , -0.0816845 , 0.0771156 , 0.2359157 , 0.3947158 , 0.5535159 , 0.712316 , 0.87111611, 1.02991621, 1.18871631, 1.34751641, 1.50631651, 1.66511661, 1.82391671, 1.98271681, 2.14151691, 2.30031701, 2.45911711, 2.61791721, 2.77671731, 2.93551741, 3.09431751, 3.25311761, 3.41191771, 3.57071781, 3.72951791, 3.88831801, 4.04711811, 4.20591821, 4.36471831]), <BarContainer object of 50 artists>)
plt.hist([y1,y2],bins=200) # 히스토그램 겹쳐 그리기
(array([[ 1., 0., 0., 0., 0., 0., 1., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 1., 0., 1., 1., 2., 1., 0., 1., 1., 3., 4., 4., 2., 2., 6., 4., 1., 4., 7., 8., 9., 11., 5., 9., 9., 14., 12., 16., 11., 9., 18., 25., 30., 22., 18., 28., 29., 39., 40., 41., 37., 42., 48., 56., 58., 49., 80., 62., 62., 91., 78., 75., 82., 89., 81., 106., 85., 89., 126., 125., 106., 142., 141., 121., 121., 135., 154., 166., 146., 125., 169., 160., 170., 172., 162., 161., 161., 193., 146., 186., 170., 166., 197., 152., 149., 167., 173., 158., 155., 156., 153., 152., 137., 151., 147., 126., 141., 125., 139., 117., 116., 135., 118., 93., 115., 99., 78., 91., 77., 63., 81., 52., 83., 53., 61., 49., 46., 46., 47., 45., 26., 48., 31., 27., 27., 20., 17., 22., 15., 15., 14., 14., 15., 10., 8., 13., 7., 5., 8., 6., 6., 6., 2., 4., 9., 3., 3., 6., 2., 1., 4., 2., 2., 2., 2., 0., 1., 1., 2., 2., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 0., 1., 0., 1., 1., 1., 0., 3., 1., 2., 1., 1., 1., 2., 1., 2., 2., 1., 6., 1., 6., 3., 7., 7., 5., 6., 10., 5., 7., 16., 9., 11., 13., 28., 21., 16., 20., 27., 25., 32., 33., 28., 31., 31., 39., 42., 34., 43., 44., 64., 56., 80., 64., 74., 77., 69., 82., 92., 101., 99., 81., 90., 115., 110., 106., 108., 127., 127., 138., 145., 138., 121., 159., 135., 145., 156., 186., 158., 164., 172., 182., 147., 194., 178., 176., 195., 162., 182., 164., 164., 163., 145., 150., 143., 155., 144., 142., 161., 141., 146., 129., 115., 132., 120., 118., 128., 103., 88., 111., 104., 97., 82., 77., 83., 83., 80., 77., 67., 58., 48., 47., 54., 50., 43., 36., 43., 33., 33., 42., 29., 24., 28., 19., 22., 16., 18., 14., 14., 11., 10., 9., 7., 12., 10., 8., 8., 9., 4., 7., 4., 6., 3., 8., 1., 1., 1., 0., 1., 0., 2., 1., 0., 2., 0., 0., 2., 2., 0., 0., 0., 0., 1., 0., 0., 0., 1.]]), array([-4.12186916, -4.07943623, -4.03700329, -3.99457035, -3.95213741, -3.90970448, -3.86727154, -3.8248386 , -3.78240567, -3.73997273, -3.69753979, -3.65510685, -3.61267392, -3.57024098, -3.52780804, -3.4853751 , -3.44294217, -3.40050923, -3.35807629, -3.31564335, -3.27321042, -3.23077748, -3.18834454, -3.1459116 , -3.10347867, -3.06104573, -3.01861279, -2.97617986, -2.93374692, -2.89131398, -2.84888104, -2.80644811, -2.76401517, -2.72158223, -2.67914929, -2.63671636, -2.59428342, -2.55185048, -2.50941754, -2.46698461, -2.42455167, -2.38211873, -2.33968579, -2.29725286, -2.25481992, -2.21238698, -2.16995405, -2.12752111, -2.08508817, -2.04265523, -2.0002223 , -1.95778936, -1.91535642, -1.87292348, -1.83049055, -1.78805761, -1.74562467, -1.70319173, -1.6607588 , -1.61832586, -1.57589292, -1.53345998, -1.49102705, -1.44859411, -1.40616117, -1.36372824, -1.3212953 , -1.27886236, -1.23642942, -1.19399649, -1.15156355, -1.10913061, -1.06669767, -1.02426474, -0.9818318 , -0.93939886, -0.89696592, -0.85453299, -0.81210005, -0.76966711, -0.72723417, -0.68480124, -0.6423683 , -0.59993536, -0.55750243, -0.51506949, -0.47263655, -0.43020361, -0.38777068, -0.34533774, -0.3029048 , -0.26047186, -0.21803893, -0.17560599, -0.13317305, -0.09074011, -0.04830718, -0.00587424, 0.0365587 , 0.07899164, 0.12142457, 0.16385751, 0.20629045, 0.24872338, 0.29115632, 0.33358926, 0.3760222 , 0.41845513, 0.46088807, 0.50332101, 0.54575395, 0.58818688, 0.63061982, 0.67305276, 0.7154857 , 0.75791863, 0.80035157, 0.84278451, 0.88521744, 0.92765038, 0.97008332, 1.01251626, 1.05494919, 1.09738213, 1.13981507, 1.18224801, 1.22468094, 1.26711388, 1.30954682, 1.35197976, 1.39441269, 1.43684563, 1.47927857, 1.52171151, 1.56414444, 1.60657738, 1.64901032, 1.69144325, 1.73387619, 1.77630913, 1.81874207, 1.861175 , 1.90360794, 1.94604088, 1.98847382, 2.03090675, 2.07333969, 2.11577263, 2.15820557, 2.2006385 , 2.24307144, 2.28550438, 2.32793732, 2.37037025, 2.41280319, 2.45523613, 2.49766906, 2.540102 , 2.58253494, 2.62496788, 2.66740081, 2.70983375, 2.75226669, 2.79469963, 2.83713256, 2.8795655 , 2.92199844, 2.96443138, 3.00686431, 3.04929725, 3.09173019, 3.13416313, 3.17659606, 3.219029 , 3.26146194, 3.30389487, 3.34632781, 3.38876075, 3.43119369, 3.47362662, 3.51605956, 3.5584925 , 3.60092544, 3.64335837, 3.68579131, 3.72822425, 3.77065719, 3.81309012, 3.85552306, 3.897956 , 3.94038894, 3.98282187, 4.02525481, 4.06768775, 4.11012068, 4.15255362, 4.19498656, 4.2374195 , 4.27985243, 4.32228537, 4.36471831]), <a list of 2 BarContainer objects>)
import seaborn as sns
A=pd.DataFrame({'score':y1,'class':['A']*len(y1)})
B=pd.DataFrame({'score':y2,'class':['B']*len(y2)})
df=pd.concat([A,B],ignore_index=True)
sns.histplot(df,x='score',hue='class')
<AxesSubplot:xlabel='score', ylabel='Count'>
from plotnine import *
ggplot(df)+geom_histogram(aes(x='score',fill='class'),position='identity',alpha=0.5)
/home/cgb4/anaconda3/envs/csy/lib/python3.8/site-packages/plotnine/stats/stat_bin.py:95: PlotnineWarning: 'stat_bin()' using 'bins = 84'. Pick better value with 'binwidth'.
<ggplot: (8755886288517)>
-
인터랙티브 그래프를 위해서 plotly 홈페이지를 방문하여 적당한 코드를 가져온다.
import plotly.figure_factory as ff
import numpy as np
hist_data=[y1,y2]
group_labels=['A','B']
fig = ff.create_distplot(hist_data, group_labels,bin_size=.2, show_rug=False)
HTML(fig.to_html(include_plotlyjs='cdn',include_mathjax=False))
np.random.seed(202150754)
y1=np.random.normal(loc=0,scale=1,size=100000)
y2=np.random.normal(loc=1,scale=1,size=100000)
plt.hist([y1,y2],bins=200)
(array([[1.000e+00, 0.000e+00, 2.000e+00, 1.000e+00, 0.000e+00, 4.000e+00, 0.000e+00, 1.000e+00, 2.000e+00, 4.000e+00, 2.000e+00, 1.000e+00, 7.000e+00, 1.000e+00, 7.000e+00, 6.000e+00, 7.000e+00, 9.000e+00, 1.200e+01, 4.000e+00, 1.100e+01, 1.500e+01, 1.800e+01, 1.900e+01, 2.900e+01, 3.500e+01, 3.300e+01, 3.700e+01, 5.100e+01, 5.100e+01, 6.800e+01, 6.900e+01, 8.300e+01, 8.400e+01, 8.700e+01, 9.400e+01, 1.140e+02, 1.360e+02, 1.450e+02, 1.580e+02, 1.840e+02, 1.850e+02, 2.180e+02, 2.580e+02, 2.700e+02, 2.850e+02, 2.990e+02, 3.320e+02, 3.800e+02, 4.060e+02, 4.270e+02, 5.110e+02, 4.850e+02, 5.380e+02, 6.160e+02, 6.140e+02, 6.540e+02, 7.110e+02, 8.180e+02, 8.170e+02, 8.610e+02, 9.200e+02, 8.990e+02, 9.870e+02, 1.033e+03, 1.116e+03, 1.152e+03, 1.177e+03, 1.252e+03, 1.302e+03, 1.382e+03, 1.430e+03, 1.494e+03, 1.466e+03, 1.572e+03, 1.596e+03, 1.597e+03, 1.632e+03, 1.671e+03, 1.699e+03, 1.755e+03, 1.820e+03, 1.760e+03, 1.796e+03, 1.834e+03, 1.800e+03, 1.936e+03, 1.901e+03, 1.821e+03, 1.899e+03, 1.803e+03, 1.722e+03, 1.673e+03, 1.756e+03, 1.743e+03, 1.728e+03, 1.697e+03, 1.693e+03, 1.594e+03, 1.506e+03, 1.486e+03, 1.529e+03, 1.438e+03, 1.392e+03, 1.394e+03, 1.304e+03, 1.286e+03, 1.232e+03, 1.129e+03, 1.138e+03, 1.029e+03, 1.005e+03, 9.240e+02, 8.700e+02, 8.540e+02, 8.140e+02, 7.090e+02, 7.270e+02, 6.440e+02, 5.890e+02, 5.790e+02, 5.650e+02, 4.890e+02, 4.300e+02, 4.550e+02, 4.110e+02, 3.190e+02, 3.450e+02, 2.970e+02, 2.880e+02, 2.530e+02, 2.410e+02, 2.000e+02, 1.730e+02, 1.620e+02, 1.540e+02, 1.570e+02, 1.320e+02, 1.120e+02, 9.500e+01, 8.100e+01, 8.600e+01, 8.200e+01, 7.200e+01, 6.700e+01, 4.400e+01, 4.500e+01, 4.500e+01, 2.800e+01, 2.000e+01, 2.400e+01, 2.800e+01, 2.000e+01, 2.500e+01, 8.000e+00, 1.500e+01, 1.000e+01, 7.000e+00, 1.000e+01, 7.000e+00, 3.000e+00, 9.000e+00, 4.000e+00, 3.000e+00, 3.000e+00, 1.000e+00, 4.000e+00, 1.000e+00, 0.000e+00, 1.000e+00, 1.000e+00, 0.000e+00, 1.000e+00, 1.000e+00, 0.000e+00, 2.000e+00, 0.000e+00, 1.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00], [0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 1.000e+00, 1.000e+00, 0.000e+00, 0.000e+00, 0.000e+00, 1.000e+00, 1.000e+00, 0.000e+00, 2.000e+00, 1.000e+00, 1.000e+00, 2.000e+00, 1.000e+00, 1.000e+00, 3.000e+00, 3.000e+00, 2.000e+00, 3.000e+00, 6.000e+00, 3.000e+00, 9.000e+00, 1.000e+01, 1.100e+01, 6.000e+00, 9.000e+00, 1.300e+01, 1.800e+01, 1.500e+01, 1.600e+01, 3.600e+01, 2.300e+01, 2.800e+01, 3.300e+01, 4.300e+01, 6.500e+01, 6.000e+01, 7.000e+01, 7.600e+01, 7.000e+01, 6.600e+01, 9.400e+01, 1.060e+02, 1.300e+02, 1.440e+02, 1.430e+02, 1.630e+02, 1.900e+02, 1.890e+02, 2.410e+02, 2.540e+02, 2.720e+02, 2.990e+02, 3.860e+02, 3.220e+02, 3.970e+02, 4.100e+02, 4.230e+02, 4.590e+02, 5.070e+02, 5.340e+02, 6.230e+02, 6.520e+02, 7.010e+02, 6.890e+02, 7.730e+02, 7.950e+02, 8.880e+02, 9.260e+02, 9.080e+02, 1.016e+03, 1.065e+03, 1.098e+03, 1.203e+03, 1.194e+03, 1.307e+03, 1.287e+03, 1.367e+03, 1.408e+03, 1.528e+03, 1.516e+03, 1.550e+03, 1.615e+03, 1.593e+03, 1.610e+03, 1.730e+03, 1.784e+03, 1.786e+03, 1.804e+03, 1.800e+03, 1.802e+03, 1.748e+03, 1.817e+03, 1.796e+03, 1.862e+03, 1.837e+03, 1.776e+03, 1.794e+03, 1.798e+03, 1.770e+03, 1.723e+03, 1.779e+03, 1.712e+03, 1.688e+03, 1.694e+03, 1.524e+03, 1.563e+03, 1.566e+03, 1.514e+03, 1.405e+03, 1.329e+03, 1.360e+03, 1.286e+03, 1.271e+03, 1.131e+03, 1.146e+03, 1.054e+03, 1.044e+03, 9.620e+02, 9.050e+02, 9.360e+02, 8.110e+02, 8.290e+02, 7.080e+02, 7.530e+02, 6.310e+02, 6.010e+02, 5.700e+02, 5.130e+02, 5.080e+02, 4.610e+02, 4.150e+02, 3.810e+02, 3.520e+02, 3.380e+02, 3.040e+02, 2.550e+02, 2.550e+02, 2.160e+02, 2.090e+02, 1.810e+02, 1.650e+02, 1.430e+02, 1.410e+02, 1.200e+02, 1.080e+02, 8.400e+01, 9.200e+01, 7.800e+01, 7.500e+01, 7.500e+01, 5.500e+01, 4.300e+01, 4.700e+01, 4.200e+01, 4.300e+01, 3.700e+01, 1.900e+01, 3.000e+01, 2.100e+01, 1.800e+01, 1.400e+01, 8.000e+00, 1.400e+01, 1.100e+01, 7.000e+00, 5.000e+00, 7.000e+00, 4.000e+00, 5.000e+00, 2.000e+00, 2.000e+00, 4.000e+00, 3.000e+00, 1.000e+00, 0.000e+00, 0.000e+00, 1.000e+00, 2.000e+00, 1.000e+00, 0.000e+00, 1.000e+00, 0.000e+00, 0.000e+00, 1.000e+00]]), array([-4.03250572, -3.98635668, -3.94020763, -3.89405858, -3.84790954, -3.80176049, -3.75561144, -3.7094624 , -3.66331335, -3.6171643 , -3.57101526, -3.52486621, -3.47871716, -3.43256812, -3.38641907, -3.34027002, -3.29412098, -3.24797193, -3.20182288, -3.15567384, -3.10952479, -3.06337574, -3.0172267 , -2.97107765, -2.92492861, -2.87877956, -2.83263051, -2.78648147, -2.74033242, -2.69418337, -2.64803433, -2.60188528, -2.55573623, -2.50958719, -2.46343814, -2.41728909, -2.37114005, -2.324991 , -2.27884195, -2.23269291, -2.18654386, -2.14039481, -2.09424577, -2.04809672, -2.00194767, -1.95579863, -1.90964958, -1.86350053, -1.81735149, -1.77120244, -1.7250534 , -1.67890435, -1.6327553 , -1.58660626, -1.54045721, -1.49430816, -1.44815912, -1.40201007, -1.35586102, -1.30971198, -1.26356293, -1.21741388, -1.17126484, -1.12511579, -1.07896674, -1.0328177 , -0.98666865, -0.9405196 , -0.89437056, -0.84822151, -0.80207246, -0.75592342, -0.70977437, -0.66362533, -0.61747628, -0.57132723, -0.52517819, -0.47902914, -0.43288009, -0.38673105, -0.340582 , -0.29443295, -0.24828391, -0.20213486, -0.15598581, -0.10983677, -0.06368772, -0.01753867, 0.02861037, 0.07475942, 0.12090847, 0.16705751, 0.21320656, 0.25935561, 0.30550465, 0.3516537 , 0.39780274, 0.44395179, 0.49010084, 0.53624988, 0.58239893, 0.62854798, 0.67469702, 0.72084607, 0.76699512, 0.81314416, 0.85929321, 0.90544226, 0.9515913 , 0.99774035, 1.0438894 , 1.09003844, 1.13618749, 1.18233654, 1.22848558, 1.27463463, 1.32078368, 1.36693272, 1.41308177, 1.45923081, 1.50537986, 1.55152891, 1.59767795, 1.643827 , 1.68997605, 1.73612509, 1.78227414, 1.82842319, 1.87457223, 1.92072128, 1.96687033, 2.01301937, 2.05916842, 2.10531747, 2.15146651, 2.19761556, 2.24376461, 2.28991365, 2.3360627 , 2.38221175, 2.42836079, 2.47450984, 2.52065889, 2.56680793, 2.61295698, 2.65910602, 2.70525507, 2.75140412, 2.79755316, 2.84370221, 2.88985126, 2.9360003 , 2.98214935, 3.0282984 , 3.07444744, 3.12059649, 3.16674554, 3.21289458, 3.25904363, 3.30519268, 3.35134172, 3.39749077, 3.44363982, 3.48978886, 3.53593791, 3.58208696, 3.628236 , 3.67438505, 3.72053409, 3.76668314, 3.81283219, 3.85898123, 3.90513028, 3.95127933, 3.99742837, 4.04357742, 4.08972647, 4.13587551, 4.18202456, 4.22817361, 4.27432265, 4.3204717 , 4.36662075, 4.41276979, 4.45891884, 4.50506789, 4.55121693, 4.59736598, 4.64351503, 4.68966407, 4.73581312, 4.78196216, 4.82811121, 4.87426026, 4.9204093 , 4.96655835, 5.0127074 , 5.05885644, 5.10500549, 5.15115454, 5.19730358]), <a list of 2 BarContainer objects>)
-
히스토그램 평활화: 이미지의 명암대비 개선
!pip install opencv-python
import cv2 as cv
import matplotlib.pyplot as plt
import pandas as pd
img = cv.imread('Unequalized_Hawkes_Bay_NZ.jpg',0)
plt.imshow(img,cmap='gray',vmin=0,vmax=255)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7f6a713a2280>
-
이미지자료는 사실 0~255 사이의 어떠한 숫자들이 포함된 매트릭스일 뿐이다.
img
array([[127, 145, 149, ..., 168, 167, 166], [165, 152, 143, ..., 168, 169, 168], [171, 145, 140, ..., 156, 154, 151], ..., [147, 132, 134, ..., 146, 145, 144], [146, 130, 132, ..., 146, 145, 144], [145, 128, 129, ..., 146, 145, 144]], dtype=uint8)
- 확인: 이미지가 있다고 믿었던 img는 그냥 넘파이 매트릭스
- 위의 매트릭스에 있는 숫자들을 색깔로 표현하여 값이 클수록 하얗게, 값이 작을수록 검게 그린다. 극단적으로 0은 검은색, 255는 흰색이다.
-
이미지가 넘파이 매트릭스일 뿐이라는 것을 판다스를 활용하면 더 잘 시각화하여 이해할 수 있다.
plt.imshow(img[200:300,400:500],cmap='gray',vmin=0,vmax=255)
<matplotlib.image.AxesImage at 0x7fb294190bb0>
df=pd.DataFrame(img)
df.iloc[200:300,400:500].style.set_properties(**{'font-size':'10pt'}).background_gradient('gray',vmin=0,vmax=255)
400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
200 | 155 | 155 | 151 | 149 | 152 | 152 | 151 | 152 | 152 | 152 | 152 | 153 | 154 | 155 | 157 | 158 | 164 | 157 | 150 | 148 | 146 | 143 | 139 | 138 | 138 | 140 | 142 | 140 | 138 | 137 | 137 | 137 | 131 | 142 | 147 | 143 | 143 | 150 | 153 | 151 | 149 | 148 | 146 | 143 | 141 | 141 | 142 | 143 | 143 | 143 | 140 | 138 | 137 | 138 | 136 | 133 | 133 | 134 | 133 | 131 | 128 | 127 | 129 | 131 | 128 | 129 | 132 | 129 | 130 | 129 | 125 | 131 | 128 | 128 | 128 | 130 | 132 | 133 | 132 | 131 | 137 | 136 | 135 | 138 | 140 | 133 | 127 | 129 | 132 | 130 | 130 | 132 | 135 | 135 | 134 | 134 | 137 | 138 | 137 | 134 |
201 | 139 | 148 | 152 | 149 | 145 | 142 | 147 | 156 | 150 | 152 | 154 | 154 | 153 | 153 | 155 | 157 | 158 | 159 | 155 | 149 | 144 | 142 | 139 | 136 | 138 | 139 | 140 | 139 | 137 | 136 | 136 | 137 | 141 | 140 | 139 | 141 | 147 | 152 | 152 | 150 | 151 | 150 | 149 | 147 | 145 | 143 | 143 | 143 | 141 | 142 | 142 | 141 | 141 | 141 | 138 | 134 | 133 | 132 | 132 | 131 | 130 | 131 | 133 | 135 | 128 | 128 | 132 | 130 | 132 | 131 | 126 | 132 | 129 | 129 | 128 | 129 | 130 | 132 | 132 | 133 | 137 | 135 | 132 | 133 | 134 | 129 | 126 | 130 | 129 | 129 | 131 | 133 | 134 | 133 | 134 | 136 | 136 | 137 | 137 | 135 |
202 | 138 | 145 | 149 | 149 | 149 | 144 | 138 | 139 | 144 | 148 | 153 | 155 | 153 | 152 | 153 | 155 | 153 | 158 | 157 | 147 | 140 | 140 | 139 | 136 | 137 | 135 | 135 | 137 | 137 | 135 | 134 | 136 | 142 | 138 | 139 | 145 | 147 | 144 | 145 | 151 | 150 | 150 | 151 | 150 | 149 | 147 | 145 | 143 | 140 | 140 | 140 | 140 | 140 | 141 | 139 | 135 | 133 | 131 | 129 | 128 | 129 | 130 | 132 | 133 | 128 | 128 | 131 | 131 | 134 | 133 | 128 | 133 | 132 | 132 | 131 | 130 | 129 | 131 | 133 | 135 | 133 | 132 | 129 | 129 | 132 | 131 | 133 | 140 | 135 | 136 | 137 | 137 | 134 | 131 | 131 | 134 | 135 | 136 | 136 | 136 |
203 | 152 | 151 | 148 | 150 | 156 | 152 | 141 | 134 | 137 | 141 | 147 | 151 | 152 | 152 | 153 | 154 | 152 | 155 | 153 | 144 | 137 | 138 | 139 | 139 | 134 | 130 | 130 | 134 | 135 | 133 | 133 | 136 | 133 | 132 | 137 | 146 | 147 | 141 | 141 | 147 | 146 | 147 | 148 | 149 | 150 | 149 | 147 | 145 | 143 | 142 | 140 | 137 | 137 | 139 | 139 | 137 | 136 | 133 | 129 | 127 | 127 | 128 | 128 | 128 | 129 | 127 | 130 | 129 | 133 | 134 | 130 | 136 | 136 | 136 | 134 | 132 | 130 | 131 | 133 | 135 | 132 | 133 | 132 | 133 | 137 | 137 | 140 | 147 | 144 | 143 | 142 | 140 | 137 | 133 | 134 | 136 | 136 | 136 | 135 | 135 |
204 | 155 | 156 | 153 | 151 | 153 | 153 | 152 | 155 | 141 | 141 | 142 | 144 | 147 | 149 | 151 | 151 | 153 | 152 | 149 | 145 | 140 | 137 | 138 | 140 | 133 | 130 | 129 | 131 | 132 | 131 | 132 | 134 | 130 | 127 | 130 | 139 | 147 | 147 | 144 | 141 | 144 | 144 | 144 | 146 | 147 | 147 | 147 | 146 | 147 | 146 | 143 | 140 | 139 | 140 | 139 | 137 | 138 | 134 | 130 | 127 | 128 | 129 | 129 | 128 | 129 | 127 | 129 | 127 | 131 | 134 | 131 | 139 | 139 | 138 | 136 | 133 | 131 | 130 | 132 | 134 | 137 | 140 | 141 | 141 | 143 | 140 | 139 | 143 | 145 | 141 | 138 | 139 | 140 | 141 | 142 | 144 | 138 | 136 | 134 | 133 |
205 | 145 | 151 | 152 | 153 | 154 | 152 | 152 | 156 | 151 | 147 | 141 | 139 | 141 | 144 | 147 | 148 | 151 | 149 | 149 | 148 | 145 | 138 | 135 | 136 | 134 | 133 | 131 | 130 | 130 | 130 | 131 | 132 | 134 | 133 | 134 | 136 | 139 | 142 | 143 | 143 | 145 | 144 | 142 | 143 | 144 | 145 | 144 | 144 | 146 | 146 | 145 | 143 | 141 | 140 | 137 | 133 | 134 | 131 | 127 | 126 | 128 | 129 | 130 | 129 | 129 | 128 | 130 | 127 | 130 | 133 | 132 | 141 | 140 | 138 | 136 | 133 | 130 | 130 | 132 | 133 | 139 | 143 | 143 | 143 | 145 | 141 | 137 | 139 | 144 | 138 | 134 | 136 | 141 | 144 | 145 | 145 | 141 | 137 | 134 | 134 |
206 | 143 | 147 | 149 | 151 | 155 | 152 | 146 | 145 | 154 | 151 | 146 | 143 | 142 | 143 | 144 | 145 | 144 | 146 | 147 | 146 | 142 | 138 | 136 | 134 | 133 | 135 | 134 | 130 | 129 | 132 | 134 | 134 | 135 | 136 | 137 | 136 | 133 | 135 | 142 | 150 | 147 | 145 | 143 | 143 | 144 | 145 | 144 | 143 | 145 | 145 | 144 | 142 | 141 | 140 | 136 | 132 | 130 | 128 | 126 | 126 | 127 | 128 | 129 | 129 | 129 | 129 | 131 | 129 | 130 | 133 | 133 | 143 | 143 | 139 | 135 | 132 | 131 | 132 | 134 | 136 | 138 | 141 | 140 | 139 | 142 | 141 | 139 | 140 | 143 | 137 | 133 | 136 | 141 | 143 | 143 | 142 | 143 | 139 | 136 | 136 |
207 | 148 | 151 | 150 | 149 | 151 | 150 | 149 | 151 | 150 | 150 | 151 | 150 | 148 | 145 | 144 | 144 | 137 | 144 | 145 | 139 | 135 | 137 | 138 | 135 | 131 | 136 | 136 | 130 | 129 | 135 | 138 | 137 | 134 | 129 | 128 | 132 | 137 | 140 | 146 | 153 | 147 | 145 | 144 | 144 | 145 | 146 | 145 | 143 | 147 | 147 | 144 | 142 | 141 | 141 | 139 | 136 | 132 | 131 | 129 | 128 | 128 | 128 | 128 | 129 | 128 | 130 | 133 | 131 | 131 | 133 | 133 | 144 | 145 | 141 | 135 | 132 | 132 | 135 | 138 | 140 | 141 | 141 | 137 | 135 | 139 | 140 | 139 | 140 | 139 | 135 | 133 | 136 | 141 | 143 | 143 | 143 | 144 | 140 | 137 | 138 |
208 | 150 | 148 | 151 | 145 | 143 | 147 | 148 | 153 | 158 | 153 | 150 | 152 | 149 | 143 | 141 | 144 | 145 | 145 | 144 | 142 | 140 | 137 | 133 | 131 | 130 | 133 | 131 | 130 | 137 | 143 | 140 | 135 | 141 | 139 | 130 | 134 | 147 | 142 | 135 | 144 | 147 | 143 | 146 | 148 | 144 | 146 | 149 | 144 | 148 | 144 | 140 | 141 | 143 | 144 | 141 | 137 | 132 | 128 | 126 | 127 | 128 | 127 | 125 | 125 | 128 | 127 | 129 | 135 | 138 | 138 | 138 | 139 | 138 | 133 | 129 | 130 | 133 | 135 | 138 | 140 | 140 | 136 | 135 | 137 | 138 | 136 | 136 | 139 | 139 | 137 | 137 | 138 | 139 | 140 | 141 | 143 | 141 | 144 | 143 | 143 |
209 | 153 | 147 | 147 | 143 | 144 | 147 | 144 | 146 | 150 | 149 | 150 | 152 | 153 | 151 | 146 | 143 | 142 | 142 | 141 | 139 | 137 | 135 | 134 | 134 | 133 | 131 | 130 | 129 | 130 | 132 | 134 | 133 | 136 | 139 | 137 | 130 | 132 | 146 | 151 | 142 | 145 | 146 | 153 | 156 | 154 | 156 | 156 | 149 | 145 | 148 | 149 | 148 | 143 | 140 | 139 | 140 | 143 | 137 | 130 | 125 | 122 | 122 | 126 | 129 | 128 | 128 | 129 | 132 | 137 | 139 | 139 | 137 | 133 | 130 | 129 | 133 | 138 | 139 | 137 | 135 | 140 | 136 | 134 | 136 | 136 | 133 | 132 | 135 | 137 | 136 | 136 | 137 | 136 | 136 | 137 | 140 | 137 | 140 | 139 | 139 |
210 | 154 | 147 | 147 | 145 | 145 | 145 | 141 | 145 | 143 | 145 | 147 | 149 | 153 | 155 | 151 | 144 | 144 | 143 | 141 | 139 | 137 | 136 | 137 | 137 | 136 | 130 | 132 | 135 | 129 | 129 | 133 | 133 | 137 | 128 | 138 | 144 | 135 | 141 | 149 | 139 | 141 | 142 | 146 | 146 | 145 | 152 | 155 | 150 | 145 | 145 | 144 | 144 | 144 | 143 | 141 | 140 | 142 | 139 | 135 | 132 | 127 | 124 | 125 | 127 | 126 | 126 | 127 | 128 | 133 | 137 | 136 | 133 | 132 | 130 | 131 | 137 | 143 | 142 | 138 | 134 | 138 | 135 | 134 | 136 | 136 | 134 | 134 | 135 | 135 | 135 | 136 | 137 | 135 | 134 | 136 | 140 | 137 | 140 | 139 | 138 |
211 | 153 | 149 | 152 | 151 | 148 | 146 | 143 | 150 | 143 | 143 | 143 | 145 | 148 | 150 | 150 | 148 | 149 | 146 | 142 | 140 | 139 | 139 | 138 | 137 | 137 | 131 | 137 | 143 | 137 | 139 | 141 | 134 | 145 | 129 | 145 | 167 | 157 | 144 | 144 | 140 | 139 | 142 | 143 | 140 | 141 | 149 | 153 | 151 | 148 | 145 | 141 | 141 | 142 | 143 | 142 | 141 | 139 | 138 | 139 | 139 | 135 | 129 | 124 | 122 | 125 | 124 | 124 | 127 | 130 | 132 | 133 | 134 | 133 | 131 | 132 | 137 | 140 | 140 | 137 | 135 | 138 | 135 | 133 | 134 | 134 | 133 | 134 | 135 | 133 | 134 | 136 | 136 | 135 | 134 | 136 | 140 | 139 | 141 | 139 | 139 |
212 | 156 | 151 | 153 | 151 | 150 | 149 | 145 | 149 | 147 | 144 | 144 | 146 | 146 | 143 | 144 | 149 | 149 | 144 | 139 | 138 | 139 | 139 | 136 | 132 | 136 | 132 | 138 | 142 | 141 | 147 | 147 | 132 | 137 | 136 | 145 | 155 | 154 | 147 | 141 | 135 | 133 | 140 | 142 | 141 | 144 | 148 | 148 | 147 | 149 | 151 | 152 | 149 | 143 | 140 | 141 | 144 | 146 | 142 | 140 | 139 | 137 | 133 | 129 | 127 | 127 | 123 | 124 | 128 | 130 | 127 | 130 | 135 | 130 | 131 | 133 | 136 | 136 | 134 | 134 | 134 | 138 | 135 | 132 | 131 | 131 | 131 | 131 | 133 | 131 | 132 | 134 | 135 | 133 | 131 | 134 | 137 | 135 | 139 | 137 | 136 |
213 | 160 | 152 | 151 | 149 | 151 | 153 | 145 | 142 | 148 | 145 | 146 | 150 | 148 | 141 | 141 | 147 | 146 | 142 | 137 | 137 | 139 | 139 | 135 | 131 | 134 | 132 | 134 | 134 | 136 | 144 | 143 | 131 | 128 | 132 | 130 | 129 | 134 | 138 | 137 | 137 | 132 | 138 | 138 | 137 | 141 | 143 | 144 | 147 | 148 | 150 | 151 | 152 | 150 | 148 | 145 | 144 | 145 | 142 | 140 | 142 | 143 | 141 | 139 | 137 | 129 | 125 | 123 | 126 | 127 | 125 | 127 | 131 | 129 | 131 | 135 | 138 | 137 | 134 | 133 | 134 | 135 | 133 | 132 | 132 | 133 | 135 | 136 | 138 | 135 | 135 | 136 | 136 | 134 | 132 | 132 | 135 | 133 | 137 | 136 | 134 |
214 | 160 | 157 | 157 | 150 | 150 | 153 | 146 | 143 | 146 | 146 | 147 | 149 | 147 | 144 | 143 | 144 | 144 | 142 | 138 | 137 | 138 | 137 | 136 | 134 | 132 | 133 | 133 | 132 | 132 | 135 | 136 | 133 | 131 | 130 | 129 | 131 | 133 | 135 | 139 | 146 | 140 | 142 | 138 | 137 | 141 | 141 | 142 | 152 | 147 | 144 | 143 | 147 | 153 | 155 | 151 | 147 | 142 | 142 | 143 | 146 | 148 | 146 | 143 | 142 | 134 | 132 | 127 | 124 | 126 | 129 | 128 | 124 | 130 | 131 | 134 | 137 | 137 | 134 | 133 | 134 | 135 | 134 | 134 | 135 | 137 | 140 | 141 | 142 | 138 | 137 | 138 | 138 | 136 | 134 | 133 | 135 | 134 | 140 | 139 | 135 |
215 | 157 | 162 | 167 | 156 | 148 | 151 | 149 | 151 | 145 | 145 | 145 | 143 | 144 | 146 | 146 | 143 | 143 | 142 | 139 | 137 | 135 | 134 | 134 | 135 | 130 | 134 | 136 | 136 | 134 | 130 | 131 | 138 | 128 | 130 | 138 | 141 | 136 | 138 | 143 | 140 | 137 | 140 | 138 | 140 | 143 | 137 | 134 | 143 | 147 | 147 | 146 | 147 | 148 | 150 | 153 | 155 | 149 | 147 | 146 | 146 | 143 | 141 | 141 | 143 | 141 | 141 | 133 | 124 | 128 | 137 | 134 | 122 | 129 | 128 | 129 | 131 | 132 | 132 | 132 | 133 | 138 | 138 | 138 | 138 | 138 | 139 | 138 | 137 | 137 | 136 | 136 | 137 | 136 | 134 | 133 | 134 | 136 | 142 | 141 | 136 |
216 | 156 | 146 | 149 | 163 | 166 | 153 | 146 | 152 | 145 | 144 | 143 | 144 | 145 | 145 | 143 | 141 | 139 | 141 | 136 | 133 | 138 | 136 | 130 | 131 | 131 | 132 | 136 | 137 | 134 | 130 | 130 | 132 | 132 | 135 | 126 | 136 | 141 | 137 | 146 | 141 | 135 | 137 | 138 | 141 | 143 | 138 | 137 | 143 | 146 | 146 | 146 | 148 | 149 | 145 | 143 | 148 | 147 | 147 | 146 | 144 | 142 | 141 | 140 | 140 | 142 | 143 | 143 | 144 | 144 | 143 | 140 | 138 | 123 | 126 | 137 | 137 | 141 | 131 | 133 | 132 | 138 | 141 | 137 | 135 | 138 | 135 | 132 | 137 | 137 | 135 | 135 | 137 | 136 | 132 | 131 | 134 | 134 | 137 | 139 | 137 |
217 | 155 | 156 | 158 | 158 | 159 | 158 | 154 | 148 | 150 | 146 | 142 | 143 | 145 | 145 | 142 | 138 | 136 | 135 | 131 | 132 | 137 | 138 | 135 | 133 | 136 | 131 | 129 | 130 | 132 | 131 | 128 | 127 | 143 | 144 | 130 | 132 | 134 | 132 | 144 | 141 | 134 | 138 | 138 | 136 | 137 | 136 | 135 | 138 | 132 | 144 | 151 | 146 | 144 | 150 | 152 | 147 | 142 | 143 | 143 | 143 | 143 | 142 | 142 | 142 | 144 | 144 | 144 | 145 | 146 | 146 | 146 | 145 | 136 | 133 | 132 | 135 | 136 | 136 | 133 | 133 | 133 | 134 | 133 | 135 | 139 | 138 | 135 | 135 | 134 | 133 | 134 | 136 | 134 | 129 | 129 | 132 | 133 | 134 | 135 | 135 |
218 | 153 | 161 | 162 | 156 | 157 | 164 | 164 | 156 | 152 | 150 | 148 | 145 | 142 | 141 | 141 | 141 | 141 | 135 | 132 | 133 | 135 | 136 | 135 | 130 | 135 | 130 | 127 | 128 | 130 | 129 | 127 | 124 | 139 | 145 | 136 | 135 | 134 | 132 | 139 | 132 | 132 | 139 | 137 | 132 | 134 | 136 | 137 | 137 | 135 | 141 | 154 | 158 | 153 | 152 | 151 | 144 | 142 | 142 | 143 | 142 | 142 | 140 | 139 | 138 | 144 | 143 | 142 | 142 | 142 | 143 | 144 | 145 | 144 | 138 | 127 | 134 | 132 | 138 | 129 | 127 | 131 | 127 | 129 | 135 | 138 | 137 | 135 | 130 | 130 | 131 | 132 | 134 | 131 | 127 | 127 | 131 | 134 | 134 | 134 | 135 |
219 | 153 | 155 | 157 | 158 | 159 | 161 | 164 | 165 | 157 | 155 | 151 | 147 | 144 | 142 | 142 | 142 | 148 | 139 | 137 | 136 | 132 | 131 | 132 | 126 | 129 | 130 | 131 | 131 | 130 | 128 | 126 | 126 | 127 | 137 | 136 | 136 | 135 | 134 | 136 | 127 | 131 | 136 | 136 | 134 | 137 | 139 | 138 | 140 | 133 | 133 | 146 | 155 | 150 | 150 | 152 | 145 | 143 | 142 | 141 | 140 | 139 | 138 | 136 | 135 | 142 | 141 | 140 | 138 | 137 | 137 | 137 | 138 | 152 | 147 | 139 | 143 | 142 | 144 | 135 | 130 | 131 | 125 | 128 | 135 | 134 | 134 | 134 | 129 | 131 | 132 | 134 | 134 | 131 | 128 | 130 | 135 | 133 | 133 | 134 | 136 |
220 | 151 | 151 | 153 | 157 | 157 | 156 | 158 | 162 | 164 | 159 | 153 | 150 | 150 | 148 | 144 | 140 | 145 | 137 | 137 | 137 | 130 | 129 | 131 | 129 | 127 | 129 | 131 | 131 | 130 | 129 | 128 | 128 | 125 | 134 | 133 | 130 | 129 | 132 | 136 | 130 | 130 | 133 | 134 | 137 | 140 | 136 | 134 | 137 | 137 | 146 | 156 | 151 | 140 | 147 | 154 | 144 | 141 | 139 | 138 | 137 | 137 | 137 | 137 | 136 | 138 | 138 | 139 | 138 | 137 | 136 | 136 | 137 | 147 | 146 | 149 | 145 | 148 | 142 | 141 | 136 | 136 | 130 | 133 | 138 | 133 | 131 | 134 | 133 | 133 | 135 | 136 | 136 | 133 | 132 | 135 | 140 | 131 | 132 | 133 | 134 |
221 | 147 | 151 | 154 | 154 | 155 | 158 | 160 | 159 | 161 | 164 | 164 | 160 | 152 | 146 | 144 | 145 | 142 | 137 | 137 | 136 | 130 | 127 | 129 | 131 | 131 | 129 | 127 | 126 | 128 | 130 | 130 | 127 | 126 | 132 | 133 | 129 | 128 | 132 | 134 | 130 | 131 | 131 | 131 | 135 | 137 | 131 | 127 | 131 | 136 | 148 | 162 | 161 | 146 | 141 | 144 | 142 | 142 | 140 | 136 | 135 | 135 | 135 | 134 | 134 | 131 | 134 | 137 | 138 | 138 | 138 | 139 | 139 | 139 | 140 | 147 | 140 | 143 | 137 | 142 | 141 | 147 | 143 | 144 | 144 | 136 | 129 | 128 | 131 | 131 | 133 | 135 | 135 | 134 | 134 | 137 | 140 | 134 | 134 | 134 | 132 |
222 | 146 | 151 | 153 | 152 | 154 | 159 | 160 | 158 | 156 | 162 | 168 | 166 | 157 | 150 | 148 | 150 | 145 | 142 | 138 | 136 | 133 | 127 | 125 | 129 | 131 | 131 | 129 | 126 | 126 | 128 | 128 | 127 | 125 | 129 | 134 | 132 | 132 | 134 | 130 | 127 | 130 | 132 | 131 | 131 | 133 | 132 | 129 | 131 | 130 | 133 | 144 | 155 | 152 | 140 | 138 | 145 | 143 | 140 | 137 | 135 | 134 | 134 | 132 | 130 | 129 | 132 | 137 | 139 | 139 | 140 | 140 | 141 | 141 | 144 | 147 | 143 | 142 | 142 | 145 | 147 | 149 | 149 | 149 | 148 | 142 | 130 | 124 | 129 | 129 | 132 | 135 | 137 | 138 | 138 | 139 | 140 | 138 | 136 | 133 | 131 |
223 | 151 | 149 | 149 | 151 | 152 | 151 | 152 | 153 | 159 | 157 | 157 | 162 | 167 | 165 | 155 | 145 | 147 | 146 | 139 | 136 | 137 | 130 | 124 | 130 | 128 | 134 | 136 | 132 | 126 | 124 | 126 | 127 | 125 | 126 | 131 | 129 | 131 | 134 | 131 | 130 | 129 | 133 | 131 | 128 | 132 | 136 | 136 | 136 | 154 | 150 | 143 | 141 | 145 | 146 | 142 | 140 | 138 | 136 | 135 | 134 | 135 | 136 | 134 | 133 | 133 | 136 | 140 | 142 | 141 | 141 | 142 | 142 | 141 | 146 | 143 | 145 | 138 | 144 | 141 | 143 | 140 | 144 | 145 | 148 | 147 | 135 | 127 | 133 | 131 | 134 | 139 | 142 | 144 | 145 | 144 | 142 | 139 | 135 | 130 | 129 |
224 | 152 | 151 | 150 | 150 | 150 | 151 | 152 | 152 | 151 | 155 | 160 | 161 | 161 | 161 | 164 | 167 | 146 | 149 | 145 | 136 | 131 | 132 | 131 | 126 | 128 | 126 | 126 | 128 | 130 | 130 | 127 | 124 | 125 | 126 | 127 | 128 | 130 | 133 | 133 | 131 | 128 | 129 | 130 | 133 | 135 | 132 | 131 | 137 | 144 | 143 | 151 | 151 | 146 | 139 | 133 | 137 | 137 | 135 | 136 | 136 | 132 | 131 | 134 | 133 | 133 | 138 | 140 | 139 | 138 | 134 | 133 | 139 | 141 | 142 | 143 | 144 | 142 | 140 | 139 | 141 | 139 | 146 | 146 | 140 | 139 | 138 | 132 | 127 | 129 | 137 | 145 | 145 | 144 | 145 | 147 | 149 | 141 | 127 | 124 | 130 |
225 | 151 | 149 | 147 | 146 | 146 | 147 | 149 | 149 | 151 | 153 | 155 | 156 | 157 | 159 | 161 | 164 | 162 | 151 | 144 | 143 | 140 | 132 | 128 | 129 | 132 | 129 | 127 | 127 | 128 | 129 | 128 | 127 | 126 | 128 | 129 | 130 | 131 | 132 | 130 | 127 | 131 | 131 | 130 | 132 | 134 | 130 | 129 | 134 | 130 | 134 | 146 | 147 | 143 | 138 | 132 | 136 | 133 | 132 | 134 | 135 | 130 | 130 | 132 | 130 | 133 | 136 | 136 | 136 | 138 | 136 | 136 | 142 | 144 | 143 | 143 | 143 | 141 | 139 | 138 | 139 | 142 | 143 | 141 | 141 | 142 | 136 | 128 | 127 | 137 | 145 | 148 | 143 | 141 | 143 | 144 | 140 | 141 | 132 | 128 | 128 |
226 | 148 | 147 | 146 | 146 | 148 | 150 | 151 | 151 | 152 | 151 | 150 | 151 | 153 | 156 | 159 | 160 | 164 | 162 | 155 | 147 | 142 | 140 | 135 | 130 | 125 | 125 | 126 | 127 | 129 | 129 | 128 | 127 | 131 | 132 | 131 | 131 | 132 | 132 | 130 | 127 | 132 | 132 | 129 | 129 | 131 | 128 | 127 | 132 | 131 | 138 | 149 | 146 | 140 | 137 | 132 | 133 | 131 | 131 | 134 | 135 | 131 | 131 | 132 | 130 | 131 | 134 | 133 | 133 | 135 | 135 | 139 | 147 | 147 | 144 | 142 | 142 | 141 | 138 | 137 | 138 | 144 | 141 | 138 | 140 | 139 | 130 | 127 | 135 | 139 | 146 | 146 | 139 | 138 | 144 | 143 | 136 | 141 | 137 | 132 | 126 |
227 | 148 | 149 | 149 | 150 | 151 | 151 | 150 | 149 | 150 | 150 | 150 | 151 | 153 | 155 | 156 | 157 | 157 | 165 | 166 | 156 | 148 | 146 | 143 | 137 | 126 | 126 | 126 | 126 | 126 | 126 | 127 | 128 | 133 | 133 | 131 | 129 | 130 | 131 | 131 | 129 | 129 | 130 | 128 | 127 | 128 | 126 | 128 | 134 | 144 | 148 | 153 | 145 | 139 | 140 | 136 | 135 | 133 | 132 | 135 | 136 | 132 | 132 | 134 | 132 | 129 | 132 | 133 | 132 | 133 | 133 | 137 | 147 | 147 | 144 | 140 | 140 | 139 | 138 | 136 | 136 | 143 | 141 | 139 | 137 | 132 | 125 | 131 | 147 | 142 | 144 | 142 | 138 | 140 | 145 | 145 | 140 | 141 | 139 | 135 | 130 |
228 | 153 | 152 | 150 | 149 | 148 | 146 | 145 | 143 | 147 | 149 | 151 | 153 | 153 | 153 | 154 | 155 | 154 | 157 | 163 | 166 | 160 | 150 | 146 | 148 | 140 | 136 | 130 | 125 | 122 | 124 | 127 | 130 | 130 | 130 | 129 | 129 | 130 | 131 | 130 | 128 | 126 | 129 | 129 | 127 | 127 | 127 | 132 | 140 | 146 | 147 | 150 | 143 | 142 | 147 | 142 | 139 | 134 | 133 | 135 | 135 | 131 | 131 | 133 | 132 | 131 | 131 | 130 | 131 | 136 | 136 | 135 | 138 | 143 | 139 | 137 | 137 | 137 | 136 | 135 | 135 | 140 | 141 | 138 | 134 | 132 | 131 | 138 | 150 | 148 | 144 | 141 | 142 | 144 | 143 | 142 | 142 | 143 | 140 | 141 | 141 |
229 | 155 | 152 | 149 | 147 | 146 | 146 | 147 | 147 | 144 | 146 | 149 | 151 | 150 | 150 | 151 | 153 | 153 | 155 | 158 | 162 | 163 | 161 | 154 | 149 | 141 | 138 | 134 | 131 | 129 | 128 | 127 | 127 | 127 | 129 | 131 | 133 | 134 | 135 | 132 | 128 | 127 | 131 | 130 | 128 | 128 | 130 | 134 | 143 | 142 | 144 | 148 | 146 | 148 | 151 | 143 | 137 | 132 | 131 | 132 | 132 | 128 | 128 | 131 | 130 | 135 | 132 | 128 | 132 | 142 | 142 | 134 | 130 | 137 | 135 | 135 | 136 | 136 | 135 | 134 | 135 | 137 | 138 | 134 | 132 | 136 | 140 | 140 | 143 | 145 | 140 | 139 | 143 | 143 | 138 | 137 | 140 | 143 | 141 | 144 | 148 |
230 | 154 | 153 | 151 | 149 | 149 | 149 | 149 | 149 | 145 | 145 | 145 | 145 | 147 | 149 | 151 | 152 | 151 | 157 | 157 | 153 | 157 | 166 | 163 | 154 | 141 | 139 | 137 | 136 | 136 | 134 | 131 | 128 | 129 | 131 | 132 | 133 | 134 | 135 | 133 | 129 | 131 | 132 | 129 | 126 | 128 | 130 | 132 | 137 | 139 | 140 | 147 | 147 | 148 | 148 | 138 | 133 | 131 | 130 | 132 | 132 | 128 | 129 | 131 | 129 | 134 | 134 | 134 | 139 | 145 | 142 | 134 | 132 | 135 | 135 | 137 | 139 | 139 | 137 | 137 | 138 | 134 | 136 | 134 | 133 | 137 | 138 | 138 | 140 | 138 | 137 | 139 | 141 | 140 | 136 | 134 | 136 | 138 | 138 | 142 | 144 |
231 | 156 | 155 | 155 | 154 | 152 | 148 | 145 | 142 | 148 | 144 | 141 | 141 | 145 | 149 | 152 | 153 | 155 | 153 | 152 | 154 | 156 | 158 | 163 | 168 | 154 | 147 | 139 | 135 | 134 | 136 | 136 | 136 | 130 | 130 | 128 | 127 | 129 | 131 | 131 | 129 | 134 | 133 | 127 | 123 | 127 | 128 | 128 | 130 | 135 | 135 | 143 | 143 | 143 | 142 | 133 | 130 | 131 | 130 | 134 | 135 | 131 | 131 | 133 | 131 | 129 | 137 | 144 | 146 | 144 | 138 | 135 | 140 | 136 | 137 | 141 | 143 | 143 | 140 | 140 | 141 | 131 | 136 | 136 | 135 | 132 | 130 | 133 | 143 | 139 | 143 | 145 | 143 | 139 | 135 | 133 | 131 | 131 | 134 | 138 | 137 |
232 | 156 | 156 | 155 | 153 | 153 | 152 | 150 | 146 | 147 | 146 | 146 | 147 | 147 | 147 | 146 | 145 | 150 | 152 | 153 | 153 | 154 | 156 | 159 | 161 | 170 | 158 | 142 | 133 | 134 | 137 | 136 | 132 | 132 | 134 | 135 | 132 | 129 | 127 | 129 | 131 | 136 | 135 | 134 | 132 | 132 | 133 | 134 | 135 | 135 | 135 | 136 | 139 | 141 | 139 | 136 | 135 | 134 | 131 | 129 | 134 | 140 | 136 | 130 | 132 | 132 | 135 | 142 | 144 | 141 | 143 | 146 | 143 | 147 | 138 | 138 | 142 | 140 | 136 | 135 | 135 | 132 | 129 | 129 | 131 | 131 | 130 | 134 | 140 | 143 | 139 | 136 | 137 | 137 | 135 | 132 | 132 | 133 | 134 | 134 | 133 |
233 | 153 | 157 | 160 | 158 | 153 | 151 | 150 | 149 | 146 | 148 | 149 | 149 | 147 | 145 | 143 | 142 | 144 | 146 | 148 | 150 | 151 | 154 | 156 | 158 | 163 | 165 | 161 | 150 | 139 | 134 | 136 | 139 | 137 | 136 | 135 | 136 | 135 | 133 | 129 | 126 | 129 | 132 | 135 | 139 | 142 | 143 | 144 | 143 | 144 | 141 | 139 | 137 | 134 | 131 | 131 | 133 | 130 | 137 | 140 | 138 | 132 | 126 | 130 | 142 | 131 | 130 | 134 | 139 | 137 | 137 | 140 | 141 | 140 | 134 | 136 | 141 | 140 | 139 | 138 | 137 | 133 | 130 | 129 | 130 | 129 | 127 | 130 | 135 | 141 | 140 | 141 | 142 | 140 | 136 | 134 | 134 | 129 | 130 | 132 | 133 |
234 | 157 | 155 | 154 | 153 | 155 | 156 | 152 | 147 | 144 | 147 | 149 | 148 | 145 | 144 | 144 | 145 | 144 | 145 | 146 | 149 | 152 | 154 | 155 | 155 | 156 | 161 | 166 | 163 | 156 | 148 | 141 | 136 | 137 | 135 | 135 | 136 | 138 | 137 | 134 | 131 | 128 | 128 | 129 | 130 | 133 | 135 | 138 | 140 | 146 | 146 | 148 | 148 | 145 | 141 | 140 | 141 | 131 | 137 | 139 | 137 | 134 | 130 | 130 | 136 | 137 | 131 | 134 | 140 | 139 | 136 | 140 | 144 | 143 | 139 | 139 | 138 | 135 | 135 | 134 | 130 | 132 | 130 | 129 | 131 | 130 | 129 | 131 | 135 | 135 | 138 | 141 | 142 | 138 | 133 | 132 | 134 | 132 | 133 | 133 | 133 |
235 | 159 | 156 | 151 | 151 | 155 | 158 | 155 | 150 | 148 | 149 | 148 | 146 | 144 | 144 | 145 | 147 | 147 | 147 | 146 | 148 | 151 | 153 | 153 | 153 | 154 | 155 | 157 | 161 | 165 | 163 | 153 | 143 | 140 | 139 | 137 | 136 | 135 | 136 | 138 | 139 | 137 | 135 | 132 | 130 | 130 | 131 | 133 | 135 | 135 | 136 | 139 | 142 | 143 | 141 | 141 | 142 | 137 | 136 | 131 | 129 | 135 | 136 | 132 | 129 | 134 | 129 | 130 | 135 | 133 | 132 | 135 | 137 | 140 | 138 | 138 | 135 | 133 | 138 | 141 | 137 | 131 | 129 | 129 | 130 | 130 | 129 | 130 | 132 | 132 | 135 | 138 | 137 | 133 | 130 | 131 | 133 | 137 | 137 | 135 | 134 |
236 | 155 | 159 | 161 | 159 | 155 | 156 | 158 | 160 | 156 | 155 | 153 | 150 | 148 | 147 | 145 | 144 | 144 | 143 | 142 | 143 | 145 | 148 | 150 | 150 | 155 | 156 | 156 | 155 | 157 | 160 | 163 | 164 | 154 | 149 | 143 | 139 | 139 | 140 | 141 | 141 | 138 | 139 | 139 | 139 | 137 | 135 | 133 | 132 | 134 | 129 | 125 | 126 | 128 | 130 | 132 | 134 | 137 | 137 | 131 | 126 | 128 | 131 | 133 | 136 | 130 | 129 | 132 | 132 | 129 | 130 | 132 | 129 | 139 | 139 | 139 | 137 | 135 | 140 | 142 | 137 | 131 | 129 | 128 | 128 | 127 | 125 | 125 | 125 | 136 | 137 | 135 | 133 | 131 | 131 | 132 | 133 | 133 | 134 | 135 | 136 |
237 | 154 | 158 | 162 | 161 | 160 | 159 | 158 | 157 | 157 | 157 | 156 | 156 | 156 | 154 | 150 | 147 | 141 | 140 | 139 | 140 | 143 | 146 | 149 | 150 | 151 | 154 | 155 | 153 | 153 | 156 | 160 | 162 | 162 | 154 | 147 | 146 | 149 | 151 | 148 | 143 | 140 | 140 | 139 | 138 | 136 | 134 | 132 | 131 | 137 | 131 | 126 | 127 | 129 | 130 | 130 | 130 | 133 | 135 | 132 | 131 | 133 | 133 | 131 | 134 | 131 | 134 | 138 | 137 | 133 | 134 | 135 | 131 | 137 | 137 | 139 | 138 | 134 | 135 | 134 | 128 | 131 | 129 | 128 | 128 | 128 | 129 | 129 | 129 | 139 | 138 | 135 | 131 | 130 | 132 | 133 | 132 | 128 | 132 | 135 | 138 |
238 | 160 | 158 | 157 | 157 | 161 | 162 | 158 | 153 | 154 | 155 | 156 | 157 | 157 | 157 | 156 | 156 | 146 | 146 | 145 | 144 | 144 | 146 | 148 | 149 | 148 | 150 | 152 | 153 | 155 | 156 | 154 | 151 | 159 | 156 | 152 | 151 | 151 | 152 | 151 | 150 | 150 | 148 | 145 | 142 | 140 | 138 | 138 | 138 | 132 | 130 | 130 | 132 | 134 | 133 | 131 | 130 | 132 | 130 | 129 | 134 | 139 | 135 | 129 | 128 | 128 | 130 | 136 | 137 | 132 | 129 | 131 | 130 | 130 | 130 | 134 | 136 | 135 | 136 | 137 | 134 | 130 | 130 | 129 | 130 | 133 | 135 | 136 | 136 | 139 | 139 | 136 | 132 | 131 | 131 | 131 | 130 | 129 | 132 | 135 | 136 |
239 | 163 | 163 | 161 | 158 | 157 | 158 | 159 | 159 | 155 | 156 | 156 | 154 | 153 | 154 | 157 | 161 | 153 | 153 | 152 | 149 | 146 | 144 | 144 | 145 | 149 | 152 | 153 | 151 | 150 | 152 | 155 | 157 | 156 | 159 | 159 | 152 | 145 | 142 | 147 | 153 | 147 | 148 | 150 | 150 | 149 | 146 | 142 | 140 | 137 | 135 | 133 | 134 | 135 | 135 | 136 | 138 | 135 | 131 | 127 | 129 | 132 | 128 | 128 | 134 | 128 | 127 | 134 | 139 | 133 | 126 | 129 | 133 | 140 | 137 | 138 | 138 | 135 | 135 | 137 | 137 | 132 | 131 | 130 | 131 | 133 | 136 | 137 | 137 | 139 | 140 | 139 | 135 | 133 | 132 | 131 | 129 | 129 | 130 | 131 | 132 |
240 | 158 | 159 | 162 | 165 | 165 | 163 | 158 | 155 | 166 | 156 | 150 | 153 | 155 | 153 | 153 | 157 | 156 | 153 | 150 | 149 | 150 | 150 | 148 | 146 | 144 | 148 | 151 | 151 | 150 | 150 | 153 | 157 | 162 | 154 | 153 | 158 | 156 | 146 | 141 | 143 | 148 | 147 | 148 | 150 | 150 | 147 | 145 | 146 | 140 | 134 | 131 | 133 | 136 | 136 | 135 | 135 | 141 | 133 | 128 | 129 | 130 | 129 | 128 | 129 | 124 | 132 | 136 | 140 | 132 | 123 | 132 | 140 | 142 | 135 | 140 | 142 | 145 | 131 | 134 | 139 | 133 | 132 | 130 | 129 | 130 | 132 | 133 | 133 | 141 | 140 | 139 | 137 | 135 | 133 | 131 | 130 | 126 | 130 | 131 | 129 |
241 | 156 | 157 | 159 | 161 | 163 | 163 | 161 | 160 | 158 | 162 | 161 | 154 | 151 | 155 | 157 | 156 | 152 | 155 | 157 | 154 | 149 | 147 | 148 | 150 | 147 | 146 | 146 | 148 | 152 | 155 | 156 | 156 | 152 | 160 | 162 | 157 | 157 | 159 | 152 | 141 | 135 | 143 | 146 | 142 | 144 | 149 | 146 | 136 | 140 | 134 | 130 | 130 | 131 | 131 | 132 | 133 | 136 | 130 | 127 | 130 | 133 | 131 | 130 | 130 | 130 | 129 | 126 | 133 | 135 | 132 | 137 | 139 | 127 | 135 | 142 | 137 | 135 | 132 | 134 | 132 | 130 | 130 | 129 | 130 | 132 | 133 | 132 | 132 | 136 | 135 | 134 | 133 | 131 | 130 | 129 | 128 | 131 | 131 | 129 | 128 |
242 | 155 | 155 | 155 | 157 | 160 | 162 | 164 | 164 | 160 | 160 | 161 | 161 | 157 | 152 | 154 | 158 | 155 | 155 | 154 | 154 | 154 | 152 | 150 | 148 | 148 | 146 | 145 | 147 | 151 | 155 | 155 | 153 | 155 | 156 | 156 | 155 | 156 | 157 | 155 | 151 | 135 | 133 | 131 | 131 | 133 | 137 | 140 | 141 | 145 | 140 | 135 | 132 | 131 | 131 | 133 | 135 | 135 | 131 | 130 | 133 | 135 | 132 | 128 | 127 | 130 | 130 | 127 | 130 | 130 | 128 | 137 | 140 | 137 | 135 | 133 | 137 | 135 | 134 | 129 | 127 | 131 | 130 | 129 | 129 | 130 | 130 | 130 | 130 | 135 | 135 | 133 | 132 | 130 | 130 | 129 | 129 | 128 | 129 | 128 | 127 |
243 | 155 | 154 | 153 | 154 | 157 | 160 | 162 | 164 | 164 | 157 | 157 | 162 | 162 | 155 | 153 | 156 | 156 | 153 | 152 | 153 | 156 | 156 | 153 | 150 | 149 | 149 | 149 | 148 | 147 | 147 | 149 | 151 | 157 | 153 | 151 | 154 | 156 | 155 | 157 | 161 | 161 | 152 | 143 | 138 | 134 | 131 | 135 | 142 | 145 | 143 | 140 | 136 | 134 | 132 | 133 | 134 | 134 | 132 | 131 | 134 | 135 | 132 | 128 | 127 | 130 | 133 | 130 | 129 | 126 | 123 | 132 | 135 | 147 | 139 | 130 | 136 | 133 | 135 | 127 | 128 | 131 | 129 | 127 | 126 | 127 | 128 | 130 | 131 | 135 | 135 | 134 | 133 | 132 | 131 | 130 | 130 | 125 | 130 | 131 | 129 |
244 | 155 | 154 | 153 | 154 | 155 | 157 | 159 | 159 | 159 | 163 | 162 | 158 | 158 | 163 | 160 | 153 | 151 | 153 | 155 | 154 | 152 | 151 | 155 | 158 | 153 | 152 | 151 | 149 | 147 | 146 | 147 | 148 | 148 | 152 | 153 | 153 | 156 | 161 | 161 | 159 | 159 | 164 | 161 | 149 | 142 | 143 | 142 | 136 | 140 | 141 | 140 | 138 | 135 | 132 | 131 | 131 | 130 | 128 | 128 | 130 | 132 | 131 | 130 | 129 | 132 | 133 | 128 | 128 | 129 | 128 | 132 | 128 | 134 | 143 | 139 | 133 | 123 | 132 | 132 | 131 | 129 | 128 | 128 | 127 | 127 | 128 | 130 | 131 | 130 | 130 | 130 | 130 | 130 | 129 | 128 | 128 | 129 | 133 | 134 | 130 |
245 | 154 | 153 | 153 | 153 | 154 | 155 | 155 | 155 | 158 | 162 | 164 | 162 | 160 | 161 | 161 | 160 | 154 | 154 | 153 | 152 | 152 | 153 | 155 | 157 | 157 | 154 | 150 | 150 | 151 | 152 | 150 | 148 | 146 | 143 | 143 | 146 | 149 | 150 | 154 | 159 | 152 | 157 | 160 | 157 | 152 | 149 | 146 | 142 | 141 | 143 | 144 | 143 | 141 | 139 | 136 | 134 | 133 | 130 | 128 | 127 | 127 | 127 | 127 | 126 | 126 | 132 | 131 | 131 | 131 | 131 | 137 | 136 | 135 | 139 | 137 | 136 | 130 | 130 | 130 | 131 | 133 | 133 | 133 | 131 | 129 | 127 | 126 | 125 | 127 | 128 | 128 | 128 | 128 | 128 | 128 | 128 | 131 | 131 | 130 | 130 |
246 | 152 | 152 | 152 | 153 | 154 | 154 | 154 | 154 | 159 | 156 | 158 | 164 | 165 | 160 | 159 | 162 | 161 | 156 | 151 | 151 | 154 | 156 | 155 | 152 | 156 | 154 | 152 | 152 | 153 | 154 | 152 | 151 | 152 | 143 | 138 | 141 | 142 | 140 | 146 | 157 | 163 | 159 | 159 | 163 | 160 | 152 | 147 | 149 | 148 | 149 | 149 | 147 | 146 | 145 | 143 | 141 | 140 | 137 | 132 | 128 | 126 | 126 | 125 | 124 | 121 | 132 | 133 | 132 | 129 | 131 | 142 | 144 | 143 | 132 | 131 | 136 | 139 | 129 | 129 | 134 | 138 | 137 | 136 | 133 | 129 | 128 | 127 | 128 | 134 | 133 | 131 | 129 | 128 | 128 | 128 | 128 | 128 | 128 | 129 | 132 |
247 | 150 | 150 | 150 | 152 | 153 | 155 | 155 | 155 | 154 | 156 | 156 | 156 | 162 | 168 | 163 | 152 | 159 | 159 | 158 | 155 | 151 | 150 | 152 | 154 | 152 | 155 | 157 | 155 | 151 | 149 | 152 | 155 | 152 | 156 | 153 | 144 | 142 | 149 | 151 | 147 | 145 | 151 | 154 | 156 | 160 | 164 | 159 | 150 | 149 | 149 | 147 | 145 | 144 | 145 | 144 | 142 | 142 | 139 | 135 | 131 | 129 | 129 | 128 | 128 | 127 | 131 | 127 | 127 | 131 | 137 | 145 | 141 | 133 | 131 | 135 | 129 | 133 | 128 | 136 | 139 | 136 | 135 | 132 | 130 | 129 | 131 | 136 | 140 | 141 | 138 | 134 | 131 | 128 | 127 | 127 | 128 | 127 | 130 | 134 | 135 |
248 | 150 | 151 | 150 | 149 | 150 | 152 | 154 | 153 | 154 | 152 | 152 | 154 | 157 | 160 | 164 | 168 | 159 | 159 | 163 | 164 | 157 | 148 | 147 | 151 | 152 | 154 | 155 | 157 | 157 | 156 | 154 | 153 | 155 | 153 | 153 | 155 | 154 | 149 | 146 | 144 | 147 | 154 | 156 | 154 | 155 | 162 | 166 | 165 | 158 | 152 | 147 | 147 | 149 | 148 | 146 | 145 | 146 | 145 | 141 | 136 | 135 | 135 | 132 | 128 | 130 | 128 | 126 | 126 | 129 | 132 | 132 | 129 | 132 | 133 | 132 | 134 | 136 | 133 | 134 | 140 | 138 | 130 | 128 | 137 | 144 | 142 | 137 | 136 | 133 | 131 | 130 | 129 | 128 | 126 | 127 | 129 | 129 | 130 | 130 | 129 |
249 | 149 | 150 | 150 | 149 | 149 | 151 | 153 | 152 | 154 | 152 | 152 | 153 | 154 | 155 | 158 | 161 | 162 | 161 | 162 | 164 | 166 | 164 | 157 | 150 | 153 | 153 | 153 | 153 | 153 | 153 | 153 | 152 | 155 | 154 | 154 | 154 | 152 | 149 | 151 | 154 | 152 | 144 | 142 | 148 | 151 | 151 | 157 | 165 | 165 | 161 | 157 | 153 | 151 | 150 | 147 | 145 | 146 | 145 | 143 | 141 | 140 | 139 | 136 | 131 | 133 | 132 | 129 | 127 | 129 | 132 | 133 | 132 | 134 | 133 | 131 | 131 | 132 | 130 | 130 | 137 | 138 | 134 | 131 | 133 | 137 | 141 | 144 | 146 | 146 | 137 | 131 | 133 | 135 | 132 | 129 | 129 | 129 | 128 | 128 | 128 |
250 | 147 | 148 | 149 | 148 | 148 | 151 | 151 | 151 | 155 | 154 | 153 | 155 | 155 | 154 | 155 | 156 | 156 | 160 | 160 | 157 | 159 | 164 | 166 | 163 | 155 | 155 | 153 | 152 | 151 | 151 | 151 | 151 | 147 | 152 | 158 | 160 | 157 | 154 | 154 | 156 | 146 | 137 | 135 | 140 | 139 | 135 | 143 | 158 | 161 | 163 | 163 | 159 | 157 | 156 | 154 | 151 | 149 | 150 | 149 | 148 | 147 | 144 | 139 | 135 | 137 | 136 | 134 | 130 | 130 | 132 | 133 | 133 | 133 | 132 | 128 | 128 | 129 | 127 | 128 | 135 | 135 | 135 | 132 | 126 | 126 | 135 | 145 | 150 | 143 | 135 | 129 | 131 | 134 | 131 | 129 | 129 | 129 | 127 | 125 | 126 |
251 | 144 | 146 | 147 | 146 | 148 | 150 | 150 | 150 | 153 | 152 | 153 | 155 | 155 | 154 | 154 | 156 | 153 | 157 | 157 | 153 | 152 | 158 | 164 | 166 | 157 | 158 | 158 | 156 | 152 | 150 | 151 | 152 | 151 | 152 | 153 | 154 | 154 | 155 | 158 | 161 | 154 | 149 | 143 | 141 | 146 | 151 | 150 | 145 | 150 | 158 | 162 | 160 | 159 | 160 | 159 | 155 | 153 | 153 | 154 | 154 | 153 | 150 | 146 | 142 | 139 | 140 | 139 | 136 | 133 | 133 | 133 | 133 | 131 | 130 | 126 | 127 | 129 | 127 | 128 | 135 | 133 | 134 | 132 | 126 | 125 | 131 | 140 | 146 | 138 | 138 | 135 | 133 | 130 | 129 | 129 | 129 | 130 | 128 | 126 | 125 |
252 | 143 | 145 | 145 | 145 | 146 | 149 | 149 | 149 | 149 | 148 | 150 | 152 | 154 | 153 | 153 | 154 | 157 | 156 | 156 | 157 | 159 | 159 | 157 | 156 | 155 | 159 | 162 | 160 | 156 | 153 | 153 | 154 | 149 | 149 | 151 | 154 | 158 | 159 | 156 | 152 | 148 | 158 | 162 | 156 | 152 | 155 | 153 | 148 | 147 | 154 | 157 | 154 | 153 | 156 | 157 | 155 | 153 | 154 | 155 | 157 | 157 | 155 | 153 | 152 | 140 | 143 | 144 | 142 | 138 | 136 | 134 | 132 | 131 | 130 | 127 | 128 | 131 | 129 | 129 | 134 | 133 | 132 | 133 | 135 | 136 | 137 | 141 | 145 | 144 | 148 | 145 | 137 | 133 | 135 | 133 | 128 | 128 | 129 | 129 | 128 |
253 | 143 | 145 | 145 | 144 | 145 | 147 | 148 | 147 | 149 | 148 | 149 | 151 | 152 | 152 | 152 | 154 | 155 | 155 | 156 | 157 | 157 | 155 | 157 | 160 | 153 | 156 | 160 | 160 | 159 | 157 | 156 | 157 | 150 | 150 | 150 | 153 | 156 | 157 | 153 | 147 | 142 | 152 | 161 | 160 | 153 | 148 | 149 | 151 | 148 | 150 | 150 | 147 | 148 | 153 | 156 | 156 | 157 | 156 | 156 | 157 | 156 | 154 | 153 | 153 | 143 | 146 | 148 | 146 | 143 | 140 | 136 | 133 | 133 | 132 | 129 | 131 | 133 | 130 | 127 | 132 | 130 | 128 | 131 | 139 | 145 | 145 | 143 | 143 | 140 | 141 | 137 | 131 | 133 | 139 | 134 | 125 | 126 | 129 | 132 | 132 |
254 | 145 | 146 | 145 | 144 | 144 | 145 | 146 | 146 | 150 | 148 | 148 | 150 | 151 | 151 | 152 | 154 | 150 | 155 | 156 | 152 | 149 | 153 | 160 | 165 | 156 | 155 | 155 | 157 | 160 | 160 | 159 | 157 | 159 | 156 | 150 | 143 | 142 | 148 | 154 | 158 | 160 | 152 | 148 | 153 | 160 | 161 | 156 | 150 | 151 | 149 | 147 | 148 | 151 | 154 | 156 | 156 | 157 | 156 | 156 | 156 | 154 | 151 | 150 | 151 | 148 | 150 | 150 | 148 | 145 | 143 | 140 | 138 | 135 | 133 | 130 | 131 | 133 | 129 | 126 | 130 | 128 | 127 | 129 | 135 | 143 | 146 | 142 | 136 | 132 | 129 | 125 | 125 | 130 | 134 | 133 | 129 | 130 | 131 | 131 | 131 |
255 | 147 | 147 | 146 | 143 | 143 | 144 | 145 | 144 | 147 | 146 | 145 | 147 | 148 | 148 | 150 | 153 | 153 | 156 | 154 | 150 | 153 | 161 | 159 | 151 | 162 | 157 | 153 | 154 | 160 | 163 | 160 | 156 | 147 | 154 | 159 | 156 | 150 | 148 | 148 | 149 | 158 | 160 | 159 | 153 | 150 | 154 | 160 | 163 | 155 | 151 | 150 | 154 | 157 | 155 | 152 | 150 | 151 | 151 | 152 | 154 | 154 | 152 | 151 | 153 | 152 | 152 | 151 | 148 | 146 | 145 | 144 | 142 | 135 | 133 | 129 | 130 | 132 | 129 | 126 | 130 | 129 | 131 | 130 | 130 | 137 | 143 | 139 | 129 | 133 | 129 | 127 | 131 | 131 | 130 | 133 | 140 | 137 | 133 | 128 | 126 |
256 | 146 | 147 | 148 | 147 | 146 | 146 | 148 | 151 | 143 | 146 | 147 | 147 | 147 | 148 | 149 | 148 | 149 | 151 | 149 | 146 | 146 | 149 | 151 | 149 | 157 | 157 | 158 | 156 | 149 | 145 | 156 | 171 | 161 | 151 | 150 | 157 | 161 | 160 | 155 | 148 | 154 | 150 | 151 | 154 | 153 | 150 | 155 | 163 | 163 | 158 | 156 | 159 | 158 | 153 | 150 | 151 | 151 | 152 | 151 | 150 | 152 | 156 | 156 | 154 | 152 | 152 | 152 | 151 | 150 | 148 | 147 | 146 | 138 | 139 | 137 | 132 | 128 | 127 | 127 | 126 | 130 | 130 | 132 | 136 | 138 | 138 | 141 | 144 | 142 | 138 | 133 | 130 | 129 | 129 | 129 | 129 | 140 | 127 | 127 | 128 |
257 | 144 | 145 | 146 | 146 | 145 | 145 | 146 | 148 | 149 | 148 | 146 | 142 | 141 | 143 | 146 | 146 | 146 | 147 | 146 | 145 | 146 | 148 | 150 | 150 | 148 | 153 | 157 | 156 | 151 | 150 | 153 | 156 | 166 | 163 | 159 | 150 | 145 | 152 | 159 | 159 | 143 | 142 | 145 | 152 | 158 | 159 | 154 | 150 | 157 | 161 | 163 | 160 | 160 | 163 | 162 | 158 | 150 | 152 | 153 | 152 | 153 | 153 | 151 | 147 | 154 | 153 | 152 | 150 | 149 | 148 | 148 | 148 | 145 | 143 | 138 | 133 | 130 | 130 | 129 | 128 | 131 | 129 | 129 | 131 | 134 | 136 | 141 | 146 | 144 | 141 | 137 | 133 | 131 | 130 | 129 | 128 | 131 | 124 | 129 | 131 |
258 | 143 | 144 | 146 | 146 | 145 | 145 | 146 | 147 | 149 | 148 | 144 | 139 | 138 | 140 | 142 | 143 | 146 | 144 | 144 | 146 | 147 | 147 | 149 | 151 | 146 | 154 | 157 | 153 | 153 | 158 | 156 | 150 | 158 | 160 | 162 | 158 | 150 | 151 | 155 | 156 | 169 | 157 | 142 | 135 | 143 | 155 | 159 | 156 | 156 | 161 | 162 | 158 | 157 | 160 | 162 | 161 | 162 | 160 | 155 | 149 | 146 | 148 | 151 | 152 | 153 | 153 | 152 | 152 | 151 | 151 | 150 | 150 | 147 | 144 | 138 | 132 | 131 | 132 | 131 | 129 | 130 | 128 | 128 | 129 | 131 | 133 | 138 | 142 | 139 | 137 | 134 | 132 | 130 | 128 | 126 | 124 | 128 | 123 | 132 | 136 |
259 | 143 | 145 | 146 | 146 | 145 | 145 | 145 | 144 | 145 | 146 | 145 | 143 | 142 | 143 | 144 | 143 | 147 | 145 | 145 | 148 | 149 | 147 | 149 | 152 | 151 | 155 | 153 | 148 | 151 | 159 | 161 | 156 | 151 | 146 | 153 | 166 | 165 | 156 | 150 | 149 | 149 | 161 | 170 | 165 | 154 | 148 | 148 | 151 | 154 | 153 | 155 | 160 | 159 | 154 | 153 | 156 | 157 | 159 | 161 | 160 | 158 | 155 | 154 | 153 | 150 | 151 | 153 | 154 | 154 | 153 | 151 | 150 | 144 | 143 | 139 | 135 | 133 | 133 | 132 | 130 | 128 | 128 | 129 | 130 | 130 | 130 | 131 | 133 | 130 | 129 | 128 | 127 | 126 | 125 | 124 | 123 | 128 | 124 | 131 | 139 |
260 | 143 | 146 | 146 | 145 | 144 | 145 | 144 | 142 | 145 | 147 | 149 | 148 | 147 | 148 | 148 | 147 | 149 | 146 | 147 | 149 | 150 | 147 | 147 | 150 | 153 | 153 | 150 | 147 | 149 | 154 | 158 | 158 | 156 | 145 | 145 | 155 | 158 | 157 | 157 | 157 | 159 | 153 | 149 | 155 | 163 | 163 | 157 | 151 | 149 | 148 | 152 | 160 | 162 | 158 | 154 | 154 | 153 | 155 | 159 | 161 | 161 | 160 | 160 | 161 | 152 | 153 | 153 | 154 | 153 | 153 | 152 | 151 | 145 | 147 | 146 | 142 | 138 | 135 | 133 | 131 | 128 | 129 | 130 | 130 | 129 | 128 | 128 | 127 | 127 | 127 | 126 | 125 | 125 | 125 | 126 | 126 | 127 | 123 | 128 | 134 |
261 | 147 | 149 | 148 | 145 | 145 | 147 | 147 | 145 | 146 | 148 | 148 | 146 | 146 | 147 | 148 | 148 | 147 | 147 | 147 | 148 | 148 | 147 | 147 | 147 | 149 | 150 | 152 | 153 | 153 | 152 | 153 | 155 | 159 | 155 | 150 | 144 | 144 | 155 | 163 | 162 | 155 | 154 | 156 | 158 | 156 | 153 | 156 | 161 | 154 | 156 | 153 | 150 | 152 | 158 | 160 | 156 | 161 | 158 | 154 | 153 | 153 | 155 | 160 | 164 | 158 | 157 | 155 | 153 | 151 | 151 | 152 | 153 | 151 | 154 | 155 | 151 | 145 | 141 | 137 | 134 | 134 | 134 | 133 | 130 | 128 | 129 | 130 | 130 | 128 | 128 | 127 | 125 | 124 | 124 | 126 | 127 | 127 | 128 | 129 | 127 |
262 | 147 | 149 | 148 | 144 | 144 | 148 | 149 | 147 | 145 | 146 | 146 | 145 | 144 | 145 | 146 | 145 | 144 | 146 | 147 | 147 | 147 | 148 | 148 | 147 | 146 | 149 | 152 | 155 | 155 | 153 | 153 | 154 | 154 | 159 | 160 | 153 | 148 | 154 | 158 | 152 | 162 | 162 | 159 | 155 | 154 | 155 | 157 | 158 | 161 | 161 | 156 | 148 | 148 | 154 | 157 | 156 | 156 | 155 | 156 | 159 | 159 | 156 | 154 | 154 | 160 | 159 | 157 | 155 | 154 | 153 | 153 | 153 | 153 | 155 | 155 | 152 | 149 | 147 | 144 | 142 | 141 | 141 | 138 | 133 | 130 | 131 | 132 | 132 | 130 | 130 | 129 | 127 | 125 | 124 | 125 | 126 | 128 | 131 | 130 | 124 |
263 | 144 | 145 | 143 | 140 | 141 | 146 | 147 | 145 | 143 | 146 | 148 | 148 | 147 | 147 | 147 | 145 | 142 | 146 | 147 | 146 | 147 | 150 | 150 | 147 | 144 | 148 | 150 | 150 | 151 | 154 | 156 | 156 | 150 | 154 | 162 | 165 | 160 | 154 | 149 | 141 | 148 | 160 | 166 | 162 | 157 | 158 | 159 | 156 | 155 | 155 | 158 | 163 | 160 | 153 | 151 | 153 | 156 | 154 | 153 | 156 | 159 | 159 | 160 | 161 | 157 | 158 | 159 | 159 | 159 | 157 | 154 | 152 | 150 | 150 | 149 | 149 | 150 | 152 | 151 | 149 | 147 | 147 | 144 | 138 | 134 | 134 | 133 | 132 | 132 | 133 | 132 | 131 | 128 | 127 | 127 | 127 | 125 | 128 | 128 | 125 |
264 | 149 | 142 | 139 | 143 | 147 | 147 | 146 | 146 | 146 | 147 | 147 | 146 | 145 | 145 | 147 | 148 | 148 | 146 | 146 | 146 | 146 | 146 | 148 | 151 | 149 | 148 | 148 | 149 | 149 | 149 | 151 | 155 | 155 | 155 | 156 | 159 | 163 | 161 | 152 | 142 | 149 | 150 | 159 | 167 | 163 | 156 | 156 | 158 | 157 | 160 | 159 | 156 | 158 | 162 | 160 | 153 | 155 | 155 | 156 | 156 | 156 | 156 | 156 | 155 | 162 | 160 | 158 | 157 | 158 | 159 | 159 | 158 | 152 | 151 | 151 | 152 | 153 | 154 | 153 | 152 | 150 | 150 | 148 | 144 | 140 | 138 | 137 | 138 | 135 | 135 | 135 | 134 | 131 | 129 | 127 | 127 | 128 | 129 | 130 | 131 |
265 | 145 | 145 | 146 | 146 | 144 | 142 | 144 | 146 | 143 | 144 | 146 | 147 | 146 | 145 | 145 | 145 | 149 | 147 | 146 | 146 | 145 | 144 | 145 | 148 | 148 | 148 | 149 | 151 | 151 | 150 | 151 | 154 | 153 | 153 | 155 | 158 | 163 | 165 | 161 | 155 | 152 | 143 | 144 | 154 | 163 | 165 | 162 | 156 | 156 | 157 | 158 | 158 | 158 | 159 | 159 | 158 | 155 | 155 | 154 | 154 | 154 | 155 | 155 | 155 | 158 | 158 | 158 | 157 | 157 | 157 | 158 | 158 | 162 | 160 | 157 | 154 | 152 | 153 | 155 | 157 | 151 | 152 | 152 | 150 | 146 | 143 | 141 | 141 | 138 | 137 | 137 | 137 | 137 | 134 | 130 | 127 | 129 | 132 | 133 | 131 |
266 | 141 | 144 | 144 | 140 | 137 | 137 | 140 | 142 | 144 | 145 | 146 | 147 | 146 | 146 | 146 | 147 | 148 | 146 | 146 | 145 | 144 | 143 | 144 | 146 | 147 | 147 | 149 | 152 | 152 | 150 | 150 | 152 | 150 | 151 | 151 | 153 | 158 | 163 | 164 | 162 | 160 | 152 | 147 | 146 | 150 | 158 | 165 | 165 | 160 | 157 | 155 | 157 | 158 | 157 | 158 | 162 | 158 | 157 | 156 | 155 | 155 | 154 | 154 | 154 | 156 | 157 | 159 | 158 | 157 | 156 | 157 | 159 | 159 | 157 | 154 | 150 | 146 | 146 | 149 | 152 | 151 | 153 | 154 | 153 | 151 | 148 | 146 | 145 | 145 | 142 | 139 | 139 | 141 | 140 | 135 | 131 | 131 | 130 | 133 | 142 |
267 | 151 | 151 | 147 | 142 | 142 | 146 | 147 | 145 | 146 | 146 | 144 | 143 | 144 | 145 | 147 | 149 | 145 | 144 | 144 | 145 | 145 | 144 | 145 | 148 | 146 | 147 | 149 | 150 | 151 | 150 | 150 | 150 | 150 | 151 | 150 | 149 | 152 | 156 | 159 | 160 | 166 | 166 | 163 | 153 | 144 | 148 | 159 | 163 | 166 | 160 | 155 | 155 | 157 | 158 | 159 | 160 | 161 | 160 | 159 | 158 | 156 | 154 | 152 | 151 | 154 | 156 | 157 | 158 | 158 | 157 | 158 | 159 | 155 | 156 | 156 | 154 | 152 | 150 | 150 | 150 | 150 | 151 | 152 | 152 | 152 | 150 | 149 | 149 | 151 | 147 | 142 | 140 | 141 | 141 | 139 | 137 | 131 | 132 | 132 | 134 |
268 | 146 | 147 | 144 | 139 | 139 | 142 | 141 | 138 | 144 | 143 | 142 | 141 | 142 | 143 | 145 | 145 | 144 | 143 | 143 | 145 | 145 | 145 | 146 | 148 | 146 | 147 | 147 | 147 | 148 | 149 | 149 | 148 | 151 | 152 | 151 | 150 | 150 | 154 | 157 | 158 | 163 | 165 | 168 | 164 | 157 | 155 | 153 | 147 | 161 | 162 | 161 | 157 | 156 | 157 | 158 | 158 | 160 | 160 | 160 | 159 | 157 | 155 | 152 | 150 | 152 | 152 | 153 | 155 | 158 | 159 | 159 | 159 | 155 | 155 | 157 | 158 | 159 | 157 | 154 | 151 | 151 | 150 | 149 | 149 | 150 | 151 | 152 | 152 | 152 | 150 | 146 | 144 | 142 | 142 | 141 | 141 | 140 | 137 | 133 | 128 |
269 | 145 | 149 | 152 | 150 | 146 | 143 | 142 | 141 | 141 | 142 | 143 | 145 | 146 | 145 | 143 | 141 | 144 | 143 | 143 | 145 | 145 | 144 | 145 | 147 | 146 | 147 | 146 | 145 | 146 | 148 | 148 | 147 | 147 | 149 | 149 | 149 | 150 | 153 | 156 | 156 | 156 | 159 | 166 | 168 | 165 | 164 | 160 | 152 | 151 | 160 | 165 | 162 | 157 | 156 | 156 | 157 | 159 | 160 | 161 | 161 | 161 | 159 | 157 | 156 | 151 | 150 | 150 | 152 | 156 | 158 | 159 | 158 | 155 | 155 | 154 | 156 | 157 | 157 | 154 | 152 | 154 | 152 | 150 | 149 | 150 | 152 | 153 | 154 | 149 | 150 | 151 | 150 | 147 | 144 | 143 | 142 | 146 | 143 | 140 | 139 |
270 | 140 | 143 | 146 | 148 | 146 | 141 | 139 | 139 | 143 | 144 | 146 | 148 | 149 | 147 | 143 | 140 | 143 | 142 | 143 | 144 | 144 | 143 | 144 | 146 | 146 | 147 | 146 | 145 | 146 | 148 | 148 | 146 | 145 | 146 | 147 | 147 | 148 | 152 | 154 | 154 | 154 | 156 | 162 | 165 | 162 | 164 | 167 | 166 | 154 | 155 | 157 | 159 | 160 | 157 | 155 | 154 | 159 | 159 | 160 | 160 | 161 | 161 | 161 | 161 | 156 | 155 | 153 | 153 | 153 | 155 | 156 | 157 | 159 | 158 | 158 | 157 | 158 | 158 | 157 | 157 | 157 | 155 | 153 | 152 | 153 | 153 | 153 | 152 | 149 | 151 | 153 | 153 | 151 | 148 | 147 | 146 | 145 | 148 | 149 | 143 |
271 | 147 | 142 | 141 | 146 | 150 | 149 | 145 | 144 | 144 | 144 | 145 | 146 | 147 | 146 | 143 | 140 | 141 | 141 | 142 | 143 | 143 | 143 | 143 | 145 | 146 | 147 | 146 | 145 | 146 | 149 | 148 | 145 | 146 | 147 | 147 | 147 | 148 | 151 | 152 | 151 | 154 | 151 | 155 | 161 | 162 | 164 | 165 | 162 | 166 | 152 | 144 | 152 | 162 | 161 | 155 | 151 | 157 | 157 | 156 | 156 | 156 | 157 | 158 | 159 | 162 | 161 | 159 | 155 | 152 | 151 | 153 | 155 | 154 | 156 | 157 | 156 | 155 | 155 | 156 | 157 | 158 | 157 | 156 | 155 | 155 | 153 | 151 | 149 | 151 | 152 | 152 | 153 | 152 | 151 | 151 | 151 | 151 | 149 | 148 | 148 |
272 | 148 | 147 | 145 | 144 | 145 | 146 | 148 | 149 | 146 | 144 | 142 | 142 | 143 | 145 | 146 | 146 | 143 | 144 | 145 | 145 | 148 | 149 | 147 | 143 | 146 | 145 | 146 | 146 | 143 | 141 | 143 | 147 | 148 | 147 | 147 | 148 | 149 | 150 | 150 | 150 | 152 | 152 | 154 | 158 | 160 | 160 | 161 | 162 | 168 | 167 | 157 | 150 | 155 | 157 | 155 | 158 | 150 | 154 | 157 | 157 | 157 | 157 | 157 | 155 | 159 | 159 | 161 | 162 | 161 | 158 | 155 | 152 | 153 | 154 | 155 | 155 | 154 | 154 | 155 | 155 | 154 | 155 | 155 | 154 | 153 | 153 | 155 | 156 | 153 | 152 | 151 | 151 | 151 | 151 | 151 | 151 | 151 | 150 | 148 | 147 |
273 | 147 | 147 | 146 | 145 | 145 | 146 | 147 | 148 | 144 | 143 | 143 | 144 | 145 | 146 | 145 | 145 | 143 | 144 | 144 | 144 | 145 | 146 | 144 | 141 | 144 | 142 | 141 | 142 | 142 | 141 | 141 | 143 | 144 | 144 | 145 | 147 | 149 | 151 | 152 | 152 | 152 | 151 | 152 | 156 | 159 | 159 | 159 | 159 | 157 | 166 | 170 | 164 | 157 | 152 | 153 | 158 | 151 | 153 | 155 | 156 | 156 | 155 | 156 | 157 | 156 | 156 | 157 | 158 | 159 | 158 | 157 | 156 | 156 | 156 | 156 | 155 | 154 | 154 | 156 | 157 | 155 | 155 | 156 | 156 | 155 | 154 | 155 | 156 | 154 | 153 | 151 | 150 | 149 | 148 | 147 | 145 | 151 | 150 | 149 | 149 |
274 | 145 | 146 | 146 | 146 | 146 | 145 | 145 | 145 | 146 | 145 | 144 | 144 | 143 | 142 | 141 | 140 | 143 | 144 | 143 | 142 | 143 | 144 | 143 | 140 | 146 | 143 | 141 | 143 | 145 | 145 | 144 | 143 | 144 | 144 | 145 | 147 | 147 | 148 | 148 | 148 | 151 | 150 | 151 | 155 | 157 | 158 | 157 | 158 | 160 | 164 | 169 | 169 | 164 | 160 | 157 | 152 | 153 | 151 | 152 | 154 | 155 | 153 | 155 | 158 | 155 | 155 | 154 | 155 | 157 | 158 | 159 | 160 | 157 | 157 | 157 | 156 | 155 | 155 | 155 | 156 | 154 | 154 | 155 | 155 | 154 | 154 | 154 | 154 | 154 | 152 | 151 | 151 | 153 | 153 | 151 | 150 | 150 | 150 | 149 | 149 |
275 | 143 | 144 | 145 | 145 | 145 | 144 | 143 | 143 | 148 | 147 | 145 | 143 | 142 | 142 | 142 | 142 | 143 | 144 | 143 | 142 | 142 | 144 | 143 | 141 | 147 | 145 | 144 | 146 | 148 | 148 | 147 | 146 | 145 | 146 | 147 | 148 | 147 | 147 | 146 | 146 | 150 | 150 | 151 | 154 | 156 | 156 | 157 | 159 | 164 | 157 | 159 | 163 | 166 | 171 | 168 | 157 | 160 | 153 | 150 | 154 | 155 | 153 | 154 | 157 | 157 | 156 | 155 | 156 | 157 | 159 | 160 | 160 | 156 | 158 | 159 | 159 | 158 | 156 | 154 | 154 | 154 | 154 | 154 | 154 | 154 | 154 | 155 | 155 | 152 | 151 | 150 | 152 | 155 | 156 | 154 | 152 | 151 | 151 | 151 | 150 |
276 | 143 | 144 | 145 | 146 | 146 | 145 | 144 | 143 | 145 | 145 | 146 | 146 | 145 | 145 | 145 | 146 | 143 | 144 | 144 | 142 | 143 | 145 | 145 | 144 | 143 | 144 | 144 | 144 | 144 | 144 | 145 | 145 | 142 | 144 | 146 | 148 | 149 | 149 | 150 | 151 | 147 | 148 | 151 | 153 | 153 | 153 | 155 | 159 | 157 | 154 | 158 | 160 | 159 | 166 | 174 | 172 | 167 | 159 | 153 | 156 | 159 | 156 | 155 | 157 | 158 | 157 | 156 | 157 | 158 | 158 | 159 | 159 | 159 | 159 | 160 | 160 | 159 | 157 | 157 | 156 | 157 | 156 | 155 | 155 | 155 | 156 | 157 | 157 | 154 | 152 | 151 | 152 | 153 | 152 | 150 | 148 | 151 | 151 | 152 | 153 |
277 | 144 | 145 | 146 | 147 | 147 | 146 | 146 | 145 | 143 | 145 | 147 | 148 | 146 | 144 | 141 | 140 | 142 | 144 | 144 | 143 | 144 | 146 | 147 | 146 | 140 | 143 | 144 | 143 | 140 | 141 | 142 | 144 | 140 | 142 | 144 | 146 | 146 | 146 | 147 | 149 | 145 | 146 | 149 | 151 | 150 | 150 | 152 | 156 | 156 | 158 | 160 | 159 | 156 | 159 | 166 | 168 | 170 | 164 | 160 | 161 | 162 | 160 | 158 | 158 | 157 | 156 | 156 | 157 | 158 | 158 | 158 | 157 | 162 | 162 | 161 | 159 | 159 | 159 | 160 | 162 | 158 | 156 | 155 | 155 | 155 | 155 | 155 | 155 | 157 | 156 | 155 | 155 | 155 | 154 | 153 | 152 | 153 | 152 | 151 | 151 |
278 | 144 | 145 | 145 | 145 | 146 | 146 | 146 | 146 | 146 | 147 | 148 | 147 | 144 | 141 | 139 | 138 | 141 | 143 | 144 | 143 | 143 | 145 | 146 | 145 | 141 | 145 | 146 | 143 | 140 | 141 | 143 | 144 | 143 | 144 | 145 | 144 | 141 | 140 | 141 | 142 | 147 | 146 | 146 | 149 | 150 | 150 | 150 | 152 | 157 | 159 | 157 | 155 | 157 | 158 | 158 | 158 | 165 | 165 | 164 | 163 | 161 | 159 | 159 | 160 | 158 | 158 | 158 | 158 | 158 | 158 | 157 | 156 | 160 | 160 | 160 | 160 | 160 | 160 | 161 | 162 | 159 | 158 | 157 | 157 | 157 | 156 | 153 | 152 | 155 | 156 | 157 | 157 | 156 | 157 | 158 | 159 | 156 | 154 | 152 | 151 |
279 | 143 | 143 | 143 | 143 | 144 | 145 | 146 | 146 | 149 | 149 | 148 | 146 | 144 | 144 | 146 | 148 | 140 | 142 | 143 | 143 | 143 | 144 | 145 | 144 | 143 | 146 | 146 | 143 | 141 | 143 | 144 | 144 | 146 | 146 | 147 | 145 | 142 | 140 | 141 | 142 | 151 | 147 | 145 | 148 | 151 | 151 | 150 | 149 | 148 | 155 | 154 | 152 | 157 | 158 | 157 | 163 | 158 | 163 | 166 | 163 | 159 | 157 | 159 | 160 | 162 | 161 | 160 | 159 | 159 | 158 | 157 | 156 | 154 | 157 | 160 | 162 | 162 | 160 | 159 | 158 | 164 | 163 | 163 | 162 | 162 | 159 | 155 | 152 | 152 | 153 | 154 | 153 | 151 | 151 | 153 | 155 | 159 | 158 | 157 | 156 |
280 | 148 | 145 | 140 | 138 | 140 | 143 | 143 | 141 | 142 | 143 | 144 | 146 | 147 | 147 | 147 | 146 | 143 | 141 | 142 | 145 | 146 | 145 | 146 | 147 | 143 | 145 | 146 | 145 | 145 | 146 | 144 | 142 | 140 | 142 | 145 | 146 | 146 | 146 | 146 | 146 | 146 | 147 | 148 | 148 | 147 | 148 | 150 | 152 | 152 | 150 | 152 | 156 | 156 | 154 | 155 | 158 | 162 | 158 | 162 | 166 | 164 | 165 | 160 | 146 | 152 | 159 | 162 | 159 | 160 | 164 | 161 | 153 | 151 | 157 | 159 | 159 | 160 | 157 | 155 | 157 | 161 | 159 | 157 | 158 | 160 | 161 | 160 | 159 | 156 | 154 | 152 | 152 | 153 | 155 | 154 | 152 | 154 | 154 | 153 | 154 |
281 | 144 | 144 | 142 | 139 | 138 | 141 | 143 | 144 | 141 | 143 | 144 | 145 | 146 | 146 | 147 | 148 | 147 | 145 | 145 | 146 | 147 | 145 | 146 | 147 | 143 | 144 | 145 | 144 | 144 | 146 | 145 | 144 | 140 | 141 | 142 | 142 | 144 | 145 | 147 | 148 | 144 | 146 | 149 | 149 | 148 | 147 | 147 | 148 | 145 | 146 | 148 | 150 | 152 | 152 | 154 | 156 | 159 | 158 | 162 | 163 | 160 | 165 | 171 | 168 | 145 | 147 | 151 | 155 | 158 | 158 | 158 | 158 | 160 | 158 | 153 | 152 | 158 | 161 | 161 | 162 | 158 | 158 | 158 | 159 | 161 | 161 | 161 | 161 | 161 | 159 | 156 | 154 | 153 | 153 | 154 | 154 | 155 | 153 | 152 | 152 |
282 | 143 | 146 | 146 | 142 | 138 | 139 | 143 | 145 | 143 | 144 | 145 | 146 | 145 | 146 | 147 | 148 | 148 | 147 | 146 | 146 | 145 | 144 | 143 | 144 | 143 | 144 | 144 | 143 | 143 | 145 | 147 | 146 | 146 | 145 | 143 | 143 | 143 | 143 | 143 | 143 | 142 | 144 | 147 | 149 | 148 | 147 | 146 | 146 | 144 | 146 | 148 | 148 | 150 | 153 | 155 | 155 | 153 | 155 | 161 | 163 | 160 | 163 | 167 | 166 | 175 | 158 | 148 | 152 | 154 | 150 | 152 | 160 | 162 | 164 | 161 | 158 | 157 | 156 | 157 | 162 | 159 | 160 | 160 | 160 | 159 | 158 | 158 | 158 | 162 | 162 | 161 | 157 | 153 | 151 | 150 | 150 | 155 | 153 | 152 | 152 |
283 | 148 | 150 | 150 | 146 | 142 | 141 | 142 | 142 | 143 | 145 | 147 | 147 | 145 | 145 | 145 | 147 | 146 | 146 | 147 | 146 | 145 | 144 | 143 | 143 | 144 | 144 | 143 | 142 | 142 | 145 | 147 | 147 | 149 | 148 | 147 | 147 | 146 | 144 | 141 | 139 | 141 | 143 | 145 | 147 | 147 | 147 | 147 | 148 | 147 | 151 | 151 | 149 | 149 | 153 | 154 | 153 | 151 | 153 | 157 | 161 | 162 | 161 | 158 | 154 | 167 | 171 | 159 | 137 | 132 | 147 | 154 | 148 | 154 | 159 | 162 | 163 | 162 | 158 | 156 | 160 | 159 | 160 | 161 | 159 | 157 | 156 | 156 | 157 | 158 | 159 | 160 | 160 | 158 | 155 | 152 | 151 | 152 | 152 | 153 | 153 |
284 | 149 | 149 | 148 | 146 | 147 | 147 | 143 | 139 | 141 | 143 | 145 | 145 | 145 | 144 | 144 | 144 | 144 | 146 | 148 | 149 | 148 | 147 | 146 | 145 | 145 | 146 | 144 | 142 | 142 | 145 | 146 | 147 | 146 | 147 | 147 | 148 | 149 | 148 | 147 | 146 | 144 | 144 | 144 | 144 | 145 | 146 | 148 | 149 | 148 | 151 | 151 | 148 | 147 | 150 | 151 | 150 | 154 | 154 | 154 | 155 | 159 | 160 | 160 | 161 | 155 | 162 | 165 | 155 | 142 | 138 | 143 | 149 | 150 | 148 | 145 | 152 | 163 | 166 | 163 | 164 | 159 | 160 | 161 | 160 | 158 | 157 | 159 | 162 | 156 | 156 | 157 | 159 | 162 | 162 | 161 | 159 | 153 | 154 | 154 | 154 |
285 | 147 | 146 | 144 | 145 | 148 | 149 | 146 | 141 | 139 | 139 | 141 | 142 | 143 | 144 | 143 | 143 | 140 | 144 | 147 | 148 | 147 | 147 | 146 | 145 | 146 | 147 | 145 | 143 | 143 | 145 | 146 | 146 | 146 | 147 | 146 | 146 | 146 | 148 | 150 | 152 | 148 | 146 | 145 | 143 | 143 | 145 | 147 | 148 | 147 | 148 | 149 | 148 | 148 | 149 | 150 | 150 | 150 | 155 | 156 | 156 | 157 | 156 | 158 | 166 | 164 | 156 | 161 | 173 | 168 | 151 | 148 | 161 | 159 | 152 | 144 | 143 | 151 | 155 | 159 | 166 | 163 | 164 | 164 | 163 | 160 | 159 | 160 | 161 | 163 | 160 | 157 | 157 | 159 | 160 | 160 | 158 | 158 | 159 | 158 | 156 |
286 | 147 | 147 | 146 | 145 | 145 | 147 | 146 | 144 | 142 | 141 | 140 | 141 | 143 | 144 | 144 | 143 | 140 | 143 | 146 | 145 | 144 | 145 | 146 | 145 | 146 | 147 | 146 | 144 | 144 | 146 | 146 | 145 | 145 | 146 | 147 | 145 | 143 | 144 | 147 | 150 | 147 | 146 | 145 | 144 | 144 | 145 | 145 | 145 | 145 | 146 | 147 | 149 | 149 | 149 | 150 | 152 | 147 | 154 | 155 | 157 | 160 | 155 | 153 | 159 | 150 | 156 | 158 | 155 | 161 | 171 | 170 | 160 | 165 | 163 | 157 | 152 | 148 | 144 | 148 | 159 | 164 | 165 | 166 | 165 | 163 | 161 | 160 | 160 | 166 | 163 | 160 | 158 | 157 | 156 | 154 | 153 | 160 | 159 | 158 | 158 |
287 | 150 | 152 | 152 | 147 | 142 | 142 | 144 | 146 | 149 | 145 | 142 | 141 | 143 | 145 | 145 | 143 | 142 | 146 | 147 | 145 | 144 | 145 | 147 | 147 | 146 | 147 | 147 | 145 | 145 | 147 | 147 | 145 | 140 | 143 | 146 | 146 | 143 | 143 | 145 | 148 | 144 | 144 | 145 | 145 | 146 | 145 | 144 | 144 | 144 | 142 | 144 | 148 | 149 | 147 | 147 | 151 | 150 | 152 | 149 | 152 | 160 | 158 | 153 | 157 | 152 | 153 | 159 | 162 | 158 | 152 | 155 | 163 | 161 | 162 | 161 | 162 | 161 | 152 | 147 | 150 | 157 | 159 | 162 | 164 | 165 | 164 | 163 | 163 | 161 | 162 | 164 | 163 | 161 | 158 | 156 | 155 | 156 | 154 | 154 | 157 |
288 | 144 | 147 | 151 | 151 | 147 | 143 | 145 | 150 | 144 | 148 | 148 | 144 | 142 | 144 | 144 | 142 | 144 | 144 | 144 | 143 | 143 | 145 | 145 | 144 | 146 | 148 | 147 | 144 | 143 | 147 | 148 | 147 | 144 | 147 | 147 | 145 | 146 | 148 | 147 | 144 | 145 | 144 | 143 | 140 | 137 | 140 | 144 | 141 | 142 | 144 | 146 | 146 | 146 | 146 | 147 | 149 | 148 | 149 | 149 | 149 | 150 | 154 | 156 | 156 | 158 | 152 | 148 | 151 | 155 | 156 | 155 | 155 | 163 | 159 | 155 | 157 | 163 | 165 | 159 | 151 | 149 | 158 | 161 | 161 | 164 | 165 | 164 | 164 | 161 | 164 | 162 | 158 | 159 | 164 | 165 | 161 | 159 | 157 | 156 | 157 |
289 | 148 | 141 | 136 | 140 | 147 | 150 | 148 | 146 | 146 | 150 | 151 | 145 | 140 | 141 | 144 | 144 | 143 | 145 | 144 | 142 | 141 | 143 | 144 | 143 | 141 | 143 | 145 | 144 | 144 | 145 | 145 | 144 | 146 | 146 | 144 | 142 | 143 | 145 | 146 | 145 | 144 | 144 | 146 | 145 | 141 | 142 | 143 | 140 | 143 | 144 | 145 | 145 | 145 | 146 | 148 | 150 | 148 | 149 | 148 | 147 | 148 | 151 | 152 | 152 | 155 | 160 | 156 | 143 | 138 | 147 | 156 | 156 | 154 | 157 | 159 | 158 | 157 | 160 | 163 | 165 | 169 | 159 | 149 | 153 | 162 | 162 | 160 | 163 | 165 | 163 | 165 | 169 | 166 | 158 | 159 | 166 | 165 | 162 | 159 | 158 |
290 | 173 | 165 | 155 | 148 | 145 | 145 | 146 | 148 | 140 | 144 | 147 | 148 | 149 | 150 | 146 | 140 | 146 | 147 | 147 | 144 | 143 | 143 | 144 | 144 | 143 | 143 | 144 | 145 | 145 | 143 | 142 | 143 | 145 | 144 | 145 | 148 | 148 | 147 | 147 | 147 | 145 | 145 | 147 | 147 | 144 | 144 | 145 | 141 | 142 | 142 | 142 | 142 | 143 | 144 | 145 | 146 | 148 | 149 | 148 | 147 | 147 | 149 | 150 | 149 | 150 | 155 | 157 | 152 | 144 | 141 | 145 | 150 | 152 | 155 | 156 | 155 | 155 | 157 | 160 | 161 | 154 | 163 | 163 | 158 | 159 | 160 | 158 | 156 | 161 | 164 | 165 | 164 | 162 | 162 | 163 | 164 | 165 | 162 | 159 | 159 |
291 | 174 | 174 | 171 | 161 | 149 | 142 | 143 | 147 | 151 | 150 | 148 | 145 | 145 | 146 | 146 | 143 | 146 | 148 | 149 | 146 | 144 | 143 | 144 | 143 | 147 | 144 | 143 | 145 | 146 | 145 | 145 | 148 | 143 | 142 | 143 | 146 | 146 | 142 | 142 | 144 | 146 | 145 | 147 | 147 | 144 | 145 | 148 | 146 | 142 | 141 | 141 | 142 | 142 | 142 | 142 | 141 | 148 | 149 | 150 | 149 | 149 | 150 | 149 | 148 | 146 | 147 | 152 | 159 | 158 | 149 | 141 | 139 | 148 | 150 | 152 | 153 | 154 | 156 | 155 | 154 | 160 | 151 | 150 | 164 | 171 | 159 | 152 | 159 | 159 | 158 | 154 | 151 | 156 | 165 | 166 | 162 | 164 | 160 | 158 | 160 |
292 | 168 | 170 | 173 | 173 | 169 | 160 | 148 | 140 | 142 | 146 | 149 | 149 | 147 | 147 | 148 | 150 | 144 | 146 | 147 | 145 | 143 | 142 | 142 | 140 | 145 | 142 | 142 | 145 | 147 | 146 | 147 | 149 | 150 | 146 | 144 | 145 | 143 | 141 | 143 | 148 | 146 | 144 | 147 | 148 | 145 | 145 | 147 | 145 | 141 | 142 | 143 | 144 | 144 | 144 | 143 | 143 | 145 | 148 | 150 | 150 | 150 | 150 | 149 | 147 | 145 | 150 | 151 | 149 | 154 | 159 | 153 | 141 | 139 | 146 | 151 | 151 | 149 | 151 | 155 | 157 | 158 | 161 | 155 | 147 | 151 | 161 | 164 | 163 | 165 | 153 | 147 | 153 | 158 | 157 | 158 | 163 | 167 | 164 | 161 | 162 |
293 | 168 | 170 | 173 | 176 | 178 | 176 | 169 | 161 | 147 | 144 | 142 | 144 | 149 | 152 | 150 | 146 | 145 | 146 | 146 | 144 | 144 | 144 | 143 | 141 | 146 | 144 | 144 | 146 | 146 | 144 | 140 | 139 | 142 | 143 | 146 | 148 | 148 | 147 | 147 | 149 | 145 | 144 | 148 | 151 | 147 | 145 | 144 | 142 | 139 | 141 | 144 | 144 | 144 | 143 | 144 | 144 | 143 | 145 | 147 | 148 | 149 | 150 | 149 | 147 | 147 | 148 | 148 | 148 | 151 | 156 | 156 | 153 | 144 | 144 | 143 | 142 | 144 | 149 | 151 | 152 | 154 | 154 | 155 | 157 | 154 | 147 | 153 | 169 | 163 | 159 | 158 | 159 | 158 | 154 | 154 | 158 | 166 | 163 | 162 | 164 |
294 | 156 | 160 | 162 | 163 | 167 | 174 | 180 | 183 | 181 | 167 | 151 | 143 | 144 | 146 | 146 | 143 | 148 | 147 | 145 | 143 | 144 | 147 | 147 | 145 | 148 | 148 | 147 | 146 | 145 | 144 | 140 | 135 | 132 | 137 | 141 | 143 | 143 | 143 | 144 | 143 | 145 | 143 | 147 | 151 | 148 | 145 | 145 | 143 | 139 | 142 | 144 | 143 | 141 | 140 | 142 | 145 | 143 | 145 | 145 | 145 | 146 | 148 | 149 | 148 | 148 | 145 | 146 | 152 | 153 | 150 | 152 | 157 | 154 | 148 | 141 | 139 | 144 | 149 | 147 | 142 | 143 | 151 | 152 | 149 | 156 | 163 | 156 | 146 | 157 | 162 | 163 | 160 | 158 | 158 | 157 | 154 | 160 | 159 | 159 | 161 |
295 | 158 | 159 | 159 | 158 | 160 | 165 | 169 | 170 | 173 | 177 | 179 | 173 | 161 | 150 | 147 | 148 | 149 | 147 | 142 | 140 | 142 | 147 | 148 | 146 | 146 | 147 | 146 | 144 | 146 | 149 | 148 | 144 | 148 | 149 | 145 | 138 | 136 | 140 | 145 | 146 | 145 | 142 | 145 | 148 | 146 | 145 | 148 | 148 | 143 | 146 | 147 | 144 | 140 | 138 | 142 | 145 | 145 | 145 | 145 | 144 | 145 | 148 | 150 | 149 | 147 | 150 | 149 | 145 | 146 | 152 | 154 | 150 | 154 | 154 | 152 | 148 | 147 | 147 | 148 | 147 | 142 | 147 | 146 | 143 | 148 | 153 | 156 | 159 | 158 | 151 | 152 | 161 | 164 | 159 | 157 | 161 | 157 | 156 | 157 | 158 |
296 | 154 | 156 | 156 | 156 | 155 | 156 | 158 | 161 | 164 | 166 | 169 | 174 | 179 | 179 | 171 | 162 | 147 | 148 | 150 | 149 | 144 | 140 | 143 | 148 | 146 | 145 | 145 | 147 | 147 | 146 | 143 | 141 | 147 | 146 | 145 | 145 | 143 | 140 | 134 | 129 | 140 | 143 | 146 | 146 | 144 | 144 | 147 | 150 | 143 | 144 | 143 | 141 | 139 | 139 | 137 | 135 | 140 | 145 | 147 | 142 | 139 | 142 | 147 | 149 | 144 | 147 | 150 | 150 | 149 | 148 | 149 | 151 | 149 | 153 | 154 | 152 | 149 | 148 | 147 | 146 | 144 | 144 | 146 | 148 | 148 | 146 | 147 | 150 | 169 | 159 | 149 | 148 | 154 | 161 | 161 | 159 | 161 | 159 | 160 | 163 |
297 | 155 | 157 | 158 | 157 | 156 | 157 | 159 | 161 | 164 | 164 | 163 | 164 | 169 | 175 | 178 | 178 | 164 | 152 | 142 | 142 | 148 | 151 | 147 | 143 | 146 | 148 | 146 | 141 | 141 | 145 | 147 | 146 | 146 | 145 | 145 | 146 | 147 | 146 | 145 | 143 | 135 | 138 | 140 | 141 | 142 | 145 | 149 | 153 | 146 | 145 | 142 | 138 | 137 | 139 | 141 | 141 | 144 | 141 | 140 | 141 | 144 | 145 | 145 | 144 | 144 | 145 | 147 | 147 | 147 | 146 | 146 | 147 | 150 | 150 | 149 | 149 | 152 | 154 | 152 | 147 | 146 | 145 | 145 | 147 | 146 | 145 | 147 | 150 | 146 | 152 | 156 | 155 | 151 | 150 | 154 | 158 | 157 | 162 | 163 | 160 |
298 | 161 | 162 | 162 | 162 | 161 | 161 | 163 | 164 | 162 | 163 | 163 | 161 | 160 | 163 | 166 | 167 | 180 | 177 | 171 | 160 | 148 | 141 | 144 | 150 | 142 | 143 | 143 | 142 | 140 | 140 | 143 | 146 | 148 | 148 | 147 | 147 | 147 | 147 | 147 | 148 | 141 | 141 | 141 | 141 | 141 | 143 | 146 | 148 | 147 | 146 | 142 | 138 | 137 | 139 | 142 | 142 | 147 | 140 | 138 | 143 | 147 | 145 | 142 | 141 | 145 | 145 | 146 | 146 | 146 | 146 | 146 | 146 | 148 | 148 | 147 | 148 | 152 | 155 | 154 | 151 | 148 | 147 | 147 | 147 | 147 | 147 | 150 | 154 | 145 | 149 | 155 | 157 | 156 | 155 | 155 | 156 | 154 | 158 | 159 | 156 |
299 | 157 | 158 | 158 | 158 | 157 | 156 | 157 | 158 | 157 | 161 | 163 | 163 | 162 | 164 | 165 | 165 | 157 | 162 | 168 | 171 | 167 | 158 | 150 | 145 | 137 | 139 | 145 | 149 | 142 | 131 | 133 | 142 | 145 | 146 | 146 | 145 | 144 | 144 | 144 | 144 | 149 | 147 | 145 | 144 | 143 | 143 | 144 | 144 | 147 | 148 | 147 | 144 | 143 | 143 | 142 | 140 | 143 | 143 | 144 | 146 | 144 | 141 | 140 | 141 | 144 | 144 | 144 | 145 | 146 | 147 | 147 | 147 | 145 | 148 | 150 | 149 | 147 | 148 | 151 | 154 | 151 | 151 | 150 | 149 | 148 | 148 | 150 | 152 | 156 | 152 | 150 | 153 | 159 | 163 | 161 | 158 | 155 | 151 | 150 | 155 |
-
결국 이 이미지는 683 $\times$ 1024 개의 숫자의 모임
-
이 이미지를 벡터로 만든다음 히스토그램을 그려보자.
img.flatten().shape
(699392,)
fig1=plt.hist(img.flatten(),256,[0,256])
-
히스토그램을 그려보니 120~200 사이에 너무 값들이 모여있음
-
원래 0~255까지의 색을 표현할 수 있는데 컴퓨터가 표현가능한 색상보다 적은 조합만을 사용하고 있음.
-
아이디어: 좀 더 많은 색상을 표현할 수 없을까? $\to$ 위의 히스토그램은 좀 평평하게 만들면 되지 않을까?
img2=cv.equalizeHist(img)
fig2_1=plt.hist(img2.flatten(),256,[0,256])
# 256개의 구간으로 히스토그램 만들어
fig2_2=plt.hist(img2.flatten(),10,[0,256])
plt.imshow(img2,cmap='gray',vmin=0,vmax=255)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7f6a6e40d1f0>
-
변환전과 변환후를 나란히 보게 되면?
import numpy as np
_img=np.hstack((img,img2))
plt.imshow(_img,cmap='gray')
<matplotlib.image.AxesImage at 0x7f6a6967c760>
-
아래 이미지를 HE(histogram equalization)로 보정하고 스샷제출
hw_img=cv.imread('hw_img.png',0)
plt.imshow(hw_img,cmap='gray')
<matplotlib.image.AxesImage at 0x7f6a69661df0>
-
이미지는 https://raw.githubusercontent.com/guebin/2021DV/master/_notebooks/hw_img.png 에서 다운받을 수 있다.
hw_img2=cv.equalizeHist(hw_img)
plt.imshow(hw_img2,cmap='gray',vmin=0,vmax=255)
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7f6a69572b20>
_img_hw=np.hstack((hw_img,hw_img2))
plt.imshow(_img_hw,cmap='gray')
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7f6a694ad280>