|
Java视频教程名称: java在线教育项目在线教育项目代码笔记视频教程[javazx.com] java自学网[javazx.com] 教育视频教程 it教程 Java自学网收集整理1 h9 u& X# I. U1 i! v1 O7 W7 \1 @
百度网盘下载链接:
- i+ Q0 b) f% F: V4 W$ S9 d- [3 W[/hide]密码: 2neq 【解压密码:javazx.com-AU9o6VTY】3 ?. I' j5 U9 r0 k* [2 d
集数合计:7部分[javazx.com]
) P1 G6 e5 H) @: J1 [7 T/ {/ I7 e+ B, h
链接失效声明:如果本链接地址失效,请及时联系站长QQ:40069106 / e3 A7 ~. v9 D6 P# G2 k
如何获取资源:VIP升级: https://www.javazx.com/thread-10591-1-1.html0 e6 d; M6 J# D$ n# f7 {
VIP说明: 月度VIP:使用期限30天
) W$ }4 m8 T6 k& `5 A% J/ } 年度VIP:使用期限365天
K) y3 Q, g* ?& F- y% ]6 k" A" W 终身VIP:使用期限永久+ w3 ^$ S3 M+ ~3 e0 f- D) c
, e2 D) Z) Y* P8 I
Java视频教程详情描述:
( ~7 }5 C% S& C" ^9 sB0589《java在线教育项目在线教育项目代码笔记视频教程》javazx.com java在线教育项目在线教育项目代码笔记视频教程 javazx点com java自学网整理 ' ]9 r6 n9 d! N9 T0 F
' K! b/ w0 N& |' u" N# EJava视频教程目录:
6 g* \' N0 y$ ^$ W) z9 G; d2 g7 ]+ d2 \
│ │ 09-分离前后台接口的定义.avi( m/ N; g7 o2 H& M8 a
│ │ 10-分离前后台接口的swagger配置.avi+ `1 e" H S* ~% ^% o) | D
│ │ 11-定义返回码.avi* u" ]7 q2 Y( ^7 s. d+ Y
│ │ 12-在项目中使用全局返回结果.avi
$ X. D2 P4 i0 C. b; h│ │ 13-测试全局统一结果.avi! M! O8 i2 K8 x8 L% l$ X
│ │ 14-分页结果实体.avi
, v3 L+ g" k. ^- Q! G' x1 h; w* L│ │ 15-分页controller的实现.avi
' O1 C4 f# H7 a: ^│ │ 16-分页的测试.avi
3 {5 x5 q& A, ]1 {│ │ 17-查询对象的创建.avi
, E% p, k7 o) J0 h* g' X) R# r│ │ 18-实现条件查询和测试查询.avi
) G" t6 _9 H5 j( s* g( X│ │ 19-优化查询语句.avi
6 o/ r1 ~1 y' C# m$ z│ │ 20-课程微服务数据库表设计.avi! x6 m6 u1 e Y" O1 S7 D
│ │ 21-课程管理微服务的创建.avi
# l, s) y1 t1 K* H│ │ 22-实现查询和删除功能.avi
$ F: F. n5 Y) l5 N# q# }' z│ │ 23-测试删除和分页查询.avi, h: x. i+ V: u9 T
│ │ 24-实现完整的CRUD.avi
+ K$ V, n& \# A$ V( @│ │
; ~" Q7 C$ g$ ?5 T6 m, }& S# @│ ├─3_ES6和vue开头, B% P9 ?, Z! R' X& V! U d
│ │ 01-总结.avi# _8 ]+ F) ^/ o3 E
│ │ 02-定义全局异常.avi: A; R4 t& {* ?6 t' S! }' x
│ │ 03-测试全局异常.avi
' m7 S; U! i, h" e. O│ │ 04-跨域处理.avi
; ~8 `$ U2 A6 l9 o+ x) o1 P! r) h│ │ 05-什么是前端开发.avi7 V% `7 i4 b$ n- R3 ?. V, e! Q
│ │ 06-ES6的历史.avi
5 c2 e0 X6 F! X4 V3 c│ │ 07-VSCode开发工具.avi
/ z: z3 W8 X# o" {# U6 s│ │ 08-let.avi
4 J# S3 I4 K C9 T│ │ 09-let2.avi7 C8 a" v Z0 x$ P/ L- U, |
│ │ 10-const.avi
- @) A/ z! T' u) W│ │ 11-解构赋值.avi: x7 M, }0 w* I% j/ T6 w* O
│ │ 12-模板字符串.avi
; e/ O9 \! `: W7 s. j6 O│ │ 13-反引号定义换行的长字符串.avi
# U0 m Q9 _+ n e9 `│ │ 14-使用插值引用函数.avi6 g; Q4 R+ l$ x+ Q/ p' X
│ │ 15-上午总结.avi" S) {7 C; |% d" E
│ │ 16-方法的简写.avi
0 p# H- `( j, O, n. L│ │ 17-对象拓展运算符.avi
! Y! e7 O* |; r; l) B│ │ 18-函数的默认值.avi
8 {% S- Z0 P: g/ N│ │ 19-不定参数.avi
- L9 O" [+ i! j7 m' F9 F│ │ 20-箭头函数.avi G) _. R& V- s2 m; B2 B
│ │ 21-js使用回调函数实现异步编程.avi
& ?+ |1 H1 H3 q# k│ │ 22-使用回调函数.avi
: v7 U( F! c' t* e% G# y│ │ 23-回调函数嵌套.avi, J- G' o' t. z* a) c
│ │ 24-使用promise.avi4 _7 X, D4 R2 e. I S2 M8 f" s5 ]
│ │ 25-promise的串联.avi
- A# r4 K+ o% F7 n! r, B│ │ 26-promise中处理失败.avi" f/ v) g n/ x6 s
│ │ 27-模块化.avi& g' P- R7 o$ o6 v6 F3 Z
│ │ 28-什么是Vue.avi
1 X/ c, f& ?: l. Z│ │ 29-第一个vue的例子.avi* t" w! O: K' J2 x l' n
│ │ 30-新建代码片段.avi
# {, {' Z/ }+ [: P: a. n│ │ 31-创建代码片段.avi
F k8 Y' e$ L: x│ │ 32-基本数据渲染和指令.avi
- i) W- I" z( y2 |3 x4 b│ │ 33-双向数据绑定.avi6 D7 h4 @* e( R2 `1 v: r! ~
│ │ 34-事件定义.avi
/ r4 ?' E/ Y- Z, Z: w9 r│ │ 35-promise的综合应用.avi
$ o" E! c; z( \4 ]│ │ ! L3 _: C4 |, g5 Z
│ ├─4_vue高级5 v6 v2 V$ [/ @) c {3 P2 t5 L
│ │ 01-属性绑定和时间注册的简写.avi
( F7 p( W- }# x4 H6 W9 j7 G" U│ │ 02-修饰符的使用-prevent-阻止默认行为.avi" h' ]3 j. |' ~( w6 A9 y a
│ │ 03-表单判断.avi
; ~; m0 h% c6 l. R' K: k* K. \│ │ 04-条件渲染.avi
; i( ?& `( t0 Q5 ?3 w4 p1 q) x│ │ 05-使用v-show.avi
5 ]. s& e- w, y0 y8 Z│ │ 06-v-show和v-if的区别.avi
" M! b" O. } ]+ ]! _+ B# p9 m) b│ │ 07-v-for的基本应用.avi
( L7 U7 T# `5 e, \! {│ │ 08-计算属性的使用.avi
# j" p* t! ]3 m3 M4 X6 g: b│ │ 09-遍历对象.avi
. ~$ j" l7 a9 X8 E│ │ 10-计算属性和方法的对比.avi l8 v3 i9 B4 X
│ │ 11-计算属性和方法的区别.avi* c0 z6 x* o! y" C- I+ v
│ │ 12-侦听属性.avi V! J: t& e8 b% E7 |- `
│ │ 13-调用yesnoAPI.avi' A# w; b& x5 V7 w! t
│ │ 14-加入侦听属性.avi, A& v8 R$ ?! T! { a& `
│ │ 15-计算属性和侦听属性的总结.avi
, J8 i K$ i* x5 n│ │ 16-局部过滤器的定义.avi# n! }* Z0 l- | g- W% W1 @
│ │ 17-全局过滤器的使用.avi
9 M ?, U3 Y+ G/ e; `2 i- D│ │ 18-组件的概念.avi
( b7 c: _- ~. ?" \2 B│ │ 19-局部组件的定义.avi! j/ O/ x5 v5 Y5 O- B
│ │ 20-全局组件的定义.avi
/ n2 x- ?8 Z& V! \$ t" u5 n6 X7 f│ │ 21-自定义全局指令.avi
/ D) w, k' B3 ~+ o0 {4 `│ │ 22-全局指令.avi
0 E& w. h( h3 _2 W0 b│ │ 23-实例的生命周期案例的初始化.avi! _' O1 m0 R- [/ D
│ │ 24-页面创建时的四个事件.avi
# g6 F& H8 m/ a8 f# T- A5 N2 N│ │ 25-页面更新是的两个时间.avi
% U7 u' R+ F! ^( t0 @│ │ 26-路由的应用.avi
" g( W. a* ], `" y- x0 Y% e│ │ 27-路由的实现.avi% N* @- t4 j( N& W. b% s9 ]
│ │ 28-初识axios.avi+ }2 ]9 X* t0 D) r4 m
│ │ 29-axios的查询和更新的例子.avi0 `' E; f, v3 l) |- [+ W
│ │ 30-axios的列表和查询功能.avi+ z% x. Y& E ?% ~' _' o
│ │ * N( P! Y& [9 b0 s: G
│ ├─5_elementUI-nodejs-npm-webpack-项目初始化* M J( j6 j7 L# s3 Z5 c6 m& h1 N4 T
│ │ 01-element-ui入门.avi
$ y6 Z4 Z1 \5 a4 Y- E│ │ 02-讲师列表页面的准备工作.avi
& L5 l6 y( e/ C4 I6 H- M$ [│ │ 03-使用element-ui实现列表渲染.avi
8 u7 p; y; o+ p2 O" y4 Y│ │ 04-element-ui列表状态显示.avi
& r* x, F/ G1 q9 K8 J│ │ 05-查询表单1.avi/ d3 k6 q( {6 ?2 c: k( X
│ │ 06-查询表单2.avi
7 p5 K4 x' @: ~9 Y9 Y3 o│ │ 07-什么是Node.js.avi
% d: ?% j" J& d2 S) F( t; u│ │ 08-使用命令行执行Node.js程序.avi
. d. |# v6 p( Y; I│ │ 09-使用Node.js开发服务端应用程序.avi+ ]8 Q# k* ^0 s; \! R$ E
│ │ 10-vscode中终端的使用.avi, e9 e5 g# h" Y; ?& f' |3 q
│ │ 11-使用npm进行项目的初始化.avi
6 \5 e" {6 T6 d4 {6 C│ │ 12-使用淘宝镜像和cnpm.avi: y7 n% A0 t9 V. e
│ │ 13-npm常用命令.avi. O# T; r; C. ]. X
│ │ 14-使用babel将es6转码成es5.avi' J+ a" ^- `3 X/ l6 G
│ │ 15-将babel转码过程配置在npm命令中.avi
1 ?4 {8 g+ X9 l9 I; k+ L5 p│ │ 16-上午复习1.avi
! I$ j* |( x7 q. d2 B& N6 M/ o│ │ 17-上午复习2和babel的配置和其他使用方式.avi
/ n7 Q! X! `! @0 p Q9 N( K8 }│ │ 18-什么叫模块化.avi: [$ q5 n# b+ L; [" C
│ │ 19-CommonJS模块导出.avi3 u( z s( J1 b: n% c9 [( Q
│ │ 20-CommonJS导入模块.avi
7 \+ c" B5 v& I/ s0 K) i- O│ │ 21-exports和module.exports.avi. |1 |& Q; [- r. k. F T Q& E
│ │ 22-es6的模块化.avi
3 Z; s; r1 _, `│ │ 23-es6模块化的其他实现方案.avi: M& m; H* E& r' U
│ │ 24-webpack的安装和基本的js文件打包.avi
8 {0 g+ p7 X( e; W& a- @7 s│ │ 25-使用打包后的js.avi& L! E) ^) i, v$ W0 m0 g
│ │ 26-css打包.avi$ o+ W$ l- W0 E0 l7 S
│ │ 27-管理webpack配置文件.avi7 }6 Y( L7 r& z
│ │ 28-webpack-dev-server.avi
5 z/ ~ g8 w/ H* ?' w3 O│ │ 29-vue-element-admin和vue-admin-template.avi+ ]- D- A, s5 G4 _
│ │ 30-安装vue-element-admin.avi
; ~9 K- A* N ?5 F' b+ W5 [. d│ │ 31-启动项目.avi
' ~) I% `0 B4 D3 Q1 L9 c│ │ 32-谷粒学院前端项目搭建和基础配置.avi' Z# E/ e# @% b% n9 k
│ │ # b4 Y3 U/ G E
│ ├─6_前后端联调+ P+ Q% o, y; i8 g5 V
│ │ 01-前端项目结构分析.avi6 f( a# \2 [- w" b9 X) f
│ │ 02-路由的配置.avi, S% v1 H! `; T6 p) y* x. ]; u
│ │ 03-nginx反向代理配置解析.avi% v) t% Z) o9 m6 a& i
│ │ 04-配置nginx服务器.avi
+ @. J) e5 G# N/ G│ │ 05-实现学员列表的显示.avi
- @3 Y, P0 Z; n) e: B│ │ 06-前后端对接的步骤总结.avi
9 L$ Z% d9 k: Q3 T1 M) U3 Z1 v│ │ 07-分页实现-api的定义.avi
; D, W" g1 T) C1 w│ │ 08-前后端联调的问题解决.avi- ? T6 o7 Z w* J& G
│ │ 09-分布式id生成器的坑.avi( F3 M4 n8 p& l
│ │ 10-前后端表单请求常见的问题.avi( y! D1 S( L$ \+ E! t; s& R0 v
│ │ 11-前后端表单请求常见的问题2.avi' f/ O9 U2 X/ r. g. S
│ │ 12-阿里云存储基本使用.avi2 }3 C$ t# Y4 C# c, k: t
│ │ 7 M# p, x$ V- N( Z6 l, V
│ ├─7_教师模板和阿里云oos服务% G6 m) _& }/ X2 i* f
│ │ 01-Easy Mock的使用.avi/ s J3 L8 w/ l* f
│ │ 02-Mock语法.avi
) w9 C& D! F4 @. I2 v│ │ 03-ESlint插件.avi1 p% S# S: w9 ?( h, a8 l3 O, D
│ │ 04-讲师模块后端代码优化.avi
, o% n* N& w7 ]) O9 p│ │ 05-接口的定义.avi
+ t& D E, H* A4 i, D; j# Z! z│ │ 06-路由的配置.avi
; T7 `, _3 k/ `( T6 E( e' ?, R# E1 Y│ │ 07-讲师列表组件的模板编写.avi
6 m2 g5 C# j, J( B! ]* J4 J│ │ 08-讲师微服务和前端开发和联调步骤.avi
6 `2 \1 J' ^% }│ │ 09-删除功能的实现.avi+ e* W& ?+ o- C( ~
│ │ 10-查询表单的重置按钮.avi2 f. P5 g# J3 f
│ │ 11-保存功能实现.avi
7 w8 W; {) T- P│ │ 12-表单回显功能的实现.avi
) _( o" v1 L/ W│ │ 13-实现修改功能.avi6 v2 Q! `8 o( S
│ │ 14-页面中不同路由引用相同组件的问题.avi0 D& E, a7 C& O9 o9 A
│ │ 15-监听路由变化重置表单.avi
9 T+ v m% r6 t- {- v4 b│ │ 16-头像上传功能的组件添加.avi% r2 l) u; K' k8 G/ L4 F
│ │ 17-创建阿里云微服务-配置文件和工具类.avi s' \0 B8 G' U6 l; M9 e1 X4 }
│ │ 18-实现oss文件上传.avi. B7 s) l5 J. F4 O3 I; w0 j. q
│ │ 19-将文件上传微服务配到到ngix反向代理服务.avi
( U( K3 G. @# J; k9 z1 j│ │
3 F2 @- L) i9 P9 Q: t, _" Z│ ├─脚手架
3 J' `* d4 h) E) I1 e+ ?6 }3 r│ │ 01-面试问题总结.avi
. V- e+ k: N. S│ │ 02-面试总结2.avi( R9 ?. W: v: v. W( ~
│ │ 03-项目原型分享.avi) m. C# |) t9 e& ?
│ │
3 j2 |' X. W, l- {/ z│ └─面试总结9 H5 F, }9 G ]; r' {5 {, m# P
│ 01-SpringCloud功能集成和ECharts功能集成.avi* K3 h$ q& @3 G: k
│ 02-脚手架项目.avi- h% I2 O" f b) S2 U
│
D, S" _: Z1 t0 _. J7 T├─工具
[6 ~5 u+ t4 V│ │ nginx-1.12.0.zip* ^* z/ T! `+ S1 l9 v$ j" l* E
│ │ node-v10.14.2-x64.msi6 u& L" ^9 d9 d2 s% ?4 _0 T
│ │ node-v10.14.2-x86.msi
0 A G1 B$ L) S% k7 ^. M; @% f& v│ │ Postman-win32-6.6.1-Setup.exe2 S! a$ Y+ V* Y: b- D. S3 n
│ │ Postman-win64-6.6.1-Setup.exe3 [. g; D' Z6 p! p d J0 J8 R
│ │ VSCodeSetup-ia32-1.29.1.exe# v& ^6 b9 n# @" L4 {2 L4 x# L; ^
│ │ VSCodeSetup-x64-1.29.1.exe0 E5 X; g& @* A2 K V% d+ d8 n
│ │ wiznote-windows-x86-2018-10-30.exe
( p5 S5 F4 ]1 |│ │
6 U0 N& @6 n* E5 u│ └─亿图8 ~( j( U4 C9 r7 i, w9 F
│ edrawmax.exe& T3 T7 q+ S$ x$ h# D
│ 亿图v9.0最新版本中文破解版序列号.txt9 @# f3 m; i6 v; C9 m
│ / A. _6 ^4 K+ I" s* P3 _. N
├─笔记 Q U% ~6 ~! L% @0 {
│ ├─Part01-MyBatis Plus入门8 [$ B. `9 r3 c% M9 f/ z
│ │ 01-简介.ziw7 `/ B* V: G. Y( s- i
│ │ 02-入门_2.ziw
) ~/ [0 L6 c. ?6 L" l! E4 A; ]6 n8 ?│ │ 03-CRUD.ziw
# g9 X5 a/ [# P @! d3 W7 c│ │ 04-条件构造器(作业).ziw
1 n! E. _3 \/ z│ │ javazx.com+ G9 y' u6 Q/ C# J( M
│ ├─Part02-微服务架构搭建-用户中心微服务
: B+ z: Z) a: j8 y$ b4 j│ │ 01-用户中心微服务数据库设计.ziw( b& l6 f! o( j, O- {) d" t
│ │ 02-创建项目使用MyBatis-Plus实现用户表查询_2.ziw4 x& a: d8 j2 t `) I1 f* I7 l* X
│ │ 03-自动填充和逻辑删除_3.ziw: n5 Y. D! i, R- @
│ │ 04-使用Swagger2生成API接口文档.ziw0 Y9 q7 [( t. |$ t
│ │ 05-统一返回结果集_2.ziw* w! D' \$ y0 x
│ │ 06-分页和条件查询.ziw
6 C. r- C- f' y* ~│ │ 07-全局异常处理和跨域.ziw. B. J& y9 X% k$ x
│ │
# \3 ^, G8 ]% F6 M1 J& ^/ M│ ├─Part03-微服务架构搭建-课程微服务5 I2 Q/ \- a7 J- |
│ │ 01-课程微服务数据库设计.ziw
9 Z2 {) d" c! v# O- p7 Q) V& ^│ │ 02-创建课程微服务实现讲师管理CRUD.ziw9 z; H% V. f5 m: ]
│ │ 补充:REST.ziw
" [. W h/ B) i│ │ . g# i6 M) z% }# P
│ ├─Part04【前端】-前后端分离基础知识
* Q$ }' I: ~9 ~7 ^$ d; S│ │ 01-前端开发和前端开发工具.ziw
* h) @1 U* Q0 d4 @+ B$ n. V│ │ 02-ES6入门.ziw4 b x: ^+ t/ | ~6 H- w, ]
│ │ 03-Vue.js入门.ziw
8 Q0 T% f* B z│ │ 04-Vue.js进阶.ziw
# g' l5 }! B% f/ u. k7 i│ │ 05-Node.js入门.ziw Y) x. k. v7 |: ?& i& x$ f
│ │ 06-Webpack.ziw
& D$ \+ F: R9 J│ │ 编码规范.ziw
+ R5 m, {$ b. p1 @0 m│ │ , ~& O0 d, E6 |) Q# _
│ ├─Part05【前端】-后台管理系统前端页面的搭建( b# h& z+ n8 g
│ │ 01-vue-element-admin和项目搭建.ziw
$ d9 n( x3 s; ^ }│ │ 02-项目中的路由.ziw1 m( O) \7 U* `- P9 w0 J/ }, H: k
│ │ 03-Easy Mock.ziw
* x. N. i0 f' [; |/ R9 C: b9 i8 w& Q│ │ 04-用户信息列表.ziw
$ q# R% [6 X0 Z) A L( A$ T│ │ 05-使用ngix反向代理服务器配置后台多服务器api.ziw: U6 n8 ~' C) N* ]" T4 Z O
│ │ ! L( n6 f6 M! [- Z& q
│ ├─Part06-阿里云服务, b+ R2 O+ C" G# Y5 Y7 V9 X2 v
│ │ 01-讲师管理前端CRUD和前后台联调.ziw z- d. }3 C( @$ F) G5 S. }! ~
│ │ 02-阿里云存储OSS.ziw
|2 K$ S9 D: E% B0 U; _│ │
% c1 G( W0 a& z; U/ u( }, j│ ├─Part07-使用POI实现Excel导入导出- |: E7 a8 r' J
│ │ 01-POI读写Excel的基本使用.ziw( P# |7 d8 I8 x. p9 y
│ │ 02-批量开通学员.ziw- ^ ]. c4 G! U2 Y9 a
│ │
! d2 ~4 Y3 \% V2 x% p6 o│ ├─Part08-统计分析功能的实现-项目中使用Spring Cloud
1 z9 D* ]; R3 ^+ z+ ]│ │ 01-统计微服务数据库设计.ziw. F8 o! _$ s/ w
│ │ 02-统计微服务的创建.ziw
/ E" ? X3 R! {2 d│ │ 03-数据统计的实现.ziw( r, @3 v y5 V7 o) |
│ │ 04-服务发现-搭建Eureka服务.ziw0 y, ]5 U1 l9 c5 w" X7 {5 c
│ │ 05-服务调用-Feign.ziw
) G; ?0 O: e: g5 W1 _6 q│ │ 06-统计管理前端页面.ziw
0 ?, k- n( V1 o* D' c: L│ │ 扩展阅读-01-微服务的基本概念.ziw5 n0 w3 w8 h5 a; [9 i
│ │ 扩展阅读-11-深入理解微服务架构:银弹 or 焦油坑?.ziw
$ u0 f. p3 u* {* p( ]# Y+ X2 E│ │ 扩展阅读-12-微服务架构最佳实践 - 方法篇.ziw) Q# |/ Y2 x0 Y' O0 S
│ │ 扩展阅读-13-微服务架构最佳实践 - 基础设施篇.ziw9 |& N3 ^( u7 q- i3 Z* x
│ │
# F: c( U* ?7 d$ B: j; N9 ?7 X│ ├─Part09-统计图表展示" V: H* e( I# h7 G4 d y% ^1 c8 c
│ │ 01-前端页面.ziw) |% T) f! d3 u$ }9 N
│ │ 02-后端业务.ziw
$ i+ y" ~0 [0 W│ │ 5 h, e# X: T" R K+ l7 p
│ └─面试总结
( c) R: J) q" V6 A7 K2 g$ D2 X│ 01-项目描述.ziw3 p4 ~) A' d1 q( ?
│
$ D: l" g& V+ z8 {└─简历
& @; ~$ _' w1 V2 d java软件工程师 2.5年 北京.pdf
) ?" @0 C2 v# f 吴丹-java中高级工程师.doc( N3 h `& L2 K8 o5 i1 a
智联招聘_张**_中文_20170309_85423545.doc
& r) P5 F' B: l- Y& z 王茂森的简历.doc9 J. E% g/ C9 ~% l# D& Q
金融行业简历1.pdf G9 G; ? Y t3 ^% ]' m
9 o1 O0 g/ V/ c& L q- \& f2 h# n
$ H* h+ @$ \* q c/ Z0 S) U
2 Y0 I: w( q) `$ Y" q
4 [( N. I% `; j) S/ a
* G( F; G, ^: i! I8 p- ~ |
|