aboutsummaryrefslogtreecommitdiff
path: root/textures/advtrains_dtrack_placer.png
blob: c49777ce1b2e42b50882671b0a1a150dab01a04f (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 40 00 00 00 40 08 02 00 00 00 25 0b e6 .PNG........IHDR...@...@.....%..
0020 89 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 .....bKGD..............pHYs.....
0040 00 0b 13 01 00 9a 9c 18 00 00 00 07 74 49 4d 45 07 e0 08 1c 0d 0e 38 4e 76 14 87 00 00 00 19 74 ............tIME......8Nv......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 16 2f 49 44 41 54 68 de ad 7a 49 af 64 c9 75 de f7 9d 88 3b e4 f4 5e be f7 aa 5e 77 75 77 .../IDATh..zI.d.u....;..^...^wuw
00a0 75 75 b7 9a 44 73 00 a5 16 6d 88 90 3c 6c 0c 59 5a 78 58 09 90 36 06 bc b0 57 fe 05 86 17 f6 d2 uu..Ds...m..<l.YZxX..6...W......
00c0 5a 18 06 b4 f0 c6 f0 c2 30 6c c8 4b 01 b2 e1 01 36 24 0b 32 4d 4a a4 29 36 27 a8 9b ec a9 aa ab Z.......0l.K....6$.2MJ.)6'......
00e0 5e d5 1b 33 f3 0e 11 71 8e 17 71 73 7a d5 34 49 c3 b7 12 85 ca 5b 37 e3 9e 88 38 71 be 21 82 ff ^..3...q..qsz.4I.....[7...8q.!..
0100 f6 df 7d 6f 3a 85 19 f2 45 e2 fa 9a cd ea ec e2 fc bb 2f bf f2 2a c0 f7 7f f4 e7 f3 a3 3b 87 07 ..}o:...E........./..*.......;..
0120 87 7f f2 a7 5f 5d 2c 6f 56 ab 95 a9 52 a4 28 0a 00 b3 d9 7c 3c 9a aa a6 cb cb 67 29 45 00 24 01 ...._],oV...R.(....|<.....g)E.$.
0140 7b f6 ec ac 69 56 24 ab 6a 66 66 93 c9 b8 ae 2b 83 15 7e 6c 00 a9 80 12 50 35 03 bc 73 ce 39 33 {...iV$.jff....+..~l....P5..s.93
0160 5b 2c 97 aa fa f6 2f 7c f9 de bd 97 df 7d f7 fb 0f 1e fc 1c 89 be eb ce 9e b6 f7 5f fd f9 c9 18 [,..../|.....}............._....
0180 f3 39 61 20 49 b2 ef 71 76 5e f8 76 f1 49 5c 3d 2b bc cf 7d 20 d0 ae d0 87 06 fb 97 81 23 9e 01 .9a.I..qv^.v.I\=+..}.........#..
01a0 e7 a5 0f 66 46 d2 8b 03 6c a4 d7 65 a8 93 ea 94 0b 15 cd 2d 00 60 7d 83 b2 29 9c 16 7e 29 44 51 ...fF...l..e.......-.`}..)..~)DQ
01c0 78 ef bd c1 44 0a 00 84 01 06 c0 9c c1 40 11 21 8d 38 a8 7b 33 d4 ee 0b 7b ef 26 fa eb 77 16 ef x...D........@.!.8.{3...{.&..w..
01e0 fd 71 23 7a 5d 6e ee b1 ed d2 f8 c1 df f3 57 0f ff eb ea d1 ef 9f 1e 8d 65 37 5a f7 32 66 7f 6d .q#z]n........W.........e7Z.2f.m
0200 b7 11 35 f9 cc e1 47 ac 3e 06 65 e7 26 ce 6f 10 56 98 4f 31 ba 03 5b ff 1a 00 ee 1a f3 7b b0 dc ..5...G.>.e.&.o.V.O1..[......{..
0220 36 fb 93 2f 82 b4 b2 33 83 f7 05 60 00 01 fa f4 64 d4 7e 0b 96 b6 8d 01 b1 53 bc fa 77 bc a7 16 6../...3...`....d.~......S..w...
0240 92 2a 17 b8 7e 01 a1 2a e1 f9 b6 1d 55 cd ae 1b db cd b7 49 05 d6 a8 3c 84 db 18 6c 27 54 72 27 .*..~..*....U......I...<...l'Tr'
0260 b8 9f 78 99 c1 68 06 90 4d b3 dc fc 64 d9 c2 bc 09 f6 9a cd 03 e4 d7 5f 4c 88 cd 9b 49 de 6a 97 ..x..h..M...d.........._L...I.j.
0280 c4 a2 a5 76 56 7a db 86 4a 8e ca 9d d0 01 12 cb 0e ab 6e fb f5 ce 6c af 3f 9f d6 b1 fd 19 00 03 ...vVz..J.........n...l.?.......
02a0 79 2b 86 71 85 c2 0d 31 37 fd 90 a8 7d d0 ba 82 37 a4 f3 cb c6 14 dc 4e b1 69 dd 73 6c 9b e8 55 y+.q...17...}...7......N.i.sl..U
02c0 13 c9 67 d7 7d 58 74 93 7a 1b 70 48 d6 f4 ca f5 ab 9b 1e 29 41 04 6e 67 ac ce 2e 76 53 73 88 31 ..g.}Xt.z.pH.......)A.ng...vSs.1
02e0 29 96 6d fc 31 5d 90 37 66 f1 64 be bd 21 22 cb 4e be f6 fe b5 59 e2 a6 11 b2 69 da 97 7e 25 f9 ).m.1].7f.d..!".N....Y....i..~%.
0300 ab 65 ff f0 c9 45 1b 94 e4 90 1c a6 e5 41 77 f2 22 01 92 04 99 ef b6 41 16 cb 70 d3 b8 d2 0b 00 .e...E.......Aw."......A..p.....
0320 8a 10 54 73 66 48 0a 33 4b 0a 00 b4 4d ae 98 d1 e7 38 45 c4 39 29 bd 90 0c 49 29 3a 1e 2b 00 11 ..TsfH.3K...M....8E.9)...I):.+..
0340 97 a3 c9 e3 9d 92 1a e8 9c 03 d9 75 ad 90 49 53 4a 69 3c 99 dd 7d f0 d9 10 93 d0 00 aa c2 60 7d ...........u..ISJi<..}........`}
0360 74 30 f8 d7 3e ff b7 8f 4f bf 50 95 0e 06 35 00 18 8f 78 b9 58 7d f4 f8 69 55 d5 24 af af af 66 t0..>...O.P...5...x.X}..iU.$...f
0380 87 47 b0 34 7a e1 97 af d2 a9 2b eb 40 a8 5a 88 01 80 2a d5 04 66 37 37 cf 34 45 c2 52 4c 06 40 .G.4z.....+.@.Z...*..f77.4E.RL.@
03a0 04 20 58 74 7d 67 66 2f bc f0 f2 d1 d1 9d de ac 6d 57 f4 ec fb b6 69 57 00 46 e3 09 c0 a2 28 27 ..Xt}gf/........mW....iW.F....('
03c0 93 03 00 8b c5 4d d2 f4 a2 9b 7b 91 c5 e2 e6 9d 6f 7f c3 39 4f 41 b4 97 1f 7c f1 b7 7c c9 bb c7 .....M....{.....o..9OA...|..|...
03e0 34 f0 fa 06 6d 0b e7 c7 e6 9d a7 bf 7b f8 e2 dd dd 39 9c 4e 19 8a 8f 8b f3 6f 96 65 b9 5a 2d 43 4...m.......{....9.N.....o.e.Z-C
0400 e8 6e 2e 2f 0e 26 b3 9e e3 5e ee f8 72 4c 8a a6 14 d2 ca cc e8 1c e0 54 53 93 da 18 03 cc 2c 25 .n./.&...^..rL.........TS.....,%
0420 00 10 97 d3 bc e9 82 99 05 1b b1 38 80 59 68 95 60 84 24 81 19 12 27 00 9c 54 f0 33 92 2c 0c 31 ...........8.Yh.`.$...'..T.3.,.1
0440 3c 7e fc f8 e2 e2 a2 ef fa b7 fe c2 97 44 24 84 ee f2 2a b8 62 e4 3c cb 9a 66 f4 2d 24 92 a4 aa <~...........D$...*.b.<..f.-$...
0460 7a f2 f6 22 33 83 f7 e5 c1 c1 e1 e1 fc e8 70 7e 22 ce 3d fe e4 e1 e2 07 df 5e 2c 16 00 54 95 34 z.."3.........p~".=......^,..T.4
0480 33 dd ac 63 92 79 14 45 08 20 e7 bf 82 43 3e 9a 9a 99 f7 fe 56 69 20 9d 08 54 13 80 94 62 08 1d 3..c.y.E.....C>.....Vi...T...b..
04a0 c0 94 a2 aa 56 d5 e8 de 4b 2f df dc dc 30 af 5b 8a 73 a8 2b 88 47 8c 79 55 a0 ae 41 a0 ed e1 47 ....V...K/...0.[.s.+.G.yU..A...G
04c0 23 34 cd 5e 1f 9a 06 5d 97 df 6d 66 09 66 af bc f2 e0 f8 e4 ce f7 be fb ed 0f 3e fc 61 8c 3d 00 #4.^...]..mf.f............>.a.=.
04e0 52 9c 73 24 9d 13 ef 9d 99 cc e7 c7 66 ea bd 1f 8f a7 66 d6 75 6d 06 e6 18 23 80 c9 e4 20 a7 bb R.s$........f.....f.um...#......
0500 26 25 49 4a 59 96 24 fb be 03 90 52 4a 29 92 88 31 99 59 51 14 d3 e9 a1 2f fc 66 48 ab 12 c7 c7 &%IJY.$....RJ)..1.YQ..../.fH....
0520 30 c3 62 09 11 88 a0 72 20 d0 76 10 91 0c 8a db 8f aa 01 b8 be be ca 23 66 43 4f f2 58 aa 6a 52 0.b....r..v............#fCO.X.jR
0540 4d a6 29 ff 0f 69 80 e5 2a 4c 82 a4 90 22 14 c9 73 43 11 0a 21 34 98 e6 27 37 1f 98 0e ff a6 49 M.)..i..*L..."..sC..!4..'7.....I
0560 1e 6b 18 69 9a e2 3e ea d1 cc 54 a3 a6 08 8b a6 db 0f 60 fe fc e1 d7 2f 3f f9 ce 74 54 81 db 5f .k.i..>...T.......`..../?..tT.._
0580 f5 56 01 d5 a6 81 3e f4 06 39 2e 1e 57 d3 ef 50 fc 00 98 42 18 a3 52 23 0b 0f 56 0a 03 85 4e 1d .V....>..9..W..P...B..R#..V...N.
05a0 0c 49 14 85 01 e6 8a 46 90 04 94 40 00 a7 13 dd 2b a8 3a 10 98 5c e3 0d 06 70 54 cd cd 3e b7 9b .I.....F...@....+.:..\...pT..>..
05c0 6d 67 ef fe a7 f8 bd 7f 4c 6c 0b 5c c6 81 bb 6f ff 43 df 5d 7c a7 7b f4 7b 47 27 63 ae 81 8c 30 mg......Ll.\...o.C.]|.{.{G'c...0
05e0 f3 af 02 7f 69 6f 0c 80 a3 51 7b 72 78 a5 f0 bb f9 b6 68 d0 27 1c 54 a8 cb ed 12 da c5 29 1b 10 ....io...Q{rx.....h.'.T......)..
0600 13 fc 69 e1 98 5a 24 33 1b 8d 26 66 b6 ee 98 3f 98 cd 84 b6 8b 83 21 a8 f7 a5 07 1d 5d 21 22 3b ..i..Z$3..&f...?......!.....]!";
0620 48 6c 22 82 34 3c ea bd 0f 21 33 0b 86 88 f3 e5 30 6a b9 95 e3 29 8e 0a 98 ed cd b9 19 36 d4 90 Hl".4<...!3.....0j...).......6..
0640 dc a3 48 3f 15 21 02 00 64 b6 9b 1b 31 20 44 ab fc ee 3b 90 cb 88 27 e1 84 4e 40 58 4c a6 00 31 ..H?.!..d...1.D...;...'..N@XL..1
0660 40 52 9e d3 f1 68 72 d9 5f 12 b8 69 ac 5f da d1 c4 76 8b 89 10 31 21 26 4b 6a 66 50 c3 aa df a3 @R...hr._..i._...v...1!&KjfP....
0680 12 2f 1e 6e 3b bc fb 7a 1b 20 d9 a2 de fe cf fa 40 27 7b cf 42 88 55 1b 57 79 95 da 30 8d cb 26 ./.n;..z........@'{.B.U.Wy..0..&
06a0 be d4 07 7f 7e dd be fb de e3 a7 97 73 33 e8 ba f2 15 07 2b 7f 6a 43 ef cd 48 90 b8 5e 76 67 8f ....~.......s3.....+.jC..H..^vg.
06c0 af 1f f9 62 b3 5a d6 4d 21 43 78 1b b0 ea 50 97 56 f9 35 b3 04 2e ae 6e 87 0e 60 54 b9 a1 a6 1a ...b.Z.M!Cx...P.V.5....n..`T....
06e0 34 37 42 c2 94 20 c8 3b 27 71 c2 3d 7a d4 d9 e4 e1 d3 25 34 96 85 38 c7 98 4c cd fa 3e dc 0d bd 47B....;'q.=z.....%4..8..L..>...
0700 7f f1 fe 5f bc fc f0 8f a6 b3 91 17 88 30 44 55 d5 fa e8 b5 9b 9d 6c 0d a1 87 a1 a8 e7 f5 e1 eb ..._.........0DU......l.........
0720 06 31 58 59 d6 d4 50 14 8c 89 51 19 22 52 d2 7a ac b3 b2 50 99 c2 2c a5 94 92 da 9a 71 80 c8 54 .1XY..P...Q."R.z...P..,.....q..T
0740 65 3c 9e 16 45 a9 29 ad 9a 65 52 b4 5d 6b 86 ae 0f 5d d7 b1 ba 1b fa ce 4c 5d 7f 7c 0a e3 3a f9 e<..E.)..eR.]k...]......L].|..:.
0760 cc 6c 3c 7f f3 e5 cf fd 73 b3 8c ee 43 06 d0 4d ee dd 7f c5 57 87 bf f8 f6 df f8 5d 33 9b 8e 31 .l<.....s...C..M....W......]3..1
0780 3f 82 19 49 5e 5e 3c f9 da 57 ff fb 96 79 c7 08 68 57 be 7e 33 1e 8f 47 13 e7 8b 5e f5 e9 d9 23 ?..I^^<..W...y..hW.~3..G...^...#
07a0 ed d5 7b 5f 14 05 3c 54 93 a9 a9 6a d7 36 66 d6 2c 97 cb d5 92 e4 e1 e1 31 c9 aa aa 66 b3 43 33 ..{_..<T...j.6f.,.......1...f.C3
07c0 75 f5 41 10 89 8c 57 fa 54 44 1a ac 92 26 95 74 13 6f 10 54 93 83 b1 8f 04 50 f8 22 84 de b9 1a u.A...W.TD...&.t.o.T.....P."....
07e0 00 5d 55 8c 5f 17 e7 b6 1d 20 69 d0 d4 7b b3 94 c2 12 40 8a 48 61 a8 43 bb eb 7d c3 6c 09 a5 45 .]U._.....i..{....@.Ha.C..}.l..E
0800 58 a4 51 60 42 a5 a8 30 11 02 03 2d 01 26 54 a1 81 03 27 25 41 28 41 42 89 cd 03 14 aa 50 09 08 X.Q`B..0...-.&T...'%A(AB.....P..
0820 4d a1 42 c0 d2 50 f1 55 73 a2 93 92 a1 30 cf 82 48 92 21 78 8a 0c 0c 20 25 f8 ba 46 d7 c1 0c 5d M.B..P.Us....0..H.!x....%..F...]
0840 8f cb 4b 98 81 44 d3 7e 0a 7d 0f 7d ec ba ae ef 83 6a 0a a1 5b 2c 6e cc 6c 34 1a 4d 26 33 0e 1c ..K..D.~.}.}.....j..[,n.l4.M&3..
0860 82 31 a6 cb 8b 6b 33 55 8d 66 0a b0 2c cb 8c d9 6d db 98 d9 6a b5 c8 b0 18 42 9f 6f c6 18 45 e4 .1...k3U.f..,...m...j....B.o..E.
0880 f4 f4 05 00 65 59 f9 a2 9c cf 4f 6c a7 5a 89 c8 64 32 1a 8f e1 fd b0 24 ca 72 a0 12 1f 3d 82 f7 ....eY....Ol.Z..d2.....$.r...=..
08a0 7e 20 0e 31 22 57 4b 72 b8 73 eb 52 4d 7d 1f 54 63 4a c9 0c 31 46 35 2b 92 aa 81 c3 72 a6 2a 62 ~..1"WKr.s.RM}.TcJ..1F5+....r.*b
08c0 4a a6 9a 81 9b 43 1d 25 c1 34 60 96 1f c0 1d 02 88 ad 3f 6a 34 43 52 32 6d ab 56 4a 69 a8 23 a0 J....C.%.4`.......?j4CR2m.VJi.#.
08e0 b8 9a ce e7 c5 24 0e 74 24 59 14 d1 93 22 ae c8 f4 61 03 73 94 e2 d3 e4 9e 28 9c 01 a6 ab 49 19 .....$.t$Y..."...a.s.....(....I.
0900 5c d9 9a 59 e5 59 0b 00 d2 04 a0 97 70 50 b6 66 aa 50 98 82 1c c9 8d 50 20 22 a0 50 4b 5c 65 6a \..Y.Y......pP.f.P.....P.".PK\ej
0920 90 aa 48 30 48 b0 a4 24 4b 7f 03 98 a7 17 f8 0a 87 83 ae d2 5c 62 99 fa cb 0f be fe db b0 38 48 ..H0H..$K...........\b........8H
0940 9e ac 99 88 ea e4 97 fc d9 fb ff ed fb 7f f0 4f ee df 9b ef 14 2e 0b 36 c2 e1 6f dd 12 f5 af 4e ...............O.......6..o....N
0960 7e f0 f2 f1 1f 52 3c c9 0c 91 85 e3 a2 45 17 ac 2e 30 5e 33 0f de e5 2e e4 9a 7d bc 5f 42 09 a0 ~....R<......E...0^3......}._B..
0980 f4 bc a5 5d b7 42 1b b4 ea 81 81 99 7d 0d 6f 6f 1e d7 cd 9f 0a a2 73 7b 0a 56 f4 81 2f 8b 72 3e ...].B......}.oo......s{.V../.r>
09a0 3f 99 1f 4c 76 17 6e 9f aa 8b e7 ca 77 5d 78 8c ca 9b d6 a7 34 3c d9 47 54 05 46 25 bc 43 e9 f1 ?..Lv.n.....w]x.....4<.GT.F%.C..
09c0 a9 ea dd e0 3e 65 32 3f 45 22 6f 95 b6 72 c7 60 c8 75 5c a9 90 ca cb 06 e3 d7 c3 4a bf c3 37 b7 ....>e2?E"o..r.`.u\........J..7.
09e0 9a d8 9e d3 e1 04 9a 80 d8 1a 69 7e 27 a4 ca 23 7f dd fc 22 2a 9a 7e cb 7c 26 e5 8f d3 ef 3f c3 ..........i~'..#..."*.~.|&....?.
0a00 55 79 54 e9 b6 6e 21 10 02 7d 4a d6 b4 61 d5 44 d9 51 f5 11 86 d1 ed 2a b4 68 d2 f2 2a 1c cd f6 UyT..n!..}J..a.D.Q.....*.h..*...
0a20 a8 c4 aa dd aa ec a4 48 6a 21 61 d5 21 46 cd 03 3d 1d ed 4d fa ce f4 d8 f3 93 42 a2 e9 d3 d8 9e .......Hj!a.!F..=..M......B.....
0a40 dc 3b dd fb cd aa 0d 7f fe f1 f5 7a 0d 6c 42 b2 c3 f2 c6 2f 97 37 ef 7f f0 a3 10 5e d8 b4 22 82 .;.........z.lB..../.7.....^..".
0a60 f1 f4 ce ad 0e 00 88 e6 96 a1 be 39 a7 aa 0e d5 38 4f 96 6a 32 c4 a8 66 28 0b e7 0b 6f 6e 06 37 ...........9....8O.j2..f(...on.7
0a80 4c 4a db 0d 93 9a 54 33 42 2b 4c c0 b2 ac 06 2e 42 c2 ac 2a 05 60 6f 13 38 e7 e4 e4 76 f7 fc fc LJ....T3B+L.....B..*.`o.8...v...
0aa0 e4 cd df 1c c4 9f 71 c3 76 0f 5f 78 cb cf 5f fe b5 5f ff fb bf 6e 3b 23 31 9d 42 98 be f6 bf fe ......q.v._x.._.._...n;#1.B.....
0ac0 c3 fe b8 e9 52 de 38 2b bc 2f 0a a1 90 1c 8f a7 24 9b 66 75 73 73 65 66 97 8b 67 7d df 15 65 f5 ....R.8+./......$.fussef..g}..e.
0ae0 c2 e9 3d 92 45 51 66 6b ad ef 3b 33 4b 29 b6 6d 4b b2 e9 97 29 69 59 16 47 f5 89 99 b9 0c ae c0 ..=.EQfk..;3K).mK...)iY.G.......
0b00 4d c6 2c 02 40 85 3b 03 23 5e 77 c3 d7 27 27 f7 7f 49 7c b1 36 8c 86 3f b3 19 fc 26 fb 07 72 35 M.,.@.;.#^w..''..I|.6..?...&..r5
0b20 b0 34 73 ce 09 25 13 32 4d 29 f4 fd e0 dd 6e 59 9c 71 b0 5d 76 fb 69 3b 1c 6f 07 c5 d7 4f ae 0d .4s..%.2M)....nY.q.]v.i;.o...O..
0b40 94 6d e5 c9 a3 ba 3b 58 5d d7 9e 3f 7b a2 29 35 a1 ab cb 3a 69 ec fb 0e 34 d2 d6 a1 db 3a 5c f8 .m....;X]..?{.)5...:i...4....:\.
0b60 f1 68 6b 74 e6 b2 4b b2 ef fb 77 de f9 66 d7 b5 04 44 e4 e3 87 1f 89 70 b9 5a 88 48 d6 dd 24 bd .hkt..K...w..f...D.....p.Z.H..$.
0b80 f7 a4 34 cd 72 b1 b8 ce a9 e4 9c 17 f1 a4 88 88 6a 0a 21 99 e1 ea ea 42 55 07 2e 02 2c 97 8b 18 ..4.r...........j.!....BU...,...
0ba0 e3 78 3c ce 7a 65 b1 b8 09 21 64 82 00 58 51 94 de bb 2c a9 9b b6 d1 94 ae dd d5 6a b9 5c 2c 57 .x<.ze...!d..XQ...,........j.\,W
0bc0 a3 11 0a 3f 64 dc 66 b8 29 f0 f3 f9 5a a1 25 74 03 83 b0 a2 28 be f8 c5 5f f8 ec 67 be a0 a6 cb ...?d.f.)...Z.%t....(..._..g....
0be0 e5 62 34 99 be fe da 9b 21 84 c5 f2 26 c5 18 63 24 99 b9 40 d7 b5 ab d5 02 80 88 17 11 11 c9 23 .b4.....!...&..c$..@...........#
0c00 ac 9a 54 d5 cc 16 8b eb 18 63 51 94 55 35 22 a1 1a 53 8a aa c9 39 9f 0d 8b 94 52 16 cf 79 fe 73 ..T......cQ.U5"..S...9....R..y.s
0c20 72 de bb 77 7f b9 5a 36 cd ea e4 e4 4e 4a e9 d1 c7 1f 65 2d cf b5 b4 1b 7c 46 c0 8b 08 5d 01 33 r..w..Z6....NJ....e-....|F...].3
0c40 01 c4 6d 12 21 c5 98 8c 96 9d 74 55 55 b3 aa 1e ab b9 21 db 28 46 4f 8a b1 80 14 30 50 8a ec 36 ..m.!.....tUU.....!.(FO....0P..6
0c60 90 10 04 83 02 6a 30 58 22 12 32 0b a4 38 a1 39 0a a1 a9 83 c1 34 c0 02 21 42 02 5a b2 2f cc 3b .....j0X".2..8.9.....4..!B.Z./.;
0c80 3b d8 68 66 33 e4 32 b1 b8 fc d0 3b ef dc 1a 31 8c 20 8b 7a ee 7f f4 ee fb 0f 7f f0 bb 47 f3 43 ;.hf3.2....;...1...z.........G.C
0ca0 d5 81 0b 15 4e 7c 39 c2 80 e7 db 2a 37 2d 16 a7 f1 0f 28 1e 9e 00 a4 27 88 e3 52 1f 9c 26 33 18 ....N|9....*7-....(....'..R..&3.
0cc0 e8 9d 88 b0 10 16 7e 2d 9d 80 07 f7 d3 c0 d1 49 92 7a a2 39 4b 5d 7a 48 e0 74 a2 96 77 3c 60 24 ......~-.......I.z.9K]zH.t..w<`$
0ce0 4a 6f 24 cb 22 1a be bc 0b cf 9a 56 97 df f9 67 b4 30 64 ce ba ea da e4 8b be bb fe 20 9c fd 51 Jo$."......V...g.0d............Q
0d00 29 33 d9 68 7e 33 89 47 c0 5f cf 73 2a 22 b9 07 07 95 1d bf d4 d9 2e d3 26 ae 96 58 76 98 d6 38 )3.h~3.G._.s*"..........&..Xv..8
0d20 9c c0 2c fd 5f 8c f3 e7 ee a4 1f f7 94 56 9a 77 3f 92 a6 1c b1 10 b3 72 e5 d1 df 42 b2 95 34 de ..,._........V.w?......r...B..4.
0d40 39 29 bc 2f 1c 45 b2 47 47 c0 c4 11 ba 53 47 d6 85 43 cd 9e 2d 90 76 54 ec a8 c4 c9 14 22 43 01 9)./.E.GG....SG..C..-.vT....."C.
0d60 d8 55 f4 1b d1 fc 13 9c 88 e7 dd 77 1b 86 92 6b 3a ed 8b 7a 79 6d 87 b5 dd 1a 07 21 7c 55 0d 85 .U.........w...k:..zym.....!|U..
0d80 69 ed 2a db f3 e6 bd f7 9e 44 1b b1 bc c2 d1 81 09 37 8a 77 bd b0 76 60 b6 8d 38 5f 6c f1 fb f4 i.*......D.......7.w..v`..8_l...
0da0 e0 16 12 3f d7 9d e7 98 86 4a 66 72 48 eb 51 71 62 07 23 b6 9d e9 4e 6f 09 f4 2e f9 55 d7 7d fc ...?.....JfrH.Qqb.#...No....U.}.
0dc0 c9 b9 a6 a3 1d 93 d4 8a ba c4 d1 ed d7 f4 21 9d 5d 35 ab 5e 05 16 92 75 c1 6e 4d 7e 52 ac 3a 78 ..............!.]5.^...u.nM~R.:x
0de0 41 b9 e3 7f 3c bb e4 6e 9c 49 65 d5 a5 5d ee b9 ce db 6d 4b 27 af 34 6f be 44 00 9a d2 5a d3 da A...<..n.Ie..]....mK'.4o.D...Z..
0e00 37 7f 18 60 7a ab d7 e3 a3 de d3 9d ce 5f f9 d5 f2 f0 80 80 2f 86 39 72 e5 78 d9 71 47 ca 28 81 7..`z........_....../.9r.x.qG.(.
0e20 2e ba 27 8b e9 c4 66 65 35 ee b4 5e b5 0b 35 33 d3 18 a2 9a 89 f3 a4 00 32 ae 46 29 0b 0f 88 c1 ..'...fe5..^..53........2.F)....
0e40 da a6 89 29 0a e5 f0 70 06 b3 65 28 50 27 00 de 97 00 9c 73 de 7b 00 d9 7a 92 ec b6 4e 1f 00 8a ...)...p..e(P'.....s.{..z...N...
0e60 1d 8a e9 cb d1 5f f9 9b ff c8 17 7e c3 22 72 49 b8 5e 8e fc e4 e8 ad cf fd f2 67 49 8a 60 3a d9 ....._.....~."rI.^........gI.`:.
0e80 4c 82 3e fb fa 7f de 2e b7 14 01 34 b1 7a f7 f2 ee 11 4e 4e ea bb e6 e4 69 ff 44 35 a5 a4 6d db L.>........4.z....NN....i.D5..m.
0ea0 1a ac 2a 2b ef bd 73 8e 6e de 0f ce a8 18 70 15 2f fa be a3 88 e9 5d 33 8b 16 35 45 00 a5 1f 01 ..*+..s.n.....p./.....]3..5E....
0ec0 56 48 e1 a5 04 d1 87 16 80 50 9c f8 c8 c3 5b 6b 42 5c 31 3e 7a ad 28 4b 6e ec 32 82 64 47 78 80 VH.......P....[kB\1>z.(Kn.2.dGx.
0ee0 eb 6d 92 5d 9e c0 ab ab 8b 1d d0 1f 16 b3 88 07 45 0d 80 3a 27 64 ae 51 75 36 d0 45 b2 65 3d 38 .m.]............E..:'d.Qu6.E.e=8
0f00 28 b9 db 96 b7 ec d6 99 2f 64 86 1b ae d9 af 59 36 55 25 0f 5e 4a 69 93 fa bb 19 1c 02 42 b4 51 (......./d.....Y6U%.^Ji......B.Q
0f20 3d 70 c8 cd 52 f2 24 ea 1a 43 a9 34 00 e8 3b a8 ee 99 f9 be f0 80 d5 75 fd ca 2b 0f 48 e9 fb 1e =p..R.$..C.4..;........u..+.H...
0f40 c0 c1 c1 3c 93 b6 83 83 63 92 8b c5 65 d7 b5 b9 68 00 68 9a d5 c5 c5 53 92 de d7 ce 95 79 4a 00 ...<....c...e...h.h....S.....yJ.
0f60 14 e5 c8 b9 ac 57 43 7e 63 8c d1 cc aa aa ca 14 66 b9 5c 1e cc da fd d2 c4 be 0f 67 4f ad ac 50 .....WC~c.......f.\........gO..P
0f80 16 43 a8 db d8 72 25 d9 bd 6b 06 4d b7 6c ca 32 03 42 55 55 29 69 b6 fc d7 ee b9 78 ef 32 ff d9 .C...r%..k.M.l.2.BUU)i.....x.2..
0fa0 df db 34 55 25 25 db 1c b6 b3 b5 b9 ef fe 0e a4 70 b8 9f b7 e0 43 48 29 ed fb 09 2a 92 b7 c3 07 ..4U%%..........p....CH)...*....
0fc0 56 b8 fe cb bc a6 78 7d fe c8 3b cd dc 08 40 e8 61 e6 9e af d4 b4 e0 d3 33 67 10 09 30 14 2c 85 V.....x}..;...@.a.......3g..0.,.
0fe0 74 e6 d3 aa 05 28 b1 a9 10 00 10 02 80 be 2f a6 0b 61 72 72 c3 4c bf ed 12 04 e9 05 99 f6 a4 a4 t....(......../..arr.L..........
1000 18 1c 0c c0 27 07 02 31 d6 b1 a9 52 0f e8 ee 68 68 5c 3d fa f6 ef 38 c1 d3 2a 63 0e 9b ce 00 4c ....'..1...R...hh\=...8..*c....L
1020 5f fc cb 7e f1 ec 9d 1f fd c9 6f 9f 1e 8d c0 a1 60 93 e6 eb 39 f0 8b 7b d6 22 39 96 cb 37 ab af _..~......o.....`...9..{."9..7..
1040 d1 55 4e 68 80 77 26 64 d3 a3 69 cc 09 a6 a3 db 25 9e c7 db bc b4 1d 50 13 ee a1 db 7e 1d 25 09 .UNh.w&d..i.....%......P....~.%.
1060 8e 67 24 9c f3 7e 6b 50 c7 83 f4 0d 97 02 d7 13 53 03 00 9b b3 ce 0b 56 07 75 7f 67 56 88 ec d8 .g$..~kP........S......V.u.gV...
1080 eb 55 c2 6a 2f 1b 60 a8 0a 37 3e aa 14 e5 9e 9f 4c 38 07 ef 30 9f 7c fa 86 f6 ff c3 65 85 e4 42 .U.j/.`..7>.....L8..0.|.....e..B
10a0 e3 f2 56 27 cc 58 74 d1 9f 4c 6f 6b f5 e0 bd 2f fc da 69 de ba e0 f6 a9 b1 a8 21 05 bb e9 6c d7 ..V'.Xt..Lok.../..i.......!...l.
10c0 2e 9f 8d 70 38 ca 69 ba 1d c9 b0 93 c0 de dd 46 e2 9f dc 81 e7 6b 90 9f 95 85 70 67 25 0d 8d 4b ...p8.i........F.....k....pg%..K
10e0 f2 45 41 27 e2 05 b2 93 74 4e f4 79 df a3 0b 76 79 a5 c7 07 b6 bb e2 09 34 fd 76 1f 42 0d 6a b8 .EA'....tN.y...vy.......4.v.B.j.
1100 58 00 44 4a aa aa d3 1a 5e 7e b6 d0 9d c6 83 e7 d8 c6 f9 75 77 a1 dd ad 9b 1d 3f f0 17 d7 ab ff X.DJ....^~.........uw.....?.....
1120 fd fd 8f 3e b9 38 cd 86 d9 10 89 3e 95 57 be 72 ab f5 ae 8f 1f 9f 2d 1e 5d 84 1f f7 fa a8 b8 59 ...>.8.....>.W.r......-.]......Y
1140 c1 09 0e c7 db 68 9e 5e 6d b4 3b 77 87 d7 b6 d6 0f 07 a4 20 eb 52 08 8e 91 66 76 bb 03 ab 4e a0 .....h.^m.;w.........R...fv...N.
1160 b2 23 47 41 22 89 f9 7a fa 73 3f ff 2b ff 60 36 9d 6e d0 a1 28 50 14 fc d6 7b cf ed 4c 94 27 fe .#GA"..z.s?.+.`6.n..(P...{..L.'.
1180 ee 5f 2d ca 2a 6f fa b6 ed 6a 00 29 3a 33 5e 5d 5f f6 7d 2b 13 33 d8 ca 51 21 ab 58 9a b1 0f 9d ._-.*o...j.):3^]_.}+.3..Q!.X....
11a0 aa 7a ef 3f ff f9 b7 55 53 df b7 b9 24 2c 6e ae 00 7a 5f 14 be 50 b3 93 e3 53 10 a1 ef 57 cd 02 .z.?...US...$,n..z_..P...S...W..
11c0 e3 53 83 00 71 6d 2d c2 d2 ea f3 bf fa 6f 8a 72 74 e7 84 75 cd 18 71 f6 8c a6 04 d4 8f 0f 5e 9b .S..qm-......o.rt..u..q.......^.
11e0 7c f1 8d 9d 81 c1 78 8c d1 a8 fa d6 7b ff 72 ef 04 06 69 ac 56 b8 5b 49 55 ba 0a e4 ca ae 6c a0 |.....x.....{.r...i.V.[IU.....l.
1200 df 05 c1 65 4a ab 8e 80 59 4c 66 06 21 45 00 eb 7b a8 9a f7 e8 b5 4a 29 75 49 fb 04 92 cb ce 93 ...eJ...YLf.!E..{.....J)uI......
1220 28 50 24 96 aa da db 08 40 84 eb 52 a8 01 ef 5c b0 7c 9c 0b 24 8b a2 0a fd 02 16 43 4f 2f 8c 11 (P$.....@..R...\.|..$......CO/..
1240 a9 27 85 66 f0 45 61 31 a6 dd 45 db 77 e0 be da 58 ad 16 1f 7e f0 de d9 d9 93 94 42 d7 5a 0c 39 .'.f.Ea1..E.w...X...~......B.Z.9
1260 eb f3 d6 13 9d a3 08 e7 f3 f9 74 3a 11 91 ba 1e 91 4c 29 65 c0 56 4d 66 b6 91 cb 5d 07 4b 0a b2 ..........t:.....L)e.VMf...].K..
1280 ae 2b 00 aa d6 b6 4b 33 9c 9d 7d 9c 73 2c c6 d8 77 cd ff b8 f8 2f 93 c9 ec f4 f4 c5 cc dc d4 70 .+....K3..}.s,..w..../.........p
12a0 ef 45 d4 35 56 2d ae 6f 40 62 36 85 01 a1 87 af 6b ac 56 d8 05 be 18 61 80 aa 86 10 53 0c a1 ef .E.5V-.o@b6.....k.V....a....S...
12c0 9e 9d 9f 75 6d 63 b0 98 82 6a ea 7b cb 5e 7e c6 45 ef 05 80 f7 45 06 e6 ba 1e 8b 48 8c 31 b3 2e ...umc...j.{.^~.E....E.....H.1..
12e0 b3 a4 aa 22 62 46 80 a0 64 5c a0 38 18 44 2c a9 0e 06 3a c5 cc 0c ac ea d1 bd 17 5f 32 d3 67 cf ..."bF..d\.8.D,...:........_2.g.
1300 ce ea 7a 04 f0 e9 d9 13 83 a3 14 4e 98 05 6d de 53 07 a3 37 83 48 69 94 dd ea 55 56 93 ef 7d ef ..z........N..m.S..7.Hi...UV..}.
1320 cf c6 e3 a9 f7 5e 35 4d 26 b3 2f 7d e9 cb 9f 7c f2 f0 c9 d3 73 3a 87 61 7b be 00 61 74 c6 02 80 .....^5M&./}...|....s:.a{..at...
1340 42 5d 51 12 e8 a3 91 aa 0a 45 36 5e 05 62 46 09 31 59 b8 4a fd 4a fb 15 49 4b 31 4b e1 12 89 82 B]Q......E6^.bF.1Y.J.J..IK1K....
1360 ca 41 c4 c1 8c b1 9d 54 e3 57 1f bc 1e 42 f8 ea ff fc 43 52 48 3c 3e 7b fc de 3b ff b1 ae aa 18 .A.....T.W...B....CRH<>{..;.....
1380 33 4f 13 11 76 6d fb c2 ab 5f f1 a6 dd 0f bf f1 3b ab 8b f7 4a ef f2 be 9a 73 a0 d9 6c 36 9f cd 3O..vm..._......;...J....s..l6..
13a0 66 5d d7 d5 f5 a8 ac 2a e7 cb 12 d7 f3 fe 8f eb 52 bc 5e 01 b0 30 94 14 ef 28 83 03 66 bb 55 dc f].....*........R.^..0...(..f.U.
13c0 91 ce cb d6 2c eb cc c0 03 a3 02 6d 07 12 55 09 62 f0 86 f3 76 42 de 00 a9 dc 9b b0 af 90 f2 c6 ....,......m..U.b...vB..........
13e0 1b 9f 79 f5 fe eb 20 5e 7c e9 f2 d1 37 ff 29 b4 e1 f0 1a 92 3c bb 6c bf f3 d5 7f e5 db e5 f9 fb ..y....^|...7.).....<.l.........
1400 7f f6 ef 27 d3 e3 c5 9e 6f dd bf f1 fa df 7d f3 33 6f a5 a8 6d d7 3c 7a f8 a1 01 0e 61 cc 73 d1 ...'....o.....}.3o..m.<z....a.s.
1420 0a 70 03 6d e0 50 3d d7 02 7a 0f 67 4a 2f 1a 11 a2 f5 71 68 39 44 4b 6a 65 81 ba c8 0c 25 57 e7 .p.m.P=..z.gJ/....qh9DKje....%W.
1440 bd 72 d9 47 9b 94 7a 3a 04 43 1d 30 54 9d 73 a4 df c2 3f 59 38 57 4d 0f 7d 51 f8 2f bc 71 77 3c .r.G..z:.C.0T.s...?Y8WM.}Q./.qw<
1460 1e ef a6 90 43 f7 7d 29 33 35 5f 1f e3 c2 74 e4 de ba 3f 85 94 3f 25 2a e5 9a fd 6c 81 2e 0c b3 ....C.})35_...t...?..?%*...l....
1480 33 a9 31 1f ed 3b 8f fb 92 38 2a ae 1b c8 a4 de 6c 8f 0c 3a bb ed ee df ad 8a 9d 47 45 58 94 a5 3.1..;...8*.....l..:.......GEX..
14a0 ab 0f 3d 81 c2 b3 70 7b 83 d7 87 5d 5c 5e fb 9d 74 ce f1 67 25 06 2f 1c ee 19 ea fb db 13 20 f0 ..=...p{...]\^..t..g%./.........
14c0 f0 02 b2 36 0c d5 70 7a 00 3f 51 db ef e6 66 b3 7d a7 ae 0f 9d f7 6b c3 75 cf 5a d8 6c 01 6d 5d ...6..pz.?Q...f.}.....k.u.Z.l.m]
14e0 58 4b 56 9e 8a 98 7d 5a 07 f6 3b bb c9 ae 1d 9a b9 8e 68 f3 9e a4 b8 58 40 0d a7 87 40 5e 78 eb XKV...}Z..;.......h....X@...@^x.
1500 53 05 16 97 d0 1e 28 77 1d e2 94 a2 6c 0e 83 1a 92 b2 ef 7b 75 9d 5f 35 b6 68 fa 68 45 ce d1 75 S.....(w....l......{u._5.h.hE..u
1520 ea b5 38 b8 2d 08 94 c5 d3 eb 40 e7 76 98 ef 9a bd 85 7c c8 02 2d 0e d4 38 1c 95 4a 29 0b b4 ac ..8.-.....@.v.....|..-..8..J)...
1540 02 9d 73 59 f5 66 1b 34 a5 a8 06 33 bb b9 54 12 17 2b 97 cc e5 83 41 d5 64 f2 d6 4b 14 ef b7 87 ..sY.f.4...3..T..+....A.d..K....
1560 6c 2d b4 b3 5f 4b eb a5 97 2d ea 69 9d 7c 35 f1 26 27 47 6f ff 0b 8a 78 3f 9c 8a 12 57 1e 1c bf l-.._K...-.i.|5.&'Go...x?...W...
1580 f6 fb bf f7 af 6f b3 51 14 df d5 df a8 8b 51 55 8d 48 9e 9f 3f e9 ba 86 94 aa aa 49 98 a9 aa c2 .....o.Q......QU.H..?......I....
15a0 b4 eb 3b b5 14 fa 70 75 75 09 b3 d1 78 52 57 23 92 f3 a3 63 21 7d 51 d6 f5 04 c0 d5 e5 d3 98 a2 ..;...puu...xRW#...c!}Q.........
15c0 69 5a ae 96 42 59 2c ae 42 88 84 c5 d0 1f 74 07 6f aa d4 22 65 59 ae f9 7c 3f bd ff b7 ea fa 78 iZ..BY,.B.....t.o.."eY..|?.....x
15e0 f7 a4 c1 9c 1c d5 f0 ce 3b 99 bc 64 80 f7 28 47 83 fc e8 db d5 a7 6d bf 99 c5 26 89 76 da 92 4c ........;..d..(G......m...&.v..L
1600 61 a9 b1 25 85 65 3e 39 6b 02 33 98 c6 36 a5 a4 29 3a 26 d0 0a 87 b2 20 40 cd 1b 6c 1a 2c 75 00 a..%.e>9k.3..6..):&.....@..l.,u.
1620 63 58 a9 a6 94 52 be 5f 57 45 55 16 24 85 d3 c9 64 9a 0f ff ec a4 00 bd 6b ea 2a 9f 76 83 08 ab cX...R._WEU.$...d.......k.*.v...
1640 92 24 92 d2 8f c7 68 1a 4d 09 31 e0 93 c7 eb 2a e4 f6 ce 9d 6e 8e 2e ad 56 4d df f7 7d df e6 bd .$....h.M.1....*....n...VM..}...
1660 99 18 83 88 5b 43 b2 64 5d bb 5c 36 7d df 01 96 0f f4 89 30 27 4f 8c 43 06 b7 ad 65 95 97 6d e7 ....[C.d].\6}......0'O.C...e..m.
1680 cc 38 66 b3 99 73 5e 44 aa 6a 54 d7 23 b9 25 dd 61 de 21 eb 33 02 74 a8 6a 38 41 d7 e1 a7 a2 ea .8f..s^D.jT.#.%.a.!.3.t.j8A.....
16a0 45 51 18 2c 17 a6 ff 5f b2 eb 67 bc 6e 4d c8 f6 db ff 01 f9 8e 14 fa ae f7 a6 2f 00 00 00 00 49 EQ.,..._..g.nM............/....I
16c0 45 4e 44 ae 42 60 82 END.B`.
160' href='#n1160'>1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560
/* mini-gmp, a minimalistic implementation of a GNU GMP subset.

   Contributed to the GNU project by Niels Möller

Copyright 1991-1997, 1999-2019 Free Software Foundation, Inc.

This file is part of the GNU MP Library.

The GNU MP Library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

The GNU MP Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.

You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */

/* NOTE: All functions in this file which are not declared in
   mini-gmp.h are internal, and are not intended to be compatible
   neither with GMP nor with future versions of mini-gmp. */

/* Much of the material copied from GMP files, including: gmp-impl.h,
   longlong.h, mpn/generic/add_n.c, mpn/generic/addmul_1.c,
   mpn/generic/lshift.c, mpn/generic/mul_1.c,
   mpn/generic/mul_basecase.c, mpn/generic/rshift.c,
   mpn/generic/sbpi1_div_qr.c, mpn/generic/sub_n.c,
   mpn/generic/submul_1.c. */

#include <assert.h>
#include <ctype.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "mini-gmp.h"

#if !defined(MINI_GMP_DONT_USE_FLOAT_H)
#include <float.h>
#endif


/* Macros */
#define GMP_LIMB_BITS (sizeof(mp_limb_t) * CHAR_BIT)

#define GMP_LIMB_MAX ((mp_limb_t) ~ (mp_limb_t) 0)
#define GMP_LIMB_HIGHBIT ((mp_limb_t) 1 << (GMP_LIMB_BITS - 1))

#define GMP_HLIMB_BIT ((mp_limb_t) 1 << (GMP_LIMB_BITS / 2))
#define GMP_LLIMB_MASK (GMP_HLIMB_BIT - 1)

#define GMP_ULONG_BITS (sizeof(unsigned long) * CHAR_BIT)
#define GMP_ULONG_HIGHBIT ((unsigned long) 1 << (GMP_ULONG_BITS - 1))

#define GMP_ABS(x) ((x) >= 0 ? (x) : -(x))
#define GMP_NEG_CAST(T,x) (-((T)((x) + 1) - 1))

#define GMP_MIN(a, b) ((a) < (b) ? (a) : (b))
#define GMP_MAX(a, b) ((a) > (b) ? (a) : (b))

#define GMP_CMP(a,b) (((a) > (b)) - ((a) < (b)))

#if defined(DBL_MANT_DIG) && FLT_RADIX == 2
#define GMP_DBL_MANT_BITS DBL_MANT_DIG
#else
#define GMP_DBL_MANT_BITS (53)
#endif

/* Return non-zero if xp,xsize and yp,ysize overlap.
   If xp+xsize<=yp there's no overlap, or if yp+ysize<=xp there's no
   overlap.  If both these are false, there's an overlap. */
#define GMP_MPN_OVERLAP_P(xp, xsize, yp, ysize)				\
  ((xp) + (xsize) > (yp) && (yp) + (ysize) > (xp))

#define gmp_assert_nocarry(x) do { \
    mp_limb_t __cy = (x);	   \
    assert (__cy == 0);		   \
  } while (0)

#define gmp_clz(count, x) do {						\
    mp_limb_t __clz_x = (x);						\
    unsigned __clz_c = 0;						\
    int LOCAL_SHIFT_BITS = 8;						\
    if (GMP_LIMB_BITS > LOCAL_SHIFT_BITS)				\
      for (;								\
	   (__clz_x & ((mp_limb_t) 0xff << (GMP_LIMB_BITS - 8))) == 0;	\
	   __clz_c += 8)						\
	{ __clz_x <<= LOCAL_SHIFT_BITS;	}				\
    for (; (__clz_x & GMP_LIMB_HIGHBIT) == 0; __clz_c++)		\
      __clz_x <<= 1;							\
    (count) = __clz_c;							\
  } while (0)

#define gmp_ctz(count, x) do {						\
    mp_limb_t __ctz_x = (x);						\
    unsigned __ctz_c = 0;						\
    gmp_clz (__ctz_c, __ctz_x & - __ctz_x);				\
    (count) = GMP_LIMB_BITS - 1 - __ctz_c;				\
  } while (0)

#define gmp_add_ssaaaa(sh, sl, ah, al, bh, bl) \
  do {									\
    mp_limb_t __x;							\
    __x = (al) + (bl);							\
    (sh) = (ah) + (bh) + (__x < (al));					\
    (sl) = __x;								\
  } while (0)

#define gmp_sub_ddmmss(sh, sl, ah, al, bh, bl) \
  do {									\
    mp_limb_t __x;							\
    __x = (al) - (bl);							\
    (sh) = (ah) - (bh) - ((al) < (bl));					\
    (sl) = __x;								\
  } while (0)

#define gmp_umul_ppmm(w1, w0, u, v)					\
  do {									\
    int LOCAL_GMP_LIMB_BITS = GMP_LIMB_BITS;				\
    if (sizeof(unsigned int) * CHAR_BIT >= 2 * GMP_LIMB_BITS)		\
      {									\
	unsigned int __ww = (unsigned int) (u) * (v);			\
	w0 = (mp_limb_t) __ww;						\
	w1 = (mp_limb_t) (__ww >> LOCAL_GMP_LIMB_BITS);			\
      }									\
    else if (GMP_ULONG_BITS >= 2 * GMP_LIMB_BITS)			\
      {									\
	unsigned long int __ww = (unsigned long int) (u) * (v);		\
	w0 = (mp_limb_t) __ww;						\
	w1 = (mp_limb_t) (__ww >> LOCAL_GMP_LIMB_BITS);			\
      }									\
    else {								\
      mp_limb_t __x0, __x1, __x2, __x3;					\
      unsigned __ul, __vl, __uh, __vh;					\
      mp_limb_t __u = (u), __v = (v);					\
									\
      __ul = __u & GMP_LLIMB_MASK;					\
      __uh = __u >> (GMP_LIMB_BITS / 2);				\
      __vl = __v & GMP_LLIMB_MASK;					\
      __vh = __v >> (GMP_LIMB_BITS / 2);				\
									\
      __x0 = (mp_limb_t) __ul * __vl;					\
      __x1 = (mp_limb_t) __ul * __vh;					\
      __x2 = (mp_limb_t) __uh * __vl;					\
      __x3 = (mp_limb_t) __uh * __vh;					\
									\
      __x1 += __x0 >> (GMP_LIMB_BITS / 2);/* this can't give carry */	\
      __x1 += __x2;		/* but this indeed can */		\
      if (__x1 < __x2)		/* did we get it? */			\
	__x3 += GMP_HLIMB_BIT;	/* yes, add it in the proper pos. */	\
									\
      (w1) = __x3 + (__x1 >> (GMP_LIMB_BITS / 2));			\
      (w0) = (__x1 << (GMP_LIMB_BITS / 2)) + (__x0 & GMP_LLIMB_MASK);	\
    }									\
  } while (0)

#define gmp_udiv_qrnnd_preinv(q, r, nh, nl, d, di)			\
  do {									\
    mp_limb_t _qh, _ql, _r, _mask;					\
    gmp_umul_ppmm (_qh, _ql, (nh), (di));				\
    gmp_add_ssaaaa (_qh, _ql, _qh, _ql, (nh) + 1, (nl));		\
    _r = (nl) - _qh * (d);						\
    _mask = -(mp_limb_t) (_r > _ql); /* both > and >= are OK */		\
    _qh += _mask;							\
    _r += _mask & (d);							\
    if (_r >= (d))							\
      {									\
	_r -= (d);							\
	_qh++;								\
      }									\
									\
    (r) = _r;								\
    (q) = _qh;								\
  } while (0)

#define gmp_udiv_qr_3by2(q, r1, r0, n2, n1, n0, d1, d0, dinv)		\
  do {									\
    mp_limb_t _q0, _t1, _t0, _mask;					\
    gmp_umul_ppmm ((q), _q0, (n2), (dinv));				\
    gmp_add_ssaaaa ((q), _q0, (q), _q0, (n2), (n1));			\
									\
    /* Compute the two most significant limbs of n - q'd */		\
    (r1) = (n1) - (d1) * (q);						\
    gmp_sub_ddmmss ((r1), (r0), (r1), (n0), (d1), (d0));		\
    gmp_umul_ppmm (_t1, _t0, (d0), (q));				\
    gmp_sub_ddmmss ((r1), (r0), (r1), (r0), _t1, _t0);			\
    (q)++;								\
									\
    /* Conditionally adjust q and the remainders */			\
    _mask = - (mp_limb_t) ((r1) >= _q0);				\
    (q) += _mask;							\
    gmp_add_ssaaaa ((r1), (r0), (r1), (r0), _mask & (d1), _mask & (d0)); \
    if ((r1) >= (d1))							\
      {									\
	if ((r1) > (d1) || (r0) >= (d0))				\
	  {								\
	    (q)++;							\
	    gmp_sub_ddmmss ((r1), (r0), (r1), (r0), (d1), (d0));	\
	  }								\
      }									\
  } while (0)

/* Swap macros. */
#define MP_LIMB_T_SWAP(x, y)						\
  do {									\
    mp_limb_t __mp_limb_t_swap__tmp = (x);				\
    (x) = (y);								\
    (y) = __mp_limb_t_swap__tmp;					\
  } while (0)
#define MP_SIZE_T_SWAP(x, y)						\
  do {									\
    mp_size_t __mp_size_t_swap__tmp = (x);				\
    (x) = (y);								\
    (y) = __mp_size_t_swap__tmp;					\
  } while (0)
#define MP_BITCNT_T_SWAP(x,y)			\
  do {						\
    mp_bitcnt_t __mp_bitcnt_t_swap__tmp = (x);	\
    (x) = (y);					\
    (y) = __mp_bitcnt_t_swap__tmp;		\
  } while (0)
#define MP_PTR_SWAP(x, y)						\
  do {									\
    mp_ptr __mp_ptr_swap__tmp = (x);					\
    (x) = (y);								\
    (y) = __mp_ptr_swap__tmp;						\
  } while (0)
#define MP_SRCPTR_SWAP(x, y)						\
  do {									\
    mp_srcptr __mp_srcptr_swap__tmp = (x);				\
    (x) = (y);								\
    (y) = __mp_srcptr_swap__tmp;					\
  } while (0)

#define MPN_PTR_SWAP(xp,xs, yp,ys)					\
  do {									\
    MP_PTR_SWAP (xp, yp);						\
    MP_SIZE_T_SWAP (xs, ys);						\
  } while(0)
#define MPN_SRCPTR_SWAP(xp,xs, yp,ys)					\
  do {									\
    MP_SRCPTR_SWAP (xp, yp);						\
    MP_SIZE_T_SWAP (xs, ys);						\
  } while(0)

#define MPZ_PTR_SWAP(x, y)						\
  do {									\
    mpz_ptr __mpz_ptr_swap__tmp = (x);					\
    (x) = (y);								\
    (y) = __mpz_ptr_swap__tmp;						\
  } while (0)
#define MPZ_SRCPTR_SWAP(x, y)						\
  do {									\
    mpz_srcptr __mpz_srcptr_swap__tmp = (x);				\
    (x) = (y);								\
    (y) = __mpz_srcptr_swap__tmp;					\
  } while (0)

const int mp_bits_per_limb = GMP_LIMB_BITS;


/* Memory allocation and other helper functions. */
static void
gmp_die (const char *msg)
{
  fprintf (stderr, "%s\n", msg);
  abort();
}

static void *
gmp_default_alloc (size_t size)
{
  void *p;

  assert (size > 0);

  p = malloc (size);
  if (!p)
    gmp_die("gmp_default_alloc: Virtual memory exhausted.");

  return p;
}

static void *
gmp_default_realloc (void *old, size_t unused_old_size, size_t new_size)
{
  void * p;

  p = realloc (old, new_size);

  if (!p)
    gmp_die("gmp_default_realloc: Virtual memory exhausted.");

  return p;
}

static void
gmp_default_free (void *p, size_t unused_size)
{
  free (p);
}

static void * (*gmp_allocate_func) (size_t) = gmp_default_alloc;
static void * (*gmp_reallocate_func) (void *, size_t, size_t) = gmp_default_realloc;
static void (*gmp_free_func) (void *, size_t) = gmp_default_free;

void
mp_get_memory_functions (void *(**alloc_func) (size_t),
			 void *(**realloc_func) (void *, size_t, size_t),
			 void (**free_func) (void *, size_t))
{
  if (alloc_func)
    *alloc_func = gmp_allocate_func;

  if (realloc_func)
    *realloc_func = gmp_reallocate_func;

  if (free_func)
    *free_func = gmp_free_func;
}

void
mp_set_memory_functions (void *(*alloc_func) (size_t),
			 void *(*realloc_func) (void *, size_t, size_t),
			 void (*free_func) (void *, size_t))
{
  if (!alloc_func)
    alloc_func = gmp_default_alloc;
  if (!realloc_func)
    realloc_func = gmp_default_realloc;
  if (!free_func)
    free_func = gmp_default_free;

  gmp_allocate_func = alloc_func;
  gmp_reallocate_func = realloc_func;
  gmp_free_func = free_func;
}

#define gmp_xalloc(size) ((*gmp_allocate_func)((size)))
#define gmp_free(p) ((*gmp_free_func) ((p), 0))

static mp_ptr
gmp_xalloc_limbs (mp_size_t size)
{
  return (mp_ptr) gmp_xalloc (size * sizeof (mp_limb_t));
}

static mp_ptr
gmp_xrealloc_limbs (mp_ptr old, mp_size_t size)
{
  assert (size > 0);
  return (mp_ptr) (*gmp_reallocate_func) (old, 0, size * sizeof (mp_limb_t));
}


/* MPN interface */

void
mpn_copyi (mp_ptr d, mp_srcptr s, mp_size_t n)
{
  mp_size_t i;
  for (i = 0; i < n; i++)
    d[i] = s[i];
}

void
mpn_copyd (mp_ptr d, mp_srcptr s, mp_size_t n)
{
  while (--n >= 0)
    d[n] = s[n];
}

int
mpn_cmp (mp_srcptr ap, mp_srcptr bp, mp_size_t n)
{
  while (--n >= 0)
    {
      if (ap[n] != bp[n])
	return ap[n] > bp[n] ? 1 : -1;
    }
  return 0;
}

static int
mpn_cmp4 (mp_srcptr ap, mp_size_t an, mp_srcptr bp, mp_size_t bn)
{
  if (an != bn)
    return an < bn ? -1 : 1;
  else
    return mpn_cmp (ap, bp, an);
}

static mp_size_t
mpn_normalized_size (mp_srcptr xp, mp_size_t n)
{
  while (n > 0 && xp[n-1] == 0)
    --n;
  return n;
}

int
mpn_zero_p(mp_srcptr rp, mp_size_t n)
{
  return mpn_normalized_size (rp, n) == 0;
}

void
mpn_zero (mp_ptr rp, mp_size_t n)
{
  while (--n >= 0)
    rp[n] = 0;
}

mp_limb_t
mpn_add_1 (mp_ptr rp, mp_srcptr ap, mp_size_t n, mp_limb_t b)
{
  mp_size_t i;

  assert (n > 0);
  i = 0;
  do
    {
      mp_limb_t r = ap[i] + b;
      /* Carry out */
      b = (r < b);
      rp[i] = r;
    }
  while (++i < n);

  return b;
}

mp_limb_t
mpn_add_n (mp_ptr rp, mp_srcptr ap, mp_srcptr bp, mp_size_t n)
{
  mp_size_t i;
  mp_limb_t cy;

  for (i = 0, cy = 0; i < n; i++)
    {
      mp_limb_t a, b, r;
      a = ap[i]; b = bp[i];
      r = a + cy;
      cy = (r < cy);
      r += b;
      cy += (r < b);
      rp[i] = r;
    }
  return cy;
}

mp_limb_t
mpn_add (mp_ptr rp, mp_srcptr ap, mp_size_t an, mp_srcptr bp, mp_size_t bn)
{
  mp_limb_t cy;

  assert (an >= bn);

  cy = mpn_add_n (rp, ap, bp, bn);
  if (an > bn)
    cy = mpn_add_1 (rp + bn, ap + bn, an - bn, cy);
  return cy;
}

mp_limb_t
mpn_sub_1 (mp_ptr rp, mp_srcptr ap, mp_size_t n, mp_limb_t b)
{
  mp_size_t i;

  assert (n > 0);

  i = 0;
  do
    {
      mp_limb_t a = ap[i];
      /* Carry out */
      mp_limb_t cy = a < b;
      rp[i] = a - b;
      b = cy;
    }
  while (++i < n);

  return b;
}

mp_limb_t
mpn_sub_n (mp_ptr rp, mp_srcptr ap, mp_srcptr bp, mp_size_t n)
{
  mp_size_t i;
  mp_limb_t cy;

  for (i = 0, cy = 0; i < n; i++)
    {
      mp_limb_t a, b;
      a = ap[i]; b = bp[i];
      b += cy;
      cy = (b < cy);
      cy += (a < b);
      rp[i] = a - b;
    }
  return cy;
}

mp_limb_t
mpn_sub (mp_ptr rp, mp_srcptr ap, mp_size_t an, mp_srcptr bp, mp_size_t bn)
{
  mp_limb_t cy;

  assert (an >= bn);

  cy = mpn_sub_n (rp, ap, bp, bn);
  if (an > bn)
    cy = mpn_sub_1 (rp + bn, ap + bn, an - bn, cy);
  return cy;
}

mp_limb_t
mpn_mul_1 (mp_ptr rp, mp_srcptr up, mp_size_t n, mp_limb_t vl)
{
  mp_limb_t ul, cl, hpl, lpl;

  assert (n >= 1);

  cl = 0;
  do
    {
      ul = *up++;
      gmp_umul_ppmm (hpl, lpl, ul, vl);

      lpl += cl;
      cl = (lpl < cl) + hpl;

      *rp++ = lpl;
    }
  while (--n != 0);

  return cl;
}

mp_limb_t
mpn_addmul_1 (mp_ptr rp, mp_srcptr up, mp_size_t n, mp_limb_t vl)
{
  mp_limb_t ul, cl, hpl, lpl, rl;

  assert (n >= 1);

  cl = 0;
  do
    {
      ul = *up++;
      gmp_umul_ppmm (hpl, lpl, ul, vl);

      lpl += cl;
      cl = (lpl < cl) + hpl;

      rl = *rp;
      lpl = rl + lpl;
      cl += lpl < rl;
      *rp++ = lpl;
    }
  while (--n != 0);

  return cl;
}

mp_limb_t
mpn_submul_1 (mp_ptr rp, mp_srcptr up, mp_size_t n, mp_limb_t vl)
{
  mp_limb_t ul, cl, hpl, lpl, rl;

  assert (n >= 1);

  cl = 0;
  do
    {