1 |
//Funkce otvuru pro ruzne prvky umistene do celicek |
1 |
//Funkce otvuru pro ruzne prvky umistene do celicek |
2 |
|
2 |
|
3 |
/*OBSAHUJE |
3 |
/*OBSAHUJE |
4 |
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku |
4 |
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku |
5 |
1B) - Pro modul RS232SINGLE01A |
5 |
1B) - Pro modul RS232SINGLE01A |
6 |
1C) - Pro modul USBI2C01A |
6 |
1C) - Pro modul USBI2C01A |
7 |
1D) - Pro konektor MIC338 |
7 |
1D) - Pro konektor MIC338 |
8 |
1E) - Pro modul UNIPOWER02A |
8 |
1E) - Pro modul UNIPOWER02A |
9 |
1F) - Pro modul I2CDIFF01A |
9 |
1F) - Pro modul I2CDIFF01A |
10 |
*/ |
10 |
*/ |
11 |
|
11 |
|
12 |
|
12 |
|
13 |
//1A) - LCD 2x16 |
13 |
//1A) - LCD 2x16 |
14 |
//-------------------------------------------------------- |
14 |
//-------------------------------------------------------- |
15 |
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) |
15 |
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) |
16 |
{ |
16 |
{ |
17 |
//otvor na LCD |
17 |
//otvor na LCD |
18 |
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2]) |
18 |
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2]) |
19 |
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true); |
19 |
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true); |
20 |
|
20 |
|
21 |
//diry na srouby pro LCD |
21 |
//diry na srouby pro LCD |
22 |
|
22 |
|
23 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
23 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
24 |
rotate(a=[90,0,0]) |
24 |
rotate(a=[90,0,0]) |
25 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
25 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
26 |
|
26 |
|
27 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
27 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
28 |
rotate(a=[90,0,0]) |
28 |
rotate(a=[90,0,0]) |
29 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
29 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
30 |
|
30 |
|
31 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
31 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
32 |
rotate(a=[90,0,0]) |
32 |
rotate(a=[90,0,0]) |
33 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
33 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
34 |
|
34 |
|
35 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
35 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
36 |
rotate(a=[90,0,0]) |
36 |
rotate(a=[90,0,0]) |
37 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
37 |
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); |
38 |
} |
38 |
} |
39 |
|
39 |
|
40 |
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) |
40 |
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) |
41 |
{ |
41 |
{ |
42 |
union() { |
42 |
union() { |
43 |
|
43 |
|
44 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
44 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
45 |
rotate(a=[90,0,0]) |
45 |
rotate(a=[90,0,0]) |
46 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
46 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
47 |
|
47 |
|
48 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
48 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) |
49 |
rotate(a=[90,0,0]) |
49 |
rotate(a=[90,0,0]) |
50 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
50 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
51 |
|
51 |
|
52 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
52 |
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
53 |
rotate(a=[90,0,0]) |
53 |
rotate(a=[90,0,0]) |
54 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
54 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
55 |
|
55 |
|
56 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
56 |
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) |
57 |
rotate(a=[90,0,0]) |
57 |
rotate(a=[90,0,0]) |
58 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
58 |
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); |
59 |
|
59 |
|
60 |
} |
60 |
} |
61 |
} |
61 |
} |
62 |
|
62 |
|
63 |
|
63 |
|
64 |
/*1B) - Pro modul RS232SINGLE01A |
64 |
/*1B) - Pro modul RS232SINGLE01A |
65 |
-------------------------------------------------------- |
65 |
-------------------------------------------------------- |
66 |
-------------------------------------------------------- |
66 |
-------------------------------------------------------- |
67 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
67 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
68 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
68 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
69 |
vzdalenost_der - definuje rozec der |
69 |
vzdalenost_der - definuje rozec der |
70 |
|
70 |
|
71 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
71 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
72 |
|
72 |
|
73 |
*/ |
73 |
*/ |
74 |
|
74 |
|
75 |
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) |
75 |
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) |
76 |
{ |
76 |
{ |
77 |
RS232SINGLE01A_sirka_kon=32; //sirka konektoru |
77 |
RS232SINGLE01A_sirka_kon=32; //sirka konektoru |
78 |
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru |
78 |
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru |
79 |
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der |
79 |
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der |
80 |
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy]) |
80 |
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy]) |
81 |
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true); |
81 |
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true); |
82 |
|
82 |
|
83 |
} |
83 |
} |
84 |
|
84 |
|
85 |
|
85 |
|
86 |
/*1C) - Pro modul USBI2C01A |
86 |
/*1C) - Pro modul USBI2C01A |
87 |
-------------------------------------------------------- |
87 |
-------------------------------------------------------- |
88 |
-------------------------------------------------------- |
88 |
-------------------------------------------------------- |
89 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
89 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
90 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
90 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
91 |
vzdalenost_der - definuje roztec der |
91 |
vzdalenost_der - definuje roztec der |
92 |
|
92 |
|
93 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
93 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
94 |
|
94 |
|
95 |
*/ |
95 |
*/ |
96 |
|
96 |
|
97 |
module USBI2C01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) |
97 |
module USBI2C01A(tloustka_bocnice,vzdalenost_der) //uz upraveno |
98 |
{ |
98 |
{ |
99 |
USBI2C01A_sirka_kon=13; //sirka konektoru |
99 |
USBI2C01A_sirka_kon=12; //sirka konektoru |
100 |
USBI2C01A_vyska_kon=12; //vyska konektoru |
100 |
USBI2C01A_vyska_kon=11; //vyska konektoru |
101 |
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der |
101 |
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der |
102 |
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,USBI2C01A_vyska_kon/2+vyska_listy]) |
102 |
USBI2C01A_svyska_nad_plbase=6; //kolik modul zabira der |
103 |
cube(size = [USBI2C01A_sirka_kon,tloustka_celicka,USBI2C01A_vyska_kon], center = true); |
103 |
translate([vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2,0,USBI2C01A_vyska_kon/2+USBI2C01A_svyska_nad_plbase]) |
104 |
|
104 |
cube(size = [USBI2C01A_sirka_kon,tloustka_bocnice+0.2,USBI2C01A_vyska_kon], center = true); |
105 |
} |
105 |
|
106 |
|
106 |
} |
107 |
/*1D) - Pro konektor MIC338 |
107 |
|
108 |
-------------------------------------------------------- |
108 |
/*1D) - Pro konektor MIC338 |
109 |
-------------------------------------------------------- |
109 |
-------------------------------------------------------- |
110 |
*/ |
110 |
-------------------------------------------------------- |
111 |
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der |
111 |
*/ |
112 |
|
112 |
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der |
113 |
module MIC338(tloustka_celicka,vyska,zapust,vule_vysky_celicka,posun_od_kraje,vzdalenost_der) |
113 |
|
114 |
{ |
114 |
module MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice) |
115 |
MIC338_polomer_kon=8; //polomer montazniho otvoru |
115 |
{ |
116 |
translate([posun_od_kraje*vzdalenost_der,0,(vyska-2*zapust-vule_vysky_celicka)/2]) |
116 |
MIC338_polomer_kon=8; //polomer montazniho otvoru |
117 |
rotate(a=[90,0,0]) |
117 |
translate([0,0,vyska_bocnice/2]) |
118 |
cylinder(h=tloustka_celicka+0.1, r=MIC338_polomer_kon+0.1, center=true); |
118 |
rotate(a=[90,0,0]) |
119 |
|
119 |
cylinder(h=tloustka_bocnice+0.1, r=MIC338_polomer_kon+0.1, center=true); |
120 |
} |
120 |
|
121 |
|
121 |
} |
122 |
/*1E) - Pro modul UNIPOWER02A |
122 |
|
123 |
-------------------------------------------------------- |
123 |
/*1E) - Pro modul UNIPOWER02A |
124 |
-------------------------------------------------------- |
124 |
-------------------------------------------------------- |
125 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
125 |
-------------------------------------------------------- |
126 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
126 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
127 |
vzdalenost_der - definuje rozec der |
127 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
128 |
|
128 |
vzdalenost_der - definuje rozec der |
129 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
129 |
|
130 |
|
130 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
131 |
*/ |
131 |
|
132 |
|
132 |
*/ |
133 |
|
133 |
|
134 |
|
134 |
|
135 |
module UNIPOWER02A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) |
135 |
|
136 |
{ |
136 |
module UNIPOWER02A(tloustka_bocnice,vzdalenost_der) |
137 |
UNIPOWER02A_sirka_kon=9; //sirka konektoru |
137 |
{ |
138 |
UNIPOWER02A_vyska_kon=11; //vyska konektoru |
138 |
UNIPOWER02A_sirka_kon=10; //sirka konektoru |
139 |
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der |
139 |
UNIPOWER02A_vyska_kon=11; //vyska konektoru |
140 |
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu |
140 |
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der |
141 |
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+posun_od_kraje*vzdalenost_der+UNIPOWER02A_vzdalenost_konektoru+UNIPOWER02A_sirka_kon/2,0,UNIPOWER02A_vyska_kon/2+vyska_listy]) |
141 |
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu |
142 |
cube(size = [UNIPOWER02A_sirka_kon,tloustka_celicka,UNIPOWER02A_vyska_kon], center = true); |
142 |
UNIPOWER02A_vyska_nad_plbase=6; //vyska mezi albase a konektorem |
143 |
} |
143 |
translate([UNIPOWER02A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER02A_vyska_nad_plbase]) |
144 |
|
144 |
cube(size = [UNIPOWER02A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER02A_vyska_kon], center = false); |
145 |
/*1F) - Pro modul I2CDIFF01A |
145 |
} |
146 |
-------------------------------------------------------- |
146 |
|
147 |
-------------------------------------------------------- |
147 |
/*1F) - Pro modul I2CDIFF01A |
148 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
148 |
-------------------------------------------------------- |
149 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
149 |
-------------------------------------------------------- |
150 |
vzdalenost_der - definuje roztec der |
150 |
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky |
151 |
|
151 |
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka |
152 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
152 |
vzdalenost_der - definuje roztec der |
153 |
|
153 |
|
154 |
*/ |
154 |
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. |
155 |
|
155 |
|
156 |
module I2CDIFF01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) |
156 |
*/ |
157 |
{ |
157 |
|
158 |
I2CDIFF01A_sirka_kon=19; //sirka konektoru |
158 |
|
159 |
I2CDIFF01A_vyska_kon=16; //vyska konektoru |
159 |
module I2CDIFF01A(tloustka_bocnice,vzdalenost_der) //uz upraveno |
160 |
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der |
160 |
{ |
161 |
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,I2CDIFF01A_vyska_kon/2+vyska_listy]) |
161 |
I2CDIFF01A_sirka_kon=16.5; //sirka konektoru |
162 |
cube(size = [I2CDIFF01A_sirka_kon,tloustka_celicka,I2CDIFF01A_vyska_kon], center = true); |
162 |
I2CDIFF01A_vyska_kon=13.5; //vyska konektoru |
163 |
|
163 |
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der |
164 |
} |
164 |
I2CDIFF01A_vyska_nad_plbase=6; //vyska mezi albase a konektorem |
- |
|
165 |
translate([vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2,0,I2CDIFF01A_vyska_kon/2+I2CDIFF01A_vyska_nad_plbase]) |
- |
|
166 |
cube(size = [I2CDIFF01A_sirka_kon,tloustka_bocnice+0.2,I2CDIFF01A_vyska_kon], center = true); |
- |
|
167 |
|
- |
|
168 |
} |
165 |
|
169 |
|
166 |
|
170 |
|