Hacking
/ Hacking
Exposed
Color profile: Generic
CMYK printer
profile
Composite Default screen
Windows 2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3
/ Front Matter
CONTENTS
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xix
xxi
xxiii
Part I
Foundations
1 Network and System Security Basics . . . . . . . . . . . . . . . . . . . . .
Basic Security Practices . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .
4
7
7
2 The Windows 2000 Security Architecture from the Hackers Perspective . .
9
10
12
12
13
15
15
16
The Windows 2000 Security Model . . . . . . .
Security Principles . . . . . . . . . . . . . . . .
Users . . . . . . . . . . . . . . . . . . . . .
Groups . . . . . . . . . . . . . . . . . . . .
Special Identities . . . . . . . . . . . . . .
Other Security Principles and Containers
The SAM and Active Directory . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xi
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:49 AM
/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
xii
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Hacking Exposed Windows 2000: Network Security Secrets & Solutions
Forests, Trees, and Domains . . . . . . . . . . . . . . . . . .
Scope: Local, Global, and Universal . . . . . . . . . .
Trusts . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Administrative Boundaries: Forest or Domain? . . . .
SIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Putting It All Together: Authentication and Authorization
The Token . . . . . . . . . . . . . . . . . . . . . . . . .
Network Authentication . . . . . . . . . . . . . . . . .
Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
18
19
20
22
24
24
27
29
30
32
Part II
Profiling
3 Footprinting and Scanning . . . . . . . . . . . . . . . . . . . . . . . . . .
Footprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Importance of Footprinting and Scanning Continuously
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . .
38
43
54
54
54
4 Enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
58
58
59
66
67
81
85
89
91
. .
.
. .
. .
.
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
.
.
.
.
.
Prelude: Reviewing Scan Results . . .
NetBIOS Names vs. IP Addresses
NetBIOS Network Enumeration . . . .
Windows 2000 DNS Enumeration . .
Windows 2000 Host Enumeration
SNMP Enumeration . . . . . . . . . .
Active Directory Enumeration . . . . .
Summary . . . . . . . . . . . . . . . . .
References and Further Reading . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Part III
Divide and Conquer
5 Hacking CIFS/SMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Guessing SMB Passwords . . . . . . . . . . . . . . . . . . . .
Close Existing Null Sessions to Target . . . . . . . . . .
Review Enumeration Results . . . . . . . . . . . . . . .
Avoid Account Lockout . . . . . . . . . . . . . . . . . .
The Importance of Administrator and Service Accounts
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
95
96
97
97
98
99
/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Contents
Eavesdropping on SMB Authentication . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .
112
126
127
6 Privilege Escalation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
131
133
136
137
137
Named Pipes Prediction . . . . . . . . . . . . .
NetDDE Requests Run as SYSTEM . . . . . . .
General Privilege Escalation Countermeasures
Summary . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Getting Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command-line Control . . . . . . . . . . . . .
Graphical User Interface (GUI) Control . . .
Summary . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
140
146
149
149
8 Expanding Influence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
151
152
154
154
154
156
156
164
169
170
172
176
179
179
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
139
.
.
.
.
Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extracting Passwords . . . . . . . . . . . . . . . . . . . . .
Pulling Reversibly Encrypted Passwords . . . . . .
Grabbing Cleartext Passwords from the LSA Cache
Password Cracking . . . . . . . . . . . . . . . . . . . . . .
The LM Hash Weakness . . . . . . . . . . . . . . . .
File Searching . . . . . . . . . . . . . . . . . . . . . . . . .
Trojan GINAs . . . . . . . . . . . . . . . . . . . . . . . . .
Sniffing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Island Hopping . . . . . . . . . . . . . . . . . . . . . . . .
Port Redirection . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9 Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Rogue User Accounts . . . . . . . . . . . . . . . . .
Trojan Logon Screens . . . . . . . . . . . . . . . . . . . . . . .
Remote Control . . . . . . . . . . . . . . . . . . . . . . . . . .
Back-Door Server Packages . . . . . . . . . . . . . . . .
Where Back Doors and Trojans Are Planted . . . . . . . . . .
Startup Folders . . . . . . . . . . . . . . . . . . . . . . .
Startup Registry Keys . . . . . . . . . . . . . . . . . . .
Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using a Web Browser Startup Page to Download Code
Scheduled Jobs . . . . . . . . . . . . . . . . . . . . . . .
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
181
182
183
183
183
185
186
186
187
187
188
xiii
/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
xiv
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Hacking Exposed Windows 2000: Network Security Secrets & Solutions
Rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Covering tracks . . . . . . . . . . . . . . . . . . . . . . . .
Erasing the Logs . . . . . . . . . . . . . . . . . . . .
Hiding Files . . . . . . . . . . . . . . . . . . . . . . .
General Countermeasures: A Mini-Forensic Examination
Automated Tools . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
188
190
190
190
194
194
201
201
Part IV
Exploiting Vulnerable Services and Clients
10 Hacking IIS 5 and Web Applications . . . . . . . . . . . . . . . . . . . . .
Hacking IIS 5 . . . . . . . . . . . . . . . . . . . . . .
IIS Hacking Basics . . . . . . . . . . . . . . . .
IIS 5 Buffer Overflows . . . . . . . . . . . . . .
File System Traversal . . . . . . . . . . . . . . .
Writing Files to the Web Server . . . . . . . . .
Escalating Privileges on IIS 5 . . . . . . . . . .
Source Code Revelation Attacks . . . . . . . .
Web Server Security Assessment Tools . . . . . . . .
Stealth HTTP Scanner . . . . . . . . . . . . . .
SSLProxy . . . . . . . . . . . . . . . . . . . . . .
Achilles . . . . . . . . . . . . . . . . . . . . . .
wfetch . . . . . . . . . . . . . . . . . . . . . . .
whisker . . . . . . . . . . . . . . . . . . . . . .
Hacking Web Applications . . . . . . . . . . . . . .
Case Study: Penetration of a Web Application
Summary . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . .
206
206
212
222
229
234
238
249
249
250
251
252
253
255
255
258
261
11 Hacking SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
267
268
272
272
273
273
273
274
274
275
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
205
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Case Study: Penetration of a SQL Server
SQL Server Security Concepts . . . . . .
Network Libraries . . . . . . . . .
Security Modes . . . . . . . . . . .
Logins . . . . . . . . . . . . . . . .
Users . . . . . . . . . . . . . . . . .
Roles . . . . . . . . . . . . . . . . .
Logging . . . . . . . . . . . . . . .
SQL Server 2000 Changes . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Contents
Hacking SQL Server . . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Information Gathering . . . . . . . . . . . . .
SQL Server Hacking Tools and Techniques . . . . . . . .
Known SQL Server Vulnerabilities . . . . . . . . . . . . .
SQL Code Injection Attacks . . . . . . . . . . . . . . . . .
Abusing SQL Extended Stored Procedures to Manipulate
Windows 2000 . . . . . . . . . . . . . . . . . . . . . . .
SQL Server Security Best Practices . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
276
277
279
289
293
.
.
.
.
.
.
.
.
298
302
306
307
12 Hacking Terminal Server . . . . . . . . . . . . . . . . . . . . . . . . . . .
309
310
311
311
311
312
315
319
319
321
322
323
Terminal Server Basics . . . . . . . . . . . . . . . .
Server . . . . . . . . . . . . . . . . . . . . . .
Remote Desktop Protocol (RDP) . . . . . . .
Clients . . . . . . . . . . . . . . . . . . . . . .
Identifying and Enumerating TS . . . . . . . . . .
Attacking TS . . . . . . . . . . . . . . . . . . . . . .
Harden Up! . . . . . . . . . . . . . . . . . . .
Basic Terminal Server Security . . . . . . . .
Advanced Terminal Server Security Features
Summary . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13 Hacking Microsoft Internet Clients . . . . . . . . . . . . . . . . . . . . . .
Attack Categories . . . . . . . . . . . . . . . . . . . .
Implementing Internet Client Attacks . . . . . . . .
Malicious Web Page . . . . . . . . . . . . . . .
Malicious Email . . . . . . . . . . . . . . . . . .
Malicious Newsgroup/List Posting . . . . . .
Attacks . . . . . . . . . . . . . . . . . . . . . . . . . .
Buffer Overflows . . . . . . . . . . . . . . . . .
Executing Commands . . . . . . . . . . . . . .
Writing Local Files . . . . . . . . . . . . . . . .
Payloads: VBS Address Book Worms . . . . .
Reading Local Files . . . . . . . . . . . . . . . .
Invoking Outbound Client Connections . . . .
Putting It All Together: A Complete Client Attack .
General Countermeasures . . . . . . . . . . . . . . .
Why Not Abandon Microsoft Internet Clients?
IE Security Zones . . . . . . . . . . . . . . . . .
Antivirus on the Client and Server . . . . . . .
Gateway-Based Content Filtering . . . . . . . .
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:50 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
325
326
327
327
327
330
330
330
335
338
342
345
348
350
355
356
357
363
364
xv
/ Hacking
Color Hacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
xvi
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Hacking Exposed Windows 2000: Network Security Secrets & Solutions
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . . .
365
366
14 Physical Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
371
372
374
381
382
Offline Attacks Against the SAM
Implications for EFS . . . . . . .
Summary . . . . . . . . . . . . . .
References and Further Reading
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15 Denial of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Current Windows 2000 DoS Attacks . . .
Best Practices for Defending DoS . . . . .
Best Practices . . . . . . . . . . . . .
Windows 2000Specific DoS Advice
Summary . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
385
.
.
.
.
.
.
387
395
396
396
399
399
16 Windows 2000 Security Features and Tools . . . . . . . . . . . . . . . . .
403
404
405
408
408
409
410
411
413
413
413
418
424
426
427
428
429
431
431
433
433
Part V
Playing Defense
Security Templates and Security Configuration and Analysis . .
Security Templates . . . . . . . . . . . . . . . . . . . . . . .
Security Configuration and Analysis . . . . . . . . . . . . .
Group Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Group Policy Defined . . . . . . . . . . . . . . . . . . . . .
Working with Group Policy . . . . . . . . . . . . . . . . . .
How Group Policy Is Applied . . . . . . . . . . . . . . . . .
IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Advantages of IPSec Filters . . . . . . . . . . . . . . . . . .
Known Limitations of IPSec Filtering . . . . . . . . . . . .
Creating an IPSec Policy Step by Step . . . . . . . . . . . .
Using ipsecpol to Manage Filters from the Command Line
IPSec Tools . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Encrypting File System . . . . . . . . . . . . . . . . . . . . . . . .
runas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows File Protection . . . . . . . . . . . . . . . . . . . . . . .
Bypassing WFP . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . . .
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:51 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
/ Hacking
ColorzHacking
profile: Generic
CMYKExposed
printer Windows
profile
Composite Default screen
2000: Network Security Secrets & Solutions / Scambray & McClure / 9262-3 / Front Matter
Contents
17 The Future of Windows 2000 . . . . . . . . . . . . . . . . . . . . . . . . .
The Future of Windows: A Roadmap . . . . . . . . . . . . . . .
.NET Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . .
Common Language Runtime (CLR) . . . . . . . . . . . .
Frameworks Classes . . . . . . . . . . . . . . . . . . . . .
ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Code Name Whistler . . . . . . . . . . . . . . . . . . . . . . . .
Whistler Versions . . . . . . . . . . . . . . . . . . . . . . .
Whistler Security Features . . . . . . . . . . . . . . . . . .
A Note on Raw Sockets and Other Unsubstantiated Claims
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References and Further Reading . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A Windows 2000 Security Checklist . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
451
452
452
453
453
458
460
461
461
462
465
467
468
470
470
471
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
473
Caveat Emptor: Roles and Responsibilities
Preinstallation Considerations . . . . . . . .
Basic Windows 2000 Hardening . . . . . . .
Non-Template Recommendations . .
Security Template Recommendations
IPSec Filters . . . . . . . . . . . . . . .
Group Policy . . . . . . . . . . . . . .
Miscellaneous Configurations . . . . .
IIS 5 Security Considerations . . . . . . . .
SQL Server Security Considerations . . . .
Terminal Server Security Considerations . .
Denial-of-Service Considerations . . . . . .
Internet Client Security . . . . . . . . . . . .
Audit Yourself! . . . . . . . . . . . . . . . .
References and Further Reading . . . . . .
435
436
436
437
438
438
438
438
439
448
449
449
P:\010Comp\Hacking\262-3\fm.vp
Monday, August 13, 2001 11:49:51 AM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xvii