From e21880d804c040b237e0902511aa30a0a25bc352 Mon Sep 17 00:00:00 2001 From: josch Date: Thu, 26 Jun 2014 09:19:07 +0200 Subject: [PATCH] initial commit --- MANIFEST | 400 ++++ MANIFEST.in | 2 + archive/hr_option1.py | 260 +++ archive/hr_stable.py | 154 ++ archive/hr_stable0.py | 120 ++ archive/hr_stable1.5.py | 212 +++ archive/hr_stable2.py | 237 +++ archive/hr_stable3.py | 409 +++++ archive/hr_stable4.py | 420 +++++ archive/hr_stable5.py | 516 ++++++ archive/hr_stable6.py | 619 +++++++ archive/hr_stable7_bigtex-nosplitanim.py | 718 ++++++++ archive/hr_stable7_smalltex-splitanim.py | 735 ++++++++ archive/hr_stable8.py | 775 ++++++++ archive/hr_stable9.py | 787 ++++++++ demjson.py | 2136 ++++++++++++++++++++++ demjson.pyc | Bin 0 -> 68830 bytes h3mtest.py | 40 + hr.py | 51 + lib/__init__.py | 0 lib/h3m.py | 596 ++++++ lib/interface.py | 38 + lib/mapset.py | 382 ++++ lib/mapview.py | 335 ++++ lib/window.py | 52 + setup.py | 65 + test | Bin 0 -> 124660 bytes test.h3m | 1 + test.png | Bin 0 -> 588 bytes test.py | 55 + test2.png | Bin 0 -> 632 bytes tilemap.py | 272 +++ 32 files changed, 10387 insertions(+) create mode 100644 MANIFEST create mode 100644 MANIFEST.in create mode 100644 archive/hr_option1.py create mode 100644 archive/hr_stable.py create mode 100644 archive/hr_stable0.py create mode 100644 archive/hr_stable1.5.py create mode 100644 archive/hr_stable2.py create mode 100644 archive/hr_stable3.py create mode 100644 archive/hr_stable4.py create mode 100644 archive/hr_stable5.py create mode 100644 archive/hr_stable6.py create mode 100644 archive/hr_stable7_bigtex-nosplitanim.py create mode 100644 archive/hr_stable7_smalltex-splitanim.py create mode 100644 archive/hr_stable8.py create mode 100644 archive/hr_stable9.py create mode 100644 demjson.py create mode 100644 demjson.pyc create mode 100644 h3mtest.py create mode 100644 hr.py create mode 100644 lib/__init__.py create mode 100644 lib/h3m.py create mode 100644 lib/interface.py create mode 100644 lib/mapset.py create mode 100644 lib/mapview.py create mode 100644 lib/window.py create mode 100644 setup.py create mode 100755 test create mode 100644 test.h3m create mode 100644 test.png create mode 100755 test.py create mode 100644 test2.png create mode 100644 tilemap.py diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..848e991 --- /dev/null +++ b/MANIFEST @@ -0,0 +1,400 @@ +hr.py +setup.py +data/cursors/default.png +data/tiles/grass/0.png +data/tiles/water/0 watrtl01.pcx/0.png +data/tiles/water/0 watrtl01.pcx/1.png +data/tiles/water/0 watrtl01.pcx/10.png +data/tiles/water/0 watrtl01.pcx/11.png +data/tiles/water/0 watrtl01.pcx/2.png +data/tiles/water/0 watrtl01.pcx/3.png +data/tiles/water/0 watrtl01.pcx/4.png +data/tiles/water/0 watrtl01.pcx/5.png +data/tiles/water/0 watrtl01.pcx/6.png +data/tiles/water/0 watrtl01.pcx/7.png +data/tiles/water/0 watrtl01.pcx/8.png +data/tiles/water/0 watrtl01.pcx/9.png +data/tiles/water/1 watrtl02.pcx/0.png +data/tiles/water/1 watrtl02.pcx/1.png +data/tiles/water/1 watrtl02.pcx/10.png +data/tiles/water/1 watrtl02.pcx/11.png +data/tiles/water/1 watrtl02.pcx/2.png +data/tiles/water/1 watrtl02.pcx/3.png +data/tiles/water/1 watrtl02.pcx/4.png +data/tiles/water/1 watrtl02.pcx/5.png +data/tiles/water/1 watrtl02.pcx/6.png +data/tiles/water/1 watrtl02.pcx/7.png +data/tiles/water/1 watrtl02.pcx/8.png +data/tiles/water/1 watrtl02.pcx/9.png +data/tiles/water/10 watrtl11.pcx/0.png +data/tiles/water/10 watrtl11.pcx/1.png +data/tiles/water/10 watrtl11.pcx/10.png +data/tiles/water/10 watrtl11.pcx/11.png +data/tiles/water/10 watrtl11.pcx/2.png +data/tiles/water/10 watrtl11.pcx/3.png +data/tiles/water/10 watrtl11.pcx/4.png +data/tiles/water/10 watrtl11.pcx/5.png +data/tiles/water/10 watrtl11.pcx/6.png +data/tiles/water/10 watrtl11.pcx/7.png +data/tiles/water/10 watrtl11.pcx/8.png +data/tiles/water/10 watrtl11.pcx/9.png +data/tiles/water/11 watrtl12.pcx/0.png +data/tiles/water/11 watrtl12.pcx/1.png +data/tiles/water/11 watrtl12.pcx/10.png +data/tiles/water/11 watrtl12.pcx/11.png +data/tiles/water/11 watrtl12.pcx/2.png +data/tiles/water/11 watrtl12.pcx/3.png +data/tiles/water/11 watrtl12.pcx/4.png +data/tiles/water/11 watrtl12.pcx/5.png +data/tiles/water/11 watrtl12.pcx/6.png +data/tiles/water/11 watrtl12.pcx/7.png +data/tiles/water/11 watrtl12.pcx/8.png +data/tiles/water/11 watrtl12.pcx/9.png +data/tiles/water/12 watrtl13.pcx/0.png +data/tiles/water/12 watrtl13.pcx/1.png +data/tiles/water/12 watrtl13.pcx/10.png +data/tiles/water/12 watrtl13.pcx/11.png +data/tiles/water/12 watrtl13.pcx/2.png +data/tiles/water/12 watrtl13.pcx/3.png +data/tiles/water/12 watrtl13.pcx/4.png +data/tiles/water/12 watrtl13.pcx/5.png +data/tiles/water/12 watrtl13.pcx/6.png +data/tiles/water/12 watrtl13.pcx/7.png +data/tiles/water/12 watrtl13.pcx/8.png +data/tiles/water/12 watrtl13.pcx/9.png +data/tiles/water/13 watrtl14.pcx/0.png +data/tiles/water/13 watrtl14.pcx/1.png +data/tiles/water/13 watrtl14.pcx/10.png +data/tiles/water/13 watrtl14.pcx/11.png +data/tiles/water/13 watrtl14.pcx/2.png +data/tiles/water/13 watrtl14.pcx/3.png +data/tiles/water/13 watrtl14.pcx/4.png +data/tiles/water/13 watrtl14.pcx/5.png +data/tiles/water/13 watrtl14.pcx/6.png +data/tiles/water/13 watrtl14.pcx/7.png +data/tiles/water/13 watrtl14.pcx/8.png +data/tiles/water/13 watrtl14.pcx/9.png +data/tiles/water/14 watrtl15.pcx/0.png +data/tiles/water/14 watrtl15.pcx/1.png +data/tiles/water/14 watrtl15.pcx/10.png +data/tiles/water/14 watrtl15.pcx/11.png +data/tiles/water/14 watrtl15.pcx/2.png +data/tiles/water/14 watrtl15.pcx/3.png +data/tiles/water/14 watrtl15.pcx/4.png +data/tiles/water/14 watrtl15.pcx/5.png +data/tiles/water/14 watrtl15.pcx/6.png +data/tiles/water/14 watrtl15.pcx/7.png +data/tiles/water/14 watrtl15.pcx/8.png +data/tiles/water/14 watrtl15.pcx/9.png +data/tiles/water/15 watrtl16.pcx/0.png +data/tiles/water/15 watrtl16.pcx/1.png +data/tiles/water/15 watrtl16.pcx/10.png +data/tiles/water/15 watrtl16.pcx/11.png +data/tiles/water/15 watrtl16.pcx/2.png +data/tiles/water/15 watrtl16.pcx/3.png +data/tiles/water/15 watrtl16.pcx/4.png +data/tiles/water/15 watrtl16.pcx/5.png +data/tiles/water/15 watrtl16.pcx/6.png +data/tiles/water/15 watrtl16.pcx/7.png +data/tiles/water/15 watrtl16.pcx/8.png +data/tiles/water/15 watrtl16.pcx/9.png +data/tiles/water/16 watrtl17.pcx/0.png +data/tiles/water/16 watrtl17.pcx/1.png +data/tiles/water/16 watrtl17.pcx/10.png +data/tiles/water/16 watrtl17.pcx/11.png +data/tiles/water/16 watrtl17.pcx/2.png +data/tiles/water/16 watrtl17.pcx/3.png +data/tiles/water/16 watrtl17.pcx/4.png +data/tiles/water/16 watrtl17.pcx/5.png +data/tiles/water/16 watrtl17.pcx/6.png +data/tiles/water/16 watrtl17.pcx/7.png +data/tiles/water/16 watrtl17.pcx/8.png +data/tiles/water/16 watrtl17.pcx/9.png +data/tiles/water/17 watrtl18.pcx/0.png +data/tiles/water/17 watrtl18.pcx/1.png +data/tiles/water/17 watrtl18.pcx/10.png +data/tiles/water/17 watrtl18.pcx/11.png +data/tiles/water/17 watrtl18.pcx/2.png +data/tiles/water/17 watrtl18.pcx/3.png +data/tiles/water/17 watrtl18.pcx/4.png +data/tiles/water/17 watrtl18.pcx/5.png +data/tiles/water/17 watrtl18.pcx/6.png +data/tiles/water/17 watrtl18.pcx/7.png +data/tiles/water/17 watrtl18.pcx/8.png +data/tiles/water/17 watrtl18.pcx/9.png +data/tiles/water/18 watrtl19.pcx/0.png +data/tiles/water/18 watrtl19.pcx/1.png +data/tiles/water/18 watrtl19.pcx/10.png +data/tiles/water/18 watrtl19.pcx/11.png +data/tiles/water/18 watrtl19.pcx/2.png +data/tiles/water/18 watrtl19.pcx/3.png +data/tiles/water/18 watrtl19.pcx/4.png +data/tiles/water/18 watrtl19.pcx/5.png +data/tiles/water/18 watrtl19.pcx/6.png +data/tiles/water/18 watrtl19.pcx/7.png +data/tiles/water/18 watrtl19.pcx/8.png +data/tiles/water/18 watrtl19.pcx/9.png +data/tiles/water/19 watrtl20.pcx/0.png +data/tiles/water/19 watrtl20.pcx/1.png +data/tiles/water/19 watrtl20.pcx/10.png +data/tiles/water/19 watrtl20.pcx/11.png +data/tiles/water/19 watrtl20.pcx/2.png +data/tiles/water/19 watrtl20.pcx/3.png +data/tiles/water/19 watrtl20.pcx/4.png +data/tiles/water/19 watrtl20.pcx/5.png +data/tiles/water/19 watrtl20.pcx/6.png +data/tiles/water/19 watrtl20.pcx/7.png +data/tiles/water/19 watrtl20.pcx/8.png +data/tiles/water/19 watrtl20.pcx/9.png +data/tiles/water/2 watrtl03.pcx/0.png +data/tiles/water/2 watrtl03.pcx/1.png +data/tiles/water/2 watrtl03.pcx/10.png +data/tiles/water/2 watrtl03.pcx/11.png +data/tiles/water/2 watrtl03.pcx/2.png +data/tiles/water/2 watrtl03.pcx/3.png +data/tiles/water/2 watrtl03.pcx/4.png +data/tiles/water/2 watrtl03.pcx/5.png +data/tiles/water/2 watrtl03.pcx/6.png +data/tiles/water/2 watrtl03.pcx/7.png +data/tiles/water/2 watrtl03.pcx/8.png +data/tiles/water/2 watrtl03.pcx/9.png +data/tiles/water/20 watrtl21.pcx/0.png +data/tiles/water/20 watrtl21.pcx/1.png +data/tiles/water/20 watrtl21.pcx/10.png +data/tiles/water/20 watrtl21.pcx/11.png +data/tiles/water/20 watrtl21.pcx/2.png +data/tiles/water/20 watrtl21.pcx/3.png +data/tiles/water/20 watrtl21.pcx/4.png +data/tiles/water/20 watrtl21.pcx/5.png +data/tiles/water/20 watrtl21.pcx/6.png +data/tiles/water/20 watrtl21.pcx/7.png +data/tiles/water/20 watrtl21.pcx/8.png +data/tiles/water/20 watrtl21.pcx/9.png +data/tiles/water/21 watrtl22.pcx/0.png +data/tiles/water/21 watrtl22.pcx/1.png +data/tiles/water/21 watrtl22.pcx/10.png +data/tiles/water/21 watrtl22.pcx/11.png +data/tiles/water/21 watrtl22.pcx/2.png +data/tiles/water/21 watrtl22.pcx/3.png +data/tiles/water/21 watrtl22.pcx/4.png +data/tiles/water/21 watrtl22.pcx/5.png +data/tiles/water/21 watrtl22.pcx/6.png +data/tiles/water/21 watrtl22.pcx/7.png +data/tiles/water/21 watrtl22.pcx/8.png +data/tiles/water/21 watrtl22.pcx/9.png +data/tiles/water/22 watrtl23.pcx/0.png +data/tiles/water/22 watrtl23.pcx/1.png +data/tiles/water/22 watrtl23.pcx/10.png +data/tiles/water/22 watrtl23.pcx/11.png +data/tiles/water/22 watrtl23.pcx/2.png +data/tiles/water/22 watrtl23.pcx/3.png +data/tiles/water/22 watrtl23.pcx/4.png +data/tiles/water/22 watrtl23.pcx/5.png +data/tiles/water/22 watrtl23.pcx/6.png +data/tiles/water/22 watrtl23.pcx/7.png +data/tiles/water/22 watrtl23.pcx/8.png +data/tiles/water/22 watrtl23.pcx/9.png +data/tiles/water/23 watrtl24.pcx/0.png +data/tiles/water/23 watrtl24.pcx/1.png +data/tiles/water/23 watrtl24.pcx/10.png +data/tiles/water/23 watrtl24.pcx/11.png +data/tiles/water/23 watrtl24.pcx/2.png +data/tiles/water/23 watrtl24.pcx/3.png +data/tiles/water/23 watrtl24.pcx/4.png +data/tiles/water/23 watrtl24.pcx/5.png +data/tiles/water/23 watrtl24.pcx/6.png +data/tiles/water/23 watrtl24.pcx/7.png +data/tiles/water/23 watrtl24.pcx/8.png +data/tiles/water/23 watrtl24.pcx/9.png +data/tiles/water/24 watrtl25.pcx/0.png +data/tiles/water/24 watrtl25.pcx/1.png +data/tiles/water/24 watrtl25.pcx/10.png +data/tiles/water/24 watrtl25.pcx/11.png +data/tiles/water/24 watrtl25.pcx/2.png +data/tiles/water/24 watrtl25.pcx/3.png +data/tiles/water/24 watrtl25.pcx/4.png +data/tiles/water/24 watrtl25.pcx/5.png +data/tiles/water/24 watrtl25.pcx/6.png +data/tiles/water/24 watrtl25.pcx/7.png +data/tiles/water/24 watrtl25.pcx/8.png +data/tiles/water/24 watrtl25.pcx/9.png +data/tiles/water/25 watrtl26.pcx/0.png +data/tiles/water/25 watrtl26.pcx/1.png +data/tiles/water/25 watrtl26.pcx/10.png +data/tiles/water/25 watrtl26.pcx/11.png +data/tiles/water/25 watrtl26.pcx/2.png +data/tiles/water/25 watrtl26.pcx/3.png +data/tiles/water/25 watrtl26.pcx/4.png +data/tiles/water/25 watrtl26.pcx/5.png +data/tiles/water/25 watrtl26.pcx/6.png +data/tiles/water/25 watrtl26.pcx/7.png +data/tiles/water/25 watrtl26.pcx/8.png +data/tiles/water/25 watrtl26.pcx/9.png +data/tiles/water/26 watrtl27.pcx/0.png +data/tiles/water/26 watrtl27.pcx/1.png +data/tiles/water/26 watrtl27.pcx/10.png +data/tiles/water/26 watrtl27.pcx/11.png +data/tiles/water/26 watrtl27.pcx/2.png +data/tiles/water/26 watrtl27.pcx/3.png +data/tiles/water/26 watrtl27.pcx/4.png +data/tiles/water/26 watrtl27.pcx/5.png +data/tiles/water/26 watrtl27.pcx/6.png +data/tiles/water/26 watrtl27.pcx/7.png +data/tiles/water/26 watrtl27.pcx/8.png +data/tiles/water/26 watrtl27.pcx/9.png +data/tiles/water/27 watrtl28.pcx/0.png +data/tiles/water/27 watrtl28.pcx/1.png +data/tiles/water/27 watrtl28.pcx/10.png +data/tiles/water/27 watrtl28.pcx/11.png +data/tiles/water/27 watrtl28.pcx/2.png +data/tiles/water/27 watrtl28.pcx/3.png +data/tiles/water/27 watrtl28.pcx/4.png +data/tiles/water/27 watrtl28.pcx/5.png +data/tiles/water/27 watrtl28.pcx/6.png +data/tiles/water/27 watrtl28.pcx/7.png +data/tiles/water/27 watrtl28.pcx/8.png +data/tiles/water/27 watrtl28.pcx/9.png +data/tiles/water/28 watrtl29.pcx/0.png +data/tiles/water/28 watrtl29.pcx/1.png +data/tiles/water/28 watrtl29.pcx/10.png +data/tiles/water/28 watrtl29.pcx/11.png +data/tiles/water/28 watrtl29.pcx/2.png +data/tiles/water/28 watrtl29.pcx/3.png +data/tiles/water/28 watrtl29.pcx/4.png +data/tiles/water/28 watrtl29.pcx/5.png +data/tiles/water/28 watrtl29.pcx/6.png +data/tiles/water/28 watrtl29.pcx/7.png +data/tiles/water/28 watrtl29.pcx/8.png +data/tiles/water/28 watrtl29.pcx/9.png +data/tiles/water/29 watrtl30.pcx/0.png +data/tiles/water/29 watrtl30.pcx/1.png +data/tiles/water/29 watrtl30.pcx/10.png +data/tiles/water/29 watrtl30.pcx/11.png +data/tiles/water/29 watrtl30.pcx/2.png +data/tiles/water/29 watrtl30.pcx/3.png +data/tiles/water/29 watrtl30.pcx/4.png +data/tiles/water/29 watrtl30.pcx/5.png +data/tiles/water/29 watrtl30.pcx/6.png +data/tiles/water/29 watrtl30.pcx/7.png +data/tiles/water/29 watrtl30.pcx/8.png +data/tiles/water/29 watrtl30.pcx/9.png +data/tiles/water/3 watrtl04.pcx/0.png +data/tiles/water/3 watrtl04.pcx/1.png +data/tiles/water/3 watrtl04.pcx/10.png +data/tiles/water/3 watrtl04.pcx/11.png +data/tiles/water/3 watrtl04.pcx/2.png +data/tiles/water/3 watrtl04.pcx/3.png +data/tiles/water/3 watrtl04.pcx/4.png +data/tiles/water/3 watrtl04.pcx/5.png +data/tiles/water/3 watrtl04.pcx/6.png +data/tiles/water/3 watrtl04.pcx/7.png +data/tiles/water/3 watrtl04.pcx/8.png +data/tiles/water/3 watrtl04.pcx/9.png +data/tiles/water/30 watrtl31.pcx/0.png +data/tiles/water/30 watrtl31.pcx/1.png +data/tiles/water/30 watrtl31.pcx/10.png +data/tiles/water/30 watrtl31.pcx/11.png +data/tiles/water/30 watrtl31.pcx/2.png +data/tiles/water/30 watrtl31.pcx/3.png +data/tiles/water/30 watrtl31.pcx/4.png +data/tiles/water/30 watrtl31.pcx/5.png +data/tiles/water/30 watrtl31.pcx/6.png +data/tiles/water/30 watrtl31.pcx/7.png +data/tiles/water/30 watrtl31.pcx/8.png +data/tiles/water/30 watrtl31.pcx/9.png +data/tiles/water/31 watrtl32.pcx/0.png +data/tiles/water/31 watrtl32.pcx/1.png +data/tiles/water/31 watrtl32.pcx/10.png +data/tiles/water/31 watrtl32.pcx/11.png +data/tiles/water/31 watrtl32.pcx/2.png +data/tiles/water/31 watrtl32.pcx/3.png +data/tiles/water/31 watrtl32.pcx/4.png +data/tiles/water/31 watrtl32.pcx/5.png +data/tiles/water/31 watrtl32.pcx/6.png +data/tiles/water/31 watrtl32.pcx/7.png +data/tiles/water/31 watrtl32.pcx/8.png +data/tiles/water/31 watrtl32.pcx/9.png +data/tiles/water/32 watrtl33.pcx/0.png +data/tiles/water/32 watrtl33.pcx/1.png +data/tiles/water/32 watrtl33.pcx/10.png +data/tiles/water/32 watrtl33.pcx/11.png +data/tiles/water/32 watrtl33.pcx/2.png +data/tiles/water/32 watrtl33.pcx/3.png +data/tiles/water/32 watrtl33.pcx/4.png +data/tiles/water/32 watrtl33.pcx/5.png +data/tiles/water/32 watrtl33.pcx/6.png +data/tiles/water/32 watrtl33.pcx/7.png +data/tiles/water/32 watrtl33.pcx/8.png +data/tiles/water/32 watrtl33.pcx/9.png +data/tiles/water/4 watrtl05.pcx/0.png +data/tiles/water/4 watrtl05.pcx/1.png +data/tiles/water/4 watrtl05.pcx/10.png +data/tiles/water/4 watrtl05.pcx/11.png +data/tiles/water/4 watrtl05.pcx/2.png +data/tiles/water/4 watrtl05.pcx/3.png +data/tiles/water/4 watrtl05.pcx/4.png +data/tiles/water/4 watrtl05.pcx/5.png +data/tiles/water/4 watrtl05.pcx/6.png +data/tiles/water/4 watrtl05.pcx/7.png +data/tiles/water/4 watrtl05.pcx/8.png +data/tiles/water/4 watrtl05.pcx/9.png +data/tiles/water/5 watrtl06.pcx/0.png +data/tiles/water/5 watrtl06.pcx/1.png +data/tiles/water/5 watrtl06.pcx/10.png +data/tiles/water/5 watrtl06.pcx/11.png +data/tiles/water/5 watrtl06.pcx/2.png +data/tiles/water/5 watrtl06.pcx/3.png +data/tiles/water/5 watrtl06.pcx/4.png +data/tiles/water/5 watrtl06.pcx/5.png +data/tiles/water/5 watrtl06.pcx/6.png +data/tiles/water/5 watrtl06.pcx/7.png +data/tiles/water/5 watrtl06.pcx/8.png +data/tiles/water/5 watrtl06.pcx/9.png +data/tiles/water/6 watrtl07.pcx/0.png +data/tiles/water/6 watrtl07.pcx/1.png +data/tiles/water/6 watrtl07.pcx/10.png +data/tiles/water/6 watrtl07.pcx/11.png +data/tiles/water/6 watrtl07.pcx/2.png +data/tiles/water/6 watrtl07.pcx/3.png +data/tiles/water/6 watrtl07.pcx/4.png +data/tiles/water/6 watrtl07.pcx/5.png +data/tiles/water/6 watrtl07.pcx/6.png +data/tiles/water/6 watrtl07.pcx/7.png +data/tiles/water/6 watrtl07.pcx/8.png +data/tiles/water/6 watrtl07.pcx/9.png +data/tiles/water/7 watrtl08.pcx/0.png +data/tiles/water/7 watrtl08.pcx/1.png +data/tiles/water/7 watrtl08.pcx/10.png +data/tiles/water/7 watrtl08.pcx/11.png +data/tiles/water/7 watrtl08.pcx/2.png +data/tiles/water/7 watrtl08.pcx/3.png +data/tiles/water/7 watrtl08.pcx/4.png +data/tiles/water/7 watrtl08.pcx/5.png +data/tiles/water/7 watrtl08.pcx/6.png +data/tiles/water/7 watrtl08.pcx/7.png +data/tiles/water/7 watrtl08.pcx/8.png +data/tiles/water/7 watrtl08.pcx/9.png +data/tiles/water/8 watrtl09.pcx/0.png +data/tiles/water/8 watrtl09.pcx/1.png +data/tiles/water/8 watrtl09.pcx/10.png +data/tiles/water/8 watrtl09.pcx/11.png +data/tiles/water/8 watrtl09.pcx/2.png +data/tiles/water/8 watrtl09.pcx/3.png +data/tiles/water/8 watrtl09.pcx/4.png +data/tiles/water/8 watrtl09.pcx/5.png +data/tiles/water/8 watrtl09.pcx/6.png +data/tiles/water/8 watrtl09.pcx/7.png +data/tiles/water/8 watrtl09.pcx/8.png +data/tiles/water/8 watrtl09.pcx/9.png +data/tiles/water/9 watrtl10.pcx/0.png +data/tiles/water/9 watrtl10.pcx/1.png +data/tiles/water/9 watrtl10.pcx/10.png +data/tiles/water/9 watrtl10.pcx/11.png +data/tiles/water/9 watrtl10.pcx/2.png +data/tiles/water/9 watrtl10.pcx/3.png +data/tiles/water/9 watrtl10.pcx/4.png +data/tiles/water/9 watrtl10.pcx/5.png +data/tiles/water/9 watrtl10.pcx/6.png +data/tiles/water/9 watrtl10.pcx/7.png +data/tiles/water/9 watrtl10.pcx/8.png +data/tiles/water/9 watrtl10.pcx/9.png diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..6e9bc41 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +include hr.py +recursive-include data/ * diff --git a/archive/hr_option1.py b/archive/hr_option1.py new file mode 100644 index 0000000..6f0d346 --- /dev/null +++ b/archive/hr_option1.py @@ -0,0 +1,260 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles, group): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class GrassTile(object): + def __init__(self, tile, group): + self.tile = tile + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.water_tiles = self._load_water_tiles() + self.grass_tiles = self._load_grass_tiles() + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == 2: #grass + self.tiles[y][x] = GrassTile(self.grass_tiles[tile[1]], self.grass_group) + elif tile[0] == 8: #water + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]], self.water_group) + + def _load_grass_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas() + self.grass_texture = atlas.texture + self.grass_group = pyglet.graphics.TextureGroup(atlas.texture) + return [atlas.add(pyglet.image.load('data/tiles/grass/0.png'))] + + def _load_water_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.water_texture = atlas.texture + self.water_group = pyglet.graphics.TextureGroup(atlas.texture) + return [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = {} + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + for vlist in self.vertex_lists.values(): + vlist.delete() + self.vertex_lists = {} + coords = {} + textures = {} + + div_y, mod_y = divmod(self.y, 32) + div_x, mod_x = divmod(self.x, 32) + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + tile = self.mapset.get_tile(x-div_x, y-div_y) + group = tile.get_group() + if group not in coords.keys(): + coords[group] = [] + textures[group] = [] + + coords[group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + textures[group].extend(tile.get_tex_coords()) + + for group in coords.keys(): + self.vertex_lists[group] = self.batch.add((len(coords[group])//8)*4, pyglet.gl.GL_QUADS, group, + ('v2i', coords[group]), + ('t3f', textures[group]), + ('c4B', (255,255,255,255) * (len(coords[group])//8)*4)) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + if update_texture: + self._init_view() + else: + coords = {} + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + + tile = self.mapset.get_tile(x-div_x, y-div_y) + group = tile.get_group() + if group not in coords.keys(): + coords[group] = [] + coords[group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + for group in coords.keys(): + self.vertex_lists[group].vertices = coords[group] + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + water_texture = [] + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset.get_tile(x-self.x//32, y-self.y//32) + if tile.get_group() is self.mapset.water_group: + water_texture.extend(tile.get_next_tex_coords()) + self.vertex_lists[self.mapset.water_group].tex_coords = water_texture + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[[8,random.randint(0,11)] for x in xrange(128)] for y in xrange(128)] + loaded_map[10][10] = [2, 0] + loaded_map[0] = [[2,0] for y in xrange(128)] + for x in xrange(128): + loaded_map[x][32] = [2,0] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable.py b/archive/hr_stable.py new file mode 100644 index 0000000..2e40461 --- /dev/null +++ b/archive/hr_stable.py @@ -0,0 +1,154 @@ +#!/usr/bin/python + +import pyglet +import random + +class Map(object): + def __init__(self, window): + self.window = window + + #generate map + self.water_map = [[random.randint(0,11) for x in xrange(128)] for y in xrange(128)] + + self.batch = pyglet.graphics.Batch() + + self.animate = 0 + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._load_resources() + self._init_map() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _load_resources(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + self.water_texture = atlas.texture + + def _init_map(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + group = pyglet.graphics.TextureGroup(self.water_texture) + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.tiles[self.water_map[y][x]][self.animate] + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.tex_coords), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.tiles[self.water_map[y-div_y][x-div_x]][self.animate] + self.vertex_lists[y][x].tex_coords=tile.tex_coords + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_map() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.tiles[self.water_map[y-self.y//32][x-self.x//32]][self.animate] + self.vertex_lists[y][x].tex_coords=tile.tex_coords + self.animate = (self.animate+1)%12 + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 4, 28)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + map = Map(window) + window.push_handlers(map) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable0.py b/archive/hr_stable0.py new file mode 100644 index 0000000..78e80c5 --- /dev/null +++ b/archive/hr_stable0.py @@ -0,0 +1,120 @@ +#!/usr/bin/python +""" + homm3h3mview + + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip, os +import struct +import sys +import pygame +from pygame.locals import * + +class Tile(pygame.sprite.Sprite): + def __init__(self, tile_type, tile_seq, x, y, flip_x, flip_y): + pygame.sprite.Sprite.__init__(self) #call Sprite initializer + try: + if tile_type == 8: #water + image = pygame.image.load("/home/josch/fheroes3/tests/69 tiles/3229 Watrtl.def/watrtl%02d.pcx"%(tile_seq+1)) + elif tile_type == 2: #grass + print tile_seq, + path = "/home/josch/fheroes3/tests/69 tiles/3221 GRASTL.def/tgrs%03d.pcx" + if tile_seq == 20: + image = pygame.image.load(path%0) + elif tile_seq == 21: + image = pygame.image.load(path%1) + elif tile_seq == 22: + image = pygame.image.load(path%2) + elif tile_seq == 23: + image = pygame.image.load(path%3) + elif tile_seq == 24: + image = pygame.image.load(path%10) + elif tile_seq == 25: + image = pygame.image.load(path%11) + elif tile_seq == 26: + image = pygame.image.load(path%12) + elif tile_seq == 27: + image = pygame.image.load(path%13) + elif tile_seq == 28: + image = pygame.image.load(path%20) + elif tile_seq == 29: + image = pygame.image.load(path%21) + elif tile_seq == 30: + image = pygame.image.load(path%22) + elif tile_seq == 31: + image = pygame.image.load(path%23) + elif tile_seq == 32: + image = pygame.image.load(path%30) + elif tile_seq == 33: + image = pygame.image.load(path%31) + elif tile_seq == 34: + image = pygame.image.load(path%32) + elif tile_seq == 35: + image = pygame.image.load(path%33) + else: + raise Exception + except: + image = pygame.image.load("/home/josch/fheroes3/tests/69 tiles/3999 Tshre.def/Tshre10.pcx") + image = image.convert() + if flip_x or flip_y: + image = pygame.transform.flip(image, flip_x, flip_y) + self.image = image + self.rect = image.get_rect() + self.rect.topleft = (32*x,32*y) + +def extract(filename): + pygame.init() + screen = pygame.display.set_mode((800, 600)) + pygame.display.set_caption('Heroes Rebirth') + pygame.mouse.set_visible(1) + clock = pygame.time.Clock() + + + h3m_data = gzip.open(filename) + h3m_data.seek(5) + (map_size,) = struct.unpack("i", h3m_data.read(4)) + h3m_data.seek(390) + tiles = [] + for i in xrange(map_size*map_size): + x = i%map_size + y = (i-x)/map_size + tile = struct.unpack("7B", h3m_data.read(7)) + flip_x = tile[6] & 0x1 + flip_y = tile[6] & 0x2 + tile = Tile(tile[0], tile[1], x, y, flip_x, flip_y) + tiles.append(tile) + + allsprites = pygame.sprite.RenderPlain(tiles) + + while 1: + for event in pygame.event.get(): + if event.type == QUIT: + return + elif event.type == KEYDOWN and event.key == K_ESCAPE: + return + allsprites.draw(screen) + pygame.display.flip() + clock.tick(25) + +def main(args): + if len(args) != 2: + print 'usage: %s file' % args[0] + return 2 + extract(args[1]) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/archive/hr_stable1.5.py b/archive/hr_stable1.5.py new file mode 100644 index 0000000..202c310 --- /dev/null +++ b/archive/hr_stable1.5.py @@ -0,0 +1,212 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + @property + def current_frame(self): + return self.frames[self.animation] + + @property + def next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + @property + def current_tex_coords(self): + return self.current_frame.tex_coords + + @property + def next_tex_coords(self): + return self.next_frame.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.alt_water = pyglet.image.TextureGrid(pyglet.image.ImageGrid(pyglet.image.load("water.png"), 20, 16)) + self.water_texture = self.alt_water + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + #self.tiles[y][x] = WaterTile(self.water_tiles[tile]) + self.tiles[y][x] = WaterTile(self.alt_water[(0, tile):(19, tile+1)]) + + def __getitem__(self, coords): + x, y = coords + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + group = pyglet.graphics.TextureGroup(self.mapset.water_texture) + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.mapset[x, y] + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.current_tex_coords), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.mapset[x-div_x, y-div_y] + self.vertex_lists[y][x].tex_coords=tile.current_tex_coords + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset[x-self.x//32, y-self.y//32] + self.vertex_lists[y][x].tex_coords=tile.next_tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + #img = pyglet.resource.image("cursor.png") + #self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[random.randint(0,11) for x in xrange(128)] for y in xrange(128)] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable2.py b/archive/hr_stable2.py new file mode 100644 index 0000000..f678d8d --- /dev/null +++ b/archive/hr_stable2.py @@ -0,0 +1,237 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles, group): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class GrassTile(object): + def __init__(self, tile, group): + self.tile = tile + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.water_tiles = self._load_water_tiles() + self.grass_tiles = self._load_grass_tiles() + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == 2: #grass + self.tiles[y][x] = GrassTile(self.grass_tiles[tile[1]], self.grass_group) + elif tile[0] == 8: #water + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]], self.water_group) + + def _load_grass_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas() + self.grass_texture = atlas.texture + self.grass_group = pyglet.graphics.TextureGroup(atlas.texture) + return [atlas.add(pyglet.image.load('data/tiles/grass/0.png'))] + + def _load_water_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.water_texture = atlas.texture + self.water_group = pyglet.graphics.TextureGroup(atlas.texture) + return [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + + def get_tile(self, x, y): + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.mapset.get_tile(x, y) + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, tile.get_group(), + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.mapset.get_tile(x-div_x, y-div_y) + self.vertex_lists[y][x].tex_coords=tile.get_tex_coords() + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset.get_tile(x-self.x//32, y-self.y//32) + if isinstance(tile, WaterTile): + self.vertex_lists[y][x].tex_coords=tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[[8,random.randint(0,11)] for x in xrange(128)] for y in xrange(128)] + loaded_map[64][64] = [2, 0] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable3.py b/archive/hr_stable3.py new file mode 100644 index 0000000..2c891df --- /dev/null +++ b/archive/hr_stable3.py @@ -0,0 +1,409 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random +import itertools + +import demjson + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load('data/tiles/grass/%d.png'%i)) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load('data/tiles/dirt/%d.png'%i)) for i in xrange(46)] + self.water_tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load('data/tiles/edge/%d EDG%d.PCX'%(i, i+1))) for i in xrange(36)] + + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + else: + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.vertex_list = None + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #drawn tiles + self.tiles_x = min((self.viewport_x//32)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//32)+2, self.mapset.height) + + self.center_x = False + if self.mapset.width*32 < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*32)//2-(self.viewport_x//2) + self.center_y = False + if self.mapset.height*32 < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*32)//2-(self.viewport_y//2) + + #step half the drawn tiles (minus one tile) + self.steps = 32 + + #undrawn map size + self.undrawn_x = 32*(self.mapset.width-self.tiles_x) + self.undrawn_y = 32*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + if self.vertex_list is not None: + self.vertex_list.delete() + else: + #do some first time init stuff + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.global_x = (self.mapset.width*32)//2-(self.viewport_x//2) + self.global_y = (self.mapset.height*32)//2-(self.viewport_y//2) + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + div_x = (trans_global_x-mod_x)//32 + div_y = (trans_global_y-mod_y)//32+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-div_x, div_y-y) + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords.extend(tile.get_tex_coords()) + count+=1 + self.vertex_list = self.batch.add(4*count, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', vertices), + ('t3f', tex_coords), + ('c4B', (255,255,255,255)*4*count)) + self.view_x = mod_x-self.steps + self.view_y = mod_y-self.steps + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + + def _move(self, dx, dy): + retex = False + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -32*self.mapset.width+self.viewport_x: + new_global_x = -32*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -32*self.mapset.height+self.viewport_y: + new_global_y = -32*self.mapset.height+self.viewport_y+self.steps + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + div_x = (new_global_x-mod_x)//32 + div_y = (new_global_y-mod_y)//32+self.mapset.height-1 + tex_coords = [] + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-div_x, div_y-y) + tex_coords.extend(tile.get_tex_coords()) + + self.vertex_list.tex_coords = tex_coords + + if not self.center_x: + self.view_x = mod_x-self.steps + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + div_x = (trans_global_x-mod_x)//32 + div_y = (trans_global_y-mod_y)//32+self.mapset.height-1 + tex_coords = [] + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-div_x, div_y-y) + tex_coords.extend(tile.get_next_tex_coords()) + self.vertex_list.tex_coords = tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + +# loaded_map = [[[8,random.randint(0,11)] for x in xrange(32)] for y in xrange(12)] +# loaded_map[0] = [[2,0] for y in xrange(32)] +# loaded_map[11] = [[2,0] for y in xrange(32)] +# for x in xrange(12): +# loaded_map[x][0] = [2,0] +# for x in xrange(12): +# loaded_map[x][31] = [2,0] + + h3m = demjson.decode(open("test.h3m").read()) + loaded_map = h3m["upper_terrain"] + + edge_map = [[] for i in xrange(len(loaded_map)+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(loaded_map[num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + mapset = MapSet(edge_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable4.py b/archive/hr_stable4.py new file mode 100644 index 0000000..e489e44 --- /dev/null +++ b/archive/hr_stable4.py @@ -0,0 +1,420 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random +import itertools +import sys + +if sys.version_info[:2] >= (2,6): + import json +else: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load('data/tiles/grass/%d.png'%i)) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load('data/tiles/snow/%d.png'%i)) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load('data/tiles/lava/%d.png'%i)) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load('data/tiles/swamp/%d.png'%i)) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load('data/tiles/rough/%d.png'%i)) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load('data/tiles/dirt/%d.png'%i)) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load('data/tiles/rock/%d.png'%i)) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load('data/tiles/sand/%d.png'%i)) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load('data/tiles/edge/%d EDG%d.PCX'%(i, i+1))) for i in xrange(36)] + + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 1: #sand + self.tiles[y][x] = Tile(self.sand_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]]) + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]]) + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]]) + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[y][x] = Tile(self.rock_tiles[tile[1]]) + else: + print tile[0] + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + self.tile_size = 32 + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255)*4))) + self.view_x = mod_x-self.steps + self.view_y = mod_y-self.steps + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + + def _move(self, dx, dy): + retex = False + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y][x].tex_coords = tile.get_tex_coords() + + if not self.center_x: + self.view_x = mod_x-self.steps + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + if isinstance(tile, WaterTile): + self.vertex_list[y][x].tex_coords = tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + h3m = json.loads(open("test.h3m").read()) + loaded_map = h3m["upper_terrain"] + + edge_map = [[] for i in xrange(len(loaded_map)+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(loaded_map[num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + mapset = MapSet(edge_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable5.py b/archive/hr_stable5.py new file mode 100644 index 0000000..6b57bd1 --- /dev/null +++ b/archive/hr_stable5.py @@ -0,0 +1,516 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/grass/%d.png'%i))) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/snow/%d.png'%i))) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/lava/%d.png'%i))) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/swamp/%d.png'%i))) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rough/%d.png'%i))) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirt/%d.png'%i))) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rock/%d.png'%i))) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/sand/%d.png'%i))) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i)))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/edge/%d EDG%d.PCX'%(i, i+1)))) for i in xrange(36)] + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 1: #sand + self.tiles[y][x] = Tile(self.sand_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]]) + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]]) + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]]) + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[y][x] = Tile(self.rock_tiles[tile[1]]) + else: + print tile[0] + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255)*4))) + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y][x].tex_coords = tile.get_tex_coords() + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + if isinstance(tile, WaterTile): + self.vertex_list[y][x].tex_coords = tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png') + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + backgroundimg = pyglet.image.load("data/interface/gamselb1.pcx") + self.background = pyglet.sprite.Sprite(backgroundimg) + + self.label.text = "PARSING MAP FILE..." + pyglet.clock.schedule_once(self.jsonloader, 0.0) + + def on_draw(self): + self.background.draw() + self.label.draw() + + def jsonloader(self, dt): + h3m = json.loads(open("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + pyglet.clock.schedule_once(self.loader2, 0.0, h3m["upper_terrain"]) + + def loader2(self, dt, loaded_map): + edge_map = loaded_map +# edge_map = [[] for i in xrange(len(loaded_map)+16)] +# for num in xrange(len(edge_map)): +# if num < 7 or num > len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) +# elif num == 7: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 16, 0, 0, 0, 0, 0]) +# line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 17, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# elif num == len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 19, 0, 0, 0, 0, 0]) +# line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 18, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# else: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) +# line.extend(loaded_map[num-8]) +# line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# edge_map[num] = line + self.label.text = "INITIATING MAPSET..." + pyglet.clock.schedule_once(self.loader3, 0.0, edge_map) + + def loader3(self, dt, edge_map): + mapset = MapSet(edge_map) + self.label.text = "INITIATING MAPVIEW..." + pyglet.clock.schedule_once(self.loader4, 0.0, mapset) + + def loader4(self, dt, mapset): + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + img = pyglet.resource.image("data/cursors/0.png") + self.window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/1.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable6.py b/archive/hr_stable6.py new file mode 100644 index 0000000..e82b964 --- /dev/null +++ b/archive/hr_stable6.py @@ -0,0 +1,619 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_next_tex_coords(self): + self.__animation = (self.__animation+1)%len(self.__frames) + return self.__frames[self.__animation].tex_coords + + next_tex_coords = property(get_next_tex_coords) + +class MapSet(object): + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + #print len(pyglet.resource._default_loader._index) + + atlas = pyglet.image.atlas.TextureAtlas(width=1024, height=1024) + atlas2 = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.texture_group = pyglet.graphics.TextureGroup(atlas.texture) + self.group = pyglet.graphics.OrderedGroup(0, self.texture_group) + self.texture_group2 = pyglet.graphics.TextureGroup(atlas2.texture) + self.group_obj = pyglet.graphics.OrderedGroup(1, self.texture_group2) + self.grass_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/grastl.def/%d.png'%i))) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/snowtl.def/%d.png'%i))) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/lavatl.def/%d.png'%i))) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/swmptl.def/%d.png'%i))) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rougtl.def/%d.png'%i))) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirttl.def/%d.png'%i))) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rocktl.def/%d.png'%i))) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/sandtl.def/%d.png'%i))) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(j,i)))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/edg.def/%d.png'%i))) for i in xrange(36)] + self.tiles = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[x,y] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.dirt_tiles[tile[1]] + elif tile[0] == 1: #sand + self.tiles[x,y] = self.sand_tiles[tile[1]] + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.grass_tiles[tile[1]] + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.snow_tiles[tile[1]] + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.swamp_tiles[tile[1]] + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.rough_tiles[tile[1]] + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.lava_tiles[tile[1]] + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[x,y] = Animation(tiles) + else: + self.tiles[x,y] = Animation(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[x,y] = self.rock_tiles[tile[1]] + else: + raise NotImplementedError + + images = [(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/0.png")), i) for i,obj in enumerate(objects)] + self.objects = [(atlas2.add(image[0]), image[1]) for image in sorted(images, key=lambda i:i[0].height, reverse=True)] + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if self.tunedobj.get((obj["x"], obj["y"]), None) is not None: + self.tunedobj[obj["x"],obj["y"]].append(self.objects[obj["id"]]) + else: + self.tunedobj[obj["x"],obj["y"]] = [self.objects[obj["id"]]] + + self.clrrvr = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/0.png'%i))) for i in xrange(13)] + + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[2] == 1: #clrrvr + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + c = self.clrrvr[tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.clrrvr[tile[3]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + + + self.dirtrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirtrd.def/%d.png'%i))) for i in xrange(17)] + self.gravrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/gravrd.def/%d.png'%i))) for i in xrange(17)] + self.cobbrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/cobbrd.def/%d.png'%i))) for i in xrange(17)] + + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[4] == 1: #dirtrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.dirtrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.dirtrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + elif tile[4] == 2: #gravrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.gravrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.gravrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + elif tile[4] == 3: #cobbrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.cobbrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.cobbrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.vl_objects = [[] for i in xrange(self.tiles_y+4)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + for y in xrange(self.tiles_y-1, -1, -1): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x-1, -1, -1): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + self.vertex_list[y].insert(0, self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.tex_coords), + ('c4B', (255,255,255,255)*4))) + + vertices = [] + tex_coords = [] + count = 0 + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + o = self.mapset.tunedobj.get((x-self.div_x, self.div_y-y), None) + if(o is not None): + for obj in o: + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords.extend(obj.tex_coords) + count+=4 + + self.vl_objects = self.batch.add(count, pyglet.gl.GL_QUADS, + self.mapset.group_obj, + ('v2i', vertices), + ('t3f', tex_coords), + ('c4B', (255,255,255,255)*count)) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y-1, -1, -1): + for x in xrange(self.tiles_x-1, -1, -1): + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + self.vertex_list[y][x].tex_coords = tile.tex_coords + vertices = [] + tex_coords = [] + count = 0 + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + o = self.mapset.tunedobj.get((x-self.div_x, self.div_y-y), None) + if(o is not None): + for obj in o: + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords.extend(obj.tex_coords) + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count+=4 + self.vl_objects.resize(count) + self.vl_objects.tex_coords = tex_coords + self.vl_objects.vertices = vertices + self.vl_objects.colors = (255,255,255,255)*count + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + if isinstance(tile, Animation): + self.vertex_list[y][x].tex_coords = tile.next_tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1024, 768, resizable=True, vsync=False ) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png') + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." +# edge_map = [[] for i in xrange(len(loaded_map)+16)] +# for num in xrange(len(edge_map)): +# if num < 7 or num > len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) +# elif num == 7: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 16, 0, 0, 0, 0, 0]) +# line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 17, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# elif num == len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 19, 0, 0, 0, 0, 0]) +# line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 18, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# else: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) +# line.extend(loaded_map[num-8]) +# line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# edge_map[num] = line + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable7_bigtex-nosplitanim.py b/archive/hr_stable7_bigtex-nosplitanim.py new file mode 100644 index 0000000..2f8fe17 --- /dev/null +++ b/archive/hr_stable7_bigtex-nosplitanim.py @@ -0,0 +1,718 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + self.width = frames[0].width + self.height = frames[0].height + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.__frames[self.__animation].group + + group = property(get_group) + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + texture_region = self.current_atlas.add(image) + ordered_group = pyglet.graphics.OrderedGroup(order) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water + if "watrtl" not in tile_textures.keys(): + tile_textures["watrtl"] = [] + for j in xrange(33): + tile_textures["watrtl"].append([self.load_map_object('data/tiles/watrtl.def/%d/%d.png'%(j,i), 0) for i in xrange(12)]) + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for watrtl in tile_textures["watrtl"][tile[1]]: + new = watrtl.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = watrtl.group + tiles.append(new) + self.tiles[x,y] = [Animation(tiles)] + else: + self.tiles[x,y] = [Animation(tile_textures["watrtl"][tile[1]])] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr + if "clrrvr" not in tile_textures.keys(): + tile_textures["clrrvr"] = [[self.load_map_object('data/tiles/clrrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for clrrvr in tile_textures["clrrvr"][tile[3]]: + new = clrrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = clrrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["clrrvr"][tile[3]])) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + tile_textures["mudrvr"] = [[self.load_map_object('data/tiles/mudrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for mudrvr in tile_textures["mudrvr"][tile[3]]: + new = mudrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = mudrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["mudrvr"][tile[3]])) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + tile_textures["lavrvr"] = [[self.load_map_object('data/tiles/lavrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(9)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for lavrvr in tile_textures["lavrvr"][tile[3]]: + new = lavrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = lavrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["lavrvr"][tile[3]])) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + textures = [] + try: + textures = [self.current_atlas.add(img) for img in imgs[0]] + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + textures = [self.current_atlas.add(img) for img in imgs[0]] + ordered_group = pyglet.graphics.OrderedGroup(2) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + for texture in textures: + texture.group = group + self.objects.append((textures, imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if len(self.objects[obj["id"]]) == 1: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]][0]) + else: + self.tiles[obj["x"]+9,obj["y"]+8].append(Animation(self.objects[obj["id"]])) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + #pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + pass + else: + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + if isinstance(obj, Animation): + obj.next_frame() + tex_coords[obj.group].extend(obj.tex_coords) + for i, group in enumerate(self.mapset.groups): + if len(tex_coords[i]) != 0: + self.vl_objects[i].tex_coords = tex_coords[i] + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable7_smalltex-splitanim.py b/archive/hr_stable7_smalltex-splitanim.py new file mode 100644 index 0000000..876dbe8 --- /dev/null +++ b/archive/hr_stable7_smalltex-splitanim.py @@ -0,0 +1,735 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + self.width = frames[0].width + self.height = frames[0].height + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.__frames[self.__animation].group + + group = property(get_group) + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + texture_region = self.current_atlas.add(image) + ordered_group = pyglet.graphics.OrderedGroup(order) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water + if "watrtl" not in tile_textures.keys(): + tile_textures["watrtl"] = [] + for j in xrange(33): + tile_textures["watrtl"].append([self.load_map_object('data/tiles/watrtl.def/%d/%d.png'%(j,i), 0) for i in xrange(12)]) + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for watrtl in tile_textures["watrtl"][tile[1]]: + new = watrtl.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = watrtl.group + tiles.append(new) + self.tiles[x,y] = [Animation(tiles)] + else: + self.tiles[x,y] = [Animation(tile_textures["watrtl"][tile[1]])] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr + if "clrrvr" not in tile_textures.keys(): + tile_textures["clrrvr"] = [[self.load_map_object('data/tiles/clrrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for clrrvr in tile_textures["clrrvr"][tile[3]]: + new = clrrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = clrrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["clrrvr"][tile[3]])) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + tile_textures["mudrvr"] = [[self.load_map_object('data/tiles/mudrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for mudrvr in tile_textures["mudrvr"][tile[3]]: + new = mudrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = mudrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["mudrvr"][tile[3]])) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + tile_textures["lavrvr"] = [[self.load_map_object('data/tiles/lavrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(9)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for lavrvr in tile_textures["lavrvr"][tile[3]]: + new = lavrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = lavrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["lavrvr"][tile[3]])) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + textures = [] + for img in imgs[0]: + try: + textures.append(self.current_atlas.add(img)) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + textures.append(self.current_atlas.add(img)) + ordered_group = pyglet.graphics.OrderedGroup(2) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + textures[-1].group = group + self.objects.append((textures, imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if len(self.objects[obj["id"]]) == 1: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]][0]) + else: + self.tiles[obj["x"]+9,obj["y"]+8].append(Animation(self.objects[obj["id"]])) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is not None: + self.vl_objects[i].delete() + self.vl_objects[i] = None + elif count[i] != 0 and self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + if isinstance(obj, Animation): + obj.next_frame() + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is not None: + self.vl_objects[i].delete() + self.vl_objects[i] = None + elif count[i] != 0 and self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable8.py b/archive/hr_stable8.py new file mode 100644 index 0000000..f09864f --- /dev/null +++ b/archive/hr_stable8.py @@ -0,0 +1,775 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet, re +from ctypes import create_string_buffer, memmove +import itertools + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i+abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + return self.__frames[self.__animation] + + def get_tex_coords(self): + return self.tex.tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.texgroup + + group = property(get_group) + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + print "atlas" + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]]) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x + +self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size-self.viewport_y + +self.tile_size)//2 + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + self.cur_objects = [[] for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + self.cur_objects[i] = list(set(self.cur_objects[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + self.cur_objects = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + pass + else: + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + self.cur_objects[i] = list(set(self.cur_objects[i])) + + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable9.py b/archive/hr_stable9.py new file mode 100644 index 0000000..9c414b1 --- /dev/null +++ b/archive/hr_stable9.py @@ -0,0 +1,787 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet, re +from ctypes import create_string_buffer, memmove +import itertools + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 0#48 +IF_RIGHT = 0#200 +IF_TOP = IF_LEFT = 0#8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i + abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation + 1) % len(self.__frames) + return self.__frames[self.__animation] + + @property + def tex_coords(self): + return self.tex.tex_coords + + @property + def group(self): + return self.texgroup + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.__tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.__tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.__tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.__tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.__tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/" + obj["filename"] + "/%d.png"%i))) + i += 1 + if "data/map_objects/" + obj["filename"] + "/%d.png" % i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + print "atlas" + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + self.__tiles[obj["x"] + 9,obj["y"] + 8].append(self.objects[obj["id"]]) + + def get_tiles(self, tiles_x, tiles_y, div_x, div_y): + for y in xrange(tiles_y - 1, -6, -1): + y1 = y * 32 + IF_BOTTOM + for x in xrange(tiles_x + 5 - 1, -1, -1): + for obj in self.__tiles.get((x - div_x, div_y - y), []): + x1 = x * 32 + IF_LEFT - obj.width + 32 + x2 = x1 + obj.width + y2 = y1 + obj.height + yield obj, [x1, y1, x2, y1, x2, y2, x1, y2] + + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + self._first_time_init() + self._init_view() + # mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width - 10, y=0, + anchor_x='right', anchor_y='bottom') + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + # size of the viewport + self.vp_width = self.window.width-IF_RIGHT-IF_LEFT + self.vp_height = self.window.height-IF_BOTTOM-IF_TOP + # center map + self.x = (self.mapset.width * self.tile_size - self.vp_width + + self.tile_size) // 2 + self.y = (self.mapset.height * self.tile_size - self.vp_height + + self.tile_size) // 2 + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + # initiate new batch + self.batch = pyglet.graphics.Batch() + # initiate new vertex list + self.vl_objects = [None for value in self.mapset.groups] + # size of the viewport + self.vp_width = self.window.width - IF_RIGHT - IF_LEFT + self.vp_height = self.window.height - IF_BOTTOM - IF_TOP + # center map when viewport is too large, else check if map still fills + # whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width * self.tile_size < self.vp_width: + # center the map in x direction + self.center_x = True + self.x = (self.mapset.width * self.tile_size - self.vp_width) // 2 + elif self.x > self.tile_size * self.mapset.width - self.vp_width: + # move map back to the right + self.x = self.tile_size * self.mapset.width - self.vp_width + elif self.x < 0: + # move map to the left + self.x = 0 + self.center_y = False + if self.mapset.height * self.tile_size < self.vp_height: + # center the map in y direction + self.center_y = True + self.y = (self.mapset.height * self.tile_size - + self.vp_height) // 2 + elif self.y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + self.y = self.tile_size * self.mapset.height - self.vp_height + elif self.y < 0: + # move map down + self.y = 0 + # tiles to be drawn with the current viewport size + self.tiles_x = min((self.vp_width // self.tile_size) + 2, + self.mapset.width) + self.tiles_y = min((self.vp_height // self.tile_size) + 2, + self.mapset.height) + # undrawn map size in pixels + self.undrawn_x = self.tile_size * (self.mapset.width - self.tiles_x) + self.undrawn_y = self.tile_size * (self.mapset.height - self.tiles_y) + # reset mouse or keyboard movement + self.dx = 0 + self.dy = 0 + # calculate modulo pixel position of the map + if self.x - self.tile_size > self.undrawn_x: + # dont go right beyond map borders + mod_x = self.tile_size - self.x + self.undrawn_x + elif self.x > 0: + # calculate modulo of current position and tile_size + mod_x = (self.tile_size - self.x) % self.tile_size + else: + # dont go left beyond map borders + mod_x = self.tile_size - self.x + if self.y - self.tile_size > self.undrawn_y: + # dont go up beyond map borders + mod_y = self.tile_size - self.y + self.undrawn_y + elif self.y > 0: + # calculate modulo of current position and tile_size + mod_y = (self.tile_size - self.y) % self.tile_size + else: + # dont go down beyond map borders + mod_y = self.tile_size - self.y + # calculate tile position of the map, turn y coordinates upside down + self.div_x = (self.tile_size - self.x - mod_x) // self.tile_size + self.div_y = (self.tile_size - self.y - mod_y) // self.tile_size + \ + self.mapset.height - 1 + # update vertex lists with the gathered information + self.update_vertex_lists() + # update current current position that is to be glTranslated + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4 + self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + # new map position + new_x = self.x - dx + new_y = self.y - dy + # only update textures and vertices when necessary + retex = False + # if x or y jump is too big, adjust new position accordingly + if new_x < 0: + # move map to the left + new_x = 0 + retex = True + if new_x > self.tile_size * self.mapset.width - self.vp_width: + # move map to the right + new_x = self.tile_size * self.mapset.width - self.vp_width + retex = True + if new_y < 0: + # move map down + new_y = 0 + retex = True + if new_y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + new_y = self.tile_size * self.mapset.height - self.vp_height + retex = True + # find out how many steps and pixels we have to move and wether we have + # to retex + if new_x - self.tile_size > self.undrawn_x: + # we are at the right border + mod_x = self.tile_size - new_x + self.undrawn_x + # only retex if the last position was not at the border + if self.x - self.tile_size <= self.undrawn_x: + retex = True + elif new_x > 0: + # normal movement: calculate the amount of steps and the modulo + div_x, mod_x = divmod(self.tile_size - new_x, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_x != (self.tile_size - self.x) // self.tile_size: + retex = True + else: + # we are at the left border + mod_x = self.tile_size - new_x + if new_y - self.tile_size > self.undrawn_y: + # we are at the top + mod_y = self.tile_size - new_y + self.undrawn_y + # only retex if the last position was not at the border + if self.y - self.tile_size <= self.undrawn_y: + retex = True + elif new_y > 0: + # normal movement: calculate the amount of steps and the modulo + div_y, mod_y = divmod(self.tile_size - new_y, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_y != (self.tile_size - self.y) // self.tile_size: + retex = True + else: + # we are at the bottom + mod_y = self.tile_size - new_y + # if we have to update vertices and textures + if retex: + # calculate the current position on the tilemap + self.div_x = (self.tile_size - new_x - mod_x) // \ + self.tile_size + self.div_y = (self.tile_size - new_y - mod_y) // \ + self.tile_size + self.mapset.height - 1 + self.update_vertex_lists() + # update position if not centered + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + if not self.center_x: + self.view_x = mod_x-self.tile_size-(self.tile_size-32)//4 + self.x = new_x + if not self.center_y: + self.view_y = mod_y-self.tile_size-((self.tile_size-32)*3)//2 + self.y = new_y + + def update_vertex_lists(self): + # initiate lists of vertex lists, vertices, texture coords, vertices + # counts and map objects for each group + vertices = [[] for value in self.mapset.groups] + tex_coords = [[] for value in self.mapset.groups] + count = [0 for value in self.mapset.groups] + self.cur_objects = [[] for value in self.mapset.groups] + # for each tile in the viewport, update the list of the specific group + for obj, coords in self.mapset.get_tiles(self.tiles_x, self.tiles_y, + self.div_x, self.div_y): + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend(coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + # let the vertex list be None + pass + else: + # there was a vertex list but now no more - delete it + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + # there was no vertex list but ther now is one - create it + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + # there already is a vertex list - resize and refill + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + # make object list unique + self.cur_objects[i] = list(set(self.cur_objects[i])) + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + # mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/demjson.py b/demjson.py new file mode 100644 index 0000000..580fbfa --- /dev/null +++ b/demjson.py @@ -0,0 +1,2136 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +r""" A JSON data encoder and decoder. + + This Python module implements the JSON (http://json.org/) data + encoding format; a subset of ECMAScript (aka JavaScript) for encoding + primitive data types (numbers, strings, booleans, lists, and + associative arrays) in a language-neutral simple text-based syntax. + + It can encode or decode between JSON formatted strings and native + Python data types. Normally you would use the encode() and decode() + functions defined by this module, but if you want more control over + the processing you can use the JSON class. + + This implementation tries to be as completely cormforming to all + intricacies of the standards as possible. It can operate in strict + mode (which only allows JSON-compliant syntax) or a non-strict mode + (which allows much more of the whole ECMAScript permitted syntax). + This includes complete support for Unicode strings (including + surrogate-pairs for non-BMP characters), and all number formats + including negative zero and IEEE 754 non-numbers such a NaN or + Infinity. + + The JSON/ECMAScript to Python type mappings are: + ---JSON--- ---Python--- + null None + undefined undefined (note 1) + Boolean (true,false) bool (True or False) + Integer int or long (note 2) + Float float + String str or unicode ( "..." or u"..." ) + Array [a, ...] list ( [...] ) + Object {a:b, ...} dict ( {...} ) + + -- Note 1. an 'undefined' object is declared in this module which + represents the native Python value for this type when in + non-strict mode. + + -- Note 2. some ECMAScript integers may be up-converted to Python + floats, such as 1e+40. Also integer -0 is converted to + float -0, so as to preserve the sign (which ECMAScript requires). + + In addition, when operating in non-strict mode, several IEEE 754 + non-numbers are also handled, and are mapped to specific Python + objects declared in this module: + + NaN (not a number) nan (float('nan')) + Infinity, +Infinity inf (float('inf')) + -Infinity neginf (float('-inf')) + + When encoding Python objects into JSON, you may use types other than + native lists or dictionaries, as long as they support the minimal + interfaces required of all sequences or mappings. This means you can + use generators and iterators, tuples, UserDict subclasses, etc. + + To make it easier to produce JSON encoded representations of user + defined classes, if the object has a method named json_equivalent(), + then it will call that method and attempt to encode the object + returned from it instead. It will do this recursively as needed and + before any attempt to encode the object using it's default + strategies. Note that any json_equivalent() method should return + "equivalent" Python objects to be encoded, not an already-encoded + JSON-formatted string. There is no such aid provided to decode + JSON back into user-defined classes as that would dramatically + complicate the interface. + + When decoding strings with this module it may operate in either + strict or non-strict mode. The strict mode only allows syntax which + is conforming to RFC 4627 (JSON), while the non-strict allows much + more of the permissible ECMAScript syntax. + + The following are permitted when processing in NON-STRICT mode: + + * Unicode format control characters are allowed anywhere in the input. + * All Unicode line terminator characters are recognized. + * All Unicode white space characters are recognized. + * The 'undefined' keyword is recognized. + * Hexadecimal number literals are recognized (e.g., 0xA6, 0177). + * String literals may use either single or double quote marks. + * Strings may contain \x (hexadecimal) escape sequences, as well as the + \v and \0 escape sequences. + * Lists may have omitted (elided) elements, e.g., [,,,,,], with + missing elements interpreted as 'undefined' values. + * Object properties (dictionary keys) can be of any of the + types: string literals, numbers, or identifiers (the later of + which are treated as if they are string literals)---as permitted + by ECMAScript. JSON only permits strings literals as keys. + + Concerning non-strict and non-ECMAScript allowances: + + * Octal numbers: If you allow the 'octal_numbers' behavior (which + is never enabled by default), then you can use octal integers + and octal character escape sequences (per the ECMAScript + standard Annex B.1.2). This behavior is allowed, if enabled, + because it was valid JavaScript at one time. + + * Multi-line string literals: Strings which are more than one + line long (contain embedded raw newline characters) are never + permitted. This is neither valid JSON nor ECMAScript. Some other + JSON implementations may allow this, but this module considers + that behavior to be a mistake. + + References: + * JSON (JavaScript Object Notation) + + * RFC 4627. The application/json Media Type for JavaScript Object Notation (JSON) + + * ECMA-262 3rd edition (1999) + + * IEEE 754-1985: Standard for Binary Floating-Point Arithmetic. + + +""" + +__author__ = "Deron Meranda " +__date__ = "2008-03-19" +__version__ = "1.3" +__credits__ = """Copyright (c) 2006-2008 Deron E. Meranda +Licensed under GNU GPL 3.0 or later. See LICENSE.txt included with this software. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +""" + +# ------------------------------ +# useful global constants + +content_type = 'application/json' +file_ext = 'json' +hexdigits = '0123456789ABCDEFabcdef' +octaldigits = '01234567' + +# ---------------------------------------------------------------------- +# Decimal and float types. +# +# If a JSON number can not be stored in a Python float without loosing +# precision and the Python has the decimal type, then we will try to +# use decimal instead of float. To make this determination we need to +# know the limits of the float type, but Python doesn't have an easy +# way to tell what the largest floating-point number it supports. So, +# we detemine the precision and scale of the float type by testing it. + +try: + # decimal module was introduced in Python 2.4 + import decimal +except ImportError: + decimal = None + +def determine_float_precision(): + """Returns a tuple (significant_digits, max_exponent) for the float type. + """ + import math + # Just count the digits in pi. The last two decimal digits + # may only be partial digits, so discount for them. + whole, frac = repr(math.pi).split('.') + sigdigits = len(whole) + len(frac) - 2 + + # This is a simple binary search. We find the largest exponent + # that the float() type can handle without going infinite or + # raising errors. + maxexp = None + minv = 0; maxv = 1000 + while True: + if minv+1 == maxv: + maxexp = minv - 1 + break + elif maxv < minv: + maxexp = None + break + m = (minv + maxv) // 2 + try: + f = repr(float( '1e+%d' % m )) + except ValueError: + f = None + else: + if not f or f[0] < '0' or f[0] > '9': + f = None + if not f: + # infinite + maxv = m + else: + minv = m + return sigdigits, maxexp + +float_sigdigits, float_maxexp = determine_float_precision() + +# ---------------------------------------------------------------------- +# The undefined value. +# +# ECMAScript has an undefined value (similar to yet distinct from null). +# Neither Python or strict JSON have support undefined, but to allow +# JavaScript behavior we must simulate it. + +class _undefined_class(object): + """Represents the ECMAScript 'undefined' value.""" + __slots__ = [] + def __repr__(self): + return self.__module__ + '.undefined' + def __str__(self): + return 'undefined' + def __nonzero__(self): + return False +undefined = _undefined_class() +del _undefined_class + + +# ---------------------------------------------------------------------- +# Non-Numbers: NaN, Infinity, -Infinity +# +# ECMAScript has official support for non-number floats, although +# strict JSON does not. Python doesn't either. So to support the +# full JavaScript behavior we must try to add them into Python, which +# is unfortunately a bit of black magic. If our python implementation +# happens to be built on top of IEEE 754 we can probably trick python +# into using real floats. Otherwise we must simulate it with classes. + +def _nonnumber_float_constants(): + """Try to return the Nan, Infinity, and -Infinity float values. + + This is unnecessarily complex because there is no standard + platform- independent way to do this in Python as the language + (opposed to some implementation of it) doesn't discuss + non-numbers. We try various strategies from the best to the + worst. + + If this Python interpreter uses the IEEE 754 floating point + standard then the returned values will probably be real instances + of the 'float' type. Otherwise a custom class object is returned + which will attempt to simulate the correct behavior as much as + possible. + + """ + try: + # First, try (mostly portable) float constructor. Works under + # Linux x86 (gcc) and some Unices. + nan = float('nan') + inf = float('inf') + neginf = float('-inf') + except ValueError: + try: + # Try the AIX (PowerPC) float constructors + nan = float('NaNQ') + inf = float('INF') + neginf = float('-INF') + except ValueError: + try: + # Next, try binary unpacking. Should work under + # platforms using IEEE 754 floating point. + import struct, sys + xnan = '7ff8000000000000'.decode('hex') # Quiet NaN + xinf = '7ff0000000000000'.decode('hex') + xcheck = 'bdc145651592979d'.decode('hex') # -3.14159e-11 + # Could use float.__getformat__, but it is a new python feature, + # so we use sys.byteorder. + if sys.byteorder == 'big': + nan = struct.unpack('d', xnan)[0] + inf = struct.unpack('d', xinf)[0] + check = struct.unpack('d', xcheck)[0] + else: + nan = struct.unpack('d', xnan[::-1])[0] + inf = struct.unpack('d', xinf[::-1])[0] + check = struct.unpack('d', xcheck[::-1])[0] + neginf = - inf + if check != -3.14159e-11: + raise ValueError('Unpacking raw IEEE 754 floats does not work') + except (ValueError, TypeError): + # Punt, make some fake classes to simulate. These are + # not perfect though. For instance nan * 1.0 == nan, + # as expected, but 1.0 * nan == 0.0, which is wrong. + class nan(float): + """An approximation of the NaN (not a number) floating point number.""" + def __repr__(self): return 'nan' + def __str__(self): return 'nan' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): return self + def __rmul__(self,x): return self + def __div__(self,x): return self + def __rdiv__(self,x): return self + def __divmod__(self,x): return (self,self) + def __rdivmod__(self,x): return (self,self) + def __mod__(self,x): return self + def __rmod__(self,x): return self + def __pow__(self,exp): return self + def __rpow__(self,exp): return self + def __neg__(self): return self + def __pos__(self): return self + def __abs__(self): return self + def __lt__(self,x): return False + def __le__(self,x): return False + def __eq__(self,x): return False + def __neq__(self,x): return True + def __ge__(self,x): return False + def __gt__(self,x): return False + def __complex__(self,*a): raise NotImplementedError('NaN can not be converted to a complex') + if decimal: + nan = decimal.Decimal('NaN') + else: + nan = nan() + class inf(float): + """An approximation of the +Infinity floating point number.""" + def __repr__(self): return 'inf' + def __str__(self): return 'inf' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): + if x is neginf or x < 0: + return neginf + elif x == 0: + return nan + else: + return self + def __rmul__(self,x): return self.__mul__(x) + def __div__(self,x): + if x == 0: + raise ZeroDivisionError('float division') + elif x < 0: + return neginf + else: + return self + def __rdiv__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return 0.0 + def __divmod__(self,x): + if x == 0: + raise ZeroDivisionError('float divmod()') + elif x < 0: + return (nan,nan) + else: + return (self,self) + def __rdivmod__(self,x): + if x is inf or x is neginf or x is nan: + return (nan, nan) + return (0.0, x) + def __mod__(self,x): + if x == 0: + raise ZeroDivisionError('float modulo') + else: + return nan + def __rmod__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return x + def __pow__(self, exp): + if exp == 0: + return 1.0 + else: + return self + def __rpow__(self, x): + if -1 < x < 1: return 0.0 + elif x == 1.0: return 1.0 + elif x is nan or x is neginf or x < 0: + return nan + else: + return self + def __neg__(self): return neginf + def __pos__(self): return self + def __abs__(self): return self + def __lt__(self,x): return False + def __le__(self,x): + if x is self: + return True + else: + return False + def __eq__(self,x): + if x is self: + return True + else: + return False + def __neq__(self,x): + if x is self: + return False + else: + return True + def __ge__(self,x): return True + def __gt__(self,x): return True + def __complex__(self,*a): raise NotImplementedError('Infinity can not be converted to a complex') + if decimal: + inf = decimal.Decimal('Infinity') + else: + inf = inf() + class neginf(float): + """An approximation of the -Infinity floating point number.""" + def __repr__(self): return '-inf' + def __str__(self): return '-inf' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): + if x is self or x < 0: + return inf + elif x == 0: + return nan + else: + return self + def __rmul__(self,x): return self.__mul__(self) + def __div__(self,x): + if x == 0: + raise ZeroDivisionError('float division') + elif x < 0: + return inf + else: + return self + def __rdiv__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return -0.0 + def __divmod__(self,x): + if x == 0: + raise ZeroDivisionError('float divmod()') + elif x < 0: + return (nan,nan) + else: + return (self,self) + def __rdivmod__(self,x): + if x is inf or x is neginf or x is nan: + return (nan, nan) + return (-0.0, x) + def __mod__(self,x): + if x == 0: + raise ZeroDivisionError('float modulo') + else: + return nan + def __rmod__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return x + def __pow__(self,exp): + if exp == 0: + return 1.0 + else: + return self + def __rpow__(self, x): + if x is nan or x is inf or x is inf: + return nan + return 0.0 + def __neg__(self): return inf + def __pos__(self): return self + def __abs__(self): return inf + def __lt__(self,x): return True + def __le__(self,x): return True + def __eq__(self,x): + if x is self: + return True + else: + return False + def __neq__(self,x): + if x is self: + return False + else: + return True + def __ge__(self,x): + if x is self: + return True + else: + return False + def __gt__(self,x): return False + def __complex__(self,*a): raise NotImplementedError('-Infinity can not be converted to a complex') + if decimal: + neginf = decimal.Decimal('-Infinity') + else: + neginf = neginf(0) + return nan, inf, neginf + +nan, inf, neginf = _nonnumber_float_constants() +del _nonnumber_float_constants + + +# ---------------------------------------------------------------------- +# String processing helpers + +unsafe_string_chars = '"\\' + ''.join([chr(i) for i in range(0x20)]) +def skipstringsafe( s, start=0, end=None ): + i = start + #if end is None: + # end = len(s) + while i < end and s[i] not in unsafe_string_chars: + #c = s[i] + #if c in unsafe_string_chars: + # break + i += 1 + return i +def skipstringsafe_slow( s, start=0, end=None ): + i = start + if end is None: + end = len(s) + while i < end: + c = s[i] + if c == '"' or c == '\\' or ord(c) <= 0x1f: + break + i += 1 + return i + +def extend_list_with_sep( orig_seq, extension_seq, sepchar='' ): + if not sepchar: + orig_seq.extend( extension_seq ) + else: + for i, x in enumerate(extension_seq): + if i > 0: + orig_seq.append( sepchar ) + orig_seq.append( x ) + +def extend_and_flatten_list_with_sep( orig_seq, extension_seq, separator='' ): + for i, part in enumerate(extension_seq): + if i > 0 and separator: + orig_seq.append( separator ) + orig_seq.extend( part ) + + +# ---------------------------------------------------------------------- +# Unicode helpers +# +# JSON requires that all JSON implementations must support the UTF-32 +# encoding (as well as UTF-8 and UTF-16). But earlier versions of +# Python did not provide a UTF-32 codec. So we must implement UTF-32 +# ourselves in case we need it. + +def utf32le_encode( obj, errors='strict' ): + """Encodes a Unicode string into a UTF-32LE encoded byte string.""" + import struct + try: + import cStringIO as sio + except ImportError: + import StringIO as sio + f = sio.StringIO() + write = f.write + pack = struct.pack + for c in obj: + n = ord(c) + if 0xD800 <= n <= 0xDFFF: # surrogate codepoints are prohibited by UTF-32 + if errors == 'ignore': + continue + elif errors == 'replace': + n = ord('?') + else: + cname = 'U+%04X'%n + raise UnicodeError('UTF-32 can not encode surrogate characters',cname) + write( pack('L', n) ) + return f.getvalue() + + +def utf32le_decode( obj, errors='strict' ): + """Decodes a UTF-32LE byte string into a Unicode string.""" + if len(obj) % 4 != 0: + raise UnicodeError('UTF-32 decode error, data length not a multiple of 4 bytes') + import struct + unpack = struct.unpack + chars = [] + i = 0 + for i in range(0, len(obj), 4): + seq = obj[i:i+4] + n = unpack('L',seq)[0] + chars.append( unichr(n) ) + return u''.join( chars ) + + +def auto_unicode_decode( s ): + """Takes a string and tries to convert it to a Unicode string. + + This will return a Python unicode string type corresponding to the + input string (either str or unicode). The character encoding is + guessed by looking for either a Unicode BOM prefix, or by the + rules specified by RFC 4627. When in doubt it is assumed the + input is encoded in UTF-8 (the default for JSON). + + """ + if isinstance(s, unicode): + return s + if len(s) < 4: + return s.decode('utf8') # not enough bytes, assume default of utf-8 + # Look for BOM marker + import codecs + bom2 = s[:2] + bom4 = s[:4] + a, b, c, d = map(ord, s[:4]) # values of first four bytes + if bom4 == codecs.BOM_UTF32_LE: + encoding = 'utf-32le' + s = s[4:] + elif bom4 == codecs.BOM_UTF32_BE: + encoding = 'utf-32be' + s = s[4:] + elif bom2 == codecs.BOM_UTF16_LE: + encoding = 'utf-16le' + s = s[2:] + elif bom2 == codecs.BOM_UTF16_BE: + encoding = 'utf-16be' + s = s[2:] + # No BOM, so autodetect encoding used by looking at first four bytes + # according to RFC 4627 section 3. + elif a==0 and b==0 and c==0 and d!=0: # UTF-32BE + encoding = 'utf-32be' + elif a==0 and b!=0 and c==0 and d!=0: # UTF-16BE + encoding = 'utf-16be' + elif a!=0 and b==0 and c==0 and d==0: # UTF-32LE + encoding = 'utf-32le' + elif a!=0 and b==0 and c!=0 and d==0: # UTF-16LE + encoding = 'utf-16le' + else: #if a!=0 and b!=0 and c!=0 and d!=0: # UTF-8 + # JSON spec says default is UTF-8, so always guess it + # if we can't guess otherwise + encoding = 'utf8' + # Make sure the encoding is supported by Python + try: + cdk = codecs.lookup(encoding) + except LookupError: + if encoding.startswith('utf-32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + unis = utf32le_decode(s) + else: + unis = utf32be_decode(s) + else: + raise JSONDecodeError('this python has no codec for this character encoding',encoding) + else: + # Convert to unicode using a standard codec + unis = s.decode(encoding) + return unis + + +def surrogate_pair_as_unicode( c1, c2 ): + """Takes a pair of unicode surrogates and returns the equivalent unicode character. + + The input pair must be a surrogate pair, with c1 in the range + U+D800 to U+DBFF and c2 in the range U+DC00 to U+DFFF. + + """ + n1, n2 = ord(c1), ord(c2) + if n1 < 0xD800 or n1 > 0xDBFF or n2 < 0xDC00 or n2 > 0xDFFF: + raise JSONDecodeError('illegal Unicode surrogate pair',(c1,c2)) + a = n1 - 0xD800 + b = n2 - 0xDC00 + v = (a << 10) | b + v += 0x10000 + return unichr(v) + + +def unicode_as_surrogate_pair( c ): + """Takes a single unicode character and returns a sequence of surrogate pairs. + + The output of this function is a tuple consisting of one or two unicode + characters, such that if the input character is outside the BMP range + then the output is a two-character surrogate pair representing that character. + + If the input character is inside the BMP then the output tuple will have + just a single character...the same one. + + """ + n = ord(c) + if n < 0x10000: + return (unichr(n),) # in BMP, surrogate pair not required + v = n - 0x10000 + vh = (v >> 10) & 0x3ff # highest 10 bits + vl = v & 0x3ff # lowest 10 bits + w1 = 0xD800 | vh + w2 = 0xDC00 | vl + return (unichr(w1), unichr(w2)) + + +# ---------------------------------------------------------------------- +# Type identification + +def isnumbertype( obj ): + """Is the object of a Python number type (excluding complex)?""" + return isinstance(obj, (int,long,float)) \ + and not isinstance(obj, bool) \ + or obj is nan or obj is inf or obj is neginf + + +def isstringtype( obj ): + """Is the object of a Python string type?""" + if isinstance(obj, basestring): + return True + # Must also check for some other pseudo-string types + import types, UserString + return isinstance(obj, types.StringTypes) \ + or isinstance(obj, UserString.UserString) \ + or isinstance(obj, UserString.MutableString) + + +# ---------------------------------------------------------------------- +# Numeric helpers + +def decode_hex( hexstring ): + """Decodes a hexadecimal string into it's integer value.""" + # We don't use the builtin 'hex' codec in python since it can + # not handle odd numbers of digits, nor raise the same type + # of exceptions we want to. + n = 0 + for c in hexstring: + if '0' <= c <= '9': + d = ord(c) - ord('0') + elif 'a' <= c <= 'f': + d = ord(c) - ord('a') + 10 + elif 'A' <= c <= 'F': + d = ord(c) - ord('A') + 10 + else: + raise JSONDecodeError('not a hexadecimal number',hexstring) + # Could use ((n << 4 ) | d), but python 2.3 issues a FutureWarning. + n = (n * 16) + d + return n + + +def decode_octal( octalstring ): + """Decodes an octal string into it's integer value.""" + n = 0 + for c in octalstring: + if '0' <= c <= '7': + d = ord(c) - ord('0') + else: + raise JSONDecodeError('not an octal number',octalstring) + # Could use ((n << 3 ) | d), but python 2.3 issues a FutureWarning. + n = (n * 8) + d + return n + + +# ---------------------------------------------------------------------- +# Exception classes. + +class JSONError(ValueError): + """Our base class for all JSON-related errors. + + """ + def pretty_description(self): + err = self.args[0] + if len(self.args) > 1: + err += ': ' + for anum, a in enumerate(self.args[1:]): + if anum > 1: + err += ', ' + astr = repr(a) + if len(astr) > 20: + astr = astr[:20] + '...' + err += astr + return err + +class JSONDecodeError(JSONError): + """An exception class raised when a JSON decoding error (syntax error) occurs.""" + + +class JSONEncodeError(JSONError): + """An exception class raised when a python object can not be encoded as a JSON string.""" + + +#---------------------------------------------------------------------- +# The main JSON encoder/decoder class. + +class JSON(object): + """An encoder/decoder for JSON data streams. + + Usually you will call the encode() or decode() methods. The other + methods are for lower-level processing. + + Whether the JSON parser runs in strict mode (which enforces exact + compliance with the JSON spec) or the more forgiving non-string mode + can be affected by setting the 'strict' argument in the object's + initialization; or by assigning True or False to the 'strict' + property of the object. + + You can also adjust a finer-grained control over strictness by + allowing or preventing specific behaviors. You can get a list of + all the available behaviors by accessing the 'behaviors' property. + Likewise the allowed_behaviors and prevented_behaviors list which + behaviors will be allowed and which will not. Call the allow() + or prevent() methods to adjust these. + + """ + _escapes_json = { # character escapes in JSON + '"': '"', + '/': '/', + '\\': '\\', + 'b': '\b', + 'f': '\f', + 'n': '\n', + 'r': '\r', + 't': '\t', + } + + _escapes_js = { # character escapes in Javascript + '"': '"', + '\'': '\'', + '\\': '\\', + 'b': '\b', + 'f': '\f', + 'n': '\n', + 'r': '\r', + 't': '\t', + 'v': '\v', + '0': '\x00' + } + + # Following is a reverse mapping of escape characters, used when we + # output JSON. Only those escapes which are always safe (e.g., in JSON) + # are here. It won't hurt if we leave questionable ones out. + _rev_escapes = {'\n': '\\n', + '\t': '\\t', + '\b': '\\b', + '\r': '\\r', + '\f': '\\f', + '"': '\\"', + '\\': '\\\\'} + + def __init__(self, strict=False, compactly=True, escape_unicode=False): + """Creates a JSON encoder/decoder object. + + If 'strict' is set to True, then only strictly-conforming JSON + output will be produced. Note that this means that some types + of values may not be convertable and will result in a + JSONEncodeError exception. + + If 'compactly' is set to True, then the resulting string will + have all extraneous white space removed; if False then the + string will be "pretty printed" with whitespace and indentation + added to make it more readable. + + If 'escape_unicode' is set to True, then all non-ASCII characters + will be represented as a unicode escape sequence; if False then + the actual real unicode character will be inserted if possible. + + The 'escape_unicode' can also be a function, which when called + with a single argument of a unicode character will return True + if the character should be escaped or False if it should not. + + If you wish to extend the encoding to ba able to handle + additional types, you should subclass this class and override + the encode_default() method. + + """ + import sys + self._set_strictness(strict) + self._encode_compactly = compactly + try: + # see if we were passed a predicate function + b = escape_unicode(u'A') + self._encode_unicode_as_escapes = escape_unicode + except (ValueError, NameError, TypeError): + # Just set to True or False. We could use lambda x:True + # to make it more consistent (always a function), but it + # will be too slow, so we'll make explicit tests later. + self._encode_unicode_as_escapes = bool(escape_unicode) + self._sort_dictionary_keys = True + + # The following is a boolean map of the first 256 characters + # which will quickly tell us which of those characters never + # need to be escaped. + + self._asciiencodable = [32 <= c < 128 and not self._rev_escapes.has_key(chr(c)) + for c in range(0,255)] + + def _set_strictness(self, strict): + """Changes the strictness behavior. + + Pass True to be very strict about JSON syntax, or False to be looser. + """ + self._allow_any_type_at_start = not strict + self._allow_all_numeric_signs = not strict + self._allow_comments = not strict + self._allow_control_char_in_string = not strict + self._allow_hex_numbers = not strict + self._allow_initial_decimal_point = not strict + self._allow_js_string_escapes = not strict + self._allow_non_numbers = not strict + self._allow_nonescape_characters = not strict # "\z" -> "z" + self._allow_nonstring_keys = not strict + self._allow_omitted_array_elements = not strict + self._allow_single_quoted_strings = not strict + self._allow_trailing_comma_in_literal = not strict + self._allow_undefined_values = not strict + self._allow_unicode_format_control_chars = not strict + self._allow_unicode_whitespace = not strict + # Always disable this by default + self._allow_octal_numbers = False + + def allow(self, behavior): + """Allow the specified behavior (turn off a strictness check). + + The list of all possible behaviors is available in the behaviors property. + You can see which behaviors are currently allowed by accessing the + allowed_behaviors property. + + """ + p = '_allow_' + behavior + if hasattr(self, p): + setattr(self, p, True) + else: + raise AttributeError('Behavior is not known',behavior) + + def prevent(self, behavior): + """Prevent the specified behavior (turn on a strictness check). + + The list of all possible behaviors is available in the behaviors property. + You can see which behaviors are currently prevented by accessing the + prevented_behaviors property. + + """ + p = '_allow_' + behavior + if hasattr(self, p): + setattr(self, p, False) + else: + raise AttributeError('Behavior is not known',behavior) + + def _get_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_')]) + behaviors = property(_get_behaviors, + doc='List of known behaviors that can be passed to allow() or prevent() methods') + + def _get_allowed_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_') and getattr(self,n)]) + allowed_behaviors = property(_get_allowed_behaviors, + doc='List of known behaviors that are currently allowed') + + def _get_prevented_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_') and not getattr(self,n)]) + prevented_behaviors = property(_get_prevented_behaviors, + doc='List of known behaviors that are currently prevented') + + def _is_strict(self): + return not self.allowed_behaviors + strict = property(_is_strict, _set_strictness, + doc='True if adherence to RFC 4627 syntax is strict, or False is more generous ECMAScript syntax is permitted') + + + def isws(self, c): + """Determines if the given character is considered as white space. + + Note that Javscript is much more permissive on what it considers + to be whitespace than does JSON. + + Ref. ECMAScript section 7.2 + + """ + if not self._allow_unicode_whitespace: + return c in ' \t\n\r' + else: + if not isinstance(c,unicode): + c = unicode(c) + if c in u' \t\n\r\f\v': + return True + import unicodedata + return unicodedata.category(c) == 'Zs' + + def islineterm(self, c): + """Determines if the given character is considered a line terminator. + + Ref. ECMAScript section 7.3 + + """ + if c == '\r' or c == '\n': + return True + if c == u'\u2028' or c == u'\u2029': # unicodedata.category(c) in ['Zl', 'Zp'] + return True + return False + + def strip_format_control_chars(self, txt): + """Filters out all Unicode format control characters from the string. + + ECMAScript permits any Unicode "format control characters" to + appear at any place in the source code. They are to be + ignored as if they are not there before any other lexical + tokenization occurs. Note that JSON does not allow them. + + Ref. ECMAScript section 7.1. + + """ + import unicodedata + txt2 = filter( lambda c: unicodedata.category(unicode(c)) != 'Cf', + txt ) + return txt2 + + + def decode_null(self, s, i=0): + """Intermediate-level decoder for ECMAScript 'null' keyword. + + Takes a string and a starting index, and returns a Python + None object and the index of the next unparsed character. + + """ + if i < len(s) and s[i:i+4] == 'null': + return None, i+4 + raise JSONDecodeError('literal is not the JSON "null" keyword', s) + + def encode_undefined(self): + """Produces the ECMAScript 'undefined' keyword.""" + return 'undefined' + + def encode_null(self): + """Produces the JSON 'null' keyword.""" + return 'null' + + def decode_boolean(self, s, i=0): + """Intermediate-level decode for JSON boolean literals. + + Takes a string and a starting index, and returns a Python bool + (True or False) and the index of the next unparsed character. + + """ + if s[i:i+4] == 'true': + return True, i+4 + elif s[i:i+5] == 'false': + return False, i+5 + raise JSONDecodeError('literal value is not a JSON boolean keyword',s) + + def encode_boolean(self, b): + """Encodes the Python boolean into a JSON Boolean literal.""" + if bool(b): + return 'true' + return 'false' + + def decode_number(self, s, i=0, imax=None): + """Intermediate-level decoder for JSON numeric literals. + + Takes a string and a starting index, and returns a Python + suitable numeric type and the index of the next unparsed character. + + The returned numeric type can be either of a Python int, + long, or float. In addition some special non-numbers may + also be returned such as nan, inf, and neginf (technically + which are Python floats, but have no numeric value.) + + Ref. ECMAScript section 8.5. + + """ + if imax is None: + imax = len(s) + # Detect initial sign character(s) + if not self._allow_all_numeric_signs: + if s[i] == '+' or (s[i] == '-' and i+1 < imax and \ + s[i+1] in '+-'): + raise JSONDecodeError('numbers in strict JSON may only have a single "-" as a sign prefix',s[i:]) + sign = +1 + j = i # j will point after the sign prefix + while j < imax and s[j] in '+-': + if s[j] == '-': sign = sign * -1 + j += 1 + # Check for ECMAScript symbolic non-numbers + if s[j:j+3] == 'NaN': + if self._allow_non_numbers: + return nan, j+3 + else: + raise JSONDecodeError('NaN literals are not allowed in strict JSON') + elif s[j:j+8] == 'Infinity': + if self._allow_non_numbers: + if sign < 0: + return neginf, j+8 + else: + return inf, j+8 + else: + raise JSONDecodeError('Infinity literals are not allowed in strict JSON') + elif s[j:j+2] in ('0x','0X'): + if self._allow_hex_numbers: + k = j+2 + while k < imax and s[k] in hexdigits: + k += 1 + n = sign * decode_hex( s[j+2:k] ) + return n, k + else: + raise JSONDecodeError('hexadecimal literals are not allowed in strict JSON',s[i:]) + else: + # Decimal (or octal) number, find end of number. + # General syntax is: \d+[\.\d+][e[+-]?\d+] + k = j # will point to end of digit sequence + could_be_octal = ( k+1 < imax and s[k] == '0' ) # first digit is 0 + decpt = None # index into number of the decimal point, if any + ept = None # index into number of the e|E exponent start, if any + esign = '+' # sign of exponent + sigdigits = 0 # number of significant digits (approx, counts end zeros) + while k < imax and (s[k].isdigit() or s[k] in '.+-eE'): + c = s[k] + if c not in octaldigits: + could_be_octal = False + if c == '.': + if decpt is not None or ept is not None: + break + else: + decpt = k-j + elif c in 'eE': + if ept is not None: + break + else: + ept = k-j + elif c in '+-': + if not ept: + break + esign = c + else: #digit + if not ept: + sigdigits += 1 + k += 1 + number = s[j:k] # The entire number as a string + #print 'NUMBER IS: ', repr(number), ', sign', sign, ', esign', esign, \ + # ', sigdigits', sigdigits, \ + # ', decpt', decpt, ', ept', ept + + # Handle octal integers first as an exception. If octal + # is not enabled (the ECMAScipt standard) then just do + # nothing and treat the string as a decimal number. + if could_be_octal and self._allow_octal_numbers: + n = sign * decode_octal( number ) + return n, k + + # A decimal number. Do a quick check on JSON syntax restrictions. + if number[0] == '.' and not self._allow_initial_decimal_point: + raise JSONDecodeError('numbers in strict JSON must have at least one digit before the decimal point',s[i:]) + elif number[0] == '0' and \ + len(number) > 1 and number[1].isdigit(): + if self._allow_octal_numbers: + raise JSONDecodeError('initial zero digit is only allowed for octal integers',s[i:]) + else: + raise JSONDecodeError('initial zero digit must not be followed by other digits (octal numbers are not permitted)',s[i:]) + # Make sure decimal point is followed by a digit + if decpt is not None: + if decpt+1 >= len(number) or not number[decpt+1].isdigit(): + raise JSONDecodeError('decimal point must be followed by at least one digit',s[i:]) + # Determine the exponential part + if ept is not None: + if ept+1 >= len(number): + raise JSONDecodeError('exponent in number is truncated',s[i:]) + try: + exponent = int(number[ept+1:]) + except ValueError: + raise JSONDecodeError('not a valid exponent in number',s[i:]) + ##print 'EXPONENT', exponent + else: + exponent = 0 + # Try to make an int/long first. + if decpt is None and exponent >= 0: + # An integer + if ept: + n = int(number[:ept]) + else: + n = int(number) + n *= sign + if exponent: + n *= 10**exponent + if n == 0 and sign < 0: + # minus zero, must preserve negative sign so make a float + n = -0.0 + else: + try: + if decimal and (abs(exponent) > float_maxexp or sigdigits > float_sigdigits): + try: + n = decimal.Decimal(number) + n = n.normalize() + except decimal.Overflow: + if sign<0: + n = neginf + else: + n = inf + else: + n *= sign + else: + n = float(number) * sign + except ValueError: + raise JSONDecodeError('not a valid JSON numeric literal', s[i:j]) + return n, k + + def encode_number(self, n): + """Encodes a Python numeric type into a JSON numeric literal. + + The special non-numeric values of float('nan'), float('inf') + and float('-inf') are translated into appropriate JSON + literals. + + Note that Python complex types are not handled, as there is no + ECMAScript equivalent type. + + """ + if isinstance(n, complex): + if n.imag: + raise JSONEncodeError('Can not encode a complex number that has a non-zero imaginary part',n) + n = n.real + if isinstance(n, (int,long)): + return str(n) + if decimal and isinstance(n, decimal.Decimal): + return str(n) + global nan, inf, neginf + if n is nan: + return 'NaN' + elif n is inf: + return 'Infinity' + elif n is neginf: + return '-Infinity' + elif isinstance(n, float): + # Check for non-numbers. + # In python nan == inf == -inf, so must use repr() to distinguish + reprn = repr(n).lower() + if ('inf' in reprn and '-' in reprn) or n == neginf: + return '-Infinity' + elif 'inf' in reprn or n is inf: + return 'Infinity' + elif 'nan' in reprn or n is nan: + return 'NaN' + return repr(n) + else: + raise TypeError('encode_number expected an integral, float, or decimal number type',type(n)) + + def decode_string(self, s, i=0, imax=None): + """Intermediate-level decoder for JSON string literals. + + Takes a string and a starting index, and returns a Python + string (or unicode string) and the index of the next unparsed + character. + + """ + if imax is None: + imax = len(s) + if imax < i+2 or s[i] not in '"\'': + raise JSONDecodeError('string literal must be properly quoted',s[i:]) + closer = s[i] + if closer == '\'' and not self._allow_single_quoted_strings: + raise JSONDecodeError('string literals must use double quotation marks in strict JSON',s[i:]) + i += 1 # skip quote + if self._allow_js_string_escapes: + escapes = self._escapes_js + else: + escapes = self._escapes_json + ccallowed = self._allow_control_char_in_string + chunks = [] + _append = chunks.append + done = False + high_surrogate = None + while i < imax: + c = s[i] + # Make sure a high surrogate is immediately followed by a low surrogate + if high_surrogate and (i+1 >= imax or s[i:i+2] != '\\u'): + raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i:]) + if c == closer: + i += 1 # skip end quote + done = True + break + elif c == '\\': + # Escaped character + i += 1 + if i >= imax: + raise JSONDecodeError('escape in string literal is incomplete',s[i-1:]) + c = s[i] + + if '0' <= c <= '7' and self._allow_octal_numbers: + # Handle octal escape codes first so special \0 doesn't kick in yet. + # Follow Annex B.1.2 of ECMAScript standard. + if '0' <= c <= '3': + maxdigits = 3 + else: + maxdigits = 2 + for k in range(i, i+maxdigits+1): + if k >= imax or s[k] not in octaldigits: + break + n = decode_octal(s[i:k]) + if n < 128: + _append( chr(n) ) + else: + _append( unichr(n) ) + i = k + continue + + if escapes.has_key(c): + _append(escapes[c]) + i += 1 + elif c == 'u' or c == 'x': + i += 1 + if c == 'u': + digits = 4 + else: # c== 'x' + if not self._allow_js_string_escapes: + raise JSONDecodeError(r'string literals may not use the \x hex-escape in strict JSON',s[i-1:]) + digits = 2 + if i+digits >= imax: + raise JSONDecodeError('numeric character escape sequence is truncated',s[i-1:]) + n = decode_hex( s[i:i+digits] ) + if high_surrogate: + # Decode surrogate pair and clear high surrogate + _append( surrogate_pair_as_unicode( high_surrogate, unichr(n) ) ) + high_surrogate = None + elif n < 128: + # ASCII chars always go in as a str + _append( chr(n) ) + elif 0xd800 <= n <= 0xdbff: # high surrogate + if imax < i + digits + 2 or s[i+digits] != '\\' or s[i+digits+1] != 'u': + raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i-2:]) + high_surrogate = unichr(n) # remember until we get to the low surrogate + elif 0xdc00 <= n <= 0xdfff: # low surrogate + raise JSONDecodeError('Low unicode surrogate must be proceeded by a high surrogate',s[i-2:]) + else: + # Other chars go in as a unicode char + _append( unichr(n) ) + i += digits + else: + # Unknown escape sequence + if self._allow_nonescape_characters: + _append( c ) + i += 1 + else: + raise JSONDecodeError('unsupported escape code in JSON string literal',s[i-1:]) + elif ord(c) <= 0x1f: # A control character + if self.islineterm(c): + raise JSONDecodeError('line terminator characters must be escaped inside string literals',s[i:]) + elif ccallowed: + _append( c ) + i += 1 + else: + raise JSONDecodeError('control characters must be escaped inside JSON string literals',s[i:]) + else: # A normal character; not an escape sequence or end-quote. + # Find a whole sequence of "safe" characters so we can append them + # all at once rather than one a time, for speed. + j = i + i += 1 + while i < imax and s[i] not in unsafe_string_chars and s[i] != closer: + i += 1 + _append(s[j:i]) + if not done: + raise JSONDecodeError('string literal is not terminated with a quotation mark',s) + s = ''.join( chunks ) + return s, i + + def encode_string(self, s): + """Encodes a Python string into a JSON string literal. + + """ + # Must handle instances of UserString specially in order to be + # able to use ord() on it's simulated "characters". + import UserString + if isinstance(s, (UserString.UserString, UserString.MutableString)): + def tochar(c): + return c.data + else: + # Could use "lambda c:c", but that is too slow. So we set to None + # and use an explicit if test inside the loop. + tochar = None + + chunks = [] + chunks.append('"') + revesc = self._rev_escapes + asciiencodable = self._asciiencodable + encunicode = self._encode_unicode_as_escapes + i = 0 + imax = len(s) + while i < imax: + if tochar: + c = tochar(s[i]) + else: + c = s[i] + cord = ord(c) + if cord < 256 and asciiencodable[cord] and isinstance(encunicode, bool): + # Contiguous runs of plain old printable ASCII can be copied + # directly to the JSON output without worry (unless the user + # has supplied a custom is-encodable function). + j = i + i += 1 + while i < imax: + if tochar: + c = tochar(s[i]) + else: + c = s[i] + cord = ord(c) + if cord < 256 and asciiencodable[cord]: + i += 1 + else: + break + chunks.append( unicode(s[j:i]) ) + elif revesc.has_key(c): + # Has a shortcut escape sequence, like "\n" + chunks.append(revesc[c]) + i += 1 + elif cord <= 0x1F: + # Always unicode escape ASCII-control characters + chunks.append(r'\u%04x' % cord) + i += 1 + elif 0xD800 <= cord <= 0xDFFF: + # A raw surrogate character! This should never happen + # and there's no way to include it in the JSON output. + # So all we can do is complain. + cname = 'U+%04X' % cord + raise JSONEncodeError('can not include or escape a Unicode surrogate character',cname) + elif cord <= 0xFFFF: + # Other BMP Unicode character + if isinstance(encunicode, bool): + doesc = encunicode + else: + doesc = encunicode( c ) + if doesc: + chunks.append(r'\u%04x' % cord) + else: + chunks.append( c ) + i += 1 + else: # ord(c) >= 0x10000 + # Non-BMP Unicode + if isinstance(encunicode, bool): + doesc = encunicode + else: + doesc = encunicode( c ) + if doesc: + for surrogate in unicode_as_surrogate_pair(c): + chunks.append(r'\u%04x' % ord(surrogate)) + else: + chunks.append( c ) + i += 1 + chunks.append('"') + return ''.join( chunks ) + + def skip_comment(self, txt, i=0): + """Skips an ECMAScript comment, either // or /* style. + + The contents of the comment are returned as a string, as well + as the index of the character immediately after the comment. + + """ + if i+1 >= len(txt) or txt[i] != '/' or txt[i+1] not in '/*': + return None, i + if not self._allow_comments: + raise JSONDecodeError('comments are not allowed in strict JSON',txt[i:]) + multiline = (txt[i+1] == '*') + istart = i + i += 2 + while i < len(txt): + if multiline: + if txt[i] == '*' and i+1 < len(txt) and txt[i+1] == '/': + j = i+2 + break + elif txt[i] == '/' and i+1 < len(txt) and txt[i+1] == '*': + raise JSONDecodeError('multiline /* */ comments may not nest',txt[istart:i+1]) + else: + if self.islineterm(txt[i]): + j = i # line terminator is not part of comment + break + i += 1 + + if i >= len(txt): + if not multiline: + j = len(txt) # // comment terminated by end of file is okay + else: + raise JSONDecodeError('comment was never terminated',txt[istart:]) + return txt[istart:j], j + + def skipws(self, txt, i=0, imax=None, skip_comments=True): + """Skips whitespace. + """ + if not self._allow_comments and not self._allow_unicode_whitespace: + if imax is None: + imax = len(txt) + while i < imax and txt[i] in ' \r\n\t': + i += 1 + return i + else: + return self.skipws_any(txt, i, imax, skip_comments) + + def skipws_any(self, txt, i=0, imax=None, skip_comments=True): + """Skips all whitespace, including comments and unicode whitespace + + Takes a string and a starting index, and returns the index of the + next non-whitespace character. + + If skip_comments is True and not running in strict JSON mode, then + comments will be skipped over just like whitespace. + + """ + if imax is None: + imax = len(txt) + while i < imax: + if txt[i] == '/': + cmt, i = self.skip_comment(txt, i) + if i < imax and self.isws(txt[i]): + i += 1 + else: + break + return i + + def decode_composite(self, txt, i=0, imax=None): + """Intermediate-level JSON decoder for composite literal types (array and object). + + Takes text and a starting index, and returns either a Python list or + dictionary and the index of the next unparsed character. + + """ + if imax is None: + imax = len(txt) + i = self.skipws(txt, i, imax) + starti = i + if i >= imax or txt[i] not in '{[': + raise JSONDecodeError('composite object must start with "[" or "{"',txt[i:]) + if txt[i] == '[': + isdict = False + closer = ']' + obj = [] + else: + isdict = True + closer = '}' + obj = {} + i += 1 # skip opener + i = self.skipws(txt, i, imax) + + if i < imax and txt[i] == closer: + # empty composite + i += 1 + done = True + else: + saw_value = False # set to false at beginning and after commas + done = False + while i < imax: + i = self.skipws(txt, i, imax) + if i < imax and (txt[i] == ',' or txt[i] == closer): + c = txt[i] + i += 1 + if c == ',': + if not saw_value: + # no preceeding value, an elided (omitted) element + if isdict: + raise JSONDecodeError('can not omit elements of an object (dictionary)') + if self._allow_omitted_array_elements: + if self._allow_undefined_values: + obj.append( undefined ) + else: + obj.append( None ) + else: + raise JSONDecodeError('strict JSON does not permit omitted array (list) elements',txt[i:]) + saw_value = False + continue + else: # c == closer + if not saw_value and not self._allow_trailing_comma_in_literal: + if isdict: + raise JSONDecodeError('strict JSON does not allow a final comma in an object (dictionary) literal',txt[i-2:]) + else: + raise JSONDecodeError('strict JSON does not allow a final comma in an array (list) literal',txt[i-2:]) + done = True + break + + # Decode the item + if isdict and self._allow_nonstring_keys: + r = self.decodeobj(txt, i, identifier_as_string=True) + else: + r = self.decodeobj(txt, i, identifier_as_string=False) + if r: + if saw_value: + # two values without a separating comma + raise JSONDecodeError('values must be separated by a comma', txt[i:r[1]]) + saw_value = True + i = self.skipws(txt, r[1], imax) + if isdict: + key = r[0] # Ref 11.1.5 + if not isstringtype(key): + if isnumbertype(key): + if not self._allow_nonstring_keys: + raise JSONDecodeError('strict JSON only permits string literals as object properties (dictionary keys)',txt[starti:]) + else: + raise JSONDecodeError('object properties (dictionary keys) must be either string literals or numbers',txt[starti:]) + if i >= imax or txt[i] != ':': + raise JSONDecodeError('object property (dictionary key) has no value, expected ":"',txt[starti:]) + i += 1 + i = self.skipws(txt, i, imax) + rval = self.decodeobj(txt, i) + if rval: + i = self.skipws(txt, rval[1], imax) + obj[key] = rval[0] + else: + raise JSONDecodeError('object property (dictionary key) has no value',txt[starti:]) + else: # list + obj.append( r[0] ) + else: # not r + if isdict: + raise JSONDecodeError('expected a value, or "}"',txt[i:]) + elif not self._allow_omitted_array_elements: + raise JSONDecodeError('expected a value or "]"',txt[i:]) + else: + raise JSONDecodeError('expected a value, "," or "]"',txt[i:]) + # end while + if not done: + if isdict: + raise JSONDecodeError('object literal (dictionary) is not terminated',txt[starti:]) + else: + raise JSONDecodeError('array literal (list) is not terminated',txt[starti:]) + return obj, i + + def decode_javascript_identifier(self, name): + """Convert a JavaScript identifier into a Python string object. + + This method can be overriden by a subclass to redefine how JavaScript + identifiers are turned into Python objects. By default this just + converts them into strings. + + """ + return name + + def decodeobj(self, txt, i=0, imax=None, identifier_as_string=False, only_object_or_array=False): + """Intermediate-level JSON decoder. + + Takes a string and a starting index, and returns a two-tuple consting + of a Python object and the index of the next unparsed character. + + If there is no value at all (empty string, etc), the None is + returned instead of a tuple. + + """ + if imax is None: + imax = len(txt) + obj = None + i = self.skipws(txt, i, imax) + if i >= imax: + raise JSONDecodeError('Unexpected end of input') + c = txt[i] + + if c == '[' or c == '{': + obj, i = self.decode_composite(txt, i, imax) + elif only_object_or_array: + raise JSONDecodeError('JSON document must start with an object or array type only', txt[i:i+20]) + elif c == '"' or c == '\'': + obj, i = self.decode_string(txt, i, imax) + elif c.isdigit() or c in '.+-': + obj, i = self.decode_number(txt, i, imax) + elif c.isalpha() or c in'_$': + j = i + while j < imax and (txt[j].isalnum() or txt[j] in '_$'): + j += 1 + kw = txt[i:j] + if kw == 'null': + obj, i = None, j + elif kw == 'true': + obj, i = True, j + elif kw == 'false': + obj, i = False, j + elif kw == 'undefined': + if self._allow_undefined_values: + obj, i = undefined, j + else: + raise JSONDecodeError('strict JSON does not allow undefined elements',txt[i:]) + elif kw == 'NaN' or kw == 'Infinity': + obj, i = self.decode_number(txt, i) + else: + if identifier_as_string: + obj, i = self.decode_javascript_identifier(kw), j + else: + raise JSONDecodeError('unknown keyword or identifier',kw) + else: + raise JSONDecodeError('can not decode value',txt[i:]) + return obj, i + + + + def decode(self, txt): + """Decodes a JSON-endoded string into a Python object.""" + if self._allow_unicode_format_control_chars: + txt = self.strip_format_control_chars(txt) + r = self.decodeobj(txt, 0, only_object_or_array=not self._allow_any_type_at_start) + if not r: + raise JSONDecodeError('can not decode value',txt) + else: + obj, i = r + i = self.skipws(txt, i) + if i < len(txt): + raise JSONDecodeError('unexpected or extra text',txt[i:]) + return obj + + def encode(self, obj, nest_level=0): + """Encodes the Python object into a JSON string representation. + + This method will first attempt to encode an object by seeing + if it has a json_equivalent() method. If so than it will + call that method and then recursively attempt to encode + the object resulting from that call. + + Next it will attempt to determine if the object is a native + type or acts like a squence or dictionary. If so it will + encode that object directly. + + Finally, if no other strategy for encoding the object of that + type exists, it will call the encode_default() method. That + method currently raises an error, but it could be overridden + by subclasses to provide a hook for extending the types which + can be encoded. + + """ + chunks = [] + self.encode_helper(chunks, obj, nest_level) + return ''.join( chunks ) + + def encode_helper(self, chunklist, obj, nest_level): + #print 'encode_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) + if hasattr(obj, 'json_equivalent'): + json = self.encode_equivalent( obj, nest_level=nest_level ) + if json is not None: + chunklist.append( json ) + return + if obj is None: + chunklist.append( self.encode_null() ) + elif obj is undefined: + if self._allow_undefined_values: + chunklist.append( self.encode_undefined() ) + else: + raise JSONEncodeError('strict JSON does not permit "undefined" values') + elif isinstance(obj, bool): + chunklist.append( self.encode_boolean(obj) ) + elif isinstance(obj, (int,long,float,complex)) or \ + (decimal and isinstance(obj, decimal.Decimal)): + chunklist.append( self.encode_number(obj) ) + elif isinstance(obj, basestring) or isstringtype(obj): + chunklist.append( self.encode_string(obj) ) + else: + self.encode_composite(chunklist, obj, nest_level) + + def encode_composite(self, chunklist, obj, nest_level): + """Encodes just dictionaries, lists, or sequences. + + Basically handles any python type for which iter() can create + an iterator object. + + This method is not intended to be called directly. Use the + encode() method instead. + + """ + #print 'encode_complex_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) + try: + # Is it a dictionary or UserDict? Try iterkeys method first. + it = obj.iterkeys() + except AttributeError: + try: + # Is it a sequence? Try to make an iterator for it. + it = iter(obj) + except TypeError: + it = None + if it is not None: + # Does it look like a dictionary? Check for a minimal dict or + # UserDict interface. + isdict = hasattr(obj, '__getitem__') and hasattr(obj, 'keys') + compactly = self._encode_compactly + if isdict: + chunklist.append('{') + if compactly: + dictcolon = ':' + else: + dictcolon = ' : ' + else: + chunklist.append('[') + #print nest_level, 'opening sequence:', repr(chunklist) + if not compactly: + indent0 = ' ' * nest_level + indent = ' ' * (nest_level+1) + chunklist.append(' ') + sequence_chunks = [] # use this to allow sorting afterwards if dict + try: # while not StopIteration + numitems = 0 + while True: + obj2 = it.next() + if obj2 is obj: + raise JSONEncodeError('trying to encode an infinite sequence',obj) + if isdict and not isstringtype(obj2): + # Check JSON restrictions on key types + if isnumbertype(obj2): + if not self._allow_nonstring_keys: + raise JSONEncodeError('object properties (dictionary keys) must be strings in strict JSON',obj2) + else: + raise JSONEncodeError('object properties (dictionary keys) can only be strings or numbers in ECMAScript',obj2) + + # Encode this item in the sequence and put into item_chunks + item_chunks = [] + self.encode_helper( item_chunks, obj2, nest_level=nest_level+1 ) + if isdict: + item_chunks.append(dictcolon) + obj3 = obj[obj2] + self.encode_helper(item_chunks, obj3, nest_level=nest_level+2) + + #print nest_level, numitems, 'item:', repr(obj2) + #print nest_level, numitems, 'sequence_chunks:', repr(sequence_chunks) + #print nest_level, numitems, 'item_chunks:', repr(item_chunks) + #extend_list_with_sep(sequence_chunks, item_chunks) + sequence_chunks.append(item_chunks) + #print nest_level, numitems, 'new sequence_chunks:', repr(sequence_chunks) + numitems += 1 + except StopIteration: + pass + + if isdict and self._sort_dictionary_keys: + sequence_chunks.sort() # Note sorts by JSON repr, not original Python object + if compactly: + sep = ',' + else: + sep = ',\n' + indent + + #print nest_level, 'closing sequence' + #print nest_level, 'chunklist:', repr(chunklist) + #print nest_level, 'sequence_chunks:', repr(sequence_chunks) + extend_and_flatten_list_with_sep( chunklist, sequence_chunks, sep ) + #print nest_level, 'new chunklist:', repr(chunklist) + + if not compactly: + if numitems > 1: + chunklist.append('\n' + indent0) + else: + chunklist.append(' ') + if isdict: + chunklist.append('}') + else: + chunklist.append(']') + else: # Can't create an iterator for the object + json2 = self.encode_default( obj, nest_level=nest_level ) + chunklist.append( json2 ) + + def encode_equivalent( self, obj, nest_level=0 ): + """This method is used to encode user-defined class objects. + + The object being encoded should have a json_equivalent() + method defined which returns another equivalent object which + is easily JSON-encoded. If the object in question has no + json_equivalent() method available then None is returned + instead of a string so that the encoding will attempt the next + strategy. + + If a caller wishes to disable the calling of json_equivalent() + methods, then subclass this class and override this method + to just return None. + + """ + if hasattr(obj, 'json_equivalent') \ + and callable(getattr(obj,'json_equivalent')): + obj2 = obj.json_equivalent() + if obj2 is obj: + # Try to prevent careless infinite recursion + raise JSONEncodeError('object has a json_equivalent() method that returns itself',obj) + json2 = self.encode( obj2, nest_level=nest_level ) + return json2 + else: + return None + + def encode_default( self, obj, nest_level=0 ): + """This method is used to encode objects into JSON which are not straightforward. + + This method is intended to be overridden by subclasses which wish + to extend this encoder to handle additional types. + + """ + raise JSONEncodeError('can not encode object into a JSON representation',obj) + + +# ------------------------------ + +def encode( obj, strict=False, compactly=True, escape_unicode=False, encoding=None ): + """Encodes a Python object into a JSON-encoded string. + + If 'strict' is set to True, then only strictly-conforming JSON + output will be produced. Note that this means that some types + of values may not be convertable and will result in a + JSONEncodeError exception. + + If 'compactly' is set to True, then the resulting string will + have all extraneous white space removed; if False then the + string will be "pretty printed" with whitespace and indentation + added to make it more readable. + + If 'escape_unicode' is set to True, then all non-ASCII characters + will be represented as a unicode escape sequence; if False then + the actual real unicode character will be inserted. + + If no encoding is specified (encoding=None) then the output will + either be a Python string (if entirely ASCII) or a Python unicode + string type. + + However if an encoding name is given then the returned value will + be a python string which is the byte sequence encoding the JSON + value. As the default/recommended encoding for JSON is UTF-8, + you should almost always pass in encoding='utf8'. + + """ + import sys + encoder = None # Custom codec encoding function + bom = None # Byte order mark to prepend to final output + cdk = None # Codec to use + if encoding is not None: + import codecs + try: + cdk = codecs.lookup(encoding) + except LookupError: + cdk = None + + if cdk: + pass + elif not cdk: + # No built-in codec was found, see if it is something we + # can do ourself. + encoding = encoding.lower() + if encoding.startswith('utf-32') or encoding.startswith('utf32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + encoder = utf32le_encode + elif encoding.endswith('be'): + encoder = utf32be_encode + else: + encoder = utf32be_encode + bom = codecs.BOM_UTF32_BE + elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): + # Python has no UCS-2, but we can simulate with + # UTF-16. We just need to force us to not try to + # encode anything past the BMP. + encoding = 'utf-16' + if not escape_unicode and not callable(escape_unicode): + escape_unicode = lambda c: (0xD800 <= ord(c) <= 0xDFFF) or ord(c) >= 0x10000 + else: + raise JSONEncodeError('this python has no codec for this character encoding',encoding) + + if not escape_unicode and not callable(escape_unicode): + if encoding and encoding.startswith('utf'): + # All UTF-x encodings can do the whole Unicode repertoire, so + # do nothing special. + pass + else: + # Even though we don't want to escape all unicode chars, + # the encoding being used may force us to do so anyway. + # We must pass in a function which says which characters + # the encoding can handle and which it can't. + def in_repertoire( c, encoding_func ): + try: + x = encoding_func( c, errors='strict' ) + except UnicodeError: + return False + return True + if encoder: + escape_unicode = lambda c: not in_repertoire(c, encoder) + elif cdk: + escape_unicode = lambda c: not in_repertoire(c, cdk[0]) + else: + pass # Let the JSON object deal with it + + j = JSON( strict=strict, compactly=compactly, escape_unicode=escape_unicode ) + + unitxt = j.encode( obj ) + if encoder: + txt = encoder( unitxt ) + elif encoding is not None: + txt = unitxt.encode( encoding ) + else: + txt = unitxt + if bom: + txt = bom + txt + return txt + + +def decode( txt, strict=False, encoding=None, **kw ): + """Decodes a JSON-encoded string into a Python object. + + If 'strict' is set to True, then those strings that are not + entirely strictly conforming to JSON will result in a + JSONDecodeError exception. + + The input string can be either a python string or a python unicode + string. If it is already a unicode string, then it is assumed + that no character set decoding is required. + + However, if you pass in a non-Unicode text string (i.e., a python + type 'str') then an attempt will be made to auto-detect and decode + the character encoding. This will be successful if the input was + encoded in any of UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE), + and of course plain ASCII works too. + + Note though that if you know the character encoding, then you + should convert to a unicode string yourself, or pass it the name + of the 'encoding' to avoid the guessing made by the auto + detection, as with + + python_object = demjson.decode( input_bytes, encoding='utf8' ) + + Optional keywords arguments must be of the form + allow_xxxx=True/False + or + prevent_xxxx=True/False + where each will allow or prevent the specific behavior, after the + evaluation of the 'strict' argument. For example, if strict=True + then by also passing 'allow_comments=True' then comments will be + allowed. If strict=False then prevent_comments=True will allow + everything except comments. + + """ + # Initialize the JSON object + j = JSON( strict=strict ) + for keyword, value in kw.items(): + if keyword.startswith('allow_'): + behavior = keyword[6:] + allow = bool(value) + elif keyword.startswith('prevent_'): + behavior = keyword[8:] + allow = not bool(value) + else: + raise ValueError('unknown keyword argument', keyword) + if allow: + j.allow(behavior) + else: + j.prevent(behavior) + + # Convert the input string into unicode if needed. + if isinstance(txt,unicode): + unitxt = txt + else: + if encoding is None: + unitxt = auto_unicode_decode( txt ) + else: + cdk = None # codec + decoder = None + import codecs + try: + cdk = codecs.lookup(encoding) + except LookupError: + encoding = encoding.lower() + decoder = None + if encoding.startswith('utf-32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + decoder = utf32le_decode + elif encoding.endswith('be'): + decoder = utf32be_decode + else: + if txt.startswith( codecs.BOM_UTF32_BE ): + decoder = utf32be_decode + txt = txt[4:] + elif txt.startswith( codecs.BOM_UTF32_LE ): + decoder = utf32le_decode + txt = txt[4:] + else: + if encoding.startswith('ucs'): + raise JSONDecodeError('UCS-4 encoded string must start with a BOM') + decoder = utf32be_decode # Default BE for UTF, per unicode spec + elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): + # Python has no UCS-2, but we can simulate with + # UTF-16. We just need to force us to not try to + # encode anything past the BMP. + encoding = 'utf-16' + + if decoder: + unitxt = decoder(txt) + elif encoding: + unitxt = txt.decode(encoding) + else: + raise JSONDecodeError('this python has no codec for this character encoding',encoding) + + # Check that the decoding seems sane. Per RFC 4627 section 3: + # "Since the first two characters of a JSON text will + # always be ASCII characters [RFC0020], ..." + # + # This check is probably not necessary, but it allows us to + # raise a suitably descriptive error rather than an obscure + # syntax error later on. + # + # Note that the RFC requirements of two ASCII characters seems + # to be an incorrect statement as a JSON string literal may + # have as it's first character any unicode character. Thus + # the first two characters will always be ASCII, unless the + # first character is a quotation mark. And in non-strict + # mode we can also have a few other characters too. + if len(unitxt) > 2: + first, second = unitxt[:2] + if first in '"\'': + pass # second can be anything inside string literal + else: + if ((ord(first) < 0x20 or ord(first) > 0x7f) or \ + (ord(second) < 0x20 or ord(second) > 0x7f)) and \ + (not j.isws(first) and not j.isws(second)): + # Found non-printable ascii, must check unicode + # categories to see if the character is legal. + # Only whitespace, line and paragraph separators, + # and format control chars are legal here. + import unicodedata + catfirst = unicodedata.category(unicode(first)) + catsecond = unicodedata.category(unicode(second)) + if catfirst not in ('Zs','Zl','Zp','Cf') or \ + catsecond not in ('Zs','Zl','Zp','Cf'): + raise JSONDecodeError('the decoded string is gibberish, is the encoding correct?',encoding) + # Now ready to do the actual decoding + obj = j.decode( unitxt ) + return obj + +# end file diff --git a/demjson.pyc b/demjson.pyc new file mode 100644 index 0000000000000000000000000000000000000000..669253b1732e9e99e0c1768e3c97758ff26877a7 GIT binary patch literal 68830 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 literal 0 HcmV?d00001 diff --git a/h3mtest.py b/h3mtest.py new file mode 100644 index 0000000..9736acd --- /dev/null +++ b/h3mtest.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +""" + homm3hmtest + + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip, os +import struct +import sys + +def extract(filename): + h3m_data = gzip.open(filename) + map_data = {} + #read general info + (map_data["version"], ) = struct.unpack(" + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from lib.mapset import * +from lib.interface import * +from lib.mapview import * +from lib.window import Window + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + self.label.text = "INITIATING MAPSET..." + mapset = MapSet("Deluge") + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/h3m.py b/lib/h3m.py new file mode 100644 index 0000000..3cb8405 --- /dev/null +++ b/lib/h3m.py @@ -0,0 +1,596 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip +import struct +import pyglet + +def extract(filename): + h3m_data = gzip.open(filename) + map_data = {} + #read general info + (map_data["version"], ) = struct.unpack(" 0: + map_data[color]["heroes"] = {} + for i in xrange(map_data[color]["heroes_count"]): + (map_data[color]["heroes"]["portrait"], ) = struct.unpack(" 0: + map_data["commands"] = struct.unpack("<8B", h3m_data.read(8)) + + #Free Heroes + h3m_data.read(20) #free heroes + h3m_data.read(4) #junk + (map_data["heroes_count"], ) = struct.unpack(" 0: + map_data["free_heroes"] = [] + for i in xrange(map_data["heroes_count"]): + (hero_id, ) = struct.unpack(" 0: + map_data["rumors"] = [] + for i in xrange(map_data["rumor_count"]): + (name_length, ) = struct.unpack(" 0: + for i in xrange(knapsack_count): + (knapsackID, ) = struct.unpack(" 0: + for i in xrange(eventQuantity): + (length, ) = struct.unpack(" 0: + for i in xrange(secSkills): + (skill_id, skill_lvl) = struct.unpack(" 0: + for i in xrange(artefacts): + (artID, ) = struct.unpack(" 0: + for i in xrange(spells): + (spellID, ) = struct.unpack(" 0: + for i in xrange(monsters): + (guard_id, guard_count) = struct.unpack(" 0: + for i in xrange(secSkills): + (skill_id, skill_lvl) = struct.unpack(" 0: + for i in xrange(artefacts): + (artID, ) = struct.unpack(" 0: + for i in xrange(spells): + (spellID, ) = struct.unpack(" 0: + for i in xrange(monsters): + (guard_id, guard_count) = struct.unpack(" + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED diff --git a/lib/mapset.py b/lib/mapset.py new file mode 100644 index 0000000..2ef74f6 --- /dev/null +++ b/lib/mapset.py @@ -0,0 +1,382 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from ctypes import create_string_buffer, memmove +from lib import h3m +import os + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i + abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation + 1) % len(self.__frames) + return self.__frames[self.__animation] + + @property + def tex_coords(self): + return self.tex.tex_coords + + @property + def group(self): + return self.texgroup + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, map_name): + h3m_data = h3m.extract(os.path.join(pyglet.resource._default_loader._script_home,"maps","%s.h3m" % map_name)) + edge_map = [[] for i in xrange(len(h3m_data["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m_data["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m_data["upper_terrain"] = edge_map + + self.width = len(h3m_data["upper_terrain"][0]) + self.height = len(h3m_data["upper_terrain"]) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.__tiles = {} + tile_textures = {} + for y, line in enumerate(h3m_data["upper_terrain"]): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/advmap_tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.__tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/advmap_tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/advmap_tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.__tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/advmap_tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/advmap_tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/advmap_tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/advmap_tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/advmap_tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.__tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/advmap_tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.__tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/advmap_tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/advmap_tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/advmap_tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/advmap_tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(h3m_data["objects"]): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/advmap_objects/" + obj["filename"] + "/%d.png"%i))) + i += 1 + if "data/advmap_objects/" + obj["filename"] + "/%d.png" % i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in h3m_data["tunedobj"] if i["z"]==0]: + self.__tiles[obj["x"] + 9,obj["y"] + 8].append(self.objects[obj["id"]]) + + def get_tiles(self, tiles_x, tiles_y, div_x, div_y): + for y in xrange(tiles_y - 1, -6, -1): + y1 = y * 32 + for x in xrange(tiles_x + 5 - 1, -1, -1): + for obj in self.__tiles.get((x - div_x, div_y - y), []): + x1 = x * 32 - obj.width + 32 + x2 = x1 + obj.width + y2 = y1 + obj.height + yield obj, [x1, y1, x2, y1, x2, y2, x1, y2] diff --git a/lib/mapview.py b/lib/mapview.py new file mode 100644 index 0000000..d3c0e32 --- /dev/null +++ b/lib/mapview.py @@ -0,0 +1,335 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from lib.interface import * +from lib.mapset import * + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + self._first_time_init() + self._init_view() + # mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width - 10, y=0, + anchor_x='right', anchor_y='bottom') + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + # size of the viewport + self.vp_width = self.window.width-IF_RIGHT-IF_LEFT + self.vp_height = self.window.height-IF_BOTTOM-IF_TOP + # center map + self.x = (self.mapset.width * self.tile_size - self.vp_width + + self.tile_size) // 2 + self.y = (self.mapset.height * self.tile_size - self.vp_height + + self.tile_size) // 2 + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + # initiate new batch + self.batch = pyglet.graphics.Batch() + # initiate new vertex list + self.vl_objects = [None for value in self.mapset.groups] + # size of the viewport + self.vp_width = self.window.width - IF_RIGHT - IF_LEFT + self.vp_height = self.window.height - IF_BOTTOM - IF_TOP + # center map when viewport is too large, else check if map still fills + # whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width * self.tile_size < self.vp_width: + # center the map in x direction + self.center_x = True + self.x = (self.mapset.width * self.tile_size - self.vp_width) // 2 + elif self.x > self.tile_size * self.mapset.width - self.vp_width: + # move map back to the right + self.x = self.tile_size * self.mapset.width - self.vp_width + elif self.x < 0: + # move map to the left + self.x = 0 + self.center_y = False + if self.mapset.height * self.tile_size < self.vp_height: + # center the map in y direction + self.center_y = True + self.y = (self.mapset.height * self.tile_size - + self.vp_height) // 2 + elif self.y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + self.y = self.tile_size * self.mapset.height - self.vp_height + elif self.y < 0: + # move map down + self.y = 0 + # tiles to be drawn with the current viewport size + self.tiles_x = min((self.vp_width // self.tile_size) + 2, + self.mapset.width) + self.tiles_y = min((self.vp_height // self.tile_size) + 2, + self.mapset.height) + # undrawn map size in pixels + self.undrawn_x = self.tile_size * (self.mapset.width - self.tiles_x) + self.undrawn_y = self.tile_size * (self.mapset.height - self.tiles_y) + # reset mouse or keyboard movement + self.dx = 0 + self.dy = 0 + # calculate modulo pixel position of the map + if self.x - self.tile_size > self.undrawn_x: + # dont go right beyond map borders + mod_x = self.tile_size - self.x + self.undrawn_x + elif self.x > 0: + # calculate modulo of current position and tile_size + mod_x = (self.tile_size - self.x) % self.tile_size + else: + # dont go left beyond map borders + mod_x = self.tile_size - self.x + if self.y - self.tile_size > self.undrawn_y: + # dont go up beyond map borders + mod_y = self.tile_size - self.y + self.undrawn_y + elif self.y > 0: + # calculate modulo of current position and tile_size + mod_y = (self.tile_size - self.y) % self.tile_size + else: + # dont go down beyond map borders + mod_y = self.tile_size - self.y + # calculate tile position of the map, turn y coordinates upside down + self.div_x = (self.tile_size - self.x - mod_x) // self.tile_size + self.div_y = (self.tile_size - self.y - mod_y) // self.tile_size + \ + self.mapset.height - 1 + # update vertex lists with the gathered information + self.update_vertex_lists() + # update current current position that is to be glTranslated + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4 + self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x+IF_LEFT, self.view_y+IF_BOTTOM, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + # new map position + new_x = self.x - dx + new_y = self.y - dy + # only update textures and vertices when necessary + retex = False + # if x or y jump is too big, adjust new position accordingly + if new_x < 0: + # move map to the left + new_x = 0 + retex = True + if new_x > self.tile_size * self.mapset.width - self.vp_width: + # move map to the right + new_x = self.tile_size * self.mapset.width - self.vp_width + retex = True + if new_y < 0: + # move map down + new_y = 0 + retex = True + if new_y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + new_y = self.tile_size * self.mapset.height - self.vp_height + retex = True + # find out how many steps and pixels we have to move and wether we have + # to retex + if new_x - self.tile_size > self.undrawn_x: + # we are at the right border + mod_x = self.tile_size - new_x + self.undrawn_x + # only retex if the last position was not at the border + if self.x - self.tile_size <= self.undrawn_x: + retex = True + elif new_x > 0: + # normal movement: calculate the amount of steps and the modulo + div_x, mod_x = divmod(self.tile_size - new_x, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_x != (self.tile_size - self.x) // self.tile_size: + retex = True + else: + # we are at the left border + mod_x = self.tile_size - new_x + if new_y - self.tile_size > self.undrawn_y: + # we are at the top + mod_y = self.tile_size - new_y + self.undrawn_y + # only retex if the last position was not at the border + if self.y - self.tile_size <= self.undrawn_y: + retex = True + elif new_y > 0: + # normal movement: calculate the amount of steps and the modulo + div_y, mod_y = divmod(self.tile_size - new_y, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_y != (self.tile_size - self.y) // self.tile_size: + retex = True + else: + # we are at the bottom + mod_y = self.tile_size - new_y + # if we have to update vertices and textures + if retex: + # calculate the current position on the tilemap + self.div_x = (self.tile_size - new_x - mod_x) // \ + self.tile_size + self.div_y = (self.tile_size - new_y - mod_y) // \ + self.tile_size + self.mapset.height - 1 + self.update_vertex_lists() + # update position if not centered + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + if not self.center_x: + self.view_x = mod_x-self.tile_size-(self.tile_size-32)//4 + self.x = new_x + if not self.center_y: + self.view_y = mod_y-self.tile_size-((self.tile_size-32)*3)//2 + self.y = new_y + + def update_vertex_lists(self): + # initiate lists of vertex lists, vertices, texture coords, vertices + # counts and map objects for each group + vertices = [[] for value in self.mapset.groups] + tex_coords = [[] for value in self.mapset.groups] + count = [0 for value in self.mapset.groups] + self.cur_objects = [[] for value in self.mapset.groups] + # for each tile in the viewport, update the list of the specific group + for obj, coords in self.mapset.get_tiles(self.tiles_x, self.tiles_y, + self.div_x, self.div_y): + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend(coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + # let the vertex list be None + pass + else: + # there was a vertex list but now no more - delete it + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + # there was no vertex list but ther now is one - create it + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + # there already is a vertex list - resize and refill + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + # make object list unique + self.cur_objects[i] = list(set(self.cur_objects[i])) + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + # mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) diff --git a/lib/window.py b/lib/window.py new file mode 100644 index 0000000..bb97b48 --- /dev/null +++ b/lib/window.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..158f26b --- /dev/null +++ b/setup.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# An example setup.py that can be used to create both standalone Windows +# executables (requires py2exe) and Mac OS X applications (requires py2app). +# +# On Windows:: +# +# python setup.py py2exe +# +# On Mac OS X:: +# +# python setup.py py2app +# + +from distutils.core import setup + +import os + +# The main entry point of the program +script_file = 'hr.py' + +# Setup args that apply to all setups, including ordinary distutils. +setup_args = dict( + data_files=[] +) + +# py2exe options +try: + import py2exe + setup_args.update(dict( + windows=[dict( + script=script_file, + icon_resources=[(1, 'assets/app.ico')], + )], + )) +except ImportError: + pass + +# py2app options +try: + import py2app + setup_args.update(dict( + app=[script_file], + options=dict(py2app=dict( + argv_emulation=True, + iconfile='assets/app.icns', + )), + )) +except ImportError: + pass + +setup(**setup_args) + +""" +Metadata-Version: 1.0 +Name: UNKNOWN +Version: 0.0.0 +Summary: UNKNOWN +Home-page: UNKNOWN +Author: UNKNOWN +Author-email: UNKNOWN +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN +""" diff --git a/test b/test new file mode 100755 index 0000000000000000000000000000000000000000..83130dec55d8b2e0170523ccaeb2df5f90c2d0b3 GIT binary patch literal 124660 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�)&+ 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 E0nDq^3jhEB literal 0 HcmV?d00001 diff --git a/test.h3m b/test.h3m new file mode 100644 index 0000000..21a0910 --- /dev/null +++ b/test.h3m @@ -0,0 +1 @@ +{"Blue": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Pink": {"randomCity": 0, "is_computer": 0, "is_human": 0, "isCityTypesOpt": 0, "cityTypes": 0, "hero_type": 255, "behaviour": 0, "random_hero": 0, "heroes_count": 0}, "map_size": 144, "Purple": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Orange": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "upper_terrain": [[[8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 23, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 1, 15, 0], [3, 64, 0, 0, 1, 3, 16], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 1, 4, 32], [3, 49, 0, 0, 1, 13, 0], [3, 71, 0, 0, 1, 1, 16], [3, 57, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 3, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 1, 10, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 1, 14, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 22, 0, 0, 0, 0, 66], [3, 23, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 32, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 1, 4, 32], [3, 52, 0, 0, 1, 2, 16], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 1, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 67, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 33, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 32, 0, 0, 0, 0, 65], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 1, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 1, 11, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 1, 32], [3, 59, 0, 0, 1, 13, 0], [3, 56, 0, 0, 1, 9, 32], [3, 56, 0, 0, 1, 4, 16], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 25, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 4, 32], [3, 58, 0, 0, 1, 5, 16], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 1, 14, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 14, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 20, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 1, 3, 32], [3, 61, 0, 0, 1, 3, 16], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 1, 10, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 3, 11, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 3, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 2, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 4, 32], [3, 62, 0, 0, 1, 12, 0], [3, 55, 0, 0, 1, 0, 48]], [[8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 3, 4, 0], [3, 51, 0, 0, 3, 13, 0], [3, 51, 0, 0, 3, 1, 48], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 34, 0, 0, 3, 1, 64], [3, 29, 0, 0, 3, 13, 66], [3, 28, 0, 0, 3, 1, 114], [3, 38, 0, 0, 0, 0, 65], [3, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 2, 11, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 3, 5, 0], [3, 70, 0, 0, 3, 5, 48], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 25, 0, 0, 3, 11, 65], [8, 1, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 21, 0, 0, 0, 0, 67], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 12, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 2, 10, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 21, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 3, 4, 0], [3, 57, 0, 0, 3, 5, 48], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 25, 0, 0, 3, 11, 65], [8, 7, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 23, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 20, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 2, 10, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 3], [8, 7, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 59, 0, 0, 3, 11, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 27, 0, 0, 3, 10, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 7, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 2, 14, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 2, 10, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 3, 14, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 3, 5, 32], [3, 55, 0, 0, 3, 3, 16], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 3, 0], [3, 38, 0, 0, 3, 5, 114], [3, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 10, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 10, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 0, 32], [3, 63, 0, 0, 3, 12, 0], [3, 60, 0, 0, 3, 3, 16], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 3, 14, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 70, 0, 0, 3, 10, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 10, 0], [3, 49, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 15, 0, 0, 0, 0, 1], [8, 5, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 2, 11, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 2, 2, 0], [3, 49, 0, 0, 2, 9, 32], [3, 51, 0, 0, 2, 12, 0], [3, 59, 0, 0, 2, 2, 16], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 2, 5, 0], [3, 60, 0, 0, 2, 15, 16], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 2, 32], [3, 54, 0, 0, 3, 3, 16], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 3, 11, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 3, 5, 32], [3, 50, 0, 0, 3, 4, 16], [3, 66, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 3, 10, 0], [3, 60, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 22, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 2, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 2, 11, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 2, 3, 32], [3, 58, 0, 0, 2, 12, 0], [3, 52, 0, 0, 2, 13, 0], [3, 53, 0, 0, 2, 13, 0], [3, 71, 0, 0, 2, 3, 48], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 35, 0, 0, 0, 0, 65], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 5, 32], [3, 71, 0, 0, 3, 2, 16], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 3, 11, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 69, 0, 0, 3, 11, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 14, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 3, 2, 0], [3, 54, 0, 0, 3, 3, 48], [3, 56, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 0, 32], [3, 67, 0, 0, 2, 12, 0], [3, 51, 0, 0, 2, 1, 48], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 5, 32], [3, 49, 0, 0, 3, 12, 0], [3, 51, 0, 0, 3, 13, 0], [3, 71, 0, 0, 3, 7, 16], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 3, 4, 32], [3, 71, 0, 0, 3, 4, 16], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 3, 10, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 3, 10, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 22, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 3, 32], [3, 51, 0, 0, 3, 12, 0], [3, 62, 0, 0, 3, 5, 16], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 3, 3, 32], [3, 57, 0, 0, 3, 12, 0], [3, 49, 0, 0, 3, 13, 0], [3, 57, 0, 0, 3, 13, 0], [3, 62, 0, 0, 3, 13, 0], [3, 54, 0, 0, 3, 6, 16], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 4, 0], [3, 55, 0, 0, 3, 5, 48], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 4, 32], [3, 61, 0, 0, 3, 13, 0], [3, 50, 0, 0, 3, 12, 0], [3, 57, 0, 0, 3, 12, 0], [3, 55, 0, 0, 3, 12, 0], [3, 56, 0, 0, 3, 1, 48], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 4, 32], [3, 56, 0, 0, 3, 13, 0], [3, 55, 0, 0, 3, 5, 48], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 34, 0, 0, 0, 0, 67], [3, 61, 0, 0, 0, 0, 0], [3, 33, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 35, 0, 0, 0, 0, 67], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 34, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 20, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 35, 0, 0, 0, 0, 65], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 2], [3, 31, 0, 0, 0, 0, 2], [3, 29, 0, 0, 0, 0, 2], [3, 28, 0, 0, 0, 0, 2], [3, 48, 0, 0, 0, 0, 0], [0, 9, 0, 0, 0, 0, 2], [0, 10, 0, 0, 0, 0, 2], [0, 8, 0, 0, 0, 0, 2], [0, 13, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [3, 16, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 1, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [1, 3, 0, 0, 0, 0, 64], [1, 17, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 5, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 18, 0, 0, 0, 0, 1], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [1, 6, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [0, 6, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 3], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 47, 0, 0, 0, 0, 64], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 13, 0, 0, 0, 0, 1], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 15, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 12, 0, 0, 0, 0, 0], [1, 9, 0, 0, 0, 0, 0], [1, 7, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 4, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 46, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 48, 0, 0, 0, 0, 66], [3, 44, 0, 0, 0, 0, 65], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 18, 0, 0, 0, 0, 1], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 12, 0, 0, 0, 0, 0], [3, 8, 0, 0, 0, 0, 2], [3, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 3, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 61, 0, 0, 1, 14, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 16, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 21, 0, 0, 0, 0, 0], [1, 3, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 0], [0, 11, 0, 0, 0, 0, 0], [0, 12, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 47, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 1], [3, 7, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 38, 0, 0, 1, 10, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 23, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 16, 0, 0, 0, 0, 0], [1, 9, 0, 0, 0, 0, 0], [0, 17, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 29, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 47, 0, 0, 0, 0, 66], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 65], [5, 11, 0, 0, 1, 5, 2], [5, 47, 0, 0, 1, 2, 112], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [1, 7, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 1], [1, 16, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [0, 17, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [3, 7, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 47, 0, 0, 0, 0, 67], [2, 8, 0, 0, 1, 11, 0], [2, 47, 0, 0, 0, 0, 66], [8, 3, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 48, 0, 0, 0, 0, 66], [0, 9, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 18, 0, 0, 0, 0, 2], [0, 10, 0, 0, 0, 0, 0], [0, 10, 0, 0, 0, 0, 0], [0, 18, 0, 0, 0, 0, 3], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 66], [5, 29, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 0, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 12, 0, 0, 0, 0, 1]], [[8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 24, 0, 0, 0, 0, 64], [2, 53, 0, 0, 1, 11, 0], [2, 39, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 41, 0, 0, 0, 0, 67], [2, 16, 0, 0, 0, 0, 3], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 12, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 21, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [3, 5, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 65, 0, 0, 1, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 1, 5, 0], [0, 22, 0, 0, 1, 15, 16], [0, 42, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 12, 0, 0, 0, 0, 1], [5, 62, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 66, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 66], [5, 29, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 42, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 0, 0, 0, 0, 0, 2]], [[8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 24, 0, 0, 0, 0, 64], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 1, 11, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 5, 0, 0, 1, 14, 1], [0, 39, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 2, 0], [0, 26, 0, 0, 1, 4, 48], [0, 37, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 18, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 40, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 71, 0, 0, 0, 0, 0], [2, 60, 0, 0, 1, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 1, 11, 3], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 28, 0, 0, 1, 4, 0], [0, 22, 0, 0, 1, 5, 48], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 27, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 27, 0, 0, 0, 0, 64], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 1, 1, 32], [2, 50, 0, 0, 1, 13, 0], [2, 5, 0, 0, 1, 12, 1], [0, 38, 0, 0, 1, 7, 16], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 4, 0], [0, 38, 0, 0, 1, 3, 48], [0, 42, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 40, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 63, 0, 0, 0, 0, 0], [5, 32, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 19, 0, 0, 0, 0, 0], [3, 8, 0, 0, 0, 0, 2], [3, 0, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 24, 0, 0, 1, 4, 32], [0, 39, 0, 0, 1, 12, 0], [0, 22, 0, 0, 1, 12, 0], [0, 27, 0, 0, 1, 13, 0], [0, 25, 0, 0, 1, 13, 0], [0, 22, 0, 0, 1, 2, 48], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 2, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 6, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 22, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 15, 0, 0, 0, 0, 0], [3, 11, 0, 0, 0, 0, 2], [3, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66]], [[8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 25, 0, 0, 0, 0, 64], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 66], [5, 31, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 27, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 71, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 71, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 38, 0, 0, 0, 0, 66], [5, 30, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 33, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 44, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 60, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 59, 1, 9, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 19, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 2, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 63, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 1, 9, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 14, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 64], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 1, 9, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 22, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 24, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 3, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 54, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 14, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 1, 10, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 70, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 21, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 16, 0, 0, 0, 0, 3], [5, 2, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 30, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 1, 4, 0], [5, 10, 0, 0, 1, 12, 0], [5, 1, 0, 0, 1, 15, 17], [2, 2, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 2, 32], [5, 53, 0, 0, 1, 3, 16], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 1, 10, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 64], [2, 65, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 70, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 1, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 2], [5, 8, 0, 0, 1, 14, 0], [5, 9, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 1, 3, 0], [5, 53, 0, 0, 1, 13, 0], [5, 12, 0, 0, 1, 2, 48], [5, 10, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 1, 2, 32], [5, 54, 0, 0, 1, 3, 16], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 59, 1, 10, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 50, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 48, 0, 0, 0, 0, 64], [0, 9, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 61, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 43, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 1, 6, 0], [5, 51, 0, 0, 1, 12, 0], [5, 51, 0, 0, 1, 13, 0], [5, 66, 0, 0, 1, 13, 0], [5, 55, 0, 0, 1, 4, 48], [5, 55, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 10, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 1, 9, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 47, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 10, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 4, 0], [5, 54, 0, 0, 1, 5, 48], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 11, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 1, 1, 0, 0, 8], [5, 52, 1, 0, 0, 0, 4], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 47, 0, 0, 0, 0, 66], [8, 5, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 24, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 65, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 32, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 47, 0, 0, 0, 0, 67], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 14, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 43, 0, 0, 0, 0, 66], [0, 28, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 1, 10, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 66, 0, 0, 1, 14, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 1, 6, 0], [5, 70, 0, 0, 1, 13, 0], [5, 49, 0, 0, 1, 13, 0], [5, 49, 0, 0, 1, 13, 0], [5, 55, 0, 0, 1, 2, 16], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 1, 14, 0], [5, 66, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 63, 1, 10, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 16, 0, 0, 0, 0, 3], [0, 24, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 2, 14, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 14, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 1, 5, 0], [5, 50, 0, 0, 1, 4, 48], [5, 66, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 14, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 6, 0], [5, 62, 0, 0, 1, 12, 0], [5, 53, 0, 0, 1, 5, 48], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 1, 2, 32], [5, 49, 0, 0, 1, 13, 0], [5, 54, 0, 0, 1, 13, 0], [5, 56, 0, 0, 1, 1, 48], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 1, 3, 0, 0, 8], [5, 15, 1, 3, 0, 0, 4], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 65, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [2, 20, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 43, 0, 0, 0, 0, 66], [5, 2, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 2, 10, 0], [5, 62, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 4, 0], [5, 54, 0, 0, 1, 2, 48], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 1, 4, 0], [5, 51, 0, 0, 1, 4, 48], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 2, 0], [2, 60, 0, 0, 3, 2, 48], [2, 53, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 66, 0, 0, 1, 14, 32], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 1, 10, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 39, 0, 0, 0, 0, 65], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [2, 25, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 69, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 35, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 66], [5, 48, 0, 0, 0, 0, 67], [5, 29, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 2, 5, 2], [5, 8, 0, 0, 2, 12, 2], [5, 8, 0, 0, 2, 0, 50], [5, 9, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 11, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 1, 4, 0], [5, 55, 0, 0, 1, 13, 0], [5, 54, 0, 0, 1, 4, 48], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 10, 0], [2, 61, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 1, 10, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 33, 0, 0, 0, 0, 67], [2, 56, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 22, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 64], [5, 45, 0, 0, 0, 0, 65], [5, 5, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 19, 0, 0, 2, 2, 2], [2, 9, 0, 0, 2, 2, 48], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 14, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 1, 1, 32], [5, 50, 0, 0, 1, 12, 0], [5, 71, 0, 0, 1, 12, 0], [5, 56, 0, 0, 1, 2, 48], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 0, 0, 3, 14, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 5, 0], [2, 56, 0, 0, 3, 5, 48], [2, 49, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 1, 0, 0, 0, 3], [2, 16, 1, 0, 0, 0, 12], [2, 18, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 45, 0, 0, 0, 0, 66], [3, 48, 0, 0, 0, 0, 67], [3, 29, 0, 0, 0, 0, 64], [3, 32, 0, 0, 0, 0, 67], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 64], [5, 48, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 65], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 2, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 65], [5, 1, 0, 0, 0, 0, 3], [2, 16, 0, 0, 2, 14, 0], [2, 9, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 54, 0, 0, 2, 2, 0], [2, 50, 0, 0, 2, 3, 48], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 3, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 3, 10, 0], [2, 54, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 5, 0], [2, 53, 0, 0, 3, 2, 48], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 1, 10, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 1, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 67], [2, 11, 0, 0, 0, 0, 0], [2, 19, 0, 0, 2, 10, 3], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 2, 4, 0], [2, 55, 0, 0, 2, 2, 48], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 3, 10, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 5, 0], [2, 53, 0, 0, 3, 5, 48], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 19, 1, 10, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 4, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 22, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 11, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 10, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 6, 0], [2, 65, 0, 0, 3, 13, 0], [2, 56, 0, 0, 3, 4, 48], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 1, 2, 0, 0, 8], [2, 57, 1, 2, 0, 0, 4], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 27, 0, 0, 0, 0, 64], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [3, 6, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 47, 0, 0, 0, 0, 65], [2, 10, 0, 0, 0, 0, 2], [2, 13, 0, 0, 0, 0, 1], [2, 56, 0, 0, 2, 1, 32], [2, 56, 0, 0, 2, 13, 0], [2, 55, 0, 0, 2, 7, 16], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 11, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 1, 10, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 45, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 65], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 34, 0, 0, 0, 0, 67], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 23, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1]], [[8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 67], [5, 1, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 2, 3, 32], [2, 55, 0, 0, 2, 3, 16], [2, 53, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 10, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 1, 9, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 71, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 6, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 2, 32], [2, 54, 0, 0, 2, 3, 16], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 11, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 1, 9, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 21, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 41, 0, 0, 0, 0, 65], [5, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 11, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 14, 0], [2, 53, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 1, 2, 0, 0, 8], [2, 49, 1, 3, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 66], [5, 48, 0, 0, 0, 0, 67], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 3]], [[8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 4, 0, 0, 0, 0, 1], [0, 42, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 11, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 1, 32], [2, 51, 0, 0, 3, 13, 0], [2, 55, 0, 0, 3, 13, 0], [2, 53, 0, 0, 3, 1, 48], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 1, 9, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 5, 0, 0, 0, 0, 1], [0, 28, 0, 0, 2, 14, 0], [0, 37, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 65, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 1, 9, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 5, 0, 0, 0, 0, 1], [0, 34, 0, 0, 2, 11, 0], [0, 27, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 3, 0], [2, 71, 0, 0, 2, 4, 48], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 1, 9, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 21, 0, 0, 0, 0, 66], [5, 43, 0, 0, 0, 0, 64], [0, 42, 0, 0, 2, 0, 32], [0, 23, 0, 0, 2, 13, 0], [2, 4, 0, 0, 2, 12, 0], [2, 55, 0, 0, 2, 4, 48], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 1, 1, 0, 0, 8], [2, 57, 1, 3, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 62, 0, 0, 2, 14, 0], [5, 64, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 21, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 61, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 1, 3, 0, 0, 8], [2, 51, 1, 3, 0, 0, 4], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 12, 0, 0, 0, 0, 1], [5, 54, 0, 0, 2, 10, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 35, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66], [2, 35, 0, 0, 0, 0, 65], [2, 70, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 0, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 1, 9, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 12, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 55, 0, 0, 2, 10, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 56, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 1, 9, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 59, 0, 0, 2, 10, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 38, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 1, 2, 0, 0, 8], [2, 60, 1, 1, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 2, 10, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 2], [8, 1, 0, 0, 0, 0, 3], [2, 23, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 29, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 11, 0, 0, 2, 10, 2], [5, 18, 0, 0, 0, 0, 1], [5, 19, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 32, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 64], [2, 21, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 6, 0, 0, 0, 0, 64], [0, 28, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 44, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 1, 9, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 30, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 10, 0], [5, 16, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 1, 12, 0, 0, 0], [2, 56, 1, 11, 0, 0, 0], [2, 54, 1, 0, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 1, 0, 0, 0, 0], [2, 52, 1, 0, 0, 0, 12], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 2, 5, 32], [0, 28, 0, 0, 2, 2, 16], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 5, 0, 0, 2, 14, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 16, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 27, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 24, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 72, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 1, 3, 0, 0, 8], [2, 53, 1, 3, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 1, 0, 0, 0, 0], [2, 71, 1, 1, 0, 0, 12], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 11, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [2, 4, 0, 0, 2, 10, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 7, 0, 0, 0, 0, 64], [0, 22, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 2], [5, 0, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [0, 40, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 44, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [0, 37, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 1, 2, 0, 0, 8], [2, 49, 1, 0, 0, 0, 4], [2, 52, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 1, 10, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 0, 32], [0, 44, 0, 0, 2, 12, 0], [0, 26, 0, 0, 2, 13, 0], [0, 37, 0, 0, 2, 13, 0], [0, 25, 0, 0, 2, 12, 0], [2, 16, 0, 0, 2, 12, 0], [2, 18, 0, 0, 2, 7, 19], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 44, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 1, 14, 0], [0, 27, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 72, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 3, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 2, 11, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 17, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 34, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 14, 0], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 1, 2, 0], [2, 18, 0, 0, 1, 13, 0], [2, 17, 0, 0, 1, 12, 3], [0, 40, 0, 0, 1, 13, 0], [0, 22, 0, 0, 1, 12, 0], [0, 24, 0, 0, 1, 0, 48], [0, 44, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 1], [0, 34, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 1, 3, 0, 0, 8], [2, 18, 1, 0, 0, 0, 4], [2, 17, 0, 0, 0, 0, 3], [5, 6, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 1, 1, 0, 0, 8], [2, 51, 1, 0, 0, 0, 4], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 4, 32], [2, 52, 0, 0, 2, 2, 16], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [0, 17, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 1, 10, 0], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 1, 3, 1], [2, 19, 0, 0, 1, 5, 48], [2, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 1, 1, 0, 0, 9], [5, 17, 1, 1, 0, 0, 4], [5, 18, 0, 0, 0, 0, 3], [5, 51, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 1, 9, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 21, 0, 0, 1, 2, 0], [5, 0, 0, 0, 1, 8, 32], [5, 1, 0, 0, 1, 12, 1], [2, 17, 0, 0, 1, 2, 50], [2, 16, 0, 0, 0, 0, 3], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 40, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 1, 1, 0, 0, 10], [5, 19, 1, 1, 0, 0, 5], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 1, 2, 0, 0, 0], [2, 56, 1, 0, 0, 0, 12], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 2, 11, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [0, 3, 0, 0, 0, 0, 66], [0, 18, 0, 0, 1, 11, 1], [5, 4, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 1, 1, 0, 0, 8], [5, 63, 1, 2, 0, 0, 4], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 1, 9, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 14, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 5, 0], [2, 51, 0, 0, 2, 5, 48], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 4, 0, 0, 0, 0, 64], [1, 9, 0, 0, 0, 0, 64], [5, 47, 0, 0, 1, 10, 3], [5, 19, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 72, 1, 2, 0, 0, 8], [5, 56, 1, 0, 0, 0, 4], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 1, 9, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 10, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 28, 0, 0, 0, 0, 66], [2, 23, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 19, 0, 0, 0, 0, 64], [5, 27, 0, 0, 1, 10, 64], [5, 52, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 61, 1, 10, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 1, 2, 0, 0, 8], [2, 50, 1, 2, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 2, 0, 32], [2, 51, 0, 0, 2, 13, 0], [2, 61, 0, 0, 2, 1, 48], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [5, 36, 0, 0, 1, 1, 98], [5, 39, 0, 0, 1, 13, 65], [5, 7, 0, 0, 1, 4, 17], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 14, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 1, 10, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 48, 0, 0, 1, 2, 96], [5, 75, 0, 0, 1, 3, 81], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 1, 14, 0], [0, 37, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 3], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [0, 40, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [5, 76, 0, 0, 1, 2, 98], [5, 75, 0, 0, 1, 13, 65], [0, 22, 0, 0, 1, 13, 0], [0, 31, 0, 0, 1, 12, 0], [0, 28, 0, 0, 1, 13, 0], [5, 17, 0, 0, 1, 0, 48], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [0, 33, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 14, 0, 0, 0, 0, 1], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 56, 1, 2, 0, 0, 8], [2, 64, 1, 2, 0, 0, 4], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 76, 0, 0, 0, 0, 66], [5, 44, 0, 0, 0, 0, 67], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 2, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [0, 39, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 13, 0, 0, 0, 0, 1], [5, 57, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 44, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 2, 15, 0], [2, 53, 0, 0, 2, 1, 16], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 61, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 49, 0, 0, 2, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 65, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 11, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 1, 10, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 2, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 1, 3, 0, 0, 8], [2, 52, 1, 1, 0, 0, 4], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 70, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 65, 0, 0, 2, 10, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 61, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 1, 1, 0, 0, 8], [2, 57, 1, 12, 0, 0, 0], [2, 72, 1, 0, 0, 0, 4], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [7, 16, 0, 0, 0, 0, 0], [7, 1, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 2, 14, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 11, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 40, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 1, 10, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 51, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [7, 17, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 3], [7, 4, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 4, 0, 0, 2, 0, 32], [2, 54, 0, 0, 2, 12, 0], [2, 60, 0, 0, 2, 13, 0], [2, 55, 0, 0, 2, 12, 0], [2, 51, 0, 0, 2, 12, 0], [2, 68, 0, 0, 2, 13, 0], [2, 50, 0, 0, 2, 6, 16], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 19, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 58, 0, 0, 0, 0, 0], [5, 45, 0, 0, 0, 0, 64], [7, 48, 0, 0, 0, 0, 65], [7, 28, 0, 0, 0, 0, 66], [7, 41, 0, 0, 0, 0, 65], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 69, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 1, 0, 0, 0, 0], [2, 49, 1, 0, 0, 0, 12], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 11, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 47, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 3, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 67, 1, 9, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [4, 16, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 3], [4, 18, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 0], [4, 10, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 3], [4, 54, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 2], [4, 9, 0, 0, 0, 0, 0], [4, 10, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 3], [4, 18, 0, 0, 0, 0, 2], [4, 10, 0, 0, 0, 0, 0], [4, 47, 0, 0, 0, 0, 66], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 55, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 64, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 10, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66], [2, 39, 0, 0, 0, 0, 65], [2, 4, 0, 0, 0, 0, 1], [4, 5, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 66], [4, 29, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 58, 0, 0, 0, 0, 0], [4, 54, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 52, 0, 0, 3, 14, 0], [4, 50, 0, 0, 0, 0, 0], [4, 60, 0, 0, 0, 0, 0], [4, 54, 0, 0, 0, 0, 0], [4, 66, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 2, 14, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 64], [4, 48, 0, 0, 0, 0, 65], [4, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 53, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 58, 0, 0, 3, 2, 32], [4, 52, 0, 0, 3, 5, 16], [4, 52, 0, 0, 0, 0, 0], [4, 58, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 61, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 68, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 71, 0, 0, 2, 2, 32], [2, 52, 0, 0, 2, 3, 16], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 1, 10, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 65, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 72, 0, 0, 3, 11, 0], [4, 62, 0, 0, 0, 0, 0], [4, 55, 0, 0, 0, 0, 0], [4, 63, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 2, 3, 32], [2, 51, 0, 0, 2, 13, 0], [2, 51, 0, 0, 2, 1, 48], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 31, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 65, 0, 0, 3, 4, 32], [4, 51, 0, 0, 3, 4, 16], [4, 57, 0, 0, 0, 0, 0], [4, 51, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 68, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 71, 0, 0, 3, 5, 32], [4, 52, 0, 0, 3, 5, 16], [4, 69, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 1, 14, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 2, 0, 0, 0, 0, 3], [2, 2, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 67, 0, 0, 3, 3, 32], [4, 71, 0, 0, 3, 3, 16], [4, 70, 0, 0, 0, 0, 0], [4, 55, 0, 0, 0, 0, 0], [4, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 61, 0, 0, 1, 14, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 10, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 4, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [7, 0, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 21, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 54, 0, 0, 0, 0, 0], [4, 49, 0, 0, 3, 11, 0], [4, 51, 0, 0, 0, 0, 0], [4, 58, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 50, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 11, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 1, 3, 0], [7, 55, 0, 0, 1, 4, 48], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 12, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 1], [7, 7, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 65, 0, 0, 0, 0, 0], [4, 49, 0, 0, 3, 10, 0], [4, 58, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 58, 0, 0, 3, 14, 0], [4, 39, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 54, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 0, 32], [7, 69, 0, 0, 1, 12, 0], [7, 50, 0, 0, 1, 13, 0], [7, 58, 0, 0, 1, 12, 0], [7, 52, 0, 0, 1, 2, 48], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [7, 6, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [4, 26, 0, 0, 0, 0, 64], [4, 59, 0, 0, 0, 0, 0], [4, 51, 0, 0, 3, 10, 0], [4, 50, 0, 0, 0, 0, 0], [4, 64, 0, 0, 0, 0, 0], [4, 72, 0, 0, 3, 10, 0], [4, 49, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 72, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 13, 0, 0, 0, 0, 3], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 13, 0, 0, 0, 0, 1], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 50, 0, 0, 3, 7, 0], [4, 72, 0, 0, 3, 12, 0], [4, 54, 0, 0, 3, 13, 0], [4, 56, 0, 0, 3, 1, 48], [4, 52, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 56, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 2, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 69, 0, 0, 3, 11, 0], [4, 56, 0, 0, 0, 0, 0], [4, 52, 0, 0, 0, 0, 0], [4, 70, 0, 0, 0, 0, 0], [4, 59, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 14, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [1, 8, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 3, 4, 97], [4, 63, 0, 0, 3, 5, 16], [4, 53, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 4, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 20, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 7, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 24, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 54, 0, 0, 3, 11, 0], [4, 68, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 68, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 17, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [8, 5, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [1, 10, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 23, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 32, 0, 0, 0, 0, 67], [5, 49, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 59, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 4, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 64, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 3, 0, 97], [4, 55, 0, 0, 3, 12, 0], [4, 68, 0, 0, 3, 15, 16], [4, 50, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 64], [4, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 12, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 15, 0, 0, 0, 0, 1], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 54, 0, 0, 0, 0, 0], [4, 57, 0, 0, 0, 0, 0], [4, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 11, 0, 0, 0, 0, 0], [7, 0, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 39, 0, 0, 0, 0, 64], [4, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 32, 0, 0, 0, 0, 65], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 23, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 51, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 14, 0, 0, 0, 0, 2], [7, 11, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 43, 0, 0, 0, 0, 65], [2, 23, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 6, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 47, 0, 0, 0, 0, 66], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 10, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 64], [7, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 62, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 64], [7, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 22, 0, 0, 0, 0, 66], [5, 30, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 49, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 22, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 27, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 69, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [1, 23, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 20, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [1, 7, 0, 0, 0, 0, 64], [1, 14, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 13, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [7, 26, 0, 0, 0, 0, 64], [7, 55, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 14, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 20, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 23, 0, 0, 0, 0, 0], [1, 11, 0, 0, 0, 0, 64], [1, 23, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 64], [7, 38, 0, 0, 0, 0, 67], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 19, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 0], [1, 15, 0, 0, 0, 0, 0], [1, 16, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1]], [[8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 13, 0, 0, 0, 0, 0], [1, 7, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2]], [[8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 66, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 1, 14, 0], [7, 59, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 20, 0, 0, 0, 0, 64], [1, 18, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 22, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 18, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 1, 10, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 0], [1, 3, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [7, 26, 0, 0, 0, 0, 64], [7, 58, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 1, 0], [7, 67, 0, 0, 1, 13, 0], [7, 51, 0, 0, 1, 13, 0], [7, 62, 0, 0, 1, 13, 0], [7, 52, 0, 0, 1, 1, 48], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 22, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 13, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 17, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64]], [[8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 64], [7, 38, 0, 0, 0, 0, 67], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 1, 10, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 64], [7, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 22, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 39, 0, 0, 3, 14, 66], [2, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 1, 5, 32], [7, 61, 0, 0, 1, 5, 16], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 4, 0], [2, 67, 0, 0, 3, 13, 0], [2, 53, 0, 0, 3, 12, 0], [2, 66, 0, 0, 3, 13, 0], [2, 56, 0, 0, 3, 12, 0], [2, 38, 0, 0, 3, 0, 112], [2, 37, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 10, 0], [7, 72, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 1, 14, 0], [7, 53, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 1, 1, 0], [7, 51, 0, 0, 1, 15, 16], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 3, 0, 0], [2, 52, 0, 0, 3, 12, 0], [2, 50, 0, 0, 3, 5, 48], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 71, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 1, 3, 32], [7, 59, 0, 0, 1, 4, 16], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 1, 11, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 10, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 10, 0], [2, 64, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 1, 2, 32], [7, 56, 0, 0, 1, 13, 0], [7, 57, 0, 0, 1, 9, 32], [7, 50, 0, 0, 1, 13, 0], [7, 49, 0, 0, 1, 2, 16], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 1, 10, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 51, 0, 0, 3, 11, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 70, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 52, 0, 0, 1, 4, 32], [7, 54, 0, 0, 1, 13, 0], [7, 62, 0, 0, 1, 12, 0], [7, 64, 0, 0, 1, 0, 48], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 33, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 64], [7, 20, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [4, 36, 0, 0, 0, 0, 64], [4, 46, 0, 0, 0, 0, 67], [4, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 10, 0], [2, 59, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 45, 0, 0, 0, 0, 66], [4, 48, 0, 0, 0, 0, 67], [4, 29, 0, 0, 0, 0, 64], [4, 31, 0, 0, 0, 0, 64], [4, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [4, 36, 0, 0, 0, 0, 64], [4, 28, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 64], [4, 38, 0, 0, 0, 0, 67], [4, 18, 0, 0, 0, 0, 0], [4, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 14, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 18, 0, 0, 0, 0, 1], [4, 58, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 28, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 64], [4, 29, 0, 0, 0, 0, 64], [4, 38, 0, 0, 0, 0, 67], [4, 49, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 0], [4, 8, 0, 0, 0, 0, 2], [4, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 50, 0, 0, 3, 1, 32], [2, 55, 0, 0, 3, 12, 0], [2, 56, 0, 0, 3, 9, 0], [2, 55, 0, 0, 3, 12, 0], [2, 56, 0, 0, 3, 0, 48], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 19, 0, 0, 0, 0, 1], [4, 54, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 59, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 52, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 57, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [4, 16, 0, 0, 0, 0, 2], [4, 18, 0, 0, 0, 0, 1], [4, 56, 0, 0, 0, 0, 0], [4, 51, 0, 0, 0, 0, 0], [4, 66, 0, 0, 0, 0, 0], [4, 53, 0, 0, 0, 0, 0], [4, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 56, 0, 0, 3, 11, 0], [2, 54, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 71, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 2], [4, 9, 0, 0, 0, 0, 2], [4, 10, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 2], [4, 3, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 14, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 3, 10, 0], [2, 50, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 0, 32], [2, 71, 0, 0, 3, 12, 0], [2, 53, 0, 0, 3, 1, 48], [2, 50, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 34, 0, 0, 0, 0, 65], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]]], "Red": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "object_count": 619, "underworld": 0, "victory_conditions": 255, "tunedobj_count": 4686, "version": 28, "rumor_count": 0, "map_desc": "Eons ago, three nations were defeated by invaders and driven from their ancestral lands. The victorious nation has since split into several smaller kingdoms. Now, the ancient peoples of the land are returning to seize back their homelands. However, you refuse to let them take back what you own.", "hero_present": 1, "difficulty": 1, "objects": [{"group": 2, "number": 0, "class": 71, "filename": "avwmrnd0.def"}, {"group": 0, "number": 0, "class": 124, "filename": "avlholg0.def"}, {"group": 1, "number": 0, "class": 77, "filename": "avcranx0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr3.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr5.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr7.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr2.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr3d0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt03.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr4.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawd0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmordr0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr6.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgogr0.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawg0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorro0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr3.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr6.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr2.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf10g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf4.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro01.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro2.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro1.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro7.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro3.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro10.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf6.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr8.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr01.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr02.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr7.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw4.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr5.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl8d0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf5.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead6.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr8.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr1.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav90.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv210.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav30.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol20.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu09.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo2.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct9l0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1l0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc10l0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo5.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro12.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1g0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav20.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro05.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol40.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr07r0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl3d0.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman30.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh9r0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr1d0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro06.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug2.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1d0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr02r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr4.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca040.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu06.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr08r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr04r0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc4r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3r0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro04.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds04.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls03s0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr7.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu07.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead7.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr6.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw5.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6d0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk5d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr7.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl2d0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr4.def"}, {"group": 0, "number": 0, "class": 132, "filename": "avlmoss0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro00.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr4.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl7d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr2.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr06r0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt07.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3g0.def"}, {"group": 0, "number": 0, "class": 151, "filename": "avlskul0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr09r0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca030.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlbuzr0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh7d0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2s0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro07.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro06.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro02.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu01.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct2r0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt12.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt08.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr5.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw6.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4g0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt11.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp6.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr8.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3d0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw05.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw2.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct3g0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw1.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl4d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf07g0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk1s0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct6r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro5.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo3sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr2.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr6.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr4.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr5sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld4sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld7sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn1.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr8sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn4.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn2.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn7.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn1.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr3.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld8sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld1sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn6.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr5.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr7.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn5.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld2sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn3.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr1.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr1sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn4.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld5sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld6sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr6sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr2sn0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo1sn0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlp2sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls08s0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw20.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead5.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro05.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct2g0.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk10.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld9sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk1s0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd2g0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlswp40.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt1s0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw03.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr6.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp3.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls09s0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt3s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr11r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr3.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref30.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp4.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr12r0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr3.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls04s0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead2.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd04.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls10s0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh2r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt11.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr7.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu03.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avlswp50.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca060.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3d0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr7sn0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo2sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd02.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct8r0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld3sn0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro6.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug1.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct9r0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh2d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf02g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt15.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2g0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw10.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr5.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct5g0.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref10.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr1.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr4sn0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlp1sn0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu05.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd3r0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds03.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd01.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr13r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrr01.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrr05.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr03r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro07.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6r0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu10.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca110.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr14r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct3r0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm1.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd2r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr10r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr15r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt17.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg11.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt09.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh7r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt19.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4l0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo4.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv130.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv100.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv180.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav40.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv240.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv200.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro01.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1d0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds09.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh8d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro11.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm2.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro03.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro04.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr3sn0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca130.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca2r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls05s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg09.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg08.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1d0.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk30.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro09.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca010.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds11.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca070.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh5r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6g0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3r0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh5d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl9d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf04g0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp2.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg07.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt01.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt06.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg03.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf06g0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead1.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm40.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlctrr0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv150.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg06.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg05.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm30.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt00.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp1.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt13.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlstg30.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr01u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlstg20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm10.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr08u0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlctds0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca1r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds1.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh8r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct7r0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca090.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm20.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro03.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr2d0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca120.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf01g0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr07.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg04.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk4s0.def"}, {"group": 0, "number": 0, "class": 130, "filename": "avldlog.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt08.def"}, {"group": 0, "number": 0, "class": 148, "filename": "avldun20.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls1sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls3sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls2sn0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt02.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlswp60.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr03.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds5.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr03u0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr05u0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr09u0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds07.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw30.def"}, {"group": 0, "number": 0, "class": 33, "filename": "avcgar10.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol50.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo1.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol30.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv110.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav80.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav60.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawl0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo6.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgovo0.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol10.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrvo0.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorlv0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv190.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv260.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgelv0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc14l0.def"}, {"group": 0, "number": 0, "class": 128, "filename": "avllav10.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv120.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc13l0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlswp70.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt05.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds05.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds06.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds01.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds02.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlyuc20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlyuc30.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref20.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref60.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref40.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr02u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr07u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr06u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk1w0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgosn0.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmswsn0.def"}, {"group": 0, "number": 7, "class": 220, "filename": "avxamsn.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorsn0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalcs0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt05.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt01.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 0, "class": 109, "filename": "avmwwsn0.def"}, {"group": 0, "number": 0, "class": 87, "filename": "avxshyd0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrsn0.def"}, {"group": 0, "number": 0, "class": 39, "filename": "avmlean0.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgesn0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxoblp.def"}, {"group": 0, "number": 0, "class": 221, "filename": "avxpssn.def"}, {"group": 0, "number": 0, "class": 112, "filename": "avmwmsn0.def"}, {"group": 0, "number": 0, "class": 58, "filename": "avxreds0.def"}, {"group": 0, "number": 0, "class": 84, "filename": "avxgysn0.def"}, {"group": 0, "number": 0, "class": 12, "filename": "avxcfsn0.def"}, {"group": 0, "number": 0, "class": 91, "filename": "avxsnsn0.def"}, {"group": 0, "number": 0, "class": 16, "filename": "avxbnk10.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawr0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmore0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgorf0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrdr0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgodr0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr06.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr04.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman40.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgold0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrys0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgerf0.def"}, {"group": 0, "number": 7, "class": 53, "filename": "avmabmg.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlswp20.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrrf0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr1.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2g0.def"}, {"group": 0, "number": 7, "class": 220, "filename": "avxamro.def"}, {"group": 0, "number": 0, "class": 110, "filename": "avxwtrh0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw10.def"}, {"group": 0, "number": 0, "class": 85, "filename": "avawre20.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg01.def"}, {"group": 0, "number": 0, "class": 216, "filename": "avrcgen0.def"}, {"group": 0, "number": 0, "class": 105, "filename": "avtwagn0.def"}, {"group": 0, "number": 0, "class": 91, "filename": "avxsndg0.def"}, {"group": 0, "number": 0, "class": 47, "filename": "avsschm0.def"}, {"group": 0, "number": 0, "class": 42, "filename": "avxlths0.def"}, {"group": 0, "number": 0, "class": 106, "filename": "avgsieg0.def"}, {"group": 0, "number": 0, "class": 100, "filename": "avsgzbo0.def"}, {"group": 0, "number": 0, "class": 38, "filename": "avsidol0.def"}, {"group": 0, "number": 0, "class": 4, "filename": "avsarna0.def"}, {"group": 0, "number": 0, "class": 61, "filename": "avsaxis0.def"}, {"group": 0, "number": 0, "class": 113, "filename": "avswtch0.def"}, {"group": 0, "number": 0, "class": 78, "filename": "avgrefg0.def"}, {"group": 0, "number": 0, "class": 51, "filename": "avsmerc0.def"}, {"group": 0, "number": 0, "class": 32, "filename": "avsgrdn0.def"}, {"group": 0, "number": 0, "class": 80, "filename": "avxsanc0.def"}, {"group": 0, "number": 0, "class": 81, "filename": "avxschl0.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwlsn0.def"}, {"group": 0, "number": 0, "class": 88, "filename": "avxl1sh0.def"}, {"group": 0, "number": 0, "class": 23, "filename": "avsmarl.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman10.def"}, {"group": 0, "number": 0, "class": 25, "filename": "avsutop0.def"}, {"group": 0, "number": 4, "class": 16, "filename": "avxbnk50.def"}, {"group": 0, "number": 0, "class": 96, "filename": "avstmpl0.def"}, {"group": 0, "number": 0, "class": 94, "filename": "avxstbl0.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref50.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk2s0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro11.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca080.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro12.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl6d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr1.def"}, {"group": 0, "number": 3, "class": 16, "filename": "avxbnk40.def"}, {"group": 0, "number": 0, "class": 7, "filename": "avxmktb0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr11.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman50.def"}, {"group": 0, "number": 0, "class": 58, "filename": "avxredw.def"}, {"group": 2, "number": 0, "class": 72, "filename": "avwmon1.def"}, {"group": 0, "number": 0, "class": 27, "filename": "avxeyem0.def"}, {"group": 0, "number": 0, "class": 37, "filename": "avxhutm0.def"}, {"group": 2, "number": 0, "class": 75, "filename": "avwmon4.def"}, {"group": 0, "number": 0, "class": 97, "filename": "avxdent.def"}, {"group": 0, "number": 6, "class": 16, "filename": "avxbnk70.def"}, {"group": 2, "number": 0, "class": 71, "filename": "avwmrnd0.def"}, {"group": 0, "number": 0, "class": 213, "filename": "avxfgld.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwelr0.def"}, {"group": 0, "number": 0, "class": 95, "filename": "avxtvrn0.def"}, {"group": 0, "number": 0, "class": 89, "filename": "avxl2sh0.def"}, {"group": 0, "number": 0, "class": 2, "filename": "avxaltar.def"}, {"group": 0, "number": 1, "class": 16, "filename": "avxbnk20.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro10.def"}, {"group": 0, "number": 0, "class": 90, "filename": "avxl3sh0.def"}, {"group": 0, "number": 0, "class": 107, "filename": "avswar20.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu11.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr2.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr1.def"}, {"group": 0, "number": 0, "class": 97, "filename": "avxdend0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw07.def"}, {"group": 0, "number": 2, "class": 83, "filename": "avxseeb0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxobly.def"}, {"group": 0, "number": 0, "class": 12, "filename": "avxcflv0.def"}, {"group": 0, "number": 0, "class": 102, "filename": "avxtrek0.def"}, {"group": 0, "number": 0, "class": 30, "filename": "avsfntn0.def"}, {"group": 0, "number": 0, "class": 31, "filename": "avxfyth0.def"}, {"group": 0, "number": 0, "class": 84, "filename": "avxgyne0.def"}, {"group": 0, "number": 0, "class": 14, "filename": "avsclvg0.def"}, {"group": 0, "number": 0, "class": 55, "filename": "avtmyst0.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwelg0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxoblb.def"}, {"group": 0, "number": 2, "class": 44, "filename": "avxmx1y0.def"}, {"group": 0, "number": 2, "class": 10, "filename": "avxkey20.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgedr0.def"}, {"group": 0, "number": 0, "class": 35, "filename": "avxhilg0.def"}, {"group": 2, "number": 0, "class": 162, "filename": "avwmon5.def"}, {"group": 0, "number": 7, "class": 212, "filename": "avxbgt70.def"}, {"group": 0, "number": 7, "class": 10, "filename": "avxkey70.def"}, {"group": 0, "number": 0, "class": 12, "filename": "adcfra.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt2s0.def"}, {"group": 5, "number": 0, "class": 76, "filename": "avtrndm0.def"}, {"group": 5, "number": 0, "class": 101, "filename": "avtchst0.def"}, {"group": 0, "number": 2, "class": 212, "filename": "avxbgt20.def"}, {"group": 4, "number": 12, "class": 5, "filename": "ava0012.def"}, {"group": 4, "number": 18, "class": 5, "filename": "ava0018.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk4w0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3w0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm50.def"}, {"group": 0, "number": 0, "class": 62, "filename": "avxprsn0.def"}, {"group": 0, "number": 0, "class": 24, "filename": "avadlic0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorsw0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr0.def"}, {"group": 2, "number": 0, "class": 73, "filename": "avwmon2.def"}, {"group": 0, "number": 0, "class": 143, "filename": "clrdelt1.def"}, {"group": 0, "number": 0, "class": 143, "filename": "clrdelt2.def"}, {"group": 0, "number": 0, "class": 219, "filename": "avcvgr.def"}, {"group": 0, "number": 6, "class": 217, "filename": "avrcgen7.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr05.def"}, {"group": 0, "number": 2, "class": 9, "filename": "avxbor20.def"}, {"group": 0, "number": 2, "class": 43, "filename": "avxmn1y0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw08.def"}, {"group": 4, "number": 0, "class": 66, "filename": "avarnd1.def"}, {"group": 4, "number": 0, "class": 69, "filename": "avarnd4.def"}, {"group": 2, "number": 0, "class": 74, "filename": "avwmon3.def"}, {"group": 2, "number": 0, "class": 164, "filename": "avwmon7.def"}, {"group": 0, "number": 0, "class": 64, "filename": "avxrlly0.def"}, {"group": 4, "number": 0, "class": 65, "filename": "avarand.def"}, {"group": 4, "number": 0, "class": 67, "filename": "avarnd2.def"}, {"group": 4, "number": 0, "class": 68, "filename": "avarnd3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk2w0.def"}, {"group": 3, "number": 0, "class": 70, "filename": "ahrandom.def"}, {"group": 0, "number": 0, "class": 125, "filename": "avlklp20.def"}, {"group": 0, "number": 1, "class": 212, "filename": "avxbgt10.def"}, {"group": 0, "number": 0, "class": 215, "filename": "avxbor80.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr09.def"}, {"group": 0, "number": 2, "class": 45, "filename": "avxmn2p0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds08.def"}, {"group": 0, "number": 1, "class": 10, "filename": "avxkey10.def"}, {"group": 0, "number": 0, "class": 108, "filename": "avxtomb0.def"}, {"group": 5, "number": 2, "class": 79, "filename": "avtore0.def"}, {"group": 5, "number": 0, "class": 79, "filename": "avtwood0.def"}, {"group": 5, "number": 1, "class": 79, "filename": "avtmerc0.def"}, {"group": 2, "number": 0, "class": 163, "filename": "avwmon6.def"}, {"group": 0, "number": 5, "class": 16, "filename": "avxbnk60.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4g0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3s0.def"}, {"group": 5, "number": 4, "class": 79, "filename": "avtcrys0.def"}, {"group": 2, "number": 115, "class": 54, "filename": "avwelmw0.def"}, {"group": 5, "number": 6, "class": 79, "filename": "avtgold0.def"}, {"group": 5, "number": 3, "class": 79, "filename": "avtsulf0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgosw0.def"}, {"group": 0, "number": 0, "class": 111, "filename": "avxwhrl0.def"}, {"group": 0, "number": 0, "class": 13, "filename": "avxmapw0.def"}, {"group": 2, "number": 123, "class": 54, "filename": "avwicee.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr9.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr4.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw01.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw06.def"}, {"group": 0, "number": 0, "class": 85, "filename": "avawrek0.def"}, {"group": 0, "number": 0, "class": 29, "filename": "avaflot0.def"}, {"group": 0, "number": 0, "class": 86, "filename": "avasurv0.def"}, {"group": 0, "number": 0, "class": 82, "filename": "avxccht0.def"}, {"group": 0, "number": 1, "class": 13, "filename": "avxmaps0.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf2.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf1.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef2.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef3.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef5.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef6.def"}, {"group": 0, "number": 0, "class": 227, "filename": "avxhg2.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff1.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff0.def"}, {"group": 0, "number": 6, "class": 45, "filename": "avxmn7b0.def"}, {"group": 0, "number": 7, "class": 45, "filename": "avxmn8b0.def"}, {"group": 0, "number": 0, "class": 223, "filename": "avxcg2.def"}, {"group": 0, "number": 0, "class": 228, "filename": "avxlp2.def"}, {"group": 0, "number": 0, "class": 228, "filename": "avxlp0.def"}, {"group": 0, "number": 0, "class": 223, "filename": "avxcg1.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff5.def"}, {"group": 2, "number": 114, "class": 54, "filename": "avwelmf0.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf5.def"}], "Green": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Teal": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "level_limit": 0, "tunedobj": [{"y": 38, "x": 16, "z": 0, "id": 2}, {"y": 57, "x": 10, "z": 0, "id": 2}, {"y": 62, "x": 49, "z": 0, "id": 2}, {"y": 47, "x": 136, "z": 0, "id": 2}, {"y": 104, "x": 116, "z": 0, "id": 2}, {"y": 63, "x": 95, "z": 0, "id": 2}, {"y": 20, "x": 49, "z": 0, "id": 2}, {"y": 38, "x": 128, "z": 0, "id": 2}, {"y": 136, "x": 105, "z": 0, "id": 2}, {"y": 18, "x": 23, "z": 0, "id": 2}, {"y": 6, "x": 140, "z": 0, "id": 2}, {"y": 76, "x": 12, "z": 0, "id": 3}, {"y": 75, "x": 14, "z": 0, "id": 4}, {"y": 76, "x": 15, "z": 0, "id": 5}, {"y": 76, "x": 10, "z": 0, "id": 6}, {"y": 76, "x": 10, "z": 0, "id": 7}, {"y": 77, "x": 14, "z": 0, "id": 8}, {"y": 76, "x": 9, "z": 0, "id": 9}, {"y": 74, "x": 13, "z": 0, "id": 10}, {"y": 72, "x": 11, "z": 0, "id": 11}, {"y": 71, "x": 13, "z": 0, "id": 12}, {"y": 70, "x": 9, "z": 0, "id": 13}, {"y": 76, "x": 21, "z": 0, "id": 14}, {"y": 84, "x": 20, "z": 0, "id": 15}, {"y": 55, "x": 6, "z": 0, "id": 13}, {"y": 71, "x": 12, "z": 0, "id": 16}, {"y": 71, "x": 14, "z": 0, "id": 17}, {"y": 52, "x": 16, "z": 0, "id": 18}, {"y": 31, "x": 13, "z": 0, "id": 19}, {"y": 55, "x": 49, "z": 0, "id": 10}, {"y": 55, "x": 53, "z": 0, "id": 20}, {"y": 57, "x": 44, "z": 0, "id": 21}, {"y": 55, "x": 53, "z": 0, "id": 6}, {"y": 54, "x": 50, "z": 0, "id": 16}, {"y": 56, "x": 46, "z": 0, "id": 22}, {"y": 55, "x": 54, "z": 0, "id": 23}, {"y": 55, "x": 49, "z": 0, "id": 24}, {"y": 52, "x": 53, "z": 0, "id": 13}, {"y": 51, "x": 57, "z": 0, "id": 11}, {"y": 57, "x": 46, "z": 0, "id": 25}, {"y": 57, "x": 47, "z": 0, "id": 11}, {"y": 59, "x": 44, "z": 0, "id": 26}, {"y": 60, "x": 42, "z": 0, "id": 25}, {"y": 63, "x": 35, "z": 0, "id": 27}, {"y": 62, "x": 38, "z": 0, "id": 28}, {"y": 60, "x": 41, "z": 0, "id": 29}, {"y": 61, "x": 39, "z": 0, "id": 30}, {"y": 62, "x": 36, "z": 0, "id": 31}, {"y": 57, "x": 41, "z": 0, "id": 30}, {"y": 58, "x": 40, "z": 0, "id": 32}, {"y": 56, "x": 42, "z": 0, "id": 33}, {"y": 55, "x": 42, "z": 0, "id": 34}, {"y": 60, "x": 43, "z": 0, "id": 35}, {"y": 58, "x": 44, "z": 0, "id": 36}, {"y": 63, "x": 34, "z": 0, "id": 37}, {"y": 54, "x": 49, "z": 0, "id": 30}, {"y": 53, "x": 51, "z": 0, "id": 23}, {"y": 51, "x": 53, "z": 0, "id": 20}, {"y": 47, "x": 48, "z": 0, "id": 10}, {"y": 45, "x": 52, "z": 0, "id": 38}, {"y": 46, "x": 47, "z": 0, "id": 39}, {"y": 45, "x": 46, "z": 0, "id": 40}, {"y": 43, "x": 49, "z": 0, "id": 20}, {"y": 44, "x": 44, "z": 0, "id": 13}, {"y": 43, "x": 43, "z": 0, "id": 10}, {"y": 41, "x": 50, "z": 0, "id": 38}, {"y": 39, "x": 46, "z": 0, "id": 10}, {"y": 38, "x": 48, "z": 0, "id": 41}, {"y": 36, "x": 43, "z": 0, "id": 38}, {"y": 33, "x": 42, "z": 0, "id": 10}, {"y": 32, "x": 43, "z": 0, "id": 11}, {"y": 29, "x": 43, "z": 0, "id": 20}, {"y": 36, "x": 49, "z": 0, "id": 38}, {"y": 34, "x": 49, "z": 0, "id": 11}, {"y": 32, "x": 48, "z": 0, "id": 20}, {"y": 33, "x": 46, "z": 0, "id": 27}, {"y": 41, "x": 45, "z": 0, "id": 28}, {"y": 49, "x": 53, "z": 0, "id": 42}, {"y": 37, "x": 45, "z": 0, "id": 27}, {"y": 35, "x": 45, "z": 0, "id": 41}, {"y": 34, "x": 45, "z": 0, "id": 20}, {"y": 40, "x": 44, "z": 0, "id": 10}, {"y": 36, "x": 45, "z": 0, "id": 6}, {"y": 38, "x": 44, "z": 0, "id": 16}, {"y": 43, "x": 46, "z": 0, "id": 6}, {"y": 46, "x": 49, "z": 0, "id": 6}, {"y": 45, "x": 48, "z": 0, "id": 43}, {"y": 43, "x": 46, "z": 0, "id": 44}, {"y": 49, "x": 52, "z": 0, "id": 45}, {"y": 49, "x": 51, "z": 0, "id": 44}, {"y": 48, "x": 53, "z": 0, "id": 45}, {"y": 51, "x": 53, "z": 0, "id": 43}, {"y": 42, "x": 45, "z": 0, "id": 46}, {"y": 40, "x": 47, "z": 0, "id": 46}, {"y": 35, "x": 43, "z": 0, "id": 46}, {"y": 34, "x": 47, "z": 0, "id": 22}, {"y": 30, "x": 42, "z": 0, "id": 47}, {"y": 31, "x": 46, "z": 0, "id": 23}, {"y": 62, "x": 42, "z": 0, "id": 48}, {"y": 64, "x": 43, "z": 0, "id": 48}, {"y": 66, "x": 45, "z": 0, "id": 20}, {"y": 68, "x": 47, "z": 0, "id": 49}, {"y": 71, "x": 48, "z": 0, "id": 16}, {"y": 73, "x": 49, "z": 0, "id": 43}, {"y": 73, "x": 51, "z": 0, "id": 46}, {"y": 73, "x": 52, "z": 0, "id": 50}, {"y": 70, "x": 47, "z": 0, "id": 16}, {"y": 69, "x": 46, "z": 0, "id": 51}, {"y": 67, "x": 46, "z": 0, "id": 13}, {"y": 68, "x": 44, "z": 0, "id": 39}, {"y": 63, "x": 42, "z": 0, "id": 52}, {"y": 64, "x": 41, "z": 0, "id": 39}, {"y": 60, "x": 58, "z": 0, "id": 21}, {"y": 62, "x": 60, "z": 0, "id": 53}, {"y": 65, "x": 62, "z": 0, "id": 3}, {"y": 67, "x": 63, "z": 0, "id": 26}, {"y": 69, "x": 61, "z": 0, "id": 25}, {"y": 70, "x": 59, "z": 0, "id": 28}, {"y": 70, "x": 56, "z": 0, "id": 20}, {"y": 70, "x": 54, "z": 0, "id": 54}, {"y": 70, "x": 57, "z": 0, "id": 11}, {"y": 67, "x": 59, "z": 0, "id": 55}, {"y": 68, "x": 56, "z": 0, "id": 11}, {"y": 63, "x": 62, "z": 0, "id": 3}, {"y": 61, "x": 61, "z": 0, "id": 56}, {"y": 61, "x": 58, "z": 0, "id": 40}, {"y": 96, "x": 38, "z": 0, "id": 25}, {"y": 97, "x": 40, "z": 0, "id": 57}, {"y": 97, "x": 41, "z": 0, "id": 58}, {"y": 98, "x": 42, "z": 0, "id": 42}, {"y": 97, "x": 45, "z": 0, "id": 59}, {"y": 99, "x": 46, "z": 0, "id": 26}, {"y": 100, "x": 49, "z": 0, "id": 26}, {"y": 101, "x": 50, "z": 0, "id": 60}, {"y": 102, "x": 51, "z": 0, "id": 42}, {"y": 96, "x": 43, "z": 0, "id": 28}, {"y": 94, "x": 40, "z": 0, "id": 61}, {"y": 97, "x": 42, "z": 0, "id": 26}, {"y": 94, "x": 38, "z": 0, "id": 27}, {"y": 95, "x": 35, "z": 0, "id": 25}, {"y": 104, "x": 57, "z": 0, "id": 62}, {"y": 104, "x": 59, "z": 0, "id": 63}, {"y": 104, "x": 62, "z": 0, "id": 28}, {"y": 105, "x": 63, "z": 0, "id": 64}, {"y": 106, "x": 65, "z": 0, "id": 65}, {"y": 107, "x": 67, "z": 0, "id": 66}, {"y": 111, "x": 73, "z": 0, "id": 67}, {"y": 112, "x": 74, "z": 0, "id": 68}, {"y": 114, "x": 76, "z": 0, "id": 25}, {"y": 114, "x": 76, "z": 0, "id": 28}, {"y": 112, "x": 73, "z": 0, "id": 27}, {"y": 113, "x": 75, "z": 0, "id": 26}, {"y": 111, "x": 70, "z": 0, "id": 27}, {"y": 110, "x": 72, "z": 0, "id": 69}, {"y": 111, "x": 70, "z": 0, "id": 26}, {"y": 108, "x": 68, "z": 0, "id": 27}, {"y": 109, "x": 67, "z": 0, "id": 28}, {"y": 108, "x": 66, "z": 0, "id": 70}, {"y": 108, "x": 67, "z": 0, "id": 26}, {"y": 106, "x": 66, "z": 0, "id": 26}, {"y": 103, "x": 63, "z": 0, "id": 26}, {"y": 105, "x": 61, "z": 0, "id": 25}, {"y": 104, "x": 58, "z": 0, "id": 42}, {"y": 92, "x": 19, "z": 0, "id": 71}, {"y": 93, "x": 21, "z": 0, "id": 42}, {"y": 94, "x": 24, "z": 0, "id": 28}, {"y": 95, "x": 30, "z": 0, "id": 28}, {"y": 95, "x": 32, "z": 0, "id": 25}, {"y": 93, "x": 30, "z": 0, "id": 72}, {"y": 94, "x": 25, "z": 0, "id": 27}, {"y": 93, "x": 22, "z": 0, "id": 25}, {"y": 36, "x": 51, "z": 0, "id": 38}, {"y": 38, "x": 53, "z": 0, "id": 10}, {"y": 40, "x": 54, "z": 0, "id": 46}, {"y": 46, "x": 59, "z": 0, "id": 56}, {"y": 50, "x": 59, "z": 0, "id": 6}, {"y": 52, "x": 59, "z": 0, "id": 16}, {"y": 54, "x": 60, "z": 0, "id": 35}, {"y": 55, "x": 60, "z": 0, "id": 73}, {"y": 56, "x": 59, "z": 0, "id": 27}, {"y": 53, "x": 58, "z": 0, "id": 74}, {"y": 51, "x": 59, "z": 0, "id": 7}, {"y": 40, "x": 55, "z": 0, "id": 38}, {"y": 38, "x": 51, "z": 0, "id": 26}, {"y": 40, "x": 51, "z": 0, "id": 75}, {"y": 43, "x": 56, "z": 0, "id": 26}, {"y": 44, "x": 55, "z": 0, "id": 27}, {"y": 46, "x": 55, "z": 0, "id": 27}, {"y": 47, "x": 58, "z": 0, "id": 25}, {"y": 48, "x": 58, "z": 0, "id": 76}, {"y": 48, "x": 58, "z": 0, "id": 26}, {"y": 48, "x": 56, "z": 0, "id": 77}, {"y": 44, "x": 54, "z": 0, "id": 78}, {"y": 43, "x": 57, "z": 0, "id": 26}, {"y": 43, "x": 52, "z": 0, "id": 79}, {"y": 42, "x": 51, "z": 0, "id": 80}, {"y": 42, "x": 53, "z": 0, "id": 31}, {"y": 66, "x": 40, "z": 0, "id": 81}, {"y": 67, "x": 43, "z": 0, "id": 82}, {"y": 69, "x": 42, "z": 0, "id": 41}, {"y": 71, "x": 40, "z": 0, "id": 83}, {"y": 72, "x": 38, "z": 0, "id": 84}, {"y": 74, "x": 37, "z": 0, "id": 56}, {"y": 76, "x": 38, "z": 0, "id": 85}, {"y": 79, "x": 41, "z": 0, "id": 56}, {"y": 81, "x": 42, "z": 0, "id": 4}, {"y": 83, "x": 44, "z": 0, "id": 4}, {"y": 85, "x": 48, "z": 0, "id": 56}, {"y": 86, "x": 48, "z": 0, "id": 86}, {"y": 87, "x": 47, "z": 0, "id": 87}, {"y": 88, "x": 48, "z": 0, "id": 83}, {"y": 89, "x": 48, "z": 0, "id": 27}, {"y": 90, "x": 48, "z": 0, "id": 88}, {"y": 91, "x": 48, "z": 0, "id": 56}, {"y": 91, "x": 47, "z": 0, "id": 56}, {"y": 91, "x": 44, "z": 0, "id": 89}, {"y": 88, "x": 44, "z": 0, "id": 90}, {"y": 87, "x": 45, "z": 0, "id": 91}, {"y": 88, "x": 46, "z": 0, "id": 83}, {"y": 88, "x": 47, "z": 0, "id": 84}, {"y": 87, "x": 48, "z": 0, "id": 3}, {"y": 87, "x": 45, "z": 0, "id": 27}, {"y": 86, "x": 45, "z": 0, "id": 85}, {"y": 82, "x": 48, "z": 0, "id": 28}, {"y": 81, "x": 46, "z": 0, "id": 26}, {"y": 81, "x": 43, "z": 0, "id": 4}, {"y": 81, "x": 42, "z": 0, "id": 28}, {"y": 81, "x": 40, "z": 0, "id": 92}, {"y": 78, "x": 43, "z": 0, "id": 90}, {"y": 81, "x": 43, "z": 0, "id": 3}, {"y": 81, "x": 40, "z": 0, "id": 27}, {"y": 78, "x": 37, "z": 0, "id": 47}, {"y": 77, "x": 41, "z": 0, "id": 93}, {"y": 77, "x": 38, "z": 0, "id": 3}, {"y": 76, "x": 35, "z": 0, "id": 4}, {"y": 74, "x": 35, "z": 0, "id": 37}, {"y": 75, "x": 35, "z": 0, "id": 4}, {"y": 71, "x": 34, "z": 0, "id": 94}, {"y": 71, "x": 39, "z": 0, "id": 41}, {"y": 70, "x": 37, "z": 0, "id": 39}, {"y": 71, "x": 40, "z": 0, "id": 41}, {"y": 69, "x": 43, "z": 0, "id": 39}, {"y": 70, "x": 41, "z": 0, "id": 41}, {"y": 70, "x": 40, "z": 0, "id": 38}, {"y": 68, "x": 42, "z": 0, "id": 11}, {"y": 56, "x": 67, "z": 0, "id": 95}, {"y": 57, "x": 69, "z": 0, "id": 29}, {"y": 59, "x": 70, "z": 0, "id": 42}, {"y": 60, "x": 72, "z": 0, "id": 26}, {"y": 61, "x": 73, "z": 0, "id": 96}, {"y": 64, "x": 75, "z": 0, "id": 56}, {"y": 66, "x": 75, "z": 0, "id": 4}, {"y": 71, "x": 74, "z": 0, "id": 26}, {"y": 77, "x": 72, "z": 0, "id": 26}, {"y": 78, "x": 69, "z": 0, "id": 55}, {"y": 79, "x": 66, "z": 0, "id": 56}, {"y": 81, "x": 66, "z": 0, "id": 97}, {"y": 83, "x": 64, "z": 0, "id": 98}, {"y": 84, "x": 55, "z": 0, "id": 49}, {"y": 84, "x": 53, "z": 0, "id": 27}, {"y": 83, "x": 51, "z": 0, "id": 99}, {"y": 84, "x": 51, "z": 0, "id": 3}, {"y": 82, "x": 53, "z": 0, "id": 25}, {"y": 80, "x": 56, "z": 0, "id": 48}, {"y": 81, "x": 58, "z": 0, "id": 100}, {"y": 81, "x": 59, "z": 0, "id": 16}, {"y": 83, "x": 61, "z": 0, "id": 3}, {"y": 81, "x": 58, "z": 0, "id": 101}, {"y": 82, "x": 51, "z": 0, "id": 25}, {"y": 83, "x": 58, "z": 0, "id": 53}, {"y": 83, "x": 55, "z": 0, "id": 25}, {"y": 83, "x": 60, "z": 0, "id": 25}, {"y": 84, "x": 57, "z": 0, "id": 26}, {"y": 85, "x": 59, "z": 0, "id": 25}, {"y": 83, "x": 61, "z": 0, "id": 26}, {"y": 85, "x": 62, "z": 0, "id": 3}, {"y": 83, "x": 62, "z": 0, "id": 55}, {"y": 82, "x": 66, "z": 0, "id": 3}, {"y": 81, "x": 63, "z": 0, "id": 56}, {"y": 78, "x": 65, "z": 0, "id": 25}, {"y": 76, "x": 66, "z": 0, "id": 3}, {"y": 79, "x": 64, "z": 0, "id": 84}, {"y": 77, "x": 69, "z": 0, "id": 3}, {"y": 74, "x": 70, "z": 0, "id": 101}, {"y": 76, "x": 70, "z": 0, "id": 26}, {"y": 71, "x": 73, "z": 0, "id": 3}, {"y": 68, "x": 72, "z": 0, "id": 4}, {"y": 70, "x": 74, "z": 0, "id": 25}, {"y": 67, "x": 74, "z": 0, "id": 27}, {"y": 68, "x": 75, "z": 0, "id": 56}, {"y": 65, "x": 74, "z": 0, "id": 56}, {"y": 65, "x": 74, "z": 0, "id": 3}, {"y": 63, "x": 72, "z": 0, "id": 56}, {"y": 61, "x": 74, "z": 0, "id": 102}, {"y": 60, "x": 74, "z": 0, "id": 101}, {"y": 60, "x": 73, "z": 0, "id": 3}, {"y": 60, "x": 68, "z": 0, "id": 27}, {"y": 58, "x": 71, "z": 0, "id": 25}, {"y": 42, "x": 11, "z": 0, "id": 21}, {"y": 43, "x": 12, "z": 0, "id": 103}, {"y": 43, "x": 14, "z": 0, "id": 26}, {"y": 43, "x": 16, "z": 0, "id": 27}, {"y": 43, "x": 18, "z": 0, "id": 25}, {"y": 44, "x": 19, "z": 0, "id": 27}, {"y": 45, "x": 22, "z": 0, "id": 30}, {"y": 44, "x": 23, "z": 0, "id": 101}, {"y": 44, "x": 14, "z": 0, "id": 104}, {"y": 49, "x": 20, "z": 0, "id": 105}, {"y": 50, "x": 20, "z": 0, "id": 88}, {"y": 51, "x": 21, "z": 0, "id": 53}, {"y": 53, "x": 23, "z": 0, "id": 84}, {"y": 55, "x": 25, "z": 0, "id": 56}, {"y": 55, "x": 30, "z": 0, "id": 25}, {"y": 53, "x": 33, "z": 0, "id": 42}, {"y": 53, "x": 35, "z": 0, "id": 16}, {"y": 52, "x": 36, "z": 0, "id": 6}, {"y": 38, "x": 41, "z": 0, "id": 30}, {"y": 40, "x": 43, "z": 0, "id": 106}, {"y": 42, "x": 41, "z": 0, "id": 25}, {"y": 43, "x": 36, "z": 0, "id": 107}, {"y": 45, "x": 36, "z": 0, "id": 3}, {"y": 45, "x": 33, "z": 0, "id": 108}, {"y": 45, "x": 31, "z": 0, "id": 12}, {"y": 43, "x": 35, "z": 0, "id": 3}, {"y": 42, "x": 37, "z": 0, "id": 3}, {"y": 42, "x": 36, "z": 0, "id": 3}, {"y": 40, "x": 38, "z": 0, "id": 56}, {"y": 43, "x": 30, "z": 0, "id": 109}, {"y": 44, "x": 31, "z": 0, "id": 110}, {"y": 41, "x": 35, "z": 0, "id": 55}, {"y": 42, "x": 39, "z": 0, "id": 25}, {"y": 39, "x": 41, "z": 0, "id": 42}, {"y": 38, "x": 43, "z": 0, "id": 10}, {"y": 40, "x": 42, "z": 0, "id": 26}, {"y": 67, "x": 18, "z": 0, "id": 111}, {"y": 70, "x": 20, "z": 0, "id": 46}, {"y": 72, "x": 23, "z": 0, "id": 5}, {"y": 73, "x": 23, "z": 0, "id": 36}, {"y": 75, "x": 23, "z": 0, "id": 22}, {"y": 73, "x": 22, "z": 0, "id": 12}, {"y": 74, "x": 15, "z": 0, "id": 51}, {"y": 73, "x": 17, "z": 0, "id": 46}, {"y": 73, "x": 19, "z": 0, "id": 112}, {"y": 72, "x": 22, "z": 0, "id": 46}, {"y": 72, "x": 19, "z": 0, "id": 51}, {"y": 71, "x": 21, "z": 0, "id": 26}, {"y": 68, "x": 18, "z": 0, "id": 113}, {"y": 69, "x": 20, "z": 0, "id": 22}, {"y": 64, "x": 17, "z": 0, "id": 30}, {"y": 65, "x": 16, "z": 0, "id": 114}, {"y": 66, "x": 16, "z": 0, "id": 115}, {"y": 67, "x": 15, "z": 0, "id": 112}, {"y": 66, "x": 14, "z": 0, "id": 23}, {"y": 64, "x": 16, "z": 0, "id": 116}, {"y": 64, "x": 14, "z": 0, "id": 117}, {"y": 59, "x": 7, "z": 0, "id": 118}, {"y": 60, "x": 8, "z": 0, "id": 119}, {"y": 61, "x": 9, "z": 0, "id": 101}, {"y": 63, "x": 11, "z": 0, "id": 16}, {"y": 65, "x": 11, "z": 0, "id": 27}, {"y": 63, "x": 10, "z": 0, "id": 120}, {"y": 63, "x": 9, "z": 0, "id": 6}, {"y": 60, "x": 23, "z": 0, "id": 98}, {"y": 61, "x": 24, "z": 0, "id": 121}, {"y": 61, "x": 27, "z": 0, "id": 42}, {"y": 63, "x": 31, "z": 0, "id": 101}, {"y": 64, "x": 31, "z": 0, "id": 122}, {"y": 65, "x": 31, "z": 0, "id": 85}, {"y": 70, "x": 26, "z": 0, "id": 123}, {"y": 70, "x": 28, "z": 0, "id": 4}, {"y": 63, "x": 29, "z": 0, "id": 124}, {"y": 63, "x": 30, "z": 0, "id": 28}, {"y": 62, "x": 29, "z": 0, "id": 26}, {"y": 61, "x": 24, "z": 0, "id": 105}, {"y": 61, "x": 22, "z": 0, "id": 95}, {"y": 79, "x": 26, "z": 0, "id": 33}, {"y": 80, "x": 28, "z": 0, "id": 6}, {"y": 82, "x": 30, "z": 0, "id": 125}, {"y": 87, "x": 32, "z": 0, "id": 3}, {"y": 88, "x": 27, "z": 0, "id": 126}, {"y": 90, "x": 26, "z": 0, "id": 3}, {"y": 91, "x": 26, "z": 0, "id": 127}, {"y": 93, "x": 26, "z": 0, "id": 26}, {"y": 89, "x": 24, "z": 0, "id": 27}, {"y": 87, "x": 25, "z": 0, "id": 42}, {"y": 87, "x": 26, "z": 0, "id": 3}, {"y": 85, "x": 29, "z": 0, "id": 3}, {"y": 83, "x": 29, "z": 0, "id": 84}, {"y": 82, "x": 27, "z": 0, "id": 43}, {"y": 85, "x": 27, "z": 0, "id": 101}, {"y": 87, "x": 29, "z": 0, "id": 55}, {"y": 86, "x": 30, "z": 0, "id": 101}, {"y": 83, "x": 39, "z": 0, "id": 3}, {"y": 81, "x": 38, "z": 0, "id": 84}, {"y": 80, "x": 36, "z": 0, "id": 4}, {"y": 80, "x": 33, "z": 0, "id": 128}, {"y": 80, "x": 33, "z": 0, "id": 56}, {"y": 81, "x": 37, "z": 0, "id": 3}, {"y": 80, "x": 39, "z": 0, "id": 3}, {"y": 82, "x": 32, "z": 0, "id": 42}, {"y": 82, "x": 34, "z": 0, "id": 101}, {"y": 85, "x": 30, "z": 0, "id": 91}, {"y": 84, "x": 34, "z": 0, "id": 3}, {"y": 80, "x": 34, "z": 0, "id": 55}, {"y": 82, "x": 29, "z": 0, "id": 55}, {"y": 80, "x": 29, "z": 0, "id": 101}, {"y": 85, "x": 34, "z": 0, "id": 55}, {"y": 87, "x": 36, "z": 0, "id": 3}, {"y": 90, "x": 39, "z": 0, "id": 26}, {"y": 90, "x": 37, "z": 0, "id": 129}, {"y": 91, "x": 36, "z": 0, "id": 130}, {"y": 88, "x": 38, "z": 0, "id": 28}, {"y": 86, "x": 38, "z": 0, "id": 68}, {"y": 88, "x": 35, "z": 0, "id": 28}, {"y": 88, "x": 35, "z": 0, "id": 25}, {"y": 87, "x": 37, "z": 0, "id": 56}, {"y": 37, "x": 61, "z": 0, "id": 35}, {"y": 44, "x": 71, "z": 0, "id": 26}, {"y": 45, "x": 74, "z": 0, "id": 85}, {"y": 47, "x": 75, "z": 0, "id": 4}, {"y": 48, "x": 76, "z": 0, "id": 92}, {"y": 49, "x": 77, "z": 0, "id": 131}, {"y": 51, "x": 77, "z": 0, "id": 56}, {"y": 47, "x": 77, "z": 0, "id": 56}, {"y": 49, "x": 78, "z": 0, "id": 3}, {"y": 49, "x": 73, "z": 0, "id": 56}, {"y": 48, "x": 75, "z": 0, "id": 3}, {"y": 46, "x": 72, "z": 0, "id": 91}, {"y": 46, "x": 71, "z": 0, "id": 4}, {"y": 45, "x": 71, "z": 0, "id": 55}, {"y": 45, "x": 73, "z": 0, "id": 3}, {"y": 43, "x": 72, "z": 0, "id": 28}, {"y": 41, "x": 72, "z": 0, "id": 105}, {"y": 40, "x": 72, "z": 0, "id": 132}, {"y": 40, "x": 69, "z": 0, "id": 56}, {"y": 42, "x": 71, "z": 0, "id": 4}, {"y": 42, "x": 72, "z": 0, "id": 3}, {"y": 41, "x": 60, "z": 0, "id": 11}, {"y": 40, "x": 59, "z": 0, "id": 11}, {"y": 38, "x": 55, "z": 0, "id": 133}, {"y": 40, "x": 63, "z": 0, "id": 3}, {"y": 42, "x": 60, "z": 0, "id": 42}, {"y": 44, "x": 61, "z": 0, "id": 130}, {"y": 45, "x": 66, "z": 0, "id": 25}, {"y": 46, "x": 70, "z": 0, "id": 25}, {"y": 47, "x": 70, "z": 0, "id": 3}, {"y": 47, "x": 68, "z": 0, "id": 25}, {"y": 42, "x": 63, "z": 0, "id": 3}, {"y": 45, "x": 63, "z": 0, "id": 3}, {"y": 43, "x": 64, "z": 0, "id": 55}, {"y": 44, "x": 60, "z": 0, "id": 55}, {"y": 40, "x": 65, "z": 0, "id": 25}, {"y": 43, "x": 65, "z": 0, "id": 56}, {"y": 40, "x": 66, "z": 0, "id": 55}, {"y": 42, "x": 67, "z": 0, "id": 27}, {"y": 41, "x": 66, "z": 0, "id": 26}, {"y": 54, "x": 84, "z": 0, "id": 134}, {"y": 55, "x": 86, "z": 0, "id": 135}, {"y": 56, "x": 83, "z": 0, "id": 136}, {"y": 59, "x": 87, "z": 0, "id": 38}, {"y": 60, "x": 87, "z": 0, "id": 137}, {"y": 61, "x": 89, "z": 0, "id": 138}, {"y": 62, "x": 88, "z": 0, "id": 21}, {"y": 64, "x": 89, "z": 0, "id": 10}, {"y": 67, "x": 91, "z": 0, "id": 38}, {"y": 68, "x": 92, "z": 0, "id": 139}, {"y": 70, "x": 92, "z": 0, "id": 106}, {"y": 74, "x": 96, "z": 0, "id": 110}, {"y": 75, "x": 97, "z": 0, "id": 140}, {"y": 76, "x": 97, "z": 0, "id": 141}, {"y": 77, "x": 96, "z": 0, "id": 31}, {"y": 78, "x": 96, "z": 0, "id": 142}, {"y": 80, "x": 96, "z": 0, "id": 103}, {"y": 83, "x": 96, "z": 0, "id": 11}, {"y": 82, "x": 96, "z": 0, "id": 41}, {"y": 79, "x": 93, "z": 0, "id": 103}, {"y": 78, "x": 92, "z": 0, "id": 143}, {"y": 77, "x": 91, "z": 0, "id": 144}, {"y": 78, "x": 89, "z": 0, "id": 43}, {"y": 79, "x": 88, "z": 0, "id": 77}, {"y": 80, "x": 86, "z": 0, "id": 95}, {"y": 81, "x": 87, "z": 0, "id": 145}, {"y": 74, "x": 91, "z": 0, "id": 146}, {"y": 75, "x": 91, "z": 0, "id": 46}, {"y": 75, "x": 91, "z": 0, "id": 16}, {"y": 72, "x": 92, "z": 0, "id": 147}, {"y": 70, "x": 89, "z": 0, "id": 41}, {"y": 76, "x": 92, "z": 0, "id": 40}, {"y": 81, "x": 92, "z": 0, "id": 148}, {"y": 80, "x": 94, "z": 0, "id": 149}, {"y": 79, "x": 95, "z": 0, "id": 146}, {"y": 77, "x": 95, "z": 0, "id": 127}, {"y": 76, "x": 94, "z": 0, "id": 150}, {"y": 75, "x": 98, "z": 0, "id": 151}, {"y": 76, "x": 99, "z": 0, "id": 112}, {"y": 78, "x": 100, "z": 0, "id": 10}, {"y": 80, "x": 104, "z": 0, "id": 152}, {"y": 76, "x": 101, "z": 0, "id": 13}, {"y": 75, "x": 97, "z": 0, "id": 82}, {"y": 74, "x": 96, "z": 0, "id": 48}, {"y": 73, "x": 95, "z": 0, "id": 20}, {"y": 75, "x": 93, "z": 0, "id": 103}, {"y": 70, "x": 96, "z": 0, "id": 150}, {"y": 70, "x": 99, "z": 0, "id": 147}, {"y": 67, "x": 101, "z": 0, "id": 153}, {"y": 67, "x": 101, "z": 0, "id": 46}, {"y": 71, "x": 90, "z": 0, "id": 147}, {"y": 69, "x": 93, "z": 0, "id": 154}, {"y": 68, "x": 91, "z": 0, "id": 38}, {"y": 69, "x": 88, "z": 0, "id": 54}, {"y": 67, "x": 88, "z": 0, "id": 49}, {"y": 67, "x": 88, "z": 0, "id": 11}, {"y": 66, "x": 91, "z": 0, "id": 20}, {"y": 64, "x": 87, "z": 0, "id": 48}, {"y": 63, "x": 85, "z": 0, "id": 38}, {"y": 64, "x": 88, "z": 0, "id": 20}, {"y": 62, "x": 88, "z": 0, "id": 11}, {"y": 61, "x": 86, "z": 0, "id": 103}, {"y": 61, "x": 86, "z": 0, "id": 20}, {"y": 60, "x": 85, "z": 0, "id": 38}, {"y": 55, "x": 85, "z": 0, "id": 13}, {"y": 57, "x": 73, "z": 0, "id": 28}, {"y": 59, "x": 74, "z": 0, "id": 27}, {"y": 62, "x": 77, "z": 0, "id": 56}, {"y": 66, "x": 76, "z": 0, "id": 27}, {"y": 69, "x": 77, "z": 0, "id": 25}, {"y": 71, "x": 75, "z": 0, "id": 28}, {"y": 72, "x": 74, "z": 0, "id": 155}, {"y": 74, "x": 72, "z": 0, "id": 27}, {"y": 73, "x": 73, "z": 0, "id": 42}, {"y": 73, "x": 74, "z": 0, "id": 25}, {"y": 70, "x": 77, "z": 0, "id": 27}, {"y": 59, "x": 76, "z": 0, "id": 156}, {"y": 58, "x": 75, "z": 0, "id": 56}, {"y": 79, "x": 70, "z": 0, "id": 4}, {"y": 80, "x": 72, "z": 0, "id": 26}, {"y": 83, "x": 69, "z": 0, "id": 101}, {"y": 84, "x": 68, "z": 0, "id": 56}, {"y": 86, "x": 62, "z": 0, "id": 3}, {"y": 86, "x": 59, "z": 0, "id": 25}, {"y": 87, "x": 57, "z": 0, "id": 26}, {"y": 86, "x": 54, "z": 0, "id": 26}, {"y": 87, "x": 53, "z": 0, "id": 26}, {"y": 82, "x": 72, "z": 0, "id": 25}, {"y": 61, "x": 80, "z": 0, "id": 48}, {"y": 63, "x": 84, "z": 0, "id": 11}, {"y": 65, "x": 84, "z": 0, "id": 41}, {"y": 67, "x": 84, "z": 0, "id": 157}, {"y": 69, "x": 80, "z": 0, "id": 41}, {"y": 66, "x": 79, "z": 0, "id": 39}, {"y": 68, "x": 84, "z": 0, "id": 20}, {"y": 65, "x": 86, "z": 0, "id": 48}, {"y": 67, "x": 84, "z": 0, "id": 11}, {"y": 66, "x": 81, "z": 0, "id": 103}, {"y": 65, "x": 80, "z": 0, "id": 10}, {"y": 63, "x": 83, "z": 0, "id": 11}, {"y": 64, "x": 80, "z": 0, "id": 3}, {"y": 16, "x": 136, "z": 0, "id": 7}, {"y": 19, "x": 135, "z": 0, "id": 158}, {"y": 21, "x": 135, "z": 0, "id": 159}, {"y": 23, "x": 135, "z": 0, "id": 159}, {"y": 24, "x": 134, "z": 0, "id": 16}, {"y": 24, "x": 130, "z": 0, "id": 160}, {"y": 25, "x": 128, "z": 0, "id": 161}, {"y": 26, "x": 126, "z": 0, "id": 162}, {"y": 27, "x": 127, "z": 0, "id": 160}, {"y": 26, "x": 126, "z": 0, "id": 5}, {"y": 21, "x": 130, "z": 0, "id": 163}, {"y": 22, "x": 131, "z": 0, "id": 164}, {"y": 22, "x": 135, "z": 0, "id": 165}, {"y": 19, "x": 135, "z": 0, "id": 5}, {"y": 18, "x": 136, "z": 0, "id": 166}, {"y": 25, "x": 113, "z": 0, "id": 167}, {"y": 29, "x": 119, "z": 0, "id": 166}, {"y": 26, "x": 113, "z": 0, "id": 168}, {"y": 29, "x": 125, "z": 0, "id": 159}, {"y": 30, "x": 126, "z": 0, "id": 7}, {"y": 31, "x": 123, "z": 0, "id": 169}, {"y": 30, "x": 122, "z": 0, "id": 170}, {"y": 13, "x": 98, "z": 0, "id": 171}, {"y": 19, "x": 99, "z": 0, "id": 172}, {"y": 21, "x": 98, "z": 0, "id": 171}, {"y": 25, "x": 97, "z": 0, "id": 173}, {"y": 28, "x": 102, "z": 0, "id": 174}, {"y": 29, "x": 102, "z": 0, "id": 175}, {"y": 30, "x": 102, "z": 0, "id": 12}, {"y": 31, "x": 103, "z": 0, "id": 176}, {"y": 32, "x": 102, "z": 0, "id": 16}, {"y": 29, "x": 102, "z": 0, "id": 177}, {"y": 35, "x": 106, "z": 0, "id": 159}, {"y": 36, "x": 108, "z": 0, "id": 178}, {"y": 35, "x": 109, "z": 0, "id": 167}, {"y": 37, "x": 112, "z": 0, "id": 179}, {"y": 36, "x": 113, "z": 0, "id": 178}, {"y": 38, "x": 115, "z": 0, "id": 174}, {"y": 40, "x": 117, "z": 0, "id": 7}, {"y": 42, "x": 119, "z": 0, "id": 6}, {"y": 43, "x": 118, "z": 0, "id": 112}, {"y": 40, "x": 117, "z": 0, "id": 164}, {"y": 39, "x": 118, "z": 0, "id": 166}, {"y": 40, "x": 117, "z": 0, "id": 6}, {"y": 39, "x": 117, "z": 0, "id": 16}, {"y": 37, "x": 114, "z": 0, "id": 16}, {"y": 35, "x": 110, "z": 0, "id": 6}, {"y": 34, "x": 109, "z": 0, "id": 169}, {"y": 4, "x": 130, "z": 0, "id": 161}, {"y": 6, "x": 126, "z": 0, "id": 112}, {"y": 6, "x": 126, "z": 0, "id": 12}, {"y": 6, "x": 127, "z": 0, "id": 180}, {"y": 9, "x": 121, "z": 0, "id": 16}, {"y": 10, "x": 121, "z": 0, "id": 5}, {"y": 7, "x": 120, "z": 0, "id": 169}, {"y": 5, "x": 122, "z": 0, "id": 178}, {"y": 4, "x": 122, "z": 0, "id": 181}, {"y": 3, "x": 125, "z": 0, "id": 165}, {"y": 5, "x": 119, "z": 0, "id": 7}, {"y": 6, "x": 120, "z": 0, "id": 182}, {"y": 6, "x": 120, "z": 0, "id": 183}, {"y": 7, "x": 122, "z": 0, "id": 170}, {"y": 5, "x": 124, "z": 0, "id": 170}, {"y": 3, "x": 122, "z": 0, "id": 171}, {"y": 3, "x": 132, "z": 0, "id": 7}, {"y": 1, "x": 133, "z": 0, "id": 184}, {"y": 2, "x": 134, "z": 0, "id": 12}, {"y": 2, "x": 136, "z": 0, "id": 185}, {"y": 5, "x": 143, "z": 0, "id": 172}, {"y": 7, "x": 144, "z": 0, "id": 5}, {"y": 8, "x": 145, "z": 0, "id": 12}, {"y": 8, "x": 143, "z": 0, "id": 16}, {"y": 7, "x": 144, "z": 0, "id": 16}, {"y": 3, "x": 143, "z": 0, "id": 165}, {"y": 0, "x": 143, "z": 0, "id": 186}, {"y": 2, "x": 145, "z": 0, "id": 165}, {"y": 2, "x": 140, "z": 0, "id": 180}, {"y": 2, "x": 139, "z": 0, "id": 180}, {"y": 0, "x": 137, "z": 0, "id": 158}, {"y": 0, "x": 134, "z": 0, "id": 166}, {"y": 2, "x": 134, "z": 0, "id": 183}, {"y": 0, "x": 134, "z": 0, "id": 6}, {"y": 1, "x": 133, "z": 0, "id": 171}, {"y": 2, "x": 130, "z": 0, "id": 180}, {"y": 3, "x": 131, "z": 0, "id": 181}, {"y": 1, "x": 131, "z": 0, "id": 187}, {"y": 3, "x": 125, "z": 0, "id": 180}, {"y": 0, "x": 122, "z": 0, "id": 165}, {"y": 0, "x": 123, "z": 0, "id": 188}, {"y": 0, "x": 126, "z": 0, "id": 165}, {"y": 4, "x": 128, "z": 0, "id": 178}, {"y": 8, "x": 123, "z": 0, "id": 178}, {"y": 8, "x": 123, "z": 0, "id": 183}, {"y": 7, "x": 129, "z": 0, "id": 6}, {"y": 8, "x": 131, "z": 0, "id": 5}, {"y": 9, "x": 129, "z": 0, "id": 179}, {"y": 9, "x": 132, "z": 0, "id": 185}, {"y": 10, "x": 123, "z": 0, "id": 178}, {"y": 13, "x": 124, "z": 0, "id": 7}, {"y": 14, "x": 123, "z": 0, "id": 5}, {"y": 15, "x": 124, "z": 0, "id": 16}, {"y": 15, "x": 125, "z": 0, "id": 178}, {"y": 12, "x": 129, "z": 0, "id": 176}, {"y": 12, "x": 132, "z": 0, "id": 174}, {"y": 11, "x": 138, "z": 0, "id": 187}, {"y": 12, "x": 140, "z": 0, "id": 5}, {"y": 13, "x": 142, "z": 0, "id": 112}, {"y": 15, "x": 145, "z": 0, "id": 5}, {"y": 17, "x": 147, "z": 0, "id": 165}, {"y": 21, "x": 144, "z": 0, "id": 180}, {"y": 22, "x": 142, "z": 0, "id": 185}, {"y": 24, "x": 143, "z": 0, "id": 179}, {"y": 25, "x": 144, "z": 0, "id": 165}, {"y": 18, "x": 143, "z": 0, "id": 170}, {"y": 16, "x": 143, "z": 0, "id": 112}, {"y": 15, "x": 143, "z": 0, "id": 171}, {"y": 14, "x": 147, "z": 0, "id": 180}, {"y": 13, "x": 104, "z": 0, "id": 174}, {"y": 14, "x": 102, "z": 0, "id": 179}, {"y": 15, "x": 101, "z": 0, "id": 183}, {"y": 16, "x": 100, "z": 0, "id": 189}, {"y": 17, "x": 100, "z": 0, "id": 181}, {"y": 16, "x": 99, "z": 0, "id": 12}, {"y": 12, "x": 102, "z": 0, "id": 7}, {"y": 20, "x": 97, "z": 0, "id": 112}, {"y": 22, "x": 96, "z": 0, "id": 16}, {"y": 23, "x": 95, "z": 0, "id": 7}, {"y": 26, "x": 91, "z": 0, "id": 6}, {"y": 25, "x": 90, "z": 0, "id": 179}, {"y": 21, "x": 95, "z": 0, "id": 7}, {"y": 18, "x": 107, "z": 0, "id": 183}, {"y": 19, "x": 107, "z": 0, "id": 190}, {"y": 20, "x": 108, "z": 0, "id": 167}, {"y": 21, "x": 109, "z": 0, "id": 165}, {"y": 22, "x": 110, "z": 0, "id": 183}, {"y": 24, "x": 110, "z": 0, "id": 183}, {"y": 25, "x": 111, "z": 0, "id": 176}, {"y": 25, "x": 110, "z": 0, "id": 191}, {"y": 25, "x": 109, "z": 0, "id": 161}, {"y": 25, "x": 108, "z": 0, "id": 169}, {"y": 23, "x": 107, "z": 0, "id": 164}, {"y": 20, "x": 111, "z": 0, "id": 183}, {"y": 22, "x": 110, "z": 0, "id": 177}, {"y": 23, "x": 110, "z": 0, "id": 165}, {"y": 21, "x": 119, "z": 0, "id": 6}, {"y": 23, "x": 121, "z": 0, "id": 165}, {"y": 24, "x": 121, "z": 0, "id": 16}, {"y": 24, "x": 119, "z": 0, "id": 191}, {"y": 24, "x": 122, "z": 0, "id": 169}, {"y": 22, "x": 124, "z": 0, "id": 166}, {"y": 23, "x": 124, "z": 0, "id": 172}, {"y": 21, "x": 122, "z": 0, "id": 178}, {"y": 19, "x": 124, "z": 0, "id": 180}, {"y": 19, "x": 132, "z": 0, "id": 112}, {"y": 23, "x": 127, "z": 0, "id": 176}, {"y": 26, "x": 120, "z": 0, "id": 183}, {"y": 27, "x": 119, "z": 0, "id": 192}, {"y": 17, "x": 132, "z": 0, "id": 16}, {"y": 18, "x": 131, "z": 0, "id": 7}, {"y": 28, "x": 131, "z": 0, "id": 193}, {"y": 31, "x": 132, "z": 0, "id": 6}, {"y": 34, "x": 135, "z": 0, "id": 16}, {"y": 34, "x": 137, "z": 0, "id": 16}, {"y": 35, "x": 138, "z": 0, "id": 13}, {"y": 36, "x": 138, "z": 0, "id": 39}, {"y": 39, "x": 138, "z": 0, "id": 35}, {"y": 40, "x": 137, "z": 0, "id": 194}, {"y": 41, "x": 134, "z": 0, "id": 195}, {"y": 43, "x": 136, "z": 0, "id": 10}, {"y": 43, "x": 132, "z": 0, "id": 40}, {"y": 44, "x": 130, "z": 0, "id": 6}, {"y": 43, "x": 135, "z": 0, "id": 196}, {"y": 43, "x": 133, "z": 0, "id": 39}, {"y": 43, "x": 135, "z": 0, "id": 197}, {"y": 39, "x": 139, "z": 0, "id": 46}, {"y": 45, "x": 132, "z": 0, "id": 46}, {"y": 46, "x": 131, "z": 0, "id": 104}, {"y": 48, "x": 130, "z": 0, "id": 43}, {"y": 48, "x": 127, "z": 0, "id": 46}, {"y": 48, "x": 124, "z": 0, "id": 198}, {"y": 48, "x": 124, "z": 0, "id": 32}, {"y": 47, "x": 128, "z": 0, "id": 25}, {"y": 37, "x": 141, "z": 0, "id": 49}, {"y": 39, "x": 143, "z": 0, "id": 50}, {"y": 39, "x": 145, "z": 0, "id": 199}, {"y": 39, "x": 142, "z": 0, "id": 43}, {"y": 37, "x": 143, "z": 0, "id": 51}, {"y": 4, "x": 87, "z": 0, "id": 177}, {"y": 6, "x": 88, "z": 0, "id": 170}, {"y": 8, "x": 93, "z": 0, "id": 180}, {"y": 10, "x": 95, "z": 0, "id": 165}, {"y": 9, "x": 96, "z": 0, "id": 165}, {"y": 9, "x": 97, "z": 0, "id": 165}, {"y": 10, "x": 101, "z": 0, "id": 200}, {"y": 10, "x": 102, "z": 0, "id": 163}, {"y": 12, "x": 104, "z": 0, "id": 6}, {"y": 12, "x": 107, "z": 0, "id": 178}, {"y": 11, "x": 106, "z": 0, "id": 185}, {"y": 10, "x": 104, "z": 0, "id": 172}, {"y": 10, "x": 102, "z": 0, "id": 6}, {"y": 8, "x": 101, "z": 0, "id": 12}, {"y": 9, "x": 99, "z": 0, "id": 172}, {"y": 10, "x": 90, "z": 0, "id": 170}, {"y": 11, "x": 89, "z": 0, "id": 160}, {"y": 13, "x": 89, "z": 0, "id": 165}, {"y": 14, "x": 88, "z": 0, "id": 172}, {"y": 15, "x": 86, "z": 0, "id": 174}, {"y": 15, "x": 84, "z": 0, "id": 174}, {"y": 14, "x": 83, "z": 0, "id": 161}, {"y": 11, "x": 84, "z": 0, "id": 179}, {"y": 11, "x": 82, "z": 0, "id": 184}, {"y": 13, "x": 83, "z": 0, "id": 161}, {"y": 13, "x": 85, "z": 0, "id": 178}, {"y": 10, "x": 86, "z": 0, "id": 16}, {"y": 10, "x": 88, "z": 0, "id": 165}, {"y": 8, "x": 87, "z": 0, "id": 181}, {"y": 7, "x": 91, "z": 0, "id": 181}, {"y": 8, "x": 90, "z": 0, "id": 165}, {"y": 7, "x": 88, "z": 0, "id": 165}, {"y": 5, "x": 89, "z": 0, "id": 181}, {"y": 6, "x": 90, "z": 0, "id": 180}, {"y": 5, "x": 92, "z": 0, "id": 191}, {"y": 6, "x": 94, "z": 0, "id": 161}, {"y": 7, "x": 95, "z": 0, "id": 177}, {"y": 7, "x": 96, "z": 0, "id": 165}, {"y": 8, "x": 105, "z": 0, "id": 201}, {"y": 9, "x": 107, "z": 0, "id": 191}, {"y": 10, "x": 107, "z": 0, "id": 179}, {"y": 46, "x": 97, "z": 0, "id": 202}, {"y": 47, "x": 98, "z": 0, "id": 203}, {"y": 48, "x": 99, "z": 0, "id": 20}, {"y": 49, "x": 100, "z": 0, "id": 204}, {"y": 50, "x": 101, "z": 0, "id": 205}, {"y": 51, "x": 101, "z": 0, "id": 31}, {"y": 52, "x": 101, "z": 0, "id": 46}, {"y": 54, "x": 100, "z": 0, "id": 110}, {"y": 51, "x": 98, "z": 0, "id": 51}, {"y": 53, "x": 96, "z": 0, "id": 16}, {"y": 51, "x": 97, "z": 0, "id": 112}, {"y": 50, "x": 95, "z": 0, "id": 206}, {"y": 50, "x": 100, "z": 0, "id": 157}, {"y": 49, "x": 101, "z": 0, "id": 80}, {"y": 50, "x": 99, "z": 0, "id": 41}, {"y": 50, "x": 96, "z": 0, "id": 103}, {"y": 49, "x": 100, "z": 0, "id": 38}, {"y": 56, "x": 102, "z": 0, "id": 110}, {"y": 57, "x": 104, "z": 0, "id": 9}, {"y": 59, "x": 103, "z": 0, "id": 207}, {"y": 60, "x": 105, "z": 0, "id": 208}, {"y": 61, "x": 106, "z": 0, "id": 209}, {"y": 62, "x": 107, "z": 0, "id": 119}, {"y": 63, "x": 108, "z": 0, "id": 210}, {"y": 64, "x": 108, "z": 0, "id": 142}, {"y": 66, "x": 108, "z": 0, "id": 211}, {"y": 68, "x": 109, "z": 0, "id": 27}, {"y": 69, "x": 110, "z": 0, "id": 40}, {"y": 70, "x": 110, "z": 0, "id": 139}, {"y": 72, "x": 110, "z": 0, "id": 20}, {"y": 74, "x": 108, "z": 0, "id": 212}, {"y": 72, "x": 108, "z": 0, "id": 213}, {"y": 72, "x": 108, "z": 0, "id": 20}, {"y": 72, "x": 106, "z": 0, "id": 147}, {"y": 72, "x": 101, "z": 0, "id": 48}, {"y": 71, "x": 100, "z": 0, "id": 214}, {"y": 72, "x": 109, "z": 0, "id": 11}, {"y": 68, "x": 107, "z": 0, "id": 8}, {"y": 67, "x": 106, "z": 0, "id": 215}, {"y": 67, "x": 109, "z": 0, "id": 56}, {"y": 64, "x": 107, "z": 0, "id": 216}, {"y": 62, "x": 107, "z": 0, "id": 217}, {"y": 59, "x": 105, "z": 0, "id": 218}, {"y": 57, "x": 102, "z": 0, "id": 219}, {"y": 56, "x": 103, "z": 0, "id": 21}, {"y": 59, "x": 97, "z": 0, "id": 16}, {"y": 62, "x": 102, "z": 0, "id": 16}, {"y": 64, "x": 103, "z": 0, "id": 30}, {"y": 68, "x": 122, "z": 0, "id": 22}, {"y": 69, "x": 121, "z": 0, "id": 47}, {"y": 71, "x": 121, "z": 0, "id": 220}, {"y": 70, "x": 119, "z": 0, "id": 221}, {"y": 70, "x": 116, "z": 0, "id": 84}, {"y": 72, "x": 117, "z": 0, "id": 85}, {"y": 69, "x": 118, "z": 0, "id": 37}, {"y": 70, "x": 118, "z": 0, "id": 55}, {"y": 69, "x": 120, "z": 0, "id": 222}, {"y": 68, "x": 119, "z": 0, "id": 110}, {"y": 73, "x": 114, "z": 0, "id": 104}, {"y": 74, "x": 115, "z": 0, "id": 223}, {"y": 71, "x": 113, "z": 0, "id": 224}, {"y": 71, "x": 114, "z": 0, "id": 225}, {"y": 52, "x": 130, "z": 0, "id": 226}, {"y": 53, "x": 130, "z": 0, "id": 227}, {"y": 54, "x": 130, "z": 0, "id": 228}, {"y": 57, "x": 126, "z": 0, "id": 229}, {"y": 57, "x": 125, "z": 0, "id": 97}, {"y": 61, "x": 126, "z": 0, "id": 230}, {"y": 63, "x": 127, "z": 0, "id": 6}, {"y": 65, "x": 125, "z": 0, "id": 12}, {"y": 58, "x": 124, "z": 0, "id": 231}, {"y": 60, "x": 122, "z": 0, "id": 232}, {"y": 61, "x": 122, "z": 0, "id": 27}, {"y": 62, "x": 123, "z": 0, "id": 35}, {"y": 55, "x": 111, "z": 0, "id": 166}, {"y": 55, "x": 114, "z": 0, "id": 179}, {"y": 54, "x": 115, "z": 0, "id": 163}, {"y": 55, "x": 116, "z": 0, "id": 160}, {"y": 55, "x": 120, "z": 0, "id": 3}, {"y": 54, "x": 122, "z": 0, "id": 152}, {"y": 55, "x": 124, "z": 0, "id": 3}, {"y": 54, "x": 106, "z": 0, "id": 10}, {"y": 55, "x": 106, "z": 0, "id": 106}, {"y": 56, "x": 107, "z": 0, "id": 47}, {"y": 57, "x": 108, "z": 0, "id": 233}, {"y": 57, "x": 108, "z": 0, "id": 220}, {"y": 4, "x": 78, "z": 0, "id": 170}, {"y": 6, "x": 82, "z": 0, "id": 165}, {"y": 7, "x": 83, "z": 0, "id": 184}, {"y": 7, "x": 85, "z": 0, "id": 112}, {"y": 8, "x": 83, "z": 0, "id": 112}, {"y": 8, "x": 78, "z": 0, "id": 172}, {"y": 12, "x": 77, "z": 0, "id": 170}, {"y": 9, "x": 75, "z": 0, "id": 6}, {"y": 6, "x": 77, "z": 0, "id": 183}, {"y": 6, "x": 79, "z": 0, "id": 180}, {"y": 7, "x": 76, "z": 0, "id": 170}, {"y": 4, "x": 76, "z": 0, "id": 172}, {"y": 4, "x": 81, "z": 0, "id": 165}, {"y": 6, "x": 65, "z": 0, "id": 164}, {"y": 9, "x": 68, "z": 0, "id": 16}, {"y": 15, "x": 70, "z": 0, "id": 160}, {"y": 16, "x": 72, "z": 0, "id": 161}, {"y": 17, "x": 75, "z": 0, "id": 160}, {"y": 17, "x": 76, "z": 0, "id": 192}, {"y": 17, "x": 78, "z": 0, "id": 185}, {"y": 15, "x": 79, "z": 0, "id": 233}, {"y": 16, "x": 80, "z": 0, "id": 160}, {"y": 15, "x": 78, "z": 0, "id": 176}, {"y": 15, "x": 79, "z": 0, "id": 7}, {"y": 15, "x": 78, "z": 0, "id": 16}, {"y": 16, "x": 77, "z": 0, "id": 177}, {"y": 17, "x": 72, "z": 0, "id": 170}, {"y": 17, "x": 69, "z": 0, "id": 183}, {"y": 15, "x": 68, "z": 0, "id": 159}, {"y": 14, "x": 67, "z": 0, "id": 234}, {"y": 14, "x": 68, "z": 0, "id": 16}, {"y": 10, "x": 67, "z": 0, "id": 171}, {"y": 9, "x": 69, "z": 0, "id": 185}, {"y": 8, "x": 66, "z": 0, "id": 5}, {"y": 7, "x": 69, "z": 0, "id": 189}, {"y": 8, "x": 70, "z": 0, "id": 6}, {"y": 7, "x": 70, "z": 0, "id": 166}, {"y": 7, "x": 68, "z": 0, "id": 159}, {"y": 6, "x": 67, "z": 0, "id": 112}, {"y": 10, "x": 93, "z": 0, "id": 161}, {"y": 11, "x": 94, "z": 0, "id": 183}, {"y": 19, "x": 80, "z": 0, "id": 6}, {"y": 21, "x": 82, "z": 0, "id": 187}, {"y": 23, "x": 85, "z": 0, "id": 185}, {"y": 27, "x": 86, "z": 0, "id": 160}, {"y": 26, "x": 83, "z": 0, "id": 183}, {"y": 25, "x": 82, "z": 0, "id": 177}, {"y": 24, "x": 85, "z": 0, "id": 180}, {"y": 24, "x": 82, "z": 0, "id": 165}, {"y": 21, "x": 83, "z": 0, "id": 192}, {"y": 21, "x": 80, "z": 0, "id": 158}, {"y": 21, "x": 82, "z": 0, "id": 170}, {"y": 20, "x": 84, "z": 0, "id": 178}, {"y": 18, "x": 82, "z": 0, "id": 187}, {"y": 21, "x": 80, "z": 0, "id": 5}, {"y": 21, "x": 83, "z": 0, "id": 180}, {"y": 22, "x": 92, "z": 0, "id": 179}, {"y": 23, "x": 92, "z": 0, "id": 235}, {"y": 24, "x": 91, "z": 0, "id": 174}, {"y": 23, "x": 94, "z": 0, "id": 179}, {"y": 23, "x": 92, "z": 0, "id": 5}, {"y": 22, "x": 94, "z": 0, "id": 6}, {"y": 20, "x": 92, "z": 0, "id": 235}, {"y": 23, "x": 79, "z": 0, "id": 177}, {"y": 24, "x": 80, "z": 0, "id": 183}, {"y": 25, "x": 80, "z": 0, "id": 183}, {"y": 26, "x": 80, "z": 0, "id": 189}, {"y": 27, "x": 80, "z": 0, "id": 165}, {"y": 25, "x": 78, "z": 0, "id": 181}, {"y": 2, "x": 76, "z": 0, "id": 165}, {"y": 1, "x": 78, "z": 0, "id": 178}, {"y": 2, "x": 79, "z": 0, "id": 177}, {"y": 2, "x": 80, "z": 0, "id": 170}, {"y": 2, "x": 80, "z": 0, "id": 180}, {"y": 3, "x": 75, "z": 0, "id": 170}, {"y": 33, "x": 78, "z": 0, "id": 98}, {"y": 34, "x": 77, "z": 0, "id": 236}, {"y": 34, "x": 78, "z": 0, "id": 25}, {"y": 37, "x": 73, "z": 0, "id": 25}, {"y": 39, "x": 70, "z": 0, "id": 229}, {"y": 36, "x": 70, "z": 0, "id": 27}, {"y": 34, "x": 72, "z": 0, "id": 96}, {"y": 35, "x": 72, "z": 0, "id": 4}, {"y": 36, "x": 75, "z": 0, "id": 25}, {"y": 34, "x": 73, "z": 0, "id": 28}, {"y": 23, "x": 70, "z": 0, "id": 178}, {"y": 24, "x": 68, "z": 0, "id": 166}, {"y": 25, "x": 67, "z": 0, "id": 182}, {"y": 28, "x": 65, "z": 0, "id": 172}, {"y": 27, "x": 62, "z": 0, "id": 168}, {"y": 28, "x": 62, "z": 0, "id": 178}, {"y": 29, "x": 59, "z": 0, "id": 83}, {"y": 31, "x": 60, "z": 0, "id": 53}, {"y": 32, "x": 62, "z": 0, "id": 84}, {"y": 31, "x": 59, "z": 0, "id": 237}, {"y": 31, "x": 58, "z": 0, "id": 81}, {"y": 32, "x": 57, "z": 0, "id": 28}, {"y": 30, "x": 54, "z": 0, "id": 27}, {"y": 28, "x": 53, "z": 0, "id": 83}, {"y": 28, "x": 54, "z": 0, "id": 28}, {"y": 28, "x": 53, "z": 0, "id": 27}, {"y": 29, "x": 60, "z": 0, "id": 179}, {"y": 26, "x": 63, "z": 0, "id": 163}, {"y": 26, "x": 66, "z": 0, "id": 5}, {"y": 25, "x": 66, "z": 0, "id": 6}, {"y": 37, "x": 63, "z": 0, "id": 85}, {"y": 29, "x": 62, "z": 0, "id": 178}, {"y": 30, "x": 65, "z": 0, "id": 3}, {"y": 30, "x": 66, "z": 0, "id": 85}, {"y": 31, "x": 79, "z": 0, "id": 56}, {"y": 32, "x": 80, "z": 0, "id": 42}, {"y": 32, "x": 83, "z": 0, "id": 56}, {"y": 31, "x": 138, "z": 0, "id": 16}, {"y": 32, "x": 139, "z": 0, "id": 16}, {"y": 33, "x": 140, "z": 0, "id": 184}, {"y": 35, "x": 142, "z": 0, "id": 23}, {"y": 34, "x": 140, "z": 0, "id": 104}, {"y": 32, "x": 136, "z": 0, "id": 110}, {"y": 29, "x": 138, "z": 0, "id": 5}, {"y": 33, "x": 138, "z": 0, "id": 110}, {"y": 36, "x": 139, "z": 0, "id": 146}, {"y": 36, "x": 143, "z": 0, "id": 223}, {"y": 32, "x": 129, "z": 0, "id": 171}, {"y": 33, "x": 129, "z": 0, "id": 184}, {"y": 34, "x": 130, "z": 0, "id": 167}, {"y": 35, "x": 131, "z": 0, "id": 190}, {"y": 36, "x": 132, "z": 0, "id": 191}, {"y": 37, "x": 131, "z": 0, "id": 191}, {"y": 38, "x": 131, "z": 0, "id": 164}, {"y": 38, "x": 130, "z": 0, "id": 168}, {"y": 36, "x": 130, "z": 0, "id": 188}, {"y": 32, "x": 128, "z": 0, "id": 163}, {"y": 33, "x": 126, "z": 0, "id": 187}, {"y": 34, "x": 127, "z": 0, "id": 238}, {"y": 34, "x": 128, "z": 0, "id": 238}, {"y": 34, "x": 126, "z": 0, "id": 183}, {"y": 39, "x": 123, "z": 0, "id": 112}, {"y": 41, "x": 123, "z": 0, "id": 173}, {"y": 41, "x": 122, "z": 0, "id": 238}, {"y": 33, "x": 127, "z": 0, "id": 184}, {"y": 33, "x": 125, "z": 0, "id": 7}, {"y": 33, "x": 122, "z": 0, "id": 239}, {"y": 37, "x": 122, "z": 0, "id": 16}, {"y": 36, "x": 122, "z": 0, "id": 166}, {"y": 42, "x": 119, "z": 0, "id": 235}, {"y": 43, "x": 121, "z": 0, "id": 178}, {"y": 44, "x": 121, "z": 0, "id": 12}, {"y": 46, "x": 121, "z": 0, "id": 185}, {"y": 46, "x": 119, "z": 0, "id": 7}, {"y": 47, "x": 116, "z": 0, "id": 239}, {"y": 47, "x": 117, "z": 0, "id": 6}, {"y": 46, "x": 108, "z": 0, "id": 189}, {"y": 48, "x": 110, "z": 0, "id": 159}, {"y": 49, "x": 112, "z": 0, "id": 170}, {"y": 50, "x": 114, "z": 0, "id": 170}, {"y": 47, "x": 108, "z": 0, "id": 175}, {"y": 48, "x": 68, "z": 0, "id": 3}, {"y": 50, "x": 70, "z": 0, "id": 3}, {"y": 51, "x": 66, "z": 0, "id": 240}, {"y": 52, "x": 65, "z": 0, "id": 241}, {"y": 53, "x": 65, "z": 0, "id": 242}, {"y": 46, "x": 64, "z": 0, "id": 28}, {"y": 50, "x": 60, "z": 0, "id": 156}, {"y": 51, "x": 60, "z": 0, "id": 7}, {"y": 51, "x": 72, "z": 0, "id": 31}, {"y": 51, "x": 74, "z": 0, "id": 4}, {"y": 79, "x": 72, "z": 0, "id": 28}, {"y": 80, "x": 73, "z": 0, "id": 53}, {"y": 81, "x": 75, "z": 0, "id": 28}, {"y": 83, "x": 76, "z": 0, "id": 3}, {"y": 84, "x": 73, "z": 0, "id": 85}, {"y": 84, "x": 69, "z": 0, "id": 243}, {"y": 85, "x": 69, "z": 0, "id": 244}, {"y": 85, "x": 71, "z": 0, "id": 55}, {"y": 84, "x": 79, "z": 0, "id": 10}, {"y": 89, "x": 82, "z": 0, "id": 142}, {"y": 90, "x": 82, "z": 0, "id": 6}, {"y": 88, "x": 79, "z": 0, "id": 10}, {"y": 87, "x": 79, "z": 0, "id": 39}, {"y": 86, "x": 79, "z": 0, "id": 103}, {"y": 83, "x": 79, "z": 0, "id": 38}, {"y": 83, "x": 72, "z": 0, "id": 3}, {"y": 81, "x": 77, "z": 0, "id": 21}, {"y": 79, "x": 75, "z": 0, "id": 53}, {"y": 80, "x": 75, "z": 0, "id": 55}, {"y": 75, "x": 74, "z": 0, "id": 88}, {"y": 76, "x": 73, "z": 0, "id": 68}, {"y": 77, "x": 76, "z": 0, "id": 25}, {"y": 76, "x": 78, "z": 0, "id": 20}, {"y": 86, "x": 93, "z": 0, "id": 34}, {"y": 87, "x": 94, "z": 0, "id": 245}, {"y": 89, "x": 93, "z": 0, "id": 50}, {"y": 90, "x": 91, "z": 0, "id": 230}, {"y": 91, "x": 91, "z": 0, "id": 49}, {"y": 93, "x": 88, "z": 0, "id": 246}, {"y": 94, "x": 88, "z": 0, "id": 38}, {"y": 96, "x": 85, "z": 0, "id": 11}, {"y": 95, "x": 81, "z": 0, "id": 21}, {"y": 96, "x": 79, "z": 0, "id": 6}, {"y": 97, "x": 77, "z": 0, "id": 5}, {"y": 96, "x": 76, "z": 0, "id": 110}, {"y": 94, "x": 73, "z": 0, "id": 104}, {"y": 93, "x": 73, "z": 0, "id": 30}, {"y": 91, "x": 72, "z": 0, "id": 31}, {"y": 89, "x": 70, "z": 0, "id": 83}, {"y": 90, "x": 70, "z": 0, "id": 122}, {"y": 91, "x": 71, "z": 0, "id": 4}, {"y": 91, "x": 86, "z": 0, "id": 54}, {"y": 88, "x": 86, "z": 0, "id": 113}, {"y": 87, "x": 89, "z": 0, "id": 35}, {"y": 90, "x": 88, "z": 0, "id": 50}, {"y": 88, "x": 87, "z": 0, "id": 247}, {"y": 99, "x": 77, "z": 0, "id": 7}, {"y": 100, "x": 76, "z": 0, "id": 16}, {"y": 103, "x": 76, "z": 0, "id": 41}, {"y": 104, "x": 73, "z": 0, "id": 21}, {"y": 104, "x": 73, "z": 0, "id": 20}, {"y": 88, "x": 75, "z": 0, "id": 248}, {"y": 89, "x": 76, "z": 0, "id": 40}, {"y": 90, "x": 75, "z": 0, "id": 144}, {"y": 91, "x": 76, "z": 0, "id": 5}, {"y": 93, "x": 78, "z": 0, "id": 16}, {"y": 94, "x": 78, "z": 0, "id": 115}, {"y": 93, "x": 80, "z": 0, "id": 222}, {"y": 93, "x": 81, "z": 0, "id": 21}, {"y": 93, "x": 83, "z": 0, "id": 82}, {"y": 93, "x": 83, "z": 0, "id": 39}, {"y": 96, "x": 92, "z": 0, "id": 249}, {"y": 97, "x": 92, "z": 0, "id": 11}, {"y": 97, "x": 86, "z": 0, "id": 13}, {"y": 99, "x": 78, "z": 0, "id": 16}, {"y": 100, "x": 80, "z": 0, "id": 103}, {"y": 100, "x": 80, "z": 0, "id": 227}, {"y": 75, "x": 89, "z": 0, "id": 22}, {"y": 76, "x": 88, "z": 0, "id": 115}, {"y": 76, "x": 87, "z": 0, "id": 46}, {"y": 77, "x": 80, "z": 0, "id": 13}, {"y": 79, "x": 83, "z": 0, "id": 250}, {"y": 77, "x": 86, "z": 0, "id": 219}, {"y": 1, "x": 13, "z": 0, "id": 178}, {"y": 3, "x": 15, "z": 0, "id": 171}, {"y": 3, "x": 26, "z": 0, "id": 160}, {"y": 3, "x": 28, "z": 0, "id": 182}, {"y": 1, "x": 31, "z": 0, "id": 159}, {"y": 1, "x": 30, "z": 0, "id": 165}, {"y": 3, "x": 31, "z": 0, "id": 160}, {"y": 2, "x": 28, "z": 0, "id": 165}, {"y": 1, "x": 25, "z": 0, "id": 161}, {"y": 1, "x": 19, "z": 0, "id": 172}, {"y": 3, "x": 19, "z": 0, "id": 180}, {"y": 6, "x": 16, "z": 0, "id": 180}, {"y": 4, "x": 12, "z": 0, "id": 251}, {"y": 4, "x": 18, "z": 0, "id": 180}, {"y": 1, "x": 16, "z": 0, "id": 180}, {"y": 5, "x": 16, "z": 0, "id": 165}, {"y": 1, "x": 18, "z": 0, "id": 180}, {"y": 2, "x": 12, "z": 0, "id": 251}, {"y": 6, "x": 26, "z": 0, "id": 180}, {"y": 7, "x": 29, "z": 0, "id": 6}, {"y": 8, "x": 31, "z": 0, "id": 166}, {"y": 9, "x": 32, "z": 0, "id": 201}, {"y": 10, "x": 35, "z": 0, "id": 177}, {"y": 12, "x": 34, "z": 0, "id": 177}, {"y": 14, "x": 35, "z": 0, "id": 183}, {"y": 15, "x": 34, "z": 0, "id": 121}, {"y": 16, "x": 34, "z": 0, "id": 183}, {"y": 21, "x": 34, "z": 0, "id": 165}, {"y": 21, "x": 33, "z": 0, "id": 180}, {"y": 18, "x": 32, "z": 0, "id": 165}, {"y": 17, "x": 32, "z": 0, "id": 180}, {"y": 15, "x": 34, "z": 0, "id": 181}, {"y": 16, "x": 32, "z": 0, "id": 172}, {"y": 13, "x": 32, "z": 0, "id": 181}, {"y": 15, "x": 33, "z": 0, "id": 180}, {"y": 14, "x": 35, "z": 0, "id": 165}, {"y": 10, "x": 33, "z": 0, "id": 174}, {"y": 9, "x": 34, "z": 0, "id": 183}, {"y": 9, "x": 32, "z": 0, "id": 187}, {"y": 9, "x": 30, "z": 0, "id": 187}, {"y": 10, "x": 30, "z": 0, "id": 160}, {"y": 9, "x": 29, "z": 0, "id": 177}, {"y": 8, "x": 33, "z": 0, "id": 187}, {"y": 8, "x": 27, "z": 0, "id": 183}, {"y": 9, "x": 26, "z": 0, "id": 180}, {"y": 8, "x": 23, "z": 0, "id": 165}, {"y": 8, "x": 28, "z": 0, "id": 165}, {"y": 7, "x": 23, "z": 0, "id": 165}, {"y": 13, "x": 48, "z": 0, "id": 159}, {"y": 14, "x": 49, "z": 0, "id": 187}, {"y": 16, "x": 50, "z": 0, "id": 165}, {"y": 17, "x": 49, "z": 0, "id": 239}, {"y": 18, "x": 49, "z": 0, "id": 165}, {"y": 19, "x": 46, "z": 0, "id": 180}, {"y": 18, "x": 47, "z": 0, "id": 165}, {"y": 16, "x": 46, "z": 0, "id": 165}, {"y": 16, "x": 51, "z": 0, "id": 7}, {"y": 14, "x": 51, "z": 0, "id": 160}, {"y": 14, "x": 51, "z": 0, "id": 180}, {"y": 11, "x": 47, "z": 0, "id": 179}, {"y": 12, "x": 47, "z": 0, "id": 185}, {"y": 14, "x": 46, "z": 0, "id": 171}, {"y": 11, "x": 41, "z": 0, "id": 179}, {"y": 13, "x": 40, "z": 0, "id": 174}, {"y": 12, "x": 40, "z": 0, "id": 7}, {"y": 2, "x": 33, "z": 0, "id": 6}, {"y": 4, "x": 33, "z": 0, "id": 161}, {"y": 3, "x": 34, "z": 0, "id": 166}, {"y": 2, "x": 35, "z": 0, "id": 5}, {"y": 3, "x": 36, "z": 0, "id": 174}, {"y": 3, "x": 37, "z": 0, "id": 166}, {"y": 2, "x": 39, "z": 0, "id": 179}, {"y": 3, "x": 44, "z": 0, "id": 200}, {"y": 2, "x": 46, "z": 0, "id": 177}, {"y": 1, "x": 44, "z": 0, "id": 160}, {"y": 0, "x": 42, "z": 0, "id": 158}, {"y": 1, "x": 46, "z": 0, "id": 171}, {"y": 1, "x": 43, "z": 0, "id": 182}, {"y": 1, "x": 41, "z": 0, "id": 166}, {"y": 0, "x": 36, "z": 0, "id": 238}, {"y": 2, "x": 37, "z": 0, "id": 165}, {"y": 1, "x": 47, "z": 0, "id": 187}, {"y": 2, "x": 48, "z": 0, "id": 183}, {"y": 3, "x": 48, "z": 0, "id": 181}, {"y": 2, "x": 50, "z": 0, "id": 187}, {"y": 1, "x": 50, "z": 0, "id": 165}, {"y": 5, "x": 40, "z": 0, "id": 201}, {"y": 6, "x": 40, "z": 0, "id": 164}, {"y": 6, "x": 39, "z": 0, "id": 167}, {"y": 6, "x": 40, "z": 0, "id": 182}, {"y": 5, "x": 36, "z": 0, "id": 162}, {"y": 6, "x": 37, "z": 0, "id": 252}, {"y": 8, "x": 37, "z": 0, "id": 188}, {"y": 5, "x": 38, "z": 0, "id": 252}, {"y": 14, "x": 38, "z": 0, "id": 168}, {"y": 17, "x": 39, "z": 0, "id": 173}, {"y": 18, "x": 39, "z": 0, "id": 186}, {"y": 19, "x": 39, "z": 0, "id": 253}, {"y": 21, "x": 40, "z": 0, "id": 178}, {"y": 22, "x": 41, "z": 0, "id": 176}, {"y": 24, "x": 42, "z": 0, "id": 182}, {"y": 24, "x": 39, "z": 0, "id": 172}, {"y": 24, "x": 41, "z": 0, "id": 159}, {"y": 23, "x": 38, "z": 0, "id": 169}, {"y": 21, "x": 38, "z": 0, "id": 163}, {"y": 19, "x": 38, "z": 0, "id": 175}, {"y": 5, "x": 56, "z": 0, "id": 191}, {"y": 5, "x": 56, "z": 0, "id": 159}, {"y": 6, "x": 55, "z": 0, "id": 169}, {"y": 6, "x": 51, "z": 0, "id": 189}, {"y": 6, "x": 52, "z": 0, "id": 182}, {"y": 4, "x": 46, "z": 0, "id": 253}, {"y": 5, "x": 48, "z": 0, "id": 5}, {"y": 4, "x": 48, "z": 0, "id": 191}, {"y": 6, "x": 59, "z": 0, "id": 12}, {"y": 10, "x": 55, "z": 0, "id": 239}, {"y": 11, "x": 55, "z": 0, "id": 173}, {"y": 10, "x": 54, "z": 0, "id": 5}, {"y": 9, "x": 51, "z": 0, "id": 235}, {"y": 9, "x": 50, "z": 0, "id": 254}, {"y": 9, "x": 52, "z": 0, "id": 159}, {"y": 9, "x": 52, "z": 0, "id": 181}, {"y": 40, "x": 87, "z": 0, "id": 8}, {"y": 43, "x": 91, "z": 0, "id": 255}, {"y": 44, "x": 88, "z": 0, "id": 256}, {"y": 45, "x": 86, "z": 0, "id": 37}, {"y": 46, "x": 86, "z": 0, "id": 132}, {"y": 48, "x": 86, "z": 0, "id": 42}, {"y": 49, "x": 85, "z": 0, "id": 257}, {"y": 49, "x": 86, "z": 0, "id": 28}, {"y": 48, "x": 84, "z": 0, "id": 73}, {"y": 47, "x": 85, "z": 0, "id": 124}, {"y": 46, "x": 85, "z": 0, "id": 258}, {"y": 44, "x": 82, "z": 0, "id": 84}, {"y": 42, "x": 80, "z": 0, "id": 259}, {"y": 41, "x": 78, "z": 0, "id": 260}, {"y": 45, "x": 85, "z": 0, "id": 236}, {"y": 45, "x": 84, "z": 0, "id": 55}, {"y": 44, "x": 86, "z": 0, "id": 42}, {"y": 44, "x": 87, "z": 0, "id": 55}, {"y": 44, "x": 88, "z": 0, "id": 156}, {"y": 41, "x": 92, "z": 0, "id": 261}, {"y": 41, "x": 93, "z": 0, "id": 109}, {"y": 42, "x": 91, "z": 0, "id": 236}, {"y": 40, "x": 89, "z": 0, "id": 34}, {"y": 41, "x": 90, "z": 0, "id": 92}, {"y": 42, "x": 89, "z": 0, "id": 262}, {"y": 42, "x": 87, "z": 0, "id": 36}, {"y": 42, "x": 86, "z": 0, "id": 263}, {"y": 43, "x": 84, "z": 0, "id": 264}, {"y": 43, "x": 83, "z": 0, "id": 83}, {"y": 42, "x": 81, "z": 0, "id": 265}, {"y": 42, "x": 85, "z": 0, "id": 88}, {"y": 42, "x": 89, "z": 0, "id": 4}, {"y": 42, "x": 78, "z": 0, "id": 266}, {"y": 43, "x": 79, "z": 0, "id": 123}, {"y": 45, "x": 83, "z": 0, "id": 91}, {"y": 45, "x": 81, "z": 0, "id": 4}, {"y": 70, "x": 42, "z": 0, "id": 21}, {"y": 71, "x": 43, "z": 0, "id": 50}, {"y": 72, "x": 43, "z": 0, "id": 29}, {"y": 73, "x": 42, "z": 0, "id": 109}, {"y": 75, "x": 45, "z": 0, "id": 25}, {"y": 75, "x": 45, "z": 0, "id": 229}, {"y": 64, "x": 53, "z": 0, "id": 48}, {"y": 65, "x": 56, "z": 0, "id": 20}, {"y": 62, "x": 54, "z": 0, "id": 10}, {"y": 62, "x": 53, "z": 0, "id": 48}, {"y": 87, "x": 58, "z": 0, "id": 256}, {"y": 88, "x": 60, "z": 0, "id": 4}, {"y": 90, "x": 63, "z": 0, "id": 84}, {"y": 91, "x": 64, "z": 0, "id": 84}, {"y": 93, "x": 65, "z": 0, "id": 56}, {"y": 90, "x": 61, "z": 0, "id": 267}, {"y": 91, "x": 65, "z": 0, "id": 56}, {"y": 87, "x": 63, "z": 0, "id": 118}, {"y": 89, "x": 63, "z": 0, "id": 130}, {"y": 88, "x": 61, "z": 0, "id": 84}, {"y": 87, "x": 61, "z": 0, "id": 268}, {"y": 89, "x": 56, "z": 0, "id": 264}, {"y": 90, "x": 57, "z": 0, "id": 219}, {"y": 91, "x": 59, "z": 0, "id": 236}, {"y": 92, "x": 58, "z": 0, "id": 36}, {"y": 93, "x": 58, "z": 0, "id": 215}, {"y": 94, "x": 59, "z": 0, "id": 215}, {"y": 94, "x": 59, "z": 0, "id": 236}, {"y": 91, "x": 61, "z": 0, "id": 268}, {"y": 91, "x": 57, "z": 0, "id": 68}, {"y": 91, "x": 56, "z": 0, "id": 96}, {"y": 91, "x": 57, "z": 0, "id": 42}, {"y": 89, "x": 57, "z": 0, "id": 80}, {"y": 91, "x": 66, "z": 0, "id": 243}, {"y": 94, "x": 68, "z": 0, "id": 260}, {"y": 96, "x": 69, "z": 0, "id": 85}, {"y": 97, "x": 70, "z": 0, "id": 269}, {"y": 98, "x": 69, "z": 0, "id": 31}, {"y": 98, "x": 67, "z": 0, "id": 91}, {"y": 98, "x": 66, "z": 0, "id": 32}, {"y": 98, "x": 66, "z": 0, "id": 4}, {"y": 97, "x": 69, "z": 0, "id": 90}, {"y": 96, "x": 69, "z": 0, "id": 232}, {"y": 96, "x": 66, "z": 0, "id": 80}, {"y": 92, "x": 66, "z": 0, "id": 270}, {"y": 90, "x": 66, "z": 0, "id": 271}, {"y": 92, "x": 57, "z": 0, "id": 198}, {"y": 92, "x": 60, "z": 0, "id": 272}, {"y": 95, "x": 66, "z": 0, "id": 68}, {"y": 88, "x": 51, "z": 0, "id": 273}, {"y": 89, "x": 52, "z": 0, "id": 206}, {"y": 90, "x": 51, "z": 0, "id": 203}, {"y": 88, "x": 52, "z": 0, "id": 246}, {"y": 92, "x": 46, "z": 0, "id": 86}, {"y": 92, "x": 47, "z": 0, "id": 274}, {"y": 92, "x": 48, "z": 0, "id": 275}, {"y": 91, "x": 49, "z": 0, "id": 276}, {"y": 98, "x": 49, "z": 0, "id": 277}, {"y": 100, "x": 50, "z": 0, "id": 272}, {"y": 100, "x": 51, "z": 0, "id": 138}, {"y": 101, "x": 53, "z": 0, "id": 206}, {"y": 99, "x": 43, "z": 0, "id": 278}, {"y": 100, "x": 45, "z": 0, "id": 28}, {"y": 102, "x": 45, "z": 0, "id": 28}, {"y": 102, "x": 49, "z": 0, "id": 27}, {"y": 106, "x": 56, "z": 0, "id": 27}, {"y": 107, "x": 56, "z": 0, "id": 72}, {"y": 108, "x": 55, "z": 0, "id": 279}, {"y": 107, "x": 62, "z": 0, "id": 27}, {"y": 98, "x": 36, "z": 0, "id": 279}, {"y": 100, "x": 39, "z": 0, "id": 280}, {"y": 98, "x": 39, "z": 0, "id": 281}, {"y": 99, "x": 37, "z": 0, "id": 282}, {"y": 101, "x": 36, "z": 0, "id": 283}, {"y": 120, "x": 52, "z": 0, "id": 62}, {"y": 119, "x": 53, "z": 0, "id": 72}, {"y": 121, "x": 66, "z": 0, "id": 284}, {"y": 120, "x": 68, "z": 0, "id": 285}, {"y": 119, "x": 69, "z": 0, "id": 64}, {"y": 118, "x": 72, "z": 0, "id": 66}, {"y": 116, "x": 53, "z": 0, "id": 286}, {"y": 117, "x": 52, "z": 0, "id": 286}, {"y": 119, "x": 58, "z": 0, "id": 66}, {"y": 119, "x": 58, "z": 0, "id": 284}, {"y": 50, "x": 61, "z": 0, "id": 224}, {"y": 51, "x": 62, "z": 0, "id": 78}, {"y": 53, "x": 63, "z": 0, "id": 33}, {"y": 54, "x": 63, "z": 0, "id": 260}, {"y": 55, "x": 63, "z": 0, "id": 287}, {"y": 56, "x": 64, "z": 0, "id": 80}, {"y": 54, "x": 71, "z": 0, "id": 31}, {"y": 55, "x": 72, "z": 0, "id": 81}, {"y": 55, "x": 71, "z": 0, "id": 288}, {"y": 55, "x": 70, "z": 0, "id": 236}, {"y": 54, "x": 77, "z": 0, "id": 71}, {"y": 55, "x": 78, "z": 0, "id": 118}, {"y": 56, "x": 78, "z": 0, "id": 114}, {"y": 57, "x": 76, "z": 0, "id": 236}, {"y": 56, "x": 77, "z": 0, "id": 289}, {"y": 56, "x": 77, "z": 0, "id": 105}, {"y": 56, "x": 79, "z": 0, "id": 28}, {"y": 54, "x": 80, "z": 0, "id": 290}, {"y": 54, "x": 81, "z": 0, "id": 255}, {"y": 54, "x": 78, "z": 0, "id": 291}, {"y": 63, "x": 69, "z": 0, "id": 292}, {"y": 64, "x": 69, "z": 0, "id": 270}, {"y": 65, "x": 68, "z": 0, "id": 224}, {"y": 66, "x": 67, "z": 0, "id": 219}, {"y": 67, "x": 67, "z": 0, "id": 219}, {"y": 68, "x": 67, "z": 0, "id": 232}, {"y": 69, "x": 65, "z": 0, "id": 293}, {"y": 68, "x": 66, "z": 0, "id": 261}, {"y": 64, "x": 69, "z": 0, "id": 92}, {"y": 70, "x": 59, "z": 0, "id": 153}, {"y": 72, "x": 59, "z": 0, "id": 6}, {"y": 73, "x": 58, "z": 0, "id": 10}, {"y": 72, "x": 55, "z": 0, "id": 219}, {"y": 72, "x": 66, "z": 0, "id": 237}, {"y": 74, "x": 66, "z": 0, "id": 91}, {"y": 75, "x": 63, "z": 0, "id": 91}, {"y": 76, "x": 61, "z": 0, "id": 232}, {"y": 78, "x": 61, "z": 0, "id": 42}, {"y": 78, "x": 58, "z": 0, "id": 118}, {"y": 78, "x": 57, "z": 0, "id": 92}, {"y": 78, "x": 58, "z": 0, "id": 5}, {"y": 78, "x": 58, "z": 0, "id": 42}, {"y": 78, "x": 61, "z": 0, "id": 55}, {"y": 73, "x": 64, "z": 0, "id": 93}, {"y": 71, "x": 55, "z": 0, "id": 196}, {"y": 71, "x": 56, "z": 0, "id": 215}, {"y": 71, "x": 55, "z": 0, "id": 21}, {"y": 69, "x": 60, "z": 0, "id": 294}, {"y": 70, "x": 68, "z": 0, "id": 295}, {"y": 71, "x": 68, "z": 0, "id": 289}, {"y": 71, "x": 67, "z": 0, "id": 33}, {"y": 60, "x": 62, "z": 0, "id": 290}, {"y": 62, "x": 63, "z": 0, "id": 296}, {"y": 63, "x": 65, "z": 0, "id": 236}, {"y": 63, "x": 63, "z": 0, "id": 261}, {"y": 62, "x": 64, "z": 0, "id": 231}, {"y": 65, "x": 63, "z": 0, "id": 84}, {"y": 64, "x": 63, "z": 0, "id": 215}, {"y": 47, "x": 63, "z": 0, "id": 267}, {"y": 49, "x": 65, "z": 0, "id": 215}, {"y": 56, "x": 61, "z": 0, "id": 156}, {"y": 57, "x": 59, "z": 0, "id": 297}, {"y": 56, "x": 61, "z": 0, "id": 298}, {"y": 16, "x": 109, "z": 0, "id": 192}, {"y": 17, "x": 109, "z": 0, "id": 253}, {"y": 18, "x": 109, "z": 0, "id": 254}, {"y": 15, "x": 108, "z": 0, "id": 162}, {"y": 18, "x": 103, "z": 0, "id": 168}, {"y": 19, "x": 103, "z": 0, "id": 121}, {"y": 20, "x": 103, "z": 0, "id": 254}, {"y": 22, "x": 105, "z": 0, "id": 12}, {"y": 23, "x": 104, "z": 0, "id": 233}, {"y": 24, "x": 104, "z": 0, "id": 164}, {"y": 25, "x": 104, "z": 0, "id": 299}, {"y": 26, "x": 105, "z": 0, "id": 163}, {"y": 25, "x": 103, "z": 0, "id": 253}, {"y": 24, "x": 103, "z": 0, "id": 192}, {"y": 24, "x": 102, "z": 0, "id": 190}, {"y": 23, "x": 103, "z": 0, "id": 162}, {"y": 21, "x": 102, "z": 0, "id": 235}, {"y": 20, "x": 103, "z": 0, "id": 190}, {"y": 20, "x": 103, "z": 0, "id": 181}, {"y": 20, "x": 113, "z": 0, "id": 235}, {"y": 22, "x": 115, "z": 0, "id": 173}, {"y": 22, "x": 115, "z": 0, "id": 161}, {"y": 22, "x": 112, "z": 0, "id": 252}, {"y": 21, "x": 113, "z": 0, "id": 190}, {"y": 21, "x": 111, "z": 0, "id": 188}, {"y": 10, "x": 114, "z": 0, "id": 232}, {"y": 10, "x": 111, "z": 0, "id": 238}, {"y": 12, "x": 114, "z": 0, "id": 5}, {"y": 13, "x": 115, "z": 0, "id": 5}, {"y": 13, "x": 115, "z": 0, "id": 12}, {"y": 13, "x": 114, "z": 0, "id": 187}, {"y": 11, "x": 114, "z": 0, "id": 176}, {"y": 11, "x": 111, "z": 0, "id": 238}, {"y": 10, "x": 112, "z": 0, "id": 184}, {"y": 27, "x": 109, "z": 0, "id": 239}, {"y": 28, "x": 110, "z": 0, "id": 233}, {"y": 29, "x": 110, "z": 0, "id": 191}, {"y": 30, "x": 110, "z": 0, "id": 172}, {"y": 31, "x": 108, "z": 0, "id": 174}, {"y": 30, "x": 108, "z": 0, "id": 177}, {"y": 28, "x": 110, "z": 0, "id": 12}, {"y": 28, "x": 108, "z": 0, "id": 234}, {"y": 29, "x": 106, "z": 0, "id": 161}, {"y": 21, "x": 98, "z": 0, "id": 185}, {"y": 22, "x": 98, "z": 0, "id": 5}, {"y": 23, "x": 99, "z": 0, "id": 178}, {"y": 24, "x": 99, "z": 0, "id": 179}, {"y": 25, "x": 99, "z": 0, "id": 176}, {"y": 25, "x": 99, "z": 0, "id": 161}, {"y": 21, "x": 99, "z": 0, "id": 188}, {"y": 21, "x": 99, "z": 0, "id": 169}, {"y": 23, "x": 96, "z": 0, "id": 235}, {"y": 28, "x": 94, "z": 0, "id": 235}, {"y": 30, "x": 97, "z": 0, "id": 171}, {"y": 31, "x": 98, "z": 0, "id": 186}, {"y": 32, "x": 98, "z": 0, "id": 253}, {"y": 33, "x": 99, "z": 0, "id": 234}, {"y": 34, "x": 100, "z": 0, "id": 299}, {"y": 35, "x": 101, "z": 0, "id": 191}, {"y": 36, "x": 101, "z": 0, "id": 162}, {"y": 34, "x": 100, "z": 0, "id": 5}, {"y": 31, "x": 98, "z": 0, "id": 163}, {"y": 26, "x": 116, "z": 0, "id": 178}, {"y": 27, "x": 116, "z": 0, "id": 179}, {"y": 28, "x": 117, "z": 0, "id": 178}, {"y": 29, "x": 118, "z": 0, "id": 191}, {"y": 31, "x": 120, "z": 0, "id": 177}, {"y": 32, "x": 117, "z": 0, "id": 176}, {"y": 33, "x": 116, "z": 0, "id": 168}, {"y": 32, "x": 116, "z": 0, "id": 234}, {"y": 31, "x": 117, "z": 0, "id": 7}, {"y": 31, "x": 118, "z": 0, "id": 181}, {"y": 31, "x": 119, "z": 0, "id": 7}, {"y": 29, "x": 117, "z": 0, "id": 174}, {"y": 29, "x": 115, "z": 0, "id": 5}, {"y": 28, "x": 115, "z": 0, "id": 161}, {"y": 28, "x": 114, "z": 0, "id": 183}, {"y": 33, "x": 113, "z": 0, "id": 167}, {"y": 34, "x": 113, "z": 0, "id": 235}, {"y": 34, "x": 111, "z": 0, "id": 235}, {"y": 35, "x": 119, "z": 0, "id": 235}, {"y": 16, "x": 16, "z": 0, "id": 175}, {"y": 15, "x": 16, "z": 0, "id": 190}, {"y": 15, "x": 16, "z": 0, "id": 171}, {"y": 14, "x": 15, "z": 0, "id": 181}, {"y": 21, "x": 19, "z": 0, "id": 193}, {"y": 21, "x": 9, "z": 0, "id": 167}, {"y": 22, "x": 11, "z": 0, "id": 234}, {"y": 24, "x": 12, "z": 0, "id": 166}, {"y": 25, "x": 13, "z": 0, "id": 168}, {"y": 26, "x": 13, "z": 0, "id": 171}, {"y": 22, "x": 9, "z": 0, "id": 189}, {"y": 21, "x": 10, "z": 0, "id": 233}, {"y": 29, "x": 13, "z": 0, "id": 83}, {"y": 30, "x": 14, "z": 0, "id": 300}, {"y": 31, "x": 14, "z": 0, "id": 301}, {"y": 32, "x": 10, "z": 0, "id": 224}, {"y": 33, "x": 11, "z": 0, "id": 90}, {"y": 34, "x": 10, "z": 0, "id": 302}, {"y": 35, "x": 10, "z": 0, "id": 277}, {"y": 36, "x": 10, "z": 0, "id": 205}, {"y": 37, "x": 9, "z": 0, "id": 287}, {"y": 38, "x": 9, "z": 0, "id": 67}, {"y": 39, "x": 8, "z": 0, "id": 263}, {"y": 35, "x": 9, "z": 0, "id": 303}, {"y": 32, "x": 11, "z": 0, "id": 261}, {"y": 31, "x": 29, "z": 0, "id": 94}, {"y": 32, "x": 30, "z": 0, "id": 304}, {"y": 33, "x": 31, "z": 0, "id": 236}, {"y": 34, "x": 31, "z": 0, "id": 272}, {"y": 31, "x": 30, "z": 0, "id": 305}, {"y": 38, "x": 24, "z": 0, "id": 289}, {"y": 18, "x": 15, "z": 0, "id": 164}, {"y": 19, "x": 15, "z": 0, "id": 299}, {"y": 20, "x": 16, "z": 0, "id": 167}, {"y": 20, "x": 16, "z": 0, "id": 306}, {"y": 27, "x": 31, "z": 0, "id": 8}, {"y": 28, "x": 32, "z": 0, "id": 9}, {"y": 29, "x": 33, "z": 0, "id": 307}, {"y": 30, "x": 34, "z": 0, "id": 293}, {"y": 31, "x": 35, "z": 0, "id": 53}, {"y": 32, "x": 35, "z": 0, "id": 308}, {"y": 33, "x": 35, "z": 0, "id": 309}, {"y": 31, "x": 36, "z": 0, "id": 310}, {"y": 31, "x": 36, "z": 0, "id": 125}, {"y": 31, "x": 34, "z": 0, "id": 255}, {"y": 29, "x": 35, "z": 0, "id": 311}, {"y": 27, "x": 30, "z": 0, "id": 114}, {"y": 28, "x": 33, "z": 0, "id": 293}, {"y": 29, "x": 32, "z": 0, "id": 276}, {"y": 29, "x": 36, "z": 0, "id": 215}, {"y": 32, "x": 34, "z": 0, "id": 298}, {"y": 44, "x": 24, "z": 0, "id": 312}, {"y": 45, "x": 25, "z": 0, "id": 88}, {"y": 46, "x": 26, "z": 0, "id": 198}, {"y": 47, "x": 26, "z": 0, "id": 105}, {"y": 49, "x": 28, "z": 0, "id": 293}, {"y": 48, "x": 28, "z": 0, "id": 313}, {"y": 44, "x": 25, "z": 0, "id": 243}, {"y": 46, "x": 13, "z": 0, "id": 241}, {"y": 49, "x": 13, "z": 0, "id": 145}, {"y": 50, "x": 12, "z": 0, "id": 294}, {"y": 49, "x": 12, "z": 0, "id": 78}, {"y": 47, "x": 14, "z": 0, "id": 115}, {"y": 46, "x": 25, "z": 0, "id": 307}, {"y": 48, "x": 11, "z": 0, "id": 267}, {"y": 47, "x": 11, "z": 0, "id": 259}, {"y": 50, "x": 35, "z": 0, "id": 35}, {"y": 51, "x": 33, "z": 0, "id": 314}, {"y": 52, "x": 31, "z": 0, "id": 8}, {"y": 52, "x": 31, "z": 0, "id": 93}, {"y": 52, "x": 29, "z": 0, "id": 83}, {"y": 52, "x": 27, "z": 0, "id": 315}, {"y": 53, "x": 27, "z": 0, "id": 42}, {"y": 52, "x": 24, "z": 0, "id": 271}, {"y": 52, "x": 23, "z": 0, "id": 271}, {"y": 51, "x": 24, "z": 0, "id": 260}, {"y": 51, "x": 23, "z": 0, "id": 109}, {"y": 49, "x": 36, "z": 0, "id": 80}, {"y": 54, "x": 32, "z": 0, "id": 261}, {"y": 55, "x": 32, "z": 0, "id": 224}, {"y": 56, "x": 32, "z": 0, "id": 107}, {"y": 57, "x": 31, "z": 0, "id": 27}, {"y": 58, "x": 30, "z": 0, "id": 313}, {"y": 57, "x": 29, "z": 0, "id": 95}, {"y": 57, "x": 32, "z": 0, "id": 25}, {"y": 60, "x": 17, "z": 0, "id": 226}, {"y": 61, "x": 18, "z": 0, "id": 68}, {"y": 62, "x": 19, "z": 0, "id": 36}, {"y": 66, "x": 22, "z": 0, "id": 23}, {"y": 67, "x": 21, "z": 0, "id": 264}, {"y": 65, "x": 23, "z": 0, "id": 36}, {"y": 65, "x": 23, "z": 0, "id": 91}, {"y": 66, "x": 21, "z": 0, "id": 12}, {"y": 63, "x": 20, "z": 0, "id": 31}, {"y": 60, "x": 18, "z": 0, "id": 36}, {"y": 74, "x": 29, "z": 0, "id": 304}, {"y": 75, "x": 29, "z": 0, "id": 316}, {"y": 75, "x": 29, "z": 0, "id": 37}, {"y": 76, "x": 25, "z": 0, "id": 317}, {"y": 75, "x": 28, "z": 0, "id": 35}, {"y": 75, "x": 25, "z": 0, "id": 198}, {"y": 66, "x": 22, "z": 0, "id": 263}, {"y": 56, "x": 27, "z": 0, "id": 240}, {"y": 78, "x": 107, "z": 0, "id": 27}, {"y": 77, "x": 109, "z": 0, "id": 53}, {"y": 84, "x": 107, "z": 0, "id": 131}, {"y": 85, "x": 106, "z": 0, "id": 312}, {"y": 86, "x": 107, "z": 0, "id": 240}, {"y": 87, "x": 109, "z": 0, "id": 56}, {"y": 88, "x": 110, "z": 0, "id": 10}, {"y": 90, "x": 111, "z": 0, "id": 38}, {"y": 89, "x": 108, "z": 0, "id": 20}, {"y": 88, "x": 104, "z": 0, "id": 3}, {"y": 87, "x": 101, "z": 0, "id": 85}, {"y": 85, "x": 101, "z": 0, "id": 267}, {"y": 86, "x": 102, "z": 0, "id": 4}, {"y": 89, "x": 107, "z": 0, "id": 41}, {"y": 85, "x": 107, "z": 0, "id": 4}, {"y": 85, "x": 110, "z": 0, "id": 3}, {"y": 83, "x": 111, "z": 0, "id": 48}, {"y": 82, "x": 109, "z": 0, "id": 98}, {"y": 81, "x": 113, "z": 0, "id": 84}, {"y": 79, "x": 110, "z": 0, "id": 84}, {"y": 78, "x": 103, "z": 0, "id": 40}, {"y": 80, "x": 102, "z": 0, "id": 212}, {"y": 79, "x": 102, "z": 0, "id": 103}, {"y": 81, "x": 98, "z": 0, "id": 13}, {"y": 82, "x": 98, "z": 0, "id": 21}, {"y": 90, "x": 104, "z": 0, "id": 20}, {"y": 91, "x": 106, "z": 0, "id": 24}, {"y": 93, "x": 107, "z": 0, "id": 197}, {"y": 95, "x": 107, "z": 0, "id": 43}, {"y": 95, "x": 108, "z": 0, "id": 139}, {"y": 92, "x": 108, "z": 0, "id": 38}, {"y": 90, "x": 102, "z": 0, "id": 48}, {"y": 77, "x": 111, "z": 0, "id": 91}, {"y": 79, "x": 111, "z": 0, "id": 28}, {"y": 77, "x": 111, "z": 0, "id": 318}, {"y": 79, "x": 113, "z": 0, "id": 99}, {"y": 80, "x": 114, "z": 0, "id": 83}, {"y": 83, "x": 114, "z": 0, "id": 319}, {"y": 86, "x": 112, "z": 0, "id": 3}, {"y": 79, "x": 118, "z": 0, "id": 50}, {"y": 81, "x": 117, "z": 0, "id": 11}, {"y": 80, "x": 114, "z": 0, "id": 27}, {"y": 98, "x": 112, "z": 0, "id": 150}, {"y": 100, "x": 114, "z": 0, "id": 320}, {"y": 101, "x": 115, "z": 0, "id": 321}, {"y": 101, "x": 114, "z": 0, "id": 322}, {"y": 95, "x": 109, "z": 0, "id": 48}, {"y": 96, "x": 111, "z": 0, "id": 20}, {"y": 100, "x": 112, "z": 0, "id": 106}, {"y": 88, "x": 91, "z": 0, "id": 262}, {"y": 88, "x": 94, "z": 0, "id": 323}, {"y": 88, "x": 99, "z": 0, "id": 34}, {"y": 90, "x": 92, "z": 0, "id": 274}, {"y": 91, "x": 95, "z": 0, "id": 80}, {"y": 92, "x": 95, "z": 0, "id": 240}, {"y": 95, "x": 95, "z": 0, "id": 43}, {"y": 95, "x": 96, "z": 0, "id": 324}, {"y": 95, "x": 97, "z": 0, "id": 9}, {"y": 93, "x": 97, "z": 0, "id": 203}, {"y": 95, "x": 95, "z": 0, "id": 325}, {"y": 95, "x": 97, "z": 0, "id": 37}, {"y": 94, "x": 89, "z": 0, "id": 295}, {"y": 95, "x": 99, "z": 0, "id": 326}, {"y": 94, "x": 94, "z": 0, "id": 23}, {"y": 91, "x": 110, "z": 0, "id": 13}, {"y": 92, "x": 102, "z": 0, "id": 327}, {"y": 99, "x": 111, "z": 0, "id": 106}, {"y": 44, "x": 39, "z": 0, "id": 328}, {"y": 46, "x": 40, "z": 0, "id": 32}, {"y": 47, "x": 41, "z": 0, "id": 32}, {"y": 49, "x": 40, "z": 0, "id": 243}, {"y": 50, "x": 40, "z": 0, "id": 34}, {"y": 51, "x": 40, "z": 0, "id": 4}, {"y": 52, "x": 41, "z": 0, "id": 73}, {"y": 53, "x": 39, "z": 0, "id": 267}, {"y": 54, "x": 39, "z": 0, "id": 290}, {"y": 54, "x": 38, "z": 0, "id": 118}, {"y": 55, "x": 36, "z": 0, "id": 113}, {"y": 56, "x": 36, "z": 0, "id": 117}, {"y": 56, "x": 35, "z": 0, "id": 114}, {"y": 55, "x": 35, "z": 0, "id": 68}, {"y": 53, "x": 39, "z": 0, "id": 78}, {"y": 52, "x": 40, "z": 0, "id": 258}, {"y": 52, "x": 40, "z": 0, "id": 42}, {"y": 48, "x": 40, "z": 0, "id": 85}, {"y": 48, "x": 39, "z": 0, "id": 4}, {"y": 47, "x": 35, "z": 0, "id": 289}, {"y": 47, "x": 37, "z": 0, "id": 84}, {"y": 45, "x": 39, "z": 0, "id": 93}, {"y": 44, "x": 40, "z": 0, "id": 289}, {"y": 84, "x": 42, "z": 0, "id": 2}, {"y": 96, "x": 37, "z": 0, "id": 285}, {"y": 101, "x": 44, "z": 0, "id": 53}, {"y": 102, "x": 44, "z": 0, "id": 42}, {"y": 101, "x": 44, "z": 0, "id": 280}, {"y": 96, "x": 32, "z": 0, "id": 60}, {"y": 96, "x": 33, "z": 0, "id": 329}, {"y": 105, "x": 71, "z": 0, "id": 10}, {"y": 107, "x": 72, "z": 0, "id": 82}, {"y": 109, "x": 73, "z": 0, "id": 103}, {"y": 110, "x": 75, "z": 0, "id": 156}, {"y": 111, "x": 76, "z": 0, "id": 302}, {"y": 111, "x": 76, "z": 0, "id": 31}, {"y": 110, "x": 73, "z": 0, "id": 40}, {"y": 109, "x": 74, "z": 0, "id": 46}, {"y": 106, "x": 74, "z": 0, "id": 47}, {"y": 106, "x": 74, "z": 0, "id": 20}, {"y": 108, "x": 72, "z": 0, "id": 11}, {"y": 107, "x": 71, "z": 0, "id": 25}, {"y": 104, "x": 70, "z": 0, "id": 106}, {"y": 106, "x": 69, "z": 0, "id": 21}, {"y": 105, "x": 70, "z": 0, "id": 39}, {"y": 105, "x": 69, "z": 0, "id": 39}, {"y": 104, "x": 67, "z": 0, "id": 330}, {"y": 101, "x": 78, "z": 0, "id": 10}, {"y": 102, "x": 79, "z": 0, "id": 228}, {"y": 103, "x": 77, "z": 0, "id": 108}, {"y": 104, "x": 76, "z": 0, "id": 104}, {"y": 101, "x": 72, "z": 0, "id": 79}, {"y": 104, "x": 76, "z": 0, "id": 40}, {"y": 101, "x": 79, "z": 0, "id": 21}, {"y": 106, "x": 117, "z": 0, "id": 331}, {"y": 107, "x": 117, "z": 0, "id": 332}, {"y": 109, "x": 117, "z": 0, "id": 324}, {"y": 101, "x": 108, "z": 0, "id": 333}, {"y": 102, "x": 109, "z": 0, "id": 209}, {"y": 103, "x": 110, "z": 0, "id": 334}, {"y": 104, "x": 110, "z": 0, "id": 298}, {"y": 105, "x": 110, "z": 0, "id": 327}, {"y": 106, "x": 110, "z": 0, "id": 335}, {"y": 107, "x": 111, "z": 0, "id": 211}, {"y": 108, "x": 111, "z": 0, "id": 336}, {"y": 109, "x": 111, "z": 0, "id": 337}, {"y": 110, "x": 112, "z": 0, "id": 209}, {"y": 111, "x": 113, "z": 0, "id": 277}, {"y": 111, "x": 114, "z": 0, "id": 195}, {"y": 105, "x": 109, "z": 0, "id": 336}, {"y": 104, "x": 109, "z": 0, "id": 277}, {"y": 101, "x": 109, "z": 0, "id": 330}, {"y": 106, "x": 121, "z": 0, "id": 310}, {"y": 107, "x": 122, "z": 0, "id": 338}, {"y": 108, "x": 124, "z": 0, "id": 339}, {"y": 108, "x": 125, "z": 0, "id": 340}, {"y": 107, "x": 125, "z": 0, "id": 267}, {"y": 107, "x": 124, "z": 0, "id": 341}, {"y": 107, "x": 124, "z": 0, "id": 122}, {"y": 107, "x": 122, "z": 0, "id": 73}, {"y": 106, "x": 122, "z": 0, "id": 308}, {"y": 108, "x": 130, "z": 0, "id": 272}, {"y": 108, "x": 130, "z": 0, "id": 124}, {"y": 112, "x": 125, "z": 0, "id": 73}, {"y": 113, "x": 126, "z": 0, "id": 342}, {"y": 114, "x": 127, "z": 0, "id": 84}, {"y": 115, "x": 128, "z": 0, "id": 343}, {"y": 114, "x": 128, "z": 0, "id": 339}, {"y": 113, "x": 124, "z": 0, "id": 344}, {"y": 127, "x": 142, "z": 0, "id": 345}, {"y": 40, "x": 93, "z": 0, "id": 236}, {"y": 40, "x": 94, "z": 0, "id": 236}, {"y": 40, "x": 95, "z": 0, "id": 126}, {"y": 40, "x": 96, "z": 0, "id": 265}, {"y": 41, "x": 98, "z": 0, "id": 313}, {"y": 42, "x": 98, "z": 0, "id": 346}, {"y": 42, "x": 98, "z": 0, "id": 232}, {"y": 41, "x": 99, "z": 0, "id": 34}, {"y": 40, "x": 99, "z": 0, "id": 34}, {"y": 40, "x": 98, "z": 0, "id": 236}, {"y": 40, "x": 90, "z": 0, "id": 36}, {"y": 40, "x": 91, "z": 0, "id": 96}, {"y": 41, "x": 94, "z": 0, "id": 114}, {"y": 42, "x": 94, "z": 0, "id": 96}, {"y": 43, "x": 94, "z": 0, "id": 42}, {"y": 44, "x": 92, "z": 0, "id": 295}, {"y": 45, "x": 91, "z": 0, "id": 91}, {"y": 45, "x": 88, "z": 0, "id": 289}, {"y": 45, "x": 90, "z": 0, "id": 84}, {"y": 43, "x": 89, "z": 0, "id": 347}, {"y": 42, "x": 92, "z": 0, "id": 348}, {"y": 36, "x": 90, "z": 0, "id": 42}, {"y": 37, "x": 89, "z": 0, "id": 79}, {"y": 39, "x": 90, "z": 0, "id": 37}, {"y": 39, "x": 89, "z": 0, "id": 42}, {"y": 39, "x": 86, "z": 0, "id": 271}, {"y": 38, "x": 88, "z": 0, "id": 311}, {"y": 38, "x": 89, "z": 0, "id": 28}, {"y": 37, "x": 90, "z": 0, "id": 32}, {"y": 8, "x": 134, "z": 0, "id": 253}, {"y": 9, "x": 134, "z": 0, "id": 168}, {"y": 10, "x": 134, "z": 0, "id": 239}, {"y": 11, "x": 134, "z": 0, "id": 184}, {"y": 12, "x": 135, "z": 0, "id": 349}, {"y": 13, "x": 136, "z": 0, "id": 175}, {"y": 13, "x": 133, "z": 0, "id": 188}, {"y": 7, "x": 135, "z": 0, "id": 162}, {"y": 29, "x": 130, "z": 0, "id": 184}, {"y": 30, "x": 133, "z": 0, "id": 5}, {"y": 31, "x": 133, "z": 0, "id": 235}, {"y": 32, "x": 132, "z": 0, "id": 235}, {"y": 31, "x": 132, "z": 0, "id": 235}, {"y": 35, "x": 134, "z": 0, "id": 184}, {"y": 36, "x": 134, "z": 0, "id": 184}, {"y": 37, "x": 134, "z": 0, "id": 239}, {"y": 38, "x": 133, "z": 0, "id": 238}, {"y": 37, "x": 133, "z": 0, "id": 235}, {"y": 41, "x": 131, "z": 0, "id": 51}, {"y": 43, "x": 129, "z": 0, "id": 12}, {"y": 44, "x": 127, "z": 0, "id": 76}, {"y": 44, "x": 126, "z": 0, "id": 90}, {"y": 44, "x": 128, "z": 0, "id": 28}, {"y": 41, "x": 130, "z": 0, "id": 92}, {"y": 40, "x": 133, "z": 0, "id": 334}, {"y": 40, "x": 132, "z": 0, "id": 124}, {"y": 48, "x": 137, "z": 0, "id": 235}, {"y": 49, "x": 137, "z": 0, "id": 331}, {"y": 50, "x": 137, "z": 0, "id": 350}, {"y": 52, "x": 138, "z": 0, "id": 48}, {"y": 53, "x": 136, "z": 0, "id": 226}, {"y": 54, "x": 136, "z": 0, "id": 12}, {"y": 52, "x": 138, "z": 0, "id": 94}, {"y": 52, "x": 137, "z": 0, "id": 48}, {"y": 55, "x": 127, "z": 0, "id": 81}, {"y": 57, "x": 130, "z": 0, "id": 138}, {"y": 58, "x": 132, "z": 0, "id": 50}, {"y": 59, "x": 130, "z": 0, "id": 241}, {"y": 57, "x": 134, "z": 0, "id": 139}, {"y": 57, "x": 134, "z": 0, "id": 49}, {"y": 56, "x": 134, "z": 0, "id": 23}, {"y": 55, "x": 134, "z": 0, "id": 319}, {"y": 56, "x": 133, "z": 0, "id": 119}, {"y": 55, "x": 128, "z": 0, "id": 118}, {"y": 50, "x": 130, "z": 0, "id": 351}, {"y": 51, "x": 132, "z": 0, "id": 152}, {"y": 52, "x": 132, "z": 0, "id": 246}, {"y": 50, "x": 132, "z": 0, "id": 114}, {"y": 50, "x": 131, "z": 0, "id": 68}, {"y": 49, "x": 132, "z": 0, "id": 352}, {"y": 54, "x": 133, "z": 0, "id": 297}, {"y": 60, "x": 141, "z": 0, "id": 31}, {"y": 61, "x": 142, "z": 0, "id": 47}, {"y": 61, "x": 141, "z": 0, "id": 214}, {"y": 61, "x": 142, "z": 0, "id": 32}, {"y": 60, "x": 139, "z": 0, "id": 225}, {"y": 59, "x": 141, "z": 0, "id": 267}, {"y": 43, "x": 75, "z": 0, "id": 83}, {"y": 45, "x": 77, "z": 0, "id": 37}, {"y": 44, "x": 76, "z": 0, "id": 4}, {"y": 33, "x": 71, "z": 0, "id": 232}, {"y": 34, "x": 69, "z": 0, "id": 263}, {"y": 34, "x": 69, "z": 0, "id": 124}, {"y": 35, "x": 76, "z": 0, "id": 215}, {"y": 36, "x": 74, "z": 0, "id": 232}, {"y": 31, "x": 63, "z": 0, "id": 84}, {"y": 30, "x": 69, "z": 0, "id": 124}, {"y": 31, "x": 70, "z": 0, "id": 293}, {"y": 32, "x": 72, "z": 0, "id": 96}, {"y": 32, "x": 73, "z": 0, "id": 353}, {"y": 31, "x": 74, "z": 0, "id": 268}, {"y": 31, "x": 75, "z": 0, "id": 34}, {"y": 31, "x": 75, "z": 0, "id": 85}, {"y": 32, "x": 75, "z": 0, "id": 25}, {"y": 31, "x": 73, "z": 0, "id": 27}, {"y": 30, "x": 70, "z": 0, "id": 118}, {"y": 31, "x": 76, "z": 0, "id": 215}, {"y": 46, "x": 62, "z": 0, "id": 2}, {"y": 79, "x": 91, "z": 0, "id": 2}, {"y": 74, "x": 82, "z": 0, "id": 354}, {"y": 73, "x": 82, "z": 0, "id": 218}, {"y": 71, "x": 82, "z": 0, "id": 355}, {"y": 72, "x": 83, "z": 0, "id": 151}, {"y": 73, "x": 83, "z": 0, "id": 246}, {"y": 70, "x": 81, "z": 0, "id": 262}, {"y": 71, "x": 81, "z": 0, "id": 319}, {"y": 71, "x": 81, "z": 0, "id": 222}, {"y": 70, "x": 78, "z": 0, "id": 94}, {"y": 71, "x": 76, "z": 0, "id": 356}, {"y": 71, "x": 76, "z": 0, "id": 73}, {"y": 66, "x": 77, "z": 0, "id": 271}, {"y": 67, "x": 93, "z": 0, "id": 211}, {"y": 69, "x": 96, "z": 0, "id": 11}, {"y": 70, "x": 95, "z": 0, "id": 103}, {"y": 71, "x": 95, "z": 0, "id": 38}, {"y": 67, "x": 97, "z": 0, "id": 357}, {"y": 68, "x": 98, "z": 0, "id": 40}, {"y": 67, "x": 99, "z": 0, "id": 13}, {"y": 14, "x": 58, "z": 0, "id": 163}, {"y": 15, "x": 58, "z": 0, "id": 176}, {"y": 18, "x": 59, "z": 0, "id": 201}, {"y": 19, "x": 60, "z": 0, "id": 238}, {"y": 20, "x": 61, "z": 0, "id": 121}, {"y": 21, "x": 61, "z": 0, "id": 253}, {"y": 20, "x": 61, "z": 0, "id": 192}, {"y": 18, "x": 60, "z": 0, "id": 358}, {"y": 24, "x": 57, "z": 0, "id": 185}, {"y": 24, "x": 58, "z": 0, "id": 5}, {"y": 24, "x": 59, "z": 0, "id": 235}, {"y": 24, "x": 56, "z": 0, "id": 12}, {"y": 24, "x": 55, "z": 0, "id": 16}, {"y": 16, "x": 53, "z": 0, "id": 238}, {"y": 17, "x": 53, "z": 0, "id": 173}, {"y": 18, "x": 53, "z": 0, "id": 235}, {"y": 19, "x": 54, "z": 0, "id": 254}, {"y": 20, "x": 54, "z": 0, "id": 5}, {"y": 22, "x": 56, "z": 0, "id": 112}, {"y": 21, "x": 54, "z": 0, "id": 179}, {"y": 21, "x": 54, "z": 0, "id": 174}, {"y": 18, "x": 52, "z": 0, "id": 235}, {"y": 17, "x": 52, "z": 0, "id": 175}, {"y": 23, "x": 58, "z": 0, "id": 184}, {"y": 23, "x": 49, "z": 0, "id": 175}, {"y": 24, "x": 52, "z": 0, "id": 12}, {"y": 25, "x": 51, "z": 0, "id": 358}, {"y": 25, "x": 51, "z": 0, "id": 171}, {"y": 25, "x": 51, "z": 0, "id": 170}, {"y": 24, "x": 52, "z": 0, "id": 239}, {"y": 24, "x": 51, "z": 0, "id": 181}, {"y": 21, "x": 41, "z": 0, "id": 201}, {"y": 22, "x": 42, "z": 0, "id": 167}, {"y": 24, "x": 44, "z": 0, "id": 170}, {"y": 24, "x": 45, "z": 0, "id": 181}, {"y": 7, "x": 61, "z": 0, "id": 166}, {"y": 7, "x": 60, "z": 0, "id": 191}, {"y": 11, "x": 48, "z": 0, "id": 201}, {"y": 8, "x": 44, "z": 0, "id": 170}, {"y": 8, "x": 45, "z": 0, "id": 181}, {"y": 9, "x": 46, "z": 0, "id": 183}, {"y": 9, "x": 47, "z": 0, "id": 181}, {"y": 7, "x": 46, "z": 0, "id": 190}, {"y": 8, "x": 43, "z": 0, "id": 174}, {"y": 7, "x": 42, "z": 0, "id": 191}, {"y": 8, "x": 40, "z": 0, "id": 175}, {"y": 9, "x": 41, "z": 0, "id": 253}, {"y": 21, "x": 53, "z": 0, "id": 5}, {"y": 22, "x": 53, "z": 0, "id": 12}, {"y": 22, "x": 53, "z": 0, "id": 178}, {"y": 7, "x": 15, "z": 0, "id": 183}, {"y": 9, "x": 18, "z": 0, "id": 166}, {"y": 10, "x": 18, "z": 0, "id": 166}, {"y": 11, "x": 17, "z": 0, "id": 161}, {"y": 10, "x": 15, "z": 0, "id": 159}, {"y": 10, "x": 12, "z": 0, "id": 162}, {"y": 10, "x": 14, "z": 0, "id": 166}, {"y": 7, "x": 15, "z": 0, "id": 169}, {"y": 9, "x": 15, "z": 0, "id": 180}, {"y": 7, "x": 18, "z": 0, "id": 165}, {"y": 5, "x": 21, "z": 0, "id": 165}, {"y": 1, "x": 23, "z": 0, "id": 170}, {"y": 2, "x": 24, "z": 0, "id": 185}, {"y": 3, "x": 24, "z": 0, "id": 182}, {"y": 11, "x": 23, "z": 0, "id": 162}, {"y": 12, "x": 24, "z": 0, "id": 235}, {"y": 13, "x": 23, "z": 0, "id": 187}, {"y": 15, "x": 24, "z": 0, "id": 179}, {"y": 16, "x": 24, "z": 0, "id": 161}, {"y": 17, "x": 24, "z": 0, "id": 201}, {"y": 15, "x": 25, "z": 0, "id": 178}, {"y": 17, "x": 22, "z": 0, "id": 172}, {"y": 17, "x": 20, "z": 0, "id": 12}, {"y": 16, "x": 19, "z": 0, "id": 176}, {"y": 16, "x": 20, "z": 0, "id": 179}, {"y": 14, "x": 22, "z": 0, "id": 185}, {"y": 14, "x": 21, "z": 0, "id": 160}, {"y": 11, "x": 25, "z": 0, "id": 234}, {"y": 12, "x": 24, "z": 0, "id": 185}, {"y": 5, "x": 19, "z": 0, "id": 192}, {"y": 1, "x": 4, "z": 0, "id": 168}, {"y": 2, "x": 6, "z": 0, "id": 182}, {"y": 4, "x": 7, "z": 0, "id": 179}, {"y": 5, "x": 7, "z": 0, "id": 201}, {"y": 6, "x": 7, "z": 0, "id": 235}, {"y": 6, "x": 6, "z": 0, "id": 235}, {"y": 5, "x": 6, "z": 0, "id": 184}, {"y": 2, "x": 7, "z": 0, "id": 112}, {"y": 27, "x": 25, "z": 0, "id": 236}, {"y": 28, "x": 27, "z": 0, "id": 356}, {"y": 29, "x": 28, "z": 0, "id": 297}, {"y": 30, "x": 28, "z": 0, "id": 112}, {"y": 31, "x": 27, "z": 0, "id": 157}, {"y": 32, "x": 27, "z": 0, "id": 259}, {"y": 33, "x": 26, "z": 0, "id": 141}, {"y": 35, "x": 25, "z": 0, "id": 22}, {"y": 36, "x": 26, "z": 0, "id": 73}, {"y": 37, "x": 26, "z": 0, "id": 287}, {"y": 38, "x": 27, "z": 0, "id": 8}, {"y": 38, "x": 28, "z": 0, "id": 77}, {"y": 36, "x": 29, "z": 0, "id": 322}, {"y": 37, "x": 28, "z": 0, "id": 359}, {"y": 36, "x": 29, "z": 0, "id": 230}, {"y": 38, "x": 27, "z": 0, "id": 84}, {"y": 35, "x": 27, "z": 0, "id": 88}, {"y": 36, "x": 22, "z": 0, "id": 23}, {"y": 37, "x": 21, "z": 0, "id": 23}, {"y": 37, "x": 21, "z": 0, "id": 85}, {"y": 36, "x": 21, "z": 0, "id": 23}, {"y": 35, "x": 19, "z": 0, "id": 114}, {"y": 36, "x": 27, "z": 0, "id": 42}, {"y": 35, "x": 24, "z": 0, "id": 84}, {"y": 33, "x": 26, "z": 0, "id": 46}, {"y": 32, "x": 20, "z": 0, "id": 243}, {"y": 34, "x": 21, "z": 0, "id": 37}, {"y": 35, "x": 21, "z": 0, "id": 104}, {"y": 33, "x": 18, "z": 0, "id": 271}, {"y": 31, "x": 19, "z": 0, "id": 360}, {"y": 22, "x": 18, "z": 0, "id": 191}, {"y": 26, "x": 21, "z": 0, "id": 161}, {"y": 26, "x": 21, "z": 0, "id": 160}, {"y": 25, "x": 20, "z": 0, "id": 182}, {"y": 24, "x": 18, "z": 0, "id": 176}, {"y": 21, "x": 18, "z": 0, "id": 238}, {"y": 18, "x": 34, "z": 0, "id": 181}, {"y": 19, "x": 34, "z": 0, "id": 179}, {"y": 18, "x": 35, "z": 0, "id": 234}, {"y": 18, "x": 35, "z": 0, "id": 181}, {"y": 19, "x": 28, "z": 0, "id": 161}, {"y": 20, "x": 29, "z": 0, "id": 182}, {"y": 20, "x": 28, "z": 0, "id": 170}, {"y": 19, "x": 29, "z": 0, "id": 188}, {"y": 20, "x": 31, "z": 0, "id": 165}, {"y": 17, "x": 27, "z": 0, "id": 252}, {"y": 6, "x": 36, "z": 0, "id": 176}, {"y": 8, "x": 36, "z": 0, "id": 172}, {"y": 8, "x": 35, "z": 0, "id": 181}, {"y": 10, "x": 70, "z": 0, "id": 12}, {"y": 11, "x": 69, "z": 0, "id": 176}, {"y": 12, "x": 70, "z": 0, "id": 158}, {"y": 11, "x": 68, "z": 0, "id": 187}, {"y": 12, "x": 67, "z": 0, "id": 171}, {"y": 10, "x": 70, "z": 0, "id": 182}, {"y": 17, "x": 72, "z": 0, "id": 173}, {"y": 18, "x": 73, "z": 0, "id": 172}, {"y": 3, "x": 7, "z": 0, "id": 166}, {"y": 7, "x": 29, "z": 0, "id": 172}, {"y": 12, "x": 24, "z": 0, "id": 238}, {"y": 2, "x": 33, "z": 0, "id": 172}, {"y": 14, "x": 36, "z": 0, "id": 185}, {"y": 16, "x": 35, "z": 0, "id": 166}, {"y": 12, "x": 35, "z": 0, "id": 185}, {"y": 9, "x": 45, "z": 0, "id": 187}, {"y": 8, "x": 42, "z": 0, "id": 239}, {"y": 12, "x": 40, "z": 0, "id": 185}, {"y": 1, "x": 44, "z": 0, "id": 239}, {"y": 1, "x": 46, "z": 0, "id": 161}, {"y": 5, "x": 48, "z": 0, "id": 161}, {"y": 2, "x": 46, "z": 0, "id": 252}, {"y": 3, "x": 46, "z": 0, "id": 252}, {"y": 3, "x": 45, "z": 0, "id": 168}, {"y": 10, "x": 54, "z": 0, "id": 187}, {"y": 16, "x": 51, "z": 0, "id": 169}, {"y": 23, "x": 53, "z": 0, "id": 172}, {"y": 24, "x": 55, "z": 0, "id": 166}, {"y": 23, "x": 52, "z": 0, "id": 160}, {"y": 24, "x": 54, "z": 0, "id": 178}, {"y": 24, "x": 57, "z": 0, "id": 168}, {"y": 22, "x": 56, "z": 0, "id": 252}, {"y": 22, "x": 55, "z": 0, "id": 168}, {"y": 18, "x": 52, "z": 0, "id": 168}, {"y": 18, "x": 53, "z": 0, "id": 252}, {"y": 15, "x": 51, "z": 0, "id": 233}, {"y": 24, "x": 56, "z": 0, "id": 361}, {"y": 24, "x": 60, "z": 0, "id": 362}, {"y": 24, "x": 60, "z": 0, "id": 161}, {"y": 6, "x": 59, "z": 0, "id": 174}, {"y": 20, "x": 51, "z": 0, "id": 252}, {"y": 24, "x": 58, "z": 0, "id": 168}, {"y": 21, "x": 55, "z": 0, "id": 252}, {"y": 21, "x": 55, "z": 0, "id": 363}, {"y": 8, "x": 67, "z": 0, "id": 160}, {"y": 6, "x": 67, "z": 0, "id": 161}, {"y": 8, "x": 70, "z": 0, "id": 160}, {"y": 8, "x": 66, "z": 0, "id": 161}, {"y": 9, "x": 68, "z": 0, "id": 179}, {"y": 10, "x": 70, "z": 0, "id": 159}, {"y": 15, "x": 78, "z": 0, "id": 179}, {"y": 9, "x": 75, "z": 0, "id": 160}, {"y": 19, "x": 80, "z": 0, "id": 172}, {"y": 20, "x": 78, "z": 0, "id": 201}, {"y": 14, "x": 68, "z": 0, "id": 166}, {"y": 25, "x": 66, "z": 0, "id": 160}, {"y": 26, "x": 65, "z": 0, "id": 252}, {"y": 26, "x": 66, "z": 0, "id": 168}, {"y": 25, "x": 64, "z": 0, "id": 252}, {"y": 8, "x": 83, "z": 0, "id": 178}, {"y": 8, "x": 85, "z": 0, "id": 160}, {"y": 7, "x": 85, "z": 0, "id": 178}, {"y": 11, "x": 86, "z": 0, "id": 160}, {"y": 16, "x": 93, "z": 0, "id": 190}, {"y": 8, "x": 84, "z": 0, "id": 252}, {"y": 9, "x": 90, "z": 0, "id": 168}, {"y": 25, "x": 93, "z": 0, "id": 179}, {"y": 26, "x": 92, "z": 0, "id": 160}, {"y": 26, "x": 89, "z": 0, "id": 168}, {"y": 21, "x": 94, "z": 0, "id": 178}, {"y": 21, "x": 96, "z": 0, "id": 160}, {"y": 20, "x": 93, "z": 0, "id": 252}, {"y": 23, "x": 97, "z": 0, "id": 179}, {"y": 16, "x": 99, "z": 0, "id": 159}, {"y": 8, "x": 101, "z": 0, "id": 159}, {"y": 9, "x": 103, "z": 0, "id": 178}, {"y": 10, "x": 102, "z": 0, "id": 174}, {"y": 8, "x": 102, "z": 0, "id": 168}, {"y": 11, "x": 103, "z": 0, "id": 159}, {"y": 24, "x": 86, "z": 0, "id": 159}, {"y": 26, "x": 85, "z": 0, "id": 160}, {"y": 22, "x": 85, "z": 0, "id": 363}, {"y": 20, "x": 83, "z": 0, "id": 361}, {"y": 14, "x": 105, "z": 0, "id": 179}, {"y": 11, "x": 105, "z": 0, "id": 178}, {"y": 8, "x": 104, "z": 0, "id": 187}, {"y": 13, "x": 97, "z": 0, "id": 254}, {"y": 13, "x": 101, "z": 0, "id": 165}, {"y": 22, "x": 105, "z": 0, "id": 172}, {"y": 21, "x": 102, "z": 0, "id": 252}, {"y": 12, "x": 105, "z": 0, "id": 174}, {"y": 9, "x": 121, "z": 0, "id": 179}, {"y": 9, "x": 120, "z": 0, "id": 178}, {"y": 5, "x": 119, "z": 0, "id": 159}, {"y": 10, "x": 122, "z": 0, "id": 178}, {"y": 7, "x": 129, "z": 0, "id": 160}, {"y": 6, "x": 131, "z": 0, "id": 178}, {"y": 8, "x": 130, "z": 0, "id": 168}, {"y": 7, "x": 130, "z": 0, "id": 252}, {"y": 6, "x": 126, "z": 0, "id": 252}, {"y": 6, "x": 125, "z": 0, "id": 168}, {"y": 10, "x": 124, "z": 0, "id": 161}, {"y": 10, "x": 121, "z": 0, "id": 161}, {"y": 13, "x": 124, "z": 0, "id": 174}, {"y": 15, "x": 124, "z": 0, "id": 179}, {"y": 15, "x": 127, "z": 0, "id": 160}, {"y": 15, "x": 126, "z": 0, "id": 170}, {"y": 15, "x": 125, "z": 0, "id": 165}, {"y": 15, "x": 124, "z": 0, "id": 178}, {"y": 14, "x": 122, "z": 0, "id": 178}, {"y": 12, "x": 128, "z": 0, "id": 181}, {"y": 13, "x": 130, "z": 0, "id": 171}, {"y": 11, "x": 126, "z": 0, "id": 189}, {"y": 15, "x": 125, "z": 0, "id": 188}, {"y": 7, "x": 125, "z": 0, "id": 185}, {"y": 18, "x": 131, "z": 0, "id": 160}, {"y": 18, "x": 130, "z": 0, "id": 178}, {"y": 19, "x": 132, "z": 0, "id": 178}, {"y": 15, "x": 132, "z": 0, "id": 252}, {"y": 15, "x": 130, "z": 0, "id": 168}, {"y": 17, "x": 132, "z": 0, "id": 252}, {"y": 15, "x": 136, "z": 0, "id": 252}, {"y": 0, "x": 55, "z": 0, "id": 188}, {"y": 1, "x": 57, "z": 0, "id": 171}, {"y": 3, "x": 58, "z": 0, "id": 179}, {"y": 3, "x": 56, "z": 0, "id": 189}, {"y": 3, "x": 56, "z": 0, "id": 191}, {"y": 2, "x": 59, "z": 0, "id": 234}, {"y": 2, "x": 65, "z": 0, "id": 165}, {"y": 1, "x": 64, "z": 0, "id": 180}, {"y": 1, "x": 60, "z": 0, "id": 163}, {"y": 1, "x": 60, "z": 0, "id": 187}, {"y": 3, "x": 57, "z": 0, "id": 179}, {"y": 2, "x": 59, "z": 0, "id": 181}, {"y": 0, "x": 58, "z": 0, "id": 165}, {"y": 1, "x": 65, "z": 0, "id": 12}, {"y": 1, "x": 69, "z": 0, "id": 180}, {"y": 2, "x": 72, "z": 0, "id": 170}, {"y": 1, "x": 73, "z": 0, "id": 180}, {"y": 2, "x": 69, "z": 0, "id": 181}, {"y": 2, "x": 61, "z": 0, "id": 168}, {"y": 3, "x": 63, "z": 0, "id": 183}, {"y": 3, "x": 62, "z": 0, "id": 349}, {"y": 3, "x": 69, "z": 0, "id": 162}, {"y": 3, "x": 70, "z": 0, "id": 168}, {"y": 11, "x": 74, "z": 0, "id": 192}, {"y": 12, "x": 75, "z": 0, "id": 174}, {"y": 12, "x": 72, "z": 0, "id": 186}, {"y": 18, "x": 74, "z": 0, "id": 175}, {"y": 19, "x": 74, "z": 0, "id": 299}, {"y": 20, "x": 74, "z": 0, "id": 252}, {"y": 22, "x": 75, "z": 0, "id": 183}, {"y": 20, "x": 73, "z": 0, "id": 162}, {"y": 18, "x": 75, "z": 0, "id": 253}, {"y": 26, "x": 75, "z": 0, "id": 183}, {"y": 24, "x": 73, "z": 0, "id": 299}, {"y": 128, "x": 102, "z": 0, "id": 302}, {"y": 129, "x": 100, "z": 0, "id": 94}, {"y": 130, "x": 99, "z": 0, "id": 267}, {"y": 130, "x": 99, "z": 0, "id": 334}, {"y": 130, "x": 98, "z": 0, "id": 144}, {"y": 129, "x": 101, "z": 0, "id": 364}, {"y": 132, "x": 106, "z": 0, "id": 36}, {"y": 133, "x": 106, "z": 0, "id": 48}, {"y": 134, "x": 105, "z": 0, "id": 52}, {"y": 134, "x": 104, "z": 0, "id": 104}, {"y": 135, "x": 102, "z": 0, "id": 115}, {"y": 136, "x": 100, "z": 0, "id": 203}, {"y": 135, "x": 102, "z": 0, "id": 104}, {"y": 133, "x": 104, "z": 0, "id": 146}, {"y": 132, "x": 102, "z": 0, "id": 203}, {"y": 128, "x": 104, "z": 0, "id": 365}, {"y": 131, "x": 97, "z": 0, "id": 274}, {"y": 132, "x": 97, "z": 0, "id": 317}, {"y": 133, "x": 98, "z": 0, "id": 80}, {"y": 134, "x": 98, "z": 0, "id": 249}, {"y": 135, "x": 98, "z": 0, "id": 75}, {"y": 136, "x": 98, "z": 0, "id": 366}, {"y": 134, "x": 98, "z": 0, "id": 115}, {"y": 132, "x": 98, "z": 0, "id": 12}, {"y": 138, "x": 96, "z": 0, "id": 267}, {"y": 139, "x": 95, "z": 0, "id": 235}, {"y": 141, "x": 96, "z": 0, "id": 12}, {"y": 142, "x": 96, "z": 0, "id": 80}, {"y": 141, "x": 96, "z": 0, "id": 77}, {"y": 141, "x": 96, "z": 0, "id": 112}, {"y": 140, "x": 96, "z": 0, "id": 51}, {"y": 139, "x": 94, "z": 0, "id": 90}, {"y": 140, "x": 102, "z": 0, "id": 113}, {"y": 141, "x": 103, "z": 0, "id": 274}, {"y": 143, "x": 104, "z": 0, "id": 31}, {"y": 144, "x": 102, "z": 0, "id": 223}, {"y": 145, "x": 100, "z": 0, "id": 103}, {"y": 143, "x": 99, "z": 0, "id": 94}, {"y": 142, "x": 101, "z": 0, "id": 367}, {"y": 143, "x": 101, "z": 0, "id": 196}, {"y": 141, "x": 102, "z": 0, "id": 241}, {"y": 122, "x": 124, "z": 0, "id": 272}, {"y": 124, "x": 126, "z": 0, "id": 368}, {"y": 124, "x": 128, "z": 0, "id": 83}, {"y": 124, "x": 129, "z": 0, "id": 261}, {"y": 127, "x": 137, "z": 0, "id": 369}, {"y": 128, "x": 139, "z": 0, "id": 370}, {"y": 129, "x": 140, "z": 0, "id": 371}, {"y": 126, "x": 137, "z": 0, "id": 4}, {"y": 125, "x": 137, "z": 0, "id": 368}, {"y": 124, "x": 130, "z": 0, "id": 55}, {"y": 124, "x": 129, "z": 0, "id": 101}, {"y": 122, "x": 126, "z": 0, "id": 372}, {"y": 123, "x": 116, "z": 0, "id": 308}, {"y": 124, "x": 117, "z": 0, "id": 267}, {"y": 124, "x": 119, "z": 0, "id": 4}, {"y": 124, "x": 121, "z": 0, "id": 92}, {"y": 124, "x": 123, "z": 0, "id": 368}, {"y": 124, "x": 125, "z": 0, "id": 369}, {"y": 124, "x": 125, "z": 0, "id": 373}, {"y": 124, "x": 122, "z": 0, "id": 4}, {"y": 126, "x": 135, "z": 0, "id": 266}, {"y": 106, "x": 128, "z": 0, "id": 310}, {"y": 107, "x": 129, "z": 0, "id": 343}, {"y": 107, "x": 130, "z": 0, "id": 374}, {"y": 106, "x": 129, "z": 0, "id": 369}, {"y": 49, "x": 126, "z": 0, "id": 235}, {"y": 50, "x": 127, "z": 0, "id": 89}, {"y": 51, "x": 128, "z": 0, "id": 128}, {"y": 52, "x": 127, "z": 0, "id": 272}, {"y": 52, "x": 127, "z": 0, "id": 244}, {"y": 52, "x": 127, "z": 0, "id": 375}, {"y": 49, "x": 128, "z": 0, "id": 224}, {"y": 52, "x": 131, "z": 0, "id": 209}, {"y": 53, "x": 131, "z": 0, "id": 271}, {"y": 54, "x": 131, "z": 0, "id": 376}, {"y": 26, "x": 144, "z": 0, "id": 234}, {"y": 28, "x": 145, "z": 0, "id": 170}, {"y": 30, "x": 144, "z": 0, "id": 169}, {"y": 33, "x": 146, "z": 0, "id": 165}, {"y": 35, "x": 147, "z": 0, "id": 165}, {"y": 36, "x": 145, "z": 0, "id": 169}, {"y": 33, "x": 143, "z": 0, "id": 7}, {"y": 33, "x": 145, "z": 0, "id": 180}, {"y": 33, "x": 143, "z": 0, "id": 166}, {"y": 29, "x": 144, "z": 0, "id": 12}, {"y": 28, "x": 142, "z": 0, "id": 238}, {"y": 28, "x": 138, "z": 0, "id": 252}, {"y": 29, "x": 139, "z": 0, "id": 175}, {"y": 30, "x": 139, "z": 0, "id": 173}, {"y": 31, "x": 140, "z": 0, "id": 252}, {"y": 32, "x": 140, "z": 0, "id": 184}, {"y": 23, "x": 135, "z": 0, "id": 173}, {"y": 27, "x": 137, "z": 0, "id": 192}, {"y": 29, "x": 133, "z": 0, "id": 186}, {"y": 93, "x": 28, "z": 0, "id": 377}, {"y": 97, "x": 41, "z": 0, "id": 378}, {"y": 96, "x": 32, "z": 0, "id": 62}, {"y": 97, "x": 36, "z": 0, "id": 379}, {"y": 96, "x": 38, "z": 0, "id": 280}, {"y": 100, "x": 48, "z": 0, "id": 379}, {"y": 102, "x": 49, "z": 0, "id": 66}, {"y": 105, "x": 60, "z": 0, "id": 280}, {"y": 106, "x": 57, "z": 0, "id": 66}, {"y": 105, "x": 62, "z": 0, "id": 380}, {"y": 114, "x": 74, "z": 0, "id": 379}, {"y": 112, "x": 70, "z": 0, "id": 280}, {"y": 111, "x": 68, "z": 0, "id": 279}, {"y": 107, "x": 68, "z": 0, "id": 280}, {"y": 109, "x": 66, "z": 0, "id": 62}, {"y": 103, "x": 62, "z": 0, "id": 279}, {"y": 103, "x": 53, "z": 0, "id": 378}, {"y": 103, "x": 55, "z": 0, "id": 26}, {"y": 108, "x": 62, "z": 0, "id": 42}, {"y": 108, "x": 60, "z": 0, "id": 59}, {"y": 107, "x": 59, "z": 0, "id": 381}, {"y": 107, "x": 60, "z": 0, "id": 382}, {"y": 106, "x": 59, "z": 0, "id": 383}, {"y": 107, "x": 58, "z": 0, "id": 381}, {"y": 105, "x": 60, "z": 0, "id": 60}, {"y": 99, "x": 42, "z": 0, "id": 66}, {"y": 101, "x": 35, "z": 0, "id": 379}, {"y": 102, "x": 47, "z": 0, "id": 384}, {"y": 93, "x": 21, "z": 0, "id": 385}, {"y": 93, "x": 23, "z": 0, "id": 279}, {"y": 93, "x": 22, "z": 0, "id": 386}, {"y": 111, "x": 66, "z": 0, "id": 280}, {"y": 112, "x": 62, "z": 0, "id": 379}, {"y": 112, "x": 58, "z": 0, "id": 60}, {"y": 112, "x": 57, "z": 0, "id": 280}, {"y": 113, "x": 64, "z": 0, "id": 66}, {"y": 114, "x": 62, "z": 0, "id": 279}, {"y": 121, "x": 60, "z": 0, "id": 379}, {"y": 120, "x": 62, "z": 0, "id": 62}, {"y": 118, "x": 60, "z": 0, "id": 279}, {"y": 117, "x": 62, "z": 0, "id": 280}, {"y": 118, "x": 68, "z": 0, "id": 279}, {"y": 117, "x": 71, "z": 0, "id": 379}, {"y": 117, "x": 67, "z": 0, "id": 380}, {"y": 121, "x": 59, "z": 0, "id": 378}, {"y": 123, "x": 58, "z": 0, "id": 280}, {"y": 112, "x": 55, "z": 0, "id": 379}, {"y": 112, "x": 57, "z": 0, "id": 72}, {"y": 110, "x": 51, "z": 0, "id": 279}, {"y": 112, "x": 51, "z": 0, "id": 280}, {"y": 113, "x": 50, "z": 0, "id": 379}, {"y": 115, "x": 49, "z": 0, "id": 62}, {"y": 117, "x": 54, "z": 0, "id": 279}, {"y": 122, "x": 50, "z": 0, "id": 279}, {"y": 126, "x": 52, "z": 0, "id": 280}, {"y": 127, "x": 52, "z": 0, "id": 279}, {"y": 129, "x": 58, "z": 0, "id": 379}, {"y": 127, "x": 56, "z": 0, "id": 279}, {"y": 129, "x": 56, "z": 0, "id": 60}, {"y": 129, "x": 60, "z": 0, "id": 379}, {"y": 127, "x": 61, "z": 0, "id": 280}, {"y": 130, "x": 55, "z": 0, "id": 279}, {"y": 132, "x": 54, "z": 0, "id": 62}, {"y": 132, "x": 51, "z": 0, "id": 387}, {"y": 132, "x": 59, "z": 0, "id": 379}, {"y": 132, "x": 58, "z": 0, "id": 380}, {"y": 133, "x": 61, "z": 0, "id": 379}, {"y": 135, "x": 59, "z": 0, "id": 62}, {"y": 127, "x": 63, "z": 0, "id": 279}, {"y": 132, "x": 51, "z": 0, "id": 379}, {"y": 134, "x": 53, "z": 0, "id": 62}, {"y": 126, "x": 62, "z": 0, "id": 222}, {"y": 122, "x": 61, "z": 0, "id": 103}, {"y": 123, "x": 63, "z": 0, "id": 149}, {"y": 128, "x": 65, "z": 0, "id": 103}, {"y": 127, "x": 67, "z": 0, "id": 54}, {"y": 133, "x": 57, "z": 0, "id": 222}, {"y": 130, "x": 53, "z": 0, "id": 149}, {"y": 126, "x": 53, "z": 0, "id": 103}, {"y": 123, "x": 49, "z": 0, "id": 103}, {"y": 135, "x": 61, "z": 0, "id": 146}, {"y": 134, "x": 70, "z": 0, "id": 222}, {"y": 131, "x": 69, "z": 0, "id": 103}, {"y": 132, "x": 65, "z": 0, "id": 54}, {"y": 127, "x": 62, "z": 0, "id": 386}, {"y": 123, "x": 62, "z": 0, "id": 384}, {"y": 132, "x": 55, "z": 0, "id": 388}, {"y": 135, "x": 59, "z": 0, "id": 389}, {"y": 132, "x": 73, "z": 0, "id": 390}, {"y": 105, "x": 44, "z": 0, "id": 62}, {"y": 111, "x": 46, "z": 0, "id": 280}, {"y": 111, "x": 45, "z": 0, "id": 62}, {"y": 109, "x": 45, "z": 0, "id": 60}, {"y": 112, "x": 42, "z": 0, "id": 380}, {"y": 109, "x": 47, "z": 0, "id": 280}, {"y": 108, "x": 48, "z": 0, "id": 385}, {"y": 107, "x": 48, "z": 0, "id": 60}, {"y": 107, "x": 48, "z": 0, "id": 54}, {"y": 108, "x": 46, "z": 0, "id": 103}, {"y": 109, "x": 51, "z": 0, "id": 146}, {"y": 106, "x": 40, "z": 0, "id": 103}, {"y": 108, "x": 40, "z": 0, "id": 103}, {"y": 108, "x": 38, "z": 0, "id": 54}, {"y": 107, "x": 36, "z": 0, "id": 146}, {"y": 109, "x": 37, "z": 0, "id": 103}, {"y": 109, "x": 36, "z": 0, "id": 283}, {"y": 107, "x": 36, "z": 0, "id": 391}, {"y": 107, "x": 37, "z": 0, "id": 286}, {"y": 109, "x": 37, "z": 0, "id": 286}, {"y": 108, "x": 36, "z": 0, "id": 379}, {"y": 106, "x": 38, "z": 0, "id": 285}, {"y": 107, "x": 40, "z": 0, "id": 391}, {"y": 108, "x": 39, "z": 0, "id": 392}, {"y": 104, "x": 53, "z": 0, "id": 72}, {"y": 105, "x": 54, "z": 0, "id": 381}, {"y": 118, "x": 53, "z": 0, "id": 103}, {"y": 118, "x": 51, "z": 0, "id": 103}, {"y": 117, "x": 55, "z": 0, "id": 103}, {"y": 116, "x": 54, "z": 0, "id": 149}, {"y": 113, "x": 51, "z": 0, "id": 103}, {"y": 112, "x": 54, "z": 0, "id": 326}, {"y": 112, "x": 56, "z": 0, "id": 103}, {"y": 108, "x": 57, "z": 0, "id": 103}, {"y": 108, "x": 60, "z": 0, "id": 103}, {"y": 113, "x": 45, "z": 0, "id": 393}, {"y": 112, "x": 53, "z": 0, "id": 394}, {"y": 119, "x": 52, "z": 0, "id": 60}, {"y": 113, "x": 58, "z": 0, "id": 284}, {"y": 112, "x": 59, "z": 0, "id": 392}, {"y": 111, "x": 55, "z": 0, "id": 285}, {"y": 120, "x": 52, "z": 0, "id": 382}, {"y": 120, "x": 51, "z": 0, "id": 381}, {"y": 120, "x": 53, "z": 0, "id": 381}, {"y": 123, "x": 53, "z": 0, "id": 379}, {"y": 111, "x": 67, "z": 0, "id": 388}, {"y": 127, "x": 50, "z": 0, "id": 62}, {"y": 128, "x": 52, "z": 0, "id": 54}, {"y": 127, "x": 49, "z": 0, "id": 103}, {"y": 126, "x": 48, "z": 0, "id": 222}, {"y": 132, "x": 48, "z": 0, "id": 103}, {"y": 135, "x": 57, "z": 0, "id": 222}, {"y": 135, "x": 55, "z": 0, "id": 326}, {"y": 134, "x": 53, "z": 0, "id": 103}, {"y": 127, "x": 57, "z": 0, "id": 54}, {"y": 120, "x": 48, "z": 0, "id": 279}, {"y": 121, "x": 48, "z": 0, "id": 381}, {"y": 120, "x": 47, "z": 0, "id": 379}, {"y": 117, "x": 44, "z": 0, "id": 279}, {"y": 118, "x": 44, "z": 0, "id": 280}, {"y": 119, "x": 44, "z": 0, "id": 103}, {"y": 118, "x": 47, "z": 0, "id": 326}, {"y": 121, "x": 47, "z": 0, "id": 222}, {"y": 119, "x": 47, "z": 0, "id": 103}, {"y": 121, "x": 57, "z": 0, "id": 103}, {"y": 115, "x": 46, "z": 0, "id": 149}, {"y": 114, "x": 48, "z": 0, "id": 367}, {"y": 119, "x": 67, "z": 0, "id": 395}, {"y": 121, "x": 70, "z": 0, "id": 279}, {"y": 119, "x": 70, "z": 0, "id": 62}, {"y": 123, "x": 70, "z": 0, "id": 379}, {"y": 124, "x": 71, "z": 0, "id": 279}, {"y": 126, "x": 72, "z": 0, "id": 379}, {"y": 127, "x": 69, "z": 0, "id": 279}, {"y": 126, "x": 71, "z": 0, "id": 380}, {"y": 123, "x": 68, "z": 0, "id": 387}, {"y": 123, "x": 70, "z": 0, "id": 103}, {"y": 123, "x": 69, "z": 0, "id": 396}, {"y": 123, "x": 71, "z": 0, "id": 284}, {"y": 128, "x": 72, "z": 0, "id": 54}, {"y": 127, "x": 71, "z": 0, "id": 326}, {"y": 127, "x": 71, "z": 0, "id": 397}, {"y": 129, "x": 74, "z": 0, "id": 279}, {"y": 130, "x": 73, "z": 0, "id": 62}, {"y": 123, "x": 72, "z": 0, "id": 280}, {"y": 133, "x": 62, "z": 0, "id": 280}, {"y": 135, "x": 63, "z": 0, "id": 279}, {"y": 135, "x": 63, "z": 0, "id": 380}, {"y": 130, "x": 74, "z": 0, "id": 103}, {"y": 129, "x": 71, "z": 0, "id": 149}, {"y": 130, "x": 71, "z": 0, "id": 326}, {"y": 130, "x": 69, "z": 0, "id": 367}, {"y": 132, "x": 70, "z": 0, "id": 103}, {"y": 131, "x": 75, "z": 0, "id": 54}, {"y": 133, "x": 75, "z": 0, "id": 196}, {"y": 132, "x": 76, "z": 0, "id": 279}, {"y": 134, "x": 76, "z": 0, "id": 280}, {"y": 135, "x": 74, "z": 0, "id": 279}, {"y": 137, "x": 67, "z": 0, "id": 62}, {"y": 138, "x": 77, "z": 0, "id": 379}, {"y": 139, "x": 73, "z": 0, "id": 62}, {"y": 137, "x": 79, "z": 0, "id": 280}, {"y": 134, "x": 78, "z": 0, "id": 279}, {"y": 133, "x": 78, "z": 0, "id": 146}, {"y": 138, "x": 79, "z": 0, "id": 103}, {"y": 130, "x": 73, "z": 0, "id": 383}, {"y": 129, "x": 72, "z": 0, "id": 387}, {"y": 129, "x": 72, "z": 0, "id": 60}, {"y": 138, "x": 77, "z": 0, "id": 380}, {"y": 138, "x": 73, "z": 0, "id": 60}, {"y": 138, "x": 79, "z": 0, "id": 387}, {"y": 140, "x": 81, "z": 0, "id": 62}, {"y": 141, "x": 78, "z": 0, "id": 379}, {"y": 137, "x": 81, "z": 0, "id": 103}, {"y": 139, "x": 70, "z": 0, "id": 222}, {"y": 134, "x": 79, "z": 0, "id": 103}, {"y": 133, "x": 80, "z": 0, "id": 367}, {"y": 131, "x": 77, "z": 0, "id": 326}, {"y": 137, "x": 63, "z": 0, "id": 103}, {"y": 136, "x": 60, "z": 0, "id": 326}, {"y": 136, "x": 57, "z": 0, "id": 54}, {"y": 135, "x": 52, "z": 0, "id": 54}, {"y": 131, "x": 45, "z": 0, "id": 326}, {"y": 131, "x": 48, "z": 0, "id": 222}, {"y": 137, "x": 83, "z": 0, "id": 279}, {"y": 139, "x": 84, "z": 0, "id": 62}, {"y": 140, "x": 86, "z": 0, "id": 379}, {"y": 140, "x": 82, "z": 0, "id": 394}, {"y": 140, "x": 84, "z": 0, "id": 149}, {"y": 141, "x": 80, "z": 0, "id": 196}, {"y": 136, "x": 81, "z": 0, "id": 382}, {"y": 133, "x": 80, "z": 0, "id": 397}, {"y": 132, "x": 79, "z": 0, "id": 329}, {"y": 141, "x": 86, "z": 0, "id": 279}, {"y": 141, "x": 86, "z": 0, "id": 387}, {"y": 137, "x": 87, "z": 0, "id": 50}, {"y": 139, "x": 88, "z": 0, "id": 10}, {"y": 140, "x": 88, "z": 0, "id": 273}, {"y": 140, "x": 87, "z": 0, "id": 398}, {"y": 137, "x": 87, "z": 0, "id": 331}, {"y": 137, "x": 86, "z": 0, "id": 385}, {"y": 140, "x": 90, "z": 0, "id": 211}, {"y": 138, "x": 99, "z": 0, "id": 92}, {"y": 140, "x": 99, "z": 0, "id": 32}, {"y": 141, "x": 98, "z": 0, "id": 311}, {"y": 139, "x": 100, "z": 0, "id": 36}, {"y": 137, "x": 104, "z": 0, "id": 246}, {"y": 138, "x": 104, "z": 0, "id": 194}, {"y": 139, "x": 103, "z": 0, "id": 350}, {"y": 138, "x": 103, "z": 0, "id": 337}, {"y": 134, "x": 96, "z": 0, "id": 258}, {"y": 135, "x": 95, "z": 0, "id": 399}, {"y": 136, "x": 94, "z": 0, "id": 322}, {"y": 136, "x": 93, "z": 0, "id": 376}, {"y": 136, "x": 93, "z": 0, "id": 247}, {"y": 137, "x": 91, "z": 0, "id": 400}, {"y": 137, "x": 91, "z": 0, "id": 94}, {"y": 135, "x": 94, "z": 0, "id": 109}, {"y": 145, "x": 96, "z": 0, "id": 379}, {"y": 145, "x": 92, "z": 0, "id": 62}, {"y": 141, "x": 91, "z": 0, "id": 279}, {"y": 141, "x": 87, "z": 0, "id": 60}, {"y": 141, "x": 89, "z": 0, "id": 66}, {"y": 141, "x": 85, "z": 0, "id": 54}, {"y": 145, "x": 89, "z": 0, "id": 103}, {"y": 144, "x": 88, "z": 0, "id": 196}, {"y": 145, "x": 87, "z": 0, "id": 54}, {"y": 143, "x": 84, "z": 0, "id": 326}, {"y": 127, "x": 139, "z": 0, "id": 350}, {"y": 125, "x": 135, "z": 0, "id": 401}, {"y": 124, "x": 124, "z": 0, "id": 402}, {"y": 124, "x": 120, "z": 0, "id": 403}, {"y": 124, "x": 117, "z": 0, "id": 404}, {"y": 124, "x": 128, "z": 0, "id": 291}, {"y": 123, "x": 116, "z": 0, "id": 405}, {"y": 123, "x": 115, "z": 0, "id": 406}, {"y": 124, "x": 121, "z": 0, "id": 407}, {"y": 123, "x": 126, "z": 0, "id": 327}, {"y": 126, "x": 138, "z": 0, "id": 333}, {"y": 127, "x": 139, "z": 0, "id": 341}, {"y": 125, "x": 138, "z": 0, "id": 408}, {"y": 123, "x": 124, "z": 0, "id": 251}, {"y": 127, "x": 135, "z": 0, "id": 409}, {"y": 125, "x": 140, "z": 0, "id": 217}, {"y": 107, "x": 129, "z": 0, "id": 403}, {"y": 108, "x": 130, "z": 0, "id": 401}, {"y": 107, "x": 130, "z": 0, "id": 405}, {"y": 108, "x": 129, "z": 0, "id": 350}, {"y": 107, "x": 130, "z": 0, "id": 333}, {"y": 107, "x": 132, "z": 0, "id": 408}, {"y": 106, "x": 128, "z": 0, "id": 410}, {"y": 108, "x": 131, "z": 0, "id": 409}, {"y": 109, "x": 131, "z": 0, "id": 251}, {"y": 107, "x": 129, "z": 0, "id": 251}, {"y": 109, "x": 131, "z": 0, "id": 410}, {"y": 108, "x": 125, "z": 0, "id": 404}, {"y": 107, "x": 122, "z": 0, "id": 411}, {"y": 107, "x": 123, "z": 0, "id": 375}, {"y": 107, "x": 129, "z": 0, "id": 412}, {"y": 107, "x": 129, "z": 0, "id": 413}, {"y": 113, "x": 125, "z": 0, "id": 403}, {"y": 115, "x": 128, "z": 0, "id": 98}, {"y": 114, "x": 126, "z": 0, "id": 405}, {"y": 113, "x": 126, "z": 0, "id": 406}, {"y": 113, "x": 124, "z": 0, "id": 251}, {"y": 114, "x": 129, "z": 0, "id": 408}, {"y": 114, "x": 124, "z": 0, "id": 217}, {"y": 113, "x": 127, "z": 0, "id": 408}, {"y": 115, "x": 126, "z": 0, "id": 251}, {"y": 116, "x": 129, "z": 0, "id": 408}, {"y": 116, "x": 127, "z": 0, "id": 217}, {"y": 107, "x": 121, "z": 0, "id": 251}, {"y": 107, "x": 125, "z": 0, "id": 408}, {"y": 109, "x": 125, "z": 0, "id": 408}, {"y": 109, "x": 123, "z": 0, "id": 251}, {"y": 109, "x": 122, "z": 0, "id": 414}, {"y": 109, "x": 127, "z": 0, "id": 408}, {"y": 109, "x": 129, "z": 0, "id": 251}, {"y": 106, "x": 126, "z": 0, "id": 410}, {"y": 106, "x": 123, "z": 0, "id": 251}, {"y": 112, "x": 128, "z": 0, "id": 408}, {"y": 111, "x": 126, "z": 0, "id": 217}, {"y": 36, "x": 24, "z": 0, "id": 18}, {"y": 28, "x": 24, "z": 0, "id": 12}, {"y": 28, "x": 23, "z": 0, "id": 187}, {"y": 23, "x": 29, "z": 0, "id": 168}, {"y": 25, "x": 32, "z": 0, "id": 179}, {"y": 24, "x": 35, "z": 0, "id": 170}, {"y": 25, "x": 35, "z": 0, "id": 185}, {"y": 26, "x": 38, "z": 0, "id": 28}, {"y": 26, "x": 39, "z": 0, "id": 6}, {"y": 26, "x": 37, "z": 0, "id": 112}, {"y": 26, "x": 42, "z": 0, "id": 162}, {"y": 27, "x": 43, "z": 0, "id": 247}, {"y": 27, "x": 44, "z": 0, "id": 120}, {"y": 28, "x": 45, "z": 0, "id": 227}, {"y": 28, "x": 46, "z": 0, "id": 209}, {"y": 28, "x": 47, "z": 0, "id": 77}, {"y": 28, "x": 50, "z": 0, "id": 55}, {"y": 28, "x": 50, "z": 0, "id": 28}, {"y": 28, "x": 49, "z": 0, "id": 28}, {"y": 28, "x": 49, "z": 0, "id": 101}, {"y": 27, "x": 44, "z": 0, "id": 23}, {"y": 28, "x": 55, "z": 0, "id": 170}, {"y": 27, "x": 54, "z": 0, "id": 183}, {"y": 27, "x": 56, "z": 0, "id": 181}, {"y": 26, "x": 46, "z": 0, "id": 192}, {"y": 27, "x": 46, "z": 0, "id": 183}, {"y": 27, "x": 57, "z": 0, "id": 169}, {"y": 28, "x": 62, "z": 0, "id": 165}, {"y": 26, "x": 64, "z": 0, "id": 170}, {"y": 24, "x": 61, "z": 0, "id": 183}, {"y": 23, "x": 58, "z": 0, "id": 183}, {"y": 23, "x": 60, "z": 0, "id": 171}, {"y": 18, "x": 50, "z": 0, "id": 166}, {"y": 18, "x": 43, "z": 0, "id": 172}, {"y": 15, "x": 42, "z": 0, "id": 169}, {"y": 12, "x": 52, "z": 0, "id": 185}, {"y": 16, "x": 58, "z": 0, "id": 173}, {"y": 17, "x": 58, "z": 0, "id": 299}, {"y": 19, "x": 59, "z": 0, "id": 186}, {"y": 10, "x": 62, "z": 0, "id": 358}, {"y": 11, "x": 63, "z": 0, "id": 187}, {"y": 12, "x": 63, "z": 0, "id": 253}, {"y": 13, "x": 63, "z": 0, "id": 252}, {"y": 14, "x": 63, "z": 0, "id": 252}, {"y": 15, "x": 64, "z": 0, "id": 235}, {"y": 16, "x": 64, "z": 0, "id": 187}, {"y": 18, "x": 66, "z": 0, "id": 161}, {"y": 19, "x": 66, "z": 0, "id": 121}, {"y": 20, "x": 65, "z": 0, "id": 358}, {"y": 21, "x": 64, "z": 0, "id": 184}, {"y": 20, "x": 64, "z": 0, "id": 235}, {"y": 19, "x": 66, "z": 0, "id": 306}, {"y": 19, "x": 64, "z": 0, "id": 186}, {"y": 19, "x": 66, "z": 0, "id": 183}, {"y": 17, "x": 63, "z": 0, "id": 201}, {"y": 15, "x": 64, "z": 0, "id": 112}, {"y": 13, "x": 62, "z": 0, "id": 201}, {"y": 12, "x": 62, "z": 0, "id": 299}, {"y": 10, "x": 57, "z": 0, "id": 164}, {"y": 19, "x": 69, "z": 0, "id": 167}, {"y": 20, "x": 70, "z": 0, "id": 175}, {"y": 19, "x": 68, "z": 0, "id": 188}, {"y": 20, "x": 67, "z": 0, "id": 186}, {"y": 24, "x": 71, "z": 0, "id": 168}, {"y": 25, "x": 70, "z": 0, "id": 121}, {"y": 28, "x": 67, "z": 0, "id": 167}, {"y": 28, "x": 74, "z": 0, "id": 193}, {"y": 29, "x": 74, "z": 0, "id": 239}, {"y": 29, "x": 73, "z": 0, "id": 233}, {"y": 6, "x": 44, "z": 0, "id": 181}, {"y": 6, "x": 45, "z": 0, "id": 112}, {"y": 6, "x": 42, "z": 0, "id": 162}, {"y": 5, "x": 45, "z": 0, "id": 184}, {"y": 7, "x": 44, "z": 0, "id": 171}, {"y": 6, "x": 45, "z": 0, "id": 178}, {"y": 4, "x": 41, "z": 0, "id": 252}, {"y": 6, "x": 31, "z": 0, "id": 168}, {"y": 7, "x": 35, "z": 0, "id": 159}, {"y": 11, "x": 27, "z": 0, "id": 175}, {"y": 12, "x": 27, "z": 0, "id": 184}, {"y": 13, "x": 27, "z": 0, "id": 173}, {"y": 14, "x": 27, "z": 0, "id": 201}, {"y": 15, "x": 26, "z": 0, "id": 239}, {"y": 16, "x": 27, "z": 0, "id": 164}, {"y": 13, "x": 26, "z": 0, "id": 186}, {"y": 12, "x": 26, "z": 0, "id": 175}, {"y": 15, "x": 37, "z": 0, "id": 176}, {"y": 16, "x": 37, "z": 0, "id": 233}, {"y": 18, "x": 37, "z": 0, "id": 160}, {"y": 19, "x": 35, "z": 0, "id": 233}, {"y": 9, "x": 36, "z": 0, "id": 173}, {"y": 10, "x": 37, "z": 0, "id": 181}, {"y": 11, "x": 36, "z": 0, "id": 184}, {"y": 12, "x": 35, "z": 0, "id": 189}, {"y": 10, "x": 35, "z": 0, "id": 186}, {"y": 8, "x": 20, "z": 0, "id": 415}, {"y": 9, "x": 25, "z": 0, "id": 172}, {"y": 9, "x": 28, "z": 0, "id": 166}, {"y": 10, "x": 28, "z": 0, "id": 163}, {"y": 11, "x": 22, "z": 0, "id": 167}, {"y": 21, "x": 29, "z": 0, "id": 416}, {"y": 9, "x": 26, "z": 0, "id": 417}, {"y": 16, "x": 15, "z": 0, "id": 418}, {"y": 25, "x": 34, "z": 0, "id": 169}, {"y": 24, "x": 38, "z": 0, "id": 16}, {"y": 22, "x": 32, "z": 0, "id": 252}, {"y": 21, "x": 34, "z": 0, "id": 174}, {"y": 21, "x": 34, "z": 0, "id": 168}, {"y": 19, "x": 35, "z": 0, "id": 252}, {"y": 21, "x": 33, "z": 0, "id": 168}, {"y": 21, "x": 31, "z": 0, "id": 161}, {"y": 21, "x": 30, "z": 0, "id": 179}, {"y": 20, "x": 26, "z": 0, "id": 177}, {"y": 21, "x": 26, "z": 0, "id": 158}, {"y": 21, "x": 23, "z": 0, "id": 173}, {"y": 20, "x": 24, "z": 0, "id": 191}, {"y": 26, "x": 24, "z": 0, "id": 36}, {"y": 23, "x": 23, "z": 0, "id": 201}, {"y": 24, "x": 24, "z": 0, "id": 201}, {"y": 24, "x": 25, "z": 0, "id": 176}, {"y": 23, "x": 26, "z": 0, "id": 182}, {"y": 24, "x": 25, "z": 0, "id": 182}, {"y": 24, "x": 30, "z": 0, "id": 419}, {"y": 25, "x": 27, "z": 0, "id": 254}, {"y": 26, "x": 28, "z": 0, "id": 294}, {"y": 25, "x": 28, "z": 0, "id": 163}, {"y": 25, "x": 30, "z": 0, "id": 254}, {"y": 26, "x": 33, "z": 0, "id": 166}, {"y": 26, "x": 34, "z": 0, "id": 85}, {"y": 26, "x": 34, "z": 0, "id": 101}, {"y": 26, "x": 35, "z": 0, "id": 364}, {"y": 26, "x": 34, "z": 0, "id": 420}, {"y": 26, "x": 32, "z": 0, "id": 334}, {"y": 25, "x": 35, "z": 0, "id": 9}, {"y": 25, "x": 28, "z": 0, "id": 421}, {"y": 26, "x": 23, "z": 0, "id": 170}, {"y": 25, "x": 25, "z": 0, "id": 180}, {"y": 24, "x": 27, "z": 0, "id": 178}, {"y": 22, "x": 22, "z": 0, "id": 252}, {"y": 24, "x": 22, "z": 0, "id": 161}, {"y": 24, "x": 36, "z": 0, "id": 235}, {"y": 23, "x": 37, "z": 0, "id": 178}, {"y": 25, "x": 37, "z": 0, "id": 160}, {"y": 23, "x": 38, "z": 0, "id": 172}, {"y": 26, "x": 39, "z": 0, "id": 172}, {"y": 27, "x": 41, "z": 0, "id": 177}, {"y": 3, "x": 39, "z": 0, "id": 422}, {"y": 11, "x": 15, "z": 0, "id": 423}, {"y": 5, "x": 18, "z": 0, "id": 166}, {"y": 6, "x": 16, "z": 0, "id": 160}, {"y": 5, "x": 24, "z": 0, "id": 160}, {"y": 2, "x": 13, "z": 0, "id": 166}, {"y": 7, "x": 14, "z": 0, "id": 166}, {"y": 2, "x": 28, "z": 0, "id": 190}, {"y": 6, "x": 20, "z": 0, "id": 172}, {"y": 10, "x": 12, "z": 0, "id": 424}, {"y": 9, "x": 22, "z": 0, "id": 177}, {"y": 10, "x": 21, "z": 0, "id": 238}, {"y": 10, "x": 20, "z": 0, "id": 167}, {"y": 5, "x": 47, "z": 0, "id": 419}, {"y": 11, "x": 55, "z": 0, "id": 416}, {"y": 10, "x": 44, "z": 0, "id": 418}, {"y": 11, "x": 48, "z": 0, "id": 358}, {"y": 7, "x": 59, "z": 0, "id": 422}, {"y": 7, "x": 55, "z": 0, "id": 162}, {"y": 8, "x": 57, "z": 0, "id": 178}, {"y": 8, "x": 57, "z": 0, "id": 12}, {"y": 6, "x": 48, "z": 0, "id": 188}, {"y": 7, "x": 50, "z": 0, "id": 12}, {"y": 8, "x": 48, "z": 0, "id": 253}, {"y": 7, "x": 50, "z": 0, "id": 159}, {"y": 6, "x": 53, "z": 0, "id": 168}, {"y": 3, "x": 50, "z": 0, "id": 159}, {"y": 0, "x": 53, "z": 0, "id": 170}, {"y": 1, "x": 52, "z": 0, "id": 171}, {"y": 2, "x": 51, "z": 0, "id": 183}, {"y": 6, "x": 62, "z": 0, "id": 170}, {"y": 7, "x": 62, "z": 0, "id": 299}, {"y": 8, "x": 62, "z": 0, "id": 166}, {"y": 9, "x": 62, "z": 0, "id": 184}, {"y": 9, "x": 61, "z": 0, "id": 184}, {"y": 6, "x": 63, "z": 0, "id": 182}, {"y": 6, "x": 63, "z": 0, "id": 170}, {"y": 4, "x": 64, "z": 0, "id": 168}, {"y": 2, "x": 61, "z": 0, "id": 415}, {"y": 2, "x": 68, "z": 0, "id": 425}, {"y": 8, "x": 70, "z": 0, "id": 426}, {"y": 17, "x": 98, "z": 0, "id": 416}, {"y": 11, "x": 91, "z": 0, "id": 418}, {"y": 10, "x": 97, "z": 0, "id": 180}, {"y": 22, "x": 92, "z": 0, "id": 166}, {"y": 24, "x": 93, "z": 0, "id": 172}, {"y": 26, "x": 91, "z": 0, "id": 172}, {"y": 25, "x": 94, "z": 0, "id": 166}, {"y": 20, "x": 92, "z": 0, "id": 166}, {"y": 23, "x": 90, "z": 0, "id": 185}, {"y": 22, "x": 90, "z": 0, "id": 172}, {"y": 23, "x": 86, "z": 0, "id": 172}, {"y": 12, "x": 79, "z": 0, "id": 425}, {"y": 6, "x": 80, "z": 0, "id": 422}, {"y": 1, "x": 81, "z": 0, "id": 254}, {"y": 3, "x": 83, "z": 0, "id": 181}, {"y": 5, "x": 85, "z": 0, "id": 181}, {"y": 5, "x": 84, "z": 0, "id": 181}, {"y": 4, "x": 85, "z": 0, "id": 185}, {"y": 6, "x": 97, "z": 0, "id": 252}, {"y": 8, "x": 98, "z": 0, "id": 185}, {"y": 11, "x": 93, "z": 0, "id": 163}, {"y": 12, "x": 94, "z": 0, "id": 181}, {"y": 13, "x": 95, "z": 0, "id": 252}, {"y": 14, "x": 95, "z": 0, "id": 179}, {"y": 15, "x": 94, "z": 0, "id": 234}, {"y": 14, "x": 94, "z": 0, "id": 178}, {"y": 16, "x": 94, "z": 0, "id": 172}, {"y": 23, "x": 83, "z": 0, "id": 201}, {"y": 24, "x": 84, "z": 0, "id": 172}, {"y": 26, "x": 82, "z": 0, "id": 419}, {"y": 24, "x": 96, "z": 0, "id": 427}, {"y": 29, "x": 96, "z": 0, "id": 179}, {"y": 30, "x": 96, "z": 0, "id": 178}, {"y": 29, "x": 97, "z": 0, "id": 160}, {"y": 29, "x": 95, "z": 0, "id": 166}, {"y": 29, "x": 98, "z": 0, "id": 169}, {"y": 11, "x": 107, "z": 0, "id": 428}, {"y": 14, "x": 103, "z": 0, "id": 429}, {"y": 10, "x": 97, "z": 0, "id": 415}, {"y": 10, "x": 96, "z": 0, "id": 159}, {"y": 11, "x": 105, "z": 0, "id": 179}, {"y": 12, "x": 103, "z": 0, "id": 159}, {"y": 12, "x": 102, "z": 0, "id": 252}, {"y": 12, "x": 105, "z": 0, "id": 168}, {"y": 31, "x": 102, "z": 0, "id": 160}, {"y": 32, "x": 102, "z": 0, "id": 179}, {"y": 34, "x": 100, "z": 0, "id": 161}, {"y": 26, "x": 92, "z": 0, "id": 167}, {"y": 3, "x": 133, "z": 0, "id": 416}, {"y": 3, "x": 139, "z": 0, "id": 180}, {"y": 4, "x": 141, "z": 0, "id": 112}, {"y": 4, "x": 140, "z": 0, "id": 180}, {"y": 10, "x": 144, "z": 0, "id": 418}, {"y": 7, "x": 126, "z": 0, "id": 419}, {"y": 1, "x": 120, "z": 0, "id": 167}, {"y": 3, "x": 120, "z": 0, "id": 185}, {"y": 4, "x": 119, "z": 0, "id": 182}, {"y": 4, "x": 135, "z": 0, "id": 168}, {"y": 5, "x": 134, "z": 0, "id": 192}, {"y": 6, "x": 134, "z": 0, "id": 239}, {"y": 6, "x": 134, "z": 0, "id": 178}, {"y": 9, "x": 125, "z": 0, "id": 168}, {"y": 10, "x": 126, "z": 0, "id": 167}, {"y": 11, "x": 119, "z": 0, "id": 238}, {"y": 12, "x": 120, "z": 0, "id": 201}, {"y": 13, "x": 122, "z": 0, "id": 178}, {"y": 12, "x": 122, "z": 0, "id": 164}, {"y": 12, "x": 119, "z": 0, "id": 173}, {"y": 19, "x": 125, "z": 0, "id": 425}, {"y": 19, "x": 144, "z": 0, "id": 170}, {"y": 23, "x": 145, "z": 0, "id": 180}, {"y": 32, "x": 133, "z": 0, "id": 179}, {"y": 31, "x": 139, "z": 0, "id": 159}, {"y": 30, "x": 138, "z": 0, "id": 166}, {"y": 32, "x": 137, "z": 0, "id": 172}, {"y": 32, "x": 139, "z": 0, "id": 166}, {"y": 33, "x": 135, "z": 0, "id": 172}, {"y": 34, "x": 135, "z": 0, "id": 166}, {"y": 31, "x": 136, "z": 0, "id": 160}, {"y": 30, "x": 130, "z": 0, "id": 168}, {"y": 31, "x": 130, "z": 0, "id": 168}, {"y": 29, "x": 130, "z": 0, "id": 252}, {"y": 33, "x": 138, "z": 0, "id": 166}, {"y": 35, "x": 136, "z": 0, "id": 18}, {"y": 23, "x": 119, "z": 0, "id": 419}, {"y": 32, "x": 121, "z": 0, "id": 418}, {"y": 22, "x": 106, "z": 0, "id": 422}, {"y": 31, "x": 111, "z": 0, "id": 165}, {"y": 31, "x": 109, "z": 0, "id": 425}, {"y": 21, "x": 137, "z": 0, "id": 415}, {"y": 21, "x": 138, "z": 0, "id": 166}, {"y": 22, "x": 137, "z": 0, "id": 188}, {"y": 23, "x": 138, "z": 0, "id": 235}, {"y": 24, "x": 138, "z": 0, "id": 186}, {"y": 25, "x": 138, "z": 0, "id": 234}, {"y": 25, "x": 138, "z": 0, "id": 12}, {"y": 23, "x": 137, "z": 0, "id": 233}, {"y": 22, "x": 138, "z": 0, "id": 253}, {"y": 25, "x": 138, "z": 0, "id": 172}, {"y": 24, "x": 134, "z": 0, "id": 166}, {"y": 24, "x": 132, "z": 0, "id": 427}, {"y": 22, "x": 131, "z": 0, "id": 190}, {"y": 40, "x": 123, "z": 0, "id": 179}, {"y": 38, "x": 122, "z": 0, "id": 178}, {"y": 37, "x": 121, "z": 0, "id": 161}, {"y": 35, "x": 119, "z": 0, "id": 168}, {"y": 43, "x": 119, "z": 0, "id": 160}, {"y": 40, "x": 117, "z": 0, "id": 160}, {"y": 37, "x": 117, "z": 0, "id": 178}, {"y": 36, "x": 114, "z": 0, "id": 159}, {"y": 35, "x": 112, "z": 0, "id": 166}, {"y": 35, "x": 109, "z": 0, "id": 172}, {"y": 36, "x": 111, "z": 0, "id": 166}, {"y": 35, "x": 135, "z": 0, "id": 185}, {"y": 34, "x": 133, "z": 0, "id": 238}, {"y": 34, "x": 132, "z": 0, "id": 201}, {"y": 34, "x": 130, "z": 0, "id": 201}, {"y": 37, "x": 132, "z": 0, "id": 169}, {"y": 35, "x": 131, "z": 0, "id": 201}, {"y": 39, "x": 132, "z": 0, "id": 201}, {"y": 33, "x": 131, "z": 0, "id": 238}, {"y": 34, "x": 122, "z": 0, "id": 189}, {"y": 35, "x": 124, "z": 0, "id": 170}, {"y": 36, "x": 124, "z": 0, "id": 161}, {"y": 37, "x": 125, "z": 0, "id": 6}, {"y": 36, "x": 126, "z": 0, "id": 170}, {"y": 47, "x": 116, "z": 0, "id": 166}, {"y": 46, "x": 120, "z": 0, "id": 172}, {"y": 43, "x": 118, "z": 0, "id": 161}, {"y": 44, "x": 121, "z": 0, "id": 174}, {"y": 44, "x": 120, "z": 0, "id": 161}, {"y": 39, "x": 143, "z": 0, "id": 245}, {"y": 39, "x": 140, "z": 0, "id": 18}, {"y": 39, "x": 124, "z": 0, "id": 175}, {"y": 38, "x": 123, "z": 0, "id": 189}, {"y": 41, "x": 120, "z": 0, "id": 189}, {"y": 41, "x": 124, "z": 0, "id": 189}, {"y": 13, "x": 129, "z": 0, "id": 430}, {"y": 27, "x": 57, "z": 0, "id": 431}, {"y": 28, "x": 56, "z": 0, "id": 181}, {"y": 29, "x": 56, "z": 0, "id": 53}, {"y": 30, "x": 60, "z": 0, "id": 259}, {"y": 7, "x": 38, "z": 0, "id": 432}, {"y": 8, "x": 36, "z": 0, "id": 433}, {"y": 10, "x": 66, "z": 0, "id": 430}, {"y": 18, "x": 74, "z": 0, "id": 416}, {"y": 23, "x": 19, "z": 0, "id": 174}, {"y": 24, "x": 19, "z": 0, "id": 5}, {"y": 23, "x": 20, "z": 0, "id": 5}, {"y": 23, "x": 20, "z": 0, "id": 177}, {"y": 24, "x": 20, "z": 0, "id": 179}, {"y": 25, "x": 49, "z": 0, "id": 159}, {"y": 29, "x": 84, "z": 0, "id": 434}, {"y": 20, "x": 131, "z": 0, "id": 435}, {"y": 48, "x": 128, "z": 0, "id": 436}, {"y": 57, "x": 132, "z": 0, "id": 357}, {"y": 54, "x": 131, "z": 0, "id": 215}, {"y": 56, "x": 128, "z": 0, "id": 437}, {"y": 73, "x": 120, "z": 0, "id": 2}, {"y": 82, "x": 115, "z": 0, "id": 25}, {"y": 81, "x": 117, "z": 0, "id": 18}, {"y": 67, "x": 112, "z": 0, "id": 19}, {"y": 61, "x": 121, "z": 0, "id": 438}, {"y": 55, "x": 113, "z": 0, "id": 419}, {"y": 55, "x": 120, "z": 0, "id": 439}, {"y": 55, "x": 123, "z": 0, "id": 348}, {"y": 57, "x": 122, "z": 0, "id": 4}, {"y": 58, "x": 122, "z": 0, "id": 129}, {"y": 57, "x": 121, "z": 0, "id": 152}, {"y": 58, "x": 120, "z": 0, "id": 123}, {"y": 59, "x": 121, "z": 0, "id": 313}, {"y": 56, "x": 106, "z": 0, "id": 141}, {"y": 57, "x": 106, "z": 0, "id": 144}, {"y": 58, "x": 106, "z": 0, "id": 113}, {"y": 58, "x": 105, "z": 0, "id": 184}, {"y": 71, "x": 124, "z": 0, "id": 424}, {"y": 86, "x": 112, "z": 0, "id": 440}, {"y": 84, "x": 113, "z": 0, "id": 22}, {"y": 85, "x": 113, "z": 0, "id": 47}, {"y": 85, "x": 114, "z": 0, "id": 196}, {"y": 85, "x": 113, "z": 0, "id": 441}, {"y": 84, "x": 112, "z": 0, "id": 366}, {"y": 86, "x": 113, "z": 0, "id": 44}, {"y": 90, "x": 111, "z": 0, "id": 235}, {"y": 88, "x": 111, "z": 0, "id": 184}, {"y": 92, "x": 109, "z": 0, "id": 12}, {"y": 91, "x": 110, "z": 0, "id": 442}, {"y": 79, "x": 109, "z": 0, "id": 443}, {"y": 62, "x": 108, "z": 0, "id": 271}, {"y": 64, "x": 110, "z": 0, "id": 84}, {"y": 64, "x": 112, "z": 0, "id": 73}, {"y": 64, "x": 111, "z": 0, "id": 56}, {"y": 65, "x": 110, "z": 0, "id": 268}, {"y": 65, "x": 111, "z": 0, "id": 259}, {"y": 65, "x": 112, "z": 0, "id": 232}, {"y": 60, "x": 123, "z": 0, "id": 53}, {"y": 59, "x": 123, "z": 0, "id": 27}, {"y": 65, "x": 126, "z": 0, "id": 18}, {"y": 63, "x": 125, "z": 0, "id": 78}, {"y": 64, "x": 123, "z": 0, "id": 205}, {"y": 66, "x": 123, "z": 0, "id": 249}, {"y": 67, "x": 123, "z": 0, "id": 111}, {"y": 63, "x": 127, "z": 0, "id": 358}, {"y": 63, "x": 117, "z": 0, "id": 86}, {"y": 64, "x": 118, "z": 0, "id": 93}, {"y": 67, "x": 120, "z": 0, "id": 3}, {"y": 64, "x": 121, "z": 0, "id": 313}, {"y": 65, "x": 116, "z": 0, "id": 241}, {"y": 64, "x": 116, "z": 0, "id": 298}, {"y": 63, "x": 118, "z": 0, "id": 219}, {"y": 59, "x": 117, "z": 0, "id": 266}, {"y": 60, "x": 117, "z": 0, "id": 152}, {"y": 62, "x": 111, "z": 0, "id": 124}, {"y": 59, "x": 118, "z": 0, "id": 215}, {"y": 61, "x": 116, "z": 0, "id": 42}, {"y": 62, "x": 116, "z": 0, "id": 358}, {"y": 63, "x": 115, "z": 0, "id": 231}, {"y": 64, "x": 114, "z": 0, "id": 265}, {"y": 63, "x": 115, "z": 0, "id": 291}, {"y": 62, "x": 116, "z": 0, "id": 53}, {"y": 63, "x": 115, "z": 0, "id": 402}, {"y": 62, "x": 114, "z": 0, "id": 107}, {"y": 63, "x": 114, "z": 0, "id": 27}, {"y": 61, "x": 116, "z": 0, "id": 236}, {"y": 61, "x": 114, "z": 0, "id": 92}, {"y": 76, "x": 116, "z": 0, "id": 92}, {"y": 77, "x": 117, "z": 0, "id": 53}, {"y": 79, "x": 117, "z": 0, "id": 13}, {"y": 78, "x": 116, "z": 0, "id": 444}, {"y": 78, "x": 115, "z": 0, "id": 28}, {"y": 76, "x": 117, "z": 0, "id": 356}, {"y": 71, "x": 79, "z": 0, "id": 18}, {"y": 68, "x": 86, "z": 0, "id": 445}, {"y": 83, "x": 77, "z": 0, "id": 446}, {"y": 70, "x": 99, "z": 0, "id": 447}, {"y": 78, "x": 98, "z": 0, "id": 437}, {"y": 78, "x": 77, "z": 0, "id": 448}, {"y": 83, "x": 76, "z": 0, "id": 156}, {"y": 69, "x": 78, "z": 0, "id": 124}, {"y": 68, "x": 82, "z": 0, "id": 449}, {"y": 71, "x": 76, "z": 0, "id": 7}, {"y": 68, "x": 79, "z": 0, "id": 235}, {"y": 68, "x": 82, "z": 0, "id": 184}, {"y": 83, "x": 96, "z": 0, "id": 443}, {"y": 91, "x": 102, "z": 0, "id": 450}, {"y": 86, "x": 97, "z": 0, "id": 32}, {"y": 87, "x": 97, "z": 0, "id": 202}, {"y": 89, "x": 98, "z": 0, "id": 51}, {"y": 89, "x": 96, "z": 0, "id": 316}, {"y": 87, "x": 97, "z": 0, "id": 47}, {"y": 86, "x": 98, "z": 0, "id": 146}, {"y": 83, "x": 85, "z": 0, "id": 118}, {"y": 85, "x": 86, "z": 0, "id": 22}, {"y": 86, "x": 85, "z": 0, "id": 73}, {"y": 87, "x": 85, "z": 0, "id": 88}, {"y": 88, "x": 85, "z": 0, "id": 202}, {"y": 88, "x": 84, "z": 0, "id": 235}, {"y": 87, "x": 85, "z": 0, "id": 144}, {"y": 87, "x": 85, "z": 0, "id": 137}, {"y": 86, "x": 85, "z": 0, "id": 222}, {"y": 84, "x": 84, "z": 0, "id": 261}, {"y": 51, "x": 61, "z": 0, "id": 436}, {"y": 51, "x": 70, "z": 0, "id": 19}, {"y": 57, "x": 61, "z": 0, "id": 438}, {"y": 37, "x": 73, "z": 0, "id": 451}, {"y": 52, "x": 61, "z": 0, "id": 109}, {"y": 55, "x": 51, "z": 0, "id": 18}, {"y": 57, "x": 59, "z": 0, "id": 452}, {"y": 52, "x": 57, "z": 0, "id": 437}, {"y": 61, "x": 41, "z": 0, "id": 451}, {"y": 63, "x": 43, "z": 0, "id": 106}, {"y": 62, "x": 58, "z": 0, "id": 422}, {"y": 42, "x": 41, "z": 0, "id": 451}, {"y": 71, "x": 42, "z": 0, "id": 127}, {"y": 52, "x": 38, "z": 0, "id": 436}, {"y": 52, "x": 37, "z": 0, "id": 32}, {"y": 51, "x": 38, "z": 0, "id": 37}, {"y": 51, "x": 35, "z": 0, "id": 35}, {"y": 42, "x": 52, "z": 0, "id": 197}, {"y": 39, "x": 52, "z": 0, "id": 453}, {"y": 41, "x": 43, "z": 0, "id": 453}, {"y": 38, "x": 45, "z": 0, "id": 120}, {"y": 68, "x": 71, "z": 0, "id": 440}, {"y": 66, "x": 63, "z": 0, "id": 259}, {"y": 68, "x": 63, "z": 0, "id": 451}, {"y": 59, "x": 66, "z": 0, "id": 109}, {"y": 61, "x": 68, "z": 0, "id": 454}, {"y": 86, "x": 67, "z": 0, "id": 26}, {"y": 86, "x": 64, "z": 0, "id": 455}, {"y": 84, "x": 64, "z": 0, "id": 453}, {"y": 81, "x": 69, "z": 0, "id": 197}, {"y": 87, "x": 55, "z": 0, "id": 438}, {"y": 87, "x": 50, "z": 0, "id": 18}, {"y": 86, "x": 49, "z": 0, "id": 32}, {"y": 86, "x": 51, "z": 0, "id": 30}, {"y": 88, "x": 48, "z": 0, "id": 240}, {"y": 87, "x": 52, "z": 0, "id": 37}, {"y": 89, "x": 49, "z": 0, "id": 156}, {"y": 93, "x": 63, "z": 0, "id": 456}, {"y": 96, "x": 81, "z": 0, "id": 422}, {"y": 97, "x": 86, "z": 0, "id": 330}, {"y": 42, "x": 82, "z": 0, "id": 348}, {"y": 41, "x": 77, "z": 0, "id": 86}, {"y": 45, "x": 79, "z": 0, "id": 409}, {"y": 83, "x": 93, "z": 0, "id": 39}, {"y": 83, "x": 86, "z": 0, "id": 90}, {"y": 84, "x": 81, "z": 0, "id": 13}, {"y": 85, "x": 81, "z": 0, "id": 48}, {"y": 87, "x": 81, "z": 0, "id": 6}, {"y": 78, "x": 81, "z": 0, "id": 103}, {"y": 97, "x": 34, "z": 0, "id": 386}, {"y": 105, "x": 52, "z": 0, "id": 70}, {"y": 103, "x": 35, "z": 0, "id": 390}, {"y": 132, "x": 100, "z": 0, "id": 18}, {"y": 130, "x": 107, "z": 0, "id": 424}, {"y": 129, "x": 106, "z": 0, "id": 271}, {"y": 129, "x": 105, "z": 0, "id": 321}, {"y": 129, "x": 105, "z": 0, "id": 244}, {"y": 129, "x": 106, "z": 0, "id": 457}, {"y": 131, "x": 98, "z": 0, "id": 251}, {"y": 130, "x": 100, "z": 0, "id": 251}, {"y": 128, "x": 101, "z": 0, "id": 414}, {"y": 128, "x": 106, "z": 0, "id": 410}, {"y": 135, "x": 108, "z": 0, "id": 408}, {"y": 136, "x": 107, "z": 0, "id": 217}, {"y": 136, "x": 107, "z": 0, "id": 414}, {"y": 142, "x": 106, "z": 0, "id": 408}, {"y": 140, "x": 105, "z": 0, "id": 414}, {"y": 139, "x": 106, "z": 0, "id": 410}, {"y": 138, "x": 107, "z": 0, "id": 251}, {"y": 140, "x": 108, "z": 0, "id": 408}, {"y": 133, "x": 109, "z": 0, "id": 458}, {"y": 44, "x": 18, "z": 0, "id": 438}, {"y": 45, "x": 13, "z": 0, "id": 448}, {"y": 47, "x": 16, "z": 0, "id": 110}, {"y": 36, "x": 40, "z": 0, "id": 456}, {"y": 21, "x": 14, "z": 0, "id": 217}, {"y": 32, "x": 24, "z": 0, "id": 403}, {"y": 28, "x": 24, "z": 0, "id": 403}, {"y": 27, "x": 21, "z": 0, "id": 415}, {"y": 42, "x": 9, "z": 0, "id": 54}, {"y": 43, "x": 8, "z": 0, "id": 48}, {"y": 43, "x": 6, "z": 0, "id": 92}, {"y": 42, "x": 6, "z": 0, "id": 316}, {"y": 41, "x": 7, "z": 0, "id": 459}, {"y": 40, "x": 9, "z": 0, "id": 113}, {"y": 43, "x": 9, "z": 0, "id": 460}, {"y": 57, "x": 46, "z": 0, "id": 461}, {"y": 65, "x": 53, "z": 0, "id": 460}, {"y": 45, "x": 36, "z": 0, "id": 460}, {"y": 88, "x": 30, "z": 0, "id": 460}, {"y": 89, "x": 60, "z": 0, "id": 460}, {"y": 109, "x": 39, "z": 0, "id": 460}, {"y": 130, "x": 101, "z": 0, "id": 460}, {"y": 89, "x": 79, "z": 0, "id": 460}, {"y": 96, "x": 94, "z": 0, "id": 460}, {"y": 73, "x": 106, "z": 0, "id": 460}, {"y": 51, "x": 124, "z": 0, "id": 460}, {"y": 32, "x": 131, "z": 0, "id": 460}, {"y": 18, "x": 77, "z": 0, "id": 460}, {"y": 77, "x": 23, "z": 0, "id": 462}, {"y": 76, "x": 34, "z": 0, "id": 439}, {"y": 14, "x": 36, "z": 0, "id": 463}, {"y": 25, "x": 17, "z": 0, "id": 201}, {"y": 12, "x": 34, "z": 0, "id": 165}, {"y": 11, "x": 29, "z": 0, "id": 460}, {"y": 12, "x": 30, "z": 0, "id": 191}, {"y": 13, "x": 29, "z": 0, "id": 252}, {"y": 13, "x": 27, "z": 0, "id": 167}, {"y": 10, "x": 30, "z": 0, "id": 253}, {"y": 11, "x": 31, "z": 0, "id": 161}, {"y": 22, "x": 15, "z": 0, "id": 464}, {"y": 3, "x": 72, "z": 0, "id": 465}, {"y": 2, "x": 73, "z": 0, "id": 158}, {"y": 3, "x": 74, "z": 0, "id": 178}, {"y": 3, "x": 71, "z": 0, "id": 185}, {"y": 2, "x": 69, "z": 0, "id": 166}, {"y": 3, "x": 64, "z": 0, "id": 185}, {"y": 2, "x": 62, "z": 0, "id": 161}, {"y": 2, "x": 61, "z": 0, "id": 168}, {"y": 11, "x": 79, "z": 0, "id": 165}, {"y": 10, "x": 74, "z": 0, "id": 466}, {"y": 16, "x": 57, "z": 0, "id": 467}, {"y": 0, "x": 21, "z": 0, "id": 182}, {"y": 1, "x": 21, "z": 0, "id": 177}, {"y": 2, "x": 21, "z": 0, "id": 177}, {"y": 13, "x": 75, "z": 0, "id": 468}, {"y": 8, "x": 81, "z": 0, "id": 469}, {"y": 27, "x": 78, "z": 0, "id": 470}, {"y": 24, "x": 86, "z": 0, "id": 467}, {"y": 17, "x": 78, "z": 0, "id": 254}, {"y": 19, "x": 99, "z": 0, "id": 463}, {"y": 31, "x": 96, "z": 0, "id": 471}, {"y": 36, "x": 110, "z": 0, "id": 472}, {"y": 30, "x": 115, "z": 0, "id": 473}, {"y": 27, "x": 121, "z": 0, "id": 474}, {"y": 16, "x": 136, "z": 0, "id": 475}, {"y": 28, "x": 126, "z": 0, "id": 476}, {"y": 12, "x": 126, "z": 0, "id": 428}, {"y": 29, "x": 140, "z": 0, "id": 429}, {"y": 24, "x": 122, "z": 0, "id": 477}, {"y": 39, "x": 114, "z": 0, "id": 477}, {"y": 48, "x": 113, "z": 0, "id": 426}, {"y": 55, "x": 108, "z": 0, "id": 478}, {"y": 52, "x": 104, "z": 0, "id": 323}, {"y": 52, "x": 105, "z": 0, "id": 336}, {"y": 54, "x": 102, "z": 0, "id": 297}, {"y": 55, "x": 104, "z": 0, "id": 23}, {"y": 55, "x": 105, "z": 0, "id": 83}, {"y": 54, "x": 117, "z": 0, "id": 183}, {"y": 55, "x": 117, "z": 0, "id": 170}, {"y": 56, "x": 116, "z": 0, "id": 171}, {"y": 58, "x": 129, "z": 0, "id": 467}, {"y": 63, "x": 112, "z": 0, "id": 467}, {"y": 69, "x": 127, "z": 0, "id": 464}, {"y": 93, "x": 108, "z": 0, "id": 478}, {"y": 98, "x": 57, "z": 0, "id": 479}, {"y": 100, "x": 60, "z": 0, "id": 16}, {"y": 101, "x": 60, "z": 0, "id": 26}, {"y": 102, "x": 58, "z": 0, "id": 285}, {"y": 101, "x": 55, "z": 0, "id": 122}, {"y": 100, "x": 55, "z": 0, "id": 272}, {"y": 101, "x": 57, "z": 0, "id": 93}, {"y": 104, "x": 65, "z": 0, "id": 54}, {"y": 99, "x": 80, "z": 0, "id": 112}, {"y": 86, "x": 72, "z": 0, "id": 480}, {"y": 93, "x": 76, "z": 0, "id": 481}, {"y": 97, "x": 75, "z": 0, "id": 482}, {"y": 72, "x": 69, "z": 0, "id": 469}, {"y": 25, "x": 26, "z": 0, "id": 478}, {"y": 26, "x": 24, "z": 0, "id": 9}, {"y": 24, "x": 25, "z": 0, "id": 364}, {"y": 25, "x": 24, "z": 0, "id": 364}, {"y": 25, "x": 25, "z": 0, "id": 185}, {"y": 27, "x": 24, "z": 0, "id": 185}, {"y": 27, "x": 25, "z": 0, "id": 33}, {"y": 27, "x": 26, "z": 0, "id": 240}, {"y": 34, "x": 18, "z": 0, "id": 483}, {"y": 47, "x": 27, "z": 0, "id": 469}, {"y": 66, "x": 18, "z": 0, "id": 47}, {"y": 74, "x": 19, "z": 0, "id": 157}, {"y": 78, "x": 16, "z": 0, "id": 293}, {"y": 79, "x": 17, "z": 0, "id": 321}, {"y": 80, "x": 17, "z": 0, "id": 119}, {"y": 81, "x": 18, "z": 0, "id": 118}, {"y": 82, "x": 19, "z": 0, "id": 316}, {"y": 83, "x": 17, "z": 0, "id": 403}, {"y": 84, "x": 17, "z": 0, "id": 215}, {"y": 82, "x": 21, "z": 0, "id": 30}, {"y": 83, "x": 22, "z": 0, "id": 356}, {"y": 84, "x": 21, "z": 0, "id": 331}, {"y": 83, "x": 22, "z": 0, "id": 51}, {"y": 83, "x": 22, "z": 0, "id": 4}, {"y": 82, "x": 22, "z": 0, "id": 220}, {"y": 81, "x": 22, "z": 0, "id": 55}, {"y": 80, "x": 21, "z": 0, "id": 32}, {"y": 82, "x": 19, "z": 0, "id": 124}, {"y": 81, "x": 17, "z": 0, "id": 83}, {"y": 79, "x": 16, "z": 0, "id": 271}, {"y": 79, "x": 17, "z": 0, "id": 444}, {"y": 75, "x": 18, "z": 0, "id": 141}, {"y": 75, "x": 19, "z": 0, "id": 351}, {"y": 78, "x": 18, "z": 0, "id": 297}, {"y": 80, "x": 23, "z": 0, "id": 235}, {"y": 80, "x": 24, "z": 0, "id": 263}, {"y": 82, "x": 23, "z": 0, "id": 88}, {"y": 83, "x": 24, "z": 0, "id": 117}, {"y": 80, "x": 14, "z": 0, "id": 151}, {"y": 81, "x": 14, "z": 0, "id": 122}, {"y": 82, "x": 15, "z": 0, "id": 332}, {"y": 83, "x": 15, "z": 0, "id": 152}, {"y": 83, "x": 13, "z": 0, "id": 287}, {"y": 83, "x": 12, "z": 0, "id": 241}, {"y": 83, "x": 14, "z": 0, "id": 22}, {"y": 81, "x": 15, "z": 0, "id": 225}, {"y": 78, "x": 8, "z": 0, "id": 357}, {"y": 79, "x": 10, "z": 0, "id": 408}, {"y": 80, "x": 9, "z": 0, "id": 217}, {"y": 81, "x": 9, "z": 0, "id": 409}, {"y": 83, "x": 9, "z": 0, "id": 410}, {"y": 84, "x": 11, "z": 0, "id": 484}, {"y": 85, "x": 12, "z": 0, "id": 258}, {"y": 87, "x": 14, "z": 0, "id": 408}, {"y": 88, "x": 15, "z": 0, "id": 274}, {"y": 90, "x": 17, "z": 0, "id": 232}, {"y": 91, "x": 16, "z": 0, "id": 251}, {"y": 88, "x": 14, "z": 0, "id": 304}, {"y": 89, "x": 15, "z": 0, "id": 251}, {"y": 88, "x": 12, "z": 0, "id": 409}, {"y": 87, "x": 11, "z": 0, "id": 332}, {"y": 87, "x": 12, "z": 0, "id": 251}, {"y": 86, "x": 10, "z": 0, "id": 408}, {"y": 84, "x": 10, "z": 0, "id": 408}, {"y": 83, "x": 7, "z": 0, "id": 485}, {"y": 82, "x": 8, "z": 0, "id": 330}, {"y": 82, "x": 9, "z": 0, "id": 217}, {"y": 81, "x": 8, "z": 0, "id": 217}, {"y": 79, "x": 9, "z": 0, "id": 251}, {"y": 91, "x": 18, "z": 0, "id": 259}, {"y": 69, "x": 6, "z": 0, "id": 331}, {"y": 70, "x": 6, "z": 0, "id": 224}, {"y": 71, "x": 6, "z": 0, "id": 109}, {"y": 73, "x": 6, "z": 0, "id": 217}, {"y": 75, "x": 6, "z": 0, "id": 410}, {"y": 77, "x": 7, "z": 0, "id": 408}, {"y": 79, "x": 6, "z": 0, "id": 409}, {"y": 80, "x": 7, "z": 0, "id": 484}, {"y": 78, "x": 7, "z": 0, "id": 251}, {"y": 75, "x": 5, "z": 0, "id": 410}, {"y": 74, "x": 4, "z": 0, "id": 324}, {"y": 73, "x": 4, "z": 0, "id": 357}, {"y": 72, "x": 5, "z": 0, "id": 484}, {"y": 71, "x": 6, "z": 0, "id": 330}, {"y": 71, "x": 4, "z": 0, "id": 274}, {"y": 71, "x": 5, "z": 0, "id": 410}, {"y": 95, "x": 18, "z": 0, "id": 198}, {"y": 96, "x": 19, "z": 0, "id": 358}, {"y": 97, "x": 19, "z": 0, "id": 289}, {"y": 98, "x": 20, "z": 0, "id": 351}, {"y": 99, "x": 20, "z": 0, "id": 263}, {"y": 100, "x": 21, "z": 0, "id": 317}, {"y": 101, "x": 22, "z": 0, "id": 255}, {"y": 101, "x": 22, "z": 0, "id": 291}, {"y": 100, "x": 21, "z": 0, "id": 256}, {"y": 100, "x": 20, "z": 0, "id": 155}, {"y": 98, "x": 19, "z": 0, "id": 276}, {"y": 98, "x": 20, "z": 0, "id": 37}, {"y": 96, "x": 18, "z": 0, "id": 8}, {"y": 95, "x": 19, "z": 0, "id": 124}, {"y": 102, "x": 19, "z": 0, "id": 272}, {"y": 103, "x": 21, "z": 0, "id": 83}, {"y": 104, "x": 22, "z": 0, "id": 36}, {"y": 105, "x": 22, "z": 0, "id": 89}, {"y": 104, "x": 21, "z": 0, "id": 242}, {"y": 103, "x": 22, "z": 0, "id": 118}, {"y": 104, "x": 21, "z": 0, "id": 27}, {"y": 110, "x": 20, "z": 0, "id": 486}, {"y": 110, "x": 22, "z": 0, "id": 107}, {"y": 116, "x": 28, "z": 0, "id": 265}, {"y": 117, "x": 29, "z": 0, "id": 272}, {"y": 118, "x": 30, "z": 0, "id": 487}, {"y": 119, "x": 30, "z": 0, "id": 344}, {"y": 119, "x": 29, "z": 0, "id": 295}, {"y": 118, "x": 30, "z": 0, "id": 124}, {"y": 117, "x": 28, "z": 0, "id": 488}, {"y": 106, "x": 23, "z": 0, "id": 287}, {"y": 107, "x": 23, "z": 0, "id": 267}, {"y": 108, "x": 24, "z": 0, "id": 215}, {"y": 109, "x": 25, "z": 0, "id": 236}, {"y": 109, "x": 23, "z": 0, "id": 109}, {"y": 108, "x": 24, "z": 0, "id": 73}, {"y": 111, "x": 23, "z": 0, "id": 108}, {"y": 112, "x": 25, "z": 0, "id": 261}, {"y": 114, "x": 26, "z": 0, "id": 28}, {"y": 116, "x": 26, "z": 0, "id": 402}, {"y": 117, "x": 25, "z": 0, "id": 486}, {"y": 114, "x": 26, "z": 0, "id": 131}, {"y": 114, "x": 25, "z": 0, "id": 53}, {"y": 111, "x": 25, "z": 0, "id": 236}, {"y": 113, "x": 24, "z": 0, "id": 132}, {"y": 112, "x": 23, "z": 0, "id": 53}, {"y": 118, "x": 26, "z": 0, "id": 226}, {"y": 119, "x": 27, "z": 0, "id": 241}, {"y": 119, "x": 26, "z": 0, "id": 260}, {"y": 78, "x": 35, "z": 0, "id": 477}, {"y": 65, "x": 32, "z": 0, "id": 328}, {"y": 66, "x": 33, "z": 0, "id": 307}, {"y": 67, "x": 32, "z": 0, "id": 31}, {"y": 67, "x": 31, "z": 0, "id": 4}, {"y": 66, "x": 32, "z": 0, "id": 93}, {"y": 66, "x": 33, "z": 0, "id": 55}, {"y": 68, "x": 31, "z": 0, "id": 28}, {"y": 69, "x": 32, "z": 0, "id": 68}, {"y": 69, "x": 33, "z": 0, "id": 112}, {"y": 68, "x": 33, "z": 0, "id": 489}, {"y": 69, "x": 32, "z": 0, "id": 28}, {"y": 69, "x": 30, "z": 0, "id": 27}, {"y": 69, "x": 28, "z": 0, "id": 85}, {"y": 70, "x": 29, "z": 0, "id": 53}, {"y": 71, "x": 29, "z": 0, "id": 130}, {"y": 72, "x": 30, "z": 0, "id": 255}, {"y": 73, "x": 29, "z": 0, "id": 96}, {"y": 72, "x": 30, "z": 0, "id": 444}, {"y": 89, "x": 23, "z": 0, "id": 23}, {"y": 90, "x": 22, "z": 0, "id": 137}, {"y": 90, "x": 20, "z": 0, "id": 490}, {"y": 90, "x": 23, "z": 0, "id": 55}, {"y": 89, "x": 20, "z": 0, "id": 258}, {"y": 66, "x": 16, "z": 0, "id": 491}, {"y": 89, "x": 34, "z": 0, "id": 492}, {"y": 94, "x": 34, "z": 0, "id": 26}, {"y": 92, "x": 30, "z": 0, "id": 442}, {"y": 92, "x": 33, "z": 0, "id": 45}, {"y": 91, "x": 31, "z": 0, "id": 44}, {"y": 89, "x": 27, "z": 0, "id": 442}, {"y": 88, "x": 28, "z": 0, "id": 208}, {"y": 88, "x": 32, "z": 0, "id": 366}, {"y": 89, "x": 35, "z": 0, "id": 493}, {"y": 89, "x": 32, "z": 0, "id": 335}, {"y": 85, "x": 22, "z": 0, "id": 219}, {"y": 86, "x": 22, "z": 0, "id": 262}, {"y": 87, "x": 22, "z": 0, "id": 95}, {"y": 88, "x": 22, "z": 0, "id": 85}, {"y": 77, "x": 50, "z": 0, "id": 27}, {"y": 78, "x": 51, "z": 0, "id": 375}, {"y": 77, "x": 52, "z": 0, "id": 494}, {"y": 78, "x": 48, "z": 0, "id": 53}, {"y": 80, "x": 47, "z": 0, "id": 28}, {"y": 80, "x": 47, "z": 0, "id": 260}, {"y": 78, "x": 45, "z": 0, "id": 80}, {"y": 78, "x": 44, "z": 0, "id": 267}, {"y": 78, "x": 48, "z": 0, "id": 42}, {"y": 77, "x": 52, "z": 0, "id": 27}, {"y": 76, "x": 52, "z": 0, "id": 8}, {"y": 77, "x": 52, "z": 0, "id": 33}, {"y": 79, "x": 48, "z": 0, "id": 495}, {"y": 63, "x": 57, "z": 0, "id": 496}, {"y": 4, "x": 49, "z": 0, "id": 497}, {"y": 4, "x": 116, "z": 0, "id": 497}, {"y": 53, "x": 137, "z": 0, "id": 497}, {"y": 87, "x": 86, "z": 0, "id": 497}, {"y": 83, "x": 25, "z": 0, "id": 497}, {"y": 59, "x": 77, "z": 0, "id": 498}, {"y": 59, "x": 77, "z": 0, "id": 499}, {"y": 27, "x": 66, "z": 0, "id": 500}, {"y": 32, "x": 61, "z": 0, "id": 501}, {"y": 28, "x": 57, "z": 0, "id": 502}, {"y": 37, "x": 63, "z": 0, "id": 477}, {"y": 28, "x": 51, "z": 0, "id": 503}, {"y": 37, "x": 68, "z": 0, "id": 504}, {"y": 65, "x": 70, "z": 0, "id": 505}, {"y": 60, "x": 66, "z": 0, "id": 506}, {"y": 64, "x": 64, "z": 0, "id": 507}, {"y": 52, "x": 73, "z": 0, "id": 4}, {"y": 53, "x": 75, "z": 0, "id": 122}, {"y": 52, "x": 75, "z": 0, "id": 290}, {"y": 53, "x": 74, "z": 0, "id": 232}, {"y": 53, "x": 74, "z": 0, "id": 42}, {"y": 53, "x": 73, "z": 0, "id": 296}, {"y": 52, "x": 75, "z": 0, "id": 97}, {"y": 52, "x": 76, "z": 0, "id": 129}, {"y": 52, "x": 78, "z": 0, "id": 508}, {"y": 50, "x": 67, "z": 0, "id": 509}, {"y": 59, "x": 63, "z": 0, "id": 114}, {"y": 72, "x": 59, "z": 0, "id": 510}, {"y": 119, "x": 31, "z": 0, "id": 267}, {"y": 44, "x": 29, "z": 0, "id": 466}, {"y": 53, "x": 34, "z": 0, "id": 472}, {"y": 32, "x": 30, "z": 0, "id": 470}, {"y": 33, "x": 41, "z": 0, "id": 470}, {"y": 46, "x": 21, "z": 0, "id": 511}, {"y": 62, "x": 26, "z": 0, "id": 478}, {"y": 55, "x": 22, "z": 0, "id": 466}, {"y": 48, "x": 17, "z": 0, "id": 79}, {"y": 49, "x": 17, "z": 0, "id": 351}, {"y": 50, "x": 18, "z": 0, "id": 352}, {"y": 51, "x": 18, "z": 0, "id": 352}, {"y": 52, "x": 17, "z": 0, "id": 294}, {"y": 53, "x": 17, "z": 0, "id": 287}, {"y": 53, "x": 17, "z": 0, "id": 118}, {"y": 50, "x": 17, "z": 0, "id": 30}, {"y": 51, "x": 14, "z": 0, "id": 346}, {"y": 51, "x": 13, "z": 0, "id": 298}, {"y": 52, "x": 13, "z": 0, "id": 93}, {"y": 50, "x": 15, "z": 0, "id": 124}, {"y": 52, "x": 18, "z": 0, "id": 307}, {"y": 53, "x": 19, "z": 0, "id": 92}, {"y": 55, "x": 19, "z": 0, "id": 42}, {"y": 56, "x": 17, "z": 0, "id": 264}, {"y": 55, "x": 19, "z": 0, "id": 219}, {"y": 55, "x": 17, "z": 0, "id": 32}, {"y": 53, "x": 14, "z": 0, "id": 488}, {"y": 53, "x": 13, "z": 0, "id": 512}, {"y": 56, "x": 18, "z": 0, "id": 114}, {"y": 57, "x": 19, "z": 0, "id": 290}, {"y": 59, "x": 21, "z": 0, "id": 99}, {"y": 60, "x": 21, "z": 0, "id": 404}, {"y": 61, "x": 20, "z": 0, "id": 215}, {"y": 60, "x": 20, "z": 0, "id": 73}, {"y": 57, "x": 21, "z": 0, "id": 312}, {"y": 56, "x": 21, "z": 0, "id": 114}, {"y": 58, "x": 21, "z": 0, "id": 513}, {"y": 57, "x": 21, "z": 0, "id": 258}, {"y": 61, "x": 20, "z": 0, "id": 447}, {"y": 64, "x": 23, "z": 0, "id": 316}, {"y": 65, "x": 9, "z": 0, "id": 15}, {"y": 46, "x": 9, "z": 0, "id": 44}, {"y": 47, "x": 9, "z": 0, "id": 218}, {"y": 48, "x": 9, "z": 0, "id": 514}, {"y": 46, "x": 10, "z": 0, "id": 334}, {"y": 45, "x": 9, "z": 0, "id": 133}, {"y": 49, "x": 8, "z": 0, "id": 322}, {"y": 50, "x": 8, "z": 0, "id": 333}, {"y": 49, "x": 9, "z": 0, "id": 271}, {"y": 52, "x": 9, "z": 0, "id": 100}, {"y": 53, "x": 11, "z": 0, "id": 262}, {"y": 54, "x": 11, "z": 0, "id": 293}, {"y": 54, "x": 10, "z": 0, "id": 275}, {"y": 54, "x": 8, "z": 0, "id": 236}, {"y": 55, "x": 6, "z": 0, "id": 260}, {"y": 53, "x": 9, "z": 0, "id": 316}, {"y": 53, "x": 10, "z": 0, "id": 23}, {"y": 54, "x": 9, "z": 0, "id": 27}, {"y": 54, "x": 10, "z": 0, "id": 3}, {"y": 54, "x": 6, "z": 0, "id": 53}, {"y": 56, "x": 13, "z": 0, "id": 117}, {"y": 57, "x": 14, "z": 0, "id": 515}, {"y": 58, "x": 15, "z": 0, "id": 203}, {"y": 59, "x": 16, "z": 0, "id": 267}, {"y": 60, "x": 15, "z": 0, "id": 39}, {"y": 61, "x": 14, "z": 0, "id": 138}, {"y": 62, "x": 13, "z": 0, "id": 271}, {"y": 60, "x": 13, "z": 0, "id": 346}, {"y": 60, "x": 12, "z": 0, "id": 267}, {"y": 59, "x": 13, "z": 0, "id": 92}, {"y": 59, "x": 13, "z": 0, "id": 319}, {"y": 59, "x": 14, "z": 0, "id": 453}, {"y": 59, "x": 16, "z": 0, "id": 146}, {"y": 59, "x": 13, "z": 0, "id": 46}, {"y": 47, "x": 22, "z": 0, "id": 260}, {"y": 48, "x": 24, "z": 0, "id": 73}, {"y": 49, "x": 26, "z": 0, "id": 402}, {"y": 50, "x": 27, "z": 0, "id": 242}, {"y": 49, "x": 24, "z": 0, "id": 258}, {"y": 49, "x": 22, "z": 0, "id": 272}, {"y": 47, "x": 24, "z": 0, "id": 262}, {"y": 48, "x": 23, "z": 0, "id": 352}, {"y": 40, "x": 24, "z": 0, "id": 94}, {"y": 41, "x": 25, "z": 0, "id": 303}, {"y": 42, "x": 25, "z": 0, "id": 119}, {"y": 43, "x": 24, "z": 0, "id": 240}, {"y": 43, "x": 24, "z": 0, "id": 258}, {"y": 43, "x": 23, "z": 0, "id": 213}, {"y": 43, "x": 23, "z": 0, "id": 43}, {"y": 41, "x": 24, "z": 0, "id": 113}, {"y": 42, "x": 20, "z": 0, "id": 477}, {"y": 33, "x": 21, "z": 0, "id": 516}, {"y": 27, "x": 27, "z": 0, "id": 517}, {"y": 28, "x": 27, "z": 0, "id": 518}, {"y": 51, "x": 31, "z": 0, "id": 506}, {"y": 67, "x": 33, "z": 0, "id": 475}, {"y": 124, "x": 72, "z": 0, "id": 497}, {"y": 123, "x": 58, "z": 0, "id": 495}, {"y": 113, "x": 59, "z": 0, "id": 519}, {"y": 129, "x": 75, "z": 0, "id": 520}, {"y": 132, "x": 48, "z": 0, "id": 519}, {"y": 51, "x": 51, "z": 0, "id": 521}, {"y": 66, "x": 49, "z": 0, "id": 522}, {"y": 73, "x": 52, "z": 0, "id": 523}, {"y": 68, "x": 107, "z": 0, "id": 524}, {"y": 72, "x": 88, "z": 0, "id": 525}, {"y": 80, "x": 103, "z": 0, "id": 526}, {"y": 92, "x": 109, "z": 0, "id": 527}, {"y": 82, "x": 114, "z": 0, "id": 528}, {"y": 69, "x": 122, "z": 0, "id": 528}, {"y": 57, "x": 32, "z": 0, "id": 529}, {"y": 18, "x": 70, "z": 0, "id": 530}, {"y": 18, "x": 69, "z": 0, "id": 234}, {"y": 18, "x": 69, "z": 0, "id": 201}, {"y": 18, "x": 68, "z": 0, "id": 238}, {"y": 6, "x": 32, "z": 0, "id": 491}, {"y": 28, "x": 44, "z": 0, "id": 510}, {"y": 48, "x": 40, "z": 0, "id": 467}, {"y": 47, "x": 15, "z": 0, "id": 505}, {"y": 65, "x": 28, "z": 0, "id": 531}, {"y": 63, "x": 28, "z": 0, "id": 124}, {"y": 56, "x": 24, "z": 0, "id": 29}, {"y": 56, "x": 26, "z": 0, "id": 447}, {"y": 60, "x": 26, "z": 0, "id": 27}, {"y": 72, "x": 25, "z": 0, "id": 353}, {"y": 70, "x": 30, "z": 0, "id": 532}, {"y": 70, "x": 31, "z": 0, "id": 203}, {"y": 71, "x": 30, "z": 0, "id": 533}, {"y": 84, "x": 37, "z": 0, "id": 436}, {"y": 84, "x": 35, "z": 0, "id": 32}, {"y": 83, "x": 34, "z": 0, "id": 30}, {"y": 83, "x": 39, "z": 0, "id": 35}, {"y": 92, "x": 45, "z": 0, "id": 19}, {"y": 83, "x": 45, "z": 0, "id": 4}, {"y": 84, "x": 44, "z": 0, "id": 83}, {"y": 85, "x": 43, "z": 0, "id": 90}, {"y": 87, "x": 43, "z": 0, "id": 156}, {"y": 87, "x": 43, "z": 0, "id": 84}, {"y": 88, "x": 41, "z": 0, "id": 80}, {"y": 89, "x": 42, "z": 0, "id": 219}, {"y": 88, "x": 42, "z": 0, "id": 328}, {"y": 88, "x": 41, "z": 0, "id": 534}, {"y": 88, "x": 43, "z": 0, "id": 27}, {"y": 88, "x": 39, "z": 0, "id": 28}, {"y": 15, "x": 122, "z": 0, "id": 535}, {"y": 71, "x": 23, "z": 0, "id": 536}, {"y": 74, "x": 20, "z": 0, "id": 537}, {"y": 30, "x": 21, "z": 0, "id": 375}, {"y": 126, "x": 135, "z": 0, "id": 339}, {"y": 126, "x": 136, "z": 0, "id": 373}, {"y": 125, "x": 114, "z": 0, "id": 464}, {"y": 126, "x": 133, "z": 0, "id": 538}, {"y": 124, "x": 134, "z": 0, "id": 402}, {"y": 123, "x": 132, "z": 0, "id": 539}, {"y": 124, "x": 114, "z": 0, "id": 539}, {"y": 124, "x": 115, "z": 0, "id": 538}, {"y": 128, "x": 142, "z": 0, "id": 530}, {"y": 49, "x": 88, "z": 0, "id": 540}, {"y": 45, "x": 87, "z": 0, "id": 541}, {"y": 46, "x": 88, "z": 0, "id": 542}, {"y": 48, "x": 91, "z": 0, "id": 251}, {"y": 49, "x": 90, "z": 0, "id": 410}, {"y": 41, "x": 78, "z": 0, "id": 251}, {"y": 46, "x": 87, "z": 0, "id": 29}, {"y": 48, "x": 87, "z": 0, "id": 29}, {"y": 47, "x": 87, "z": 0, "id": 298}, {"y": 46, "x": 91, "z": 0, "id": 543}, {"y": 45, "x": 92, "z": 0, "id": 544}, {"y": 45, "x": 92, "z": 0, "id": 410}, {"y": 126, "x": 143, "z": 0, "id": 350}, {"y": 129, "x": 140, "z": 0, "id": 545}, {"y": 129, "x": 140, "z": 0, "id": 406}, {"y": 127, "x": 143, "z": 0, "id": 368}, {"y": 11, "x": 12, "z": 0, "id": 538}, {"y": 11, "x": 26, "z": 0, "id": 538}, {"y": 13, "x": 24, "z": 0, "id": 538}, {"y": 12, "x": 19, "z": 0, "id": 538}, {"y": 16, "x": 17, "z": 0, "id": 538}, {"y": 14, "x": 13, "z": 0, "id": 538}, {"y": 17, "x": 12, "z": 0, "id": 538}, {"y": 20, "x": 17, "z": 0, "id": 538}, {"y": 22, "x": 25, "z": 0, "id": 538}, {"y": 18, "x": 25, "z": 0, "id": 538}, {"y": 22, "x": 16, "z": 0, "id": 538}, {"y": 26, "x": 18, "z": 0, "id": 538}, {"y": 28, "x": 25, "z": 0, "id": 538}, {"y": 30, "x": 18, "z": 0, "id": 538}, {"y": 34, "x": 26, "z": 0, "id": 538}, {"y": 32, "x": 28, "z": 0, "id": 538}, {"y": 34, "x": 16, "z": 0, "id": 538}, {"y": 32, "x": 12, "z": 0, "id": 538}, {"y": 39, "x": 9, "z": 0, "id": 538}, {"y": 37, "x": 21, "z": 0, "id": 538}, {"y": 40, "x": 16, "z": 0, "id": 538}, {"y": 40, "x": 25, "z": 0, "id": 538}, {"y": 43, "x": 25, "z": 0, "id": 538}, {"y": 46, "x": 24, "z": 0, "id": 538}, {"y": 44, "x": 15, "z": 0, "id": 538}, {"y": 51, "x": 22, "z": 0, "id": 538}, {"y": 52, "x": 25, "z": 0, "id": 538}, {"y": 52, "x": 19, "z": 0, "id": 538}, {"y": 50, "x": 13, "z": 0, "id": 538}, {"y": 48, "x": 10, "z": 0, "id": 538}, {"y": 53, "x": 15, "z": 0, "id": 538}, {"y": 55, "x": 10, "z": 0, "id": 538}, {"y": 59, "x": 8, "z": 0, "id": 538}, {"y": 55, "x": 21, "z": 0, "id": 538}, {"y": 57, "x": 27, "z": 0, "id": 538}, {"y": 62, "x": 24, "z": 0, "id": 538}, {"y": 73, "x": 27, "z": 0, "id": 538}, {"y": 71, "x": 15, "z": 0, "id": 538}, {"y": 73, "x": 7, "z": 0, "id": 538}, {"y": 73, "x": 10, "z": 0, "id": 538}, {"y": 75, "x": 15, "z": 0, "id": 538}, {"y": 77, "x": 20, "z": 0, "id": 538}, {"y": 80, "x": 18, "z": 0, "id": 538}, {"y": 78, "x": 15, "z": 0, "id": 538}, {"y": 83, "x": 11, "z": 0, "id": 538}, {"y": 82, "x": 10, "z": 0, "id": 538}, {"y": 67, "x": 28, "z": 0, "id": 538}, {"y": 77, "x": 28, "z": 0, "id": 538}, {"y": 70, "x": 32, "z": 0, "id": 538}, {"y": 68, "x": 24, "z": 0, "id": 538}, {"y": 81, "x": 24, "z": 0, "id": 538}, {"y": 73, "x": 30, "z": 0, "id": 538}, {"y": 90, "x": 18, "z": 0, "id": 538}, {"y": 98, "x": 18, "z": 0, "id": 538}, {"y": 102, "x": 21, "z": 0, "id": 538}, {"y": 106, "x": 22, "z": 0, "id": 538}, {"y": 110, "x": 24, "z": 0, "id": 538}, {"y": 117, "x": 26, "z": 0, "id": 538}, {"y": 117, "x": 27, "z": 0, "id": 259}, {"y": 120, "x": 31, "z": 0, "id": 546}, {"y": 105, "x": 34, "z": 0, "id": 538}, {"y": 102, "x": 29, "z": 0, "id": 538}, {"y": 91, "x": 26, "z": 0, "id": 538}, {"y": 110, "x": 36, "z": 0, "id": 538}, {"y": 104, "x": 50, "z": 0, "id": 538}, {"y": 103, "x": 44, "z": 0, "id": 538}, {"y": 108, "x": 49, "z": 0, "id": 538}, {"y": 113, "x": 54, "z": 0, "id": 538}, {"y": 106, "x": 54, "z": 0, "id": 538}, {"y": 118, "x": 48, "z": 0, "id": 538}, {"y": 117, "x": 45, "z": 0, "id": 538}, {"y": 118, "x": 41, "z": 0, "id": 538}, {"y": 118, "x": 53, "z": 0, "id": 538}, {"y": 113, "x": 41, "z": 0, "id": 538}, {"y": 124, "x": 51, "z": 0, "id": 538}, {"y": 122, "x": 46, "z": 0, "id": 538}, {"y": 129, "x": 50, "z": 0, "id": 538}, {"y": 123, "x": 50, "z": 0, "id": 460}, {"y": 130, "x": 76, "z": 0, "id": 538}, {"y": 133, "x": 72, "z": 0, "id": 538}, {"y": 136, "x": 72, "z": 0, "id": 538}, {"y": 139, "x": 68, "z": 0, "id": 538}, {"y": 138, "x": 64, "z": 0, "id": 538}, {"y": 127, "x": 73, "z": 0, "id": 538}, {"y": 114, "x": 93, "z": 0, "id": 547}, {"y": 143, "x": 97, "z": 0, "id": 538}, {"y": 137, "x": 92, "z": 0, "id": 538}, {"y": 11, "x": 95, "z": 0, "id": 538}, {"y": 14, "x": 92, "z": 0, "id": 538}, {"y": 19, "x": 93, "z": 0, "id": 538}, {"y": 22, "x": 99, "z": 0, "id": 538}, {"y": 16, "x": 101, "z": 0, "id": 538}, {"y": 23, "x": 102, "z": 0, "id": 538}, {"y": 27, "x": 98, "z": 0, "id": 538}, {"y": 21, "x": 84, "z": 0, "id": 538}, {"y": 16, "x": 83, "z": 0, "id": 538}, {"y": 13, "x": 80, "z": 0, "id": 538}, {"y": 8, "x": 78, "z": 0, "id": 538}, {"y": 27, "x": 92, "z": 0, "id": 538}, {"y": 25, "x": 96, "z": 0, "id": 538}, {"y": 27, "x": 86, "z": 0, "id": 538}, {"y": 27, "x": 83, "z": 0, "id": 538}, {"y": 27, "x": 76, "z": 0, "id": 538}, {"y": 28, "x": 73, "z": 0, "id": 538}, {"y": 29, "x": 79, "z": 0, "id": 538}, {"y": 32, "x": 99, "z": 0, "id": 538}, {"y": 35, "x": 99, "z": 0, "id": 538}, {"y": 38, "x": 102, "z": 0, "id": 538}, {"y": 23, "x": 106, "z": 0, "id": 538}, {"y": 28, "x": 106, "z": 0, "id": 538}, {"y": 33, "x": 112, "z": 0, "id": 538}, {"y": 33, "x": 107, "z": 0, "id": 538}, {"y": 36, "x": 106, "z": 0, "id": 538}, {"y": 18, "x": 108, "z": 0, "id": 538}, {"y": 20, "x": 112, "z": 0, "id": 538}, {"y": 22, "x": 113, "z": 0, "id": 538}, {"y": 23, "x": 112, "z": 0, "id": 168}, {"y": 16, "x": 112, "z": 0, "id": 538}, {"y": 14, "x": 120, "z": 0, "id": 538}, {"y": 24, "x": 125, "z": 0, "id": 538}, {"y": 19, "x": 130, "z": 0, "id": 538}, {"y": 31, "x": 129, "z": 0, "id": 538}, {"y": 32, "x": 126, "z": 0, "id": 538}, {"y": 27, "x": 124, "z": 0, "id": 538}, {"y": 25, "x": 121, "z": 0, "id": 538}, {"y": 28, "x": 120, "z": 0, "id": 538}, {"y": 26, "x": 128, "z": 0, "id": 538}, {"y": 13, "x": 125, "z": 0, "id": 538}, {"y": 16, "x": 129, "z": 0, "id": 538}, {"y": 18, "x": 119, "z": 0, "id": 538}, {"y": 15, "x": 118, "z": 0, "id": 538}, {"y": 22, "x": 128, "z": 0, "id": 538}, {"y": 28, "x": 132, "z": 0, "id": 538}, {"y": 33, "x": 128, "z": 0, "id": 538}, {"y": 35, "x": 132, "z": 0, "id": 538}, {"y": 40, "x": 124, "z": 0, "id": 538}, {"y": 41, "x": 128, "z": 0, "id": 538}, {"y": 44, "x": 121, "z": 0, "id": 538}, {"y": 32, "x": 118, "z": 0, "id": 538}, {"y": 29, "x": 111, "z": 0, "id": 538}, {"y": 40, "x": 121, "z": 0, "id": 538}, {"y": 41, "x": 116, "z": 0, "id": 538}, {"y": 38, "x": 112, "z": 0, "id": 538}, {"y": 36, "x": 118, "z": 0, "id": 538}, {"y": 32, "x": 123, "z": 0, "id": 538}, {"y": 7, "x": 131, "z": 0, "id": 538}, {"y": 12, "x": 132, "z": 0, "id": 538}, {"y": 7, "x": 117, "z": 0, "id": 538}, {"y": 7, "x": 140, "z": 0, "id": 538}, {"y": 13, "x": 140, "z": 0, "id": 538}, {"y": 11, "x": 143, "z": 0, "id": 538}, {"y": 18, "x": 137, "z": 0, "id": 538}, {"y": 16, "x": 141, "z": 0, "id": 538}, {"y": 23, "x": 139, "z": 0, "id": 538}, {"y": 25, "x": 141, "z": 0, "id": 538}, {"y": 30, "x": 141, "z": 0, "id": 538}, {"y": 27, "x": 138, "z": 0, "id": 538}, {"y": 26, "x": 135, "z": 0, "id": 538}, {"y": 37, "x": 137, "z": 0, "id": 538}, {"y": 40, "x": 138, "z": 0, "id": 538}, {"y": 38, "x": 132, "z": 0, "id": 538}, {"y": 42, "x": 137, "z": 0, "id": 538}, {"y": 40, "x": 143, "z": 0, "id": 538}, {"y": 48, "x": 136, "z": 0, "id": 538}, {"y": 47, "x": 131, "z": 0, "id": 538}, {"y": 52, "x": 133, "z": 0, "id": 538}, {"y": 55, "x": 131, "z": 0, "id": 538}, {"y": 53, "x": 125, "z": 0, "id": 538}, {"y": 49, "x": 125, "z": 0, "id": 538}, {"y": 60, "x": 128, "z": 0, "id": 538}, {"y": 57, "x": 123, "z": 0, "id": 538}, {"y": 62, "x": 123, "z": 0, "id": 538}, {"y": 61, "x": 118, "z": 0, "id": 538}, {"y": 64, "x": 127, "z": 0, "id": 538}, {"y": 68, "x": 126, "z": 0, "id": 538}, {"y": 64, "x": 119, "z": 0, "id": 538}, {"y": 64, "x": 115, "z": 0, "id": 538}, {"y": 68, "x": 115, "z": 0, "id": 538}, {"y": 68, "x": 112, "z": 0, "id": 538}, {"y": 71, "x": 121, "z": 0, "id": 538}, {"y": 76, "x": 122, "z": 0, "id": 538}, {"y": 79, "x": 118, "z": 0, "id": 538}, {"y": 77, "x": 112, "z": 0, "id": 538}, {"y": 85, "x": 117, "z": 0, "id": 538}, {"y": 96, "x": 112, "z": 0, "id": 538}, {"y": 99, "x": 109, "z": 0, "id": 538}, {"y": 101, "x": 113, "z": 0, "id": 538}, {"y": 102, "x": 110, "z": 0, "id": 538}, {"y": 92, "x": 101, "z": 0, "id": 538}, {"y": 93, "x": 111, "z": 0, "id": 538}, {"y": 94, "x": 104, "z": 0, "id": 399}, {"y": 96, "x": 108, "z": 0, "id": 18}, {"y": 105, "x": 116, "z": 0, "id": 538}, {"y": 107, "x": 117, "z": 0, "id": 21}, {"y": 109, "x": 115, "z": 0, "id": 548}, {"y": 108, "x": 118, "z": 0, "id": 216}, {"y": 110, "x": 117, "z": 0, "id": 452}, {"y": 112, "x": 116, "z": 0, "id": 216}, {"y": 110, "x": 117, "z": 0, "id": 50}, {"y": 110, "x": 117, "z": 0, "id": 228}, {"y": 108, "x": 117, "z": 0, "id": 549}, {"y": 107, "x": 115, "z": 0, "id": 228}, {"y": 107, "x": 113, "z": 0, "id": 78}, {"y": 106, "x": 113, "z": 0, "id": 538}, {"y": 110, "x": 114, "z": 0, "id": 538}, {"y": 81, "x": 111, "z": 0, "id": 132}, {"y": 88, "x": 98, "z": 0, "id": 538}, {"y": 84, "x": 104, "z": 0, "id": 465}, {"y": 80, "x": 109, "z": 0, "id": 538}, {"y": 76, "x": 109, "z": 0, "id": 538}, {"y": 76, "x": 106, "z": 0, "id": 538}, {"y": 82, "x": 107, "z": 0, "id": 538}, {"y": 82, "x": 99, "z": 0, "id": 538}, {"y": 85, "x": 99, "z": 0, "id": 538}, {"y": 83, "x": 91, "z": 0, "id": 538}, {"y": 80, "x": 90, "z": 0, "id": 538}, {"y": 81, "x": 85, "z": 0, "id": 538}, {"y": 72, "x": 101, "z": 0, "id": 538}, {"y": 71, "x": 96, "z": 0, "id": 538}, {"y": 70, "x": 101, "z": 0, "id": 538}, {"y": 64, "x": 104, "z": 0, "id": 538}, {"y": 66, "x": 96, "z": 0, "id": 538}, {"y": 66, "x": 93, "z": 0, "id": 538}, {"y": 64, "x": 101, "z": 0, "id": 538}, {"y": 61, "x": 99, "z": 0, "id": 538}, {"y": 63, "x": 98, "z": 0, "id": 538}, {"y": 62, "x": 89, "z": 0, "id": 538}, {"y": 59, "x": 88, "z": 0, "id": 538}, {"y": 61, "x": 104, "z": 0, "id": 202}, {"y": 43, "x": 47, "z": 0, "id": 205}, {"y": 48, "x": 46, "z": 0, "id": 2}, {"y": 47, "x": 52, "z": 0, "id": 25}, {"y": 46, "x": 54, "z": 0, "id": 27}, {"y": 47, "x": 53, "z": 0, "id": 438}, {"y": 48, "x": 51, "z": 0, "id": 550}, {"y": 52, "x": 53, "z": 0, "id": 538}, {"y": 48, "x": 60, "z": 0, "id": 538}, {"y": 41, "x": 86, "z": 0, "id": 538}, {"y": 39, "x": 91, "z": 0, "id": 538}, {"y": 45, "x": 83, "z": 0, "id": 538}, {"y": 42, "x": 77, "z": 0, "id": 538}, {"y": 42, "x": 73, "z": 0, "id": 538}, {"y": 32, "x": 80, "z": 0, "id": 538}, {"y": 35, "x": 78, "z": 0, "id": 538}, {"y": 52, "x": 88, "z": 0, "id": 538}, {"y": 69, "x": 79, "z": 0, "id": 538}, {"y": 73, "x": 86, "z": 0, "id": 538}, {"y": 71, "x": 83, "z": 0, "id": 538}, {"y": 76, "x": 84, "z": 0, "id": 538}, {"y": 75, "x": 79, "z": 0, "id": 538}, {"y": 72, "x": 79, "z": 0, "id": 538}, {"y": 86, "x": 86, "z": 0, "id": 538}, {"y": 72, "x": 75, "z": 0, "id": 538}, {"y": 69, "x": 61, "z": 0, "id": 538}, {"y": 66, "x": 70, "z": 0, "id": 538}, {"y": 73, "x": 62, "z": 0, "id": 538}, {"y": 74, "x": 58, "z": 0, "id": 460}, {"y": 72, "x": 68, "z": 0, "id": 538}, {"y": 69, "x": 66, "z": 0, "id": 538}, {"y": 67, "x": 66, "z": 0, "id": 538}, {"y": 63, "x": 68, "z": 0, "id": 538}, {"y": 57, "x": 66, "z": 0, "id": 538}, {"y": 51, "x": 67, "z": 0, "id": 538}, {"y": 53, "x": 71, "z": 0, "id": 538}, {"y": 54, "x": 60, "z": 0, "id": 538}, {"y": 50, "x": 65, "z": 0, "id": 538}, {"y": 49, "x": 83, "z": 0, "id": 538}, {"y": 54, "x": 86, "z": 0, "id": 538}, {"y": 49, "x": 78, "z": 0, "id": 538}, {"y": 57, "x": 82, "z": 0, "id": 538}, {"y": 56, "x": 79, "z": 0, "id": 538}, {"y": 60, "x": 77, "z": 0, "id": 538}, {"y": 84, "x": 73, "z": 0, "id": 538}, {"y": 84, "x": 77, "z": 0, "id": 538}, {"y": 87, "x": 75, "z": 0, "id": 538}, {"y": 88, "x": 77, "z": 0, "id": 538}, {"y": 90, "x": 72, "z": 0, "id": 538}, {"y": 91, "x": 78, "z": 0, "id": 538}, {"y": 91, "x": 84, "z": 0, "id": 538}, {"y": 93, "x": 74, "z": 0, "id": 538}, {"y": 92, "x": 70, "z": 0, "id": 538}, {"y": 86, "x": 68, "z": 0, "id": 538}, {"y": 95, "x": 73, "z": 0, "id": 538}, {"y": 94, "x": 67, "z": 0, "id": 538}, {"y": 88, "x": 64, "z": 0, "id": 538}, {"y": 96, "x": 74, "z": 0, "id": 538}, {"y": 100, "x": 74, "z": 0, "id": 538}, {"y": 98, "x": 60, "z": 0, "id": 538}, {"y": 78, "x": 81, "z": 0, "id": 538}, {"y": 78, "x": 78, "z": 0, "id": 538}, {"y": 82, "x": 80, "z": 0, "id": 538}, {"y": 85, "x": 82, "z": 0, "id": 538}, {"y": 97, "x": 78, "z": 0, "id": 538}, {"y": 100, "x": 88, "z": 0, "id": 538}, {"y": 101, "x": 88, "z": 0, "id": 551}, {"y": 42, "x": 80, "z": 0, "id": 552}, {"y": 40, "x": 79, "z": 0, "id": 410}, {"y": 41, "x": 81, "z": 0, "id": 408}, {"y": 43, "x": 79, "z": 0, "id": 409}, {"y": 95, "x": 87, "z": 0, "id": 442}, {"y": 99, "x": 81, "z": 0, "id": 538}, {"y": 97, "x": 83, "z": 0, "id": 538}, {"y": 73, "x": 38, "z": 0, "id": 538}, {"y": 77, "x": 42, "z": 0, "id": 538}, {"y": 71, "x": 43, "z": 0, "id": 538}, {"y": 71, "x": 46, "z": 0, "id": 538}, {"y": 76, "x": 47, "z": 0, "id": 538}, {"y": 76, "x": 49, "z": 0, "id": 553}, {"y": 70, "x": 45, "z": 0, "id": 554}, {"y": 71, "x": 38, "z": 0, "id": 33}, {"y": 71, "x": 42, "z": 0, "id": 31}, {"y": 68, "x": 44, "z": 0, "id": 32}, {"y": 74, "x": 45, "z": 0, "id": 406}, {"y": 66, "x": 47, "z": 0, "id": 538}, {"y": 60, "x": 43, "z": 0, "id": 538}, {"y": 63, "x": 51, "z": 0, "id": 538}, {"y": 62, "x": 55, "z": 0, "id": 538}, {"y": 59, "x": 55, "z": 0, "id": 538}, {"y": 56, "x": 48, "z": 0, "id": 538}, {"y": 48, "x": 49, "z": 0, "id": 538}, {"y": 47, "x": 41, "z": 0, "id": 538}, {"y": 51, "x": 41, "z": 0, "id": 538}, {"y": 54, "x": 46, "z": 0, "id": 538}, {"y": 52, "x": 47, "z": 0, "id": 538}, {"y": 53, "x": 40, "z": 0, "id": 538}, {"y": 56, "x": 41, "z": 0, "id": 538}, {"y": 54, "x": 35, "z": 0, "id": 538}, {"y": 57, "x": 38, "z": 0, "id": 538}, {"y": 47, "x": 33, "z": 0, "id": 19}, {"y": 43, "x": 37, "z": 0, "id": 538}, {"y": 60, "x": 36, "z": 0, "id": 538}, {"y": 58, "x": 31, "z": 0, "id": 538}, {"y": 59, "x": 34, "z": 0, "id": 538}, {"y": 46, "x": 34, "z": 0, "id": 538}, {"y": 46, "x": 30, "z": 0, "id": 538}, {"y": 50, "x": 28, "z": 0, "id": 538}, {"y": 41, "x": 30, "z": 0, "id": 538}, {"y": 37, "x": 27, "z": 0, "id": 538}, {"y": 34, "x": 30, "z": 0, "id": 538}, {"y": 33, "x": 39, "z": 0, "id": 538}, {"y": 32, "x": 36, "z": 0, "id": 538}, {"y": 33, "x": 34, "z": 0, "id": 538}, {"y": 26, "x": 39, "z": 0, "id": 538}, {"y": 27, "x": 35, "z": 0, "id": 538}, {"y": 28, "x": 28, "z": 0, "id": 538}, {"y": 26, "x": 27, "z": 0, "id": 538}, {"y": 29, "x": 47, "z": 0, "id": 538}, {"y": 30, "x": 52, "z": 0, "id": 538}, {"y": 32, "x": 57, "z": 0, "id": 555}, {"y": 29, "x": 52, "z": 0, "id": 44}, {"y": 32, "x": 58, "z": 0, "id": 441}, {"y": 30, "x": 54, "z": 0, "id": 555}, {"y": 30, "x": 51, "z": 0, "id": 441}, {"y": 33, "x": 57, "z": 0, "id": 45}, {"y": 36, "x": 62, "z": 0, "id": 45}, {"y": 33, "x": 61, "z": 0, "id": 44}, {"y": 36, "x": 52, "z": 0, "id": 538}, {"y": 33, "x": 58, "z": 0, "id": 538}, {"y": 37, "x": 58, "z": 0, "id": 538}, {"y": 37, "x": 65, "z": 0, "id": 538}, {"y": 31, "x": 64, "z": 0, "id": 538}, {"y": 28, "x": 66, "z": 0, "id": 538}, {"y": 25, "x": 68, "z": 0, "id": 538}, {"y": 33, "x": 69, "z": 0, "id": 538}, {"y": 25, "x": 61, "z": 0, "id": 538}, {"y": 23, "x": 64, "z": 0, "id": 538}, {"y": 21, "x": 60, "z": 0, "id": 538}, {"y": 18, "x": 58, "z": 0, "id": 538}, {"y": 14, "x": 56, "z": 0, "id": 538}, {"y": 8, "x": 58, "z": 0, "id": 538}, {"y": 9, "x": 54, "z": 0, "id": 538}, {"y": 7, "x": 54, "z": 0, "id": 538}, {"y": 3, "x": 64, "z": 0, "id": 538}, {"y": 6, "x": 46, "z": 0, "id": 538}, {"y": 10, "x": 48, "z": 0, "id": 538}, {"y": 14, "x": 51, "z": 0, "id": 538}, {"y": 19, "x": 50, "z": 0, "id": 538}, {"y": 23, "x": 45, "z": 0, "id": 538}, {"y": 21, "x": 42, "z": 0, "id": 538}, {"y": 19, "x": 41, "z": 0, "id": 538}, {"y": 16, "x": 41, "z": 0, "id": 538}, {"y": 13, "x": 43, "z": 0, "id": 538}, {"y": 18, "x": 38, "z": 0, "id": 538}, {"y": 25, "x": 56, "z": 0, "id": 538}, {"y": 5, "x": 39, "z": 0, "id": 538}, {"y": 12, "x": 54, "z": 0, "id": 538}, {"y": 3, "x": 68, "z": 0, "id": 538}, {"y": 10, "x": 63, "z": 0, "id": 538}, {"y": 17, "x": 67, "z": 0, "id": 538}, {"y": 90, "x": 60, "z": 0, "id": 538}, {"y": 90, "x": 49, "z": 0, "id": 538}, {"y": 92, "x": 49, "z": 0, "id": 538}, {"y": 90, "x": 42, "z": 0, "id": 538}, {"y": 93, "x": 39, "z": 0, "id": 538}, {"y": 91, "x": 37, "z": 0, "id": 538}, {"y": 100, "x": 54, "z": 0, "id": 538}, {"y": 97, "x": 49, "z": 0, "id": 538}, {"y": 95, "x": 44, "z": 0, "id": 538}, {"y": 100, "x": 61, "z": 0, "id": 538}, {"y": 103, "x": 66, "z": 0, "id": 538}, {"y": 112, "x": 67, "z": 0, "id": 538}, {"y": 110, "x": 63, "z": 0, "id": 538}, {"y": 117, "x": 62, "z": 0, "id": 538}, {"y": 118, "x": 65, "z": 0, "id": 538}, {"y": 122, "x": 65, "z": 0, "id": 538}, {"y": 120, "x": 62, "z": 0, "id": 538}, {"y": 125, "x": 67, "z": 0, "id": 538}, {"y": 125, "x": 62, "z": 0, "id": 538}, {"y": 126, "x": 58, "z": 0, "id": 538}, {"y": 124, "x": 55, "z": 0, "id": 538}, {"y": 117, "x": 57, "z": 0, "id": 538}, {"y": 128, "x": 62, "z": 0, "id": 538}, {"y": 133, "x": 62, "z": 0, "id": 538}, {"y": 133, "x": 55, "z": 0, "id": 538}, {"y": 133, "x": 47, "z": 0, "id": 538}, {"y": 136, "x": 59, "z": 0, "id": 538}, {"y": 140, "x": 93, "z": 0, "id": 538}, {"y": 13, "x": 16, "z": 0, "id": 539}, {"y": 13, "x": 28, "z": 0, "id": 539}, {"y": 21, "x": 20, "z": 0, "id": 539}, {"y": 22, "x": 31, "z": 0, "id": 539}, {"y": 5, "x": 41, "z": 0, "id": 539}, {"y": 5, "x": 37, "z": 0, "id": 539}, {"y": 10, "x": 52, "z": 0, "id": 539}, {"y": 20, "x": 44, "z": 0, "id": 539}, {"y": 25, "x": 43, "z": 0, "id": 539}, {"y": 26, "x": 51, "z": 0, "id": 539}, {"y": 16, "x": 56, "z": 0, "id": 539}, {"y": 21, "x": 59, "z": 0, "id": 539}, {"y": 5, "x": 74, "z": 0, "id": 539}, {"y": 20, "x": 75, "z": 0, "id": 539}, {"y": 20, "x": 88, "z": 0, "id": 539}, {"y": 23, "x": 71, "z": 0, "id": 539}, {"y": 14, "x": 64, "z": 0, "id": 539}, {"y": 12, "x": 92, "z": 0, "id": 539}, {"y": 14, "x": 98, "z": 0, "id": 539}, {"y": 13, "x": 106, "z": 0, "id": 539}, {"y": 22, "x": 111, "z": 0, "id": 539}, {"y": 26, "x": 107, "z": 0, "id": 539}, {"y": 25, "x": 116, "z": 0, "id": 539}, {"y": 29, "x": 98, "z": 0, "id": 539}, {"y": 47, "x": 117, "z": 0, "id": 539}, {"y": 39, "x": 125, "z": 0, "id": 539}, {"y": 28, "x": 123, "z": 0, "id": 539}, {"y": 46, "x": 113, "z": 0, "id": 539}, {"y": 41, "x": 111, "z": 0, "id": 539}, {"y": 40, "x": 142, "z": 0, "id": 539}, {"y": 44, "x": 133, "z": 0, "id": 539}, {"y": 44, "x": 134, "z": 0, "id": 539}, {"y": 36, "x": 133, "z": 0, "id": 539}, {"y": 58, "x": 125, "z": 0, "id": 539}, {"y": 66, "x": 124, "z": 0, "id": 539}, {"y": 63, "x": 116, "z": 0, "id": 539}, {"y": 66, "x": 115, "z": 0, "id": 539}, {"y": 74, "x": 120, "z": 0, "id": 539}, {"y": 64, "x": 113, "z": 0, "id": 539}, {"y": 70, "x": 125, "z": 0, "id": 539}, {"y": 83, "x": 115, "z": 0, "id": 539}, {"y": 74, "x": 115, "z": 0, "id": 539}, {"y": 80, "x": 121, "z": 0, "id": 538}, {"y": 87, "x": 111, "z": 0, "id": 539}, {"y": 81, "x": 104, "z": 0, "id": 539}, {"y": 89, "x": 93, "z": 0, "id": 539}, {"y": 87, "x": 98, "z": 0, "id": 539}, {"y": 93, "x": 103, "z": 0, "id": 539}, {"y": 80, "x": 88, "z": 0, "id": 539}, {"y": 83, "x": 83, "z": 0, "id": 539}, {"y": 87, "x": 95, "z": 0, "id": 539}, {"y": 79, "x": 77, "z": 0, "id": 539}, {"y": 87, "x": 76, "z": 0, "id": 539}, {"y": 92, "x": 75, "z": 0, "id": 539}, {"y": 90, "x": 88, "z": 0, "id": 538}, {"y": 91, "x": 89, "z": 0, "id": 538}, {"y": 92, "x": 88, "z": 0, "id": 538}, {"y": 91, "x": 87, "z": 0, "id": 538}, {"y": 93, "x": 89, "z": 0, "id": 556}, {"y": 91, "x": 88, "z": 0, "id": 557}, {"y": 89, "x": 90, "z": 0, "id": 539}, {"y": 89, "x": 90, "z": 0, "id": 78}, {"y": 94, "x": 88, "z": 0, "id": 515}, {"y": 92, "x": 91, "z": 0, "id": 558}, {"y": 91, "x": 91, "z": 0, "id": 117}, {"y": 92, "x": 90, "z": 0, "id": 515}, {"y": 90, "x": 82, "z": 0, "id": 539}, {"y": 88, "x": 73, "z": 0, "id": 539}, {"y": 87, "x": 65, "z": 0, "id": 539}, {"y": 94, "x": 71, "z": 0, "id": 539}, {"y": 94, "x": 54, "z": 0, "id": 539}, {"y": 88, "x": 58, "z": 0, "id": 539}, {"y": 94, "x": 48, "z": 0, "id": 539}, {"y": 102, "x": 68, "z": 0, "id": 539}, {"y": 92, "x": 58, "z": 0, "id": 260}, {"y": 92, "x": 59, "z": 0, "id": 539}, {"y": 85, "x": 41, "z": 0, "id": 539}, {"y": 89, "x": 28, "z": 0, "id": 539}, {"y": 95, "x": 23, "z": 0, "id": 539}, {"y": 97, "x": 31, "z": 0, "id": 539}, {"y": 102, "x": 36, "z": 0, "id": 539}, {"y": 103, "x": 48, "z": 0, "id": 539}, {"y": 111, "x": 40, "z": 0, "id": 539}, {"y": 94, "x": 19, "z": 0, "id": 539}, {"y": 109, "x": 20, "z": 0, "id": 539}, {"y": 115, "x": 27, "z": 0, "id": 539}, {"y": 122, "x": 30, "z": 0, "id": 539}, {"y": 115, "x": 48, "z": 0, "id": 539}, {"y": 109, "x": 61, "z": 0, "id": 539}, {"y": 117, "x": 55, "z": 0, "id": 539}, {"y": 115, "x": 71, "z": 0, "id": 539}, {"y": 123, "x": 66, "z": 0, "id": 539}, {"y": 130, "x": 59, "z": 0, "id": 539}, {"y": 124, "x": 47, "z": 0, "id": 539}, {"y": 137, "x": 69, "z": 0, "id": 539}, {"y": 139, "x": 66, "z": 0, "id": 539}, {"y": 136, "x": 84, "z": 0, "id": 539}, {"y": 136, "x": 96, "z": 0, "id": 539}, {"y": 134, "x": 99, "z": 0, "id": 539}, {"y": 130, "x": 104, "z": 0, "id": 539}, {"y": 142, "x": 99, "z": 0, "id": 539}, {"y": 139, "x": 102, "z": 0, "id": 539}, {"y": 5, "x": 67, "z": 0, "id": 538}, {"y": 25, "x": 88, "z": 0, "id": 559}, {"y": 18, "x": 132, "z": 0, "id": 560}, {"y": 15, "x": 133, "z": 0, "id": 538}, {"y": 17, "x": 133, "z": 0, "id": 533}, {"y": 43, "x": 116, "z": 0, "id": 538}, {"y": 44, "x": 118, "z": 0, "id": 559}, {"y": 44, "x": 117, "z": 0, "id": 561}, {"y": 32, "x": 74, "z": 0, "id": 497}, {"y": 56, "x": 19, "z": 0, "id": 559}, {"y": 56, "x": 20, "z": 0, "id": 550}, {"y": 65, "x": 19, "z": 0, "id": 539}, {"y": 58, "x": 10, "z": 0, "id": 539}, {"y": 50, "x": 11, "z": 0, "id": 539}, {"y": 68, "x": 8, "z": 0, "id": 539}, {"y": 68, "x": 17, "z": 0, "id": 539}, {"y": 61, "x": 15, "z": 0, "id": 538}, {"y": 60, "x": 17, "z": 0, "id": 249}, {"y": 57, "x": 15, "z": 0, "id": 539}, {"y": 59, "x": 18, "z": 0, "id": 560}, {"y": 58, "x": 17, "z": 0, "id": 562}, {"y": 59, "x": 17, "z": 0, "id": 560}, {"y": 60, "x": 24, "z": 0, "id": 497}, {"y": 69, "x": 22, "z": 0, "id": 563}, {"y": 75, "x": 72, "z": 0, "id": 564}, {"y": 74, "x": 73, "z": 0, "id": 502}, {"y": 88, "x": 88, "z": 0, "id": 565}, {"y": 88, "x": 89, "z": 0, "id": 561}, {"y": 79, "x": 97, "z": 0, "id": 538}, {"y": 101, "x": 70, "z": 0, "id": 538}, {"y": 95, "x": 88, "z": 0, "id": 566}, {"y": 118, "x": 28, "z": 0, "id": 538}, {"y": 120, "x": 29, "z": 0, "id": 565}, {"y": 121, "x": 34, "z": 0, "id": 408}, {"y": 119, "x": 32, "z": 0, "id": 408}, {"y": 118, "x": 32, "z": 0, "id": 410}, {"y": 121, "x": 33, "z": 0, "id": 217}, {"y": 123, "x": 34, "z": 0, "id": 408}, {"y": 122, "x": 34, "z": 0, "id": 410}, {"y": 124, "x": 33, "z": 0, "id": 414}, {"y": 124, "x": 34, "z": 0, "id": 567}, {"y": 122, "x": 26, "z": 0, "id": 251}, {"y": 122, "x": 27, "z": 0, "id": 217}, {"y": 123, "x": 28, "z": 0, "id": 410}, {"y": 121, "x": 27, "z": 0, "id": 544}, {"y": 124, "x": 29, "z": 0, "id": 408}, {"y": 125, "x": 30, "z": 0, "id": 217}, {"y": 124, "x": 32, "z": 0, "id": 410}, {"y": 120, "x": 26, "z": 0, "id": 408}, {"y": 116, "x": 31, "z": 0, "id": 408}, {"y": 117, "x": 32, "z": 0, "id": 217}, {"y": 117, "x": 24, "z": 0, "id": 408}, {"y": 136, "x": 52, "z": 0, "id": 538}, {"y": 128, "x": 53, "z": 0, "id": 560}, {"y": 127, "x": 53, "z": 0, "id": 562}, {"y": 79, "x": 13, "z": 0, "id": 568}, {"y": 74, "x": 119, "z": 0, "id": 568}, {"y": 39, "x": 15, "z": 0, "id": 568}, {"y": 134, "x": 67, "z": 0, "id": 568}, {"y": 7, "x": 139, "z": 0, "id": 568}, {"y": 56, "x": 75, "z": 0, "id": 565}, {"y": 55, "x": 75, "z": 0, "id": 561}, {"y": 53, "x": 97, "z": 0, "id": 562}, {"y": 56, "x": 99, "z": 0, "id": 538}, {"y": 60, "x": 99, "z": 0, "id": 110}, {"y": 56, "x": 97, "z": 0, "id": 35}, {"y": 56, "x": 98, "z": 0, "id": 460}, {"y": 48, "x": 88, "z": 0, "id": 533}, {"y": 46, "x": 99, "z": 0, "id": 538}, {"y": 45, "x": 98, "z": 0, "id": 539}, {"y": 55, "x": 95, "z": 0, "id": 538}, {"y": 105, "x": 115, "z": 0, "id": 568}, {"y": 58, "x": 9, "z": 0, "id": 568}, {"y": 63, "x": 48, "z": 0, "id": 568}, {"y": 137, "x": 104, "z": 0, "id": 568}, {"y": 21, "x": 48, "z": 0, "id": 568}, {"y": 19, "x": 22, "z": 0, "id": 568}, {"y": 82, "x": 8, "z": 0, "id": 569}, {"y": 89, "x": 16, "z": 0, "id": 236}, {"y": 89, "x": 14, "z": 0, "id": 258}, {"y": 3, "x": 18, "z": 0, "id": 158}, {"y": 49, "x": 38, "z": 0, "id": 463}, {"y": 48, "x": 37, "z": 0, "id": 538}, {"y": 54, "x": 21, "z": 0, "id": 570}, {"y": 59, "x": 5, "z": 0, "id": 539}, {"y": 62, "x": 31, "z": 0, "id": 538}, {"y": 63, "x": 32, "z": 0, "id": 571}, {"y": 62, "x": 39, "z": 0, "id": 550}, {"y": 65, "x": 40, "z": 0, "id": 495}, {"y": 65, "x": 39, "z": 0, "id": 561}, {"y": 65, "x": 36, "z": 0, "id": 366}, {"y": 66, "x": 36, "z": 0, "id": 555}, {"y": 65, "x": 37, "z": 0, "id": 572}, {"y": 64, "x": 38, "z": 0, "id": 355}, {"y": 72, "x": 40, "z": 0, "id": 554}, {"y": 73, "x": 43, "z": 0, "id": 31}, {"y": 83, "x": 47, "z": 0, "id": 403}, {"y": 82, "x": 45, "z": 0, "id": 404}, {"y": 81, "x": 44, "z": 0, "id": 402}, {"y": 80, "x": 44, "z": 0, "id": 404}, {"y": 84, "x": 47, "z": 0, "id": 404}, {"y": 85, "x": 46, "z": 0, "id": 402}, {"y": 81, "x": 36, "z": 0, "id": 257}, {"y": 83, "x": 30, "z": 0, "id": 402}, {"y": 102, "x": 40, "z": 0, "id": 568}, {"y": 32, "x": 19, "z": 0, "id": 90}, {"y": 21, "x": 16, "z": 0, "id": 182}, {"y": 52, "x": 97, "z": 0, "id": 566}, {"y": 61, "x": 53, "z": 0, "id": 220}, {"y": 59, "x": 53, "z": 0, "id": 316}, {"y": 60, "x": 54, "z": 0, "id": 490}, {"y": 65, "x": 57, "z": 0, "id": 539}, {"y": 76, "x": 39, "z": 0, "id": 573}, {"y": 73, "x": 73, "z": 0, "id": 573}, {"y": 32, "x": 22, "z": 0, "id": 538}, {"y": 31, "x": 21, "z": 0, "id": 404}, {"y": 30, "x": 21, "z": 0, "id": 403}, {"y": 30, "x": 22, "z": 0, "id": 574}, {"y": 110, "x": 57, "z": 0, "id": 538}, {"y": 109, "x": 52, "z": 0, "id": 539}, {"y": 124, "x": 58, "z": 0, "id": 502}, {"y": 52, "x": 121, "z": 0, "id": 539}, {"y": 17, "x": 89, "z": 0, "id": 2}, {"y": 18, "x": 88, "z": 0, "id": 568}, {"y": 45, "x": 24, "z": 0, "id": 463}, {"y": 45, "x": 8, "z": 0, "id": 442}, {"y": 44, "x": 6, "z": 0, "id": 575}, {"y": 45, "x": 6, "z": 0, "id": 561}, {"y": 61, "x": 7, "z": 0, "id": 424}, {"y": 51, "x": 6, "z": 0, "id": 538}, {"y": 51, "x": 7, "z": 0, "id": 561}, {"y": 114, "x": 64, "z": 0, "id": 326}, {"y": 114, "x": 64, "z": 0, "id": 394}, {"y": 119, "x": 70, "z": 0, "id": 576}, {"y": 120, "x": 71, "z": 0, "id": 367}, {"y": 121, "x": 71, "z": 0, "id": 538}, {"y": 6, "x": 47, "z": 0, "id": 496}, {"y": 4, "x": 38, "z": 0, "id": 496}, {"y": 14, "x": 37, "z": 0, "id": 550}, {"y": 4, "x": 59, "z": 0, "id": 538}, {"y": 3, "x": 59, "z": 0, "id": 550}, {"y": 3, "x": 67, "z": 0, "id": 550}, {"y": 4, "x": 72, "z": 0, "id": 561}, {"y": 9, "x": 72, "z": 0, "id": 239}, {"y": 5, "x": 70, "z": 0, "id": 168}, {"y": 7, "x": 71, "z": 0, "id": 185}, {"y": 7, "x": 71, "z": 0, "id": 168}, {"y": 7, "x": 73, "z": 0, "id": 167}, {"y": 10, "x": 73, "z": 0, "id": 550}, {"y": 7, "x": 79, "z": 0, "id": 496}, {"y": 13, "x": 78, "z": 0, "id": 496}, {"y": 12, "x": 90, "z": 0, "id": 577}, {"y": 18, "x": 96, "z": 0, "id": 578}, {"y": 19, "x": 100, "z": 0, "id": 550}, {"y": 15, "x": 103, "z": 0, "id": 561}, {"y": 11, "x": 108, "z": 0, "id": 499}, {"y": 17, "x": 108, "z": 0, "id": 496}, {"y": 18, "x": 105, "z": 0, "id": 539}, {"y": 19, "x": 104, "z": 0, "id": 539}, {"y": 18, "x": 104, "z": 0, "id": 550}, {"y": 8, "x": 126, "z": 0, "id": 496}, {"y": 12, "x": 125, "z": 0, "id": 499}, {"y": 14, "x": 128, "z": 0, "id": 550}, {"y": 16, "x": 122, "z": 0, "id": 499}, {"y": 4, "x": 131, "z": 0, "id": 578}, {"y": 5, "x": 131, "z": 0, "id": 578}, {"y": 8, "x": 124, "z": 0, "id": 579}, {"y": 30, "x": 140, "z": 0, "id": 561}, {"y": 36, "x": 135, "z": 0, "id": 550}, {"y": 40, "x": 139, "z": 0, "id": 561}, {"y": 50, "x": 128, "z": 0, "id": 538}, {"y": 49, "x": 127, "z": 0, "id": 561}, {"y": 57, "x": 127, "z": 0, "id": 561}, {"y": 56, "x": 119, "z": 0, "id": 538}, {"y": 62, "x": 120, "z": 0, "id": 561}, {"y": 57, "x": 119, "z": 0, "id": 550}, {"y": 69, "x": 126, "z": 0, "id": 550}, {"y": 66, "x": 125, "z": 0, "id": 550}, {"y": 60, "x": 129, "z": 0, "id": 550}, {"y": 39, "x": 126, "z": 0, "id": 580}, {"y": 33, "x": 120, "z": 0, "id": 550}, {"y": 28, "x": 121, "z": 0, "id": 561}, {"y": 24, "x": 117, "z": 0, "id": 561}, {"y": 32, "x": 114, "z": 0, "id": 539}, {"y": 30, "x": 114, "z": 0, "id": 496}, {"y": 32, "x": 108, "z": 0, "id": 550}, {"y": 37, "x": 109, "z": 0, "id": 561}, {"y": 40, "x": 114, "z": 0, "id": 496}, {"y": 23, "x": 105, "z": 0, "id": 550}, {"y": 25, "x": 95, "z": 0, "id": 550}, {"y": 32, "x": 96, "z": 0, "id": 561}, {"y": 27, "x": 81, "z": 0, "id": 550}, {"y": 40, "x": 88, "z": 0, "id": 497}, {"y": 42, "x": 84, "z": 0, "id": 539}, {"y": 41, "x": 82, "z": 0, "id": 538}, {"y": 32, "x": 71, "z": 0, "id": 581}, {"y": 29, "x": 67, "z": 0, "id": 539}, {"y": 30, "x": 67, "z": 0, "id": 550}, {"y": 37, "x": 64, "z": 0, "id": 550}, {"y": 36, "x": 68, "z": 0, "id": 561}, {"y": 34, "x": 66, "z": 0, "id": 538}, {"y": 33, "x": 66, "z": 0, "id": 130}, {"y": 34, "x": 65, "z": 0, "id": 509}, {"y": 33, "x": 67, "z": 0, "id": 30}, {"y": 31, "x": 71, "z": 0, "id": 35}, {"y": 30, "x": 66, "z": 0, "id": 240}, {"y": 31, "x": 64, "z": 0, "id": 35}, {"y": 29, "x": 49, "z": 0, "id": 561}, {"y": 36, "x": 54, "z": 0, "id": 582}, {"y": 35, "x": 57, "z": 0, "id": 153}, {"y": 33, "x": 54, "z": 0, "id": 245}, {"y": 29, "x": 44, "z": 0, "id": 561}, {"y": 27, "x": 33, "z": 0, "id": 563}, {"y": 27, "x": 34, "z": 0, "id": 496}, {"y": 37, "x": 35, "z": 0, "id": 550}, {"y": 34, "x": 34, "z": 0, "id": 92}, {"y": 35, "x": 35, "z": 0, "id": 27}, {"y": 36, "x": 35, "z": 0, "id": 259}, {"y": 36, "x": 35, "z": 0, "id": 96}, {"y": 35, "x": 36, "z": 0, "id": 125}, {"y": 35, "x": 33, "z": 0, "id": 36}, {"y": 30, "x": 39, "z": 0, "id": 539}, {"y": 27, "x": 37, "z": 0, "id": 539}, {"y": 35, "x": 38, "z": 0, "id": 538}, {"y": 37, "x": 38, "z": 0, "id": 496}, {"y": 33, "x": 29, "z": 0, "id": 550}, {"y": 26, "x": 30, "z": 0, "id": 538}, {"y": 25, "x": 29, "z": 0, "id": 550}, {"y": 26, "x": 26, "z": 0, "id": 496}, {"y": 30, "x": 29, "z": 0, "id": 539}, {"y": 28, "x": 20, "z": 0, "id": 496}, {"y": 33, "x": 22, "z": 0, "id": 550}, {"y": 41, "x": 14, "z": 0, "id": 539}, {"y": 40, "x": 10, "z": 0, "id": 235}, {"y": 42, "x": 19, "z": 0, "id": 496}, {"y": 46, "x": 12, "z": 0, "id": 496}, {"y": 48, "x": 14, "z": 0, "id": 496}, {"y": 61, "x": 17, "z": 0, "id": 478}, {"y": 49, "x": 9, "z": 0, "id": 583}, {"y": 62, "x": 17, "z": 0, "id": 496}, {"y": 72, "x": 13, "z": 0, "id": 496}, {"y": 84, "x": 16, "z": 0, "id": 577}, {"y": 85, "x": 21, "z": 0, "id": 577}, {"y": 74, "x": 8, "z": 0, "id": 539}, {"y": 78, "x": 33, "z": 0, "id": 550}, {"y": 76, "x": 40, "z": 0, "id": 538}, {"y": 75, "x": 39, "z": 0, "id": 561}, {"y": 73, "x": 41, "z": 0, "id": 539}, {"y": 85, "x": 38, "z": 0, "id": 538}, {"y": 77, "x": 33, "z": 0, "id": 584}, {"y": 77, "x": 32, "z": 0, "id": 584}, {"y": 75, "x": 32, "z": 0, "id": 584}, {"y": 85, "x": 40, "z": 0, "id": 580}, {"y": 79, "x": 49, "z": 0, "id": 502}, {"y": 74, "x": 52, "z": 0, "id": 561}, {"y": 89, "x": 49, "z": 0, "id": 578}, {"y": 84, "x": 76, "z": 0, "id": 550}, {"y": 87, "x": 64, "z": 0, "id": 585}, {"y": 79, "x": 76, "z": 0, "id": 550}, {"y": 72, "x": 78, "z": 0, "id": 561}, {"y": 69, "x": 84, "z": 0, "id": 561}, {"y": 80, "x": 89, "z": 0, "id": 580}, {"y": 84, "x": 95, "z": 0, "id": 550}, {"y": 74, "x": 98, "z": 0, "id": 539}, {"y": 85, "x": 104, "z": 0, "id": 499}, {"y": 80, "x": 108, "z": 0, "id": 550}, {"y": 72, "x": 123, "z": 0, "id": 496}, {"y": 96, "x": 87, "z": 0, "id": 499}, {"y": 97, "x": 80, "z": 0, "id": 550}, {"y": 94, "x": 62, "z": 0, "id": 496}, {"y": 93, "x": 67, "z": 0, "id": 470}, {"y": 96, "x": 65, "z": 0, "id": 539}, {"y": 94, "x": 66, "z": 0, "id": 496}, {"y": 98, "x": 67, "z": 0, "id": 83}, {"y": 99, "x": 69, "z": 0, "id": 32}, {"y": 97, "x": 73, "z": 0, "id": 496}, {"y": 88, "x": 54, "z": 0, "id": 550}, {"y": 88, "x": 53, "z": 0, "id": 586}, {"y": 93, "x": 60, "z": 0, "id": 579}, {"y": 94, "x": 63, "z": 0, "id": 579}, {"y": 99, "x": 54, "z": 0, "id": 568}, {"y": 95, "x": 26, "z": 0, "id": 538}, {"y": 94, "x": 21, "z": 0, "id": 496}, {"y": 105, "x": 37, "z": 0, "id": 578}, {"y": 102, "x": 41, "z": 0, "id": 578}, {"y": 103, "x": 45, "z": 0, "id": 578}, {"y": 114, "x": 43, "z": 0, "id": 496}, {"y": 113, "x": 52, "z": 0, "id": 550}, {"y": 114, "x": 59, "z": 0, "id": 499}, {"y": 115, "x": 63, "z": 0, "id": 550}, {"y": 112, "x": 66, "z": 0, "id": 550}, {"y": 119, "x": 71, "z": 0, "id": 550}, {"y": 127, "x": 50, "z": 0, "id": 384}, {"y": 128, "x": 49, "z": 0, "id": 550}, {"y": 133, "x": 54, "z": 0, "id": 550}, {"y": 136, "x": 58, "z": 0, "id": 496}, {"y": 128, "x": 61, "z": 0, "id": 496}, {"y": 139, "x": 73, "z": 0, "id": 460}, {"y": 128, "x": 67, "z": 0, "id": 384}, {"y": 129, "x": 67, "z": 0, "id": 578}, {"y": 128, "x": 68, "z": 0, "id": 578}, {"y": 133, "x": 99, "z": 0, "id": 578}, {"y": 131, "x": 106, "z": 0, "id": 538}, {"y": 135, "x": 84, "z": 0, "id": 519}, {"y": 135, "x": 83, "z": 0, "id": 499}, {"y": 141, "x": 81, "z": 0, "id": 496}, {"y": 139, "x": 97, "z": 0, "id": 586}, {"y": 135, "x": 97, "z": 0, "id": 584}, {"y": 133, "x": 101, "z": 0, "id": 587}, {"y": 140, "x": 100, "z": 0, "id": 437}, {"y": 139, "x": 100, "z": 0, "id": 272}, {"y": 137, "x": 89, "z": 0, "id": 588}, {"y": 138, "x": 91, "z": 0, "id": 277}, {"y": 139, "x": 88, "z": 0, "id": 49}, {"y": 118, "x": 94, "z": 0, "id": 589}, {"y": 89, "x": 136, "z": 0, "id": 590}, {"y": 88, "x": 135, "z": 0, "id": 217}, {"y": 89, "x": 134, "z": 0, "id": 217}, {"y": 90, "x": 135, "z": 0, "id": 591}, {"y": 90, "x": 137, "z": 0, "id": 484}, {"y": 89, "x": 137, "z": 0, "id": 569}, {"y": 89, "x": 137, "z": 0, "id": 408}, {"y": 90, "x": 134, "z": 0, "id": 569}, {"y": 90, "x": 134, "z": 0, "id": 409}, {"y": 87, "x": 136, "z": 0, "id": 50}, {"y": 88, "x": 139, "z": 0, "id": 150}, {"y": 86, "x": 140, "z": 0, "id": 147}, {"y": 88, "x": 140, "z": 0, "id": 592}, {"y": 85, "x": 136, "z": 0, "id": 216}, {"y": 85, "x": 141, "z": 0, "id": 593}, {"y": 83, "x": 138, "z": 0, "id": 452}, {"y": 87, "x": 134, "z": 0, "id": 205}, {"y": 86, "x": 140, "z": 0, "id": 594}, {"y": 86, "x": 137, "z": 0, "id": 595}, {"y": 87, "x": 137, "z": 0, "id": 273}, {"y": 85, "x": 139, "z": 0, "id": 595}, {"y": 86, "x": 138, "z": 0, "id": 452}, {"y": 84, "x": 139, "z": 0, "id": 143}, {"y": 83, "x": 137, "z": 0, "id": 216}, {"y": 87, "x": 134, "z": 0, "id": 251}, {"y": 86, "x": 142, "z": 0, "id": 408}, {"y": 83, "x": 139, "z": 0, "id": 251}, {"y": 82, "x": 137, "z": 0, "id": 410}, {"y": 87, "x": 140, "z": 0, "id": 217}, {"y": 88, "x": 140, "z": 0, "id": 414}, {"y": 89, "x": 139, "z": 0, "id": 484}, {"y": 85, "x": 135, "z": 0, "id": 408}, {"y": 81, "x": 140, "z": 0, "id": 410}, {"y": 81, "x": 137, "z": 0, "id": 484}, {"y": 82, "x": 135, "z": 0, "id": 544}, {"y": 83, "x": 140, "z": 0, "id": 251}, {"y": 84, "x": 141, "z": 0, "id": 408}, {"y": 84, "x": 142, "z": 0, "id": 217}, {"y": 82, "x": 135, "z": 0, "id": 596}, {"y": 82, "x": 141, "z": 0, "id": 458}, {"y": 87, "x": 141, "z": 0, "id": 597}, {"y": 90, "x": 138, "z": 0, "id": 597}, {"y": 85, "x": 143, "z": 0, "id": 569}, {"y": 80, "x": 132, "z": 0, "id": 598}, {"y": 88, "x": 132, "z": 0, "id": 599}, {"y": 124, "x": 131, "z": 0, "id": 600}, {"y": 125, "x": 130, "z": 0, "id": 562}, {"y": 83, "x": 91, "z": 0, "id": 601}, {"y": 82, "x": 95, "z": 0, "id": 601}, {"y": 81, "x": 90, "z": 0, "id": 601}, {"y": 72, "x": 83, "z": 0, "id": 601}, {"y": 74, "x": 87, "z": 0, "id": 601}, {"y": 76, "x": 78, "z": 0, "id": 601}, {"y": 77, "x": 83, "z": 0, "id": 601}, {"y": 81, "x": 86, "z": 0, "id": 601}, {"y": 83, "x": 82, "z": 0, "id": 601}, {"y": 85, "x": 87, "z": 0, "id": 602}, {"y": 131, "x": 50, "z": 0, "id": 603}, {"y": 128, "x": 49, "z": 0, "id": 603}, {"y": 127, "x": 53, "z": 0, "id": 603}, {"y": 134, "x": 51, "z": 0, "id": 603}, {"y": 137, "x": 56, "z": 0, "id": 603}, {"y": 123, "x": 48, "z": 0, "id": 603}, {"y": 120, "x": 45, "z": 0, "id": 603}, {"y": 120, "x": 48, "z": 0, "id": 603}, {"y": 126, "x": 57, "z": 0, "id": 603}, {"y": 126, "x": 60, "z": 0, "id": 603}, {"y": 122, "x": 57, "z": 0, "id": 604}, {"y": 125, "x": 45, "z": 0, "id": 603}, {"y": 122, "x": 42, "z": 0, "id": 603}, {"y": 129, "x": 45, "z": 0, "id": 603}, {"y": 131, "x": 44, "z": 0, "id": 605}, {"y": 132, "x": 47, "z": 0, "id": 603}, {"y": 134, "x": 50, "z": 0, "id": 604}, {"y": 133, "x": 64, "z": 0, "id": 603}, {"y": 126, "x": 42, "z": 0, "id": 603}, {"y": 129, "x": 43, "z": 0, "id": 606}, {"y": 47, "x": 20, "z": 0, "id": 550}, {"y": 45, "x": 23, "z": 0, "id": 561}, {"y": 45, "x": 17, "z": 0, "id": 496}, {"y": 48, "x": 32, "z": 0, "id": 550}, {"y": 51, "x": 30, "z": 0, "id": 496}, {"y": 44, "x": 28, "z": 0, "id": 550}, {"y": 54, "x": 33, "z": 0, "id": 561}, {"y": 57, "x": 25, "z": 0, "id": 496}, {"y": 48, "x": 21, "z": 0, "id": 607}, {"y": 49, "x": 24, "z": 0, "id": 607}, {"y": 112, "x": 63, "z": 0, "id": 608}, {"y": 115, "x": 54, "z": 0, "id": 609}, {"y": 110, "x": 50, "z": 0, "id": 610}, {"y": 110, "x": 48, "z": 0, "id": 561}, {"y": 5, "x": 28, "z": 0, "id": 159}, {"y": 4, "x": 32, "z": 0, "id": 179}, {"y": 4, "x": 35, "z": 0, "id": 187}, {"y": 4, "x": 30, "z": 0, "id": 610}, {"y": 5, "x": 30, "z": 0, "id": 561}, {"y": 6, "x": 117, "z": 0, "id": 611}, {"y": 140, "x": 91, "z": 0, "id": 320}, {"y": 129, "x": 104, "z": 0, "id": 216}, {"y": 130, "x": 103, "z": 0, "id": 586}, {"y": 134, "x": 81, "z": 0, "id": 538}, {"y": 134, "x": 77, "z": 0, "id": 611}, {"y": 135, "x": 76, "z": 0, "id": 561}, {"y": 8, "x": 117, "z": 0, "id": 561}, {"y": 137, "x": 80, "z": 0, "id": 612}, {"y": 100, "x": 45, "z": 0, "id": 497}, {"y": 37, "x": 56, "z": 0, "id": 460}, {"y": 69, "x": 62, "z": 0, "id": 550}, {"y": 73, "x": 59, "z": 0, "id": 550}, {"y": 72, "x": 67, "z": 0, "id": 550}, {"y": 69, "x": 69, "z": 0, "id": 550}, {"y": 66, "x": 69, "z": 0, "id": 496}, {"y": 60, "x": 65, "z": 0, "id": 496}, {"y": 58, "x": 59, "z": 0, "id": 538}, {"y": 47, "x": 60, "z": 0, "id": 580}, {"y": 53, "x": 61, "z": 0, "id": 538}, {"y": 52, "x": 60, "z": 0, "id": 561}, {"y": 52, "x": 69, "z": 0, "id": 561}, {"y": 58, "x": 60, "z": 0, "id": 561}, {"y": 48, "x": 69, "z": 0, "id": 35}, {"y": 47, "x": 72, "z": 0, "id": 30}, {"y": 49, "x": 75, "z": 0, "id": 156}, {"y": 49, "x": 70, "z": 0, "id": 240}, {"y": 47, "x": 73, "z": 0, "id": 156}, {"y": 44, "x": 68, "z": 0, "id": 30}, {"y": 41, "x": 67, "z": 0, "id": 32}, {"y": 42, "x": 70, "z": 0, "id": 30}, {"y": 45, "x": 68, "z": 0, "id": 35}, {"y": 47, "x": 65, "z": 0, "id": 156}, {"y": 43, "x": 66, "z": 0, "id": 30}, {"y": 46, "x": 68, "z": 0, "id": 97}, {"y": 44, "x": 71, "z": 0, "id": 71}, {"y": 48, "x": 67, "z": 0, "id": 130}, {"y": 42, "x": 63, "z": 0, "id": 296}, {"y": 42, "x": 65, "z": 0, "id": 30}, {"y": 43, "x": 59, "z": 0, "id": 30}, {"y": 42, "x": 58, "z": 0, "id": 97}, {"y": 40, "x": 69, "z": 0, "id": 513}, {"y": 39, "x": 61, "z": 0, "id": 513}, {"y": 40, "x": 65, "z": 0, "id": 35}, {"y": 39, "x": 68, "z": 0, "id": 30}, {"y": 39, "x": 73, "z": 0, "id": 538}, {"y": 38, "x": 73, "z": 0, "id": 561}, {"y": 46, "x": 80, "z": 0, "id": 613}, {"y": 50, "x": 84, "z": 0, "id": 613}, {"y": 43, "x": 86, "z": 0, "id": 614}, {"y": 52, "x": 81, "z": 0, "id": 614}, {"y": 54, "x": 86, "z": 0, "id": 613}, {"y": 54, "x": 88, "z": 0, "id": 613}, {"y": 48, "x": 90, "z": 0, "id": 613}, {"y": 59, "x": 95, "z": 0, "id": 539}, {"y": 65, "x": 99, "z": 0, "id": 539}, {"y": 64, "x": 91, "z": 0, "id": 539}, {"y": 62, "x": 97, "z": 0, "id": 539}, {"y": 65, "x": 94, "z": 0, "id": 612}, {"y": 67, "x": 97, "z": 0, "id": 612}, {"y": 64, "x": 99, "z": 0, "id": 612}, {"y": 66, "x": 102, "z": 0, "id": 615}, {"y": 63, "x": 91, "z": 0, "id": 612}, {"y": 64, "x": 93, "z": 0, "id": 580}, {"y": 88, "x": 44, "z": 0, "id": 608}, {"y": 85, "x": 37, "z": 0, "id": 616}, {"y": 85, "x": 37, "z": 0, "id": 617}, {"y": 89, "x": 50, "z": 0, "id": 578}, {"y": 94, "x": 45, "z": 0, "id": 260}, {"y": 96, "x": 47, "z": 0, "id": 40}, {"y": 97, "x": 49, "z": 0, "id": 139}, {"y": 97, "x": 49, "z": 0, "id": 25}, {"y": 94, "x": 46, "z": 0, "id": 356}, {"y": 93, "x": 52, "z": 0, "id": 441}, {"y": 94, "x": 54, "z": 0, "id": 583}, {"y": 95, "x": 55, "z": 0, "id": 9}, {"y": 95, "x": 56, "z": 0, "id": 67}, {"y": 95, "x": 54, "z": 0, "id": 555}, {"y": 95, "x": 53, "z": 0, "id": 151}, {"y": 93, "x": 55, "z": 0, "id": 73}, {"y": 96, "x": 55, "z": 0, "id": 539}, {"y": 94, "x": 51, "z": 0, "id": 538}, {"y": 96, "x": 51, "z": 0, "id": 538}, {"y": 93, "x": 46, "z": 0, "id": 577}, {"y": 98, "x": 33, "z": 0, "id": 496}, {"y": 109, "x": 44, "z": 0, "id": 103}, {"y": 106, "x": 43, "z": 0, "id": 103}, {"y": 109, "x": 35, "z": 0, "id": 54}, {"y": 99, "x": 64, "z": 0, "id": 494}, {"y": 100, "x": 66, "z": 0, "id": 104}, {"y": 100, "x": 68, "z": 0, "id": 156}, {"y": 100, "x": 67, "z": 0, "id": 69}, {"y": 99, "x": 64, "z": 0, "id": 247}, {"y": 97, "x": 63, "z": 0, "id": 37}, {"y": 98, "x": 64, "z": 0, "id": 21}, {"y": 98, "x": 64, "z": 0, "id": 275}, {"y": 96, "x": 63, "z": 0, "id": 487}, {"y": 99, "x": 66, "z": 0, "id": 240}, {"y": 65, "x": 64, "z": 0, "id": 499}, {"y": 19, "x": 70, "z": 0, "id": 499}, {"y": 19, "x": 73, "z": 0, "id": 550}, {"y": 14, "x": 74, "z": 0, "id": 561}, {"y": 10, "x": 64, "z": 0, "id": 496}, {"y": 14, "x": 75, "z": 0, "id": 539}, {"y": 11, "x": 96, "z": 0, "id": 550}, {"y": 25, "x": 57, "z": 0, "id": 561}, {"y": 25, "x": 133, "z": 0, "id": 538}, {"y": 25, "x": 131, "z": 0, "id": 550}, {"y": 23, "x": 136, "z": 0, "id": 538}, {"y": 22, "x": 136, "z": 0, "id": 550}, {"y": 20, "x": 126, "z": 0, "id": 538}, {"y": 20, "x": 124, "z": 0, "id": 550}, {"y": 49, "x": 44, "z": 0, "id": 580}, {"y": 43, "x": 40, "z": 0, "id": 550}, {"y": 48, "x": 41, "z": 0, "id": 496}, {"y": 49, "x": 37, "z": 0, "id": 496}, {"y": 53, "x": 37, "z": 0, "id": 550}, {"y": 45, "x": 43, "z": 0, "id": 538}, {"y": 46, "x": 42, "z": 0, "id": 538}, {"y": 44, "x": 41, "z": 0, "id": 538}, {"y": 38, "x": 48, "z": 0, "id": 497}, {"y": 87, "x": 113, "z": 0, "id": 538}, {"y": 87, "x": 112, "z": 0, "id": 550}, {"y": 93, "x": 109, "z": 0, "id": 561}, {"y": 71, "x": 98, "z": 0, "id": 550}, {"y": 79, "x": 98, "z": 0, "id": 550}, {"y": 77, "x": 104, "z": 0, "id": 561}, {"y": 62, "x": 21, "z": 0, "id": 538}, {"y": 87, "x": 91, "z": 0, "id": 601}, {"y": 88, "x": 96, "z": 0, "id": 602}, {"y": 92, "x": 89, "z": 0, "id": 618}, {"y": 96, "x": 70, "z": 0, "id": 538}, {"y": 99, "x": 70, "z": 0, "id": 18}, {"y": 100, "x": 69, "z": 0, "id": 550}, {"y": 133, "x": 68, "z": 0, "id": 2}, {"y": 101, "x": 41, "z": 0, "id": 2}, {"y": 98, "x": 55, "z": 0, "id": 2}, {"y": 78, "x": 14, "z": 0, "id": 2}, {"y": 48, "x": 134, "z": 0, "id": 533}, {"y": 33, "x": 36, "z": 0, "id": 504}, {"y": 15, "x": 72, "z": 0, "id": 539}, {"y": 11, "x": 70, "z": 0, "id": 476}, {"y": 30, "x": 103, "z": 0, "id": 476}, {"y": 27, "x": 142, "z": 0, "id": 476}, {"y": 55, "x": 129, "z": 0, "id": 504}, {"y": 68, "x": 100, "z": 0, "id": 504}, {"y": 91, "x": 67, "z": 0, "id": 504}, {"y": 71, "x": 27, "z": 0, "id": 504}, {"y": 105, "x": 21, "z": 0, "id": 504}, {"y": 72, "x": 64, "z": 0, "id": 504}, {"y": 4, "x": 23, "z": 0, "id": 180}, {"y": 9, "x": 19, "z": 0, "id": 538}, {"y": 10, "x": 19, "z": 0, "id": 496}, {"y": 62, "x": 6, "z": 0, "id": 496}, {"y": 4, "x": 45, "z": 0, "id": 476}, {"y": 69, "x": 3, "z": 0, "id": 589}, {"y": 115, "x": 100, "z": 0, "id": 599}, {"y": 113, "x": 97, "z": 0, "id": 598}, {"y": 134, "x": 95, "z": 0, "id": 596}, {"y": 106, "x": 76, "z": 0, "id": 458}, {"y": 57, "x": 136, "z": 0, "id": 458}, {"y": 62, "x": 139, "z": 0, "id": 597}, {"y": 37, "x": 8, "z": 0, "id": 596}, {"y": 101, "x": 17, "z": 0, "id": 458}, {"y": 114, "x": 35, "z": 0, "id": 547}, {"y": 115, "x": 72, "z": 0, "id": 538}, {"y": 115, "x": 75, "z": 0, "id": 424}, {"y": 116, "x": 75, "z": 0, "id": 561}, {"y": 118, "x": 62, "z": 0, "id": 559}], "commands_count": 0, "loss_conditions": 255, "heroes_count": 0, "map_name": "Reclamation", "Tan": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}} \ No newline at end of file diff --git a/test.png b/test.png new file mode 100644 index 0000000000000000000000000000000000000000..5c5a7c08b7fa25934ae5b940766ee7f34410e89a GIT binary patch literal 588 zcmV-S0<-;zP)U< zQB)A?&%%OIR}xB5t0`LB?<|fSXr@iu>saMJk2k zAVRH%gj?PRKq(9Z+s3v@rI?r?mt$dpOa{kcW`=y8>1l3m*xaPq90XulY;Cc=PBzQ@ zJn1weBe*W6iBjRoxg29-yuOCVrQ@fRWV5orFU_X(sYXKz1>H)sHccrMWOrAp)qbu2 zX=g_VXf4{_W^WJ6>b*C*rl$0<_LwTg#zstc!1MIIX$M#qtE(~HfyKpM0N2Iy;sf$| z#>XQ8mPI-pAK-b+&PD=$e)OX_fDD7l$w)x0#>-25fKqypv=#V%d;qY#9NOo0fC%5; zi2!SB7;T;!;Nv3^U}*`*=?(zy?h*kq8CcB|TcQ>LwjBw0e&*{dzPm`M0osG}`AHCjs_3msh2vvRPbrl+ zKaT|T*&h+ARc>#&zvt|X!$W+(V?Z>3QeAKCAfQyDSfpI$>WY&SDivC-=$bS@z0Ujl z?`do_D3>V~d3@yIfukdyo(8?rH9!z>alz;)mzNwIaD7d^o+MW){Hs!!=5Lt^^V%8k azx4;Nq#0DIB`BZ(0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOY} z76~J4%jkOm00H<(L_t(Y$L*HCYZGA@$3J(?^?H{I4I!;TD?-yYwhcHKYFmm>H(dha zrWtf{^+3c?sN1bNIp|-|xm%%WN)sriKfnZv$zadY7K$<2HYCp8rFYkR?I8G_-}m`E zJkOWsd8FrUE>tr72e>Qb|LOhL`rO+~^z|_|#_%wjhORR>NGip^02>>|++F7{$-T*D z_AxUvB$Ff(s487ugu^Hbl4O5sS#N$_Ik?{P3ovganV%<{(c`WnwuPN!}`V@c;-3) zomYjq`;~Yc;PjMgl~ReF9m-{vmW 1 + self.framedelay = framedelay + + self.subtiles = [grid[(0, x):(grid.rows, x+1)] for x in xrange(grid.columns)] + self.texcoords = [[frame.tex_coords for frame in subtile] for subtile in self.subtiles] + + def __getitem__(self, index): + return self.subtiles[index] + +class Tile(object): + def __init__(self, tileset, frame=0): + self.tileset = tileset + self.frame = frame + + #self.subtiles = (2, 3, 0, 1) + self.subtiles = [randint(0, 3) for x in xrange(4)] + self.subtiles = [randint(12, 15) for x in xrange(4)] + + def vertices(self, offset=(0, 0)): + """x, y = offset + + vertices = ( + x, y, x+1, y, x+1, y+1, x, y+1, + x+1, y, x+2, y, x+2, y+1, x+1, y+1, + x, y+1, x+1, y+1, x+1, y+2, x, y+2, + x+1, y+1, x+2, y+1, x+2, y+2, x+1, y+2)""" + + vertices = ( + 0, 0, 1, 0, 1, 1, 0, 1, + 1, 0, 2, 0, 2, 1, 1, 1, + 0, 1, 1, 1, 1, 2, 0, 2, + 1, 1, 2, 1, 2, 2, 1, 2) + + """vertices = ( + 0, 0, 0, 1, 0, 3, 1, 1, 5, 0, 1, 0, + 1, 0, 1, 2, 0, 5, 2, 1, 2, 1, 1, 4, + 0, 1, 9, 1, 1, 0, 1, 2, 1, 0, 2, 5, + 1, 1, 4, 2, 1, 3, 2, 2, 0, 1, 2, 1) + + offset = list(offset) + offset.append(0)""" + + return ((coord * 16) + offset[i%2] for i, coord in enumerate(vertices)) + + @property + def texcoords(self): + for subtile in self.subtiles: + for coord in self.tileset.texcoords[subtile][self.frame]: + yield coord + + @property + def colours(self): + return repeat(255, 4*4*4) + +tilesets = { + "#": Tileset(TILE_LOADER.image("grass.png")), + "~": Tileset(TILE_LOADER.image("water.png"))} + +class TileLayer(EventDispatcher): + def __init__(self, tileset, tiles): + self.tileset = tileset + self._tiles = tiles + + def __getitem__(self, coords): + x, y = coords + return self._tiles[y][x] + + def __len__(self): + return len(list(self.tiles)) + + def animate(self, dt): + for tile in self.tiles: + tile.frame += 1# random.randint(0, 2) + if tile.frame >= tile.tileset.frames: + tile.frame = 0 + + self.dispatch_event("on_animate") + + """return + start = index*(3*4*4) + end = (index+1)*(3*4*4) + + self.tempcoords[start:end]=tile.texcoords + #self.vlists[0].tex_coords[start:end]=tile.texcoords + self.vlists[0].tex_coords=self.tempcoords""" + + @property + def tiles(self): + for row in self._tiles: + for tile in row: + if tile is not None: + yield tile + + def coordtiles(self): + for y, row in enumerate(self.tilelayer): + for x, tile in enumerate(row): + yield (x, y), tile +TileLayer.register_event_type('on_animate') + +class LayerView(object): + def __init__(self, mapview, tilelayer): + self.tilelayer = tilelayer + self.group = TileLayerGroup(self.tilelayer.tileset.texture) + self.mapview = mapview + self.vlist = None + + def rotate(dt): + self.group.rotation += 0.5 + + self.tilelayer.push_handlers(self) + #clock.schedule_interval(rotate, 0.01) + + def refresh(self): + if self.vlist is not None: + self.vlist.delete() + + vertices = [] + for y, row in enumerate(self.tilelayer._tiles): + for x, tile in enumerate(row): + if tile is not None: + vertices.extend(tile.vertices((x*32, y*32))) + + texcoords = list(chain(*(tile.texcoords for tile in self.tilelayer.tiles))) + colours = list(chain(*(tile.colours for tile in self.tilelayer.tiles))) + + self.vlist = self.mapview.batch.add( + len(self.tilelayer)*16, gl.GL_QUADS, self.group, + ('v2i', vertices), + ('t3f', texcoords), + ('c4B', colours)) + + def on_animate(self): + def tex(): + for tile in self.tilelayer.tiles: + for texcoord in tile.texcoords: + yield texcoord + + self.vlist.tex_coords = list(tex()) + +class TileMap(object): + def __init__(self, layers): + self.layers = [ + TileLayer(tilesets["#"], [[Tile(tilesets["#"]) for x in xrange(20)] for y in xrange(15)]), + TileLayer(tilesets["~"], [[choice((Tile(tilesets["~"]), None)) for x in xrange(20)] for y in xrange(15)])] + + def animate(self, dt): + for layer in self.layers: + if layer.tileset.animated: + layer.animate(dt) + +class MapView(object): + def __init__(self, tilemap): + self.tilemap = tilemap + self.batch = Batch() + + self.layerviews = [LayerView(self, layer) for layer in tilemap.layers] + + self.refresh() + + def refresh(self): + for layerview in self.layerviews: + layerview.refresh() + + def draw(self): + self.batch.draw() + + def move(self, movement): + dx, dy = movement + for layerview in self.layerviews: + x, y = layerview.group.translation + layerview.group.translation = (x+dx, y+dy) + +if __name__ == "__main__": + import pyglet + + window = pyglet.window.Window(640, 480, "Defence", vsync=False) + tmap = TileMap(None) + view = MapView(tmap) + + fps = pyglet.clock.ClockDisplay() + + @window.event + def on_draw(): + window.clear() + view.draw() + fps.draw() + + @window.event + def on_mouse_drag(x, y, dx, dy, buttons, modifiers): + view.move((dx, dy)) + + pyglet.clock.schedule_interval(tmap.animate, 1/10.0) + pyglet.clock.schedule(lambda dt: None) + pyglet.app.run() +