diff --git a/.gitignore b/.gitignore index 939c1b1..10742dc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ depend.mk # astyle orig files *.orig +cov-int +infer-out diff --git a/.travis.yml b/.travis.yml index 4463c33..03e59ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ sudo: required before_install: - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - sudo apt-get update -q + - sudo apt-get install picosat - sudo apt-get remove gcc g++ - sudo apt-get install g++-7 gcc-7 -y - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7 @@ -13,6 +14,6 @@ before_install: - sudo update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-7 60 - sudo update-alternatives --install /usr/bin/x86_64-linux-gnu-gcc x86_64-linux-gnu-gcc /usr/bin/x86_64-linux-gnu-gcc-7 60 --slave /usr/bin/x86_64-linux-gnu-g++ x86_64-linux-gnu-g++ /usr/bin/x86_64-linux-gnu-g++-7 -# run the typical ci checks, for now, compile +# run the typical ci checks, for now, compile, and fuzz-test script: - - make pcassod pcassoRS -j $(nproc) + - ./scripts/ci.sh diff --git a/cnfs/bug-180394467.cnf b/cnfs/bug-180394467.cnf new file mode 100644 index 0000000..3572c07 --- /dev/null +++ b/cnfs/bug-180394467.cnf @@ -0,0 +1,1833 @@ +c seed 180394467 +c width 22 +c scramble 1 +c layers 16 +c equalities 0 +c ands 0 +c layer[0] = [1..21] w=21 v=21 c=78 r=3.71 q=0 +c layer[1] = [22..38] w=17 v=38 c=138 r=3.63 q=0 +c layer[2] = [39..57] w=19 v=36 c=160 r=4.44 q=0 +c layer[3] = [58..71] w=14 v=33 c=103 r=3.12 q=0 +c layer[4] = [72..85] w=14 v=28 c=87 r=3.11 q=0 +c layer[5] = [86..102] w=17 v=31 c=116 r=3.74 q=0 +c layer[6] = [103..118] w=16 v=33 c=147 r=4.45 q=0 +c layer[7] = [119..138] w=20 v=36 c=137 r=3.81 q=0 +c layer[8] = [139..151] w=13 v=33 c=137 r=4.15 q=0 +c layer[9] = [152..164] w=13 v=26 c=97 r=3.73 q=0 +c layer[10] = [165..178] w=14 v=27 c=116 r=4.30 q=0 +c layer[11] = [179..189] w=11 v=25 c=105 r=4.20 q=0 +c layer[12] = [190..201] w=12 v=23 c=98 r=4.26 q=0 +c layer[13] = [202..213] w=12 v=24 c=82 r=3.42 q=0 +c layer[14] = [214..230] w=17 v=29 c=107 r=3.69 q=0 +c layer[15] = [231..243] w=13 v=30 c=102 r=3.40 q=0 +p cnf 243 1810 +-13 11 1 0 +-2 -15 3 19 -17 -10 4 -11 -5 -18 -7 0 +8 -20 -9 -19 0 +16 10 -3 -1 6 0 +-6 -8 17 0 +21 5 18 0 +14 2 15 -21 13 -4 0 +-12 9 7 0 +12 20 -14 -16 17 -7 0 +10 3 7 0 +-2 8 4 0 +-10 -12 -18 -15 0 +-10 -20 -9 11 7 5 8 0 +-18 -20 9 15 4 -3 17 14 19 8 6 0 +-20 -19 16 -4 0 +-8 10 -2 11 0 +8 -21 -9 0 +2 13 18 21 -6 7 0 +8 17 -13 -21 0 +-4 16 0 +2 -1 -16 17 15 10 0 +3 -13 12 0 +-13 11 -6 0 +6 -10 -16 -2 17 0 +6 20 9 0 +19 -6 -9 11 -3 0 +21 12 -10 20 0 +5 17 0 +15 14 -19 -8 0 +-17 -7 -13 0 +-14 5 11 0 +-7 -13 -15 18 -1 20 21 9 0 +-1 6 17 0 +-18 -10 21 0 +3 -20 10 7 0 +3 -18 20 0 +-21 1 8 0 +4 3 0 +-10 13 -5 -21 -11 -9 0 +-18 6 16 -15 11 -5 -1 20 -9 8 -2 17 0 +-13 -19 14 20 0 +19 -20 -6 -15 -21 0 +10 2 -8 0 +-1 16 7 -10 21 19 0 +-9 -6 0 +15 -2 7 4 17 0 +4 -13 -7 16 -1 12 6 0 +-11 6 14 -1 3 0 +14 11 2 13 -16 0 +-17 -14 19 4 0 +17 -6 -21 -12 -8 0 +-13 -3 12 0 +-21 1 -2 3 11 -7 15 0 +-5 12 16 0 +-14 -7 -1 10 -16 0 +-15 -16 -14 -18 8 0 +-4 14 1 0 +-21 18 9 19 -13 -10 4 15 0 +-9 -5 21 0 +14 10 21 -3 0 +-13 2 9 -5 -1 -6 -15 11 0 +-17 -6 -11 14 15 0 +-21 -20 2 -9 0 +-15 -11 8 0 +-2 4 8 0 +-13 7 -15 9 11 0 +13 20 -12 0 +7 -19 -13 0 +8 -15 13 -1 0 +6 -11 -20 -13 0 +15 17 21 11 0 +-11 -8 -2 21 0 +-8 -2 12 -13 16 0 +20 1 9 0 +12 13 -16 -8 0 +8 -6 0 +-18 -13 7 0 +-16 -7 20 -14 -5 17 -15 4 0 +2 8 20 0 +13 22 2 0 +-36 -14 27 0 +-21 36 -20 -22 0 +8 7 -31 0 +-20 24 30 1 34 11 32 0 +35 25 -30 -16 0 +-28 -18 -29 0 +15 -38 -23 10 0 +-3 23 -11 0 +6 31 38 -34 -7 33 -25 -37 1 28 0 +1 -32 -26 2 0 +37 20 29 -5 6 26 -14 -27 0 +-35 -33 -16 0 +18 8 -11 0 +-24 29 38 0 +-16 11 10 0 +-38 13 -18 30 0 +31 -13 29 37 0 +-11 -16 -36 0 +-13 26 -33 0 +36 23 21 -6 12 9 0 +21 -23 -31 0 +12 -36 -29 0 +5 16 -32 -23 0 +23 17 -24 22 -20 0 +-26 -32 21 0 +-21 -20 -34 -13 37 -7 15 0 +30 25 -24 0 +12 -22 -11 -4 -31 20 -34 0 +28 -4 -23 0 +-23 -30 -2 25 5 28 10 -31 0 +21 22 -38 0 +-14 -38 -29 0 +22 -31 -20 8 -6 -35 -32 0 +-14 28 33 38 -1 0 +24 -2 -31 -27 0 +-8 25 -20 -16 -13 0 +-9 29 -8 -16 0 +-24 -35 3 5 -19 0 +-31 6 24 26 9 0 +-5 -25 -27 0 +14 18 -25 5 0 +35 -17 34 0 +-9 -27 -25 0 +-25 -6 -24 9 -4 0 +11 26 -13 0 +-11 28 -24 -31 20 0 +8 37 -14 0 +-5 -13 -32 0 +-35 3 12 0 +30 -12 -14 0 +37 -3 36 22 16 0 +1 -25 30 14 -22 -20 35 0 +1 21 7 23 9 -13 0 +29 -21 31 0 +-10 -14 -18 0 +-28 -26 -7 -35 -2 0 +-9 32 -18 29 -26 0 +-31 15 -30 -18 23 7 -25 0 +24 -29 -7 0 +-20 -11 5 0 +-2 -32 -4 -7 0 +3 -30 -26 22 0 +-6 25 -2 0 +-19 35 36 0 +-38 -12 -7 28 35 -26 0 +-9 33 30 0 +-5 -9 -30 34 -8 -33 0 +-4 24 20 0 +-5 -8 19 0 +4 -23 -3 0 +-3 -28 38 1 -8 0 +-33 -22 -9 3 0 +19 -5 25 32 0 +2 -22 -34 -24 38 0 +6 11 31 0 +-28 16 -32 -31 -37 -21 1 0 +-6 23 -5 -18 0 +38 24 18 0 +27 13 -20 -26 -34 -10 0 +-28 -20 33 0 +-23 -37 -24 12 -27 -5 0 +-36 -8 -4 -17 -27 0 +34 30 1 -5 0 +-12 33 -2 0 +8 10 28 31 24 -13 0 +-37 11 -22 -23 0 +-30 -2 13 -14 0 +12 -36 31 -9 0 +27 -8 34 0 +-30 22 12 -23 0 +14 20 -25 0 +-5 25 16 28 -38 12 -4 -6 11 22 0 +27 -32 -15 20 0 +14 -23 -22 0 +24 1 2 0 +-11 -36 -20 0 +-20 38 17 -15 -34 -1 0 +15 19 -10 0 +-18 10 -5 -27 33 21 -16 0 +29 -26 32 33 -31 5 0 +2 24 -13 31 0 +27 29 -8 30 20 -35 0 +3 -20 23 0 +-9 -28 36 0 +-37 6 14 -38 -1 35 -25 0 +-31 33 17 9 36 0 +-21 -2 30 0 +-22 28 3 -34 -18 0 +-19 -3 8 0 +-28 -10 1 -3 30 0 +17 -25 -14 6 -8 0 +-30 -5 21 16 24 -26 -4 -12 -32 0 +7 37 -30 -5 4 -28 2 29 0 +-24 -23 -36 29 0 +23 13 -5 0 +-13 -35 16 0 +28 -16 -38 0 +7 22 10 -1 -18 0 +-37 28 30 -12 -5 6 -14 -26 0 +-34 10 -12 -15 5 -7 0 +-21 -25 24 0 +33 13 29 0 +6 19 16 -30 29 35 0 +-19 -16 -5 18 0 +4 -23 28 -16 -34 0 +8 20 -29 31 -35 0 +20 19 -11 0 +-25 -1 -18 34 26 0 +27 31 -32 0 +18 -12 -21 0 +5 31 15 -1 37 36 20 0 +26 -24 -30 -20 0 +-19 -36 38 22 0 +13 27 -30 0 +-23 20 -7 -17 0 +28 29 35 19 33 31 6 -25 -27 0 +26 -21 -40 -25 51 14 0 +42 -3 -55 0 +22 26 55 -51 24 0 +41 47 -20 6 -7 53 0 +-41 -57 -1 -21 0 +56 16 -53 -46 0 +-15 -38 -11 -3 0 +-47 50 -26 0 +-11 52 -50 0 +-18 -4 32 0 +-43 -32 45 54 -56 0 +48 46 -29 -44 6 0 +-5 44 20 0 +-14 25 40 -49 39 0 +-18 -48 30 -45 25 43 0 +-19 -42 33 0 +-54 57 -6 -19 0 +-52 -24 -2 -39 34 49 43 -1 13 4 0 +-4 -25 35 56 -46 -30 0 +42 32 39 0 +38 20 -13 51 -10 56 0 +-24 30 39 -46 29 49 -8 -17 0 +43 38 50 -3 -24 -9 -8 0 +-39 2 13 0 +50 -41 -19 0 +-51 -47 52 0 +46 56 -20 0 +-17 -55 -37 24 23 0 +18 2 52 3 41 50 -29 -14 -57 0 +29 -51 52 0 +46 3 16 0 +39 13 42 48 0 +-35 -26 7 0 +23 18 -27 -20 48 42 -44 3 0 +13 5 22 0 +-46 -26 3 31 -44 30 0 +-56 -57 30 3 0 +-21 -44 42 35 -15 45 0 +25 -21 39 -2 -53 -52 18 0 +42 45 48 10 41 0 +42 -56 57 54 36 -34 -44 0 +21 -24 -39 -38 -32 -52 5 36 51 0 +-9 -54 15 56 19 0 +54 51 -42 32 -43 27 50 0 +41 -36 46 57 0 +-47 -37 -52 -49 41 -20 44 -35 0 +40 -24 44 0 +9 -44 48 49 10 -42 34 32 -46 0 +-45 17 55 0 +38 57 26 42 22 0 +-57 -47 38 28 49 0 +-57 -30 38 0 +-52 57 -51 43 0 +56 -37 -9 12 0 +-12 3 40 47 0 +-50 36 -57 0 +-32 -56 -51 0 +49 -14 41 0 +-43 32 54 -20 46 0 +7 -44 -30 -20 35 -57 13 40 28 0 +-17 -31 24 13 -30 -55 -25 0 +-35 -39 28 -53 46 -5 -33 31 0 +24 -20 -22 0 +50 41 -31 42 -47 -56 10 26 54 44 29 0 +13 -46 -54 -57 -34 -23 -9 -31 49 0 +57 28 20 29 46 0 +56 8 -36 20 7 4 33 -6 -53 0 +47 48 -35 0 +17 32 28 -46 0 +47 18 51 0 +37 43 40 -42 0 +44 -47 49 0 +-8 7 -31 0 +-26 11 42 0 +45 -47 11 27 -33 -34 0 +-49 8 -31 -40 27 -42 0 +-16 -56 -7 0 +21 -56 1 22 51 0 +24 45 54 0 +48 -52 14 -1 2 54 45 -49 0 +14 -20 27 54 -55 50 51 0 +51 29 -41 0 +-47 -57 -48 0 +57 30 -41 -34 0 +37 -36 14 52 -25 50 33 53 0 +-18 -38 22 19 0 +37 18 51 -39 0 +47 -34 -48 -54 -44 -32 0 +-41 -8 -42 -6 0 +-2 -18 -42 0 +-11 41 -26 0 +-17 48 36 0 +24 -41 40 -48 0 +-55 -44 -45 8 0 +-44 54 -17 43 -57 -40 32 -25 -45 -55 -18 0 +-54 10 -44 42 0 +-51 -20 -14 -48 0 +-49 -36 45 57 7 48 -14 12 0 +-37 47 -11 -31 0 +42 -27 0 +-57 -16 0 +49 -1 -44 26 -11 40 14 10 -30 -53 -17 41 37 15 42 24 54 0 +27 -48 -54 0 +-40 -50 26 0 +-56 48 15 -28 -55 -30 0 +16 44 52 9 -27 0 +-45 -38 -29 0 +52 -57 53 0 +25 -19 36 -37 0 +29 -27 -46 0 +49 51 40 0 +-19 44 35 0 +-21 22 -34 52 0 +-8 23 -20 -38 -10 0 +-16 -28 -36 23 -42 48 -43 45 0 +40 23 -33 -45 44 0 +25 -53 -51 -35 32 0 +-52 6 -50 -40 -38 0 +-20 40 3 -56 0 +52 22 50 -25 43 41 0 +49 -51 43 -26 0 +-33 57 -26 0 +44 -25 -21 0 +-29 32 -37 0 +-42 53 -57 16 -45 0 +16 7 37 -39 -23 0 +-39 -31 18 0 +36 -33 53 3 -56 0 +-52 -10 4 9 0 +-44 35 45 27 40 0 +45 -19 32 -36 -41 53 -28 -30 -9 0 +9 -11 -32 42 -39 53 -55 -28 0 +47 12 11 0 +33 46 -26 0 +-23 -55 -24 -49 30 0 +-42 53 45 52 0 +-17 -20 -44 21 0 +-41 -36 -1 20 0 +43 -51 29 52 0 +55 52 10 -25 31 51 -54 -49 -29 -6 40 7 -57 5 -18 41 -39 50 0 +48 -21 30 0 +-45 51 -7 0 +-20 -35 1 -24 0 +-29 34 45 44 0 +10 -47 -52 8 -48 -57 39 55 42 0 +-21 16 -52 0 +-18 54 20 0 +56 12 34 -30 0 +-2 13 18 -25 37 -46 -52 -49 -14 -45 40 54 -31 0 +-25 32 33 -21 0 +47 50 4 51 0 +39 -5 -38 51 57 -17 -41 -45 44 25 0 +-35 -38 23 -18 -39 -44 -42 0 +46 -44 50 -27 19 -56 -45 32 0 +42 -28 46 39 33 -7 -45 0 +-50 23 52 46 40 0 +-27 -14 57 0 +-42 7 31 0 +35 31 30 -36 0 +27 14 9 16 7 -53 -34 43 57 39 0 +14 48 69 -66 0 +68 -63 -28 0 +42 -60 67 45 -47 -68 0 +-65 -45 -43 -64 0 +70 54 59 0 +45 -59 -48 1 20 71 0 +64 -25 -32 -58 -67 -44 0 +65 2 63 58 0 +-70 -62 -10 61 66 32 0 +-69 -21 60 62 -12 -71 10 0 +43 -35 -61 38 63 0 +38 -70 -69 0 +34 43 -60 45 0 +37 -2 -63 56 58 61 42 0 +55 40 71 0 +-50 3 -64 0 +-40 -67 54 0 +-32 23 70 10 -25 53 1 0 +67 -40 71 -59 -2 58 0 +-60 71 -41 0 +44 33 71 0 +64 -65 -14 -68 44 -67 0 +-52 29 -59 0 +59 -50 2 0 +63 -70 67 66 0 +-13 58 -29 -54 64 0 +71 -41 -61 0 +54 71 0 +-66 -45 -22 0 +23 71 -35 -61 -16 0 +-65 -29 58 0 +8 47 41 0 +-36 66 71 -65 -61 3 0 +68 -63 59 62 -61 0 +60 -52 -70 0 +59 -64 -55 -67 -16 37 0 +-11 42 13 -57 0 +69 66 -61 0 +37 61 4 0 +62 -58 25 60 63 59 0 +11 -39 -60 51 -17 -34 0 +-63 0 +-67 -57 -58 0 +62 -67 -8 0 +22 69 -34 0 +-19 64 67 -42 63 0 +68 -59 -70 56 -61 25 0 +-42 -67 -62 0 +32 69 -68 60 61 -46 -65 0 +-66 -71 70 -58 -37 48 -44 45 0 +5 50 -66 -29 59 -68 0 +43 -61 56 64 0 +-70 -54 -67 -58 0 +68 60 10 0 +71 54 -15 0 +48 -54 -66 60 -47 41 69 -44 0 +-42 -11 -69 32 -50 -46 0 +-58 -42 30 0 +-62 -28 68 0 +-61 -39 60 -12 0 +-65 -48 54 69 0 +60 39 9 34 37 0 +66 -58 52 -69 0 +-59 55 70 0 +-26 -24 -55 -17 0 +27 -58 33 65 -15 60 -61 44 -52 69 67 -2 63 0 +-66 29 70 0 +67 -36 59 0 +24 -22 20 0 +-42 -39 -65 69 63 -61 0 +71 -68 -46 0 +-26 62 -33 0 +-65 59 70 24 62 -47 68 0 +-70 -41 -39 -68 -49 0 +-3 -71 52 0 +70 -22 45 -41 62 0 +40 -67 -70 -23 14 51 0 +-40 -5 63 -59 0 +71 48 70 67 -50 69 0 +-43 -64 50 -25 59 -49 0 +-44 -38 65 0 +55 -58 -9 0 +-37 68 8 0 +12 -41 -62 -65 0 +61 65 49 0 +56 10 69 63 -58 65 54 0 +34 -50 -70 58 0 +-67 45 66 0 +30 -7 71 -66 0 +2 -63 -69 19 0 +61 -40 -56 58 0 +-44 32 64 0 +17 71 14 60 -67 69 -44 -66 28 0 +17 -65 70 52 0 +-71 -60 -22 0 +56 -45 -6 0 +-6 68 70 0 +-69 61 -67 35 68 0 +-55 68 -36 -60 0 +69 -19 60 0 +67 -62 49 69 -47 11 -68 43 -64 -17 58 60 24 -45 0 +-47 58 68 -22 -65 0 +44 -50 63 0 +72 -79 76 0 +81 -76 -55 79 84 0 +-45 2 12 -55 -56 16 0 +58 -85 74 0 +85 -61 -65 -75 -81 -14 0 +-63 -73 -60 0 +-77 -74 82 64 0 +78 -80 46 63 -84 73 0 +-83 80 -36 0 +-60 71 36 0 +-63 43 -72 0 +75 -78 83 0 +-13 77 -82 -84 52 23 0 +-73 70 -82 -78 0 +-64 72 -16 21 61 73 -70 76 -83 0 +75 66 71 -45 83 -77 0 +-73 -81 70 -15 0 +-84 60 85 81 69 70 76 74 -44 78 -32 73 -83 0 +-55 -75 -73 49 0 +-25 -16 -77 -59 -75 0 +77 64 54 0 +23 -74 -77 72 -85 70 73 0 +-75 64 -74 -68 0 +76 75 -74 -25 78 -58 -69 0 +-3 75 74 85 -76 0 +40 -84 -58 -77 70 -71 -57 -80 -32 75 73 0 +-61 73 -72 0 +-83 85 75 76 -66 36 0 +42 58 -52 -84 74 0 +-80 60 81 0 +48 -8 81 0 +-48 61 60 0 +-83 -78 -84 0 +-55 2 -76 0 +-36 -70 66 0 +62 30 47 0 +78 -57 -81 0 +67 -60 -83 73 79 84 -75 61 -59 0 +-69 78 -14 -75 0 +71 -74 81 -51 0 +83 -58 -5 -40 -57 51 65 0 +-10 37 -13 0 +84 76 -74 85 61 -79 0 +53 61 -75 73 -60 82 0 +44 82 -84 0 +-72 -54 60 0 +41 29 65 66 -83 85 0 +-77 -63 70 -83 0 +79 80 -61 -64 67 -84 -42 -60 43 0 +73 80 63 0 +82 -85 -83 81 -51 77 0 +-81 61 -43 0 +-75 81 44 59 0 +-85 -58 62 -81 0 +59 77 84 -80 0 +-79 77 85 -36 0 +77 -81 -56 0 +-73 80 -61 0 +79 -75 -37 0 +78 64 -69 -54 57 56 -71 -6 -72 -58 0 +59 -75 79 0 +-68 66 -76 -59 0 +72 75 56 0 +-78 -73 74 0 +-35 65 -60 61 -79 -69 0 +-78 -25 -81 -84 -68 -85 0 +-61 57 84 -50 -65 0 +-60 71 -79 -63 0 +-74 -61 -37 0 +-50 -25 -30 82 -58 0 +-79 -60 75 -74 70 0 +-41 -65 24 7 69 -74 62 0 +-46 -57 70 -76 0 +8 58 -79 -72 0 +-73 -59 71 84 81 45 0 +-73 31 -71 -76 -82 0 +57 63 -66 84 0 +82 -73 -76 72 -70 59 -58 0 +-11 -78 66 0 +71 44 -70 -84 72 -64 0 +-33 72 -84 0 +-83 78 0 +61 77 71 -72 83 -78 56 26 0 +80 -84 44 63 0 +-85 79 58 0 +-84 85 -39 -74 0 +30 -80 72 84 0 +-86 -88 -93 -64 100 -79 85 -77 -90 0 +60 -96 72 0 +-94 -53 85 -77 -83 0 +-89 -99 -100 -92 79 -71 0 +-91 -98 -97 90 -81 96 60 0 +-65 71 82 -74 0 +40 72 91 -76 0 +-75 88 102 -77 -87 0 +97 101 -58 -95 61 0 +76 -59 -84 0 +94 53 -45 -101 0 +86 -77 64 98 -11 92 25 89 0 +87 99 -102 0 +93 95 97 -102 0 +87 -85 61 89 0 +-102 -86 62 51 0 +-83 -75 -71 -46 73 0 +-100 94 -68 0 +-74 -51 -80 87 62 0 +43 60 -57 -94 0 +3 64 93 -34 22 91 0 +102 -75 -97 60 -86 -83 100 101 -87 0 +9 89 -58 -80 -97 0 +-81 -88 -91 0 +-82 -94 -72 97 73 0 +-57 -86 -99 50 -100 -98 0 +-88 74 100 0 +-80 74 -95 0 +-76 -92 102 -87 0 +-92 -99 35 -97 -5 102 -66 -72 0 +-72 91 84 0 +41 100 -101 0 +87 -54 -60 64 0 +-75 -92 59 76 0 +22 -98 75 0 +89 93 102 73 0 +90 -95 -99 88 0 +-57 -102 77 80 0 +78 -68 101 -80 57 60 76 -87 75 0 +-80 -94 93 88 0 +86 -94 -99 -63 62 80 -76 -95 -22 90 0 +84 -60 96 0 +93 102 -94 0 +25 79 92 0 +41 82 75 0 +-94 -9 79 -85 75 -58 -77 78 0 +45 75 -89 92 -52 -100 -65 0 +-76 57 80 -96 41 -89 -98 0 +87 -85 64 -93 0 +29 -60 -69 0 +-92 -85 73 98 -57 95 0 +-91 95 82 -92 0 +86 100 -88 -64 -92 0 +-93 77 51 0 +-76 -68 -77 -94 44 0 +-100 -51 -98 0 +101 -74 68 0 +-61 91 93 0 +-60 90 -91 0 +88 93 0 +-101 65 74 0 +-96 -92 84 52 60 0 +-97 -75 -50 0 +95 -86 78 -99 -56 84 0 +-86 -58 39 0 +83 78 77 0 +58 -90 73 93 0 +68 95 -59 88 94 0 +87 93 4 -58 -100 -48 -84 -75 76 0 +94 97 -78 0 +-102 -94 82 0 +100 68 76 0 +89 96 -75 77 -12 -97 0 +-97 102 88 0 +-74 89 98 82 83 0 +-90 -70 -52 81 -96 -76 0 +74 41 91 0 +102 -89 73 0 +86 -91 -101 -63 -27 73 -87 -98 102 0 +51 89 81 61 0 +-100 -80 40 96 0 +101 -50 -62 -91 0 +-90 -89 -96 -63 0 +-73 -101 -96 -40 78 -32 0 +-81 82 -98 15 -63 -101 89 -96 39 97 0 +84 -63 -90 42 37 23 0 +74 -65 78 0 +94 99 -72 85 0 +86 -94 89 0 +100 79 86 -85 88 0 +-69 35 84 0 +100 -102 -63 -83 -75 97 0 +98 -88 92 -95 0 +-74 40 -101 0 +68 -82 -65 76 75 0 +93 78 100 98 0 +87 -99 -83 -76 -95 -100 97 0 +98 -86 -95 0 +94 71 -85 0 +71 100 -74 87 -18 -68 94 -83 -76 101 17 58 -97 59 93 102 0 +40 -88 59 -91 0 +99 -87 -91 -94 31 -100 -29 -77 0 +23 -84 93 -94 -81 101 0 +-91 82 -98 -87 0 +87 -99 76 -64 0 +81 -82 99 0 +90 -83 3 -86 0 +73 -85 93 0 +-101 -94 76 -93 -88 -78 0 +-96 88 -92 0 +100 57 -93 0 +-68 -67 -80 0 +-69 78 54 0 +-99 83 -77 0 +62 99 93 7 102 67 92 -76 0 +100 -92 -94 91 0 +91 -112 118 0 +-92 -114 84 86 24 -65 -81 85 -94 0 +107 -116 114 0 +-110 -88 98 0 +117 115 112 -104 -107 -109 -102 0 +-111 -103 -101 0 +-105 -97 -113 110 -99 -48 -115 0 +116 36 38 0 +113 94 108 109 -86 111 0 +-81 -78 85 -100 105 70 103 0 +-91 -87 24 0 +63 -108 -117 0 +-106 67 -118 -102 104 0 +-89 -91 101 102 106 0 +81 -115 97 0 +116 104 103 107 0 +85 -83 -96 67 -89 1 78 0 +117 95 -99 -108 0 +7 111 -69 106 105 -71 98 22 108 0 +-63 -104 -96 99 0 +-94 114 -117 89 -68 90 111 60 0 +109 -106 72 0 +-60 113 -18 -110 0 +90 74 117 100 0 +-69 109 115 104 66 0 +-110 118 -100 -92 -107 -108 0 +-117 -100 -97 105 116 0 +-71 -89 87 41 -105 102 100 0 +-77 -117 -92 76 110 0 +116 101 -110 8 0 +-76 -79 111 1 113 107 72 0 +-111 -105 -116 37 88 -104 84 -83 0 +49 -96 113 -95 99 -108 -13 0 +-113 112 -118 -69 105 0 +-110 96 0 +105 65 -63 -38 -101 -112 -91 -106 0 +83 105 118 0 +-106 102 -112 0 +-106 -35 115 -110 0 +85 -88 109 0 +-116 106 -97 0 +-99 89 -90 115 0 +71 107 -117 0 +112 86 107 0 +-42 108 -116 0 +-109 94 104 0 +94 -88 -64 75 0 +116 -104 76 -114 0 +62 -113 -102 111 107 0 +-110 118 -114 99 0 +110 107 108 0 +-93 103 -60 -104 0 +-91 -104 -107 -11 0 +-102 73 107 79 90 0 +79 -114 99 75 86 -112 109 -53 0 +-117 95 105 0 +-106 -87 108 104 0 +-91 -99 -108 -73 89 -109 0 +103 -108 66 -94 -111 0 +-68 -91 -92 97 0 +114 -109 -115 0 +-94 -90 75 0 +108 -78 -99 86 101 0 +115 -100 -87 -97 0 +114 -67 -107 0 +75 63 -68 0 +72 89 117 -112 0 +-110 86 111 0 +82 117 68 -100 108 0 +-107 96 27 106 -105 115 -117 112 26 0 +108 77 -103 0 +109 82 -112 102 90 0 +110 -99 73 105 0 +86 -108 111 -82 115 0 +-96 -64 -116 -115 -108 86 103 -111 0 +-115 65 -90 -63 0 +-95 -107 89 0 +-103 -85 -111 114 -15 0 +105 110 -112 95 0 +-110 84 -49 92 0 +117 70 -112 -93 0 +-111 -117 -108 97 -118 61 112 86 0 +106 109 -93 0 +109 117 106 -70 0 +-114 118 106 0 +113 -116 85 0 +98 104 -108 0 +108 94 -115 -106 103 0 +-84 -85 -113 0 +111 -55 82 0 +-86 -108 -107 0 +96 115 46 -78 -114 -69 -110 105 0 +38 95 112 93 -86 0 +-105 -104 -114 116 0 +-114 100 110 0 +-82 -98 -92 0 +-115 -116 -95 0 +73 117 86 -93 111 0 +-104 -47 -85 0 +-117 -114 -88 0 +110 3 -104 -102 -73 0 +108 116 -79 0 +-113 104 -81 106 112 0 +-95 103 -102 0 +94 -59 113 88 112 0 +-117 102 113 109 -115 0 +107 113 -88 0 +-72 92 -94 -108 113 49 63 0 +72 -113 91 -108 114 -110 0 +-76 -75 -109 114 0 +103 -102 -92 0 +112 -92 59 111 108 113 -49 0 +110 -114 14 -111 103 -118 0 +109 106 -107 83 0 +113 -95 -107 0 +94 -115 -112 -113 95 90 0 +-99 110 -91 0 +-101 -118 -96 -99 103 -86 106 79 -109 0 +-111 -81 -107 0 +108 86 107 -116 0 +72 -106 69 0 +-97 -91 77 -114 88 -86 0 +87 113 84 -115 -92 75 67 0 +96 -112 -107 -88 89 97 28 0 +111 112 -108 -95 -113 -117 107 0 +109 50 88 -63 0 +109 17 107 -103 0 +76 -117 106 -72 0 +-118 114 -78 99 0 +-100 115 114 -84 98 0 +87 -110 -113 0 +105 95 -118 0 +-107 75 98 0 +101 84 -82 102 0 +-95 -114 36 108 0 +-103 -107 -114 -101 -62 117 0 +8 -118 106 0 +109 -62 61 100 -65 0 +39 112 117 86 -107 0 +113 107 101 -105 115 -103 0 +97 111 117 -33 91 42 0 +113 105 -83 101 -115 0 +-102 106 -112 0 +-109 -103 -115 -68 106 0 +115 -101 118 -106 -117 -62 -108 -81 107 83 91 96 0 +-69 117 -113 95 0 +108 -112 -97 0 +-108 121 -116 0 +-131 -121 -108 -115 80 124 -133 0 +106 132 -123 0 +-107 -80 100 -137 0 +-138 87 123 26 -134 127 76 102 -104 0 +138 -114 129 102 -119 136 0 +-132 -61 67 0 +-122 -108 -60 134 0 +-135 122 131 0 +-120 -125 126 0 +-80 93 130 0 +-103 118 114 0 +-129 -124 98 -128 118 0 +133 135 -136 -107 -126 119 -130 104 -75 -127 0 +125 120 -15 128 0 +108 -88 92 137 0 +122 125 -90 0 +131 136 -134 0 +120 -89 110 0 +119 -136 118 0 +-114 126 -112 -75 0 +120 -87 -133 72 -114 -79 -125 0 +-123 132 125 63 0 +-58 -130 -137 -64 -121 138 0 +-122 -132 104 0 +-131 -31 -106 126 0 +-100 126 -121 0 +120 -132 -42 -136 138 0 +120 -87 -135 94 -119 -104 127 0 +-124 126 -137 -63 0 +-90 135 -132 0 +117 119 -60 105 79 0 +124 -130 127 33 -20 0 +98 123 -127 -119 132 113 0 +-126 134 60 97 132 0 +-134 66 76 -55 138 88 127 121 130 0 +119 117 -121 0 +-123 -97 107 0 +113 106 -129 -114 -130 0 +128 -81 132 0 +125 -135 -130 -77 107 137 0 +95 -132 75 -106 128 0 +-105 129 112 -130 115 0 +-124 -97 138 129 136 73 0 +-96 134 109 0 +119 125 73 -106 134 -88 0 +-122 125 108 0 +-123 -120 -21 -118 0 +-67 -115 -95 0 +104 128 -123 -127 137 0 +-112 124 121 -109 -107 0 +122 -110 -126 0 +132 116 -93 110 -80 130 131 124 127 0 +-127 131 -91 120 -112 0 +-110 122 132 0 +99 74 -132 -67 129 -63 138 0 +2 -59 -123 -129 115 0 +-121 -91 -131 0 +-126 -134 93 120 0 +-94 128 -135 -114 0 +127 -31 -138 -68 134 101 59 0 +-123 114 106 -115 137 -82 0 +-124 93 -113 0 +105 101 127 -112 0 +136 120 -119 125 22 -126 81 0 +-125 91 51 131 0 +-125 -138 -115 133 123 -134 -101 120 0 +-126 -84 -89 0 +-119 -126 0 +106 133 135 -130 -138 -123 0 +-123 93 -73 128 -112 0 +-137 115 112 0 +94 -117 115 132 0 +-130 110 83 -119 137 0 +-112 97 88 84 0 +108 -71 -131 138 0 +62 -69 108 134 0 +115 107 117 0 +123 121 -136 0 +78 106 69 136 104 0 +-131 -133 138 -123 -135 121 0 +121 -123 -80 0 +-113 -65 -120 127 -131 0 +129 128 -137 0 +-77 -128 -123 135 -83 -133 -121 -109 -111 0 +134 -95 87 0 +-134 -88 -135 90 107 0 +75 -114 -137 -92 120 127 -117 96 -59 0 +-122 123 45 -103 97 -137 0 +-108 -123 137 133 -66 0 +120 -128 -89 105 132 126 -106 113 122 0 +121 -125 -120 126 0 +-106 130 -131 -134 -138 105 0 +60 132 -125 -119 118 99 0 +-29 -120 128 -131 0 +-109 -126 -114 0 +-133 103 138 -111 -119 117 102 -107 0 +124 117 -111 0 +-133 80 88 0 +136 -115 -86 120 0 +-126 113 0 +-112 -130 111 135 -122 0 +-137 88 -106 122 0 +115 84 92 0 +119 118 103 66 129 127 133 -117 0 +-136 132 -105 -112 0 +127 66 72 0 +138 119 -105 111 0 +92 136 103 124 130 0 +127 -129 -136 121 -138 0 +-126 -102 -98 0 +118 -133 101 48 0 +-41 89 129 0 +127 80 138 -119 124 115 128 -107 27 0 +-137 -105 119 0 +-133 -130 110 122 0 +-122 127 107 -128 -131 -126 85 0 +106 -120 -107 -137 0 +126 -125 -91 67 -122 0 +-94 -134 -133 -55 0 +104 -132 -19 0 +133 126 -83 -138 94 107 -112 -67 -123 135 0 +89 95 -112 0 +138 -126 -129 0 +-131 125 0 +-21 -99 -67 129 -130 0 +112 -132 0 +119 129 -113 96 -136 -75 -95 0 +125 97 -123 58 0 +-138 -123 18 106 93 59 0 +-102 40 -132 126 128 -2 104 115 0 +65 115 121 107 88 131 0 +103 -130 126 120 137 85 0 +107 -127 -82 131 -23 -111 0 +124 -125 131 -87 88 0 +122 119 -133 60 0 +95 105 127 -91 0 +139 148 150 -113 -149 0 +-142 147 123 151 -131 -51 140 112 0 +144 124 -101 -82 -45 0 +-151 116 146 -143 0 +-106 -136 -147 -146 116 0 +125 -136 -71 -100 0 +-148 -113 142 143 0 +-126 -139 -150 0 +141 149 122 -112 0 +-144 138 114 -140 -145 0 +145 82 -135 -111 0 +130 120 133 0 +111 -141 -149 137 -151 150 -127 0 +-114 -147 140 124 -125 0 +120 -145 -142 0 +-88 108 -2 -121 0 +141 -131 -127 139 0 +106 122 134 0 +130 -108 135 -144 0 +-141 -111 -143 96 104 0 +117 -140 -105 145 0 +-147 134 -139 -60 0 +143 -148 147 -116 -136 0 +-147 -135 -145 146 0 +-146 88 -119 -128 0 +-109 124 -108 -148 -132 0 +116 -132 -140 147 0 +140 -136 -118 -143 0 +143 126 -109 151 0 +149 137 122 0 +144 -103 -104 0 +129 -146 150 144 151 -131 0 +129 139 68 148 92 0 +104 140 -139 134 0 +135 127 143 0 +102 75 149 124 0 +134 129 -145 -7 0 +-121 132 106 0 +92 142 125 0 +150 145 137 109 135 -101 149 140 -126 -128 -147 0 +-95 -141 -134 125 0 +148 127 149 143 105 -145 -146 -139 0 +116 -141 0 +-65 -131 136 140 143 123 90 141 0 +-150 -83 -141 -120 0 +-141 -144 -124 115 -123 0 +-146 104 -112 0 +-141 -103 -83 -150 149 0 +-125 126 151 143 -118 133 148 0 +-138 151 150 -100 140 0 +139 148 -110 -141 -87 -143 0 +97 151 -89 -131 148 0 +-148 -120 -145 0 +-143 133 -142 0 +-112 146 -95 -109 -134 0 +-140 69 -102 -96 0 +149 135 117 0 +114 -144 95 0 +-149 -104 50 148 122 -81 128 116 134 135 114 0 +104 147 143 -135 116 0 +145 -117 -137 148 -141 150 -140 -66 -107 106 -108 0 +-130 -151 147 146 139 145 0 +-143 144 123 0 +149 130 -74 -139 143 100 0 +-119 -144 107 -142 0 +148 142 -143 -111 87 0 +-141 -144 148 -137 0 +139 -67 122 130 -149 148 127 -143 -145 -133 92 131 -136 146 0 +-131 -82 104 -142 -112 0 +139 104 -147 -141 -151 -148 -110 0 +149 -147 145 0 +140 -115 132 -121 -150 0 +-148 -125 121 151 -38 0 +-127 119 -103 -142 106 0 +-130 111 93 -149 0 +108 -142 -139 102 0 +112 116 115 0 +148 -131 125 -145 -142 -140 -100 141 0 +94 -151 147 119 145 0 +-140 130 121 148 147 0 +-139 -107 147 0 +-136 68 139 0 +-145 134 -149 0 +125 127 -42 149 0 +126 -83 -151 -113 146 -103 0 +-126 -150 86 143 -90 0 +-107 142 80 -139 -38 122 -146 144 149 -145 138 0 +146 136 -145 0 +-129 97 -151 -144 -122 -101 141 -134 0 +-145 -130 -91 150 -151 0 +-141 -139 -116 151 94 -143 80 -136 0 +114 149 143 -115 -103 -104 0 +-118 -144 44 -142 124 147 0 +-130 128 -139 -148 135 112 -145 134 -147 0 +139 98 130 -94 0 +-72 139 -142 0 +83 -149 121 -139 0 +141 -136 -140 -149 0 +-151 -51 106 104 -113 144 125 133 0 +-122 146 -101 0 +-130 -121 -144 -104 119 0 +-144 150 -146 0 +115 60 -146 0 +-121 140 -78 113 116 126 122 91 0 +-108 147 145 140 0 +151 -144 130 141 0 +-118 -138 -143 -106 0 +-149 -145 98 0 +-103 -62 -126 96 128 15 -113 0 +144 -139 145 0 +114 -144 -142 107 0 +-150 -125 127 0 +-115 -137 -135 0 +-126 -150 -149 -143 -151 0 +82 143 124 0 +-121 151 -37 -143 140 -16 139 0 +-146 144 -120 0 +146 145 130 136 0 +147 141 -145 -140 0 +98 150 126 0 +-148 86 151 117 0 +-98 126 -104 150 112 0 +-139 -146 93 0 +-150 -100 103 0 +149 127 -146 -151 0 +-140 84 122 0 +148 143 -100 106 140 0 +-140 103 76 119 133 -151 0 +87 -139 107 -147 0 +-143 -109 142 140 -146 148 -127 139 122 0 +-87 65 71 -106 -147 0 +103 114 147 -139 -142 -151 0 +-99 141 151 -143 0 +-141 142 138 -140 121 -114 -128 58 75 0 +130 -136 -133 -144 0 +-146 126 -145 -151 -121 -142 140 125 -138 92 -123 0 +-122 -150 -110 -149 -146 0 +-141 150 -151 152 161 -164 0 +-128 116 154 0 +-159 164 153 74 -160 162 157 0 +-146 -163 -152 -147 0 +159 118 -157 148 -162 156 140 -151 160 -154 0 +158 145 -93 155 142 -131 -156 0 +-139 100 -161 0 +-141 -155 -132 0 +163 105 -158 -153 -60 -123 0 +-145 -154 -78 131 -153 0 +156 -164 -145 122 0 +-145 -138 151 -159 -116 85 0 +155 146 163 -143 -158 124 105 152 -145 -154 0 +164 96 163 161 0 +-160 140 -162 132 0 +155 -111 -156 140 0 +-93 147 125 162 148 157 0 +149 159 -157 0 +163 150 130 135 -141 -147 -144 0 +151 -129 -156 154 163 90 127 0 +-152 154 160 126 0 +133 -160 -150 0 +-160 -131 163 -161 -139 -156 0 +88 -139 -162 0 +93 126 109 0 +145 -148 152 0 +150 139 104 -127 -141 157 0 +-105 162 160 -164 0 +161 123 -155 0 +145 152 142 106 0 +-78 -148 133 -162 144 -66 0 +154 -98 147 -141 139 -136 -124 0 +157 -154 156 -158 159 148 146 -126 0 +152 -160 -157 -155 -129 -136 148 -112 -135 0 +153 -154 159 -147 111 0 +162 -153 -151 0 +160 149 155 -140 151 0 +-156 -134 -141 -142 -112 -80 162 0 +154 -121 -79 -162 113 0 +153 159 -154 -119 0 +-103 157 -160 0 +-160 -142 147 -145 -162 148 -104 -129 0 +145 -143 -147 -164 0 +-88 150 -112 161 0 +-163 123 153 -151 159 -160 148 0 +-156 155 -96 0 +160 159 142 0 +158 -159 -143 0 +108 -162 144 -146 -148 164 0 +143 -152 -141 0 +156 -115 152 -158 -126 154 0 +157 -143 153 0 +-163 82 -162 0 +-146 -161 111 -158 157 156 143 -142 -164 -129 0 +-108 133 -152 0 +160 -147 -149 152 0 +125 153 -154 -160 -108 0 +-162 149 -145 -84 0 +-160 158 157 0 +-144 158 -149 -160 141 89 153 -130 0 +150 -154 -148 0 +139 156 -104 -126 0 +-152 143 145 153 -140 -141 -150 162 0 +-156 160 -154 153 0 +-158 150 106 -148 133 149 0 +153 -161 157 76 0 +151 -158 -149 -143 -142 0 +-160 -162 -152 0 +151 157 -160 152 0 +-157 145 134 144 -151 0 +163 80 156 0 +152 -162 158 0 +146 -156 -159 0 +-153 145 164 144 -154 0 +153 -163 -149 105 0 +164 -116 160 0 +103 140 -99 151 0 +-158 155 140 161 0 +-34 150 161 0 +-153 -162 -161 148 -160 155 0 +-164 -118 152 0 +-154 -139 -164 136 0 +-106 154 -116 160 86 144 161 -145 0 +144 -141 -158 163 152 -126 0 +-163 -164 0 +-141 149 126 -155 127 -145 0 +-143 158 -152 0 +-158 -140 -163 -161 0 +-151 -131 -96 152 -155 -142 0 +156 -163 -155 0 +139 -159 -111 0 +112 -143 -35 0 +160 162 -154 158 161 148 -140 120 106 0 +126 -155 110 -157 59 0 +135 -161 -144 0 +161 127 156 -163 146 0 +-150 160 149 -109 0 +161 157 -77 0 +-168 176 -165 157 0 +-175 168 -173 178 -141 170 134 0 +-160 174 -129 -120 101 167 0 +171 -172 -159 173 0 +165 -169 -160 0 +-176 -166 -167 -177 -147 0 +-170 172 -158 0 +-156 -178 140 155 -158 169 -106 161 128 175 0 +-171 153 148 0 +154 166 -153 145 -157 177 -174 -170 0 +172 -170 0 +-158 109 -159 0 +175 -167 160 -166 155 64 0 +164 -176 -154 -173 167 0 +150 152 -165 0 +146 -166 97 156 0 +164 163 -154 0 +-169 171 168 177 0 +149 -172 -177 -144 0 +177 172 -157 0 +-176 -157 -156 0 +143 167 -164 0 +-153 -156 160 0 +-153 163 139 0 +102 -166 156 0 +-164 -177 169 140 -170 0 +-178 144 177 0 +-113 170 -122 178 159 -165 176 -154 166 0 +178 175 -158 0 +145 -160 -139 0 +177 173 165 123 172 161 160 167 166 0 +163 -97 -140 -177 -156 -109 164 0 +150 -162 167 0 +-160 171 0 +161 166 35 174 -155 170 169 -154 -68 -177 160 0 +163 139 169 0 +152 -170 -144 0 +174 -158 -171 154 0 +148 165 -157 0 +166 160 152 -176 -175 0 +151 175 166 0 +-178 -173 161 -164 146 157 -169 0 +-151 -122 -159 -168 0 +108 175 -152 -148 155 -153 0 +-175 -157 0 +-178 175 164 -165 144 -145 -174 161 0 +-166 162 -159 0 +166 -131 165 0 +-171 -173 -152 93 0 +-175 146 159 -137 -177 0 +-154 168 177 0 +95 171 -174 -156 0 +-172 -167 110 -177 175 158 113 -162 168 169 0 +176 153 166 173 0 +-106 168 -176 -97 -169 0 +177 -157 173 -122 -155 158 124 144 146 0 +-154 -164 -166 0 +172 -168 -171 0 +166 -170 -167 0 +-174 -157 -176 -162 0 +-165 -148 118 158 150 137 0 +-169 53 -166 0 +-173 170 171 160 147 0 +172 168 177 -151 -173 -143 175 0 +169 -163 -152 150 165 -161 0 +-174 164 147 -161 0 +-173 177 -162 -159 0 +-166 176 165 -143 172 -175 152 0 +153 -151 171 0 +-149 -103 167 169 0 +-166 156 169 -160 168 132 0 +176 163 165 147 0 +-161 -160 170 145 0 +168 165 125 0 +-158 -177 174 -155 151 176 159 170 0 +-160 -153 -157 -173 0 +173 -177 178 -162 174 0 +174 -161 -140 0 +-145 -160 162 0 +-170 169 0 +154 170 174 119 -152 -155 173 162 0 +167 -163 159 0 +176 -166 128 152 -148 -150 0 +176 -161 157 173 0 +-76 -165 -141 -176 -166 0 +117 -168 -173 -171 -131 0 +-165 162 -163 -174 -178 -172 177 -103 -168 164 175 -153 146 147 -171 0 +-160 -157 177 0 +154 172 163 -160 -167 142 -169 0 +-171 82 176 0 +-153 -177 -144 -163 169 0 +108 175 170 164 0 +145 106 -154 178 152 -174 119 164 -176 0 +-172 -165 142 -168 -170 0 +-174 146 -87 -168 0 +-126 -158 -159 0 +165 172 -154 0 +167 -171 137 0 +160 -132 177 -170 -14 -175 156 0 +-158 -165 163 164 -176 0 +169 -172 -177 170 167 0 +177 -156 -160 0 +166 -107 -154 0 +154 -172 -162 139 0 +-167 172 164 -176 -135 0 +167 165 -171 -143 0 +-96 -72 119 -163 -177 -147 -170 -174 176 0 +174 155 144 156 -173 161 0 +169 154 -171 0 +174 152 140 -173 -158 141 0 +160 -162 178 0 +-169 160 -121 0 +134 151 -170 136 168 139 -177 0 +143 -110 -174 -165 0 +165 150 157 148 175 0 +-175 -176 -183 0 +189 -179 -188 -184 0 +-180 174 157 188 -181 -156 186 0 +-187 -163 -112 0 +-155 -161 183 178 184 181 0 +-182 180 -185 0 +-189 182 187 0 +-178 161 140 0 +-186 185 -152 0 +179 -182 -159 155 0 +-145 173 -184 0 +-169 168 0 +186 -180 -103 129 -173 -172 -165 0 +182 165 181 0 +-161 -182 -176 0 +-156 -109 -162 -140 0 +146 -189 -166 0 +184 167 189 104 -174 -146 175 0 +-172 179 187 0 +185 -171 179 -189 0 +183 -188 -137 179 -169 0 +172 -157 154 -148 184 183 165 0 +-183 -158 180 -169 -146 163 0 +182 189 -165 -186 188 168 155 0 +188 -133 182 0 +-143 172 -157 171 -159 -168 0 +175 -164 -161 158 0 +-169 177 187 189 -188 0 +159 188 133 185 -163 180 0 +74 184 -185 -153 171 186 -188 0 +170 -186 -189 171 -176 161 183 -168 146 164 -188 0 +158 -184 180 -185 -183 167 172 182 0 +-185 156 -179 0 +-179 167 184 171 108 -164 185 146 0 +-184 175 -181 126 180 187 0 +-172 179 -182 -186 -176 175 0 +164 -181 -154 -140 -188 163 157 184 0 +170 -182 -183 0 +80 170 167 182 160 -189 0 +180 -150 -184 185 -171 -186 -177 189 0 +-181 -174 -131 179 -183 187 -139 172 -171 186 -165 -182 0 +174 185 -167 0 +188 166 185 0 +189 173 188 0 +188 -168 -149 -180 0 +181 175 182 0 +-183 -189 -143 -188 181 165 163 -178 0 +188 186 173 -182 168 0 +-183 -185 167 166 0 +-169 170 -158 -172 174 179 -184 0 +-184 -175 0 +-181 173 -179 0 +-145 187 -185 -171 186 -149 0 +-180 -183 -181 -166 141 0 +132 -183 -170 181 0 +173 187 163 181 0 +-182 -162 169 -180 188 0 +177 -184 -151 -185 182 175 180 0 +-182 -180 102 0 +-180 183 0 +-168 -186 -171 187 188 165 183 176 0 +188 -151 -189 -140 171 184 0 +180 103 -176 0 +-182 -187 156 172 0 +186 184 -178 153 188 150 -183 179 -171 176 0 +169 -174 189 -160 -179 0 +-155 -189 0 +-153 184 -174 0 +168 167 -169 147 0 +-167 -182 -176 -180 -169 -94 0 +-180 188 -179 0 +177 188 -163 -152 0 +-160 187 141 182 0 +-184 -168 169 -170 0 +-180 148 -185 -168 188 0 +179 -164 173 185 183 0 +-166 -156 181 179 -162 0 +-165 -184 188 175 0 +-160 -144 184 0 +179 163 -180 0 +151 183 188 0 +176 -160 167 0 +166 185 180 0 +157 189 183 152 -186 -176 0 +148 -175 -152 185 -166 182 0 +-162 -186 189 177 -178 0 +-178 165 183 -140 0 +-185 180 189 -154 -181 0 +184 153 -143 -169 -183 163 -187 -103 -174 155 -127 149 182 -186 189 165 0 +-167 -186 158 171 0 +-182 -183 161 0 +-169 -182 -184 0 +161 187 -188 0 +-185 177 -181 0 +-169 -177 183 0 +-179 139 170 -154 0 +-182 -174 184 -187 0 +182 -157 72 174 0 +184 -168 153 -174 0 +183 186 0 +188 181 164 0 +185 114 -189 183 -167 0 +-179 -178 -156 0 +158 157 -183 187 135 -178 0 +-189 172 -142 160 166 -180 0 +-180 -168 196 -163 -194 0 +-139 -193 192 197 200 -199 -170 198 0 +177 -197 -195 0 +-173 -155 -166 0 +-192 201 179 -188 -190 194 0 +-181 -198 132 -160 0 +193 178 195 191 0 +-201 -191 -188 -196 -153 199 186 190 -154 0 +-182 -185 180 0 +-166 -200 161 0 +194 200 -170 -197 0 +-196 -169 -156 -198 -193 -158 174 0 +184 200 -198 151 164 -13 0 +-193 185 200 144 0 +200 -184 166 -137 -178 -181 169 198 0 +126 184 0 +-197 -201 174 0 +-157 -179 -193 -152 181 192 0 +-198 -149 165 196 -192 191 -193 0 +200 -169 192 0 +194 -192 -182 -166 -190 -152 0 +-200 169 -190 186 -189 0 +-198 179 -171 -156 0 +-199 -194 161 0 +192 -200 -191 -169 0 +-190 176 -198 -194 0 +-189 -192 -197 0 +-199 150 191 176 -190 -158 0 +181 161 159 0 +166 -191 -199 -197 0 +-194 -193 -196 186 0 +-184 199 -174 -198 200 0 +172 -189 -196 0 +-200 186 0 +200 193 201 0 +190 -199 -184 195 0 +196 180 -173 -193 0 +-148 -199 -194 -196 0 +198 197 -157 0 +-152 194 -197 -201 -183 177 0 +-184 -197 -201 0 +-190 -182 184 -194 -200 195 150 0 +191 -160 189 -198 0 +-168 187 152 0 +190 199 0 +-191 197 -201 192 199 0 +-194 -193 -142 -128 -187 -186 0 +-183 147 -187 -156 181 -194 182 -120 195 -167 0 +-189 -180 -197 183 0 +173 -170 -200 -197 -86 194 0 +-192 -168 0 +183 -193 -179 171 165 0 +-196 182 -189 0 +192 102 191 0 +-197 -196 191 -167 -198 -192 0 +-190 196 189 -184 -193 0 +-182 157 199 0 +80 184 -183 0 +200 187 -197 -191 182 -199 164 0 +-159 -180 -190 0 +-195 193 172 143 0 +193 -178 -168 -162 0 +190 -187 -192 0 +-163 -162 186 198 0 +190 -174 171 0 +-193 -187 -200 0 +195 196 0 +160 178 165 -189 197 -158 -195 0 +-194 191 0 +184 -189 175 -187 155 0 +-198 -195 -168 0 +183 -186 161 0 +197 -194 176 0 +-72 -182 198 -189 0 +-186 196 101 0 +-197 -191 195 193 -200 -192 0 +201 -194 0 +-191 -179 -176 0 +-191 196 176 200 0 +-187 -197 193 173 198 188 0 +-188 193 199 0 +-200 189 -188 180 190 -195 0 +189 159 176 -201 0 +200 193 -155 0 +181 -192 0 +190 -185 -192 174 184 0 +143 -191 185 -182 0 +-173 169 193 196 -201 143 180 0 +191 -186 107 200 -199 0 +191 196 195 0 +-194 -201 188 -169 196 -155 0 +183 176 -149 186 195 0 +198 -194 -164 0 +-198 193 200 187 184 0 +-164 -187 201 188 -196 -144 180 0 +180 -170 68 -155 -191 0 +186 191 197 193 0 +157 190 148 0 +200 -202 -185 0 +207 211 183 139 0 +177 202 -207 -206 0 +-182 186 -205 -210 192 0 +203 192 -111 210 0 +111 -201 -203 0 +-84 -211 212 0 +199 -192 196 209 -213 0 +-208 -209 110 205 195 204 0 +208 -192 190 0 +213 -212 179 -204 0 +-171 -123 206 -196 207 0 +194 152 207 -203 0 +-182 198 -151 -201 -202 197 132 203 0 +206 -211 209 0 +206 182 209 -201 0 +-203 -191 195 -206 210 -213 -194 207 202 0 +205 196 -211 -213 0 +-207 208 -210 -199 -182 -180 209 192 -202 -200 159 193 213 204 0 +186 204 -182 211 -199 176 0 +185 196 203 -204 0 +209 156 -213 163 0 +208 -202 0 +198 208 -204 207 -205 -200 116 187 -174 202 199 -209 0 +-212 -206 204 208 -203 0 +-165 187 192 181 -200 -179 209 0 +200 193 -205 181 162 0 +207 212 -208 185 202 0 +-205 -187 -198 -211 0 +-209 200 -213 -179 202 -211 -210 0 +-197 -168 -195 0 +-212 206 199 -198 197 189 -208 0 +204 -205 -210 193 -213 0 +211 193 183 -189 210 204 0 +-207 180 -208 183 0 +-199 189 -204 -169 0 +-207 209 184 -196 -201 -187 -174 0 +205 206 -133 195 0 +173 160 78 192 198 0 +197 199 186 200 162 0 +205 -208 -191 0 +199 -207 -200 212 -182 167 188 -213 0 +205 -210 190 -202 0 +-196 -210 191 -203 0 +188 192 208 -167 203 0 +-186 -191 207 0 +-211 183 -212 198 -169 0 +-175 -204 -181 206 0 +-210 -211 191 0 +205 -199 174 211 -212 0 +-205 -187 198 0 +-209 -197 193 0 +190 195 212 182 -204 0 +-209 212 -213 192 0 +199 213 -204 0 +-134 157 211 0 +202 203 -181 -205 -182 208 -193 -179 207 -204 0 +196 209 207 -190 213 195 -212 0 +-211 -202 204 0 +-206 189 -207 202 211 -195 -210 0 +179 190 -193 0 +-194 -211 -191 0 +212 -191 201 -171 170 159 210 0 +-201 162 197 0 +212 204 -213 0 +213 -205 202 -167 198 0 +-190 -203 162 207 206 -165 -210 0 +-204 -199 203 -206 -159 -196 -207 184 179 0 +191 -205 -192 155 0 +-183 210 202 0 +191 153 208 0 +-203 202 149 -191 -211 204 -209 207 -208 0 +-209 -208 211 0 +-194 -192 -188 0 +-153 199 -165 -213 207 0 +-210 -159 213 0 +203 205 -210 0 +183 -189 -182 0 +-189 -213 -205 -197 -210 0 +-204 -180 209 0 +-187 212 202 -192 208 0 +205 209 -206 195 173 213 -178 0 +209 219 154 -228 224 204 207 0 +-211 207 -226 228 -210 0 +230 -225 -220 -183 0 +210 199 -181 218 0 +-168 203 184 211 -150 207 222 -218 205 189 0 +215 227 -167 0 +225 -207 217 186 0 +211 -230 216 -208 -201 200 203 0 +185 -196 -215 0 +-227 -229 179 164 -206 -224 214 0 +223 221 -217 229 0 +-214 -219 -216 220 -223 0 +-222 -221 -201 0 +226 -222 202 228 -157 214 0 +218 199 230 -228 0 +-168 229 -226 -185 193 0 +-229 -184 -211 -228 226 -209 227 205 -225 -223 217 -180 -200 204 -185 178 0 +-202 195 -221 -218 -216 229 0 +224 -196 222 228 -223 0 +-219 -168 196 0 +154 -219 -211 183 -224 -206 209 205 -212 0 +-208 -218 -227 142 0 +-193 208 207 -217 190 -215 0 +200 -225 182 -186 220 0 +-207 221 -224 216 -218 0 +221 215 -216 -226 0 +224 -227 -212 158 217 -207 219 191 229 0 +-221 229 222 -226 0 +-207 230 223 -185 0 +-214 -208 197 193 133 -167 0 +230 -228 -224 0 +219 228 181 198 0 +-204 217 208 -212 -222 0 +-205 219 -225 0 +-223 -218 213 -205 214 184 0 +181 223 -200 230 0 +220 178 210 203 0 +192 210 216 229 0 +228 130 -192 0 +214 -215 -225 0 +-196 -216 224 0 +217 -224 182 0 +208 188 180 0 +-227 220 221 212 0 +-195 222 -210 -205 -206 0 +209 -230 -202 -193 -224 0 +191 -190 -229 196 203 -217 -223 214 183 0 +131 -215 -222 -199 0 +217 183 -173 223 0 +205 216 226 -204 0 +-162 -225 -188 194 0 +-190 225 -181 0 +190 -230 211 205 -229 0 +210 195 -215 -193 0 +225 -213 149 -215 -214 0 +209 -191 0 +165 218 -217 0 +154 214 -222 0 +222 -206 -218 225 214 -198 0 +215 200 -206 222 204 0 +229 207 -219 -191 -211 0 +-217 218 -230 0 +198 197 -221 -205 0 +-225 230 -194 209 197 -193 0 +-205 172 227 134 0 +206 222 -182 213 229 225 226 -174 0 +-228 213 205 225 165 -199 0 +-202 -210 186 206 0 +210 190 217 211 -224 201 -219 202 0 +-221 223 173 222 220 225 -191 194 230 0 +206 -227 198 209 213 -219 191 220 216 0 +-192 -205 0 +214 168 210 0 +-217 -188 -213 138 0 +177 206 -222 -207 0 +-216 185 230 0 +214 223 221 -186 -224 0 +-156 189 -186 -207 0 +-192 -222 -181 0 +-208 -214 199 0 +225 -187 -223 -218 0 +-219 215 168 0 +229 202 -216 0 +218 207 204 -216 0 +213 208 200 -226 0 +-221 225 207 -189 0 +228 223 205 201 -220 182 -222 0 +203 206 -230 -224 191 0 +-212 192 203 222 -224 0 +217 -230 177 0 +-225 -226 -217 0 +-205 -207 228 189 -165 188 0 +218 -221 -205 0 +230 -153 -217 0 +147 -226 210 217 228 0 +-215 220 176 -218 210 221 0 +-229 220 214 0 +228 -196 -202 222 217 -226 219 0 +-227 200 -224 0 +-197 -185 -226 0 +-191 -205 213 0 +-222 206 -216 -212 0 +-168 196 221 209 -215 224 0 +227 -194 204 216 0 +-220 222 -185 0 +-170 -219 205 225 -217 189 -194 224 -211 -204 0 +229 207 201 213 226 193 -222 0 +-188 235 242 -221 243 0 +-217 203 0 +190 -220 -193 -219 239 238 -191 0 +229 232 216 -212 -223 210 0 +236 -184 -235 0 +240 219 -238 -241 -233 -225 -226 0 +-180 -236 -243 -204 -234 237 241 0 +216 -232 219 -242 -146 233 199 0 +231 221 183 0 +234 -239 -240 0 +-237 221 -196 -231 0 +-241 -225 235 -180 -239 0 +-213 -207 183 233 -226 -216 -238 -224 -239 0 +-242 -238 -212 -218 233 0 +-195 237 232 202 -221 0 +-231 243 -212 -204 0 +222 217 -184 0 +-237 238 -236 0 +215 206 -243 0 +-222 235 -214 -243 -231 0 +240 224 -183 -222 -194 -216 -220 236 214 232 0 +-228 -241 -235 0 +210 228 -216 -242 -222 182 224 239 236 -214 0 +-225 195 -223 207 239 -237 0 +-235 232 -240 239 -227 -202 0 +-240 -234 -242 -243 0 +-239 182 -194 0 +197 192 -204 -231 0 +206 -234 -232 -233 -241 -205 -237 -238 -231 0 +-239 -229 0 +-200 205 -219 0 +203 -235 -213 0 +-196 238 -240 -223 -229 -226 236 205 -232 243 -203 0 +-241 -194 -235 223 -222 0 +-221 222 -235 0 +-226 -195 242 232 -216 0 +-191 240 -205 -235 -195 -207 242 -234 0 +232 -240 242 211 0 +231 -221 -241 236 -223 235 0 +214 225 -242 0 +-237 243 -241 0 +234 240 -232 -206 0 +-190 239 209 232 -227 0 +-208 226 224 -103 0 +-234 225 -191 -241 243 -207 -235 242 -218 230 -236 0 +-222 220 -229 233 -214 0 +242 -238 0 +242 209 232 0 +-165 219 232 207 -196 0 +-234 243 239 235 -214 233 -181 0 +-218 144 -231 -210 0 +-241 194 -230 208 0 +209 -201 -241 203 243 222 220 0 +200 -201 231 0 +236 232 209 -222 -243 -239 0 +197 242 -236 -210 224 239 227 0 +-198 -239 -236 220 -238 0 +232 -237 191 0 +-238 233 -226 -229 0 +222 241 240 0 +-212 220 216 215 191 243 -241 203 232 -209 0 +-239 241 -238 -202 0 +237 -219 -234 0 +237 -191 -239 0 +-236 -219 217 0 +195 240 231 -213 -226 207 0 +210 241 -211 -243 216 0 +243 -233 0 +235 -228 231 0 +-234 -240 231 -185 -182 130 0 +223 -227 -237 212 219 204 -201 -235 165 -202 -242 -243 -239 0 +220 -236 215 237 -187 -243 199 -227 241 0 +240 -127 -231 -239 0 +-165 -238 -239 -186 -225 -215 0 +232 -241 236 243 0 +206 -208 -243 0 +-234 175 190 -173 236 0 +-234 -237 240 0 +-163 -236 -233 0 +232 -210 -212 0 +-234 -242 201 0 +-235 -230 239 0 +-228 229 220 217 233 -237 0 +-232 233 208 -235 -234 -220 -226 0 +-232 239 -236 0 +205 161 -236 0 +240 214 237 227 -202 -239 -242 0 +216 -236 192 0 +218 -238 241 -240 0 +226 234 238 222 237 0 +231 -241 190 -235 0 +199 233 -207 208 235 180 -237 -192 0 +225 -238 241 206 243 0 +-230 -243 -181 237 0 +219 -217 -232 225 0 +-217 241 -234 206 0 +234 -199 0 +-218 -236 217 -200 0 +237 216 -233 -235 -218 0 +-237 234 222 0 +241 238 240 0 +241 -235 233 0 diff --git a/cnfs/bug-388903448.cnf b/cnfs/bug-388903448.cnf new file mode 100644 index 0000000..3fcc1ce --- /dev/null +++ b/cnfs/bug-388903448.cnf @@ -0,0 +1,3143 @@ +c seed 388903448 +c width 63 +c scramble 1 +c layers 10 +c equalities 0 +c ands 0 +c layer[0] = [1..41] w=41 v=41 c=161 r=3.93 q=0 +c layer[1] = [42..98] w=57 v=98 c=424 r=4.33 q=0 +c layer[2] = [99..134] w=36 v=93 c=306 r=3.29 q=0 +c layer[3] = [135..188] w=54 v=90 c=376 r=4.18 q=0 +c layer[4] = [189..218] w=30 v=84 c=341 r=4.06 q=0 +c layer[5] = [219..265] w=47 v=77 c=288 r=3.74 q=0 +c layer[6] = [266..287] w=22 v=69 c=309 r=4.48 q=0 +c layer[7] = [288..305] w=18 v=40 c=123 r=3.08 q=0 +c layer[8] = [306..361] w=56 v=74 c=290 r=3.92 q=0 +c layer[9] = [362..420] w=59 v=115 c=508 r=4.42 q=0 +p cnf 420 3126 +8 39 -33 -18 0 +36 15 -37 0 +16 -26 3 18 -34 -7 -38 -39 11 -24 -12 0 +20 23 14 0 +2 -14 28 -8 -3 0 +-11 24 -17 -29 0 +29 31 40 32 27 0 +41 -19 5 -13 -21 -10 -16 -9 -32 17 0 +19 1 -41 -6 -35 -20 0 +25 9 -31 4 0 +-30 -1 -23 37 -5 0 +-4 30 12 -2 0 +26 -25 6 38 35 33 13 21 -27 -40 22 10 7 -15 -28 0 +34 -36 -22 -40 3 -41 5 -9 0 +18 1 25 -16 36 30 -26 -4 0 +-7 -5 3 0 +-37 16 -25 35 26 23 0 +21 24 -8 -6 41 19 0 +-10 12 23 -25 0 +-25 -18 -27 40 21 0 +11 28 40 -4 0 +41 -34 24 0 +-35 5 -32 21 36 12 0 +11 -15 8 12 -21 35 0 +-6 -38 -21 0 +20 -6 -18 38 -34 -19 -10 29 0 +-21 6 32 -1 -26 0 +-17 39 -15 0 +33 -10 -17 30 3 0 +39 18 23 1 0 +-13 9 -2 -39 41 0 +6 18 15 -37 -9 11 -29 0 +-12 -26 -18 38 0 +-29 -26 -39 -33 -22 -7 0 +18 -37 -34 0 +-9 28 -33 0 +-30 -22 12 11 0 +25 33 24 7 0 +25 9 0 +-23 -24 -17 29 -12 -41 0 +24 -39 -40 0 +-23 7 3 0 +32 -40 -12 38 0 +-8 5 0 +-2 -3 27 -35 0 +-37 2 -28 0 +27 -7 -8 0 +-41 -6 7 -14 0 +-36 31 -41 -22 0 +-17 13 3 -11 -19 10 36 38 0 +-34 26 -5 -33 0 +-3 5 -8 29 -12 0 +-22 -38 34 0 +-17 -32 29 0 +7 36 38 -27 0 +-14 -22 27 0 +39 26 9 16 -27 -23 -11 -24 5 0 +-10 28 2 0 +10 -40 24 0 +34 20 -18 0 +28 -6 2 32 -19 40 0 +19 14 29 12 13 9 28 -6 33 25 -2 36 0 +-28 3 -20 0 +-1 15 8 30 0 +-18 7 -21 0 +-5 -24 -36 39 32 0 +34 -23 30 0 +27 -22 36 -2 8 37 -38 41 -15 0 +-29 8 -36 0 +15 25 38 39 0 +-15 27 20 0 +-22 6 2 25 0 +3 40 -23 0 +-6 5 -27 0 +11 10 8 17 -37 0 +40 -22 -39 38 0 +23 -5 17 20 4 6 -34 0 +12 26 -9 15 -3 0 +-25 29 38 -24 34 5 -6 20 0 +-6 36 29 9 35 2 -14 26 -31 0 +14 -21 -19 38 0 +-2 41 -13 0 +17 -7 -6 -16 23 22 4 -9 -35 11 0 +28 30 8 -41 0 +-16 20 -22 -28 0 +22 -38 23 -1 0 +-20 -28 31 0 +-10 35 29 -39 -28 9 0 +11 33 4 0 +-30 5 -29 15 -39 27 3 -28 -24 0 +6 40 -12 -37 -7 -27 -34 -30 -31 0 +22 36 -15 0 +27 12 -11 0 +-9 -22 6 0 +18 -19 12 -33 0 +30 19 18 0 +-34 5 21 26 0 +-37 14 -26 24 19 2 0 +20 32 -9 0 +-41 8 -27 -24 13 -18 0 +16 40 -25 0 +35 25 -28 0 +25 -39 -38 -3 6 0 +10 -29 0 +-12 4 6 0 +-34 -8 19 0 +13 -11 -31 -19 3 0 +31 -41 -15 0 +17 -38 2 -29 0 +21 29 18 6 -23 7 -32 15 -31 0 +41 11 0 +23 -16 18 -3 41 1 -34 0 +40 -1 41 10 -25 -34 -4 0 +35 -28 -3 14 -24 0 +-4 -1 26 -16 0 +10 4 -38 0 +3 15 17 0 +-8 28 -26 0 +-30 8 -9 -21 0 +25 34 -18 0 +-17 4 -3 -9 29 -22 -10 16 36 31 30 12 0 +-10 23 5 0 +-31 13 40 2 -26 -5 41 0 +22 39 -23 -1 -38 -2 0 +33 -34 -7 -14 9 20 0 +13 9 -27 -2 21 0 +28 33 41 32 0 +25 -18 40 -41 0 +-23 -27 -9 40 0 +-41 32 20 0 +6 31 0 +15 -6 8 0 +-6 19 -24 40 -41 11 -4 -3 0 +-38 -4 -35 -2 -7 31 -5 0 +37 -1 22 0 +35 40 4 -23 16 -31 0 +-28 31 -26 -22 -4 0 +19 -40 27 13 0 +26 8 -41 0 +-25 29 -30 -38 19 33 37 0 +-22 -15 20 -18 0 +9 2 -20 16 -13 25 -34 -8 0 +3 -34 -28 -31 30 21 0 +12 19 -35 23 28 29 33 0 +-13 -39 -33 -7 26 14 28 0 +-7 -37 20 -24 18 15 0 +-16 -11 -12 -6 21 31 41 -24 -26 -3 34 8 0 +-23 -9 -38 -18 15 -28 -10 -22 0 +25 4 12 20 40 -21 0 +17 21 -9 0 +37 11 29 0 +-19 27 -6 -17 10 29 0 +-4 -40 7 6 -38 5 0 +-24 6 -1 0 +39 -6 -41 23 -19 0 +-17 18 11 0 +3 -24 -14 0 +21 -33 -6 0 +7 41 -25 3 -13 -15 0 +-38 26 -10 0 +-10 -19 39 0 +-57 17 -21 -87 0 +36 85 -4 92 -19 0 +59 2 51 -84 98 45 0 +-55 14 -13 38 0 +27 -43 -36 -40 -94 13 -7 -1 -63 0 +16 71 -17 49 -18 0 +47 46 41 0 +-20 -97 -23 -78 -31 0 +-13 -30 -45 0 +-24 37 -82 78 -44 0 +-47 50 -6 0 +3 -9 -10 72 84 -7 0 +-52 2 87 0 +83 91 25 0 +73 26 -96 0 +17 -24 27 -4 -51 19 0 +43 -16 37 0 +-46 28 -12 88 0 +-8 -54 -85 0 +17 41 2 0 +-13 28 -12 0 +15 -92 -76 0 +86 -2 -8 22 -74 -20 -56 90 33 0 +95 14 -40 0 +48 80 44 -37 75 0 +35 5 1 30 -83 -49 22 -71 0 +-1 -14 -73 0 +-68 16 -67 0 +-38 64 -24 -90 4 0 +-59 94 61 0 +-70 -11 97 -89 3 0 +56 -4 70 -26 0 +8 68 -3 -39 0 +-13 81 -29 -61 0 +40 11 -31 -35 62 19 0 +93 41 58 -60 2 5 67 -39 28 0 +63 -69 23 0 +24 -7 -37 66 -50 -16 0 +76 -41 -2 0 +-75 82 -42 77 0 +60 -88 -65 0 +-95 -72 79 6 0 +42 9 -80 0 +-20 54 53 0 +-62 -39 -91 -48 -79 -21 29 0 +38 35 31 -77 -81 -13 52 41 0 +24 -58 89 38 32 0 +-41 74 37 69 0 +57 -86 -98 -28 -18 -66 38 96 37 0 +5 14 65 -36 -12 17 0 +-14 -11 -93 0 +-64 -53 -16 55 52 -8 23 57 -30 43 0 +68 16 4 0 +-85 81 -76 -23 43 0 +5 77 8 0 +-46 12 -71 -24 -72 78 -88 0 +-96 44 50 59 0 +20 -1 92 0 +50 -65 -28 73 -27 58 0 +-5 1 -45 0 +52 11 -60 33 62 43 90 -8 0 +23 34 83 -18 0 +9 27 -10 0 +64 -27 63 53 29 0 +-49 -58 -98 0 +1 13 35 0 +-94 -33 85 -32 -61 56 -51 -84 70 -21 7 19 -88 0 +40 12 -21 0 +-75 -63 64 0 +20 -3 15 74 0 +-90 98 -74 13 0 +10 -2 -45 13 -81 22 59 -51 18 -56 -12 0 +35 23 -76 -88 8 13 65 -7 0 +-95 -12 -39 37 0 +88 -9 31 -25 0 +-72 38 -83 0 +-48 84 78 -57 0 +57 18 97 -10 51 -23 36 0 +-40 -95 9 -29 0 +39 53 41 72 29 27 0 +-91 -47 -36 -26 11 -67 94 44 -82 13 31 -25 0 +1 97 -74 0 +-6 -96 79 0 +-92 87 -75 54 0 +-35 52 -40 0 +-23 56 -19 0 +-98 -27 49 3 97 35 -82 0 +17 36 -19 -65 0 +-44 -74 -84 35 75 42 0 +94 -49 -18 0 +29 -64 -74 0 +-88 19 -38 0 +65 81 29 41 -12 -10 0 +-9 -7 -32 -29 0 +12 6 96 2 11 -43 10 62 28 0 +-15 -26 31 0 +-33 85 12 -18 -48 17 91 8 -87 -10 0 +-8 93 79 -34 25 0 +-36 37 -5 91 -14 85 0 +41 -4 -11 28 0 +21 78 -20 58 -72 -34 0 +11 38 14 33 -27 0 +32 -83 -81 -70 -66 -61 0 +-48 88 42 22 0 +-52 29 -50 0 +-13 -40 -47 -52 -29 0 +-20 17 90 -54 52 -73 35 24 32 0 +-37 -57 33 52 0 +49 -6 1 24 0 +7 -4 -64 -74 0 +-90 88 15 40 65 79 68 0 +-42 12 -26 -40 38 80 -35 -4 0 +-21 -26 -37 22 0 +-13 37 55 41 -48 -58 -33 0 +26 -4 55 -98 48 0 +-62 41 -43 0 +-71 -47 -25 40 -48 28 0 +76 -2 31 -72 -17 0 +-46 -6 18 43 80 45 83 49 0 +-8 -60 -14 97 96 0 +62 -40 6 74 -35 53 -38 -3 0 +-44 14 93 -31 0 +-80 69 11 0 +-42 62 0 +-18 83 -2 -6 -96 0 +-37 34 -19 31 97 0 +-12 16 -21 0 +-32 -38 -85 0 +26 -29 -14 -30 -12 84 0 +91 90 -67 62 -42 94 -95 32 -27 0 +63 28 -9 8 -98 -1 -93 25 -5 3 -96 -59 80 0 +-23 69 55 0 +-85 -63 35 69 -68 47 0 +-87 -4 39 43 73 15 -29 -12 0 +49 60 -92 -23 86 11 -12 -52 0 +76 21 74 0 +19 -82 16 10 0 +-79 -18 25 0 +-42 -20 15 -32 -71 41 0 +-83 -16 34 0 +-44 -48 -67 0 +29 31 63 14 -40 5 -32 0 +-98 -48 -33 15 0 +-11 6 -34 0 +-15 45 -65 46 9 76 0 +-20 39 -45 66 27 -15 -50 70 59 44 -85 1 11 0 +5 -58 6 -46 -12 66 0 +-77 89 41 5 0 +68 55 -38 8 0 +48 38 -70 47 73 27 0 +5 -55 20 -35 76 -17 81 0 +-28 17 -37 -3 -91 0 +-10 -32 -45 -76 66 0 +24 68 -19 -2 0 +3 -5 -39 15 -95 0 +-15 35 11 77 26 0 +-75 62 34 -41 -58 54 -51 22 0 +85 -65 15 69 -70 41 -48 0 +-2 55 16 12 95 0 +7 -92 -70 -16 42 69 1 0 +-94 -58 -9 0 +27 -47 72 1 42 0 +4 -35 -78 0 +88 40 -24 0 +5 28 -51 -87 98 -20 0 +55 -20 -25 -29 0 +97 33 -51 42 0 +55 92 39 -21 -68 0 +-89 -72 86 -36 0 +-2 -73 12 -35 0 +32 22 -88 -15 0 +-56 -49 -67 -41 -12 0 +41 22 -73 0 +27 -25 91 0 +83 27 36 -48 -49 0 +-30 -15 -60 0 +97 37 50 0 +45 10 82 0 +-57 47 85 42 83 0 +-74 -75 14 37 -32 -42 0 +-34 -4 10 83 -24 -38 0 +28 -93 -60 45 -18 27 0 +50 -44 87 -1 70 37 16 0 +42 47 -73 0 +32 81 51 -30 0 +-71 -94 -84 0 +96 -24 -14 34 85 0 +84 26 22 -33 96 18 4 -7 -6 81 0 +78 17 33 0 +71 -13 -17 0 +-66 96 -39 -72 0 +14 -9 24 -40 22 3 93 0 +73 28 26 0 +58 12 -19 89 0 +-47 17 -28 -95 30 0 +-81 -25 15 -62 0 +-94 -88 86 2 0 +71 39 -68 0 +80 -84 16 -66 0 +73 49 5 27 33 0 +74 -95 30 -31 0 +-80 -13 19 4 0 +-21 82 -15 -5 0 +63 34 -53 -45 25 0 +31 -89 -62 98 0 +-96 34 -93 72 14 0 +-97 87 29 0 +-30 -92 -98 0 +60 74 -80 0 +8 15 -21 -11 54 0 +-74 2 -1 12 0 +15 79 72 -50 0 +82 -20 -24 0 +-98 54 -95 74 -84 2 0 +7 23 18 58 49 0 +-94 -12 86 0 +-11 -52 -77 41 0 +61 7 39 0 +-82 -80 26 97 54 0 +35 45 82 0 +51 -36 -2 20 0 +88 -52 71 0 +-20 -80 64 -24 -4 -28 -45 15 0 +-81 21 -92 -57 59 -83 0 +33 25 -28 -65 0 +-92 -56 22 0 +-4 79 -44 0 +-35 62 -74 34 -98 0 +12 -55 58 -27 54 0 +-11 12 57 -7 40 -36 13 -5 0 +-2 -46 48 -89 -74 -58 -18 62 0 +18 22 25 0 +-53 7 -75 -89 0 +-64 -45 76 79 -2 -20 -29 0 +18 -93 21 53 -29 61 56 0 +77 29 -23 0 +-42 -40 0 +91 11 43 -68 77 0 +-32 -51 8 92 79 80 -33 -59 22 0 +-17 7 -73 0 +41 87 -86 0 +29 38 44 -78 -83 0 +-19 52 81 91 -7 -41 0 +-92 -29 -73 -8 77 0 +-39 46 -25 -14 62 0 +-3 81 -93 -98 0 +-30 69 -23 8 95 13 -22 0 +76 -50 -59 -5 27 -34 0 +81 -46 -63 5 0 +-1 6 -34 29 -33 -13 11 0 +21 30 39 0 +-64 39 -69 50 0 +55 78 17 0 +12 64 -73 52 -69 0 +50 -53 83 0 +97 52 35 68 34 0 +73 90 65 91 7 0 +56 81 -7 0 +19 98 13 -54 27 -29 37 -75 74 -96 70 14 12 -84 30 16 71 35 0 +77 -24 62 0 +13 -43 88 91 4 0 +39 -23 -47 -53 -70 -12 0 +5 59 -31 0 +87 86 -38 -11 0 +-94 83 -40 0 +-24 -61 21 32 0 +-24 -36 -84 0 +89 -83 -47 0 +-9 -31 -22 63 0 +-89 57 -4 3 12 0 +75 -79 29 -51 16 0 +6 -48 -1 -46 11 33 -87 0 +98 70 18 0 +20 75 -93 0 +41 75 39 -34 31 -71 0 +72 19 46 -80 0 +-31 -28 55 49 0 +18 42 70 0 +93 3 -54 -9 28 88 -37 0 +94 -45 -60 0 +61 -10 -15 0 +-74 -62 67 16 -41 -59 0 +-46 -90 -52 21 -64 0 +71 83 41 92 68 0 +26 -45 84 30 62 0 +-80 -70 3 0 +-84 92 23 -16 86 21 34 -7 -36 27 54 57 0 +94 87 -60 -13 -65 -41 0 +-62 -75 32 -29 -10 -24 63 0 +-22 -98 37 0 +-79 23 -71 -17 39 68 10 31 -88 -51 3 20 0 +4 -23 83 0 +56 21 -25 -73 -2 -7 -88 9 0 +-66 -41 80 -84 -97 -37 18 0 +84 -61 12 0 +-68 -3 49 0 +-36 58 57 0 +-14 -9 -84 41 -4 0 +-24 -18 -22 0 +8 -59 -46 19 21 0 +-74 97 -79 2 -83 31 0 +-41 20 88 -81 -23 0 +-5 58 23 -21 30 0 +24 -25 85 39 -27 -26 73 0 +-82 -47 74 -42 1 0 +31 -66 82 -68 0 +21 76 -1 0 +-24 10 40 -35 -51 0 +98 89 24 91 -11 0 +15 76 61 0 +12 -35 -64 15 19 6 -29 9 -38 -41 -17 0 +-9 23 2 -8 38 80 0 +-51 38 22 12 8 84 49 0 +-51 56 30 28 65 91 0 +31 -21 73 -82 29 19 0 +-41 -8 12 53 -57 35 0 +-59 -65 19 0 +-88 -70 97 0 +32 16 -79 -18 -38 61 -12 44 0 +95 70 -71 0 +-53 -3 5 0 +-97 83 10 25 0 +3 23 -35 39 0 +-98 35 -58 -22 -36 0 +24 -6 -69 1 -29 0 +24 -76 -25 9 18 0 +37 52 88 -72 92 0 +-42 23 35 64 -89 0 +55 24 94 60 5 29 0 +69 76 -58 56 -7 0 +27 31 87 -84 -18 -24 -60 -43 0 +23 33 18 0 +-51 -54 -92 47 -74 -48 0 +19 75 -38 -50 44 -66 -86 0 +-53 -80 79 0 +75 21 -76 0 +-69 -83 94 -34 -72 -36 -1 0 +80 65 51 -25 0 +-71 33 -40 0 +-13 56 31 15 0 +68 2 45 69 -9 0 +76 92 4 -41 -19 0 +27 -12 -36 45 0 +-16 19 -21 39 0 +7 4 -57 39 13 34 -77 -28 0 +-93 51 1 0 +97 56 80 0 +-41 5 35 0 +-40 -61 44 35 72 0 +89 58 -87 10 -33 37 29 0 +-50 13 -68 94 -64 0 +85 9 -93 -42 53 0 +35 5 -89 0 +28 -41 -78 0 +64 34 75 -74 0 +-41 -85 86 11 77 18 0 +-91 83 -42 0 +10 -7 -19 -49 -25 36 -41 -39 0 +-49 -89 -26 -5 -20 -18 -29 0 +54 90 -84 31 -93 0 +11 -30 57 0 +13 -28 5 0 +4 25 -93 -57 34 0 +10 37 -36 -8 -89 -56 71 0 +-17 20 72 0 +63 -52 -10 82 -25 -6 59 -58 97 -69 -22 93 0 +-90 23 -41 -40 67 84 -19 0 +-20 2 -8 44 0 +-9 -44 15 -85 -50 0 +-83 56 -18 22 0 +-11 80 -40 0 +-89 -37 87 0 +37 -24 53 0 +-14 -38 26 0 +-75 65 26 0 +96 25 -62 0 +-72 53 -38 16 0 +36 20 29 0 +81 39 -25 -94 0 +-34 -74 -55 -46 0 +-85 -14 -64 77 17 0 +95 49 -98 -4 0 +-3 22 -90 -16 -63 0 +62 -71 95 -67 0 +-65 -12 56 -77 0 +46 -8 55 39 0 +26 52 -71 25 55 -96 69 94 47 0 +56 49 -53 -4 26 0 +34 -29 84 -98 -16 0 +48 -75 -80 0 +-97 -77 34 0 +-6 33 -18 90 -11 57 25 88 -81 86 0 +63 45 -58 0 +74 1 27 -42 12 0 +-37 -81 -11 0 +25 74 -80 -15 76 0 +14 81 42 74 0 +64 -81 -23 0 +62 68 78 -26 0 +15 54 35 0 +42 -45 29 0 +-38 -15 -17 0 +-13 21 76 12 2 7 24 0 +-24 -18 -40 0 +-48 -33 36 18 77 0 +8 -57 -73 -86 65 -75 14 53 46 45 24 -36 90 0 +91 -83 -63 28 16 57 0 +98 -32 36 -29 0 +-85 -38 -29 0 +7 90 -79 0 +-85 45 -11 -63 -37 -25 0 +-77 -52 -2 81 38 -55 0 +-32 -21 -82 76 33 -34 0 +9 74 -13 -79 84 -37 -26 0 +-16 61 87 0 +-46 56 -26 -57 -87 77 0 +44 66 98 97 0 +-55 6 -75 -36 0 +-67 -65 -82 0 +40 95 50 0 +91 -17 -69 66 32 39 0 +-90 -1 49 -88 -69 -19 7 -31 0 +3 47 69 82 0 +-52 33 12 97 0 +54 -93 125 0 +71 -113 -46 0 +-110 126 105 -5 0 +112 -108 -33 0 +-119 1 128 0 +-120 -103 1 -36 0 +-3 -88 107 115 0 +109 -38 0 +-117 99 -34 -105 0 +-14 -101 122 0 +21 -4 5 0 +-128 25 -124 0 +22 117 73 -102 104 106 0 +-130 56 129 0 +14 119 24 -44 -127 0 +-93 102 -46 0 +113 13 -94 -125 -100 108 0 +-111 26 127 50 -109 -72 15 -115 0 +33 56 133 -35 54 -121 101 -11 0 +21 -44 40 -114 -104 0 +-3 -63 85 -129 0 +-126 -116 -1 132 -131 49 111 -41 -8 34 0 +-122 134 120 18 -92 0 +-118 92 -69 40 0 +11 -134 -2 23 -25 39 15 0 +-107 42 58 12 -33 -5 0 +110 123 68 41 0 +23 27 -34 0 +130 18 118 103 -76 0 +10 79 -99 -28 -133 0 +-123 -132 24 37 121 71 -112 -106 116 0 +-48 131 124 100 114 -27 113 -9 -21 115 0 +-112 -122 -109 130 -134 110 124 -103 0 +-121 -134 -66 102 46 63 0 +85 58 -17 0 +49 -84 44 -104 0 +-88 -21 111 -73 -8 -104 19 106 -7 64 -99 132 -124 0 +-12 -38 16 -24 0 +108 -129 17 80 0 +103 -118 -133 0 +62 89 -22 4 0 +17 133 120 -56 0 +95 -124 9 0 +54 60 -115 -46 -35 0 +-44 134 -127 0 +-22 123 -104 48 99 -63 72 0 +-62 104 -112 127 -105 83 132 12 -64 -108 9 0 +32 -75 112 0 +43 -28 0 +133 82 134 119 0 +-106 -114 -110 -128 99 -3 0 +-40 -20 -63 -127 21 7 104 -94 122 109 -107 134 -39 0 +128 103 -115 120 8 0 +-108 129 74 0 +88 35 -90 -100 -99 103 -3 -14 -96 -113 -102 -33 -60 0 +9 54 90 -65 101 107 0 +-100 -125 -128 107 2 -60 0 +93 52 133 0 +-118 7 101 0 +77 74 -102 0 +-12 119 113 15 56 129 123 -120 0 +123 -119 131 115 -116 1 125 72 0 +65 133 128 104 -121 0 +-78 -21 -57 0 +-79 -122 119 0 +-114 -39 -76 0 +108 -31 -112 -25 0 +-130 -125 -131 101 33 -133 -50 21 0 +-114 -41 -129 98 0 +108 -104 -22 -118 0 +80 89 -39 -24 124 0 +66 -26 -117 0 +-132 106 114 0 +108 115 80 0 +-15 123 -76 -83 0 +-84 15 129 -118 -106 120 -107 9 123 0 +24 -114 -84 106 134 -39 -6 -117 30 18 -67 85 -107 -111 -132 0 +45 -116 -99 -129 -102 0 +123 134 -118 122 -75 74 0 +21 116 112 0 +-80 -18 94 -97 130 0 +-121 -29 -52 0 +105 -131 130 26 0 +118 85 19 -108 0 +110 -123 25 0 +-29 -105 -127 -122 109 0 +88 -73 -99 -131 -100 0 +-34 122 -99 87 0 +8 -127 -132 0 +-125 -117 -60 -64 3 0 +-123 -60 121 -37 0 +-125 -82 -133 130 0 +128 43 101 0 +48 100 -57 -14 0 +108 120 -93 132 0 +128 -105 115 0 +36 -114 103 0 +112 2 99 -121 -98 0 +-122 23 71 0 +-76 -124 -19 -127 0 +-111 105 34 -117 107 103 -43 109 -121 -68 0 +128 -109 107 -13 0 +110 112 -130 0 +-34 117 -9 0 +7 -132 33 99 0 +-104 -102 -113 -100 130 98 84 -121 122 0 +-47 91 -95 0 +-109 -125 52 -22 -122 0 +-122 19 84 -23 -108 128 -113 -81 0 +-54 -118 -120 0 +-124 38 101 -126 76 0 +-116 38 117 86 0 +-17 126 -117 0 +-104 28 -15 42 0 +-41 114 115 -95 0 +32 107 -62 129 -99 0 +-36 118 -28 0 +-118 -73 1 0 +-96 132 7 124 20 -104 0 +124 -21 120 6 -99 0 +-123 28 -113 0 +-60 132 -112 0 +-122 118 -32 0 +77 120 -30 -13 132 -95 0 +-100 -127 -73 44 119 -114 0 +-60 105 -47 -1 126 0 +103 21 133 0 +67 -32 -100 0 +-106 -133 63 6 0 +-105 -108 -119 0 +121 -79 93 0 +74 -24 85 61 -78 0 +-79 14 -93 -1 7 0 +-109 -51 -50 0 +101 131 -57 0 +-20 -78 3 0 +-61 -77 -133 0 +107 -113 15 41 132 46 0 +108 -133 37 8 25 65 0 +106 -16 -32 0 +-131 -101 9 0 +3 1 -57 44 13 0 +-109 -124 16 55 -84 0 +-56 -20 -76 0 +-24 69 128 -109 0 +121 29 21 0 +45 -109 23 0 +-19 -68 109 99 123 0 +-3 9 23 0 +-130 129 -63 43 -133 0 +88 -134 41 45 -122 66 104 0 +-35 -15 -89 0 +129 -22 33 93 -103 115 117 125 0 +84 -39 102 -134 113 0 +126 109 120 0 +28 100 -133 0 +-47 48 -105 -124 0 +-58 114 8 0 +126 106 -11 134 -3 113 0 +106 -118 -32 -132 -59 62 101 0 +-128 -17 126 0 +-116 29 -124 -112 -101 0 +121 -26 111 0 +100 -39 -122 117 -104 -116 -114 121 -20 -47 0 +-111 123 63 -131 1 -92 -58 0 +-102 51 119 0 +-28 -11 -38 41 0 +2 -9 -131 -3 -133 110 113 -111 0 +-78 128 101 -100 37 0 +110 -36 116 0 +75 -68 -28 -36 -66 5 -32 -12 -101 0 +-126 110 -114 -56 0 +-100 -128 -111 56 0 +-91 -19 110 0 +-113 12 -133 67 -115 78 -101 -121 0 +106 130 -57 0 +-100 -75 -132 0 +-124 -118 127 0 +111 -8 -129 -56 37 65 116 132 113 17 -73 -119 104 -102 0 +-81 103 63 -133 101 0 +40 9 88 50 120 0 +-86 73 27 -122 0 +-19 -25 95 133 127 -15 122 0 +119 120 -88 -10 8 0 +74 54 -99 -1 0 +-57 125 129 19 -100 0 +-12 62 -87 -74 40 0 +-113 129 -34 0 +87 105 -125 120 55 107 -63 -30 117 111 102 0 +111 134 103 -102 7 -105 0 +-42 108 92 32 -71 -127 -124 0 +-123 128 -117 -133 91 -59 -122 41 0 +121 -55 118 111 -104 0 +-6 110 58 -123 79 -133 -68 92 0 +112 80 114 -28 0 +12 -107 38 -131 -122 -66 0 +-134 -41 -20 98 107 0 +121 3 -116 11 -82 115 105 -123 4 122 -108 124 -43 0 +100 -106 88 0 +-115 44 20 -24 41 8 133 0 +-100 -18 123 0 +123 97 133 -99 129 -62 69 -102 0 +40 114 -67 0 +2 39 -130 -134 84 0 +68 54 45 108 0 +82 -91 -117 0 +107 -120 -124 0 +78 115 132 -123 -11 0 +-14 -111 112 9 25 0 +-29 21 -106 0 +134 -50 111 99 0 +-116 -100 102 -132 11 108 101 84 122 19 -21 -62 46 115 -36 89 -105 119 125 0 +-120 -99 93 -102 -29 -7 0 +44 -13 -28 7 24 47 0 +-105 -110 104 -115 38 -59 -127 -102 -12 0 +37 129 -36 0 +-104 115 96 -124 113 114 85 0 +-65 -59 134 -60 98 -96 -103 0 +127 -51 -126 69 12 -23 -21 100 130 45 -62 30 -107 124 0 +-110 119 100 0 +-106 -53 -118 29 -61 -22 0 +-74 26 -107 -78 98 0 +68 -110 -106 0 +15 -44 -123 82 0 +-47 98 -105 -49 0 +103 -45 30 -110 -75 0 +132 -27 103 12 22 0 +-6 -77 116 114 0 +125 130 -134 0 +36 -97 -111 99 -45 132 86 0 +105 -121 53 -122 -120 8 108 0 +-102 75 -91 97 -61 127 55 121 -118 9 0 +-16 96 -6 -97 88 120 108 -39 102 125 111 0 +-12 -112 90 -49 -86 130 -123 -42 126 0 +-90 -16 31 0 +130 53 88 49 100 0 +132 -116 7 -105 62 79 -48 -73 27 0 +-95 -108 -39 -18 21 99 72 125 0 +-61 114 -122 -127 16 45 -80 58 -81 133 3 99 91 -120 0 +-124 -103 10 27 11 0 +124 -133 -129 48 119 134 28 11 116 -122 76 82 0 +-86 21 -107 0 +127 123 -116 -126 34 -107 -134 0 +115 -28 -119 -14 0 +-33 107 77 41 39 49 -99 25 0 +-94 -103 15 -110 0 +-106 38 109 0 +-26 4 -133 0 +-122 103 -36 0 +-129 -123 -15 -34 -97 0 +98 -8 -106 -100 0 +111 121 114 0 +129 115 105 -113 0 +-37 102 -130 -104 0 +-70 54 103 0 +-113 -83 46 -86 -126 18 -44 -101 117 0 +15 116 110 115 35 0 +127 -109 -25 -102 0 +-124 -115 23 0 +16 109 -99 0 +-5 -102 -36 -30 55 0 +-131 -85 -118 109 -23 -81 -97 0 +64 31 -131 114 0 +-48 102 -104 -101 -131 -109 124 110 47 0 +16 18 121 0 +105 128 14 109 0 +-30 -120 103 134 0 +78 118 115 -129 -17 -16 5 108 127 -103 102 0 +-97 111 71 -115 1 119 122 47 14 0 +7 -30 67 0 +100 -129 -76 -123 120 0 +34 -114 -90 -118 0 +60 -6 -29 9 0 +-94 -32 -56 0 +-111 -26 -89 -131 0 +-117 41 40 0 +-110 13 -123 72 10 -4 83 59 0 +82 -21 -119 105 108 -133 0 +134 4 -72 0 +124 -100 -83 0 +97 -122 -19 82 93 36 110 -119 -90 0 +-108 105 51 125 0 +12 -122 -18 0 +6 8 107 0 +-130 -93 115 0 +-112 126 111 0 +69 111 -115 -126 0 +-131 119 -58 128 0 +7 -17 123 65 105 -113 -129 0 +107 -121 -105 57 -51 101 0 +-18 95 21 0 +-125 -127 -31 121 4 0 +112 -123 119 39 -125 0 +86 -108 121 0 +10 134 132 -91 -130 8 -105 0 +28 115 106 0 +-55 97 54 -103 -116 53 21 -129 -83 0 +-11 3 -27 0 +129 13 -33 0 +103 122 -114 -101 -94 37 -31 0 +-40 -132 63 13 120 0 +107 -123 0 +-45 122 108 109 73 7 -58 -126 -42 -111 0 +-101 -32 6 0 +-103 96 34 0 +116 35 104 -48 -124 -98 0 +164 87 -101 0 +-28 149 -175 0 +-80 -148 131 -166 134 0 +-142 -155 -132 0 +-168 34 -110 -139 -145 185 0 +-15 -183 -150 -53 109 0 +159 8 -172 0 +-107 178 -110 86 -174 -163 -176 0 +-170 -116 118 0 +-146 11 151 0 +-140 176 183 -59 -31 0 +114 179 188 -113 0 +150 130 -66 0 +117 -107 -52 0 +41 -188 -108 0 +139 -187 42 0 +-144 11 50 -113 0 +47 121 71 0 +187 113 -160 -171 0 +-130 165 -156 0 +-157 163 67 129 181 0 +141 -113 27 158 -186 154 -178 0 +-137 100 -179 0 +155 -154 37 184 -159 0 +-149 -57 -151 0 +135 -177 19 -30 182 -138 -111 0 +171 142 -141 140 173 -20 -17 156 -91 -23 0 +87 -185 126 0 +-107 -169 48 106 -33 34 -162 146 0 +137 67 8 111 0 +114 11 177 -153 0 +29 132 -164 -184 -59 0 +-129 -111 -136 0 +-23 -124 161 138 -152 125 101 -108 31 20 0 +175 167 172 81 152 -158 0 +147 124 -123 0 +-135 -71 170 0 +144 -167 -108 180 0 +-161 143 79 0 +114 134 153 -143 0 +186 31 21 0 +-173 -7 64 0 +160 -99 174 169 -129 -88 -147 52 26 0 +114 -10 -180 0 +-182 -181 162 166 112 -165 -106 0 +124 125 -87 129 109 0 +148 -73 -37 116 0 +-11 -32 -126 136 -87 145 157 -62 0 +122 168 146 -148 -118 144 0 +-51 -150 178 -50 -99 0 +-73 -156 -178 -69 0 +-48 91 -160 144 0 +-163 187 121 -153 110 17 -146 0 +-5 34 101 153 0 +169 162 -173 -147 -160 0 +149 56 -113 20 0 +152 -118 -180 148 -158 104 139 145 -62 130 0 +104 161 36 105 -141 -11 -2 163 0 +-137 84 167 0 +160 138 127 111 9 39 0 +129 -178 -108 0 +152 131 90 188 0 +181 138 -16 0 +-155 99 -93 0 +124 110 66 0 +-40 168 -115 0 +131 80 104 160 -174 170 112 -162 0 +109 93 120 162 0 +81 -78 33 0 +153 43 117 -130 -164 -148 119 145 -149 179 127 69 0 +-110 132 -181 -179 -156 -176 0 +-180 -150 148 105 -90 153 0 +-178 113 104 65 131 0 +-170 27 -128 0 +147 -186 171 0 +-176 12 -178 140 0 +-135 92 105 0 +-160 93 46 166 0 +-151 -42 -160 157 40 0 +23 -146 167 0 +177 -175 133 0 +181 186 123 0 +126 103 155 120 -156 -132 -165 129 148 0 +24 -124 181 0 +171 114 144 -136 -152 0 +-141 125 -151 142 -176 0 +166 -142 -96 -135 0 +108 -145 136 0 +99 67 -126 135 -115 0 +-186 -3 11 102 0 +-137 -56 149 -136 0 +-164 65 -171 0 +-110 -113 -184 0 +-78 29 -83 185 -111 -133 -126 0 +-177 -187 -184 168 0 +152 -115 -129 -67 153 77 -39 -16 -145 0 +-25 127 -141 -173 -187 -29 73 9 0 +-134 184 175 0 +178 99 -84 0 +155 159 100 125 -141 -183 0 +-17 112 138 178 15 155 128 184 -14 0 +-147 139 186 0 +111 158 -185 -155 103 -100 -148 0 +-102 145 -41 -176 -165 157 -65 0 +-110 -39 -165 -41 19 0 +10 172 -37 -103 0 +168 -158 -178 0 +-161 -146 -81 165 -111 0 +-162 -10 113 0 +167 139 134 154 -186 0 +178 -150 -183 -34 0 +30 -154 -148 108 0 +-146 140 164 -2 137 0 +-129 -186 114 0 +148 8 139 -175 0 +-170 150 58 0 +-136 -165 -142 131 -113 163 0 +85 123 -108 163 0 +187 -147 150 140 0 +181 136 140 -48 17 0 +43 173 121 129 87 -184 94 -14 0 +-113 -165 145 0 +161 -105 -76 0 +169 126 129 -182 152 -166 -181 37 -130 0 +134 -2 -161 -8 -25 0 +129 113 -148 0 +-107 178 125 0 +-132 -184 -166 0 +100 179 118 0 +75 63 -136 -125 184 -159 -185 -111 0 +5 163 -145 0 +-137 -127 136 163 165 180 41 -122 -159 0 +127 -125 179 0 +-45 40 -92 0 +-174 128 136 10 0 +-72 162 -135 114 -161 64 132 -107 0 +152 -56 100 -124 -135 0 +60 -120 128 115 168 -139 0 +5 -182 -132 -38 0 +-164 26 28 -38 0 +-146 -132 -77 0 +153 179 -6 -125 -103 0 +-170 -151 16 0 +132 178 6 -136 0 +-152 62 -167 143 0 +162 35 165 -4 0 +113 117 -166 112 -182 83 -137 0 +-146 99 132 0 +-134 128 -101 -7 0 +120 -41 154 0 +-109 145 -155 -148 -137 -170 133 0 +13 -141 27 -174 0 +-50 125 -106 0 +153 142 148 -149 118 -132 0 +-130 -128 23 0 +-46 -101 -141 9 0 +186 20 121 0 +92 177 -158 131 183 -105 -111 175 167 -150 66 20 0 +-2 -163 -73 0 +-187 159 40 157 -137 -38 0 +116 120 131 -181 66 -14 -1 0 +-97 163 -187 -152 -188 0 +181 35 132 100 0 +66 173 -122 0 +129 -182 180 109 0 +-170 -161 125 108 -89 3 -174 -162 -71 0 +137 -75 174 181 0 +178 -79 167 -118 0 +-147 -133 114 -108 -178 0 +-156 175 -152 147 0 +-148 115 -138 -107 -123 -2 0 +145 174 159 -152 135 0 +177 27 -99 0 +-93 23 36 48 0 +139 186 183 0 +-138 144 36 155 -140 0 +135 -167 -178 0 +161 137 -135 154 -74 -180 16 -53 -162 0 +129 -115 142 152 -177 -170 -12 22 133 0 +172 115 182 -126 -148 0 +-37 -78 -103 -84 149 -101 0 +150 -146 156 0 +-164 -16 19 0 +170 40 -139 -105 133 0 +-68 -138 8 -54 -159 0 +25 172 -99 0 +-118 -157 -171 0 +158 162 -181 -81 -156 -125 140 0 +104 -176 183 0 +-103 -160 2 -130 165 -132 -135 -34 0 +-69 159 107 -158 63 -135 14 0 +-63 -112 -184 0 +67 177 135 0 +-58 -177 108 -1 57 -162 -89 -93 -139 15 188 -20 0 +-77 -135 -181 -134 -175 0 +-124 -129 -123 -107 0 +182 -108 70 -5 0 +-156 105 27 -144 0 +14 111 -138 142 0 +71 -150 -101 -141 114 0 +153 127 144 0 +165 160 116 73 0 +166 134 -185 21 181 0 +-161 -5 -148 40 0 +52 -24 -20 -150 -141 -36 88 -158 124 140 0 +-169 -180 43 0 +132 -184 -100 11 -149 129 0 +143 -148 -150 82 -137 151 41 -131 123 -116 0 +-21 169 -153 0 +111 169 73 0 +-157 -164 151 0 +21 -119 97 170 -107 79 0 +156 119 -179 0 +-109 -59 -43 -19 66 132 0 +-75 -149 -134 -109 0 +136 -142 112 0 +165 -151 -64 0 +-40 142 -15 0 +57 3 -184 -134 161 171 0 +186 -119 161 -17 187 132 0 +-165 -46 -145 -96 185 -154 138 0 +-139 144 -188 -114 175 176 -183 0 +161 -168 -177 0 +-105 -126 161 164 0 +144 80 123 0 +121 -106 -32 -152 -160 -135 -85 157 0 +-121 128 -188 139 0 +-173 -120 -178 17 -160 56 -61 52 -64 -158 -138 0 +98 180 141 26 10 0 +-41 -15 187 -3 120 0 +77 -142 -138 0 +154 34 -149 -116 -167 0 +-130 -26 -180 0 +58 115 -105 136 -174 0 +-162 171 -133 149 0 +140 174 -131 0 +109 -172 -115 0 +128 84 38 -89 172 0 +-147 -163 -174 -184 112 2 0 +172 -126 -31 0 +-26 -172 185 145 0 +-118 99 113 1 -120 160 67 0 +23 6 -160 0 +-150 162 161 0 +15 17 -188 0 +55 116 72 160 129 0 +149 -99 148 -9 0 +-142 108 -32 127 -126 -167 -136 0 +187 -60 -177 185 0 +128 -120 123 161 160 -116 82 19 -136 0 +61 -162 -117 0 +-176 -182 143 -120 -157 145 175 -138 -131 0 +-141 -106 -100 0 +-174 135 -167 124 -125 138 0 +-104 -137 78 0 +137 -73 -164 0 +-129 7 -134 -136 108 -135 0 +-89 141 184 140 0 +7 -163 115 129 120 -165 0 +-68 103 130 -7 -149 99 0 +167 -27 -169 0 +-1 110 60 0 +16 -154 -146 -188 -153 82 156 178 0 +112 -166 -16 171 0 +-141 138 -98 15 169 0 +152 -87 91 -14 117 57 127 -105 0 +162 -127 -181 0 +116 130 -143 -169 36 0 +-88 29 161 0 +137 -161 -27 -139 43 0 +-21 -176 122 -157 0 +-145 -123 -27 -102 0 +96 -141 -164 0 +-157 -179 -143 107 -14 -24 -31 0 +144 -135 160 7 113 -137 0 +136 -98 -175 -149 185 -171 184 -64 0 +186 -166 -171 0 +-105 150 -136 0 +-184 -99 148 -118 153 175 0 +158 -185 -133 -172 165 -167 0 +117 45 -172 0 +-137 -18 -143 -178 168 33 -153 0 +42 101 170 0 +138 -107 141 154 -161 -150 0 +171 -140 132 0 +-12 168 161 0 +117 -137 30 -113 -131 104 -62 138 119 0 +185 104 121 -187 -35 0 +68 41 -138 0 +-173 -183 122 135 188 -132 36 14 -115 -161 136 0 +-134 -130 62 0 +168 162 140 -102 0 +137 111 -120 0 +119 -162 116 -47 148 107 -165 0 +-176 -156 154 0 +30 -112 -185 0 +-117 177 103 -122 0 +-48 -150 -19 0 +36 11 120 181 0 +144 72 185 0 +-75 -188 -147 0 +79 108 148 -147 0 +-123 -148 -114 -163 -93 126 -151 -147 0 +-143 -132 73 0 +159 -47 -103 121 -164 -154 0 +-136 101 151 148 173 177 0 +-151 51 -56 133 0 +-160 183 170 148 0 +136 -133 -146 0 +-123 -133 -172 160 0 +-188 134 176 14 0 +-164 -36 -100 130 -175 -178 0 +114 -143 120 -129 -126 -100 0 +40 -132 -111 0 +33 -163 155 0 +36 30 88 0 +27 169 153 139 127 161 -100 -149 178 -144 184 0 +31 62 -188 107 -33 142 0 +-173 60 158 0 +142 52 -184 33 -32 145 164 0 +-139 -99 -148 0 +-121 -177 -161 -173 0 +-14 -181 -56 0 +-91 -129 144 -178 101 -24 -131 -148 0 +-157 -64 -113 -60 165 -166 70 152 0 +-166 121 -152 -15 9 -163 180 -176 -171 -116 0 +139 -2 71 -137 111 -75 138 1 0 +177 126 102 -113 0 +111 172 156 0 +24 62 -75 -32 0 +180 -166 -104 0 +-152 -172 -146 0 +177 77 149 -26 -154 0 +108 -57 -52 0 +165 135 -58 183 -91 -172 0 +-133 126 164 -151 -144 0 +-129 114 140 0 +168 -157 179 -138 16 167 -171 -173 -111 174 -178 -73 98 0 +-110 155 -168 -115 0 +-121 116 48 -182 -46 100 0 +-167 -184 9 130 18 0 +-141 116 -54 36 0 +3 148 -172 0 +186 -150 188 122 140 0 +-127 107 -161 145 -105 13 35 0 +157 181 25 133 177 170 168 0 +1 144 172 173 103 -183 145 60 0 +-6 137 -103 0 +-2 164 -99 0 +64 164 -123 7 -91 0 +-99 -157 187 -135 0 +-117 49 -119 0 +188 -169 139 -138 -89 -179 -13 -157 0 +132 -128 -140 -77 0 +-107 109 160 -175 116 -99 -79 26 0 +137 179 178 3 165 0 +145 -139 158 102 0 +169 -18 136 110 -129 0 +-164 -123 173 -181 40 172 -39 183 0 +174 107 36 -19 -140 58 185 127 99 66 -146 0 +113 -172 -127 169 -25 -185 131 0 +122 155 -135 0 +75 151 8 -166 0 +-14 155 180 127 151 -130 27 -170 -134 105 0 +126 165 -119 136 181 -156 177 161 -187 140 118 61 27 0 +165 -38 158 -104 -142 0 +148 103 173 0 +-176 -129 -126 14 110 -185 0 +-85 -142 -160 183 -90 126 127 -164 -176 166 -40 -136 29 0 +126 -156 0 +103 -140 96 -70 0 +-171 111 -147 149 139 -180 0 +37 -127 -36 0 +72 -132 118 0 +160 168 115 -178 47 -126 0 +-1 135 157 -25 0 +-189 -213 149 0 +4 106 -209 -164 0 +130 207 -211 0 +156 -212 215 -194 205 42 200 -201 0 +211 204 210 216 189 0 +-128 -112 134 0 +121 -218 -210 -197 -100 -16 71 -205 -162 0 +193 -216 -217 -196 0 +35 38 -122 0 +-192 -190 202 208 -104 -182 -149 -174 -44 -193 35 138 -191 213 0 +209 199 16 -207 0 +176 169 -203 113 0 +201 185 89 -199 -204 167 0 +-177 -200 -144 0 +217 -208 160 0 +-32 214 194 -120 0 +-198 45 -141 212 191 192 -115 50 0 +218 168 62 0 +-105 -131 196 49 -125 148 -215 -206 -103 197 -45 -183 0 +-117 175 -202 -195 0 +-106 165 173 0 +-169 195 190 0 +40 -150 160 198 -214 0 +203 -50 206 0 +-165 45 193 -121 204 0 +-199 41 204 0 +-196 133 -209 0 +140 -208 -196 0 +-198 -188 -199 205 210 0 +76 188 150 -190 165 0 +206 -16 -205 -196 176 173 -208 189 -170 -190 212 0 +199 -123 103 0 +216 96 113 0 +9 50 7 0 +-100 -218 -154 0 +137 217 -205 0 +215 -213 209 -154 0 +-213 29 -214 -193 0 +213 -218 -212 -117 0 +216 -103 179 -176 123 141 203 -162 -164 0 +-195 -179 -194 153 0 +215 -158 -104 147 133 97 -85 -157 -129 0 +-200 -192 159 -207 80 198 92 0 +-83 171 114 -204 0 +-37 113 197 218 -159 -4 -207 0 +-138 -199 178 218 -197 168 0 +192 213 210 0 +-191 133 -185 -204 -180 0 +159 -196 207 214 201 -174 15 0 +93 196 5 0 +-192 -218 -217 0 +215 200 145 0 +213 -182 191 -195 180 32 148 109 -197 156 -13 101 -211 0 +193 -218 -196 -177 107 0 +202 8 -200 -42 -216 166 0 +170 201 215 -188 -207 -159 0 +-195 -161 173 26 -171 0 +-107 -144 213 -113 0 +141 194 -192 167 -159 -117 38 -215 0 +-210 209 -130 -193 0 +-208 160 -148 -199 0 +-99 149 -126 -164 -179 -148 129 0 +-198 -176 -211 187 0 +-217 142 -148 -191 0 +-107 187 0 +191 -190 197 0 +199 202 -198 0 +189 193 -130 0 +193 164 195 -109 0 +-88 -204 87 0 +-209 7 211 -213 -128 212 81 0 +-193 -217 0 +190 211 214 0 +133 215 192 0 +207 60 197 166 -214 196 0 +-208 118 -209 204 -109 -129 213 -190 -124 -194 188 173 0 +-215 60 122 0 +134 -39 198 201 0 +-170 -196 -195 123 0 +193 -157 202 -200 -25 -172 -150 0 +207 211 -191 -103 0 +-201 203 -125 171 204 -91 -205 0 +-105 -207 -217 -154 0 +189 193 -217 -200 -141 0 +189 207 -57 0 +-212 -215 -25 -167 32 -156 0 +205 -163 -75 198 -169 -141 128 84 194 218 146 -153 -148 204 115 78 -107 -39 0 +-198 172 212 181 0 +-193 -135 -133 -205 0 +199 207 183 0 +196 187 209 -205 0 +-197 -68 -215 0 +-217 169 203 0 +-83 49 -179 -218 0 +201 190 200 -19 0 +-214 12 -205 0 +-195 -199 -211 -158 128 -200 190 100 0 +111 206 -105 -154 218 142 0 +-49 -6 -203 0 +-173 137 169 -195 207 -213 0 +-11 -178 -153 191 0 +-213 200 -192 -214 -194 -150 199 191 157 0 +159 200 148 0 +197 -214 -199 216 0 +145 -207 -89 0 +-212 -166 40 189 0 +207 -209 215 91 -205 0 +105 199 -192 0 +204 130 191 0 +-215 -193 -180 0 +141 171 -214 -209 170 217 -112 0 +-172 -218 182 144 -184 0 +-172 -201 200 110 121 -179 0 +25 194 -26 0 +18 -195 -158 -164 0 +-190 -210 -205 0 +137 197 -203 -214 97 0 +146 198 211 202 25 -192 -191 206 -215 0 +108 202 -27 -100 0 +-107 -202 195 0 +-194 111 203 56 0 +36 -194 179 0 +-215 199 -103 207 212 -217 -202 -214 211 0 +-209 181 213 0 +-212 -198 -137 191 0 +-142 193 209 24 -218 0 +214 -195 -201 0 +-138 210 125 211 -120 0 +189 122 194 0 +-109 151 214 -217 212 -159 0 +-66 -204 202 0 +216 -117 -210 -189 147 0 +195 -136 -187 0 +-199 -177 86 -153 99 0 +5 -212 21 103 0 +212 176 191 0 +217 -204 183 114 211 26 174 195 -167 -208 0 +-204 80 -209 0 +-109 176 -216 0 +-168 -106 195 0 +-182 -187 -190 0 +-187 218 -205 -173 217 0 +210 -207 214 191 -213 0 +-125 -208 162 0 +-211 -213 208 195 0 +-11 184 -140 112 0 +-187 196 -217 -125 0 +213 -204 117 0 +175 170 196 -208 203 0 +139 -199 191 -149 0 +-203 169 107 125 0 +-134 -124 196 -216 -209 -210 198 0 +211 -201 -192 0 +211 -100 -159 0 +-189 -211 -154 134 -201 -170 210 -184 -87 0 +175 121 10 196 -205 0 +102 9 -185 -209 -213 0 +145 -201 22 -23 0 +214 178 122 0 +5 -143 -202 209 204 0 +99 -211 14 0 +-196 -155 160 0 +-185 -117 7 0 +-218 -138 -166 -202 77 -201 209 199 -213 0 +-213 -188 -216 0 +132 30 25 89 -103 117 147 0 +-58 -212 -204 0 +-189 -216 185 217 0 +-196 215 -111 -178 175 0 +-189 -172 -156 199 -195 -212 123 204 -190 -175 0 +-115 137 216 190 0 +-169 194 -100 162 0 +-123 -151 -217 -140 -187 38 202 -174 0 +-191 -200 48 -156 -146 0 +-188 -3 200 -145 -208 0 +-201 185 -94 -189 0 +-186 -203 138 -199 0 +-206 -200 205 175 0 +30 -195 170 -196 180 -155 68 199 -207 -216 214 -153 118 197 65 0 +-78 198 -192 -215 0 +-173 192 -194 -156 0 +-7 -216 125 -190 151 0 +-153 -139 -209 207 0 +202 203 -70 0 +204 205 -128 0 +169 -214 -23 -128 -111 -158 173 161 -216 -218 -133 114 0 +207 103 202 0 +-154 210 193 117 18 106 -217 0 +-171 150 194 0 +-204 137 193 0 +-210 183 -149 -212 45 -204 -121 0 +-191 -144 100 0 +191 211 184 -145 0 +210 197 -200 0 +203 112 -209 120 -208 151 0 +-204 173 104 0 +214 141 -120 208 0 +-212 -160 134 -197 -157 -50 65 -101 190 -214 -207 -166 0 +-204 -199 207 153 0 +192 -217 213 -130 0 +38 212 161 -157 203 0 +110 -148 214 93 0 +-112 211 -8 0 +-158 -214 189 202 -197 -209 205 0 +164 205 -195 0 +-212 127 111 0 +-101 136 -216 -213 183 0 +-129 193 11 -205 0 +-130 114 -206 0 +192 208 -193 -210 -113 188 0 +-189 181 -190 0 +192 199 -9 -174 -205 115 0 +-192 199 101 41 0 +204 216 189 -63 0 +-165 -191 -218 215 -208 140 0 +205 106 -142 0 +-102 -164 193 0 +199 216 -212 -178 0 +-188 -99 -210 194 -75 124 158 -191 -174 198 0 +199 -23 -208 0 +-23 218 -147 184 0 +215 -133 127 0 +22 -188 198 208 217 -159 -195 -138 -211 193 -215 -111 0 +204 -213 -176 0 +-169 198 -205 0 +-193 8 -215 0 +204 132 -168 214 -216 -197 49 -190 25 0 +112 -128 191 0 +193 -163 99 -210 0 +206 -209 202 -150 0 +85 -216 192 188 -214 0 +-105 -125 51 -126 0 +-96 41 212 200 0 +-102 195 214 209 191 -199 142 185 0 +122 192 -147 0 +213 203 183 50 214 0 +-170 204 190 182 -199 0 +205 -203 190 164 -211 218 0 +-54 195 -131 -191 -176 200 193 217 210 203 30 -146 -207 -102 -190 -211 0 +-189 -80 -109 204 -200 143 180 -49 -207 194 -202 -181 -217 12 -192 -95 160 0 +174 193 -132 210 -40 0 +-202 201 183 0 +10 -39 -154 0 +-205 164 138 172 -206 0 +191 -211 -134 100 132 207 138 -146 216 195 -163 -136 217 25 -180 144 0 +206 130 212 200 167 190 182 0 +-207 -192 -184 0 +-144 152 -189 25 201 0 +217 -168 175 0 +183 189 211 -19 -217 203 0 +-120 207 107 131 213 0 +-146 198 217 0 +75 -65 195 169 -182 0 +210 201 62 -141 -130 -177 0 +-183 199 -189 0 +-197 208 134 -76 -164 -203 108 195 -202 -119 0 +210 -160 169 190 0 +209 189 145 -190 0 +-215 -169 165 0 +-165 -120 206 -132 0 +48 207 212 215 0 +207 132 -168 -193 177 -209 217 214 198 62 -68 0 +203 193 -179 169 200 204 -191 159 183 0 +-103 -160 0 +-214 -209 -202 -6 215 0 +-201 -205 -204 0 +164 -174 -203 192 0 +195 -200 -161 101 -31 0 +187 -203 130 -52 -207 -215 -193 -64 205 0 +-218 98 162 0 +-210 98 194 0 +213 -162 165 124 0 +102 -105 142 109 218 -131 40 0 +161 188 6 0 +166 13 214 -200 -217 0 +92 -133 -211 193 -201 0 +181 131 -218 -194 216 110 0 +143 40 21 -192 127 0 +-170 191 217 0 +204 188 190 -4 104 0 +-85 -121 118 0 +129 62 -192 -175 203 0 +-193 109 151 130 0 +176 -192 55 -202 -191 209 0 +137 -21 130 0 +210 -218 -200 -111 178 -188 181 198 -211 0 +-30 150 148 -209 0 +173 179 -208 -152 0 +-100 88 196 0 +-205 203 -215 0 +80 206 196 207 0 +51 -145 -107 194 215 189 -197 129 -211 208 -172 0 +155 -117 -217 0 +-131 141 -210 -185 -207 -179 -32 0 +177 156 -209 198 0 +155 114 -210 -193 0 +192 159 -164 124 200 0 +133 -110 -48 0 +-9 -18 -195 -205 -136 0 +-201 -148 -118 203 157 217 -205 0 +-167 -144 -161 0 +83 -193 217 0 +189 -207 -194 208 0 +186 208 217 -24 0 +-171 -198 -175 4 165 -137 218 -161 91 0 +215 203 204 0 +193 -210 213 0 +-196 190 -185 126 0 +-212 207 173 118 185 110 0 +206 -111 126 209 193 -197 217 205 185 28 170 -145 191 194 105 202 0 +134 -217 215 -209 132 -196 0 +150 121 198 0 +217 163 196 0 +-218 195 202 -158 -135 19 0 +211 -182 214 -202 -194 0 +152 -215 -168 207 170 -136 0 +-198 18 -196 -1 -201 -170 -193 -207 0 +197 -211 -43 0 +-200 168 -190 0 +206 11 214 130 -201 -212 0 +139 1 206 -90 -193 -191 156 0 +123 -5 136 0 +216 -138 139 0 +9 151 211 0 +-152 -33 -205 0 +198 204 -181 190 0 +-179 132 208 101 206 142 -141 0 +205 180 197 204 -194 168 -171 0 +-195 -189 -136 -141 205 107 -190 0 +-141 161 -204 -150 -213 -175 155 53 108 -188 196 0 +212 -46 -160 218 -192 214 0 +143 132 218 0 +-161 200 -199 0 +120 192 208 138 0 +-157 -208 141 202 0 +197 213 -201 110 174 0 +-202 3 195 -207 201 99 0 +-216 -139 136 0 +-176 -172 215 -189 -40 197 0 +199 215 -100 197 209 0 +-213 -189 -166 0 +200 259 212 0 +205 209 0 +-195 -202 -211 -185 -224 0 +31 -204 -134 0 +-228 264 -191 -206 0 +-264 232 -201 0 +-104 -253 -185 221 0 +254 160 -137 253 -256 227 0 +151 231 -241 239 -138 226 249 0 +222 261 -219 0 +206 198 -119 -201 0 +252 -117 120 -259 -111 0 +-232 -227 -208 248 -262 -225 233 210 240 -170 136 223 0 +-168 -114 225 0 +243 -242 -161 0 +199 82 -237 -203 0 +210 256 194 0 +236 -217 156 139 125 -202 -222 -170 0 +-234 191 238 -183 216 257 -244 0 +-236 -229 -248 0 +-250 -254 216 0 +132 -212 -265 263 0 +-216 204 251 0 +-235 241 -48 -200 -258 229 0 +-207 -246 -149 198 255 -215 0 +-231 250 242 0 +182 224 -189 -230 -129 0 +244 235 -249 0 +-9 216 -208 -139 0 +-69 237 228 0 +-185 -223 -252 -240 -261 -233 -263 -101 230 -21 -198 0 +-136 -189 -251 -245 -221 0 +-247 246 -204 -191 -220 -255 0 +-194 167 -239 0 +-217 260 245 -238 265 -213 56 0 +262 151 -209 0 +-226 219 220 258 0 +-260 -218 206 0 +181 -195 192 0 +-196 -217 234 0 +6 20 182 0 +247 -215 -243 0 +-257 198 -218 -259 0 +-217 216 -228 0 +-233 249 109 0 +-234 262 241 0 +-258 -260 92 0 +102 -116 -262 0 +-239 -254 204 -260 234 -32 0 +-248 259 0 +233 -104 -243 145 0 +200 44 15 260 0 +260 246 257 195 0 +205 233 -190 0 +-228 -222 -210 103 -232 0 +250 -230 122 0 +-249 203 -29 0 +257 203 195 0 +-104 -234 219 252 0 +216 265 -133 0 +223 168 198 23 0 +253 118 -250 126 212 258 197 -184 0 +-244 -202 -147 204 -227 -210 174 0 +-231 -256 177 0 +208 -232 -249 0 +252 249 239 232 0 +-214 -100 264 -259 256 244 171 0 +235 185 -216 143 0 +-233 237 -265 0 +-195 74 201 -116 -193 236 -135 -226 260 224 252 -251 0 +-247 -218 -119 0 +-159 219 239 220 115 0 +-248 -213 -251 264 0 +188 227 263 -232 -167 0 +-181 158 227 0 +-257 -254 137 -163 -190 0 +-226 -132 91 -229 263 -258 191 0 +-257 -208 -191 205 160 0 +117 -228 208 207 251 0 +-46 -199 260 253 247 -252 0 +224 195 -219 154 -16 0 +-130 196 204 245 214 0 +131 -201 -250 249 0 +-34 -229 218 0 +-172 250 -256 198 251 0 +-236 -195 -179 0 +221 -210 233 -245 145 236 0 +264 -245 223 0 +196 158 245 215 0 +246 -24 264 0 +209 201 -257 256 194 247 173 -261 -202 -216 258 -210 246 198 -195 118 -88 -219 -208 0 +191 193 207 238 0 +-211 -257 255 212 0 +-233 -259 249 0 +258 227 -205 -163 243 -203 0 +175 224 -207 15 -254 205 0 +-209 232 -233 0 +-246 -159 -216 200 -228 -89 251 33 0 +138 -203 224 225 218 0 +203 263 223 -231 0 +263 246 243 -125 -224 104 0 +-254 -134 -178 0 +244 -229 193 0 +-2 -112 233 -192 0 +-235 -218 -208 -242 -220 194 -241 180 0 +226 -235 -146 178 0 +-256 -257 -206 0 +-257 174 229 265 212 0 +239 -111 207 -221 -227 0 +-117 -85 -238 0 +217 261 205 264 -239 -49 -206 203 110 240 -177 208 210 202 187 0 +248 -247 -218 -259 0 +247 265 -154 -194 -222 196 -237 250 182 0 +105 -171 227 265 -79 -238 -202 -209 -173 263 107 0 +251 156 208 219 0 +251 237 253 0 +203 -218 236 0 +-104 252 -199 0 +207 -228 196 246 -119 160 257 0 +253 -230 240 248 0 +219 257 134 -169 0 +-206 182 115 175 0 +212 -249 259 27 -137 232 0 +-193 -111 232 189 245 -205 0 +240 264 191 241 -231 0 +-236 -262 257 0 +-178 -35 195 0 +242 -189 256 0 +247 -182 215 0 +229 232 264 214 -233 -185 0 +209 237 -9 0 +170 -221 249 -252 -219 179 -232 -201 0 +-197 182 141 -121 233 237 0 +-258 238 -249 -200 252 -233 0 +207 -238 192 -242 -261 -195 188 126 224 -185 -191 -219 0 +53 220 246 192 -263 47 -248 0 +235 159 -226 0 +160 183 -188 0 +151 262 -6 -249 -244 250 0 +-261 262 254 0 +192 265 -194 211 -231 -207 0 +255 262 -184 0 +199 192 0 +-126 151 208 242 -240 -206 -253 0 +-223 254 236 0 +-175 -111 -222 0 +-76 205 -217 251 0 +258 -241 -262 -245 42 224 189 0 +-193 -245 239 -140 226 -17 260 0 +200 -194 211 198 235 0 +208 -189 231 -261 169 138 0 +231 -189 204 0 +-104 190 -199 -215 255 0 +-253 -243 -258 0 +244 -262 224 -231 203 0 +-130 221 -124 0 +-220 256 -264 0 +-220 237 146 -241 -62 -236 249 180 0 +-236 235 -188 -222 0 +221 193 -82 248 -262 229 0 +-194 262 133 0 +-217 -199 251 -16 0 +132 -207 -230 -265 0 +219 190 226 224 -212 0 +245 -257 180 0 +-259 -201 -224 181 202 0 +185 209 237 246 -213 -264 -243 -118 0 +249 -215 -159 -192 -217 -132 -195 0 +172 254 189 0 +-206 -244 203 0 +235 195 57 -197 0 +251 -159 -8 163 214 201 0 +-223 196 213 0 +198 -200 -218 0 +224 -245 213 0 +239 220 -146 228 237 -262 225 0 +249 -210 209 0 +-100 255 -130 0 +182 -240 227 255 -195 142 185 0 +-200 -221 123 0 +-191 219 -265 0 +-120 126 -242 200 109 0 +196 -201 -199 93 227 -223 139 219 -205 -235 0 +207 -250 257 -237 0 +231 -93 249 263 -142 0 +-203 -211 -246 0 +196 240 -109 0 +182 -195 220 -221 243 247 -202 -222 0 +199 -170 234 0 +263 -211 192 0 +192 145 253 0 +160 206 -106 211 195 -107 -233 226 -234 212 0 +250 228 258 0 +-201 236 138 -122 0 +237 220 -253 236 259 224 -231 234 0 +242 257 -259 255 -193 0 +-263 166 -213 0 +226 -260 256 -248 -254 -107 0 +198 -250 -262 0 +-187 -242 203 0 +-5 -240 -139 212 0 +255 221 191 0 +191 -251 -194 0 +208 111 -239 0 +-256 217 229 81 254 -218 244 0 +-224 -245 262 265 -223 212 0 +239 214 136 243 -229 250 -226 -233 244 -137 -248 247 -227 -264 0 +-227 263 161 236 148 -250 0 +-255 -209 224 0 +201 246 248 225 -214 238 0 +260 -265 131 0 +-221 -229 -76 206 0 +175 218 -225 183 0 +190 203 -263 -228 -128 -231 -154 265 259 0 +-46 -220 250 -37 249 0 +-262 241 -2 0 +-199 206 -263 -103 0 +-245 -238 -47 0 +-199 -190 247 144 217 252 215 258 263 0 +-214 -262 203 153 -254 265 0 +-228 236 -192 158 -231 157 0 +-63 -36 262 -215 247 0 +-44 -190 187 0 +-248 247 210 -26 223 215 0 +197 -235 231 0 +-244 255 247 0 +261 -262 -212 -45 -194 0 +172 232 239 0 +-239 265 248 -231 0 +-146 263 -119 0 +100 -193 238 -233 194 203 0 +246 -241 197 -194 -263 -232 -212 0 +-265 -255 206 259 218 -208 0 +-40 -174 245 0 +-232 -233 201 206 210 0 +206 -205 139 -191 0 +-107 -37 -199 246 -203 92 -138 -194 -258 171 193 -147 256 213 -176 -228 -244 265 0 +207 -167 221 0 +-252 82 19 203 243 128 0 +-232 -218 251 -249 -260 219 -180 56 -264 231 -147 -255 0 +-252 -263 -258 -154 -261 235 240 196 -249 0 +261 220 138 230 -235 239 -96 233 -146 194 -203 214 209 -186 0 +-235 250 -203 249 246 -251 -264 -215 0 +265 261 193 0 +-242 264 -228 -192 -261 0 +-247 -245 222 0 +-225 234 -219 -227 -117 193 -237 -250 127 0 +58 -213 215 0 +-233 242 262 0 +228 230 229 -250 207 241 0 +114 139 -149 217 -150 -220 216 0 +179 -135 -233 -216 198 238 -156 -222 -243 0 +-263 223 249 0 +-174 -155 132 0 +-214 -207 243 0 +-196 189 236 -235 214 0 +-154 -252 225 156 -230 247 0 +-225 -228 242 -250 213 -258 0 +166 -258 230 -165 0 +-195 254 178 -150 0 +250 247 255 -228 0 +237 252 -223 0 +144 166 206 -253 0 +-12 252 193 0 +-230 -114 -154 0 +-158 236 166 -219 259 -203 -204 0 +252 264 -200 244 -204 233 36 114 227 144 -197 0 +205 207 257 -241 0 +213 -244 -178 0 +240 257 234 236 0 +-154 -156 -176 219 231 -235 252 -111 0 +-213 -250 160 0 +180 -191 252 0 +-230 -201 261 207 -194 242 -239 0 +250 -257 -256 -202 0 +-227 257 143 259 0 +227 -203 -146 0 +196 -246 -207 0 +218 238 236 0 +-131 -195 -232 -245 52 -249 262 248 243 231 0 +243 -157 -238 0 +-234 218 -221 0 +-242 252 -239 0 +237 27 -243 130 262 0 +-35 225 0 +153 130 156 0 +262 237 223 141 100 0 +235 -99 137 259 0 +-279 -148 -274 -266 -282 0 +272 -273 269 177 240 0 +267 280 29 242 199 276 -283 -278 284 126 -270 187 0 +193 -287 275 0 +99 -268 271 0 +281 -229 266 273 0 +216 -280 277 286 -272 -154 -250 0 +285 219 287 -286 -209 0 +-222 -251 231 270 0 +-285 274 -231 197 -277 -267 0 +-284 100 -136 279 0 +278 -253 -275 -218 -269 0 +282 -230 -271 -276 283 84 -251 231 0 +264 247 63 -281 -254 225 268 -193 -3 0 +210 -192 221 -274 266 0 +221 56 -285 238 -263 0 +277 267 -287 0 +274 173 277 -256 282 201 0 +-273 -275 -239 0 +266 274 -206 -272 -104 0 +-231 189 148 0 +285 256 276 0 +-255 266 257 -286 0 +254 -266 -270 0 +-284 -279 -183 0 +-193 277 253 -249 0 +-250 -283 275 0 +203 -230 208 0 +-277 -286 -140 0 +269 -267 -221 0 +273 -208 -219 -214 -247 -204 249 278 0 +280 -287 -78 0 +-217 -273 -243 194 0 +274 286 281 -268 0 +279 -266 284 179 -282 -188 0 +-194 -283 258 284 226 -239 -225 -102 -172 0 +217 224 -27 -275 -278 -229 147 108 0 +-196 217 -203 -282 197 0 +-239 -286 -161 0 +-275 -273 -276 280 -169 0 +-195 268 222 -115 102 -283 -263 284 -209 0 +-277 192 281 283 0 +-227 285 268 0 +273 -241 225 227 -160 -223 0 +-286 191 -266 285 282 -262 -268 0 +-275 -273 268 0 +-270 219 269 0 +283 -207 -84 0 +212 -9 227 -276 246 -286 285 275 -66 287 270 -240 0 +286 -284 219 0 +-140 280 -276 212 266 275 -271 287 0 +117 276 -208 266 -26 258 -272 -176 163 0 +-218 184 -232 0 +257 147 155 178 -227 -283 274 0 +247 2 250 -282 0 +273 206 280 0 +-278 -282 286 0 +-190 286 228 266 0 +-284 -278 224 0 +278 -113 274 0 +277 -214 270 -246 -282 0 +272 271 278 0 +287 113 -199 -275 0 +-260 284 -280 220 0 +271 -268 -269 -48 0 +-273 269 -266 -211 0 +264 -218 -258 281 282 -154 56 248 -118 196 229 210 273 0 +279 267 272 276 225 -224 0 +-278 -92 -268 190 212 0 +271 -257 260 -158 0 +245 -282 -284 -226 -235 240 0 +282 217 -271 0 +-215 210 261 232 0 +-267 275 256 -285 -281 0 +190 -207 -157 -280 -210 0 +18 238 184 0 +-212 285 150 -267 0 +237 -285 -232 172 235 0 +-218 274 -233 -78 275 0 +266 -268 286 0 +281 267 -33 -249 0 +-16 -203 -238 0 +-271 278 281 0 +228 -279 283 -255 -237 277 0 +270 -238 -268 -263 277 -195 -274 0 +272 282 -198 284 273 0 +-205 281 -273 0 +278 -6 -266 0 +285 -279 -237 272 0 +228 268 -241 221 0 +-273 -286 204 280 0 +-190 275 265 0 +255 235 279 0 +-262 -277 135 0 +277 -286 -268 0 +-278 269 130 272 287 0 +147 -278 273 271 0 +285 220 207 -287 281 -280 237 0 +151 -280 286 287 0 +270 149 141 253 0 +-141 160 256 -267 -246 281 278 260 0 +-201 273 -285 0 +274 284 237 0 +-126 -223 272 0 +-268 278 267 287 0 +-271 279 -218 0 +269 284 271 -275 -276 0 +225 -233 224 -259 0 +-205 103 -273 277 148 0 +177 281 239 0 +-287 191 274 0 +-269 -266 -194 0 +283 -282 287 264 -278 271 0 +272 -278 182 165 280 -173 130 0 +273 -282 207 0 +195 -287 -266 -286 0 +184 -38 273 -271 -115 0 +-233 276 -89 -110 0 +231 -202 -279 281 -286 223 0 +-270 196 275 0 +-266 -238 252 0 +279 -187 266 280 0 +-247 285 193 244 0 +-159 -217 -273 211 -284 274 0 +15 -274 -137 132 260 0 +286 268 281 0 +-233 277 -272 -167 222 0 +275 -1 273 219 0 +224 243 273 113 0 +255 -267 -276 -278 282 0 +116 -272 -26 278 266 186 0 +-275 226 -285 269 -271 276 128 272 282 0 +-238 -253 -225 -230 -267 0 +-241 -283 268 0 +-269 267 -142 -156 -194 258 -271 0 +-283 277 -218 165 -200 -225 0 +-286 271 219 0 +-230 -269 -272 -242 -113 0 +281 266 271 -268 -287 0 +268 -163 278 -284 0 +233 199 -223 -209 0 +-229 -270 -203 -274 243 247 279 285 0 +222 -211 243 -270 -269 0 +-251 -287 285 -200 270 0 +-252 259 -280 235 -266 -226 0 +-276 -287 267 -268 269 201 0 +-256 -270 -261 0 +-189 58 -278 0 +-150 224 -274 0 +219 281 274 -110 -250 204 277 195 -242 0 +-270 200 259 262 -267 268 258 0 +260 -188 -278 279 -277 0 +284 197 189 275 -226 258 -269 0 +155 -266 221 0 +-267 -256 281 0 +178 -275 -271 -276 0 +267 158 236 0 +244 -238 -249 -223 243 240 0 +-275 276 -214 -286 -274 -282 267 235 -224 241 281 253 -249 0 +-275 -235 -266 0 +246 -266 199 0 +275 -231 -229 0 +247 -277 281 0 +268 145 -202 0 +245 -222 -266 129 277 -278 0 +-278 234 0 +-283 -270 95 0 +-213 -205 -268 277 283 245 229 0 +-72 280 200 -269 285 0 +-236 -195 284 257 282 -287 247 0 +-37 270 -99 266 0 +267 -272 189 0 +266 -268 275 -280 238 0 +-277 258 -286 0 +-261 170 249 -174 230 0 +-278 -268 -221 195 -233 284 274 244 -44 -236 0 +-272 268 208 0 +-272 -282 278 268 -263 270 0 +255 277 -140 -205 279 0 +-265 -277 262 -271 229 269 0 +-211 -218 270 271 238 266 -230 -250 276 0 +194 273 278 277 0 +244 217 -216 215 160 204 0 +122 181 274 286 195 -204 271 0 +-268 226 -237 0 +283 275 -231 87 -265 -245 0 +118 274 -286 0 +252 270 -278 0 +-278 -238 283 -244 0 +273 -281 209 277 0 +-190 -265 159 270 -247 -192 187 -245 273 266 282 -195 240 -277 0 +-269 272 -161 0 +-266 235 -214 -25 0 +286 -285 198 173 268 -201 -176 -118 -262 269 0 +-272 -229 271 257 -255 266 236 -273 0 +-282 277 -259 0 +253 227 -257 261 248 0 +229 -279 266 0 +-286 -84 221 0 +-287 -281 -251 0 +278 -267 -239 0 +173 -285 -224 -281 261 0 +-244 -247 248 -190 0 +264 57 -270 153 269 276 -267 271 0 +227 -213 -287 -271 0 +-266 -277 283 0 +-252 276 156 0 +-230 -274 -242 -286 -168 0 +282 243 286 0 +268 -74 -280 0 +270 -275 253 -224 -269 -229 -274 0 +277 -267 -198 -282 0 +246 195 -287 281 190 -58 -99 0 +-216 -157 239 266 203 0 +204 286 -269 0 +205 275 280 286 0 +287 235 272 -102 -230 0 +-158 267 203 -126 -230 224 0 +104 235 282 0 +237 157 287 267 0 +-286 -227 278 0 +-203 -218 280 -236 266 0 +246 273 -85 0 +204 -185 -276 0 +-260 -270 280 -285 283 0 +276 270 -287 0 +269 284 215 0 +287 274 226 222 -272 0 +-279 -273 -111 11 0 +-115 285 25 266 253 -197 0 +-280 282 265 231 0 +287 -193 -280 -259 87 118 -237 0 +-201 -280 -143 -287 -217 285 -231 -269 -272 0 +229 -195 258 0 +236 -197 -240 262 0 +220 -274 -266 277 271 0 +281 -269 -283 0 +-251 284 102 -88 271 195 0 +238 267 271 -233 -229 192 279 -232 -234 -281 13 -245 0 +-209 -264 -283 189 274 -278 276 0 +263 225 -252 -207 -272 0 +182 219 237 266 0 +287 258 -275 -274 151 273 -199 -278 -214 -171 205 0 +-257 -208 276 0 +272 -269 280 0 +-98 277 -284 197 268 0 +-272 -277 -284 -239 -233 207 0 +-282 270 195 -250 -269 0 +-284 -277 255 0 +267 283 227 0 +270 -236 152 -266 158 277 193 -79 0 +-287 -221 -203 0 +61 260 277 -236 0 +161 179 -266 0 +-270 -287 -2 0 +-283 -252 285 0 +-273 204 37 -283 0 +-269 -203 191 283 271 -217 -285 205 -212 -236 -13 0 +-269 272 105 0 +-286 -272 189 -268 0 +241 -273 279 -280 -287 -254 272 271 0 +-204 280 -251 -222 -244 0 +280 -106 -281 284 205 -283 36 269 0 +216 283 268 -206 223 100 0 +-207 41 176 287 286 -190 -239 0 +63 275 191 287 0 +273 -278 232 0 +277 -190 -280 -205 -243 0 +252 -220 -146 0 +233 268 -275 -254 240 -50 223 0 +-255 -230 -191 0 +193 -282 -261 0 +-258 -226 267 0 +-275 224 216 236 -284 0 +-211 -266 260 228 0 +-280 -141 197 -270 -209 0 +125 -196 -286 261 0 +-276 278 266 38 0 +-279 -257 269 0 +112 269 -271 233 0 +-277 231 0 +-284 -264 149 -243 0 +259 -287 274 0 +192 -256 195 276 279 0 +-270 -273 106 0 +-243 208 -284 166 0 +-213 -269 93 278 268 -223 277 285 0 +270 -225 199 0 +-275 -268 284 0 +-196 220 -99 -236 283 257 222 -270 0 +271 249 -195 0 +268 -279 -283 285 -227 244 0 +-169 -274 0 +-243 282 -213 0 +-281 -276 -274 112 0 +-273 227 199 224 248 0 +-274 -265 283 276 281 -246 -191 278 268 244 -263 0 +-139 -209 161 285 272 -281 104 276 0 +-208 227 278 -170 226 206 271 176 -286 203 0 +-240 266 136 0 +220 -283 277 0 +-240 -287 267 -216 281 -199 270 -271 -278 0 +-137 -152 -245 0 +158 -273 -211 0 +-270 238 287 223 280 -231 -277 -276 0 +247 -287 235 -266 -284 -132 0 +-254 -230 256 275 -242 0 +-230 220 -234 -281 0 +-211 275 -254 268 283 271 229 -280 -44 0 +-297 -291 -156 0 +277 -269 -295 0 +-294 -275 -284 302 301 0 +303 292 -305 -239 0 +-193 -206 278 0 +-274 270 -288 0 +290 -304 271 0 +212 -289 -191 283 198 300 0 +274 91 286 -290 -190 296 289 288 0 +-260 -300 294 305 291 0 +-256 -282 -280 299 0 +-259 -293 -266 0 +297 -298 -292 0 +-284 -299 244 -303 0 +-267 304 -301 0 +280 -302 266 0 +286 276 -296 0 +293 -243 298 283 221 0 +279 295 299 -64 0 +292 272 -279 299 -296 0 +-290 -305 289 0 +-295 -296 -177 -130 294 0 +231 289 234 -293 0 +-299 -301 297 0 +-304 232 -299 0 +287 -260 -276 -261 259 -297 0 +-295 267 290 -304 -300 0 +304 136 -183 266 305 0 +303 292 -131 -246 -293 0 +-297 304 286 292 288 0 +289 -267 -166 -297 295 0 +-305 280 -221 0 +281 -262 -256 286 0 +-233 295 -273 -297 279 296 0 +297 291 -301 -270 0 +-288 275 -262 303 0 +243 -263 231 294 0 +-298 -303 -217 0 +-26 303 -275 298 -297 -289 224 258 -288 274 305 0 +-258 -282 -302 -295 -268 0 +-279 245 -281 -288 -305 -270 -286 290 -287 266 294 -218 0 +296 268 283 0 +275 284 -267 0 +301 -274 -304 0 +288 -301 -78 218 -303 -280 257 -298 279 299 281 -296 228 300 266 0 +-301 -162 288 294 0 +219 -301 266 295 297 0 +-221 -237 -285 279 0 +-289 -264 275 296 0 +286 236 -233 0 +-291 244 -298 -260 277 197 274 -278 157 0 +293 -300 261 292 201 0 +283 278 -291 0 +-292 -256 -288 0 +300 126 304 0 +-170 -285 107 0 +227 -288 -296 0 +284 -252 0 +286 291 303 0 +-305 296 291 -254 292 267 -295 278 0 +305 -294 -196 267 0 +288 231 -303 -250 0 +-286 272 -300 273 291 0 +285 -207 292 290 249 256 300 0 +245 191 213 0 +-295 175 0 +246 -298 277 0 +-269 -284 -294 -292 275 0 +281 -275 280 0 +-288 -201 290 0 +282 -254 -304 291 0 +149 -283 -305 269 -294 295 103 -304 212 0 +-292 -220 294 304 0 +-237 297 -275 0 +270 147 223 -272 303 237 -295 296 291 0 +-291 -281 -290 0 +-298 252 -297 -305 248 -276 302 -278 153 0 +-295 278 -298 299 303 0 +304 280 -276 -300 289 0 +249 -290 -299 259 -195 -279 -285 -281 0 +-293 -302 254 0 +300 263 269 -277 232 291 -305 -280 -207 288 -278 297 -301 0 +-25 287 290 0 +301 -304 245 107 -296 300 -305 290 -268 0 +-270 -288 281 0 +-288 -300 -213 0 +-303 300 -223 297 283 274 -272 0 +-303 214 305 0 +218 299 297 -276 -189 216 0 +278 -297 -238 294 -302 273 -300 0 +235 -285 298 273 301 -275 0 +-287 -291 -299 -246 -101 268 -263 217 -295 -298 -236 -305 288 -296 0 +280 305 290 215 -146 0 +-296 -256 -272 0 +-236 -295 113 -290 -299 0 +-252 -295 140 0 +211 -288 274 0 +-104 -289 297 0 +239 -282 289 0 +240 214 281 0 +201 216 274 117 280 0 +296 297 303 -298 0 +-293 -303 288 294 0 +250 282 228 -293 154 0 +-232 295 -304 -228 0 +297 250 266 -232 0 +-288 -301 292 -281 0 +-296 297 300 -293 -209 290 182 -285 0 +303 281 -305 0 +-304 299 265 302 222 0 +297 305 247 163 234 -277 0 +-277 -291 -305 297 -270 303 251 -256 0 +-260 295 -287 -299 -172 276 0 +-289 288 0 +-170 36 -296 0 +-4 -297 248 288 296 -304 273 295 266 0 +304 -261 -299 0 +-296 286 -269 305 266 293 -210 282 0 +-303 298 -271 137 0 +299 -17 232 303 246 294 291 192 281 0 +-291 277 278 298 -100 -281 -239 203 26 205 -237 0 +-299 -289 -293 0 +228 301 -302 291 -287 215 -289 0 +310 265 -345 0 +266 -33 -271 -299 -241 0 +-305 321 -341 0 +-359 282 -350 297 286 295 270 -353 0 +282 -227 292 -291 -317 27 0 +-293 284 -311 333 -332 301 330 0 +328 -290 -322 57 304 350 0 +-196 -325 -294 0 +-269 354 349 325 -344 -320 0 +-281 -220 -293 0 +-280 295 -319 -315 343 318 263 -289 207 0 +274 356 -252 317 0 +-297 -318 -351 301 139 -307 0 +-293 -352 337 0 +-355 342 -336 301 0 +-329 198 -306 -343 319 292 256 295 0 +-297 308 348 0 +-339 -275 -330 0 +322 -321 -286 324 0 +-354 332 329 -247 -305 284 -279 0 +339 303 -347 -290 301 0 +292 -324 361 159 0 +-348 -298 -340 292 -300 278 -356 285 0 +-302 309 277 0 +316 -283 -334 0 +300 273 -304 327 0 +292 -266 -299 0 +347 -290 -346 0 +292 300 358 0 +315 -270 306 0 +-216 312 298 0 +-314 -225 -277 305 -283 0 +-358 -313 280 326 -198 0 +-312 290 -299 0 +-349 -270 303 0 +-361 -245 341 -360 -342 -276 290 0 +323 245 313 -272 -178 353 0 +292 298 -331 -328 0 +314 -294 -333 -323 335 307 352 -292 297 357 0 +338 -301 346 -297 238 0 +189 201 311 0 +-271 304 -300 129 0 +-209 278 274 320 -270 -327 -286 0 +359 290 -119 281 -248 0 +288 345 -309 331 0 +-298 299 -326 -357 0 +-338 351 -316 0 +-298 289 -288 360 0 +-223 -310 -290 0 +298 -246 -337 0 +296 355 -304 275 0 +282 -335 344 -242 -308 0 +-304 340 291 -266 285 334 336 0 +-331 333 335 -207 326 -297 352 0 +237 -301 336 238 -239 293 339 -299 233 335 325 321 -355 0 +-307 271 295 -304 -298 318 302 325 -303 -320 -344 297 -299 -292 328 0 +340 323 338 -302 327 0 +-316 -309 338 321 0 +-316 279 289 -293 190 187 274 0 +250 -335 -302 0 +300 -245 354 268 0 +312 305 -344 -330 0 +295 -305 -320 0 +-315 200 293 0 +135 -285 -322 337 208 346 309 0 +301 -303 -237 -350 331 0 +207 -221 -308 348 -286 -361 -326 -334 0 +-331 -329 -319 0 +301 292 -327 271 -354 0 +315 275 -304 -316 322 0 +199 -241 -358 -291 -356 345 336 -128 -309 346 284 301 -274 -197 -271 295 0 +135 277 323 0 +294 -358 326 0 +232 -334 -332 301 0 +351 -352 305 278 -289 0 +340 -355 316 -289 -116 358 -290 0 +330 327 248 0 +-290 241 -334 -323 -299 0 +249 278 201 -269 -304 0 +333 -318 342 329 0 +324 343 311 0 +-302 -318 353 0 +-285 306 323 0 +-293 -349 -244 291 -352 0 +353 349 -284 272 311 -225 -357 313 0 +261 315 -333 0 +298 -313 -345 296 -179 -292 -323 -316 0 +304 -359 0 +307 -321 -346 -302 -313 335 0 +-267 -325 342 -301 -348 0 +218 -275 340 297 -233 328 286 320 0 +-248 -273 291 -326 0 +292 283 -340 0 +292 -245 313 0 +129 -225 107 -291 0 +-344 -329 324 338 0 +-360 326 339 0 +303 297 -324 268 0 +161 -317 -296 190 320 359 -336 0 +353 330 -257 -296 -321 274 -333 0 +-295 305 345 0 +289 -290 293 0 +360 355 -310 -269 258 266 0 +305 298 -318 -352 0 +305 -295 -6 -340 -296 265 -352 301 337 -318 0 +328 292 285 0 +-240 328 304 -278 -317 -319 0 +-325 -311 251 294 343 -273 0 +-254 209 342 354 0 +295 -316 -272 304 -318 0 +-316 -348 190 0 +290 -342 332 311 -309 0 +-334 341 -251 302 -301 273 -293 0 +296 304 -351 0 +-325 -267 198 -328 352 297 342 0 +-299 204 342 0 +-235 301 343 -91 -321 309 -358 0 +299 112 360 295 336 -291 309 0 +319 352 -270 0 +309 -291 -304 289 310 316 0 +276 -333 334 0 +256 310 -337 333 -340 -334 276 338 346 -344 -140 -314 -273 0 +329 354 316 -318 -321 236 266 -260 304 -355 -340 -228 297 -327 0 +-228 305 -271 -302 -319 0 +-272 -306 -281 0 +323 320 -349 299 311 293 306 296 -344 0 +339 -148 -347 188 328 -285 276 0 +-310 -311 295 -355 -327 0 +-335 277 -289 0 +268 -287 -180 -317 -274 -297 359 -138 -327 357 0 +-312 -264 -309 0 +286 -291 305 -347 -311 292 0 +293 -286 -333 306 0 +338 -300 303 -335 -347 290 -291 0 +-286 -131 262 0 +-108 -248 -332 0 +231 -280 -354 -329 0 +295 320 -278 0 +311 327 -314 -299 -347 247 0 +355 -319 -360 -348 -328 -294 -196 0 +-220 -206 341 358 0 +-216 301 355 322 0 +347 -355 333 -203 229 290 328 -271 316 -294 -340 -208 0 +315 321 -358 302 -333 0 +301 345 218 -327 0 +299 279 -352 -348 -317 -333 0 +194 -228 -298 -347 0 +236 -359 309 -296 307 -266 0 +290 -273 298 158 348 -318 0 +-99 -307 -318 289 327 0 +-338 -346 359 299 -305 289 0 +286 299 -355 267 0 +-302 -315 265 -331 0 +306 303 -325 324 -305 -356 -269 333 319 0 +329 -295 -275 169 0 +-308 -198 -194 0 +272 -358 -273 312 0 +-309 314 -336 -269 289 -345 294 300 291 0 +-358 -236 221 234 -340 190 305 0 +218 -302 330 341 352 300 0 +-360 279 -333 0 +298 303 -52 0 +-322 314 337 -297 -352 318 331 0 +293 270 -359 0 +-298 -303 -278 -287 -349 -270 0 +308 -284 -312 -341 -305 0 +302 -312 321 0 +-344 -354 -302 0 +344 247 310 329 289 0 +-320 248 -290 0 +300 -307 272 -302 332 0 +311 295 291 -260 339 -293 -315 0 +319 -352 295 -281 0 +251 -252 304 0 +335 -332 -300 292 0 +-300 -354 332 0 +-359 -127 -323 -297 0 +327 267 -290 0 +289 -292 -227 -300 192 -281 348 322 280 312 0 +327 305 -351 -350 328 326 353 0 +-278 285 -324 314 0 +-308 279 -352 0 +228 331 312 304 333 0 +186 314 305 -322 0 +332 359 -312 347 -321 -296 0 +-302 -319 -360 282 0 +-297 314 295 289 0 +-349 352 -351 0 +309 220 -215 0 +-291 237 260 -292 0 +279 -293 -298 0 +-353 290 -349 -347 0 +-359 311 310 281 309 336 0 +-293 -314 -248 0 +322 -263 -290 -344 258 0 +-287 -326 174 -303 -266 0 +-344 311 272 268 0 +330 310 -303 316 -270 355 314 313 0 +-294 301 -359 0 +-301 296 -321 337 -312 331 320 305 -281 0 +-277 -294 267 0 +-301 -337 216 0 +-163 303 319 0 +-332 291 292 296 274 0 +337 -341 -232 321 0 +314 -322 -274 0 +-292 317 278 0 +-303 292 314 0 +-274 341 -269 0 +-274 329 334 326 341 -297 360 0 +-330 -337 -317 0 +267 339 -351 332 327 -299 300 0 +350 277 -340 357 0 +-290 277 -295 0 +293 284 -337 345 308 0 +-324 -309 -241 -280 0 +-358 303 -353 -208 0 +-325 -192 -275 0 +354 -297 -307 0 +-308 -327 297 0 +-194 -322 311 -290 -315 0 +-275 321 -319 0 +315 -291 -359 -294 -295 0 +-241 -338 -353 293 0 +-359 -291 -300 0 +-113 321 247 0 +359 229 292 333 -335 0 +284 269 -306 297 -293 -300 327 0 +312 302 -309 -310 0 +299 332 358 -349 0 +312 277 -318 -309 268 -332 201 -310 -272 0 +133 147 356 0 +-335 337 -334 0 +-297 -324 -340 0 +252 325 -280 0 +-347 -309 -329 328 236 -266 296 271 -301 -269 307 0 +294 359 316 0 +-324 -298 -236 -291 344 313 0 +-332 335 -320 269 0 +308 296 321 298 0 +-348 298 -358 345 0 +-297 339 329 -171 358 -262 306 -346 278 0 +-300 334 -355 146 0 +187 -334 257 318 346 0 +-269 -307 288 -304 -279 0 +292 -259 303 289 341 -290 311 0 +265 312 337 -313 0 +-229 -323 266 0 +302 335 -196 197 0 +319 -342 303 0 +-294 -320 352 306 0 +293 358 -298 0 +278 -324 294 -313 0 +335 292 278 280 262 -312 0 +-340 297 300 0 +-284 -339 -285 0 +283 -218 -312 -230 0 +-307 165 -297 -194 312 304 314 0 +-245 -337 273 -359 0 +322 289 337 301 293 -341 304 0 +350 303 313 0 +345 -308 -302 -338 0 +-232 347 -326 196 0 +322 278 277 289 303 337 0 +-298 284 342 -346 287 0 +-325 294 301 0 +361 346 359 0 +-331 344 342 347 0 +269 -344 303 291 0 +-292 -327 359 0 +354 -338 330 0 +317 359 297 267 126 -322 -296 0 +324 -352 268 -190 308 329 0 +287 -212 -345 0 +320 -360 -293 299 0 +326 -361 315 -302 328 -352 0 +-304 311 354 306 0 +351 -336 -316 -317 292 0 +297 -202 -318 -216 -295 0 +309 -16 269 314 0 +309 -285 295 -339 0 +347 239 327 -351 0 +-262 -298 266 -328 302 -304 -341 -332 0 +-297 341 307 0 +-207 -354 280 0 +-338 -300 197 0 +-347 -234 -356 297 303 -326 272 0 +-346 333 -345 0 +214 -323 -312 301 0 +323 306 278 -354 330 -270 303 0 +-304 293 369 0 +270 -385 -294 -366 347 -410 0 +-311 -299 -341 0 +187 -382 -200 -409 -392 0 +388 18 -371 -407 0 +420 -375 -284 0 +278 -362 305 0 +382 -254 306 0 +354 389 374 406 0 +309 354 368 -413 0 +293 -364 -391 -289 0 +334 386 387 -303 0 +-352 397 396 401 371 376 0 +383 -386 -281 358 0 +-318 391 365 0 +-284 -414 359 -358 300 0 +223 -365 -315 295 -300 0 +-340 -317 -54 -384 0 +-222 -286 289 0 +404 344 -268 -367 0 +412 -302 -397 -305 395 350 398 0 +291 -363 419 0 +393 -415 -281 0 +-276 318 414 -404 0 +418 -380 -293 -290 381 -357 0 +-291 -408 -388 301 -405 283 258 -298 325 0 +362 291 297 312 -336 0 +-416 -372 -378 0 +-321 375 416 0 +-390 373 -376 -419 367 0 +-403 325 -273 399 -395 394 -383 0 +268 -401 408 0 +-387 -331 366 364 -357 344 0 +352 299 -285 0 +296 -396 355 -400 -398 328 405 402 372 -399 0 +407 -369 403 -389 -370 0 +390 -406 -368 339 -418 -379 -225 242 -394 -283 -420 0 +370 361 392 378 -393 409 -374 0 +327 411 -339 415 -402 379 -381 0 +377 -284 -411 0 +300 359 -412 283 0 +417 413 400 342 363 385 380 -373 384 0 +-377 340 299 -417 -293 -289 410 0 +378 308 318 0 +323 -360 -215 0 +-385 397 365 -415 -295 17 0 +413 -339 368 0 +358 326 371 366 0 +414 358 399 0 +355 405 -292 293 0 +-404 378 375 0 +323 268 -379 0 +-411 -388 -331 402 0 +-224 -292 332 401 -315 -373 309 -200 400 0 +-419 -418 306 300 296 355 -293 0 +206 366 271 419 403 -393 -406 0 +392 297 388 -280 -394 400 374 -325 366 -306 -356 -263 0 +-367 414 -384 -329 -337 0 +225 -273 -374 383 0 +-389 -404 -270 0 +-293 382 369 -275 384 -374 394 -314 370 -321 0 +203 292 -299 0 +-323 -368 396 413 0 +381 -375 -406 0 +407 -292 -311 231 0 +-365 383 345 0 +334 405 -364 -363 0 +-367 -365 373 0 +324 -382 289 -399 0 +-417 372 -344 -419 -298 0 +417 -365 -266 0 +303 -387 356 -411 0 +-416 -354 -407 -357 -334 -420 415 0 +-397 -282 420 346 338 0 +-405 -358 -406 392 283 394 408 -379 311 0 +298 -361 -195 0 +411 -395 -330 412 0 +-315 -372 403 298 -306 0 +-365 -383 353 313 155 408 0 +323 288 -370 0 +305 358 376 0 +327 -321 -375 0 +-352 299 -381 -415 0 +-295 407 341 0 +-328 -413 337 0 +285 -329 373 370 383 355 0 +417 404 348 -309 0 +-338 -300 334 383 -369 0 +-189 -392 -389 0 +-388 -190 367 379 0 +-411 -359 372 -366 0 +313 -332 295 -380 0 +-321 293 -391 0 +312 -363 -362 -399 0 +-346 398 402 -333 -409 -308 0 +-356 -339 -301 0 +405 -361 -278 384 0 +329 380 -369 -132 0 +-400 327 -363 0 +289 -312 290 -400 0 +-290 275 378 -374 0 +367 -388 368 0 +350 -416 343 0 +405 271 267 355 289 -292 0 +-395 328 -332 0 +-299 335 314 409 370 -397 -411 -331 -288 0 +-320 -382 380 0 +-370 -294 304 286 313 -322 320 -375 0 +253 307 393 290 324 -368 -385 -374 293 -328 373 0 +-332 -392 417 407 0 +-365 406 369 0 +299 295 355 -390 273 -188 192 -417 215 330 0 +-193 -327 408 346 -224 -351 402 0 +389 371 418 0 +-287 -387 338 -383 401 -302 296 212 -364 0 +314 375 360 382 371 0 +-352 380 210 266 406 0 +-399 -400 382 388 -410 0 +-352 376 -398 -238 -341 407 -394 0 +293 -384 -377 -411 0 +416 369 -398 -391 378 -383 366 -264 -392 -306 0 +398 300 271 310 -371 0 +413 332 -395 323 -368 366 359 358 0 +-406 -420 373 301 -291 0 +-370 -247 -330 0 +-395 376 -287 -323 315 0 +306 -415 -338 393 -303 370 0 +-354 -300 -399 0 +-371 280 -412 0 +-367 -255 236 410 -330 -336 -380 385 -376 0 +139 409 387 -346 0 +418 -286 367 0 +293 -331 -297 -363 -378 323 413 -249 -277 -268 -269 0 +-369 -417 -363 -374 0 +-182 -317 -262 -302 0 +-411 -347 -383 0 +275 420 -388 -409 0 +-385 -417 275 332 0 +-374 -378 418 370 0 +411 239 399 -364 316 -381 -310 297 0 +374 -250 -393 0 +309 394 -407 0 +376 -366 -362 -392 0 +350 -298 352 308 -321 -306 -325 0 +-214 -405 401 373 333 0 +279 415 386 0 +-370 -306 -407 -400 313 -406 0 +-374 -398 371 0 +269 -404 -282 -393 284 330 0 +321 406 -302 -381 0 +-101 -361 318 -402 -277 -393 0 +392 404 339 -412 0 +377 -413 -278 301 398 418 406 391 -350 -375 400 0 +295 414 239 0 +379 289 388 415 211 0 +404 375 0 +-344 -263 417 367 0 +343 272 371 416 284 412 -373 0 +-323 327 -295 416 0 +298 325 346 314 319 0 +419 220 377 290 393 -320 -409 0 +348 -364 295 412 358 0 +289 -382 288 -369 -398 297 -416 -304 376 -414 -409 335 0 +-390 -343 334 0 +-379 -240 -355 -295 0 +-306 386 363 0 +396 368 393 -410 0 +352 278 -403 408 -354 340 0 +-420 293 369 -374 0 +341 -415 -409 -321 0 +413 -416 -297 342 -372 -244 415 291 268 237 274 -385 240 -283 0 +-384 410 300 0 +367 -202 395 274 336 -298 366 330 -329 -287 0 +-409 384 285 274 -268 311 -352 -359 -394 99 414 203 358 341 -326 -398 290 -353 -400 376 0 +368 -387 -410 0 +351 -377 -301 61 0 +411 -303 -419 -290 0 +328 267 311 414 375 0 +332 323 334 0 +-290 388 326 308 245 399 -358 -396 239 339 0 +-304 -386 -226 -272 0 +-320 324 -395 -348 0 +-345 368 -407 0 +-380 -408 0 +-403 412 -311 -293 -304 -158 350 396 0 +-401 405 376 342 292 0 +-296 289 297 -331 0 +405 418 289 0 +-417 -312 305 0 +-328 267 277 406 363 -413 -392 -419 -359 418 322 -332 -398 0 +-392 -372 -353 0 +419 378 -375 377 324 333 -319 334 0 +-333 203 -378 -303 -354 383 -352 379 0 +-364 -203 396 0 +402 228 -326 -331 0 +-296 -374 384 407 -398 0 +380 -346 353 -377 363 -389 0 +344 420 288 -335 301 0 +-361 -236 280 0 +-274 393 -318 -316 0 +399 416 392 405 387 0 +384 -409 -416 0 +402 -369 -418 -377 315 -381 -405 0 +-371 -266 -386 0 +300 -213 -302 -404 0 +-325 305 392 318 0 +-418 -419 266 -385 -391 0 +-364 306 -387 -335 0 +-326 292 -359 401 0 +291 -301 413 -313 296 0 +-412 361 -342 0 +-313 305 -381 0 +331 419 -111 0 +414 319 380 -389 -374 0 +317 418 -366 0 +-212 414 -401 362 349 294 0 +344 388 -394 -287 -296 0 +298 -327 -259 -290 268 0 +390 -371 -348 -420 -315 -378 370 -368 0 +417 364 -389 0 +-384 340 -389 0 +-237 -414 303 0 +279 -417 272 -343 -413 376 -380 0 +-398 -384 420 413 -367 280 -305 0 +-390 -293 407 -380 -400 -416 391 0 +-377 301 -389 -289 349 -354 -375 383 -398 0 +404 355 -389 0 +-369 383 -324 -337 386 -417 -283 289 0 +379 277 -393 0 +-367 372 324 -393 290 -371 -285 0 +-347 411 -376 0 +-380 341 363 411 305 376 0 +351 -411 -419 415 274 -267 0 +-385 -357 367 323 0 +288 397 -289 273 0 +-294 391 -403 -371 353 -152 0 +314 396 -417 0 +-316 268 396 -406 0 +-292 -327 289 319 0 +-393 400 -371 0 +388 278 -277 0 +-420 292 -401 276 -394 0 +-389 -334 399 379 -279 0 +402 287 328 -390 -418 399 341 412 -370 0 +279 -369 381 309 -374 -354 0 +370 -420 -269 0 +294 343 -353 0 +371 -391 -38 -417 -375 363 0 +398 -304 -288 -409 -416 0 +291 371 297 0 +407 -295 380 356 306 350 0 +-384 302 313 -360 -379 -367 369 0 +-376 418 -343 0 +-394 -376 -294 312 -404 373 0 +-336 -295 -267 0 +-382 325 0 +-420 308 -373 312 0 +379 330 -318 387 -386 0 +-354 -412 319 0 +341 420 -400 0 +327 289 -329 0 +300 -388 406 -321 0 +312 -331 311 280 387 -369 -354 290 0 +-368 323 400 0 +-394 382 -396 0 +305 -367 379 0 +-297 418 197 324 -419 337 -375 0 +-355 -11 379 0 +279 349 291 381 398 0 +306 -416 -387 377 0 +292 -340 381 -279 0 +385 -305 408 0 +343 -330 -369 -309 -395 364 -411 0 +-397 389 -371 401 409 -419 0 +317 273 -299 245 0 +301 383 -420 -392 0 +388 -335 382 0 +-303 -295 -419 -342 -353 416 275 -320 356 336 0 +399 304 -391 353 322 -303 -388 0 +-342 -402 360 388 0 +-369 407 290 299 -302 409 349 0 +-363 392 380 377 0 +393 365 311 0 +-376 412 357 371 -384 0 +381 313 363 0 +418 -321 -343 0 +350 371 359 -212 399 -394 -213 -368 -374 288 0 +-345 -376 -401 420 -393 280 277 -368 0 +395 -413 298 0 +-417 406 418 -363 0 +305 -354 414 0 +330 338 208 -362 384 294 0 +305 385 364 387 0 +-381 -369 -296 -372 0 +252 293 290 -280 150 385 194 0 +416 370 391 0 +332 401 402 -365 -413 -409 -396 -381 -387 -292 390 -384 0 +-395 350 -309 0 +-417 -294 379 0 +-343 377 357 0 +-346 378 404 -120 -405 311 391 0 +352 -419 -384 -372 -407 0 +-274 -280 -369 0 +-388 407 -287 0 +404 -332 -279 -367 297 -420 -415 0 +418 -283 -339 -412 0 +365 -287 403 -313 387 -357 -319 -310 307 0 +397 -366 -363 0 +211 -399 340 0 +271 -291 118 379 0 +-414 374 336 -306 -409 -399 0 +380 -419 -300 -405 386 362 0 +-413 336 228 386 360 271 0 +-368 -305 380 0 +-287 327 -349 -407 -381 369 0 +-323 228 -305 329 -310 400 -392 296 340 0 +-355 -390 299 -375 -387 -341 0 +362 228 -409 0 +373 -299 297 0 +389 340 -378 0 +419 376 319 0 +298 -301 -413 -231 -366 337 -391 0 +-339 -415 288 0 +234 -280 333 -297 377 0 +264 274 -224 394 294 0 +-293 -420 -375 0 +304 -345 287 -412 274 0 +364 -388 304 0 +294 -370 391 0 +397 346 322 0 +399 405 -418 379 -363 0 +-398 404 -271 289 -326 419 331 -318 -376 -396 -270 384 -378 0 +269 -379 -364 395 0 +378 290 -353 -325 -332 386 0 +376 -409 391 0 +-381 276 312 -390 -375 0 +298 301 361 382 315 -270 -400 -410 0 +287 -374 304 -342 0 +-255 -369 -412 0 +371 -306 -298 335 268 0 +338 -298 365 0 +328 202 -366 0 +-377 -194 319 0 +287 373 347 0 +105 -410 -403 385 -302 -343 0 +380 319 362 -324 0 +299 388 -357 275 0 +340 -272 -302 0 +363 -378 -370 413 0 +-379 -409 419 0 +286 301 -348 0 +-416 250 386 350 337 285 -224 329 0 +-369 -290 278 0 +-403 -396 -353 -349 369 387 0 +361 -394 393 -362 0 +349 -330 415 301 -261 -416 325 305 0 +397 205 -232 0 +197 -310 -416 -370 -375 -311 0 +337 -366 326 -382 0 +-293 -413 -379 0 +-324 376 397 -400 -298 392 -394 0 +-160 -399 -340 -376 406 -357 0 +340 -377 412 -175 0 +-372 -287 -378 -362 -299 399 390 332 354 368 -389 280 0 +266 -229 -391 366 -273 404 363 413 305 -275 -376 0 +-373 351 -347 412 0 +309 344 -378 0 +407 -302 -360 376 358 -277 393 -314 0 +405 -399 391 -374 -358 0 +329 293 -321 -353 352 418 -309 331 0 +-216 -399 330 -418 373 -369 0 +330 -324 -377 0 +307 -415 -227 -386 -409 277 -371 0 +402 239 301 368 420 -321 281 0 +372 -408 368 -415 0 +364 222 -342 0 +369 -419 368 -403 -354 0 +388 411 271 356 305 0 +-300 -322 301 -377 398 354 0 +394 272 391 0 +314 292 330 -276 -293 -388 373 264 0 +397 -418 -311 409 0 +-266 390 362 0 +330 -410 -382 0 +-284 316 357 -348 -379 0 +-383 293 -400 297 -353 0 +390 -418 192 -230 410 -407 -362 0 +267 388 -298 -390 0 +386 -410 381 -329 -228 302 401 385 -420 414 -388 -373 -395 392 -379 0 +-353 -296 -389 326 -403 -354 0 +348 225 -293 -385 0 +-386 -396 326 0 +316 -410 -299 190 -288 -247 0 +351 -396 -341 414 -301 0 +316 -345 -271 0 +-292 336 283 0 +402 -395 -295 296 0 +377 307 -361 0 +-416 -290 -353 396 331 -407 351 297 -337 -405 0 +292 395 331 351 398 301 0 +-399 292 -420 365 356 0 +370 -416 306 0 +317 -362 -310 0 +-366 -311 -297 -416 0 +383 -384 -371 0 +411 401 385 280 0 +360 325 -366 -281 350 418 378 -377 0 +289 299 342 -359 395 240 270 275 -398 -340 0 +-408 210 371 289 -283 -364 322 -400 0 +-351 241 -269 416 0 +400 -384 -377 364 -411 0 +313 -300 369 394 -402 0 +381 394 -358 -289 -369 -227 304 0 +409 -346 364 -396 0 +-197 364 -392 -288 -262 0 +304 380 -313 323 0 +397 -37 -194 262 370 340 0 +-299 397 -394 0 +333 380 408 0 +402 399 -398 -146 -407 0 +406 -409 301 371 419 389 0 +349 -326 350 323 0 +-404 -412 -198 -402 -326 375 -379 0 +-298 -395 325 -378 -334 0 +-255 -391 413 386 0 +287 391 315 405 -299 0 +323 360 370 0 +-390 -295 115 -366 0 +414 373 -352 0 +354 320 420 -414 405 373 413 0 +419 327 -384 0 +412 -368 -373 376 -394 407 0 +-298 317 -367 -305 0 +343 -400 -357 -315 0 +-372 -288 420 0 +290 -369 -370 406 284 375 -395 0 +-417 -353 -261 291 0 +-306 -288 393 0 +353 356 -375 382 0 +331 382 -417 0 +-388 406 -372 304 -339 0 +405 -301 388 -319 325 365 341 408 0 +-378 406 -393 -269 0 +-289 419 -380 0 +-374 360 -263 -386 288 410 -407 0 +257 405 -343 290 -303 0 +-289 383 -396 417 0 +339 304 284 -289 -365 0 +346 -374 379 211 364 -394 -338 0 +291 274 -406 0 +-359 -397 327 -389 -368 -350 380 -257 339 0 +418 -313 -378 -236 0 +365 277 -352 -275 -366 416 414 376 0 +-406 315 364 367 323 0 +-348 372 415 324 -406 0 +-298 -369 257 306 377 0 +394 416 -306 0 +-334 374 -399 317 342 300 0 +-368 343 -369 0 +-371 316 -344 0 +338 -254 355 331 353 0 +412 301 -418 0 +353 380 -290 0 +288 410 378 -370 0 +-396 313 262 0 +378 415 350 -315 -329 0 +384 -396 311 -369 0 +400 -314 316 359 0 +367 373 306 401 0 +-303 -419 192 0 +295 385 354 -298 288 362 -382 -388 0 +331 117 -387 305 -300 379 347 0 +322 363 409 254 407 0 +-376 366 -419 0 +-288 -343 -381 379 339 357 336 297 417 0 +-382 -309 -345 0 +395 390 365 334 -342 -267 0 +392 -369 -402 102 0 +377 411 336 -356 0 +-368 -409 -392 0 +-344 306 -420 -388 -284 334 0 +-419 -259 343 0 +-388 344 -297 -366 0 +-409 405 -302 315 420 -411 -312 390 0 +406 -376 -365 383 -266 -272 -403 0 +393 352 -251 -395 -326 -397 -420 -377 266 388 0 +368 -314 -272 0 +385 -302 365 0 +396 -203 -329 -414 0 +-285 -362 186 399 -295 349 0 +390 -383 305 0 +-363 319 -414 -397 -230 -417 222 -383 -122 400 -407 389 347 -386 -333 0 +-398 -378 322 128 0 +304 -384 418 0 +-388 -290 -298 371 0 +417 -389 320 -281 0 +-346 399 -406 0 +303 384 -379 0 +-311 387 309 0 +-380 351 -376 416 -283 401 402 382 -407 0 +320 -370 318 414 0 +347 -391 419 0 +-357 -351 -291 80 336 0 +-420 401 -411 0 +409 -404 337 244 -301 -392 0 +-388 316 301 -415 420 -346 0 +-377 -413 -376 285 0 +376 -388 -335 -409 0 diff --git a/cnfs/fuzzcheck.sh b/cnfs/fuzzcheck.sh index 6bfb9a5..f15765f 100755 --- a/cnfs/fuzzcheck.sh +++ b/cnfs/fuzzcheck.sh @@ -83,7 +83,7 @@ do head="`awk '/p cnf /{print $3, $4}' $cnf`" echo "($SECONDS s) [runcnfuzz] bug-$seed $head with exit code $res" - echo "($SECONDS s) To reproduce, run cnfuzz: ./cnfuzz $seed > reproduce.cnf" + echo "($SECONDS s) To reproduce, run cnfuzz: './cnfuzz $seed > reproduce.cnf' and '$prg reproduce.cnf'" echo $seed >> $log echo "($SECONDS s) out" cat $out diff --git a/cnfs/pcasso.sh b/cnfs/pcasso.sh index 98b3f8c..6092515 100755 --- a/cnfs/pcasso.sh +++ b/cnfs/pcasso.sh @@ -1,3 +1,4 @@ # gdb -return-child-result -x gdb-script --args \ ./pcasso -model -child-count=7 -threads=3 \ + -no-lbd-min \ $1 diff --git a/cnfs/timeout-1323809196.cnf b/cnfs/timeout-1323809196.cnf new file mode 100644 index 0000000..ff3796a --- /dev/null +++ b/cnfs/timeout-1323809196.cnf @@ -0,0 +1,4308 @@ +c seed 1323809196 +c width 52 +c scramble 1 +c layers 16 +c equalities 17 +c ands 0 +c layer[0] = [1..51] w=51 v=51 c=184 r=3.61 q=0 +c layer[1] = [52..93] w=42 v=93 c=336 r=3.61 q=0 +c layer[2] = [94..126] w=33 v=75 c=329 r=4.39 q=0 +c layer[3] = [127..164] w=38 v=71 c=231 r=3.25 q=0 +c layer[4] = [165..181] w=17 v=55 c=235 r=4.27 q=0 +c layer[5] = [182..199] w=18 v=35 c=124 r=3.54 q=0 +c layer[6] = [200..242] w=43 v=61 c=261 r=4.28 q=0 +c layer[7] = [243..261] w=19 v=62 c=223 r=3.60 q=0 +c layer[8] = [262..305] w=44 v=63 c=211 r=3.35 q=0 +c layer[9] = [306..349] w=44 v=88 c=392 r=4.45 q=0 +c layer[10] = [350..387] w=38 v=82 c=287 r=3.50 q=0 +c layer[11] = [388..416] w=29 v=67 c=225 r=3.36 q=0 +c layer[12] = [417..461] w=45 v=74 c=331 r=4.47 q=0 +c layer[13] = [462..496] w=35 v=80 c=316 r=3.95 q=0 +c layer[14] = [497..536] w=40 v=75 c=256 r=3.41 q=0 +c layer[15] = [537..581] w=45 v=85 c=310 r=3.65 q=0 +p cnf 581 4285 +-46 26 -17 -36 0 +45 19 9 -25 34 6 0 +42 -21 40 24 -5 39 0 +7 -14 51 -31 28 2 0 +15 -34 38 -22 -37 -26 -24 0 +-15 30 25 -18 17 0 +-33 14 -48 -49 -1 20 10 0 +-6 23 47 0 +22 -44 -12 0 +-10 8 -38 -9 0 +-50 46 33 0 +-41 -45 3 -28 4 27 5 37 0 +41 -20 -42 -35 0 +-51 11 36 0 +-7 -13 -27 0 +43 -40 -11 -47 1 0 +-2 -4 32 35 31 0 +-29 -8 -39 0 +-23 18 29 0 +-16 50 -30 0 +-19 48 21 12 49 -43 16 13 -3 44 -32 -15 2 18 -23 37 0 +16 -42 -29 43 37 0 +-35 6 30 0 +-7 39 -43 0 +-28 42 -11 0 +24 -29 47 -27 44 -34 30 15 11 -21 0 +30 -51 -26 0 +-3 40 -43 -24 0 +31 -28 9 29 -24 0 +-1 -4 -7 29 0 +4 -49 -7 -50 -29 18 9 -38 0 +-19 4 -32 16 11 -35 51 -50 0 +21 10 14 0 +5 -3 30 -22 -10 0 +43 27 -20 44 19 -45 0 +-45 35 -40 -16 0 +37 38 30 -27 -19 3 0 +-46 24 -16 0 +7 -11 -37 48 0 +-36 6 -47 0 +22 -18 -14 0 +-44 50 -14 49 -5 0 +36 28 22 15 0 +14 26 -29 0 +20 -15 38 45 0 +-3 41 -15 0 +18 -47 -49 19 0 +-49 46 -34 0 +-19 28 -35 15 0 +16 22 -28 -38 25 0 +-21 6 38 51 0 +-14 -35 1 -11 28 40 -45 -34 -19 0 +-41 -35 -24 19 42 0 +-36 -37 -44 -43 19 -24 13 0 +3 5 -47 9 0 +42 26 44 37 -11 -47 0 +40 32 -35 1 0 +43 -27 48 -13 42 -7 0 +2 -42 -11 -40 -12 -32 18 10 0 +31 38 25 0 +25 -48 37 0 +-46 -8 6 -30 50 0 +47 -28 34 0 +34 22 -8 0 +9 51 45 0 +19 17 28 34 2 43 35 44 14 40 0 +-8 -18 45 30 0 +48 -6 45 0 +4 5 -34 0 +-51 -23 13 32 50 0 +19 -39 32 0 +14 -50 -1 31 0 +24 -5 0 +34 -21 46 -11 0 +28 -8 12 9 31 -22 -14 0 +-18 23 -38 0 +29 -4 -17 -46 -28 0 +2 -30 -40 33 0 +39 15 17 0 +7 11 51 42 0 +43 12 -5 6 -23 40 -19 46 0 +31 -35 -13 0 +38 3 -5 -44 0 +-7 -1 -24 -26 0 +48 6 -49 -28 -38 15 0 +-33 -8 -40 -6 0 +25 -16 17 -34 -29 0 +-46 -17 29 -41 -19 -11 39 14 -37 -38 0 +-20 6 -5 -31 16 0 +-7 3 -34 37 27 2 -10 20 41 0 +-30 -20 37 2 0 +49 -43 4 -39 30 0 +-51 -6 -33 0 +4 29 46 -44 -19 0 +16 -22 -28 -30 -8 36 21 -6 0 +-25 11 -24 32 0 +5 -3 -16 -32 0 +36 25 -7 0 +23 -38 -24 0 +-1 -11 -20 4 0 +44 3 1 -33 0 +15 20 -7 -36 -24 -49 0 +31 1 12 -35 -37 -11 50 -33 16 0 +-3 -9 10 31 51 46 0 +-5 -24 3 -25 -23 8 42 0 +45 -21 10 0 +36 34 -37 -16 0 +-45 48 -30 0 +42 3 -6 0 +1 -44 -38 0 +-44 -5 35 0 +-36 -27 -3 20 -28 33 0 +8 9 37 42 0 +30 39 -13 -27 0 +-10 45 29 -20 42 0 +-25 39 -43 30 46 -4 0 +-11 -19 14 18 -27 40 0 +-32 1 50 19 28 43 -4 20 0 +-43 30 -27 -36 0 +-3 -18 -41 0 +-32 33 -16 4 0 +10 -46 20 17 0 +-47 40 -2 9 0 +34 -12 24 33 32 -27 44 9 -8 4 0 +-29 -43 13 22 -2 0 +-25 -40 0 +-20 1 33 23 10 0 +18 49 37 0 +-38 32 17 0 +29 11 -4 39 46 0 +42 39 36 37 0 +-42 35 -30 12 -14 -36 47 0 +28 45 -39 0 +-23 10 -43 0 +-32 6 -2 -9 20 21 -27 -44 -4 -34 -50 0 +-21 19 17 47 13 50 0 +19 36 -30 0 +-46 -11 29 -27 0 +42 -43 -1 33 -23 26 0 +-4 -19 18 0 +-51 -30 18 -3 0 +-35 36 -50 11 38 12 -25 -9 8 0 +49 -35 -33 0 +-17 -20 29 0 +-13 -33 43 0 +-51 -16 -49 -14 48 40 -6 -39 -10 0 +-7 46 -41 -2 51 9 0 +43 25 16 38 50 0 +-20 17 -34 -37 33 38 -28 -15 -36 -13 0 +26 -3 28 -45 46 -41 0 +-34 17 1 -45 4 0 +-35 -29 20 -37 21 0 +8 -15 -35 -37 0 +-21 -10 -50 0 +17 19 11 -8 47 5 34 0 +-46 12 36 22 0 +33 -40 -14 7 -10 28 0 +-49 -37 -1 5 -2 33 0 +-36 -30 -22 -31 -43 29 1 0 +47 -44 25 -2 -32 17 0 +45 9 11 -32 12 -41 -47 0 +-43 -27 -7 31 10 3 -16 0 +-34 -26 -10 37 -48 -17 -8 -44 0 +14 46 -23 0 +6 -51 20 0 +30 38 49 -51 27 2 0 +18 -4 6 -25 0 +37 27 48 -40 13 0 +-17 -4 45 -34 0 +-34 41 -28 0 +16 43 -24 -17 0 +-40 -2 -12 -20 0 +-8 15 22 0 +9 -22 -40 0 +13 -9 0 +-27 33 16 0 +10 -37 33 14 -29 -38 48 0 +-51 16 19 0 +1 26 -19 0 +37 -7 19 9 0 +-29 42 36 47 12 0 +-46 -41 8 -51 22 0 +-23 17 13 22 0 +31 22 -48 0 +-33 -71 -58 69 -72 77 67 36 -40 -76 29 0 +73 -92 -87 -91 0 +-19 -70 14 0 +-13 22 -65 -89 0 +-52 29 -80 0 +-62 -79 -48 71 0 +-59 -30 -77 29 -21 56 0 +74 48 52 0 +-15 -26 -53 75 0 +54 83 -88 -69 -74 0 +58 89 -93 0 +-57 -17 8 10 -63 0 +61 37 -67 0 +35 -55 22 40 0 +16 -60 -10 21 0 +-24 -7 88 0 +-23 19 3 0 +-37 -15 27 -50 92 -48 0 +55 -41 10 30 -86 0 +57 -47 -61 -32 65 0 +14 28 37 41 0 +85 -6 68 0 +-3 33 7 45 0 +27 36 3 30 87 -78 0 +60 9 -82 4 -10 29 0 +51 -54 40 -49 13 47 50 0 +37 -81 90 62 72 66 78 80 -83 0 +-11 -43 76 0 +-85 -29 -73 9 82 -66 64 22 0 +24 -90 41 0 +5 13 81 1 3 6 59 63 70 0 +53 -68 93 0 +-84 15 79 -56 86 -20 0 +33 -27 -44 23 41 -64 0 +-3 91 42 0 +-44 -75 84 0 +37 -33 -47 61 -73 0 +14 -73 -22 -55 0 +93 -80 41 -86 0 +-92 52 -36 21 65 0 +4 -44 11 0 +-13 60 -66 -62 0 +60 49 -42 -1 71 -22 44 0 +-63 71 -11 -39 0 +48 35 -12 0 +37 -52 -43 -62 -55 2 0 +-52 -38 -48 79 0 +30 16 -54 -83 -49 81 0 +77 -26 -65 0 +15 1 51 -8 0 +55 -89 -7 58 -64 0 +-46 -8 14 54 36 0 +-89 1 -13 -9 0 +85 -84 -2 0 +31 -44 -90 0 +60 -69 5 59 -44 0 +5 69 -87 68 0 +53 6 -75 -63 -24 30 -70 72 -25 -81 0 +-56 -63 47 0 +71 78 -31 0 +51 -17 56 0 +44 65 -57 -15 -56 -72 0 +-63 41 -34 0 +85 7 -58 54 -12 0 +52 58 -66 37 -42 0 +67 12 72 55 43 -59 0 +-92 45 12 0 +-23 89 -53 0 +16 18 -55 7 24 -19 0 +28 -68 -56 47 12 0 +50 30 3 0 +-72 9 33 32 0 +-93 -76 -39 -38 9 0 +-41 -14 39 -84 55 0 +-52 82 80 0 +84 73 92 0 +53 74 -48 0 +61 -76 -24 -86 9 0 +-1 -25 -48 -41 44 0 +28 -65 9 8 91 0 +11 69 78 -18 0 +-67 -86 41 0 +-85 -4 -14 0 +-83 37 -68 45 0 +-64 16 75 -32 -43 0 +85 -23 -12 -75 -83 63 18 -35 28 73 -60 -92 -76 0 +-49 64 66 -84 -14 0 +-24 66 34 0 +9 61 0 +-63 -28 -56 -18 -13 -81 -6 0 +-88 87 31 13 -59 0 +-8 86 -92 77 -71 -38 -85 66 0 +86 -19 73 0 +-16 87 -50 -86 17 0 +31 -58 61 27 -84 -93 -74 -2 0 +89 -82 71 0 +43 92 -31 0 +49 -24 40 8 70 55 0 +88 -58 46 0 +-71 10 -16 -23 -87 0 +-78 18 -39 0 +-65 44 81 0 +60 -15 -52 0 +1 -14 -67 8 -53 -52 -6 0 +73 -15 49 0 +-2 26 -71 -62 63 84 68 45 60 0 +-28 3 0 +-7 -62 -73 0 +-5 -29 48 0 +92 10 -23 -17 0 +30 84 -87 -1 -51 0 +3 37 -9 0 +32 86 13 39 0 +-62 -69 -44 -36 -47 -1 0 +-35 12 -40 -82 0 +-35 92 26 0 +-77 -88 -4 79 0 +-74 60 80 0 +89 -13 4 0 +77 -40 -61 -90 0 +30 40 91 70 -29 0 +83 -33 16 -54 90 0 +11 45 57 0 +-57 63 29 0 +-78 -74 -61 0 +69 -55 -26 38 92 0 +-53 -90 84 -73 0 +56 -81 -68 0 +-81 83 -62 66 0 +56 -21 -71 0 +27 -91 -28 0 +-13 -15 6 -31 58 -8 0 +43 61 -15 0 +-14 -9 -84 0 +-77 -35 -24 -73 52 -66 5 92 0 +81 -93 -26 0 +90 6 69 0 +-87 -86 -3 9 0 +57 -59 -51 0 +-86 -48 90 0 +-53 -3 -67 0 +-13 -62 6 -74 0 +80 -19 79 26 75 52 -34 -41 0 +32 69 36 -80 -92 0 +-9 -46 59 -93 71 37 45 -85 0 +-73 64 -12 0 +-37 -91 6 -46 0 +-79 22 -2 -71 0 +-14 -28 47 0 +-35 4 -73 0 +67 -85 35 0 +88 89 -66 17 7 69 -92 63 0 +-12 57 -56 0 +42 -25 -77 -56 57 88 -69 0 +-47 87 -69 53 -43 0 +21 62 -15 0 +-71 46 82 -12 39 -15 0 +-88 46 68 -48 -51 -36 78 14 82 0 +50 -68 63 0 +-46 -83 69 57 -38 -36 -43 -53 68 0 +-90 32 -7 -34 13 65 -36 -53 0 +-90 35 -68 0 +23 -71 12 -56 0 +57 -26 -24 0 +-12 -16 -26 0 +7 -6 63 25 76 64 0 +13 78 47 74 0 +-24 -74 92 88 80 0 +-72 -53 -60 42 85 -8 -76 0 +54 -23 64 47 0 +-77 -63 -50 0 +14 2 92 21 52 0 +-19 59 -75 92 9 35 0 +46 32 -67 -52 0 +-38 -77 -75 -89 0 +51 3 -76 0 +-90 13 -74 0 +-45 -78 -21 -72 66 91 0 +81 77 -62 0 +22 -14 -81 -42 -32 -58 -51 -40 -72 -10 24 -45 -36 0 +62 -69 27 -86 -58 -48 -41 25 63 0 +17 -83 -71 -47 20 -16 0 +40 -76 -56 86 -69 43 13 0 +-22 1 29 -44 0 +-12 -6 62 82 60 34 -17 79 0 +55 34 52 -53 0 +92 78 -9 79 -57 81 76 -39 0 +72 -69 81 -86 0 +-68 77 -47 0 +28 87 -7 88 -50 -16 -81 -6 0 +-8 69 85 0 +-82 23 31 87 0 +-16 -29 75 -88 58 -34 0 +-54 45 72 56 -1 -69 49 80 60 70 24 -64 73 -23 0 +31 16 58 -43 93 9 57 0 +-28 -85 22 0 +5 22 93 -16 0 +58 -28 -30 73 0 +-35 -82 74 13 0 +61 54 -71 -39 -29 -79 46 -42 0 +26 -29 66 -64 -82 0 +59 64 -80 -30 -48 0 +10 -25 83 -61 -27 81 0 +-65 -1 -55 0 +67 -62 -83 86 -42 29 -2 0 +-77 -73 35 -55 84 14 0 +-17 -53 -63 -27 66 23 0 +-41 52 50 -53 -19 6 54 60 0 +13 -84 46 44 65 -89 0 +-52 -56 -88 58 0 +25 -48 45 0 +81 -64 -56 69 75 28 -49 -42 -50 0 +91 15 -43 -90 -56 -60 -55 0 +46 90 -87 0 +77 91 80 4 0 +-20 -75 -11 39 0 +39 -58 -37 30 -44 62 52 56 84 -68 -78 0 +25 47 14 86 0 +-22 -15 5 0 +92 -29 -39 0 +-52 50 -43 0 +87 37 -73 -79 0 +17 -39 -37 2 0 +58 66 16 0 +17 -79 -10 0 +83 -64 17 57 0 +-23 -40 7 -41 -65 71 74 0 +-10 -49 -48 0 +-33 81 70 -59 0 +5 -89 11 0 +-34 30 -68 0 +64 12 23 0 +-23 -71 -22 -63 54 3 -14 -91 -78 0 +-84 -47 -52 15 72 0 +85 -90 89 -57 -15 75 0 +41 -47 50 -72 -73 0 +55 42 -59 19 37 0 +-82 -65 84 2 -19 0 +60 4 -19 -70 12 0 +84 -55 5 -29 -44 -26 11 88 0 +51 -49 84 -79 -93 -10 74 26 45 58 0 +13 -62 8 0 +-6 -70 -61 0 +-63 60 -19 -32 0 +-47 89 12 0 +3 28 -50 66 67 54 6 92 -65 -31 0 +-35 19 90 38 36 0 +-59 -87 -17 -64 -54 -84 0 +82 21 -26 59 0 +-89 50 20 -61 0 +64 76 40 -83 -31 0 +43 83 80 9 -18 -7 -89 24 -36 0 +-41 -89 -51 67 -80 -75 21 57 -2 62 0 +72 -56 -69 -14 79 9 0 +-5 -83 57 -21 74 -69 -68 -16 -63 30 0 +-25 56 -15 57 -73 0 +78 -20 -90 81 0 +-14 -84 -34 0 +-15 -79 34 0 +27 -86 79 0 +-2 9 -65 93 39 24 -63 0 +36 -31 38 0 +83 76 -51 0 +-67 -83 66 0 +-82 -58 55 0 +28 -15 81 -52 -29 0 +81 8 -6 -49 -55 0 +-29 87 -89 -18 25 -4 26 -44 40 0 +38 -15 -90 0 +75 -5 -26 0 +51 -15 -2 -85 36 -69 81 11 0 +66 68 -67 27 32 -72 -24 0 +55 24 3 0 +59 27 72 33 -37 0 +70 -62 -11 0 +76 41 91 0 +57 -85 -79 0 +76 -79 75 -31 -56 -22 92 -91 0 +-1 9 -69 -53 49 0 +-88 -92 -63 0 +27 24 50 -49 64 -11 16 0 +-86 1 -66 0 +-83 3 4 0 +61 77 88 0 +6 36 -65 -41 15 16 0 +56 57 -13 18 28 78 0 +40 67 85 0 +32 44 35 11 56 87 -82 0 +49 -29 -91 -57 -14 82 10 0 +-87 -43 -81 0 +-60 27 -72 -1 0 +32 -49 -59 -2 65 0 +-7 91 -40 0 +-45 -83 0 +37 -38 -63 40 -62 0 +77 -76 29 75 80 -39 -69 -85 0 +47 86 -69 0 +6 53 62 -24 0 +-66 3 -23 -20 0 +-66 74 -64 -82 -50 0 +-69 53 -62 0 +-87 -86 38 -14 -63 -68 0 +-77 -74 23 -9 0 +-59 79 33 -62 53 -48 -83 0 +-89 -84 16 -60 -3 0 +83 90 -85 0 +40 -88 61 0 +-28 73 55 0 +-84 -61 23 0 +90 -74 20 0 +-49 -11 -87 78 0 +-84 -90 -33 64 0 +40 14 59 0 +-45 -14 68 0 +-62 -25 3 0 +9 -23 -76 75 0 +-10 40 -46 -75 -73 0 +93 40 -77 92 16 0 +39 -69 15 0 +64 -43 32 -83 0 +-75 -31 72 69 -34 17 83 0 +-63 38 75 44 0 +-80 -92 -72 -65 89 -58 0 +-15 -78 -53 46 -54 61 81 85 57 19 -21 0 +70 -54 -75 0 +-36 -61 16 79 0 +-46 -52 -70 49 0 +52 -71 78 -10 -83 0 +-92 8 30 83 3 -14 0 +-27 78 -16 0 +51 32 10 93 47 0 +-54 -34 -43 -23 51 22 19 0 +-28 -12 -87 -26 -57 0 +-84 -70 -55 0 +-57 21 -12 -70 75 0 +86 59 -3 90 0 +-68 122 112 -8 118 126 -119 -65 0 +97 -62 101 -114 0 +54 -102 -63 -113 0 +103 94 -25 0 +79 113 -121 108 119 -5 102 0 +31 4 104 0 +-124 -6 -109 -108 0 +80 60 -82 115 98 -69 -88 -94 -112 0 +73 39 -118 -28 -125 84 0 +-57 109 -10 0 +-95 -115 -22 0 +-91 72 -104 52 0 +18 -97 -63 0 +69 -68 -106 111 48 7 0 +62 100 -99 70 0 +110 39 26 0 +-122 91 99 44 -123 24 70 74 0 +71 -100 -105 -101 0 +125 107 -126 92 0 +-107 -103 96 0 +41 59 93 0 +14 -84 105 0 +116 -111 37 75 0 +-22 16 -53 123 91 -58 0 +79 29 -26 0 +-116 117 -96 0 +95 -117 -110 45 -9 121 -38 120 -63 -68 0 +54 -81 -98 -120 106 124 114 -44 117 59 0 +-125 -21 -23 0 +67 101 -122 54 0 +104 10 -103 0 +-86 -97 -60 0 +61 119 24 -109 0 +78 -101 -81 -126 0 +-98 -125 112 0 +-117 -84 -51 0 +-29 -95 36 0 +-120 -103 110 0 +-123 98 112 -108 0 +114 -63 124 -67 112 -68 1 -126 -107 0 +91 110 -67 0 +-107 33 35 0 +-21 -11 102 119 0 +-59 104 116 -43 107 0 +-104 -18 53 -101 0 +-11 -99 -97 0 +-124 -102 -36 -38 0 +-74 -63 -119 80 124 -32 120 -21 -106 84 -59 -103 -126 -73 -111 -105 0 +33 101 123 -69 0 +-11 39 -107 0 +-61 -103 -22 -50 0 +-34 -111 -93 0 +-31 114 -121 0 +-102 107 -83 -43 0 +115 107 -111 0 +12 -4 89 0 +117 58 -56 -37 0 +-56 102 115 0 +98 27 -33 -120 -29 -19 0 +27 79 92 0 +-123 -115 41 -38 70 52 95 -103 97 124 20 -19 90 0 +-115 55 -29 -95 64 0 +104 -97 -45 19 0 +-112 56 -26 -124 -95 -100 0 +109 125 114 -30 63 80 0 +124 -22 -103 99 -38 0 +-32 82 -108 -15 0 +-46 18 -7 100 52 26 95 76 23 0 +107 95 89 118 0 +109 104 98 -37 -87 21 0 +86 108 -112 -31 100 -83 32 21 80 -102 121 15 -110 -5 0 +92 99 104 -75 0 +-16 -100 57 0 +99 56 0 +118 -112 -28 95 93 57 -41 106 -60 99 -49 0 +124 -61 -111 55 15 0 +-22 -114 -84 0 +-67 96 -3 -116 26 0 +-78 115 117 0 +-108 37 26 0 +-34 26 98 53 117 -54 0 +-118 -107 113 -120 37 56 0 +-96 86 -87 0 +-6 -86 99 -125 98 0 +118 99 -80 -114 0 +-51 -76 124 0 +106 -12 -27 -66 -46 0 +91 45 0 +14 36 -121 0 +11 -60 122 117 -56 27 -95 109 -100 -97 -41 -36 84 0 +-112 115 -51 -93 -88 -108 -21 -79 0 +74 114 38 107 0 +-109 100 -11 -112 9 0 +47 -90 -105 -111 -104 0 +116 25 112 0 +66 -27 114 -67 -33 -91 -125 -58 0 +1 -102 -11 0 +-6 117 -28 -3 -46 115 0 +-92 69 -120 -51 0 +112 -41 -83 109 92 7 -106 42 -51 0 +-111 115 81 -83 87 -31 97 -76 52 0 +-45 -34 -95 0 +39 113 -75 -55 -67 106 -31 0 +-19 -100 -53 117 0 +90 -58 -2 0 +-18 125 126 -102 0 +65 23 -111 0 +102 98 -28 99 0 +16 104 -87 0 +-109 19 102 0 +102 -37 89 0 +114 119 -20 -73 -66 0 +124 -96 5 -110 -75 105 -119 117 0 +-51 124 0 +103 -117 106 31 0 +43 106 1 -64 104 99 105 -77 113 0 +-77 -99 -113 54 80 -38 0 +96 108 -65 -98 -105 -62 0 +108 -54 -8 87 -3 114 -69 -78 -43 0 +111 46 -105 41 -79 57 0 +67 -86 -75 -76 0 +66 -59 121 0 +-118 95 119 11 -98 0 +125 -9 -122 -68 35 86 -48 0 +-70 -74 54 53 0 +-109 42 92 0 +113 110 41 0 +-97 -115 107 -34 0 +-52 -47 83 0 +-108 96 -103 111 0 +43 -55 -112 114 0 +22 126 23 -56 0 +95 75 -57 14 125 99 -121 0 +122 -101 44 106 0 +116 -125 58 -118 -95 0 +-81 -45 -17 50 -110 90 65 -9 84 114 -66 0 +103 -95 91 -97 -12 -104 7 -54 -73 0 +-81 126 -20 -45 -59 101 116 0 +-100 -120 -27 -78 108 -91 0 +-15 -90 -51 0 +-26 -101 -119 28 -32 -76 106 0 +98 -121 102 -84 -123 0 +16 121 98 -85 0 +111 47 -100 0 +36 118 107 -124 0 +-11 -101 -103 0 +-103 11 106 0 +-21 -43 103 -24 -105 -110 31 0 +30 95 -97 -93 122 -118 0 +117 -64 -105 74 0 +-52 -72 54 -116 -109 0 +-61 107 119 0 +-98 -38 122 94 0 +-64 116 49 0 +126 -109 53 103 0 +-98 -40 115 0 +111 82 -107 114 -116 0 +107 105 46 0 +82 73 17 121 -104 91 102 63 0 +-6 43 -31 0 +105 -84 95 0 +76 60 -96 0 +-7 113 17 -94 0 +100 104 -95 26 -78 53 48 75 -92 125 114 116 122 0 +107 -122 95 -117 0 +-15 -121 86 122 0 +123 120 -105 0 +32 60 -85 94 117 7 -90 114 -119 108 -109 66 -111 -115 0 +-100 118 -31 126 -47 67 0 +67 -120 0 +71 102 -32 -35 0 +73 110 55 -62 105 -125 0 +-32 48 94 -23 -110 0 +107 104 21 116 118 75 -121 0 +94 96 56 1 -17 0 +-18 13 -94 0 +122 57 -67 109 22 0 +111 -24 110 57 0 +65 119 -5 0 +93 126 -110 0 +-102 -75 76 72 0 +-59 -110 -8 0 +-11 73 -33 0 +-76 -69 -18 0 +72 110 -18 0 +51 -120 96 0 +-118 -72 109 -119 0 +64 124 -75 0 +-53 -13 -56 -106 -88 0 +-103 -82 -98 61 -4 -120 101 0 +-111 -47 117 0 +76 83 41 99 -2 62 -122 23 3 -14 0 +-98 -95 3 0 +-73 82 107 116 0 +120 -50 11 0 +-118 -97 -1 0 +-35 32 96 110 118 0 +-125 -87 -74 126 -110 0 +111 100 -1 -110 11 -59 0 +-84 -118 -22 0 +99 -101 53 0 +49 56 -90 -67 0 +-126 67 -111 119 -30 -77 -27 113 -112 0 +-120 23 -19 54 -61 -90 -81 93 0 +63 118 96 -77 86 29 0 +69 -95 94 0 +124 -123 112 0 +112 116 56 0 +-121 63 -84 0 +-10 119 -105 0 +38 57 -84 -22 0 +119 67 -31 0 +-36 -69 -111 -10 0 +-85 -43 -19 -103 0 +-78 -8 -92 -61 0 +-98 117 -114 96 0 +-120 -10 73 0 +119 -71 34 -124 0 +94 29 74 0 +-3 17 -100 34 74 -120 -126 28 58 0 +11 -100 84 0 +-22 -115 -125 -113 -103 0 +-3 -98 -112 69 68 0 +-119 -88 97 0 +-114 -26 -107 0 +36 22 -60 0 +-100 -59 -18 0 +-54 -112 -89 -122 0 +-65 -22 24 0 +-19 123 116 21 0 +14 10 33 122 -55 97 0 +110 26 -112 -98 104 125 0 +61 126 -9 125 -27 -97 60 124 -106 95 107 0 +-102 -44 -112 -80 19 -104 0 +-117 91 120 -46 118 -96 0 +-19 -75 91 39 44 -125 109 0 +126 -108 102 118 -123 -27 0 +34 -111 60 0 +-110 -70 -125 -113 101 0 +74 38 104 0 +-27 22 113 -96 28 -93 58 55 111 0 +28 -67 -92 0 +-119 -7 27 0 +57 100 -117 49 0 +-80 115 -113 0 +-63 74 -53 -126 -118 117 0 +-98 -100 112 0 +109 -123 124 -110 18 115 0 +-105 97 -121 -102 -15 -66 0 +23 -70 -71 -99 0 +108 9 -106 125 0 +104 40 95 0 +-93 57 98 -77 107 0 +-75 -111 -77 -10 -17 96 -122 -89 -38 0 +-49 -96 -107 -102 61 42 0 +-23 -63 103 -64 0 +-116 -41 93 96 -30 -108 32 -113 115 -75 82 -56 120 -107 98 0 +-98 105 -125 -101 -70 58 -17 0 +107 -91 116 101 0 +-4 125 110 0 +-109 17 -94 97 66 -110 -25 0 +-31 13 -98 63 51 49 79 0 +-27 55 98 -41 0 +99 116 126 15 0 +-2 -31 -110 20 112 0 +101 -106 52 107 0 +-16 120 0 +119 -126 -10 0 +22 -123 79 65 -9 0 +-111 -94 23 -46 117 104 0 +52 64 109 0 +62 30 125 0 +91 115 -55 -83 0 +119 -103 -35 -78 46 -113 112 -75 -65 74 98 -64 100 0 +106 -23 95 -26 84 0 +96 -88 -6 -97 0 +-9 89 -23 0 +-118 -122 -112 -103 111 0 +-15 -83 -106 0 +-4 -108 -28 0 +-105 102 52 -86 14 -87 0 +126 -85 -121 69 38 -94 101 -81 43 117 0 +-55 -62 106 0 +-23 45 93 -123 -33 108 119 -76 -94 0 +-74 -95 -4 0 +-108 61 46 118 0 +103 -53 -125 114 0 +118 -53 -2 102 99 -84 108 -93 -4 78 -117 -25 0 +105 63 -116 0 +-116 88 -125 105 123 107 0 +-75 -76 117 0 +-106 -98 -107 0 +-55 -58 -99 44 124 -89 -78 -59 0 +105 2 -90 0 +79 -99 -6 106 -97 0 +-104 61 93 0 +-113 -98 -74 110 -48 34 0 +90 -64 -113 -108 -74 118 96 0 +105 -78 99 -114 0 +118 -60 100 47 93 -11 -96 14 48 0 +-111 -125 33 84 -73 0 +63 -5 -54 0 +102 10 -107 0 +65 40 122 0 +-70 88 59 -117 -91 0 +-118 -54 32 113 -48 112 0 +-99 -42 -104 12 35 -15 0 +-110 103 -93 0 +115 126 111 42 -56 0 +114 112 115 110 -34 0 +-107 100 -122 0 +-101 51 -123 108 0 +97 -95 68 -103 0 +-86 87 125 99 115 0 +28 52 96 -109 0 +95 43 23 0 +122 -109 103 -120 -10 9 98 0 +95 -50 124 11 0 +92 -102 34 -1 -6 0 +-23 -111 119 0 +115 -25 -23 -88 0 +44 -42 37 0 +25 -17 -11 -35 0 +120 -114 115 -97 121 0 +-108 28 -88 67 -96 -119 -1 0 +-1 -93 -125 92 -120 -74 115 0 +124 -98 -43 97 23 -100 0 +-26 64 120 -55 106 83 -72 98 113 74 -41 -121 -53 -112 -56 -110 -107 -5 0 +126 -59 -67 79 -125 109 0 +111 37 -134 152 -158 -139 156 0 +-162 -161 -126 0 +62 -149 -101 -147 154 -142 0 +-136 79 53 144 0 +131 30 130 164 159 -144 0 +-154 -30 77 0 +-152 -80 -42 0 +-62 -159 145 -122 0 +132 -140 -112 0 +129 11 0 +-100 -10 -126 -150 0 +-143 -96 160 0 +133 73 -105 135 21 18 -103 -148 -122 0 +150 28 -160 0 +140 -108 147 0 +158 149 117 0 +101 151 17 146 -156 38 0 +-120 -146 1 0 +-145 -92 -125 -53 117 -135 -163 -127 -25 -141 -151 0 +-130 142 112 -20 0 +-129 -74 -95 148 77 -157 0 +-155 157 -153 0 +70 -164 128 0 +48 162 161 136 -54 127 0 +163 139 -133 0 +-132 10 143 -137 14 -80 99 -95 -113 87 141 -128 -112 138 0 +115 121 -131 155 153 119 39 0 +84 122 134 -18 -138 137 0 +-138 -144 -148 0 +136 159 162 0 +152 -156 147 0 +144 124 79 104 0 +130 -36 -142 0 +77 131 137 -14 -155 -133 -105 0 +-115 -152 148 134 136 -118 0 +160 140 -158 145 -113 147 0 +-145 -138 -158 0 +-81 -116 23 0 +94 16 -152 -156 0 +-128 131 155 -163 -89 0 +-127 -115 160 -117 -132 0 +-154 135 -63 0 +147 -151 26 0 +48 -140 -160 0 +158 -120 131 117 0 +-51 -60 -107 0 +130 120 102 -153 -144 142 158 0 +141 110 126 0 +156 11 -162 0 +-63 -132 -134 -144 -158 0 +112 148 -162 0 +139 -140 -46 0 +23 164 60 -136 0 +84 -102 3 0 +72 -25 -71 0 +149 -89 -129 -162 150 103 22 119 0 +141 -127 -30 0 +-146 106 -113 0 +143 -3 -133 135 -151 39 129 0 +-101 104 -36 58 0 +-157 -134 97 -142 153 -25 0 +121 102 133 0 +-108 162 -31 120 0 +127 -6 64 0 +-8 78 136 0 +-81 131 158 -136 120 -99 0 +-90 108 104 -150 147 140 149 99 139 0 +156 138 136 57 -143 0 +74 57 -42 -97 -88 52 140 157 143 0 +-132 138 127 0 +16 -130 160 118 0 +-123 83 -145 4 159 121 0 +115 -53 146 132 0 +-126 -160 -158 -10 100 -117 -136 -141 5 -154 -102 -132 -140 124 0 +-13 -111 -138 100 0 +-104 -103 -145 0 +-6 143 -146 -97 0 +159 144 46 130 0 +-144 -83 163 120 0 +51 94 115 -111 0 +-128 -135 -157 0 +68 -36 -100 156 0 +-106 141 127 152 94 72 115 0 +-140 -127 -109 115 0 +-76 -144 2 131 72 -97 0 +-80 164 61 0 +21 -97 -146 160 0 +147 102 119 -125 -132 0 +-107 115 -143 157 131 0 +-131 136 79 21 116 27 -141 127 -91 -142 130 150 146 0 +-138 -157 -149 -141 -89 32 0 +140 111 44 138 0 +161 -140 8 -81 0 +138 111 -130 0 +18 149 -19 -100 0 +138 106 -156 0 +-130 106 161 0 +-34 -17 107 -96 0 +-109 153 -42 -39 99 -137 45 0 +82 159 164 0 +-160 -74 157 0 +66 138 143 -148 -158 -123 0 +158 161 -134 -157 164 155 -91 -50 159 0 +-125 89 74 -154 0 +64 -135 -124 119 145 -156 131 0 +-19 118 -152 0 +126 140 -110 49 0 +-54 136 68 -109 -123 0 +125 139 145 0 +-117 99 -31 0 +-84 160 -130 -46 -140 -138 0 +136 -116 -130 0 +162 -124 159 109 -6 -28 80 43 -127 0 +127 145 137 0 +-153 -108 -158 -125 -134 -159 0 +112 115 -81 146 -141 -114 -85 0 +-144 103 101 0 +-69 156 -148 147 120 -162 135 16 0 +147 -115 -73 0 +38 -145 -154 146 0 +58 44 -148 -159 0 +-128 -105 35 0 +150 130 -110 -28 128 -147 0 +-123 104 164 -147 74 0 +-123 119 120 -134 0 +162 -144 -115 -107 0 +137 159 109 100 97 -110 -158 160 -113 0 +1 -40 15 0 +-29 24 5 0 +-131 -135 148 106 0 +-33 18 120 0 +28 120 113 137 147 -4 123 76 0 +48 -106 -74 0 +157 113 129 -119 -152 0 +-10 30 148 -135 155 -133 -105 -146 114 0 +156 -57 159 111 0 +113 -161 -14 0 +151 137 -142 0 +-127 110 -132 147 0 +-125 -129 130 -159 0 +113 161 -53 -109 0 +41 31 -117 -157 -133 145 158 0 +-159 -25 -157 119 -139 0 +107 -126 99 145 0 +62 92 153 0 +62 -112 114 132 0 +158 152 -128 0 +-96 137 -110 0 +9 147 -130 0 +-138 163 150 -133 -80 -127 0 +137 148 -129 0 +-58 131 -9 -91 -57 -161 0 +150 128 97 0 +-145 159 -156 0 +-164 -144 145 -51 29 -68 0 +160 -151 -132 -56 146 0 +150 -112 -38 0 +43 -106 143 0 +134 128 -94 0 +-149 150 160 0 +151 -124 -150 0 +-153 129 61 106 0 +-21 -97 149 136 105 123 -110 0 +144 5 -149 74 0 +131 151 -146 82 -38 0 +-132 64 -146 144 0 +-125 92 157 -134 121 0 +-133 56 -136 79 -82 -126 0 +92 32 8 -85 -98 95 -153 -152 -160 107 162 128 150 0 +148 -105 71 0 +118 -147 21 115 152 105 163 153 0 +-163 149 136 0 +143 102 -108 0 +152 -144 -164 0 +-24 26 99 -34 0 +-126 -77 -152 130 0 +-145 50 -98 -118 36 0 +124 -154 149 0 +164 -81 151 -135 143 150 -73 0 +-118 150 67 -151 -155 130 0 +43 -76 6 -108 0 +153 -55 137 0 +140 -141 143 27 107 123 -142 150 154 85 0 +-125 152 136 0 +-156 42 147 -116 141 -98 0 +-148 -96 68 129 -163 0 +-136 92 -160 0 +94 -96 156 0 +-127 -160 30 0 +-68 101 143 0 +137 76 -144 0 +-93 -133 134 -128 162 0 +-131 111 -19 0 +-109 -8 79 139 163 127 36 -130 0 +154 -150 120 93 0 +127 132 -144 0 +-1 -131 -55 0 +-161 -98 -106 0 +-137 140 -136 161 -130 -155 117 -112 0 +7 -127 -20 0 +-140 9 104 0 +138 -107 -129 61 0 +27 123 137 -130 -126 0 +123 -144 147 0 +91 161 135 0 +149 -146 -77 0 +-139 -89 17 0 +-146 160 0 +67 -114 -117 -163 0 +-109 164 -102 138 0 +151 111 -122 -164 0 +151 -98 -154 0 +96 -35 -124 142 0 +-163 130 151 99 0 +-144 -140 157 -112 -29 70 -94 0 +-53 -115 142 64 0 +6 -145 -129 -164 -35 -155 0 +81 -109 -143 61 0 +-98 154 146 0 +-96 -40 -131 -97 0 +-151 109 -141 0 +119 46 -79 0 +146 -124 -95 -145 132 0 +-131 -140 112 0 +6 -143 -145 -137 -162 -114 0 +-33 -35 -21 -39 135 -158 0 +132 128 154 152 -110 137 -145 -113 0 +147 75 51 116 -91 0 +-149 155 38 -138 -159 0 +123 -103 -150 -133 0 +49 109 37 -104 0 +178 -171 61 177 -30 0 +36 -174 -125 127 168 0 +-46 -180 -176 0 +134 165 115 -154 -149 118 0 +-109 -149 173 0 +174 -175 89 0 +179 -7 -27 143 -173 153 160 0 +11 170 -128 139 166 -181 0 +169 99 181 -127 0 +63 -109 -90 -77 175 0 +137 143 34 -140 107 -177 -170 -179 180 -135 -166 -165 0 +-167 -104 172 139 -131 0 +-168 176 106 108 -172 0 +89 -97 171 -78 167 -178 -111 -169 -155 0 +130 166 -22 -167 -163 171 0 +177 169 162 143 -168 0 +177 -100 -139 -170 0 +178 174 -167 -77 -170 0 +-166 -149 -137 0 +173 -164 146 176 0 +-148 -72 -152 0 +168 -98 -97 79 143 178 0 +-12 169 -154 -137 -37 173 0 +-3 -157 172 -31 -8 0 +159 -173 175 -91 0 +138 -155 169 174 -172 160 0 +174 -180 0 +166 -169 -157 180 -105 131 0 +171 -140 -93 134 179 174 -178 0 +-170 -172 -177 0 +175 128 180 -174 -155 139 -165 -163 0 +175 165 -179 0 +-178 170 -172 108 0 +101 -117 95 -164 -58 168 151 -165 -69 -162 -125 0 +3 -168 -172 0 +-170 173 172 0 +-129 -113 139 165 -142 -56 0 +15 138 173 -174 -167 172 -180 175 0 +31 -178 170 76 -161 -174 70 0 +-61 167 -28 0 +-171 -176 -173 0 +-176 -174 35 0 +-173 181 -164 0 +-181 -129 -137 150 0 +102 175 46 169 63 82 173 -178 -172 112 0 +120 -175 -176 0 +147 126 174 167 180 96 -168 -178 179 0 +-11 117 146 0 +-107 168 147 170 -69 181 110 0 +-49 -139 137 -172 -147 0 +163 173 154 179 -86 -138 -181 149 177 0 +169 -181 -167 0 +-176 -181 175 119 139 -29 0 +-181 169 73 -147 166 0 +96 -171 -95 0 +173 42 18 -6 -169 149 0 +-96 -150 178 142 0 +178 121 5 118 0 +142 -96 -176 -168 137 -170 0 +-132 172 -175 181 -179 -177 0 +103 122 -176 0 +-147 -152 150 -174 0 +-177 180 -145 -11 170 176 174 167 -133 0 +-168 165 -122 -107 181 -66 -176 0 +140 178 -129 -170 -175 176 121 113 -167 0 +100 -152 162 -155 168 -171 -170 -165 -164 0 +-172 -144 -171 0 +169 167 -138 0 +-83 105 -177 0 +-94 168 -177 -7 179 0 +168 97 -149 -165 -155 -180 0 +170 -166 44 95 0 +181 168 140 164 0 +146 -179 -175 0 +-172 130 -145 -174 0 +-108 -115 -51 -96 0 +-159 71 166 0 +124 111 -167 -180 0 +-121 97 145 179 -175 0 +98 -133 167 -180 -134 -139 0 +48 160 -131 179 0 +132 161 135 -166 -116 -118 -144 -122 169 56 -130 173 175 -105 131 0 +151 172 -168 144 175 99 0 +35 181 -179 -91 -177 -132 0 +176 -170 -172 0 +-130 165 -83 -180 -124 166 -46 -101 102 -140 0 +-2 164 178 0 +164 180 -177 176 -1 181 0 +168 -167 -105 -131 -173 0 +169 -170 0 +-150 158 -166 0 +11 -175 174 0 +166 168 -181 0 +173 107 133 0 +-172 -145 -181 -133 -176 -165 -150 0 +-52 165 -179 38 0 +-168 -125 -172 159 0 +-140 -177 171 0 +-143 178 -181 -171 0 +162 164 62 177 -73 -178 -160 -151 181 0 +-176 178 -179 0 +42 -177 169 0 +-140 178 -95 -132 0 +-170 -178 137 0 +-119 166 -176 -125 -151 152 0 +180 -172 136 179 0 +156 -163 74 -165 169 0 +-180 154 -150 172 0 +-179 166 -181 0 +-55 -68 174 0 +-79 -168 109 -173 -76 0 +-174 166 98 -138 175 -173 -180 132 0 +-121 82 -144 -71 -172 133 0 +171 166 -173 -103 -158 0 +174 165 154 -133 19 0 +-180 -122 115 179 -174 141 0 +30 -165 146 0 +-79 179 167 121 0 +171 166 145 156 -121 0 +178 100 123 0 +169 -179 -114 -165 -170 172 0 +-177 -136 -116 0 +-133 -134 165 0 +174 -179 170 -181 147 -175 -168 0 +154 123 -176 -109 0 +-110 -169 -64 -171 170 -156 113 0 +167 -170 -86 -168 -97 138 179 108 0 +14 170 -138 -126 -180 -53 132 157 0 +-161 -167 -29 -134 135 -171 -107 124 -166 0 +139 -173 -76 -178 176 0 +-161 153 -176 -181 -58 -130 108 76 173 178 0 +177 -180 -40 25 176 0 +-166 140 170 171 0 +-170 175 168 0 +-98 174 -138 173 0 +-57 -147 173 167 -174 0 +-172 56 41 -181 0 +-177 165 -170 -173 109 -116 -149 114 55 -180 -14 111 -137 0 +174 179 168 -175 0 +147 -166 170 -155 48 181 -122 0 +166 -170 -181 -144 0 +-176 123 -152 171 -175 -87 -181 -153 168 -180 0 +-140 111 -114 -181 178 132 -165 -133 0 +-179 165 176 8 173 168 156 169 82 175 -55 0 +138 -167 67 178 158 141 0 +180 98 176 0 +-134 -150 180 -165 -168 113 167 0 +-175 129 64 -160 0 +167 -172 -157 0 +169 163 172 -168 176 0 +164 -87 134 181 0 +175 -178 -122 159 0 +-156 -157 -170 165 0 +172 171 173 0 +-177 -43 180 0 +140 -157 -171 0 +172 -127 -176 0 +-131 174 127 -181 27 0 +170 -160 -157 95 169 -94 -173 0 +63 -180 53 0 +-148 -44 -107 174 -133 114 170 95 0 +42 176 168 181 0 +-152 -179 178 -180 26 0 +-114 165 -101 -15 96 164 109 -106 0 +-155 -175 -181 -180 -149 0 +150 -138 -115 0 +-180 162 123 -165 0 +-157 166 -129 0 +173 148 0 +-179 176 169 164 170 0 +-137 -178 20 100 -154 122 -168 181 -177 138 0 +181 -73 157 -95 162 0 +-171 -180 -156 174 176 0 +-181 -41 -61 -159 -111 -134 180 0 +-181 -167 148 0 +-167 -128 -176 73 0 +-170 101 -85 -162 0 +75 -166 -167 170 -177 180 -101 0 +160 -165 -111 0 +61 -169 166 170 0 +-176 172 -94 0 +-168 -114 95 93 -181 -50 0 +127 177 176 0 +151 168 -136 0 +22 -177 -156 -179 0 +164 -12 -175 0 +-141 -177 128 176 168 0 +98 131 179 0 +143 115 -136 172 135 -176 -138 130 -102 167 0 +-177 62 -104 0 +112 -178 138 0 +-166 116 178 0 +-50 130 176 -169 0 +158 -6 181 -180 0 +-112 149 -144 0 +146 -167 175 -177 0 +-174 -41 -127 -53 0 +123 179 -173 -169 0 +94 169 175 0 +162 -52 170 135 83 -168 180 67 -165 -25 -172 175 0 +96 168 -170 52 -19 0 +156 13 -181 128 18 167 152 0 +-171 178 181 -170 0 +-124 96 -167 -162 -109 179 154 166 -174 0 +175 -177 167 -138 0 +179 165 153 -133 -174 -147 0 +-181 -176 -127 166 -65 -158 178 0 +90 -172 -170 112 0 +136 -107 141 166 0 +-165 90 -141 177 0 +-171 -181 115 0 +172 -111 140 0 +-117 66 -167 -82 -169 -102 160 0 +-166 172 -110 -138 0 +-99 -172 -173 0 +126 166 -165 141 136 -132 -157 -181 0 +177 146 -168 -81 -160 170 117 137 175 167 -136 0 +-92 156 -149 0 +108 153 161 0 +133 120 179 177 178 165 0 +144 -181 166 167 0 +-153 -128 171 165 -105 0 +175 113 -180 0 +-168 171 143 0 +-147 164 172 153 177 0 +130 -175 5 0 +-163 181 -175 124 0 +14 165 155 -174 -176 -167 0 +169 -145 -166 -170 0 +-19 -112 -47 0 +173 -148 -102 -169 0 +-129 -168 -167 166 155 0 +170 163 106 -156 -168 0 +174 96 111 -133 166 0 +167 181 160 106 -177 -51 141 0 +179 -25 176 0 +-167 193 -113 0 +-174 165 -189 0 +-188 -180 -198 150 0 +188 174 199 -186 80 0 +192 139 194 -184 -197 198 195 -168 0 +183 85 166 -187 189 0 +191 -119 -95 190 0 +-182 -170 -195 -171 -63 -199 0 +174 100 185 46 0 +-183 -165 -192 0 +-152 -56 181 0 +-194 -196 168 177 -193 0 +182 184 197 0 +-98 -166 187 196 -137 -178 0 +-190 -185 186 -161 -191 0 +-187 193 199 197 -170 0 +184 178 -182 188 173 181 -183 0 +-183 -190 -192 115 0 +189 -131 171 0 +-196 183 64 -145 0 +-174 -190 -199 175 -167 0 +174 -186 147 -191 0 +127 -76 -169 69 0 +-157 -190 -171 199 181 196 169 -78 0 +80 183 -186 179 -196 0 +-194 196 -21 138 0 +-48 186 -185 0 +-141 173 -183 -198 -16 -197 0 +155 195 180 -185 0 +167 -58 171 0 +-199 -188 178 -177 -194 0 +167 -195 -72 179 0 +-184 199 87 0 +64 -190 0 +186 -137 192 152 0 +186 -187 -199 0 +-187 -189 195 196 0 +180 176 -188 -170 -108 0 +168 187 127 0 +168 191 188 0 +177 -173 108 149 0 +-188 44 137 183 -192 190 0 +-137 -195 186 0 +-28 193 -192 184 0 +181 195 -48 -139 0 +181 -165 180 152 0 +51 109 187 0 +-170 195 197 0 +46 -174 191 0 +187 182 -154 173 -25 186 174 0 +199 -167 183 189 -191 -21 -119 -137 0 +-165 26 -195 -191 176 -96 -189 193 0 +153 -168 124 0 +-166 168 -38 -193 -36 192 0 +185 173 196 0 +-169 -166 152 0 +185 -166 -193 195 0 +-169 -194 -133 -185 -186 0 +-173 141 -197 4 193 0 +-167 176 -183 0 +186 -168 -169 0 +-194 199 -197 134 -169 -193 -190 0 +194 164 163 -187 0 +-75 192 187 0 +168 174 -128 -175 192 -185 0 +146 183 -182 0 +-185 197 -174 -166 0 +37 -177 -175 0 +-130 -199 125 0 +-166 159 -179 199 -134 0 +-134 126 115 0 +-195 -194 -185 182 0 +-182 186 94 144 0 +-193 -182 -169 0 +-191 -192 193 0 +-139 172 191 -189 -146 0 +180 -179 194 -130 0 +185 -190 175 -195 -180 184 0 +191 168 -70 187 0 +-165 168 169 -189 187 0 +-191 -189 198 0 +174 -181 98 -138 151 185 -157 166 -143 0 +99 184 -179 -181 0 +100 -146 -173 -14 182 0 +189 190 197 -165 0 +-187 -180 -136 189 0 +-144 -196 -188 -170 29 165 -19 0 +-190 183 195 0 +-190 -193 199 187 -184 0 +-118 191 -167 170 162 0 +-133 -177 193 0 +-186 -184 -178 0 +170 -184 183 196 -181 0 +169 194 -180 0 +173 -169 176 0 +-188 -185 182 177 168 -193 -198 109 0 +-178 132 154 0 +194 184 -182 -171 185 -188 -166 -168 0 +-197 173 114 -199 194 -3 -177 -94 176 0 +-199 114 -193 187 0 +-188 -192 187 0 +168 -197 -176 -145 195 162 -134 -191 0 +-172 -196 -181 199 -186 0 +198 -184 -171 169 -177 -174 -172 -119 0 +181 196 -197 191 0 +128 187 -194 -152 189 0 +-81 133 162 0 +180 -191 0 +-166 126 192 0 +-184 -174 193 -188 -190 156 -199 -191 -182 -183 172 0 +-174 198 176 0 +-190 175 -165 0 +-194 -173 185 0 +-174 2 -152 -177 -199 -180 -188 169 0 +133 -185 179 0 +-188 160 190 -181 0 +187 -117 -183 188 194 -198 0 +196 -13 -54 -165 0 +-187 -184 -172 0 +-171 198 196 0 +-193 96 142 0 +177 -176 -146 194 192 189 0 +187 -189 -181 -185 114 0 +-125 225 -209 204 -171 9 187 -200 -185 -237 -180 111 218 210 -235 -159 -172 190 155 241 0 +179 -212 189 -181 -203 -217 -168 0 +183 202 98 232 219 -198 0 +170 167 172 203 0 +201 183 -213 -214 167 221 -216 237 220 -171 0 +-199 214 166 -228 195 0 +-232 127 -185 -236 0 +-239 236 104 0 +199 239 -148 235 -241 -215 -234 0 +194 192 -224 0 +193 -219 -210 -170 -186 238 0 +171 172 179 0 +211 -176 209 -181 0 +181 205 207 168 195 -202 192 0 +-206 -233 -225 0 +-197 240 -242 180 -115 -196 -190 -192 -198 0 +212 161 -190 234 230 -208 222 -199 242 -195 0 +215 -221 229 0 +193 -197 -3 -227 0 +-186 -188 223 -174 -222 208 0 +224 189 213 0 +-229 216 217 -218 0 +124 170 226 -194 14 0 +-226 200 -201 -76 -207 0 +-230 -147 -185 189 233 -223 -116 231 228 0 +227 -238 -138 -240 -186 -220 0 +198 -111 186 -205 -231 -176 195 0 +-211 206 -204 0 +-236 232 233 0 +-226 -237 -189 0 +-233 -240 -223 -196 -198 208 195 -155 221 205 -190 -228 -204 -200 0 +-231 138 213 0 +-207 -214 242 0 +-184 -190 -142 -220 219 173 209 0 +233 -213 -223 -179 192 -240 0 +-173 236 -167 -185 0 +183 223 -234 -214 -126 -197 216 -157 -185 235 198 -210 0 +-173 236 -147 0 +230 215 -229 0 +205 -197 -208 241 172 191 0 +-241 238 -242 180 97 223 173 224 0 +144 202 225 76 -224 0 +211 -173 -201 102 -184 -240 229 220 214 195 207 -196 -208 0 +-186 184 -241 0 +-231 -165 229 -211 -217 202 -224 -223 0 +-183 192 -197 0 +-238 218 -201 100 23 179 0 +-236 230 211 -214 -228 -222 177 0 +213 -226 -139 -187 241 180 -201 0 +193 123 -183 -201 186 190 151 0 +-210 -228 163 188 184 -222 0 +-235 34 225 222 -230 0 +164 -228 173 217 194 0 +-214 -205 165 -158 -238 -206 -219 -73 -129 0 +-204 -196 187 0 +-43 -211 200 0 +-227 224 -219 0 +-3 219 -194 226 175 -185 0 +193 171 206 197 210 0 +-229 185 195 0 +-209 233 215 0 +-189 233 222 -235 219 -225 188 -217 0 +-183 179 141 0 +191 -112 229 -218 0 +198 174 -204 -224 -220 0 +-225 -202 138 188 0 +233 -189 157 0 +-228 -37 199 0 +-230 -209 -212 -235 0 +179 229 237 -210 0 +215 224 -209 0 +-135 -115 217 0 +198 241 190 166 -193 -181 213 0 +240 190 228 -237 216 -220 0 +172 -238 -146 -217 206 176 -223 180 0 +-221 222 -209 -123 152 0 +189 226 191 205 199 -197 -187 -186 218 0 +227 236 194 192 240 -189 -174 0 +208 228 127 211 -238 0 +-230 -242 -187 0 +184 -114 -225 0 +127 -169 239 0 +176 -227 69 181 0 +184 -182 -193 0 +-207 -234 -168 -223 191 -159 -237 0 +233 216 -230 183 -222 212 221 0 +201 -174 180 0 +170 -225 190 0 +-193 -168 240 -241 190 0 +182 -186 226 212 -227 0 +190 -182 -219 0 +189 184 193 0 +-192 176 -238 -172 -195 -224 0 +-204 -238 -188 207 0 +-218 241 -171 0 +238 197 -199 0 +152 -233 175 0 +-212 71 -215 0 +-194 196 205 242 37 -241 0 +-133 -189 201 -222 0 +169 203 209 219 -221 165 191 -222 -180 -121 0 +-204 143 -217 207 -241 0 +-241 217 -170 -236 -59 0 +191 -211 240 197 199 0 +198 -212 233 -214 0 +-233 -184 213 0 +166 221 -216 132 197 195 -212 -181 -176 0 +212 195 133 207 0 +-191 150 -184 -193 0 +153 198 16 227 0 +-184 196 220 0 +-205 -232 189 0 +-215 194 -212 0 +-192 227 211 161 168 0 +-213 -232 89 -184 203 -227 167 -207 0 +-199 240 239 -207 187 -190 -214 -228 0 +-235 -191 -227 239 231 0 +-182 -229 -191 194 187 -223 0 +-195 -207 -234 186 0 +-230 -197 -165 0 +-210 -242 -238 158 -182 -211 197 -220 228 0 +180 150 -205 217 0 +235 -190 219 139 -198 -67 -212 -239 0 +183 239 221 -210 0 +192 185 -219 -111 -193 158 0 +229 -198 -183 0 +-84 -217 -177 0 +-215 -178 -40 -207 161 0 +-132 -209 102 188 -241 -220 150 -208 -51 0 +-218 238 215 -117 199 -132 -193 213 0 +150 192 197 0 +-54 -228 213 0 +206 -201 -179 -187 -225 54 186 -165 217 0 +212 -237 0 +98 189 -197 -52 0 +-229 -227 -168 185 188 -197 -213 0 +-180 216 224 0 +-215 -205 0 +-184 242 -235 194 221 0 +231 -183 -182 145 0 +177 -105 233 194 170 -234 -186 0 +195 234 -215 200 196 0 +227 -233 172 -180 222 -168 0 +228 208 -236 190 -108 0 +165 -152 -184 221 202 219 0 +-183 -205 232 0 +-194 -186 221 0 +-222 -194 179 -236 -230 -167 242 -202 -124 0 +-188 203 -179 0 +225 234 215 73 -172 230 134 -226 -200 0 +-188 -215 104 -227 -125 0 +-226 235 202 0 +213 211 184 181 -196 166 0 +225 -196 199 190 -236 0 +-222 -229 -199 240 -175 206 99 0 +-232 -189 140 -167 -225 -209 0 +-215 212 -171 0 +-226 26 219 0 +-242 -230 -169 -203 -237 204 167 195 -173 -79 186 0 +-231 189 -221 198 0 +200 -219 -142 204 182 -221 80 -168 -213 -235 -170 237 -230 -232 207 185 160 0 +-239 170 184 0 +-126 239 231 -172 0 +92 240 232 -194 229 0 +214 36 207 237 167 0 +200 183 215 206 -196 159 0 +225 206 -175 93 0 +-114 201 237 0 +-205 -160 171 -215 -229 -242 216 210 -239 191 203 217 -136 140 198 -226 -219 211 -184 175 0 +-209 -135 165 0 +-234 192 236 -215 0 +-208 -212 229 -205 151 232 -216 -144 0 +-150 -80 -170 -167 232 -206 227 0 +197 -217 -234 0 +200 236 -180 -194 -175 0 +-202 178 223 0 +226 -215 -231 165 0 +-181 242 -235 -214 0 +241 -199 228 242 203 0 +-223 226 -179 201 0 +202 -204 174 0 +-230 30 218 -205 215 -233 0 +-209 237 -231 0 +225 190 -178 -191 150 180 -175 0 +204 192 -217 0 +198 -202 208 -180 190 0 +-129 201 215 0 +213 42 219 174 0 +228 -207 163 203 219 0 +-212 -221 180 0 +201 234 -226 230 0 +-180 -58 -172 0 +-234 145 203 0 +-195 -219 223 0 +27 221 184 -194 0 +173 227 226 -182 -240 212 223 0 +-207 211 232 -240 -63 0 +-237 -233 -217 0 +-188 238 169 0 +214 238 0 +-146 183 104 -191 -204 0 +199 -196 221 -203 0 +-171 166 -195 0 +-188 -152 193 109 -186 -241 214 129 0 +184 -206 166 -154 -235 214 0 +163 -240 -181 199 -235 0 +223 141 -235 0 +-220 53 50 0 +-190 198 178 213 0 +195 185 193 -241 220 0 +201 -176 188 -242 222 -138 216 0 +-223 166 195 0 +209 -198 181 -169 0 +-231 220 -183 0 +-193 -240 184 -202 127 182 0 +201 -242 195 236 27 171 186 0 +-191 -182 176 0 +166 130 -192 -198 0 +239 198 178 232 0 +-221 -240 -241 -186 -209 174 235 -122 0 +209 -189 188 237 -212 0 +-131 231 232 -241 -217 195 0 +188 -227 -223 224 -237 218 0 +-219 -192 -197 182 179 -190 218 -229 213 -177 0 +-212 191 168 -223 0 +-168 183 -232 0 +157 151 229 -173 190 188 -232 166 0 +-227 209 -175 -202 0 +-231 -195 -218 110 0 +193 226 -185 0 +-215 214 44 0 +171 -215 -233 0 +194 -192 -229 165 0 +-185 164 240 -216 0 +-242 179 201 -209 198 -197 0 +185 -236 -228 -182 199 -223 63 197 201 0 +-217 206 221 -222 0 +186 -207 173 0 +-209 226 -183 190 40 0 +-175 242 181 113 192 0 +-211 194 -225 233 -190 -239 0 +229 130 -224 0 +194 147 216 0 +120 -224 241 151 0 +-188 -223 199 201 0 +237 128 -176 100 238 208 -161 -231 179 217 174 0 +-241 -242 232 199 114 0 +239 -212 193 -167 -234 0 +-227 208 157 -31 0 +234 -196 -223 183 -78 -191 -208 -141 -149 205 213 0 +-196 -38 -199 -201 178 237 173 0 +226 201 -193 0 +187 -76 -200 0 +191 170 -229 238 0 +-188 185 -196 175 -205 208 133 -183 0 +-200 232 199 184 0 +193 -202 -176 0 +233 225 -116 0 +216 -195 -185 206 224 -183 173 -222 -142 233 219 203 0 +161 -167 -174 238 -232 216 0 +234 -209 207 -204 -224 0 +247 -245 258 -184 229 -261 -201 -257 -189 0 +-255 -253 237 184 254 0 +249 -239 248 236 0 +257 259 -252 246 0 +145 252 255 0 +251 245 -243 -250 -248 0 +244 234 256 0 +194 -210 133 191 -234 -251 243 0 +136 -176 250 -247 -244 0 +-258 261 -249 0 +160 -260 203 184 227 -246 0 +-259 253 260 0 +-254 -222 -256 230 -201 0 +233 -235 249 0 +253 202 -261 0 +198 248 249 0 +261 159 243 248 0 +-245 252 -243 -235 -222 0 +-226 -238 -168 -185 -259 -251 -253 257 -221 0 +-147 222 -255 0 +-231 -180 -257 -203 0 +-245 -251 248 0 +-208 256 196 -128 255 0 +249 245 261 0 +261 260 -256 257 0 +252 -222 -259 0 +257 -246 -238 -233 -254 0 +259 -116 254 196 -245 228 -248 0 +235 244 -246 -161 0 +235 -260 -258 0 +244 -247 184 261 -243 -191 -225 0 +-259 -185 190 0 +211 -196 -143 0 +243 -226 190 0 +204 251 227 -260 0 +229 256 165 245 0 +-253 -244 260 236 185 0 +197 217 -256 -249 0 +203 155 226 255 229 -240 257 224 254 0 +221 -244 231 245 0 +-260 245 -253 -258 243 220 0 +260 141 216 235 0 +246 -250 -255 226 -194 0 +171 -177 246 187 247 -227 -243 0 +-184 -203 153 -175 0 +-253 -215 0 +168 189 255 -181 -195 0 +202 -130 -255 -250 240 -248 198 -245 0 +258 -255 -98 0 +-120 253 -257 202 0 +186 252 47 0 +-250 260 -254 0 +228 256 182 0 +-196 188 206 0 +241 -182 -244 0 +260 -255 261 253 0 +-232 -254 246 244 -237 -243 0 +250 236 191 0 +-260 -199 209 259 0 +183 -242 -128 -189 261 0 +184 251 208 0 +187 -244 -255 0 +-260 -255 243 0 +248 -257 -258 0 +-211 -244 249 175 0 +-206 191 -160 216 0 +-257 243 0 +-256 -258 198 -185 0 +-232 166 188 0 +209 254 189 -165 249 0 +-213 -231 174 256 0 +-212 176 233 -252 -257 -249 -191 248 188 -230 0 +247 261 -215 260 0 +247 221 255 -193 251 0 +224 -179 -209 233 -261 250 230 186 -137 133 -245 185 258 249 -177 0 +254 261 -190 0 +184 -248 257 -243 244 0 +251 -51 121 183 -252 207 254 0 +258 -254 -252 -230 251 238 253 239 256 -248 0 +249 208 247 0 +-258 -253 -248 0 +-251 -213 -233 0 +158 -170 -244 200 0 +-257 -248 -190 250 0 +-231 -254 -199 -184 244 248 214 -236 -185 0 +-257 255 -193 260 0 +156 -173 -257 246 -216 0 +-252 251 -258 213 -250 170 0 +-259 250 -247 0 +253 -261 215 -131 260 0 +-252 -251 -194 -222 -247 -244 0 +-183 -242 195 247 238 0 +258 -214 -251 0 +-258 250 -157 0 +-261 -254 253 255 -183 -251 -260 0 +-183 -245 139 -260 128 0 +-260 240 177 -221 -258 248 168 -244 170 261 -182 -217 247 0 +251 -235 -164 253 -247 0 +254 -252 -221 -249 -202 -108 236 -238 0 +203 142 -216 0 +259 209 230 0 +-185 171 246 190 252 257 -255 228 201 261 159 -251 0 +-191 196 -258 173 -248 0 +261 -197 245 178 0 +-254 248 179 0 +-195 -70 248 192 0 +247 235 -239 260 -227 0 +-236 -251 197 -211 0 +260 -247 -258 0 +-258 260 238 -253 -251 259 257 -176 0 +137 -176 209 -250 222 0 +234 -222 -246 208 0 +195 -106 -252 255 -167 -258 -259 -220 0 +-141 188 -241 142 199 -246 227 0 +252 -196 245 -230 0 +-201 256 247 -252 0 +198 205 110 0 +230 -205 258 0 +-246 250 229 -248 0 +-253 250 -212 -244 -192 -233 -254 -251 187 -229 0 +-220 -247 186 260 -256 -243 -194 205 -229 -261 -183 -252 0 +-195 253 -260 -250 0 +254 186 249 0 +-251 179 -220 -214 144 0 +227 189 251 252 0 +189 -244 212 -255 -178 0 +258 210 -175 254 0 +-247 256 -245 179 0 +239 -210 254 0 +-191 -187 171 259 0 +-249 257 258 259 245 -220 196 244 -247 -193 -256 0 +-261 -240 -245 0 +246 -194 260 -188 189 -261 226 258 0 +248 -171 -244 0 +-188 256 -236 -198 261 -260 0 +227 238 -211 0 +245 -214 -248 -231 255 -247 -256 0 +-38 -235 212 -254 86 261 250 246 257 0 +244 -234 203 0 +184 -211 -244 -179 259 253 -136 252 0 +-199 -9 250 0 +140 196 247 0 +-258 -249 -259 -219 218 0 +231 191 -90 -237 254 -247 80 -204 -255 0 +-178 188 197 -253 243 0 +-223 213 245 0 +-247 -245 250 216 0 +253 153 230 -229 -192 0 +245 -231 229 -258 0 +246 -261 -247 254 -137 175 0 +244 -243 -195 -255 -252 0 +-247 -254 0 +255 177 -144 0 +185 -258 -223 0 +253 -256 -260 171 166 -176 0 +-167 194 -221 0 +-205 241 -253 186 223 0 +-252 161 132 193 0 +-237 -171 -246 224 0 +-255 -185 -250 212 -168 0 +176 254 -255 0 +260 -253 -243 -247 248 -208 0 +-259 247 -261 134 0 +-247 -199 -261 244 211 0 +187 -241 220 -257 247 217 0 +173 178 -258 0 +-241 245 259 256 0 +-238 -259 -204 0 +238 248 -177 -183 214 0 +-189 -238 -260 0 +-250 -204 -167 192 0 +251 170 224 0 +-221 -253 233 -257 0 +188 244 -261 197 0 +253 -227 250 -216 0 +252 260 247 255 229 -210 251 0 +-246 215 -230 260 245 217 0 +-103 185 245 0 +256 -182 -260 259 -253 215 -192 0 +-253 258 250 -191 -225 0 +-250 -200 249 187 -113 251 0 +-221 247 -259 206 249 0 +180 -241 199 125 0 +257 247 -243 -251 161 0 +203 157 199 -200 0 +-210 246 -183 -244 245 0 +-163 -214 -243 0 +224 -248 -192 -258 0 +-257 -231 -230 -226 0 +254 253 -178 251 0 +201 253 246 210 0 +191 -246 -183 0 +246 248 -186 244 -251 -234 0 +-209 253 243 186 0 +-236 256 254 252 -242 -243 0 +-189 251 -259 227 252 0 +258 163 -206 -187 252 0 +-250 -257 -192 0 +-246 200 -251 -257 0 +-253 257 180 192 243 199 221 -241 -212 0 +226 -249 207 0 +254 -255 -248 0 +235 -184 256 -253 -259 243 -260 181 213 255 0 +-256 -250 -185 -189 0 +-189 -225 246 -170 252 0 +197 193 -255 0 +-180 -250 -245 0 +-198 218 -261 -259 0 +-254 -259 247 256 -166 -176 -255 -136 -204 0 +23 -244 261 0 +209 -216 -174 -249 0 +257 -167 258 248 0 +217 254 245 137 -260 0 +198 225 -186 -253 245 0 +257 -147 -247 -215 258 0 +-253 -255 -148 0 +257 -249 224 0 +-254 -244 -184 0 +-242 235 246 0 +205 -259 -258 -230 -254 -248 251 -172 250 113 -228 171 0 +-199 184 256 -244 -247 0 +210 -245 -221 -198 -235 -219 251 195 -227 0 +254 -170 243 197 0 +-303 299 257 264 -64 0 +-270 -284 244 246 -282 285 283 291 0 +-300 286 -264 0 +-258 -299 297 0 +295 278 -206 245 279 0 +-292 -256 249 270 0 +268 -258 289 246 253 0 +250 171 -212 259 0 +257 -295 255 0 +-305 -227 280 -259 0 +287 -192 -165 -293 263 -217 -232 -283 0 +-220 269 -294 0 +-208 250 131 -290 0 +262 193 259 0 +272 275 282 -261 246 239 0 +-301 260 -217 0 +-291 259 -280 243 273 252 0 +256 -304 290 0 +305 -262 -273 0 +-289 281 256 210 -198 298 303 -279 277 -258 130 0 +294 -252 235 0 +-250 -230 -208 0 +-174 -287 266 265 0 +198 -263 -255 -254 301 0 +198 288 -267 0 +-274 -297 251 -265 0 +188 304 -253 -250 248 296 0 +-213 259 -249 0 +-250 300 -186 0 +-158 -302 254 0 +-157 -266 -281 209 192 0 +-277 302 2 0 +-275 -171 -285 0 +187 -288 245 293 -73 220 0 +229 196 244 -278 -248 0 +179 292 276 249 248 0 +225 255 -246 0 +-233 251 -228 0 +-220 260 284 271 -248 0 +194 -296 -250 -298 274 -276 -268 0 +-45 222 -286 0 +-269 267 244 0 +-272 -271 234 -278 -230 0 +268 254 285 0 +-264 270 -243 277 -268 -274 0 +305 299 258 261 0 +-261 175 0 +302 -182 -209 285 295 0 +263 -258 299 -168 262 169 -274 -143 293 275 0 +228 -287 299 -274 -261 -189 -297 -254 300 0 +252 -257 -245 289 0 +-193 287 -183 0 +-244 288 293 0 +288 -261 -252 301 217 299 271 -278 -258 -255 0 +-305 277 248 0 +300 -263 278 -271 -270 -171 0 +289 -300 -270 -243 -246 0 +282 294 -213 -299 0 +225 -304 265 242 268 0 +-192 -249 220 0 +-302 264 -132 218 164 -294 0 +-275 -305 263 0 +254 -281 -298 -191 206 -275 0 +-292 304 253 0 +-283 -240 178 205 0 +-292 -303 273 225 0 +-254 298 270 249 229 -194 284 0 +-277 -247 263 0 +301 247 268 0 +243 -286 179 242 0 +-305 192 -215 261 -270 237 0 +252 271 -258 269 236 263 0 +-266 -265 -263 -253 0 +-260 -296 279 -270 0 +-246 -245 251 200 0 +-243 185 246 249 190 0 +-275 -180 268 0 +-251 286 282 -272 0 +-202 -305 253 293 0 +274 298 -193 251 0 +-252 291 -257 0 +-302 284 278 0 +253 259 -285 -207 -257 0 +-253 304 -279 -237 0 +-170 254 263 -165 279 305 277 0 +213 258 226 293 -286 0 +-301 -247 -283 305 0 +-124 -232 -264 195 168 263 290 0 +275 297 -219 0 +259 -246 -288 273 -209 -262 -245 238 0 +-91 215 -235 0 +280 -261 248 0 +-249 255 293 -278 -283 0 +251 243 253 305 -270 204 0 +201 282 183 -213 -255 305 -290 0 +-289 290 227 -243 0 +174 -215 251 304 250 207 296 0 +-256 -167 -284 0 +-228 259 254 0 +-284 221 239 129 169 0 +-304 -293 279 0 +-268 -291 -284 -264 294 -244 0 +285 -284 -272 0 +-251 247 145 -248 0 +-262 243 -273 304 223 -275 287 0 +237 -248 266 0 +-274 249 298 254 281 -189 169 277 141 -292 263 -201 0 +115 -269 -146 -277 -260 264 290 -278 293 -232 292 -257 0 +-262 -285 -250 -241 -183 288 0 +-217 263 -302 -258 -271 245 0 +286 -288 -189 -165 255 0 +-280 259 261 262 281 -263 0 +187 -210 -270 0 +-251 -305 275 0 +-287 -251 277 0 +253 -246 -189 -243 -262 0 +268 294 250 243 0 +247 -258 278 275 -195 -299 -263 -255 194 -242 265 295 0 +-258 -283 -289 304 -196 -263 -220 0 +-305 -39 246 206 -275 193 0 +-286 288 -300 268 282 305 0 +-173 -223 269 249 0 +-251 -258 -267 -269 -259 -299 0 +-262 269 -253 230 0 +-248 -232 266 -301 -256 0 +-248 21 249 -189 -298 0 +-279 -283 -265 -227 -270 287 182 250 0 +278 -301 -283 277 -229 0 +271 253 156 -212 269 0 +282 -260 -9 -297 263 0 +-276 281 253 258 0 +261 268 253 -266 -251 0 +271 -254 257 -270 0 +255 -249 -295 0 +294 -288 -282 0 +281 -252 -284 0 +-182 -270 222 -251 213 175 0 +-259 -182 -293 0 +-256 279 273 -246 0 +-277 -200 -254 0 +293 -232 251 274 0 +248 -218 230 -12 241 0 +-230 284 186 -277 0 +-293 300 278 0 +-252 191 -271 0 +305 196 290 244 -254 222 276 -271 -235 0 +273 285 255 -271 298 -279 -259 -193 0 +-259 -225 -283 0 +229 252 298 0 +256 -291 242 0 +-243 -258 -304 0 +-234 -272 -192 153 204 0 +189 -282 201 301 291 -244 -283 -141 252 194 0 +-244 271 195 0 +300 209 262 278 0 +201 269 182 0 +-244 212 -250 0 +257 191 265 -294 254 280 -261 0 +184 -227 -300 -305 0 +196 -287 -244 283 0 +-219 -260 262 0 +271 221 251 -245 -287 285 -283 0 +292 -145 249 -238 -248 293 -250 -208 -251 -298 -258 0 +-224 -243 -251 -190 248 0 +268 -269 243 -200 217 -239 0 +-274 301 -222 -288 262 0 +-182 291 -186 -229 283 0 +-219 -281 288 0 +-216 -303 -294 256 249 -258 0 +-247 276 -291 253 242 -288 0 +-275 259 222 304 212 0 +-251 99 -275 0 +-129 274 -253 -267 -292 -233 0 +30 269 -265 181 0 +-181 -302 -274 0 +-252 -244 250 0 +-244 -284 -254 303 0 +284 -293 -249 -211 243 248 0 +293 -263 -303 -304 248 0 +-195 -298 -256 248 -219 0 +-186 292 249 -294 250 -228 0 +-271 258 282 0 +-55 -249 285 277 257 280 -268 235 266 261 199 0 +-149 -290 278 0 +-254 -256 292 0 +-187 286 249 197 -266 141 271 290 0 +-290 -272 -18 -293 111 -250 301 262 0 +-289 210 293 255 -285 263 256 -271 -267 253 288 0 +268 280 -245 -256 0 +-297 265 -190 147 264 0 +264 300 246 -276 -277 -170 -266 0 +262 -268 -281 0 +-300 269 236 0 +-279 -173 268 0 +284 247 -288 0 +-103 -265 242 0 +246 -253 199 0 +-166 -276 -289 -264 0 +-297 294 279 0 +214 -295 -294 -197 -189 0 +-256 -285 248 -199 0 +-256 247 -286 -192 -188 232 -283 268 0 +275 295 -244 0 +248 254 -299 -262 0 +300 -291 -244 102 -292 270 213 262 -301 -279 -285 0 +293 279 264 0 +261 -247 269 -270 0 +-262 304 -190 0 +-279 269 203 -247 276 236 0 +215 -230 252 -290 0 +-248 -263 -210 0 +335 -318 -282 341 329 268 262 -342 -306 320 0 +-334 -256 -287 -277 317 -313 327 302 295 0 +328 308 -286 0 +270 -333 342 -332 -286 -280 -314 -337 -167 334 281 -266 0 +285 273 229 0 +331 -253 343 0 +-340 -248 -260 263 0 +235 321 230 0 +199 347 336 303 0 +-321 -335 325 304 310 183 0 +-345 315 -343 0 +-331 -310 -339 330 288 332 -315 322 324 302 309 0 +333 311 -329 244 -289 0 +300 306 -319 254 -217 0 +-320 -348 -347 0 +-301 -326 0 +316 -295 323 0 +272 340 -211 251 -325 -336 0 +225 344 -328 -255 318 0 +-257 -265 254 -292 345 0 +-279 -349 -197 313 304 -324 220 -271 235 0 +338 302 0 +265 -284 307 271 -175 -330 0 +287 224 -276 0 +319 294 -233 254 0 +250 -261 245 277 -197 -327 0 +-309 283 -312 0 +-307 286 247 304 0 +326 337 349 298 -303 -322 348 252 0 +-338 -311 258 0 +-246 258 312 -323 339 -188 -308 167 -279 0 +-286 262 346 -344 0 +314 -346 -303 -316 -341 0 +-289 -280 283 0 +-274 -317 -276 -286 342 0 +349 -263 271 0 +-244 -267 -316 0 +-308 -286 331 -330 -255 -243 0 +-324 327 -252 258 -233 342 0 +195 318 323 0 +264 -318 -336 188 -304 -204 282 0 +260 297 324 -340 243 0 +311 269 306 244 0 +-339 209 348 337 -171 332 262 -317 285 0 +-327 316 -308 340 -71 170 315 0 +324 -223 299 0 +-328 -317 343 0 +-276 327 282 -320 0 +-294 -243 327 320 249 278 346 0 +-336 306 332 0 +-331 251 -310 -338 0 +-290 327 -329 305 -306 0 +244 -346 299 0 +309 -273 268 0 +-308 270 -261 -306 -207 0 +324 337 -261 269 316 0 +-180 247 251 -268 0 +293 139 338 -347 0 +335 275 273 248 0 +-227 -314 305 171 0 +285 -265 0 +-295 192 -330 262 274 0 +-311 -343 291 302 0 +318 -322 -266 314 -346 -262 -268 290 -186 -339 -272 -311 -248 -276 -193 0 +-312 -266 -347 0 +-334 319 257 0 +312 -291 270 -258 0 +319 315 256 264 -289 277 0 +327 -250 254 0 +318 341 -335 249 0 +-184 309 307 -246 243 -247 261 341 254 145 0 +-343 -171 -308 326 -192 0 +-251 259 265 168 246 254 318 256 0 +257 321 274 254 0 +308 -326 -309 -322 0 +216 344 -318 -211 -173 293 -213 324 -272 0 +316 -186 253 347 39 0 +-318 319 346 320 0 +274 169 303 316 241 341 334 -314 0 +287 -193 -320 0 +311 333 -339 319 0 +267 282 -310 0 +-303 -302 -285 251 0 +304 327 -309 0 +-281 -298 345 0 +281 -296 269 0 +313 297 -349 345 299 0 +-207 347 -296 -291 232 213 262 0 +-317 -249 346 0 +-322 247 -333 299 0 +-328 -298 299 344 329 0 +183 323 334 0 +307 263 258 0 +-313 261 346 0 +-326 -236 197 222 -187 -335 -332 208 0 +-276 -346 311 0 +278 -322 -178 0 +303 346 323 324 335 0 +-347 -317 -245 0 +292 205 -319 -301 266 0 +344 254 253 0 +-340 182 341 205 -162 -290 -311 325 268 0 +341 296 -290 -269 -307 -212 0 +-321 254 -320 307 -314 -280 278 0 +-317 -282 -332 0 +-234 306 -343 -314 0 +-252 -341 346 179 0 +258 317 -303 -318 -87 0 +324 -316 -336 0 +-310 205 325 -311 0 +328 -329 -198 237 244 -186 -259 -326 0 +251 -279 -282 0 +-251 345 -326 -335 289 336 255 247 -323 0 +-331 -221 -255 -306 292 0 +-329 249 -326 0 +-295 -298 341 346 0 +259 -272 -250 -308 307 258 -325 -122 0 +331 -326 232 0 +263 -245 265 0 +251 289 246 65 -268 0 +-303 -298 -306 0 +301 311 -253 0 +277 -274 291 0 +306 249 -335 333 0 +249 -343 -306 0 +326 334 314 -263 280 291 0 +323 265 334 -340 0 +306 324 -339 -349 -261 -244 191 263 0 +-333 215 294 339 265 0 +323 -333 318 311 -348 0 +-344 -292 -315 303 269 0 +-327 -265 -316 -132 -317 0 +-335 -294 342 0 +-312 -195 329 -267 0 +-345 309 -305 348 343 0 +-223 -250 -278 302 267 -334 0 +313 316 245 -275 0 +338 335 317 -303 331 -311 -298 260 -295 0 +-325 346 -257 0 +-302 -251 -336 0 +326 -341 190 -277 0 +-349 330 -226 -310 0 +-276 334 -349 342 244 315 0 +234 209 306 0 +-23 -342 -348 330 -344 248 -296 265 -316 306 -269 0 +344 327 -324 310 -270 0 +-346 283 -320 0 +-279 -313 290 0 +320 -331 300 -280 291 0 +-339 314 340 -276 -337 284 333 312 341 259 0 +342 -325 -228 349 307 0 +-341 317 -319 -310 281 -323 -208 0 +-340 341 281 -179 0 +-282 -201 -249 -296 0 +177 -261 -312 0 +-315 -258 -330 -326 -221 344 0 +-300 -272 338 -337 -312 0 +332 286 -329 341 319 0 +345 254 292 330 -331 -319 344 295 0 +-318 336 313 0 +335 -272 301 -307 294 -315 0 +-335 296 -330 -328 0 +-313 -286 334 0 +316 -314 278 0 +335 328 -322 311 327 206 315 -347 0 +-257 287 -281 0 +-322 -330 265 0 +-248 -336 333 0 +322 -266 310 337 300 0 +-276 346 243 298 0 +-342 -176 -306 -225 0 +338 323 -309 0 +-334 -274 -186 -309 -255 252 0 +295 318 289 0 +-265 -193 310 0 +-267 290 -218 0 +312 331 -337 -288 0 +-314 -169 224 -271 0 +-185 -262 259 0 +-342 337 -315 -186 -286 0 +-312 329 -280 0 +-202 311 325 0 +-313 261 248 -326 0 +-330 333 -324 -339 322 0 +310 -247 298 -312 0 +334 -297 306 0 +250 320 335 0 +289 -315 -208 0 +248 348 -316 -306 -309 -258 -311 0 +-317 -285 339 0 +325 254 -334 0 +278 -322 -303 -344 249 -247 -315 330 256 0 +-253 316 342 -243 282 344 -280 0 +325 -340 -253 312 -240 -291 0 +-289 -319 -344 312 0 +-319 -335 0 +343 282 -274 -303 261 0 +-258 -332 261 -188 297 346 0 +-337 -258 200 0 +256 -270 274 334 0 +-256 293 -333 301 270 260 347 0 +-292 -333 340 291 0 +-319 280 297 -286 336 -311 0 +311 -294 -222 -314 0 +-290 -346 273 259 313 326 255 -316 -256 288 0 +266 288 251 0 +-329 243 -334 0 +-328 326 306 -325 -315 246 -301 253 0 +256 -316 268 203 204 -185 -327 -288 346 0 +-348 -346 337 278 -267 332 0 +-300 -298 -225 269 330 0 +339 252 -330 0 +-315 -289 290 -318 0 +-335 -348 253 -205 -336 0 +-270 -311 337 192 0 +306 -331 -247 332 0 +333 268 -309 283 -291 0 +-296 291 -345 -328 0 +329 -308 -320 0 +206 269 302 273 0 +348 -261 -338 316 223 0 +308 -333 -307 0 +-336 344 -319 0 +321 345 265 328 -295 -258 0 +-254 -285 234 270 -267 323 344 182 -295 -304 0 +-330 266 241 -322 336 313 265 283 0 +-269 -283 194 -329 -293 311 0 +343 -254 -290 0 +285 300 -234 0 +-277 -295 -342 -270 0 +226 314 -282 -326 0 +339 -306 315 0 +295 -189 -334 -338 -270 0 +-327 -312 349 0 +-331 323 -332 0 +-325 302 293 0 +317 296 267 -229 0 +310 240 -312 -323 285 0 +-192 318 342 332 0 +313 -189 -320 346 273 0 +-333 268 -273 -316 0 +-315 335 319 -220 265 0 +332 345 -338 0 +-255 -275 -311 0 +-259 272 -215 -266 243 -297 -244 -292 -295 340 0 +-310 -246 -258 0 +-304 -271 234 341 0 +271 -208 -295 -318 0 +-253 -346 -317 333 -303 -269 -272 347 315 -342 -247 341 -273 -242 0 +313 -289 344 -172 0 +-310 -308 334 0 +284 -331 -326 323 0 +-167 -276 -314 -266 0 +-307 -197 -339 -250 230 0 +-326 -348 280 0 +302 -284 -290 326 -216 0 +341 -335 226 0 +-318 245 -303 344 -251 -287 343 0 +-330 283 -345 286 -327 -321 -177 -308 0 +334 -259 268 0 +-276 300 -324 306 0 +-337 70 307 336 -170 310 261 282 -345 0 +343 327 -264 319 -345 333 0 +322 291 182 -284 -325 -290 328 -264 -344 -280 0 +-290 326 -297 0 +-243 220 258 284 310 -260 303 -326 0 +-317 266 249 -327 0 +230 312 -265 271 0 +-176 -198 0 +-312 -69 -315 -272 -338 -349 0 +318 209 -330 337 -196 0 +324 -227 250 -258 -279 307 -311 -290 0 +-335 146 244 0 +261 -263 -213 0 +-347 -296 -344 321 0 +261 -308 -259 0 +-291 -272 260 0 +318 -269 -349 -345 0 +209 -348 328 317 -309 258 -283 0 +332 -261 -251 -346 310 -342 0 +311 245 -316 273 0 +-224 305 -336 284 0 +337 316 0 +-264 -310 0 +-347 -256 -208 338 -279 -342 345 0 +95 -345 -335 309 262 263 0 +345 312 -308 252 0 +-302 253 251 0 +-337 -278 -347 -261 0 +-307 -328 253 -327 0 +327 311 -196 337 0 +-255 279 -334 270 0 +320 248 257 0 +-325 306 -284 0 +343 333 -273 -267 -336 0 +339 301 -302 -253 271 198 -308 262 280 0 +-348 324 -245 0 +339 -300 -281 257 0 +-142 264 -348 -295 -331 -318 0 +239 322 -348 0 +314 -175 -282 273 0 +309 254 325 -184 300 337 213 344 -336 326 262 -340 -317 0 +-62 343 -336 0 +-294 -295 -313 0 +337 -220 -303 -203 0 +254 -291 -107 306 0 +250 256 -185 0 +-98 191 321 0 +-325 340 334 -330 -310 0 +255 -332 341 0 +239 271 226 -244 0 +-320 342 -177 346 -292 -247 -287 336 -267 335 326 332 0 +288 339 -256 282 -195 -333 342 -280 338 267 0 +312 119 -315 0 +-250 240 271 341 348 349 0 +-68 -331 195 0 +-254 249 338 0 +336 -319 270 -316 0 +-326 309 315 263 0 +-313 339 258 0 +293 -244 245 0 +269 -252 205 0 +263 -324 -329 0 +-273 -271 337 323 0 +312 334 -218 -240 -215 0 +193 -272 334 247 251 0 +-314 -343 315 0 +-327 -270 263 177 0 +345 193 -79 346 333 -217 310 -348 251 325 -327 308 0 +-264 -312 252 0 +339 -212 249 -326 257 239 315 -129 0 +305 294 273 0 +-265 253 -333 262 321 0 +333 -295 258 0 +349 -253 281 169 0 +233 310 329 333 -249 256 248 290 343 -220 261 -205 299 125 -201 0 +25 293 274 330 -255 -349 256 334 -336 342 0 +-299 306 325 -312 277 0 +-322 -337 304 339 321 314 182 309 0 +329 337 -286 0 +338 -337 -315 -246 332 302 -269 312 0 +348 -257 306 333 324 -216 0 +-319 -248 -344 -251 280 341 0 +263 333 -254 0 +256 -243 -268 -313 -334 0 +-345 -300 256 0 +-348 -192 240 0 +265 318 -218 322 238 0 +-321 -320 322 184 0 +324 -172 312 0 +-318 -260 326 -334 -257 0 +-321 -301 335 -326 -322 0 +-342 -321 -252 278 -338 -272 0 +318 263 -310 0 +-208 320 339 -309 -330 0 +-321 345 300 -252 -255 326 0 +333 -245 277 331 320 260 0 +-330 -244 -281 0 +234 -268 298 0 +-306 339 344 214 337 268 252 -349 0 +-315 259 320 -284 0 +-340 334 327 0 +347 312 313 0 +-348 312 218 225 272 0 +-305 -217 338 0 +-196 -327 299 0 +320 318 283 287 -268 -304 0 +-249 -336 -278 0 +243 349 325 293 0 +-182 172 320 307 0 +345 196 -339 -330 0 +333 -296 332 -319 305 -318 0 +334 322 -331 327 -344 -246 0 +296 261 240 -265 0 +267 -247 333 325 342 0 +-332 -347 -264 -267 -291 -340 -335 -313 0 +-287 -192 -323 310 279 0 +-299 -316 243 0 +-323 328 342 -281 343 0 +-267 -158 324 330 -277 -252 284 310 0 +264 -267 339 -235 0 +-324 -335 -308 253 340 278 307 0 +294 -318 280 -324 -169 335 314 0 +179 316 347 339 0 +270 -340 -333 -309 -310 319 -272 -349 345 -312 0 +-223 -312 -311 -284 -288 0 +272 -299 -332 -331 0 +315 341 -339 316 -311 344 0 +-262 201 -324 0 +-333 267 247 -320 0 +198 -267 -255 0 +259 341 -313 -349 -283 332 346 0 +309 366 -380 361 -362 0 +362 -301 289 370 254 0 +253 -364 352 -324 0 +387 -355 316 0 +-298 347 -338 368 371 -307 317 0 +-347 283 -342 0 +380 255 267 374 -313 -379 378 357 -291 0 +-237 -373 360 -348 364 -369 -339 248 0 +-299 -356 -253 386 0 +-301 -365 372 367 0 +-287 335 -370 -261 -310 0 +-376 -294 -366 381 0 +274 -377 -374 246 -350 316 318 0 +-387 287 -342 0 +359 322 -249 268 -371 0 +-313 363 278 284 0 +313 383 -342 -332 -348 0 +-363 353 -368 0 +382 -367 -314 0 +309 -331 -382 -318 325 -353 -272 0 +385 272 -347 0 +-381 -347 -375 -360 0 +354 245 -384 -297 379 0 +-273 376 -372 0 +377 -188 -351 0 +266 -385 -246 272 -358 0 +373 350 -357 365 -302 -352 0 +262 259 351 -330 0 +384 -313 -340 0 +-383 163 -251 355 0 +-378 356 358 0 +-361 -386 375 -359 -354 369 0 +378 -385 -364 0 +-249 -221 191 -363 -374 0 +-308 -363 -354 -371 -376 380 0 +-328 -282 273 0 +346 -367 372 0 +-354 -361 359 0 +387 338 352 0 +309 259 -384 -334 0 +262 -252 -357 0 +378 -348 -371 181 -368 0 +261 345 383 0 +-372 276 365 255 0 +259 -310 372 382 -292 0 +-310 352 -127 0 +313 317 312 -371 -367 338 0 +-338 -366 278 0 +-342 356 -347 330 0 +-266 206 -351 380 196 243 -374 333 -355 257 -356 305 0 +371 -352 -320 0 +-367 -329 385 0 +-276 307 -356 0 +-340 367 -331 341 -295 -285 344 0 +276 312 0 +339 -254 -353 -386 -364 255 -385 -304 0 +-375 372 329 0 +354 -243 351 -317 353 364 -374 370 0 +347 367 -356 383 0 +298 -310 347 0 +360 291 374 334 385 -384 -203 377 -326 0 +-381 -357 -342 332 350 0 +-368 -357 -374 0 +-374 383 214 0 +272 -256 264 356 0 +280 364 366 -357 0 +372 -358 382 360 324 -357 0 +-375 250 359 -244 376 -303 -382 0 +-304 353 -350 369 0 +289 -357 -235 0 +373 -322 379 375 -380 -381 0 +265 -363 287 -358 364 -291 0 +352 243 -325 334 271 0 +313 -376 266 297 260 0 +365 316 336 370 0 +-335 -361 -357 -383 300 356 0 +-254 362 319 -273 -272 0 +339 385 215 -376 0 +-342 347 -335 0 +-378 369 332 0 +382 -379 -369 301 312 -357 363 -268 367 -253 372 0 +-366 -254 -283 346 0 +243 -182 -287 206 0 +-368 298 350 377 371 -342 0 +323 -248 374 359 -363 0 +252 -248 -280 375 0 +363 311 253 0 +-316 -365 359 0 +-369 368 -305 366 0 +-357 336 281 -375 350 0 +-383 251 -333 0 +366 -307 255 343 384 319 -189 -320 324 383 -379 -247 0 +-383 -369 -371 -334 194 -292 356 363 -284 0 +370 383 377 384 0 +-350 -306 202 -357 373 0 +-348 332 190 -333 337 387 -310 -361 -198 371 -319 0 +183 352 308 0 +-301 -304 386 202 358 367 -370 -385 -376 -323 -374 0 +377 -384 366 0 +383 381 -307 -376 0 +-257 356 358 380 0 +-321 -335 -386 0 +-379 375 -367 0 +298 -256 343 0 +317 268 371 -385 -368 292 -359 -306 253 344 0 +373 -203 -298 0 +304 -347 246 385 290 -314 -259 0 +368 236 377 -354 0 +350 358 331 367 371 379 0 +323 371 -301 0 +201 -366 346 0 +-208 286 363 377 0 +292 249 369 0 +-314 362 304 360 305 -382 0 +380 -345 -385 0 +-377 -386 323 283 0 +302 -313 -320 322 385 0 +288 -340 292 0 +-186 339 250 0 +-383 -308 376 357 -360 -340 0 +378 -355 -366 0 +-379 317 -380 0 +-337 -361 310 -384 0 +364 -331 -303 307 0 +-363 387 379 -355 0 +-307 -215 -318 0 +-353 264 372 -373 0 +329 -377 -368 -334 307 363 0 +-358 365 263 320 -258 336 381 266 0 +-384 386 -282 285 0 +363 -214 -360 0 +324 268 -226 -364 -387 304 284 0 +-302 -296 -191 275 0 +-246 259 -386 311 261 360 -365 -333 366 -378 205 0 +-304 310 -371 -376 0 +290 387 -342 381 376 -382 0 +-379 -310 -361 -313 275 0 +263 306 387 -298 291 0 +-385 -365 -315 -321 330 0 +312 276 -371 322 315 -376 0 +377 -312 325 0 +-376 361 339 0 +-370 -363 -362 0 +252 -324 -306 329 -377 -255 0 +356 243 -315 0 +-362 -386 342 243 0 +266 368 -307 -308 0 +306 352 249 366 -357 0 +-366 226 380 0 +-251 119 -385 332 -383 -204 322 -300 -337 285 -342 311 -359 351 0 +356 361 324 0 +-298 -383 341 -309 0 +-250 373 -378 -321 -316 306 239 -385 248 0 +19 359 -356 -376 -381 354 291 369 -355 0 +359 -367 -285 0 +282 -321 369 -199 329 -376 320 0 +-313 367 269 0 +-321 316 -272 336 294 -353 -357 0 +-316 334 -279 333 -312 352 340 0 +-310 -178 -166 245 0 +-357 -386 374 -373 0 +-387 -371 -356 -358 0 +357 -343 352 -259 0 +362 -284 387 -357 0 +374 335 345 0 +-296 385 -314 377 371 288 -109 -363 0 +332 -373 374 0 +-316 -358 352 380 -371 -362 -377 0 +368 287 257 340 -321 260 0 +-352 -367 0 +-376 -355 320 0 +368 -277 -344 0 +-358 -376 -348 380 339 -316 0 +-372 -374 324 -326 0 +-361 -365 -378 -368 0 +323 -255 -359 0 +-376 360 373 0 +-377 382 -328 379 362 -372 -376 -355 -383 265 -318 0 +-127 345 -293 0 +-258 -352 -382 -332 -307 224 359 0 +297 332 365 0 +-381 197 349 206 0 +250 -369 -315 356 0 +322 377 361 374 -372 0 +-371 -292 -380 331 -321 -354 -353 0 +-356 347 382 -244 -283 0 +-355 -182 361 -381 0 +-361 365 -315 383 0 +-276 -312 -308 327 -256 372 -318 0 +303 347 -242 -365 0 +336 -248 376 360 380 -329 191 364 362 0 +377 -351 -352 -291 0 +307 -366 327 0 +367 -220 -383 -362 0 +367 348 372 0 +332 -262 -351 322 -306 0 +248 366 -129 0 +281 374 -308 -361 -373 -327 355 -338 -343 0 +375 358 -212 0 +-355 -312 -357 0 +332 361 170 -326 -256 -311 -385 0 +326 354 -244 355 291 -290 -332 0 +-347 357 -387 -327 0 +-267 -326 -249 253 378 0 +-373 368 371 -317 370 354 -361 -311 0 +325 285 -385 0 +365 -348 351 -250 0 +-376 -306 -277 379 -313 -354 0 +-365 -328 -337 0 +350 -366 271 -307 0 +-287 -384 -222 -387 -365 363 -385 0 +367 -372 249 360 -344 0 +-223 -280 -375 -337 0 +350 361 -380 -376 -349 0 +-316 -257 -270 366 373 385 0 +-372 -387 313 273 -357 249 0 +-305 370 372 -347 352 0 +-383 363 311 0 +292 332 -364 0 +283 -329 378 294 0 +-319 -366 301 0 +-358 374 -347 -369 0 +360 377 363 -378 -343 0 +384 -313 -382 -353 372 0 +308 -360 376 0 +368 364 358 0 +354 273 0 +-325 -376 -285 -355 386 -194 0 +-239 -326 -316 375 0 +360 -213 368 0 +304 -330 -358 0 +-372 -99 -386 294 0 +367 -353 366 0 +-366 383 337 -176 0 +-283 336 327 204 0 +360 185 191 363 298 -381 364 0 +-365 -322 339 387 -323 -360 -359 -350 364 0 +373 -296 -320 381 313 293 357 208 -368 -367 -356 0 +348 -368 336 386 367 0 +383 246 299 -342 -296 387 0 +256 -246 -356 258 -354 330 0 +300 162 334 -336 0 +267 -361 -329 -317 -355 345 264 -368 -297 -229 380 0 +-379 -281 349 358 0 +294 357 -256 245 356 -377 382 362 375 -286 0 +382 -320 -348 -372 -363 -367 334 266 0 +-358 -365 360 -201 278 0 +-356 -347 -334 -358 -340 -178 326 -370 0 +372 377 328 357 369 -358 272 311 345 305 -353 -246 -355 -380 364 -342 -334 0 +-382 -349 -321 376 368 0 +-253 -380 -362 -228 0 +324 -384 -359 -244 0 +-362 295 -307 0 +-356 -367 -384 0 +-372 -353 205 318 -279 -291 -264 0 +-376 -379 347 332 -356 0 +224 -282 -329 0 +-365 315 307 384 0 +230 385 -225 331 0 +-351 -358 -355 0 +345 272 -376 245 -350 0 +-356 334 -371 0 +-250 -351 357 283 -306 243 262 354 -379 -367 -318 -361 375 314 279 -358 0 +319 326 -221 246 -286 370 -369 262 350 371 0 +-385 185 -236 380 0 +374 -373 257 -282 0 +-351 368 353 0 +-178 -229 386 312 -374 356 378 334 363 -328 -295 0 +-356 -263 316 -366 0 +324 373 -299 -361 -207 344 -375 -319 0 +384 -385 -291 -367 374 0 +-371 -225 -374 0 +-351 360 -313 364 0 +304 326 -348 330 0 +206 72 346 0 +367 373 351 288 364 0 +377 381 383 365 0 +-273 -183 370 -280 325 363 0 +281 351 -285 371 -260 314 0 +386 368 293 358 0 +-368 383 -373 268 360 374 326 -309 -351 0 +-352 321 354 214 380 -353 -306 -381 277 0 +-368 -326 -328 349 -378 339 366 276 373 -265 -370 -259 -372 -365 0 +-329 362 256 369 382 286 -266 381 0 +-387 -375 291 358 -377 0 +-379 -382 328 0 +377 -354 -335 0 +-393 -335 267 411 -353 391 -398 -321 0 +408 399 404 0 +373 -248 -414 347 0 +-370 -362 321 -394 -391 397 0 +383 -333 412 0 +326 -257 252 0 +-326 -318 393 -405 413 -410 0 +376 -392 -416 329 0 +-408 401 -327 379 356 0 +-230 306 263 -383 405 0 +-397 364 395 355 -310 -378 363 -390 409 -388 0 +-402 379 414 312 0 +-350 -400 345 346 0 +-307 -383 342 -403 -350 256 310 394 406 -354 0 +319 396 389 0 +400 -399 376 388 0 +390 -401 -344 248 284 -409 403 -374 416 0 +-395 -404 251 -362 0 +-415 -412 -389 402 -407 0 +415 407 398 269 -406 -411 -251 410 -374 384 0 +356 392 -292 0 +-413 -396 415 -397 0 +398 -387 379 -390 -352 0 +400 416 397 -404 350 -274 377 -398 0 +404 -409 406 0 +-404 322 -313 -368 374 0 +408 -399 223 335 409 -326 0 +-384 370 304 0 +-367 -401 403 -410 400 0 +373 270 -408 -414 -312 -370 -324 0 +409 -182 -407 -353 -320 295 -244 0 +-388 -400 -405 399 410 0 +286 -315 -366 0 +-373 -410 403 -411 408 412 0 +406 408 -376 374 -388 0 +-397 314 -416 365 0 +269 285 -381 0 +-407 166 332 405 0 +-372 -269 376 0 +347 405 386 -399 -407 0 +-403 337 367 0 +-256 405 -384 0 +-246 -331 360 284 0 +345 -181 -381 0 +242 327 389 -392 -356 0 +-380 363 395 255 -397 0 +-256 410 -380 356 0 +-407 323 338 403 0 +-355 -280 405 250 -388 -254 0 +-314 384 280 -390 416 375 -381 -343 -399 394 382 -396 407 379 -406 356 0 +356 381 -403 393 -402 268 -390 312 -399 -376 0 +415 391 -255 0 +374 -409 -356 390 -406 -394 -399 0 +-362 -238 -366 309 -392 0 +251 375 396 0 +-408 -381 -265 -394 -413 278 0 +406 -391 -381 0 +-356 -278 396 0 +413 -400 403 -277 0 +351 416 352 -385 394 0 +403 -268 405 0 +393 388 412 402 0 +332 412 -404 0 +399 -391 303 374 390 -392 -394 0 +389 -392 409 0 +-382 373 384 0 +-395 415 416 -337 412 0 +-413 -352 291 -390 0 +226 373 -394 0 +-363 -366 -414 412 365 -409 331 -370 0 +349 -409 -367 0 +-324 -398 387 342 392 0 +-397 407 387 0 +399 375 408 -390 0 +-403 373 299 405 -357 -411 -399 0 +388 335 -394 0 +-405 404 329 0 +-163 368 -358 -283 -409 373 384 0 +201 376 329 -388 309 341 -350 0 +-395 -380 -410 -407 310 398 406 375 0 +-413 361 -295 -184 0 +333 -252 -375 394 410 -406 0 +388 338 -319 -359 -390 389 0 +388 255 -403 -408 290 -374 -397 0 +-403 -392 -407 0 +405 319 -413 -409 384 0 +403 -383 395 414 251 373 0 +396 -407 -394 0 +414 370 -398 -405 -401 -416 291 0 +-399 352 258 -407 0 +411 412 409 182 393 0 +-407 403 373 -410 -399 -415 0 +-198 -289 394 297 372 391 414 -356 0 +-320 -350 -414 0 +402 -407 -395 0 +244 -360 -403 0 +-416 -403 -356 0 +389 -336 412 0 +408 -261 353 -395 0 +362 -381 209 0 +-369 396 388 391 0 +-412 260 -391 -254 0 +398 -402 -412 407 0 +354 -262 355 -368 396 -405 -222 0 +-389 -303 405 412 -353 0 +381 -279 0 +-391 -354 408 0 +356 -390 -261 -364 416 -337 -336 353 -405 0 +392 361 -391 -398 -415 -381 289 403 371 0 +403 -377 -363 0 +-398 -309 411 -368 0 +415 394 -384 0 +389 403 -393 -362 -341 0 +411 -260 394 -401 0 +-347 395 403 -405 -381 -282 -404 388 -327 336 361 0 +-395 400 414 0 +410 -225 -394 0 +375 -402 414 0 +157 -377 399 384 -393 414 -403 0 +385 -382 -407 0 +-394 -403 397 -409 0 +263 392 404 0 +-356 391 353 367 -312 0 +-348 228 409 -360 0 +409 400 -197 0 +-392 -350 319 371 0 +-410 -393 -357 -394 -402 0 +388 295 -378 389 -404 -319 0 +-312 364 -359 409 338 397 -372 -366 -403 0 +-392 -380 340 -390 347 0 +-354 392 -403 0 +-393 362 406 0 +397 -362 -313 0 +388 243 317 -416 0 +389 415 -343 0 +-174 394 -415 0 +-356 -408 392 375 352 -336 412 414 -395 393 380 279 0 +322 336 364 0 +-364 328 399 0 +227 411 -407 -416 -394 278 -414 0 +413 -344 345 -356 0 +-274 245 402 367 390 0 +-405 391 374 -400 -389 306 370 -414 0 +-348 359 360 0 +-383 397 391 0 +315 -416 289 -404 0 +-228 -377 361 -382 407 -403 0 +-318 -406 292 0 +-313 415 -384 243 -396 -399 -402 -324 -376 0 +-406 397 -392 -307 -403 -407 387 0 +-371 -387 -328 397 409 395 0 +-393 -322 -364 -373 413 0 +-410 404 -409 -403 0 +-404 388 -414 -362 390 -351 0 +-412 -405 -267 410 319 -387 406 310 -408 415 -313 -399 274 -401 0 +-386 -394 -362 0 +-318 -411 -340 0 +295 282 -388 -260 342 0 +-381 -351 -412 -414 -404 389 -406 -410 -415 405 0 +-415 385 341 0 +-401 -296 -250 0 +-406 -416 -327 -403 310 405 -299 0 +388 342 -411 -379 0 +368 389 -409 0 +-386 408 402 323 247 -397 0 +361 307 386 -401 -390 -391 0 +345 -412 -401 0 +-399 376 275 403 0 +406 -274 404 0 +333 406 -407 0 +394 373 403 -411 0 +-406 -382 -403 -343 0 +-317 -415 -284 -334 -349 0 +391 -365 -411 401 0 +404 -394 -402 396 -397 267 -403 -398 370 209 0 +390 -372 314 -354 344 0 +329 -364 256 409 0 +362 407 380 393 0 +-377 -326 -247 0 +395 -372 190 0 +408 -244 -262 0 +-400 357 402 350 0 +384 413 -390 395 0 +377 252 286 -400 -356 -289 -388 0 +378 -394 -392 0 +395 363 371 0 +390 415 412 -395 -393 0 +-312 273 414 388 0 +-408 -411 -402 209 0 +288 -392 -381 0 +356 326 405 300 0 +416 -388 309 352 -366 -404 0 +365 375 393 -410 -328 0 +285 -362 -374 313 344 375 0 +359 -416 -171 406 -393 318 0 +391 307 -381 -349 0 +353 406 -321 393 0 +409 400 356 0 +-405 394 -361 0 +405 -391 -383 0 +-402 369 -410 326 -261 345 405 -388 -366 399 288 0 +-384 374 -267 277 395 -405 0 +399 283 300 0 +367 -377 -392 -388 -412 -390 -395 416 0 +-299 -281 388 363 -411 412 0 +316 396 380 0 +402 313 -339 -359 0 +-348 335 -389 0 +363 402 377 -399 0 +398 355 -263 0 +353 307 396 373 0 +-411 -383 397 409 407 -414 0 +-377 412 -410 312 0 +-406 -328 289 0 +398 -391 -410 0 +358 391 283 0 +-369 -405 -376 384 -410 -385 0 +-404 391 -313 354 411 -388 0 +401 -273 -312 -254 -344 -315 0 +-387 374 384 -396 406 413 0 +337 -355 -409 -314 -278 0 +350 364 -405 0 +390 403 -387 411 -377 0 +413 -385 365 416 -387 351 -391 -390 -360 0 +368 344 408 345 371 -279 0 +410 -378 356 -413 407 0 +391 402 375 0 +402 -447 285 -374 0 +-426 452 -449 422 420 406 0 +-446 427 -411 -418 -402 -461 0 +-374 -432 -401 -379 449 -300 419 -441 -428 -437 0 +-457 448 324 0 +-450 412 -431 460 -398 0 +410 247 -422 -387 0 +-420 355 450 423 -413 437 403 0 +-456 -394 458 399 0 +418 -433 -367 442 -356 0 +430 359 403 -383 0 +445 -313 -452 0 +363 -440 -425 0 +-448 443 455 0 +-385 -339 -453 373 -367 377 0 +-406 414 -369 0 +-399 435 425 -402 0 +-423 -399 -458 -429 0 +-379 -270 -444 446 -427 -359 -443 0 +-430 431 342 453 -419 428 0 +402 -435 -417 -416 456 461 0 +-413 -402 -424 414 0 +-387 -402 -445 0 +-400 421 385 433 -439 0 +393 429 439 438 -412 0 +285 440 -442 409 0 +-409 389 -434 447 444 0 +406 441 409 434 289 -438 -382 -459 414 -261 -455 0 +457 -412 417 0 +454 -401 -451 415 0 +451 293 391 408 -409 0 +-334 424 -436 0 +459 426 -277 432 436 -460 0 +-454 -421 -422 0 +422 -461 -452 -443 0 +-361 -419 426 -392 413 400 0 +-459 -413 430 0 +285 -376 -414 0 +-407 -388 -431 0 +395 -401 446 0 +-432 -255 -449 0 +417 -457 -458 446 408 -415 -448 -422 0 +-455 418 -433 0 +404 391 392 0 +446 -301 -435 0 +405 438 233 0 +444 -459 -415 373 0 +392 434 -443 0 +-312 -416 351 266 -460 0 +402 -414 -453 -437 0 +429 -401 408 -442 423 -269 406 407 295 0 +-418 391 439 -422 0 +-437 -433 449 -378 0 +-377 425 -392 -378 -405 -417 -415 449 0 +-417 -330 459 -376 -227 433 -455 287 0 +364 413 -458 442 312 319 0 +-426 457 -429 403 0 +-428 -442 -443 0 +419 -393 452 430 0 +-442 454 -347 368 -444 401 0 +393 -420 165 -432 0 +446 -395 422 -419 0 +401 -352 -407 -426 -461 458 0 +-446 426 436 410 0 +-443 452 -386 -331 0 +-409 378 -450 0 +360 -395 -446 365 391 0 +270 -378 -459 398 414 -365 413 0 +-417 -363 418 457 -448 -414 0 +-459 -436 408 0 +-354 215 -364 -335 -375 0 +404 430 397 419 372 0 +-420 -277 -395 -389 -425 -457 0 +-319 -277 442 356 -406 -375 0 +429 437 -451 -389 -249 364 0 +424 -340 334 350 0 +-411 -377 371 -434 0 +419 -282 418 -397 367 -362 455 -458 409 452 0 +-411 434 412 398 -353 440 0 +-387 -433 -411 0 +285 450 413 -431 0 +421 -413 337 -401 0 +450 -436 344 0 +387 -397 -459 438 0 +399 -378 411 0 +393 -411 -336 458 -420 0 +-437 -304 -418 -328 0 +-438 362 -415 409 -407 -453 -425 0 +-405 385 -354 -442 -398 0 +-361 -419 410 0 +362 418 -448 0 +-451 -392 -401 -440 0 +444 -438 396 388 -364 369 395 460 449 416 336 0 +329 -454 -436 0 +379 -420 -405 402 0 +395 388 -401 427 -244 368 -436 -451 0 +-244 -433 -459 -449 0 +423 439 452 -405 0 +432 411 354 0 +440 447 -406 429 0 +422 -446 284 252 -434 0 +444 -350 -443 -420 421 0 +-432 426 -375 0 +454 419 409 0 +-406 411 398 0 +-359 -310 -455 0 +-439 376 -433 423 -422 0 +411 249 185 -414 -413 0 +-404 -426 -456 -455 459 -356 -389 443 448 -397 340 -446 254 -457 405 0 +-382 -370 406 421 -342 -427 0 +281 -407 -423 -457 0 +-460 -198 -424 -397 412 426 409 346 427 0 +455 398 374 432 -405 430 0 +412 451 265 0 +449 -445 447 0 +-352 -399 -414 456 -427 0 +-449 -423 -406 -451 -446 453 407 0 +-420 -449 -329 0 +460 -326 455 -368 -382 -415 -428 -419 -447 0 +-397 -449 364 357 382 0 +-413 -407 454 0 +409 -452 -390 -418 419 451 -442 0 +390 -458 -373 -446 0 +-432 404 420 0 +375 454 -337 -461 -437 -358 -430 -450 -311 390 0 +-451 400 379 412 0 +-453 -338 442 443 0 +451 344 407 -291 -447 -364 316 0 +-400 -456 -450 -392 -427 -453 0 +-457 -319 413 353 -382 -430 393 -444 -358 0 +-438 323 -374 -339 0 +430 452 355 0 +-450 441 -439 -308 409 -407 0 +-441 -421 331 0 +-456 458 434 -328 425 0 +-452 -384 0 +375 407 439 0 +-441 337 -430 451 -457 -426 0 +422 -383 342 0 +-398 376 -407 0 +-456 -393 -396 -453 449 419 0 +288 406 436 -445 -447 0 +-384 -353 394 0 +415 -419 -424 0 +405 -440 351 -458 420 -446 0 +417 403 -449 0 +402 438 459 -418 -439 0 +-456 426 -431 0 +-431 227 -378 -294 -444 0 +-400 -439 -438 -434 0 +359 -412 -454 451 -439 0 +-314 403 -444 0 +353 410 378 419 330 0 +427 401 390 391 0 +-397 389 333 0 +371 268 416 216 388 -419 417 397 432 0 +-430 -384 433 0 +-409 354 432 -454 388 0 +-435 458 424 -448 -429 0 +-439 418 419 0 +-426 -246 448 -275 408 -447 0 +359 409 -421 401 0 +-421 458 446 359 362 0 +402 418 440 398 -435 432 0 +-404 432 -315 383 0 +393 -372 428 -422 -432 0 +407 -432 -251 402 0 +420 -425 396 0 +-328 -457 443 -454 439 -442 0 +426 -293 428 0 +-328 -414 250 447 0 +422 -364 -411 437 -440 0 +-457 -451 -373 388 0 +-457 391 -359 0 +-398 419 -414 407 443 396 381 434 0 +425 451 -400 375 -441 0 +394 -364 -427 -408 -396 -321 324 415 -379 -275 -446 0 +-449 420 -436 0 +-405 432 376 0 +-401 291 -257 0 +-403 445 404 406 -412 -392 456 -457 -433 379 356 444 -438 0 +456 314 -384 0 +-456 438 416 404 455 -436 -435 419 418 -460 -432 -383 -412 0 +-389 -390 445 407 344 0 +-432 -447 -418 -325 0 +-453 446 -451 0 +-414 -452 -406 -415 377 371 0 +-414 -423 443 0 +-398 440 -396 -393 0 +457 -395 -460 -410 437 435 0 +367 383 394 0 +331 421 -390 0 +408 -362 448 -310 403 -416 -353 428 0 +388 420 377 445 364 424 405 394 -389 0 +-440 448 319 -280 0 +425 -449 -435 0 +428 -393 352 350 -432 -331 -274 -421 0 +-459 415 414 0 +459 -252 -353 419 388 -436 423 354 -261 432 460 406 0 +409 216 450 0 +392 376 455 0 +425 -454 430 -396 -434 0 +441 417 359 -455 382 -459 -410 0 +-381 -429 -350 0 +460 402 -420 0 +408 430 422 -399 419 -317 0 +-436 450 -386 357 -369 451 373 0 +446 442 -433 -418 0 +-419 176 0 +441 412 -429 -460 393 442 387 453 0 +-439 418 430 0 +-443 284 287 -430 371 413 -432 0 +-442 406 451 0 +448 446 -412 447 434 455 -445 405 402 -378 0 +-302 406 -394 0 +353 -412 -117 380 458 0 +-356 438 426 447 -457 0 +-281 -436 -389 -399 -441 0 +-451 449 341 418 444 294 428 -460 -390 413 -438 0 +-461 -445 -454 -460 0 +-438 330 -431 392 -414 0 +401 404 -392 0 +-444 -450 439 302 460 0 +439 393 -401 -399 440 450 0 +434 451 380 -327 -389 0 +-443 -350 -452 0 +432 -452 0 +383 -454 435 -419 406 0 +-431 420 411 0 +-405 -452 -362 -436 0 +437 440 405 430 -447 -351 -276 -410 0 +-387 -445 -250 438 421 -426 0 +410 -403 -419 424 0 +441 450 369 0 +295 -438 370 0 +-407 -446 -434 0 +-453 -445 396 -350 -429 -402 0 +411 -460 -351 410 0 +-401 -305 459 -403 0 +-444 -146 -388 0 +378 307 449 -456 0 +-381 -338 380 -354 439 441 -422 0 +-405 -340 432 409 0 +452 -395 -449 -436 399 -385 0 +-441 395 298 -404 0 +368 458 429 0 +182 457 373 -390 -431 362 415 440 -253 -430 -393 0 +-418 -449 -447 411 -459 0 +441 445 399 0 +421 -429 402 0 +-393 -390 419 449 -340 0 +429 -436 435 0 +458 433 -411 406 0 +-451 -416 390 -361 0 +-390 293 430 417 0 +-431 397 400 -417 0 +-414 -394 -399 373 -260 431 333 0 +381 457 408 -431 0 +-424 -447 358 0 +-254 -437 -460 0 +-281 459 -427 360 -436 -415 0 +300 -441 364 406 0 +-443 341 -407 -435 0 +416 -395 353 -442 -401 -390 333 -424 0 +384 -453 324 -353 -405 0 +-425 -401 -454 244 421 0 +-422 398 -443 0 +-405 402 440 0 +457 392 429 355 -451 -432 -417 0 +-250 -426 -451 -357 -408 398 -391 0 +416 -450 -347 0 +-454 -389 -345 0 +371 439 -404 361 -443 442 273 -389 426 0 +434 -410 -402 0 +-459 -408 361 -378 315 0 +-448 234 -427 456 457 0 +-397 391 461 0 +397 -438 -437 -426 -389 -380 366 -439 -415 0 +318 -433 407 0 +-391 -342 444 451 -442 362 -449 -318 396 402 -426 336 -331 0 +449 -276 418 459 406 -437 -457 398 0 +-441 439 -431 -399 0 +428 -447 363 413 0 +425 448 399 0 +-444 -461 448 0 +446 -395 -397 351 -425 -297 0 +444 347 410 -371 400 -398 442 405 0 +-400 432 399 442 0 +-442 -388 -421 461 -411 -437 451 -460 0 +268 431 365 -438 0 +-426 402 -320 -450 -453 0 +-441 430 412 -418 0 +403 -389 412 410 0 +453 -424 426 405 455 0 +340 422 -351 -255 -405 -451 -434 -247 0 +-377 458 -450 -443 415 437 438 0 +437 403 388 435 418 0 +-417 431 383 392 -388 -276 -419 0 +355 -444 203 -330 406 -326 -456 0 +415 330 -461 -404 -442 0 +-365 -221 -442 0 +-341 420 -376 404 -377 0 +392 -432 -427 443 0 +-430 401 214 0 +-433 455 -398 448 0 +439 -379 -438 0 +-392 419 308 -306 -452 0 +-362 -389 454 421 0 +-255 -431 -435 0 +403 -353 -454 394 441 0 +-433 451 416 412 432 0 +417 -415 -392 -451 0 +399 460 454 0 +452 -429 403 -405 418 -419 -416 -401 0 +-345 -430 285 385 425 0 +419 393 -439 0 +444 436 -424 -456 0 +444 -459 -461 0 +445 -422 -332 0 +-443 -357 -437 -356 -436 428 -427 -339 404 -424 -384 441 0 +426 396 355 402 -409 423 447 -394 0 +451 407 -295 -456 -354 0 +-376 395 459 -440 -331 -396 0 +364 413 390 -400 430 428 -461 -386 -408 0 +-417 401 -342 410 -356 0 +-412 -419 438 -418 0 +-425 424 -349 0 +441 -430 -458 -410 371 -417 297 -356 432 0 +-382 -275 -288 0 +-430 456 -471 458 -447 489 496 433 0 +-491 486 -469 -473 418 -496 0 +-494 488 -478 441 0 +-355 472 -457 0 +473 442 456 -472 425 471 0 +450 -376 419 -342 0 +482 -259 -475 -490 -467 0 +452 467 412 -465 436 0 +-449 345 353 0 +479 444 492 -450 313 0 +329 401 -389 -470 0 +307 444 -477 421 481 0 +-488 -462 397 0 +341 470 276 416 0 +490 461 -221 0 +491 -456 392 410 -476 390 411 0 +493 464 402 -459 297 -486 364 0 +-466 461 -464 494 -358 -422 468 0 +-493 -479 -484 474 0 +-404 -468 469 -306 433 0 +484 480 396 0 +483 -397 -485 0 +465 -492 476 0 +485 -463 475 -482 0 +436 -489 423 0 +-410 417 466 0 +365 275 -291 424 0 +-407 -483 487 -460 251 -481 425 0 +462 303 495 -334 393 478 477 -487 -474 0 +-391 -480 398 463 0 +436 -495 476 446 0 +477 -488 362 388 0 +-270 472 -445 -468 474 488 0 +-394 427 -372 -413 -363 429 481 -412 424 462 -283 0 +463 480 -316 433 494 0 +-387 -495 444 487 0 +-489 409 391 -478 0 +492 480 479 0 +-446 432 -493 0 +429 383 -470 0 +-488 -409 478 0 +465 489 483 -469 0 +-487 -477 -473 0 +-413 -427 486 0 +-460 -353 -376 463 -311 418 0 +-469 -496 -467 491 -420 -492 -130 0 +-309 -403 229 493 0 +-401 -494 463 0 +440 407 -474 -309 342 477 -465 389 0 +485 -249 -474 0 +-351 -496 -440 -475 -480 0 +363 494 -484 -421 0 +-354 -487 388 -489 437 0 +-479 -444 429 0 +474 404 -488 467 -464 493 0 +447 420 0 +-418 -459 -491 -463 -478 -412 0 +-336 478 -445 -451 -446 -462 0 +414 -463 396 -404 487 -407 -488 434 0 +466 491 -310 0 +491 354 -490 0 +476 -422 496 -482 -491 0 +-478 -411 481 470 0 +-464 -473 478 0 +-468 432 -419 416 462 478 -414 0 +-438 -481 -364 0 +-481 492 0 +-471 -473 396 0 +-378 343 467 0 +-481 -459 -466 0 +423 -496 -473 0 +354 -413 182 -494 -496 -427 459 462 0 +427 458 -418 -494 481 471 -493 474 0 +-410 -473 -403 0 +490 368 489 440 -467 471 -311 -437 480 -316 417 -403 0 +-471 227 443 -491 478 409 379 0 +405 -474 421 441 -427 -476 377 0 +-476 -466 -487 -408 412 0 +-427 476 -467 0 +463 394 377 0 +-485 -433 -410 -424 0 +-446 -463 -399 494 474 0 +433 485 494 -389 0 +-279 474 346 -441 0 +-317 -477 488 -375 -413 471 308 -414 -478 496 406 -417 0 +-475 476 443 0 +474 -470 429 388 468 493 -482 -435 434 -488 0 +420 396 -393 475 -476 375 433 -439 0 +-408 -449 -472 -481 465 0 +429 441 477 -398 0 +473 -472 394 0 +-483 436 378 0 +437 373 -320 452 -453 438 0 +479 460 -496 0 +-430 -469 446 426 0 +-483 307 -393 468 -494 0 +-476 465 484 406 487 -254 -429 0 +-419 -468 462 -448 407 0 +-423 481 -488 -445 -493 458 487 449 0 +472 427 -435 375 -462 496 -476 -479 424 0 +-485 399 466 -416 0 +480 420 -477 245 -429 466 0 +-475 419 -319 0 +409 -364 469 496 -490 464 400 434 492 0 +472 -447 -456 0 +-495 -443 -476 0 +326 454 426 -463 0 +494 411 -477 0 +-388 392 477 0 +-476 254 -454 493 0 +491 -430 417 0 +476 462 -485 460 0 +471 -480 -430 0 +389 -480 -176 475 400 416 472 -446 436 0 +-471 -420 -484 433 459 0 +432 -488 -390 0 +-432 436 -412 -270 -467 0 +493 488 -396 0 +423 493 -496 -396 0 +-495 -224 -460 0 +-490 377 454 0 +464 -481 478 0 +426 -464 492 0 +180 454 389 -403 0 +298 339 492 473 -483 406 474 -414 0 +-466 491 393 0 +418 415 477 -311 472 -485 0 +-471 -476 -490 -472 0 +438 463 -371 0 +-440 470 -412 0 +-465 462 -493 0 +487 -476 458 -465 0 +444 -369 -465 0 +-463 488 -428 -483 -131 0 +-493 482 401 0 +-496 480 467 468 421 -473 -487 387 0 +-488 -479 489 -457 -367 -482 474 0 +-405 344 444 -435 -418 -441 0 +-465 -463 -478 -482 -422 -328 -470 451 425 -489 0 +-476 421 444 0 +489 -407 -487 -477 0 +-453 481 487 0 +430 -375 480 452 476 474 0 +-471 418 472 -427 -450 387 0 +-465 457 360 -471 0 +487 375 -364 0 +468 -464 -404 -475 457 0 +-482 465 -457 -487 0 +-496 448 -462 0 +466 -426 -476 -474 398 0 +-462 444 474 470 0 +-403 -426 -419 0 +-486 494 471 -424 0 +-389 -433 -464 0 +-473 -467 494 -412 253 -442 -427 363 469 0 +-465 434 -483 0 +-442 -486 400 0 +-484 -365 -477 483 0 +489 -371 437 477 474 0 +-474 -452 484 0 +393 -495 396 0 +-413 -491 -315 0 +-414 394 489 0 +-441 481 475 0 +-448 461 412 0 +-448 -430 417 490 -416 468 0 +492 485 -483 0 +486 -482 -428 -484 0 +-472 -465 496 -464 -476 0 +490 390 -408 -491 478 -459 483 445 407 465 482 283 0 +-469 -467 -472 476 0 +-427 -462 -467 0 +-405 -354 -392 489 477 -480 0 +391 -485 440 -433 0 +482 451 393 -486 -495 0 +489 -487 425 0 +401 -461 474 0 +-371 -402 -473 -482 -396 494 0 +362 468 452 -428 0 +474 446 325 485 -469 -424 451 0 +-491 -468 -451 0 +451 275 437 0 +-430 428 -410 0 +-493 -479 -468 459 0 +-463 -481 492 -490 -455 0 +-404 407 421 0 +-370 -374 484 458 278 423 0 +-479 -480 -450 -459 434 0 +476 -482 -488 478 398 0 +382 488 -357 -436 -467 -489 385 0 +-426 -398 439 388 405 444 -493 415 -485 482 -368 0 +-430 -452 479 0 +-485 -477 493 471 465 0 +-482 391 394 -436 -466 -463 -479 252 462 -289 456 393 473 0 +492 395 471 0 +441 480 -478 439 -484 443 0 +-447 492 -495 478 -419 -493 -480 0 +-479 -446 434 -459 494 -454 -461 -401 420 471 -476 0 +-466 483 467 444 -492 -421 0 +485 -460 358 -490 -472 -432 0 +488 425 -473 -463 486 409 427 0 +-455 -493 496 0 +-489 467 432 461 0 +487 493 -458 -445 496 326 0 +-400 334 436 491 0 +479 -434 -492 -419 398 467 0 +465 470 -466 417 0 +-485 -275 436 479 0 +-491 481 451 391 -477 0 +464 -463 427 415 -216 -321 385 0 +-399 -407 -485 0 +453 -480 -462 -469 0 +-490 -465 471 0 +490 -486 -464 487 -410 -484 0 +405 -495 -478 -471 0 +496 464 -491 0 +-479 -391 -448 474 445 0 +-413 439 -407 0 +-320 422 446 491 0 +-470 492 495 467 -457 393 0 +-481 -474 489 419 0 +-233 -483 -458 0 +-493 464 489 477 -482 471 -486 0 +-469 465 -367 -486 448 -395 470 -443 -440 0 +-459 495 -493 -489 0 +-446 -485 217 -449 0 +481 -483 463 454 -455 0 +487 -496 -466 -493 325 0 +-484 466 421 -281 0 +392 464 -391 0 +-495 467 453 0 +488 430 486 0 +-316 -470 482 0 +-424 -477 426 0 +406 444 -453 -354 443 386 473 0 +404 -483 409 -331 0 +494 472 492 0 +448 481 -490 477 -388 470 441 468 -447 -455 0 +476 -451 -429 -465 -414 -291 -392 0 +489 -481 444 -382 -494 305 0 +462 453 350 -480 0 +-471 -463 -413 -484 -482 -475 0 +372 -450 487 -486 474 0 +494 490 -464 -459 -387 421 0 +-436 433 461 -452 -486 0 +492 479 471 -469 474 342 426 488 0 +-483 476 -465 472 0 +480 485 487 0 +-425 -312 405 -439 -483 0 +-423 492 487 467 488 0 +-486 487 482 0 +440 389 -494 0 +371 -411 -378 473 0 +-473 493 416 0 +-465 367 443 0 +-411 391 462 0 +489 -470 0 +-362 -471 486 0 +441 -491 -456 -173 0 +-457 490 456 0 +436 494 463 0 +455 406 394 0 +-478 -470 -496 409 -375 435 0 +471 -480 -444 0 +-433 469 -456 -482 417 -488 490 -448 0 +462 -347 443 469 -440 0 +432 -462 -475 -361 -406 492 -495 0 +-465 -433 -415 464 0 +-490 -441 471 -407 0 +-453 -452 477 0 +-342 -266 468 -390 -379 391 0 +-481 477 -471 445 -396 0 +452 377 -420 322 0 +-479 408 487 -417 433 317 485 318 -480 -403 0 +-473 462 395 461 0 +-477 -474 -406 -437 0 +375 -485 -458 -429 379 -487 -306 0 +496 455 481 429 -491 0 +422 -433 263 0 +-452 368 493 0 +-496 495 201 473 0 +-477 -478 -428 0 +-426 -462 -496 421 -399 352 0 +-407 463 402 -488 -422 -481 -464 471 -308 0 +-428 477 401 -433 -447 -475 -493 0 +434 469 -400 -487 439 -455 426 -420 413 472 475 0 +-496 462 471 0 +-245 -480 292 0 +-481 389 494 0 +-423 -494 435 -464 -483 -489 479 446 0 +353 -482 -489 0 +-315 426 -415 0 +-462 475 483 425 -491 -404 0 +461 -486 369 0 +-480 483 435 0 +391 -495 -436 0 +-481 -411 -436 0 +416 -463 476 -455 -488 472 438 0 +248 -418 -451 342 0 +413 -481 -472 -449 0 +468 431 492 -464 -482 -367 440 356 0 +-476 368 -496 0 +426 402 -483 437 449 0 +420 -496 -484 0 +473 -486 -395 483 476 -481 -427 -488 -475 0 +-490 -487 464 -468 0 +-491 435 -443 0 +-468 416 -378 0 +486 263 463 0 +475 -472 -485 -466 0 +460 468 414 -493 -483 -430 0 +-441 419 460 -478 491 -397 -351 0 +-395 -491 474 0 +-339 488 -490 -443 373 367 468 0 +432 -464 306 307 0 +420 -413 -486 0 +467 -517 442 0 +461 456 -469 382 -453 0 +506 470 -487 -455 462 0 +-523 -477 460 0 +-502 510 -526 0 +-421 534 478 368 -536 0 +-525 -449 426 501 0 +494 502 -518 486 0 +517 533 527 441 0 +-351 -398 -507 536 -506 0 +-529 -463 -399 481 515 -474 -412 0 +485 -531 483 0 +475 -511 -455 523 507 0 +439 432 446 -534 -482 -490 -479 0 +464 -498 468 0 +509 535 467 -497 -516 -522 -515 524 0 +500 -450 -510 488 382 499 -527 -426 -530 0 +403 -350 -500 -462 469 -488 -513 0 +529 -492 518 -509 497 -514 530 0 +505 -464 480 0 +463 458 516 498 -501 0 +491 513 -535 206 0 +433 440 -415 0 +300 480 508 -520 0 +-244 -505 -331 -512 0 +504 528 511 -464 -499 459 0 +464 -532 0 +-508 -504 331 496 -466 503 0 +-403 521 477 0 +417 425 275 512 0 +531 491 532 488 525 0 +-521 520 -441 0 +-351 472 -445 0 +339 481 472 424 414 0 +472 491 495 -188 -528 404 -519 0 +522 -533 472 394 465 483 489 514 431 0 +395 526 -524 0 +-503 519 355 517 0 +468 524 432 -433 -504 528 0 +-505 -322 -527 508 531 425 515 406 483 0 +468 502 519 -483 532 -504 479 0 +-516 405 -421 -490 417 0 +487 531 502 0 +505 502 -515 -524 254 -501 -498 0 +-507 478 -506 -493 462 -522 -476 -516 -524 -526 0 +-396 463 -517 0 +500 517 -477 0 +463 -532 512 479 -496 -524 502 0 +-518 -464 -525 483 0 +536 468 -485 -497 -432 0 +-487 -514 532 0 +534 -467 -471 -485 415 0 +-423 528 -463 513 485 0 +489 408 -532 -530 0 +-479 513 425 507 -535 -462 0 +-472 -460 -536 474 448 -406 419 0 +437 -532 -531 -535 495 0 +468 -528 -501 -513 0 +-515 -504 -438 448 0 +530 -495 -444 478 -526 426 -534 479 0 +-518 -499 465 364 -525 502 -517 497 505 0 +394 -533 -524 -478 482 -464 0 +432 499 -478 -495 424 509 0 +516 528 476 473 493 530 -310 -462 0 +-511 488 528 0 +-508 531 -521 0 +501 -436 319 529 0 +-528 523 514 369 0 +490 535 494 501 0 +-514 -523 519 -522 0 +500 243 -469 0 +486 -505 508 -469 0 +508 529 -463 493 0 +520 531 -468 0 +513 507 495 -405 515 -526 421 -432 527 0 +490 529 -485 405 0 +514 456 509 -426 0 +-510 516 -520 524 -472 469 0 +471 -464 -435 -475 524 460 0 +510 500 -517 -531 -389 -286 0 +421 -521 -523 0 +-502 534 354 -524 0 +-477 -468 -480 0 +392 -355 534 0 +516 -447 521 -397 0 +-500 -409 -519 458 0 +517 532 -527 472 0 +-437 529 -536 0 +489 -403 -472 -492 0 +-521 513 518 478 531 0 +-475 522 -431 -524 0 +490 -251 509 -365 364 -524 0 +-536 512 497 0 +-323 -450 -519 0 +-525 530 495 0 +-514 399 -498 425 -486 526 0 +-482 -508 512 410 314 470 0 +-445 -507 -535 525 298 333 0 +381 502 -522 494 -498 516 -526 -512 0 +504 523 -445 -524 405 -519 0 +-517 -388 -497 0 +-501 504 -387 0 +-526 512 -489 488 -495 -515 -530 -437 0 +-417 -505 -356 0 +-512 -486 516 0 +519 525 431 0 +-515 -496 510 0 +-534 -450 377 406 0 +-516 496 -466 -502 0 +-477 -462 504 -475 -534 -486 502 0 +515 -501 -493 0 +520 449 498 -399 522 -525 523 0 +-499 467 -506 0 +-519 -408 -470 -501 503 533 -483 0 +-356 500 428 0 +510 522 504 -528 -530 0 +-447 520 -395 -484 0 +405 -526 529 -519 -521 0 +473 -526 -508 505 520 0 +-511 -520 -503 -470 -475 383 523 -430 -427 -388 380 0 +516 502 -438 397 499 0 +-465 -529 485 533 535 0 +-495 -316 532 -468 0 +489 505 529 500 0 +-475 391 -422 526 0 +505 462 503 0 +468 518 -401 455 463 0 +-527 536 -252 -471 520 498 507 -439 0 +521 515 511 0 +518 -487 -521 -510 527 -499 -530 516 465 0 +-506 -462 -458 -487 -484 0 +490 -453 -480 520 481 502 -486 0 +-536 472 526 -503 0 +-513 516 -455 -464 -525 -494 -535 0 +-497 -468 -528 -467 -508 407 518 0 +501 522 -534 0 +-481 503 416 477 0 +-534 -465 -476 371 0 +478 -373 418 0 +-530 533 -514 0 +-426 -439 528 -418 0 +-468 -409 462 0 +-514 -515 -491 0 +-520 -498 518 -497 -480 -483 500 0 +-494 500 -492 0 +498 -413 506 -492 415 509 -431 0 +510 359 -381 -521 513 -390 522 528 0 +506 502 -528 0 +-445 -524 -502 0 +534 465 -443 0 +-479 -451 -474 0 +493 433 -482 -474 476 528 0 +-518 532 370 529 0 +536 504 -481 457 506 -499 -529 0 +-257 -418 -480 0 +-247 -526 -516 0 +-437 525 436 482 -517 0 +-395 503 493 533 512 511 -532 0 +-486 -532 181 -479 0 +509 -480 428 526 506 516 -530 0 +503 -533 487 0 +467 515 489 0 +526 -475 -218 0 +-506 -369 498 -510 -520 -518 -496 0 +-505 506 514 532 0 +-495 496 -429 514 -420 525 -499 512 0 +-518 499 -341 0 +516 460 -466 0 +-479 504 528 0 +-493 436 -520 -532 0 +466 -532 -388 476 0 +522 496 -481 532 -448 -506 487 188 -531 -473 533 -426 -528 0 +475 531 464 530 480 0 +-492 477 482 -518 406 0 +436 -528 -517 487 0 +479 532 515 501 524 0 +-525 -527 487 -356 531 0 +499 -504 -435 482 506 -527 -458 -469 -428 0 +-489 -508 431 0 +-439 -428 -520 -416 448 530 396 -499 -502 0 +245 493 497 -522 -412 506 523 276 0 +-437 -378 -500 -530 535 -501 484 355 -287 -495 0 +485 -394 -519 0 +-525 503 535 0 +-486 -441 -482 0 +-495 490 366 -516 -441 0 +390 513 -474 0 +382 443 -468 -520 0 +-511 -510 477 522 521 -494 413 505 -465 -278 -529 0 +-509 -503 421 0 +406 512 383 -421 0 +533 -279 475 524 387 -466 0 +526 500 -512 0 +-529 -525 -406 509 -512 515 -524 463 0 +-515 514 -382 0 +535 -491 -481 0 +-504 -523 335 494 0 +-418 -521 527 -483 0 +500 -478 429 0 +532 439 -358 525 523 0 +-485 484 499 506 491 483 -529 0 +494 468 -350 0 +486 446 -526 0 +510 505 -518 -499 0 +-385 508 -276 470 -530 -483 485 534 0 +446 399 496 479 -506 412 -437 -489 520 505 483 334 486 -528 0 +-486 504 -534 -434 -478 0 +522 -534 477 0 +-524 -404 490 -473 -464 506 0 +498 -503 -440 -463 529 0 +488 -499 433 0 +519 512 517 -505 -465 0 +-528 -480 -475 508 530 -453 -518 -459 -446 0 +389 395 481 -523 528 -535 399 0 +501 -531 514 0 +525 497 -517 0 +-495 536 402 0 +-478 -521 359 487 -489 507 -454 0 +505 -470 525 0 +527 -507 492 499 -518 0 +416 -468 -525 -512 -531 419 472 513 518 495 -484 0 +450 -462 433 0 +-498 465 528 -474 0 +535 489 -398 -414 0 +-469 490 491 -444 -536 -464 0 +-533 481 -505 0 +-321 535 513 -421 523 502 401 0 +457 435 -490 0 +-500 -489 -492 0 +-536 -480 525 0 +528 529 471 0 +491 -472 470 0 +297 -469 -503 528 0 +513 524 -485 0 +511 -528 -518 407 0 +-467 487 511 0 +-531 437 463 -534 0 +-396 462 -512 -498 516 0 +-498 -532 522 -430 -434 -475 218 -496 0 +-532 522 -518 0 +504 466 -522 392 -500 0 +-415 532 -390 0 +470 -515 528 389 465 502 0 +454 441 489 -521 -445 -493 0 +-518 -342 -522 -505 -489 418 0 +-523 -493 481 -496 0 +359 503 401 466 443 388 -521 522 -146 530 0 +453 -474 470 -502 0 +403 -391 -505 522 -468 -489 516 0 +-534 -520 -505 518 -519 0 +525 -444 -481 -367 0 +533 -429 483 0 +-460 488 -415 0 +-487 445 516 523 423 0 +-523 -526 -474 0 +-314 519 -431 -454 460 -463 520 0 +466 -417 -568 -544 537 549 -495 548 0 +498 -581 466 -457 -506 -572 0 +572 -548 -570 -415 0 +-443 577 478 578 0 +-470 -552 574 0 +580 552 -521 -512 553 -557 540 543 560 575 0 +-508 -478 -472 -521 569 -495 0 +533 -495 -525 0 +474 359 532 -533 -534 -494 0 +-569 -546 538 437 558 -507 -562 -485 555 0 +-533 -560 509 554 -564 -429 -579 -506 559 529 -491 -577 -578 0 +-574 579 -550 0 +-558 570 -545 -553 0 +568 528 518 -571 567 0 +525 563 581 551 536 394 -480 539 571 -549 -561 -559 -537 -441 542 -533 0 +541 -554 -551 -575 -540 474 0 +550 -498 573 0 +561 508 -576 -519 565 -538 0 +515 566 546 0 +479 576 -405 -498 562 -542 -543 490 -580 0 +-555 564 468 503 -541 -566 -478 -255 -532 -473 -563 300 545 0 +524 556 547 544 413 -539 0 +-536 425 474 494 0 +-573 -500 496 0 +-565 -485 -556 557 -517 -547 472 0 +412 -567 564 0 +-548 574 542 525 0 +-565 -401 555 0 +-570 460 509 0 +-442 -405 -542 -469 556 539 557 546 -523 -467 0 +-574 477 537 0 +532 384 -550 565 0 +-562 -539 -498 557 0 +-569 553 460 -550 517 -555 -514 0 +573 -533 542 -574 -473 0 +-525 -517 540 567 578 -544 -440 0 +313 -571 -543 -566 -555 576 -465 -564 0 +508 550 532 0 +-567 -471 -548 0 +570 509 -532 -517 0 +513 -443 551 526 516 0 +-472 -468 -557 -552 0 +-499 577 501 571 -481 0 +-517 -404 -541 -540 0 +-474 -561 543 0 +574 470 373 -393 0 +-497 -579 460 -537 492 -570 -577 -549 0 +552 559 -485 0 +-554 544 435 -481 -579 0 +413 542 522 0 +519 -551 391 -581 -491 552 0 +-452 430 -579 514 0 +-424 566 -383 0 +-508 453 541 552 515 0 +514 -481 -564 -473 -488 -500 562 -482 0 +529 470 -420 -569 504 -557 0 +-567 -558 -579 -517 497 561 513 -569 419 0 +542 581 550 0 +508 -449 -557 -559 504 -555 -498 0 +-496 -563 -493 573 0 +549 -519 537 538 -571 534 -514 0 +-421 530 -550 540 0 +447 -528 578 -567 -518 0 +-507 -530 540 562 0 +-397 -557 360 -513 575 -472 0 +543 498 565 -580 0 +580 487 572 477 0 +564 -523 -512 0 +530 567 -535 0 +-558 -512 566 -467 0 +-576 493 522 0 +559 -463 494 556 0 +555 575 549 0 +-577 -374 454 312 -569 -511 481 0 +-558 580 562 -549 557 472 -495 0 +-545 510 -578 -543 -482 -566 -468 514 0 +-510 -478 -532 0 +567 573 463 -562 -505 550 403 0 +496 551 -538 389 434 0 +-513 -468 -394 521 0 +-565 498 -572 558 -512 0 +-516 -546 -535 0 +-564 -512 -265 -550 538 -530 -574 540 -573 -508 480 -514 0 +-573 581 -466 0 +507 445 554 0 +562 -462 -548 -420 -580 0 +524 518 -367 -493 0 +581 -424 -541 0 +518 -581 -563 557 478 568 0 +561 522 545 0 +-405 -418 -480 -560 0 +-533 567 545 -574 0 +572 503 -537 478 0 +539 -577 561 0 +-462 334 549 -558 -424 0 +411 -529 -571 490 0 +543 -548 -507 -570 0 +539 420 485 0 +549 517 568 570 562 521 -559 395 -561 0 +-553 538 -573 -481 547 0 +580 578 -373 566 520 -579 0 +-555 -580 577 565 560 0 +523 477 -507 0 +-536 581 -561 -471 0 +-485 -428 503 550 539 -465 -566 -573 473 -568 -523 0 +409 -522 -501 0 +541 549 -539 0 +-495 541 -566 0 +556 343 557 -483 -371 0 +546 499 418 536 0 +554 391 -573 -560 0 +513 531 -576 0 +519 523 -574 522 -565 564 -511 0 +471 559 552 544 0 +538 485 -539 578 0 +-440 469 371 519 463 -411 534 246 0 +539 -577 337 0 +545 548 462 515 561 -418 -574 533 556 503 0 +569 549 -562 -556 -577 493 0 +554 -552 576 0 +457 -565 -520 0 +-520 -532 -570 572 500 555 507 495 -493 578 -552 536 0 +569 -570 566 -301 527 0 +-567 542 565 0 +467 570 -545 -466 565 498 0 +577 -568 500 0 +-562 570 553 -579 0 +-542 -553 -476 0 +-544 -547 509 571 0 +-504 556 561 473 0 +-520 -566 -538 522 -471 0 +570 -562 549 -509 -504 -578 -558 0 +-502 539 -553 383 0 +-522 -581 -505 -503 0 +570 443 504 -546 0 +580 563 -522 569 -566 -495 547 -336 0 +-475 -504 -468 559 546 0 +455 553 522 -523 -581 -558 0 +378 550 -549 0 +574 523 472 537 483 462 553 -452 0 +-510 279 550 498 -540 0 +544 -486 557 558 526 0 +-517 -555 -511 467 496 -471 -495 -554 -520 -571 -553 470 0 +504 508 -554 0 +-556 -379 524 -427 561 0 +398 -497 -472 -482 -529 -511 -498 0 +569 -272 548 0 +530 -463 -547 -537 462 513 0 +565 536 -416 0 +512 539 554 0 +-581 510 -545 474 0 +571 555 -577 0 +555 -564 -559 0 +550 -340 557 0 +537 -518 544 0 +294 -518 -514 -567 565 -529 0 +267 -569 -474 460 440 0 +510 -420 560 -542 0 +498 541 499 -465 -557 0 +477 499 557 0 +-546 -534 550 0 +460 -522 -498 -539 -402 -569 0 +-387 -538 -567 -504 -539 575 534 -580 0 +555 511 -561 -575 0 +567 -512 -552 -570 -510 -534 409 0 +-504 -493 -393 565 541 554 0 +-536 -564 -554 524 0 +-578 549 -543 548 -504 -518 0 +571 -567 -518 -507 563 -529 -495 -544 548 470 0 +552 -580 518 0 +-553 -570 568 0 +-542 -442 456 507 530 -571 -564 561 -402 0 +-566 573 -509 -572 502 544 507 0 +-562 577 552 468 -534 514 -361 571 -559 546 537 -520 0 +493 567 -540 472 0 +-512 513 -569 0 +551 540 404 0 +-441 -508 528 298 -558 440 -547 543 0 +-559 -548 -532 554 543 -508 0 +-511 -468 -581 0 +-373 -560 -518 0 +-526 -569 -492 0 +-581 -561 567 473 0 +516 -581 -552 498 474 0 +-563 544 -541 -527 0 +-461 -476 -507 408 -581 -518 -557 -502 0 +533 465 -505 541 -534 -568 -403 0 +520 536 564 509 528 0 +-564 -533 576 -508 569 552 566 0 +-532 447 -550 506 0 +-442 537 565 457 506 539 423 -453 490 552 503 0 +393 264 499 -539 -557 0 +525 567 -566 578 577 -564 -428 -405 0 +-530 462 512 0 +511 580 -517 493 0 +-499 -548 -535 473 -458 -577 564 475 -547 557 0 +517 -463 -487 -549 0 +528 -470 529 0 +565 466 -513 -560 531 0 +-579 -569 561 527 0 +494 -576 -522 578 0 +558 530 -513 0 +-502 -553 551 469 528 -578 0 +431 -561 -535 572 550 -516 0 +-471 -567 543 -465 -227 0 +543 -573 535 552 546 564 0 +545 528 -541 574 -546 0 +-546 539 574 -542 576 -515 0 +-570 -487 -373 0 +529 550 568 -563 571 -490 559 0 +-422 -550 514 0 +536 580 -528 466 -562 0 +-541 540 -537 0 +-552 -570 -579 539 -514 -439 485 0 +532 -485 463 551 0 +507 -423 -576 -491 0 +-574 576 581 0 +556 539 -545 408 -487 -476 0 +-552 560 573 0 +485 -569 -549 0 +538 -545 565 0 +-565 -515 -346 551 552 0 +555 562 -82 -574 0 +557 579 -562 0 +205 -565 -543 499 0 +540 -566 -558 0 +319 -547 517 577 0 +580 511 556 563 546 577 0 +551 -516 -421 571 -559 0 +-548 -538 -567 543 566 -524 -509 0 +-486 -511 353 572 0 +-470 508 538 558 560 0 +-478 567 -552 0 +527 489 -480 -556 549 -571 -493 -494 0 +547 -499 -523 0 +581 405 -564 513 0 +-498 558 -567 541 0 +-502 530 574 552 0 +-557 564 0 +-514 538 -560 0 +-544 -558 -567 408 -485 -532 0 +-479 -525 477 547 0 +-465 530 559 -540 -542 -575 544 0 +568 -523 -517 0 +-460 -571 562 -446 -439 0 +557 533 -485 -508 -543 0 +571 490 -539 0 +559 -481 506 -524 -521 382 450 -565 -494 544 -535 556 0 +-493 -549 -528 -495 0 +-405 526 560 0 +511 526 -499 -552 454 -530 579 -498 506 565 -570 -421 0 +563 -474 -503 0 +-406 529 -480 577 0 +531 457 546 514 509 0 +-533 -566 337 390 511 -554 0 +-467 -542 527 0 +-565 -328 -554 0 +418 502 -544 516 0 +471 493 -556 567 560 508 449 0 +-540 -580 -568 0 +553 -485 552 -541 534 0 +-562 -499 -526 -561 -517 525 0 +498 575 562 580 0 +516 -490 518 -546 -556 -350 494 0 +539 549 -491 0 +558 572 -535 -574 -576 -459 336 509 -388 0 +-567 486 473 521 503 488 485 -532 0 +-554 465 -561 0 +565 -538 490 495 577 -540 0 +537 512 -578 0 +-559 554 -570 466 0 +-543 -464 443 519 0 +-537 510 555 0 +-514 397 -540 -581 404 -506 0 +496 -385 575 0 +527 -483 -517 -573 543 -570 0 +574 550 580 0 +550 560 -576 493 507 0 +-538 -558 462 0 +486 537 -552 569 0 +-480 -576 549 543 -548 0 +570 554 -493 -519 497 435 546 539 0 +553 556 -490 564 497 -351 0 +-550 509 -580 302 -468 0 +-565 535 -534 0 +571 -574 -566 0 +-370 573 504 0 +515 576 506 531 -572 559 0 +-573 433 -572 -505 569 0 +501 576 -504 0 +-354 -572 533 438 -557 485 -573 -553 0 +-539 550 529 -564 0 +-574 581 -540 -473 0 +-510 467 -492 0 +-492 564 -558 513 0 +545 578 -561 -503 -551 0 +572 523 -540 492 -522 0 +513 550 405 0 +-439 322 479 0 +391 -542 -553 -501 -549 0 +568 -557 -559 -363 0 +-534 -571 -401 0 +507 567 519 -574 0 +-568 578 357 0 +404 -565 561 567 0 +409 528 -559 -479 -536 520 -289 551 0 +570 -507 545 0 +408 566 530 -517 -359 553 0 +491 500 578 0 +-513 -558 537 -464 0 +489 405 0 +-489 -405 0 +-213 130 0 +213 -130 0 +126 -189 0 +-126 189 0 +501 -250 0 +-501 250 0 +377 -280 0 +-377 280 0 +-391 -556 0 +391 556 0 +346 -92 0 +-346 92 0 +225 429 0 +-225 -429 0 +-243 277 0 +243 -277 0 +-280 69 0 +280 -69 0 +-70 -504 0 +70 504 0 +461 48 0 +-461 -48 0 +-543 258 0 +543 -258 0 +-419 -225 0 +419 225 0 +211 -318 0 +-211 318 0 +-182 -562 0 +182 562 0 +35 153 0 +-35 -153 0 diff --git a/cnfs/toolCheck.sh b/cnfs/toolCheck.sh index 1cb730f..7de2871 100755 --- a/cnfs/toolCheck.sh +++ b/cnfs/toolCheck.sh @@ -15,6 +15,13 @@ then exit 124 fi +# we want to see the failure, hence, print the output +if [ "$status" -eq 134 ] +then + cat /tmp/verify2_$$.cnf 1>&2 + exit 134 +fi + # cat /tmp/verify.cnf if [ "$status" -eq "10" ] then diff --git a/core/SolverTypes.h b/core/SolverTypes.h index 53fb432..9b92a29 100644 --- a/core/SolverTypes.h +++ b/core/SolverTypes.h @@ -167,13 +167,15 @@ class Clause unsigned has_extra : 1; unsigned reloced : 1; #ifndef PCASSO - unsigned lbd : 24; + unsigned lbd : 23; + unsigned lcm_simplified : 1; unsigned canbedel : 1; unsigned can_subsume : 1; unsigned can_strengthen : 1; unsigned size : 32; #else - unsigned lbd : 20; + unsigned lbd : 19; + unsigned lcm_simplified : 1; unsigned canbedel : 1; unsigned can_subsume : 1; unsigned can_strengthen : 1; @@ -196,6 +198,7 @@ class Clause has_extra = rhs.has_extra; reloced = rhs.reloced; lbd = rhs.lbd; + lcm_simplified = rhs.lcm_simplified; canbedel = rhs.canbedel; can_subsume = rhs.can_subsume; can_strengthen = rhs.can_strengthen; @@ -218,6 +221,7 @@ class Clause has_extra = rhs.has_extra; reloced = rhs.reloced; lbd = rhs.lbd; + lcm_simplified = rhs.lcm_simplified; canbedel = rhs.canbedel; can_subsume = rhs.can_subsume; can_strengthen = rhs.can_strengthen; @@ -252,7 +256,8 @@ class Clause #ifdef CLS_EXTRA_INFO header.extra_info = 0 #endif - header.lbd = 0; + header.lbd = 0; + header.lcm_simplified = 0; header.canbedel = 1; header.can_subsume = 1; header.can_strengthen = 1; @@ -305,6 +310,13 @@ class Clause data[header.size].abs = abstraction; } + bool wasLcmSimplified() const { return header.lcm_simplified; } + void setLcmSimplified() { header.lcm_simplified = 1; } + + /// reverse the order of the literals in the clause. take care when the clause is currently watched! + void reverse() { int i = 0, j = size() - 1; while (i < j) {const Lit tmp = data[i].lit; data[i].lit = data[j].lit; data[j].lit = tmp; ++i; --j;} } + + int size() const { return header.size; } void shrink(int i) { assert(i <= size()); if (header.has_extra) data[header.size - i] = data[header.size]; header.size -= i; } void pop() { shrink(1); } @@ -954,7 +966,7 @@ class MarkArray public: MarkArray(): - step(0) + step(1) {} ~MarkArray() @@ -965,7 +977,7 @@ class MarkArray void destroy() { vector().swap(array); - step = 0; + step = 1; } void create(const uint32_t newSize) @@ -1002,7 +1014,7 @@ class MarkArray void reset() { memset(&(array[0]), 0, sizeof(uint32_t) * array.size()); - step = 0; + step = 1; } /** give number of next step. if value becomes critical, array will be reset diff --git a/pcasso-src/LevelPool.cc b/pcasso-src/LevelPool.cc index 94a5ed2..5bcc8af 100644 --- a/pcasso-src/LevelPool.cc +++ b/pcasso-src/LevelPool.cc @@ -29,6 +29,9 @@ bool LevelPool::add_shared(vec& lits, unsigned int nodeID, bool disable_dup temp[0] = toLit(nodeID); + assert(toInt(temp[0]) >= 0 && "the number to identify the node should be positive"); + assert(writeP == 0 || shared_clauses[writeP-1] == lit_Undef); // the pointer should point at the end of a clause + assert(temp.size() < shared_clauses.size()); if (writeP + temp.size() < shared_clauses.size() - 2) { // Space for the ending lit_Undef @@ -38,7 +41,7 @@ bool LevelPool::add_shared(vec& lits, unsigned int nodeID, bool disable_dup writeP += temp.size(); int k = writeP; ++writeP; - while (shared_clauses[k] != lit_Undef) { + while (shared_clauses[k] != lit_Undef && k < endP) { // clean the whole vector, or until the next end of a clause shared_clauses[k++] = lit_Undef; } if (writeP > endP) { endP = writeP; } @@ -54,7 +57,7 @@ bool LevelPool::add_shared(vec& lits, unsigned int nodeID, bool disable_dup } int k = writeP; ++writeP; - while (shared_clauses[k] != lit_Undef) { + while (shared_clauses[k] != lit_Undef && k < endP) { shared_clauses[k++] = lit_Undef; } assert(endP > writeP); @@ -68,10 +71,11 @@ LevelPool::getChunk(int readP, vec& chunk) if (readP >= endP) { return; } - if (((readP != 0 && shared_clauses[readP - 1] == lit_Undef) || readP == 0)) { + if (( (readP != 0 && shared_clauses[readP - 1] == lit_Undef) || readP == 0)) { if (readP <= writeP) { chunk.growTo(writeP - readP); int j = 0; + assert(readP == 0 || toInt(shared_clauses[readP]) >= 0); // the first literal indicates the ID of the node that shared the clause for (int i = readP; i < writeP; ++i) { assert(writeP - readP == chunk.size()); assert(j < chunk.size()); @@ -82,6 +86,7 @@ LevelPool::getChunk(int readP, vec& chunk) } else { chunk.growTo((endP - readP) + writeP); int j = 0; + assert(readP == 0 || toInt(shared_clauses[readP]) >= 0); // the first literal indicates the ID of the node that shared the clause for (int i = readP; i < endP; ++i) { assert(j < chunk.size()); chunk[j++] = shared_clauses[i]; @@ -96,6 +101,7 @@ LevelPool::getChunk(int readP, vec& chunk) } else { chunk.growTo(writeP); int j = 0; + assert(writeP == 0 || toInt(shared_clauses[0]) > 0); // the first literal indicates the ID of the node that shared the clause for (int i = 0; i < writeP; ++i) { assert(j < chunk.size()); chunk[j++] = shared_clauses[i]; diff --git a/pcasso-src/LookaheadSplitting.cc b/pcasso-src/LookaheadSplitting.cc index fcf2455..6050926 100644 --- a/pcasso-src/LookaheadSplitting.cc +++ b/pcasso-src/LookaheadSplitting.cc @@ -337,6 +337,8 @@ lbool LookaheadSplitting::produceSplitting(vec* >* > **splits, vec< } else if (next == lit_Undef) { if (checkSolution()) { return l_True; + } else { + assert(false && "this case should be handled, a split is required"); } } @@ -486,7 +488,8 @@ lbool LookaheadSplitting::produceSplitting(vec* >* > **splits, vec< } else { cancelUntil(decisionLevel() - 1); next = ~(*decList)[decisionLevel()]; - uncheckedEnqueue(next); + if(value(next) != l_Undef) uncheckedEnqueue(next); + assert(value(next) != l_False && "tested this case earlier"); //enqueue(next); decList->pop(); vec *c = new vec(); @@ -509,6 +512,8 @@ lbool LookaheadSplitting::produceSplitting(vec* >* > **splits, vec< if (next == lit_Undef) { if (checkSolution()) { return l_True; + } else { + assert(false && "this case should be handled, a split is required"); } } if (decisionLevel() == 0 && splitting->size() == 0) { @@ -693,7 +698,7 @@ void LookaheadSplitting::shrinkClauses() for (int i = 0, j = 0, k = 0; i < clauses.size(); i++) { Clause& c = ca[clauses[i]]; for (j = 0, k = 0; j < c.size(); j++) { - if (value(c[j]) != l_False) { + if (value(c[j]) != l_False || j < 2) { // do not drop watched literals! c[k] = c[j]; k++; if (opt_pure_lit > 0) { @@ -990,7 +995,9 @@ bool LookaheadSplitting::lookahead(Lit p, vec& lookaheadTrail, vec& un unsigned nbscore; learnt_clause.clear(); otfssClauses.clear(); extraInfo = 0; // reset global structures - int ret = analyze(confl, learnt_clause, backtrack_level, nbscore, otfssClauses, extraInfo); + int ret = 0; + if(ca[confl].size() == 1) learnt_clause.push( ca[confl][0]); + else ret = analyze(confl, learnt_clause, backtrack_level, nbscore, otfssClauses, extraInfo); assert(ret == 0 && "can handle only usually learnt clauses"); if (ret != 0) { _exit(1); } // abort, if learning is set up wrong @@ -998,7 +1005,10 @@ bool LookaheadSplitting::lookahead(Lit p, vec& lookaheadTrail, vec& un if (learnt_clause[0] != ~p && value(learnt_clause[0]) == l_Undef) { if (learnt_clause.size() == 1) { //fprintf(stderr, "splitter: Unit Clause Learnt at level %d\n", decisionLevel()); - uncheckedEnqueue(learnt_clause[0]); + // make sure we do not break something by canceling levels unexpectedly + // cancelUntil(0); // units need to go to level 0 + // assert(decisionLevel() == 0 && "units should only be added at level 0!"); + // uncheckedEnqueue(learnt_clause[0]); //CRef cr = ca.alloc(learnt_clause, true); units.push(learnt_clause[0]); //saving unit learnt clauses } else { /*if(learnt_clause.size() <= 2)*/ @@ -1192,8 +1202,9 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) sizePositiveLookahead = trail.size() - initTrailSize; for (int j = initTrailSize; j < trail.size(); j++) { //fprintf(stderr, "Watcher size = %d\n", watches[trail[j]].size()); - sizeWatcherPositiveLookahead += sign(trail[j]) ? watcherNegLitSize[bestKList[i]] : watcherPosLitSize[bestKList[i]]; - binClausePositiveLookahead += sign(trail[j]) ? numPosLitTerClause[var(trail[j])] : numNegLitTerClause[var(trail[j])]; + const Var v = var(trail[j]); + sizeWatcherPositiveLookahead += sign(trail[j]) ? watcherNegLitSize[v] : watcherPosLitSize[v]; + binClausePositiveLookahead += sign(trail[j]) ? numPosLitTerClause[v] : numNegLitTerClause[v]; } //check if solution found if (checkSolution()) { @@ -1211,7 +1222,7 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) cancelUntil(decLev); score[i] = 0; if (opt_failed_literals > 0) { - uncheckedEnqueue(~p); + if(value(~p) == l_Undef) uncheckedEnqueue(~p); // enqueue(~p); failedLiterals.push(p); } @@ -1267,8 +1278,9 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) } sizeNegativeLookahead = trail.size() - initTrailSize; for (int j = initTrailSize; j < trail.size(); j++) { - sizeWatcherNegativeLookahead += sign(trail[j]) ? watcherNegLitSize[bestKList[i]] : watcherPosLitSize[bestKList[i]]; - binClauseNegativeLookahead += sign(trail[j]) ? numPosLitTerClause[var(trail[j])] : numNegLitTerClause[var(trail[j])]; + const Var v = var(trail[j]); + sizeWatcherNegativeLookahead += sign(trail[j]) ? watcherNegLitSize[v] : watcherPosLitSize[v]; + binClauseNegativeLookahead += sign(trail[j]) ? numPosLitTerClause[v] : numNegLitTerClause[v]; } //check if to perform double lookahead if (opt_double_lookahead) { @@ -1425,10 +1437,12 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) jump: cancelUntil(decLev); - for (int i = 0; i < score.size(); i++) { - if (score[i] > 0 && score[i] > bestVarScore && value(bestKList[i]) == l_Undef) { - bestVarScore = score[i]; - bestVarIndex = i; + if (bestKList.size() > 0) { + for (int i = 0; i < score.size(); i++) { + if (score[i] > 0 && score[i] > bestVarScore && value(bestKList[i]) == l_Undef) { + bestVarScore = score[i]; + bestVarIndex = i; + } } } @@ -1445,7 +1459,7 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) } } - Lit next; + Lit next = lit_Undef; if (bestVarIndex != var_Undef) { bool pol = false; @@ -1579,7 +1593,7 @@ Lit LookaheadSplitting::pickBranchLiteral(vec* > **valid) *///if(opt_var_eq>0) //fprintf(stderr, "splitter: Var Equivalence \t\t\t = %d \n", varEq.size()/2); //fprintf(stderr, "splitter: Best Var Index = %d\n",bestVarIndex); - if (opt_tabu) { + if (opt_tabu && next != lit_Undef) { tabuList[var(next)] = true; } diff --git a/pcasso-src/Master.cc b/pcasso-src/Master.cc index 1008f5e..734c85a 100644 --- a/pcasso-src/Master.cc +++ b/pcasso-src/Master.cc @@ -76,6 +76,8 @@ static BoolOption Portfolio("SPLITTER", "portfolio", "Portfolio mode.\n", fa static Int64Option PortfolioLevel("SPLITTER", "portfolioL", "Perform Portfolio until specified level\n", 0, Int64Range(0, INT64_MAX)); // depends on option above! static BoolOption UseHardwareCores("SPLITTER", "usehw", "Use Hardware, pin threads to cores\n", false); +// to supress unsound behavior wrt UNSAT answers +static BoolOption opt_sat_only("MAIN", "sat-only", "In case the solver answers 'UNSATISFIABLE', print a warning and turn it into 'UNKNOWN'", false); static vector hardwareCores; // set of available hardware cores @@ -196,6 +198,7 @@ int Master::run() // check the state of the tree // solve the next node in the tree if (MSverbosity > 0) { fprintf(stderr, "M: start main loop\n"); } + int stuck = 0; while (!done) { int idles = 0; // important, because this indicates that there can be done more in the next round! @@ -208,12 +211,15 @@ int Master::run() if (threadData[i].s == unclean) { // Davide> Free memory - if (threadData[i].result == 20 && stopUnsatChilds) { + if (threadData[i].result == 20) { // The children are NOT running, so I can delete every pool lock(); threadData[i].nodeToSolve->setState(TreeNode::unsat, true); + if(MSverbosity) fprintf(stderr, "c root node state: %d\n", root.getState()); unlock(); - killUnsatChildren(i); + if (stopUnsatChilds) { + killUnsatChildren(i); + } } uncleans++; @@ -269,7 +275,9 @@ int Master::run() // check the tree for UNSAT/SAT if (MSverbosity > 1) { fprintf(stderr, "M: CHECK TREE\n"); } + if(MSverbosity) fprintf(stderr, "c root node state pre-eval: %d\n", root.getState()); root.evaluate(*this); + if(MSverbosity) fprintf(stderr, "c root node state post eval: %d\n", root.getState()); if (root.getState() == TreeNode::unsat) { // assign the according solution solution = 20; @@ -371,7 +379,13 @@ int Master::run() for (; i < threads; ++i) { if (threadData[i].s == splitting) { break; } // TODO SHOULDN'T BE IDLE ?? DAVIDE> if (threadData[i].s == working) { break; } // do not stop if some worker is doing something + if (threadData[i].s == unclean) { break; } // do not stop if some worker is not cleaned up yet } + + // allow the solver 16 times reaching this before we actually stop working + stuck ++; + if (stuck < 16) { continue; } + // if there is a thread that is still doing something, we did not run out of work! if (i == threads) { fprintf(stderr, "\n***\n*** RUN OUT OF WORK - return unknown?\n***\n\n"); @@ -384,7 +398,9 @@ int Master::run() else if (threadData[i].s == unclean) { uncleans++; } } - fprintf(stderr, "c idle: %d working: %d splitting: %d unclean: %d\n", idles, workers, splitters, uncleans); + fprintf(stderr, "c (after %d iterations): idle: %d working: %d splitting: %d unclean: %d\n", stuck, idles, workers, splitters, uncleans); + // for debugging purposes, stop here. we assume, there is a solution but nobody told us, so let's check + assert(false && "this should not be reached"); exit(0); } @@ -426,6 +442,13 @@ int Master::run() assert(model != 0 || solution != 10); + // handle case where we want to suppress UNSAT answer + if(opt_sat_only && solution == 20) { + fprintf(stdout, "c WARNING: rejecting s UNSATISFIABLE as requested by command line\n"); + if (res != NULL) fprintf(res, "c WARNING: rejecting s UNSATISFIABLE as requested by command line\n"); + solution = 0; + } + if (printModel) { if (res != NULL) { fprintf(stderr, "c write model to file\n"); } @@ -482,7 +505,7 @@ int Master::run() if (res != NULL) { fprintf(res, "s UNSATISFIABLE\n"); } fprintf(stdout, "s UNSATISFIABLE\n"); } else { - fprintf(stdout, "s INDETERMINATE\n"); + fprintf(stdout, "s UNKNOWN\n"); } @@ -871,7 +894,7 @@ Master::solveInstance(void* data) } else { // result of solver is "unknown" if (master.plainpart) { tData.nodeToSolve->setState(TreeNode::retry); } - else { tData.nodeToSolve->setState(TreeNode::unknown); } + else { if (tData.nodeToSolve->getState() == TreeNode::retry) tData.nodeToSolve->setState(TreeNode::unknown); } if (keepToplevelUnits > 0) { int toplevelVariables = 0; @@ -933,7 +956,7 @@ Master::splitInstance(void* data) if (Portfolio && tData.nodeToSolve->getLevel() < PortfolioLevel) { // perform portfolio only until this level! master.lock(); // ********************* START CRITICAL *********************** childConstraints.push_back(new vector*>); - tData.nodeToSolve->setState(TreeNode::unknown); + if (tData.nodeToSolve->getState() == TreeNode::retry) { tData.nodeToSolve->setState(TreeNode::unknown); } // only modify, if it's retry tData.nodeToSolve->expand(childConstraints); master.addNode(tData.nodeToSolve->getChild(0)); tData.result = ret; @@ -1140,7 +1163,7 @@ Master::splitInstance(void* data) // shut down all threads that are running below that node (necessary?) } else { // simply set the node to the unknown state - tData.nodeToSolve->setState(TreeNode::unknown); + if (tData.nodeToSolve->getState() == TreeNode::retry) { tData.nodeToSolve->setState(TreeNode::unknown); } for (unsigned int i = 0; i < validConstraints.size(); i++) { tData.nodeToSolve->addNodeConstraint(validConstraints[i]); } diff --git a/pcasso-src/SolverPT.cc b/pcasso-src/SolverPT.cc index 59001c4..616862e 100644 --- a/pcasso-src/SolverPT.cc +++ b/pcasso-src/SolverPT.cc @@ -47,6 +47,14 @@ static IntOption cleaning_delay("SPLITTER", "clean-delay", "Cleaning delay for static IntOption opt_shared_clean_delay("SPLITTER + SHARING", "shclean-delay", "Keep the shared clause for a certain number of cleanings\n", 1, IntRange(0, 1)); static BoolOption opt_lbd_minimization("SPLITTER + SHARING", "lbd-min", "Enable lbd minimization.\n", true); static BoolOption opt_simulate_portfolio("SPLITTER + SHARING", "sim-port", "Enable Simulation of Portfolio.\n", true); + +static BoolOption opt_lcm("SPLITTER + LCM", "lcm", "perform LCM", false); +static IntOption opt_lcm_style("SPLITTER + LCM", "lcm-style", "Use vivifaction for learned clauses (1=plain vivi, 2=vivi+analyze, 3=vivi+unionanalyze, 4+reverse, >4 X-4, and-reverse)", 18, IntRange(0, 24)); +static IntOption opt_lcm_freq("SPLITTER + LCM", "lcm-freq", "Use LCM after every X reduceDB calls", 2, IntRange(1, INT32_MAX)); +static IntOption opt_lcm_min_size("SPLITTER + LCM", "lcm-min-size", "Apply LCM only to clauses that have at least X literals", 1, IntRange(1, INT32_MAX)); +static BoolOption opt_lcm_full("SPLITTER + LCM", "lcm-full", "at all restarts, always on all learned clauses #NoAutoT", false); +static IntOption opt_lcm_dbg("SPLITTER + LCM", "lcm-dbg", "debug LCM computation #NoAutoT", 0, IntRange(0, 5)); + //================================================================================================= SolverPT::SolverPT(CoreConfig& config) : @@ -101,6 +109,9 @@ SolverPT::SolverPT(CoreConfig& config) : , n_acquired_clausesID(0) , n_tot_forced_restarts_ID(0) , n_tot_reduceDB_calls_ID(0) + // LCM + , performSimplificationNext(0) + , nbLCM(0), nbLitsLCM(0), nbConflLits(0), nbLCMattempts(0), nbLCMsuccess(0), npLCMimpDrop(0), nbRound1Lits(0), nbRound2Lits(0), nbLCMfalsified(0) { // Davide> Statistics if (!disable_stats) { @@ -1016,6 +1027,389 @@ CRef SolverPT::propagate() return confl; } +struct reduceDB_lt { + ClauseAllocator& ca; + reduceDB_lt(ClauseAllocator& ca_) : ca(ca_) {} + bool operator()(CRef x, CRef y) + { + + // Main criteria... Like in MiniSat we keep all binary clauses + if (ca[x].size() > 2 && ca[y].size() == 2) { return 1; } + + if (ca[y].size() > 2 && ca[x].size() == 2) { return 0; } + if (ca[x].size() == 2 && ca[y].size() == 2) { return 0; } + + // Second one based on literal block distance + if (ca[x].lbd() > ca[y].lbd()) { return 1; } + if (ca[x].lbd() < ca[y].lbd()) { return 0; } + + + // Finally we can use old activity or size, we choose the last one + return ca[x].activity() < ca[y].activity(); + //return x->size() < y->size(); + + //return ca[x].size() > 2 && (ca[y].size() == 2 || ca[x].activity() < ca[y].activity()); } + } +}; + +int SolverPT::simplifyLearntLCM(Clause& c, int vivificationConfig) +{ + int roundLits[3]; + int round = 0; + roundLits[0] = c.size(); + bool modified = false; + while (vivificationConfig > 0 && c.size() > 1) { + bool minimized = false; + round ++; + const int roundViviConfig = vivificationConfig % 5; + vivificationConfig /= 5; + + assert(round <= 2 && "have at most 2 rounds"); + // if this round should not perform any simplification, jump to the next round (and work with reversed clause) + if (roundViviConfig == 0) {roundLits[round] = c.size(); continue; } + + if (round == 2) { // reverse clause in second iteration! + c.reverse(); + } + + Lit impliedLit = lit_Undef; // literal that is implied by the negation of some other literals + int i = 0, j = 0, maxLevel = 0; + CRef confl = CRef_Undef; + + assert(decisionLevel() == 0 && "LCM has to be performed on level 0"); + const int inputSize = c.size(); + for (i = 0, j = 0; i < c.size(); i++) { + if (value(c[i]) == l_Undef) { + newDecisionLevel(); + uncheckedEnqueue(~c[i]); + c[j++] = c[i]; + confl = propagate(); + if (confl != CRef_Undef) { + // F \bigvee \neg l_1 \land ... \land \neg l_{i-1} -> \bot \equiv F \land (l_1 \lor ... \lor l_{i-1}) + // or something similar, based on conflict analysis with the clause we just got as conflict + break; + } + } else if (value(c[i]) == l_True) { + if (roundViviConfig > 2) { // <- enable only in case conflict resultion is performed below. the actual break does not work! + impliedLit = c[i]; // store to be able to use it for conflict analysis afterwards + c[j++] = c[i]; // not necessary, as will be resolved out later anyways (or use as basis for conflict)? + + // F \bigvee \neg l_1 \land ... \land \neg l_{i-1} -> \l_i \equiv + // F \bigvee \neg l_1 \land ... \land \neg l_{i-1} \land \neg l_i -> \bot, with confl = reason(l_i) + confl = reason(var(c[i])); + assert((confl != CRef_Undef) && "the assignment to the literal has to have a reason"); + break; + } else { + // keep the satisfied literal, because moving it away can fail! + c[j++] = c[i]; + break; // this part until c[j] is subsumed by other a combination of other clauses in the formula (seems to be hyper-resolution to get the subsumed clause) + } + } else { + assert(value(c[i]) == l_False && "there are only 3 case for a truth assignment"); + // F \land (-l1,...,-lk} -> {-li} + } + } + + if (j < c.size()) { modified = true; } + c.shrink(c.size() - j); + + if (roundViviConfig > 1 && (confl != CRef_Undef)) { + conflict.clear(); // use the conflict vector, as it's a class member. make sure to clear it afterwards again! + analyzeFinal(confl, conflict, impliedLit); + if (impliedLit != lit_Undef) { + conflict.push(impliedLit); // add the final literal of the clause here, has to be done after analyzeFinal! + } + if (conflict.size() < c.size()) { + nbConflLits += c.size() - conflict.size(); + assert(c.size() >= conflict.size() && "shrink should not increase size"); + modified = true; + c.shrink(c.size() - conflict.size()); // shrink clause! + for (int k = 0; k < c.size(); ++ k) { c[k] = conflict[k]; } // and actually use the literals of conflict + } else if (false && impliedLit != lit_Undef && c.last() == impliedLit && j == c.size()) { // this is no valid operation, unless we actually did not shrink c above! + // in case analysis did not result in removing a literal from c, at least drop the impliedLit as in usual vivification + assert(c[j - 1] == impliedLit && c.size() >= j && "until here, the position of impliedLit should be fixed"); + c[j - 1] = c.last(); // drop the literal "impliedLit" from the clause + c.pop(); + modified = true; + npLCMimpDrop ++; + } + conflict.clear(); + + // analyzeFinal will place the literals in reverse order in c. Make sure we can convert this back + if (roundViviConfig > 3) { c.reverse(); } + } + + if (c.size() < inputSize) { + permDiff.nextStep(); + unsigned int nblevels = 0; + for (int i = 0; i < c.size(); i++) { + int l = level(var(c[i])); + if (! permDiff.isCurrentStep(l)) { + permDiff.setCurrentStep(l); + nblevels++; + } + } + + if (nblevels < c.lbd()) { + c.setLBD(nblevels); + } + minimized = true; modified = true; + } + cancelUntil(0); + + if (round == 2) { // reverse clause in second iteration! + c.reverse(); + } + roundLits[round] = c.size(); + + if (!minimized) { break; } // no need for a second iteration if no minimization was achieved in the first iteration + } + + nbRound1Lits += roundLits[0] - roundLits[1]; + if (round > 1) { nbRound2Lits += roundLits[1] - roundLits[2]; } + + // set worst case PT level, as we currently do not have a good way to track the actual level + if (modified) { c.setPTLevel(getNodePTLevel()); } + + return c.lbd(); +} + +bool SolverPT::simplifyClause_viviLCM(const CRef cr, int LCMconfig, bool fullySimplify) +{ + assert(qhead == trail.size() && "make sure, we are working on level 0 and the PROOF is up to date!"); + Clause& c = ca[cr]; + bool keepClause = false; + bool false_lit = false, sat = false; + // in the first 2 positions, there should not be a falsified literal after propagation! + int i = 2, j = 2; + + if (c.size() > 2) { + if (value(c[0]) == l_True || value(c[1]) == l_True) { + sat = true; + } else { + for (i = 2; i < c.size(); i++) { + if (value(c[i]) == l_True) { + sat = true; + break; + } + } + if (!sat) { + unsigned int newPTLevel = c.getPTLevel(); + for (i = 2; i < c.size(); i++) { + if (value(c[i]) != l_False) { + c[j++] = c[i]; // TODO FIXME: has to end up in drat proof! + if (value(c[i]) == l_True) { + sat = true; + break; + } + } else { + newPTLevel = newPTLevel > getLiteralPTLevel(c[i]) ? newPTLevel : getLiteralPTLevel(c[i]); + ; + } + } + if(i!=j) c.setPTLevel(newPTLevel); // update level based on literals that have been dropped + nbLCMfalsified += (i - j); + c.shrink(i - j); + // set worst case PT level, as we currently do not have a good way to track the actual level + c.setPTLevel(getNodePTLevel()); + } + } + // a clause might become satisfiable during the analysis. remove such a clause! + if (sat) { + removeClause(cr, true); // this will also delete the clause from the DRAT proof! + return false; // drop the clause! + } + } else { + if (value(c[0]) == l_True || value(c[1]) == l_True) { + return true; // keep satisfied binary clauses, and do not continue with these clauses + } + } + + if (!opt_lcm_full && !fullySimplify) { // use efficiency filters? + // if clause is in first half of sorted learned clauses, or has been processed in the past, ignore it + return true; + } + + int oldSize = c.size(); + detachClause(cr, true); // expensive, hence perform as late as possible + + nbLCMattempts ++; + // simplifying the clause does not change it's memory location, hence c is still valid afterwards + int newLBD = simplifyLearntLCM(c, LCMconfig); + nbLitsLCM += oldSize - c.size(); + nbLCMsuccess = oldSize > c.size() ? nbLCMsuccess + 1 : nbLCMsuccess; + + // add clause back to the data structures + if (c.size() > 1) { + attachClause(cr); + keepClause = true; + + if (c.learnt() && c.size() < oldSize) { // re-calculate LBD for the clause, if it became smaller + if (newLBD < c.lbd()) { + c.setLBD(newLBD); + } + } + + c.setLcmSimplified(); + } else if (c.size() == 1) { + uncheckedEnqueue(c[0]); // this clause is already added to the proof + int breforeTrail = trail.size(); + int beforePropTopLevelLits = trail.size(); + if (propagate() != CRef_Undef) { + ok = false; + return false; + } + // free clause, as it's satisfiable now + c.mark(1); + ca.free(cr); + } else { + ok = false; + } + return keepClause; +} + +bool SolverPT::simplifyLCM() +{ + /* some notes on theory: + imply a negative literal: + + f, (l1 lm) + f, -l1, ..., -le -> -lf + f, -l1, ..., -le, -lg ... -lm -> -lf + + f, -l1, ..., -le, -lg ... -lm, lf -> \bot + f -> l1, ...,le, -lf, lg, ... lm + f -> C \setminus lf + f,C \equiv f, C \setminus lf + + imply a positive literal: + + f, (l1 lm) + f, -l1, ..., -le -> lf + f, -l1, ..., -le, -lf -> lf \land -lf -> \bot + f -> (l1, ..., le, lf) + f,C \equiv f, (l1, ..., le, lf) -> subsume! == shrink case + + conflict: + + f,D, -l1, ..., -lf -> -D + + f,D \equiv f,D,(l1,...,lf), i.e. f,D \to (l1,...,lf)? (yes, see the above) + + f, -l1, ..., -le, -lf -> \bot + f -> l1, ...,le, -lf, lg, ... lm + f -> C \setminus lf + * */ + + assert(qhead == trail.size() && "make sure we are in a good state before LCM"); + + // make sure we do not miss something + assert(decisionLevel() == 0 && "run learned clause minimization only on level 0"); + if (!ok || propagate() != CRef_Undef) { + lastLevel = curPTLevel; + return ok = false; + } + + MethodClock lcmMethodClock(LCMTime); // measure the time for the remainder of this function in the given clock + + nbLCM ++; + assert(decisionLevel() == 0 && "run learned clause minimization only on level 0"); + removeSatisfied(clauses); // TODO: test whether actually necessary when being executed "right after" reduceDB() + watches.cleanAll(); + + // drop indexes to learned clauses + for (int i = 0 ; i < learnts_indeces.size(); ++i) { + learnts_indeces[i].clear(); + } + + int ci, cj; + for (ci = 0, cj = 0; ci < learnts.size(); ci++) { + const CRef cr = learnts[ci]; + Clause& c = ca[cr]; + if (c.mark()) { continue; } // this clause can be dropped + if (c.size() < opt_lcm_min_size) { + // do not look at clauses that have less than the given amount of literals + if (c.isShared()) { + c.decShCleanDelay(); + } else if (c.lbd() <= LBD_lt) { + learnts_indeces[c.getPTLevel()].push_back(cj); // memorize this clause to share it later + } + learnts[cj++] = learnts[ci]; + continue; + } + + bool keep = simplifyClause_viviLCM(cr, opt_lcm_style, ! c.wasLcmSimplified() && ci >= learnts.size() / 2); // only run full LCM on new good clauses + if (keep) { + if (c.isShared()) { + c.decShCleanDelay(); + } else if (c.lbd() <= LBD_lt) { + learnts_indeces[c.getPTLevel()].push_back(cj); // memorize this clause to share it later + } + learnts[cj++] = learnts[ci]; + } + if (!ok) { break; } // stop in case we found an empty clause + } + // fill gaps unneeded space + learnts.shrink(ci - cj); + + + checkGarbage(); + return ok; +} + + +void SolverPT::analyzeFinal(const CRef& conflictingClause, vec< Lit >& out_conflict, const Lit otherLit) +{ + out_conflict.clear(); + + if (decisionLevel() == 0) { + return; + } + + + // saw all literals of this clause (if they are not top level) + const Clause& c = ca[conflictingClause]; + for (int i = 0 ; i < c.size(); ++ i) { + if (level(var(c[i])) > 0) { + varFlags[var(c[i])].seen = 1; + } + } + + + const int minIndex = trail_lim.size() < 1 ? 0 : trail_lim[0]; + for (int i = trail.size() - 1; i >= minIndex; i--) { + Var x = var(trail[i]); + if (varFlags[x].seen) { + + { + if (reason(x) == CRef_Undef) { + assert(level(x) > 0); + out_conflict.push(~trail[i]); + } else { + Clause& c = ca[ reason(x) ]; + // Bug in case of assumptions due to special data structures for Binary. + // Many thanks to Sam Bayless (sbayless@cs.ubc.ca) for discover this bug. + for (int j = ((c.size() == 2) ? 0 : 1); j < c.size(); j++) + if (level(var(c[j])) > 0) { + varFlags[var(c[j])].seen = 1; + } + } + } + varFlags[x].seen = 0; + } + } + + { + // saw all literals of this clause (if they are not top level) + const Clause& c = ca[conflictingClause]; + for (int i = 0 ; i < c.size(); ++ i) { + if (level(var(c[i])) > 0) { + varFlags[var(c[i])].seen = 0; + } + } + } +} + /*_________________________________________________________________________________________________ | | search : (nof_conflicts : int) (params : const SearchParams&) -> [lbool] @@ -1052,6 +1446,18 @@ lbool SolverPT::search(int nof_conflicts) if (!ok) { return l_False; } } + // simplify + if (opt_lcm_full || (opt_lcm_style > 0 && performSimplificationNext % opt_lcm_freq == 0)) { + // from time to time we have to interfere with partial restarts, but LCM overrules, to be able to run once in a while + if (decisionLevel() > 0) { + cancelUntil(0); + } + performSimplificationNext = 0; + sort(learnts, reduceDB_lt(ca)); + if (!simplifyLCM()) { return l_False; } + performSimplificationNext = 0; + } + for (;;) { if (asynch_interrupt) { return l_Undef; } // Davide PTLevel = 0; // Davide> if I learn an unsafe clause I have to tag it @@ -1165,6 +1571,8 @@ lbool SolverPT::search(int nof_conflicts) curRestart = (conflicts / nbclausesbeforereduce) + 1; reduceDB(); nbclausesbeforereduce += incReduceDB; + + if (opt_lcm) { performSimplificationNext = 1; } // in case LCM is activated, after clause reduction, performing one more analysis of clauses is ok } Lit next = lit_Undef; @@ -1175,7 +1583,7 @@ lbool SolverPT::search(int nof_conflicts) // Dummy decision level: newDecisionLevel(); } else if (value(p) == l_False) { - analyzeFinal(~p, conflict); + Solver::analyzeFinal(~p, conflict); return l_False; } else { next = p; @@ -1435,7 +1843,9 @@ void SolverPT::push_learnts() bool sharedSuccess = false; bool fullPool = false; + vec c_lits; for (unsigned int i = 0; i < learnts_indeces.size(); i++) { + if(learnts_indeces[i].size() == 0) continue; // nothing to share for this level, skip it! davide::LevelPool* pool = previous_pools[i]; if (pool == 0) { continue; } @@ -1450,15 +1860,21 @@ void SolverPT::push_learnts() pool->levelPoolLock.wLock(); } for (unsigned int j = 0; j < learnts_indeces[i].size(); j++) { - Clause& c = ca[learnts[learnts_indeces[i][j]]]; + int lc_index = learnts_indeces[i][j]; + if (lc_index >= learnts.size()) { + assert(lc_index < learnts.size() && "indexes to learned clauses to share have to be in bounds"); + continue; + } + Clause& c = ca[learnts[lc_index]]; c.setShared(); - vec c_lits; + c_lits.clear(); // memory consumption optimization for (unsigned j = 0; j < c.size(); j++) { //creating vector of literals present in the clause c_lits.push(c[j]); } + assert(c.getPTLevel() >= i && "cannot share clause more upwards than its PT level allows"); sharedSuccess = pool->add_shared(c_lits, tnode->id(), disable_dupl_removal, disable_dupl_check); fullPool = pool->isFull(); @@ -1545,7 +1961,7 @@ void SolverPT::pull_learnts(int curr_restarts) } pool->levelPoolLock.rLock(); // Davide> START CRITICAL } - int readP = shared_indeces[i]; + volatile int readP = shared_indeces[i]; pool->getChunk(readP, chunk); @@ -1625,7 +2041,10 @@ bool SolverPT::addSharedLearnt(vec& ps, unsigned int pt_level) uncheckedEnqueue(ps[0], CRef_Undef, pt_level); // Davide> attach pt_level info level0UnitsIndex++; //need not to share this unit as it is already coming from a shared pool, thats why we are increasing the index of level0 units to be shared if (!disable_stats && prevDecLevel > 0) { localStat.changeI(n_tot_forced_restarts_ID, 1); } - return ok = (propagate() == CRef_Undef); // FIXME Davide> Changed + if (propagate() != CRef_Undef){ + lastLevel = pt_level; // store PT level for failure + return ok = false; + } else return true; } } // else, we already have that unit clause! } else { @@ -1731,31 +2150,6 @@ void SolverPT::unsatRestartStrategy() } } -struct reduceDB_lt { - ClauseAllocator& ca; - reduceDB_lt(ClauseAllocator& ca_) : ca(ca_) {} - bool operator()(CRef x, CRef y) - { - - // Main criteria... Like in MiniSat we keep all binary clauses - if (ca[x].size() > 2 && ca[y].size() == 2) { return 1; } - - if (ca[y].size() > 2 && ca[x].size() == 2) { return 0; } - if (ca[x].size() == 2 && ca[y].size() == 2) { return 0; } - - // Second one based on literal block distance - if (ca[x].lbd() > ca[y].lbd()) { return 1; } - if (ca[x].lbd() < ca[y].lbd()) { return 0; } - - - // Finally we can use old activity or size, we choose the last one - return ca[x].activity() < ca[y].activity(); - //return x->size() < y->size(); - - //return ca[x].size() > 2 && (ca[y].size() == 2 || ca[x].activity() < ca[y].activity()); } - } -}; - void SolverPT::reduceDB() { int i, j; @@ -1773,6 +2167,10 @@ void SolverPT::reduceDB() int limit = learnts.size() / 2; + for (int i = 0; i < learnts_indeces.size(); ++i) { + learnts_indeces[i].clear(); + } + for (i = j = 0; i < learnts.size(); i++) { Clause& c = ca[learnts[i]]; //assert(c.getPTLevel()& out_conflict, const Lit otherLit = lit_Undef); + private: vec varPT; //storing the PT level of each variable //CMap clausePT; //storing the PT level of each clause diff --git a/scripts/pcasso.sh b/scripts/pcasso.sh index bcdcdb4..d4086c1 100755 --- a/scripts/pcasso.sh +++ b/scripts/pcasso.sh @@ -42,7 +42,7 @@ simplifier="$DIR/coprocessor" # file=$1 # first argument is CNF instance to be solved shift 1 -tmpDir=$2 # directory to write the temporary files to +tmpDir=$1 # directory to write the temporary files to shift 1 # reduce the parameters, removed the very first one. remaining $@ parameters are arguments # in case no tmpDir has been specified, create one and trap for deletion on exit