Java互联网架构师系统进阶课程(三期VIP)
5 n* F( q( ^/ J! y├──01JVM性能调优
/ c0 _( E6 Z6 b0 r) L| ├──01 虚拟机的前世今生和Java内存区域(1) .mp4 758.12M' T5 q1 N/ m9 A/ d8 t
| ├──02 深入理解Java内存区域(1) .mp4 835.55M% W. Y2 c. {+ L! w% c
| ├──03 玩转JVM中的对象及引用(1) .mp4 848.04M& V n& e& E' R. M G
| ├──04 分代回收机制及垃圾回收算法(1) .mp4 762.68M
# H1 B0 K2 i# u- s- V w# c| ├──05 JVM面试“核武器”JVM底层细节(1) .mp4 695.74M
. B* N5 ] Q$ ?# z! j# I" Y| ├──06 Class文件结构及深入字节码指令(1) .mp4 942.99M
$ r. Q/ M$ x. @; Z G: s. u ]7 Q| ├──07 类加载机制与类加载器(1) .mp4 995.21M- K" O6 G% B- P+ Z1 q& F, c
| ├──08 方法调用的底层实现(1 .mp4 1.01G
$ K, n1 C, X7 D4 o; P| ├──09 Java语法糖及实现(1) .mp4 849.83M9 w7 g6 X; Y2 Y0 S! m
| └──10 GC调优基础知识之工具篇(原生+Arthas)(1) .mp4 1.23G Y/ n- w7 g9 w7 }0 n4 |
├──02 JVM性能调优 . M- h5 x- S' d; a2 U
| ├──01 GC调优基础知识之工具篇(原生+Arthas)(2) .mp4 1.14G
, T0 ?/ R3 g; h7 N g2 ^| ├──02 JVM调优实战之CPU占用过高(1) .mp4 1.58G
$ F9 f; ?5 X% D: s/ v| ├──03 JVM性能调优之预估调优与问题排查(1) .mp4 1.02G3 g: h5 r& y( z2 C
| ├──04 玩转MAT,分析内存泄漏(1) .mp4 996.10M0 i, ^* c( ^( c6 o
| ├──05 直接内存与JVM源码分析(1) .mp4 1.25G# l3 M- L! z! m; X) T6 s3 d+ @/ g
| └──06 JVM之大结局(1) .mp4 996.79M5 o' v$ t7 p% x; g
├──03 并发编程 ; l! _) w v- i$ [7 I
| ├──01 java线程的本质、线程模型(1) .mp4 1.04G2 Q! H8 {# j; r/ c
| ├──02 java线程run方法的本质(1) .mp4 1.19G
& X/ a; i0 Y+ H; g! _, s9 _| ├──03 synchronized关键字得原理分析一(1) .mp4 1.19G
s! K' r4 _" s' C- ]# L| ├──04 synchronized关键字原理—锁的膨胀(1) .mp4 1.51G
7 _4 I9 q5 i2 J# Q| ├──05 synchronized关键字原理-锁的膨胀过程(1 .mp4 1.88G
5 a! J+ F. Y! v7 J| ├──06 synchronized关键字原理-锁的膨胀过程二(1) .mp4 1.22G. c8 h( k6 D+ @7 |2 {. v
| ├──07 synchronized关键字原理-锁的膨胀过程三(1) .mp4 1.29G
9 \: O3 I r% P, v3 \9 C| ├──08 synchronized关键字的使用和优化(1) .mp4 1.13G
7 s, o. g8 z. {& b$ @: i- R| └──09 ReentranLock 的基本使用和设计模式(1) .mp4 1.05G
' b# I" [& `! L/ r8 |1 s; O├──04 并发编程
9 Z, Q% B5 {, n| ├──01 aqs框架的源码分析(1) .mp4 1.28G) ^7 Q' W* H4 P/ A# t/ Y1 v
| ├──02 ReentrantLock解锁流程和读写锁源码(1) .mp4 1.06G
* M$ [% o' D8 E- V9 B| ├──03 aqs之读写锁原理分析(1) .mp4 1.16G
c) d7 S" _; X, k5 V, u% w| ├──04 juc工具类的使用和原理(1) .mp4 1.23G
5 f- Q: x" j- H% ~0 F2 N' `| ├──05 模拟线程池的原理实现(1) .mp4 1.19G' w$ o' r' G& T* B; J" @
| ├──06 ThreadPoolExecutor线程池(1) .mp4 1.17G
5 ]) ~, |( f( ~1 H) @| ├──07 线程池源码分析(1) .mp4 1.35G( ]' t% q8 I+ Q' C$ b/ e
| ├──08 如何解决JAVA的有序性和可见性(1) .mp4 946.77M4 ~- u+ g% f5 i. G" U3 I
| ├──09 如何理解JAVA的内存模型(1) .mp4 977.11M
/ A$ _; Y6 r) D% U6 ~| └──10 currenthashmap源码分析(1) .mp4 1.35G
, v3 s2 `6 {. s; C2 p% u6 K$ w├──05 并发编程网络协议与netty ; Z3 I# H% R2 c; K2 e
| ├──01 forkjoin线程池得原理和应用(1) .mp4 898.41M
. a! @% @3 Z# p: r' B, b9 Y| ├──02 网络协议和常用网络工具(1) .mp4 1.03G
, Z+ Z/ d9 ]5 O7 o% D! e6 k| ├──03 Java原生网络编程(1) .mp4 1.30G
5 w8 y1 P6 H) @3 r ]2 R& k| ├──04 Java原生网络编程2(1) .mp4 1.76G# Q) x& M& G- _5 f1 E
| ├──05 Java原生网络编程3(1) .mp4 1.65G
! s9 h" ^; E; {6 h& w7 @| └──06 Netty基础入门和应用(1) .mp4 1.78G9 I+ Q7 j" m/ t
├──06 网络协议 / }. F8 Z, H( W2 n" d6 x
| ├──01 Netty基础入门和应用2(1) .mp4 1.77G
# q2 z3 O1 L9 L6 [6 i$ || ├──02 Netty基础入门和应用3(1) .mp4 1.57G
' C; v' C+ i7 N2 F7 s' V| ├──03 Netty基础入门和应用4(1) .mp4 2.27G* w. u0 \3 Z! S* J
| └──04 Netty进阶和实战(1) .mp4 1.29G7 |, T' j' [+ w0 s! \: Q
├──07 网络协议与Netty
) ?# o( H l E" r. [8 s A9 [: E| ├──01 Netty进阶和实战2(1) .mp4 1.64G* J# y0 T; T( s: [
| ├──02 Netty进阶和实战3(1) .mp4 1.89G* R6 K0 n7 O7 s6 R
| ├──03 Linux和JDK对网络通信的实现(1) .mp4 1.13G
/ }/ d& n" A; Y) f| ├──04 Linux和JDK对网络通信的实现2(1) .mp4 1.67G, a# |% h% w- X' u4 I
| ├──05 Linux和JDK对网络通信的实现3(1) .mp4 1.36G
4 @, w0 P. W) u& S9 p| ├──06 Linux和JDK对网络通信的实现4(1) .mp4 1.91G
8 C: H1 Z/ K1 r" ^1 H5 a) S( F| └──07 Netty源码解析(1) .mp4 1.96G
. w& Z8 }; _% F/ x \$ ^├──08 网络协议与NettySpring源码 6 H& L5 u, ?+ M" g# z- u; @8 ?5 s
| ├──01 Netty源码解析2(1) .mp4 2.03G+ U3 g( |2 g% M' |4 u
| ├──02 Netty源码解析3(1) .mp4 1.82G
O" n! G) X" x0 G% `; Z| ├──03 Netty源码解析4(1) .mp4 1.73G
8 f9 @1 F1 F3 `) v0 C* [| ├──04 Netty源码解析5(1) .mp4 1.49G0 j Q: F' N) @4 a% ?6 H
| └──05 spring源码编译和xml解析(1) .mp4 2.00G4 ? V( r) x0 |! h" b/ _1 r& Q. x* ~
├──09 Spring源码 + U( a" |) p; ]! b j
| ├──01 BeanDefinition和默认标签、自定义标签解析(1) .mp4 1.89G
$ n4 p' p3 K g8 A2 G( g| ├──02 component-scan标签解析和bean实例化初探(1) .mp4 1.98G
- G. ]; Y) F; [ @| ├──03 BeanPostProcessor和Bean实例化初探(1) .mp4 2.07G/ `+ s! Q, w$ I7 F$ z- b# Y
| └──04 bean的实例化和注解的收集(1) .mp4 2.11G
8 h& \# ]3 p1 J, _; x├──10 Spring源码 9 _' q" s2 ?9 Y+ E% N) \
| ├──1 @Autowired@PostConstruct@PreDestroy注解(1) .mp4 1.95G
3 c; y7 b: \6 n, v) Z+ _! q| ├──2 spring中循环依赖详解(1) .mp4 1.90G
/ L! r" F( O. Q$ X2 m' v| └──3 spring中配置文件解析和Environment对象 .mp4 2.11G
/ j9 K6 G) V& V6 t$ w$ C. m# a1 P├──11 spring源码
6 u# F& I6 W) R. ]3 {4 [: `# c2 m* W) `| └──自定义scope和factoryBean接口(1) .mp4 2.08G, e8 ^+ B/ O0 d, ~* q9 K
├──12 Spring源码 3 ^5 I7 W* q* h3 u* t0 Q( c, X: ?
| ├──1 ConfigurationClassPostProcessor类源码(1) .mp4 2.07G
; h# T/ c3 p& w9 J| ├──2 ConfigurationClassPostProcessor类源码2(1) .mp4 2.05G
' d, \! [( G2 v6 x| ├──3 spring的实战代码案例1及AOP基础 .mp4 2.17G# p4 u& K7 i) i( G2 i3 E+ d; B
| ├──4 动态代理和AOP的初见 .mp4 2.05G
& e! P6 D S; i2 m- ]7 u5 o/ s| └──5 代理的生成和链式调用流程 .mp4 2.34G* M0 c: q' k4 [- c3 Q
├──13 Spring源码
; _- O, X7 Y- {& e7 s| ├──1 链式调用过程和AOP周边 .mp4 2.37G+ _" r6 j" E* h- S
| ├──2 spring的实战代码案例2之巩固AOP .mp4 2.39G
. C4 F) h4 E" m+ q: x| ├──3 spring的事务切面精讲1 .mp4 2.11G
{( x& k6 r4 P3 A1 m. Z- g| └──4 spring的事务传播属性精讲 .mp4 2.26G2 r% j- Y3 y' c/ G
├──14 Spring源码 ) J% H j9 _' k+ e
| ├──1 spring的事务传播属性精讲 .mp4 2.22G
& q/ @% ], b& m. [7 i' H# q| ├──2 缓存切面和异步切面 .mp4 2.32G% L! ~; b. X, L4 |4 }6 L
| ├──3 缓存框架和springmvc零配置原理 .mp4 2.35G
# C# _( x; l/ K6 v* k| ├──4-1springmvc中请求的调用流程 .mp4 735.32M
0 e, j0 S, J- z, e j| ├──4-2 springmvc中请求的调用流程 .mp4 1.42G7 O* F4 b1 `( Y2 `) M) U" f; T3 h
| └──5 JSON参数解析和视图响应 .mp4 2.08G% X+ x6 {/ Y Q% ^8 [$ P+ g
├──15 Spring源码mybatis # ~: k) a& ^. @6 S! H7 K; {
| ├──2 异常处理、拦截器和跨域问题 .mp4 2.43G; h: R- i! v- v- l
| ├──3 springmvc实战、spring总流程归档 .mp4 2.24G
0 N" F( G3 g5 K$ U| ├──4 spring总流程归档 .mp4 2.15G7 d% j; H( T3 K9 J: g
| ├──5 MyBatis开发重点知识 .mp4 1.02G
5 b6 B/ B* W, _! l+ o" S8 y: Q| ├──6 mybatis缓存使用和xml解析源码 .mp4 2.12G$ L7 O: D+ F5 k9 r. r7 w* f% o
| └──7 MyBatis开发重点知识 .mp4 856.80M
4 S) {* C+ x3 r5 B, }├──16 MyBatis
9 F3 T- ?, R& |! U| ├──1 全局xml解析和mapper中sql的解析 .mp4 2.15G; V0 K2 u4 s% E
| ├──2 SQL的执行之Executor组件 .mp4 2.24G
% H* F' `- r& d+ W| ├──3 StatementHandler和ResultSetHandler组件 .mp4 2.30G
% B0 L3 b1 Q* z( B+ V$ Q- G( R| ├──4 mybatis中的缓存原理和懒加载原理 .mp4 2.24G) H# t9 X6 ^% r; B# |8 f7 c
| ├──5 mybatis的plugin和跟spring的整合 .mp4 2.00G
$ q& S% s& m3 @& f# P) ^3 ~| └──6 mybatis跟spring整合自定义分页等插件原理 .mp4 2.17G
7 @% c0 G9 \8 z) M; \' p├──17 MySQL ; A W+ j, I1 ^# l# |; b
| ├──1 自定义分页等插件及mybatis复习 .mp4 2.20G
1 _: o. k4 @$ s% j5 o% l| ├──2 全盘了解MySQL .mp4 2.36G2 N% _# ]3 @. `! V/ s8 t' b
| ├──3 MySQL中表设计和数据类型优化 .mp4 2.06G% Q7 \6 y4 N" U! F2 ]
| └──4 高性能索引(一) .mp4 1.77G
$ ]8 m! S: ~& ~- N4 Y2 x1 n├──17 分布式常见场景解决方案实战MongoDB进阶
+ K9 B2 P1 d# a| ├──1 session共享与单点登陆实战 .mp4 2.20G
. r4 L1 ^% H A+ z( V4 y. U& J/ @| ├──2 分布式任务调度实战 .mp4 2.36G# _, C9 @- {! [! p5 w( I/ ^
| ├──3 MongoDb综 .mp4 2.06G- w& Y s7 {& p& ^# a3 s% A# s! j
| └──4 MongoDb快速入门 .mp4 1.77G
! p2 b( K5 D% E6 w7 _& `1 A/ Y├──18 MongoDB进阶
& S1 c# \2 G+ K| ├──1 MongoDb查询进阶- .mp4 2.26G1 h1 F7 o" r9 n5 m
| └──2 MongoDb操作进阶- .mp4 2.26G
" C B% `% T5 f1 U% G├──18 MySQL / J. L0 r2 c5 J* C
| ├──1 高性能索引(二) .mp4 651.40M
! R. w0 E9 c+ @3 H" l: Q| └──2 高性能索引(三) .mp4 2.26G5 c* q0 l3 G5 N: r% e9 n2 P
├──19 MongoDB进阶spring源码分析 6 X, u. W$ Q4 m* w2 j8 c
| └──1 MongoDb高级进阶 .mp4 1.97G. r$ @: j' G/ ~& g
├──19 MySQL ) i' C0 Z3 K! N
| ├──1 MySQL性能优化(一) .mp4 1.97G
% C: M3 X$ d) N8 g& Q9 [& p| ├──2 MySQL性能优化(二) .mp4 2.15G4 g3 c$ N4 ]- K
| ├──3 MySQL的底层执行原理(一) .mp4 1.92G& N; `# @+ ~: Z5 n: G9 d3 ?) [
| └──4 MySQL的底层执行原理(二) .mp4 1.81G, z6 K. j9 n& d$ H, N$ v
├──20 MySQL
- j; ?, F* G- D) a" W| ├──1 MySQL的底层执行原理(三) .mp4 1.67G
/ v. f" Z6 w6 R! N2 E* z5 `| └──2 InnoDB引擎底层解析 .mp4 1.69G
* i$ j. x: y/ Z; D, \3 ^├──21 MySQL
6 d( ] {5 K" l| ├──1 InnoDB引擎底层解析 .mp4 967.41M
; q9 @8 F% `" r5 V% r| ├──2 事务的原理和MVCC .mp4 806.35M
: L* R. S; P: @" w$ c7 T) M| ├──3 事务的原理和MVCC(二) .mp4 789.24M; U& z1 s+ S) c+ d
| └──4 MySQL中的锁、面试题和实战那些事 .mp4 795.23M
* D+ K6 L9 {; j8 {* s├──21 spring5源码分析
" L' c* a& X# o" d- U| ├──1 循环依赖原理和Bean实例化大流程梳理- .mp4 1.75G
& ]6 w A8 E1 K6 A2 P| └──2 @Bean@Import和bean的多例作用域- .mp4 1.55G f% P: i% i( ^1 e
├──22 MySQLRocketMQ
- x& u4 Q+ A$ S7 l| ├──1 MySQL中的锁、面试题和实战那些事(二)- .mp4 2.08G6 y# V% z1 g6 X( p- _( u
| ├──2 RocketMQ基础篇(上)- .mp4 1.90G9 E# f) s$ x6 g/ P) o: Z3 u, ]- c1 g
| ├──3 RocketMQ基础篇(下)- .mp4 2.39G5 d( w" H: w0 W5 Y
| └──4 RocketMQ内部机制-存储设计- .mp4 2.07G
, h: ^: O; L) N├──23 RocketMQ
0 P- Y9 K: {0 e| ├──1 RocketMQ内部机制-高可用机制- .mp4 2.00G9 X$ V1 F) k7 R
| └──2 RocketMQ实战-异步结构与流量削峰- .mp4 2.15G) ?0 g; ], D/ A. R0 h2 v) N7 ?8 P
├──24 RocketMQ
; y* X5 M" n) e# o( ?/ _- q5 a| ├──1 RocketMQ实战-限时订单与分布式事务- .mp4 2.24G& G: o9 g" K# g4 E* h, N. f* e
| ├──2 RocketMQ源码分析-整体架构与NameServer- .mp4 2.13G/ m) \1 K4 |6 m/ i
| ├──3 RocketMQ源码分析-Producer与Store- .mp4 2.02G
& B8 @) G( X- D. \| └──4 RocketMQ源码分析-Consumer- .mp4 2.05G! z" s6 g! D8 B% o9 Q
├──25 Dubbo
/ c' e: D# D* `$ E w| ├──1 Dubbo源码探析--服务的暴露与消费过程- .mp4 2.02G
( I5 `& c* j8 O; q& X5 v: @ o" w, \| └──2 Dubbo源码探析--服务的发布订阅过程- .mp4 2.02G
6 Q% k) |& s" G" N7 v2 a├──回顾 # C+ h( [& V, A" O
| ├──07 网络协议与Netty 2 D5 R9 Y5 m' P& z
| ├──08 Netty高级进阶 4 h: v) L9 i* `
| ├──09 Tomcat系统进阶
. H2 O6 _' U. N| ├──13 Spring源码 4 ]: }5 t% E: t
| ├──14 Spring源码 ' F' Q' M6 ]# d' Q4 ]( E# u6 |
| ├──15 Spring源码
' A: {+ s5 v: s. v| └──16 Redis高性能缓存数据库分布式常见场景解决方案实战
8 l! T, q3 B7 \$ K: \├──回顾) _1 d) D% {' K8 B5 R
| ├──07 网络协议与Netty 1 Z3 z- {" d: Z$ p5 t0 b5 l! P
| | ├──02 深入学习Netty组件(1)- .mp4 623.23M- R) p7 F% i& _0 ]( |9 A) g
| | ├──03 TCP粘包,半包问题和Netty编解码器框架(1)- .mp4 1.13G$ C& }/ w+ J; ]# [
| | ├──04 序列化问题、实现UDP通信(1)- .mp4 1.67G- Z4 w" g4 I/ I7 b
| | ├──05 服务器推送技术-轮询、SSE和WebSocket(1)- .mp4 1.36G1 [) ^5 q: |) I
| | ├──06 基于Netty的WebSocket通信(1)- .mp4 1.91G! M. o* L( B- \- |+ `5 V
| | └──07 基于Netty实现自己的通信框架(1)- .mp4 1.96G
8 ^3 [6 A& x; T3 K8 h| ├──08 Netty高级进阶 . k0 Y* p) N7 W [( m0 H
| | ├──01 BIO和NIO的源码解析(1)- .mp4 2.03G$ x7 o: Y% F' [% T/ j3 f
| | ├──02 Netty源码解析(一)(1)- .mp4 1.82G
2 W+ A% T5 m# I+ O* c4 m u| | ├──03 Netty源码解析(二)(1)- .mp4 1.73G
1 @: P8 w* O1 ~8 N/ Q C| | ├──04 操作系统网络底层原理和源码(一)(1)- .mp4 1.49G
! B2 l' g" d$ r$ I2 P; I1 s' i| | └──05 操作系统网络底层原理和源码(二)(1)- .mp4 2.00G% L* v' r5 l8 V7 P8 ~: F) _
| ├──09 Tomcat系统进阶
" {, d" `$ @: a| | ├──01 Tomcat源码解读(1) .mp4 1.98G; w. \& }! R5 Y
| | └──02 Tomcat架构解析(1) .mp4 1.89G
( S" c7 s5 e2 U( F+ b4 M| ├──13 Spring源码 9 Y1 U2 h6 C2 F) o6 J# s5 f
| | ├──1 数据库事务和spring如何管理事务(1)- .mp4 2.37G) u5 p0 f* k3 P" N& m+ I& B" S4 f% _
| | ├──2 spring事务的传播属性和隔离级别源码讲解- .mp4 2.39G
- A6 _- f9 |$ [| | ├──3 事务隔离级别 cacheable缓存切面和异步切面- .mp4 2.11G% ]6 a8 {5 Z1 V: }
| | └──4 spring的实战代码案例2- .mp4 2.26G
+ R8 K5 h+ U" a1 x* O4 n| ├──14 Spring源码 : w6 a: G4 k1 M9 B2 G8 {
| | ├──1 零xml配置整合springmvc和嵌入式tomcat- .mp4 2.22G
- W( k7 H% }0 j7 \| | ├──2 springmvc请求响应核心调用流程和过滤器- .mp4 2.32G: [+ i$ \. V5 _# m5 F* G' R
| | ├──3 特殊参数解析返回值解析视图渲染- .mp4 2.35G
. J9 y. q* \1 ]5 d. H| | ├──4 spring&springmvc大总结- .mp4 735.32M
! l, V5 n4 x" \. C, w: Y| | └──5 spring&springmvc大总结- .mp4 1.42G+ ]) k y" g3 r4 I% \" c
| ├──15 Spring源码
& w8 g0 v$ k; [* i| | ├──1 静态视图、异常处理和拦截器- .mp4 2.23G
- R) R. H1 v; o& S/ N) q| | ├──2 搞定RocketMQ消息存储及事务- .mp4 2.43G
: g7 m( W' F8 Q9 i| | ├──3 主从同步机制和与Spring整合- .mp4 2.24G& F" [& o4 c- E: D/ w
| | ├──4 RocketMQ限时订单实战- .mp4 2.15G$ {, V+ Y( }* c/ P' |
| | ├──5 RocketMQ源码解析- .mp4 1.02G, M) Q1 c( q. e. z# ^$ A
| | ├──6 Redis从入门到狂澜- .mp4 2.12G+ N i E5 D: J1 |( }+ C. R
| | └──7 RocketMQ源码解析- .mp4 856.80M5 x& o- D9 u c1 _- G+ D; Q
| ├──16 Redis高性能缓存数据库分布式常见场景解决方案实战 1 u! K2 c' t' ]
| | └──1 BAT常见Redis场景设计实战- .mp4 2.15G
1 ~/ H! x! W: m) n2 e: N* A6 f| ├──3 spring的实战代码案例1(1)- .mp4 2.17G
! N2 A: a- u; Q U. l+ J7 ~& u| ├──4 aop入口及aop中的各种advice和advisor(1)- .mp4 2.05G/ _; Y- ^( a* \) X6 Q
| └──5 AOP链式调用过程和cglib动态代理(1)- .mp4 2.33G5 F3 N& T/ K) T2 f0 l7 J% P1 z' J
├──资料
3 E# N/ ?: P" @. ~( B| ├──3.16 .zip 1.74G
8 {4 Y" {- z7 F: A1 ?| ├──5.11 .zip 173.87M4 T0 i2 {* s% l; q5 m. a$ w& `
| └──资料(Java-vip) .zip 585.04M
}1 b( h- s B! d( k9 B0 \; M6 i├──Java高级进阶面试题目_享学课堂 .pdf 3.93M
4 z2 s+ F/ h9 X# V- m; I├──第三期课程(Java-vip) .zip 1.46G
6 O) B. y3 a5 w! k3 g* ?1 P└──享学首创年薪80W+对标P7岗架构师成长路线V7.0 .png 1.81M
& C) t7 d& F; w3 ]3 y/ t1 R& W& g( e( q/ w( T! ]( t
, G7 R `5 y! d1 B5 k3 X' e
/ z5 A9 H1 K& d* Q
永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!
4 l( v/ z4 T# }5 v7 Q5 r, |/ Y
- |& S* o$ k6 t: ]8 f# @! v( f% q5 J F) @& v; |; R
|