ofs | hex dump | ascii |
---|
0000 | 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 01 00 00 00 01 00 08 06 00 00 00 5c 72 a8 | .PNG........IHDR.............\r. |
0020 | 66 00 00 00 06 62 4b 47 44 00 ff 00 ff 00 ff a0 bd a7 93 00 00 00 09 70 48 59 73 00 00 0e c3 00 | f....bKGD..............pHYs..... |
0040 | 00 0e c3 01 c7 6f a8 64 00 00 00 07 74 49 4d 45 07 e0 06 09 13 14 28 2d a3 69 8e 00 00 20 00 49 | .....o.d....tIME......(-.i.....I |
0060 | 44 41 54 78 da ec bd 7b b0 6c d9 59 1f f6 fb be b5 f6 a3 bb cf eb 9e fb 9a d1 8c 34 44 08 3d 91 | DATx...{.l.Y...............4D.=. |
0080 | 46 96 90 c5 c3 63 85 87 31 89 1d 84 41 11 02 83 a1 1c 97 5d 06 59 8e 0b 8a 40 e2 14 45 62 92 0a | F....c..1...A......].Y...@..Eb.. |
00a0 | 58 3c 24 21 9b c4 65 1b 17 18 11 c0 21 29 57 2a 60 23 92 d8 45 40 32 46 02 24 d0 48 08 8d 9e 33 | X<$!..e.....!)W*`#..E@2F.$.H...3 |
00c0 | f7 79 ce e9 d3 dd 7b ef b5 d6 f7 e5 8f b5 d6 ee dd 7d cf c8 23 cd cc 95 e6 de fd bb d5 75 cf bd | .y....{..........}..#........u.. |
00e0 | b7 ef 39 dd bd f7 fa 1e bf ef f7 7d 1f 30 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 | ..9........}.0b...#F..1b...#F..1 |
0100 | 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 | b...#F..1b...#F..1b...#F..1b...# |
0120 | 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 | F..1b...#F..1b...#F..1b...#F..1b |
0140 | c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 | ...#F..1b...#F..1b...#F..1b...#F |
0160 | 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 | ..1b...#F..1b...#F..1b...#F..1b. |
0180 | 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c | ..#F..1b...#F..1b...#F..1b...#F. |
01a0 | 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 | .1b...#F..1b...#F..1b...#F..1b.. |
01c0 | 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 | .#F..1b...#F..1b...#F..1b...#F.. |
01e0 | 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 23 46 8c 18 31 62 c4 88 11 | 1b...#F..1b...#F..1b...#F..1b... |
0200 | 23 46 8c 18 31 62 c4 88 11 23 46 3c 79 d0 dd f2 46 5f f2 e2 17 4e 00 bc 0d 44 7f 95 c8 62 67 67 | #F..1b...#F<y...F_...N...D...bgg |
0220 | 86 e9 74 8a c9 64 82 67 3f fb d9 d8 df df 07 11 a1 eb 3a 84 10 20 22 f0 de 43 44 60 ad 45 55 55 | ..t..d.g?.........:..."..CD`.EUU |
0240 | 00 80 f9 7c 8e 8f 7f fc e3 38 3d 3d c5 c9 c9 09 6e de bc 89 dd dd 5d 4c a7 93 5f 25 a2 6f 7e d7 | ...|.....8==....n.....]L.._%.o~. |
0260 | bb de 7d 3c de 56 b7 07 2f 7f f9 83 fb 0a fd 85 66 d5 fe f9 c5 62 81 c3 c3 43 ec ed ed 61 6f 6f | ..}<.V../.......f....b...C...aoo |
0280 | 0f 0f 3c f0 00 f6 f6 f6 20 22 58 2e 97 70 ce 41 55 a1 aa 20 22 d4 75 8d dd dd 5d 10 11 ae 5d bb | ..<......"X..p.AU...".u...]...]. |
02a0 | 86 8f 7c e4 23 58 2c 16 e9 71 8a a2 b0 a8 eb fa e1 b2 28 bf f4 ff fb ad df be 79 a7 7e 86 f6 6e | ..|.#X,..q........(.......y.~..n |
02c0 | b9 59 76 66 33 a8 2a 44 14 ad f3 50 55 00 80 aa c2 7b 8f 10 02 88 a8 ff 7b 22 82 b5 b6 ff 3a 3f | .Yvf3.*D...PU....{......{"....:? |
02e0 | 57 44 20 22 bd 91 c8 5f 7b ef c1 44 e3 a9 bc 9d de 8b 19 80 f4 6e 8c 88 fa 6b 95 af 57 be 9e db | WD."..._{..D.........n...k..W... |
0300 | 7f de fe fb e1 ff cd cf 13 09 08 c1 dd d1 17 f5 ae 31 00 93 c9 04 0a 14 c1 07 74 7e 01 22 02 33 | .................1........t~.".3 |
0320 | a3 28 0a 54 55 85 b2 2c 37 0e 38 00 30 73 ff 7b 36 0e c3 e7 e4 af bd f7 f0 de 83 30 1a 80 cf 59 | .(.TU..,7.8.0s.{6..........0...Y |
0340 | 10 bb f5 d1 6f 1f fe 6d 9c 65 00 f2 f5 26 62 ec ed ed a1 2c ab 23 d5 10 46 03 70 27 dc 26 44 44 | ....o..m.e...&b....,.#..F.p'.&DD |
0360 | 4c f7 fb 74 3d f3 05 37 c6 c0 5a 8b a2 28 a0 aa bd 67 1f de 40 c6 18 d4 75 0d 00 70 ce c1 5a db | L..t=..7..Z..(...g..@...u..p..Z. |
0380 | df 2c 00 52 14 20 e3 59 bc cd 30 c6 40 44 2a 42 fc 95 23 b1 1c d1 65 03 9d 8d f8 f0 9a e5 74 2f | .,.R...Y..0.@D*B..#...e.......t/ |
03a0 | 5f e7 fc ef cc 1c ff 6c 2c 88 e9 b2 ef 82 19 0d c0 1d 00 1f 02 ab d7 83 e0 fd 46 b8 38 0c 19 69 | _......l,.................F.8..i |
03c0 | 2b 84 cf 9e 61 3b 74 cc c6 23 3f 9f a0 20 e0 22 8d 39 c0 6d 86 1a 91 70 af 48 80 2a 6e 89 d0 c2 | +...a;t..#?....".9.m...p.H.*n... |
03e0 | c0 d8 6f 5f db e1 75 dd be be f9 11 82 b4 22 9f 26 8c 18 0d c0 33 c9 5b b0 74 ae 5b 0e c9 a0 7c | ..o_..u.......".&....3.[.t.[...| |
0400 | a3 0c c3 fe b3 c2 7c 22 da f8 f7 7c 03 19 63 60 8c 01 31 43 45 56 aa ea c6 43 79 fb d0 36 8d a8 | ......|"...|..c`..1CEV...Cy..6.. |
0420 | 06 0d 41 a0 2a 6b 83 9c 0c f4 d0 e3 6f 5f bb 1c 15 88 48 6f 0c 36 a2 3f 51 94 93 f2 a8 aa 2a 37 | ..A.*k......o_....Ho.6.?Q.....*7 |
0440 | 1a 80 3b 00 41 c4 06 1f ee f5 de 6f 78 8b ed 90 7f f8 88 cf 8d 06 c0 7b df 1b 82 61 f4 d0 3f 98 | ..;.A......ox..........{...a..?. |
0460 | 5e a2 8a 12 c0 62 3c 9a b7 2b 00 40 2d 82 67 0d 3d 78 4e eb 86 e1 fc d0 a8 6f 73 3b 39 92 cb 11 | ^....b<..+.@-.g.=xN......os;9... |
0480 | 43 4e 1d 00 05 80 cb 77 7a 48 77 d7 18 00 d7 75 d2 76 ee d8 79 0f 66 7b 4b b8 b7 ed e1 87 51 00 | CN.....wzHw....u.v..y.f{K.....Q. |
04a0 | 51 cc 2f f3 0d b5 1d 4a 1a 36 60 a6 93 10 30 12 01 b7 95 d8 51 01 d0 0d a3 fb a1 51 ce 1e 7e 78 | Q./....J.6`...0.....Q......Q..~x |
04c0 | ad b7 23 81 6c 00 86 55 9d fe 7b 01 2b 10 dd d1 24 20 df 35 11 40 f0 a2 12 ae c7 1b 01 b7 18 00 | ..#.l..U..{.+...$..5.@.......... |
04e0 | 7d 02 a9 de f0 79 c3 9c d2 58 0b c3 76 4e 3c 52 00 b7 13 02 15 66 0e cc 66 93 93 d9 8a ce 86 dc | }....y...X..vN<R.....f..f....... |
0500 | cd 59 a9 c0 76 8a d0 ff 0e 5c bb c3 29 80 bb c7 00 78 1f 94 88 ae 58 6b 41 83 ba f1 b6 b7 df f6 | .Y..v....\..)....x....XkA....... |
0520 | 0e 39 cf 3f 8b 1f c8 cf 0f 21 c0 07 ff d8 58 06 bc cd 06 20 68 00 70 94 73 f8 27 aa 03 18 5e e3 | .9.?.....!....X.....h.p.s.'...^. |
0540 | c7 7b a4 e7 3f 76 a7 7f 86 77 4d 0a d0 76 0e 00 9a 98 fb d9 8d 90 f1 f1 08 a3 7c d8 cf 62 93 37 | .{..?v...wM..v............|..b.7 |
0560 | 22 06 55 18 6b 1c e9 dd 6d 00 5e fb da d7 d2 3d f7 dc 83 d9 6c c6 c6 18 0d 21 a0 eb 3a 7d db db | ".U.k...m.^....=....l....!..:}.. |
0580 | de f6 b4 b8 51 02 49 10 f9 a4 a8 bc e0 f1 3c f9 a7 13 02 9d 25 0a 8a f7 43 34 28 4c 74 c7 ab 3a | ....Q.I.......<.....%...C4(Lt..: |
05a0 | ef 9a 08 c0 39 07 e7 5c 22 79 3e bd 47 78 3c 0f d2 7f 68 03 a2 89 88 60 ac 45 55 56 28 ea ea ae | ....9..\"y>.Gx<...h....`.EUV(... |
05c0 | 36 00 f3 f9 1c 57 af 5e 35 a7 a7 a7 c6 39 67 99 19 65 59 e2 bb bf fb bb 9f 16 cb 68 8c 81 35 b6 | 6....W.^5....9g..eY........h..5. |
05e0 | 23 d0 46 59 6f c8 f2 0f 0d fb b0 d6 7f 56 f8 bf 36 f8 83 8a c2 18 01 dc 19 28 8b 22 9b f8 33 0f | #.FYo........V..6........(."..3. |
0600 | f9 b0 1c 94 8d 81 31 a6 ff fd d3 a5 00 29 5f bc eb 13 80 77 be f3 9d fa d5 5f fd d5 c2 cc ca cc | ......1......)_....w....._...... |
0620 | 5a d7 b5 fe c4 4f fc c4 d3 96 44 1b 63 a0 d0 81 82 ef 89 4b 81 3f 5d 0a 90 bf 9f 48 b8 e3 7d e4 | Z....O....D.c......K.?]....H..}. |
0640 | 5d d9 0b d0 f9 b0 71 53 e4 f2 cf d8 0b f0 e4 f1 eb bf fe eb b7 ad 12 f2 54 f5 02 0c ff 6f 8c ee | ].....qS................T....o.. |
0660 | 18 22 21 95 7e c7 08 e0 8e 40 ea 05 80 77 1e 2e ac 36 c9 a4 41 b9 6f bb a6 3c f4 0c 63 2f c0 e7 | ."!.~....@...w...6..A.o..<..c/.. |
0680 | 23 9e 7c 2f c0 59 d1 80 4f 8a 51 e6 d1 00 dc 19 b7 09 11 40 84 cc d3 6d df 00 67 91 43 f9 d0 9f | #.|/.Y..O.Q........@...m..g.C... |
06a0 | 65 08 b2 e1 58 47 11 a3 04 e0 76 c3 18 03 55 85 61 b3 61 7c 87 e5 c0 ed 90 7f fb da de 4a 00 46 | e...XG....v...U.a.a|.........J.F |
06c0 | ad 47 db b6 31 2a 84 8e 06 e0 4e 80 a8 b2 8a 54 12 04 51 3b 7e 36 f1 37 64 fd 87 aa bf dc 00 d4 | .G..1*....N....T..Q;~6.7d....... |
06e0 | cb 7f b7 8c 01 11 95 80 9a f1 58 de 3e a8 6a 01 a0 8a c6 1d b7 1c e4 6d c3 9d 8d 46 fe 3a 5f e7 | ..........X.>.j........m...F.:_. |
0700 | c7 6b 07 56 95 89 31 86 47 03 70 07 a0 ac aa 0a 84 1d 10 61 b9 6a fa 2e c0 aa aa 30 9b cd b0 b7 | .k.V..1.G.p........a.j.....0.... |
0720 | b7 07 55 45 d3 34 1b c3 23 00 c0 5a 8b b2 2c e3 f7 29 cb 0d a9 29 00 a8 08 24 f8 82 68 54 02 de | ..UE.4..#..Z..,..)...)...$..hT.. |
0740 | 4e f8 b6 3b a7 a4 af f0 de 01 8a 9e 8b e9 ba ae 7f 64 6c 97 79 b3 fc 37 a7 71 f9 7e 88 46 83 71 | N..;.............dl.y..7.q.~.F.q |
0760 | 70 ee 10 b3 c9 e4 4f 81 30 c5 1d 2c ef be 7b 74 00 cd d2 a9 e2 c4 b9 27 df 0d 38 7c 6e bc 61 00 | p.....O.0..,..{t.......'..8|n.a. |
0780 | 22 2c 00 d6 f1 58 de ce bc 4e 02 80 13 55 dd db ee 06 7c 22 ea ce c7 eb 06 14 11 88 2a 04 38 25 | ",...X...N...U....|"........*.8% |
07a0 | bd b3 8d fa 5d 63 00 96 cb 26 44 c9 b7 dc 22 f2 79 bc 6e c0 75 63 c8 66 b8 98 0d 40 af 05 60 06 | ....]c...&D...".y.n.uc.f...@..`. |
07c0 | 81 81 51 0a fc 19 e3 7b bf f7 7b a9 eb 3a bc e5 2d 6f f9 8c 8d a7 0b 01 94 ae cd b0 1b 70 58 ef | ..Q....{..{..:..-o...........pX. |
07e0 | 3f 8b e7 19 3e 6f 68 e4 87 73 04 20 c9 30 dc e1 9f ff dd 13 01 b4 ad 46 2a 00 00 f1 c6 21 1f 76 | ?...>oh..s...0.........F*....!.v |
0800 | 04 0e 7f 1f a6 02 f9 b0 e7 72 e1 46 d9 88 19 6c 19 77 bb 12 f0 2c dc 7f df 7d 54 94 15 f6 f6 76 | .........r.F...l.w...,...}T....v |
0820 | 31 9b cd b8 ae 6b 9a cd 66 74 f1 e2 c5 d9 e1 e1 61 5d 55 d5 b2 28 8a e6 7b be e7 7b dc 9b df fc | 1....k..ft......a]U..(..{..{.... |
0840 | e6 cf e8 bc 69 00 04 02 91 cd e1 2d c3 c7 76 e5 66 98 0e 64 3e 80 99 fb c3 9f 3b 40 11 67 3c dc | ....i......-..v.f..d>.....;@.g<. |
0860 | f1 b8 6b 0c 40 d3 b6 fd c5 b7 b6 ba 25 04 cc 84 df e3 85 89 db 5f 0f 9f 6b 8b 12 93 7a 02 1d 75 | ..k.@.......%........_..k...z..u |
0880 | 00 9b 87 ff de 0b 24 e2 f1 27 7f f2 89 7c b0 87 9d 75 47 6f 7c e3 1b 5f 62 8c f9 32 63 cc 07 ca | ......$..'...|...uGo|.._b..2c... |
08a0 | b2 fc f8 f7 7d df f7 2d 7f e4 47 7e c4 3f e1 9b b7 b0 29 3a 53 38 e7 6e 69 06 da ee 06 dc 4e e7 | ....}..-..G~.?....):S8.ni.....N. |
08c0 | b6 89 bf ed 8e d0 bb 01 77 8d 14 78 5a d7 98 d6 35 aa b2 04 f3 a6 58 e4 d6 5e f0 b5 10 a8 28 8a | ........w..xZ...5.....X..^....(. |
08e0 | 5e 10 b4 fd dc 8d c8 21 26 a1 e3 a9 1f e0 e3 9f ba a6 9f fc d4 63 8f fb a1 bc ed 6d 6f 7b df 72 | ^......!&............c.....mo{.r |
0900 | b9 fc 13 ef fd 73 99 79 af 28 8a e2 fb bf ff fb 9f f0 3d 69 ad 85 b1 06 6c 3e 33 25 e0 a7 6b 06 | .....s.y.(........=i....l>3%..k. |
0920 | ca 95 9e 58 da f5 7d ea 37 1a 80 67 38 0e 0e 0e b0 bf bf 8f 9d d9 ce 46 6e 98 73 bf fc 18 4e 01 | ...X..}.7..g8..........Fn.s...N. |
0940 | ca 03 43 63 07 21 6d 18 80 fc dc 10 02 9c 73 91 75 6e bb f1 d4 7f 86 78 eb 5b df fa 9e f9 7c fe | ..Cc.!m.......s.un.....x.[....|. |
0960 | 3b 21 84 23 66 76 d6 da 27 6e 45 13 fb 1a bf 3e db a3 3f 9e 01 18 f6 fd 6f f3 06 c6 30 bc 77 68 | ;!.#fv..'nE....>..?.....o...0.wh |
0980 | 9a 06 6d bb 29 1a fb d1 ff e9 4d f4 d6 9f fc 2f ef 98 50 ef ae 49 01 98 39 86 e8 8f 13 e6 7d 3a | ..m.).....M..../..P..I..9.....}: |
09a0 | 21 d0 b0 ee 7f 96 10 28 aa 01 c3 78 9a 3f 4b 7c ea 53 9f ba e2 bd 97 8b 17 2f f6 d1 d6 13 41 f6 | !......(...x.?K|.S......./....A. |
09c0 | d4 4c fc 94 0b 81 9a a6 81 f7 91 03 fa d1 bf fd 35 74 f5 fa a2 bc 31 77 f7 7d e4 bd ef 7f 75 55 | .L..............5t....1w.}....uU |
09e0 | cf 5e f4 bd 7f ed 2f fd f7 7f ff 1f fd 6f 6e 34 00 cf 10 b8 e0 01 8d 52 e0 78 61 ab de 30 0c 3d | .^..../......on4.......R.xa..0.= |
0a00 | 47 f6 ee 43 c3 01 a0 d7 01 e4 94 20 ff 9f cc 1d 18 6b 01 1d 59 c0 cf 06 bf f2 2b bf f2 59 59 4f | G..C.............k..Y.....+..YYO |
0a20 | 8a 88 d7 68 4b 08 94 eb fa db 23 dc 86 9d 80 f9 3a 8b c8 46 d5 20 93 8a 22 82 17 dc 37 db 63 e6 | ...hK.....#.....:..F...."...7.c. |
0a40 | 17 ef cc aa af 3a 59 ba af 5e 2e 4e ff 94 8a ee 84 e0 fe 19 80 0f 8d 06 e0 19 43 02 3a b5 4c e2 | .....:Y..^.N..............C.:.L. |
0a60 | bd 83 73 61 e3 f0 0f e7 c7 79 ef 7b f6 3f 7b 99 48 1c 46 91 48 59 96 b7 b6 99 1a 03 5b 14 02 e2 | ..sa.....y.{.?{.H.F.HY......[... |
0a80 | 31 0c b8 ad 30 3e 6b af b6 23 80 cc df e4 59 8e c3 a8 61 48 10 e6 34 6e 68 1c 44 04 4c 84 83 69 | 1...0>k..#....Y...aH..4nh.D.L..i |
0aa0 | 79 f1 25 cf d9 79 b3 88 bc cc 20 dc 8f b0 2c 8f af 9e 52 33 db 43 59 d6 3f 06 e0 eb 47 03 f0 39 | y.%..y........,...R3.CY.?...G..9 |
0ac0 | c4 df 7d d3 b7 53 08 ae b8 79 fd 1a ae 5c 79 14 8f 5d bd 06 e7 1c 8a d2 a0 aa 6a a8 32 ea ba c6 | ..}..S...y...\y..]........j.2... |
0ae0 | 74 5a ea f5 05 d1 ca a9 a8 12 40 67 13 41 c3 5e f2 ed bc 71 78 83 6c 13 4d 10 01 42 50 63 18 ff | tZ........@g.A.^...qx.l.M..BPc.. |
0b00 | c9 ab 5f 50 74 02 52 25 90 61 88 38 38 bf 02 85 80 bd 83 7d ec ef 1f 80 00 f8 10 e0 5c 80 48 40 | .._Pt.R%.a.88......}........\.H@ |
0b20 | d3 39 04 b5 98 4c 2a 14 85 45 61 00 03 c5 ac 2e 2d 13 19 ef 3d 9a ae 85 82 c1 d6 c6 da b4 52 2c | .9...L*..Ea.....-...=.........R, |
0b40 | 3f 92 89 1c 44 db c0 4b 40 55 4d 50 d6 15 0c 11 98 0d 2c 1b 18 0b a8 78 30 01 64 2c 14 0a 17 04 | ?...D..K@UMP......,....x0.d,.... |
0b60 | 5e 34 66 44 89 c0 54 42 0a a7 05 41 81 10 04 de f9 a4 a8 8b f9 b6 17 e0 e4 f8 14 3e 08 a6 93 0a | ^4fD..TB...A...............>.... |
0b80 | fb 3b 25 24 34 6c d4 e3 fc fe 5e 38 38 d8 0f c2 8c a3 e3 16 ab d5 8a 82 5b da 6e b9 98 36 9d 9b | .;%$4l....^88...........[.n..6.. |
0ba0 | ae ba 30 5d 79 88 52 35 df df db 5d ee ef 4c fc 74 62 25 be 0f 46 e7 1c 56 ab 15 56 cd 12 21 78 | ..0]y.R5...]..L.tb%..F..V..V..!x |
0bc0 | 10 1b d8 a2 04 94 d0 75 82 ae 73 08 1a 50 18 8b c2 b0 7c aa 09 1c 42 d0 a1 94 77 18 fe 9f 75 0d | .......u..s..P....|...B...w...u. |
0be0 | cf ba b6 43 e4 11 60 c6 5a 1c ee d8 67 fb 76 f9 c0 d2 0b ba 66 09 74 0b 74 ab 53 00 06 93 72 fa | ...C..`.Z...g.v.....f.t.t.S...r. |
0c00 | 9f bd e1 6b 5e 7e df c3 d7 57 47 82 8a cf 1f 9e 87 b5 c5 f2 57 7f f5 d7 c2 68 00 6e 17 48 ef 03 | ...k^~...WG.........W....h.n.H.. |
0c20 | f4 07 88 d0 8a 0e 2a b7 4a 00 14 44 0a 25 25 11 0a fb 93 80 ae f3 5f e1 7d 80 65 03 66 73 4b b8 | ......*.J..D.%%......._.}.e.fsK. |
0c40 | a8 aa 28 d2 dc 80 61 87 e0 b6 a0 64 bb 1b 70 3e 9f 43 43 fb 92 cb 07 d5 df eb 94 3b 22 b2 00 94 | ..(...a....d..p>.CC........;"... |
0c60 | 48 a1 50 90 0e 5a 8a 49 41 c2 69 80 80 a6 47 7c bd d1 8f a5 99 85 cc aa c0 3e a0 5f 18 2b de 58 | H.P..Z.IA.i...G|.........>._.+.X |
0c80 | 3f 57 35 fe 86 9e ff ea bf 8a 3f 4f d7 25 49 ca 93 0a 14 1a e5 4a d0 34 40 63 bb 6a 41 1a 7f 3e | ?W5.......?O.%I......J.4@c.jA..> |
0ca0 | 11 c5 79 9b fd 3f e7 ef 41 80 0e c9 b3 f8 89 1b 63 99 94 d4 14 36 10 a1 63 90 b0 21 b0 b5 56 69 | ..y..?..A.......c....6..c..!..Vi |
0cc0 | 52 97 c4 17 8a 89 3c 7b 12 f4 20 08 9a a2 ac 1e 99 d4 d5 15 66 f2 14 ed 4f 4e 9e 36 a4 37 f1 33 | R.....<{............f...ON.6.7.3 |
0ce0 | a3 f4 5e 06 75 79 22 f2 02 37 09 c7 f5 8d a5 5e 5a b5 be 9f f3 b0 3d e5 77 38 bb 61 68 e4 33 b7 | ..^.uy"..7.....^Z.....=.w8.ah.3. |
0d00 | b3 ad 13 c8 ef df 39 07 17 98 4f 16 01 50 8f 20 8c ce ec 62 76 50 23 08 61 d1 b6 e8 54 ff 6d c1 | ......9...O..P.....bvP#.a...T.m. |
0d20 | f4 a1 36 28 11 d1 04 c0 77 02 f8 e0 68 00 6e 13 7c bb ba e4 bd ff ae ae 5d 6a f0 2d 54 3c 54 42 | ..6(....w...h.n.|.......]j.-T<TB |
0d40 | 74 c8 9e a0 60 98 8e d1 11 a0 b0 10 09 24 41 95 4d 41 c3 52 60 2e fd e4 1c 7f 4d ec f9 5b bc c9 | t...`........$A.MA.R`.....M..[.. |
0d60 | 50 66 9a 6f 9a d3 66 a9 06 e5 03 dd 54 ff 16 85 78 b8 a3 de 88 01 78 68 08 50 08 c4 3b f8 ae 05 | Pf.o..f.....T...x.....xh.P..;... |
0d80 | 29 21 04 41 08 1e 22 0a f1 01 22 04 c7 04 52 86 32 a0 4c 70 28 20 4c 14 24 c0 bb 0e 02 02 85 00 | )!.A.."..."...R.2.Lp(.L.$....... |
0da0 | 68 34 15 44 8c 40 06 12 3c 42 70 f1 a6 f7 0c 97 c7 5a 31 43 8d 89 2d 4a 1a 40 4c 08 c1 43 a1 f0 | h4.D.@..<Bp......Z1C..-J.@L..C.. |
0dc0 | 21 46 01 22 18 8c c1 66 18 ce 64 28 10 24 ce 4a 50 09 50 c4 e1 18 1a 14 10 0f 88 42 82 87 0f 0c | !F."...f..d(.$.JP.P........B.... |
0de0 | 03 01 51 7c 7f 5d d7 40 c9 c2 b5 2b 78 1f a0 21 80 40 28 aa 0a 13 66 88 68 cd 84 17 30 f9 17 70 | ..Q|.].@...+x..!.@(...f.h...0..p |
0e00 | b2 67 21 5d 2f ef 3d 54 24 bd 3f 85 78 97 86 72 10 ba 36 a0 eb 1c 44 15 ea 3d 14 04 df 05 74 8d | .g!]/.=T$.?.x..r..6...D..=....t. |
0e20 | 43 d7 29 8a b2 ba 65 5b d3 d0 50 0f 99 ff 21 7f 73 cb 80 97 64 1c 83 eb b0 6c 08 c7 6d 8d 82 2d | C.)...e[..P...!.s...d....l..m..- |
0e40 | 5c 50 34 0e 08 86 10 10 d0 b9 06 ad 97 2f 68 9b ee 0b 9a e0 d1 34 0d ac b5 bb 63 0a 70 1b 71 7a | \P4........../h......4....c.p.qz |
0e60 | f4 18 82 f7 38 bd 79 95 9a d3 13 a8 6f 01 0d 10 e7 d1 85 2e 5e e8 d0 40 ba 02 02 83 e0 6a 00 25 | ....8.y.....o.......^..@.....j.% |
0e80 | 11 ad 9b 3c cf 12 f6 6c ff dd b0 04 78 66 da 00 90 ef 1a ac 8e 3b f2 26 1e 25 49 5e bf b4 8c b2 | ...<...l....xf.......;.&.%I^.... |
0ea0 | 34 30 86 11 da 15 56 27 a1 f7 de 59 bf 1e 5c 0a c7 1d c1 1b 82 61 c0 10 43 2a 03 6b 19 2a 8a d6 | 40....V'...Y..\......a..C*.k.*.. |
0ec0 | 0b 82 a4 c3 29 03 b2 8b 39 7a c9 a4 45 08 ae 85 63 86 b5 31 ac b6 96 50 58 06 53 7c 4d 40 7c 9e | ....)...9z..E...c..1...PX.S|M@|. |
0ee0 | f7 0a e7 d3 e1 a0 75 1c c1 84 5e 27 a1 4a 10 c4 f4 80 01 14 86 51 55 06 fb 45 89 20 31 0a b1 36 | ......u...^'.J.......QU..E..1..6 |
0f00 | c0 1a 86 e5 02 50 07 df 29 98 08 d3 02 28 e0 01 1b 0d 55 e7 3d bc 17 18 b6 98 58 c6 ac 36 28 0b | .....P..)....(....U.=.....X..6(. |
0f20 | 83 10 80 d6 79 b4 0e a8 ac c5 4e 65 d0 d5 05 96 4d 83 a6 6d d0 3a 07 90 01 10 e0 5c 83 76 d5 24 | ....y.....Ne....M..m.:.....\.v.$ |
0f40 | 83 44 f0 42 f0 ae 00 b4 b8 a5 02 70 d6 e4 a6 b3 d2 80 61 c4 10 23 80 35 9f 20 ce 23 b4 2b b0 01 | .D.B.......p......a..#.5...#.+.. |
0f60 | 9a a6 c3 e9 a2 83 97 90 0c ae 47 e3 04 d7 af ad b0 f4 25 98 4d ef 3c 46 03 70 9b 50 c8 29 2c 29 | ..........G.......%.M.<F.p.P.),) |
0f80 | ee d9 2f b0 53 4e 71 bc 30 08 41 c1 0c 18 66 10 03 44 06 20 46 17 18 7e 61 d0 34 e9 06 19 68 fd | ../.SNq.0.A...f..D..F..~a.4...h. |
0fa0 | 87 37 4d d7 75 68 db 76 43 eb 9f 09 a3 7c 53 0d 49 c1 dc 8a 3a 29 19 17 f6 2d ea 92 20 02 f8 20 | .7M.uh.vC....|S.I...:)...-...... |
0fc0 | 20 02 ea b2 c4 74 5a a3 30 06 65 55 0c 48 44 02 a7 28 dc 0d 0f 63 fa 05 02 0c a8 37 16 75 d6 a6 | .....tZ.0.eU.HD..(...c.....7.u.. |
0fe0 | eb da 40 31 11 0a 6b 63 2f c2 20 a2 67 62 58 93 65 ca d1 08 e5 24 40 a1 90 4c 5b 24 83 12 34 3e | ..@1..kc/...gbX.e....$@..L[$..4> |
1000 | 08 80 65 02 1b 8e d3 8d 28 1e 05 22 a0 b2 06 3b a5 45 69 0c f2 f8 73 91 68 3c 88 08 5c 10 4a 6b | ..e.....(.."...;.Ei...s.h<..\.Jk |
1020 | c0 86 fa ac 41 45 63 a7 a4 02 ce 05 2c db e8 c1 27 85 c5 a4 36 30 cc f0 5e d0 39 42 e7 23 1f a1 | ....AEc.....,...'...60..^.9B.#.. |
1040 | 04 a8 1a 78 6f b1 6c 4b 1c cd 57 38 5a b4 90 10 50 97 0c f1 06 05 13 88 14 2e 30 56 4a 68 dd ad | ...xo.lK..W8Z...P.........0VJh.. |
1060 | 65 dd 61 0a 70 56 dd 7f 58 e1 19 f2 01 22 79 c2 10 81 19 28 0c a1 b2 04 5b 1b d4 a6 80 88 81 04 | e.a.pV..X...."y....(....[....... |
1080 | 83 10 0c 96 9d c7 f1 bc 41 50 41 c9 01 d6 d8 30 1a 80 db 88 dd a9 01 43 51 f2 14 3b 2b 83 d2 1a | ........APA....0.......CQ..;+... |
10a0 | 04 11 18 43 28 ac 49 37 30 23 80 b0 ea 80 b9 27 70 47 08 c0 46 04 30 5c ff 95 cb 80 1b ab bf b6 | ...C(.I70#.....'pG..F.0\........ |
10c0 | f6 c8 0d b5 e6 00 81 89 50 57 06 e7 f6 6a cc 6a 8a 87 da 05 80 08 d3 aa c2 6c 36 41 61 2d ea aa | ........PW...j.j.........l6Aa-.. |
10e0 | 44 55 55 30 86 61 0c c1 32 a5 29 45 0a ef 63 07 5a 27 02 2f 02 95 58 92 8c 87 54 53 06 1c bf ce | DUU0.a..2.)E..c.Z'./..X...TS.... |
1100 | f7 a8 61 46 51 58 b0 e1 3e 3f 26 10 0c 11 8c e1 64 08 09 36 19 08 20 b6 b6 c5 b3 d2 27 dd f0 02 | ..aFQX..>?&.....d..6........'... |
1120 | 78 11 10 53 f4 e6 c6 80 39 1a 1f a6 68 a8 4a 10 0c 21 1d 7e ea a3 0e 32 04 06 81 2d c3 58 06 91 | x..S....9...h.J..!.~...2...-.X.. |
1140 | a6 a8 21 95 d7 90 22 14 b2 d8 d7 b2 7f ed 9a 0c 4e 59 59 cc 28 53 22 14 43 10 05 bc 0b e8 9c c7 | ..!...".........NYY.(S".C....... |
1160 | e5 73 33 1c 9d 2e 71 f3 78 81 e3 f9 12 57 7d 0b 1f 80 9d 69 09 27 8c 9b 9d 42 9d 9e b9 d9 e9 f1 | .s3...q.x....W}....i.'...B...... |
1180 | c4 40 c3 66 a0 6d 43 90 a3 08 ce 24 aa b5 28 0a a0 2e 08 d3 ca 80 44 a1 10 b8 e0 50 b7 01 57 8f | .@.f.mC....$..(.......D....P..W. |
11a0 | 5a 74 02 4c 4b 83 89 2c 5f 0d e0 bd a3 01 b8 4d 38 3c 77 2e e6 fc ed 12 8b 65 03 1f 24 79 5e 93 | Zt.LK..,_......M8<w......e..$y^. |
11c0 | 44 62 c9 0b 12 23 08 10 15 a3 89 4c da d2 9b 0d 0d c1 90 f8 db 16 8e 6c de 28 dc ff 1c 22 a4 d0 | Db...#.....L...........l.(...".. |
11e0 | 9d 20 a4 f1 00 12 60 2d a3 30 0c cb f1 60 15 c6 c0 18 82 61 ea 43 6d b2 31 6c 56 55 b0 30 5c ba | ......`-.0...`.....a.Cm.1lVU.0\. |
1200 | 69 3b 0f 50 90 01 57 17 23 00 c6 7a 64 59 f6 f2 f9 f0 53 fa 7b 6b f2 01 e6 fe f5 21 1d e2 35 51 | i;.P..W.#..zdY....S.{k.....!..5Q |
1220 | 9a 0e 62 0e fb 09 b0 c6 c0 da 8d 95 67 28 18 a8 4c 3c e0 cc 04 ef 14 12 04 d0 68 64 62 17 a4 22 | ..b.........g(..L<........hdb.." |
1240 | b8 b8 76 8d 38 be 77 c3 06 45 65 c1 26 ae 4f ed 59 77 51 84 10 8d 04 1b 82 29 b8 17 f4 89 08 20 | ..v.8.w..Ee.&.O.YwQ......)...... |
1260 | 80 31 e9 f5 58 c6 6c 52 e0 f2 b9 1d cc 17 0d 1e 3b 98 e2 ca 8d 13 b4 ad 87 80 e2 67 a1 b7 6e 74 | .1..X.lR........;..........g..nt |
1280 | da 4e d5 ce ea 13 18 6e 7a 5a a7 06 eb cf 25 7e de 91 a1 0c aa 30 60 14 25 41 42 07 91 48 a8 1a | .N.....nzZ....%~.....0`.%AB..H.. |
12a0 | 22 54 26 7e 04 56 dc 0f ff a5 57 3e 77 f5 4d 6f 7a d5 cf 7e db 77 fc 82 8e 06 e0 69 c6 6c 3a 83 | "T&~.V....W>w.Moz..~.w.....i.l:. |
12c0 | 04 8f 45 d7 60 be 74 f8 e4 d5 05 5c 10 ec 4c 2c 0e f6 6a 94 d6 60 67 6a 51 95 05 88 81 c2 04 80 | ..E.`.t....\..L,..j..`gjQ....... |
12e0 | 24 31 d7 eb 10 3f 0f 91 00 d0 0f 09 19 ee 0e 1c b2 c7 1b 13 68 39 0a 80 48 63 5b aa 73 02 67 e2 | $1...?..............h9..Hc[.s.g. |
1300 | 1c 39 43 79 6c 75 ea 16 64 06 23 76 0c aa 10 24 85 c8 eb 89 43 f1 fb 16 29 57 17 11 ac 9c 87 f3 | .9Cylu..d.#v...$....C...)W...... |
1320 | 71 90 69 10 81 86 c8 91 2b e5 34 21 b5 b1 c6 60 03 26 8f 3d 53 40 00 90 32 44 81 4e 14 04 82 65 | q.i.....+.4!...`.&.=S@..2D.N...e |
1340 | a0 b0 bc 61 f0 b2 01 b0 cc 40 8a 18 18 83 f7 d8 13 8e 29 25 41 4a 29 0a 86 20 4d e2 51 81 84 98 | ...a.....@........)%AJ)...M.Q... |
1360 | 56 e4 b9 fa 44 04 32 29 12 31 dc 4b 76 55 d3 c1 f7 12 ab 19 86 c1 36 45 16 aa 60 45 24 1a c1 10 | V...D.2).1.KvU........6E..`E$... |
1380 | 65 88 10 54 14 55 c1 28 0b 82 6a 24 03 8f 74 01 e9 90 22 8d d8 97 e1 bc 47 48 12 ed e1 b5 2a 8a | e..T.U.(..j$..t...".....GH....*. |
13a0 | 62 23 f7 67 e6 5e d0 a5 aa b0 d6 f6 0f e6 bc 08 36 20 78 82 f3 92 3e 03 81 65 81 38 07 66 ed 3f | b#.g.^..........6.x...>..e.8.f.? |
13c0 | 87 7b 0f 6a cc 8a 00 ed e6 b0 c4 17 aa ba 7e cb ff f5 8f 3f c0 00 7e 66 34 00 4f 33 3a e7 a0 e2 | .{.j..........~....?..~f4.O3:... |
13e0 | 21 00 3a 27 38 3e ed d0 ba 98 d7 97 85 85 d4 84 99 c4 50 d9 10 81 fb 35 6f 84 61 1b 44 0e fd 73 | !.:'8>............P....5o.a.D..s |
1400 | 6e 9f d3 81 ed de 80 5b 06 88 a4 30 3c ba 41 85 0b d1 08 14 e9 c6 5f 13 4a 6b cd 3a 29 80 9c eb | n......[...0<.A......._.Jk.:)... |
1420 | a6 fc da 58 06 a5 88 20 4f 16 0e 2a 91 f5 a7 00 09 8a ce 01 c2 d1 18 0c 85 2f aa c9 bb eb 80 d8 | ...X....O..*............./...... |
1440 | 24 40 53 9c a0 e8 d5 cf 29 ca 88 de 4a 40 7d cd 3b 56 41 d2 2b cd 87 b7 8f 72 52 71 32 e9 02 8c | $@S.....)...J@}.;VA.+....rRq2... |
1460 | 32 8c 25 10 1b 40 42 cc f3 01 14 d6 f4 51 04 38 c5 22 4c b1 12 92 42 6a 4a 5e 9d 54 51 94 06 2a | 2.%..@B......Q.8."L...BjJ^.TQ..* |
1480 | a9 0c 9a 52 21 82 c2 10 43 55 e0 3d a1 28 19 12 14 c1 07 b8 d6 c3 a8 41 55 95 a8 eb 02 55 57 41 | ...R!...CU.=.(.........AU....UWA |
14a0 | d4 81 28 ee 79 10 55 48 08 08 03 e2 6f c8 01 14 45 71 e6 66 e7 61 ab 37 a7 d7 aa 58 1b 5d e7 05 | ..(.y.UH....o...Eq.f.a.7...X.].. |
14c0 | 25 13 98 03 c4 75 f0 a4 30 88 69 61 61 18 97 0f a7 d8 99 78 1c dd 68 e1 3c e0 ba ee c0 18 f3 63 | %....u..0.iaa......x..h.<......c |
14e0 | df f2 d0 8b 57 3f ff 6f de ff bf 8e 06 e0 69 c4 c9 e9 31 08 40 41 8a a2 b4 28 0b 83 7c 3c 5c 50 | ....W?.o......i...1.@A...(..|<\P |
1500 | b0 13 ac ba 00 36 1e 8d 27 74 5e 62 e8 ca 04 d5 4d 66 78 38 2b 6e c8 0a e7 a1 a0 db 15 82 8d bc | .....6..'t^b....Mfx8+n.......... |
1520 | 32 b1 fe 21 44 23 00 22 08 c5 83 18 fa 72 ba f6 51 03 13 f7 07 0d a4 7d 68 4d 60 30 e5 ad 25 0c | 2..!D#.".....r..Q......}hM`0..%. |
1540 | cb 02 35 1c 4b 5f 46 11 48 6e 1d 3a 42 80 52 3c 70 9c 0c 54 4e 31 72 d8 af 29 ee b7 c9 c3 03 31 | ..5.K_F.Hn.:B.R<p..TN1r..).....1 |
1560 | 5d 21 44 09 ad 31 b1 6a 80 81 f7 5e 57 fe b5 af 58 04 11 a8 44 1e 81 4d 5c a1 9d 4a 0b 00 67 e3 | ]!D..1.j...^W...X...D..M\..J..g. |
1580 | 11 5f 4f 0e 0e d6 47 3b 9b dd 64 18 14 80 49 87 0d d1 28 44 03 ab 91 d4 14 c1 e9 ca 63 a7 b6 31 | ._O...G;..d...I...(D........c..1 |
15a0 | 0a 88 9a 0e 94 65 81 4b e7 cf 61 7f 6f 0f cb a6 c3 c7 6e 3e 06 9d 77 bd c1 ca 6a ce 9b 37 6f 62 | .....e.K..a.o.....n>..w...j..7ob |
15c0 | 32 99 f4 13 7e 33 f9 ba 9d f6 6d 46 43 91 b4 8c a5 48 81 0f 31 02 30 13 83 92 15 41 62 99 56 84 | 2...~3....mFC....H..1.0....Ab.V. |
15e0 | 10 54 00 10 ac 31 98 4e 0d a0 8c a3 a3 15 9a c5 09 24 84 43 2e 8a 7f f0 8d af 7a fe f4 5f dc 78 | .T...1.N.........$.C......z.._.x |
1600 | f8 67 f0 c7 9f bf 73 45 9e d1 06 e0 f2 bd 17 a1 21 a0 6b 16 38 58 ae f0 ac 7b f6 d0 34 1e 4d 17 | .g....sE........!.k.8X...{..4.M. |
1620 | b0 6c 02 96 ad 62 d9 2a 0a db a1 13 c2 cd 13 a0 ed 08 6c 2c 9c 73 bd 87 cf 61 bf 31 66 a3 2d 38 | .l...b.*..........l,.s...a.1f.-8 |
1640 | 7b 88 b3 ba cc d6 6d c1 f1 f7 ce 01 8b 96 22 d7 60 14 c6 28 6c a1 20 a3 a8 83 82 6d cc 77 ab 22 | {.....m.......".`..(l......m.w." |
1660 | 7a 1e 5b c4 d2 60 ef 2d 7b 45 4c f4 3e a4 8a 49 41 28 39 40 8c a2 b4 14 ff 9e 62 9a c2 44 08 a2 | z.[..`.-{EL.>..IA(9@......b..D.. |
1680 | f0 c1 a7 d0 3b 4a 92 39 a7 26 e9 30 c7 1c 3b 11 99 41 20 3e e5 cc b4 0e d7 8b d2 a0 28 6d 3a bc | ....;J.9.&.0..;..A.>........(m:. |
16a0 | a9 a5 41 15 12 34 86 e3 a4 20 26 48 f0 70 5d 80 74 1e a0 98 ff 67 92 50 40 30 e9 f5 81 e2 7b 8d | ..A..4....&H.p].t....g.P@0....{. |
16c0 | 44 9a ed f3 74 f1 0a a1 6c 2f 72 3a 33 b0 a2 8c 24 c4 89 d2 a7 4f 3c b6 c2 bd 87 15 4a a6 54 b5 | D...t...l/r:3...$....O<.....J.T. |
16e0 | 88 fc 42 5d d7 a8 6b c2 74 e6 71 b0 37 07 5f ed 22 ef 90 1e de 7b 1c 1d 1d e1 f2 e5 cb 28 cb f2 | ..B]..k.t.q.7._."....{.......(.. |
1700 | 96 09 40 19 db 5d 9d b1 23 34 c4 c6 2e f1 58 2c 03 4e 8a 80 9d b2 42 51 45 a3 2c 0a 38 11 2c 5b | ..@..]..#4....X,.N....BQE.,.8.,[ |
1720 | 0f 09 84 49 6d 50 97 06 93 69 01 05 70 7c b4 42 b3 9a c3 ca e4 b0 ac 27 3f fe ba 7b bf d8 ff d2 | ...ImP...i..p|.B.......'?..{.... |
1740 | 1f ff c1 cf 8e 06 e0 e9 a8 02 ec ed 46 c9 28 3a 4c ea 12 07 3b 15 96 86 11 a4 c3 b2 89 32 db ce | ............F.(:L...;........2.. |
1760 | 2b 88 03 bc 30 56 2d 23 04 03 d1 cd fa b0 31 b1 86 bb 5d f6 db 26 01 b7 c7 86 a5 c9 b1 50 89 79 | +...0V-#......1...]..&.......P.y |
1780 | 78 e7 53 34 a1 02 16 c0 2a 61 52 29 82 c6 43 c5 44 b0 d6 c0 da 78 e0 8a c2 f4 32 be 5e 13 10 04 | x.S4....*aR)..C.D....x....2.^... |
17a0 | 80 44 55 9e 51 30 0c 94 35 95 0c 35 1d d8 58 82 94 20 68 bb 98 2e 10 a8 37 00 31 92 4d 3f af 30 | .DU.Q0..5..5..X...h.....7.1.M?.0 |
17c0 | 28 6b 0b 10 10 9c c0 41 06 7c 46 2c f9 95 95 4d cf e1 54 8a 8c 02 a1 e0 04 6a 22 69 6a 4b 86 72 | (k.....A.|F,...M..T......j"ijK.r |
17e0 | 81 e0 3c bc 13 b8 ce f5 e5 4e 15 05 5c 48 d1 0d f5 e9 8c 61 42 29 0a 63 63 b8 df f9 00 f1 1a a3 | ..<......N..\H.....aB).cc....... |
1800 | 8a 64 38 72 1b 2f d2 c1 cf 46 a8 6b 03 f6 0a 82 6b 3c 5c aa 83 04 51 a8 c6 4a 03 11 50 b2 45 55 | .d8r./...F.k....k<\...Q..J..P.EU |
1820 | da 9e e4 1c 46 70 21 04 34 4d b3 61 00 b6 e7 3f b6 6d 8b f9 7c de f3 04 f9 7a 8a 08 34 08 3a af | ....Fp!.4M.a...?.m..|....z..4.:. |
1840 | 98 2f 03 4e 6a 86 55 4e 46 37 60 d1 06 9c b6 f1 79 5d 4a 81 aa c2 60 32 89 46 e0 e4 68 85 b6 6b | ./.Nj.UNF7`.....y]J...`2.F..h..k |
1860 | c0 d6 1e 54 e5 e4 27 5e f7 67 5f e1 7f e9 ff fd f7 ef 18 0d c0 53 0c 09 31 0c 15 c9 5e 39 e5 bb | ...T..'^.g_..........S..1...^9.. |
1880 | 83 3d 5d a4 91 bc 92 9e 45 17 10 e4 96 ee b0 b3 c7 42 df 2a 1e b9 65 5a 4c 96 f1 d2 b0 b4 98 1e | .=].....E........B.*..eZL....... |
18a0 | b2 a5 35 27 02 25 d6 9c 78 d0 cb 8e f5 97 9c e8 89 58 13 8f 21 31 12 d7 a0 e9 90 a4 c2 1a 88 15 | ..5'.%..x........X..!1.......... |
18c0 | c6 44 b2 2f d6 ad a9 3f 0c 9c f3 ee 3e 14 8f df cf 5a 4a bc 41 7a ef 26 7a eb ac 67 88 84 27 83 | .D./...?....>....ZJ.Az.&z..g..'. |
18e0 | 8d 82 d4 40 82 44 43 61 a3 61 b1 b6 44 59 09 54 0a 78 17 d0 36 0e 21 c4 b2 25 e7 54 27 3d 24 00 | ...@.DCa.a..DY.T.x..6.!..%.T'=$. |
1900 | 6d 93 3c bd 28 42 c8 2d d4 9a 52 96 78 98 41 94 b8 84 98 ff 0b 04 3e 28 7c 88 7b fa 62 8a 14 53 | m.<.(B.-..R.x.A.......>(|.{.b..S |
1920 | 14 63 39 56 32 94 d2 b5 8c ef 47 45 fb 26 ae 7c 2d 97 cb 25 f6 f6 f6 e2 e0 90 64 dc 87 29 df 70 | .c9V2.....GE.&.|-..%......d..).p |
1940 | 4c d8 6c 36 c3 d1 d1 d1 66 bb b7 1a 2c 1c e1 b1 93 00 a8 62 5a c6 94 60 d9 86 68 cc 14 10 78 28 | L.l6....f...,......bZ..`..h...x( |
1960 | 80 bd 29 50 97 06 d3 69 01 cb 84 9b 47 2b ac 56 4b 04 32 e7 a9 9e bd fd 2f be e6 c1 c9 bf fc 7f | ..)P...i....G+.VK.2...../....... |
1980 | de fb 4f 46 03 f0 14 a2 59 76 10 f1 68 57 0e cd d2 63 b1 e8 b0 6a 3d 3a 17 89 21 c3 84 69 61 30 | ..OF....Yv..hW...c...j=:..!..ia0 |
19a0 | b5 16 9d 10 16 ad 60 9e e2 4e 63 0c ca b2 44 51 14 1b 53 7f 72 45 60 58 43 3e 6b c0 e4 c0 22 60 | ......`..Nc...DQ..S.rE`XC>k..."` |
19c0 | 7d ca a2 6e 3d 13 6f c2 da 8b 7b 88 10 85 49 96 c0 36 e5 ee ba ae ee e7 38 38 8b 84 34 e5 db 9a | }..n=.o...{...I..6......88..4... |
19e0 | ec 44 2c 8b 71 4f 4e 21 31 ff 51 ef 80 5e 7e dc 1f 2e 93 ac 8a 02 e2 25 55 09 18 45 65 91 ad 08 | .D,.qON!1.Q..^~........%U..Ee... |
1a00 | 25 72 92 0d af 73 f4 4c dc 21 1a 97 a4 23 06 38 a5 0d 48 f3 11 a0 f0 96 60 4d fc 08 24 08 5c eb | %r...s.L.!...#.8..H.....`M..$.\. |
1a20 | 63 79 2f 1b e8 44 f8 a1 6f b0 21 14 c4 d1 3c 48 4c 31 f2 24 25 f1 04 a5 6c a6 19 86 01 6b 8b 68 | cy/..D..o.!...<HL1.$%...l....k.h |
1a40 | 78 8c c1 a4 b6 b9 c5 23 e5 ea 80 f7 21 f2 23 1a a0 42 68 9a 16 22 82 b2 2c fb eb 99 67 3b 12 d1 | x......#....!.#..Bh.."..,...g;.. |
1a60 | 46 27 67 24 01 19 27 27 f1 c0 57 55 95 d2 40 9b ee 8b d8 4a 7c d2 b5 58 f9 58 5e 3e 57 13 98 34 | F'g$..''..WU..@....J|..X.X^>W..4 |
1a80 | 19 f6 f8 ff 5c 00 c8 05 d8 2e 56 05 26 85 41 b1 53 42 a0 e8 6e ac 70 bc 38 41 a1 38 57 4f 77 df | ....\.....V.&.A.SB..n.p.8A.8WOw. |
1aa0 | fc 17 bf f2 4b 9a 7f f9 1b ff ee e7 47 03 f0 14 41 25 e6 a8 e2 05 de 0b 9c f3 70 5d cc e9 0c 13 | ....K.......G...A%........p].... |
1ac0 | 0c 31 26 96 31 2d 0c ac 00 d6 44 cf 04 c2 e3 2e f9 18 ca 47 87 12 d2 cc 07 3c 1e e2 e1 89 e5 bf | .1&.1-....D........G.....<...... |
1ae0 | 6c 0f 38 9d 41 a6 81 97 5f b3 55 49 7a ba b9 d4 82 b3 2c 97 86 c9 f1 9a 9d 07 14 de 45 e3 40 4c | l.8.A..._.UIz.....,.........E.@L |
1b00 | 3d 1f 10 0f 85 a6 ca 42 4c a8 7b f1 4f 90 48 be 59 05 b1 19 d4 ee 69 23 fa d8 8c 46 92 11 49 65 | =......BL.{.O.H.Y.....i#...F..Ie |
1b20 | 05 19 98 a9 e4 8c 51 10 a7 6a 00 e0 3d 21 78 89 5a 43 d9 5c 96 ca bd b2 2e 76 48 c6 49 be f9 e0 | ......Q..j..=!x.ZC.\.....vH.I... |
1b40 | 46 ad 82 a9 09 2a 49 42 0d 44 71 13 c7 94 a9 a8 6d 9a ff a7 bd e4 59 43 66 ea 75 50 cf 89 c6 24 | F....*IB.Dq.....m.....YCf.uP...$ |
1b60 | 84 80 b6 6d 51 d7 75 df 1a 9c ab 3c 39 12 88 25 5a 42 59 16 68 db 0e 65 59 e2 d2 a5 4b 68 db 16 | ...mQ.u....<9..%ZBY.h..eY...Kh.. |
1b80 | 55 55 f6 11 c4 22 28 1a d7 e2 ca 3c 72 4a fb 55 54 06 f6 b4 45 7a bd a4 da 97 75 98 80 aa b6 98 | UU..."(....<rJ.UT...Ez....u..... |
1ba0 | ed 96 38 3d 5a 61 b1 38 86 10 9d ab 26 d3 b7 7e ed 43 0f 9a 2f fa 37 ef fd b9 9f c2 e7 07 31 f8 | ..8=Za.8....&..~.C../.7.......1. |
1bc0 | cc 96 02 5b 86 30 a7 5a 7b 52 bd 19 a0 26 83 8a 62 e9 6f 5a 17 98 94 16 ec 81 62 01 10 cb 2d 84 | ...[.0.Z{R...&..b.oZ......b...-. |
1be0 | de 70 08 c8 59 25 a4 6d 3d c0 30 8f a4 e4 f9 0d 03 55 41 a8 6d ca ad 99 60 4d fc b3 49 9e 33 36 | .p..Y%.m=.0......UA.m...`M..I.36 |
1c00 | eb c4 66 1e 4d b5 e4 78 98 78 d0 e9 96 bc 67 ba d1 33 f1 17 ef af ad 39 f6 82 78 e8 78 9d 72 f4 | ..f.M..x.x....g..3.....9..x.x.r. |
1c20 | af 2b f3 08 88 0c ba a4 34 48 10 e2 cf 4c 9e 3e 56 ed 4c 2f 10 52 55 04 9f 52 8c 4d cd 50 8a 00 | .+......4H...L.>V.L/.RU..R.M.P.. |
1c40 | 52 1a 94 52 13 0d d1 fb 4b d0 75 1e ce eb ea 40 0c 36 72 7a 91 a2 2a ac 65 c2 cc 8c a2 8c cb 38 | R..R....K.u....@.6rz..*.e......8 |
1c60 | 24 e4 f7 9b b6 fa 70 8c 1a b2 a8 09 b9 8b 51 04 6a 62 55 a2 f3 1e c2 04 ce 63 bd 53 f9 36 1f e0 | $.....p.......Q.jbU......c.S.6.. |
1c80 | 5c 01 18 0e 7d 55 55 48 70 20 f5 98 54 25 24 a5 0f b3 d9 0c f7 df 7f 3f 6e de bc 89 ae eb fa 94 | \...}UUHp...T%$........?n....... |
1ca0 | 61 3e 17 34 5d d4 64 f8 10 8d 40 69 63 54 c6 4c 98 14 06 d3 c2 c2 10 c5 06 28 00 41 15 75 65 71 | a>.4].d...@icT.L.........(.A.ueq |
1cc0 | 6e af c6 8d 93 06 a7 27 37 e0 42 38 5f 4e a6 6f 7d cf 97 be c4 e2 b7 de f7 4f 47 03 f0 24 51 4f | n......'7.B8_N.o}........OG..$QO |
1ce0 | 0c 24 00 3a 31 98 d5 16 b3 c2 a0 50 85 29 92 d7 30 84 59 5d a1 b0 05 96 9d 62 b2 6a 60 97 0e 4a | .$.:1......P.)..0.Y].....b.j`..J |
1d00 | 1c c3 d6 74 d8 bb ae 43 d3 34 51 5b d0 75 70 ce 6d 8c 05 5f cb 7e b1 21 32 89 2a 3c 0b 18 8f 49 | ...t...C.4Q[.up.m.._.~.!2.*<...I |
1d20 | c5 38 37 35 98 55 84 b2 30 28 0a 03 c3 40 59 d8 78 b3 90 20 78 8f e5 b2 05 b3 89 82 1b ca 86 22 | .875.U..0(...@Y.x...x.........." |
1d40 | af b1 4a 0c 7d 12 c5 7b 59 ab 00 b3 ee be e7 16 44 e3 48 6c 17 7a cf 17 6f 58 ea 19 f8 5c 76 ec | ..J.}..{Y.......D.Hl.z..oX...\v. |
1d60 | 9b 9f 74 9d e7 1b c3 b0 45 9c 7f 57 51 12 08 11 e0 bc 44 f2 2f ff 60 42 6f 30 b2 e7 27 43 20 89 | ..t.....E..WQ.....D./.`Bo0..'C.. |
1d80 | ba 80 76 e5 11 bc f4 b9 bf 61 ca 4b 35 40 1a 15 8e 6c 62 ba 11 44 e0 3a 1f c9 bc c4 d5 d8 94 a6 | ..v......a.K5@...lb..D.:........ |
1da0 | 10 c5 cf 8a 39 b5 34 9b c8 6b 10 47 c3 c5 89 00 65 c3 30 20 74 5d 40 d0 80 ae 8b 72 63 4d 65 d6 | ....9.4..k.G....e.0.t]@....rcMe. |
1dc0 | 3c d6 bb 28 0a 84 10 70 7a 7a 8a 0b 17 2e a0 4d 53 a1 23 fb ef e1 c5 a7 0e cb 28 0a ca 69 c2 b9 | <..(...pzz.....MS.#.......(..i.. |
1de0 | 73 e7 60 8c c1 cd 9b 37 37 0c c6 7c 1e d0 75 1d 4e da 68 a4 0e 26 84 99 21 cc 4a 8b 69 69 c1 54 | s.`....77..|..u.N.h..&..!.J.ii.T |
1e00 | 41 d4 a3 eb 3c ba 34 50 84 0d e1 60 56 a0 b0 84 47 6f 2c 31 9f 1f 61 d9 fa 03 98 fa cd 2f 7f f0 | A...<.4P...`V...Go,1..a....../.. |
1e20 | 25 f3 f7 bc f7 7d bf 3c 1a 80 27 01 22 05 93 c6 8e 37 13 3d 85 5a 42 59 32 26 75 ec a4 ab 2b 0b | %....}.<..'."....7.=.ZBY2&u...+. |
1e40 | 6b 0d 02 6b 2c bd b1 40 88 fb 1c 7c 18 01 64 4f bf 3d 25 38 b3 ca db 33 e5 f2 c2 51 a2 a8 b2 ab | k..k,..@...|..dO.=%8...3...Q.... |
1e60 | 0b c6 a4 24 54 15 a3 2c 78 63 3f 1d 10 19 7e ef 03 98 62 7d df 30 41 84 40 30 bd 38 be cf fd fb | ...$T..,xc?...~...b}.0A.@0.8.... |
1e80 | 0e bf 4c e0 a1 cf a5 35 b5 f0 8a 6a 8c 00 32 97 90 0e a8 68 5a 52 42 04 84 44 3c f6 e4 64 34 02 | ..L....5...j..2....hZRB..D<..d4. |
1ea0 | 45 61 7a fe 52 25 0d 04 81 42 43 4c a7 90 5b 84 49 a1 1c b5 02 9a 0e 64 ee 25 10 89 e9 45 f0 21 | Eaz.R%...BCL..[.I......d.%...E.! |
1ec0 | ea 19 92 04 98 52 ee af 90 58 2e 4c 4a c2 90 57 b1 c7 e1 0d 89 c0 4b 2d c6 40 4f 48 82 b8 6f c8 | .....R...X.LJ..W......K-.@OH..o. |
1ee0 | a1 bc 6f 6d d0 bf 40 14 95 94 47 a7 1e 07 bb 15 88 4e 63 9a 12 3c 8e 8f 8f 31 9b cd 7a 23 dd b6 | ..om..@...G......Nc..<...1..z#.. |
1f00 | 6d 3f c9 29 5f c7 3c c8 55 e3 cb 83 31 06 93 c9 a4 37 f4 99 ef 39 3a 3a da b8 df e6 f3 13 b8 ae | m?.)_.<.U...1....7...9::........ |
1f20 | c3 c2 45 7e 64 67 62 30 ad cb a4 59 70 98 cc 14 6d 08 70 41 a2 f3 61 83 aa 34 a8 8a 48 a6 9e 3e | ..E~dgb0...Yp...m.pA..a..4..H..> |
1f40 | 3a c7 d5 ab d7 31 d9 3d 7f 78 f1 e2 c1 8f 03 18 0d c0 93 81 ef 1c 54 43 9a e1 16 c3 e6 58 2a ca | :....1.=.x............TC.....X*. |
1f60 | 1d 60 a9 7f 5f 06 0a ba 24 75 5d 2b e9 74 63 21 e8 b0 36 fc c4 e6 c3 e7 bc 3b 7a 48 4e 9d 6a eb | .`.._...$u]+.tc!..6......;zHN.j. |
1f80 | 92 12 01 10 28 0c ec f6 14 a2 d4 11 c8 94 86 97 a4 d0 3f be fe 54 09 d8 90 1b a1 37 00 18 86 e2 | ....(.............?..T.....7.... |
1fa0 | 83 dc 93 78 4d 48 e6 ff 27 42 eb 2a 43 22 26 e2 21 a5 b4 53 4f e0 7c 6a b1 f5 92 e6 17 ac b9 0c | ...xMH..'B.*C"&.!..SO.|j........ |
1fc0 | e8 5a 33 d0 53 16 c9 e8 ac c5 3e 89 e1 e7 18 ad 84 10 9b 9b 8c 09 51 e4 83 b5 8e 61 5d 9d 88 4c | .Z3.S.....>...........Q....a]..L |
1fe0 | 7e e7 02 8c e8 86 96 20 2a 08 93 4a af 30 fd cf 94 d0 87 44 f8 d0 c7 4f 51 55 05 98 38 2a 27 55 | ~.......*..J.0.....D...OQU..8*'U |
2000 | d0 75 2d 96 cb 15 76 76 38 1d da 39 96 cb 25 ea ba 8e 43 3e 06 fa 0f a2 98 3a 0c ef 03 63 0c ea | .u-...vv8..9..%...C>.....:...c.. |
2020 | ba c6 c1 c1 c1 99 57 fb f4 f4 14 ae 6b b1 f2 c0 c2 31 9c 10 ea ba 04 d8 c1 ab a4 fb 2f f2 3f 39 | ......W.....k....1........../.?9 |
2040 | 15 84 08 4a cb a8 2c 83 c9 23 d6 79 e9 78 4c 01 9e 74 15 a0 01 54 10 5c 40 17 02 1a 1f e0 42 00 | ...J..,..#.y.xL..t...T.\@.....B. |
2060 | 1c c0 9d a5 99 c9 0b 00 00 20 00 49 44 41 54 87 31 f1 c6 0b 01 70 3e c9 60 99 21 94 db 67 d7 a4 | ...........IDAT.1....p>.`.!..g.. |
2080 | 5f 8e 00 da b6 85 73 6e d3 cb 03 8f bb 34 44 b2 7a 0c b9 bf 20 7a d4 2e ac f7 cb c7 bf 57 54 36 | _.....sn.....4D.z....z.......WT6 |
20a0 | a6 25 c6 70 8a 58 62 d8 9f f7 0b aa 28 82 06 78 9f 0d 5a 4a a5 35 46 3b 1b b4 a0 66 d3 13 3d a7 | .%.p.Xb.....(..x..ZJ.5F;...f..=. |
20c0 | 21 c0 58 b3 56 ff 25 f9 ee b0 7d d8 98 d8 83 4f a9 69 89 12 83 e5 ba 00 ef 64 5d 3a dd a2 37 09 | !.X.V.%...}....O.i.......d]:..7. |
20e0 | 51 2a 6c 2c 6d 34 52 45 29 b4 42 2d f5 93 91 bd d3 94 53 4b fa bc 01 6b a3 8e 81 40 b0 c4 20 4e | Q*l,m4RE).B-......SK...k...@...N |
2100 | c2 22 45 94 cf 7a 07 22 06 1a 07 10 af 95 89 4c b0 46 b0 bb 17 fb 09 44 14 5d 17 a0 41 53 fe 0f | ."E..z.".......L.F.....D.]..AS.. |
2120 | 3c 76 33 e0 70 bf c6 b5 13 97 52 28 c5 cd a3 1b 30 86 b1 b7 b7 07 e7 1c 3e f5 a9 4f e1 d2 a5 4b | <v3.p.....R(....0.......>..O...K |
2140 | a8 eb 3a 32 f7 ce f5 a4 e0 70 16 64 fe ba 2c 63 d7 e6 c1 c1 c1 19 23 e0 80 05 45 de e3 b8 05 1e | ..:2.....p.d..,c......#...E..... |
2160 | 3d 89 2a ac ca 58 30 29 0a 4b b0 1a 50 db d8 85 19 bc 60 d5 79 9c 2c 1b 94 45 81 fb ef d9 97 0e | =.*..X0).K..P.....`.y.,..E...... |
2180 | d5 07 da 66 f9 0f 46 03 f0 24 11 bc 43 76 95 43 c2 aa cf 95 07 ca ba 10 d6 9e 2c 47 d3 db eb c0 | ...f..F..$..Cv.C..........,G.... |
21a0 | 72 0a 90 c3 fd ed 71 e0 67 57 01 b5 6f d6 cd de 0d 58 47 1c 80 80 53 39 10 a9 eb ce 70 f6 0e 91 | r.....q.gW..o....XG...S9....p... |
21c0 | 00 cc 61 b3 d0 3a b5 e9 ab 67 ba 9e d0 b3 2e f4 e5 4a c1 5a ab 4f 86 d2 fc 03 ea 59 bb 28 5e 5a | ..a..:...g.......J.Z.O.....Y.(^Z |
21e0 | cf db 62 5a 13 57 c3 8d da 41 e2 0c 40 60 f8 ba a2 5e 2f 4a 94 7b 57 bf 2e 5b 66 6f ce 0c 33 18 | ..bZ.W...A..@`...^/J.{W..[fo..3. |
2200 | 1f 96 89 cb 5c aa 13 c4 08 23 2a 1e b5 af e7 fb a0 e8 ba 48 aa 71 fa b7 68 f0 3c 44 18 50 03 32 | ....\....#*........H.q..h.<D.P.2 |
2220 | 84 55 2b 98 ce 8a 58 aa 54 81 f8 48 38 aa 2a ce ef 95 f8 dd 3f f6 38 9c d5 28 2c e3 53 d7 17 60 | .U+...X.T..H8.*.....?.8..(,.S..` |
2240 | 62 34 cb 25 ae ea 55 00 84 d9 2c 56 04 bc f7 b8 7c f9 32 a6 d3 29 aa aa c2 6a b5 ea 53 bc 7c fd | b4.%..U...,V....|.2..)...j..S.|. |
2260 | 73 f5 00 00 aa aa ea 9f 5b 55 15 ae 5e bd 0a 55 c5 6c 36 83 42 d1 b6 0d 1a 1f 70 ed 54 10 54 71 | s.......[U..^..U.l6.B.....p.T.Tq |
2280 | 61 c7 60 5a c5 f9 0c 96 19 05 47 e7 b0 6c 3a dc 98 37 68 3c 30 dd d9 93 72 32 7d b8 75 fa d3 9f | a.`Z......G..l:..7h<0...r2}.u... |
22a0 | b8 7e fc cb a3 01 78 92 98 d4 25 54 05 1c 3c 66 b5 c5 de b4 40 eb 63 a8 55 57 36 b6 b2 da b8 bc | .~....x...%T..<f....@.c.UW6..... |
22c0 | d3 44 56 2a 0e a8 40 54 74 0d 57 82 65 f5 df f6 41 ff f4 c3 26 d1 cb 77 41 0a 66 8d a5 33 a5 24 | .DV*..@Tt.W.e...A...&..wA.f..3.$ |
22e0 | a1 8d 9a 7b 6b a2 80 a5 b4 d1 f3 67 95 dc 40 3e d0 97 0d 2d 33 38 c9 7e 83 68 2f b5 d7 b5 e4 be | ...{k......g..@>...-38.~.h/..... |
2300 | 0f e1 fb 16 db 74 94 83 48 12 d7 44 66 1f 88 9e 36 cb 6b 2d 47 ae 82 68 60 2c a2 8d 4a 0a aa 58 | .....t..H..Df...6.k-G..h`,..J..X |
2320 | e7 36 e9 05 e5 3e 27 26 00 21 46 39 92 7f 7e 12 59 59 bb ae 22 68 88 95 87 58 02 e4 d4 92 18 f3 | .6...>'&.!F9..~.YY.."h...X...... |
2340 | 6c e4 e1 27 21 c4 ca 81 46 b2 d0 24 83 63 4c 8c 67 42 10 04 09 70 9d 87 17 81 57 c6 f5 23 c2 c1 | l..'!...F..$.cL.gB...p....W..#.. |
2360 | 6e 05 20 7a d4 78 9d 80 9d 32 ea 09 ae cd 05 17 f7 6b ec ef 32 4e e6 a7 b0 d6 c2 75 1d e6 f3 13 | n..z.x...2.......k..2N.....u.... |
2380 | 18 c3 98 4c 26 38 3a 3a 42 08 01 0f 3c f0 40 4f 10 e6 0e d0 bc f3 31 a7 80 ce 39 14 45 81 ba ae | ...L&8::B...<.@O......1...9.E... |
23a0 | 51 96 65 5f 4e cc c4 f0 54 26 91 30 6e 3b 34 c1 e3 fa 42 20 00 2e 92 c1 fe 24 96 3a 83 04 b4 ad | Q.e_N...T&.0n;4...B......$.:.... |
23c0 | c7 8d 79 8b 65 07 54 d3 5d 99 4c 77 1e 26 43 ff 90 83 7b 47 5b 2e af 8c 06 e0 49 e2 de cb 87 50 | ..y.e.T.].Lw.&C...{G[.....I....P |
23e0 | f1 f0 0d 21 74 1d ba d6 c7 e6 0d ce 02 19 85 92 89 a3 a3 10 07 3e 3a ef 21 2a 69 3f c0 3a 17 ec | ...!t................>:.!*i?.:.. |
2400 | 37 fd 9e 31 39 16 c0 06 f3 df 0f 08 49 c4 9e 86 a8 dd b7 86 51 64 91 4c 32 1a 45 61 51 97 05 0a | 7..19.......I.......Qd.L2.EaQ... |
2420 | 6b 31 ad 2d ea d2 0e 46 6e 25 d5 9c a6 56 5e 43 28 6c d1 7b d2 9c 47 67 3e 43 a1 30 04 d8 14 ea | k1.-...Fn%...V^C(l.{..Gg>C.0.... |
2440 | 07 51 74 2e 1a 8a 90 78 8e a0 21 ce 1d 28 63 74 91 fb d9 09 b1 b7 3e b7 27 93 01 34 95 01 4d 50 | .Qt....x..!..(ct......>.'..4..MP |
2460 | 04 c9 b5 fa cc 1f a6 c9 40 79 2e 82 17 04 97 bc be 5d cb 7d ad 35 e0 02 08 21 b2 f3 3e bd 66 64 | ........@y.......].}.5...!..>.fd |
2480 | a2 12 0a 9f a2 02 e7 05 ad 8b 9c 0d 13 c5 16 5f c3 20 43 08 9a f9 8f 68 c8 40 40 c9 8a 92 14 37 | ..............._..C....h.@@....7 |
24a0 | 6e 9e 42 9c 43 55 c6 79 6b a2 0a 82 c4 d7 6a 0b b8 ce e3 e6 12 38 7f 78 00 32 65 1c d2 2a 71 c2 | n.B.CU.yk.....j......8.x.2e..*q. |
24c0 | b0 31 51 36 3d 9d 4e d1 34 0d 8e 8e 8e 70 e1 c2 85 7e 64 f8 5a db c0 b7 ac 01 cb a3 c5 8d 31 b8 | .1Q6=.N.4....p...~d.Z.........1. |
24e0 | 78 f1 e2 c6 c8 f8 3c 8e ad 6d 5a b4 a1 c3 8d 45 00 21 8e 3c db 4d 6d d4 2b 17 10 60 30 99 4d a5 | x.....<..mZ....E.!.<.Mm.+..`0.M. |
2500 | 9a ee 7c 80 8c fd 69 db b6 3f bf f3 ae 3f bc fa c1 66 d4 01 3c 69 54 d3 5d 52 09 b0 86 b0 73 60 | ..|...i..?...?...f..<iT.]R....s` |
2520 | 70 ce 4f d0 b6 0e 21 c4 9e ed ba 9e 42 14 58 b6 1e 2b 75 60 13 00 ed d2 6c f0 5b 37 c2 0c 97 48 | p.O...!.....B.X..+u`....l.[7...H |
2540 | dc 5a ef df 8c 00 28 cb 57 55 20 1a d4 16 13 9a ee 9e 43 5d a7 09 3c 1c c3 d6 c2 c4 2e 45 a2 b4 | .Z....(.WU........C]..<......E.. |
2560 | 9f 70 32 01 31 a3 5d ae b0 6a 57 80 02 65 51 c2 14 45 1c c6 51 d8 be e4 e8 07 d5 08 1f 62 cd bc | .p2.1.]..jW..eQ..E..Q........b.. |
2580 | b4 36 b5 ee c6 f0 99 ba 90 66 f7 11 9c 8b c3 29 57 ce a1 0b 0e 3b 3b 33 54 55 0d 62 86 65 83 c2 | .6.......f.....)W....;;3TU.b.e.. |
25a0 | 9a 18 11 11 c0 96 a3 e6 be 6b 61 c9 a0 b2 b6 1f 54 98 27 e3 e6 bc db bb 36 ee e0 a3 18 55 b1 4d | .........ka.....T.'.....6....U.M |
25c0 | 8d 40 40 aa 76 44 59 36 97 b1 99 26 04 8f ae 75 08 12 2b 2a 9d f3 31 ea a9 0c aa 92 a3 bc 97 62 | .@@.vDY6...&...u..+*..1........b |
25e0 | d5 c4 b0 c2 87 d8 80 63 0c 47 1e 43 09 08 01 95 8d 61 c6 f2 a4 43 2b 40 c5 06 02 8e ef 1b c0 71 | .......c.G.C.....a...C+@.......q |
2600 | eb 52 5e df 42 34 36 e8 ec cc 26 08 21 60 b9 3c 4d de bc c3 cd 9b 37 01 00 bb bb bb 78 f4 d1 47 | .R^.B46...&.!`.<M.....7.....x..G |
2620 | 71 7c 7c 8c e7 3e f7 b9 a8 aa aa e7 7f 86 5b 81 b2 3a 74 28 02 9b 4e a7 b8 7c f9 32 54 15 8f 3e | q||..>........[..:t(..N..|.2T..> |
2640 | fa 28 96 cb 65 9f 22 ae 56 82 d6 75 b8 36 4f e4 ed 1e a3 32 02 32 16 3b bb 13 61 3b 79 58 99 7f | .(..e.".V..u.6O....2.2.;..a;yX.. |
2660 | 9a da f6 17 f4 ea fb af fe e3 e6 f3 a7 3b f0 19 5e 06 b4 73 32 e6 77 d4 4e 56 b6 52 54 53 03 e1 | .............;..^..s2.w.NV.RTS.. |
2680 | 0e da 2e 89 a0 5a d6 3b 71 cc 16 5a 35 1d 23 50 f3 7c 5b 94 97 c5 dd ba 2d 66 38 e8 23 7b 84 ac | .....Z.;q..Z5.#P.|[.....-f8.#{.. |
26a0 | 18 3b 6b df 5c 14 b4 c4 60 b7 2a 6b a2 62 72 b3 ac a7 7f 58 56 f0 86 2d 17 d5 24 91 7d 71 28 88 | .;k.\...`.*k.br....XV..-..$.}q(. |
26c0 | aa 47 51 4d 50 d4 b3 68 00 ba 80 b0 6c 20 44 b0 b0 50 53 82 8a 12 5c 96 b0 85 29 0c d1 0b 59 34 | .GQMP..h....l.D..PS...\...)...Y4 |
26e0 | 78 ef 00 e7 a0 3e c0 58 83 b2 aa 62 4b af 0a d8 cb c3 9e bc 57 b2 31 0d b0 0e 8d 13 f8 d6 a1 93 | x....>.X...bK.......W.1......... |
2700 | 80 09 0c 4c 39 89 9e cc 5a 58 13 77 0e 80 00 b6 b1 c9 a8 f5 0a 63 2d ca 7a 12 27 fd 26 f6 31 1b | ...L9...ZX.w.........c-.z.'.&.1. |
2720 | 00 04 0f f1 82 c2 56 28 cb 2a e6 f2 26 4f c3 89 51 05 73 f4 ca 05 7b c0 05 68 e7 00 bf 8a e3 b4 | ......V(.*..&O..Q.s...{..h...... |
2740 | 11 43 79 6b 0d 6c 51 c1 d8 32 0e 07 85 5a 6b 70 a8 1a ce 05 f1 56 c8 6b 1c c1 55 40 c9 88 f8 b0 | .Cyk.lQ..2...Zkp.....V.k..U@.... |
2760 | 24 12 12 f5 d3 c9 84 78 d1 0a 73 51 7b 53 d4 73 2b ba 1f bc d6 37 97 57 8b b2 ac 2d b3 41 d3 34 | $......x..sQ{S.s+....7.W...-.A.4 |
2780 | 70 2e 12 b9 3b b3 09 44 02 96 8b 25 9a d5 22 a6 1b 83 46 ae a6 69 f0 e8 a3 8f e2 59 cf 7a d6 86 | p...;..D...%.."...F..i.....Y.z.. |
27a0 | 01 c8 51 60 f6 fa 39 e4 cf bd 04 b3 d9 0c 97 2e 5d 82 aa e2 ea d5 ab 58 2e 97 7d 03 17 13 c1 b9 | ..Q`..9.........]......X..}..... |
27c0 | 0e d7 e6 01 a2 82 f3 bb 16 3b 13 1b 26 45 f9 70 50 fc 43 27 a7 ef c0 c7 3e 71 f5 17 3f fc f9 d5 | .........;..&E.pP.C'....>q..?... |
27e0 | 1a fc cc de 0b c0 fc 61 48 f8 3a 30 eb ba 11 46 d7 4c 15 13 d4 83 f6 27 36 5c 9b 3b 3e 6e cb 1f | .......aH.:0...F.L.....'6\.;>n.. |
2800 | af a7 f8 f6 b0 58 6d 6c 05 3a cb 18 64 09 69 1e fe b9 d9 02 1c 7a e9 2d 11 b0 b3 7f 00 c7 3b bf | .....Xml.:..d.i......z.-......;. |
2820 | 73 75 4e 7f e5 0b 2e d8 d5 d1 12 96 99 94 11 f9 07 62 02 85 75 ea b0 dd d2 2f 89 70 cb 02 d3 d4 | suN..............b..u..../.p.... |
2840 | 07 78 09 ec 15 b4 6e 17 8e fd fb fd f8 2f 06 d1 63 ac 1c 84 62 38 9f 59 3a c1 60 f1 09 a7 fe 7c | .x....n....../..c...b8.Y:.`....| |
2860 | 44 b2 51 b3 ea 30 b7 fd f6 b2 e3 d4 65 14 e2 e7 c6 88 12 5b af eb ed 03 b1 5d 27 4d 36 ca 3b 0d | D.Q..0......e......[.....]'M6.;. |
2880 | 62 bd 0b 14 64 fd ad f2 d0 d0 be 6a 41 91 97 e4 28 fb 8d 33 0f 94 95 79 0a a1 09 5b 18 8e 8d 03 | b...d......jA...(..3...y...[.... |
28a0 | 91 3c a5 20 0c 09 29 d4 b6 95 b1 fc a1 eb a7 17 66 3b f5 fb cf 4d 6c 41 aa 17 4f ba e6 f0 c3 9f | .<....).........f;...MlA..O..... |
28c0 | 3c f9 9b e0 ea 1b ab aa 62 00 69 9f 5f 88 87 75 5a 23 04 87 ae e9 20 a4 58 35 ab fe 30 8b 08 ae | <.......b.i._..uZ#......X5..0... |
28e0 | 5e bd 0a 6b 2d ee b9 e7 1e 4c a7 d3 33 a7 3e 65 62 70 b8 1f 72 3a 9d e2 d2 a5 4b 20 22 5c bd 7a | ^..k-....L..3.>ebp..r:....K."\.z |
2900 | 15 22 82 e9 54 d0 34 31 fd e9 c4 e3 68 05 35 86 50 94 f6 23 d6 d2 db 45 e6 ef f8 a5 7f f5 c8 b5 | ."..T.41....h.5.P..#...E........ |
2920 | cf c7 23 f4 8c 36 00 af 7e c3 8f 79 00 4f e8 83 bd ef f9 af 28 ef 3f 2c 56 aa 3a 98 e3 47 67 6f | ..#..6..~..y.O......(.?,V.:..Ggo |
2940 | fa c1 7f f8 df fb 56 60 20 2e 19 21 d3 bd f3 7d ee e4 67 7e e5 b7 17 4f d1 db bb 82 11 b0 d6 d2 | ......V`...!...}..g~...O........ |
2960 | cb 5e f6 20 88 74 ef d7 7e e7 d1 d5 c3 0f 7f a0 03 f0 89 87 fe ec 9f b5 8b 56 5e 03 2c bf f1 d2 | .^...t..~................V^.,... |
2980 | c5 4b 7d 64 d6 b6 2d ba 2e 96 04 eb aa 8a 23 c2 5c ec 39 c8 a2 a0 e1 cc 80 f3 e7 cf 63 36 9b f5 | .K}d..-.......#.\.9.........c6.. |
29a0 | 04 60 ae 00 0d 0d 41 6e 10 cb 13 a3 26 93 09 2e 5e bc b8 61 20 32 6f d3 b5 2d 9c 78 dc 5c 41 84 | .`....An....&...^..a.2o..-.x.\A. |
29c0 | f9 0a 5b f9 dd df 7c d7 c5 23 e0 11 8c 06 e0 73 88 67 1f 1a 03 15 9b 55 6c c3 a9 b1 43 af 7e 76 | ..[...|..#.....s.g.....Ul...C.~v |
29e0 | aa 41 1b 3b e5 86 2b a5 d6 53 78 d8 dc 73 40 c5 c7 c6 33 fb 94 c2 7b af 55 55 5a 63 ec a2 69 5a | .A.;..+..Sx..s@...3...{.UUZc..iZ |
2a00 | 5d ab 13 00 6b 4c 9b 57 09 d5 75 bd f1 ff da b6 85 aa 62 3a a9 b1 42 83 d6 75 38 3d 3d 45 7e 6e | ]...kL.W..u.......b:..B..u8==E~n |
2a20 | 0e f1 57 ab 15 ea ba 46 51 14 1b d1 60 ee 26 cc d5 82 6c 3c aa aa ea 2b 04 17 2e 5c 80 aa e2 ca | ..W....FQ...`.&...l<...+...\.... |
2a40 | 95 2b 1b aa 89 b6 6b 28 08 cc ca d1 0b 48 ec 1b be f8 c5 cb 1b 5d 78 ee 07 1f fe c0 87 fd 68 00 | .+....k(.....H.......]x.......h. |
2a60 | 3e 47 d8 5e dc 7b 96 01 90 c1 ae 80 6d 12 70 73 14 f8 e6 5c 80 e8 55 2c b8 9f e7 35 e2 29 25 7b | >G.^.{......m.ps...\..U,...5.)%{ |
2a80 | ab 8a 55 d5 bf ef 7d ef eb 87 fb 3b e7 a6 44 74 1f 33 53 d7 75 38 38 38 e8 5b b7 73 e7 66 d7 75 | ..U...}....;..Dt.3S.u888.[.s.f.u |
2aa0 | 30 d6 e2 fc f9 19 8e 8f 4f b0 58 2d fb 72 6a 36 e6 57 af 5e 05 33 63 7f 7f bf 6f 0f 5f 6f 09 8e | 0.......O.X-.rj6.W.^.3c...o._o.. |
2ac0 | 7d 22 ab d5 aa 17 8a 79 ef 51 d7 35 aa aa ea 23 01 00 9b 46 80 62 3a d2 74 dd 61 51 98 6f 01 69 | }".....y.Q.5...#...F.b:.t.aQ.o.i |
2ae0 | 45 90 b7 dd 77 df c5 f7 7f e2 13 57 fd 68 00 3e 07 d8 16 fd dc 6a 20 ce 5e 16 ba 3d 36 7a 7b 2e | E...w......W.h.>.....j..^..=6z{. |
2b00 | c0 da 6b 8c 07 f5 e9 c2 d1 d1 11 ef ef ef 9b 4c 2b 7c d1 17 7d 11 39 e7 41 c4 b6 2c 63 4d bf 28 | ..k............L+|..}.9.A..,cM.( |
2b20 | 0a 1c 1c 1c 60 b9 5c f6 e1 fa 62 b1 80 84 00 63 4a 1c 1e 9e 83 5e bf 1e 2b 2f c8 05 8f cd a1 2f | ....`.\...b....cJ....^..+/...../ |
2b40 | 7b 7b 7b a8 aa aa ef 19 68 db b6 ff 7e c3 c8 22 13 8a 59 2c 74 e9 d2 a5 0d 23 90 ef 91 a6 69 a0 | {{{.....h...~.."..Y,t....#....i. |
2b60 | aa e7 8d e1 6f aa aa 1d 9a 4c f6 7f d2 98 c9 07 3e fa d1 8f ba d1 00 dc 66 c4 8b 98 6a eb a9 0d | ....o....L......>.......f...j... |
2b80 | 35 2f 05 1d 7a fa 3c 2a 3a 1b 85 cc 10 e7 1a f1 f6 62 90 8d 89 b2 3a 06 00 4f 07 8c 31 a1 eb ba | 5/..z.<*:........b....:..O..1... |
2ba0 | de f2 7e f0 83 1f d4 97 be f4 a5 54 55 d5 ac aa 2a ea ba 0e f3 f9 1c cf 79 ce 73 70 7c 7c dc 8f | ..~........TU...*.......y.sp||.. |
2bc0 | f9 ca 8c bf 0f 1e c6 70 94 f6 1e 9f 60 b9 5a a5 51 6e f1 20 df b8 71 63 83 eb c9 42 a1 58 59 70 | .......p....`.Z.Qn....qc...B.XYp |
2be0 | b7 4c 85 72 ce a1 69 1a 18 63 7a 23 70 e1 c2 85 fe 1e 59 ad 56 bd 53 68 db 0e 00 1d 5a 6b bf 71 | .L.r..i..cz#p.....Y.V.Sh....Zk.q |
2c00 | 32 99 f8 e9 ce ec a7 50 e1 03 1f fd e0 e7 87 11 b8 ab 0c 40 3e c8 22 9b b3 e1 87 25 c0 3c 16 7c | 2......P...........@>."....%.<.| |
2c20 | d8 21 98 6b c3 59 0d 96 0d 47 2e 17 19 63 e2 3c be d1 00 3c 2d f8 d8 c7 3e e6 ef bf ff 7e de 8a | .!.k.Y...G...c.<...<-...>....~.. |
2c40 | d8 2e 00 78 99 f7 9e 54 15 d7 ae 5f c7 f3 9e f7 bc 3e 15 f0 de f7 b5 fc ae eb d0 b9 b5 11 50 1c | ...x...T..._.....>............P. |
2c60 | e1 64 be 48 f3 17 23 72 fb af 88 60 67 67 67 83 0b c8 7d 03 c3 48 32 f7 14 64 6e 28 47 20 aa 8a | .d.H..#r...`ggg...}..H2..dn(G... |
2c80 | 1b 37 6e 40 55 51 d7 13 00 69 d3 b0 0b 87 55 a5 af af ea ca de 7f ef fd 6f a5 96 de ff c8 47 1f | .7n@UQ...i....U.........o.....G. |
2ca0 | f1 a3 01 b8 4d 60 03 40 b4 1f b7 f5 c4 78 83 ad 01 1c 5b e9 c2 30 97 dc 56 11 3e f8 f2 07 ad 02 | ....M`.@.....x....[..0..V.>..... |
2cc0 | cf fb bd f7 bc f7 8f c6 23 fc e4 70 e5 ca 15 dd df df df b0 ae ae eb a6 04 7d 56 51 14 bd a4 d8 | ........#..p.............}VQ.... |
2ce0 | 7b 8f d9 6c b6 c1 e9 ac 43 f7 34 d4 c5 5a ec ef ed 41 45 d0 b6 0d e6 f3 24 5c 66 ee 0f 6e fe 3e | {..l....C.4..Z...AE.....$\f..n.> |
2d00 | 99 f4 1b f6 89 e4 92 70 56 0e 46 b5 a1 e9 53 82 83 83 83 33 97 91 3a e7 b0 58 2e 0f 89 f8 1b ad | .......pV.F...S....3..:..X...... |
2d20 | b5 fa ac fb 9e f5 13 8f 7c f4 91 f7 8f 06 e0 36 61 67 ba 93 2e 6e 40 93 1a 3e b6 c7 7e 01 6b 2d | ........|......6ag...n@..>..~.k- |
2d40 | f8 76 ee 3f dc 2b bf 7d f8 69 c0 1e f7 9c 43 08 e7 d9 98 3f 7c f5 9f 7e d5 37 fd f6 bb de fd 2f | .v.?.+.}.i....C....?|..~.7...../ |
2d60 | c6 63 fc e4 f0 c1 0f 7e 70 c3 00 04 b7 38 7f b4 94 7d 90 c1 64 52 a7 c3 b8 c4 ee ee 6e 6c d8 49 | .c.....~p....8...}..dR......nl.I |
2d80 | d7 69 3e 9f f7 d7 26 87 f4 a4 c0 74 3a 83 b1 84 d5 72 85 93 f9 71 74 0c 03 52 f8 fc f9 f3 d8 dd | .i>...&....t:....r...qt..R...... |
2da0 | dd 45 5d d7 60 e6 be 43 74 38 39 2a 1b 8b 9c 36 70 1a 59 7e fe fc f9 8d 9f 69 8c c1 62 b1 40 b3 | .E].`..Ct89*...6p.Y~.....i..b.@. |
2dc0 | 6a 20 41 0e 77 77 77 be a9 28 8a f6 cf 7f d9 f3 7e 60 6f 6a 57 bf f8 eb 7f f4 39 5b 2a ca 77 cb | j.A.www..(......~`ojW.....9[*.w. |
2de0 | 0d 34 99 4c 31 9d ce 50 d7 93 5e 6f 3f f4 14 f9 c2 e7 7e f1 1c fe 9f b5 27 70 68 04 4c 3f 8a 9b | .4.L1..P..^o?.....~.....'ph.L?.. |
2e00 | c0 bc 31 01 98 a1 c0 74 b6 fb 67 c6 e3 fb 94 a0 ff 70 ab cb 97 cb 87 be f8 f2 4f 06 ef ec 62 b1 | ..1....t..g......p........O...b. |
2e20 | 48 bd 03 84 65 ea f0 63 66 ec ee ee e2 f2 e5 cb 38 7f fe 3c 26 93 09 aa aa c2 6c 36 43 51 94 91 | H...e..cf.......8..<&.....l6CQ.. |
2e40 | 49 64 46 59 4c 30 29 0b 84 6e 85 f9 7c 8e d5 6a 85 e5 72 89 eb d7 6f e0 ca 95 c7 70 74 74 dc 73 | IdFYL0)..n..|..j..r...o....ptt.s |
2e60 | 3e 65 59 f6 9e 7e e8 3c f2 23 3b 0d e6 d8 7c 74 fe fc 79 5c b8 70 01 b3 d9 0c 75 5d 63 3a 9d a2 | >eY..~.<.#;...|t..y\.p....u]c:.. |
2e80 | 28 0a ac 56 2b 9c 9c cc 0f 97 cb c5 b7 df 58 c8 5b e6 2d 5e fc cd 5f fb 92 cf d9 39 bc 6b 22 80 | (..V+.........X.[.-^.._....9.k". |
2ea0 | 10 7c 9a 9c 15 e7 d7 6f b3 c0 38 e3 cf c3 bf 1b e2 96 8e c1 5e da b7 be 8e 4c 9c 1a 4e dc 6b ce | .|.....o..8.........^....L..N.k. |
2ec0 | 7a 3d 3f f8 83 3f 78 f8 43 3f f4 43 37 c6 73 fd 99 e1 3b be e1 2b 66 cf 3e 5f fd ac fa ee 85 96 | z=?..?x.C?.C7.s...;..+f.>_...... |
2ee0 | 09 de 75 e8 da 16 bb bb bb 7d 83 57 34 f8 13 ec ec ec f4 24 ef c9 c9 49 cf 03 65 4e 28 40 a2 0c | ..u......}.W4......$...I..eN(@.. |
2f00 | da 75 68 db 06 c6 d8 24 26 6a d2 ee 01 c2 6c 36 c5 fe fe 7e 5f fb cf 62 a3 b3 ee 93 cc 3b 58 6b | .uh....$&j....l6...~_..b.....;Xk |
2f20 | 31 9b cd 7a 09 f1 f5 eb d7 fb f2 61 4e 1b 9a d5 72 5a 5a 7c 1b 91 68 50 f3 a3 af fb 73 2f fd e3 | 1..z.......aN...rZZ|..hP....s/.. |
2f40 | 5f fa 57 bf ef 46 03 f0 34 21 df 18 d1 e3 c7 66 fb ec dd 73 cb 67 ae fb e6 e7 f2 60 db 4c be c8 | _.W..F..4!.....f...s.g.....`.L.. |
2f60 | eb 0d 32 7e 23 c7 a4 2c d9 1d fc d9 07 8f e3 93 93 57 9c f5 7a c6 c3 ff 99 e3 95 2f 7f 79 fd c2 | ..2~#..,.........W..z....../.y.. |
2f80 | fb 77 ff 9b 69 81 d7 3c 76 7d 51 c4 19 86 1e ce 75 b0 36 8e f5 ca 51 5d 08 01 fb fb fb a8 eb 1a | .w..i..<v}Q.....u.6...Q]........ |
2fa0 | 7b 7b 7b 30 c6 c4 2e c1 ad cd 4e 6a 2c 76 66 35 ac 53 34 6d 03 55 41 3d 99 c0 39 8f d5 6a 85 ab | {{{0......Nj,vf5.S4m.UA=..9..j.. |
2fc0 | 57 af c0 18 d3 ef 17 c8 82 a3 3c 3a 7e 3b 4a 1c ee 98 cc 93 85 b2 98 68 30 af d0 b5 6d 6b 9d 04 | W.........<:~;J........h0...mk.. |
2fe0 | 2c 3a fa 66 59 52 bd e8 f0 a3 af 7a d5 0b ff e0 dd ef fe 23 3f 1a 80 a7 39 8e 94 14 32 6e 1b 80 | ,:.fYR.....z.......#?...9...2n.. |
3000 | d8 45 b6 5c 6b f6 cf 30 00 c3 a1 21 12 f2 3c be 41 1f c2 3a 16 d0 10 02 d8 58 bc ea 55 af fa 91 | .E.\k..0...!..<.A..:.....X..U... |
3020 | 77 bf fb dd df 37 1e e1 cf 16 0f d0 df f9 2b cf 7f e9 73 ef 9d fd 6d 4b fe b5 ae 59 1e 34 4d 4b | w....7........+...s...mK...Y.4MK |
3040 | 50 82 77 0e de 3b 50 1a d6 91 c3 f3 3c f5 27 7b e4 73 e7 ce 81 88 fa 5c 3e 6f 56 76 1e 60 35 98 | P.w..;P.....<.'{.s.....\>oVv.`5. |
3060 | 72 8b 65 db 62 b5 f2 10 51 d8 be c4 7b 02 63 62 65 28 47 14 55 55 f5 c4 de 30 22 cc f7 cd 70 da | r.e.b...Q...{.cbe(G.UU...0"...p. |
3080 | 50 59 96 fd 64 22 00 b0 d6 fa b6 6d 8b bc 99 c8 05 9d b1 d3 af 0d ca 45 90 f2 ed cf 7b de f3 7e | PY..d".....m...........E....{..~ |
30a0 | fb 43 1f fa d0 6a 34 00 4f f5 1b b5 45 ba 40 0e 44 5d 1a c4 b1 b9 0f 60 5b 0c b4 21 f9 4d 12 e0 | .C...j4.O...E.@.D].....`[..!.M.. |
30c0 | a1 5c 14 9f 46 fc 53 d6 15 45 3e 21 68 db 36 5f f2 25 7f fa d5 d3 7f f7 ae df 5e 7e 36 af fd 1f | .\..F.S..E>!h.6_.%........^~6... |
30e0 | fd d7 ff a9 f9 6b ff c3 ff 19 ee a6 23 ff d7 df f0 95 d4 74 4a 15 7b 7e e1 b3 f7 9f 3d 99 14 7f | .....k......#......tJ.{~....=... |
3100 | dd 40 be 3e 74 ed 79 84 2e 0e 5a 29 2c 4c f0 68 9a 0e 65 5d f7 de 39 2b 01 35 04 b8 cc d3 30 f7 | .@.>t.y...Z),L.h..e]..9+.5....0. |
3120 | 15 82 93 93 93 d4 ce 2d 58 2c 14 24 84 92 3d 2a 16 2c 9d a2 69 96 1b ea cf 3c 1c 54 44 30 9b cd | .......-X,.$..=*.,..i....<.TD0.. |
3140 | 7a 4e 60 48 06 6e 13 c5 79 c4 18 80 5e 36 3c 9b cd dc b5 6b d7 8a fc f3 33 49 d8 39 7f 01 c0 43 | zN`H.n..y...^6<....k....3I.9...C |
3160 | c4 ac b3 ba 3e 78 e0 81 07 fe ef 47 1e 79 e4 18 b7 61 77 c0 5d 43 02 3a d7 c1 75 2d bc 77 1b 92 | ....>x.....G.y...aw.]C.:..u-.w.. |
3180 | d1 ed fa ee b0 be 3f 6c f6 c8 96 3f cb 45 87 22 a0 f5 fa ad f5 c7 b9 5a ad d2 ae fa 70 02 e2 2f | ......?l...?.E.".......Z....p../ |
31a0 | 0e ae 7b d6 67 fb da cb 7a e7 59 3f ff 3f fe e5 e2 6e b9 56 7f f3 5b be 86 45 89 59 03 bf f4 0b | ..{.g...z.Y?.?...n.V..[..E.Y.... |
31c0 | 0f bf b0 2a ed df 09 ce bd de 35 cb f3 e2 1a 58 06 aa b2 40 e7 d7 e2 2c 0c b4 1a 31 04 37 30 29 | ...*......5....X...@...,...1.70) |
31e0 | ff cf 06 de 5a 8b bd bd 3d 9c 3b 77 0e d3 e9 34 49 7a 4b 28 31 c0 16 87 bb 8c 89 55 a8 78 b4 ed | ....Z...=.;w...4IzK(1......U.x.. |
3200 | 0a a7 a7 a7 71 39 c8 62 81 eb d7 af e3 d1 47 1f c5 c9 c9 49 9f 22 66 0d c9 b6 13 19 a6 19 59 43 | ....q9.b......G....I."f.......YC |
3220 | 72 ee dc 39 77 78 78 58 9c 3f 7f 1e 7b 7b 7b a8 eb 1a 93 c9 a4 37 5a 6d d7 dd e3 bd 7b 4d 40 f8 | r..9wxxX.?..{{{......7Zm....{M@. |
3240 | b6 c9 a4 fc aa 07 1e 78 60 1f 9f d6 c5 8c 11 c0 67 84 ae 2f fd ad 67 e8 0f f7 c5 65 15 57 ce df | .......x`.......g../..g....e.W.. |
3260 | 86 d5 81 6c 00 86 4b 44 87 13 84 88 38 3d 68 10 71 58 04 ef a0 21 ec 1b 53 e8 64 32 f9 3a 00 6f | ...l..KD....8=h.qX...!..S.d2.:.o |
3280 | fb
void ReliablePacketBuffer::incrementTimeouts(float dtime)
{
core::list<BufferedPacket>::Iterator i;
i = m_list.begin();
for(; i != m_list.end(); i++){
i->time += dtime;
i->totaltime += dtime;
}
}
void ReliablePacketBuffer::resetTimedOuts(float timeout)
{
core::list<BufferedPacket>::Iterator i;
i = m_list.begin();
for(; i != m_list.end(); i++){
if(i->time >= timeout)
i->time = | 0l0.!8..m..!...8w.\_"....A.rIT.. |
33e0 | d6 7e eb fe fe ce d3 1e 09 dc 35 06 80 b6 04 3b ba 79 91 7a 76 bf 6d db 7e 8a 6c 96 0b 67 d5 97 | .~........5....;.y.zv.m.~.l..g.. |
3400 | 73 ae 67 73 87 d5 80 e1 23 23 8f 17 67 53 20 04 af 2a 52 15 45 f1 b7 b0 69 78 e8 9f ff f0 1b c6 | s.gs....##..gS...*R.E...ix...... |
3420 | 36 22 00 6f ff d9 77 2a 00 bc e8 eb be 81 9e 77 ee ab 5e 44 64 bf 5b 25 bc 1e a1 3b cf ea 50 1a | 6".o..w*.......w..^Dd.[%...;..P. |
3440 | 42 51 c4 c3 ef 83 a0 f3 01 5e fa 05 09 e8 9c c3 63 8f 3d 1a 17 8a 0e fa 3c b2 e7 cf de 38 7b de | BQ.......^......c.=.....<....8{. |
3460 | c9 64 92 44 5c 59 dc 45 08 de 03 88 f7 c5 de b4 ba 31 9b 4d 3e 55 d7 75 08 21 f4 46 20 f7 1d dc | .d.D\Y.E.........1.M>U.u.!.F.... |
3480 | b8 71 03 a7 a7 a7 7d af 48 36 34 43 19 79 08 c1 a9 6a 91 e7 09 e4 8d 53 d9 08 1c 1c 1c 60 36 9b | .q....}.H64C.y...j.....S.....`6. |
34a0 | a1 aa aa be c3 90 d9 40 45 2f 01 f4 90 b5 f6 5b 2f 5e 3c fc aa 07 1f 7c f0 69 33 02 77 8f 14 98 | .......@E/.....[/^<....|.i3.w... |
34c0 | cd 60 61 87 3e 6e 3b 70 3e e4 d9 5b e4 9b 28 87 7f f9 f0 9f f5 18 86 74 cc dc 8f ef 2e 8a 82 40 | .`a.>n;p>..[..(........t.......@ |
34e0 | 04 e7 fd 9f 03 f0 df e5 e7 7c fb 7f fb 8b 72 37 1e f6 1f 7c d3 6b e9 87 de f2 bf df 12 d6 fe cf | .........|....r7...|.k.......... |
3500 | 6f fa 1a e2 ba 79 91 70 f5 46 51 ff 7a 48 38 24 95 f8 b1 da 38 d1 28 2f 7f 71 5e e0 5d 80 00 b0 | o....y.p.FQ.zH8$....8.(/.q^.]... |
3520 | 14 d3 b6 ab 57 af e2 f2 e5 7b 36 04 3b c3 b0 7c a8 d6 cc 65 ba e5 72 89 d5 6a 78 1f 08 bc 73 d8 | ....W....{6.;..|...e..r..jx...s. |
3540 | dd ad fe 59 20 7c 94 8c f9 ab cc fc e2 d5 6a 65 4e 4e 4e 36 38 a3 7c 4f ec ec ec 6c cc 11 4c e5 | ...Y.|........jeNNN68.|O...l..L. |
3560 | 61 af aa c5 f0 be 08 21 f4 f7 54 55 55 d8 df df bf 25 02 05 62 89 51 44 2f a9 e2 21 6b 0b 4c a7 | a......!..TUU....%..b.QD/..!k.L. |
3580 | 05 1e 7c f0 c1 77 be f7 bd ef 7d ca d3 01 be 7b 0c c0 3a 57 cf 9b 83 1e 2f 05 18 32 ba c3 34 60 | ..|..w....}....{..:W..../..2..4` |
35a0 | 7b 36 e0 30 ec 4f 8b b5 fa ef 39 99 d4 30 cc 91 07 00 21 44 85 e1 97 bd f2 15 af 78 dd dd ee ed | {6.0.O....9..0....!D.......x.... |
35c0 | cf 3a fc e7 5e 07 aa f6 26 2f 2a aa e2 bb 4a 43 af ab 08 e7 2d 94 44 d2 64 e4 74 e7 0b 80 00 85 | .:..^...&/*...JC....-.D.d.t..... |
35e0 | 31 84 fd 99 05 83 31 99 d6 28 8a 12 cb e5 0a c7 c7 c7 b7 ac 70 db 3e b0 b9 79 27 87 e0 d6 e6 cd | 1.....1..(..........p.>..y'..... |
3600 | cf 89 2b 80 c2 09 ff 1f ad e7 7f 0a d0 4f 95 65 f9 87 65 59 06 e7 1c 8e 8e 8e 7a 72 30 a7 03 8b | ..+..........O.e..eY......zr0... |
3620 | c5 a2 27 19 93 ea cf d9 a4 40 da 26 05 87 8b 68 b3 11 c8 e9 40 de 41 10 cb 8c 04 e7 fc 25 ef e5 | ..'......@.&...h....@.A......%.. |
3640 | 21 11 fa d6 fd fd fd a7 25 12 b8 eb 84 40 71 b4 b3 7f 42 53 80 86 8d 3e c3 32 e0 d0 70 0c fe 80 | !.......%....@q...BS...>.2..p... |
3660 | 7c 71 be fc 4b bf 74 a2 aa 7b 84 b5 54 18 b6 40 61 0c 39 df bd 70 0c f8 37 f1 4f 5e f3 f5 b4 f3 | |q..K.t..{..T..@a.9..p..7.O^.... |
3680 | 25 e5 8b 82 98 37 06 d7 bc 2e 74 dd 05 51 8f e0 02 7c 08 00 51 1a 3e 1a 27 19 33 e2 02 d6 ff e8 | %....7....t..Q...|..Q.>.'.3..... |
36a0 | de 5d 7c e8 d1 55 dc cc 94 b8 80 eb d7 af 63 36 9b 6d 30 f0 c3 99 8e c3 39 90 79 f1 47 51 94 00 | .]|..U........c6.m0.....9.y.GQ.. |
36c0 | 62 8b 70 59 15 00 08 5e a8 fd c0 1f bd f7 e8 b9 cf 7d ee 2f ee ec ec 68 55 95 6f 04 f4 c5 6d db | b.pY...^.........}./...hU.o...m. |
36e0 | 9a e3 e3 e3 5b 94 80 59 2c 54 96 a5 b7 36 6a cd a3 27 df 74 36 43 f1 d8 76 24 b0 ed 68 e2 24 a2 | ....[..Y,T...6j..'.t6C..v$..h.$. |
3700 | e6 12 33 3d 54 d7 13 1c 1e 1e 3e e5 91 c0 5d 13 01 7c f4 5a 17 44 c4 c7 3d 81 b7 36 01 9d 75 f8 | ..3=T.....>...]..|.Z.D..=..6..u. |
3720 | b7 87 85 6e 4f 08 5e ff 5f 85 88 86 47 8f c4 01 c0 6f fe d6 6f ad 98 e8 84 28 6e c4 15 49 e5 c5 | ...nO.^._...G....o..o....(n..I.. |
3740 | b2 58 42 e9 6f bc ec 65 2f fb 9a f1 d8 af 71 f0 0d 3b 2f b4 b6 f8 6e 43 f2 7a 12 7f 51 7c 47 6d | .XB.o..e/.....q..;/...nC.z..Q|Gm |
3760 | e7 d1 ba 80 e0 d3 68 6e 26 14 65 5c 6d 56 16 16 45 61 70 6d de c6 5d 80 ab 16 de c7 14 ae 69 9a | ......hn&.e\mV..Eapm..].......i. |
3780 | 8d 25 1f c3 e5 1f db 11 5d de 03 98 8d 44 36 f0 75 69 31 61 b9 f4 cd 5f 7e d1 7e f8 c3 1f be 71 | .%......]....D6.ui1a..._~.~....q |
37a0 | e3 e6 d1 2f 12 e1 ed 55 55 fe 61 55 55 21 04 df ef 1c 5c 2e 97 38 3a 3a c2 95 2b 57 30 9f cf 9d | .../...UU.aUU!....\..8::..+W0... |
37c0 | 73 ce e6 2e c2 5c 71 d8 1e 22 33 4c 3d 89 a8 57 0c 1e 1e 1e 62 77 77 17 93 c9 a4 ef 5f 08 41 b0 | s....\q.."3L=..W....bww....._.A. |
37e0 | 5c ae 2e 35 6d f3 50 90 f0 ad 87 87 4f 2d 27 f0 8c 8e 00 de f3 cb df 6f 55 c3 81 ba a5 1e cd 17 | \..5m.P.....O-'........oU....... |
3800 | b8 7a 7d 89 e5 ca a1 69 96 80 7a 4c a6 3b e8 3a 47 2c 2e 7c e8 ca 92 ff f5 7b 4f 27 b2 25 a7 39 | .z}....i..zL.;.:G,.|.....{O'.%.9 |
3820 | 6b fc d7 76 a8 9f 6f 8e 33 3d 3f 01 12 02 48 5c f9 d5 2f 2a f7 fe ab bf f0 1f 17 37 16 64 df f3 | k..v..o.3=?...H\../*.......7.d.. |
3840 | 27 cb 73 ef 7f a4 01 93 81 68 40 59 4c d1 36 cb 89 0f 7e 62 ac f9 5f 7e fa 07 fe c2 97 9c 9e 2e | '.s......h@YL.6...~b.._~........ |
3860 | c1 10 54 65 8d aa 2c 50 16 15 6c 69 61 8b 02 cc 71 7b 51 70 01 9d f3 70 c1 c3 58 83 69 5d c1 10 | ..Te..,P..lia...q{Qp...p..X.i].. |
3880 | 83 10 e0 7c c0 aa 01 84 01 a8 41 e7 3c 96 cb 39 56 ab 25 24 04 ec 1f 1c 60 67 36 03 9b 38 6e bb | ...|......A.<..9V.%$....`g6..8n. |
38a0 | b0 8c 82 a3 07 25 c3 10 00 8b d5 1c d6 94 a8 ea ba f7 a4 ac 0c 66 05 b1 81 f3 0e 6d d3 a0 b0 25 | .....%...............f.....m...% |
38c0 | ac 2d 41 4c 30 05 f5 8b 39 0a ce 7b 01 08 ad eb 10 7c 1c b3 1d cb 5a 1e 2e 04 34 ce 03 4c 28 6c | .-AL0...9..{.....|....Z...4..L(l |
38e0 | 09 32 15 bc 13 10 03 95 35 7c 61 6f fa c2 c2 e0 3b 9c 74 af 55 df 1c ba ae 81 f3 01 9d 8f 2b b7 | .2......5|ao....;.t.U.........+. |
3900 | 88 10 17 99 f4 53 9f 19 06 0a 2b 69 2d a9 c6 09 c6 c0 ba 47 bf eb 3a 54 55 d5 ab 01 b3 87 1e 5e | .....S....+i-......G..:TU......^ |
3920 | cf 7c ad d7 33 21 08 21 78 54 c6 e2 60 ca a8 0a fa 72 2f e7 3e f8 c3 7f e3 79 8f 76 9d a7 77 ff | .|..3!.!xT..`....r/.>....y.v..w. |
3940 | f1 e2 37 1e 3b e1 1d 15 fb 9d 41 e4 05 ce 39 3b 9f cf e3 18 f5 e8 cd bd 31 a6 10 91 be 77 20 6f | ..7.;.....A...9;........1....w.o |
3960 | 24 ce 46 68 fb 1e ca 46 20 a7 0e db 11 67 36 5a ab d5 0a 8b c5 e2 12 80 87 ea aa c6 e1 e1 fe 53 | $.Fh...F.....g6Z...............S |
3980 |
SharedBuffer<u8> chunkdata(chunkdatasize);
memcpy(*chunkdata, &(p.data[headersize]), chunkdatasize);
// Set chunk data in buffer
sp->chunks[chunk_num] = chunkdata;
// If not all chunks are received, return empty buffer
if(sp->allReceived() == false)
return SharedBuffer<u8>();
// Calculate total size
u32 totalsize = 0;
core::map<u16, SharedBuffer<u8> >::Iterator i;
i = sp->chunks.getIterator();
for(; i.atEnd() == false; i++)
{
totalsize += i.getNode()->getValue().getSize();
}
SharedBuffer<u8> fulldata(totalsize);
// Copy chunks to data buffer
u32 start = 0;
for(u32 chunk_i=0; chunk_i<sp->chunk_count;
chunk_i++)
{
SharedBuffer<u8> buf = sp->chunks[chunk_i];
u16 chunkdatasize = buf.getSize();
memcpy(&fulldata[start], *buf, chunkdatasize);
start += chunkdatasize;;
}
// Remove sp from buffer
m_buf.remove(seqnum);
delete sp;
return fulldata;
}
void IncomingSplitBuffer::removeUnreliableTimedOuts(float dtime, float timeout)
{
core::list<u16> remove_queue;
core::map<u16, IncomingSplitPacket*>::Iterator i;
i = m_buf.getIterator();
for(; i.atEnd() == false; i++)
{
IncomingSplitPacket *p = i.getNode()->getValue();
// Reliable ones are not removed by timeout
if(p->reliable == true)
continue;
p->time += dtime;
if(p->time >= timeout)
remove_queue.push_back(i.getNode()->getKey());
}
core::list<u16>::Iterator j;
j = remove_queue.begin();
for(; j != remove_queue.end(); j++)
{
dout_con<<"NOTE: Removing timed out unreliable split packet"
<<std::endl;
delete m_buf[*j];
m_buf.remove(*j);
}
}
/*
Channel
*/
Channel::Channel()
{
next_outgoing_seqnum = SEQNUM_INITIAL;
next_incoming_seqnum = SEQNUM_INITIAL;
next_outgoing_split_seqnum = SEQNUM_INITIAL;
}
Channel::~Channel()
{
}
/*
Peer
*/
Peer::Peer(u16 a_id, Address a_address):
address(a_address),
id(a_id),
timeout_counter(0.0),
ping_timer(0.0),
resend_timeout(0.5),
avg_rtt(-1.0),
has_sent_with_id(false),
m_sendtime_accu(0),
m_max_packets_per_second(10),
m_num_sent(0),
m_max_num_sent(0)
{
}
Peer::~Peer()
{
}
void Peer::reportRTT(float rtt)
{
if(rtt >= 0.0){
if(rtt < 0.01){
if(m_max_packets_per_second < 400)
m_max_packets_per_second += 10;
} else if(rtt < 0.2){
if(m_max_packets_per_second < 100)
m_max_packets_per_second += 2;
} else {
m_max_packets_per_second *= 0.8;
if(m_max_packets_per_second < 10)
m_max_packets_per_second = 10;
}
}
if(rtt < -0.999)
{}
else if(avg_rtt < 0.0)
avg_rtt = rtt;
else
avg_rtt = rtt * 0.1 + avg_rtt * 0.9;
// Calculate resend_timeout
/*int reliable_count = 0;
for(int i=0; i<CHANNEL_COUNT; i++)
{
reliable_count += channels[i].outgoing_reliables.size();
}
float timeout = avg_rtt * RESEND_TIMEOUT_FACTOR
* ((float)reliable_count * 1);*/
float timeout = avg_rtt * RESEND_TIMEOUT_FACTOR;
if(timeout < RESEND_TIMEOUT_MIN)
timeout = RESEND_TIMEOUT_MIN;
if(timeout > RESEND_TIMEOUT_MAX)
timeout = RESEND_TIMEOUT_MAX;
resend_timeout = timeout;
}
/*
Connection
*/
Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout):
m_protocol_id(protocol_id),
m_max_packet_size(max_packet_size),
m_timeout(timeout),
m_peer_id(0),
m_bc_peerhandler(NULL),
m_bc_receive_timeout(0),
m_indentation(0)
{
m_socket.setTimeoutMs(5);
Start();
}
Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
PeerHandler *peerhandler):
m_protocol_id(protocol_id),
m_max_packet_size(max_packet_size),
m_timeout(timeout),
m_peer_id(0),
m_bc_peerhandler(peerhandler),
m_bc_receive_timeout(0),
m_indentation(0)
{
m_socket.setTimeoutMs(5);
Start();
}
Connection::~Connection()
{
stop();
// Delete peers
for(core::map<u16, Peer*>::Iterator
j = m_peers.getIterator();
j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
delete peer;
}
}
/* Internal stuff */
void * Connection::Thread()
{
ThreadStarted();
log_register_thread("Connection");
dout_con<<"Connection thread started"<<std::endl;
u32 curtime = porting::getTimeMs();
u32 lasttime = curtime;
while(getRun())
{
BEGIN_DEBUG_EXCEPTION_HANDLER
lasttime = curtime;
curtime = porting::getTimeMs();
float dtime = (float)(curtime - lasttime) / 1000.;
if(dtime > 0.1)
dtime = 0.1;
if(dtime < 0.0)
dtime = 0.0;
runTimeouts(dtime);
while(m_command_queue.size() != 0){
ConnectionCommand c = m_command_queue.pop_front();
processCommand(c);
}
send(dtime);
receive();
END_DEBUG_EXCEPTION_HANDLER(derr_con);
}
return NULL;
}
void Connection::putEvent(ConnectionEvent &e)
{
assert(e.type != CONNEVENT_NONE);
m_event_queue.push_back(e);
}
void Connection::processCommand(ConnectionCommand &c)
{
switch(c.type){
case CONNCMD_NONE:
dout_con<<getDesc()<<" processing CONNCMD_NONE"<<std::endl;
return;
case CONNCMD_SERVE:
dout_con<<getDesc()<<" processing CONNCMD_SERVE port="
<<c.port<<std::endl;
serve(c.port);
return;
case CONNCMD_CONNECT:
dout_con<<getDesc()<<" processing CONNCMD_CONNECT"<<std::endl;
connect(c.address);
return;
case CONNCMD_DISCONNECT:
dout_con<<getDesc()<<" processing CONNCMD_DISCONNECT"<<std::endl;
disconnect();
return;
case CONNCMD_SEND:
dout_con<<getDesc()<<" processing CONNCMD_SEND"<<std::endl;
send(c.peer_id, c.channelnum, c.data, c.reliable);
return;
case CONNCMD_SEND_TO_ALL:
dout_con<<getDesc()<<" processing CONNCMD_SEND_TO_ALL"<<std::endl;
sendToAll(c.channelnum, c.data, c.reliable);
return;
case CONNCMD_DELETE_PEER:
dout_con<<getDesc()<<" processing CONNCMD_DELETE_PEER"<<std::endl;
deletePeer(c.peer_id, false);
return;
}
}
void Connection::send(float dtime)
{
for(core::map<u16, Peer*>::Iterator
j = m_peers.getIterator();
j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
peer->m_sendtime_accu += dtime;
peer->m_num_sent = 0;
peer->m_max_num_sent = peer->m_sendtime_accu *
peer->m_max_packets_per_second;
}
Queue<OutgoingPacket> postponed_packets;
while(m_outgoing_queue.size() != 0){
OutgoingPacket packet = m_outgoing_queue.pop_front();
Peer *peer = getPeerNoEx(packet.peer_id);
if(!peer)
continue;
if(peer->channels[packet.channelnum].outgoing_reliables.size() >= 5){
postponed_packets.push_back(packet);
} else if(peer->m_num_sent < peer->m_max_num_sent){
rawSendAsPacket(packet.peer_id, packet.channelnum,
packet.data, packet.reliable);
peer->m_num_sent++;
} else {
postponed_packets.push_back(packet);
}
}
while(postponed_packets.size() != 0){
m_outgoing_queue.push_back(postponed_packets.pop_front());
}
for(core::map<u16, Peer*>::Iterator
j = m_peers.getIterator();
j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
peer->m_sendtime_accu -= (float)peer->m_num_sent /
peer->m_max_packets_per_second;
if(peer->m_sendtime_accu > 10. / peer->m_max_packets_per_second)
peer->m_sendtime_accu = 10. / peer->m_max_packets_per_second;
}
}
// Receive packets from the network and buffers and create ConnectionEvents
void Connection::receive()
{
u32 datasize = m_max_packet_size * 2; // Double it just to be safe
// TODO: We can not know how many layers of header there are.
// For now, just assume there are no other than the base headers.
u32 packet_maxsize = datasize + BASE_HEADER_SIZE;
SharedBuffer<u8> packetdata(packet_maxsize);
bool single_wait_done = false;
for(;;)
{
try{
/* Check if some buffer has relevant data */
{
u16 peer_id;
SharedBuffer<u8> resultdata;
bool got = getFromBuffers(peer_id, resultdata);
if(got){
ConnectionEvent e;
e.dataReceived(peer_id, resultdata);
putEvent(e);
continue;
}
}
if(single_wait_done){
if(m_socket.WaitData(0) == false)
break;
}
single_wait_done = true;
Address sender;
s32 received_size = m_socket.Receive(sender, *packetdata, packet_maxsize);
if(received_size < 0)
break;
if(received_size < BASE_HEADER_SIZE)
continue;
if(readU32(&packetdata[0]) != m_protocol_id)
continue;
u16 peer_id = readPeerId(*packetdata);
u8 channelnum = readChannel(*packetdata);
if(channelnum > CHANNEL_COUNT-1){
PrintInfo(derr_con);
derr_con<<"Receive(): Invalid channel "<<channelnum<<std::endl;
throw InvalidIncomingDataException("Channel doesn't exist");
}
if(peer_id == PEER_ID_INEXISTENT)
{
/*
Somebody is trying to send stuff to us with no peer id.
Check if the same address and port was added to our peer
list before.
Allow only entries that have has_sent_with_id==false.
*/
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
if(peer->has_sent_with_id)
continue;
if(peer->address == sender)
break;
}
/*
If no peer was found with the same address and port,
we shall assume it is a new peer and create an entry.
*/
if(j.atEnd())
{
// Pass on to adding the peer
}
// Else: A peer was found.
else
{
Peer *peer = j.getNode()->getValue();
peer_id = peer->id;
PrintInfo(derr_con);
derr_con<<"WARNING: Assuming unknown peer to be "
<<"peer_id="<<peer_id<<std::endl;
}
}
/*
The peer was not found in our lists. Add it.
*/
if(peer_id == PEER_ID_INEXISTENT)
{
// Somebody wants to make a new connection
// Get a unique peer id (2 or higher)
u16 peer_id_new = 2;
/*
Find an unused peer id
*/
bool out_of_ids = false;
for(;;)
{
// Check if exists
if(m_peers.find(peer_id_new) == NULL)
break;
// Check for overflow
if(peer_id_new == 65535){
out_of_ids = true;
break;
}
peer_id_new++;
}
if(out_of_ids){
errorstream<<getDesc()<<" ran out of peer ids"<<std::endl;
continue;
}
PrintInfo();
dout_con<<"Receive(): Got a packet with peer_id=PEER_ID_INEXISTENT,"
" giving peer_id="<<peer_id_new<<std::endl;
// Create a peer
Peer *peer = new Peer(peer_id_new, sender);
m_peers.insert(peer->id, peer);
// Create peer addition event
ConnectionEvent e;
e.peerAdded(peer_id_new, sender);
putEvent(e);
// Create CONTROL packet to tell the peer id to the new peer.
SharedBuffer<u8> reply(4);
writeU8(&reply[0], TYPE_CONTROL);
writeU8(&reply[1], CONTROLTYPE_SET_PEER_ID);
writeU16(&reply[2], peer_id_new);
sendAsPacket(peer_id_new, 0, reply, true);
// We're now talking to a valid peer_id
peer_id = peer_id_new;
// Go on and process whatever it sent
}
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
if(node == NULL)
{
// Peer not found
// This means that the peer id of the sender is not PEER_ID_INEXISTENT
// and it is invalid.
PrintInfo(derr_con);
derr_con<<"Receive(): Peer not found"<<std::endl;
throw InvalidIncomingDataException("Peer not found (possible timeout)");
}
Peer *peer = node->getValue();
// Validate peer address
if(peer->address != sender)
{
PrintInfo(derr_con);
derr_con<<"Peer "<<peer_id<<" sending from different address."
" Ignoring."<<std::endl;
continue;
}
peer->timeout_counter = 0.0;
Channel *channel = &(peer->channels[channelnum]);
// Throw the received packet to channel->processPacket()
// Make a new SharedBuffer from the data without the base headers
SharedBuffer<u8> strippeddata(received_size - BASE_HEADER_SIZE);
memcpy(*strippeddata, &packetdata[BASE_HEADER_SIZE],
strippeddata.getSize());
try{
// Process it (the result is some data with no headers made by us)
SharedBuffer<u8> resultdata = processPacket
(channel, strippeddata, peer_id, channelnum, false);
PrintInfo();
dout_con<<"ProcessPacket returned data of size "
<<resultdata.getSize()<<std::endl;
ConnectionEvent e;
e.dataReceived(peer_id, resultdata);
putEvent(e);
continue;
}catch(ProcessedSilentlyException &e){
}
}catch(InvalidIncomingDataException &e){
}
catch(ProcessedSilentlyException &e){
}
} // for
}
void Connection::runTimeouts(float dtime)
{
core::list<u16> timeouted_peers;
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
/*
Check peer timeout
*/
peer->timeout_counter += dtime;
if(peer->timeout_counter > m_timeout)
{
PrintInfo(derr_con);
derr_con<<"RunTimeouts(): Peer "<<peer->id
<<" has timed out."
<<" (source=peer->timeout_counter)"
<<std::endl;
// Add peer to the list
timeouted_peers.push_back(peer->id);
// Don't bother going through the buffers of this one
continue;
}
float resend_timeout = peer->resend_timeout;
for(u16 i=0; i<CHANNEL_COUNT; i++)
{
core::list<BufferedPacket> timed_outs;
core::list<BufferedPacket>::Iterator j;
Channel *channel = &peer->channels[i];
// Remove timed out incomplete unreliable split packets
channel->incoming_splits.removeUnreliableTimedOuts(dtime, m_timeout);
// Increment reliable packet times
channel->outgoing_reliables.incrementTimeouts(dtime);
// Check reliable packet total times, remove peer if
// over timeout.
if(channel->outgoing_reliables.anyTotaltimeReached(m_timeout))
{
PrintInfo(derr_con);
derr_con<<"RunTimeouts(): Peer "<<peer->id
<<" has timed out."
<<" (source=reliable packet totaltime)"
<<std::endl;
// Add peer to the to-be-removed list
timeouted_peers.push_back(peer->id);
goto nextpeer;
}
// Re-send timed out outgoing reliables
timed_outs = channel->
outgoing_reliables.getTimedOuts(resend_timeout);
channel->outgoing_reliables.resetTimedOuts(resend_timeout);
j = timed_outs.begin();
for(; j != timed_outs.end(); j++)
{
u16 peer_id = readPeerId(*(j->data));
u8 channel = readChannel(*(j->data));
u16 seqnum = readU16(&(j->data[BASE_HEADER_SIZE+1]));
PrintInfo(derr_con);
derr_con<<"RE-SENDING timed-out RELIABLE to ";
j->address.print(&derr_con);
derr_con<<"(t/o="<<resend_timeout<<"): "
<<"from_peer_id="<<peer_id
<<", channel="<<((int)channel&0xff)
<<", seqnum="<<seqnum
<<std::endl;
rawSend(*j);
// Enlarge avg_rtt and resend_timeout:
// The rtt will be at least the timeout.
// NOTE: This won't affect the timeout of the next
// checked channel because it was cached.
peer->reportRTT(resend_timeout);
}
}
/*
Send pings
*/
peer->ping_timer += dtime;
if(peer->ping_timer >= 5.0)
{
// Create and send PING packet
SharedBuffer<u8> data(2);
writeU8(&data[0], TYPE_CONTROL);
writeU8(&data[1], CONTROLTYPE_PING);
rawSendAsPacket(peer->id, 0, data, true);
peer->ping_timer = 0.0;
}
nextpeer:
continue;
}
// Remove timed out peers
core::list<u16>::Iterator i = timeouted_peers.begin();
for(; i != timeouted_peers.end(); i++)
{
PrintInfo(derr_con);
derr_con<<"RunTimeouts(): Removing peer "<<(*i)<<std::endl;
deletePeer(*i, true);
}
}
void Connection::serve(u16 port)
{
dout_con<<getDesc()<<" serving at port "<<port<<std::endl;
try{
m_socket.Bind(port);
m_peer_id = PEER_ID_SERVER;
}
catch(SocketException &e){
// Create event
ConnectionEvent ce;
ce.bindFailed();
putEvent(ce);
}
}
void Connection::connect(Address address)
{
dout_con<<getDesc()<<" connecting to "<<address.serializeString()
<<":"<<address.getPort()<<std::endl;
core::map<u16, Peer*>::Node *node = m_peers.find(PEER_ID_SERVER);
if(node != NULL){
throw ConnectionException("Already connected to a server");
}
Peer *peer = new Peer(PEER_ID_SERVER, address);
m_peers.insert(peer->id, peer);
// Create event
ConnectionEvent e;
e.peerAdded(peer->id, peer->address);
putEvent(e);
m_socket.Bind(0);
// Send a dummy packet to server with peer_id = PEER_ID_INEXISTENT
m_peer_id = PEER_ID_INEXISTENT;
SharedBuffer<u8> data(0);
Send(PEER_ID_SERVER, 0, data, true);
}
void Connection::disconnect()
{
dout_con<<getDesc()<<" disconnecting"<<std::endl;
// Create and send DISCO packet
SharedBuffer<u8> data(2);
writeU8(&data[0], TYPE_CONTROL);
writeU8(&data[1], CONTROLTYPE_DISCO);
// Send to all
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
rawSendAsPacket(peer->id, 0, data, false);
}
}
void Connection::sendToAll(u8 channelnum, SharedBuffer<u8> data, bool reliable)
{
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
send(peer->id, channelnum, data, reliable);
}
}
void Connection::send(u16 peer_id, u8 channelnum,
SharedBuffer<u8> data, bool reliable)
{
dout_con<<getDesc()<<" sending to peer_id="<<peer_id<<std::endl;
assert(channelnum < CHANNEL_COUNT);
Peer *peer = getPeerNoEx(peer_id);
if(peer == NULL)
return;
Channel *channel = &(peer->channels[channelnum]);
u32 chunksize_max = m_max_packet_size - BASE_HEADER_SIZE;
if(reliable)
chunksize_max -= RELIABLE_HEADER_SIZE;
core::list<SharedBuffer<u8> > originals;
originals = makeAutoSplitPacket(data, chunksize_max,
channel->next_outgoing_split_seqnum);
core::list<SharedBuffer<u8> >::Iterator i;
i = originals.begin();
for(; i != originals.end(); i++)
{
SharedBuffer<u8> original = *i;
sendAsPacket(peer_id, channelnum, original, reliable);
}
}
void Connection::sendAsPacket(u16 peer_id, u8 channelnum,
SharedBuffer<u8> data, bool reliable)
{
OutgoingPacket packet(peer_id, channelnum, data, reliable);
m_outgoing_queue.push_back(packet);
}
void Connection::rawSendAsPacket(u16 peer_id, u8 channelnum,
SharedBuffer<u8> data, bool reliable)
{
Peer *peer = getPeerNoEx(peer_id);
if(!peer)
return;
Channel *channel = &(peer->channels[channelnum]);
if(reliable)
{
u16 seqnum = channel->next_outgoing_seqnum;
channel->next_outgoing_seqnum++;
SharedBuffer<u8> reliable = makeReliablePacket(data, seqnum);
// Add base headers and make a packet
BufferedPacket p = makePacket(peer->address, reliable,
m_protocol_id, m_peer_id, channelnum);
try{
// Buffer the packet
channel->outgoing_reliables.insert(p);
}
catch(AlreadyExistsException &e)
{
PrintInfo(derr_con);
derr_con<<"WARNING: Going to send a reliable packet "
"seqnum="<<seqnum<<" that is already "
"in outgoing buffer"<<std::endl;
//assert(0);
}
// Send the packet
rawSend(p);
}
else
{
// Add base headers and make a packet
BufferedPacket p = makePacket(peer->address, data,
m_protocol_id, m_peer_id, channelnum);
// Send the packet
rawSend(p);
}
}
void Connection::rawSend(const BufferedPacket &packet)
{
try{
m_socket.Send(packet.address, *packet.data, packet.data.getSize());
} catch(SendFailedException &e){
derr_con<<"Connection::rawSend(): SendFailedException: "
<<packet.address.serializeString()<<std::endl;
}
}
Peer* Connection::getPeer(u16 peer_id)
{
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
if(node == NULL){
throw PeerNotFoundException("GetPeer: Peer not found (possible timeout)");
}
// Error checking
assert(node->getValue()->id == peer_id);
return node->getValue();
}
Peer* Connection::getPeerNoEx(u16 peer_id)
{
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
if(node == NULL){
return NULL;
}
// Error checking
assert(node->getValue()->id == peer_id);
return node->getValue();
}
core::list<Peer*> Connection::getPeers()
{
core::list<Peer*> list;
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
list.push_back(peer);
}
return list;
}
bool Connection::getFromBuffers(u16 &peer_id, SharedBuffer<u8> &dst)
{
core::map<u16, Peer*>::Iterator j;
j = m_peers.getIterator();
for(; j.atEnd() == false; j++)
{
Peer *peer = j.getNode()->getValue();
for(u16 i=0; i<CHANNEL_COUNT; i++)
{
Channel *channel = &peer->channels[i];
SharedBuffer<u8> resultdata;
bool got = checkIncomingBuffers(channel, peer_id, resultdata);
if(got){
dst = resultdata;
return true;
}
}
}
return false;
}
bool Connection::checkIncomingBuffers(Channel *channel, u16 &peer_id,
SharedBuffer<u8> &dst)
{
u16 firstseqnum = 0;
// Clear old packets from start of buffer
try{
for(;;){
firstseqnum = channel->incoming_reliables.getFirstSeqnum();
if(seqnum_higher(channel->next_incoming_seqnum, firstseqnum))
channel->incoming_reliables.popFirst();
else
break;
}
// This happens if all packets are old
}catch(con::NotFoundException)
{}
if(channel->incoming_reliables.empty() == false)
{
if(firstseqnum == channel->next_incoming_seqnum)
{
BufferedPacket p = channel->incoming_reliables.popFirst();
peer_id = readPeerId(*p.data);
u8 channelnum = readChannel(*p.data);
u16 seqnum = readU16(&p.data[BASE_HEADER_SIZE+1]);
PrintInfo();
dout_con<<"UNBUFFERING TYPE_RELIABLE"
<<" seqnum="<<seqnum
<<" peer_id="<<peer_id
<<" channel="<<((int)channelnum&0xff)
<<std::endl;
channel->next_incoming_seqnum++;
u32 headers_size = BASE_HEADER_SIZE + RELIABLE_HEADER_SIZE;
// Get out the inside packet and re-process it
SharedBuffer<u8> payload(p.data.getSize() - headers_size);
memcpy(*payload, &p.data[headers_size], payload.getSize());
dst = processPacket(channel, payload, peer_id, channelnum, true);
return true;
}
}
return false;
}
SharedBuffer<u8> Connection::processPacket(Channel *channel,
SharedBuffer<u8> packetdata, u16 peer_id,
u8 channelnum, bool reliable)
{
IndentationRaiser iraiser(&(m_indentation));
if(packetdata.getSize() < 1)
throw InvalidIncomingDataException("packetdata.getSize() < 1");
u8 type = readU8(&packetdata[0]);
if(type == TYPE_CONTROL)
{
if(packetdata.getSize() < 2)
throw InvalidIncomingDataException("packetdata.getSize() < 2");
u8 controltype = readU8(&packetdata[1]);
if(controltype == CONTROLTYPE_ACK)
{
if(packetdata.getSize() < 4)
throw InvalidIncomingDataException
("packetdata.getSize() < 4 (ACK header size)");
u16 seqnum = readU16(&packetdata[2]);
PrintInfo();
dout_con<<"Got CONTROLTYPE_ACK: channelnum="
<<((int)channelnum&0xff)<<", peer_id="<<peer_id
<<", seqnum="<<seqnum<<std::endl;
try{
BufferedPacket p = channel->outgoing_reliables.popSeqnum(seqnum);
// Get round trip time
float rtt = p.totaltime;
// Let peer calculate stuff according to it
// (avg_rtt and resend_timeout)
Peer *peer = getPeer(peer_id);
peer->reportRTT(rtt);
//PrintInfo(dout_con);
//dout_con<<"RTT = "<<rtt<<std::endl;
/*dout_con<<"OUTGOING: ";
PrintInfo();
channel->outgoing_reliables.print();
dout_con<<std::endl;*/
}
catch(NotFoundException &e){
PrintInfo(derr_con);
derr_con<<"WARNING: ACKed packet not "
"in outgoing queue"
<<std::endl;
}
throw ProcessedSilentlyException("Got an ACK");
}
else if(controltype == CONTROLTYPE_SET_PEER_ID)
{
if(packetdata.getSize() < 4)
throw InvalidIncomingDataException
("packetdata.getSize() < 4 (SET_PEER_ID header size)");
u16 peer_id_new = readU16(&packetdata[2]);
PrintInfo();
dout_con<<"Got new peer id: "<<peer_id_new<<"... "<<std::endl;
if(GetPeerID() != PEER_ID_INEXISTENT)
{
PrintInfo(derr_con);
derr_con<<"WARNING: Not changing"
" existing peer id."<<std::endl;
}
else
{
dout_con<<"changing."<<std::endl;
SetPeerID(peer_id_new);
}
throw ProcessedSilentlyException("Got a SET_PEER_ID");
}
else if(controltype == CONTROLTYPE_PING)
{
// Just ignore it, the incoming data already reset
// the timeout counter
PrintInfo();
dout_con<<"PING"<<std::endl;
throw ProcessedSilentlyException("Got a PING");
}
else if(controltype == CONTROLTYPE_DISCO)
{
// Just ignore it, the incoming data already reset
// the timeout counter
PrintInfo();
dout_con<<"DISCO: Removing peer "<<(peer_id)<<std::endl;
if(deletePeer(peer_id, false) == false)
{
PrintInfo(derr_con);
derr_con<<"DISCO: Peer not found"<<std::endl;
}
throw ProcessedSilentlyException("Got a DISCO");
}
else{
PrintInfo(derr_con);
derr_con<<"INVALID TYPE_CONTROL: invalid controltype="
<<((int)controltype&0xff)<<std::endl;
throw InvalidIncomingDataException("Invalid control type");
}
}
else if(type == TYPE_ORIGINAL)
{
if(packetdata.getSize() < ORIGINAL_HEADER_SIZE)
throw InvalidIncomingDataException
("packetdata.getSize() < ORIGINAL_HEADER_SIZE");
PrintInfo();
dout_con<<"RETURNING TYPE_ORIGINAL to user"
<<std::endl;
// Get the inside packet out and return it
SharedBuffer<u8> payload(packetdata.getSize() - ORIGINAL_HEADER_SIZE);
memcpy(*payload, &packetdata[ORIGINAL_HEADER_SIZE], payload.getSize());
return payload;
}
else if(type == TYPE_SPLIT)
{
// We have to create a packet again for buffering
// This isn't actually too bad an idea.
BufferedPacket packet = makePacket(
getPeer(peer_id)->address,
packetdata,
GetProtocolID(),
peer_id,
channelnum);
// Buffer the packet
SharedBuffer<u8> data = channel->incoming_splits.insert(packet, reliable);
if(data.getSize() != 0)
{
PrintInfo();
dout_con<<"RETURNING TYPE_SPLIT: Constructed full data, "
<<"size="<<data.getSize()<<std::endl;
return data;
}
PrintInfo();
dout_con<<"BUFFERED TYPE_SPLIT"<<std::endl;
throw ProcessedSilentlyException("Buffered a split packet chunk");
}
else if(type == TYPE_RELIABLE)
{
// Recursive reliable packets not allowed
assert(reliable == false);
if(packetdata.getSize() < RELIABLE_HEADER_SIZE)
throw InvalidIncomingDataException
("packetdata.getSize() < RELIABLE_HEADER_SIZE");
u16 seqnum = readU16(&packetdata[1]);
bool is_future_packet = seqnum_higher(seqnum, channel->next_incoming_seqnum);
bool is_old_packet = seqnum_higher(channel->next_incoming_seqnum, seqnum);
PrintInfo();
if(is_future_packet)
dout_con<<"BUFFERING";
else if(is_old_packet)
dout_con<<"OLD";
else
dout_con<<"RECUR";
dout_con<<" TYPE_RELIABLE seqnum="<<seqnum
<<" next="<<channel->next_incoming_seqnum;
dout_con<<" [sending CONTROLTYPE_ACK"
" to peer_id="<<peer_id<<"]";
dout_con<<std::endl;
//DEBUG
//assert(channel->incoming_reliables.size() < 100);
// Send a CONTROLTYPE_AC |