Java互联网架构师系统进阶课程(三期VIP)' i! |9 S( [& P9 t. {7 ^# n$ q7 k' m
├──01JVM性能调优
# P7 k: k7 q m| ├──01 虚拟机的前世今生和Java内存区域(1) .mp4 758.12M
1 O) e r9 v* e6 T! e* G% _' a| ├──02 深入理解Java内存区域(1) .mp4 835.55M
* q5 x& Z9 _ @| ├──03 玩转JVM中的对象及引用(1) .mp4 848.04M
k9 o' } P0 G0 t6 k| ├──04 分代回收机制及垃圾回收算法(1) .mp4 762.68M
1 z6 ?; c# O% [5 M| ├──05 JVM面试“核武器”JVM底层细节(1) .mp4 695.74M+ p8 O! U, o- v
| ├──06 Class文件结构及深入字节码指令(1) .mp4 942.99M. Q; L& c3 h" q. p' S6 @
| ├──07 类加载机制与类加载器(1) .mp4 995.21M z* w$ a7 ~6 l- j* `6 z! U1 D: L7 Y
| ├──08 方法调用的底层实现(1 .mp4 1.01G
" O0 f9 r9 [1 v# _% n| ├──09 Java语法糖及实现(1) .mp4 849.83M
$ Y3 N$ b" `- C0 {: g| └──10 GC调优基础知识之工具篇(原生+Arthas)(1) .mp4 1.23G9 b( D/ D3 O" e1 m( |+ g- Z
├──02 JVM性能调优
* N3 X- m: g6 M% s/ P d9 S- t3 t& || ├──01 GC调优基础知识之工具篇(原生+Arthas)(2) .mp4 1.14G! `/ O. y5 [! ?" t# c2 u# B
| ├──02 JVM调优实战之CPU占用过高(1) .mp4 1.58G a4 ~4 Q, y0 Q$ n
| ├──03 JVM性能调优之预估调优与问题排查(1) .mp4 1.02G
# ]' Y2 l' E3 y, f" t| ├──04 玩转MAT,分析内存泄漏(1) .mp4 996.10M8 p" `* ^/ I( Q& I
| ├──05 直接内存与JVM源码分析(1) .mp4 1.25G
4 l9 l9 v# K. ?1 [8 |( @# w| └──06 JVM之大结局(1) .mp4 996.79M& J+ B) ~3 @, r8 K u$ ? w
├──03 并发编程
! U; L5 `+ n9 f| ├──01 java线程的本质、线程模型(1) .mp4 1.04G
5 d3 K! s5 ?' }( x4 c5 |- M, a| ├──02 java线程run方法的本质(1) .mp4 1.19G" I5 ~$ u1 e0 Z
| ├──03 synchronized关键字得原理分析一(1) .mp4 1.19G; a/ R) p, V$ E1 e8 G5 J
| ├──04 synchronized关键字原理—锁的膨胀(1) .mp4 1.51G
( N. } v; \, J" S( E/ J4 W5 x| ├──05 synchronized关键字原理-锁的膨胀过程(1 .mp4 1.88G5 f, ^: `( d) G9 s6 O
| ├──06 synchronized关键字原理-锁的膨胀过程二(1) .mp4 1.22G/ i |/ p; n7 h& P: w
| ├──07 synchronized关键字原理-锁的膨胀过程三(1) .mp4 1.29G, c# x4 X& p) k {4 U w# R
| ├──08 synchronized关键字的使用和优化(1) .mp4 1.13G1 X9 D4 a' _/ \8 @( ~! J; I
| └──09 ReentranLock 的基本使用和设计模式(1) .mp4 1.05G
+ u0 y3 f3 t& s- p' l2 @├──04 并发编程 3 ]/ K1 X5 t. B; Q
| ├──01 aqs框架的源码分析(1) .mp4 1.28G
9 m; S e' L: ` n0 |( F| ├──02 ReentrantLock解锁流程和读写锁源码(1) .mp4 1.06G
0 P; }& E& m7 I# D) r: ?1 T$ J/ n| ├──03 aqs之读写锁原理分析(1) .mp4 1.16G
2 ?7 ]' {) b' a( `0 t) v9 @8 m| ├──04 juc工具类的使用和原理(1) .mp4 1.23G
# |( Y/ D. M" v5 K# a| ├──05 模拟线程池的原理实现(1) .mp4 1.19G
- J2 @( D( w( ?' ^: i| ├──06 ThreadPoolExecutor线程池(1) .mp4 1.17G
. ~% W2 l# a _( O+ p. S F1 T| ├──07 线程池源码分析(1) .mp4 1.35G
* X. g- R! D, j3 k| ├──08 如何解决JAVA的有序性和可见性(1) .mp4 946.77M( B* ]; F8 N1 v* ^) [ s
| ├──09 如何理解JAVA的内存模型(1) .mp4 977.11M5 b6 o1 {% x: T6 _4 N
| └──10 currenthashmap源码分析(1) .mp4 1.35G
y" O, y) ]! x0 E! g├──05 并发编程网络协议与netty " E: e! o h9 K$ m+ s" b
| ├──01 forkjoin线程池得原理和应用(1) .mp4 898.41M0 K3 ~( `7 T& C1 r# K
| ├──02 网络协议和常用网络工具(1) .mp4 1.03G
! P) T: X ~$ { r1 L1 R2 e| ├──03 Java原生网络编程(1) .mp4 1.30G$ P3 j* l5 N5 A ?
| ├──04 Java原生网络编程2(1) .mp4 1.76G
}, J, y5 ]% V6 d' |9 i2 b| ├──05 Java原生网络编程3(1) .mp4 1.65G9 ~- i0 X# [, L( B- @3 m! D
| └──06 Netty基础入门和应用(1) .mp4 1.78G* M) S9 D: w1 s
├──06 网络协议 $ D$ R. R: |7 g! A/ k" p. |
| ├──01 Netty基础入门和应用2(1) .mp4 1.77G% g8 b& o5 l" y1 l' J
| ├──02 Netty基础入门和应用3(1) .mp4 1.57G! ~; f7 _* t% z
| ├──03 Netty基础入门和应用4(1) .mp4 2.27G5 ]2 C- V N& i* d
| └──04 Netty进阶和实战(1) .mp4 1.29G* @( W6 I3 Y& R, S$ o, I
├──07 网络协议与Netty
4 G0 y( g0 V7 ~; d# j8 i; q| ├──01 Netty进阶和实战2(1) .mp4 1.64G5 Y c% l; h/ a+ M$ W, g9 N) f
| ├──02 Netty进阶和实战3(1) .mp4 1.89G6 x& K9 O7 Z/ Z
| ├──03 Linux和JDK对网络通信的实现(1) .mp4 1.13G3 C9 x. s7 {( p) e/ h
| ├──04 Linux和JDK对网络通信的实现2(1) .mp4 1.67G/ p$ O4 N) D1 y; v o3 y/ \
| ├──05 Linux和JDK对网络通信的实现3(1) .mp4 1.36G8 N" U7 C) ~0 | ~$ r- \1 r
| ├──06 Linux和JDK对网络通信的实现4(1) .mp4 1.91G( M5 A2 o9 Y, Z: H% o
| └──07 Netty源码解析(1) .mp4 1.96G* o8 K9 k% K3 {
├──08 网络协议与NettySpring源码 . Y- Y$ s1 ?8 x" i
| ├──01 Netty源码解析2(1) .mp4 2.03G
6 C$ h, m- [3 O0 d( S| ├──02 Netty源码解析3(1) .mp4 1.82G
) q8 o1 M* ? t" }, y6 z9 f. e" z| ├──03 Netty源码解析4(1) .mp4 1.73G7 Q! j# U E! \
| ├──04 Netty源码解析5(1) .mp4 1.49G
0 _+ O2 d/ Z1 y% B: m| └──05 spring源码编译和xml解析(1) .mp4 2.00G
7 P0 A- L% \' a% z1 l├──09 Spring源码 9 P6 `* Z$ P2 W; H* { c
| ├──01 BeanDefinition和默认标签、自定义标签解析(1) .mp4 1.89G Z& R7 i5 ?1 ~1 w5 A0 c
| ├──02 component-scan标签解析和bean实例化初探(1) .mp4 1.98G0 A7 P$ o- _$ j9 K
| ├──03 BeanPostProcessor和Bean实例化初探(1) .mp4 2.07G! R" ~8 u s" I- f/ u, x0 V! F
| └──04 bean的实例化和注解的收集(1) .mp4 2.11G
" e7 [7 N/ v0 R; |* s- }├──10 Spring源码
8 m; v l, r4 \| ├──1 @Autowired@PostConstruct@PreDestroy注解(1) .mp4 1.95G
7 J f3 w+ J' _% n: E| ├──2 spring中循环依赖详解(1) .mp4 1.90G/ m( I$ d9 v" }7 u: x4 y3 @
| └──3 spring中配置文件解析和Environment对象 .mp4 2.11G: M" x/ }! I$ Z. a( C: r
├──11 spring源码
3 t$ `4 x" ~- g! k; I8 _| └──自定义scope和factoryBean接口(1) .mp4 2.08G
/ \6 d9 }' N$ e├──12 Spring源码 , N5 z- Y2 `% Z3 I5 s5 F! g2 ]' q
| ├──1 ConfigurationClassPostProcessor类源码(1) .mp4 2.07G
' V5 f/ q$ F0 F7 ~: S/ Y| ├──2 ConfigurationClassPostProcessor类源码2(1) .mp4 2.05G# Q D% C' V9 t1 D# ^3 S0 B
| ├──3 spring的实战代码案例1及AOP基础 .mp4 2.17G
A$ N, h6 H; `2 q, l7 a7 j| ├──4 动态代理和AOP的初见 .mp4 2.05G
. a8 j( d: c" @7 L4 C4 S| └──5 代理的生成和链式调用流程 .mp4 2.34G
% K8 i' e- Q6 e$ k├──13 Spring源码 % X2 y: B! j/ \& \0 l6 h0 W* A- ~
| ├──1 链式调用过程和AOP周边 .mp4 2.37G4 \% U1 {: b8 k% s7 |8 e
| ├──2 spring的实战代码案例2之巩固AOP .mp4 2.39G
8 P! \! M2 x. |; N' Z| ├──3 spring的事务切面精讲1 .mp4 2.11G
' \+ w! k g* d. z" M| └──4 spring的事务传播属性精讲 .mp4 2.26G
1 v% k9 g7 }6 D3 E├──14 Spring源码
) ?( M% @& l% \7 Q| ├──1 spring的事务传播属性精讲 .mp4 2.22G% y8 l7 L; {; @
| ├──2 缓存切面和异步切面 .mp4 2.32G7 T- u) k- f! I6 E
| ├──3 缓存框架和springmvc零配置原理 .mp4 2.35G
# p& V* @4 t+ d) X% _; B| ├──4-1springmvc中请求的调用流程 .mp4 735.32M+ _1 P+ o* O" E# i d: I
| ├──4-2 springmvc中请求的调用流程 .mp4 1.42G1 D3 H0 x6 r% F5 s3 W* g1 g$ G
| └──5 JSON参数解析和视图响应 .mp4 2.08G
- Q3 V3 N7 ]0 D' P. T- L2 M6 v├──15 Spring源码mybatis 2 P Q0 d* d! }. `! ~" f( F
| ├──2 异常处理、拦截器和跨域问题 .mp4 2.43G- `) q: c3 g7 e0 e* C2 u: Y2 S, x% I
| ├──3 springmvc实战、spring总流程归档 .mp4 2.24G
7 h: ^* g6 o" X, u( u| ├──4 spring总流程归档 .mp4 2.15G
2 O+ L) u3 ?/ O# X| ├──5 MyBatis开发重点知识 .mp4 1.02G9 w: ^4 W; R" h! v7 @, I8 x+ H5 N
| ├──6 mybatis缓存使用和xml解析源码 .mp4 2.12G
$ g- A; F' n, o( O$ q7 U% c| └──7 MyBatis开发重点知识 .mp4 856.80M
! g- F$ x$ |' }! _├──16 MyBatis + L+ M/ m: x' C7 h9 z+ ]. P
| ├──1 全局xml解析和mapper中sql的解析 .mp4 2.15G
. n' s0 x$ k1 Q# f- M* k* b| ├──2 SQL的执行之Executor组件 .mp4 2.24G& j1 ]/ ?* I3 K7 \
| ├──3 StatementHandler和ResultSetHandler组件 .mp4 2.30G
# W6 c8 L- i" l1 X3 M| ├──4 mybatis中的缓存原理和懒加载原理 .mp4 2.24G
6 g, W% H. i+ P* T9 f- @| ├──5 mybatis的plugin和跟spring的整合 .mp4 2.00G
$ |+ ~, o/ M7 T8 |0 E. D+ e| └──6 mybatis跟spring整合自定义分页等插件原理 .mp4 2.17G' m- G. ]3 M+ F/ o" j7 v- v4 b
├──17 MySQL
2 H5 K! l9 j v; _8 Z) y) S/ _| ├──1 自定义分页等插件及mybatis复习 .mp4 2.20G! D) A0 Z# p$ W( v$ v* Z" Y
| ├──2 全盘了解MySQL .mp4 2.36G
' w/ `2 ^! B! {7 j| ├──3 MySQL中表设计和数据类型优化 .mp4 2.06G* y4 J: s8 s3 b( @8 F0 O! c1 n
| └──4 高性能索引(一) .mp4 1.77G
9 i- Y4 `% }. u# ^: Z├──17 分布式常见场景解决方案实战MongoDB进阶
1 Z' M. V8 u) }8 x| ├──1 session共享与单点登陆实战 .mp4 2.20G! `+ P2 w2 h0 J, ]+ x
| ├──2 分布式任务调度实战 .mp4 2.36G
9 R; u+ _' k- ~| ├──3 MongoDb综 .mp4 2.06G
7 D6 d$ {5 m" F6 i; J2 c( j| └──4 MongoDb快速入门 .mp4 1.77G8 d+ }- K2 N; _% V& N
├──18 MongoDB进阶 3 W# u' N5 v4 G0 g5 U
| ├──1 MongoDb查询进阶- .mp4 2.26G
: v- L6 z5 Y/ W% x/ J5 e( _. Q| └──2 MongoDb操作进阶- .mp4 2.26G
: I- T6 M6 k5 ]# q├──18 MySQL 7 i! J; ~& q0 [0 J4 E; R
| ├──1 高性能索引(二) .mp4 651.40M s+ H& e3 f7 d L1 U o" o
| └──2 高性能索引(三) .mp4 2.26G
( ^ k8 [. }8 Q/ e5 y/ k: E& j├──19 MongoDB进阶spring源码分析 . a8 H4 n: H5 C, W( }
| └──1 MongoDb高级进阶 .mp4 1.97G
' l2 L0 O8 [) @9 c├──19 MySQL
# U5 k- z7 C9 p8 K' }. i# G9 F| ├──1 MySQL性能优化(一) .mp4 1.97G
/ x" l" N6 s6 f, i| ├──2 MySQL性能优化(二) .mp4 2.15G& o, m% C' d6 b N
| ├──3 MySQL的底层执行原理(一) .mp4 1.92G0 n+ n7 |7 w, I- K
| └──4 MySQL的底层执行原理(二) .mp4 1.81G# N6 j9 q( R6 z4 A! e$ y
├──20 MySQL ) u' O5 h9 j3 t( ?
| ├──1 MySQL的底层执行原理(三) .mp4 1.67G
+ F$ U: h7 p/ \5 `| └──2 InnoDB引擎底层解析 .mp4 1.69G
# b( _; }9 Y1 ]4 R2 n) K├──21 MySQL
/ T3 x$ d# T6 C) h| ├──1 InnoDB引擎底层解析 .mp4 967.41M6 l" ] F% H. _& _4 ~
| ├──2 事务的原理和MVCC .mp4 806.35M
6 i( H1 p j9 i7 c. P7 |% u; Y| ├──3 事务的原理和MVCC(二) .mp4 789.24M4 N6 p- I/ H- `7 v7 f+ l2 w
| └──4 MySQL中的锁、面试题和实战那些事 .mp4 795.23M
; k4 ~& O, c7 x+ p+ m+ X├──21 spring5源码分析
( W+ E# d/ z, @| ├──1 循环依赖原理和Bean实例化大流程梳理- .mp4 1.75G
5 ~1 h; W& o; a5 C0 n# c| └──2 @Bean@Import和bean的多例作用域- .mp4 1.55G
$ j/ k2 f) t$ Q# f8 e2 z! a├──22 MySQLRocketMQ
2 `2 X. |/ [8 X/ M, y| ├──1 MySQL中的锁、面试题和实战那些事(二)- .mp4 2.08G
& f5 m3 f+ O* l3 H3 o0 W0 B/ o# l| ├──2 RocketMQ基础篇(上)- .mp4 1.90G0 y" w& ~! D2 H
| ├──3 RocketMQ基础篇(下)- .mp4 2.39G
( N- E$ o# o& b. E3 q1 A| └──4 RocketMQ内部机制-存储设计- .mp4 2.07G
! p( J6 n# `5 b r* v6 U1 p1 n4 X├──23 RocketMQ , J; j" Z: h5 D- x8 P7 E& n' s
| ├──1 RocketMQ内部机制-高可用机制- .mp4 2.00G
0 i- P* j2 ~: E3 [2 K$ V4 Z| └──2 RocketMQ实战-异步结构与流量削峰- .mp4 2.15G
0 N( g" R& [8 m `├──24 RocketMQ 0 ^9 H0 g( T3 h, T
| ├──1 RocketMQ实战-限时订单与分布式事务- .mp4 2.24G6 x, U5 l T0 P6 ]; q2 V+ ]
| ├──2 RocketMQ源码分析-整体架构与NameServer- .mp4 2.13G
. \4 ~. \/ p. U x8 f$ t| ├──3 RocketMQ源码分析-Producer与Store- .mp4 2.02G! z- [/ U" m2 n
| └──4 RocketMQ源码分析-Consumer- .mp4 2.05G, c2 X! J/ S0 d: {; f6 F0 j
├──25 Dubbo
( S2 N9 I' X& p' }9 Q. {| ├──1 Dubbo源码探析--服务的暴露与消费过程- .mp4 2.02G
0 {6 t" x; S4 G! t1 X| └──2 Dubbo源码探析--服务的发布订阅过程- .mp4 2.02G3 E% Q6 M5 X4 m# _) P
├──回顾 & H, O* U/ p. c: K! P; i( J# d; l
| ├──07 网络协议与Netty
8 Q6 @+ T8 A9 w, @ ?4 @$ Q# b| ├──08 Netty高级进阶 " ]7 [& M* C% U' X1 b. U' W5 Z
| ├──09 Tomcat系统进阶 " q* W; Z. L N% [) X' E
| ├──13 Spring源码
6 p3 ]9 v+ s/ `: t6 k% z| ├──14 Spring源码 ) g; F! c; R$ I& y) m
| ├──15 Spring源码* y! G& T! b- U8 V. A) y' H
| └──16 Redis高性能缓存数据库分布式常见场景解决方案实战0 Y) x4 U. n5 j
├──回顾' E4 [5 {* g: m6 V8 U
| ├──07 网络协议与Netty
9 w' o( u, v" V1 Y* O, C| | ├──02 深入学习Netty组件(1)- .mp4 623.23M
* h5 q) g4 M$ k7 h9 o; ~1 Q| | ├──03 TCP粘包,半包问题和Netty编解码器框架(1)- .mp4 1.13G* y u) u, I1 b M8 ]
| | ├──04 序列化问题、实现UDP通信(1)- .mp4 1.67G3 r. U4 z+ o1 ^* h. o' ]$ l
| | ├──05 服务器推送技术-轮询、SSE和WebSocket(1)- .mp4 1.36G/ ~4 ?6 g+ B# U D
| | ├──06 基于Netty的WebSocket通信(1)- .mp4 1.91G. A# {4 N8 K, K. f) b8 V9 B3 N
| | └──07 基于Netty实现自己的通信框架(1)- .mp4 1.96G U, N# m# Q7 ~8 z, @- \, X
| ├──08 Netty高级进阶 7 x& i; C4 t+ q! ^% G
| | ├──01 BIO和NIO的源码解析(1)- .mp4 2.03G* A2 Z- C4 v6 |2 `& F
| | ├──02 Netty源码解析(一)(1)- .mp4 1.82G" t. }: J! Y- W9 a( t( d
| | ├──03 Netty源码解析(二)(1)- .mp4 1.73G! t" H* ~5 F5 _% L2 `1 e# |
| | ├──04 操作系统网络底层原理和源码(一)(1)- .mp4 1.49G6 Y# ?( f) E. O; }2 K
| | └──05 操作系统网络底层原理和源码(二)(1)- .mp4 2.00G
" B/ Q6 T% q F P- ~1 O" n+ d| ├──09 Tomcat系统进阶 1 Y+ R! N/ H3 G$ n7 C5 o
| | ├──01 Tomcat源码解读(1) .mp4 1.98G9 S& _2 Z% ]/ f- C8 R
| | └──02 Tomcat架构解析(1) .mp4 1.89G! H) i. a: J1 {- Q
| ├──13 Spring源码
1 F: i. ^8 Q' t4 |% }) \% e, }| | ├──1 数据库事务和spring如何管理事务(1)- .mp4 2.37G
! l5 ?' ?7 C" g$ f! t2 A) i| | ├──2 spring事务的传播属性和隔离级别源码讲解- .mp4 2.39G J, f7 R9 E d+ L) b, p2 k @
| | ├──3 事务隔离级别 cacheable缓存切面和异步切面- .mp4 2.11G
) V U6 f& a1 b& j( k| | └──4 spring的实战代码案例2- .mp4 2.26G9 a6 c: Z! ?$ ]6 E# |* v
| ├──14 Spring源码
; @5 [1 v& M0 Y8 _) w| | ├──1 零xml配置整合springmvc和嵌入式tomcat- .mp4 2.22G
' `# K2 M- B: F$ s| | ├──2 springmvc请求响应核心调用流程和过滤器- .mp4 2.32G I/ s& a6 X0 M! [
| | ├──3 特殊参数解析返回值解析视图渲染- .mp4 2.35G
5 K+ J" S" A! _, i1 n& g q- m| | ├──4 spring&springmvc大总结- .mp4 735.32M; A' y* ]- P! f9 ]9 W- g a7 Y
| | └──5 spring&springmvc大总结- .mp4 1.42G0 s1 ?+ i* a8 c# Y3 o* w
| ├──15 Spring源码 $ `7 X |. Y. v
| | ├──1 静态视图、异常处理和拦截器- .mp4 2.23G8 ~: H) |+ c0 ] N& e4 y& E
| | ├──2 搞定RocketMQ消息存储及事务- .mp4 2.43G& N" A1 u5 M( M
| | ├──3 主从同步机制和与Spring整合- .mp4 2.24G
6 [; i) ~6 n: |/ j: _; }* ~- F| | ├──4 RocketMQ限时订单实战- .mp4 2.15G
8 |0 q, @# L. Q% s0 l- Y| | ├──5 RocketMQ源码解析- .mp4 1.02G8 e5 N6 @4 `5 F/ G
| | ├──6 Redis从入门到狂澜- .mp4 2.12G
+ S4 C' I% p* f7 O| | └──7 RocketMQ源码解析- .mp4 856.80M
; b8 o% O o x H3 [2 D0 || ├──16 Redis高性能缓存数据库分布式常见场景解决方案实战 0 R- T: L6 [, D$ `7 c* ~3 E
| | └──1 BAT常见Redis场景设计实战- .mp4 2.15G
5 D6 x9 h3 i" Z| ├──3 spring的实战代码案例1(1)- .mp4 2.17G
$ e/ |; B/ a+ c| ├──4 aop入口及aop中的各种advice和advisor(1)- .mp4 2.05G; }1 J! m: [- ?8 x& y0 _- p
| └──5 AOP链式调用过程和cglib动态代理(1)- .mp4 2.33G
2 @3 M2 p$ G. e' `9 t├──资料
2 w* \3 s5 B7 || ├──3.16 .zip 1.74G7 H/ W# |$ ?& z9 v3 m" k( U% n
| ├──5.11 .zip 173.87M
# P4 t& ?4 F4 [3 }0 s| └──资料(Java-vip) .zip 585.04M
8 K1 Y0 [. ]5 m├──Java高级进阶面试题目_享学课堂 .pdf 3.93M& P( h9 p6 l* X* n' K8 `
├──第三期课程(Java-vip) .zip 1.46G
: d6 ]# B4 ?* y3 Z+ g4 A/ k└──享学首创年薪80W+对标P7岗架构师成长路线V7.0 .png 1.81M
" W% q* I, F; L9 S% i
2 W: E0 [) C9 Y! t: [
& k1 T3 }! n5 w' |6 j" \ Z. J' T8 x2 g6 M% _1 W1 a
永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!* Y0 ^- a6 s: g$ b! m
" Q& a( S, a# U1 X2 k' w
# ?7 i# J7 _4 u$ R; I W% t/ n
|