本帖最后由 1五湖四海1 于 2016-8-25 22:44 编辑 4 C6 S) ]& }/ v- d- U6 N
( T" o T# t; t' I& t这个defaults.h文件作为一个中央默认设置配置不同的机器类型,从DIY米尔斯数控CNC转换的现成的机器。这里的设置所列出的文件是由用户提供的,
1 b9 i* U# i) g p所以您的你的需求可能不同。所以应该你了解你的机器和调整设置根据你的个性的需求,制造机器。
/ w9 t$ A2 V# }, ~defaults_h文件是选择是否将一些参数设置为默认值0 `6 w0 }0 c/ J, z7 s" b
定义各种参数5 U" ?: ^. ?! H- `! m+ G
1.defaults/defaults_generic.h //Grbl通过通用默认设置就可以在不同的机器上工作。
9 V( @) B/ b, t9 |" I7 m5 F6 G' L: T. g2.defaults/defaults_sherline.h //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机2 C- F) Q, l# {
3.defaults/defaults_shapeoko.h // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的- s! u: P8 q6 J& z$ ~6 P
4.defaults/defaults_shapeoko3 //描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的
* }1 U( h& o+ [0 ]5.defaults/defaults_x_carve_500mm //描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。
7 i! ]% `4 O" Y1 V9 a X6.defaults/defaults_zen_toolworks_7x7 //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。由30 v 6电源和TI DRV8811步进电机驱动程序
+ `* k/ [( i7 s+ A: O/ h: u1 K7.defaults/defaults_oxcnc // Grbl设置OpenBuilds牛数控机床
7 y- p: v% B) Z' k8.defaults/defaults_simulator2 a2 e) x0 t0 {
- r. v: O2 \. p
/*
2 ~& f/ z/ P* U7 }1 V! } defaults.h - defaults settings configuration file
9 j% U- c0 S4 l' _& x Part of Grbl3 G) j; f- f. J# H/ `; n" t4 f
* ~; X7 k: {' F6 {! `
Copyright (c) 2012-2015 Sungeun K. Jeon
4 _* h4 U# ^- @. K' M* [4 x; V1 I0 Q6 N* U+ M7 W2 Q
Grbl is free software: you can redistribute it and/or modify
) L/ ]) j- S5 R/ D3 E* K/ f( Y it under the terms of the GNU General Public License as published by
+ G6 P1 o0 _! ]. h- e the Free Software Foundation, either version 3 of the License, or
/ _% H A, ]5 n8 h- Y* C (at your option) any later version.8 k/ x, g' Q" T/ m
& G5 r# [! \$ L8 ~1 l Grbl is distributed in the hope that it will be useful,
, T( B$ b0 ]0 X+ H6 i) N but WITHOUT ANY WARRANTY; without even the implied warranty of% b4 l/ U' F6 h* Q# O/ E5 x
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- T( N% ?" x" K& \0 b GNU General Public License for more details.
3 g3 s H- P; S) D: d* l
8 W& G" E! f8 @( I+ B, }2 q+ M7 ?# h/ g( q You should have received a copy of the GNU General Public License& [: j5 K1 x c* s3 u
along with Grbl. If not, see <http://www.gnu.org/licenses/>.0 o. Q) n) U. W5 n* P$ k! t
*/
y# N* i# R. r$ n+ B
: p+ [5 ?( g3 R, T+ h) A b- T/* The defaults.h file serves as a central default settings selector for different machine& h1 W( d& g- @
types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings
1 j2 n5 K' ]2 i! Z3 Y files listed here are supplied by users, so your results may vary. However, this should
* i! u" |9 A* i give you a good starting point as you get to know your machine and tweak the settings for( T! s9 z4 Y2 P' [* H- m
your nefarious needs.9 R Q% \' d( n( n$ s: |1 R5 A2 _
Ensure one and only one of these DEFAULTS_XXX values is defined in config.h A: x' h3 t% t! N6 c+ b7 _* _. X
/ f, g5 D) p/ [# | s# y. p The defaults.h文件作为一个中央默认设置选择不同的机器6 I3 p* m( ^5 U% f
类型,从DIY米尔斯数控CNC转换的现成的机器。的设置 `4 d" _7 a& o/ f& v9 b
这里列出的文件是由用户提供的,所以您的结果可能不同。然而,这应该
4 G) f$ R* E: f0 l. r) ]1 t 给你一个很好的起点,你了解你的机器和调整设置
) p- _+ E5 Q+ \, H+ w0 W 你的个性的需求。
( Y; }3 u! [) e- z 确保一个且只有一个这些DEFAULTS_XXX config.h中定义的值. j- I& D2 M7 ^/ r
*/: w. e& ?. f: u0 _( I8 |, l6 Z3 @
3 U' V: q0 P+ {- ^8 z! S
#ifndef defaults_h1 ^1 g0 d6 B" e8 n& b7 [: A2 `2 S) X" g
0 N/ y% v. s2 \* S4 D
// Only define the DEFAULT_XXX with where to find the corresponding default_XXX.h file.6 A7 c0 W+ {6 [) n9 H& i6 |
// Don't #define defaults_h here, let the selected file do it. Prevents including more than one.- i% K# [ T; l& |! j- J
//只有定义DEFAULT_XXX在哪里可以找到相应的DEFAULT_XXX。h文件。+ M& M4 ~# Z" I
//别在这里# define defaults_h,让选中的文件。防止包括不止一个。) L$ c, h6 X8 E. h1 O
+ l$ c- N8 V" A# I8 R5 `
#ifdef DEFAULTS_GENERIC
0 k: E+ d! Z3 v8 L6 Q5 L // Grbl generic default settings. Should work across different machines.
* c0 H% \: h1 \4 i# v // Grbl通过通用默认设置就可以在不同的机器上工作。$ K' s' O& V- U+ e6 y
#include "defaults/defaults_generic.h" b' X4 [. |0 p8 d
#endif
. ?3 L0 H3 T3 d. \. t8 I x
9 y: ?3 F W; [5 R$ M9 c/ Q9 b% Z A#ifdef DEFAULTS_SHERLINE_5400
: D& }3 d8 U7 G d9 s+ C+ a // Description: Sherline 5400 mill with three NEMA 23 Keling KL23H256-21-8B 185 oz-in stepper motors,! H; q M* A+ o0 L3 J2 N& U
// driven by three Pololu A4988 stepper drivers with a 30V, 6A power supply at 1.5A per winding./ C8 Y' F9 Y% u, K" q# v: P8 K
//描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机,$ g) @3 }* @+ L8 b5 j
//由三个Pololu A4988步进驱动30 v,6在每1.5绕组供电。
* F0 h# Z1 X+ b' a- s1 @
6 ?6 ?$ z: D, u+ j0 N, M7 r$ E4 m# d #include "defaults/defaults_sherline.h"
1 U- f' r2 H" l# t7 O+ V. o1 K9 I#endif( o# _/ ]( o" P) L- }# T3 d) H
9 w; h* Q4 v6 \8 v2 R#ifdef DEFAULTS_SHAPEOKO, i, |4 ?/ u( R8 W
// Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos+ \4 G# E' ?& X. q
// grblShield with a 24V, 4.2A power supply.# m( c& d; Z# `+ @
// 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
- n; _1 r6 A" ~! k, H" c$ Z // grblShield 24 v,4.2电源。
" U8 Q8 M" \% `: {7 s4 H% N6 |- K% C' F+ y
#include "defaults/defaults_shapeoko.h"2 K" p& V4 H6 _& }
#endif8 K; D; ]2 y O- x, x
+ D2 `+ x k8 h6 p# {5 q- W
#ifdef DEFAULTS_SHAPEOKO_2
2 U5 ?5 r' z! O5 `3 ]( y3 C, {' g // Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos' P9 X& c; d" }! [/ Y
// grblShield at 28V.2 W- n0 a0 |1 b7 {6 o
// 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
/ [8 S1 o) T3 A9 o" ~* ?' [$ S // grblShield 28 v。
: z ]9 R( J4 g% Y. E( ]2 ?; H, D8 k; y+ _) X
#include "defaults/defaults_shapeoko2.h"
9 l$ s: L$ m+ G7 y F$ @#endif
/ l/ e7 E. ^6 ^1 n6 d" n
* x3 c9 S) D- o7 }3 C9 C#ifdef DEFAULTS_SHAPEOKO_3
: V C+ Z! D& X% @( a' S // Description: Shapeoko CNC mill with three NEMA 23 stepper motors, driven by CarbideMotion: Q# u- Y* R( F% Q! \. @
// 描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的# z+ Z# N) k( m% i1 R( Z5 d* E
( U3 M0 n3 G) I) T) j/ e0 u #include "defaults/defaults_shapeoko3.h"$ \1 m' q: U3 }2 v' O& y
#endif
( J8 n, ~/ F" e% p5 L$ e: J% g5 i: q) q; n5 y
#ifdef DEFAULTS_X_CARVE_500MM1 J. x* ^, ?3 {7 v/ l* ^
// Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos
6 o. a9 w# C; z* \& M // grblShield at 24V.. V7 \5 G5 V; A
// 描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。
: i5 A* m' z1 a7 a8 c4 B9 q4 x #include "defaults/defaults_x_carve_500mm.h"$ G# H- z; N1 G* X& A1 T2 r
#endif) X: u4 J1 I% \& y$ a
# E3 Y* @6 s2 x1 G! H( c1 e7 T#ifdef DEFAULTS_X_CARVE_1000MM
. m' m1 Q3 I8 H( n5 l1 f( d8 H% x ~ // Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos
% X5 i1 L* N5 F' G9 Y: I // grblShield at 24V.
3 x) S& z9 |+ B" Q6 M #include "defaults/defaults_x_carve_1000mm.h"& J' ]$ `3 y/ ]' x* g
#endif
- ?8 S; s0 f, J! o: _2 ^/ z& P
0 X0 m5 A3 Y* r#ifdef DEFAULTS_ZEN_TOOLWORKS_7x7
7 r) t9 Z8 G$ l) ~9 [4 @ // Description: Zen Toolworks 7x7 mill with three Shinano SST43D2121 65oz-in NEMA 17 stepper motors.
0 m) x0 c4 h* I' T' p, g5 ? // Leadscrew is different from some ZTW kits, where most are 1.25mm/rev rather than 8.0mm/rev here.
, [" ?! E6 ^* E+ I) o // Driven by 30V, 6A power supply and TI DRV8811 stepper motor drivers.
/ ?0 T2 c) \+ E6 M3 j //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。! n5 ^! K' x7 ?5 H" L2 h1 c/ `6 A, ^
//导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。- a2 y1 L x0 ^( v1 A
//由30 v 6电源和TI DRV8811步进电机驱动程序。
9 p0 F9 V5 J& d! V7 s* H- u9 G7 e$ }' b3 h- I% b
#include "defaults/defaults_zen_toolworks_7x7.h"0 g1 _* ~, d3 W
#endif4 V9 M/ ?" j- D; {( v
# e+ F# U2 n2 v) `8 X! [
#ifdef DEFAULTS_OXCNC9 Y3 x$ u! z5 d3 j9 l
// Grbl settings for OpenBuilds OX CNC Machine
1 G% W8 O$ i% T" ]+ R: R+ _# g // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/. P6 d" n; S9 q, Q
3 K3 G; ?0 [1 S) M* N0 S0 n // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/
" h( c& ?8 K! K$ s #include "defaults/defaults_oxcnc.h" // Grbl设置OpenBuilds牛数控机床
# u/ ?( K7 J2 _8 i#endif
# e, j7 R7 H/ q8 u' r% `4 a1 k' P/ G# s6 D5 v: W$ E! y# v& l
#ifdef DEFAULTS_SIMULATOR
# y5 @: H& l6 y- d1 n // Settings only for Grbl Simulator (www.github.com/grbl/grbl-sim)
" t3 W: `. M, ` #include "defaults/defaults_simulator.h" //设置只对Grbl模拟器(www.github.com/grbl/grbl-sim)- U' r+ W0 o3 `- N( o2 R$ j
#endif) E- h+ Y: H1 o& S9 F! ?3 I6 B( ^. B5 T
2 Q. D. A# g4 K1 O+ E, R
#endif
! z5 z5 r' ]; t' e( @; O) k M8 |, z7 E( K' N
__________________________________________________________________________________________________________________
9 ]) v; }9 {4 H# V* C/*+ K/ _& e( L$ y" v
defaults_generic.h -默认设置配置文件Grbl的一部分3 W( U( J1 \$ e2 C) ?
版权(c)2012 - 2015 Sungeun k全' P2 |" ~4 k7 u) {1 \) ?9 Y
Grbl是免费软件:可以重新分配和/或修改' l% N1 V: i" c
GNU通用公共许可证的条款下发布的
" k/ D- {, w0 b3 d+ D1 ^自由软件基金会,版本3的许可,或
: h7 ~; K# w$ `(任您选)其后的版本。
* I3 O& e/ Q2 f- s% z
# ?3 v* i- o+ C0 z+ u4 h cGrbl分布,希望这将是有用的,- z* Y% F% n; C% U$ z/ K N
但是没有任何保证;没有即使的默示保证2 u8 L4 w7 W* S) y
适销性或健身为特定目的。看到+ Q5 n7 m5 f/ K' N
GNU通用公共许可证的更多细节。& ~; N' d" ]$ M) u9 C
( [7 O8 z/ h8 p; W- S) \你应该收到了GNU通用公共许可证的副本
$ d0 E: j9 j9 E: g- [3 ~连同Grbl。如果没有,看< http://www.gnu.org/licenses/ >。
- W/ m/ i9 [3 t9 v! P$ R3 ~* / ~4 X" R/ o: m. N/ H2 z& i
' ?$ a* k% W( A, S9 N/ x/ *默认值。h文件作为一个中央默认设置文件不同的机器
+ h1 K( u' g1 W T0 Y- t类型,从DIY米尔斯数控CNC转换的现成的机器。的设置; m: i* s! N0 }5 q0 m
这是由用户提供,所以您的结果可能不同。然而,这应该给你' d2 @! n9 S& a
一个好的起点,你了解你的机器和调整的设置$ ~, \5 F9 _% j& q5 V# ^
邪恶的需求。*/
) t' ~! r5 U, l1 N
( m& R: }, F9 E& j9 r1 O2 P8 B7 R: c5 y: I. y; b6 I0 V- K
#ifndef defaults_h4 n& L, _! f3 w: v: ~, T
#define defaults_h
1 j# G3 a; P0 x5 a% w; u! e; Q% M, b/ o" }
// Grbl generic default settings. Should work across different machines.
% z* b$ z+ s- `- W1 Z #define DEFAULT_X_STEPS_PER_MM 250.0 //X轴每mm脉冲当量 , q S& n4 @: P) h
#define DEFAULT_Y_STEPS_PER_MM 250.0: `! ]4 u# Y4 E! ^- s
#define DEFAULT_Z_STEPS_PER_MM 250.06 f/ v8 X P# _' \! I
#define DEFAULT_X_MAX_RATE 500.0 // mm/min 最大速度1 ~2 B% W3 i# Y3 Q7 {
#define DEFAULT_Y_MAX_RATE 500.0 // mm/min
) G2 \) k8 ]# D& u* w3 ~* C# A1 ] #define DEFAULT_Z_MAX_RATE 500.0 // mm/min
9 Y+ X& X9 [9 k9 E1 O/ n/*这是毫米/秒/秒的加速度。3 v5 j! u/ p/ R C- D' d9 }& X
你不需要理解这是什么意思,我只想说,一个较低的值给smooooother加速度而价值更高的收益率更严格的措施,达到所需的进料速度更快。
; U, m* b0 [! w9 E2 R7 c从技术角度讲,这是您的机器的点对点的加速度,独立于轴。设置加速度值高达你最限制轴可以让你在不丢失任何步骤。: `4 W$ t6 t, _" r
通常你想给自己一些缓冲,因为如果你失去了步骤,Grbl不知道这发生了(开环控制步进),并将继续。*/
6 a [% T( X7 G #define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 加速度( Q( \2 e- e c. d# E/ U
#define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2/ h0 T1 ~ d( W8 N- o
#define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2; Y* z# g3 K( M* a I
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm 最大步行
, P# o8 i& K* U #define DEFAULT_Y_MAX_TRAVEL 200.0 // mm 6 G& f' d$ Q ^7 B' j9 T. R% p4 f1 S$ f1 D
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm ( I' v9 K$ ?% {4 K
#define DEFAULT_STEP_PULSE_MICROSECONDS 10 //步进驱动脉冲长度
# V" C' A; l) s #define DEFAULT_STEPPING_INVERT_MASK 0 //步进是否反转
, z1 O- n# C$ g& V5 z; f #define DEFAULT_DIRECTION_INVERT_MASK 0 //方向是否反转* U# q- I: u6 S# e4 x4 \/ `
/*
. D7 p/ T: c- w3 k. Y+ q( \# d+ n 每次你完成步进运动和停止,Grbl将禁用默认步进。
! [! H: b5 r# }* p( J* u/ }锁步进空闲时间时间长度Grbl将步进锁之前禁用。" w1 a' R. q" S1 H
根据系统中,您可以将这个参数设置为零,禁用它。对他人,你可能需要25 - 50毫秒来确保你的斧子来完成禁用前停止。(我的机器往往漂移稍微如果我没有启用。)
- ^) S' ]3 k8 [2 l$ v; Y4 P$ } ~或者,你可以让你的轴在任何时候启用通过将这个值设置为最大255毫秒。再次重复,你总是可以保持所有轴通过设置启用7美元= 255。*/
/ i) l, ?% s+ b. e" I #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)步进闲着时间3 u2 E6 O: X0 b. E, p8 |
#define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION)) //是否打印状态报告* `) u, a t' e; L& N& j4 u
/*一些高低cnc-stepper控制器需要输入反方向和步骤。4 p. p9 m3 |: r0 O
信号线路通常是高或低信号方向或高,低了几微秒一步事件信号。为了达到这个目标,Grbl可以反转输出比特来满足特定的需求。
1 E7 F( U" f+ S反掩码值是一个字节,xor的步骤和方向步进港数据之前发送。这样你可以使用这两个转化步骤脉冲或转化的一个或多个方向的轴。
. h' d, |/ {/ `' m+ e6 W这个字节对应的比特分配给介入config.h别针。请注意,不用于反演位0和1。默认比特分配是这样的:*/
. g7 A* [' H$ k8 L. a& v$ t X/ }* X. D2 \6 D: y, B
/* 转弯路口偏差使用加速度经理决定它如何快速穿过一条路径。
* ]6 a: c. }+ _" Z- R& o- l 数学有点复杂,但总的来说,更高的价值给一般快,可能的波动运动。低价值使得加速度经理更加谨慎,将导致小心和慢转弯。
+ R! T( F- M1 Q 如果你遇到问题,你的机器试图把一个角落太快,降低此值使它慢下来。
1 P2 G2 L0 I+ ~9 y$ ~3 g5 Q& |0 u! @" K 如果你想让你的机器通过连接移动得更快,增加这个值速度。/ {& p/ ^% m. ?. ^; u0 n' C; m, \
为技术人员,点击这个链接阅读关于Grbl转弯算法,速度和结角占一个很简单,高效和可靠的方法。*// {9 u6 j# ~; Y1 O" r9 f
- k) L( h7 U: `3 v6 U- P8 N #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm //偏差
- F$ X( _- M# [# i #define DEFAULT_ARC_TOLERANCE 0.002 // mm //圆弧公差
/ j% s1 K1 P6 n, v/ O+ E #define DEFAULT_REPORT_INCHES 0 // false //打印英寸
$ M+ ^ W9 H) j' Y2 b7 ] /*默认情况下,步进使销是启用禁用高和低。如果您的设置需要相反的,只是反步进使销通过输入15美元= 1。禁用与15美元= 0。(可能需要一个动力循环加载的变化。)*/
$ m, X* N) C2 X; x, b9 g z #define DEFAULT_INVERT_ST_ENABLE 0 // false
3 Y& ~3 \% r" l #define DEFAULT_INVERT_LIMIT_PINS 0 // false //反转限位引脚
0 x' {6 W: d% f: k2 W" i+ a* ^& V #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false //软件限位6 c6 R, N4 ~- w0 O* I
#define DEFAULT_HARD_LIMIT_ENABLE 0 // false //硬件限位6 p$ {/ C% }# s- ~4 K
#define DEFAULT_HOMING_ENABLE 0 // false //回原点使能
! Z5 t0 T: q; P0 k. [ #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
: O5 Z4 \/ l1 @$ G/ T9 B# \+ b #define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min4 l/ I: @9 m5 s# K
#define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
4 s) d3 m; z2 U0 t @, t, s( x #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)防抖动延时
) X# v( x/ O) M #define DEFAULT_HOMING_PULLOFF 1.0 // mm
9 k ]# W2 |& k# H/ N) [0 W' R% j) L: l8 B0 F
#endif
# ]% ]5 t0 [$ w3 k. D& i0 k* B# A0 B( v
; [( v2 \1 B2 _! D- g2 m: D2 e/ v4 {2 e8 ~ c
& O6 P. u$ y6 B! f7 r/ E
# h/ c$ F* k& u L, \
( p/ B, A7 f& d! R x
: O5 Y& }- Y* {) Z4 Y* X ?0 G9 c Z+ L
6 e8 }6 z; X5 c- R; ?
. n% q$ l6 H% Z1 n- u W1 q# t1 [; D9 j- v
- }! m% }3 Y( k7 Z
* d% {& M4 _ ]
2 W2 { q% L- w3 u- |
- S( M$ b4 V1 L
& }9 D% e# m! X1 U8 B' k% e$ l6 ] C% t, V2 a- ?9 d0 y+ j9 c4 c
% h( g' B/ D) ]- x0 o6 v' d# y! l# D9 N* d, _
+ P5 d$ s/ p2 | \. I$ S; L. Z; s& P- f5 d# b+ b: A
, Y$ r- T3 F& |
% p6 L7 ^' F _7 B/ p( _7 A2 T
' x9 j V( _+ l; D8 u7 V' X5 @3 C
3 j e7 B" ?0 o6 O2 [( q' `# r1 J5 a" B, u2 m: X
|