|
Java视频教程名称: 小马哥Vue2最详细的VUE教程-入门到项目实战视频教程[javazx.com] java自学网[javazx.com] Vue2视频教程 it教程 Java自学网收集整理
+ A: B' y: M8 I9 d0 O$ S/ S; L& H2 J百度网盘下载链接:
, w% U4 p2 E4 G2 P- m+ I[/hide]密码: mzww【解压密码:javazx.com-AE0o71JD】5 I/ u1 @8 T- R6 ?% U* d
集数合计:N讲[javazx.com] / g% ^+ b8 ~7 x0 B# U4 s' t
" z2 D7 g& `1 H9 x) j% v7 X链接失效声明:如果本链接地址失效,请及时联系站长QQ:40069106
, @& Q, f0 j. ]: P) c& s* v如何获取资源:VIP升级: https://www.javazx.com/thread-10591-1-1.html
( g% E! _# k! h1 \6 Z$ v! G' oVIP说明: 月度VIP:使用期限30天0 H a( ~% r4 C' X9 V+ X- z
年度VIP:使用期限365天: }. q" r7 Q- M
终身VIP:使用期限永久3 j4 V5 A4 W* z6 A- }) ?$ S
+ Z' q6 q4 {, r- e6 `9 |5 b& B
Java视频教程详情描述: " O" v( |7 x5 ?) u0 r+ s; u7 P
A0575《小马哥Vue2最详细的VUE教程-入门到项目实战视频教程》javazx.com 小马哥Vue2最详细的VUE教程-入门到项目实战视频教程 javazx点com java自学网整理 ! P' s; b3 @ h4 e/ Y
B: n/ X# u f8 N6 aJava视频教程目录:
; `1 B `, v, [5 R& P# p; E
@+ j4 ?, u8 H7 }/ T8 R, u `01-(理解)计算属性setter和getter.mp4+ ~; ?. ~( ?/ v r" o2 K( r9 i
02-(掌握)计算属性和methods的对比.mp4
/ V' u; Y4 L" L+ ^: [2 d* ^1 K03-(掌握)块级作用域-let和var.mp4
% J, D5 ~( j$ E, p; ?3 h04-(理解)三种方案对比-ES5没有闭包-有闭包-ES6的let.mp4
% A/ T' }9 A2 C+ L: M% h. A" `05-(掌握)const的使用和注意点.mp42 \- c1 }' M. c! u/ f4 N- `
06-(掌握)ES6对象字面量增强写法.mp46 A* j1 ~) B: i1 z. _
08-(掌握)v-on的基本使用和语法糖.mp4
% w1 M; J* h! R+ ]9 }09-(掌握)v-on的参数传递问题.mp4! V/ @2 ?# ^1 p/ A2 f2 S- S
10-(掌握)v-on的修饰符使用.mp4- C) Q- w; _" X7 l* r `& c
11-(掌握)v-if和v-else-if和v-else的使用.mp44 N% o$ Z9 m* A
12-(掌握)登录切换的小案例.mp4. Z8 ^' D' A! _- H( Z
13-(理解)登录切换的input复用问题.mp4
* G- c" _, j- B G0 G# S. R14-(掌握)v-show的使用以及和v-if的区别.mp4
8 w$ J' E* \" @/ X: P15-(掌握)v-for遍历数组和对象.mp4 z7 r! R9 Z) H1 v( n- w
16-(理解)v-for-绑定和非绑定key的区别.mp4; B; P- ]$ i3 E6 \! a
17-(掌握)数组中哪些方法是响应式的.mp4
~' s8 L3 d' U& Z6 R" `1 j) q" a, p18-(掌握)作业的回顾和实现.mp4; n6 J4 f& f; a! v5 ^: k
19-(掌握)购物车案例-界面搭建.mp4
! s7 j$ F2 ^% M D. o: I20-(掌握)购物车案例-过滤器的使用.mp4
0 Y5 q7 z3 @5 k7 }2 q! \0 X1 W21-(掌握)购物车案例-改变购买数量.mp4
! q8 U$ x7 R' O22-(掌握)购物车案例-移除按钮-最终价格.mp4+ m7 _. ~5 E; Z* {$ K4 ~- C
01-(掌握)JavaScript高阶函数的使用.mp4* k/ @# G7 N# |, }
02-(掌握)v-model的使用和原理.mp4
! C1 U. L1 z5 h8 Y) }8 o03-(掌握)v-model结合radio类型使用.mp4
' A9 ^& D" b D04-(掌握)v-model结合checkbox类型使用.mp4- b% d* U- I# t% M3 _- n
05-(掌握)v-model结合select类型使用.mp4 N" ^- \( w/ Q# B( M3 d6 _
06-(掌握)input中的值绑定.mp44 a, l7 y6 D# C7 g
07-(掌握)v-model修饰符的使用.mp4
% ]* j2 c6 ^9 n08-(掌握)组件化的实现和使用步骤.mp4
% L, ]( n8 S3 \% N2 N09-(掌握)组件化的基本使用过程.mp4$ n. i: h Z1 b/ s2 x) u" G
10-(掌握)全局组件和局部组件.mp4
+ ]; |9 g* w* r0 g11-(掌握)父组件和子组件的区分.mp4# [* L+ ?3 C# M c! @. c$ A: K
12-(掌握)注册组件的语法糖写法.mp4* l2 ~1 o3 v. J' a! E: B& `7 E3 d
13-(掌握)组件模板抽离的写法.mp4! K9 s; L1 G% `3 V k, N
14-(理解)为什么组件data必须是函数.mp4
8 o& s# w( B' X R) O" Q15-(掌握)父子组件通信-父传子props.mp4% X" h4 P1 p" Z8 Q
16-(掌握)父子组件通信-props驼峰标识.mp4
' H) I2 Q- d1 ^8 T5 l% ?6 ]8 \17-(掌握)父子组件通信-子传父(自定义事件).mp4. `3 N! V% `7 y0 [
18-(了解)项目演示.mp4
2 v' e, Q* H2 K5 d" p* d) N19-(了解)知识回顾.mp4/ t- i6 K$ U) G. ?# C
01-(掌握)父子组件通信-结合双向绑定案例.mp4
$ [+ P2 L) c1 y# _2 e02-(掌握)结合双向绑定案例-画图分析.mp4
' x& w! p1 C5 q. d. w* u+ D& m03-(了解)结合双向绑定案例-watch实现.mp40 u$ s% h! D: ]6 c w0 C5 T
04-(掌握)父访问子-children-refs.mp4
5 X# w2 R! h5 u5 ]/ ^8 o8 \7 D$ z05-(理解)子访问父-parent-root.mp4
1 W% K( ~; N ^06-(掌握)slot-插槽的基本使用.mp49 C% ]7 y5 \$ R% A6 x9 Q1 Y
07-(掌握)slot-具名插槽的使用.mp4# c* j& T# Z% c9 |$ I- O1 _" k8 B5 q
08-(理解)编译作用域的概念.mp4
3 s/ C" L9 p- o$ U/ w09-(掌握)作用域插槽的使用.mp4
3 T& F3 a! [7 `* ]& g. Q# P4 Q9 E10-(理解)前端代码复杂带来的问题.mp4! V, q7 \- X/ `6 Y' u/ N3 y$ a
11-(理解)前端模块化雏形和CommonJS.mp4
, m2 \6 h% P; U12-(掌握)ES模块化的导入和导出.mp4
2 B: R$ @: J1 b4 f& R13-(理解)webpack的介绍和安装.mp4
" y+ {; A& |* w$ r- ^% W/ B5 _+ P14-(掌握)webpack的基本使用过程.mp4 N) p( ?- d5 f
15-(掌握)webpack.config.js配置和package.json配置.mp4
5 N) y; `$ K5 c7 d16-(掌握)webpack中使用css文件的配置.mp4
+ n2 |' o: R& U! ?01-(掌握)webpack-less文件的处理.mp4$ y+ V) r9 c" |
02-(掌握)webpack-图片文件的处理.mp4" X4 x: U* I) b R3 }4 U
03-(掌握)webpack-ES6转ES5的babel.mp4
6 K& D& V: v8 J3 m, E; H$ C04-(掌握)webpack-使用Vue的配置过程.mp4
! ?8 b3 ?) m5 x( S8 u) s/ K' q05-(掌握)创建Vue时template和el关系.mp4( ]* f( \. L/ \0 f R( @$ x
06-(掌握)Vue的终极使用方案.mp4
( S5 E3 V! V5 ^" x5 C07-(掌握)webpack-横幅Plugin的使用.mp4% x2 f0 L+ |1 s0 d/ [5 B
08-(掌握)webpack-HtmlWebpackPlugin的使用.mp4/ Q0 |$ V" l; p. R$ Q0 z
09-(掌握)webpack-UglifyjsWebpackPlugin的使用.mp4
# q0 T8 S" d: W: f# g. t' k5 q10-(掌握)webpack-dev-server搭建本地服务器.mp4- G8 r( ^2 L5 ~# d; Y
11-(掌握)webpack-配置文件的分离.mp4
2 l0 R ^4 @# h7 z- Q+ V% Z- p12-(理解)vuecli-脚手架的介绍和安装.mp4
( Q1 b: x! v/ w' e4 X/ b13-(掌握)vuecli-CLI2初始化项目过程.mp40 r6 e& G7 X8 ^- g) P" q" w
14-(理解)vuecli-CLI2的目录结构解析.mp41 X! _# K9 b; B
15-(了解)知识回顾.mp4: G2 W; D& d( h k) l
01-(掌握)安装CLI错误和ESLint规范.mp4$ [* u8 \$ S% @) K
02-(理解)runtime-compiler和runtime-only的区别.mp4( ]5 d; E/ I' Z; t$ p
03-(掌握)VueCLI3创建项目和目录结构.mp40 G% \# d7 J9 o( g
04-(掌握)VueCLI3配置文件的查看和修改.mp46 k( u: m6 O+ D
05-(掌握)箭头函数的使用和this指向.mp42 t: e2 e7 K6 x% A7 ~5 s5 [
06-(理解)什么是路由和其中映射关系.mp4# @9 {$ D1 a. J, t3 w5 D
07-(理解)前端渲染后端渲染和前端路由后端路由.mp4- T& {! e' \! X! P9 `, r
08-(掌握)url的hash和HTML5的history.mp4
6 o) c. W+ H# N$ C9 _! o+ s+ u09-(掌握)vue-router-安装和配置方式.mp46 s) ~% U! C+ W$ G9 S- P R
10-(掌握)路由映射配置和呈现出来.mp4* t' b9 x# H+ y* X5 R
11-(掌握)路由的默认值和修改为history模式.mp46 f# P" t- s& v! C+ b; Q
12-(掌握)router-link的其他属性补充.mp4
3 ]; p n& h9 u7 @3 t0 k7 U13-(掌握)通过代码跳转路由.mp4
$ A X+ V3 N; O* e1 h5 W; _% h01-(掌握)vue-router-动态路由的使用.mp4$ K0 ^' U% F( [% ?; h" M5 v
02-(掌握)vue-router-打包文件的解析.mp4
. n" N; E5 Q" Z/ f7 `$ L# u03-(掌握)vue-router-路由懒加载的使用.mp4
9 Z. i s- D$ j+ Y1 |4 e04-(掌握)vue-router-路由的嵌套使用.mp4
7 V1 P6 }+ ~' I' V05-(掌握)vue-router-参数传递(一).mp4
5 M! _4 i" q Z# o4 z5 y$ s4 ]06-(掌握)vue-router-参数传递(二).mp4
6 @, w0 R0 p) `, n$ m07-(理解)vue-router-router和route的由来.mp4
( M( V. H. d" S08-(掌握)vue-router-全局导航守卫.mp4
* }( T/ O9 r0 d4 Y5 ?09-(理解)vue-router-导航守卫的补充.mp4
: d+ O5 G1 T0 h4 C& [10-(掌握)vue-router-keep-alive及其他问题.mp4
4 A2 Q! U, j$ q+ [6 X11-(掌握)vue-router-keep-alive属性介绍.mp4
, G: V" u, |5 d! D* F12-(掌握)tabbar-基本结构的搭建.mp4
% a( v7 k- Z' ~- }6 w' C( x2 K+ N13-(掌握)tabbar-TabBar和TabBarItem组件封装.mp4/ w8 L7 }- A+ J' n, s; X9 L
14-(掌握)tabbar-给TabBarItem传入active图片.mp4: J- r' n1 [9 T" v$ P" z$ d
15-(掌握)tabbar-TabBarItem和路由结合效果.mp4
+ l6 v: S% L( l* q! s2 W1 x16-(掌握)tabbar-TabBarItem的颜色动态控制.mp4
9 L s7 D2 p# o# @17-(了解)知识回顾.mp44 V4 T8 C1 [. {6 C
01-(掌握)tabbar-文件路径的引用问题.mp4" I0 p- m3 @ p
02-(掌握)Promise-Promise的介绍和基本使用.mp4
5 g* R3 J6 c! N03-(掌握)Promise-Promise的三种状态和另外处理方式.mp4! W. }8 p' O: H- ^4 w* i, {
04-(掌握)Promise-Promise的链式调用.mp4
7 \' X, ^. B! v: o$ s/ a y* _05-(掌握)Promise-Promise的all方法使用.mp4
- C7 Q P+ E- O9 b06-(掌握)vuex-Vuex概念和作用解析.mp4
6 W4 D2 E/ a- l* T; [4 P O- R07-(掌握)vuex-单界面到多界面状态管理切换.mp4- w4 k" w9 @6 d) }
08-(掌握)vuex-devtools和mutations.mp4
9 N4 W% V& b6 D" Y. b4 [+ |! B) B, X5 a09-(掌握)vuex-state单一状态树的理解.mp4/ y W; A, |6 P
10-(掌握)vuex-getters的使用详解.mp4
2 U7 Z/ r# d1 u' y6 R& ]% F11-(掌握)vuex-mutations的携带参数.mp4
" D1 W! P3 @3 R9 `( m, g% `4 ~3 f! b12-(掌握)vuex-mutations的提交风格.mp4
! t+ n6 u" n1 Z0 @3 G( I1 J8 e9 r13-(掌握)vuex-数据的响应式原理.mp4. U1 @( s7 \ H) v% y! |; n
14-(掌握)vuex-mutations的类型常量.mp4
8 A* x# {7 n# T$ N15-(掌握)vuex-actions的使用详解.mp4
( T/ |# ^3 y6 D5 _16-(掌握)vuex-modules的使用详解.mp4
3 I1 U2 b+ U$ M0 o. K( [17-(掌握)vuex-store文件夹的目录组织.mp4
0 ^' H* @# y/ h# ^/ v" l. k9 T% }: {01-(了解)网络请求模块的选择-axios.mp4* u( E% ?" B+ A
02-(掌握)axios框架的基本使用.mp4 i/ d8 z$ ~( D0 ~2 E
03-(掌握)axios发送并发请求.mp4
: {1 d7 s5 ]0 U# C04-(掌握)axios的配置信息相关.mp4
) d1 O! {3 H x3 y9 r1 R0 D4 o05-(掌握)axios的实例和模块封装.mp4
$ l e1 H- p0 p) Y+ K06-(掌握)axios的拦截器的使用.mp4. b, |9 F4 D5 m9 B* b( }" B
07-(掌握)项目开发-项目创建和GitHub托管.mp4: A4 X0 d, a* q! ]2 y
08-(掌握)项目开发-划分目录结构.mp4; h+ U& s. E; C6 [3 N+ u, \
09-(掌握)项目开发-css文件的引入.mp46 F" w) A" P7 S" n+ O2 d; D* a
10-(掌握)项目开发-vue.config和editorconfig.mp4
. b; H2 O& [$ s0 d4 o+ `- n11-(掌握)项目开发-tabbar引入和项目模块划分.mp4
4 G. W( t" D. J: `12-(理解)项目开发-小图标的修改以及路径问题.mp47 N! X/ l6 i! N3 n% W; l" l6 W
13-(掌握)首页开发-首页导航栏的封装和使用.mp4
h4 M! A* L0 T0 ]8 P7 G4 ]- Z" z$ M9 X14-(掌握)首页开发-请求首页的多个数据.mp4
0 Q' Y( v, J( {! H# g. d3 B15-(掌握)首页开发-轮播图的展示.mp41 C) g5 j& N, b* y7 G+ s
16-(掌握)首页开发-推荐信息的展示.mp40 J, k+ e" {& ^" I9 o
01-(掌握)首页开发-FeatureView的封装.mp4; h( O' |4 t1 V9 T t8 m
02-(掌握)首页开发-TabControl的封装.mp46 z/ _& L# v7 A0 F- ~& i
03-(掌握)首页开发-保存商品的数据结构设计.mp4
9 E. r" O) H T04-(掌握)首页开发-首页数据的请求和保存.mp48 m; k. U6 T; b1 I( V
05-(掌握)首页开发-首页商品数据的展示.mp4
8 }" |2 @8 x$ H, v- h$ t06-(掌握)首页开发-TabControl点击切换商品.mp4
; s4 ~! y7 g/ l- @9 u07-(掌握)Better-Scroll的安装和使用.mp4
; y- `. H0 K4 ?. ]& {2 T7 G08-(掌握)Better-scroll的基本使用解析.mp47 I+ u# {4 n6 a1 h5 `3 W, E
09-(掌握)Better-Scroll在Vue项目中使用过程.mp4
! o0 C8 i' ^# d' E8 M10-(掌握)首页开发-BScroll的封装以及使用.mp4
3 l/ j5 V) b) n3 f; ?% ~% p/ v11-(掌握)首页开发-BackTop组件的封装和使用.mp4
+ w0 J4 r$ e; O; E( |* Z6 f) X Q12-(掌握)首页开发-BackTop的显示和隐藏.mp4
$ b) v7 W/ U7 P7 A; B: P T13-(掌握)首页开发-完成上拉加载更多.mp4- J A& u: o9 x8 N2 T- |1 z! d
01-(掌握)对昨天内容的回顾.mp4
1 ?2 t1 S' E3 p" r) c02-(掌握)首页开发-滚动区域的Bug分析和解决.mp4
+ o2 w& Y# A% R9 w0 j3 U+ L03-(掌握)refresh函数找不到的bug处理.mp45 ]; V) T8 L2 N& e5 `" p3 I
04-(掌握)刷新频繁的防抖函数处理.mp4
5 @) h, M: e& ^7 V& I2 [05-(掌握)上拉加载更多的完成.mp4) U: t# d8 P3 `6 Y" N3 V
06-(掌握)tabControl的offsetTop获取分析.mp45 p& m, B2 _; c. N7 }. ?
07-(掌握)TabControl的吸顶效果完成.mp4" v. A6 j# N6 l' M* N7 c
08-(掌握)Home离开时记录状态和位置.mp4" J- q) E9 G* F5 ]. ?2 }, @% \
09-(掌握)跳转到详情页并且携带iid.mp44 L9 c5 H* g5 k
10-(掌握)详情页-导航栏的封装.mp4* P: d$ V8 e! K2 L2 b0 ?; ?6 h
11-(掌握)详情页-数据请求以及轮播图展示.mp4/ u+ d3 t4 u+ f* B( n. X
12-(掌握)详情页-商品基本信息的展示.mp4; x+ [% F# i1 U5 {9 K1 c& d1 ~
13-(掌握)详情页-店铺信息的解析和展示.mp4
' [+ V# y9 ~8 {4 L14-(掌握)详情页-加入滚动的效果Scroll.mp4
0 a- O+ V9 G, o; o! G15-(掌握)详情页-商品详情数据展示.mp4" h! K# s( O+ ] s- x# w) W- I' [
16-(掌握)详情页-商品参数信息的展示.mp4& u B" I7 T( B
17-(了解)内容的回顾.mp4
" K5 y- s3 C% D2 E( Q- v$ d$ L01-(掌握)详情页-从首页跳转详情页-iid.mp4: E- O+ B# V% D+ t7 j& |7 l
02-(掌握)详情页-首页位置的保持.mp43 B* q6 }1 `; S, f
03-(掌握)详情页-详情页导航栏的实现.mp4
+ n& p4 _: [; o7 p- Y" Y3 x04-(理解)Better-Scroll的scrollto函数的Bug.mp43 I5 I1 F! c1 m! h: ^, `8 B
05-(掌握)详情页-根据iid详情页数据的请求.mp4
( j x' X6 N, I( |: B" h06-(掌握)详情页-顶部轮播图的展示.mp4: q2 x( w) w7 h% M% q/ ~& I9 H
07-(掌握)详情页-商品的基本信息展示.mp4
' B; g2 d( C4 ~+ @; V% z& R, z% O0 q08-(掌握)详情页-滚动问题处理和TabBar隐藏.mp4
& y$ _3 m! @5 C9 Z$ ]# M09-(掌握)详情页-详情页店铺信息展示.mp4; c2 M7 q) O3 h4 X u
10-(掌握)详情页-详情页商品图片信息展示.mp4' y+ n4 E+ c1 U' {
11-(掌握)详情页-商品参数信息的展示.mp4
" M3 H) m0 `2 B7 p/ I N) r/ R- c12-(掌握)详情页-商品评论信息的展示.mp4, `3 }+ Z& P" y9 T, d+ g
13-(掌握)详情页-商品推荐数据的展示.mp4
6 j9 @1 {' s, ]14-(掌握)详情页-首页和详情页监听全局事件和mixin的使用.mp41 W& c# ~$ A7 Y% T
15-(了解)课堂内容回顾.mp4) i( V3 S. y3 c& Z3 f- W# R; ?
01-(掌握)bug处理-首页TabControl不一致的问题.mp4
7 |3 `; b6 x1 P5 U02-(掌握)bug处理-详情页不能滚动的bug处理.mp41 `7 i' Y B: m2 `* E E. ~4 \
03-(掌握)详情页-点击标题滚到对应内容.mp4, h& a' N4 D6 v- f
04-(掌握)详情页-滚动内容显示对应标题.mp48 E; `4 o# u1 s7 n* e5 E5 e: q4 z
05-(掌握)详情页-对复杂判断条件分析和优化.mp46 N& R; D& K0 C4 [5 K8 n
06-(掌握)详情页-底部工具栏的封装.mp4
3 f" [. _7 Y3 b' t. C* M6 i7 t07-(掌握)详情页-BackTop的混入封装.mp4
9 q, E4 y! Z$ c0 P m" x. k4 T08-(掌握)详情页-将商品添加到购物车中.mp40 z* t8 P1 j4 z" ^3 x8 _
09-(掌握)详情页-将商品添加到store中.mp4% d* j( J+ [- e2 a' ~) |
10-(掌握)详情页-Vuex中代码的重构.mp4$ }" c) U8 |( ~9 ~$ s) k
11-(掌握)购物车-导航栏实现-Vuex知识点.mp4/ E2 |2 K4 a9 z) t; w: {
12-(掌握)购物车-购物车商品列表展示.mp42 R! |0 T4 z2 |( X7 v! e
13-(掌握)购物车-购物车列表的Item展示.mp4
- D% \1 Y5 Z1 b0 B8 ^2 h14-(掌握)购物车-Item选中和不选中的切换.mp4
1 h4 F5 a( `: J$ B# ~- u15-(掌握)购物车-顶部工具的封装和应用.mp4
1 ]$ f% ?1 a2 {7 o/ V* J, z16-(了解)内容回顾.mp4
h: N6 r. C- w G; r5 z2 c01-(掌握)购物车-全选按钮的状态显示.mp4
! a% ]( j: S) t/ \7 S6 j) r9 g02-(掌握)购物车-全选按钮的点击效果.mp4* c" m4 l/ E, g/ s' j
03-(掌握)Vuex-actions返回Promise-mapActions.mp4
( F- g7 e% K) \* I0 j! X% Y& F! I04-(掌握)Toast封装-普通方式的封装.mp4
$ ]" N# t, \+ s* J7 v05-(掌握)Toast封装-插件方式的封装.mp4
( j, v1 u/ o& i1 o( B, V2 y C06-(掌握)fastclick-解决移动端300ms延迟.mp4+ l: E0 G4 y+ v+ ^6 D/ o
07-(掌握)图片懒加载-vue-lazyload框架.mp4
4 P8 q4 V3 y# I% t" e; T9 B08-(掌握)px2vw-css单位转化插件.mp4$ n0 z9 I) q7 i& t. C1 d9 R r
09-(理解)nginx-项目在window下的部署.mp4
' A1 e2 F, G3 L- t" X10-(理解)nginx-项目在远程linux下的部署.mp4
- X4 O7 T8 Y v( ^ V6 k* ]% V! N11-(理解)响应式原理-依赖技术的分析和学习.mp40 v, a: d! n7 d, H. h
12-(理解)响应式原理-通过图解理解过程.mp4+ `2 ]- g- `( Z
13-(理解)响应式原理-对应的代码阅读.mp4$ H4 u- d/ D" W! o4 S8 P: Q* x
14-(了解)Vue课程回顾.mp4# b8 p+ l& d3 k. Q
4 S- M, R# M0 _
4 x. r' P7 A6 x4 E1 @ O, B
# S d9 \( Z3 E. G. o3 G
- Y1 a! _2 ~$ c1 W: w
2 n% C/ ~- U# n- ?3 E# O# M/ K0 i
; \0 g$ u" i* D: U; H$ k |
|