From: gla Date: Thu, 23 Aug 2001 18:23:46 +0000 (+0000) Subject: [project @ 2001-08-23 18:23:46 by gla] X-Git-Tag: Approximately_9120_patches~1091 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=068d72ee03f8079097a4a1dbd56b9668832d659c;p=ghc-hetmet.git [project @ 2001-08-23 18:23:46 by gla] Rephrased a few paragraphs. Added a paragraph on the interface to retainerSet. Added 'To do' paragraphs, which may be useful for maintenance. --- diff --git a/ghc/docs/storage-mgt/cacheprof_p.eps b/ghc/docs/storage-mgt/cacheprof_p.eps index 8050937..94d3a5d 100644 --- a/ghc/docs/storage-mgt/cacheprof_p.eps +++ b/ghc/docs/storage-mgt/cacheprof_p.eps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 EPSF-1.2 -%%Title: cacheprof_p +RTS -hR1.0 +%%Title: cacheprof_p -ghc-timing +RTS -H10m -K10m -p -hR -i1.0 -sstderr %%Creator: Ghostscript ps2epsi from cacheprof_p.ps -%%CreationDate: Aug 6 11:05 +%%CreationDate: Aug 23 18:51 %%For:t-spark t-spark %%Pages: 1 %%DocumentFonts: Helvetica @@ -12,645 +12,645 @@ % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 -% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffff080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000042000000010800000004400000002200000000400000000200000000000100001080 -% 8000000000000000000000000800000000400000007300000001cc0000000c600000006300000000700000000380000000000103c01080 -% 800000000000000000000000080000000040000000510000000144000000092000000049000000005800000002c0000000000106601080 -% 800000000000000000000001fc0000000fe000000049000000012400000009200000004900000001fc0000000fe0000000000104201080 -% 80000000000000000000000000000000000000000046000000011800000007c00000003e00000000400000000200000000000104201080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000102401080 -% 800000000000000000000003000000001800000000c000000003000000001800000000c000000003000000001800000000000100001080 -% 800000000000002c00000000f000000005800000003c00000000b000000007800000002c00000000f00000000580000000000107201080 -% 800000000000006f000000018c0000000de00000006300000001bc0000000c600000006f000000018c0000000de0000000000105a01080 -% 8000000000000045000000010400000008a0000000410000000114000000082000000045000000010400000008a0000000000105a01080 -% 8000000000000045000000010c00000008a0000000430000000114000000086000000045000000010c00000008a0000000000104a01080 -% 800000000000003900000000f800000007200000003e00000000e400000007c00000003900000000f80000000720000000000107e01080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104001080 -% 800000000000003c00000000f000000007800000003c00000000f000000007800000003c00000000f00000000780000000000103c01080 -% 8000000000000063000000018c0000000c6000000063000000018c0000000c6000000063000000018c0000000c60000000000106601080 -% 80000000000000410000000104000000082000000041000000010400000008200000004100000001040000000820000000000104201080 -% 8000000000000043000000010c000000086000000043000000010c000000086000000043000000010c0000000860000000000104201080 -% 800000000000003e00000000f800000007c00000003e00000000f800000007c00000003e00000000f800000007c0000000000106601080 -% 800007800000003c00000000f000000007800000003c00000000f000000007800000003c00000000f00000000780000000000102401080 -% 80000c6000000063000000018c0000000c6000000063000000018c0000000c6000000063000000018c0000000c60000000000100001080 -% 80000820000000410000000104000000082000000041000000010400000008200000004100000001040000000820000000000107fc1080 -% 8000086000000043000000010c000000086000000043000000010c000000086000000043000000010c0000000860000000000100201080 -% 800007c00000003e00000000f800000007c00000003e00000000f800000007c00000003e00000000f800000007c0002002000100201080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002002000100201080 -% 80000fe00000007f00000001fc0000000fe00000007f00000001fc0000000fe00000007f00000001fc0000000fe0003c8ff7c107e01080 -% 80000300000000180000000060000000030000000018000000006000000003000000001800000000600000000300002253960101801080 -% 80000300000000180000000060000000030000000018000000006000000003000000001800000000600000000300002253f38103c01080 -% 83c006800000003400000000d000000006800000003400000000d000000006800000003400000000d00000000680003273944104a01080 -% 86300800000000400000000100000000080000000040000000010000000008000000004000000001000000000800003c23f78104a01080 -% 84100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000104e01080 -% 843008000000004000000002000000001000000000400000000200000000100000000040000000020000000010000000c0000102c01080 -% 83e00800000000400000000200000000100000000040000000020000000010000000004000000002000000001000000000000100001080 -% 80000800000000400000000200000000100000000040000000020000000010000000004000000002000000001000000000000100001080 -% 8000080000000040000000020000000010000000004000000002000000001000000000400000000200000000100000000000013fe01080 -% 8400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe106601080 -% 83c00f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104201080 -% 86300fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 84100fb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103c01080 -% 84300fc8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83e00f76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000fd9800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000107e01080 -% 80000ffd600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100201080 -% 80000fd6180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100201080 -% 80000f6fd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103c01080 -% 80000ff4c18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 80000bb3716000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104201080 -% 80000ff9301800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104201080 -% 80000fd4dd5400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 80000ffc4a0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103c01080 -% 80000ffe3751c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100201080 -% 80000de711c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000107fc1080 -% 80000dd515f55c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100241080 -% 80000df2887003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000dfb457911c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000df9a23e00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000dfd615d555c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000cfcb08280020000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000df5d85551118000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000cfa7822b0006000000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000ff674155d555800000000000000000000000000000000000000000000000000000000000000000000000000000000000110001080 -% 80000efe2a082c00060000000000000000000000000000000000000000000000000000000000000000000000000000000000013fe01080 -% 80000f7d16055f111180000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 80000e7b1b0227800060000000000000000000000000000000000000000000000000000000000000000000000000000000000104201080 -% 80000f75cd8357555558000000000000000000000000000000000000000000000000000000000000000000000000000000000106601080 -% 80000e7f8e8101a00006000000000000000000000000000000000000000000000000000000000000000000000000000000000103c01080 -% 80000f755540d5d95151000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000e7fc7a0606c0000c00000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f7f436035775555700000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000e3fe1f0100b00000c0000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f3f71580d55d111130000000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80000e3fb0bc0622a00000c000000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80000f7d54d403555555557000000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80000f1ff06e0100a800000c00000000000000000000000000000000000000000000000000000000000000000000000000000107e01080 -% 80000f1fd95500d57711511300000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80001f1ff83b00623b00000080000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80002d5fd47580555dd5555560000000000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80004d1ffc1ac02006c0000018000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80008d1f571540155771111116000000000000000000000000000000000000000000000000000000000000000000000000000107fc1080 -% 80008f0ffa0ba00a23a8000001800000000000000000000000000000000000000000000000000000000000000000000000000100441080 -% 80004f5f560d500555d5555555400000000000000000000000000000000000000000000000000000000000000000000000000100441080 -% 80002f0ffe06f002006a000000300000000000000000000000000000000000000000000000000000000000000000000000000100441080 -% 80001f5f751558035575515151580000000000000000000000000000000000000000000000000000000000000000000000000100441080 -% 80000f0ffb07b801203a800000060000000000000000000000000000000000000000000000000000000000000000000000000103cc1080 -% 80000f5f75435400d55d555555550000000000000000000000000000000000000000000000000000000000000000000000000107b81080 -% 80000f0fff02ec004006a0000000c000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f1f759156005557511111112000000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f0ffb81ba002223a80000001800000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f5fd58555001555555555555400000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f07ffc0ae800800aa0000000300000000000000000000000000000000000000000000000000000000000000000000000107fc1080 -% 80000f17f551d5800d55551151115180000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f07fbc07bc004222a8000000060000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f57dd4055400355555555555550000000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f87ffe06ae001000aa00000000c000000000000000000000000000000000000000000000000000000000000000000000101001080 -% 80000f97fd7135600155555111111112000000000000000000000000000000000000000000000000000000000000000000000103381080 -% 80000f87fba03bb000a222a8000000018000000000000000000000000000000000000000000000000000000000000000000001046c1080 -% 80000fd7dd6475580055555555555555400000000000000000000000000000000000000000000000000000000000000000000104441080 -% 80000f87fff01ea8002000aa00000000300000000000000000000000000000000000000000000000000000000000000000000104441080 -% 80000fd7f551155400355555515151515c0000000000000000000000000000000000000000000000000000000000000000000104cc1080 -% 80000f87fff00bbc0010202a80000000020000000000000000000000000000000000000000000000000000000000000000000107981080 -% 80000fd7d5504d56000d555555555555558000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f83fff80aea0004001aa0000000004000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f93f55915550005555d51111111113000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f83ffb807bb80022226a8000000000800000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000fd7f75c05558001555755555555555600000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f83fffc02eec0008001aa000000000100000000000000000000000000000000000000000000000000000000000000000100801080 -% 80000f93f75513554000d555d51151115111c0000000000000000000000000000000000000000000000000000000000000000100801080 -% 80000f83ffbc01bba00060226a800000000020000000000000000000000000000000000000000000000000000000000000000100801080 -% 80000fd7f55641556000355575555555555558000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000e83fffe01eaf00010001aa00000000004000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f91f75711d5580015555d511111111113000000000000000000000000000000000000000000000000000000000000000107fc1080 -% 84200e81ffba00bbb8000a2226a80000000000800000000000000000000000000000000000000000000000000000000000000100201080 -% 87300fd5f55544d55400055557555555555555600000000000000000000000000000000000000000000000000000000000000100201080 -% 85100e81ffff006eec00020001aa0000000000100000000000000000000000000000000000000000000000000000000000000100201080 -% 84901fd1f5d5115556000355555551515151515c0000000000000000000000000000000000000000000000000000000000000107e01080 -% 84602e81fffb003bba00012020aa8000000000020000000000000000000000000000000000000000000000000000000000000100001080 -% 80004fd5fdd5c075550000d555555555555555558000000000000000000000000000000000000000000000000000000000000107fc1080 -% 80008e81ffff802aea800040002aa000000000004000000000000000000000000000000000000000000000000000000000000100441080 -% 84008f91ffd591155580005555555111111111113000000000000000000000000000000000000000000000000000000000000100441080 -% 83c04f81ffbb801bbb800022222aa800000000000800000000000000000000000000000000000000000000000000000000000100441080 -% 86302fd5fdd584155540001555555555555555555400000000000000000000000000000000000000000000000000000000000100441080 -% 84101f81ffff801eaec000100006ac00000000000300000000000000000000000000000000000000000000000000000000000103cc1080 -% 84300f91fdd551155560000d55575711511151115180000000000000000000000000000000000000000000000000000000000107b81080 -% 83e00f81ffbbc00bbba0000a2023ab00000000000040000000000000000000000000000000000000000000000000000000000100001080 -% 80000fd5fdd5404d555000055555d5d5555555555560000000000000000000000000000000000000000000000000000000000100001080 -% 80000f81ffffc00aeaf000020000aac0000000000018000000000000000000000000000000000000000000000000000000000100101080 -% 80000f91ffd5511d5550000355555571111111111114000000000000000000000000000000000000000000000000000000000100101080 -% 80000f81ffbbc00bbbb8000122222aa0000000000002000000000000000000000000000000000000000000000000000000000107f81080 -% 80000fd5fdd544055558000155555555555555555555800000000000000000000000000000000000000000000000000000000100001080 -% 80000f81ffffc006eeac000080001aa8000000000000400000000000000000000000000000000000000000000000000000000100001080 -% 80000fd3fdd551155554000055555d55515151515151600000000000000000000000000000000000000000000000000000000100001080 -% 80000f83fffbc007bbba0000602026aa000000000000100000000000000000000000000000000000000000000000000000000100001080 -% 80000fd7fdd5404555560000355557555555555555555c0000000000000000000000000000000000000000000000000000000104001080 -% 80000f83ffffe002eaea0000200002ab000000000000020000000000000000000000000000000000000000000000000000000100001080 -% 80000f93ffd571135555000015555555911111111111110000000000000000000000000000000000000000000000000000000100001080 -% 80000f83ffbba003bbbb0000122222aac00000000000008000000000000000000000000000000000000000000000000000000103f81080 -% 80000fd7fdd56407555580000d555555755555555555556000000000000000000000000000000000000000000000000000000106181080 -% 80000f83ffffe002aeee80000400006ab00000000000001000000000000000000000000000000000000000000000000000000104081080 -% 80000f93f5d571115555800005555575591151115111511800000000000000000000000000000000000000000000000000000106181080 -% 80000f83ffbbe001bbbbc0000222203aa80000000000000600000000000000000000000000000000000000000000000000000103f01080 -% 80000fd7f5d56041555540000355555d555555555555555500000000000000000000000000000000000000000000000000000100001080 -% 80000f83ffffe001eaeae0000100000aaa0000000000000080000000000000000000000000000000000000000000000000000100001080 -% 80000f93f7d571115555600000d55555551111111111111140000000000000000000000000000000000000000000000000000100001080 -% 80000fc3fffba000bbbbb00000a22222aa8000000000000030000000000000000000000000000000000000000000000000000100001080 -% 80000fd7f5556404d55550000055555555d555555555555558000000000000000000000000000000000000000000000000000100001080 -% 80000fc7fffff000eeaef00000400001aac000000000000004000000000000000000000000000000000000000000000000000100001080 -% 80000fd7f5555111d555580000355555d57151515151515152000000000000000000000000000000000000000000000000000100001080 -% 80000fc7fffbf000bbbbb800001020206ab000000000000001800000000000000000000000000000000000000000000000000100001080 -% 80000fd7f5555040d555540000155555755d55555555555555400000000000000000000000000000000000000000000000000100001080 -% 80000fc7fffff0006aeaec00000800002aac00000000000000200000000000000000000000000000000000000000000000000100001080 -% 80000fd7f755511155555400000d5555555511111111111111180000000000000000000000000000000000000000000000000100001080 -% 80000fc7fffbb0007bbbba00000622222aaa00000000000000040000000000000000000000000000000000000000000000000100001080 -% 80000fd7f55554045555560000055555555555555555555555560000000000000000000000000000000000000000000000000100001080 -% 80000fc7fffff0006eeeaf000002000006aa80000000000000010000000000000000000000000000000000000000000000000100001080 -% 80000fd7f5555111355555000001555557555111511151115111c000000000000000000000000000000000000000000000000100001080 -% 80001fc7fffbf0003bbbbb800001202221aaa0000000000000002000000000000000000000000000000000000000000000000100001080 -% 80002fd7f5555040755555800000d55555d575555555555555555000000000000000000000000000000000000000000000000100001080 -% 80004fc7fffff8002aeaea800000800000aab0000000000000000800000000000000000000000000000000000000000000000100001080 -% 80008fd7f75559113555554000005555555559111111111111111600000000000000000000000000000000000000000000000100001080 -% 80008fc7fffbb8001bbbbbc000002222222aac000000000000000100000000000000000000000000000000000000000000000100001080 -% 80004fdff5555c045555556000003555555557555555555555555580000000000000000000000000000000000000000000000100001080 -% 80002fcffffff8001eaeeea000001000001aab000000000000000060000000000000000000000000000000000000000000000100001080 -% 80001fdff5d559111555556000001555555d55515151515151515150000000000000000000000000000000000000000000000100001080 -% 80000fcffffbf8001bbbbbb0000008202026aa800000000000000008000000000000000000000000000000000000000000000100001080 -% 80000fdff5d558405555555000000d55555755555555555555555556000000000000000000000000000000000000000000000100001080 -% 80000fcffffff8001aeaeaf0000004000002aaa00000000000000001000000000000000000000000000000000000000000000100001080 -% 80000fdff7d559111555555800000555555555511111111111111111800000000000000000000000000000000000000000000100001080 -% 80000fcfffbbb8000bbbbbb8000002222222aaa80000000000000000600000000000000000000000000000000000000000000100001080 -% 80000fdff5d55c040d55555400000355555555555555555555555555500000000000000000000000000000000000000000000100001080 -% 80000fdffffff8000eeeaeec0000010000002aaa00000000000000000c0000000000000000000000000000000000000000000100001080 -% 80000fdff5d559111d55555400000155555575575111511151115111520000000000000000000000000000000000000000000100001080 -% 80000fdfffbbf8000bbbbbba000000a220223aab0000000000000000010000000000000000000000000000000000000000000100001080 -% 80000fdff5d558404d555556000000d555555d55d55555555555555555c000000000000000000000000000000000000000000100001080 -% 80000fdffffff8000aeaeaea00000040000006aac000000000000000002000000000000000000000000000000000000000000100001080 -% 80000fdff7d559111555555500000055555557557111111111111111111000000000000000000000000000000000000000000100001080 -% 80000fdfffbbb80007bbbbbb00000022222222aab000000000000000000c00000000000000000000000000000000000000000100001080 -% 80000fdfd5d55c044555555580000035555555555d55555555555555555600000000000000000000000000000000000000000100001080 -% 80000ffffffff80006aeeeae80000010000000aaa800000000000000000100000000000000000000000000000000000000000100001080 -% 80000ffff5d5591115555555800000155555555555515151515151515151c0000000000000000000000000000000000000000100001080 -% 80000ffffffbf80007bbbbbbc00000082020202aaa00000000000000000020000000000000000000000000000000000000000100001080 -% 80000fffd5d55840455555554000000d555555755555555555555555555550000000000000000000000000000000000000000100001080 -% 80000ffffffff80006eaeaeac00000040000001aaa8000000000000000000c000000000000000000000000000000000000000100001080 -% 80000ffff7d5591113555555600000055555555d5551111111111111111112000000000000000000000000000000000000000100001080 -% 80000fffffbbb80003bbbbbba000000222222226aaa0000000000000000001000000000000000000000000000000000000000100001080 -% 80000fffd5555c040755555550000003555555555555555555555555555555c00000000000000000000000000000000000000100001080 -% 80000ffffffff80002eeaeeeb000000100000002aab0000000000000000000200000000000000000000000000000000000000100001080 -% 80000ffff55555111355555550000001555555555559511151115111511151100000000000000000000000000000000000000100001080 -% 80001fffffbbfc0003bbbbbbb8000000a0222022aaac0000000000000000000c0000000000000000000000000000000000000100001080 -% 80002fffd55554404355555558000000d55555555557555555555555555555560000000000000000000000000000000000000100001080 -% 80004ffffffffc0002eaeaeae8000000400000006aab000000000000000000010000000000000000000000000000000000000100001080 -% 80008ffff7555511115555555400000055555555755591111111111111111111c000000000000000000000000000000000000100001080 -% 80008fffffbbbc0001bbbbbbbc000000222222223aaac00000000000000000002000000000000000000000000000000000000100001080 -% 80004fffd55554044555555556000000155555555d55755555555555555555555800000000000000000000000000000000000100001080 -% 80002ffffffffc0001aeeeaeee0000001000000006aab00000000000000000000400000000000000000000000000000000000100001080 -% 81001ffff555551111d55555550000000d5555555755595151515151515151515200000000000000000000000000000000000100001080 -% 81c00efffffbfc0000bbbbbbbb0000000420202021aaac0000000000000000000180000000000000000000000000000000000100001080 -% 81600fffd555544040d55555558000000555555555d5575555555555555555555540000000000000000000000000000000000100001080 -% 87f00efffffffe0000eaeaeaea80000002000000006aab0000000000000000000020000000000000000000000000000000000100001080 -% 81000ffff7d5571111d5555555400000015555555555559111111111111111111118000000000000000000000000000000000100001080 -% 80000effffbbba00007bbbbbbbc0000001222222222aaac000000000000000000004000000000000000000000000000000000100001080 -% 8000ff7fd5d55604045555555560000000d555555555557555555555555555555557000000000000000000000000000000000100001080 -% 84000ffffffffe00006eaeeeaee0000000800000000aaab000000000000000000000800000000000000000000000000000000100001080 -% 83c00f7ff5d557111155555555500000005555555555555951115111511151115111400000000000000000000000000000000100001080 -% 86300fffffbbfa00003bbbbbbbb00000002220222022aaac00000000000000000000300000000000000000000000000000000100001080 -% 84100f7fd5d555404075555555500000003555555555555755555555555555555555580000000000000000000000000000000100001080 -% 84300fffffffff00002aeaeaeae80000001000000000aaab00000000000000000000040000000000000000000000000000000100001080 -% 83e00ffff7d555111135555555580000000d55555555555591111111111111111111130000000000000000000000000000000100001080 -% 80000fffffbbbb00001bbbbbbbbc0000000a222222222aaac0000000000000000000008000000000000000000000000000000100001080 -% 80000fffd5d555044415555555540000000555555555555575555555555555555555556000000000000000000000000000000100001080 -% 80000fffffffff00001eeeaeeeae00000002000000000aaaa0000000000000000000001000000000000000000000000000000100001080 -% 80000ffff5d5551111155555555600000003555555555d5551515151515151515151515800000000000000000000000000000100001080 -% 80000ffffffbfb80000bbbbbbbbb000000012020202026aaa8000000000000000000000600000000000000000000000000000100001080 -% 80000fffd5d555c0404d5555555500000000d5555555575555555555555555555555555500000000000000000000000000000100001080 -% 80000fffffffff80000aeaeaeaea800000008000000001aaaa000000000000000000000080000000000000000000000000000100001080 -% 80000ffff7555591111d55555555800000005555555555d555111111111111111111111160000000000000000000000000000100001080 -% 80000ffffffbbb800007bbbbbbbbc000000022222222226aaa800000000000000000000010000000000000000000000000000100001080 -% 80000fffd55555840405555555554000000035555555557555555555555555555555555558000000000000000000000000000104201080 -% 80000fffffffff800006aeeeaeeea000000010000000001aaaa00000000000000000000006000000000000000000000000000107381080 -% 80000dfff55555911115555555556000000015555555555d55515111511151115111511151000000000000000000000000000105881080 -% 80000ffffffbfbc00003bbbbbbbbb0000000082220222026aaa80000000000000000000000c00000000000000000000000000104881080 -% 80001dffd55555404043555555555000000005555555555755555555555555555555555555600000000000000000000000000104c81080 -% 80002dffffffffc00002eaeaeaeae8000000040000000001aaaa0000000000000000000000100000000000000000000000000104781080 -% 80004dfff755555111135555555558000000035555555555555511111111111111111111111c0000000000000000000000000100001080 -% 80008ffffffbbbc00001bbbbbbbbbc000000012222222222aaaa8000000000000000000000020000000000000000000000000107f01080 -% 80008dffd55555444405555555555400000001555555555555555555555555555555555555550000000000000000000000000104581080 -% 80004dffffffffe00001eeaeeeaeee0000000080000000002aaaa000000000000000000000008000000000000000000000000104481080 -% 80002dfff57555711111d55555555600000000555555555575555151515151515151515151514000000000000000000000000104481080 -% 80001ffffffbfbe00000bbbbbbbbbb0000000020202020203aaab000000000000000000000003000000000000000000000000103901080 -% 80000dffd57555504040d5555555558000000015555555555d555d55555555555555555555555800000000000000000000000100001080 -% 80000ffffffffff000006aeaeaeaea80000000100000000006aaac00000000000000000000000400000000000000000000000100001080 -% 80000ffff775555111115555555555400000000d555555555555571111111111111111111111120000000000000000000000011c001080 -% 80000ffffffbbbb000003bbbbbbbbbc0000000062222222222aaaa00000000000000000000000100000000000000000000000108001080 -% 80000fffd555555c0404355555555560000000035555555555555555555555555555555555555580000000000000000000000102001080 -% 80000ffffffffff800002eeeaeeeaef0000000020000000001aaaa80000000000000000000000040000000000000000000000106781080 -% 80000f7ff57d55591111155555555550000000015555555555d55551511151115111511151115130000000000000000000000104281080 -% 80000ffffffbfbbc00001bbbbbbbbbb800000000a0222022206aaac0000000000000000000000008000000000000000000000104281080 -% 80000f7ff55d555440404d5555555554000000005555555555555575555555555555555555555554000000000000000000000106681080 -% 80000ffffffffffc00000aeaeaeaeaec0000000020000000002aaab0000000000000000000000002000000000000000000000103c81080 -% 80000f7ff77d555511111d5555555556000000003555555555555559111111111111111111111111000000000000000000000100001080 -% 80000fffffffbbba000007bbbbbbbbba0000000012222222223aaaac000000000000000000000000800000000000000000000102001080 -% 80000f7ff55555564404455555555555000000000d555555555d5555555555555555555555555555400000000000000000000106781080 -% 80000ffffffffffe000006aeeeaeeeae80000000040000000006aaaa000000000000000000000000200000000000000000000104281080 -% 80000f7ff57555551111135555555555800000000555555555555555515151515151515151515151580000000000000000000104281080 -% 80000ffffffffbfb000003bbbbbbbbbbc0000000022020202022aaaa800000000000000000000000040000000000000000000106681080 -% 80000f5ff55755554040415555555555400000000155555555555555d55555555555555555555555560000000000000000000103c81080 -% 80000edfffffffff000001eaeaeaeaeae0000000008000000001aaaac00000000000000000000000010000000000000000000100001080 -% 80000fdff7775555911111555555555550000000005555555555d555711111111111111111111111118000000000000000000102101080 -% 80000edfffffbbbb800000bbbbbbbbbbb00000000062222222226aaab00000000000000000000000004000000000000000000107181080 -% 80000fdffd555555840404d555555555580000000035555555555555555555555555555555555555556000000000000000000104081080 -% 80000edfffffffffc000006eaeeeaeeeac0000000010000000002aaaa80000000000000000000000001800000000000000000104481080 -% 80000fdffd775555511111555555555554000000000d555555555555551151115111511151115111511400000000000000000104c81080 -% 80000fbffffffbbbc000007bbbbbbbbbba000000000a202220222aaaaa0000000000000000000000000200000000000000000103b01080 -% 80001ffffd5555556040407555555555560000000005555555555d55575555555555555555555555555500000000000000000100001080 -% 80002fefffffffffe000002aeaeaeaeaeb00000000020000000006aaab000000000000000000000000008000000000000000011c001080 -% 80004fffff77d5557111113555555555558000000001555555555755559111111111111111111111111140000000000000000108001080 -% 80008fafffffbbbba000001bbbbbbbbbbb80000000012222222222aaaac000000000000000000000000020000000000000000100001080 -% 80008ffffd55d5555404441555555555554000000000d55555555555555555555555555555555555555558000000000000000103801080 -% 80004faffffffffff000000eeeaeeeaeeec0000000004000000000aaaaa000000000000000000000000004000000000000000106f01080 -% 80002ffffd7555555111111d55555555556000000000355555555555555151515151515151515151515152000000000000000104481080 -% 80001faffffffbfbf000000bbbbbbbbbbbb00000000020202020202aaaa800000000000000000000000001800000000000000104481080 -% 80000ffffd5555555840404555555555555000000000155555555555555555555555555555555555555555400000000000000104c81080 -% 80000fe7fffffffff8000006eaeaeaeaeae80000000008000000001aaaaa00000000000000000000000000200000000000000103b01080 -% 80000ff7ff775555591111155555555555580000000005555555555d555511111111111111111111111111180000000000000100001080 -% 80000fa7fffffbbbb8000003bbbbbbbbbbbc00000000062222222226aaaa80000000000000000000000000040000000000000103f81080 -% 80000ff7ff5575555404040755555555555600000000035555555557555555555555555555555555555555560000000000000106181080 -% 80000fe7fffffffffc000002aeeeaeeeaeee00000000010000000001aaaaa0000000000000000000000000018000000000000104081080 -% 80000ff7ff777555551111115555555555550000000000d555555555d55551115111511151115111511151114000000000000106181080 -% 80000fa7fffffbbbfc000001bbbbbbbbbbbb0000000000a2202220226aaaa8000000000000000000000000002000000000000103f01080 -% 80000ff7ff5575555640404155555555555580000000005555555555755555555555555555555555555555555800000000000100001080 -% 80000fe3fffffffffe000000eaeaeaeaeaeac00000000020000000002aaaaa000000000000000000000000000400000000000100001080 -% 80000ff3ff77755557111111d5555555555540000000001555555555555555111111111111111111111111111200000000000103f81080 -% 80000fa3fffffbbbba000000bbbbbbbbbbbba00000000012222222222aaaaa800000000000000000000000000180000000000106181080 -% 80000ff7ff5555555504440455555555555560000000000d55555555555555555555555555555555555555555540000000000104081080 -% 80000fa3ffffffffff0000006eaeeeaeeeaef000000000040000000002aaaaa00000000000000000000000000020000000000106181080 -% 80000ff3fff57d555511111155555555555558000000000555555555555555715151515151515151515151515158000000000103f01080 -% 80000fa3fffffbfbfb0000003bbbbbbbbbbbb800000000022020202020aaaab00000000000000000000000000004000000000100001080 -% 80000ff7ffd55d5555c04040755555555555540000000001555555555555555d5555555555555555555555555556000000000100001080 -% 83c00fe3ffffffffff8000001aeaeaeaeaeaec000000000080000000006aaaac0000000000000000000000000001000000000100001080 -% 86f00ff1fff77d5555911111155555555555560000000000d5555555557555571111111111111111111111111111c00000000100001080 -% 84500fa1fffffbbbbb8000001bbbbbbbbbbbba000000000062222222223aaaab0000000000000000000000000000200000000100001080 -% 84500ff5ffd55555554404040d555555555555000000000035555555555d5555d555555555555555555555555555500000000107fc1080 -% 83a00fe1ffffffffffc000000eeeaeeeaeeeae8000000000100000000006aaaac0000000000000000000000000000c0000000106601080 -% 80000ff1fff77555555111111d555555555555800000000015555555555755557111511151115111511151115111520000000104201080 -% 8400ffa1ffffffbbfba0000007bbbbbbbbbbbbc000000000082220222023aaaab000000000000000000000000000010000000106601080 -% 80002ff5ffd555555560404045555555555555400000000005555555555555555d5555555555555555555555555555c000000103c01080 -% 83c04fe1ffffffffffe0000006eaeaeaeaeaeae000000000020000000000aaaaac00000000000000000000000000002000000100001080 -% 86308ff1fff777555571111113555555555555500000000003555555555555555711111111111111111111111111111000000100201080 -% 84108ff0ffffffbbbbb0000003bbbbbbbbbbbbb0000000000122222222222aaaab00000000000000000000000000000800000121e01080 -% 84304fd5fff5555555544404455555555555555800000000015555555555555555d555555555555555555555555555540000011f001080 -% 83e02fe87ffffffffff8000001aeeeaeeeaeeea8000000000080000000000aaaaa80000000000000000000000000000200000107001080 -% 80001ff57ff575555559111111d55555555555580000000000555555555555555551515151515151515151515151515200000101e01080 -% 80000fdc3ffffffbfbfc000000bbbbbbbbbbbbbc0000000000602020202022aaaaa0000000000000000000000000000100000100201080 -% 80000fcf7ffd55d55554404040555555555555540000000000355555555555555555555555555555555555555555555580000100201080 -% 80000fca1ffffffffffe0000006aeaeaeaeaeaea0000000000200000000000aaaaa8000000000000000000000000000040000107f81080 -% 80000ff51fff77555555111111355555555555560000000000155555555555d55555111111111111111111111111111140000104201080 -% 80000fe38ffffffbbbbb0000003bbbbbbbbbbbbb00000000001222222222226aaaaa000000000000000000000000000020000101801080 -% 80000fe7dfff557555558404041555555555555500000000000d5555555555755555555555555555555555555555555550000103c01080 -% 80000fe1c7ffffffffff8000001eaeeeaeeeaeee80000000000400000000001aaaab000000000000000000000000000008000104a01080 -% 80000ff1f7ff757555555111111d55555555555580000000000555555555555d5555d11151115111511151115111511158000104a01080 -% 80000ff0a3fffffbfbbbc000000bbbbbbbbbbbbb800000000002202220222026aaaac00000000000000000000000000004000104e01080 -% 80000ff057ffd55d5555604040455555555555554000000000035555555555575555755555555555555555555555555556000102c01080 -% 80000ff029ffffffffffe0000006eaeaeaeaeaeac00000000001000000000001aaaab00000000000000000000000000001000100001080 -% 80000ff139fff775555551111113555555555555600000000001555555555555d555591111111111111111111111111111000100001080 -% 80000ff01dffffffbbbbb0000003bbbbbbbbbbbba00000000000a22222222222aaaaac0000000000000000000000000000800106e01080 -% 80000ffc4ffff55755555c0444055555555555555000000000005555555555555555575555555555555555555555555555400104a01080 -% 80000ff80efffffffffffc000001eeaeeeaeeeaef000000000004000000000002aaaaa0000000000000000000000000000200105a01080 -% 80000ff9157ff575555555111111d555555555555000000000003555555555555555555151515151515151515151515151600107201080 -% 80000ff807fffffffbfbfa000000bbbbbbbbbbbbb800000000002020202020202aaaaa8000000000000000000000000000100100001080 -% 80000ff843fff555d555564040405555555555555800000000001555555555555555555555555555555555555555555555580100001080 -% 80000ffc01ffffffffffff0000006aeaeaeaeaeaec000000000010000000000002aaaaa000000000000000000000000000080100001080 -% 80000ffd117fff775555551111113555555555555400000000000d55555555555555555111111111111111111111111111140100001080 -% 80000ffc00bffffffbbbbb8000003bbbbbbbbbbbba000000000006222222222222aaaaa800000000000000000000000000020104001080 -% 80001ffc045ffd555555558404041555555555555600000000000555555555555555555555555555555555555555555555550106601080 -% 80002ffc006fffffffffffc000000eeeaeeeaeeeaf0000000000020000000000006aaaac00000000000000000000000000010101c01080 -% 80004fff113fff777555555111111d55555555555500000000000355555555555575555751115111511151115111511151118103c01080 -% 80008ffe001ffffffbbbfba0000007bbbbbbbbbbbb0000000000012220222022203aaaab00000000000000000000000000004106601080 -% 80008ffe4057ff555d555560404045555555555557000000000007555555555555755555d555555555555555555555555555c100001080 -% 80004ffe002fffffeffffff000000aeaeaeaeaeafc00000000003800000000000faaaaaa800000000000000000000000001e0100001080 -% 80002fff113fff77775555511111155555555555e00000000001d55555555555f555555551111111111111111111111113e00100001080 -% 80001ffe0077ffffe3bbbbb000003bbbbbbbbbbb00000000000e22222222223faaaaaaaac000000000000000000000003c000100001080 -% 80000ffe4455ff5555d55554440475555555555c0000000000f55555555555f555555555555555555555555555555557c0000100001080 -% 80000ffe00afffff88fffff800006eaeeeaeeee0000000000700000000003eaaaaaaaaaaa0000000000000000000003c00000106e01080 -% 80000ff7116dff75d57555591111d55555555700000000003d5555555557d555555555557151515151515151515153c000000104a01080 -% 80000ffc01ceffffa22bfbf80001bbbbbbbbb80000000001e0202020207eaaaaaaaaaaaaa00000000000000000003c0000000105a01080 -% 80000ff4438dff5555555554404355555555e0000000001f5555555557d555555555555555555555555555555557c00000000107201080 -% 80000ffc028affffa8abfffc0002eaeaeaef0000000000e000000000faaaaaaaaaaaaaaab0000000000000000078000000000100001080 -% 80000ff5150d7f77555555551115555555780000000007555555555f555555555555555551111111111111111780000000000101801080 -% 80000ffc0b1abffe2222fbbc000bbbbbbbc0000000003a22222223faaaaaaaaaaaaaaaaaa8000000000000007800000000000103c01080 -% 80000fdc0e1d7f555555755604155555570000000001d55555555f5555555555555555555d555555555555578000000000000104a01080 -% 80000ffc1c1abffc8a889ffe001eaeeeb8000000001e00000003eaaaaaaaaaaaaaaaaaaaa8000000000000780000000000000104a01080 -% 80000ffd141d5f7d55555d5711355555c000000000f55555557d555555555555555555555511511151115f800000000000000104e01080 -% 80000ffc381abffa222227ba007bbbbe000000000722202227eaaaaaaaaaaaaaaaaaaaaaac0000000000f0000000000000000102c01080 -% 80000f5c783d5f555555575540d55578000000003d5555557d555555555555555555555555555555555f00000000000000000100001080 -% 80000ffc703aaff8a8a8a8ff01eaebc000000003c000000faaaaaaaaaaaaaaaaaaaaaaaaaa00000000f000000000000000000103c01080 -% 80000f7de0355f755555555511555e000000001d555555f5555555555555555555555555571111111f0000000000000000000106601080 -% 80000ffca03aafe22222223b83bbf000000000e222223faaaaaaaaaaaaaaaaaaaaaaaaaaaa000000f00000000000000000000104201080 -% 80000f5d4035575555555555c5558000000007555555f5555555555555555555555555555555555f000000000000000000000104201080 -% 80001ffdc05aafca888a888f8eae000000003800003eaaaaaaaaaaaaaaaaaaaaaaaaaaaaab0001e0000000000000000000000106601080 -% 80002d7b805557d5555555579d7000000003d55557d5555555555555555555555555555555515e00000000000000000000000102401080 -% 80004fff007aaba222222223db800000001c20207eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa81e000000000000000000000000103c01080 -% 80008d5d0055575555555555fc00000000f55557d555555555555555555555555555555555de0000000000000000000000000106601080 -% 80008ffa006aaba8a8a8a8a8f00000000300003aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabe00000000000000000000000000104201080 -% 80004f7e0075575555555555c00000000d555555555555555555555555555555555555555e000000000000000000000000000104201080 -% 80002ffa00aaaa222222222280000000122223aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf0000000000000000000000000000106601080 -% 80001d5e00f557555555555500000000355557555555555555555555555555555555555780000000000000000000000000000103c01080 -% 80000ffe00aaaa888a888a8b00000000400006aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabc00000000000000000000000000000100001080 -% 80000d7e00f555555555555600000001d5555d55555555555555555555555555555555e000000000000000000000000000000100001080 -% 80000ffc012aae222222222c0000000220223aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf0000000000000000000000000000000107e01080 -% 80000d54017555555555555800000005555555555555555555555555555555555555780000000000000000000000000000000100201080 -% 80000ffc012aaca8a8a8a8b8000000080000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabc00000000000000000000000000000000100201080 -% 80000f7401755d55555555700000003555555555555555555555555555555555555e000000000000000000000000000000000100201080 -% 80000ffc022aaa2222222260000000622226aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf0000000000000000000000000000000000107e01080 -% 80000d7403555d5555555540000000d5555d55555555555555555555555555555700000000000000000000000000000000000103c01080 -% 80000ffc026aa88a888a88c000000100001aaaaaaaaaaaaaaaaaaaaaaaaaaaaab800000000000000000000000000000000000106601080 -% 80000d7803555555555555800000075555755555555555555555555555555555c000000000000000000000000000000000000104201080 -% 80000ff8046ab222222223000000082020eaaaaaaaaaaaaaaaaaaaaaaaaaaaae0000000000000000000000000000000000000104201080 -% 80000d78055555555555560000001555555555555555555555555555555555700000000000000000000000000000000000000106601080 -% 80000fe8046ab8a8a8a8ae000000200002aaaaaaaaaaaaaaaaaaaaaaaaaaab800000000000000000000000000000000000000107fc1080 -% 80000f780555555555555c000000d55555555555555555555555555555555c000000000000000000000000000000000000000100001080 -% 80000ff80a6aa22222223800000122223aaaaaaaaaaaaaaaaaaaaaaaaaaae0000000000000000000000000000000000000000100001080 -% 83000d780d5575555555700000035555755555555555555555555555555700000000000000000000000000000000000000000106e01080 -% 84f00ff0086aaa888a88e000000400006aaaaaaaaaaaaaaaaaaaaaaaaab800000000000000000000000000000000000000000104a01080 -% 84900d700d55755555556000001d5555d5555555555555555555555555c000000000000000000000000000000000000000000105a01080 -% 84900ff010aae2222222c00000222022aaaaaaaaaaaaaaaaaaaaaaaaae0000000000000000000000000000000000000000000107201080 -% 83e00d5015d555555555800000555555555555555555555555555555f00000000000000000000000000000000000000000000100001080 -% 80000ff010aae8a8a8ab00000080000aaaaaaaaaaaaaaaaaaaaaaaaf000000000000000000000000000000000000000000000100001080 -% 8400ff5015d555555557000003555575555555555555555555555578000000000000000000000000000000000000000000000100001080 -% 80000ff022aaa222222600000622226aaaaaaaaaaaaaaaaaaaaaabc0000000000000000000000000000000000000000000000100001080 -% 83c00de035d5d555555c00000d5555d5555555555555555555555e00000000000000000000000000000000000000000000000100001080 -% 86301fe020aa888a88980000300001aaaaaaaaaaaaaaaaaaaaaaf000000000000000000000000000000000000000000000000107f01080 -% 84102de035d5d55555780000555557555555555555555555555780000000000000000000000000000000000000000000000001183c1080 -% 84304fe060ab222222300000a0202aaaaaaaaaaaaaaaaaaaaabc0000000000000000000000000000000000000000000000000100001080 -% 83e08de055d555555560000155555555555555555555555555e00000000000000000000000000000000000000000000000000100001080 -% 80008fe040aba8a8a8c0000600002aaaaaaaaaaaaaaaaaaaaf000000000000000000000000000000000000000000000000000107fc1080 -% 80004fe0555555555580000d5555d5555555555555555555780000000000000000000000000000000000000000000000000001003c1080 -% 80002fa0a3aa2222238000122223aaaaaaaaaaaaaaaaaaabc0000000000000000000000000000000000000000000000000000101e01080 -% 80001dc0d55755555700007555575555555555555555555e00000000000000000000000000000000000000000000000000000107001080 -% 80000fc081aa8a888e000080000eaaaaaaaaaaaaaaaaaaf000000000000000000000000000000000000000000000000000000107001080 -% 80000dc0d55555555c00015555555555555555555555578000000000000000000000000000000000000000000000000000000101e01080 -% 80000fc121ae222238000222202aaaaaaaaaaaaaaaaabc00000000000000000000000000000000000000000000000000000001003c1080 -% 80000dc15555555570000d5555d55555555555555555600000000000000000000000000000000000000000000000000000000107fc1080 -% 80000fc101aca8a8f000100001aaaaaaaaaaaaaaaaab800000000000000000000000000000000000000000000000000000000100001080 -% 80000fc1555d5555e00035555755555555555555555c000000000000000000000000000000000000000000000000000000000100001080 -% 80000fc222aa2222c000e22226aaaaaaaaaaaaaaaae0000000000000000000000000000000000000000000000000000000000103fc1080 -% 80000d83575d5555800155555d555555555555555700000000000000000000000000000000000000000000000000000000000106001080 -% 80000f8202aa888b000200002aaaaaaaaaaaaaaab800000000000000000000000000000000000000000000000000000000000104001080 -% 80000d8557555556000d55555555555555555555c000000000000000000000000000000000000000000000000000000000000104001080 -% 80000f8422b2222c00102021aaaaaaaaaaaaaaae0000000000000000000000000000000000000000000000000000000000000104001080 -% 80000f85575555540035555755555555555555700000000000000000000000000000000000000000000000000000000000000106001080 -% 80000f8402a8a8a800c00006aaaaaaaaaaaaab800000000000000000000000000000000000000000000000000000000000000103fc1080 -% 80000f8d577555700155555d5555555555555c000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000f8a22a222600222222aaaaaaaaaaaaae0000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f8d577555c00555555555555555555780000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f1006c88b80180001aaaaaaaaaaaabc00000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f1555555700355557555555555555e000000000000000000000000000000000000000000000000000000000000000000107fc1080 -% 80000f1226e22700602226aaaaaaaaaaaf0000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f1555555e01d5555d5555555555780000000000000000000000000000000000000000000000000000000000000000000100041080 -% 80000f2006a8ac0200002aaaaaaaaaabc00000000000000000000000000000000000000000000000000000000000000000000100041080 -% 86c00f3555d55805555555555555555e000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85c00f2226a2301a2222aaaaaaaaaaf000000000000000000000000000000000000000000000000000000000000000000000011c3c1080 -% 85400f35555560355557555555555780000000000000000000000000000000000000000000000000000000000000000000000107f01080 -% 85400f40078ae0400006aaaaaaaabc00000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 82400e555d5541d5555d555555556000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83800e602b238220203aaaaaaaab8000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87c01ed55f57055555555555555c0000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85402e800aae180000aaaaaaaae00000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85404ed55f5c35555755555557000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87c08ea22a38622226aaaaaab8000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80008f555d78d5555d555555c0000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83804e800eb080000aaaaaab00000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 86402ed55d7155555555555600000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84401fa22e3120223aaaaaac00000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84400dd55d5355555555555800000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 82c00f401ce200002aaaaab000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83800dd5556355557555556000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 86400fe23e6622226aaaaac000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84400db55d6555555555558000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84400fe018c400006aaaab0000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83800d755dcd5555d555560000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000fe03ac82020aaaaa80000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87c00d555dd55555d555500000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80400ff019900001aaaaa00000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80400d755d9555555555400000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87c00fb23ba22223aaaa800000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000d7d5d3555575555000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83800ff81b200002aaaa000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 86400d5d575555555554000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84400fba33622026aab8000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84400d5d56d555555560000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87f00ffc1a80000aaac0000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 86c00d5d76d5555d5580000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85c00fbe3722222aab00000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85400d57755555555600000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 85400ffe3d00001aac00000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 82400d577f5555755800000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000ffa3e20202ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000d577d5555756000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000fff2c00006a8000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000d557d5555550000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 8fe00fbb3a22226a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 98300d55fd5555d40000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000fffb80000a80000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87f00d55f55555500000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80601fbbb02221a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87802d55755555400000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 86004fffe00002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 81c08d55755557000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80708fbbe22224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87f04d55555558000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80002fff800060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80001d55555580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83f00bfa202200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84000d57555c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84000ffc003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 84000d5d55c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 83f00bb2230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000d55560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80100fe0180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80100d55600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80100be3800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87f00dd6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80100f0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80100f70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 90100ac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 98700f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 87c00c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000001fffc7fff1fffc7fff1fffc3fff8fffe3fff8fffe3fff87fff1fffc7fff1fffc7fff0fffe3fff8fffe3fff8fffe000100001080 -% 80000001fffc55551555455551040435558800235558d556355587fff1555455551555440410d55620008d55635558d556000100001080 -% 80000001fffc7fff1a88c7fff100042eae8800220008aaaa200087fff1fffc488b1fffc40010aeee2000880022aaa88002000100001080 -% 80000001fffc75771555455551111435558800235558d556311187fff1777455551555451110d55620008d556355589152000100001080 -% 80000001fffc7fff122247bbf100043bbb8800222028aaaa200087fff1fffc62231bfbc40010bbba2000882222aaa88002000100001080 -% 80000001fffc55551555455551404435558800235558d556355587fff1555455551555444050d55620008d55635558d556000100001080 -% 80000001fffc7fff18a8c7fff100042aea8800220008aaaa200087fff1fffc68a91fffc40010eaea2000880022aaa88002000100001080 -% 80000001fffc77771555455551111435558800235558d556311187fff1777455551555451110d55620008d556355589112000100001080 -% 80000001fffc7fff122247bbb100043bbb8800222228aaaa200087fff1fffc62231bbbc40010bbba20008a2222aaa88002000100001080 -% 80000001fffc55551555455551044435558800235558d556355587fff1555455551555444410d55620008d55635558d556000100001080 -% 80000001fffc7fff188ac7fff100042eee8800220008aaaa200087fff1fffc4a891fffc40010eeae2000880022aaa88002000100001080 -% 80000001fffc75751555455551111435558800235558d556315187fff1757455551555451110d55620008d55635558d152000100001080 -% 80000001fffc7fff122247fbf100043bbb8800222028aaaa200087fff1fffc62231bfbc40010bbba2000882022aaa88002000100001080 -% 80000001fffc55551555455551404435558800235558d556355587fff1555455551555444050d55620008d55635558d556000100001080 -% 80000001fffc7fff1fffc7fff1fffc3fff8fffe3fff8fffe3fff87fff1fffc7fff1fffc7fff0fffe3fff8fffe3fff8fffe000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 800000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 8000000022003f8007f001fc007f001fc007f000fe003f800fe003f800fe003f8007f001fc007f001fc007f000fe003f80000100001080 -% 80000000410060c00c18030600c18030600c1801830060c01830060c01830060c00c18030600c18030600c1801830060c0000100001080 -% 80000000410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 8000000041000b000110000000008007800000000000000004200004003c0000000000007800160005800000002c000040000100001080 -% 8000000063001bc0031800040020800de00010000200008007300104006f000080001000de0037800de00010006f001040000100001080 -% 800000003e00114002480004003c8008a000100002000080051001e400450000800010008a00228008a000100045001e40000100001080 -% 8000000000001140024800fe00068008a003f8007f001fc0049000340045001fc003f8008a00228008a003f80045000340000100001080 -% 8000000001000e4001f000000001800740000000000000000460000c003a00000000000074001c800720000000390000c0000100001080 -% 8000000001000c0001e0000200080000000210002c000b0003000088002c00108001100060001e00058008080042000000000100001080 -% 80000000010013c003180082000e0000400398006f001bc004f0018c006f001cc00318009e0031800de00c380073000080000100001080 -% 800000007f001240020800f2000b000040028800450011400490012400450014400248009200208008a003e00051000080000100001080 -% 80000000010012400218001a003f800fe0024800450011400490012400450012400248009200218008a000000049001fc0000100001080 -% 8000000001000f8001f00006000800000002300039000e4003e000f8003900118001f0007c001f00072001000046000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000003300000000000000101001080 -% 800000007f00404008080002008080202000080042000b00101004040101000f0008080202008080202002680101004040000103381080 -% 80000000080061c00c38008200c38030e002080073001bc01870061c0187001bc00c38030e00c38030e0024801870061c00001046c1080 -% 8000000008001f0003e000f2003e000f8003c8005100114007c001f0007c00114003e000f8003e000f800248007c001f00000104441080 -% 8000000008001b000000001a0010000c80006800490011403fc000e0006400114001c0004000320000000390006c000e00000104441080 -% 800000007f00170003e000060033000a8000180046000e40064001900054000e80032000cc002a000f800008005c001900000104cc1080 -% 8000000000001500002002020026800a80080801010040400440011000540040400220009a002a00080000180054001100000107981080 -% 80000000000015000020030e0024800a800c3801870061c00440011000540061c002200092002a00080000600054001100000100001080 -% 800000007f00090003e000f80024800f8003e0007c001f00038001fc007c001f0003f80092003e000f8003c00024001fc0000100001080 -% 800000004900410000200000003900000000000000000000000000000000000000000000e4000000000000700104000000000107e01080 -% 8000000049004e000020000000000000000000006c001b00000000e00038001b0001c00000001c000d8000180138000e00000104001080 -% 800000004900380003e000f80000800f8003e0005c00170007c001900064001700032000020032000b80000000e0001900000104001080 -% 8000000049000e0003200080000180008002000054001500004001100044001500022000060022000a8001000038001100000106001080 -% 800000000000010002a00080000600008002000054001500038001100044001500022000180022000a8003300004001100000107e01080 -% 800000000000000002a000f8003c000f8003e0002400090007c000e0007f00090001c000f0003f80048002680000000e00000100001080 -% 800000007f001f0002a000d80007000000036001040041000540000000380041000000001c001c0007000248007c000000000100001080 -% 800000000900010003e000b80001800f8002e00138004e00054001fc0064004e0003f800060032000f8002480004001fc0000107e01080 -% 8000000009000100000000a8001000008002a000e000380007c000240044003800004800400022000a8003900004000240000100201080 -% 8000000009001f00000000a8003300008002a00038000e00000000240044000e00004800cc0022000a800000007c000240000100201080 -% 800000007900000003e800480026800f80012000040001003fc00024007f0001000048009a003f800f8000080000000240000100201080 -% 800000007700010000000070002480000001c0000000000006400004000000000000080092000000200000080004000040000107e01080 -% 8000000000001fc003e000f8002480070003e0007c001f0004400000001c001f0000000092000e0020000008007f000000000100001080 -% 8000000000001100002000a80039000c8002a00004000100044001f4002200010003e800e4001100200003f80044001f40000100001080 -% 8000000000001fc0002000a8000000088002a000040001000380000000410001000000000000208020000008007f000000000100001080 -% 800000000000010003e000f8000080088003e0007c001f00064000000041001f0000000002002080200000080004000000000100001080 -% 800000000000010000000000000080070000000004000100054001fc004100010003f80002002080200000000004001fc0000104001080 -% 8000000000001f000000003800008000800800007f001fc0054000e00063001fc001c000020031800fe003f8007c000e00000107801080 -% 800000000000000000000044003f800fe008000044001100054001f0003200110003e000fe0019000c8002480000001f00000100f01080 -% 80000000000040000000008200008008800800000000000007c00150001c00000002a00002000e000880024801000015000001009c1080 -% 8000000000004000000000820000800c800800007f001fc0000001500022001fc002a000020011000880024801000015000001009c1080 -% 8000000000004000000000820000000a8008000004000100000001f0004100010003e00000002080070002480100001f00000100f01080 -% 8000000000004000000000c6003f800a800bf8000400010007c000000041000100000000fe0020800fe000000100000000000107801080 -% 8000000000004000000000640024800a800320007c001f00004003000041001f00000000920020800c8003f80100003000000104001080 -% 8000000000004000000000380024800f800220000000000006c00000006300000000000092003180088000300100000000000100001080 -% 80000000000010800000004400248000000220010000400005c001b0003200000000000092001900088003c00042001b00000107e01080 -% 8000000000001cc000000082002480008001c0010000400005400170006c001fc000000092003600070003000073001700000104001080 -% 8000000000001440000000820000000fe00000010000400005400150005c00100000000000002e00000000e00051001500000104001080 -% 8000000000001240000000820000000f8003f8010000400002400150005400100000000000002a00000000380049001500000106001080 -% 8000000000001180000000c6003f800f8003200100004000038000900054001000000000fe002a00000003f80046000900000107e01080 -% 8000000000000000000000640003000a800220014200508007c0041000240000000000000c001200000000000000004100000100001080 -% 800000000000300000000070003c000a8002200073001cc0054004e00100001f40000000f0008000000000000000004e00000103c01080 -% 8000000000000000000000c80030000f8001c00051001440054003800100000000000000c0008000000000000000003800000136601080 -% 800000000000000000000088000e0000000000004900124007c000e00100001f0000000038008000000000000000000e00000124201080 -% 8000000000001f00000000880003802000060000460011800000001001000001000000000e008000000000000000000100000124201080 -% 8000000000001000000000fe003f80200000000000000000000000000100000100000000fe00800000000000000000000000013fe01080 -% 800000000000100000000000000000200003600000000000000001f00100001f0000000000008000000000000000001f0000011fe01080 -% 8000000000001f0000000070006000200002e000c000300000000010000c00000000000180000600000000000000000100000100001080 -% 8000000000001b00000000f8000000200002a00000001b00000000100078000e0000000000003c00000000000000000100000100001080 -% 8000000000001700000000a8001c00200002a0007c001700000001f00070001f00000000d8003800000000000000001f00000100001080 -% 8000000000001500000000a800320000000120000400150000000000000c001500000000b8000600000000000000000000000100001080 -% 8000000000001500000000f80022000fa008200004001500000000100078001500000000a8003c00000000000000000100000100001080 -% 8000000000000900000000d8002200000009c0007c000900000001fc0070001f00000000a8003800000000000000001fc0000100001080 -% 8000000000000e00000000b8003f800f800700000400410000000110000c00000000000048000600000000000000001100000100001080 -% 8000000000001f00000000a8000000008001c00004004e00000001fc000000000000000208000000000000000000001fc0000102001080 -% 8000000000001500000000a8001c0000800020007c00380000000010007c00000000000270003e00000000000000000100000106781080 -% 8000000000001500000000480032000f8000000000000e00000000100004000000000001c0000200000000000000000100000104281080 -% 8000000000001f00000000700022000d8003e00064000100000001f0007f00000000000070003f80000000000000001f00000104281080 -% 8000000000000000000000c80022000b800020005400000000000000001800000000000008000c00000000000000000000000106681080 -% 800000000000400000000088001c000a8000200054001f0000000400001800000000000000000c00000000000000004000000103c81080 -% 8000000000004000000000880000000a8003e00054000100000004000034000000000000f8001a00000000000000004000000100001080 -% 800000000000400000000058003f8004800000007c00010000000400004000000000000008002000000000000000004000000100001080 -% 80000000000040000000000000048000000020007f001f0000000400000000000000000008000000000000000000004000000100001080 -% 8000000000004000000000f80004800f8003f800180000000000040000c0000000000000f8000000000000000000004000000100001080 -% 80000000000040000000000800048000800220001800010000000400000000000000000000000000000000000000004000000100001080 -% 8000000000001fc000000000000080008000000034001fc000000108000000000000000008000000000000000000001080000103f81080 -% 8000000000001900000000000000000f8003f80040001100000001cc007c000000000000fe000000000000000000001cc0000106181080 -% 8000000000001100000000fa003e8000000020003800000000000144004000000000000088000000000000000000001440000104081080 -% 8000000000001100000007f800000000000020007c001fc0000001240040000000000000fe000000000000000000001240000106181080 -% 8000000000000e00000000d8003f80000003e0005400010000000118007c00000000000008000000000000000000001180000103f01080 -% 8000000000001fc00000008800000000000000005400010000000000000000000000000008000000000000000000000000000100001080 -% 800000000000190000000088001c00000003f8007c001f0000000300006c000000000000f8000000000000000000000000000100001080 -% 8000000000001100000000f8003e0000000200000000000000000000005c00000000000000000000000000000000000000000100101080 -% 800000000000110000000008002a0000000200001c001fc000000000005400000000000200000000000000000000000000000100101080 -% 8000000000000e00000000fe002a00000002000022001000000001f0005400000000000200000000000000000000000000000107f81080 -% 800000000000000000000088003e0000000000004100100000000100002400000000000200000000000000000000000000000100001080 -% 80000000000000000000007000000000000000004100100000000100003800000000000200000000000000000000000000000100001080 -% 8000000000000000000000c8000000000003e80041000000000001f0007c00000000000200000000000000000000000000000100001080 -% 800000000000000000000088000000000000000063000000000001b0005400000000000284000000000000000000000000000104201080 -% 800000000000000000000088000000000003e00032001f40000001700054000000000000e6000000000000000000000000000100001080 -% 80000000000000000000007000000000000020001c00000000000150007c000000000000a2000000000000000000000000000100001080 -% 800000000000000000000000000000000000200022001f0000000150010000000000000092000000000000000000000000000100001080 -% 800000000000000000000000000000000003e000410001000000009001000000000000008c000000000000000000000000000103f81080 -% 8000000000000000000000f8000000000001c00041000100000000e0010000000000000000000000000000000000000000000106181080 -% 800000000000000000000008000000000003e00041001f00000001f0010000000000000000000000000000000000000000000104081080 -% 8000000000000000000000d8000000000002a0006300000000000150010000000000000000000000000000000000000000000106181080 -% 8000000000000000000000b8000000000002a00032000e0000000150010000000000000000000000000000000000000000000103f01080 -% 8000000000000000000000a8000000000003e00038001f00000001f0007f00000000000000000000000000000000000000000101801080 -% 8000000000000000000000a800000000000000006400150000000000006400000000000000000000000000000000000000000101c01080 -% 80000000000000000000004800000000000000004400150000000400004400000000000000000000000000000000000000000101201080 -% 800000000000000000000000000000000000000044001f0000000400004400000000000000000000000000000000000000000101181080 -% 80000000000000000000000000000000000000007f00000000000400003800000000000000000000000000000000000000000107fc1080 -% 80000000000000000000000000000000000000000000300000000400007f00000000000000000000000000000000000000000101001080 -% 80000000000000000000000000000000000000003800000000000400006400000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000007c00000000000400004400000000000000000000000000000000000000000100001080 -% 800000000000000000000000000000000000000054001f00000001fc004400000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000005400010000000190003800000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000007c00010000000110000000000000000000000000000000000000000000000104201080 -% 80000000000000000000000000000000000000006c001f0000000110000000000000000000000000000000000000000000000107381080 -% 80000000000000000000000000000000000000005c000100000000e0000000000000000000000000000000000000000000000105881080 -% 80000000000000000000000000000000000000005400010000000000000000000000000000000000000000000000000000000104881080 -% 800000000000000000000000000000000000000054001f0000000000000000000000000000000000000000000000000000000104c81080 -% 80000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000104781080 -% 80000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000103f81080 -% 80000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000106181080 -% 80000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000104081080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106181080 -% 80000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000000103f01080 -% 80000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103f81080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106181080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104081080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106181080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103f01080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100101080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000107f81080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100001080 -% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffff080 +% 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffffff080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000108000000084000000022000000022000000008000000000000000010000100001080 +% 800000000000000000000000100000000100000001cc0000000e600000006300000006300000000e000000000000000010420103c01080 +% 800000000000000000000000100000000100000001440000000a200000004900000004900000000b000000000000000010738106601080 +% 800000000000000000000003f80000003f800000012400000009200000004900000004900000003f800000000000000010588104201080 +% 8000000000000000000000000000000000000000011800000008c00000003e00000003e000000008000000000000000010488104201080 +% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104c8106601080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010478102401080 +% 800000000000000000000006000000006000000003000000001800000000c00000000c0000000060000000000000000010000100001080 +% 800000000000002c00000001e00000001600000000f000000005800000003c00000002c00000001e000000000000000010420107201080 +% 800000000000006f000000031800000037800000018c0000000de00000006300000006f000000031800000000000000010738105a01080 +% 8000000000000045000000020800000022800000010400000008a000000041000000045000000020800000000000000010588105a01080 +% 8000000000000045000000021800000022800000010c00000008a000000043000000045000000021800000000000000010488104a01080 +% 800000000000003900000001f00000001c80000000f800000007200000003e00000003900000001f0000000000000000104c8107e01080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010478104001080 +% 800000000000003c00000001e00000001e00000000f000000007800000003c00000003c00000001e000000000000000010000103c01080 +% 8000000000000063000000031800000031800000018c0000000c6000000063000000063000000031800000000000000011c00106601080 +% 80000000000000410000000208000000208000000104000000082000000041000000041000000020800000000000000010800104201080 +% 8000000000000043000000021800000021800000010c000000086000000043000000043000000021800000000000000010000104201080 +% 800000000000003e00000001f00000001f00000000f800000007c00000003e00000003e00000001f000000000000000010000106601080 +% 800007800000003c00000001e00000001e00000000f000000007800000003c00000003c00000001e000000000000000010010102401080 +% 80000c6000000063000000031800000031800000018c0000000c6000000063000000063000000031800000000000000010010100001080 +% 800008200000004100000002080000002080000001040000000820000000410000000410000000208000000000000000107f8107fc1080 +% 8000086000000043000000021800000021800000010c000000086000000043000000043000000021800000000000000010000100201080 +% 800007c00000003e00000001f00000001f00000000f800000007c00000003e00000003e00000001f000000000200200010000100201080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200200010070100201080 +% 80000fe00000007f00000003f80000003f80000001fc0000000fe00000007f00000007f00000003f8000000003c8ff7c106d8107e01080 +% 800003000000001800000000c00000000c000000006000000003000000001800000001800000000c000000000225396010488101801080 +% 800003000000001800000000c00000000c000000006000000003000000001800000001800000000c0000000002253f3810488103c01080 +% 83c006800000003400000001a00000001a00000000d000000006800000003400000003400000001a0000000003273944106d8104a01080 +% 863008000000004000000002000000002000000001000000000800000000400000000400000000200000000003c23f78103f0104a01080 +% 84100000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000010000104e01080 +% 8430080000000080000000040000000020000000010000000010000000008000000004000000002000000000000c000010000102c01080 +% 83e00800000000800000000400000000200000000100000000100000000080000000040000000020000000000000000010010100001080 +% 80000800000000800000000400000000200000000100000000100000000080000000040000000020000000000000000010010100001080 +% 800008000000008000000004000000002000000001000000001000000000800000000400000000200000000000000000107f813fe01080 +% 8400fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10000106601080 +% 83c00f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000104201080 +% 86300e80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000106601080 +% 84100f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000103c01080 +% 84300f98000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011c00100001080 +% 83e00fd6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010800100001080 +% 80000f61800000000000000000000000000000000000000000000000000000000000000000000000000000000000000010180107e01080 +% 80000ff14000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c0100201080 +% 80000f68300000000000000000000000000000000000000000000000000000000000000000000000000000000000000010120100201080 +% 80000fd55c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010118103c01080 +% 80000baa0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000107fc106601080 +% 80000b7591c000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100104201080 +% 80000fd2c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000104201080 +% 80000ff7755800000000000000000000000000000000000000000000000000000000000000000000000000000000000010180106601080 +% 80000da9b006000000000000000000000000000000000000000000000000000000000000000000000000000000000000101c0103c01080 +% 80000dd5d95180000000000000000000000000000000000000000000000000000000000000000000000000000000000010120100201080 +% 80000df46c0040000000000000000000000000000000000000000000000000000000000000000000000000000000000010118107fc1080 +% 80000ddb7755700000000000000000000000000000000000000000000000000000000000000000000000000000000000107fc100241080 +% 80000dea2b000c000000000000000000000000000000000000000000000000000000000000000000000000000000000010100100001080 +% 80000df5559113000000000000000000000000000000000000000000000000000000000000000000000000000000000010180110001080 +% 80000cfcaac000c000000000000000000000000000000000000000000000000000000000000000000000000000000000101c0110001080 +% 80000dd4d57555600000000000000000000000000000000000000000000000000000000000000000000000000000000010120110001080 +% 80000cbe42b000180000000000000000000000000000000000000000000000000000000000000000000000000000000010118110001080 +% 80000d765759511600000000000000000000000000000000000000000000000000000000000000000000000000000000107fc110001080 +% 80000c7b21ac00018000000000000000000000000000000000000000000000000000000000000000000000000000000010100110001080 +% 80000f5d15d755556000000000000000000000000000000000000000000000000000000000000000000000000000000010000110001080 +% 80000e7a906b0000100000000000000000000000000000000000000000000000000000000000000000000000000000001000013fe01080 +% 80000f558d7591111c00000000000000000000000000000000000000000000000000000000000000000000000000000010000106601080 +% 80000e3fca2ac0000300000000000000000000000000000000000000000000000000000000000000000000000000000010000104201080 +% 80000f7d4555755555c0000000000000000000000000000000000000000000000000000000000000000000000000000010000106601080 +% 80000e2ee20ab00000300000000000000000000000000000000000000000000000000000000000000000000000000000107fc103c01080 +% 80000f7f635559515158000000000000000000000000000000000000000000000000000000000000000000000000000010660100001080 +% 80000e27b122ac000006000000000000000000000000000000000000000000000000000000000000000000000000000010420100001080 +% 80000f55515757555555800000000000000000000000000000000000000000000000000000000000000000000000000010660100001080 +% 80000e1ff081ab0000006000000000000000000000000000000000000000000000000000000000000000000000000000103c0100001080 +% 80000f155855d5d11111180000000000000000000000000000000000000000000000000000000000000000000000000010000100801080 +% 80000e13b8626aa00000040000000000000000000000000000000000000000000000000000000000000000000000000010020100801080 +% 80000f5fd435755555555700000000000000000000000000000000000000000000000000000000000000000000000000121e0100801080 +% 80000f0bac201aa8000000c000000000000000000000000000000000000000000000000000000000000000000000000011f00100001080 +% 80000f1f561555555111513000000000000000000000000000000000000000000000000000000000000000000000000010700103c01080 +% 80001f0bfa122aaa0000000c000000000000000000000000000000000000000000000000000000000000000000000000101e0136601080 +% 80002d5d550d55555555555600000000000000000000000000000000000000000000000000000000000000000000000010020124201080 +% 80004d05eb0402aa8000000180000000000000000000000000000000000000000000000000000000000000000000000010020124201080 +% 80008d15f585555511111111600000000000000000000000000000000000000000000000000000000000000000000000107f813fe01080 +% 80008d07bb8223aaa00000001000000000000000000000000000000000000000000000000000000000000000000000001042011fe01080 +% 80004f55758355557555555558000000000000000000000000000000000000000000000000000000000000000000000010180100001080 +% 80002f0bee8200aab0000000060000000000000000000000000000000000000000000000000000000000000000000000103c0100001080 +% 80001f5d758355d559515151510000000000000000000000000000000000000000000000000000000000000000000000104a0107fc1080 +% 80000f0bfb81206aa8000000008000000000000000000000000000000000000000000000000000000000000000000000104a0100201080 +% 80000f5d7581555555555555556000000000000000000000000000000000000000000000000000000000000000000000104e0100201080 +% 80000f09ea81002aaa000000001000000000000000000000000000000000000000000000000000000000000000000000102c0100201080 +% 80000f1d758155755711111111180000000000000000000000000000000000000000000000000000000000000000000010000107e01080 +% 80000f0bbb80a23aab00000000060000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f5d7580d55555d55555555500000000000000000000000000000000000000000000000000000000000000000000106e0103c01080 +% 80000f19eec0801aaa8000000000c0000000000000000000000000000000000000000000000000000000000000000000104a0106601080 +% 80000f157540d55d55515111511160000000000000000000000000000000000000000000000000000000000000000000105a0104201080 +% 80000f13fbc0602aaaa0000000001000000000000000000000000000000000000000000000000000000000000000000010720104201080 +% 80000f57754055555575555555555c00000000000000000000000000000000000000000000000000000000000000000010000106601080 +% 80000f1beac04006aab0000000000200000000000000000000000000000000000000000000000000000000000000000010000102401080 +% 80000f17554055575559111111111100000000000000000000000000000000000000000000000000000000000000000010000100801080 +% 80000f93fbc02222aaa80000000000c0000000000000000000000000000000000000000000000000000000000000000010000100801080 +% 80000fd7554035555555555555555560000000000000000000000000000000000000000000000000000000000000000010400100801080 +% 80000fabeec02001aaaa000000000010000000000000000000000000000000000000000000000000000000000000000010660100001080 +% 80000ff755403555555551515151515c0000000000000000000000000000000000000000000000000000000000000000101c0100201080 +% 80000fa3fbc01020aaab0000000000020000000000000000000000000000000000000000000000000000000000000000103c0107f81080 +% 80000ff755401555d555d55555555555000000000000000000000000000000000000000000000000000000000000000010660104201080 +% 80000fabeac010006aaac00000000000c00000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fb5556015555555511111111111200000000000000000000000000000000000000000000000000000000000000010000107e41080 +% 80000fa7fba00a222aaaa00000000000100000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000ff555600d5575555555555555555c0000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fcfeee008001aaab00000000000020000000000000000000000000000000000000000000000000000000000000010000107e01080 +% 80000fd555600d555555591151115111510000000000000000000000000000000000000000000000000000000000000010000100201080 +% 80000fe7fba004223aaaac000000000000c0000000000000000000000000000000000000000000000000000000000000106e0100201080 +% 80000fd5556005555d555555555555555560000000000000000000000000000000000000000000000000000000000000104a0107e01080 +% 80000fefeae004000aaaaa00000000000010000000000000000000000000000000000000000000000000000000000000105a0100201080 +% 80000fd5556005555555551111111111111c00000000000000000000000000000000000000000000000000000000000010720100201080 +% 80001fe7fba0022226aaab0000000000000200000000000000000000000000000000000000000000000000000000000010000100201080 +% 80002ed555600355575555d555555555555500000000000000000000000000000000000000000000000000000000000010180107e01080 +% 80004e8feea0020002aaaac0000000000000c00000000000000000000000000000000000000000000000000000000000103c0100001080 +% 80008edd5560035557555551515151515151600000000000000000000000000000000000000000000000000000000000104a0100001080 +% 80008eabfbb0012021aaaaa0000000000000100000000000000000000000000000000000000000000000000000000000104a0107e41080 +% 80004edd5550015555d555555555555555555c0000000000000000000000000000000000000000000000000000000000104e0100001080 +% 80002eafeaf0008000aaaaa8000000000000020000000000000000000000000000000000000000000000000000000000102c0107e01080 +% 80001fdd555000d555555559111111111111118000000000000000000000000000000000000000000000000000000000103c0100201080 +% 84200fabfbb00062226aaaac00000000000000400000000000000000000000000000000000000000000000000000000010660100201080 +% 87300fdd555800555575555755555555555555600000000000000000000000000000000000000000000000000000000010420100201080 +% 85100f8feee80040001aaaab00000000000000180000000000000000000000000000000000000000000000000000000010420107e01080 +% 84900fd5555800355555555551115111511151140000000000000000000000000000000000000000000000000000000010660100001080 +% 84600fa7fbb80022202aaaaa80000000000000020000000000000000000000000000000000000000000000000000000010240103c01080 +% 80000fd55558001555555555555555555555555580000000000000000000000000000000000000000000000000000000103c0136601080 +% 8400ffafeae800100006aaaaa0000000000000004000000000000000000000000000000000000000000000000000000010660124201080 +% 80000fd57554000d5557555551111111111111113000000000000000000000000000000000000000000000000000000010420124201080 +% 83c00fa7bbbc000a2222aaaab000000000000000080000000000000000000000000000000000000000000000000000001042013fe01080 +% 86300fd57554000d555555555d55555555555555540000000000000000000000000000000000000000000000000000001066011fe01080 +% 84100f8feeac00040000aaaaac0000000000000003000000000000000000000000000000000000000000000000000000103c0100001080 +% 84300fd5755400055555d55557515151515151515180000000000000000000000000000000000000000000000000000010000100001080 +% 83e00fa7fbba000220206aaaaa000000000000000040000000000000000000000000000000000000000000000000000010000100001080 +% 80000fd57556000355557555555555555555555555700000000000000000000000000000000000000000000000000000107e0100001080 +% 80000fafeaea000100002aaaaa800000000000000008000000000000000000000000000000000000000000000000000010020101001080 +% 80000fd5755600015555555555511111111111111116000000000000000000000000000000000000000000000000000010020101001080 +% 80000fa7bbba000122223aaaaac00000000000000001000000000000000000000000000000000000000000000000000010020101001080 +% 80000fd575550000d5555d55557555555555555555558000000000000000000000000000000000000000000000000000107e0107e01080 +% 80000f8feeef0000800006aaaab00000000000000000600000000000000000000000000000000000000000000000000010000101001080 +% 80000fd57555000055555555555951115111511151115000000000000000000000000000000000000000000000000000103c0101001080 +% 80000fa7fbbb0000602222aaaaa80000000000000000080000000000000000000000000000000000000000000000000010660101001080 +% 80000fd5555500003555555555555555555555555555560000000000000000000000000000000000000000000000000010420100001080 +% 80000daffaeb0000200001aaaaaa0000000000000000010000000000000000000000000000000000000000000000000010420107fc1080 +% 80000dd555558000155555d55555111111111111111111c000000000000000000000000000000000000000000000000010660100441080 +% 80000da7bbbb8000122222aaaaab00000000000000000020000000000000000000000000000000000000000000000000107fc100441080 +% 80000dd555558000155555555555d555555555555555555000000000000000000000000000000000000000000000000010000100441080 +% 80000d8ffeae80000800002aaaaac000000000000000000c000000000000000000000000000000000000000000000000106e0100441080 +% 80000dd5555580000d555575555571515151515151515152000000000000000000000000000000000000000000000000104a0103cc1080 +% 80001da7fbbbc0000420203aaaaaa0000000000000000001000000000000000000000000000000000000000000000000105a0107b81080 +% 80002dd55555400005555555555555555555555555555555c0000000000000000000000000000000000000000000000010720100001080 +% 80004faffaeac0000200000aaaaaa800000000000000000020000000000000000000000000000000000000000000000010000100041080 +% 80008fd5555540000355555555555511111111111111111118000000000000000000000000000000000000000000000010000100041080 +% 80008fa3bbbba00001222222aaaaaa00000000000000000004000000000000000000000000000000000000000000000010000100041080 +% 80004d575d5560000155555755555555555555555555555557000000000000000000000000000000000000000000000010000107fc1080 +% 80002d4bfeeea00000800001aaaaab00000000000000000000800000000000000000000000000000000000000000000010000100041080 +% 80001d575555500000555555d5555591511151115111511151600000000000000000000000000000000000000000000010000100041080 +% 80000d63ffbbb000006220226aaaaac00000000000000000001800000000000000000000000000000000000000000000107f0100041080 +% 80000d7555555800003555557555557555555555555555555554000000000000000000000000000000000000000000001183c101001080 +% 80000f29feeae800001000002aaaaab0000000000000000000030000000000000000000000000000000000000000000010000103381080 +% 80000f35d755540000155555555555591111111111111111111180000000000000000000000000000000000000000000100001046c1080 +% 80000fa2bbbbbc00000a22222aaaaaac0000000000000000000060000000000000000000000000000000000000000000107fc104441080 +% 80000fd5d5555400000555555555555755555555555555555555580000000000000000000000000000000000000000001003c104441080 +% 80000f9affaeee000004000002aaaaab0000000000000000000004000000000000000000000000000000000000000000101e0104cc1080 +% 80000fd5555556000003555557555555d15151515151515151515300000000000000000000000000000000000000000010700107981080 +% 80000f927bbbbb000001202021aaaaaac00000000000000000000080000000000000000000000000000000000000000010700100001080 +% 80000fdd55d555000001555555d555557555555555555555555555600000000000000000000000000000000000000000101e0100001080 +% 80000f88bfeaea8000008000006aaaaab0000000000000000000001800000000000000000000000000000000000000001003c100001080 +% 80000f9d75d5558000005555557555555911111111111111111111140000000000000000000000000000000000000000107fc100001080 +% 80000f8a3bfbbb8000006222223aaaaaa80000000000000000000003000000000000000000000000000000000000000010000100801080 +% 80000fd5555555400000355555555555555555555555555555555555800000000000000000000000000000000000000010000100801080 +% 80000f849feeaec000001000000aaaaaaa00000000000000000000006000000000000000000000000000000000000000103fc100801080 +% 80000f95557555600000155555555555551151115111511151115111580000000000000000000000000000000000000010600100001080 +% 80000f863bbbbba0000008222022aaaaaa8000000000000000000000040000000000000000000000000000000000000010400100001080 +% 80000fd75d7555500000055555555555555555555555555555555555570000000000000000000000000000000000000010400107fc1080 +% 80000f82affaeaf0000004000001aaaaaaa000000000000000000000008000000000000000000000000000000000000010400100401080 +% 80000f935d555550000003555555d555555111111111111111111111116000000000000000000000000000000000000010600100401080 +% 80000e8227bbbbb80000012222226aaaaaa8000000000000000000000018000000000000000000000000000000000000103fc100401080 +% 80000ed5555d55580000015555557555555555555555555555555555555400000000000000000000000000000000000010004100401080 +% 80000ec18ffeeeac0000008000001aaaaaaa00000000000000000000000300000000000000000000000000000000000010004100401080 +% 80001ed1555d55540000005555555555555551515151515151515151515180000000000000000000000000000000000010004107fc1080 +% 80002ec123ffbbbc0000006020202aaaaaaa800000000000000000000000600000000000000000000000000000000000107fc100001080 +% 80004dd5d75555560000003555555555555555555555555555555555555558000000000000000000000000000000000010004100001080 +% 80008dc0abfeeaea00000010000002aaaaaac0000000000000000000000004000000000000000000000000000000000010004100101080 +% 80008dd1d75555550000001555555555555571111111111111111111111112000000000000000000000000000000000010004100101080 +% 80004fc0a3bfbbbb0000000a222223aaaaaab0000000000000000000000001000000000000000000000000000000000010000107f81080 +% 80002dd5d75555550000000d555555d555555d555555555555555555555555c00000000000000000000000000000000010000100001080 +% 80001fc08bfeaeef00000008000000aaaaaaa8000000000000000000000000200000000000000000000000000000000011c3c100001080 +% 80000dd15755555500000005555555555555551151115111511151115111511000000000000000000000000000000000107f0100001080 +% 80000fc123bfbbbb000000062022206aaaaaaa000000000000000000000000080000000000000000000000000000000010000100001080 +% 80000dd5575555550000000555555575555557555555555555555555555555540000000000000000000000000000000010000103f81080 +% 80000dc1abfeeaeb000000020000002aaaaaab000000000000000000000000020000000000000000000000000000000010000106181080 +% 80000dd1575555550000000355555555555555911111111111111111111111118000000000000000000000000000000010000104081080 +% 80000fc123bfbbbb000000022222223aaaaaaa800000000000000000000000004000000000000000000000000000000010000106181080 +% 80000dd557555555000000015555555d555555555555555555555555555555556000000000000000000000000000000010000103f01080 +% 80000dc18bfeeeae800000010000000aaaaaaac00000000000000000000000001000000000000000000000000000000010000100001080 +% 80000dd1575555558000000155555555555555715151515151515151515151515800000000000000000000000000000010000107e01080 +% 80000fc223ffbbbb80000000a0202026aaaaaab00000000000000000000000000400000000000000000000000000000010000100201080 +% 80000dd75755555580000000d5555557555555555555555555555555555555555700000000000000000000000000000010000100201080 +% 80000dc2abfeeaea8000000080000002aaaaaaa80000000000000000000000000080000000000000000000000000000010000107e01080 +% 80000dd3575555558000000055555555555555551111111111111111111111111140000000000000000000000000000010000100201080 +% 80000fc223bfbbbb8000000062222223aaaaaaac0000000000000000000000000020000000000000000000000000000010000100201080 +% 80000dd7575555558000000055555555d55555575555555555555555555555555550000000000000000000000000000010000100201080 +% 80000fc28bfeaeee8000000020000000aaaaaaab0000000000000000000000000008000000000000000000000000000010000107e01080 +% 80000dd3575555558000000035555555555555555111511151115111511151115116000000000000000000000000000010000100001080 +% 80000fc223bfbbbb80000000202220226aaaaaaa8000000000000000000000000001000000000000000000000000000010000100001080 +% 80000dd5575555554000000035555555755555555555555555555555555555555555800000000000000000000000000010000100001080 +% 80000dc4abfeeaeac0000000100000002aaaaaaac000000000000000000000000000400000000000000000000000000010000100001080 +% 80000dd5575555554000000015555555555555557111111111111111111111111111200000000000000000000000000010000100001080 +% 80000fc627bfbbbbc0000000122222223aaaaaaab000000000000000000000000000180000000000000000000000000010000100801080 +% 80001dd555555555400000000d5555555d5555555555555555555555555555555555540000000000000000000000000010000100801080 +% 81002dc68ffeeeaec0000000080000000aaaaaaaa800000000000000000000000000020000000000000000000000000010000100801080 +% 81c04dd555555555400000000d555555555555555551515151515151515151515151510000000000000000000000000010000100001080 +% 81608fc627ffbbbbc00000000420202026aaaaaaac00000000000000000000000000008000000000000000000000000010000100001080 +% 87f08dd5555555554000000005555555575555555755555555555555555555555555554000000000000000000000000010000107fc1080 +% 81004dc4affeeaeac00000000400000002aaaaaaab00000000000000000000000000003000000000000000000000000010000100401080 +% 80002dd5555555556000000003555555555555555511111111111111111111111111111800000000000000000000000010000100601080 +% 80001fca27bfbbbba00000000222222223aaaaaaaa80000000000000000000000000000400000000000000000000000010000100f01080 +% 8400fddd55555555600000000155555555d555555555555555555555555555555555555600000000000000000000000010000103981080 +% 80000fc88ffeaeeea00000000100000000aaaaaaaac0000000000000000000000000000180000000000000000000000010000106041080 +% 83c00ddd555555556000000001555555555555555571511151115111511151115111511140000000000000000000000010000104001080 +% 86300fca27bfbbbba000000000a22022206aaaaaaab0000000000000000000000000000020000000000000000000000010000100001080 +% 84100ddd555555556000000000d55555557555555555555555555555555555555555555550000000000000000000000010000100101080 +% 84300dc8affeeaeae000000000800000002aaaaaaaa800000000000000000000000000000c000000000000000000000010000100101080 +% 83e00ddd555555555000000000555555555555555555111111111111111111111111111112000000000000000000000010000107f81080 +% 80000fca27bfbbbbb000000000622222223aaaaaaaaa000000000000000000000000000001000000000000000000000010000100001080 +% 80000ddd555555555000000000555555555d55555557555555555555555555555555555555800000000000000000000010000100001080 +% 80000dca8ffeeeaef000000000200000000aaaaaaaab000000000000000000000000000000600000000000000000000010000100001080 +% 80000ddd555555555000000000355555555555555555d15151515151515151515151515151500000000000000000000010000103f81080 +% 80000fd227ffbbbbb0000000002020202022aaaaaaaa800000000000000000000000000000080000000000000000000010000106181080 +% 80000dd5555555555000000000155555555755555555555555555555555555555555555555540000000000000000000010000104081080 +% 80000dd8affeeaeae8000000001000000001aaaaaaaaa00000000000000000000000000000030000000000000000000010000106181080 +% 80000dd5555555555800000000155555555555555555711111111111111111111111111111118000000000000000000010000103f01080 +% 80000fd227bfbbbbb8000000000a22222222aaaaaaaab00000000000000000000000000000004000000000000000000010000100001080 +% 80000dd55555555558000000000d55555555d55555555d5555555555555555555555555555556000000000000000000010000100001080 +% 80000fd88ffeaeeea80000000004000000006aaaaaaaa80000000000000000000000000000001800000000000000000010000107e01080 +% 80000dd5555755555800000000055555555555555555551151115111511151115111511151115400000000000000000010000100201080 +% 80000fd227bbbbbbb80000000006202220222aaaaaaaaa0000000000000000000000000000000200000000000000000010000100201080 +% 80001dd5555755555800000000035555555575555555575555555555555555555555555555555500000000000000000010000107e01080 +% 80002db8affeeaeaec0000000002000000001aaaaaaaab00000000000000000000000000000000c0000000000000000010000100201080 +% 80004df5555755555400000000035555555555555555559111111111111111111111111111111120000000000000000010000100201080 +% 80008fb227bbbbbbbc0000000001222222222aaaaaaaaac000000000000000000000000000000010000000000000000010000100201080 +% 80008df557575555540000000001555555555555555555555555555555555555555555555555555c000000000000000010000107e01080 +% 80004dba8bfeeeaeee00000000008000000002aaaaaaaaa000000000000000000000000000000002000000000000000010000100001080 +% 80002df5575555555600000000005555555557555555555151515151515151515151515151515151800000000000000010000100001080 +% 80001fb223fbbbbbba00000000006020202021aaaaaaaaa800000000000000000000000000000000400000000000000010000100001080 +% 80000dfd555555555500000000003555555555d55555555555555555555555555555555555555555600000000000000010000100001080 +% 80000da8a9ffeaeaeb000000000010000000006aaaaaaaaa00000000000000000000000000000000180000000000000010000100801080 +% 80000dfd5555d5555580000000001555555555755555555511111111111111111111111111111111140000000000000010000100801080 +% 80000faa23bbbbbbbb80000000000a222222223aaaaaaaaa80000000000000000000000000000000030000000000000010000100801080 +% 80000df555d5d5555580000000000555555555555555555555555555555555555555555555555555558000000000000010000100001080 +% 80000fa48affeeeeaec00000000004000000000aaaaaaaaaa0000000000000000000000000000000006000000000000010000100001080 +% 80000df555d55555554000000000035555555555555555555111511151115111511151115111511151100000000000001000013fe01080 +% 80000fa622bbfbbbbba000000000012220222022aaaaaaaaa8000000000000000000000000000000000c00000000000010000106601080 +% 80000df5555555555560000000000155555555555555555555555555555555555555555555555555555600000000000010000104201080 +% 80000da2a8ffeaeaeae000000000008000000000aaaaaaaaaa000000000000000000000000000000000180000000000010000106601080 +% 80000df355557555555000000000005555555555d555555555111111111111111111111111111111111140000000000010000103c01080 +% 80000fa2227bbbbbbbb0000000000022222222226aaaaaaaaa800000000000000000000000000000000030000000000010000100001080 +% 80000df7557555555558000000000035555555557555555555555555555555555555555555555555555558000000000010000100001080 +% 80000da188bffeaeeea8000000000010000000001aaaaaaaaaa00000000000000000000000000000000004000000000010000100001080 +% 80000df155755555555800000000000d555555555d55555555515151515151515151515151515151515153000000000010000100001080 +% 80000fa1223bfbbbbbbc0000000000082020202026aaaaaaaaa80000000000000000000000000000000000800000000010000100801080 +% 80000df555555d555554000000000005555555555555555555555555555555555555555555555555555555600000000010000100801080 +% 80001da1a8bffaeaeaea0000000000020000000002aaaaaaaaaa0000000000000000000000000000000000100000000010000100801080 +% 80002df1d5555d5555560000000000035555555555555555555511111111111111111111111111111111111c0000000010000100001080 +% 80004fa0a22bbfbbbbba0000000000012222222222aaaaaaaaaa8000000000000000000000000000000000020000000010000100001080 +% 80008df5d55d55555555000000000000d55555555555555555555555555555555555555555555555555555558000000010000107fc1080 +% 80008fa08a8ffeeeaeef00000000000080000000002aaaaaaaaaa000000000000000000000000000000000004000000010000100201080 +% 80004df1d55d55555555000000000000555555555575555555555111511151115111511151115111511151116000000010000100201080 +% 80002fa0a22bffbbbbbb00000000000060222022203aaaaaaaaab000000000000000000000000000000000001800000010000100201080 +% 80001df5d55d57555555800000000000355555555555555555555d55555555555555555555555555555555555400000010000107e01080 +% 80000da0a8affeeaeaea80000000000020000000000aaaaaaaaaac00000000000000000000000000000000000200000010000100001080 +% 80000df1d55d5755555580000000000035555555555d555555555511111111111111111111111111111111111100000010000100001080 +% 80000fa0a22bbbbbbbbb800000000000122222222226aaaaaaaaaa00000000000000000000000000000000000080000010000107fc1080 +% 80000df5d55d57555555800000000000155555555555555555555555555555555555555555555555555555555560000010000100441080 +% 80000da0888ffeaeeeae800000000000080000000002aaaaaaaaaa80000000000000000000000000000000000010000010000100441080 +% 80000df1d55d575555554000000000000d55555555575555555555d1515151515151515151515151515151515158000010000100441080 +% 80000fa0a22bfbbbbbbbc00000000000082020202021aaaaaaaaaac0000000000000000000000000000000000004000010000100441080 +% 80000df5d55d57555555400000000000055555555555d55555555575555555555555555555555555555555555557000010000103cc1080 +% 80000da0a8affeeaeaeac00000000000040000000000aaaaaaaaaaa0000000000000000000000000000000000000800010000107b81080 +% 80000df1d55557555555400000000000035555555555555555555551111111111111111111111111111111111111400010000100001080 +% 80000fa0a227bbbbbbbbc000000000000222222222226aaaaaaaaaa8000000000000000000000000000000000000200010000100001080 +% 80000df5d5555755555560000000000003555555555575555555555d555555555555555555555555555555555555580010000100001080 +% 80000fa08a8ffeeeaeeea000000000000100000000002aaaaaaaaaac000000000000000000000000000000000000040010000100001080 +% 80000df1d55555555555600000000000015555555555555555555557511151115111511151115111511151115111520010000100801080 +% 80000fa0a227fbbbbbbba0000000000000a2202220223aaaaaaaaaab000000000000000000000000000000000000010010000100801080 +% 80000df5d5555555555560000000000000d5555555555d555555555555555555555555555555555555555555555555c010000100801080 +% 80001da0a8afffeaeaeae000000000000080000000000aaaaaaaaaaa800000000000000000000000000000000000002010000100001080 +% 80002df1d55555555555500000000000005555555555555555555555511111111111111111111111111111111111111010000100001080 +% 80004fa0a227bbbbbbbbb0000000000000622222222222aaaaaaaaaac00000000000000000000000000000000000000810000107e41080 +% 80008df5d55555d555555800000000000035555555555755555555557d5555555555555555555555555555555555555410000100001080 +% 80008fd0688bff7eeeaeee000000000000400000000002aaaaaaaaaaabf000000000000000000000000000000000001810000100001080 +% 80004fb97d55559d555555800000000000d555555555555555555555555ff1515151515151515151515151515151516010000100101080 +% 80002ee43e22fbc3bbbbbbf0000000000120202020202aaaaaaaaaaaaaaabf800000000000000000000000000000018010000100101080 +% 80001ff57dd555407555555c000000000155555555555d55555555555555557f5555555555555555555555555555560010000107f81080 +% 80000ffa1fe8bfe00eeaeaeb000000000200000000001aaaaaaaaaaaaaaaaaaafc00000000000000000000000000080010000100001080 +% 80000fdd1f7d5d7111d55555e00000000555555555555555555555555555555557f9111111111111111111111111300010000100001080 +% 80000ffe8ffe27b0003bbbbbb80000000622222222222aaaaaaaaaaaaaaaaaaaaaafe00000000000000000000000c00010000100001080 +% 80000fd55ff7575404075555570000000d55555555557555555555555555555555555fd555555555555555555557000010000104001080 +% 80000fff27ffcbf80000eeeeaec000001000000000006aaaaaaaaaaaaaaaaaaaaaaaaabf0000000000000000000c000010000100001080 +% 80000ff5f7ff75d911113d5555700000155555555555d555555555555555555555555555ff115111511151115130000010000100001080 +% 80000ffbf3fffe7c000007bbbbbe0000202220222022aaaaaaaaaaaaaaaaaaaaaaaaaaaaabf800000000000000c0000010000100001080 +% 83c00ff57fff5776404040f55555800055555555555555555555555555555555555555555557f555555555555700000010000103f81080 +% 86f00ffff5ffffbe0000001eeaeae000800000000001aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafc0000000000c00000010000106181080 +% 84501ff56ffff77d11111113d5555c00d5555555555755555555555555555555555555555555557f111111113000000010000104081080 +% 84502ffbbbfffffb000000007bbbbb01222222222222aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafe0000004000000010000106181080 +% 83a04ffd5dfff557c40444044d5555e355555555555555555555555555555555555555555555555555fd55558000000010000103f01080 +% 80008ffffeffffff8000000003aeeeba00000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaff0060000000010000100001080 +% 80008ffd577ffd75d11111111155555d555555555575555555555555555555555555555555555555555ff9780000000010000100001080 +% 8400cffbfdffffff80000000007bbbb02020202021eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabffe007800000000010000100001080 +% 80002ff55ffff5574040404040d555d555555555575555555555555555555555555555555555fffd5555f8000000000010000100001080 +% 83c01ffff7fffffe0000000001eaeb00000000003aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfff0000000f00000000000010000100801080 +% 86300ff5fffff77f1111111111555d5555555555d55555555555555555555555555557fff111111111f000000000000010000100801080 +% 84100ffbbffffffc0000000003bbb2222222222eaaaaaaaaaaaaaaaaaaaaaaaaaafff800000000001f0000000000000010000100801080 +% 84300fd77ffd555c040404040555d5555555557555555555555555555555555fff55555555555555e00000000000000010000100001080 +% 83e00ffefffffff80000000006ef0000000001aaaaaaaaaaaaaaaaaaaaafffe0000000000000001e000000000000000010000100001080 +% 80000fddfff77751111111111d5d555555555f555555555555555555fff9511151115111511153e0000000000000000010000106e01080 +% 80000fb7ffffffa0000000000bb2202220227aaaaaaaaaaaaaaabfff000000000000000000003c00000000000000000010000104a01080 +% 80001f7fffd55d404040404055d555555557d5555555555557ffd55555555555555555555557c000000000000000000010000105a01080 +% 80002fdfffffffc0000000002b000000001eaaaaaaaaaafff80000000000000000000000007c0000000000000000000010000107201080 +% 80004fffff777591111111113d55555555755555557fff1111111111111111111111111117800000000000000000000010000100001080 +% 80008fbfffffbb00000000007222222223aaaaafffc0000000000000000000000000000078000000000000000000000010000100001080 +% 80008d7ff555550444044404d55555555d5555fd5555555555555555555555555555555780000000000000000000000010000106e01080 +% 80004dfffffffe0000000000800000001aaaab000000000000000000000000000000001800000000000000000000000010000104a01080 +% 80002d7ff5755711111111115555555575555751515151515151515151515151515151e000000000000000000000000010000105a01080 +% 80001dfffffffa0000000003202020206aaaac000000000000000000000000000000070000000000000000000000000010000107201080 +% 80000d7ff55556404040404755555555d5555d555555555555555555555555555555780000000000000000000000000010000100001080 +% 80000dbffffffc000000000400000003aaaaa0000000000000000000000000000000c00000000000000000000000000010000100201080 +% 80000d7fff7755111111111d55555555555551111111111111111111111111111117000000000000000000000000000010000107f81080 +% 80000fbfffffbc000000001a2222222aaaaa80000000000000000000000000000038000000000000000000000000000010000104201080 +% 80000d7ffd57540404040415555555555555555555555555555555555555555555c0000000000000000000000000000010000103c01080 +% 80000dbffffff800000000300000002aaaaa00000000000000000000000000000600000000000000000000000000000010000106601080 +% 80000d7ffd7759111111117555555555555551115111511151115111511151117800000000000000000000000000000010000104201080 +% 80000dbffffff800000000e2202220aaaab80000000000000000000000000001c000000000000000000000000000000010000104201080 +% 80000d7ffd575840404040d555555755557555555555555555555555555555560000000000000000000000000000000010000106601080 +% 80000dbffffff80000000180000006aaaac000000000000000000000000000380000000000000000000000000000000010000107fc1080 +% 80000d7fff7751111111135555555d55559111111111111111111111111111c00000000000000000000000000000000010000100001080 +% 80000fbfffffb0000000032222223aaaab000000000000000000000000000e000000000000000000000000000000000010000101801080 +% 80000d5ffd5554044404475555557555575555555555555555555555555570000000000000000000000000000000000010000103c01080 +% 80000dbffffff00000000c0000006aaaac00000000000000000000000001c0000000000000000000000000000000000010000104a01080 +% 80000d5ffd757111111115555555d555595151515151515151515151515e00000000000000000000000000000000000010000104a01080 +% 80000dbfffffe000000018202022aaaaa00000000000000000000000007000000000000000000000000000000000000010000104e01080 +% 80000d5ffd5560404040755555555555555555555555555555555555558000000000000000000000000000000000000010000102c01080 +% 80000dbfffffe00000006000000aaaaa8000000000000000000000000e0000000000000000000000000000000000000010000100001080 +% 80001d5fff7551111111755555555555111111111111111111111111700000000000000000000000000000000000000010000107e01080 +% 80002fbfffffc0000000e222222aaaaa000000000000000000000003800000000000000000000000000000000000000010000100201080 +% 80004f5ffd5d44040405d5555555555d55555555555555555555555c000000000000000000000000000000000000000010000100201080 +% 80008eafffffc0000002800001aaaab0000000000000000000000070000000000000000000000000000000000000000010000100001080 +% 80008f5ffd7d91111113555557555571511151115111511151115380000000000000000000000000000000000000000010000107e01080 +% 80004eaffffb80000006202226aaaac0000000000000000000000c00000000000000000000000000000000000000000010000100201080 +% 80002f5ffd5dc040404b55555d5555d5555555555555555555557000000000000000000000000000000000000000000010000100201080 +% 80001eafffff8000000c00001aaaab00000000000000000000018000000000000000000000000000000000000000000010000100001080 +% 80000f5fff7d1111111d5555755557111111111111111111111e0000000000000000000000000000000000000000000010000100001080 +% 80000eaffffb0000002a22226aaaac00000000000000000000300000000000000000000000000000000000000000000010000100001080 +% 80000f5ffd55440444355555d5555d55555555555555555555c00000000000000000000000000000000000000000000010000100001080 +% 80000eafffff000000600001aaaab000000000000000000006000000000000000000000000000000000000000000000010000100001080 +% 80000f5ff577111111d5555755557151515151515151515158000000000000000000000000000000000000000000000010000100001080 +% 80000eaffffa000001602026aaaac0000000000000000000e0000000000000000000000000000000000000000000000010000100001080 +% 80000f57f576404041d5555d55555555555555555555555700000000000000000000000000000000000000000000000010000100001080 +% 80000eaffffe00000300002aaaaa0000000000000000001c00000000000000000000000000000000000000000000000010000100001080 +% 80000f57f77711111555555555551111111111111111116000000000000000000000000000000000000000000000000010000100001080 +% 80000eaffffc0000062222aaaaa80000000000000000038000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f57404040d555555555555555555555555555c0000000000000000000000000000000000000000000000000010000100001080 +% 80000eaffffc0000180002aaaaa00000000000000000700000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f55511111d55555555515111511151115111800000000000000000000000000000000000000000000000000010000100001080 +% 80000eaffff8000030222aaaaa80000000000000000e000000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f55840407555555555555555555555555570000000000000000000000000000000000000000000000000000010000100001080 +% 80000eabfff80000a0002aaaae0000000000000001c0000000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f7591111d555555559111111111111111600000000000000000000000000000000000000000000000000000010000100001080 +% 80000eabfff00001a223aaaab0000000000000003800000000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f5d44406d55755557555555555555555c000000000000000000000000000000000000000000000000000000010000100001080 +% 80000eabfff000030006aaaac0000000000000070000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f5d11117555d5555d1515151515151580000000000000000000000000000000000000000000000000000000010000100001080 +% 80000eabffe0000c203aaaab00000000000000e00000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f57f5e0404d5575555755555555555557000000000000000000000000000000000000000000000000000000000010000100001080 +% 80001eabffe00018006aaaac0000000000001c000000000000000000000000000000000000000000000000000000000010000100001080 +% 80002f55f771113555d5555911111111111160000000000000000000000000000000000000000000000000000000000010000100001080 +% 80004eabffa0005223aaaab000000000000380000000000000000000000000000000000000000000000000000000000010000100001080 +% 80008f55f54404755755557555555555555c00000000000000000000000000000000000000000000000000000000000010000100001080 +% 80008eabffc000a006aaaac000000000003000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80004f55f55111d55d5555915111511151c000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80002faaffc001623aaaab0000000000070000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80001fd5f54041d57555575555555555580000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000faaffc001802aaaaa0000000000600000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fd57f5113555555551111111111800000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000feaffc00322aaaaa8000000000e000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f757dc447555555555555555570000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000efabfc00602aaaab000000000c0000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f757dd11d575555715151515300000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fbabfc00c26aaaac00000000c00000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f5d5dc04d5d5555d55555557000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000feebfc0181aaaaa800000018000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f5f5fd11d755555111111160000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fbeafc0322aaaaa000000180000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fd75fe435555555555555e00000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fefafe060aaaaac000003000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fd5dff17555555951115c000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000ffbafa061aaaab0000030000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fd5d760d75555755555c0000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000feaefe086aaaaa0000700000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86c00fd57771dd555551111800000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85c00ffbbbe13aaaaa80006000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400ff577e755555555558000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400feefbe22aaaab00060000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 82400ff55df355555751780000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83800ffbbfe6aaaaac00c00000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87c00ff557e555555d57000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400ffaeeedaaaab00c000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400ff557ff55555170000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87c01ffbbbfeaaaaa180000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80002ffd55fd55555600000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83804ffeaefaaaaa9800000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86408ffd55f55555e000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84408ffbbbeaaaab8000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84404ffd557555550000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 82c02ffaeaeaaaaa0000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83801ffd55d555560000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86400ff7bbeaaaaa0000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84400ff555d555540000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84400ff6efaaaaac0000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83800ff555d555540000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000ff7bbaaaaac0000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87c00fe5555555580000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80400fe6ebaaaaa80000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80400ff5575555580000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87c00fe7baaaaab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000fe5575555500000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83800fc6aeaaaab00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86400fd5575555600000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84400fc7beaaaaa00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84400fc55d5555600000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87f00f86eeaaaac00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86c00f955d5555400000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85c00f87baaaaac00000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400f875d5555800000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 85400f82faaaaa800000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 82400f13555555800000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f03baaaab000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f43755555000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f02faaaab000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000f13755555000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8fe00e03eaaaaa000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 98300e07755556000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000e02eaaaaa000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87f00f13d55554000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80600c03eaaaac000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87800c43d55554000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 86000c02aaaaa8000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 81c01d13d55558000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80702c03aaaaa8000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87f04c07555550000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80008801aaaab0000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80008913555560000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83f04806aaab80000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 84002845555600000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8400180aaab800000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8400091d556000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 83f0081aab8000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000c35560000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8010086aac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80100955700000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 801008aac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87f009d7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 801009ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80100b70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 90100ec0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 98700d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 87c00e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000003fff9fffcfffe7fff1fffcfffe7fff3fff8fffe7fff3fff9fffc7fff3fff9fffcfffe3fff9fffcfffe7fff00010000100001080 +% 80000003fff95554d556555514044d556400135558d55655553fff955545555355590404d556200095554d556555500010000100001080 +% 80000003fff9fffc8a8a7fff10004eeea400120008aaaa40013fff9fffc48a93fff90004aeee200090004aaaa400100010000100001080 +% 80000003fff97574d556555511114d556400135558d55651513fff977545555355591114d556200095554d556511500010000100001080 +% 80000003fff9fffca2227bbb10004bbba400122228aaaa40013fff9fffc62233fbb90004bbba200090224aaaa400100010000100001080 +% 80000003fff95554d556555510404d556400135558d55655553fff955545555355594044d556200095554d556555500010000100001080 +% 80000003fff9fffca8aa7fff10004aeae400120008aaaa40013fff9fffc4a8b3fff90004eaea200090004aaaa400100010000100001080 +% 80000003fff97774d556555511114d556400135558d55651113fff977745555355591114d556200095554d556511100010000100001080 +% 80000003fff9fffca2227bbb10004bbba400122228aaaa40013fff9fffc62233bbb90004bbba200092224aaaa400100010000100001080 +% 80000003fff95554d556555514044d556400135558d55655553fff955545555355594404d556200095554d556555500010000100001080 +% 80000003fff9fffc888a7fff10004eaee400120008aaaa40013fff9fffc68893fff90004eeae200090004aaaa400100010000100001080 +% 80000003fff97574d556555511114d556400135558d55651513fff957545555355591114d556200095554d556551500010000100001080 +% 80000003fff9fffca2227bfb10004bbba400122028aaaa40013fff9fffc62233fbf90004bbba200090204aaaa400100010000100001080 +% 80000003fff95554d556555510404d556400135558d55655553fff955545555355594044d556200095554d556555500010000100001080 +% 80000003fff9fffcfffe7fff1fffcfffe7fff3fff8fffe7fff3fff9fffc7fff3fff9fffcfffe3fff9fffcfffe7fff00010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 800000004400fe003f801fc00fe007f001fc00fe007f003f800fe007f003f801fc007f003f801fc00fe003f801fc000010000100001080 +% 800000008201830060c0306018300c180306018300c18060c018300c18060c030600c18060c030601830060c0306000010000100001080 +% 80000000820000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8000000082002c00000001c0000000000084002c00000010800000000000b000580000000f000200010000000020000010000100001080 +% 80000000c6006f0000800f200020001000e6006f0001001cc00020001001bc00de0001001bc0038001c000080038000010000100001080 +% 800000007c00450000800a200020001000a200450001001440002000100114008a000100114002c001600008002c000010000100001080 +% 80000000000045001fc00f2007f003f800920045003f80124007f003f80114008a003f8011400fe007f001fc00fe000010000100001080 +% 8000000002003900000007c000000000008c003900000011800000000000e400720000000e800200010000000020000010000100001080 +% 80000000020001000b00058003c00110001c002c0000000040000000000038008400000010800440030004040058000010000100001080 +% 80000000020041001bc00de006f0031800f2006f00010010400020001001e400e60001001cc00c6004f0061c00de000010000100001080 +% 80000000fe007900114008a00450024800a200450001001e4000200010014400a200010014400920049001f0008a000010000100001080 +% 8000000002000d00114008a00450024800f20045003f80034007f003f801e40092003f801240092004900000008a000010004100001080 +% 80000000020003000e40072003a001f0007c003900000000c00000000000f8008c000000118007c003e000800072000010004100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000001980000000010004100001080 +% 80000000fe01010040402020010001100202010100000040400010008004040202002100404020201010013402020000107fc100001080 +% 800000001001870061c030e001c00318030e018700010061c0041000e0061c030e00398061c030e018700124030e000010004100001080 +% 8000000010007c001f000f800160024800f8007c0001001f00079000b001f000f80028801f000f8007c0012400f8000010004100001080 +% 8000000010006c00ff00040007f0024800000064003f80ff0000d003f8019000d800248008000c80000001c800d8000010004100001080 +% 80000000fe005c001b000cc0010001f000f80054000000190000300080015000b800230019800a8007c0000400b8000010000100001080 +% 8000000000005400110009a01010080800080054008080110010100808015000a800808013400a800400000c00a80000107fc100001080 +% 80000000000054001100092018700c380008005400c380110018700c38015000a800c38012400a800400003000a8000010020100001080 +% 80000000fe0024001f00092007c003e000f8007c003e000e0007c003e001f00048003e0012400f8007c001e00048000010020100001080 +% 800000009201040000000e400000000000080000000000000000000000000002080000001c800000000000380208000010020100001080 +% 800000009201380019000000000000000008000000360000000000036000e002700036000000070006c0000c02700000107e0100001080 +% 800000009200e0001500002007c003e000f8007c002e001f0007c002e0019001c0002e0000400c8005c0000001c0000010000100001080 +% 8000000092003800150000600400002000c80004002a000100040002a001100070002a0000c00880054000800070000010000100001080 +% 8000000000000400150001800400002000a80004002a000e00040002a001100008002a00030008800540019800080000107e0100001080 +% 80000000000000001f000f0007c003e000a8007c0012001f0007c0012001fc00000012001e000fe0024001340000000010400100001080 +% 80000000fe007c00000001c006c0002000a80000008200150006c0082000e000f8008200038007000380012400f8000010400100001080 +% 80000000120004001f00006005c0002000f8007c009c00150005c009c001900008009c0000c00c8007c001240008000010600100001080 +% 800000001200040001000400054003e0000000040070001f00054007000110000800700008000880054001c800080000107e0100001080 +% 8000000012007c0000000cc00540032000000004001c000000054001c0011000f8001c00198008800540000000f8000010000100001080 +% 80000000f20000001b0009a0024002a000fa007c000200ff000240002001fc000000020013400fe007c000040000000010000100001080 +% 80000000ee00040017000920038002a0000000000000001900038000000000000800000012400000100000040008000010000100001080 +% 8000000000007f001500092007c002a000f80038003e00110007c003e0007000fe003e00124003801000000400fe000010000100001080 +% 800000000000440015000e40054003e000080064000200110005400020008800880002001c800440100001fc0088000010400100001080 +% 8000000000007f000900000005400000000800440002000e0005400020010400fe000200000008201000000400fe000010780100001080 +% 80000000000004000e00002007c003f800f80044003e00190007c003e001040008003e00004008201000000400080000100f0100001080 +% 80000000000004001f000020000000c000000038000200150000000020010400080002000040082010000000000800001009c100001080 +% 8000000000007c001500002001c000c000000004003f801500100003f8018c00f8003f8000400c6007f001fc00f800001009c100001080 +% 800000000000000015000fe0022001a00000007f00220015001000022000c800000022001fc006400640012400000000100f0100001080 +% 80000000000100001f00002004100200000000440000001f00100000000070020000000000400380044001240200000010780100001080 +% 800000000001000000000020041001c000000064003f800000100003f800880200003f8000400440044001240200000010400100001080 +% 800000000001000000000000041003e0000000540002000000100000200104020000020000000820038001240200000010000100001080 +% 800000000001000000000fe0063002a0000000540002001f0017f00020010402000002001fc0082007f0000002000000107e0100001080 +% 800000000001000000000920032002a000000054003e000100064003e001040200003e0012400820064001fc0200000010400100001080 +% 80000000000100000000092001c003e00000007c0000001b0004400000018c020000000012400c60044000180200000010400100001080 +% 800000000000420000000920022000e00000000000800017000440080000c8008400000012400640044001e00084000010600100001080 +% 800000000000730000000920041001100000000400800015000380080001b000e6003f8012400d800380018000e60000107e0100001080 +% 800000000000510000000000041002080000007f008000150000000800017000a200200000000b800000007000a20000103c0100001080 +% 800000000000490000000000041002080000007c008000090007f008000150009200200000000a800000001c0092000013660100001080 +% 800000000000460000000fe0063002080000007c0080000e00064008000150008c0020001fc00a80000001fc008c000012420100001080 +% 8000000000000000000000c0032003180000005400a1001f0004400a100090000000000001800480000000000000000012420100001080 +% 800000000000c00000000f00038001900000005400398015000440039804000180003e801e002000000000000000000013fe0100001080 +% 800000000000000000000c00064000e00000007c0028801500038002880400000000000018002000000000000000000011fe0100001080 +% 80000000000064000000038004400110000000000024801f000000024804000000003e0007002000000000000000000010000100001080 +% 8000000000005400000000e0044002080000010000230000000c000230040000f800020001c02000000000000000000010000100001080 +% 800000000000540000000fe007f0020800000100000000000000000000040000800002001fc02000000000000000000010000100001080 +% 8000000000005400000000000000020800000100000000000006c0000004000080003e0000002000000000000000000010000100001080 +% 8000000000007c00000018000380031800000100006000000005c00600003000f800000030000180000000000000000010420100001080 +% 80000000000038000000000007c001900000010000000000000540000001e000d8001c0000000f00000000000000000010738100001080 +% 8000000000006400000000000540000000000100003e000000054003e001c000b8003e001b000e00000000000000000010588100001080 +% 800000000000440000000f80054001c000000000000200000002400020003000a8002a0017000180000000000000000010488100001080 +% 80000000000044000000080007c003200000007d00020000001040002001e000a8002a0015000f000000000000000000104c8100001080 +% 8000000000007f000000080006c0022000000000003e000000138003e001c00048003e0015000e00000000000000000010478100001080 +% 800000000000000000000f8005c002200000007c00020000000e0000200030007000000009000180000000000000000010000100001080 +% 800000000000380000000000054003f800000004000200000003800020000000f800000041000000000000000000000010210100001080 +% 800000000000640000000d80054001c000000004003e000000004003e001f000a80000004e000f80000000000000000010718100001080 +% 800000000000440000000b80024003e00000007c000000000000000000001000a800000038000080000000000000000010408100001080 +% 800000000000440000000a80038002a00000006c003200000007c0032001fc00f80000000e000fe0000000000000000010448100001080 +% 8000000000007f0000000a80064002a00000005c002a000000004002a000600000000000010003000000000000000000104c8100001080 +% 800000000000000000000480044003e000000054002a000000004002a000600200000000000003000000000000000000103b0100001080 +% 8000000000001c00000007000440000000000054002a00000007c002a000d002000000001f000680000000000000000010000100001080 +% 800000000000220000000f8002c0036000000024003e000000000003e00100020000000001000800000000000000000010000100001080 +% 800000000000410000000a80000002e000000000003f800000004003f80000020000000001000000000000000000000010000100001080 +% 800000000000410000000a8007c002a00000007c000c00000007f000c0030002000000001f000000000000000000000010000100001080 +% 800000000000410000000f80004002a000000004000c000000044000c00000020000000000000000000000000000000010000100001080 +% 8000000000006300000020000000012000000004001a000000000001a0000000fe00000001000000000000000000000010010100001080 +% 800000000000320000002000000001c00000007c002000000007f0020001f000c80000001fc00000000000000000000010010100001080 +% 8000000000001c000000200007d0032000000000001c000000004001c001000088000000110000000000000000000000107f8100001080 +% 8000000000002200000020003fc0022000000000003e000000004003e0010000880000001fc00000000000000000000010000100001080 +% 8000000000004100000020000640022000000000002a00000007c002a001f0007000000001000000000000000000000010000100001080 +% 8000000000004100000020000440016000000000002a000000000002a0000000fe00000001000000000000000000000010000100001080 +% 800000000000410000000fe00440000000000000003e00000007f003e001b000c80000001f000000000000000000000010008100001080 +% 800000000000630000000c80038003e0000000000000000000040000000170008800000000000000000000000000000010008100001080 +% 8000000000003200000008800040002000000000000e000000040000e00150008800000040000000000000000000000010708100001080 +% 8000000000006c000000088007f000000000000000110000000400011001500070000000400000000000000000000000101c8100001080 +% 8000000000005c0000000700044003e8000000000020800000000002080090000000000040000000000000000000000010028100001080 +% 800000000000540000000fe003801fe00000000000208000000000020800e0000000000040000000000000000000000010018100001080 +% 800000000000540000000c800640032000000000002080000007d0020801f0000000000040000000000000000000000010000100001080 +% 80000000000024000000088004400220000000000031800000000003180150000000000050800000000000000000000010420100001080 +% 8000000000010000000008800440022000000000001900000007c00190015000000000001cc00000000000000000000010000100001080 +% 800000000001000000000700038001c000000000000e000000004000e001f0000000000014400000000000000000000010000100001080 +% 80000000000100000000000000000000000000000011000000004001100400000000000012400000000000000000000010210100001080 +% 8000000000010000000000000000002000000000002080000007c002080400000000000011800000000000000000000010718100001080 +% 80000000000100000000000007c003f8000000000020800000038002080400000000000000000000000000000000000010408100001080 +% 8000000000010000000000000040022000000000002080000007c002080400000000000000000000000000000000000010448100001080 +% 8000000000000c000000000006c001c00000000000318000000540031804000000000000000000000000000000000000104c8100001080 +% 80000000000078000000000005c003200000000000190000000540019004000000000000000000000000000000000000103b0100001080 +% 8000000000007000000000000540022000000000001c00000007c001c001fc000000000000000000000000000000000010008100001080 +% 8000000000000c000000000005400220000000000032000000000003200190000000000000000000000000000000000010008100001080 +% 800000000000780000000000024001c0000000000022000000000002200110000000000000000000000000000000000010708100001080 +% 800000000000700000000000000000000000000000220000000000022001100000000000000000000000000000000000101c8100001080 +% 8000000000000c0000000000000003e000000000003f800000000003f800e0000000000000000000000000000000000010028100001080 +% 800000000000000000000000000000200000000000000000000000000001fc000000000000000000000000000000000010018100001080 +% 8000000000007c00000000000000036000000000001c000000000001c00190000000000000000000000000000000000010000100001080 +% 800000000000040000000000000002e000000000003e000000000003e00110000000000000000000000000000000000010000100001080 +% 8000000000007f0000000000000002a000000000002a000000000002a00110000000000000000000000000000000000010000100001080 +% 800000000000180000000000000002a000000000002a000000000002a000e0000000000000000000000000000000000010000100001080 +% 8000000000001800000000000000012000000000003e000000000003e00000000000000000000000000000000000000010420100001080 +% 80000000000034000000000000000000000000000036000000000003600000000000000000000000000000000000000010738100001080 +% 8000000000004000000000000000000000000000002e000000000002e00000000000000000000000000000000000000010588100001080 +% 8000000000000000000000000000000000000000002a000000000002a00000000000000000000000000000000000000010488100001080 +% 8000000000000000000000000000000000000000002a000000000002a000000000000000000000000000000000000000104c8100001080 +% 80000000000000000000000000000000000000000012000000000001200000000000000000000000000000000000000010478100001080 +% 8000000000000000000000000000000000000000001c000000000001c00000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000032000000000003200000000000000000000000000000000000000010000100001080 +% 800000000000000000000000000000000000000000220000000000022000000000000000000000000000000000000000103f8100001080 +% 80000000000000000000000000000000000000000022000000000002200000000000000000000000000000000000000010618100001080 +% 80000000000000000000000000000000000000000016000000000001600000000000000000000000000000000000000010408100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010618100001080 +% 8000000000000000000000000000000000000000003e000000000003e000000000000000000000000000000000000000103f0100001080 +% 80000000000000000000000000000000000000000002000000000000200000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103f8100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010618100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010408100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010618100001080 +% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000103f0100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010100001080 +% 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000107f8100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000100001080 +% 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffffff080 % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 % 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080 @@ -680,31 +680,30 @@ closepath 0.500000 setlinewidth stroke newpath -5.000000 407.000000 moveto -0 20.000000 rlineto +5.000000 387.000000 moveto +0 40.000000 rlineto 638.000000 0 rlineto -0 -20.000000 rlineto +0 -40.000000 rlineto closepath 0.500000 setlinewidth stroke +5.000000 407.000000 moveto +638.000000 0 rlineto +stroke HE12 setfont 11.000000 413.000000 moveto -(cacheprof_p +RTS -hR1.0 +(cacheprof_p -ghc-timing +RTS -H10m -K10m -p -hR -i1.0 -sstderr ) show HE12 setfont -(26,553,800 bytes x seconds (MUT)) -dup stringwidth pop -2 div -319.000000 -exch sub -413.000000 moveto +11.000000 393.000000 moveto +(22,191,444 bytes x seconds (MUT)) show HE12 setfont -(Sun Aug 5 01:04 2001) +(Thu Aug 23 17:37 2001) dup stringwidth pop 637.000000 exch sub -413.000000 moveto +393.000000 moveto show 45.000000 20.000000 moveto 431.338567 0 rlineto @@ -727,55 +726,45 @@ dup stringwidth pop 45.000000 exch sub 5.000000 moveto show -127.949724 20.000000 moveto +135.712632 20.000000 moveto 0 -4 rlineto stroke HE10 setfont (2.0) dup stringwidth pop 2 div -127.949724 exch sub +135.712632 exch sub 5.000000 moveto show -210.899449 20.000000 moveto +226.425265 20.000000 moveto 0 -4 rlineto stroke HE10 setfont (4.0) dup stringwidth pop 2 div -210.899449 exch sub +226.425265 exch sub 5.000000 moveto show -293.849173 20.000000 moveto +317.137897 20.000000 moveto 0 -4 rlineto stroke HE10 setfont (6.0) dup stringwidth pop 2 div -293.849173 exch sub -5.000000 moveto -show -376.798898 20.000000 moveto -0 -4 rlineto -stroke -HE10 setfont -(8.0) -dup stringwidth pop -2 div -376.798898 exch sub +317.137897 exch sub 5.000000 moveto show 45.000000 20.000000 moveto -0 382.000000 rlineto +0 362.000000 rlineto 0.500000 setlinewidth stroke gsave HE10 setfont (bytes) dup stringwidth pop -402.000000 +382.000000 exch sub 40.000000 exch translate @@ -796,124 +785,111 @@ exch exch moveto show -45.000000 57.329039 moveto +45.000000 56.751299 moveto -4 0 rlineto stroke HE10 setfont (500k) dup stringwidth 2 div -57.329039 exch sub +56.751299 exch sub exch 40.000000 exch sub exch moveto show -45.000000 94.658078 moveto +45.000000 93.502598 moveto -4 0 rlineto stroke HE10 setfont (1,000k) dup stringwidth 2 div -94.658078 exch sub +93.502598 exch sub exch 40.000000 exch sub exch moveto show -45.000000 131.987117 moveto +45.000000 130.253897 moveto -4 0 rlineto stroke HE10 setfont (1,500k) dup stringwidth 2 div -131.987117 exch sub +130.253897 exch sub exch 40.000000 exch sub exch moveto show -45.000000 169.316155 moveto +45.000000 167.005196 moveto -4 0 rlineto stroke HE10 setfont (2,000k) dup stringwidth 2 div -169.316155 exch sub +167.005196 exch sub exch 40.000000 exch sub exch moveto show -45.000000 206.645194 moveto +45.000000 203.756494 moveto -4 0 rlineto stroke HE10 setfont (2,500k) dup stringwidth 2 div -206.645194 exch sub +203.756494 exch sub exch 40.000000 exch sub exch moveto show -45.000000 243.974233 moveto +45.000000 240.507793 moveto -4 0 rlineto stroke HE10 setfont (3,000k) dup stringwidth 2 div -243.974233 exch sub +240.507793 exch sub exch 40.000000 exch sub exch moveto show -45.000000 281.303272 moveto +45.000000 277.259092 moveto -4 0 rlineto stroke HE10 setfont (3,500k) dup stringwidth 2 div -281.303272 exch sub +277.259092 exch sub exch 40.000000 exch sub exch moveto show -45.000000 318.632311 moveto +45.000000 314.010391 moveto -4 0 rlineto stroke HE10 setfont (4,000k) dup stringwidth 2 div -318.632311 exch sub -exch -40.000000 exch sub -exch -moveto -show -45.000000 355.961350 moveto --4 0 rlineto -stroke -HE10 setfont -(4,500k) -dup stringwidth -2 div -355.961350 exch sub +314.010391 exch sub exch 40.000000 exch sub exch moveto show -481.338567 31.190476 moveto +481.338567 30.238095 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -924,9 +900,9 @@ fill grestore stroke HE10 setfont -500.338567 33.190476 moveto +500.338567 32.238095 moveto (OTHER) show -481.338567 49.380952 moveto +481.338567 47.476190 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -937,9 +913,9 @@ fill grestore stroke HE10 setfont -500.338567 51.380952 moveto -((58)synth_2,use_bb) show -481.338567 67.571429 moveto +500.338567 49.476190 moveto +((57)synth_2,addCCs_wrk) show +481.338567 64.714286 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -950,9 +926,9 @@ fill grestore stroke HE10 setfont -500.338567 69.571429 moveto -((30)main) show -481.338567 85.761905 moveto +500.338567 66.714286 moveto +((15)parse) show +481.338567 81.952381 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -963,9 +939,9 @@ fill grestore stroke HE10 setfont -500.338567 87.761905 moveto -((177)useCCdescriptors) show -481.338567 103.952381 moveto +500.338567 83.952381 moveto +((95)SYSTEM,use_bb) show +481.338567 99.190476 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -976,9 +952,9 @@ fill grestore stroke HE10 setfont -500.338567 105.952381 moveto -((74)SYSTEM,doFile) show -481.338567 122.142857 moveto +500.338567 101.190476 moveto +((164)useCCdescriptors) show +481.338567 116.428571 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -989,9 +965,9 @@ fill grestore stroke HE10 setfont -500.338567 124.142857 moveto -((61)annotate_insn) show -481.338567 140.333333 moveto +500.338567 118.428571 moveto +((133)makeCCdescriptors) show +481.338567 133.666667 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1002,9 +978,9 @@ fill grestore stroke HE10 setfont -500.338567 142.333333 moveto -((127)use_bb,synthLine) show -481.338567 158.523810 moveto +500.338567 135.666667 moveto +((29)main) show +481.338567 150.904762 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1015,9 +991,9 @@ fill grestore stroke HE10 setfont -500.338567 160.523810 moveto -((152)synth_2,makeCCdescr) show -481.338567 176.714286 moveto +500.338567 152.904762 moveto +((55)annotate_insn) show +481.338567 168.142857 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1028,9 +1004,9 @@ fill grestore stroke HE10 setfont -500.338567 178.714286 moveto -((155)synth_2,synthLine,m) show -481.338567 194.904762 moveto +500.338567 170.142857 moveto +((111)synth_2,makeCCdescr) show +481.338567 185.380952 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1041,9 +1017,9 @@ fill grestore stroke HE10 setfont -500.338567 196.904762 moveto -((28)preparse) show -481.338567 213.095238 moveto +500.338567 187.380952 moveto +((27)preparse) show +481.338567 202.619048 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1054,9 +1030,9 @@ fill grestore stroke HE10 setfont -500.338567 215.095238 moveto -((73)doFile,synth_2,use_b) show -481.338567 231.285714 moveto +500.338567 204.619048 moveto +((117)use_bb,synthLine) show +481.338567 219.857143 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1067,9 +1043,9 @@ fill grestore stroke HE10 setfont -500.338567 233.285714 moveto -((65)addCCs_wrk,use_bb) show -481.338567 249.476190 moveto +500.338567 221.857143 moveto +((114)synth_2,makeCCdescr) show +481.338567 237.095238 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1080,9 +1056,9 @@ fill grestore stroke HE10 setfont -500.338567 251.476190 moveto -((126)synthLine) show -481.338567 267.666667 moveto +500.338567 239.095238 moveto +((59)addCCs_wrk,use_bb) show +481.338567 254.333333 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1093,9 +1069,9 @@ fill grestore stroke HE10 setfont -500.338567 269.666667 moveto -((13)doFile) show -481.338567 285.857143 moveto +500.338567 256.333333 moveto +((52)synth_2,use_bb) show +481.338567 271.571429 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1106,9 +1082,9 @@ fill grestore stroke HE10 setfont -500.338567 287.857143 moveto -((68)SYSTEM,synth_2) show -481.338567 304.047619 moveto +500.338567 273.571429 moveto +((112)synthLine) show +481.338567 288.809524 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1119,9 +1095,9 @@ fill grestore stroke HE10 setfont -500.338567 306.047619 moveto -((50)addCCs_wrk) show -481.338567 322.238095 moveto +500.338567 290.809524 moveto +((62)SYSTEM,synth_2) show +481.338567 306.047619 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1132,9 +1108,9 @@ fill grestore stroke HE10 setfont -500.338567 324.238095 moveto -((55)use_bb) show -481.338567 340.428571 moveto +500.338567 308.047619 moveto +((43)addCCs_wrk) show +481.338567 323.285714 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1145,9 +1121,9 @@ fill grestore stroke HE10 setfont -500.338567 342.428571 moveto -((1)SYSTEM) show -481.338567 358.619048 moveto +500.338567 325.285714 moveto +((48)use_bb) show +481.338567 340.523810 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1158,9 +1134,9 @@ fill grestore stroke HE10 setfont -500.338567 360.619048 moveto -((52)synth_2) show -481.338567 376.809524 moveto +500.338567 342.523810 moveto +((1)SYSTEM) show +481.338567 357.761905 moveto 0 14 rlineto 14 0 rlineto 0 -14 rlineto @@ -1171,37 +1147,41 @@ fill grestore stroke HE10 setfont -500.338567 378.809524 moveto -((71)doFile,synth_2) show +500.338567 359.761905 moveto +((45)synth_2) show 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 20.000000 lineto -128.364473 20.000000 lineto -169.424587 20.000000 lineto -200.945482 20.000000 lineto -233.710623 20.000000 lineto -266.061016 20.000000 lineto -296.752414 20.000000 lineto -326.199566 20.000000 lineto -351.499232 20.000000 lineto -383.434876 20.000000 lineto -418.273760 20.000000 lineto -457.260131 20.000000 lineto +88.542064 20.000000 lineto +125.280680 20.000000 lineto +160.658606 20.000000 lineto +191.954465 20.000000 lineto +221.889633 20.000000 lineto +249.556986 20.000000 lineto +275.410086 20.000000 lineto +298.541808 20.000000 lineto +316.230771 20.000000 lineto +330.291229 20.000000 lineto +356.144329 20.000000 lineto +386.533061 20.000000 lineto +421.457425 20.000000 lineto +459.556730 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 20.628024 lineto -418.273760 20.628024 lineto -383.434876 20.628024 lineto -351.499232 20.628024 lineto -326.199566 29.819030 lineto -296.752414 23.264947 lineto -266.061016 23.264051 lineto -233.710623 21.764021 lineto -200.945482 23.123097 lineto -169.424587 23.221944 lineto -128.364473 23.015589 lineto -88.963354 22.003524 lineto +459.556730 20.618304 lineto +421.457425 28.827368 lineto +386.533061 20.618304 lineto +356.144329 20.618304 lineto +330.291229 20.618304 lineto +316.230771 28.577459 lineto +298.541808 20.618304 lineto +275.410086 20.618304 lineto +249.556986 20.618304 lineto +221.889633 20.618304 lineto +191.954465 20.618304 lineto +160.658606 20.618304 lineto +125.280680 20.618304 lineto +88.542064 20.618304 lineto 45.000000 20.000000 lineto closepath gsave @@ -1211,33 +1191,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 22.003524 lineto -128.364473 23.015589 lineto -169.424587 23.221944 lineto -200.945482 23.123097 lineto -233.710623 21.764021 lineto -266.061016 23.264051 lineto -296.752414 23.264947 lineto -326.199566 29.819030 lineto -351.499232 20.628024 lineto -383.434876 20.628024 lineto -418.273760 20.628024 lineto -457.260131 20.628024 lineto +88.542064 20.618304 lineto +125.280680 20.618304 lineto +160.658606 20.618304 lineto +191.954465 20.618304 lineto +221.889633 20.618304 lineto +249.556986 20.618304 lineto +275.410086 20.618304 lineto +298.541808 20.618304 lineto +316.230771 28.577459 lineto +330.291229 20.618304 lineto +356.144329 20.618304 lineto +386.533061 20.618304 lineto +421.457425 28.827368 lineto +459.556730 20.618304 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 20.628024 lineto -418.273760 21.382668 lineto -383.434876 24.180852 lineto -351.499232 28.107867 lineto -326.199566 29.819030 lineto -296.752414 23.264947 lineto -266.061016 23.264051 lineto -233.710623 21.764021 lineto -200.945482 23.123097 lineto -169.424587 23.221944 lineto -128.364473 23.015589 lineto -88.963354 22.003524 lineto +459.556730 20.618304 lineto +421.457425 28.827368 lineto +386.533061 20.618304 lineto +356.144329 20.654467 lineto +330.291229 21.323929 lineto +316.230771 28.577459 lineto +298.541808 21.736719 lineto +275.410086 21.736719 lineto +249.556986 21.736719 lineto +221.889633 21.736719 lineto +191.954465 21.736719 lineto +160.658606 21.700556 lineto +125.280680 21.571780 lineto +88.542064 20.955240 lineto 45.000000 20.000000 lineto closepath gsave @@ -1247,33 +1231,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 22.003524 lineto -128.364473 23.015589 lineto -169.424587 23.221944 lineto -200.945482 23.123097 lineto -233.710623 21.764021 lineto -266.061016 23.264051 lineto -296.752414 23.264947 lineto -326.199566 29.819030 lineto -351.499232 28.107867 lineto -383.434876 24.180852 lineto -418.273760 21.382668 lineto -457.260131 20.628024 lineto +88.542064 20.955240 lineto +125.280680 21.571780 lineto +160.658606 21.700556 lineto +191.954465 21.736719 lineto +221.889633 21.736719 lineto +249.556986 21.736719 lineto +275.410086 21.736719 lineto +298.541808 21.736719 lineto +316.230771 28.577459 lineto +330.291229 21.323929 lineto +356.144329 20.654467 lineto +386.533061 20.618304 lineto +421.457425 28.827368 lineto +459.556730 20.618304 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 21.273368 lineto -418.273760 22.028012 lineto -383.434876 24.826197 lineto -351.499232 28.753212 lineto -326.199566 30.464375 lineto -296.752414 24.525474 lineto -266.061016 24.524578 lineto -233.710623 23.024548 lineto -200.945482 24.383624 lineto -169.424587 24.482471 lineto -128.364473 24.276116 lineto -88.963354 23.264051 lineto +459.556730 20.618304 lineto +421.457425 28.827368 lineto +386.533061 20.618304 lineto +356.144329 20.654467 lineto +330.291229 21.323929 lineto +316.230771 28.577459 lineto +298.541808 23.214416 lineto +275.410086 23.213534 lineto +249.556986 23.213534 lineto +221.889633 23.074761 lineto +191.954465 23.074761 lineto +160.658606 21.700556 lineto +125.280680 22.833966 lineto +88.542064 21.955757 lineto 45.000000 20.000000 lineto closepath gsave @@ -1283,33 +1271,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.264051 lineto -128.364473 24.276116 lineto -169.424587 24.482471 lineto -200.945482 24.383624 lineto -233.710623 23.024548 lineto -266.061016 24.524578 lineto -296.752414 24.525474 lineto -326.199566 30.464375 lineto -351.499232 28.753212 lineto -383.434876 24.826197 lineto -418.273760 22.028012 lineto -457.260131 21.273368 lineto +88.542064 21.955757 lineto +125.280680 22.833966 lineto +160.658606 21.700556 lineto +191.954465 23.074761 lineto +221.889633 23.074761 lineto +249.556986 23.213534 lineto +275.410086 23.213534 lineto +298.541808 23.214416 lineto +316.230771 28.577459 lineto +330.291229 21.323929 lineto +356.144329 20.654467 lineto +386.533061 20.618304 lineto +421.457425 28.827368 lineto +459.556730 20.618304 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 22.028012 lineto -383.434876 24.826197 lineto -351.499232 28.753212 lineto -326.199566 30.464375 lineto -296.752414 24.525474 lineto -266.061016 24.524578 lineto -233.710623 23.024548 lineto -200.945482 24.383624 lineto -169.424587 24.482471 lineto -128.364473 24.276116 lineto -88.963354 23.264051 lineto +459.556730 20.618304 lineto +421.457425 28.827368 lineto +386.533061 20.618304 lineto +356.144329 20.654467 lineto +330.291229 21.323929 lineto +316.230771 38.031951 lineto +298.541808 23.214416 lineto +275.410086 23.213534 lineto +249.556986 23.213534 lineto +221.889633 23.074761 lineto +191.954465 23.074761 lineto +160.658606 21.700556 lineto +125.280680 22.833966 lineto +88.542064 21.955757 lineto 45.000000 20.000000 lineto closepath gsave @@ -1319,33 +1311,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.264051 lineto -128.364473 24.276116 lineto -169.424587 24.482471 lineto -200.945482 24.383624 lineto -233.710623 23.024548 lineto -266.061016 24.524578 lineto -296.752414 24.525474 lineto -326.199566 30.464375 lineto -351.499232 28.753212 lineto -383.434876 24.826197 lineto -418.273760 22.028012 lineto -457.260131 33.953893 lineto +88.542064 21.955757 lineto +125.280680 22.833966 lineto +160.658606 21.700556 lineto +191.954465 23.074761 lineto +221.889633 23.074761 lineto +249.556986 23.213534 lineto +275.410086 23.213534 lineto +298.541808 23.214416 lineto +316.230771 38.031951 lineto +330.291229 21.323929 lineto +356.144329 20.654467 lineto +386.533061 20.618304 lineto +421.457425 28.827368 lineto +459.556730 20.618304 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 22.028012 lineto -383.434876 24.826197 lineto -351.499232 28.753212 lineto -326.199566 43.643915 lineto -296.752414 24.526370 lineto -266.061016 24.525474 lineto -233.710623 23.025444 lineto -200.945482 24.384520 lineto -169.424587 24.483367 lineto -128.364473 24.277012 lineto -88.963354 23.264947 lineto +459.556730 31.040972 lineto +421.457425 28.827368 lineto +386.533061 20.618304 lineto +356.144329 20.654467 lineto +330.291229 21.323929 lineto +316.230771 38.031951 lineto +298.541808 23.214416 lineto +275.410086 23.213534 lineto +249.556986 23.213534 lineto +221.889633 23.074761 lineto +191.954465 23.074761 lineto +160.658606 21.700556 lineto +125.280680 22.833966 lineto +88.542064 21.955757 lineto 45.000000 20.000000 lineto closepath gsave @@ -1355,33 +1351,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.264947 lineto -128.364473 24.277012 lineto -169.424587 24.483367 lineto -200.945482 24.384520 lineto -233.710623 23.025444 lineto -266.061016 24.525474 lineto -296.752414 24.526370 lineto -326.199566 43.643915 lineto -351.499232 28.753212 lineto -383.434876 24.826197 lineto -418.273760 22.028012 lineto -457.260131 33.953893 lineto +88.542064 21.955757 lineto +125.280680 22.833966 lineto +160.658606 21.700556 lineto +191.954465 23.074761 lineto +221.889633 23.074761 lineto +249.556986 23.213534 lineto +275.410086 23.213534 lineto +298.541808 23.214416 lineto +316.230771 38.031951 lineto +330.291229 21.323929 lineto +356.144329 20.654467 lineto +386.533061 20.618304 lineto +421.457425 28.827368 lineto +459.556730 31.040972 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 22.305740 lineto -383.434876 26.247089 lineto -351.499232 30.702683 lineto -326.199566 45.924868 lineto -296.752414 26.560056 lineto -266.061016 26.265306 lineto -233.710623 24.466046 lineto -200.945482 25.404050 lineto -169.424587 25.119454 lineto -128.364473 24.812758 lineto -88.963354 23.569552 lineto +459.556730 31.040972 lineto +421.457425 41.485985 lineto +386.533061 20.620068 lineto +356.144329 20.656231 lineto +330.291229 21.325693 lineto +316.230771 38.031951 lineto +298.541808 23.214416 lineto +275.410086 23.213534 lineto +249.556986 23.213534 lineto +221.889633 23.074761 lineto +191.954465 23.074761 lineto +160.658606 21.700556 lineto +125.280680 22.833966 lineto +88.542064 21.955757 lineto 45.000000 20.000000 lineto closepath gsave @@ -1391,33 +1391,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.569552 lineto -128.364473 24.812758 lineto -169.424587 25.119454 lineto -200.945482 25.404050 lineto -233.710623 24.466046 lineto -266.061016 26.265306 lineto -296.752414 26.560056 lineto -326.199566 45.924868 lineto -351.499232 30.702683 lineto -383.434876 26.247089 lineto -418.273760 22.305740 lineto -457.260131 33.953893 lineto +88.542064 21.955757 lineto +125.280680 22.833966 lineto +160.658606 21.700556 lineto +191.954465 23.074761 lineto +221.889633 23.074761 lineto +249.556986 23.213534 lineto +275.410086 23.213534 lineto +298.541808 23.214416 lineto +316.230771 38.031951 lineto +330.291229 21.325693 lineto +356.144329 20.656231 lineto +386.533061 20.620068 lineto +421.457425 41.485985 lineto +459.556730 31.040972 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 23.910889 lineto -383.434876 33.518487 lineto -351.499232 41.258440 lineto -326.199566 45.924868 lineto -296.752414 26.560056 lineto -266.061016 26.265306 lineto -233.710623 24.466046 lineto -200.945482 25.404050 lineto -169.424587 25.119454 lineto -128.364473 24.812758 lineto -88.963354 23.569552 lineto +459.556730 31.679269 lineto +421.457425 42.124282 lineto +386.533061 21.258364 lineto +356.144329 21.294528 lineto +330.291229 21.963989 lineto +316.230771 39.278849 lineto +298.541808 24.455433 lineto +275.410086 24.454551 lineto +249.556986 24.454551 lineto +221.889633 24.315779 lineto +191.954465 24.315779 lineto +160.658606 22.941574 lineto +125.280680 24.074984 lineto +88.542064 23.196775 lineto 45.000000 20.000000 lineto closepath gsave @@ -1427,33 +1431,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.569552 lineto -128.364473 24.812758 lineto -169.424587 25.119454 lineto -200.945482 25.404050 lineto -233.710623 24.466046 lineto -266.061016 26.265306 lineto -296.752414 26.560056 lineto -326.199566 45.924868 lineto -351.499232 41.258440 lineto -383.434876 33.518487 lineto -418.273760 23.910889 lineto -457.260131 33.953893 lineto +88.542064 23.196775 lineto +125.280680 24.074984 lineto +160.658606 22.941574 lineto +191.954465 24.315779 lineto +221.889633 24.315779 lineto +249.556986 24.454551 lineto +275.410086 24.454551 lineto +298.541808 24.455433 lineto +316.230771 39.278849 lineto +330.291229 21.963989 lineto +356.144329 21.294528 lineto +386.533061 21.258364 lineto +421.457425 42.124282 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 36.299053 lineto -383.434876 40.068390 lineto -351.499232 42.967512 lineto -326.199566 45.924868 lineto -296.752414 26.560056 lineto -266.061016 26.265306 lineto -233.710623 24.466046 lineto -200.945482 25.404050 lineto -169.424587 25.119454 lineto -128.364473 24.812758 lineto -88.963354 23.569552 lineto +459.556730 31.679269 lineto +421.457425 42.124282 lineto +386.533061 22.023968 lineto +356.144329 22.922757 lineto +330.291229 23.872705 lineto +316.230771 41.524501 lineto +298.541808 26.559960 lineto +275.410086 26.340334 lineto +249.556986 26.038679 lineto +221.889633 25.642353 lineto +191.954465 25.245439 lineto +160.658606 23.546647 lineto +125.280680 24.593618 lineto +88.542064 23.493137 lineto 45.000000 20.000000 lineto closepath gsave @@ -1463,33 +1471,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.569552 lineto -128.364473 24.812758 lineto -169.424587 25.119454 lineto -200.945482 25.404050 lineto -233.710623 24.466046 lineto -266.061016 26.265306 lineto -296.752414 26.560056 lineto -326.199566 45.924868 lineto -351.499232 42.967512 lineto -383.434876 40.068390 lineto -418.273760 36.299053 lineto -457.260131 33.953893 lineto +88.542064 23.493137 lineto +125.280680 24.593618 lineto +160.658606 23.546647 lineto +191.954465 25.245439 lineto +221.889633 25.642353 lineto +249.556986 26.038679 lineto +275.410086 26.340334 lineto +298.541808 26.559960 lineto +316.230771 41.524501 lineto +330.291229 23.872705 lineto +356.144329 22.922757 lineto +386.533061 22.023968 lineto +421.457425 42.124282 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 37.789228 lineto -383.434876 47.396827 lineto -351.499232 55.136779 lineto -326.199566 45.924868 lineto -296.752414 26.560056 lineto -266.061016 26.265306 lineto -233.710623 24.466046 lineto -200.945482 25.404050 lineto -169.424587 25.119454 lineto -128.364473 24.812758 lineto -88.963354 23.569552 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 31.368500 lineto +356.144329 28.080582 lineto +330.291229 25.593548 lineto +316.230771 41.524501 lineto +298.541808 26.559960 lineto +275.410086 26.340334 lineto +249.556986 26.038679 lineto +221.889633 25.642353 lineto +191.954465 25.245439 lineto +160.658606 23.546647 lineto +125.280680 24.593618 lineto +88.542064 23.493137 lineto 45.000000 20.000000 lineto closepath gsave @@ -1499,33 +1511,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 23.569552 lineto -128.364473 24.812758 lineto -169.424587 25.119454 lineto -200.945482 25.404050 lineto -233.710623 24.466046 lineto -266.061016 26.265306 lineto -296.752414 26.560056 lineto -326.199566 45.924868 lineto -351.499232 55.136779 lineto -383.434876 47.396827 lineto -418.273760 37.789228 lineto -457.260131 33.953893 lineto +88.542064 23.493137 lineto +125.280680 24.593618 lineto +160.658606 23.546647 lineto +191.954465 25.245439 lineto +221.889633 25.642353 lineto +249.556986 26.038679 lineto +275.410086 26.340334 lineto +298.541808 26.559960 lineto +316.230771 41.524501 lineto +330.291229 25.593548 lineto +356.144329 28.080582 lineto +386.533061 31.368500 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 37.789228 lineto -383.434876 47.396827 lineto -351.499232 55.136779 lineto -326.199566 45.924868 lineto -296.752414 32.063849 lineto -266.061016 28.437259 lineto -233.710623 24.466046 lineto -200.945482 25.417787 lineto -169.424587 29.059011 lineto -128.364473 31.741924 lineto -88.963354 28.103985 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 31.368500 lineto +356.144329 28.080582 lineto +330.291229 25.593548 lineto +316.230771 41.524501 lineto +298.541808 32.677140 lineto +275.410086 32.867659 lineto +249.556986 27.036551 lineto +221.889633 29.209581 lineto +191.954465 32.384894 lineto +160.658606 24.587738 lineto +125.280680 24.605379 lineto +88.542064 29.373933 lineto 45.000000 20.000000 lineto closepath gsave @@ -1535,33 +1551,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 28.103985 lineto -128.364473 31.741924 lineto -169.424587 29.059011 lineto -200.945482 25.417787 lineto -233.710623 24.466046 lineto -266.061016 28.437259 lineto -296.752414 32.063849 lineto -326.199566 45.924868 lineto -351.499232 55.136779 lineto -383.434876 47.396827 lineto -418.273760 37.789228 lineto -457.260131 33.953893 lineto +88.542064 29.373933 lineto +125.280680 24.605379 lineto +160.658606 24.587738 lineto +191.954465 32.384894 lineto +221.889633 29.209581 lineto +249.556986 27.036551 lineto +275.410086 32.867659 lineto +298.541808 32.677140 lineto +316.230771 41.524501 lineto +330.291229 25.593548 lineto +356.144329 28.080582 lineto +386.533061 31.368500 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 37.789228 lineto -383.434876 47.396827 lineto -351.499232 55.136779 lineto -326.199566 55.533661 lineto -296.752414 41.911549 lineto -266.061016 37.163892 lineto -233.710623 32.465809 lineto -200.945482 32.576601 lineto -169.424587 35.533957 lineto -128.364473 36.393122 lineto -88.963354 30.808996 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 35.123306 lineto +356.144329 36.264949 lineto +330.291229 35.930071 lineto +316.230771 53.392818 lineto +298.541808 32.677140 lineto +275.410086 32.867659 lineto +249.556986 27.036551 lineto +221.889633 29.209581 lineto +191.954465 32.384894 lineto +160.658606 24.587738 lineto +125.280680 24.605379 lineto +88.542064 29.373933 lineto 45.000000 20.000000 lineto closepath gsave @@ -1571,33 +1591,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 30.808996 lineto -128.364473 36.393122 lineto -169.424587 35.533957 lineto -200.945482 32.576601 lineto -233.710623 32.465809 lineto -266.061016 37.163892 lineto -296.752414 41.911549 lineto -326.199566 55.533661 lineto -351.499232 55.136779 lineto -383.434876 47.396827 lineto -418.273760 37.789228 lineto -457.260131 33.953893 lineto +88.542064 29.373933 lineto +125.280680 24.605379 lineto +160.658606 24.587738 lineto +191.954465 32.384894 lineto +221.889633 29.209581 lineto +249.556986 27.036551 lineto +275.410086 32.867659 lineto +298.541808 32.677140 lineto +316.230771 53.392818 lineto +330.291229 35.930071 lineto +356.144329 36.264949 lineto +386.533061 35.123306 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 37.789228 lineto -383.434876 47.396827 lineto -351.499232 55.136779 lineto -326.199566 67.599004 lineto -296.752414 54.252827 lineto -266.061016 48.659743 lineto -233.710623 41.683692 lineto -200.945482 39.632984 lineto -169.424587 41.135702 lineto -128.364473 40.803623 lineto -88.963354 33.652872 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 39.445259 lineto +356.144329 44.770669 lineto +330.291229 47.872773 lineto +316.230771 65.212036 lineto +298.541808 32.677140 lineto +275.410086 32.867659 lineto +249.556986 27.036551 lineto +221.889633 29.209581 lineto +191.954465 32.384894 lineto +160.658606 24.587738 lineto +125.280680 24.605379 lineto +88.542064 29.373933 lineto 45.000000 20.000000 lineto closepath gsave @@ -1607,33 +1631,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 33.652872 lineto -128.364473 40.803623 lineto -169.424587 41.135702 lineto -200.945482 39.632984 lineto -233.710623 41.683692 lineto -266.061016 48.659743 lineto -296.752414 54.252827 lineto -326.199566 67.599004 lineto -351.499232 55.136779 lineto -383.434876 47.396827 lineto -418.273760 37.789228 lineto -457.260131 33.953893 lineto +88.542064 29.373933 lineto +125.280680 24.605379 lineto +160.658606 24.587738 lineto +191.954465 32.384894 lineto +221.889633 29.209581 lineto +249.556986 27.036551 lineto +275.410086 32.867659 lineto +298.541808 32.677140 lineto +316.230771 65.212036 lineto +330.291229 47.872773 lineto +356.144329 44.770669 lineto +386.533061 39.445259 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 42.967811 lineto -383.434876 72.618416 lineto -351.499232 97.683522 lineto -326.199566 67.599900 lineto -296.752414 54.252827 lineto -266.061016 48.659743 lineto -233.710623 41.683692 lineto -200.945482 39.632984 lineto -169.424587 41.135702 lineto -128.364473 40.803623 lineto -88.963354 33.652872 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 39.445259 lineto +356.144329 44.770669 lineto +330.291229 47.872773 lineto +316.230771 65.212036 lineto +298.541808 45.475412 lineto +275.410086 44.560452 lineto +249.556986 37.761462 lineto +221.889633 37.820558 lineto +191.954465 38.949558 lineto +160.658606 29.876397 lineto +125.280680 28.824428 lineto +88.542064 32.072361 lineto 45.000000 20.000000 lineto closepath gsave @@ -1643,33 +1671,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 33.652872 lineto -128.364473 40.803623 lineto -169.424587 41.135702 lineto -200.945482 39.632984 lineto -233.710623 41.683692 lineto -266.061016 48.659743 lineto -296.752414 54.252827 lineto -326.199566 67.599900 lineto -351.499232 97.683522 lineto -383.434876 72.618416 lineto -418.273760 42.967811 lineto -457.260131 33.953893 lineto +88.542064 32.072361 lineto +125.280680 28.824428 lineto +160.658606 29.876397 lineto +191.954465 38.949558 lineto +221.889633 37.820558 lineto +249.556986 37.761462 lineto +275.410086 44.560452 lineto +298.541808 45.475412 lineto +316.230771 65.212036 lineto +330.291229 47.872773 lineto +356.144329 44.770669 lineto +386.533061 39.445259 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 42.967811 lineto -383.434876 72.618416 lineto -351.499232 97.683522 lineto -326.199566 90.814680 lineto -296.752414 74.827996 lineto -266.061016 67.041756 lineto -233.710623 57.705913 lineto -200.945482 53.152069 lineto -169.424587 52.253783 lineto -128.364473 48.684828 lineto -88.963354 38.197757 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 41.769117 lineto +356.144329 48.957965 lineto +330.291229 55.205392 lineto +316.230771 65.212036 lineto +298.541808 55.455301 lineto +275.410086 53.812665 lineto +249.556986 46.138112 lineto +221.889633 45.465122 lineto +191.954465 45.850276 lineto +160.658606 35.922721 lineto +125.280680 33.236054 lineto +88.542064 34.512353 lineto 45.000000 20.000000 lineto closepath gsave @@ -1679,33 +1711,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 38.197757 lineto -128.364473 48.684828 lineto -169.424587 52.253783 lineto -200.945482 53.152069 lineto -233.710623 57.705913 lineto -266.061016 67.041756 lineto -296.752414 74.827996 lineto -326.199566 90.814680 lineto -351.499232 97.683522 lineto -383.434876 72.618416 lineto -418.273760 42.967811 lineto -457.260131 33.953893 lineto +88.542064 34.512353 lineto +125.280680 33.236054 lineto +160.658606 35.922721 lineto +191.954465 45.850276 lineto +221.889633 45.465122 lineto +249.556986 46.138112 lineto +275.410086 53.812665 lineto +298.541808 55.455301 lineto +316.230771 65.212036 lineto +330.291229 55.205392 lineto +356.144329 48.957965 lineto +386.533061 41.769117 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 42.967811 lineto -383.434876 72.618416 lineto -351.499232 97.683522 lineto -326.199566 117.415652 lineto -296.752414 102.259166 lineto -266.061016 91.548718 lineto -233.710623 79.067679 lineto -200.945482 71.175126 lineto -169.424587 67.075502 lineto -128.364473 59.190713 lineto -88.963354 44.255215 lineto +459.556730 31.679269 lineto +421.457425 42.278637 lineto +386.533061 57.202311 lineto +356.144329 78.538645 lineto +330.291229 96.945459 lineto +316.230771 105.991277 lineto +298.541808 55.455301 lineto +275.410086 53.812665 lineto +249.556986 46.138112 lineto +221.889633 45.465122 lineto +191.954465 45.850276 lineto +160.658606 35.922721 lineto +125.280680 33.236054 lineto +88.542064 34.512353 lineto 45.000000 20.000000 lineto closepath gsave @@ -1715,33 +1751,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 44.255215 lineto -128.364473 59.190713 lineto -169.424587 67.075502 lineto -200.945482 71.175126 lineto -233.710623 79.067679 lineto -266.061016 91.548718 lineto -296.752414 102.259166 lineto -326.199566 117.415652 lineto -351.499232 97.683522 lineto -383.434876 72.618416 lineto -418.273760 42.967811 lineto -457.260131 33.953893 lineto +88.542064 34.512353 lineto +125.280680 33.236054 lineto +160.658606 35.922721 lineto +191.954465 45.850276 lineto +221.889633 45.465122 lineto +249.556986 46.138112 lineto +275.410086 53.812665 lineto +298.541808 55.455301 lineto +316.230771 105.991277 lineto +330.291229 96.945459 lineto +356.144329 78.538645 lineto +386.533061 57.202311 lineto +421.457425 42.278637 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 44.245061 lineto -383.434876 73.884916 lineto -351.499232 98.228824 lineto -326.199566 168.247649 lineto -296.752414 155.303133 lineto -266.061016 137.064762 lineto -233.710623 117.149272 lineto -200.945482 101.522141 lineto -169.424587 89.718401 lineto -128.364473 72.503144 lineto -88.963354 50.135882 lineto +459.556730 31.679269 lineto +421.457425 42.279519 lineto +386.533061 57.202311 lineto +356.144329 78.538645 lineto +330.291229 96.945459 lineto +316.230771 125.536500 lineto +298.541808 83.504186 lineto +275.410086 79.552981 lineto +249.556986 69.332298 lineto +221.889633 65.722732 lineto +191.954465 63.020776 lineto +160.658606 49.723863 lineto +125.280680 43.050415 lineto +88.542064 40.162351 lineto 45.000000 20.000000 lineto closepath gsave @@ -1751,33 +1791,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 50.135882 lineto -128.364473 72.503144 lineto -169.424587 89.718401 lineto -200.945482 101.522141 lineto -233.710623 117.149272 lineto -266.061016 137.064762 lineto -296.752414 155.303133 lineto -326.199566 168.247649 lineto -351.499232 98.228824 lineto -383.434876 73.884916 lineto -418.273760 44.245061 lineto -457.260131 33.953893 lineto +88.542064 40.162351 lineto +125.280680 43.050415 lineto +160.658606 49.723863 lineto +191.954465 63.020776 lineto +221.889633 65.722732 lineto +249.556986 69.332298 lineto +275.410086 79.552981 lineto +298.541808 83.504186 lineto +316.230771 125.536500 lineto +330.291229 96.945459 lineto +356.144329 78.538645 lineto +386.533061 57.202311 lineto +421.457425 42.279519 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 33.953893 lineto -418.273760 48.491016 lineto -383.434876 94.171606 lineto -351.499232 134.357361 lineto -326.199566 215.768411 lineto -296.752414 198.943467 lineto -266.061016 176.423903 lineto -233.710623 151.356408 lineto -200.945482 130.126936 lineto -169.424587 114.069477 lineto -128.364473 89.863835 lineto -88.963354 60.187846 lineto +459.556730 31.679269 lineto +421.457425 42.353610 lineto +386.533061 58.459793 lineto +356.144329 79.759964 lineto +330.291229 97.497317 lineto +316.230771 125.675567 lineto +298.541808 138.035176 lineto +275.410086 128.812658 lineto +249.556986 111.126757 lineto +221.889633 101.413535 lineto +191.954465 91.637396 lineto +160.658606 70.610949 lineto +125.280680 55.169523 lineto +88.542064 45.801764 lineto 45.000000 20.000000 lineto closepath gsave @@ -1787,33 +1831,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 60.187846 lineto -128.364473 89.863835 lineto -169.424587 114.069477 lineto -200.945482 130.126936 lineto -233.710623 151.356408 lineto -266.061016 176.423903 lineto -296.752414 198.943467 lineto -326.199566 215.768411 lineto -351.499232 134.357361 lineto -383.434876 94.171606 lineto -418.273760 48.491016 lineto -457.260131 33.953893 lineto +88.542064 45.801764 lineto +125.280680 55.169523 lineto +160.658606 70.610949 lineto +191.954465 91.637396 lineto +221.889633 101.413535 lineto +249.556986 111.126757 lineto +275.410086 128.812658 lineto +298.541808 138.035176 lineto +316.230771 125.675567 lineto +330.291229 97.497317 lineto +356.144329 79.759964 lineto +386.533061 58.459793 lineto +421.457425 42.353610 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 54.151292 lineto -418.273760 68.690505 lineto -383.434876 114.368109 lineto -351.499232 154.554163 lineto -326.199566 268.382348 lineto -296.752414 241.966827 lineto -266.061016 215.163681 lineto -233.710623 193.055931 lineto -200.945482 163.089672 lineto -169.424587 138.189112 lineto -128.364473 107.524352 lineto -88.963354 71.160194 lineto +459.556730 31.679269 lineto +421.457425 42.353610 lineto +386.533061 70.083200 lineto +356.144329 103.293144 lineto +330.291229 132.934977 lineto +316.230771 172.460852 lineto +298.541808 182.646548 lineto +275.410086 169.982933 lineto +249.556986 148.411390 lineto +221.889633 133.790548 lineto +191.954465 118.811600 lineto +160.658606 93.317371 lineto +125.280680 71.339506 lineto +88.542064 55.072500 lineto 45.000000 20.000000 lineto closepath gsave @@ -1823,33 +1871,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 71.160194 lineto -128.364473 107.524352 lineto -169.424587 138.189112 lineto -200.945482 163.089672 lineto -233.710623 193.055931 lineto -266.061016 215.163681 lineto -296.752414 241.966827 lineto -326.199566 268.382348 lineto -351.499232 154.554163 lineto -383.434876 114.368109 lineto -418.273760 68.690505 lineto -457.260131 54.151292 lineto +88.542064 55.072500 lineto +125.280680 71.339506 lineto +160.658606 93.317371 lineto +191.954465 118.811600 lineto +221.889633 133.790548 lineto +249.556986 148.411390 lineto +275.410086 169.982933 lineto +298.541808 182.646548 lineto +316.230771 172.460852 lineto +330.291229 132.934977 lineto +356.144329 103.293144 lineto +386.533061 70.083200 lineto +421.457425 42.353610 lineto +459.556730 31.679269 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 54.151292 lineto -418.273760 97.259762 lineto -383.434876 198.537327 lineto -351.499232 296.726436 lineto -326.199566 288.333077 lineto -296.752414 262.540204 lineto -266.061016 233.543902 lineto -233.710623 209.077256 lineto -200.945482 176.606965 lineto -169.424587 149.305402 lineto -128.364473 115.403766 lineto -88.963354 75.703288 lineto +459.556730 51.559663 lineto +421.457425 63.454442 lineto +386.533061 89.964183 lineto +356.144329 123.181477 lineto +330.291229 152.819782 lineto +316.230771 341.486250 lineto +298.541808 226.567291 lineto +275.410086 210.440821 lineto +249.556986 185.053905 lineto +221.889633 166.048486 lineto +191.954465 146.420940 lineto +160.658606 117.332434 lineto +125.280680 90.502222 lineto +88.542064 65.399909 lineto 45.000000 20.000000 lineto closepath gsave @@ -1859,33 +1911,37 @@ grestore stroke 45.000000 20.000000 moveto 45.000000 20.000000 lineto -88.963354 75.703288 lineto -128.364473 115.403766 lineto -169.424587 149.305402 lineto -200.945482 176.606965 lineto -233.710623 209.077256 lineto -266.061016 233.543902 lineto -296.752414 262.540204 lineto -326.199566 288.333077 lineto -351.499232 296.726436 lineto -383.434876 198.537327 lineto -418.273760 97.259762 lineto -457.260131 54.151292 lineto +88.542064 65.399909 lineto +125.280680 90.502222 lineto +160.658606 117.332434 lineto +191.954465 146.420940 lineto +221.889633 166.048486 lineto +249.556986 185.053905 lineto +275.410086 210.440821 lineto +298.541808 226.567291 lineto +316.230771 341.486250 lineto +330.291229 152.819782 lineto +356.144329 123.181477 lineto +386.533061 89.964183 lineto +421.457425 63.454442 lineto +459.556730 51.559663 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto 476.338567 20.000000 lineto -457.260131 54.151292 lineto -418.273760 97.259762 lineto -383.434876 198.537327 lineto -351.499232 296.726436 lineto -326.199566 402.000000 lineto -296.752414 380.017078 lineto -266.061016 339.510890 lineto -233.710623 302.672803 lineto -200.945482 257.767462 lineto -169.424587 215.289704 lineto -128.364473 162.946328 lineto -88.963354 103.044569 lineto +459.556730 51.559663 lineto +421.457425 63.528532 lineto +386.533061 140.979690 lineto +356.144329 216.546240 lineto +330.291229 287.298665 lineto +316.230771 348.276126 lineto +298.541808 382.000000 lineto +275.410086 353.331635 lineto +249.556986 315.505140 lineto +221.889633 281.057412 lineto +191.954465 246.046949 lineto +160.658606 196.150446 lineto +125.280680 147.445272 lineto +88.542064 98.116209 lineto 45.000000 20.000000 lineto closepath gsave @@ -1893,7 +1949,25 @@ gsave fill grestore stroke -84.963354 20.000000 moveto +84.542064 20.000000 moveto +4.000000 -4.000000 rlineto +4.000000 4.000000 rlineto +closepath +gsave +1.0 setgray +fill +grestore +stroke +121.280680 20.000000 moveto +4.000000 -4.000000 rlineto +4.000000 4.000000 rlineto +closepath +gsave +1.0 setgray +fill +grestore +stroke +156.658606 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1902,7 +1976,7 @@ gsave fill grestore stroke -124.364473 20.000000 moveto +187.954465 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1911,7 +1985,7 @@ gsave fill grestore stroke -165.424587 20.000000 moveto +217.889633 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1920,7 +1994,7 @@ gsave fill grestore stroke -196.945482 20.000000 moveto +245.556986 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1929,7 +2003,7 @@ gsave fill grestore stroke -229.710623 20.000000 moveto +271.410086 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1938,7 +2012,7 @@ gsave fill grestore stroke -262.061016 20.000000 moveto +294.541808 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1947,7 +2021,7 @@ gsave fill grestore stroke -292.752414 20.000000 moveto +312.230771 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1956,7 +2030,7 @@ gsave fill grestore stroke -322.199566 20.000000 moveto +326.291229 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1965,7 +2039,7 @@ gsave fill grestore stroke -347.499232 20.000000 moveto +352.144329 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1974,7 +2048,7 @@ gsave fill grestore stroke -379.434876 20.000000 moveto +382.533061 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1983,7 +2057,7 @@ gsave fill grestore stroke -414.273760 20.000000 moveto +417.457425 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath @@ -1992,7 +2066,7 @@ gsave fill grestore stroke -453.260131 20.000000 moveto +455.556730 20.000000 moveto 4.000000 -4.000000 rlineto 4.000000 4.000000 rlineto closepath diff --git a/ghc/docs/storage-mgt/rp.tex b/ghc/docs/storage-mgt/rp.tex index 79975ab..2055894 100644 --- a/ghc/docs/storage-mgt/rp.tex +++ b/ghc/docs/storage-mgt/rp.tex @@ -23,7 +23,7 @@ \begin{document} \title{Implementation of Retainer Profiling} -\author{Sungwoo Park} +\author{Sungwoo Park and Simon Peyton-Jones} \makeatactive \maketitle @@ -63,10 +63,9 @@ graph. Figure~\ref{fig-retaineralgorithm} shows the algorithm for retainer profiling. The traversal begins at every root, and proceeds in a depth first manner (or a breadth first manner). -The function @R()@ returns the identity of a given retainer such -as its memory address, its information table address, or -the name of the module -which creates it. +The function @R()@ returns the \emph{identity} of a given retainer such +as its information table address or +the name of the module which creates it. Notice that the retainer identity function does not need to be a one-to-one mapping: multiple objects can share the same identity. @@ -81,10 +80,16 @@ and all the other retainers can be ignored. Thus, the more coarse the function @R()@ is, the less it costs to traverse the graph for retainer profiling. The function @isRetainer()@ tells whether a given object is a retainer or not. -Hence, the behavior of the retainer profiling algorithm is determined -uniquely by: 1) the set of roots; 2) the function @R()@; 3) the function +Hence, the behavior of the retainer profiling algorithm is parameterized +over: 1) the set of roots; 2) the function @R()@; 3) the function @isRetainer()@. +One important invariant on the function @R()@ is that its return value +must be consistent for a given retainer. In other words, @R()@ must return +the same value for a given retainer no matter it is invoked. +For this reason, the memory address of a retainer, for instance, cannot be used as +its retainer identity because its location may change during garbage collections. + \begin{figure}[ht] \begin{center} \begin{code} @@ -122,11 +127,19 @@ To be specific, given the two functions @isRetainer()@ and @R()@, the retainer set of every object is computed as the least fixed point solution of the following equations: \begin{itemize} -\item For every root @r@, @R(r)@ $\in$ @r.retainerSet@. -\item For every object @c@, +\item For every root @r@, +\begin{center} + @R(r)@ $\in$ @r.retainerSet@. +\end{center} +\item For every reachable object @c@, +\begin{center} $\bigcup_{\mathit{each\ ancestor\ @a@\ of\ @c@}}$ @from(a)@ $\subseteq$ -@c.retainerSet@. -\item @from(a)@ = if @isRetainer(a)@ then @a.retainerSet@ else $\{@a@\}$. +@c.retainerSet@ +\end{center} +where @from(a)@ returns retainer(s) obtainable from @a@: +\begin{center} +@from(a)@ = if @isRetainer(a)@ then $\{@a@\}$ else @a.retainerSet@. +\end{center} \end{itemize} This document describes the implementation of retainer profiling on @@ -135,7 +148,7 @@ It explains every detail of the development so that it can be (hopefully) a complete maintenance guide. A secondary goal is to help (hopefully) those who wish to extend the system to implement another profiling scheme.\footnote{Unless otherwise mentioned, -all identifiers are defined in @RetainerProfile.c@} +all identifiers are defined in @RetainerProfile.c@ or @RetainerSet.c@.} \section{Installing the GHC} @@ -145,7 +158,8 @@ Installing the GHC is done as follows: \item Get the source code from the CVS repository. \begin{code} ./ cvs checkout fpconfig -./ cvs checkout fptools +./fptools/ cvs update -d CONTRIB common-rts distrib docs ghc glafp-utils + hslibs literate mhms mk nofib testsuite \end{code} \item Set up the basic configuration. @@ -160,7 +174,6 @@ Installing the GHC is done as follows: ./fptools/mk vi build.mk GhcHcOpts = -O -fasm -Rghc-timing SplitObjs = NO - GhcLibWays = p GhcRtsHcOpts = GhcRtsCcOpts = -g STRIP =: @@ -176,7 +189,6 @@ they can be examined with @gdb@. \item Remove unnecessary files if needed and build everything. \begin{code} -./fptools/ rm dll green-card haggis happy hdirect hood libraries ./fptools/ make \end{code} \end{enumerate} @@ -185,7 +197,7 @@ they can be examined with @gdb@. Since every Haskell closure now needs to store its retainer set at runtime, it must be augmented with a new field, -namely, a emph{retainer set field}. +namely, a \emph{retainer set field}. This section explains how to add such a field to Haskell closures. It should be clear how to generalize the idea for adding any number of new fields.\footnote{The GHC provides two @@ -243,9 +255,9 @@ of certain types of closures and their layout. When building the runtime system, the @gcc@ compiler correctly figures out the size of every structure on its own. However, -the GHC simply reads @includes/Constants.h@ to to determine the size of +GHC simply reads @includes/Constants.h@ to to determine the size of closures assumed by the runtime system. -Thus, we change the constants used by the GHC itself (as opposed to +Thus, we must change the constants used by the GHC itself (as opposed to the runtime system). They are all found in @includes/Constants.h@. We increase each of them by 1 to reflect the retainer set field which is one word long: @@ -261,13 +273,10 @@ is now two words long. @StgUpdateFrame@ and @StgSeqFrame@ (in @includes/Closures.h@) in words. -Since these constants are used when building the GHC (by another compiler), -we must rebuild the GHC. In other words, when executed, the code generated by -the GHC must now allocate one more word for the retainer set field than before, -and hence it is inevitable to rebuild the GHC, which is done as follows: +Now we must rebuild the GHC so that, when executed, the code generated by +the GHC must now allocate one more word for the retainer set field than before. \begin{code} -./fptools/ghc/ make clean ./fptools/ghc/ make boot ./fptools/ghc/ make \end{code} @@ -316,13 +325,16 @@ However, there are six closures types which are not affected by If you want a new field to be added to these closures, you may have to modify their corresponding structures. -\textbf{To do:} Currently the above changes introduce a new bug in the -runtime system. For instance, @nofib/real/symalg@ ends up with a division-by-zero +\textbf{To do:} Presently the above changes introduce two bug in the +runtime system. +First, @nofib/real/symalg@ ends up with a division-by-zero exception if we add a new field. +Second, the runtime system option @-auto-all@ clashes in some test files +in the @nofib@ testing suite (e.g., @spectral/expert@). \subsection{Initialization code} -When a new closure is created, its retainer set field may have to be +When a new closure is allocated, its retainer set field may have to be initialized according to the way that retainer profiling is implemented. For instance, we could use as an initial value a pointer to an empty retainer set. @@ -331,9 +343,8 @@ set has not been computed yet, which we adopt in our implementation. In either case, we have to visit the new closure and execute some initialization code on it so that its retainer set field is set to an appropriate value. -There are four parts in the source code which need to be modified. +There are three parts in the source code which need to be modified. dynamic closure initialization, static closure initialization, -closure creation through C function invocation, and update frame initialization. The first is accomplished by modifying the macro @SET_PROF_HDR()@ (in @include/ClosureMacros.h@). When a closure @c@ is created at runtime, @@ -357,48 +368,41 @@ is initialized, which is rewritten as follows: prof : { ccs : ccs_, rs : NULL }, \end{code} -There is another way of creating dynamic closures through explicit C -function invocations at runtime. -Such functions are all defined in @RtsAPI.c@: @rts_mkChar()@, @rts_mkInt()@, -@rts_mkWord()@, and so forth. -Each function allocates memory for a new closure, -initializes it, and returns its address. -Therefore, we can simply insert in each function another initialization code -for retainer set fields. -To this end, we define a macro @setRetainerField()@ and insert it -in each function: - -\begin{code} -#define setRetainerField(p) \ - (p)->header.prof.rs = NULL -\end{code} - -For instance, @rts_mkChar()@ is now defined as follows: - -\begin{code} -/* RtsAPI.c */ -HaskellObj -rts_mkChar (HsChar c) -{ - StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1)); - ... - setRetainerField(p); - return p; -} -\end{code} +\textbf{Obsolete:} Dynamic closures created through explicit C function invocations +(in @RtsAPI.c@) are now initialized by @SET_HDR()@. + +%There is another way of creating dynamic closures through explicit C +%function invocations at runtime. +%Such functions are all defined in @RtsAPI.c@: @rts_mkChar()@, @rts_mkInt()@, +%@rts_mkWord()@, and so forth. +%Each function allocates memory for a new closure, +%initializes it, and returns its address. +%Therefore, we can simply insert in each function another initialization code +%for retainer set fields. +%To this end, we define a macro @setRetainerField()@ and insert it +%in each function: +% +%\begin{code} +%#define setRetainerField(p) \ +% (p)->header.prof.rs = NULL +%\end{code} +% +%For instance, @rts_mkChar()@ is now defined as follows: +% +%\begin{code} +%/* RtsAPI.c */ +%HaskellObj +%rts_mkChar (HsChar c) +%{ +% StgClosure *p = (StgClosure *)allocate(CONSTR_sizeW(0,1)); +% ... +% setRetainerField(p); +% return p; +%} +%\end{code} Finally we may need to initialize the retainer set field of an update frame -(stack closure) when it is pushed onto the stack for the first -time.\footnote{In our implementation of -retainer profiling, the retainer set field is not used for any stack closure. -Hence, the following modification is entirely unnecessary. -Also, update frames are the only exception to the standard way of creating -stack closures: all the other types of stack closures with a retainer set -field are eventually initialized by -the macro @SET\_HDR()@ (in @includes/ClosureMacros.h@), which in turn -invokes @SET\_PROF\_HDR()@. This is not the case for update frames. -Compare @PUSH\_UPD\_FRAME()@ (in @includes/Updates.h@) and -@PUSH\_SEQ\_FRAME()@ (in @includes/StgMacros.h@) for clarification.} +(stack closure) when it is pushed onto the stack for the first time. For instance, if we want to initialize the retainer set field of update frames to a null pointer, we can rewrite the macro @PUSH_STD_CCCS()@ (in @includes/Updates.h@) as follows: @@ -409,6 +413,17 @@ frames to a null pointer, we can rewrite the macro @PUSH_STD_CCCS()@ (frame->header.prof.ccs = CCCS, frame->header.prof.rs = NULL) \end{code} +In our implementation of retainer profiling, however, the retainer set field is not +used for any stack closure. +Hence, the above modification is entirely unnecessary. +Also, update frames are the only exception to the standard way of creating +stack closures: all the other types of stack closures with a retainer set +field are eventually initialized by +the macro @SET\_HDR()@ (in @includes/ClosureMacros.h@), which in turn +invokes @SET\_PROF\_HDR()@. This is not the case for update frames. +Compare @PUSH\_UPD\_FRAME()@ (in @includes/Updates.h@) and +@PUSH\_SEQ\_FRAME()@ (in @includes/StgMacros.h@) for clarification. + \section{Retainer Sets} At the end of retainer profiling, every live closure (except stack @@ -478,7 +493,34 @@ retainer in the retainer set and none else, the cost of @c@ is added to the field @cost@. The field @id@ gives a unique identification number for the retainer set. -We define a \emph{cost function}, which returns the cost of a given closure, +The interface to @retainerSet@ is as follows +(see @RetainerSet.h@): + +\begin{description} +\item[@void initializeAllRetainerSet(void)@] initializes the store for retainer sets. +\item[@void refreshAllRetainerSet(void)@] refreshes each retainer set by setting +its @cost@ field to zero. This function does destroy any retainer set. +\item[@void closeAllRetainerSet(void)@] destroys all retainer sets and closes +the store for retainer sets. +\item[@retainerSet *singleton(retainer r)@] returns a singleton retainer set +consisting of @r@ alone. If such a retainer set already exists, no new retainer +set is created. Otherwise, a new retainer set is created. +\item[@retainerSet *addElement(retainer r, retainerSet *rs)@] returns a retainer set +@rs@ augmented with @r@. If such a retainer set already exists, no new retainer set +is created. Otherwise, a new retainer set is created. +\item[@rtsBool isMember(retainer r, retainerSet *rs)@] returns a boolean value +indicating whether @r@ is a member of @rs@. +\item[@void traverseAllRetainerSet(void (*f)(retainerSet *))@] invokes the function +@f@ on every retainer set created. +\item[@void printRetainerSetShort(FILE *, retainerSet *)@] prints a single retainer +set. +\item[@void outputRetainerSet(FILE *, nat *allCost, nat *numSet)@] prints all +retainer sets. Stores the sum of all their costs in @*allCost@ and the number +of them in @*numSet@. +\item[@void outputAllRetainerSet(FILE *)@] prints all retainer sets. +\end{description} + +We also define a \emph{cost function}, which returns the cost of a given closure, in order to compute the field @cost@. The cost function can be defined in several ways. A typical definition is on the size of a closure, which results in @@ -751,6 +793,22 @@ live static closure to a correct null value before its destruction. This is done by invoking the function @resetStaticObjectForRetainerProfiling()@. +\textbf{To do:} In the current implemenation, if a static closure has no child +(e.g., @CONSTR_NOCAF_STATIC@, @THUNK_STATIC@ with an empty SRT, and +@FUN_STATIC@ with an empty SRT), we do not compute its retainer set (because +there is no need to do). This slight optimization allows us to render +retainer profiling no longer dependent on garbage collection due to the +following propoerty: + +\begin{center} +A static closure can alternately appear and disappear in the set of live +closures across multiple executions of retainer profiling if and only if +it has an empty SRT and no child. +\end{center} + +Then we can completely eliminate the function +@resetStaticObjectForRetainerProfiling()@. + \subsection{Traversal} The traversal proceeds in a depth first manner and is implemented @@ -772,6 +830,16 @@ on that closure. Hence, the traversal is triggered simply by invoking @retainerClosure()@ on every root. +\textbf{To do:} +The correctness of retainer profiling is subject to the correctness +of the two macros @IS_ARG_TAG()@ and @LOOKS_LIKE_GHC_INFO()@ +(see @retainStack()@). Since +@LOOKS_LIKE_GHC_INFO()@ is a bit precarious macro, so I believe that +the current implementation may not be quite safe. Also, @scavenge_stack()@ +in @GC.c@ also exploits this macro in order to identify shallow pointers. +This can be a serious problem if a stack chunk contains some +word which looks like a pointer but is actually not a pointer. + \subsection{Sanity check} Since we assume that a retainer profiling is preceded by a major garbage @@ -844,6 +912,10 @@ void printRetainer(FILE *f, retainer cc) } \end{code} +\textbf{To do:} All the closures created by @rts_mk...()@ in @RtsAPI.c@ are given +@CCS_SYSTEM@ as their cost centre stacks. This may not be accurate indeed, +and, for instance, @CCCS@ may be a better choice than @CCS_SYSTEM@. + \section{Usage} Since cost centre stacks are used as retainer identity, a source program @@ -969,7 +1041,7 @@ Only three files (@includes/StgRetainerProf.h@, @RetainerProfile.c@, and @\includes@ directory: \begin{description} -\item[StgRetainerProf.h] defines types @retainer@ and @retainerSet@. +\item[StgRetainerProf.h] defines types @retainer@ and @retainerSet@. \item[Stg.h] includes the header file @StgRetainerProf.h@. \item[Closures.h] changes structure @StgProfHeader@. \item[Constants.h] changes constants @PROF_HDR_SIZE@, @SCC_UF_SIZE@, and @@ -988,6 +1060,8 @@ Only three files (@includes/StgRetainerProf.h@, @RetainerProfile.c@, and \item[Updates.hc] changes constant @UPD_FRAME_BITMAP@. \item[RetainerProfile.c] implements the retainer profiling engine. \item[RetainerProfile.h] is the header for @RetainerProfile.c@. +\item[RetainerSet.c] implements the abstract datatype @retainerSet@. +\item[RetainerSet.h] defines the interface for @retainerSet@. \item[GC.c] invokes @resetStaticObjectForRetainerProfiling()@ in @GarbageCollect()@. \item[Itimer.c] changes @handle_tick()@. @@ -996,8 +1070,9 @@ Only three files (@includes/StgRetainerProf.h@, @RetainerProfile.c@, and @report_ccs_profiling()@. \item[Proftimer.c] declares @ticks_to_retainer_profiling@, @performRetainerProfiling@, and @doContextSwitch@. -\item[Proftimer.h] is the header for @Proftimer.c@. -\item[RtsAPI.c] implements @setRetainerField()@. +\item[Proftimer.h] is the header for @Proftimer.c@. Defines @PROFILING_MIN_PERIOD@, + which specifies the minimum profiling period and the default profiling period. +%\item[RtsAPI.c] implements @setRetainerField()@. \item[RtsFlags.c] sets @RtsFlags.ProfFlags.doHeapProfile@ and adds a string to @usage_text[]@ in @setupRtsFlags()@.