ofs | hex dump | ascii |
---|
0000 | 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 03 20 00 00 02 32 08 06 00 00 00 33 19 ae | .PNG........IHDR.......2.....3.. |
0020 | 4c 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 0b 13 00 | L....bKGD..............pHYs..... |
0040 | 00 0b 13 01 00 9a 9c 18 00 00 00 07 74 49 4d 45 07 e1 05 09 0a 0b 27 ef 4d 4b 0b 00 00 00 19 74 | ............tIME......'.MK.....t |
0060 | 45 58 74 43 6f 6d 6d 65 6e 74 00 43 72 65 61 74 65 64 20 77 69 74 68 20 47 49 4d 50 57 81 0e 17 | EXtComment.Created.with.GIMPW... |
0080 | 00 00 20 00 49 44 41 54 78 da ec dd 77 78 15 55 fa c0 f1 ef cc dc 96 9b de 08 21 09 84 12 7a 6f | ....IDATx...wx.U..........!...zo |
00a0 | 22 45 9a 05 b0 20 a0 80 65 5d 2b b6 15 5d cb da cb da 60 ed 6d 7f d8 db 0a 36 44 11 51 aa 48 93 | "E......e]+..]....`.m....6D.Q.H. |
00c0 | 22 bd f7 d0 42 20 bd 27 f7 de 99 39 bf 3f 12 81 14 d8 a0 c1 05 79 3f cf 93 47 b9 33 73 e6 cc cc | "...B..'...9.?.......y?..G.3s... |
00e0 | 99 e4 bc f7 34 4d 29 a5 10 42 08 21 84 10 42 88 3f 80 2e b7 40 08 21 84 10 42 08 21 01 88 10 42 | ....4M)..B.!..B.?...@.!..B.!...B |
0100 | 08 21 84 10 42 02 10 21 84 10 42 08 21 84 90 00 44 08 21 84 10 42 08 21 01 88 10 42 08 21 84 10 | .!..B..!..B.!...D.!..B.!...B.!.. |
0120 | 42 48 00 22 84 10 42 08 21 84 90 00 44 08 21 84 10 42 08 21 01 88 10 42 08 21 84 10 42 48 00 22 | BH."..B.!...D.!..B.!...B.!..BH." |
0140 | 84 10 42 08 21 84 90 00 44 08 21 84 10 42 08 21 24 00 11 42 08 21 84 10 42 48 00 22 84 10 42 08 | ..B.!...D.!..B.!$..B.!..BH."..B. |
0160 | 21 84 90 00 44 08 21 84 10 42 08 21 24 00 11 42 08 21 84 10 42 48 00 22 84 10 42 08 21 84 10 12 | !...D.!..B.!$..B.!..BH."..B.!... |
0180 | 80 08 21 84 10 42 08 21 24 00 11 42 08 21 84 10 42 48 00 22 84 10 42 08 21 84 10 12 80 08 21 84 | ..!..B.!$..B.!..BH."..B.!.....!. |
01a0 | 10 42 08 21 24 00 11 7f 1a 85 d9 7b d9 be 6d 07 59 be df 70 b0 3f 97 9d 3b 77 b2 27 2d 83 80 fa | .B.!$......{..m.Y..p.?..;w.'-... |
01c0 | 0d c7 5b 7e 0e ed df c9 8e 1d 7b 29 51 75 79 55 16 99 a9 5b d9 99 9e 8b aa 94 dd bd 6c db b6 93 | ..[~......{)QuyU...[........l... |
01e0 | ac 22 df 29 fd 4c ac 82 74 b6 ef d8 45 46 be 5f 0a a8 10 42 08 21 4e 7b 9a 52 4a c9 6d 38 05 94 | .".).L..t...EF._...B.!N{.RJ.m8.. |
0200 | 6c e5 a5 17 3e e2 40 61 00 ed a8 8f 6d cd 49 bd a4 e6 f4 3e ff 22 7a b5 88 39 b9 79 50 36 ef dd | l...>.@a....m.I....>."z..9.yP6.. |
0220 | d9 90 1b 5f 4f e3 86 65 26 ef 76 37 00 c8 5d ff 01 4f be b3 1e 87 db 38 c6 61 26 9d ae 79 8e ab | ..._O..e&.v7..]..O.....8.a&..y.. |
0240 | f4 a7 d0 da 3f 45 54 87 2b 58 be 7c 12 4d 5d 27 58 d1 ce de c0 b0 b3 db 31 6d 7b 22 d3 cb f6 31 | ....?ET.+X.|.M]'X.......1m{"...1 |
0260 | c4 5d 37 97 65 6f 7e 85 f8 d6 7f a7 f1 3d 9f b2 e8 f9 d1 38 2a 6e f0 86 c7 1b d0 ee c9 74 6e 98 | .]7.eo~......=.....8*n.......tn. |
0280 | b4 82 77 af e8 72 a2 37 0b 2a 3d a9 df b2 47 ed 98 6b 5f 24 ba e3 bd 34 ba fe df 2c 7a e7 36 c2 | ..w..r.7.*=...G..k_$...4...,z.6. |
02a0 | e4 6b 03 21 84 10 42 9c c6 1c 72 0b 4e 11 65 bb f9 f0 df 2f b3 3e a3 ac fa 36 dd 81 cb 1d c5 b0 | .k.!..B...r.N.e..../.>...6...... |
02c0 | 27 27 f1 d9 bd 03 4f 6a 36 9c 9e 10 00 3c 47 c5 1a f9 db be e2 95 d7 a7 1f f7 b8 61 9d fe c9 55 | ''....Oj6....<G............a...U |
02e0 | 5d ca 8b 93 d3 69 fc b6 68 58 d3 09 0a d1 81 90 3a 2c 98 39 3c 76 f9 63 64 c4 b7 e3 dd 5b 86 1f | ]....i..hX......:,.9<v.cd....[.. |
0300 | 0e 3e 00 0c 77 28 90 45 90 b3 76 35 7a 55 b0 93 5b 47 f6 e1 d3 c5 71 7c 72 60 35 17 87 56 dd 21 | .>..w(.E..v5zU..[G....q|r`5..V.! |
0320 | c0 3b b7 b6 e4 b6 b7 6d de d8 9b ca cd 89 75 f4 92 76 b8 87 c9 37 8d e3 fc 77 de 62 de 7d a3 19 | .;.....m......u..v...7...w.b.}.. |
0340 | da 32 4a de 17 21 84 10 42 48 00 22 7e 3f 4d d7 c1 1b c3 9d 2f 7e ce a8 8e 41 60 5b 14 1c d8 c4 | .2J..!..BH."~?M...../~...A`[.... |
0360 | 97 13 5e e6 d3 1f b7 f0 f9 7d c3 49 e9 b3 8f a7 ce 0a fb 83 33 56 5e 6b 77 f6 7f 9c 59 ff ec 8b | ..^......}.I........3V^kw...Y... |
0380 | e5 b3 2a 75 65 42 69 24 74 f4 42 c4 df d8 ba f1 32 b4 90 68 1a 3a 4f 8d 7b 9a 37 eb 25 fe b5 a5 | ..*ueBi$t.B.....2..h.:O.{.7.%... |
03a0 | 90 f6 17 dd cc 80 66 ae df 97 98 b2 28 cc cf a1 a0 c8 85 bf c6 76 43 45 59 51 0e a6 b2 29 b3 eb | ......f.....(........vCEYQ...).. |
03c0 | f6 3a ce 79 ec 0d 9a bc 73 05 7f 9b b0 90 a1 af 0e 95 97 45 08 21 84 10 12 80 88 3a 62 b8 68 de | .:.y....s..........E.!.....:b.h. |
03e0 | a9 17 67 9f f5 6b ff a3 de 5c 70 d9 5f e9 72 75 13 6e 9b 78 80 67 ef ff 86 27 7f ba a6 4e ba f6 | ..g..k...\p._.ru.n.x.g...'...N.. |
0400 | 9c 28 4f 52 57 fa f5 e9 7f 9c 3d a2 68 de fa 14 fa 76 de ce e3 dd 4f 66 60 5a d0 ff ae 31 04 ff | .(ORW.....=.h....v....Of`Z...1.. |
0420 | f6 c8 03 d0 d0 c2 23 70 3b 34 c0 20 a4 a6 18 50 73 e1 75 6b 80 86 37 a2 86 34 d4 91 60 ee 44 b9 | ......#p;4.....Ps.uk..7..4..`.D. |
0440 | e2 06 73 d5 f9 2e 9e 7a ed 9f cc 18 37 94 41 5e 79 55 84 10 42 08 71 7a 92 de e4 a7 20 cb 34 ab | ..s....z....7.A^yU..B.qz......4. |
0460 | 7c e2 a6 f7 c8 ab 08 06 ec f5 f3 48 ab e1 98 f4 85 ef 70 45 bf b6 44 84 06 13 1c 12 4e cb 9e 23 | |..........H......pE..D.....N..# |
0480 | 78 73 fe be 63 9e a3 60 d7 6c c6 9c db 8e f0 60 2f 61 d1 8d 19 f1 e0 44 f2 34 fd b8 05 42 d9 d6 | xs..c..`.l.....`/a.....D.4...B.. |
04a0 | f1 33 be 61 3c a1 21 c1 b4 1c 78 0b bb 03 95 37 99 e9 0b b9 7f f4 39 24 44 84 e2 f5 7a 09 8d aa | .3.a<.!...x....7......9$D...z... |
04c0 | 4f 97 01 97 f3 d4 fb b3 c8 36 6b 88 c3 0c 38 b0 e0 5d 2e ee 9c 84 c7 e5 21 22 b1 1d 63 5e 9c 45 | O........6k...8..]......!"..c^.E |
04e0 | c9 09 dc 47 df a1 5d 2c 58 b0 12 9c 17 32 a6 df 71 9a 64 34 03 cc 34 5e 19 33 90 b8 f0 10 82 43 | ...G..],X....2..q.d4..4^.3.....C |
0500 | a2 e8 7e d9 43 ac c9 fe f5 22 34 58 7b 2f 1e 2d 9e 8f 7e 2e 03 52 b9 c4 1b 8c d7 eb c5 eb f5 52 | ..~.C...."4X{/.-..~..R.........R |
0520 | bf f7 e5 6c d9 f0 36 71 9e 20 6e f9 28 0f 28 e0 f6 38 2f c1 15 db c3 eb 37 66 52 9a 06 9a c6 8f | ...l..6q..n.(.(..8/.....7fR..... |
0540 | ff 48 46 d3 62 78 6e 6d 3e e6 fe 9f b8 6d 50 3b 42 82 bd 84 46 25 73 e9 bd 1f 90 73 8c 11 59 9a | .HF.bxnm>....mP;B...F%s....s..Y. |
0560 | 23 98 ee 03 2e c3 c9 6a fe f9 d6 5e 79 49 84 10 42 08 21 01 88 38 b9 b4 5f bf 39 37 82 38 ba 2a | #......j...^yI..B.!..8.._.97.8.* |
0580 | ad 4a 0f f0 e6 f5 1d 68 70 ce 18 26 af cd a5 41 72 0a 29 4d 12 29 dc 34 95 5b fb 35 a4 e3 cd ef | .J.....hp..&...Ar.)M.).4.[.5.... |
05a0 | 71 a8 4a 30 b0 6b da 83 a4 34 3d 9f 77 e6 ee 22 a6 51 0a cd 92 bc 2c 7e f1 6a 22 9b 5d cf 8a dc | q.J0.k...4=.w..".Q....,~.j".]... |
05c0 | e3 7c 43 af fd 97 e2 a2 4c 4a 4b 4b 28 f3 05 2a 75 d1 da 37 ed 41 a2 1a 9c c3 73 9f af c0 55 3f | .|C.....LJKK(..*u..7.A....s...U? |
05e0 | 99 96 ad 5a d1 34 21 8a cc 8d b3 78 ec d6 cb 98 bc e5 e8 bd 35 c0 62 d1 5b 77 d3 b6 ff 4d ac ca | ...Z.4!....x........5.b.[w...M.. |
0600 | 0b a6 59 4a 32 ae 9c 0d bc 73 ef 05 74 be e2 35 b2 02 b5 bb 67 19 7b 16 b3 72 0f e8 e7 5d 4f eb | ..YJ2....s..t..5....g.{..r...]O. |
0620 | e3 bc 02 be dd d3 18 5a 3f 91 bf 7f be 95 a8 a4 64 12 a2 1d ac f8 6a 1c 9d 12 07 f2 f5 be 8a bc | .......Z?.......d.....j......... |
0640 | 79 1b d1 bd 53 07 62 42 74 c0 4d b3 ce 67 71 56 f7 ee 74 ef de 9d ce ad 53 f0 04 c5 d1 b9 7b 57 | y...S.bBt.M..gqV..t.....S.....{W |
0660 | 1a 45 1b 80 41 c3 0e dd 2b b6 77 a3 6b 97 4e c4 54 f4 fe b2 fd 65 40 80 f4 9f 9e a2 75 52 7f 3e | .E..A...+.w.k.N.T....e@.....uR.> |
0680 | de e0 27 a5 45 0b e2 83 0b 99 fa e2 f5 44 27 8d 62 5e 5a a0 a6 08 84 0e 6d 3a 52 cf 05 9b 3e f8 | ..'.E........D'.b^Z.....m:R...>. |
06a0 | 90 7c 79 25 84 10 42 08 71 ba 52 e2 d4 90 3d 43 b5 af ef 55 84 36 50 af 2d 2a aa b6 f9 e3 bf c4 | .|y%..B.q.R...=C...U.6P.-*...... |
06c0 | 2b 40 85 fd 65 d6 51 9f da 6a fa b8 0b 14 a0 5a 5d fb 8a 5a b2 31 55 65 e7 17 a9 a2 82 1c b5 7b | +@..e.Q..j.....Z]..Z.1Ue.......{ |
06e0 | fd 1c f5 f7 b3 23 14 38 d5 4d 6f cc 57 81 8a 23 ac 0d ef ab 14 0f 0a 6f 8c ba e7 dd b9 6a 5f 76 | .....#.8.Mo.W..#.......o.....j_v |
0700 | a1 2a 2d c9 57 7b d6 cf 54 63 5a a1 d0 0c 05 a8 db 57 98 87 cf 92 fa d5 45 0a 50 ae f3 c6 ab 5f | .*-.W{..TcZ......W......E.P...._ |
0720 | 56 2c 55 3f ff fc f3 e1 9f c5 8b 16 a9 5f b6 e5 96 ef b8 ee 29 65 e8 a8 46 bd ae 57 bb fc 15 07 | V,U?........._......)e..F..W.... |
0740 | 97 6e 54 97 b7 8b 56 38 c3 d4 d8 0f 96 aa b4 ac 7c 55 ea 2b 53 c5 f9 d9 6a cf d6 d5 6a f6 f4 6f | .nT...V8........|U.+S...j...j..o |
0760 | d4 96 6c ab 3c 6f d9 1b d5 c8 4e 4e 05 2e 15 51 2f 41 3d 36 71 81 da 75 20 53 e5 e5 66 aa ed 8b | ..l.<o....NN...Q/A=6q..u.S..f... |
0780 | de 52 dd 9d 28 f4 c6 ea dd a5 69 b5 ba a5 bf bc 3d 40 01 aa cb 5b 3b 6b dc be e9 99 e6 0a 50 5e | .R..(.....i.....=@...[;k......P^ |
07a0 | 50 ad c7 4c 50 ab b6 ef 53 d9 79 79 ea e0 ae 55 ea e9 2b ba 2b 27 a8 c4 73 5f 57 c5 bf 1e e0 df | P..LP...S.yy...U..+.+'..s_W..... |
07c0 | ab ae e9 e9 56 d0 58 4d 0b d4 7c ce 37 ff 1a a9 20 5c fd 5f 46 cd db 67 df 19 a7 00 e5 06 d5 e5 | ....V.XM..|.7....\._F..g........ |
07e0 | 8e 8f d4 96 03 39 aa a4 b4 58 65 a4 ae 50 e3 2e 6f ab 00 d5 e8 82 7b d5 1e 5f f5 63 ad ad 9f ab | .....9...Xe..P..o.....{.._.c.... |
0800 | e6 71 ba 0a 8a e8 a2 e6 15 c9 2b 23 84 10 42 88 d3 93 04 20 a7 60 00 f2 fa e2 c3 55 5e 55 90 b6 | .q........+#..B......`.....U^U.. |
0820 | 56 bd 7c 4d 6b 05 28 1c 67 ab 99 19 47 6a be 56 f1 2a 75 be 03 45 ca 3f 54 56 4d 69 e6 4c 52 49 | V.|Mk.(.g...Gj.V.*u..E.?TVMi.LRI |
0840 | a0 82 ce bf 57 65 94 da 4a a9 52 35 71 ec 10 e5 00 d5 6e f8 7b aa a4 ca ee fe fd 13 55 b3 f2 91 | ....We..J.R5q.....n.{.......U... |
0860 | 0a 35 06 20 a0 29 4d ab fc 03 28 c7 90 a9 c7 0e 40 0e ce 55 dd 9b 39 95 cb db 53 2d 0d 1c ff 16 | .5...)M...(.....@..U..9...S-.... |
0880 | 94 07 20 2e 05 a8 3e 0f 2e ab b6 7d f3 f8 96 0a 50 17 be b9 a8 56 b7 f4 9b 5b 63 14 a0 6e 9c 97 | ......>....}....P....V...[c..n.. |
08a0 | 75 dc 00 84 76 8f a8 dc 2a db 02 6b df 51 09 11 9a 0a 89 3f 5b 2d 28 a8 08 f7 f2 b6 aa 2b 7b b8 | u...v...*..k.Q.....?[-(......+{. |
08c0 | 15 34 52 93 f3 6b 48 d0 f6 a9 d7 ae 8a 50 10 a6 5e d9 73 fc 00 84 46 ff 50 d9 55 37 96 2d 50 67 | .4R..kH......P..^.s...F.P.U7.-Pg |
08e0 | 19 ba c2 db 4a 7d b4 e4 60 0d cf 73 9e ea 9e 1c a2 8c d0 68 f5 d6 56 79 65 84 10 42 08 71 7a 92 | ....J}..`..s.......h..Vye..B.qz. |
0900 | 41 e8 a7 9a c2 03 dc d1 2b 98 3b aa 7c 1c da f8 1c de fb ee 5b ce 8f 3d f2 c8 8a 57 4d 60 96 09 | A.......+.;.|.......[..=...WM`.. |
0920 | 89 67 85 b0 fc bb 69 04 6c 55 a9 6b 91 cb 15 a0 75 08 cc 5c b5 97 9c b2 00 b1 64 b1 78 fb 5a 4c | .g....i.lU.k....u..\......d.x.ZL |
0940 | a0 cf 1d d7 12 54 e5 1c ce 84 61 fc f5 1c 78 74 41 cd 59 73 24 76 e3 a2 ae f1 d8 47 9d 47 99 a5 | .....T....a...xtA.Ys$v.....G.G.. |
0960 | 18 67 c5 1d fb 7a 22 1a d0 2c 24 9c e5 65 cb 78 fe 99 cf b9 ff f2 6e 34 69 98 44 74 c8 b1 c6 64 | .g...z"..,$..e.x......n4i.Dt...d |
0980 | d8 40 08 97 dd de bd da 96 86 03 ce 03 b6 b0 31 ad 76 1d 90 b2 77 65 03 c1 34 8a 3a fe 94 5c 03 | .@.............1.v...we..4.:..\. |
09a0 | 6f 1b 44 d5 31 e3 8e a6 2d 69 e8 0d e1 97 40 1a 69 b9 40 68 dd 3e e6 9e 8f de 48 b5 e1 fa ee 3e | o.D.1...-i....@.i.@h.>....H....> |
09c0 | 3c 7d 59 08 e7 7d be 8b 25 db 76 72 4d 8f 2a f7 d5 13 4e 94 c3 8d 65 d9 e4 1d 2a 85 e6 41 f2 be | <}Y..}..%.vrM.*...N...e...*..A.. |
09e0 | 08 21 84 10 e2 b4 23 01 c8 a9 c6 15 c2 80 cb 6e a2 5b 92 0b db 2c 65 ef aa 19 7c 3e 6f 1b be bc | .!....#........n.[...,e...|>o... |
0a00 | 2c d6 6e d9 c3 e5 ad db 1f de 35 6b ed 32 00 f6 7f f2 18 43 3e 39 4e 9a 45 07 29 0c d8 40 11 39 | ,.n.......5k.2.....C>9N.E.)..@.9 |
0a20 | d9 99 40 0c 1d 5b d5 30 9e 43 b9 88 ef d0 10 16 d4 3c c8 39 68 e0 13 7c fd e1 e0 13 bb 1e 77 4b | ..@..[.0.C.......<.9h..|......wK |
0a40 | 5e 7c f5 11 d6 0d bc 8b af 9e 18 cd f7 af 27 d2 a4 61 02 09 c9 cd 19 74 c5 1d 8c bd bc 1b 46 b5 | ^|............'..a.....t......F. |
0a60 | 00 24 81 e6 d1 d5 93 d2 3c 11 b8 00 d3 67 d6 ea d4 b6 59 3e 7b 95 a1 6b c7 7d 05 5a 44 d7 30 a5 | .$......<....g....Y>{..k.}.ZD.0. |
0a80 | 94 c3 43 90 a6 63 2b 85 65 d6 f5 43 76 d2 bb 55 cd 53 29 b7 e8 9b 02 9f af 64 d3 c1 bc 1a 6e 80 | ..C..c+.e..Cv..U.S)......d....n. |
0aa0 | 56 3e 68 4b 81 6d db f2 ae 08 21 84 10 e2 b4 24 83 d0 4f 35 ee 30 86 dd fe 34 e3 c7 8f e7 b9 17 | V>hK.m....!....$..O5.0...4...... |
0ac0 | 5e e5 b3 1f b7 72 e0 f3 ab f0 e7 6e e2 99 91 b7 32 f7 a8 29 a3 fc c5 e5 83 95 fb ff 7b 11 15 dd | ^....r.....n....2..)........{... |
0ae0 | e9 8e f1 33 9f ae b1 1e 6c a5 c0 56 80 c1 b1 d6 de d3 8d 63 2f 22 a8 2c ff 6f ba a4 fa e7 dc c9 | ...3....l..V.......c/".,.o...... |
0b00 | fa d2 4c be 79 e5 6e 7a c4 05 d8 ba 7e 25 73 a7 7e c2 dd 23 bb 13 d5 fe 66 36 95 56 ab 69 53 73 | ..L.y.nz....~%s.~..#....f6.V.iSs |
0b20 | cc 70 62 53 d8 86 c6 85 00 65 64 15 1e 2f 82 a8 9b 73 9d e8 6b e7 34 6a 4e df 70 95 df 7f d3 ae | .pbS.....ed../...s..k.4jN.p..... |
0b40 | 61 3a ac 40 29 45 b6 89 6e e8 04 87 7b e4 5d 11 42 08 21 84 04 20 a2 6e 28 55 b9 f2 19 3f f2 13 | a:.@)E..n...{.].B.!....n(U...?.. |
0b60 | 3e bf 39 05 ac 9f 19 79 cb 97 fc 3a 19 6e 74 cb c6 00 fc b2 68 67 ed 1e b6 db 4b 48 44 38 70 88 | >.9....y...:.nt.....hg....KHD8p. |
0b80 | cd 35 36 72 98 64 ed 48 3f 39 17 e5 88 61 e8 9d 2f f2 e3 c6 83 04 fc 19 2c fa ea 55 86 b4 08 a3 | .56r.d.H?9...a../.......,..U.... |
0ba0 | 60 fd fb 3c f9 ca 0c 02 27 e1 94 09 1d 9a 00 26 6b f7 95 d4 71 ca da ef dc ee 63 f5 9e 9a f3 b4 | `..<....'......&k...q.....c..... |
0bc0 | 6f c5 5e c0 41 93 e8 1a fa 7c e5 65 92 e5 2b c1 69 44 d2 30 d1 90 17 45 08 21 84 10 12 80 88 93 | o.^.A....|.e..+.iD.0...E.!...... |
0be0 | e7 82 3b 5f a0 4b 34 e4 4c 1e c3 f8 15 e5 9f 45 f4 bc 95 76 40 d1 a7 ff e2 cb bc 5a 24 e2 8d a6 | ..;_.K4.L......E...v@......Z$... |
0c00 | 53 52 1b 74 60 e1 fb 33 ab 6f 2f 59 c6 d7 d3 cb 4e fe c5 68 91 f4 b8 f4 0e 3e 7f ba 2f 60 b2 6d | SR.t`..3.o/Y....N..h.....>../`.m |
0c20 | cf 16 fc 56 dd 9f 26 ae e3 10 82 80 55 73 76 d5 4d b6 35 1d dd a1 03 26 a6 55 f3 eb 64 b8 0d c0 | ...V..&.....Usv.M.5....&.U..d... |
0c40 | 22 f0 5f ae e7 fb 97 bf a3 7a 1b c7 56 9e ff 34 03 f4 24 7a 34 6d 54 6d 6b ee ae 34 4a f2 03 b8 | "._......z..V..4..$z4mTmk..4J... |
0c60 | 43 cf a6 63 8c bc 13 42 08 21 84 90 00 44 9c 44 e1 ad ce e1 8a 81 dd d1 28 e2 f3 27 c6 93 0b 38 | C..c...B.!...D.D........(..'...8 |
0c80 | a2 07 31 f6 e6 e6 c0 26 46 77 bc 96 15 39 26 a6 69 61 db 36 96 19 c0 57 56 ca a1 1d 4b f8 e4 db | ..1....&Fw...9&.ia.6...WV...K... |
0ca0 | 1f f1 d9 00 21 5c 73 65 7f 42 5d 1a cb bf 1c cb 27 2b 32 09 54 ec 0f b9 bc 3d 72 08 4b 54 dd e6 | ....!\se.B].....'+2.T....=r.KT.. |
0cc0 | db 7f 68 1b d3 17 ae a5 b0 a4 14 7f c0 c4 b2 6d 6c db 02 7c 2c 98 b5 1d 70 90 10 19 8b e3 24 94 | ..h............ml..|,...p.....$. |
0ce0 | c4 fa 4d cf a5 6b 28 e4 4e fb 8a 8c ba 48 d0 1d 44 64 78 34 b0 9f 55 db 4d e0 48 37 b7 5f 5f a7 | ..M..k(.N....H..Ddx4..U.M.H7.__. |
0d00 | 88 b8 24 a0 88 25 9b 72 6b d8 7e 94 a5 77 30 ea fd ed 58 d8 d8 b6 8d 6d 16 31 eb d1 bb f8 2a df | ..$..%.rk.~..w0...X....m.1....*. |
0d20 | 26 a6 73 17 fa 76 ad 1a 80 d8 6c dc b2 85 ec 22 88 1c 74 0b 8d e4 95 10 42 08 21 c4 69 4a 06 a1 | &.s..v....l...."..t.....B.!.iJ.. |
0d40 | 9f 36 22 f8 fb 83 57 f2 af 2f 96 b3 fe e7 8f 98 b5 66 0c a3 3a 46 71 cd 13 93 58 b3 63 38 ff 9e | .6"...W../.......f..:Fq...X.c8.. |
0d60 | fb 11 dd e2 e7 30 64 c4 60 52 ea 87 e0 cb 3d c8 e6 d5 0b 99 bf 36 8d d6 d7 bd c2 f0 8b 06 00 10 | .....0d.`R....=......6.......... |
0d80 | 72 ee 03 7c 34 76 31 97 bf 30 9b bf f4 ed c2 94 91 97 d0 38 3c c0 aa 6f df e5 a7 cc ce 9c 7b 7e | r..|4v1..0.........8<..o......{~ |
0da0 | 26 73 66 ed a9 bb 6c 67 ad e6 e6 be a3 49 0b 69 c2 c0 81 67 d3 b2 51 7d 3c 5a 19 a9 2b 66 30 65 | &sf...lg.....I.i...g..Q}<Z..+f0e |
0dc0 | d1 4e f4 86 e7 72 fd d5 97 e2 d6 ca 87 9f d7 a5 d0 84 96 74 3c 3b 89 85 b3 3e e0 8b dd af f0 b7 | .N...r.............t<;...>...... |
0de0 | e4 df 1b 80 c4 32 a4 73 57 5e 9f be 9f d7 47 f4 a3 60 54 6f 22 5d 3a 9e 06 2d b8 f1 c6 bf d2 c0 | .....2.sW^....G..`To"]:..-...... |
0e00 | a3 d1 b1 db 50 c2 59 c3 94 d1 7d b9 ee 86 c1 c4 7b 0d 0c 4f 18 23 ee 7a 80 8e 87 c7 9d 07 33 ec | ....P.Y...}.....{..O.#.z......3. |
0e20 | 2f dd 99 79 43 73 3a 7f f9 17 06 b6 8e 26 7d dd 5c 3e 9b b3 1e 82 db 72 ff b8 37 68 5b 75 8c ba | /..yCs:......&}.\>.....r..7h[u.. |
0e40 | e5 67 f5 2f d3 29 24 98 87 fe d1 53 5e 07 21 84 10 42 9c be 64 26 e2 53 44 d6 34 95 1c 84 82 60 | .g./.)$....S^.!..B..d&.SD.4....` |
0e60 | f5 fc 4f 85 c7 dc 6d f2 a5 1e 05 a8 fa d7 bd a7 ac 5f d7 ac 28 cc 50 8b 3e 7d 46 0d ea d0 a0 62 | ..O...m.........._..(.P.>}F....b |
0e80 | bd 8e f2 9f f8 56 7d d4 ed 4f bf a7 d6 ee 2f 50 76 a5 f5 2a 8a d4 ca a9 2f aa 7e 4d 42 0e ef db | .....V}..O..../Pv..*..../.~MB... |
0ea0 | 6e e8 3f d4 c2 9d d9 ea dd b1 09 0a 50 d7 2f 3b b2 0e c8 ce cf fa 97 ef 37 ec cb e3 5f c3 ea 87 | n.?.........P./;........7..._... |
0ec0 | 15 a0 22 da 8f 52 db 7f 5d 48 af 2c 4b cd fa 68 9c 1a 75 6e 27 15 61 1c c9 1b 11 4d d5 a8 7f bc | .."..R..]H.,K..h..un'.a....M.... |
0ee0 | a3 36 a4 17 1c 3e dc cc 5c af 2e 6c 86 82 06 ea bb b2 ea c9 97 ac be 4f 01 2a f4 8e c9 b5 bc a9 | .6...>..\..l...........O.*...... |
0f00 | b6 5a f3 ca 5f 94 03 54 cf bb 7e aa b6 75 fd a3 f5 cb af 75 d2 2f d5 0f 2d 5d aa ba 87 a0 70 84 | .Z.._..T..~..u.....u./..-]....p. |
0f20 | ab f7 b7 1f bd 56 47 9a 9a f8 c8 48 95 e4 3d ea 5a 1a 9f ad 96 fd ba 90 48 20 4f cd 7a 63 ac 6a | .....VG....H..=.Z.......H.O.zc.j |
0f40 | 5b cf 71 d4 b3 70 a9 77 f6 1c bd 0e 48 b0 1a b7 72 bf da fa c3 2b aa 7f 13 ef e1 35 56 da 5d 7c | [.q..p.w....H...r....+.....5V.]| |
0f60 | af 9a b7 ad e6 35 4b 02 05 ab d5 05 1e 14 67 3f af 4a e5 6d 11 42 08 21 c4 69 4c 53 35 f6 0f 11 | .....5K.......g?.J.m.B.!.iLS5... |
0f80 | a7 66 b4 c8 c9 9d 9c a9 c6 d3 fd c1 27 ad eb 8b f5 2d e2 9c fa 03 58 17 77 2e 3f 2e ff 9e ce 61 | .f..........'....-....X.w.?....a |
0fa0 | b5 4b ff 64 5d f5 9c bb ea 73 de ab 85 3c bd 72 0f 0f 77 ae fd 40 8e 5d 1f 9d 4f d3 6b 97 f0 f0 | .K.d]....s...<.r..w..@.]..O.k... |
0fc0 | 9c 75 3c 3d b0 b1 bc 0b 42 08 21 84 38 6d c9 18 90 d3 89 f6 bf 38 9d 76 7a 5f ac bb 37 13 5f be | .u<=....B.!.8m.......8.vz_..7._. |
0fe0 | 90 fc ad b3 79 ef eb 15 47 0d fc d6 4e a5 5b 7d 7c 65 8b b9 f5 e6 d9 84 9d 7d 2d 37 f7 90 e0 43 | ....y...G...N.[}|e.......}-7...C |
1000 | 08 21 84 10 a7 37 19 03 22 fe f4 92 ae fd 90 cf b7 df c5 82 9c 2c 02 0a 5c da e9 95 ff 9c 65 1b | .!...7.."............,..\.....e. |
1020 | 48 bc ea 56 de bc e1 51 92 82 e5 79 0a 21 84 10 42 02 10 21 4e 71 e1 8c 7c e6 03 46 9e 02 39 51 | H..V...Q...y.!..B..!Nq..|..F..9Q |
1040 | b6 09 58 d8 27 d0 f1 31 aa ef cd bc d7 57 9e a2 10 42 08 21 24 00 11 42 9c a0 16 23 9e e5 99 38 | ..X.'..1.....W...B.!$..B...#...8 |
1060 | 3f e7 4a 53 86 10 42 08 21 ce 50 32 08 5d 08 21 84 10 42 08 f1 87 91 41 e8 42 08 21 84 10 42 08 | ?.JS..B.!.P2.].!..B....A.B.!..B. |
1080 | 09 40 c4 9f c3 1f d5 be 26 cd 78 42 08 21 84 10 12 80 88 33 d4 fe 85 6f d3 dc d0 e8 f5 46 2a da | .@......&.xB.!.....3...o.....F*. |
10a0 | c9 9a 71 ca f2 31 e1 ce d6 68 9a 9b 07 36 fc be 69 73 33 27 5e 8d e6 0e e3 fa d7 57 4b 20 23 84 | ..q..1...h...6..is3'^......WK.#. |
10c0 | 10 42 08 21 01 c8 19 22 fb 3b 92 3d 1a 9a e6 e5 f9 f9 45 47 3e 3f f0 01 c1 9a 86 56 c3 4f 58 a3 | .B.!...".;.=......EG>?.....V.OX. |
10e0 | ce 8c 79 ea 23 36 67 f9 2a 25 b5 eb b3 7e 47 f6 0b 39 87 15 65 c7 3a e9 16 2e 75 1f 49 af d9 4b | ..y.#6g.*%...~G..9..e.:...u.I..K |
1100 | 7b 0e 6f 39 38 f5 82 f2 cf 87 7c 78 82 17 52 c8 87 4f fe 8d ed 51 57 f2 c9 df 4e e6 9a 15 0a cb | {.o98.....|x..R..O...QW...N..... |
1120 | f4 03 7e 4c fb f7 a5 14 7b d5 f3 8c 8d 2f e4 c3 37 9f 62 63 b6 29 65 51 08 21 84 10 42 02 90 33 | ..~L....{..../..7.bc.)eQ.!..B..3 |
1140 | 80 e6 24 3c d2 0b a1 91 78 1c 47 7d 9f af bb 89 0c 72 40 50 0c 83 af ba 8d b1 63 c7 32 f6 8e db | ..$<....x.G}.....r@P......c.2... |
1160 | b9 e6 d2 de d8 7b 57 f3 ce 63 d7 d2 6b e0 df d9 76 54 25 5c 77 85 1e f9 87 b5 89 1f 66 ee af f1 | .....{W..c..k...vT%\w.......f... |
1180 | 94 05 d3 df e1 87 c0 91 7f 87 7b f4 a3 b2 53 9e 46 50 88 eb 84 2e a3 68 de 7d 3c 3a 27 c0 c8 27 | ..........{...S.FP.....h.}<:'..' |
11a0 | c6 70 fa 2c 99 17 cf c3 6f df 8c da f4 35 cf cc dc 22 65 51 08 21 84 10 42 02 10 41 58 03 6e 78 | .p.,....o....5..."eQ.!..B..AX.nx |
11c0 | f0 45 5e 7d f5 55 5e 7d ed 0d 3e fa 7a 21 39 fb bf a1 87 0b 72 d7 4d e0 8a 97 52 ab 1d d2 e8 92 | .E^}.U^}..>.z!9.....r.M...R..... |
11e0 | 3e 04 97 65 33 f3 c7 e9 94 54 6b 25 28 e4 c3 89 4b f1 2b 48 39 b7 6d 1d 65 32 97 71 37 bd 0b 31 | >..e3....Tk%(...K.+H9.m.e2.q7..1 |
1200 | 5d b9 ba 7f 97 d3 ea f6 46 f7 be 9f 6b 13 e1 b3 7b df e6 90 94 36 21 84 10 42 08 09 40 44 75 ae | ].......F...k...{....6!..B..@Du. |
1220 | 84 a1 dc ff 58 3f 00 36 7e f8 05 25 55 b6 3b bb de c3 bd 2d 61 f1 d4 79 ec 2b 0a 54 da 66 1e dc | ....X?.6~..%U.;....-a..y.+.T.f.. |
1240 | cc f7 2b 7f 86 e8 1b b8 e3 bc c8 3a c9 8f 5a fd 36 af ee b4 48 6e d3 95 0e cd 43 2a 6f b3 cb 58 | ..+........:..Z.6...Hn....C*o..X |
1260 | 33 f3 0b be f8 fa 67 0a 6a 3a 36 7b 05 5f 7c 31 85 9f 36 ec a9 be 48 9f 2f 9b 55 0b 67 f1 cd d7 | 3.....g.j:6{._|1..6...H./.U.g... |
1280 | 5f f3 cd b4 19 fc b2 35 03 0c 27 5a 0d 03 36 94 59 c2 ea f9 df 30 f9 cb 59 64 00 fe ec dd 2c 9a | _......5..'Z..6.Y....0..Yd....,. |
12a0 | 3d 9d af a6 7c cd b7 3f cc 63 c3 be c2 1a f3 6e 78 12 e8 33 b2 2b a4 bf ce 33 3f 07 a4 70 09 21 | =...|..?.c.....nx..3.+...3?..p.! |
12c0 | 84 10 42 48 00 22 6a a8 6e 13 59 bf 1d 5e 40 cf 4f ad 56 b1 f7 07 e2 f9 cb 63 17 c3 9e c9 bc b5 | ..BH."j.n.Y..^@.O.V......c...... |
12e0 | 2e b7 d2 b6 5d eb 66 b1 7c 1b 74 7d e2 21 5a 6b a5 75 90 17 8b d9 93 16 50 02 34 ea 70 39 49 55 | ....].f.|.t}.!Zk.u......P.4.p9IU |
1300 | 96 b8 b4 fd 39 bc 71 fd 28 46 0d 7f 8c 3d 35 1c 6d 6f 7c 8e 51 a3 46 70 d7 bb b3 08 1c 1d 58 14 | ....9.q.(F...=5.mo|.Q.Fp......X. |
1320 | 2f e2 ba 73 ba d2 7f c0 05 0c 1b 3e 9c 61 97 0c a6 67 8f ce 5c f2 c8 0f d8 c1 9e ea 77 a4 e4 10 | /..s.......>.a...g..\.......w... |
1340 | af de 33 8c cb 47 de c2 0f ab bf 67 64 9f ae f4 39 ff 22 2e 1b 31 9c a1 43 06 32 b0 6f 6f ee fd | ..3..G.....gd...9."..1..C.2.oo.. |
1360 | 70 75 0d 6f 82 93 2e 1d ce 25 1a f8 f2 f9 ef a4 68 09 21 84 10 42 48 00 22 aa d7 b6 15 19 fb d6 | pu.o.....%......h.!..BH."....... |
1380 | 51 0a 68 b1 4d 09 ab ba d9 f4 d3 68 c0 bd f4 76 5a bc f2 d4 ec 4a db 96 7f fa 02 b9 74 64 fc 5f | Q.h.M......h...vZ....J......td._ |
13a0 | 9a e0 f3 d9 bf 3f 2f 56 26 b3 36 a6 a2 80 16 03 bb d5 30 2b 95 86 d3 0d 68 ae 1a 67 ac d2 74 27 | .....?/V&.6.......0+....h..g..t' |
13c0 | 00 6e 87 71 d4 f6 ed dc 90 d2 87 0f 97 ef c6 d1 79 14 ff 99 bd 8c 0d ab e6 f1 d4 85 f5 98 fe cc | .n.q............y............... |
13e0 | c5 dc fb 71 4d a1 8c 86 c3 e5 02 32 78 ac ff 85 2c 70 f7 e6 83 99 cb d8 b0 72 3e e3 af e9 46 de | ...qM......2x...,p.......r>...F. |
1400 | 9e 75 bc f8 b7 51 bc b7 24 bd da 71 4d 5b 34 23 3c 02 8a 17 bc c7 66 29 5d 42 08 21 84 10 12 80 | .u...Q..$..qM[4#<.....f)]B.!.... |
1420 | 9c d1 34 9d 20 ef 51 df f8 5b 45 ac 9b 3d 81 17 5f 9d 8f 02 ba 5d 3f 12 6f b5 83 6c 1c 71 6d 39 | ..4...Q..[E..=.._....]?.o..l.qm9 |
1440 | e7 a2 86 a8 59 8f f0 79 4e c5 c7 a5 f3 78 e3 c3 7c c2 47 5c 4b 9f 70 30 eb 62 ee d9 82 4c 76 66 | ....Y..yN....x..|.G\K.p0.b...Lvf |
1460 | ee 01 bc b4 6a 1f 5a 27 97 bc fa 85 87 78 3f 1d ea 77 bb 8e e5 0b 3e e3 ea 73 bb d3 a6 53 3f 1e | ....j.Z'.....x?..w....>..s...S?. |
1480 | f8 64 15 4b c6 f5 c7 9f 51 74 ac 9b 05 14 93 d7 60 34 0b 17 7f c3 b5 e7 77 a7 4d e7 73 b8 ff a3 | .d.K....Qt......`4......w.M.s... |
14a0 | 65 cc ff 67 1f 28 de ce df 9f ff 02 5f 95 a3 42 92 1b 10 1c ea a1 cc 5a c7 9a 34 29 72 42 08 21 | e..g.(......_..B.......Z..4)rB.! |
14c0 | 84 10 12 80 9c c9 b2 b7 72 c7 45 9d e9 da b5 2b 5d bb 76 a1 43 87 ce 9c 3b ec 6f 2c cb 83 d0 fe | ........r.E....+].v.C...;.o,.... |
14e0 | 8f 30 e9 d6 46 c7 38 30 8a e1 fd ce c7 cb 6e 5e 79 79 1d 00 fb de 79 88 65 84 31 e6 d2 de b8 ea | .0..F.80......n^yy....y.e.1..... |
1500 | 28 7b be c2 02 8a b2 4a 80 78 1a 47 d7 41 82 e6 01 3e 99 5b 9e df 81 b7 3d 45 53 77 e5 cd 5d c7 | ({.....J.x.G.A...>.[....=ESw..]. |
1520 | be c5 95 0d 8e 9f 44 df fb 5f a6 4d 95 a8 ac c7 43 ef 71 65 04 14 7e fd 31 4b aa 0e 9a 09 89 26 | ......D.._.M....C.qe..~.1K.....& |
1540 | d6 e5 c1 34 8b 39 78 40 c6 81 54 95 5b 50 22 37 41 54 a3 64 f1 1c 21 84 10 27 c8 21 b7 e0 34 61 | ...4.9x@..T.[P"7AT.d..!..'.!..4a |
1560 | fa 48 4b dd ca 21 bd a2 83 92 a6 e3 70 45 31 e8 e6 e7 f8 cf f8 1b 88 31 8e 7d 68 97 cb 2e a0 fe | .HK..!......pE1........1.}h..... |
1580 | e3 1f b2 eb f3 71 a4 3d f5 3a 4f 3d b7 1a 12 db d1 bf 57 c7 3a cb 9e 1d 08 60 fa 00 82 08 71 d7 | .....q.=.:O=......W.:....`....q. |
15a0 | 41 82 85 d9 ec c8 da 07 84 d1 63 60 42 b5 cd 9a ab 01 ed fa 44 71 a4 59 a7 52 6e 80 08 2e 38 af | A.........c`B.......Dq.Y.Rn...8. |
15c0 | 7e 0d 21 77 13 7a 0e 08 62 d2 94 f5 cc de 15 a0 5f 5b e7 51 6f 83 87 20 dd 81 b2 2d ca 8a 7c 80 | ~.!w.z..b......._[.Qo......-..|. |
15e0 | 53 ca 5d 85 80 69 f1 c8 bf bf 65 e9 ba 54 b9 19 e2 b0 fa 31 e1 4c 7f fd 36 b9 11 42 08 21 24 00 | S.]..i....e..T.....1.L..6..B.!$. |
1600 | f9 53 8a 4a e1 b9 0f bf 60 50 73 0f a0 e1 f4 46 90 94 18 5b bb 07 d8 e0 62 ee ed 18 c5 6d 2b 7f | .S.J....`Ps....F...[....b....m+. |
1620 | e6 8b f1 e3 f9 ec 90 8f 94 fe 23 e8 d1 d8 a8 b3 ec e9 86 41 f9 30 0e 3f 65 01 38 e1 a6 95 2a 4b | ..........#........A.0.?e.8...*K |
1640 | a6 db 7e 1f 66 a9 1f a8 47 fd d0 9a 76 37 08 8e 0c 01 6a 0a 40 14 10 41 83 b0 9a 4e 64 10 1a 17 | ..~.f...G...v7....j.@..A...Nd... |
1660 | 06 1c 22 3d df ac 1c 64 58 7e fc b6 05 1a b8 82 24 f8 38 9a d3 61 10 1b 19 8a c7 ed 04 a5 50 ca | .."=...dX~......$.8..a........P. |
1680 | 96 9b 72 86 d3 74 83 ac bc 22 3e fc 76 09 d7 5e 72 b6 dc 10 21 84 10 12 80 fc f9 9e 94 9b c4 26 | ..r..t...">.v..^r...!..........& |
16a0 | 2d 68 de fc b7 34 2f b8 b9 e1 e9 e1 dc d6 fb 4d 1e fd e7 bf 29 36 61 f8 ed b7 11 59 87 d9 73 87 | -h...4/........M....)6a....Y..s. |
16c0 | 84 e0 8d 74 c1 de 4c f6 e6 02 c1 d5 aa 2b 15 b1 41 cd 15 57 ab ac f2 4c 5c ba cb 85 e1 71 02 79 | ...t..L......+..A..W...L\....q.y |
16e0 | 64 16 03 11 55 63 0c 8b 92 82 e2 63 55 8d 80 02 0e 15 01 21 d5 ce 44 49 56 11 e0 a0 5e 48 95 e2 | d...Uc.....cU......!..DIV...^H.. |
1700 | 5f 9a 47 a6 e9 c3 e1 08 25 ba be 5b ca 5c d5 5b 5e d1 d7 c6 19 14 4a 58 bd e4 c3 ff 16 67 62 f0 | _.G.....%..[.\.[^.....JX.....gb. |
1720 | a1 93 9b b6 05 cd f6 e3 30 0c b9 21 42 08 21 24 00 f9 b3 57 00 7f 0b 57 af 47 b8 3e ea 4d de cf | ........0..!B.!$...W...W.G.>.M.. |
1740 | 29 03 e7 10 ee 1d 1a 56 b7 99 0b 8b a1 61 6c 02 90 ca e6 6d 01 48 ac dc 82 a0 69 06 9e 30 80 fd | )......V.....al....m.H....i..0.. |
1760 | 1c 0a 40 db 2a 0d 0c 1b 67 6d ad fc 41 48 14 8d a3 13 80 9d 2c 5b 90 c9 ad 57 c4 56 0e 23 02 19 | ..@.*...gm..AH......,[...W.V.#.. |
1780 | 6c 59 9c 7d 8c cc e8 40 0e b3 17 e4 72 cb c8 2a 61 96 9d c6 2f 3f 15 03 6d 19 d0 a4 72 26 7c fb | lY.}...@....r..*a.../?..m...r&|. |
17a0 | d3 29 2a 2a c1 ed ec 4e db 04 29 6f c7 ab 7c 1a 4e 8f b4 82 9c d1 65 c0 40 43 ab 71 46 3b 21 84 | .)**...N..)o..|.N.....e.@C.qF;!. |
17c0 | 10 e2 bf 91 41 e8 67 8c 04 1e fc e4 45 1e 7e f8 21 9e 9d f8 2a 6d eb 3a 79 57 3d ce 69 92 8c 06 | ....A.g.....E.~.!...*m.:yW=.i... |
17e0 | 6c fb b1 fa 3a 1b ba 11 4c 42 bb 44 60 23 af 4d 3c 50 79 63 fa 6c ee 78 67 5b e5 cf 9c 0d 18 d5 | l...:...LB.D`#.M<Pyc.l.xg[...... |
1800 | bb 3c 97 f3 26 3c cd 7e b3 f2 e6 cd 1f df cb c4 3d c7 cf d2 bc 71 0f b0 b3 ca 58 f2 8d 6f fd 8d | .<..&<.~........=....q....X..o.. |
1820 | f7 33 c1 75 fe d5 f4 ae d4 b5 4b b1 7b db 6e 0a 73 c0 dd 6a 24 ed a5 07 96 10 42 08 21 84 04 20 | .3.u......K.{.n.s..j$.....B.!... |
1840 | e2 f7 69 36 f8 6e 9e 7e fa 19 1e bc bc d9 49 48 dd cd c5 97 75 41 e9 b0 6f e9 14 32 aa 6e 76 78 | ..i6.n.~......IH....uA..o..2.nvx |
1860 | e8 3f e0 32 c2 81 e9 63 bb 71 d3 73 5f b0 6c c5 32 be 79 fb 31 ba 77 b9 90 9d 0d 23 ab 15 cd 9e | .?.2...c.q.s_.l.2.y.1.w....#.... |
1880 | f7 3f c1 88 08 d8 bb f0 75 fa 0c be 99 a9 4b 36 91 ba 75 05 13 c6 9e 4b 8f db a7 10 88 0c 3e 46 | .?......u.....K6..u....K......>F |
18a0 | 5e 14 10 84 6b db db f4 3b f7 5a be 5a bc 81 d4 6d ab 78 f3 ce 41 f4 be 6b 1a 38 93 f8 d7 fd a3 | ^...k...;.Z.Z...m.x..A..k.8..... |
18c0 | 2b 4f 5b ac 4c d6 6c 5c cc 21 05 bd ff 7e 65 9d cd 0e 26 84 10 42 08 21 24 00 39 45 29 4c d3 04 | +O[.L.l\.!...~e...&..B.!$.9E)L.. |
18e0 | d3 c4 ae d4 d3 ca c6 0c 94 7f 5e eb 1e 58 b6 05 80 69 d7 ae 8b 8c 6d 97 37 2f 58 47 ef ae 2a d2 | ..........^..X...i....m.7/XG..*. |
1900 | b0 6a df ed cb 7b de 8d 5c 16 66 b0 69 e7 7c d6 ef 09 54 2b 6a 5d ae bd 8f fb 2e ed 46 88 95 c9 | .j...{..\.f.i.|...T+j]......F... |
1920 | bb f7 8f a2 47 b7 1e 0c bb 79 3c b9 dd 1f e7 97 17 fa 1d ce f3 e1 33 ba 3a 32 79 c7 74 2e 6a 1c | ....G....y<...........3.:2y.t.j. |
1940 | 4e fa dc b7 b9 b4 67 1b 9a b4 ec c6 6d 6f 2d a3 ed 4d 93 78 e1 da c4 8a 3b 54 95 05 34 62 dc 9c | N.....g.....mo-..M.x....;T..4b.. |
1960 | 4f 69 bc ed 33 2e eb dd 8e 26 2d ba 70 eb 6b 33 b1 c3 12 b9 66 fc 44 ee 18 50 79 da 62 db 9f cb | Oi..3....&-.p.k3....f.D..Py.b... |
1980 | 92 ef 66 82 63 30 4f 0f 0f 97 e2 28 84 10 42 08 71 92 c8 18 90 53 85 b7 35 8f 8c 7f 85 ac 80 9b | ..f.c0O....(..B.q....S..5....... |
19a0 | 73 9a 1e f5 fd 7b 58 37 9e 7d ed 75 8a 5d 51 74 8a af dd e3 8a ee 74 1b 2f fd ab 3f 11 7d 52 6a | s....{X7.}.u.]Qt......t./..?.}Rj |
19c0 | b5 7f fb c1 0f f2 92 77 2f f1 7d 8f b4 42 84 b6 b9 89 97 9e eb 85 a7 6d b7 13 b8 88 16 bc fc f2 | .......w/.}..B.........m........ |
19e0 | 79 4c be 6e 3e 53 97 6e 60 60 a3 4e 95 37 6b 0d 78 f8 eb 79 5c 38 77 26 cb b7 ec a7 cc 74 10 db | yL.n>S.n``.N.7k.x..y\8w&.....t.. |
1a00 | ac 03 83 07 f5 22 22 63 16 cf 3f df 93 86 3d 7a e2 38 ba 63 79 f4 10 a6 6d d8 c0 9c ef e7 b0 25 | .....""c..?...=z.8.cy...m......% |
1a20 | bd 00 cd 19 4c 93 ce 03 18 dc 3d 99 0d 3f f9 d1 1b e4 d3 ad da 7a 20 1a 10 20 ae cb 68 66 af 6a | ....L.....=..?.......z......hf.j |
1a40 | c3 f4 39 4b d8 97 e3 c3 15 12 43 bb 5e 17 d0 bb 65 54 b5 9c 97 6c 7d 8f 0f 56 42 af f1 0f d2 4e | ..9K......C.^...eT...l}..VB....N |
1a60 | 4a a3 10 42 08 21 c4 49 a3 29 99 ca 46 d4 25 3b 8d db 9b 26 f2 7f 11 8f 52 b0 fa 49 42 ff e8 d3 | J..B.!.I.)..F.%;...&....R..IB... |
1a80 | 17 ec 66 cc a0 14 de 5b d2 88 69 25 3b b8 28 a8 56 47 f1 76 1f 83 9b b7 0e 64 c1 8a 6f e9 d3 d0 | ..f....[..i%;.(.VG.v.....d..o... |
1aa0 | 2b cf b1 06 8f 4f f8 8e 39 cb b6 e0 f2 86 11 11 df 5c 06 a1 9f c9 7f 38 74 83 ec dd 6b 09 f8 7d | +....O..9........\.....8t...k..} |
1ac0 | dc 3e aa 2f 57 5f d8 5d 6e 8a 10 42 88 5a 93 2e 58 a2 8e 4b 54 02 b7 be f2 10 89 6b ff cd 33 cb | .>./W_.]n..B.Z..X..KT......k..3. |
1ae0 | 8a 4f 8f 3c 6f 7c 85 27 d7 c6 31 fa e6 db e8 26 c1 87 10 42 08 21 c4 49 25 5d b0 44 9d 6b 3b e4 | .O.<o|.'..1....&...B.!.I%].D.k;. |
1b00 | 61 16 6c 1c 49 59 e8 e9 91 df b2 e8 4b f9 61 c9 60 ea 27 b7 c2 23 8f 4f 08 21 84 10 42 02 10 71 | a.l.IY......K.a.`.'..#.O.!..B..q |
1b20 | 9a 71 7a 69 dc aa c3 ff ec f4 b6 69 02 55 07 f3 1f 9b a7 7e 13 da d5 97 c7 26 84 10 42 08 21 01 | .qzi.......i.U.....~.....&..B.!. |
1b40 | 88 10 27 48 0f 4b e6 fd e5 8a f7 81 f2 e9 78 65 a9 b4 33 92 52 18 de 50 da 27 b8 a8 3a 54 c5 b6 | ..'H.K........xe..3.R..P.'..:T.. |
1b60 | 6d ca 7c 26 05 c5 3e 32 f3 7d f8 94 86 43 af 83 72 a2 6c fc 16 e8 7a 1d a5 27 84 10 42 48 00 22 | m.|&..>2.}...C..r.l...z..'..BH." |
1b80 | c4 e9 46 2a 81 67 6e fc 61 e3 89 4f e6 f1 2b eb 1d 33 58 c8 c9 2d 21 2d ab 88 d9 0b 76 f0 e3 3e | ..F*.gn.a..O..+..3X..-!-....v..> |
1ba0 | 1f 0e e3 b7 97 17 65 db b8 1b 36 e1 c9 7e 61 6c db 98 c6 67 6b b2 31 65 7a 0f 21 84 10 42 02 10 | ......e...6..~al...gk.1ez.!..B.. |
1bc0 | 21 c4 99 14 84 94 47 00 f6 9e 54 ee 9e 9e 81 d2 35 34 5d 23 24 24 88 94 e4 58 06 77 8b a5 5d 54 | !.....G...T.....54]#$$...X.w..]T |
1be0 | 08 ed 9a c7 d2 e1 eb 5f 78 79 6d 09 0e fd 37 9f 0c 3d 24 8c f6 4d 62 30 32 b2 65 76 0f 21 84 10 | ......._xym...7..=$..Mb02.ev.!.. |
1c00 | 42 02 10 51 57 2c 5f 36 0b a7 4d a3 20 e5 22 2e e9 10 73 f8 f3 bd 2b a6 b2 70 0b 9c 35 ec 62 9a | B..QW,_6..M..."...s...+..p..5.b. |
1c20 | 05 9f 9a d5 2f ff be 95 7c bd 74 17 09 6d ce a5 77 eb 48 79 98 67 08 bb d4 47 ea c1 22 6c bd bc | ..../...|.t..m..w.Hy.g...G.."l.. |
1c40 | 4d 4c a9 7c 56 6d 3a c0 c7 3f b8 39 ff dc d6 dc de 3b 96 81 c3 ba 53 58 bc 88 77 b7 07 8e b4 84 | ML.|Vm:..?.9.....;....SX..w..... |
1c60 | 28 85 65 2b 2c 75 24 98 01 0d c3 a8 de c5 ca b4 6c 7c 15 4d 1e b6 6d e3 0b 58 f8 15 28 05 ba c3 | (.e+,u$.........l|.M..m..X..(... |
1c80 | c0 a5 1f 09 8a 2c 5b 61 db ea c8 82 9b 9a 86 43 d7 31 24 6a 11 42 08 21 01 88 f8 43 15 2c e7 fa | .....,[a.......C.1$j.B.!...C.,.. |
1ca0 | bf 3e ca ce b2 10 ee 7c fe 13 86 b7 ad 58 c0 22 67 0e 23 46 3f 4b 96 37 99 27 5f 7e 93 be 8d 5d | .>.....|.....X."g.#F?K.7.'_~...] |
1cc0 | b5 4a ce 97 be 9a f7 de 7a 9f d9 4b d7 93 5d 62 a3 07 45 d3 ae c7 b9 5c 77 eb 4d 74 ae ef fa cd | .J......z..K..]b..E....\w.Mt.... |
1ce0 | d9 dc f6 e9 0d f4 bf 6e 0e 4f 2e 38 9f 4b 8e fa 7c fe 2b a3 b9 66 22 bc b2 33 9f 3b 9b 9c 68 fa | .......n.O.8.K..|.+..f"..3.;..h. |
1d00 | ff 6d ac 46 dd 8c e5 70 79 33 f9 d7 c8 91 ec ef 7b 1b cb 67 fc 9b 64 99 f2 ea cc a0 95 8f cb d0 | .m.F...py3......{..g..d......... |
1d20 | 74 8e 0a 22 74 5c 58 2c 9e bf 89 b0 b0 0e 8c e9 14 c1 80 f3 9a 33 6b f7 06 0e d8 1a 28 85 72 79 | t.."t\X,.............3k.....(.ry |
1d40 | e8 d2 22 96 ce 4d 22 48 8e 70 61 68 e0 2b 2e 61 e5 ba 7d 4c 5d 5f 88 ee d6 cb 5b 3a 34 83 81 fd | .."..M"H.pah.+.a..}L]_....[:4... |
1d60 | 5b 73 61 87 08 00 9a b4 4b e6 5f 89 f1 d8 80 e1 34 d8 39 7b 0d af ef 0a e0 c2 c6 11 16 46 bf d6 | [sa.....K._.....4.9{.........F.. |
1d80 | b1 b4 6f 14 46 7d af 81 86 22 37 3b 9f 85 2b f6 31 7f af 0f b7 4b a2 10 21 84 10 12 80 88 3f 8a | ..o.F}..."7;..+.1....K..!.....?. |
1da0 | 99 cb ca a5 8b 58 57 1c c1 65 f9 47 8d 9a f5 67 b0 6c d1 42 d2 c2 b2 c9 2a a9 cd c2 6f 7e e6 3d | .....XW..e.G...g.l.B....*...o~.= |
1dc0 | 37 9a 0b ef ff 9a 52 c0 70 3a 31 34 0d a5 2c e6 cf fa 86 37 9e bc 87 8b 9f fd 81 af 1e ec 8f f3 | 7.....R.p:14..,....7............ |
1de0 | 44 f3 68 af e4 ef d7 4d 25 74 c8 03 dc de 3d be d2 26 dd e9 06 a0 d6 dd e8 37 bf 4f 5c b7 1b 28 | D.h....M%t....=..&.......7.O\..( |
1e00 | f4 f6 63 d1 fe 79 74 ae 1a b3 64 ad 62 70 df 2e cc d8 d4 88 6f 0a 77 33 34 a4 0e ee 71 f4 20 3e | ..c..yt...d.bp......o.w34...q..> |
1e20 | 7d a6 2d 2d 1f 9e c2 97 f3 ee e2 be c1 29 52 ee ce 70 ba b2 98 b7 26 8b ab db 46 10 1a 16 4e ab | }.--.........)R..p....&...F...N. |
1e40 | 38 07 07 d2 6d 2c 67 10 63 af ec c2 79 8d 5c 98 96 3a 3c a3 9a ae 87 d3 b9 75 03 ae 3c 6b 17 7f | 8...m,g.c...y.\..:<......u..<k.. |
1e60 | fb cf 2e 72 d0 d1 34 70 b8 5d 44 87 96 ff 3a 0d 72 3b 89 09 d7 50 0a 0c 97 46 9a 51 de f2 e1 0f | ...r..4p.]D...:.r;...P...F.Q.... |
1e80 | 8b e7 c3 bb db 10 a9 54 79 9a bf e6 21 29 92 5e 9d 93 e9 f7 e3 1a 5e 5c 94 4d 40 c6 2e 09 21 84 | .......Ty...!).^......^\.M@...!. |
1ea0 | 90 00 44 9c 3e 41 4c 06 6f dd 72 3e b7 bc b7 16 47 64 53 46 5d 3f 86 2b 2f 1e 40 4a 5c 30 c5 19 | ..D.>AL.o.r>....GdSF]?.+/.@J\0.. |
1ec0 | 3b 98 37 ed 53 de 7c 77 32 d3 1e 1a 40 b7 9d 13 98 35 e1 16 ea 9d 40 14 b2 ea 89 5b 99 49 08 77 | ;.7.S.|w2...@....5....@....[.I.w |
1ee0 | 5e 3a 82 08 f7 ef ac 24 69 06 6e b7 86 df e5 44 ab 31 29 1d a7 cb 09 b8 30 ea f0 16 b5 b8 fb 4d | ^:.....$i.n....D.1).....0......M |
1f00 | fa 3c dc 9b 47 df 98 ca 1d 83 ef 95 75 3f ce 74 1a 14 1c 2c e0 90 69 13 ea 36 88 8d f2 a0 a5 97 | .<..G.......u?.t...,..i..6...... |
1f20 | a0 db 16 ab 56 a7 b2 66 61 11 5b d3 8b c9 2c 0a 60 e9 0e e2 e2 c2 19 74 4e 0a 97 b7 6e c2 6d 7d | ....V..fa.[...,.`......tN...n.m} |
1f40 | 0b f8 d7 4f d9 98 b6 c5 8c ef 97 33 7b 77 67 a6 5d 5d 8f 0d bf 6c e3 c1 ef f7 1f ee 82 e5 70 39 | ...O.......3{wg.]]...l........p9 |
1f60 | f0 18 60 99 25 7c 3b 77 2b a9 bb 73 d9 99 51 4a 5e a9 85 ee 76 d1 a8 61 2c 23 cf 4d a1 f7 80 16 | ..`.%|;w+..s..QJ^...v..a,#.M.... |
1f80 | f4 de b1 82 b9 07 03 32 86 44 08 21 c4 9f 9a fc 9d fb d3 b0 59 f6 9f 71 fc e3 bd b5 18 ce 7a 8c | .......2.D.!........Y..q......z. |
1fa0 | 9f b2 90 cf 5e f8 07 97 f4 ed 4a ab 96 ad e8 7a ce c5 dc f7 fc 24 7e 9e 3a 8e 38 34 d6 be f7 00 | ....^.....J....z.....$~.:.84.... |
1fc0 | e3 bf 58 51 fb e4 cb 7e e1 81 8f b6 e0 8c 49 a2 ff 90 ae bf a3 e0 54 7c 95 1c 11 82 ae 69 68 ba | ..XQ...~......I.......T|.....ih. |
1fe0 | 93 b0 9a 82 a0 c8 30 9c 86 06 18 84 84 d4 e1 6d f2 f4 e4 fa 9b e2 f0 7d ff 22 1f ed 97 69 8a 04 | ......0........m.......}."...i.. |
2000 | 28 9f 8f 1c a5 40 d7 09 72 95 17 46 cd 0e b0 78 4d 1a 0b b6 e7 b1 3f df 47 69 c0 a6 cc e7 67 f7 | (....@..r..F...xM.....?.Gi....g. |
2020 | ee 43 bc 32 71 13 9b 80 b6 c9 71 44 57 04 e2 4e a7 41 70 45 f7 29 c3 30 08 f6 38 08 f6 38 08 09 | .C.2q.....qDW..N.ApE.).0..8..8.. |
2040 | 2a 0f 3e 40 c3 f0 15 32 79 e1 7e 56 ec 29 24 a3 28 40 99 69 53 5c 54 ca c6 0d bb 19 3f 69 1b b9 | *.>@...2y.~V.)$.(@.iS\T.....?i.. |
2060 | 04 31 2c 25 18 cb 96 67 22 84 10 42 02 10 71 3a 84 1f be 2c 3e 9b f0 0a 05 40 9b fb 66 73 4f bf | .1,%...g"..B..q:...,>....@..fsO. |
2080 | f8 1a f7 8b 3b e7 1e e6 85 df ef 6a 00 00 20 00 49 44 41 54 fd b3 1d 90 cf cb 2f 7e 4e 8e 55 bb | ....;......j....IDAT....../~N.U. |
20a0 | 4a 78 c6 dc d9 ac cd 28 24 3a 69 04 7d 13 8e b5 97 06 ca 22 6b cd 14 46 75 8d 47 d3 34 34 cd 4d | Jx.....($:i.}......"k..Fu.G.44.M |
20c0 | d7 91 ff 64 75 a6 ef f0 3e a9 5f 9c 8b 16 7f 19 7b b2 6d 72 f7 7d 4f 33 4d ab d8 57 23 e6 86 09 | ...du...>._.....{.mr.}O3M..W#... |
20e0 | 14 2e ba 16 cd d1 94 29 2b fd c0 16 fa 1f b5 dd d9 f9 12 36 15 82 0a e4 f3 60 7f 0d 4d 8b e4 3f | .......)+..........6.....`..M..? |
2100 | 99 16 eb be 7a 86 b3 92 82 ca f7 73 c5 33 ec fe 4f 38 50 6a d7 98 c7 0e e7 5d 47 28 07 79 e6 a5 | ....z......s.3..O8Pj.....]G(.y.. |
2120 | 55 52 70 04 28 f8 75 48 f8 d1 8d 71 86 c3 41 72 f3 24 ee bb f6 2c 26 3d 32 90 99 cf 9e c7 dc f1 | URp.(.uH...q..Ar.$...,&=2....... |
2140 | 83 58 fc 4c 77 5a 03 41 e1 4e 42 dc 27 f6 2b d4 ed 71 d3 b5 7b 0a cf de da 8b 29 4f 9c c7 ec 71 | .X.LwZ.A.NB.'.+..q..{.....)O...q |
2160 | 17 30 f7 5f 83 f9 ee 9e d6 44 02 89 0d 83 70 d8 12 18 0b 21 84 f8 73 93 2e 58 7f 12 65 e9 33 f9 | .0._.....D....p....!..s..X..e.3. |
2180 | fa 17 80 4e bc f0 58 fb e3 ee db ea 81 d7 39 fb f1 be 2c 59 3d 89 29 69 cf 72 63 c3 ff d6 0f cb | ...N..X.......9...,Y=.)i.rc..... |
21a0 | cf e2 15 6b c9 2b 83 56 83 46 13 71 9c 78 76 db 97 f7 d0 f5 81 09 d0 b9 3f 43 2f ed ce a1 2d 4b | ...k.+.V.F.q.xv.........?C/...-K |
21c0 | 59 fa e5 13 74 5e b0 88 e9 cb 67 33 a4 21 44 b4 be 9a bf 5f 65 f0 ee 57 b3 f1 3b 1a 31 6a cc 15 | Y...t^....g3.!D...._e..W..;.1j.. |
21e0 | c4 19 01 94 6d 13 d9 ab 33 ae a4 7a dc 7d a3 c9 d4 6f 3f 63 67 46 18 c3 ef bc 95 66 ae 00 b6 52 | ....m...3..z.}...o?cgF.....f...R |
2200 | 04 25 77 20 a6 62 bc 88 cb e3 01 dc cc 7b fa 12 c6 bc f6 3d ed ce 1f c6 55 7d 0c 76 2e 9f cd 37 | .%w..b.......{.....=....U}.v...7 |
2220 | cf fd 85 99 3f cc 66 ee 0f 6f 73 76 82 bb 52 2e 93 9b 76 a2 49 28 ac fd cf 5b 1c 78 e9 6d 1a 48 | ....?.f..osv..R...v.I(...[.x.m.H |
2240 | f1 39 a3 69 6e 37 91 9a 06 b6 45 a9 3f 50 fe 99 cb c3 f0 8b 3b f0 97 36 c1 94 e5 16 b0 6a 67 06 | .9.in7....E.?P......;..6.....jg. |
2260 | b9 25 26 01 5b 61 d9 0e 7a 9c dd 80 04 87 46 6d d7 1b 54 4a e1 8c 8e e5 1f 57 b4 a3 7b b4 c6 81 | .%&.[a..z.....Fm..TJ.....W..{... |
2280 | b4 1c 56 6e cc a3 d0 67 61 29 d0 1d 1e fa 75 ab 47 98 5b 2f 9f a9 0b 59 c5 46 08 21 84 04 20 e2 | ..Vn...ga)....u.G.[/...Y.F.!.... |
22a0 | 14 57 b4 61 32 7b 00 da 8d a6 af fb bf ec ec 3a 8b a1 5d 60 c9 ca 03 7c b9 ba 80 1b 1b 46 1f 7f | .W.a2{.........:..]`...|.....F.. |
22c0 | ff 40 19 9b 77 2d c7 0f 74 18 d4 ea 58 d5 38 20 87 37 1f 78 93 1b 27 6d 64 dc 25 c9 78 1c 3a aa | .@..w-..t...X.8..7.x..'md.%.x.:. |
22e0 | 24 95 c7 2e 1c c4 f3 4b e6 f1 e6 6b 93 19 f8 c2 65 44 b6 bd 96 97 1e 37 98 fc c3 6c 0a bd cd b9 | $......K...k....eD.....7...l.... |
2300 | e7 f9 67 69 5f e9 8b e4 b3 78 f1 f9 e6 ec 58 f1 25 3b 33 62 b8 61 fc 33 0c a9 32 58 43 05 ca 03 | ..gi_....x....X.%;3b.a.3..2XC... |
2320 | 1e c8 60 e2 5b 3f 71 df 94 6d dc 3f b8 11 41 0e b0 4a f7 f3 f2 25 9d 78 f0 a7 8f 19 fb 52 3f 16 | ..`.[?q..m.?..A..J...%.x.....R?. |
2340 | 3d 7f 1d 47 7f 51 1d d9 20 81 88 04 27 da b6 19 2c c8 82 d1 31 52 7e ce 58 4a 11 1c 17 4a 7d 87 | =..G.Q......'...,...1R~.XJ...J}. |
2360 | 0e fe 00 99 b9 3e 94 52 24 36 6a c0 f0 36 c1 f8 53 b7 71 eb a7 07 28 b0 6c 4c 5b a1 94 a2 c4 0c | .....>.R$6j..6..S.q...(.lL[..... |
2380 | a6 69 af 06 24 9c 40 90 60 6b 4e 86 f4 4f a6 7b b4 c6 ba c5 6b f8 d7 fc 3c 4a 4d 1b 53 95 0f 14 | .i..$.@.`kN..O.{....k...<JM.S... |
23a0 | 71 86 d4 e3 ac 6e f5 08 43 3b 1c 80 08 21 84 10 7f 56 d2 05 eb 4f 22 2f 75 27 00 41 2d 13 f9 ef | q....n..C;...!...V...O"/u'.A-... |
23c0 | 93 e0 ba 69 d0 32 0c 80 7d db b2 fe 7b e5 29 50 42 46 6a 1a 10 42 fb 46 c7 2f 32 c1 57 fe c0 ff | ...i.2..}...{.)PBFj..B.F./2.W... |
23e0 | 5d d1 9a f0 60 2f 6e b7 07 4f 64 2b c6 3d 35 18 b0 d8 b0 ed 67 72 fc 15 3b fe da d1 5d 29 2c ab | ]...`/n..Od+.=5.....gr..;...]),. |
2400 | 86 84 4c eb 70 b7 18 db 3c 6e 0d 92 a8 41 1f f2 f4 b0 14 42 3d 2e 1c 0e 17 ee d0 26 3c f0 fd 24 | ..L.p...<n...A.....B=......&<..$ |
2420 | da 02 2b de 9e c2 96 a2 40 e5 43 42 23 88 0e 8d 40 91 c6 e6 dd 52 76 ce 64 b6 66 d0 a7 5d 14 5e | ..+.....@.CB#...@....Rv.d.f..].^ |
2440 | a7 46 41 61 01 5b 0f 06 50 40 54 6c 34 c1 c0 b2 05 e9 1c f0 db 58 0a 34 ad bc c5 c3 1d 1b 45 d3 | .FAa.[..P@Tl4........X.4......E. |
2460 | 13 3c 8f e6 74 d1 34 34 08 b0 58 fe 4b 26 f9 01 1b 1b ca c7 41 a1 08 89 8f 21 4e 1e 87 10 42 08 | .<..t.44..X.K&......A....!N...B. |
2480 | 09 40 c4 69 55 91 32 cb 2b f4 86 b3 76 73 46 e9 8e f2 fd 2c bf f5 df d3 b6 fc 14 65 05 80 70 1a | .@.iU.2.+...vsF....,.......e..p. |
24a0 | 84 1f 7f df bf fc fd 9c 6a 9f 19 ed bb 13 0b 64 16 e6 50 ea af cb ab 2e 0f 50 2e 79 60 44 f5 4d | ........j......d..P......P.y`D.M |
24c0 | 41 17 32 76 20 50 34 9f 19 fb ca 2a 6f 73 06 11 ee 0c 02 34 f2 d2 0b a4 f0 9c 09 ef 87 ad b0 55 | A.2v.P4....*os.....4...........U |
24e0 | f9 02 80 96 ad 08 04 2c 8a 03 3a 1d ba 36 e3 ea 8e d1 38 50 2c 99 bf 9d d4 40 45 0b 84 5d fe 3e | .......,..:..6....8P,....@E..].> |
2500 | d5 8b 75 62 fa 6d 14 e5 dd a8 ca 6c 27 83 07 24 12 5a c3 39 fc 65 e5 ef 92 c7 d0 8e 5a b8 f0 48 | ..ub.m.....l'..$.Z.9.e......Z..H |
2520 | 59 2d ff 4c 27 22 dc 81 59 31 f6 ca b6 2c 4a f4 30 ae 18 24 1d 01 85 10 42 48 00 22 4e 33 61 89 | Y-.L'"..Y1...,J.0..$....BH."N3a. |
2540 | f5 01 28 da 95 5d 8b ee 1b 36 39 bb 73 01 88 69 1c 7d 42 15 7e a5 8e 17 0c 84 93 12 55 43 00 e4 | ..(..]...69.s..i.}B.~.......UC.. |
2560 | f0 e2 06 6c cb a6 6e c7 d7 da 40 0c dd 1a d7 5c 8c 93 3a 27 00 85 ac 4d 2b 3b 46 e8 22 ce 04 9a | ...l..n...@....\..:'...M+;F."... |
2580 | cb 49 fd a8 20 e2 22 83 88 8f f6 92 d2 28 9a 21 fd 5a f2 7f f7 f6 e4 d1 41 89 c4 b8 14 3f 7f bf | .I...."......(.!.Z......A....?.. |
25a0 | 92 09 1b ca 30 0c 0d 34 8d 83 e9 87 c8 02 9a 5f d0 85 db bb 84 e1 54 0a 77 68 18 57 8f e8 c8 ad | ....0..4......._......T.wh.W.... |
25c0 | ed 3c 94 56 3d 87 ae e1 cb c8 21 0f 68 da 3c 9a 0e 31 2e 02 01 0b 7f c0 c6 6f 03 7e 1f 2b b2 4b | .<.V=.....!.h.<..1.......o.~.+.K |
25e0 | 00 8d 0b 2e ee c0 80 44 37 ca 86 98 84 78 9e bc a5 13 83 a2 2d fc f2 a8 84 10 42 9c 21 64 0c c8 | .......D7....x......-.....B.!d.. |
2600 | 9f 44 68 eb 21 44 32 8f dc 95 3f b0 81 db 68 77 dc 38 62 1b f3 97 03 84 32 a4 63 f8 7f 8f 52 0d | .Dh.!D2...?...hw.8b.....2.c...R. |
2620 | 27 de 28 03 28 22 a3 10 88 3c 4e 65 ef 0f 1f 39 7b 64 41 b7 6a 5b 2a a2 a5 6a 03 85 cd 32 8a cc | '.(.("...<Ne...9{dA.j[*..j...2.. |
2640 | f2 a0 24 2c 36 58 0a cf 9f 37 f4 00 c0 68 dc 94 b7 ee 6a 5a ad dc 94 94 04 c8 cc c8 e3 fb d9 9b | ..$,6X...7...h....jZ............ |
2660 | 99 ba b3 04 87 ae 1d 1e d3 71 70 ef 41 be 5c 11 cd 15 ed 22 19 3e a2 3b c3 2b 1a d9 ac b2 62 3e | .........qp.A.\....".>.;.+....b> |
2680 | 9b b4 81 86 23 3b d0 c7 d0 8e 0c 02 d1 74 f4 82 03 bc b9 b2 11 77 77 8a e6 91 db fa 1c 3e d3 9e | ....#;.......t.......ww......>.. |
26a0 | 6f 16 73 d3 ea 32 e6 ce d8 4e e7 84 76 f4 8a 89 e2 1f 63 7a 1f de 5e 52 98 cb 1b ef ed 61 c8 0d | o.s..2...N..v.....cz..^R.....a.. |
26c0 | 1d 69 22 5f 09 09 21 84 90 00 44 9c 2e bc 8d 87 31 b8 d1 7d 4c da f3 1d 4f 4c ca e2 ab 2b 8f 3d | .i"_..!...D.....1..}L...OL...+.= |
26e0 | b2 3a f7 ab c7 f8 aa 14 48 18 ca 55 cd dc ff 35 6d dd e9 25 2e 39 11 16 ef 61 dd 1e 1b 1a d6 6d | .:......H..U...5m..%.9...a.....m |
2700 | 2d 49 ab 31 ac 38 d6 96 4a 39 03 b2 59 ba dd 62 4c 5c f5 96 97 3d cb 0f 00 e1 74 4a a8 32 82 bd | -I.1.8..J9..Y..bL\...=....tJ.2.. |
2720 | 30 8f ec c2 3c 34 ea d1 b2 a9 21 85 e7 cf 18 7a 68 3a fe ec 03 bc 33 33 0f bb ca 54 d3 ca b6 29 | 0...<4....!....zh:....33...T...) |
2740 | 2c f6 73 28 a7 98 dd 87 8a 29 51 3a 2e a3 72 59 33 54 80 69 df ad 67 c3 fa 48 5a c4 7a f0 18 1a | ,.s(.....)Q:..rY3T.i..g..HZ.z... |
2760 | fe 32 1f bb f6 e5 b2 25 4b d1 7d c6 36 b6 59 65 64 94 1e 49 db 70 68 2c 99 be 9c 07 36 45 d3 24 | .2.....%K.}.6.Yed..I.ph,....6E.$ |
2780 | da 85 13 d0 0c 9d ec fd 26 2e 5d c3 11 c8 e7 c5 b7 7e 61 66 4a 24 8d c2 9d 18 40 49 51 09 1b 77 | ........&.]......~afJ$....@IQ..w |
27a0 | e6 72 c8 f6 50 36 63 07 e1 85 b9 a8 a3 02 21 21 84 10 42 02 10 71 ca 32 82 1a 32 f2 86 e1 7c f5 | .r..P6c.......!!..B..q.2..2...|. |
27c0 | d8 14 be 1f 3b 98 19 03 7e 61 50 fd 1a 76 cc 9a c9 05 37 4c 05 5c 8c b8 f3 4a 1a ba 6a 51 d5 71 | ....;...~aP..v....7L.\...J..jQ.q |
27e0 | 06 d1 ac 71 17 1c ec 61 ed 9c ed d0 a7 c5 ef cf b0 cb 01 ba 8e 22 40 c0 02 aa cc 04 ac 19 06 ba | ...q...a............."@......... |
2800 | 43 07 02 f8 cc e3 87 2e df 3d f3 29 f6 0f 57 57 ee 4f 58 38 85 97 16 00 e1 fd b9 20 a9 72 00 92 | C........=.)..WW.OX8.........r.. |
2820 | 9f 7e 90 bc 03 7e b4 b0 7e f4 8a 95 b2 f3 27 8d 40 30 0b 72 f8 6e 59 ce f1 83 5e dd 38 c6 a4 0d | .~...~..~.....'.@0.r.nY...^.8... |
2840 | 1a 2e dd 26 6d 5f 36 69 fb 2a 4f 8b eb 72 c0 9a 55 fb 59 5d 43 88 ac 61 b3 2b 35 93 5d a9 47 ba | ...&m_6i.*O..r..U.Y]C..a.+5.].G. |
2860 | f9 69 80 43 2b 0f 98 9d 04 d8 ba 3d 83 2d 55 f2 61 50 c6 a2 e5 7b cb cf 23 ad 20 42 08 21 fe e4 | .i.C+......=.-U.aP...{..#..B.!.. |
2880 | e4 4f dd e9 c2 36 29 cc cb 26 3b bb 86 9f ac 6c 0a fc 0e 86 fe ed 21 2e ed 56 8f b2 ec 15 5c 31 | .O...6)..&;....l......!..V....\1 |
28a0 | 60 28 93 17 ad 63 7f 46 36 f9 05 f9 64 67 a4 b1 7e d1 64 86 f6 be 82 5f 0a fc c4 9d 3d 8a 47 6f | `(...c.F6...dg..~.d...._....=.Go |
28c0 | 18 5c cb 02 e0 a2 77 97 f6 44 b8 20 6d c6 64 f2 eb e2 7a 62 1a 10 67 b8 29 2e 4d 65 f5 a6 7c 02 | .\....w..D..m.d...zb..g.).Me..|. |
28e0 | a6 85 65 59 d8 bf 0e 32 f1 86 12 1b 1a 03 ec 63 e1 b2 4c 4c ab 62 7b b5 41 24 1a 05 73 af e7 ee | ..eY...2.......c..LL.b{.A$..s... |
2900 | 8f 57 90 55 58 4a c0 5f 46 de 81 35 3c 3a e8 5a b6 a3 d1 f3 96 cb 68 1e 5c 39 ba d9 9d ba 8a d4 | .W.UXJ._F..5<:.Z......h.\9...... |
2920 | 7c 88 bd fc 6f 24 4b c9 fa 73 c7 21 c7 f8 f9 2d e9 d4 e6 b3 9a ce 7d 22 db a4 e5 43 08 21 c4 99 | |...o$K..s.!...-......}"...C.!.. |
2940 | 40 5a 40 4e 17 b9 a9 fc f3 c6 0b 79 2d a8 7a c8 60 97 15 d3 fe f1 05 7c 3c aa 0b 9f 7c 33 95 a6 | @Z@N.......y-.z.`......|<...|3.. |
2960 | 77 dc c0 b3 53 be e5 f2 3e b3 68 dc a6 15 71 a1 6e fc 85 87 d8 bc 31 95 52 a0 d5 f0 87 f8 e0 f5 | w...S...>.h...q.n.....1.R....... |
2980 | 27 e8 10 55 fb d3 27 0c 3c 8f 16 e1 cf b3 22 f5 53 16 1f 7a 98 21 bf 77 ce d0 b0 9e dc 3b 20 8e | '..U..'.<.....".S..z.!.w.....;.. |
29a0 | d1 9f a6 f2 e0 88 7e 4c 6e d9 00 27 36 f5 2e bc 85 b7 6e 1b 8a cb 9d c8 35 fd 3b f1 ee bc fd 4c | ......~Ln..'6.....n.....5.;....L |
29c0 | b8 aa 37 eb ba 36 c3 eb d0 08 69 d5 87 17 9e bc 9f 04 07 94 0f 42 af cf 4d 0f f5 e3 bd bf 76 63 | ..7..6....i..........B..M.....vc |
29e0 | e6 1b 7d 69 14 a1 93 b6 69 39 1b d2 8a 09 ee 7c 0b 6f dc 33 0a 57 95 5b b6 e9 c7 4f c8 23 82 97 | ..}i....i9.....|.o.3.W.[...O.#.. |
2a00 | ee 3f 4b ca 95 10 42 08 21 84 04 20 67 2a 85 65 99 60 99 55 66 8a 52 58 a6 09 a6 c9 ee 2d 6b d9 | .?K...B.!...g*.e.`.Uf.RX.....-k. |
2a20 | 7d 8c a3 f5 83 be f2 07 da a0 07 4f 7f b9 86 eb 97 7e c9 b3 4f bd c8 94 b9 ab 48 0d 00 8e 08 3a | }..........O.....~..O.....H....: |
2a40 | 0d ba 9e fb 1e 7b 98 cb cf 6a 8c 43 3f c1 ef 5a 43 7b f2 dc a8 86 f4 7a 23 8d b9 df af 67 d0 75 | .....{...j.C?..ZC{.....z#....g.u |
2a60 | ed 2a b5 9e 28 bb 7c 0a d2 9a 67 b9 52 58 80 65 1d 3d 5c dc cd a8 49 ab d0 9b de c4 7d af 4d 65 | .*..(.|...g.RX.e.=\...I.....}.Me |
2a80 | f6 8c 35 00 34 48 38 bf 22 0d 07 7d 1e fd 9c 1f c3 ef 66 ec b8 ff 30 6f e6 b6 f2 6c 64 7b 78 dc | ..5.4H8."..}......f...0o...ld{x. |
2aa0 | fc b5 e4 96 77 8c e9 39 76 12 63 cf ea c6 8d 63 ff c9 cc 5f f2 31 42 93 19 fd c4 7f 98 f0 f8 b0 | ....w..9v.c....c..._.1B......... |
2ac0 | ea ab b6 07 d6 f1 f1 ff ed 81 3e cf 72 8b 8c ff 10 42 08 21 84 f8 c3 69 4a 29 99 91 f4 94 08 3f | ..........>.r....B.!...iJ).....? |
2ae0 | 8e 3d 18 bb b6 a1 82 52 27 79 16 aa 92 ef e9 16 7c 21 69 97 3e ce a6 2f 9e 20 c2 59 bb 6b 39 91 | .=.....R'y......|!i.>../...Y.k9. |
2b00 | 6b a8 f5 fd 0a e4 f3 c4 25 71 3c 39 23 9a 49 39 69 5c 11 59 bb e3 52 df ec 47 93 5b 57 f3 e0 d7 | k.......%q<9#.I9i\.Y..R..G.[W... |
2b20 | 3f f3 ec a5 6d a4 e0 9d 80 c7 27 7c c7 9c 65 5b 70 79 c3 88 88 6f 8e 52 b6 dc 94 33 f5 0f 87 6e | ?...m.....'|..e[py...o.R...3...n |
2b40 | 90 bd 7b 2d 01 bf 8f db 47 f5 e5 ea 0b bb cb 4d 11 42 08 51 6b 32 06 e4 54 f9 83 7e 82 9f d7 b8 | ..{-....G......M.B.Qk2..T..~.... |
2b60 | ef c9 ee 40 ee 1d c2 84 37 2e 20 fd 9b 97 78 73 5d 76 ad af e5 94 e9 d7 5e f4 23 57 de 35 9f f0 | ...@....7.....xs]v......^.#W.5.. |
2b80 | 0e 97 71 dd 79 12 7c 08 21 84 10 42 48 00 22 4e 79 9d ae fb 88 89 cf 8e c1 4e cd 3e ed f2 9e b7 | ..q.y.|.!..BH."Ny........N.>.... |
2ba0 | 25 9f f3 ee 79 84 f7 de 7d 99 14 59 fe 43 08 21 84 10 e2 7f 42 c6 80 88 13 62 78 e3 b8 f2 c1 17 | %...y...}..Y.C.!....B....bx..... |
2bc0 | 4e 89 bc f8 cb 7c 40 09 66 2d f7 8f e8 3a 8c 27 bb 0e 93 87 28 84 10 42 08 21 01 88 10 27 46 73 | N....|@.f-...:.'....(..B.!...'Fs |
2be0 | 84 70 eb bf 17 33 38 d3 49 ab 50 b9 1f 7f 36 96 69 e3 b7 6c 2c 5b 1d 5e 94 d2 30 34 9c 86 8e d3 | .p...38.I.P...6.i..l,[.^..04.... |
2c00 | f8 7d 9d fa 6c d3 a4 c8 af 70 b9 1d 78 8e 4a cb 32 4d 8a fd 0a b7 c7 89 5b da 86 85 10 42 08 09 | .}..l....p..x.J.2M......[....B.. |
2c20 | 40 84 a8 1c 81 18 34 6c dd 93 86 72 27 fe 74 0c a7 9b ae dd 93 18 da 39 8e b6 f5 dc e5 63 88 94 | @.....4l...r'.t........9.....c.. |
2c40 | c9 9e 3d b9 fc b4 72 0f b3 b7 14 52 6c 29 7e cb ec 19 ca 32 69 d4 b3 37 af 0f f2 32 ef b3 25 3c | ..=...r....Rl)~....2i..7...2..%< |
2c60 | bf b5 14 97 56 3e 8b 5b c7 81 7d 79 aa af 9b e9 ef 2f e4 8d bd 81 3f 26 08 d1 34 5c 0e 1d 1d 85 | ....V>.[..}y...../....?&..4\.... |
2c80 | 3f 60 23 c3 fa 85 10 42 48 00 22 84 10 7f 10 65 43 8b 8e 4d b9 63 48 23 92 5c 10 28 2a 61 d3 ae | ?`#....BH."....eC..M.cH#.\.(*a.. |
2ca0 | 6c 8a fc 36 4e b7 8b b8 98 28 fe 3a 22 96 bf 96 e4 f2 f8 9b 6b 59 5d 64 ff 86 41 6c 1a aa 62 ae | l..6N....(.:".......kY]d..Al..b. |
2cc0 | 68 53 1d 3d 41 82 86 b2 6d 40 61 fd 91 f3 02 86 45 f3 ea cd ed 89 f7 94 f2 d8 b3 8b 58 63 1a 32 | hS.=A...m@a.....E...........Xc.2 |
2ce0 | 30 4f 08 21 84 04 20 42 08 71 b2 d9 01 8b b8 6e 1d 79 e6 92 58 9c 04 98 39 6d 3d 5f 6e 2b a6 d8 | 0O.!...B.q.....n.y..X...9m=_n+.. |
2d00 | 6f 11 b0 14 ba a1 e3 71 3b a8 17 1f cb 9d 23 1a 93 1c 64 b0 b2 d0 46 3f dd 97 0e 57 36 25 65 0a | o......q;.....#...d...F?...W6%e. |
2d20 | d3 30 b1 a4 18 08 21 84 90 00 44 08 21 fe 88 4a b8 c2 8a 6c c0 b3 97 c4 e2 c4 64 da 17 ab f8 bf | .0....!...D.!..J...l......d..... |
2d40 | 4d c5 95 bb 40 d9 16 fe 80 45 fe b6 7d 8c 7d 2d 8b 7a a6 59 39 f8 d0 34 3c 2e 03 97 43 47 03 94 | M...@....E..}.}-.z.Y9..4<...CG.. |
2d60 | 52 04 02 16 65 01 1b 55 37 59 44 77 e8 04 39 0d 1c 86 86 06 d8 b6 8d cf 6f e1 33 55 b5 29 b0 95 | R...e..U7YDw..9.........o.3U.).. |
2d80 | 02 c3 61 10 e4 d2 cb 17 fd 54 0a 5b 29 02 a6 7d b8 ab 95 66 38 08 f3 3a 31 b4 f2 fc 87 78 5d 84 | ..a......T.[)..}...f8..:1....x]. |
2da0 | 9b 06 ba 06 ca b4 28 f4 59 a8 8a b4 1c 4e 03 8f b3 22 2d 14 96 55 7e 6e bf 5d 65 9a 6b 4d 27 c4 | ......(.Y....N..."-..U~n.]e.kM'. |
2dc0 | e3 40 d7 6c 8a 4a 4c 34 87 41 90 53 c7 d0 35 94 69 52 e0 93 4e 5e 42 08 21 24 00 11 42 9c e1 2c | .@.l.JL4.A.S..5.iR..N^B.!$..B.., |
2de0 | 5b e7 ec 3e 09 c4 02 59 7b 33 98 ba a3 08 f7 31 9a 36 34 4d 43 15 97 92 ae 69 e5 5d 95 94 4d c0 | [..>...Y{3.....1.64MC....i.]..M. |
2e00 | 11 c2 45 fd 92 19 d4 2e 96 c6 61 bf ae 6e af 38 b0 2f 8b 59 cb f6 f0 dd a6 7c cc df b1 1a 8d 65 | ..E.......a..n.8./.Y.....|.....e |
2e20 | 43 6c 62 3d 86 f7 48 a0 57 cb 48 22 0f ff d6 0c b0 69 73 06 df 2f de c5 4f 7b fd 38 1c e5 e7 08 | Clb=..H.W.H".....is../..O{.8.... |
2e40 | 98 d0 b8 65 02 97 76 ad 4f f7 66 e1 84 1d 0e a4 6c 0e ec cf e5 87 f9 9b f8 66 6b 29 61 4d db f1 | ...e..v.O.f.....l........fk)aM.. |
2e60 | d1 55 b1 15 db 42 78 f0 ae be 87 cf 19 48 dd cf 4d 9f 6e 23 37 00 f5 1b d5 e7 b2 5e 89 f4 4e 09 | .U...Bx......H..M.n#7......^..N. |
2e80 | 23 e8 d7 1d 7c a5 ac d8 74 90 af 7e 4c 65 6d 21 b8 2a ce 61 44 45 f3 fc 4d ed 88 77 15 32 fe 9d | #...|...t..~Lem!.*.aDE..M..w.2.. |
2ea0 | 9d 74 39 37 85 81 8d 83 cb ef d5 d6 0d 5c 34 f1 d0 e1 7c 0a 21 84 10 12 80 08 21 ce 48 ca e5 a1 | .t97.........\4...|.!.....!.H... |
2ec0 | 47 7d 0f 00 7b f6 1f 22 c7 cf f1 57 28 fa 35 f8 00 7c 2a 88 9b af ef c4 a5 f1 6e 02 39 b9 bc f3 | G}..{.."...W(.5..|*.......n.9... |
2ee0 | e5 6e b6 e4 2b 1a b7 68 c8 ed 7d 62 b9 36 29 9c c8 2f 56 f3 ce e6 62 7e 6b bd 3b 3a a1 3e 0f 5d | .n..+..h..}b.6)../V...b~k.;:.>.] |
2f00 | d1 9a 66 c1 b0 7e c5 0e de d8 98 47 ae 69 d0 ba 5d 23 ae ef 9e 40 b3 86 91 78 26 2d 67 f6 01 1b | ..f..~.....G.i..]#...@...x&-g... |
2f20 | d0 68 d1 a5 19 8f 0c 4e 22 ca 05 5b d6 a5 f2 c6 9a 6c b2 7c 10 5b 2f 82 de 9d 93 e8 9c ec e6 9b | .h.....N"..[.....l.|.[/......... |
2f40 | ad 7e 4a f6 6c e1 c6 f7 33 79 f4 b2 56 24 7a 4b 78 e9 cd 55 6c 31 75 34 4d c3 0e 98 14 98 8a d0 | .~J.l...3y..V$zKx..Ul1u4M....... |
2f60 | 7a f1 3c 78 75 6b 92 1d b0 73 ed 4e fe b3 32 87 32 57 30 e7 9f d3 8c 01 9d 1a d3 b6 79 18 4f be | z.<xuk...s.N..2.2W0.........y.O. |
2f80 | ba 8a f5 01 03 43 03 65 db 94 96 29 94 33 88 31 d7 74 80 cc 0c de 9d b2 8b 43 b6 93 26 7a 09 ba | .....C.e...).3.1.t.......C..&z.. |
2fa0 | 2e c1 87 10 42 08 09 40 84 10 67 38 dd e5 a4 9e db 09 4a 91 9b 51 4c 00 0d a3 36 81 8b 0d 29 67 | ....B..@..g8......J..QL...6...)g |
2fc0 | 35 e5 92 fa 6e 4a b3 73 78 e2 fd d5 6c 2a 06 5d 83 ad bb 33 59 b2 b7 2d 1f 5c 95 c0 d0 4b 1b 33 | 5...nJ.sx...l*.]...3Y..-.\...K.3 |
2fe0 | 6b eb 7a f6 29 ed 84 db 41 14 06 17 5c d0 9a 66 c1 16 53 3f 5e c4 eb 5b 03 78 5d 3a 1a 8a 2d bb | k.z.)...A...\..f..S?^..[.x]:..-. |
3000 | b2 58 9d db 89 7f 5f 10 c3 90 1e 49 2c 99 ba 1b bf 27 94 2b fa 26 11 e5 52 2c 98 b6 94 71 4b 8b | .X...._....I,....'.+.&..R,...qK. |
3020 | 70 ba 0c 34 60 47 5a 3e 0b 57 a4 a2 19 06 4e 87 86 32 03 64 15 f8 31 6d 50 ca 26 af a0 8c cc#ifndef _LINUX_MM_H
#define _LINUX_MM_H
#include <linux/errno.h>
#ifdef __KERNEL__
#include <linux/mmdebug.h>
#include <linux/gfp.h>
#include <linux/bug.h>
#include <linux/list.h>
#include <linux/mmzone.h>
#include <linux/rbtree.h>
#include <linux/atomic.h>
#include <linux/debug_locks.h>
#include <linux/mm_types.h>
#include <linux/range.h>
#include <linux/pfn.h>
#include <linux/bit_spinlock.h>
#include <linux/shrinker.h>
#include <linux/resource.h>
#include <linux/page_ext.h>
#include <linux/err.h>
struct mempolicy;
struct anon_vma;
struct anon_vma_chain;
struct file_ra_state;
struct user_struct;
struct writeback_control;
struct bdi_writeback;
#ifndef CONFIG_NEED_MULTIPLE_NODES /* Don't use mapnrs, do it properly */
extern unsigned long max_mapnr;
static inline void set_max_mapnr(unsigned long limit)
{
max_mapnr = limit;
}
#else
static inline void set_max_mapnr(unsigned long limit) { }
#endif
extern unsigned long totalram_pages;
extern void * high_memory;
extern int page_cluster;
#ifdef CONFIG_SYSCTL
extern int sysctl_legacy_va_layout;
#else
#define sysctl_legacy_va_layout 0
#endif
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
#ifndef __pa_symbol
#define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0))
#endif
/*
* To prevent common memory management code establishing
* a zero page mapping on a read fault.
* This macro should be defined within <asm/pgtable.h>.
* s390 does this to prevent multiplexing of hardware bits
* related to the physical page in case of virtualization.
*/
#ifndef mm_forbids_zeropage
#define mm_forbids_zeropage(X) (0)
#endif
extern unsigned long sysctl_user_reserve_kbytes;
extern unsigned long sysctl_admin_reserve_kbytes;
extern int sysctl_overcommit_memory;
extern int sysctl_overcommit_ratio;
extern unsigned long sysctl_overcommit_kbytes;
extern int overcommit_ratio_handler(struct ctl_table *, int, void __user *,
size_t *, loff_t *);
extern int overcommit_kbytes_handler(struct ctl_table *, int, void __user *,
size_t *, loff_t *);
#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n))
/* to align the pointer to the (next) page boundary */
#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
/* test whether an address (unsigned long or pointer) is aligned to PAGE_SIZE */
#define PAGE_ALIGNED(addr) IS_ALIGNED((unsigned long)addr, PAGE_SIZE)
/*
* Linux kernel virtual memory manager primitives.
* The idea being to have a "virtual" mm in the same way
* we have a virtual fs - giving a cleaner interface to the
* mm details, and allowing different kinds of memory mappings
* (from shared memory to executable loading to arbitrary
* mmap() functions).
*/
extern struct kmem_cache *vm_area_cachep;
#ifndef CONFIG_MMU
extern struct rb_root nommu_region_tree;
extern struct rw_semaphore nommu_region_sem;
extern unsigned int kobjsize(const void *objp);
#endif
/*
* vm_flags in vm_area_struct, see mm_types.h.
*/
#define VM_NONE 0x00000000
#define VM_READ 0x00000001 /* currently active flags */
#define VM_WRITE 0x00000002
#define VM_EXEC 0x00000004
#define VM_SHARED 0x00000008
/* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */
#define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */
#define VM_MAYWRITE 0x00000020
#define VM_MAYEXEC 0x00000040
#define VM_MAYSHARE 0x00000080
#define VM_GROWSDOWN 0x00000100 /* general info on the segment */
#define VM_UFFD_MISSING 0x00000200 /* missing pages tracking */
#define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */
#define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */
#define VM_UFFD_WP 0x00001000 /* wrprotect pages tracking */
#define VM_LOCKED 0x00002000
#define VM_IO 0x00004000 /* Memory mapped I/O or similar */
/* Used by sys_madvise() */
#define VM_SEQ_READ 0x00008000 /* App will access data sequentially */
#define VM_RAND_READ 0x00010000 /* App will not benefit from clustered reads */
#define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
#define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
#define VM_LOCKONFAULT 0x00080000 /* Lock the pages covered when they are faulted in */
#define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
#define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
#define VM_ARCH_1 0x01000000 /* Architecture-specific flag */
#define VM_ARCH_2 0x02000000
#define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */
#ifdef CONFIG_MEM_SOFT_DIRTY
# define VM_SOFTDIRTY 0x08000000 /* Not soft dirty clean area */
#else
# define VM_SOFTDIRTY 0
#endif
#define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */
#define VM_HUGEPAGE 0x20000000 /* MADV_HUGEPAGE marked this vma */
#define VM_NOHUGEPAGE 0x40000000 /* MADV_NOHUGEPAGE marked this vma */
#define VM_MERGEABLE 0x80000000 /* KSM may merge identical pages */
#if defined(CONFIG_X86)
# define VM_PAT VM_ARCH_1 /* PAT reserves whole VMA at once (x86) */
#elif defined(CONFIG_PPC)
# define VM_SAO VM_ARCH_1 /* Strong Access Ordering (powerpc) */
#elif defined(CONFIG_PARISC)
# define VM_GROWSUP VM_ARCH_1
#elif defined(CONFIG_METAG)
# define VM_GROWSUP VM_ARCH_1
#elif defined(CONFIG_IA64)
# define VM_GROWSUP VM_ARCH_1
#elif !defined(CONFIG_MMU)
# define VM_MAPPED_COPY VM_ARCH_1 /* T if mapped copy of data (nommu mmap) */
#endif
#if defined(CONFIG_X86)
/* MPX specific bounds table or bounds directory */
# define VM_MPX VM_ARCH_2
#endif
#ifndef VM_GROWSUP
# define VM_GROWSUP VM_NONE
#endif
/* Bits set in the VMA until the stack is in its final location */
#define VM_STACK_INCOMPLETE_SETUP (VM_RAND_READ | VM_SEQ_READ)
#ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */
#define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS
#endif
#ifdef CONFIG_STACK_GROWSUP
#define VM_STACK_FLAGS (VM_GROWSUP | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT)
#else
#define VM_STACK_FLAGS (VM_GROWSDOWN | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT)
#endif
/*
* Special vmas that are non-mergable, non-mlock()able.
* Note: mm/huge_memory.c VM_NO_THP depends on this definition.
*/
#define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_PFNMAP | VM_MIXEDMAP)
/* This mask defines which mm->def_flags a process can inherit its parent */
#define VM_INIT_DEF_MASK VM_NOHUGEPAGE
/* This mask is used to clear all the VMA flags used by mlock */
#define VM_LOCKED_CLEAR_MASK (~(VM_LOCKED | VM_LOCKONFAULT))
/*
* mapping from the currently active vm_flags protection bits (the
* low four bits) to a page protection mask..
*/
extern pgprot_t protection_map[16];
#define FAULT_FLAG_WRITE 0x01 /* Fault was a write access */
#define FAULT_FLAG_MKWRITE 0x02 /* Fault was mkwrite of existing pte */
#define FAULT_FLAG_ALLOW_RETRY 0x04 /* Retry fault if blocking */
#define FAULT_FLAG_RETRY_NOWAIT 0x08 /* Don't drop mmap_sem and wait when retrying */
#define FAULT_FLAG_KILLABLE 0x10 /* The fault task is in SIGKILL killable region */
#define FAULT_FLAG_TRIED 0x20 /* Second try */
#define FAULT_FLAG_USER 0x40 /* The fault originated in userspace */
/*
* vm_fault is filled by the the pagefault handler and passed to the vma's
* ->fault function. The vma's ->fault is responsible for returning a bitmask
* of VM_FAULT_xxx flags that give details about how the fault was handled.
*
* pgoff should be used in favour of virtual_address, if possible.
*/
struct vm_fault {
unsigned int flags; /* FAULT_FLAG_xxx flags */
pgoff_t pgoff; /* Logical page offset based on vma */
void __user *virtual_address; /* Faulting virtual address */
struct page *cow_page; /* Handler may choose to COW */
struct page *page; /* ->fault handlers should return a
* page here, unless VM_FAULT_NOPAGE
* is set (which is also implied by
* VM_FAULT_ERROR).
*/
/* for ->map_pages() only */
pgoff_t max_pgoff; /* map pages for offset from pgoff till
* max_pgoff inclusive */
pte_t *pte; /* pte entry associated with ->pgoff */
};
/*
* These are the virtual MM functions - opening of an area, closing and
* unmapping it (needed to keep files on disk up-to-date etc), pointer
* to the functions called when a no-page or a wp-page exception occurs.
*/
struct vm_operations_struct {
void (*open)(struct vm_area_struct * area);
void (*close)(struct vm_area_struct * area);
int (*mremap)(struct vm_area_struct * area);
int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
int (*pmd_fault)(struct vm_area_struct *, unsigned long address,
pmd_t *, unsigned int flags);
void (*map_pages)(struct vm_area_struct *vma, struct vm_fault *vmf);
/* notification that a previously read-only page is about to become
* writable, if an error is returned it will cause a SIGBUS */
int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf);
/* same as page_mkwrite when using VM_PFNMAP|VM_MIXEDMAP */
int (*pfn_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf);
/* called by access_process_vm when get_user_pages() fails, typically
* for use by special VMAs that can switch between memory and hardware
*/
int (*access)(struct vm_area_struct *vma, unsigned long addr,
void *buf, int len, int write);
/* Called by the /proc/PID/maps code to ask the vma whether it
* has a special name. Returning non-NULL will also cause this
* vma to be dumped unconditionally. */
const char *(*name)(struct vm_area_struct *vma);
#ifdef CONFIG_NUMA
/*
* set_policy() op must add a reference to any non-NULL @new mempolicy
* to hold the policy upon return. Caller should pass NULL @new to
* remove a policy and fall back to surrounding context--i.e. do not
* install a MPOL_DEFAULT policy, nor the task or system default
* mempolicy.
*/
int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new);
/*
* get_policy() op must add reference [mpol_get()] to any policy at
* (vma,addr) marked as MPOL_SHARED. The shared policy infrastructure
* in mm/mempolicy.c will do this automatically.
* get_policy() must NOT add a ref if the policy at (vma,addr) is not
* marked as MPOL_SHARED. vma policies are protected by the mmap_sem.
* If no [shared/vma] mempolicy exists at the addr, get_policy() op
* must return NULL--i.e., do not "fallback" to task or system default
* policy.
*/
struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
unsigned long addr);
#endif
/*
* Called by vm_normal_page() for special PTEs to find the
* page for @addr. This is useful if the default behavior
* (using pte_page()) would not find the correct page.
*/
struct page *(*find_special_page)(struct vm_area_struct *vma,
unsigned long addr);
};
struct mmu_gather;
struct inode;
#define page_private(page) ((page)->private)
#define set_page_private(page, v) ((page)->private = (v))
/*
* FIXME: take this include out, include page-flags.h in
* files which need it (119 of them)
*/
#include <linux/page-flags.h>
#include <linux/huge_mm.h>
/*
* Methods to modify the page usage count.
*
* What counts for a page usage:
* - cache mapping (page->mapping)
* - private data (page->private)
* - page mapped in a task's page tables, each mapping
* is counted separately
*
* Also, many kernel routines increase the page count before a critical
* routine so they can be sure the page doesn't go away from under them.
*/
/*
* Drop a ref, return true if the refcount fell to zero (the page has no users)
*/
static inline int put_page_testzero(struct page *page)
{
VM_BUG_ON_PAGE(atomic_read(&page->_count) == 0, page);
return atomic_dec_and_test(&page->_count);
}
/*
* Try to grab a ref unless the page has a refcount of zero, return false if
* that is the case.
* This can be called when MMU is off so it must not access
* any of the virtual mappings.
*/
static inline int get_page_unless_zero(struct page *page)
{
return atomic_inc_not_zero(&page->_count);
}
extern int page_is_ram(unsigned long pfn);
enum {
REGION_INTERSECTS,
REGION_DISJOINT,
REGION_MIXED,
};
int region_intersects(resource_size_t offset, size_t size, const char *type);
/* Support for virtually mapped pages */
struct page *vmalloc_to_page(const void *addr);
unsigned long vmalloc_to_pfn(const void *addr);
/*
* Determine if an address is within the vmalloc range
*
* On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
* is no special casing required.
*/
static inline int is_vmalloc_addr(const void *x)
{
#ifdef CONFIG_MMU
unsigned long addr = (unsigned long)x;
return addr >= VMALLOC_START && addr < VMALLOC_END;
#else
return 0;
#endif
}
#ifdef CONFIG_MMU
extern int is_vmalloc_or_module_addr(const void *x);
#else
static inline int is_vmalloc_or_module_addr(const void *x)
{
return 0;
}
#endif
extern void kvfree(const void *addr);
static inline void compound_lock(struct page *page)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
VM_BUG_ON_PAGE(PageSlab(page), page);
bit_spin_lock(PG_compound_lock, &page->flags);
#endif
}
static inline void compound_unlock(struct page *page)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
VM_BUG_ON_PAGE(PageSlab(page), page);
bit_spin_unlock(PG_compound_lock, &page->flags);
#endif
}
static inline unsigned long compound_lock_irqsave(struct page *page)
{
unsigned long uninitialized_var(flags);
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
local_irq_save(flags);
compound_lock(page);
#endif
return flags;
}
static inline void compound_unlock_irqrestore(struct page *page,
unsigned long flags)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
compound_unlock(page);
local_irq_restore(flags);
#endif
}
/*
* The atomic page->_mapcount, starts from -1: so that transitions
* both from it and to it can be tracked, using atomic_inc_and_test
* and atomic_add_negative(-1).
*/
static inline void page_mapcount_reset(struct page *page)
{
atomic_set(&(page)->_mapcount, -1);
}
static inline int page_mapcount(struct page *page)
{
VM_BUG_ON_PAGE(PageSlab(page), page);
return atomic_read(&page->_mapcount) + 1;
}
static inline int page_count(struct page *page)
{
return atomic_read(&compound_head(page)->_count);
}
static inline bool __compound_tail_refcounted(struct page *page)
{
return PageAnon(page) && !PageSlab(page) && !PageHeadHuge(page);
}
/*
* This takes a head page as parameter and tells if the
* tail page reference counting can be skipped.
*
* For this to be safe, PageSlab and PageHeadHuge must remain true on
* any given page where they return true here, until all tail pins
* have been released.
*/
static inline bool compound_tail_refcounted(struct page *page)
{
VM_BUG_ON_PAGE(!PageHead(page), page);
return __compound_tail_refcounted(page);
}
static inline void get_huge_page_tail(struct page *page)
{
/*
* __split_huge_page_refcount() cannot run from under us.
*/
VM_BUG_ON_PAGE(!PageTail(page), page);
VM_BUG_ON_PAGE(page_mapcount(page) < 0, page);
VM_BUG_ON_PAGE(atomic_read(&page->_count) != 0, page);
if (compound_tail_refcounted(compound_head(page)))
atomic_inc(&page->_mapcount);
}
extern bool __get_page_tail(struct page *page);
static inline void get_page(struct page *page)
{
if (unlikely(PageTail(page)))
if (likely(__get_page_tail(page)))
return;
/*
* Getting a normal page or the head of a compound page
* requires to already have an elevated page->_count.
*/
VM_BUG_ON_PAGE(atomic_read(&page->_count) <= 0, page);
atomic_inc(&page->_count);
}
static inline struct page *virt_to_head_page(const void *x)
{
struct page *page = virt_to_page(x);
return compound_head(page);
}
/*
* Setup the page count before being freed into the page allocator for
* the first time (boot or memory hotplug)
*/
static inline void init_page_count(struct page *page)
{
atomic_set(&page->_count, 1);
}
void put_page(struct page *page);
void put_pages_list(struct list_head *pages);
void split_page(struct page *page, unsigned int order);
int split_free_page(struct page *page);
/*
* Compound pages have a destructor function. Provide a
* prototype for that function and accessor functions.
* These are _only_ valid on the head of a compound page.
*/
typedef void compound_page_dtor(struct page *);
/* Keep the enum in sync with compound_page_dtors array in mm/page_alloc.c */
enum compound_dtor_id {
NULL_COMPOUND_DTOR,
COMPOUND_PAGE_DTOR,
#ifdef CONFIG_HUGETLB_PAGE
HUGETLB_PAGE_DTOR,
#endif
NR_COMPOUND_DTORS,
};
extern compound_page_dtor * const compound_page_dtors[];
static inline void set_compound_page_dtor(struct page *page,
enum compound_dtor_id compound_dtor)
{
VM_BUG_ON_PAGE(compound_dtor >= NR_COMPOUND_DTORS, page);
page[1].compound_dtor = compound_dtor;
}
static inline compound_page_dtor *get_compound_page_dtor(struct page *page)
{
VM_BUG_ON_PAGE(page[1].compound_dtor >= NR_COMPOUND_DTORS, page);
return compound_page_dtors[page[1].compound_dtor];
}
static inline unsigned int compound_order(struct page *page)
{
if (!PageHead(page))
return 0;
return page[1].compound_order;
}
static inline void set_compound_order(struct page *page, unsigned int order)
{
page[1].compound_order = order;
}
#ifdef CONFIG_MMU
/*
* Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when
* servicing faults for write access. In the normal case, do always want
* pte_mkwrite. But get_user_pages can cause write faults for mappings
* that do not have writing enabled, when used by access_process_vm.
*/
static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
{
if (likely(vma->vm_flags & VM_WRITE))
pte = pte_mkwrite(pte);
return pte;
}
void do_set_pte(struct vm_area_struct *vma, unsigned long address,
struct page *page, pte_t *pte, bool write, bool anon);
#endif
/*
* Multiple processes may "see" the same page. E.g. for untouched
* mappings of /dev/null, all processes see the same page full of
* zeroes, and text pages of executables and shared libraries have
* only one copy in memory, at most, normally.
*
* For the non-reserved pages, page_count(page) denotes a reference count.
* page_count() == 0 means the page is free. page->lru is then used for
* freelist management in the buddy allocator.
* page_count() > 0 means the page has been allocated.
*
* Pages are allocated by the slab allocator in order to provide memory
* to kmalloc and kmem_cache_alloc. In this case, the management of the
* page, and the fields in 'struct page' are the responsibility of mm/slab.c
* unless a particular usage is carefully commented. (the responsibility of
* freeing the kmalloc memory is the caller's, of course).
*
* A page may be used by anyone else who does a __get_free_page().
* In this case, page_count still tracks the references, and should only
* be used through the normal accessor functions. The top bits of page->flags
* and page->virtual store page management information, but all other fields
* are unused and could be used privately, carefully. The management of this
* page is the responsibility of the one who allocated it, and those who have
* subsequently been given references to it.
*
* The other pages (we may call them "pagecache pages") are completely
* managed by the Linux memory manager: I/O, buffers, swapping etc.
* The following discussion applies only to them.
*
* A pagecache page contains an opaque `private' member, which belongs to the
* page's address_space. Usually, this is the address of a circular list of
* the page's disk buffers. PG_private must be set to tell the VM to call
* into the filesystem to release these pages.
*
* A page may belong to an inode's memory mapping. In this case, page->mapping
* is the pointer to the inode, and page->index is the file offset of the page,
* in units of PAGE_CACHE_SIZE.
*
* If pagecache pages are not associated with an inode, they are said to be
* anonymous pages. These may become associated with the swapcache, and in that
* case PG_swapcache is set, and page->private is an offset into the swapcache.
*
* In either case (swapcache or inode backed), the pagecache itself holds one
* reference to the page. Setting PG_private should also increment the
* refcount. The each user mapping also has a reference to the page.
*
* The pagecache pages are stored in a per-mapping radix tree, which is
* rooted at mapping->page_tree, and indexed by offset.
* Where 2.4 and early 2.6 kernels kept dirty/clean pages in per-address_space
* lists, we instead now tag pages as dirty/writeback in the radix tree.
*
* All pagecache pages may be subject to I/O:
* - inode pages may need to be read from disk,
* - inode pages which have been modified and are MAP_SHARED may need
* to be written back to the inode on disk,
* - anonymous pages (including MAP_PRIVATE file mappings) which have been
* modified may need to be swapped out to swap space and (later) to be read
* back into memory.
*/
/*
* The zone field is never updated after free_area_init_core()
* sets it, so none of the operations on it need to be atomic.
*/
/* Page flags: | [SECTION] | [NODE] | ZONE | [LAST_CPUPID] | ... | FLAGS | */
#define SECTIONS_PGOFF ((sizeof(unsigned long)*8) - SECTIONS_WIDTH)
#define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH)
#define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH)
#define LAST_CPUPID_PGOFF (ZONES_PGOFF - LAST_CPUPID_WIDTH)
/*
* Define the bit shifts to access each section. For non-existent
* sections we define the shift as 0; that plus a 0 mask ensures
* the compiler will optimise away reference to them.
*/
#define SECTIONS_PGSHIFT (SECTIONS_PGOFF * (SECTIONS_WIDTH != 0))
#define NODES_PGSHIFT (NODES_PGOFF * (NODES_WIDTH != 0))
#define ZONES_PGSHIFT (ZONES_PGOFF * (ZONES_WIDTH != 0))
#define LAST_CPUPID_PGSHIFT (LAST_CPUPID_PGOFF * (LAST_CPUPID_WIDTH != 0))
/* NODE:ZONE or SECTION:ZONE is used to ID a zone for the buddy allocator */
#ifdef NODE_NOT_IN_PAGE_FLAGS
#define ZONEID_SHIFT (SECTIONS_SHIFT + ZONES_SHIFT)
#define ZONEID_PGOFF ((SECTIONS_PGOFF < ZONES_PGOFF)? \
SECTIONS_PGOFF : ZONES_PGOFF)
#else
#define ZONEID_SHIFT (NODES_SHIFT + ZONES_SHIFT)
#define ZONEID_PGOFF ((NODES_PGOFF < ZONES_PGOFF)? \
NODES_PGOFF : ZONES_PGOFF)
#endif
#define ZONEID_PGSHIFT (ZONEID_PGOFF * (ZONEID_SHIFT != 0))
#if SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
#error SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
#endif
#define ZONES_MASK ((1UL << ZONES_WIDTH) - 1)
#define NODES_MASK ((1UL << NODES_WIDTH) - 1)
#define SECTIONS_MASK ((1UL << SECTIONS_WIDTH) - 1)
#define LAST_CPUPID_MASK ((1UL << LAST_CPUPID_SHIFT) - 1)
#define ZONEID_MASK ((1UL << ZONEID_SHIFT) - 1)
static inline enum zone_type page_zonenum(const struct page *page)
{
return (page->flags >> ZONES_PGSHIFT) & ZONES_MASK;
}
#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP)
#define SECTION_IN_PAGE_FLAGS
#endif
/*
* The identification function is mainly used by the buddy allocator for
* determining if two pages could be buddies. We are not really identifying
* the zone since we could be using the section number id if we do not have
* node id available in page flags.
* We only guarantee that it will return the same value for two combinable
* pages in a zone.
*/
static inline int page_zone_id(struct page *page)
{
return (page->flags >> ZONEID_PGSHIFT) & ZONEID_MASK;
}
static inline int zone_to_nid(struct zone *zone)
{
#ifdef CONFIG_NUMA
return zone->node;
#else
return 0;
#endif
}
#ifdef NODE_NOT_IN_PAGE_FLAGS
extern int page_to_nid(const struct page *page);
#else
static inline int page_to_nid(const struct page *page)
{
return (page->flags >> NODES_PGSHIFT) & NODES_MASK;
}
#endif
#ifdef CONFIG_NUMA_BALANCING
static inline int cpu_pid_to_cpupid(int cpu, int pid)
{
return ((cpu & LAST__CPU_MASK) << LAST__PID_SHIFT) | (pid & LAST__PID_MASK);
}
static inline int cpupid_to_pid(int cpupid)
{
return cpupid & LAST__PID_MASK;
}
static inline int cpupid_to_cpu(int cpupid)
{
return (cpupid >> LAST__PID_SHIFT) & LAST__CPU_MASK;
}
static inline int cpupid_to_nid(int cpupid)
{
return cpu_to_node(cpupid_to_cpu(cpupid));
}
static inline bool cpupid_pid_unset(int cpupid)
{
return cpupid_to_pid(cpupid) == (-1 & LAST__PID_MASK);
}
static inline bool cpupid_cpu_unset(int cpupid)
{
return cpupid_to_cpu(cpupid) == (-1 & LAST__CPU_MASK);
}
static inline bool __cpupid_match_pid(pid_t task_pid, int cpupid)
{
return (task_pid & LAST__PID_MASK) == cpupid_to_pid(cpupid);
}
#define cpupid_match_pid(task, cpupid) __cpupid_match_pid(task->pid, cpupid)
#ifdef LAST_CPUPID_NOT_IN_PAGE_FLAGS
static inline int page_cpupid_xchg_last(struct page *page, int cpupid)
{
return xchg(&page->_last_cpupid, cpupid & LAST_CPUPID_MASK);
}
static inline int page_cpupid_last(struct page *page)
{
return page->_last_cpupid;
}
static inline void page_cpupid_reset_last(struct page *page)
{
page->_last_cpupid = -1 & LAST_CPUPID_MASK;
}
#else
static inline int page_cpupid_last(struct page *page)
{
return (page->flags >> LAST_CPUPID_PGSHIFT) & LAST_CPUPID_MASK;
}
extern int page_cpupid_xchg_last(struct page *page, int cpupid);
static inline void page_cpupid_reset_last(struct page *page)
{
int cpupid = (1 << LAST_CPUPID_SHIFT) - 1;
page->flags &= ~(LAST_CPUPID_MASK << LAST_CPUPID_PGSHIFT);
page->flags |= (cpupid & LAST_CPUPID_MASK) << LAST_CPUPID_PGSHIFT;
}
#endif /* LAST_CPUPID_NOT_IN_PAGE_FLAGS */
#else /* !CONFIG_NUMA_BALANCING */
static inline int page_cpupid_xchg_last(struct page *page, int cpupid)
{
return page_to_nid(page); /* XXX */
}
static inline int page_cpupid_last(struct page *page)
{
return page_to_nid(page); /* XXX */
}
static inline int cpupid_to_nid(int cpupid)
{
return -1;
}
static inline int cpupid_to_pid(int cpupid)
{
return -1;
}
static inline int cpupid_to_cpu(int cpupid)
{
return -1;
}
static inline int cpu_pid_to_cpupid(int nid, int pid)
{
return -1;
}
static inline bool cpupid_pid_unset(int cpupid)
{
return 1;
}
static inline void page_cpupid_reset_last(struct page *page)
{
}
static inline bool cpupid_match_pid(struct task_struct *task, int cpupid)
{
return false;
}
#endif /* CONFIG_NUMA_BALANCING */
static inline struct zone *page_zone(const struct page *page)
{
return &NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)];
}
#ifdef SECTION_IN_PAGE_FLAGS
static inline void set_page_section(struct page *page, unsigned long section)
{
page->flags &= ~(SECTIONS_MASK << SECTIONS_PGSHIFT);
page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT;
}
static inline unsigned long page_to_section(const struct page *page)
{
return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK;
}
#endif
static inline void set_page_zone(struct page *page, enum zone_type zone)
{
page->flags &= ~(ZONES_MASK << ZONES_PGSHIFT);
page->flags |= (zone & ZONES_MASK) << ZONES_PGSHIFT;
}
static inline void set_page_node(struct page *page, unsigned long node)
{
page->flags &= ~(NODES_MASK << NODES_PGSHIFT);
page->flags |= (node & NODES_MASK) << NODES_PGSHIFT;
}
static inline void set_page_links(struct page *page, enum zone_type zone,
unsigned long node, unsigned long pfn)
{
set_page_zone(page, zone);
set_page_node(page, node);
#ifdef SECTION_IN_PAGE_FLAGS
set_page_section(page, pfn_to_section_nr(pfn));
#endif
}
#ifdef CONFIG_MEMCG
static inline struct mem_cgroup *page_memcg(struct page *page)
{
return page->mem_cgroup;
}
static inline void set_page_memcg(struct page *page, struct mem_cgroup *memcg)
{
page->mem_cgroup = memcg;
}
#else
static inline struct mem_cgroup *page_memcg(struct page *page)
{
return NULL;
}
static inline void set_page_memcg(struct page *page, struct mem_cgroup *memcg)
{
}
#endif
/*
* Some inline functions in vmstat.h depend on page_zone()
*/
#include <linux/vmstat.h>
static __always_inline void *lowmem_page_address(const struct page *page)
{
return __va(PFN_PHYS(page_to_pfn(page)));
}
#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
#define HASHED_PAGE_VIRTUAL
#endif
#if defined(WANT_PAGE_VIRTUAL)
static inline void *page_address(const struct page *page)
{
return page->virtual;
}
static inline void set_page_address(struct page *page, void *address)
{
page->virtual = address;
}
#define page_address_init() do { } while(0)
#endif
#if defined(HASHED_PAGE_VIRTUAL)
void *page_address(const struct page *page);
void set_page_address(struct page *page, void *virtual);
void page_address_init(void);
#endif
#if !defined(HASHED_PAGE_VIRTUAL) && !defined(WANT_PAGE_VIRTUAL)
#define page_address(page) lowmem_page_address(page)
#define set_page_address(page, address) do { } while(0)
#define page_address_init() do { } while(0)
#endif
extern void *page_rmapping(struct page *page);
extern struct anon_vma *page_anon_vma(struct page *page);
extern struct address_space *page_mapping(struct page *page);
extern struct address_space *__page_file_mapping(struct page *);
static inline
struct address_space *page_file_mapping(struct page *page)
{
if (unlikely(PageSwapCache(page)))
return __page_file_mapping(page);
return page->mapping;
}
/*
* Return the pagecache index of the passed page. Regular pagecache pages
* use ->index whereas swapcache pages use ->private
*/
static inline pgoff_t page_index(struct page *page)
{
if (unlikely(PageSwapCache(page)))
return page_private(page);
return page->index;
}
extern pgoff_t __page_file_index(struct page *page);
/*
* Return the file index of the page. Regular pagecache pages use ->index
* whereas swapcache pages use swp_offset(->private)
*/
static inline pgoff_t page_file_index(struct page *page)
{
if (unlikely(PageSwapCache(page)))
return __page_file_index(page);
return page->index;
}
/*
* Return true if this page is mapped into pagetables.
*/
static inline int page_mapped(struct page *page)
{
return atomic_read(&(page)->_mapcount) >= 0;
}
/*
* Return true only if the page has been allocated with
* ALLOC_NO_WATERMARKS and the low watermark was not
* met implying that the system is under some pressure.
*/
static inline bool page_is_pfmemalloc(struct page *page)
{
/*
* Page index cannot be this large so this must be
* a pfmemalloc page.
*/
return page->index == -1UL;
}
/*
* Only to be called by the page allocator on a freshly allocated
* page.
*/
static inline void set_page_pfmemalloc(struct page *page)
{
page->index = -1UL;
}
static inline void clear_page_pfmemalloc(struct page *page)
{
page->index = 0;
}
/*
* Different kinds of faults, as returned by handle_mm_fault().
* Used to decide whether a process gets delivered SIGBUS or
* just gets major/minor fault counters bumped up.
*/
#define VM_FAULT_MINOR 0 /* For backwards compat. Remove me quickly. */
#define VM_FAULT_OOM 0x0001
#define VM_FAULT_SIGBUS 0x0002
#define VM_FAULT_MAJOR 0x0004
#define VM_FAULT_WRITE 0x0008 /* Special case for get_user_pages */
#define VM_FAULT_HWPOISON 0x0010 /* Hit poisoned small page */
#define VM_FAULT_HWPOISON_LARGE 0x0020 /* Hit poisoned large page. Index encoded in upper bits */
#define VM_FAULT_SIGSEGV 0x0040
#define VM_FAULT_NOPAGE 0x0100 /* ->fault installed the pte, not return page */
#define VM_FAULT_LOCKED 0x0200 /* ->fault locked the returned page */
#define VM_FAULT_RETRY 0x0400 /* ->fault blocked, must retry */
#define VM_FAULT_FALLBACK 0x0800 /* huge page fault failed, fall back to small */
#define VM_FAULT_HWPOISON_LARGE_MASK 0xf000 /* encodes hpage index for large hwpoison */
#define VM_FAULT_ERROR (VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV | \
VM_FAULT_HWPOISON | VM_FAULT_HWPOISON_LARGE | \
VM_FAULT_FALLBACK)
/* Encode hstate index for a hwpoisoned large page */
#define VM_FAULT_SET_HINDEX(x) ((x) << 12)
#define VM_FAULT_GET_HINDEX(x) (((x) >> 12) & 0xf)
/*
* Can be called by the pagefault handler when it gets a VM_FAULT_OOM.
*/
extern void pagefault_out_of_memory(void);
#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK)
/*
* Flags passed to show_mem() and show_free_areas() to suppress output in
* various contexts.
*/
#define SHOW_MEM_FILTER_NODES (0x0001u) /* disallowed nodes */
extern void show_free_areas(unsigned int flags);
extern bool skip_free_areas_node(unsigned int flags, int nid);
int shmem_zero_setup(struct vm_area_struct *);
#ifdef CONFIG_SHMEM
bool shmem_mapping(struct address_space *mapping);
#else
static inline bool shmem_mapping(struct address_space *mapping)
{
return false;
}
#endif
extern int can_do_mlock(void);
extern int user_shm_lock(size_t, struct user_struct *);
extern void user_shm_unlock(size_t, struct user_struct *);
/*
* Parameter block passed down to zap_pte_range in exceptional cases.
*/
struct zap_details {
struct address_space *check_mapping; /* Check page->mapping if set */
pgoff_t first_index; /* Lowest page->index to unmap */
pgoff_t last_index; /* Highest page->index to unmap */
};
struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
pte_t pte);
struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
pmd_t pmd);
int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
unsigned long size);
void zap_page_range(struct vm_area_struct *vma, unsigned long address,
unsigned long size, struct zap_details *);
void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
unsigned long start, unsigned long end);
/**
* mm_walk - callbacks for walk_page_range
* @pmd_entry: if set, called for each non-empty PMD (3rd-level) entry
* this handler is required to be able to handle
* pmd_trans_huge() pmds. They may simply choose to
* split_huge_page() instead of handling it explicitly.
* @pte_entry: if set, called for each non-empty PTE (4th-level) entry
* @pte_hole: if set, called for each hole at all levels
* @hugetlb_entry: if set, called for each hugetlb entry
* @test_walk: caller specific callback function to determine whether
* we walk over the current vma or not. A positive returned
* value means "do page table walk over the current vma,"
* and a negative one means "abort current page table walk
* right now." 0 means "skip the current vma."
* @mm: mm_struct representing the target process of page table walk
* @vma: vma currently walked (NULL if walking outside vmas)
* @private: private data for callbacks' usage
*
* (see the comment on walk_page_range() for more details)
*/
struct mm_walk {
int (*pmd_entry)(pmd_t *pmd, unsigned long addr,
unsigned long next, struct mm_walk *walk);
int (*pte_entry)(pte_t *pte, unsigned long addr,
unsigned long next, struct mm_walk *walk);
int (*pte_hole)(unsigned long addr, unsigned long next,
struct mm_walk *walk);
int (*hugetlb_entry)(pte_t *pte, unsigned long hmask,
unsigned long addr, unsigned long next,
struct mm_walk *walk);
int (*test_walk)(unsigned long addr, unsigned long next,
struct mm_walk *walk);
struct mm_struct *mm;
struct vm_area_struct *vma;
void *private;
};
int walk_page_range(unsigned long addr, unsigned long end,
struct mm_walk *walk);
int walk_page_vma(struct vm_area_struct *vma, struct mm_walk *walk);
void free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
unsigned long end, unsigned long floor, unsigned long ceiling);
int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
struct vm_area_struct *vma);
void unmap_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen, int even_cows);
int follow_pfn(struct vm_area_struct *vma, unsigned long address,
unsigned long *pfn);
int follow_phys(struct vm_area_struct *vma, unsigned long address,
unsigned int flags, unsigned long *prot, resource_size_t *phys);
int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
void *buf, int len, int write);
static inline void unmap_shared_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen)
{
unmap_mapping_range(mapping, holebegin, holelen, 0);
}
extern void truncate_pagecache(struct inode *inode, loff_t new);
extern void truncate_setsize(struct inode *inode, loff_t newsize);
void pagecache_isize_extended(struct inode *inode, loff_t from, loff_t to);
void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end);
int truncate_inode_page(struct address_space *mapping, struct page *page);
int generic_error_remove_page(struct address_space *mapping, struct page *page);
int invalidate_inode_page(struct page *page);
#ifdef CONFIG_MMU
extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
unsigned long address, unsigned int flags);
extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
unsigned long address, unsigned int fault_flags);
#else
static inline int handle_mm_fault(struct mm_struct *mm,
struct vm_area_struct *vma, unsigned long address,
unsigned int flags)
{
/* should never happen if there's no MMU */
BUG();
return VM_FAULT_SIGBUS;
}
static inline int fixup_user_fault(struct task_struct *tsk,
struct mm_struct *mm, unsigned long address,
unsigned int fault_flags)
{
/* should never happen if there's no MMU */
BUG();
return -EFAULT;
}
#endif
extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
void *buf, int len, int write);
long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
unsigned int foll_flags, struct page **pages,
struct vm_area_struct **vmas, int *nonblocking);
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages,
struct vm_area_struct **vmas);
long get_user_pages_locked(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages,
int *locked);
long __get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages,
unsigned int gup_flags);
long get_user_pages_unlocked(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages);
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
/* Container for pinned pfns / pages */
struct frame_vector {
unsigned int nr_allocated; /* Number of frames we have space for */
unsigned int nr_frames; /* Number of frames stored in ptrs array */
bool got_ref; /* Did we pin pages by getting page ref? */
bool is_pfns; /* Does array contain pages or pfns? */
void *ptrs[0]; /* Array of pinned pfns / pages. Use
* pfns_vector_pages() or pfns_vector_pfns()
* for access */
};
struct frame_vector *frame_vector_create(unsigned int nr_frames);
void frame_vector_destroy(struct frame_vector *vec);
int get_vaddr_frames(unsigned long start, unsigned int nr_pfns,
bool write, bool force, struct frame_vector *vec);
void put_vaddr_frames(struct frame_vector *vec);
int frame_vector_to_pages(struct frame_vector *vec);
void frame_vector_to_pfns(struct frame_vector *vec);
static inline unsigned int frame_vector_count(struct frame_vector *vec)
{
return vec->nr_frames;
}
static inline struct page **frame_vector_pages(struct frame_vector *vec)
{
if (vec->is_pfns) {
int err = frame_vector_to_pages(vec);
if (err)
return ERR_PTR(err);
}
return (struct page **)(vec->ptrs);
}
static inline unsigned long *frame_vector_pfns(struct frame_vector *vec)
{
if (!vec->is_pfns)
frame_vector_to_pfns(vec);
return (unsigned long *)(vec->ptrs);
}
struct kvec;
int get_kernel_pages(const struct kvec *iov, int nr_pages, int write,
struct page **pages);
int get_kernel_page(unsigned long start, int write, struct page **pages);
struct page *get_dump_page(unsigned long addr);
extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
extern void do_invalidatepage(struct page *page, unsigned int offset,
unsigned int length);
int __set_page_dirty_nobuffers(struct page *page);
int __set_page_dirty_no_writeback(struct page *page);
int redirty_page_for_writepage(struct writeback_control *wbc,
struct page *page);
void account_page_dirtied(struct page *page, struct address_space *mapping,
struct mem_cgroup *memcg);
void account_page_cleaned(struct page *page, struct address_space *mapping,
struct mem_cgroup *memcg, struct bdi_writeback *wb);
int set_page_dirty(struct page *page);
int set_page_dirty_lock(struct page *page);
void cancel_dirty_page(struct page *page);
int clear_page_dirty_for_io(struct page *page);
int get_cmdline(struct task_struct *task, char *buffer, int buflen);
/* Is the vma a continuation of the stack vma above it? */
static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
{
return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
}
static inline bool vma_is_anonymous(struct vm_area_struct *vma)
{
return !vma->vm_ops;
}
static inline int stack_guard_page_start(struct vm_area_struct *vma,
unsigned long addr)
{
return (vma->vm_flags & VM_GROWSDOWN) &&
(vma->vm_start == addr) &&
!vma_growsdown(vma->vm_prev, addr);
}
/* Is the vma a continuation of the stack vma below it? */
static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
{
return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
}
static inline int stack_guard_page_end(struct vm_area_struct *vma,
unsigned long addr)
{
return (vma->vm_flags & VM_GROWSUP) &&
(vma->vm_end == addr) &&
!vma_growsup(vma->vm_next, addr);
}
int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t);
extern unsigned long move_page_tables(struct vm_area_struct *vma,
unsigned long old_addr, struct vm_area_struct *new_vma,
unsigned long new_addr, unsigned long len,
bool need_rmap_locks);
extern unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
unsigned long end, pgprot_t newprot,
int dirty_accountable, int prot_numa);
extern int mprotect_fixup(struct vm_area_struct *vma,
struct vm_area_struct **pprev, unsigned long start,
unsigned long end, unsigned long newflags);
/*
* doesn't attempt to fault and will return short.
*/
int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
/*
* per-process(per-mm_struct) statistics.
*/
static inline unsigned long get_mm_counter(struct mm_struct *mm, int member)
{
long val = atomic_long_read(&mm->rss_stat.count[member]);
#ifdef SPLIT_RSS_COUNTING
/*
* counter is updated in asynchronous manner and may go to minus.
* But it's never be expected number for users.
*/
if (val < 0)
val = 0;
#endif
return (unsigned long)val;
}
static inline void add_mm_counter(struct mm_struct *mm, int member, long value)
{
atomic_long_add(value, &mm->rss_stat.count[member]);
}
static inline void inc_mm_counter(struct mm_struct *mm, int member)
{
atomic_long_inc(&mm->rss_stat.count[member]);
}
static inline void dec_mm_counter(struct mm_struct *mm, int member)
{
atomic_long_dec(&mm->rss_stat.count[member]);
}
static inline unsigned long get_mm_rss(struct mm_struct *mm)
{
return get_mm_counter(mm, MM_FILEPAGES) +
get_mm_counter(mm, MM_ANONPAGES);
}
static inline unsigned long get_mm_hiwater_rss(struct mm_struct *mm)
{
return max(mm->hiwater_rss, get_mm_rss(mm));
}
static inline unsigned long get_mm_hiwater_vm(struct mm_struct *mm)
{
return max(mm->hiwater_vm, mm->total_vm);
}
static inline void update_hiwater_rss(struct mm_struct *mm)
{
unsigned long _rss = get_mm_rss(mm);
if ((mm)->hiwater_rss < _rss)
(mm)->hiwater_rss = _rss;
}
static inline void update_hiwater_vm(struct mm_struct *mm)
{
if (mm->hiwater_vm < mm->total_vm)
mm->hiwater_vm = mm->total_vm;
}
static inline void reset_mm_hiwater_rss(struct mm_struct *mm)
{
mm->hiwater_rss = get_mm_rss(mm);
}
static inline void setmax_mm_hiwater_rss(unsigned long *maxrss,
struct mm_struct *mm)
{
unsigned long hiwater_rss = get_mm_hiwater_rss(mm);
if (*maxrss < hiwater_rss)
*maxrss = hiwater_rss;
}
#if defined(SPLIT_RSS_COUNTING)
void sync_mm_rss(struct mm_struct *mm);
#else
static inline void sync_mm_rss(struct mm_struct *mm)
{
}
#endif
int vma_wants_writenotify(struct vm_area_struct *vma);
extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
spinlock_t **ptl);
static inline pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr,
spinlock_t **ptl)
{
pte_t *ptep;
__cond_lock(*ptl, ptep = __get_locked_pte(mm, addr, ptl));
return ptep;
}
#ifdef __PAGETABLE_PUD_FOLDED
static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
unsigned long address)
{
return 0;
}
#else
int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
#endif
#if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
unsigned long address)
{
return 0;
}
static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
{
return 0;
}
static inline void mm_inc_nr_pmds(struct mm_struct *mm) {}
static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
#else
int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
static inline void mm_nr_pmds_init(struct mm_struct *mm)
{
atomic_long_set(&mm->nr_pmds, 0);
}
static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
{
return atomic_long_read(&mm->nr_pmds);
}
static inline void mm_inc_nr_pmds(struct mm_struct *mm)
{
atomic_long_inc(&mm->nr_pmds);
}
static inline void mm_dec_nr_pmds(struct mm_struct *mm)
{
atomic_long_dec(&mm->nr_pmds);
}
#endif
int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
pmd_t *pmd, unsigned long address);
int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
/*
* The following ifdef needed to get the 4level-fixup.h header to work.
* Remove it when 4level-fixup.h has been removed.
*/
#if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK)
static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
{
return (unlikely(pgd_none(*pgd)) && __pud_alloc(mm, pgd, address))?
NULL: pud_offset(pgd, address);
}
static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
{
return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
NULL: pmd_offset(pud, address);
}
#endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
#if USE_SPLIT_PTE_PTLOCKS
#if ALLOC_SPLIT_PTLOCKS
void __init ptlock_cache_init(void);
extern bool ptlock_alloc(struct page *page);
extern void ptlock_free(struct page *page);
static inline spinlock_t *ptlock_ptr(struct page *page)
{
return page->ptl;
}
#else /* ALLOC_SPLIT_PTLOCKS */
static inline void ptlock_cache_init(void)
{
}
static inline bool ptlock_alloc(struct page *page)
{
return true;
}
static inline void ptlock_free(struct page *page)
{
}
static inline spinlock_t *ptlock_ptr(struct page *page)
{
return &page->ptl;
}
#endif /* ALLOC_SPLIT_PTLOCKS */
static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
{
return ptlock_ptr(pmd_page(*pmd));
}
static inline bool ptlock_init(struct page *page)
{
/*
* prep_new_page() initialize page->private (and therefore page->ptl)
* with 0. Make sure nobody took it in use in between.
*
* It can happen if arch try to use slab for page table allocation:
* slab code uses page->slab_cache, which share storage with page->ptl.
*/
VM_BUG_ON_PAGE(*(unsigned long *)&page->ptl, page);
if (!ptlock_alloc(page))
return false;
spin_lock_init(ptlock_ptr(page));
return true;
}
/* Reset page->mapping so free_pages_check won't complain. */
static inline void pte_lock_deinit(struct page *page)
{
page->mapping = NULL;
ptlock_free(page);
}
#else /* !USE_SPLIT_PTE_PTLOCKS */
/*
* We use mm->page_table_lock to guard all pagetable pages of the mm.
*/
static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
{
return &mm->page_table_lock;
}
static inline void ptlock_cache_init(void) {}
static inline bool ptlock_init(struct page *page) { return true; }
static inline void pte_lock_deinit(struct page *page) {}
#endif /* USE_SPLIT_PTE_PTLOCKS */
static inline void pgtable_init(void)
{
ptlock_cache_init();
pgtable_cache_init();
}
static inline bool pgtable_page_ctor(struct page *page)
{
if (!ptlock_init(page))
return false;
inc_zone_page_state(page, NR_PAGETABLE);
return true;
}
static inline void pgtable_page_dtor(struct page *page)
{
pte_lock_deinit(page);
dec_zone_page_state(page, NR_PAGETABLE);
}
#define pte_offset_map_lock(mm, pmd, address, ptlp) \
({ \
spinlock_t *__ptl = pte_lockptr(mm, pmd); \
pte_t *__pte = pte_offset_map(pmd, address); \
*(ptlp) = __ptl; \
spin_lock(__ptl); \
__pte; \
})
#define pte_unmap_unlock(pte, ptl) do { \
spin_unlock(ptl); \
pte_unmap(pte); \
} while (0)
#define pte_alloc_map(mm, vma, pmd, address) \
((unlikely(pmd_none(*(pmd))) && __pte_alloc(mm, vma, \
pmd, address))? \
NULL: pte_offset_map(pmd, address))
#define pte_alloc_map_lock(mm, pmd, address, ptlp) \
((unlikely(pmd_none(*(pmd))) && __pte_alloc(mm, NULL, \
pmd, address))? \
NULL: pte_offset_map_lock(mm, pmd, address, ptlp))
#define pte_alloc_kernel(pmd, address) \
((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd, address))? \
NULL: pte_offset_kernel(pmd, address))
#if USE_SPLIT_PMD_PTLOCKS
static struct page *pmd_to_page(pmd_t *pmd)
{
unsigned long mask = ~(PTRS_PER_PMD * sizeof(pmd_t) - 1);
return virt_to_page((void *)((unsigned long) pmd & mask));
}
static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
{
return ptlock_ptr(pmd_to_page(pmd));
}
static inline bool pgtable_pmd_page_ctor(struct page *page)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
page->pmd_huge_pte = NULL;
#endif
return ptlock_init(page);
}
static inline void pgtable_pmd_page_dtor(struct page *page)
{
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
VM_BUG_ON_PAGE(page->pmd_huge_pte, page);
#endif
ptlock_free(page);
}
#define pmd_huge_pte(mm, pmd) (pmd_to_page(pmd)->pmd_huge_pte)
#else
static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
{
return &mm->page_table_lock;
}
static inline bool pgtable_pmd_page_ctor(struct page *page) { return true; }
static inline void pgtable_pmd_page_dtor(struct page *page) {}
#define pmd_huge_pte(mm, pmd) ((mm)->pmd_huge_pte)
#endif
static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
{
spinlock_t *ptl = pmd_lockptr(mm, pmd);
spin_lock(ptl);
return ptl;
}
extern void free_area_init(unsigned long * zones_size);
extern void free_area_init_node(int nid, unsigned long * zones_size,
unsigned long zone_start_pfn, unsigned long *zholes_size);
extern void free_initmem(void);
/*
* Free reserved pages within range [PAGE_ALIGN(start), end & PAGE_MASK)
* into the buddy system. The freed pages will be poisoned with pattern
* "poison" if it's within range [0, UCHAR_MAX].
* Return pages freed into the buddy system.
*/
extern unsigned long free_reserved_area(void *start, void *end,
int poison, char *s);
#ifdef CONFIG_HIGHMEM
/*
* Free a highmem page into the buddy system, adjusting totalhigh_pages
* and totalram_pages.
*/
extern void free_highmem_page(struct page *page);
#endif
extern void adjust_managed_page_count(struct page *page, long count);
extern void mem_init_print_info(const char *str);
extern void reserve_bootmem_region(phys_addr_t start, phys_addr_t end);
/* Free the reserved page into the buddy system, so it gets managed. */
static inline void __free_reserved_page(struct page *page)
{
ClearPageReserved(page);
init_page_count(page);
__free_page(page);
}
static inline void free_reserved_page(struct page *page)
{
__free_reserved_page(page);
adjust_managed_page_count(page, 1);
}
static inline void mark_page_reserved(struct page *page)
{
SetPageReserved(page);
adjust_managed_page_count(page, -1);
}
/*
* Default method to free all the __init memory into the buddy system.
* The freed pages will be poisoned with pattern "poison" if it's within
* range [0, UCHAR_MAX].
* Return pages freed into the buddy system.
*/
static inline unsigned long free_initmem_default(int poison)
{
extern char __init_begin[], __init_end[];
return free_reserved_area(&__init_begin, &__init_end,
poison, "unused kernel");
}
static inline unsigned long get_num_physpages(void)
{
int nid;
unsigned long phys_pages = 0;
for_each_online_node(nid)
phys_pages += node_present_pages(nid);
return phys_pages;
}
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
/*
* With CONFIG_HAVE_MEMBLOCK_NODE_MAP set, an architecture may initialise its
* zones, allocate the backing mem_map and account for memory holes in a more
* architecture independent manner. This is a substitute for creating the
* zone_sizes[] and zholes_size[] arrays and passing them to
* free_area_init_node()
*
* An architecture is expected to register range of page frames backed by
* physical memory with memblock_add[_node]() before calling
* free_area_init_nodes() passing in the PFN each zone ends at. At a basic
* usage, an architecture is expected to do something like
*
* unsigned long max_zone_pfns[MAX_NR_ZONES] = {max_dma, max_normal_pfn,
* max_highmem_pfn};
* for_each_valid_physical_page_range()
* memblock_add_node(base, size, nid)
* free_area_init_nodes(max_zone_pfns);
*
* free_bootmem_with_active_regions() calls free_bootmem_node() for each
* registered physical page range. Similarly
* sparse_memory_present_with_active_regions() calls memory_present() for
* each range when SPARSEMEM is enabled.
*
* See mm/page_alloc.c for more information on each function exposed by
* CONFIG_HAVE_MEMBLOCK_NODE_MAP.
*/
extern void free_area_init_nodes(unsigned long *max_zone_pfn);
unsigned long node_map_pfn_alignment(void);
unsigned long __absent_pages_in_range(int nid, unsigned long start_pfn,
unsigned long end_pfn);
extern unsigned long absent_pages_in_range(unsigned long start_pfn,
unsigned long end_pfn);
extern void get_pfn_range_for_nid(unsigned int nid,
unsigned long *start_pfn, unsigned long *end_pfn);
extern unsigned long find_min_pfn_with_active_regions(void);
extern void free_bootmem_with_active_regions(int nid,
unsigned long max_low_pfn);
extern void sparse_memory_present_with_active_regions(int nid);
#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
#if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \
!defined(CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID)
static inline int __early_pfn_to_nid(unsigned long pfn,
struct mminit_pfnnid_cache *state)
{
return 0;
}
#else
/* please see mm/page_alloc.c */
extern int __meminit early_pfn_to_nid(unsigned long pfn);
/* there is a per-arch backend function. */
extern int __meminit __early_pfn_to_nid(unsigned long pfn,
struct mminit_pfnnid_cache *state);
#endif
extern void set_dma_reserve(unsigned long new_dma_reserve);
extern void memmap_init_zone(unsigned long, int, unsigned long,
unsigned long, enum memmap_context);
extern void setup_per_zone_wmarks(void);
extern int __meminit init_per_zone_wmark_min(void);
extern void mem_init(void);
extern void __init mmap_init(void);
extern void show_mem(unsigned int flags);
extern void si_meminfo(struct sysinfo * val);
extern void si_meminfo_node(struct sysinfo *val, int nid);
extern __printf(3, 4)
void warn_alloc_failed(gfp_t gfp_mask, unsigned int order,
const char *fmt, ...);
extern void setup_per_cpu_pageset(void);
extern void zone_pcp_update(struct zone *zone);
extern void zone_pcp_reset(struct zone *zone);
/* page_alloc.c */
extern int min_free_kbytes;
/* nommu.c */
extern atomic_long_t mmap_pages_allocated;
extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t);
/* interval_tree.c */
void vma_interval_tree_insert(struct vm_area_struct *node,
struct rb_root *root);
void vma_interval_tree_insert_after(struct vm_area_struct *node,
struct vm_area_struct *prev,
struct rb_root *root);
void vma_interval_tree_remove(struct vm_area_struct *node,
struct rb_root *root);
struct vm_area_struct *vma_interval_tree_iter_first(struct rb_root *root,
unsigned long start, unsigned long last);
struct vm_area_struct *vma_interval_tree_iter_next(struct vm_area_struct *node,
unsigned long start, unsigned long last);
#define vma_interval_tree_foreach(vma, root, start, last) \
for (vma = vma_interval_tree_iter_first(root, start, last); \
vma; vma = vma_interval_tree_iter_next(vma, start, last))
void anon_vma_interval_tree_insert(struct anon_vma_chain *node,
struct rb_root *root);
void anon_vma_interval_tree_remove(struct anon_vma_chain *node,
struct rb_root *root);
struct anon_vma_chain *anon_vma_interval_tree_iter_first(
struct rb_root *root, unsigned long start, unsigned long last);
struct anon_vma_chain *anon_vma_interval_tree_iter_next(
struct anon_vma_chain *node, unsigned long start, unsigned long last);
#ifdef CONFIG_DEBUG_VM_RB
void anon_vma_interval_tree_verify(struct anon_vma_chain *node);
#endif
#define anon_vma_interval_tree_foreach(avc, root, start, last) \
for (avc = anon_vma_interval_tree_iter_first(root, start, last); \
avc; avc = anon_vma_interval_tree_iter_next(avc, start, last))
/* mmap.c */
extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin);
extern int vma_adjust(struct vm_area_struct *vma, unsigned long start,
unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert);
extern struct vm_area_struct *vma_merge(struct mm_struct *,
struct vm_area_struct *prev, unsigned long addr, unsigned long end,
unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t,
struct mempolicy *, struct vm_userfaultfd_ctx);
extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
extern int split_vma(struct mm_struct *,
struct vm_area_struct *, unsigned long addr, int new_below);
extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
struct rb_node **, struct rb_node *);
extern void unlink_file_vma(struct vm_area_struct *);
extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
unsigned long addr, unsigned long len, pgoff_t pgoff,
bool *need_rmap_locks);
extern void exit_mmap(struct mm_struct *);
static inline int check_data_rlimit(unsigned long rlim,
unsigned long new,
unsigned long start,
unsigned long end_data,
unsigned long start_data)
{
if (rlim < RLIM_INFINITY) {
if (((new - start) + (end_data - start_data)) > rlim)
return -ENOSPC;
}
return 0;
}
extern int mm_take_all_locks(struct mm_struct *mm);
extern void mm_drop_all_locks(struct mm_struct *mm);
extern void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file);
extern struct file *get_mm_exe_file(struct mm_struct *mm);
extern struct file *get_task_exe_file(struct task_struct *task);
extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
extern struct vm_area_struct *_install_special_mapping(struct mm_struct *mm,
unsigned long addr, unsigned long len,
unsigned long flags,
const struct vm_special_mapping *spec);
/* This is an obsolete alternative to _install_special_mapping. */
extern int install_special_mapping(struct mm_struct *mm,
unsigned long addr, unsigned long len,
unsigned long flags, struct page **pages);
extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
extern unsigned long mmap_region(struct file *file, unsigned long addr,
unsigned long len, vm_flags_t vm_flags, unsigned long pgoff);
extern unsigned long do_mmap(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot, unsigned long flags,
vm_flags_t vm_flags, unsigned long pgoff, unsigned long *populate);
extern int do_munmap(struct mm_struct *, unsigned long, size_t);
static inline unsigned long
do_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot, unsigned long flags,
unsigned long pgoff, unsigned long *populate)
{
return do_mmap(file, addr, len, prot, flags, 0, pgoff, populate);
}
#ifdef CONFIG_MMU
extern int __mm_populate(unsigned long addr, unsigned long len,
int ignore_errors);
static inline void mm_populate(unsigned long addr, unsigned long len)
{
/* Ignore errors */
(void) __mm_populate(addr, len, 1);
}
#else
static inline void mm_populate(unsigned long addr, unsigned long len) {}
#endif
/* These take the mm semaphore themselves */
extern unsigned long vm_brk(unsigned long, unsigned long);
extern int vm_munmap(unsigned long, size_t);
extern unsigned long vm_mmap(struct file *, unsigned long,
unsigned long, unsigned long,
unsigned long, unsigned long);
struct vm_unmapped_area_info {
#define VM_UNMAPPED_AREA_TOPDOWN 1
unsigned long flags;
unsigned long length;
unsigned long low_limit;
unsigned long high_limit;
unsigned long align_mask;
unsigned long align_offset;
};
extern unsigned long unmapped_area(struct vm_unmapped_area_info *info);
extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
/*
* Search for an unmapped address range.
*
* We are looking for a range that:
* - does not intersect with any VMA;
* - is contained within the [low_limit, high_limit) interval;
* - is at least the desired size.
* - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
*/
static inline unsigned long
vm_unmapped_area(struct vm_unmapped_area_info *info)
{
if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
return unmapped_area_topdown(info);
else
return unmapped_area(info);
}
/* truncate.c */
extern void truncate_inode_pages(struct address_space *, loff_t);
extern void truncate_inode_pages_range(struct address_space *,
loff_t lstart, loff_t lend);
extern void truncate_inode_pages_final(struct address_space *);
/* generic vm_area_ops exported for stackable file systems */
extern int filemap_fault(struct vm_area_struct *, struct vm_fault *);
extern void filemap_map_pages(struct vm_area_struct *vma, struct vm_fault *vmf);
extern int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf);
/* mm/page-writeback.c */
int write_one_page(struct page *page, int wait);
void task_dirty_inc(struct task_struct *tsk);
/* readahead.c */
#define VM_MAX_READAHEAD 128 /* kbytes */
#define VM_MIN_READAHEAD 16 /* kbytes (includes current page) */
int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
pgoff_t offset, unsigned long nr_to_read);
void page_cache_sync_readahead(struct address_space *mapping,
struct file_ra_state *ra,
struct file *filp,
pgoff_t offset,
unsigned long size);
void page_cache_async_readahead(struct address_space *mapping,
struct file_ra_state *ra,
struct file *filp,
struct page *pg,
pgoff_t offset,
unsigned long size);
/* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */
extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
/* CONFIG_STACK_GROWSUP still needs to to grow downwards at some places */
extern int expand_downwards(struct vm_area_struct *vma,
unsigned long address);
#if VM_GROWSUP
extern int expand_upwards(struct vm_area_struct *vma, unsigned long address);
#else
#define expand_upwards(vma, address) (0)
#endif
/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
struct vm_area_struct **pprev);
/* Look up the first VMA which intersects the interval start_addr..end_addr-1,
NULL if none. Assume start_addr < end_addr. */
static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
{
struct vm_area_struct * vma = find_vma(mm,start_addr);
if (vma && end_addr <= vma->vm_start)
vma = NULL;
return vma;
}
static inline unsigned long vma_pages(struct vm_area_struct *vma)
{
return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
}
/* Look up the first VMA which exactly match the interval vm_start ... vm_end */
static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
unsigned long vm_start, unsigned long vm_end)
{
struct vm_area_struct *vma = find_vma(mm, vm_start);
if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end))
vma = NULL;
return vma;
}
#ifdef CONFIG_MMU
pgprot_t vm_get_page_prot(unsigned long vm_flags);
void vma_set_page_prot(struct vm_area_struct *vma);
#else
static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
{
return __pgprot(0);
}
static inline void vma_set_page_prot(struct vm_area_struct *vma)
{
vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
}
#endif
#ifdef CONFIG_NUMA_BALANCING
unsigned long change_prot_numa(struct vm_area_struct *vma,
unsigned long start, unsigned long end);
#endif
struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
unsigned long pfn, unsigned long size, pgprot_t);
int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
unsigned long pfn);
int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
unsigned long pfn);
int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len);
struct page *follow_page_mask(struct vm_area_struct *vma,
unsigned long address, unsigned int foll_flags,
unsigned int *page_mask);
static inline struct page *follow_page(struct vm_area_struct *vma,
unsigned long address, unsigned int foll_flags)
{
unsigned int unused_page_mask;
return follow_page_mask(vma, address, foll_flags, &unused_page_mask);
}
#define FOLL_WRITE 0x01 /* check pte is writable */
#define FOLL_TOUCH 0x02 /* mark page accessed */
#define FOLL_GET 0x04 /* do get_page on page */
#define FOLL_DUMP 0x08 /* give error on hole if it would be zero */
#define FOLL_FORCE 0x10 /* get_user_pages read/write w/o permission */
#define FOLL_NOWAIT 0x20 /* if a disk transfer is needed, start the IO
* and return without waiting upon it */
#define FOLL_POPULATE 0x40 /* fault in page */
#define FOLL_SPLIT 0x80 /* don't return transhuge pages, split them */
#define FOLL_HWPOISON 0x100 /* check page is hwpoisoned */
#define FOLL_NUMA 0x200 /* force NUMA hinting page fault */
#define FOLL_MIGRATION 0x400 /* wait for page to replace migration entry */
#define FOLL_TRIED 0x800 /* a retry, previous pass started an IO */
#define FOLL_MLOCK 0x1000 /* lock present pages */
#define FOLL_COW 0x4000 /* internal GUP flag */
typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
void *data);
extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
unsigned long size, pte_fn_t fn, void *data);
#ifdef CONFIG_PROC_FS
void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
#else
static inline void vm_stat_account(struct mm_struct *mm,
unsigned long flags, struct file *file, long pages)
{
mm->total_vm += pages;
}
#endif /* CONFIG_PROC_FS */
#ifdef CONFIG_DEBUG_PAGEALLOC
extern bool _debug_pagealloc_enabled;
extern void __kernel_map_pages(struct page *page, int numpages, int enable);
static inline bool debug_pagealloc_enabled(void)
{
return _debug_pagealloc_enabled;
}
static inline void
kernel_map_pages(struct page *page, int numpages, int enable)
{
if (!debug_pagealloc_enabled())
return;
__kernel_map_pages(page, numpages, enable);
}
#ifdef CONFIG_HIBERNATION
extern bool kernel_page_present(struct page *page);
#endif /* CONFIG_HIBERNATION */
#else
static inline void
kernel_map_pages(struct page *page, int numpages, int enable) {}
#ifdef CONFIG_HIBERNATION
static inline bool kernel_page_present(struct page *page) { return true; }
#endif /* CONFIG_HIBERNATION */
#endif
#ifdef __HAVE_ARCH_GATE_AREA
extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm);
extern int in_gate_area_no_mm(unsigned long addr);
extern int in_gate_area(struct mm_struct *mm, unsigned long addr);
#else
static inline struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
{
return NULL;
}
static inline int in_gate_area_no_mm(unsigned long addr) { return 0; }
static inline int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
return 0;
}
#endif /* __HAVE_ARCH_GATE_AREA */
#ifdef CONFIG_SYSCTL
extern int sysctl_drop_caches;
int drop_caches_sysctl_handler(struct ctl_table *, int,
void __user *, size_t *, loff_t *);
#endif
void drop_slab(void);
void drop_slab_node(int nid);
#ifndef CONFIG_MMU
#define randomize_va_space 0
#else
extern int randomize_va_space;
#endif
const char * arch_vma_name(struct vm_area_struct *vma);
void print_vma_addr(char *prefix, unsigned long rip);
void sparse_mem_maps_populate_node(struct page **map_map,
unsigned long pnum_begin,
unsigned long pnum_end,
unsigned long map_count,
int nodeid);
struct page *sparse_mem_map_populate(unsigned long pnum, int nid);
pgd_t *vmemmap_pgd_populate(unsigned long addr, int node);
pud_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node);
pmd_t *vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node);
pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node);
void *vmemmap_alloc_block(unsigned long size, int node);
void *vmemmap_alloc_block_buf(unsigned long size, int node);
void vmemmap_verify(pte_t *, int, unsigned long, unsigned long);
int vmemmap_populate_basepages(unsigned long start, unsigned long end,
int node);
int vmemmap_populate(unsigned long start, unsigned long end, int node);
void vmemmap_populate_print_last(void);
#ifdef CONFIG_MEMORY_HOTPLUG
void vmemmap_free(unsigned long start, unsigned long end);
#endif
void register_page_bootmem_memmap(unsigned long section_nr, struct page *map,
unsigned long size);
enum mf_flags {
MF_COUNT_INCREASED = 1 << 0,
MF_ACTION_REQUIRED = 1 << 1,
MF_MUST_KILL = 1 << 2,
MF_SOFT_OFFLINE = 1 << 3,
};
extern int memory_failure(unsigned long pfn, int trapno, int flags);
extern void memory_failure_queue(unsigned long pfn, int trapno, int flags);
extern int unpoison_memory(unsigned long pfn);
extern int get_hwpoison_page(struct page *page);
extern void put_hwpoison_page(struct page *page);
extern int sysctl_memory_failure_early_kill;
extern int sysctl_memory_failure_recovery;
extern void shake_page(struct page *p, int access);
extern atomic_long_t num_poisoned_pages;
extern int soft_offline_page(struct page *page, int flags);
/*
* Error handlers for various types of pages.
*/
enum mf_result {
MF_IGNORED, /* Error: cannot be handled */
MF_FAILED, /* Error: handling failed */
MF_DELAYED, /* Will be handled later */
MF_RECOVERED, /* Successfully recovered */
};
enum mf_action_page_type {
MF_MSG_KERNEL,
MF_MSG_KERNEL_HIGH_ORDER,
MF_MSG_SLAB,
MF_MSG_DIFFERENT_COMPOUND,
MF_MSG_POISONED_HUGE,
MF_MSG_HUGE,
MF_MSG_FREE_HUGE,
MF_MSG_UNMAP_FAILED,
MF_MSG_DIRTY_SWAPCACHE,
MF_MSG_CLEAN_SWAPCACHE,
MF_MSG_DIRTY_MLOCKED_LRU,
MF_MSG_CLEAN_MLOCKED_LRU,
MF_MSG_DIRTY_UNEVICTABLE_LRU,
MF_MSG_CLEAN_UNEVICTABLE_LRU,
MF_MSG_DIRTY_LRU,
MF_MSG_CLEAN_LRU,
MF_MSG_TRUNCATED_LRU,
MF_MSG_BUDDY,
MF_MSG_BUDDY_2ND,
MF_MSG_UNKNOWN,
};
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS)
extern void clear_huge_page(struct page *page,
unsigned long addr,
unsigned int pages_per_huge_page);
extern void copy_user_huge_page(struct page *dst, struct page *src,
unsigned long addr, struct vm_area_struct *vma,
unsigned int pages_per_huge_page);
#endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
extern struct page_ext_operations debug_guardpage_ops;
extern struct page_ext_operations page_poisoning_ops;
#ifdef CONFIG_DEBUG_PAGEALLOC
extern unsigned int _debug_guardpage_minorder;
extern bool _debug_guardpage_enabled;
static inline unsigned int debug_guardpage_minorder(void)
{
return _debug_guardpage_minorder;
}
static inline bool debug_guardpage_enabled(void)
{
return _debug_guardpage_enabled;
}
static inline bool page_is_guard(struct page *page)
{
struct page_ext *page_ext;
if (!debug_guardpage_enabled())
return false;
page_ext = lookup_page_ext(page);
return test_bit(PAGE_EXT_DEBUG_GUARD, &page_ext->flags);
}
#else
static inline unsigned int debug_guardpage_minorder(void) { return 0; }
static inline bool debug_guardpage_enabled(void) { return false; }
static inline bool page_is_guard(struct page *page) { return false; }
#endif /* CONFIG_DEBUG_PAGEALLOC */
#if MAX_NUMNODES > 1
void __init setup_nr_node_ids(void);
#else
static inline void setup_nr_node_ids(void) {}
#endif
#endif /* __KERNEL__ */
#endif /* _LINUX_MM_H */
|