Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%!PS-Adobe-3.0
%%Creator: xpdf/pdftops 3.00
%%LanguageLevel: 2
%%DocumentSuppliedResources: (atend)
%%DocumentMedia: plain 612 792 0 () ()
%%BoundingBox: 0 0 612 792
%%Pages: 75
%%EndComments
%%BeginDefaults
%%PageMedia: plain
%%EndDefaults
%%BeginProlog
%%BeginResource: procset xpdf 3.00 0
/xpdf 75 dict def xpdf begin
% PDF special state
/pdfDictSize 15 def
/pdfSetup {
3 1 roll 2 array astore
/setpagedevice where {
pop 3 dict begin
/PageSize exch def
/ImagingBBox null def
/Policies 1 dict dup begin /PageSize 3 def end def
{ /Duplex true def } if
currentdict end setpagedevice
} {
pop pop
} ifelse
} def
/pdfStartPage {
pdfDictSize dict begin
/pdfFill [0] def
/pdfStroke [0] def
/pdfLastFill false def
/pdfLastStroke false def
/pdfTextMat [1 0 0 1 0 0] def
/pdfFontSize 0 def
/pdfCharSpacing 0 def
/pdfTextRender 0 def
/pdfTextRise 0 def
/pdfWordSpacing 0 def
/pdfHorizScaling 1 def
/pdfTextClipPath [] def
} def
/pdfEndPage { end } def
% separation convention operators
/findcmykcustomcolor where {
pop
}{
/findcmykcustomcolor { 5 array astore } def
} ifelse
/setcustomcolor where {
pop
}{
/setcustomcolor {
exch
[ exch /Separation exch dup 4 get exch /DeviceCMYK exch
0 4 getinterval cvx
[ exch /dup load exch { mul exch dup } /forall load
/pop load dup ] cvx
] setcolorspace setcolor
} def
} ifelse
/customcolorimage where {
pop
}{
/customcolorimage {
gsave
[ exch /Separation exch dup 4 get exch /DeviceCMYK exch
0 4 getinterval
[ exch /dup load exch { mul exch dup } /forall load
/pop load dup ] cvx
] setcolorspace
10 dict begin
/ImageType 1 def
/DataSource exch def
/ImageMatrix exch def
/BitsPerComponent exch def
/Height exch def
/Width exch def
/Decode [1 0] def
currentdict end
image
grestore
} def
} ifelse
% PDF color state
/sCol {
pdfLastStroke not {
pdfStroke aload length
dup 1 eq {
pop setgray
}{
dup 3 eq {
pop setrgbcolor
}{
4 eq {
setcmykcolor
}{
findcmykcustomcolor exch setcustomcolor
} ifelse
} ifelse
} ifelse
/pdfLastStroke true def /pdfLastFill false def
} if
} def
/fCol {
pdfLastFill not {
pdfFill aload length
dup 1 eq {
pop setgray
}{
dup 3 eq {
pop setrgbcolor
}{
4 eq {
setcmykcolor
}{
findcmykcustomcolor exch setcustomcolor
} ifelse
} ifelse
} ifelse
/pdfLastFill true def /pdfLastStroke false def
} if
} def
% build a font
/pdfMakeFont {
4 3 roll findfont
4 2 roll matrix scale makefont
dup length dict begin
{ 1 index /FID ne { def } { pop pop } ifelse } forall
/Encoding exch def
currentdict
end
definefont pop
} def
/pdfMakeFont16 {
exch findfont
dup length dict begin
{ 1 index /FID ne { def } { pop pop } ifelse } forall
/WMode exch def
currentdict
end
definefont pop
} def
/pdfMakeFont16L3 {
1 index /CIDFont resourcestatus {
pop pop 1 index /CIDFont findresource /CIDFontType known
} {
false
} ifelse
{
0 eq { /Identity-H } { /Identity-V } ifelse
exch 1 array astore composefont pop
} {
pdfMakeFont16
} ifelse
} def
% graphics state operators
/q { gsave pdfDictSize dict begin } def
/Q { end grestore } def
/cm { concat } def
/d { setdash } def
/i { setflat } def
/j { setlinejoin } def
/J { setlinecap } def
/M { setmiterlimit } def
/w { setlinewidth } def
% color operators
/g { dup 1 array astore /pdfFill exch def setgray
/pdfLastFill true def /pdfLastStroke false def } def
/G { dup 1 array astore /pdfStroke exch def setgray
/pdfLastStroke true def /pdfLastFill false def } def
/rg { 3 copy 3 array astore /pdfFill exch def setrgbcolor
/pdfLastFill true def /pdfLastStroke false def } def
/RG { 3 copy 3 array astore /pdfStroke exch def setrgbcolor
/pdfLastStroke true def /pdfLastFill false def } def
/k { 4 copy 4 array astore /pdfFill exch def setcmykcolor
/pdfLastFill true def /pdfLastStroke false def } def
/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor
/pdfLastStroke true def /pdfLastFill false def } def
/ck { 6 copy 6 array astore /pdfFill exch def
findcmykcustomcolor exch setcustomcolor
/pdfLastFill true def /pdfLastStroke false def } def
/CK { 6 copy 6 array astore /pdfStroke exch def
findcmykcustomcolor exch setcustomcolor
/pdfLastStroke true def /pdfLastFill false def } def
% path segment operators
/m { moveto } def
/l { lineto } def
/c { curveto } def
/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
neg 0 rlineto closepath } def
/h { closepath } def
% path painting operators
/S { sCol stroke } def
/Sf { fCol stroke } def
/f { fCol fill } def
/f* { fCol eofill } def
% clipping operators
/W { clip newpath } def
/W* { eoclip newpath } def
% text state operators
/Tc { /pdfCharSpacing exch def } def
/Tf { dup /pdfFontSize exch def
dup pdfHorizScaling mul exch matrix scale
pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
exch findfont exch makefont setfont } def
/Tr { /pdfTextRender exch def } def
/Ts { /pdfTextRise exch def } def
/Tw { /pdfWordSpacing exch def } def
/Tz { /pdfHorizScaling exch def } def
% text positioning operators
/Td { pdfTextMat transform moveto } def
/Tm { /pdfTextMat exch def } def
% text string operators
/cshow where {
pop
/cshow2 {
dup {
pop pop
1 string dup 0 3 index put 3 index exec
} exch cshow
pop pop
} def
}{
/cshow2 {
currentfont /FontType get 0 eq {
0 2 2 index length 1 sub {
2 copy get exch 1 add 2 index exch get
2 copy exch 256 mul add
2 string dup 0 6 5 roll put dup 1 5 4 roll put
3 index exec
} for
} {
dup {
1 string dup 0 3 index put 3 index exec
} forall
} ifelse
pop pop
} def
} ifelse
/awcp {
exch {
false charpath
5 index 5 index rmoveto
6 index eq { 7 index 7 index rmoveto } if
} exch cshow2
6 {pop} repeat
} def
/Tj {
fCol
1 index stringwidth pdfTextMat idtransform pop
sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll Tj1
} def
/Tj16 {
fCol
2 index stringwidth pdfTextMat idtransform pop
sub exch div
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll Tj1
} def
/Tj16V {
fCol
2 index stringwidth pdfTextMat idtransform exch pop
sub exch div
0 pdfWordSpacing pdfTextMat dtransform 32
4 3 roll pdfCharSpacing add 0 exch
pdfTextMat dtransform
6 5 roll Tj1
} def
/Tj1 {
0 pdfTextRise pdfTextMat dtransform rmoveto
currentpoint 8 2 roll
pdfTextRender 1 and 0 eq {
6 copy awidthshow
} if
pdfTextRender 3 and dup 1 eq exch 2 eq or {
7 index 7 index moveto
6 copy
currentfont /FontType get 3 eq { fCol } { sCol } ifelse
false awcp currentpoint stroke moveto
} if
pdfTextRender 4 and 0 ne {
8 6 roll moveto
false awcp
/pdfTextClipPath [ pdfTextClipPath aload pop
{/moveto cvx}
{/lineto cvx}
{/curveto cvx}
{/closepath cvx}
pathforall ] def
currentpoint newpath moveto
} {
8 {pop} repeat
} ifelse
0 pdfTextRise neg pdfTextMat dtransform rmoveto
} def
/TJm { pdfFontSize 0.001 mul mul neg 0
pdfTextMat dtransform rmoveto } def
/TJmV { pdfFontSize 0.001 mul mul neg 0 exch
pdfTextMat dtransform rmoveto } def
/Tclip { pdfTextClipPath cvx exec clip newpath
/pdfTextClipPath [] def } def
% Level 2 image operators
/pdfImBuf 100 string def
/pdfIm {
image
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
/pdfImSep {
findcmykcustomcolor exch
dup /Width get /pdfImBuf1 exch string def
dup /Decode get aload pop 1 index sub /pdfImDecodeRange exch def
/pdfImDecodeLow exch def
begin Width Height BitsPerComponent ImageMatrix DataSource end
/pdfImData exch def
{ pdfImData pdfImBuf1 readstring pop
0 1 2 index length 1 sub {
1 index exch 2 copy get
pdfImDecodeRange mul 255 div pdfImDecodeLow add round cvi
255 exch sub put
} for }
6 5 roll customcolorimage
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
/pdfImM {
fCol imagemask
{ currentfile pdfImBuf readline
not { pop exit } if
(%-EOD-) eq { exit } if } loop
} def
end
/__tumble {
180 rotate
-612 -792 translate
} def
%%EndResource
%%EndProlog
%%BeginSetup
xpdf begin
%%BeginResource: font LTWFJF+OurCharSet
%!FontType1-1.0: LTWFJF+OurCharSet
12 dict begin
/FontInfo 10 dict dup begin
/Notice (Copyright (c) 1991 Bigelow & Holmes Inc. and Y&Y, Inc. (508) 371-3286. All Rights Reserved.) readonly def
/FullName (Lucida Sans Typewriter 83) readonly def
/FamilyName (LucidaSansTypewriter83) readonly def
/isFixedPitch false def
/ItalicAngle 0 def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /LTWFJF+OurCharSet def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/FontBBox [-12 -205 618 928] readonly def
/StrokeWidth 0 def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 32 /space put
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /minus put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
currentdict end
currentfile eexec
5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62
BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68
368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79
BD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97
1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B
1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE
7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF5
C2A9054AD59AE4D5522D8745045620C9C40EAB675A6FE53511D83C04968F37DE
389C3A7A551DC79580FF1B382205C5951A9F8E7B6CEF33E027D608C14A394033
1E603A09B3061B66BB71AC1D2A232B5F2BC9481D7D44F334ACCBBF6538A439A3
FE8DA1ABE05931A20F8FC365A0F90C9A22578FEBDD03E4201D2887923DD20ED9
2F8F50AA500DE6414F5521ACCBBA45FBD55A4882C7485B52146BD36775948914
F8D5FB4C38AFAA25CC8946C7A7DBA010B186D6B5B07DA514976B3CC03535B838
7B3B0BE3D2A1813A3B406846433DF6235D79BA455E54E35184F42053C1FB0105
CDB7B017C5BF449CEF69EF7E7B143698D00B249BA50E98D198FCE708667252B4
E45CC9BE25735FF617ABA79311E655756E2F7993ACB8E4F27F76F14A9088DA85
6E17B25267A4D8177DEF6684BEB1F400B6B07492E58311CB44EC0B528F8FECE8
E96A50FC1F544E0F3DDFEC55E4CD9C34AE42CA8EF98BB1901E6D97DFECA023E0
F1D49EC9054CFEFE87ED611814870C75F636FA9F1430AA5F53C397BD13CE9113
7B57917BCBD964A8370F3FBCAF0FBC80BB0527B5E1C9DE292498096D0570A220
444B3E5CCF7F32C09338E4B393D1528267A5CEC43DE04EB0A7D3E802146533F8
5BE541383085700F322990AE9C7400CD2CD7031F05FDFB9D4825ABDB38E904C2
096B183D3D32C10A5C0391DA6516282D95C06E54EFBFA34282AE4D4EE0D87D9E
D0F41D3FCD7CEA0794E2A18A5F8092950BCA3B49A1A88A6A49E54BFC5BD354AD
4B58480C1F9136A0D2B34C96E6FAAC235DA8B5A643E94CE0A3924CD4A9C07F8F
CEEF6DB90ACD50F9438B78C1A7BB01F9A52B1A80F6DB7D5C0E26A3929939FCAF
91A90F63E448D6B2513B8835B3732FB96A449289BBCCB20C65A77EA718C25FC5
AE7C12089733357F89152E2667276AE55358EAA697CF0BA0031AB617710FF229
571046B5EA6B5EB93FDEE581FAB465EEF10F302EE7C5E39DE51A3C8B3FCEF031
9819ABC8FD2E80E6D0073E638992185B3C5301267853F69A9E0D969D229569C4
D59E062DB6A53B5F82FF8ED7584D27CE27EDEEE8C6C31EACC673C18CF53B1D72
419639DC644D9C1CBD370CE96E8D28C9ECA7F37F26989C125CF0B6B806D8B4D6
2E1CA29F891ACDCCEBBFF5E2F8BE1D59AF78E01A10B841624499DC224081C1C2
006938615363E596D014BD38E4729DF9AA2839500FF70D246873CE23A99DD173
6E4AA28598A115331ADB40913F876D05B8F89625A122CD752A60F2180D971AD3
486C49066503E24C50F5F4975C2EC545F051BC46DBF96898A28B2F09B608ECCB
57D2499B735ED1C45DA6BC1778273180D9DCC6E15C7DBF9F53BDFF46569CD7D5
3E66E85372B5A5D8CA62B906BD4CF56F0336441349554A5EF4C43837B83471FD
6CB4FABBADF99FEE2AA79354678722725927BFF26B7797AC9CD034474F889C41
403BCB546A701285EC285C90A7F69ED5FCFC6E1E9928E71999C408089A3D48C7
136BB77E9165624383400B324F50F3F88AD03205515A33586CEA9155C3FF70FA
CC1397107C484B8F9FD71F8E37265B47F8A28D50471A0539FE6B89C354A5ED46
2A0ED3C91DD90FE617D27C70E86A3DC1C05BE7E99D527B681E0141A787139940
FE22F116C428EA79BA326F462007EAF2D2CBFFEEA47D0A04840728FA57516073
FC9E482B25CE59A3951841FCB2994A454DBB17F56A629310E128919D60017178
4DE9E614779A44F400845C4905C13E75EF17E7D5653A62613E7BDC232674349F
7B0D86E1D499F42964E9CCECF15FBB0B557B0BC864CF475BF309B64BDDED98D5
D2B23DE6EAB32C8C3FD3D930ACD6288A80713148FD98BB757A8740B1DC48F757
3B19A56CB146FC5F38F3F89C44C4AAC71EC2F65E6024E15F805EF905F3A45094
289D38BF465D7E90EBB6C64C705D505ACAFF0631135855E9905C54808A9D1E53
B24360028BE452FABBFF72AFE83F9A26B7101C6E9D4DAB8AA495E19AD99490B4
870615F47C4135E29EF2178CED745490FCDB229E04FED8353A09DFA1448E3892
75D7480CD30611AEBBEB051F8F6E5E90B487263DC92F34EF9D1951A40EF2FCCB
3F5DFEBFCE277690B90A82291198B12C535EBE18E2206878829EFF8567B85D89
CA7BEBC9FF25FC6411D78C1A07FBE98104041632129730E371AD0054A4B74E48
CA21E60DB8AD10811A91CE4CC2A33D3750A0838643CBD5CE4E94566AACBA6146
926594ADD73AA1E4A48A3B32B4300B13750E4298EF23E77CF2923F8B95926603
16EDE4B6AA04E53CF708876C051A02B95D076BB4D754F4057C13EF0C9CAE1E02
D969A5CD0C82ABC080F3CB65F672344D201B927676B2C80EC6BDD30BDAEA61B8
6297D34A4BB3FCE96A8762161588AC43116550E8E6CA631B4F4DF540F03CBC41
046C2CB4547ED81370856486665CA480DB67F6B00727DC6AD77BD78F9EED9A35
BCF3E276E8BCF746E6BC38A59DD2171B87256AF5FAD646378F8E7DE26ECEA4CE
7089E042EA0A7557C346AA6F8DD6CA1CB9D581B5AC86EA4F6A3B257E286F22F2
C9CAD0DD32B0FF6798C83AE03B3168F70F7C7C849CC7C28F04F6CE8B6A6D0CF9
23114D99AE626E926A170751F654B7B268A8934C25EC195D43941F241CB36819
277B9CAB40F6EAD122B75DA9DD7918C8E5406AD44A54B3733BD01190CFF3740B
4C66E2D58D4682DD41E8F9580570A302FF450C375D9247DC8C8DBD38E48E04FE
F14D0650A63A5290A806C536E1F47EA00B13C27D8958F3332B9FAEE59875F289
7B224AB3EEA0CF879F56914E64AFD23763C661CCC36FA6B750EE28A1388C2664
AFE3DB6D09D3E21168A72A82DEED295BC44FC24A4EA46A02AA67447F7374DE34
3CA0ABAA0777FBBF2D02FCDF58F4783A1823DA35A54CA3A6069FFD7B9960AD3F
7E201A14A202BC5DEA12A40F12FBD779568CDE23DF90AD3EB281D5D63FDE864A
6DBE38FF0FDE4E222EF669EB29DED49A900DC9678D37DA2BD520D9A7C878D4DE
5877B8A6451CCC50B59D2455137CEBEC65CBAF609A00DE3CADFCF818C56409F4
871107C839043D6319CF2D57B2F94B524C8B9D64C8C4420E0D630471161EAB9F
D74449EBBDFEFCD9DEF0B39F4BF609B852394519F8697B42962BCC1499BF77A8
B02A695893533389BCD4B204FABCA016459C53D08426AE31A23F52497DCA85F8
8E19D62AA5AA45E3756BD0D067C510ABD271ECBD8B2A0466CB4AE70950C9A971
9FD6264399B34D82B9FD7169103BD48886226F267158FCF8E9300A04E4BDE133
06781119AE5C210F3858A00DCF23AF6D0E83FE052774EED1EF733075663A6599
19A31B51A977380648DF55CF9A088A864A55515B28D7DC75730E05CAD07B3A2C
818D43625A27F7284243AB26A90E2F80706DCA1676815313EC98F545D8EB02CC
1D1A710DF5C183EB8D7CEF837986556B470C7C0DCFE193047521CCB067226571
7C4929829A218FC50D522D4239F6B5C8D4A3E8006DE102A4873620AABF1A1FDD
BF94D362FA7B23EA59B8B07828EE49B2E825502960EFBB7F27246F8784797F54
3CDA02F9E8408E12F3F8724D465C73993321E8368D8E3FC8FE823CCA34042D72
159038A933CC6618627CC8755E72EC6B3FE4DF5F36D59E99409C6D4F7399936F
91DC03F065003B6AE676AA39B0D3F9746053E18B16C085F5D74C0FC3B6B00E99
FCCE3590271AA78A76BB36248B7B9B00DE62EE0C6767690228CC5F97CD27107E
D483D52A34182070A54EC20304CBC4763863735EE0C4941277755FC985CF6A9A
D95C8A8DEC8DD9734BC35578B79DF8EB140EEA8C622DEFED33768625FF197B19
1062FE5B7BC0C3E2EDF8F404477E4A0652342370889232DE662578DB1AE2DA0F
B7612DB64253390460682A6EFD5DA4D3316491DDCA92269289EA782FDAC82A76
FFE4181A6BAE23E0E539F31AF2CC0C9CF4DBD569C44598CFB6029B50C1D74151
D98FC5FCF0248778CCDC4F7B59C070E1E7D3FA8D4030178E1F02382C69B0338D
E2296378105DCAEA8AECAF50F8B90F1F2C20B03201D27B7AB1D633DA02D1626C
B6FF684677B042CE5BC5C9668BC1D959B8E666BF00EF10DA7C450FC122DDA86A
BC227BEB160C8F870A9A0BA1CC9ECF7A37E95186F150A3507E0AB6766E1E82BE
7C3E8C7C9C832A89127D7728C8BF89EF8C599F9ED7DAA8223FB2531AD7CC7381
918E6EB3386DDA03501A83D1BE49F381EE5C8BCE02432BBD93E7E145F681923D
814DF79DE4CEA10E025134E81A1A947F1E62EEAF978EF4B9DADC322881A88090
F1EE06A5DB1273F87737B35357651B77EC8D3E488BB949A2AC288FBA3C78C217
FCD52E3BDD13C610022F53617775B14752AE4FA0E5CC39CB66B9539D33C711ED
0F712DF81A28E42AD90C6AE2FAAD9C07ADF0A5CBA487F2D392E294069592F214
7BB688CB4FCEE81D2518BCBD21B04E2F3F9BE8DE6BF0640A667E700E2EC5414C
9F42F26FAC0923BAF78F63E03321E8BEC2332A8BE703C23457B1EA2448F7B48F
CC7BED855283A132869D38A43D74948D1EA165CAFB6C1FE35A426C23436C411B
C9B81EDCADE1F79F2A16963F609B8E5C8D9547FE8BBC20EBCB421D3D7510EF3F
D801AA9C68B389310E6394952C72BCC2252946260CAD4EC880F69D95AB07AC90
C6D0C8F95B72CA274CB690C5334B73A2F3B8B9CD6885E431E36FE16430FEB750
FBB8A3154BE9ACB2F3837E5A69836832F4FF6BC000EFC90167B450916892C728
D3BEE1F49B276C57BB298A646233A669BCB011179693BCD8AF0E09F14474EDEF
A34936392F66C296A8050F79458AA8F10FC95954CA98096604B99859813B488D
DEDACC162AB1330B9513B17F434A11F6E76746C180FF9B0AFDB4097453C6E1D8
2B0290CF6F7B8119CFBD59D6FA3BD32BA2D40E6266FB10520A71B734C502B46D
B96F597BBB18FDE6A61BCF7A9DACF524AC3B8C7770727BDB14850E3E6350A3BE
6A5D849BBEA78FA4C973DA470D984C3D2234AF68171A01D7F1E573FD3C9DEBEB
8A77F12916D9C22CA7026CAF1274A9C280FBE5089DA3EA526F9C68BC986A8B7F
4743E87A10196A1E3B9BC621B614CA32F47A171F8DF9D83A6294E796835A98DF
3C87725116BEB93D30C065EE4DFF5BE02E253F251647F3A6CBD9F8066884FA9D
7372CB758C1EC8B19D9B3E85919453B788D6BA4EB55CC047E00AB8ABA22F9001
4D7076D1B14BF9D9258DA19F8BB89DA70504254FB9D82F5E16F00576319F20FB
98B680758D7435BA34E98EF02F5C8CD16A1062B35A42B2E522D90435072D3BD6
5FC64AFBF541BBBF497328BE21F36B4EEE20EC18F41F3A985C49BBC05AFDA137
06F850F85BC991B658EA5DD6504A43D64664900026F08F5AD0657E81CB4B6394
29F8518C7F3A0CCB787EC827DF97B4EBE133AB28291C3202F7AE1E45DC8EC498
367870A9C9CA93AF3053D334DBFD307AFA2C421D2DBF465605A711568CAD060D
9C92373F4317EAE7B74228CD32BC3FE7289935DAAC9A1C95D67386820B478C2A
E7A76926BF9EF3B372A9F4A5C98F30BF2A46C1A0C393826191BD343F0DFE5734
DC38658406967441AE18C73FF0D2E70CC88255385E71F1FD5EBF85D4CCD4FD4D
DF5D02A2C7FD38CCCD29368B7CDE2AAF50B716AFA07470692E6AA278DED84406
F52643941EAA6ABDE13E948EFF746D506052BCFC45293FC75B3183A188712D37
11F81585E2279E301A9C967533959B0D99819435ADF4394EAF23C8432E8114DD
3DA40F4C2848A9A131403152773371ADCB6ADAE608A0159B3ED1DF37BCA6D1E1
DE7261DE98D26A75FC64B23F61CBBF5984DC45112F3E44D9BADFE9372A8AD035
D966F9D87CB5F831B40D6154C29DFEFCE905AD2F0F525DBA7A471BB8175A6E57
25598FD243FC0282D2D41AFB41FAF75FC48413DB128475A00BB49E23E1A47C70
657F84F3D09D66974B98DC898991A6DB7C7EFD32527F3FA56E9464793D47C5CC
17631250AA37B1B7EBD972D379110778F7033B7E10875AECAF5226BF9C43C330
E66639348E444F7A246D456A678637E6E4EECD1FB25C25A7037C364EB83DCDB3
4A6FCA2E36E71754927C30A0BC968164FFF79F210D8913A4A03A90EE3F03A860
4FB7D7513ACF84D3AD96E011067A9794DC09DCC003223A95CDD49C065A247105
A77118106D8B301D12292C657432A4457D8FEBA4E605FD1D528F2ED51C972831
4CB7A88AF1088B303598ED0BFDF520755E683F2267C50A0770AF901A7C4F830D
AAE9691172D8CADBAB44276AEB5BFE3D60B23807BE33B7318B0F31D9D1ADE720
670BC376989C51255259FE3231B842A200051006831B65AE59CA723A3E958FDF
0B10CBC82E0184DA8FE9D172B76AF9472BEA2794FC1A4D6D256AD61A9951C388
09115F42846C880AE0DA6B0C719BDA2773306957F2C46695104D436C27CC0F5E
FDDBCF9AF99A8E94D7057E10410BCA5C8871CCF35F6640BC5EFF590C3528CA0A
2B754DC5219EB8A95B33FB15698157565102FDA281A7C32C65FF594892ED419B
0EE181A5535E3CAD898C9911A1CEF440A38301D930E534B6BE1142F214456CA0
6B63D5F854E389C5CAB3C52713004004606CEB24ECD9630330F7DDED6E3CFD05
E058904B16B3F198EB4A727DE5C24FF496D081A4F149244A9E9A563FA271EA72
CE24AA04328A612060B88F2ADDCB21B1843B5B8CA7F1521B1D503787A9742FD0
22C0A7EDD92849E87CD6732D753232392CB0CDE9DB9CC77641F8215EC7C7FB10
202045EFAB63262F1F21C459A294628886C0D5A677ED6EDF183E92BA7A311456
3F543B8E3032442269A1474114371F25E7411B3CBB9B1397B2CC7C193C0E0264
E21FCFA9BC47115422E28D0033F20F9B898CEEE6A1507EB81E54427E2024C67D
24DE610ED650D41FD7618201FA16DFB017890E2E0C5AF82216FC043D3DB21F29
44748E3BEC5E5049AAB86DFB85AB9F891C2C564D7227C4F9A05B4C8F5CE44BB5
5524183F6CC7BAD349D94C3C40A22F074F731DCC986D475772005074BFCE608D
BDB002FBD772517D4B43A534081DB7B95AF23D84CF395376D8F9BD6A7B0AD7CC
F9876E644B9CE1D0ACA576A749FBC65A6F56E625D9891096C319C0C355E8518D
C708F6F9F17514C8C5543E8CABEF72B3E5AB01BC676632D2AF90A593346735F1
446C775B2972E52632DA18869784D610890589D9E899CD9BC98641AFF1506352
845E206C10FDBE99462B273231986D5E9C74F9B747F5378B7E294B14AC65D35E
79CF4F095347A0EBEAE012D2BFB30BD241141B9F1FD70776E4CA993E7ACFCA53
3B2CEC09393E72082FCEF5AEC847861C42B498C6F68B14620C4E3FE298C67234
B9D05A74945CA5C549CC1169DAB2614D0F0FE3209B1D063FBD53DFB97EC0E40F
F398B9A3363B6DE30E47726496A6B2DE2FBD8341C3F7FF2FC20C3589ADAD353B
5CAB95C83A62AD97341C39276F3FB20756EC51464EE631F9DDC50D6AC8BE2482
5E5341EC76366A610E36E9276893FBF05E7E0FFDDBBA50A13FE23F97700C7CA8
A8DC0EC182378399ED1ACC44868D4E3A5FF4E7E9D9FB84AA72E868097CFAACB6
9218465A00019D5D10A41AD270539F2757516DF0DE79ECE5AA4C90603C4C40E3
D1B57ACB536CD43148EB7389D7D2139BFC287A5D63A89F8D2BA1BA2EB7F6A7A1
A42472571FEA3C655856A6207D6F48EDF7BD0EDCC0A6E118E43DCA4870431C54
02B9F9D6DC7E7D82526BB50A15BE15619366AD054AD489EF0E8C812DB50134F7
F36D356D7B8AF6BA016D0A683FA662CE2809037915A9200893D352CEE4A8A539
F4DF1320F72585E59943F6A3EE2CBC2E020C17F5391E1045B190CAEF1C0297DE
45F87701542146D953F99FE0E6A23FC4FB081C8A2A3A89F2028F51DFEE278D98
2FFAB44AA4122E8175074BCA6928252D4147F8A7115161D512DB3410F1762CAF
16211C8FFD8C082F292D7944D508F2BA2FA7AFE471B35BA4B933B6E6E2DA4107
81A9737C42DE3D56E55C002D83190D893743A3A2200D5B43F7E10F8B4735EEAA
C5F911660F1C172CC1E5C4036098C0AFE71958B01FC261C70DC2C4BAE0A25254
DEF0801BEF762156E673B69D359962F482E79EF5EC599D1B800E6111576DD289
3D88CBA03D849DA14E865EDD612E34561ED626EE51BE0B7EBD995FEC2DCD1E1D
1D13FD1EF101E572B732D69961D91E0130CBCB1D0F79AE3E5AB68E11E0B208CF
2B11BEA9FAD42C67E63E35BE7E410D1725B1DD3532CC7F4730EDF325AB77C0F7
93F39B4D89CA618FC6964C5EB58128DF2BF997000BF3A43341FADBD1FA6A577F
B86018A21665D509AE01E02B73B36FA0BF1A434809512D70ED1231A49FDF5C17
8A859F63E1C726069232DD0C4E6F9AD64BD7199AD19F14B360D906F40093B84B
9B52A33F36D146E2B5264E53A41745DA30BD649E8CDF2B0871887996BD22D025
8A4F8CAA6EE7D67E4E36D900DF0B8F31B5A1B10893CCA13A23734A2F6FD654D6
0E1C9B0A73D59EE66DDE4E8F0C9FE805BF4AEC6F54F25AE66113BCBAE85FA720
1322EA828073DC235AF729562F888A349D6C5D40CAFB28C495D8BDAAA8E93C4A
4DF630094A7BCEC8C63F1BAA8F28F1BB4BFE28C30C5CABDC6DF2A31B246D3840
C3642A683A551D3E605F0635773FF926F37B3017F75CF70E1C02B335DF9BB2B6
25A634897D331FC1A3C23050EC25AC7B68B77BDF239DD2263DCA7893DA7EE147
2842626C81FA4E487BE92876563211F4BF13B27BF3040021E09C9EBE30B1E342
86E128E15C2AB17A47C10164862A4286B0B5164F43D9055E18E003A96BC41F52
8E8EA4B37C0475510AFC513707D649527468E0D6843196AB2CD65B59967B956C
95B2F98CBBEF2B900C65F581A1A4C273C1626131653C2CB2E78152ECCD8F2BBE
C6F6B99EE6958C92B1C4B555AFFE911BBEAC9A2AF10BC8EBF41C2FA6929F414C
CF5088B60DC6F3CDFECDC1169687333E8E42D2E756995DE5EFDC7F1F21B63627
14AF8CD7B1EA7C84256332F6D2231BE5D6FAE80379CB0132A4BEB397A4D27375
71D9B6AC8D466E408CED3A3C8D73E078BFE44EFE531433E41250752711EE6B99
B6C5A8FA6CFAA3F858806A58D06681E8191C02A1555BA9A45FCECD26B6E7A4EA
FD38B456CE576063E87567B9AB3BD3114220E4B4D24B3CCE8BFF26A01A658D96
50A133E9AE039A6D39EAB0993ACBE8F71C60DEE0A25CADB02B1550C4E5F5406E
238DDA885BCAFA01739AC40559A1FEC332706D9D1DBFE7B7AF9F2F6FB86F9706
610809706FD7C80F35BBE8252E5E4A978683505F15E2AFF2F5A69F33581133A8
5F261E686A495B74F7F6BEBE0ED509F0B0FEB387E632195B203ADCAA21FD6405
B4634EFAAFCC5C5E859E82B7E52FD3B1AAE99898EE6622E40217BF98695468C2
0E4703C8862208692C12C884AA8D65CD47FE385782F49E12FCCFFECB31125895
A2AD4D9D20B7287ACB9180BD15B1657F95E80C324E68647E3D7B95F7F07FC917
30210543C3851FC1E264A1CD1ED95D21AA479B12BCC9B74E9938FE33B4FD1A5C
04AE0031D88D0DE723F56B21237F0D20BB40E0BEBF7D62152B541118B7EB9E0D
EFB1DB53B3E4AA0680EEF6BC021748D23969EF9E711D95159A4271222F0433EF
720E615CC7BF47E7E401512C39F84D873629D6964CC045B4FC422A56B0CEB142
9CB1A2CF6EBE92B74B6A1D1CC7BCBBA9E50EB527F0186B1846E12384CCECE5EC
335C4F2E7941E4793C63CF6DFBF5AB7C1286CED77D135BA8D1CD4C6D2BCEE104
1570DFAA5ED9AB7778DBD2DE652B8038B5C2AEF8BE93CA80CA0ECD571E0BA9D7
CC8614D176B178FB8C51F170017C70BCB01F28805B4053D0DC933A5A1420C27C
88897D7D4A7029685F6C0F9F255CDBFB6CED05607A0A3A8116D61D96A31BEF71
5397FC32D6A9B198B085D796FB330791085AAA33AF6D1349F5C93243E37797EE
C3458787AA6EAC5753110237D8CDF153EA4ECF5FBBFFF4098A5A9E64E65E244C
04F61511784F0E0524437209C2873143D9C87EEE272A852FF3AD554BC094C156
4E6FD0F69124B074E1977DAF7AB3AA7914B64578C99A925818F6D54E5BDD53E2
2A6A786087EF436909DAC86CB8F4CD595996FA03DDF2833BF1485C9611DC0ACD
7366EAEB31F718FD569F1EA3D772945D347771B175D3B488D5F12587A2B91211
0D5F37EE9FDBBCF9DFA3F7E104F53D80886AFEDF48F0449192EBEF6036278AC8
9002DE452516EA28C9F3286D42DAA0F78A1B4BFAC7EC35D7E45A99AC66111052
1AA6A6CA1FA68284997CF7A7674E43B40261177AA982657A7448C1F1DB05DBB8
CFAE02FFD09F584D1B0B29E1F3FB7DC908021E0B854EBADAD8A833605FFFD1C9
5D1A6C2E8CD3EAE89BEE21B3E9622398B610223ED6733D5C30DD37362324F2FB
C764FCFDBE7B7EFB247A618016BD74BFD1C39420F6D33FFA6154898B62AB0444
8B049117E5452A5B84CE45F48389B7AA696F3B194C04EEFA9CD79E1ACA160699
9E5F7DE8027195E2559D0FA4A59A70CE1266B69F422FB62EC102482620FA09C6
1B85E545596D226545AC83C89B941A3FA95B0704EA34C4E9FFF8917F1A611E8E
0C9F8A4A8A3F3E9DFB2D3C34EFBAD3C6218B8624EDD9F77E7FA30A8A080EF8A3
F360D8671D0692EB118A3E83C7140CC161E5E0011CC15073E9B30894354973AA
BAC1DFF1C0889CFF50CF070A806CCA9B4A869E5E15EB345E5686764B142F6B2A
F198443420B930CFD9441720C9BC3A17CF6FCB40ABE90EB198DB21259D402F03
DE7C84D3BD01E9800348EF8F0B5DCC76D45E7E0869846CAEAF5535EFC15D5D32
9BDF9869FA715C14639A3DCA72FD34024C89A2363A7C7F18210CA9BC5A75CDE3
4C2E98737682AE6D20C37220947D5707071FB50C5077439B38795D64BD1530EA
A3DA77C2D4C39AE44697950B5587D026167856859E679AB44776932D84E00225
34822AD977566481DEB69B6D71FF394C744492443B0BC7E4201807684082B69F
5D0973DAEF0167AFDCFA7C019EFA4FDEACB014B263EA6B5C8A14FE2ABE63516E
A02EFE7B3BC3F7FFAC46725125D0C0DABEF697E9B2FC9017EA707242073D8C50
46EAF3A89F2806D16B330AB73D64CB38399BBA1480B6DC038270A34B8B16FB6C
F998C2901B8BE47FC0B3B30B352A436A3322948C97BB47741F4BBB3D9ED51A33
E7005E22474EEF660E9AC247987008748F0B20A2F6EC487910B8F10AE20FDC51
BE59F58EB10033CD563F1B24665EA7DD179708813390224241849C02DBE44F57
EE17A22728C030B95AB5D8BDE385CE9E878E94FF2886C88FFF45E41F0FD783D7
2A4BD1C6CE2353737DD9272C52DA8AA91D152BA16996484B31E0EF9741D43FF8
9D4AE17847BF44A2A2EF04252FF904CF2F1FC0AE43BF8DFCB3D9035C2F11D359
8AB2B94E53FAF40580542230648069C84E9475BC330FDA951A9DE4FB350EEEC9
039BAC59746AE6E527C19DA1D5E81F1CB5D775FAE7326131D34A5D7BCAD1DD6E
744241BB355593A364F8FFC50244911C2FF6932987CF49AC282F0618800DF652
A396847B441024CE3B634BCB505B9CBAFC44204A980D4B9EB516F4BD166BB91D
FA4AF61DDB4D94A4A23A727F687A801FCCC9CC81D93C64534259B2D74163441C
70EFFCA0952EA5E9D977E965FBD2B931C78FD9F1727B82EE6EC5C3E5B1FA954C
CE1624EBAFF6AF08DC4026D98CAEC116A4CA76CE7679B7683B323887A201CBE8
3E08BDAE20E9813D26F7B50CFFFB608794B3E557212102106CF8862EFB170D0E
9E90D5EF3E1EF3DCBF21BE27F70E527FDBA3C30DDDBC8BB319E62BCEA406F423
B4FF9683313CBC0430EC7CA8887AE2924BDA5E048DB731ED00E4E955B19DCA3E
57158330AE6D18A4047C22D0DCD86F1E5A6C02EBD19D39F81EB46BAF322C04D4
6101A50AB3C0A6FE0575F36EA3703C96A5E273AADF2E263922065F0D296939F0
B347FDF7DAE050A8C8C41D38DF5F951E7FF2D69BC5D17F6803774D7D795B8531
46BC1B2541ACF1435C00C033FF98658B2C0A3B0F45EF89B6B7C2B9220CCEEADA
73FD745AFF710B1BC5BA38906BBAC57DEDE11CE03F206269A0CF77FDF4252FEF
878EE755C56ED29CF4775948F0555714E9BDECD09CA84B4D7990DEB7B85D2C04
87287A6DC7F6AEAB9F6BF2CC06A1210B8B8405DF2CD29E6B36B767C950C0B8B3
236983F8CAC70ECB93C3E252A28EF16FC8430CA65DF2F42FB5698AC0922C9851
1AC47678E99535512247ABE19DF4729F9BCF62F9B155DE7B9201A095E5A456CB
539F469F2B7D22DE5CFD57613652B7A38CDA3ADAC7990F5EE0EDB7345F894628
13B1FAA7D73201D193F2F6B0E45E02D9391408C589C54DF99BD18E6BABD1946C
1DBDB2889E5085519A651EC6AAB38518F71767A6792036F8E1F5E7789A8C3BC3
294634D8682498A9E329A8DF7374E0A073439440FE90B551082AAC24C2F03423
52B89E03BBFA681942D97269117D4BEED5F97CD402569A152927C8E1F42DAA04
0126AA3E1B323368C16ED5F16EF7DDAC6B7CE493ACFA102128D1FE73AC927B44
C4D5DE39D8919E1909A69B603EB73CF6B3EFD8503FCF03CF5550825D4D39FCA3
19065E067C1663A930E50196D34307682B75F07733325F280C30FFF4E895F266
CF553133A0D31CE4F7E88E4AE2D3F55FA72802D8DD04D7F02495B3D43048626C
2C7020FBEBAB25364ADB70EE16C22C0C9CBCF1281872B5E23AE3688B17E5E0A7
F38E12C07B9955BC6019786C9CF65D9A4E8EE5C273092DEAF97A92E5AC04D250
1FA1799A112808F4E041C2E6B3DB25495F690C5E6D9EC0D529E23C28A6317F01
B283DE471016E9587C6105C862984C7653A3B445C9CAD1C5D8F6E4068ED15C59
4E16BD6572345A4B94AC1234A0CB46B543D15ECB9B3B11909E32BAEB53E13834
96FCFC4482455BF5B847EFD142C2716FF6E6A5DCC9A568BFA9D0ECB2FF815B85
175EE958D523C7F8C95D79DAB5FF776BDE102AB7DF6C81EFD51B9CF9C47DEA99
42079BF3EA4C1F8C6D4950EB0F16FA591C5463A006FB6B9C07B699B39FEB8ACD
06861753F64845934A846336B5F70C92E43D3625AD4B6E2D5E106B127C8E9155
65130F0481F3B522F96386B06F90E4848BDEC9B034E2FD70467555F719E2DAFF
7541D1678F9D33CBA501AE4AA5B37071E304FB5B4E5E8E4F242AB00C52CFF06E
77F323F785D42F5727EB0EB4267CF4B43C45CC3F5F898DF6E47DF1E3BCDFA32C
6354FF10AF2AFA95ACC0C87FD5649A4C311FFB7CF17AEDF22186A6927A08CCA4
DF4A339412E323B07EC6A29532AF771E3CE5C39BD173B82207DF1F87E55B969E
FFFD59A78695DFA711BC20DF71CA13955452854F8378808AD167BECB7470D5BD
217212DCB886B5295FAD290139AA6559380056949AFE444F7C5DBE44E7804EB6
A075697F7A69EA42147ACF1AB84084DE5EA5FFB355A927B77DC646970275A9FF
05FB84C9B2D2F52AE30FE5B7E35832991F159A419528B2CA39BBCD8F215D54A8
B8C5CD777CB7FAAF086A5C06D4FB8B157E72E42CA9C0E109BD2270CF91BA8678
1C9BEF2E8E0F54EBE69E9DBD5D7C20BD9FCC22E782FC9D9EDC420DA1914A158A
AB60234B944D4B534F57E11ABB32F481305CF2FCC696BD46F519C22C25A89DE6
BC97294D816FC09276506BE4D69A89F99DC2DCE7CA9315FFD818BBCCFE39BBB6
DB2E31FEA52729EA00495AE1EBFB32A737EB9127EF513F28869DA91E5779F90D
C8342F9243D645DC86F28DDA99791BD54FE9CA2479446F2F25EB82A40F006F6C
DBB7A98B407C16D196EE9B65351BE795693D86D234B38E2566CBF0263D9C13BD
87EFD910F953AB4CDA2CA351B74B30FBE79AFB86BBEC212E0DB9661F24A8E3D0
81CDCF04D8323B4FEF99FEF72FEDF9EF6C2F8022585CF6CEBED03C0BBF7A58D4
0B4D72B27E15EC0A20C960A20D0D63606517BBE8D7D72D31A30F583F64B97226
B0D0EB7EC9BD7E99FA18CDE8B37663AB5558924AFC8AE0A429E435B79A6CFAD7
A51970C7DD68505BA2FF91F7B1EE86FAACDBD10A50B7F928ED31743FAF44624D
D20FCA7D7FEB5A56D8DFD78D89AD89FA8D5D98F216CCB974A845545CD2276878
0B5F184BDEF71ABAB21B71360448F6BA9B4C6F8A3B609DEA24675A11CCC78EDA
E3D094540F18F1DADF7E311F774CD06893C0486C57E56462E1C7777C5D09F747
6EDFD5EA99D1B7DF40D116A270DDAE87057CBF78E1F09144A20CB2F2DD5EA497
8C2F38B0C013AC73FC48FD1EB6FA4E0FAD127EB8E9421F36F0DF10E71FB2E475
FFE72569A67E84929378F4146E2EB7893667990CE96BB85B995F1181888D3325
2B9287DB524600D8592F71F0F3B2BB792A041D0E9CA93D63871E2C6B2A4E1DB6
B6E0E528C594A75BD3F51A41572E753F364EEDC58E6317DDABD4F1F53416D466
EFBCB92A7E82CB34DC62643AB6928A7C0A6E54DC5730CC8DC6C70B53FA3DCEC2
CB11D40721D7479D8C28C385D957BE8E3FFF199519FB11B22B54C2BB7AD40D9C
214E22C93EEE97512014DE402097DF8D93579E91B995A24C89B2DB3FCDF2A2A2
0799F032623EB41A74DAF015ADC00957421DFF0C8FE0A63435C22E8FA8A4E10A
F536E242654948423E11AC20D90A1438F0AE8210996863C01D45507A0CFE3446
65DE4EF3EE70260C581F499F89FCC79F0590AB0DF78FA693DBC7F577B061A058
02E3D3893ED18F8CEA394D943AE99F4A551129D46CC80805E00B6AA7F138C08A
1B111224F228C18966F0786716AE6F23C706AF10A364526105E290C4BB222220
5D62147BD31BD973CE00B21FC890E405F6E05271FF249AB82E86715F5570D78F
AE61E3098253D4703AA38201A0DC339FE12AF47B2886D6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndResource
/F10_0 /LTWFJF+OurCharSet 1 1
[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven
/eight/nine/colon/semicolon/less/equal/greater/question
/at/A/B/C/D/E/F/G
/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W
/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
/quoteleft/a/b/c/d/e/f/g
/h/i/j/k/l/m/n/o
/p/q/r/s/t/u/v/w
/x/y/z/braceleft/bar/braceright/asciitilde/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
/currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
/.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
/quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
/.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
/emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
/Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
/.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
/lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
pdfMakeFont
612 792 false pdfSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageOrientation: Landscape
pdfStartPage
%%EndPageSetup
[] 0 d
1 i
0 j
0 J
10 M
1 w
0 g
0 G
q
q
[0.1 0 0 0.1 0 0] cm
q
Q
q
180 3960 5760 3460 re
W
q
[10 0 0 10 0 0] cm
[1 0 0 1 0 0] Tm
0 0 Td
[0 -7.0183 7.25185 0 564.72 738.865] Tm
0 0 Td
/F10_0 1 Tf
(Sep 8 11:37 2006 README Page 1) 19.866 Tj
0 -3.92728 Td
(xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix) 42.14 Tj
0 -5.23637 Td
(Version 6 \(v6\). xv6 loosely follows the structure and style of v6,) 40.334 Tj
0 -6.54546 Td
(but is implemented for a modern x86-based multiprocessor using ANSI C.) 42.14 Tj
0 -9.16364 Td
(ACKNOWLEDGEMENTS) 9.632 Tj
0 -11.7818 Td
(xv6 is inspired by John Lions' Commentary on UNIX 6th Edition \(Peer) 40.334 Tj
0 -13.0909 Td
(to Peer Communications; ISBN: 1-57398-013-7; 1st edition \(June 14,) 39.732 Tj
0 -14.4 Td
(2000\)\). See also http://pdos.csail.mit.edu/6.828/2006/v6.html, which) 40.936 Tj
0 -15.7091 Td
(provides pointers to on-line resources for v6.) 27.692 Tj
0 -18.3273 Td
(xv6 borrows code from the following sources:) 26.488 Tj
2.40798 -19.6364 Td
(JOS \(asm.h, elf.h, mmu.h, bootasm.S, ide.c, console.c, and others\)) 39.732 Tj
2.40798 -20.9455 Td
(Plan 9 \(bootother.S, mp.h, mp.c, ioapic.h, lapic.c\)) 30.702 Tj
2.40798 -22.2546 Td
(FreeBSD \(ioapic.c\)) 10.836 Tj
2.40798 -23.5636 Td
(NetBSD \(console.c\)) 10.836 Tj
0 -26.1818 Td
(The following people made contributions:) 24.08 Tj
2.40798 -27.4909 Td
(Russ Cox \(context switching, locking\)) 22.274 Tj
2.40798 -28.8 Td
(Cliff Frey \(MP\)) 9.03 Tj
2.40798 -30.1091 Td
(Xiao Yu \(MP\)) 7.224 Tj
0 -32.7273 Td
(The code in the files that constitute xv6 are ) 27.692 Tj
0 -34.0364 Td
(Copyright 2006 Frans Kaashoek, Robert Morris, and Russ Cox.) 35.518 Tj
0 -36.6545 Td
(ERROR REPORTS) 7.826 Tj
0 -39.2727 Td
(If you spot errors or have suggestions for improvement, please send) 40.334 Tj
0 -40.5818 Td
(email to Frans Kaashoek and Robert Morris) 24.682 Tj
0 -41.8909 Td
(\({kaashoek,rtm}@csail.mit.edu\). This version is the very first one,) 40.936 Tj
0 -43.2 Td
(so don't be surprised if there are errors or the code is unclear.) 39.13 Tj
0 -45.8182 Td
(BUIDLING AND RUNNING XV6) 14.448 Tj
0 -48.4364 Td
(To build xv6 on an x86 ELF machine \(like Linux or FreeBSD\), run "make".) 42.742 Tj
0 -49.7454 Td
(On non-x86 or non-ELF machines \(like OS X, even on x86\), you will) 39.13 Tj
0 -51.0545 Td
(need to install a cross-compiler gcc suite capable of producing x86 ELF) 42.742 Tj
0 -52.3636 Td
(binaries. See http://pdos.csail.mit.edu/6.828/2006/tools.html.) 37.926 Tj
0 -53.6727 Td
(Then run "make TOOLPREFIX=i386-jos-elf-".) 24.682 Tj
0 -56.2909 Td
(To run xv6, you can use Bochs or QEMU, both PC simulators. Bochs makes) 42.742 Tj
0 -57.6 Td
(debugging easier, but QEMU is much faster. ) 25.886 Tj
0 -58.9091 Td
(To run in Bochs, run "make bochs" and then type "c" at the bochs prompt.) 43.344 Tj
0 -60.2182 Td
(To run in QEMU, run "make qemu". Both log the xv6 screen output to ) 40.936 Tj
0 -61.5272 Td
(standard output.) 9.632 Tj
0 -64.1454 Td
(To create a typeset version of the code, run "make xv6.pdf".) 36.12 Tj
0 -65.4545 Td
(This requires the "mpage" text formatting utility.) 30.1 Tj
0 -66.7636 Td
(See http://www.mesa.nl/pub/mpage/.) 20.468 Tj
Q
Q
q
180 500 5760 3460 re
W
q
[10 0 0 10 0 0] cm
[1 0 0 1 0 0] Tm
0 0 Td
[0 -7.0183 7.25185 0 564.72 392.865] Tm
0 0 Td
/F10_0 1 Tf
(Sep 8 11:37 2006 table of contents Page 1) 26.488 Tj
0 -3.92728 Td
(The numbers to the left of the file names in the table are sheet numbers.) 43.946 Tj
0 -5.23637 Td
(The source code has been printed in a double column format with fifty) 41.538 Tj
0 -6.54546 Td
(lines per column, giving one hundred lines per sheet \(or page\).) 37.926 Tj
0 -7.85455 Td
(Thus there is a convenient relationship between line numbers and sheet numbers.) 47.558 Tj
0 -13.0909 Td
(# basic headers) 9.03 Tj
14.4479 -13.0909 Td
(# processes) 6.622 Tj
28.8958 -13.0909 Td
(35 fs.h) 4.214 Tj
-0.0001 -14.4 Td
(01 types.h) 6.02 Tj
14.4478 -14.4 Td
(19 proc.h) 5.418 Tj
28.8957 -14.4 Td
(36 fsvar.h) 6.02 Tj
-0.0002 -15.7091 Td
(01 param.h) 6.02 Tj
14.4477 -15.7091 Td
(20 proc.c) 5.418 Tj
28.8956 -15.7091 Td
(37 ide.c) 4.816 Tj
-0.0003 -17.0182 Td
(02 defs.h) 5.418 Tj
14.4476 -17.0182 Td
(25 setjmp.S) 6.622 Tj
28.8955 -17.0182 Td
(39 bio.c) 4.816 Tj
-0.0004 -18.3273 Td
(03 x86.h) 4.816 Tj