First commit - loads a saved pzpre3.1 file

This commit is contained in:
Luke Hubmayer-Werner 2020-05-20 16:49:22 +09:30
commit c8ab4d077b
11 changed files with 781 additions and 0 deletions

BIN
DroidSans.ttf Normal file

Binary file not shown.

25
Main.tscn Normal file
View File

@ -0,0 +1,25 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://scripts/GameField.gd" type="Script" id=1]
[node name="Control" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
__meta__ = {
"_edit_use_anchors_": false
}
[node name="GameField" type="ColorRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
color = Color( 0.8, 0.8, 0.8, 1 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

7
default_env.tres Normal file
View File

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

7
dynamicfont.tres Normal file
View File

@ -0,0 +1,7 @@
[gd_resource type="DynamicFont" load_steps=2 format=2]
[ext_resource path="res://DroidSans.ttf" type="DynamicFontData" id=1]
[resource]
size = 24
font_data = ExtResource( 1 )

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

34
icon.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

38
project.godot Normal file
View File

@ -0,0 +1,38 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
_global_script_classes=[ ]
_global_script_class_icons={
}
[application]
config/name="CoopPuzzle"
run/main_scene="res://Main.tscn"
config/icon="res://icon.png"
[autoload]
Common="*res://scripts/Common.gd"
[debug]
gdscript/warnings/unused_variable=false
gdscript/warnings/unused_argument=false
gdscript/warnings/unreachable_code=false
gdscript/warnings/integer_division=false
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"

126
scripts/Common.gd Normal file
View File

@ -0,0 +1,126 @@
extends Node
class PoolArray2D:
var _array
var _rows := 1
var _cols := 1
# const XORMASK := (1<<8)-1
func _init(rows:=1, cols:=1, init=null):
assert(rows>0)
assert(cols>0)
_rows = rows
_cols = cols
make_array()
if init != null:
for row in rows:
for col in cols:
set_cell(row, col, init)
func make_array():
_array = PoolByteArray()
_array.resize(_rows * _cols)
func set_cell(row: int, col: int, value: int):
assert(row < _rows)
assert(col < _cols)
_array.set(row + col*_rows, value)
func get_cell(row: int, col: int) -> int:
assert(row < _rows)
assert(col < _cols)
return _array[row + col*_rows]
func get_flag(row: int, col: int, value: int) -> bool:
return bool(_array[row + col*_rows] & value)
func set_flag(row: int, col: int, value: int):
_array.set(row + col*_rows, _array[row + col*_rows]|value)
class ByteArray2D extends PoolArray2D:
const XORMASK := (1<<8)-1
func _init(rows:=1, cols:=1, init=null).(rows, cols, init):
pass
func clear_flag(row: int, col: int, value: int):
_array.set(row + col*_rows, _array[row + col*_rows]&(value^XORMASK))
class IntArray2D extends PoolArray2D:
const XORMASK := (1<<32)-1
func _init(rows:=1, cols:=1, init=null).(rows, cols, init):
pass
func make_array():
_array = PoolIntArray()
_array.resize(_rows * _cols)
func clear_flag(row: int, col: int, value: int):
_array.set(row + col*_rows, _array[row + col*_rows]&(value^XORMASK))
#class ByteArray2D:
# var _array: PoolByteArray
# var _rows := 1
# var _cols := 1
# const XORMASK := (1<<8)-1
# func _init(rows:=1, cols:=1):
# assert(rows>0)
# assert(cols>0)
# _rows = rows
# _cols = cols
# _array = PoolByteArray()
# _array.resize(rows*cols)
#
# func set_cell(row: int, col: int, value: int):
# assert(row < _rows)
# assert(col < _cols)
# _array.set(row + col*_rows, value)
#
# func get_cell(row: int, col: int) -> int:
# assert(row < _rows)
# assert(col < _cols)
# return _array[row + col*_rows]
#
# func get_flag(row: int, col: int, value: int) -> bool:
# return bool(_array[row + col*_rows] & value)
#
# func set_flag(row: int, col: int, value: int):
# _array.set(row + col*_rows, _array[row + col*_rows]|value)
#
# func clear_flag(row: int, col: int, value: int):
# _array.set(row + col*_rows, _array[row + col*_rows]&(value^XORMASK))
#class IntArray2D:
# var _array: PoolIntArray
# var _rows := 1
# var _cols := 1
# const XORMASK := (1<<32)-1
# func _init(rows:=1, cols:=1):
# assert(rows>0)
# assert(cols>0)
# _rows = rows
# _cols = cols
# _array = PoolIntArray()
# _array.resize(rows*cols)
#
# func set_cell(row: int, col: int, value: int):
# assert(row < _rows)
# assert(col < _cols)
# _array.set(row + col*_rows, value)
#
# func get_cell(row: int, col: int) -> int:
# assert(row < _rows)
# assert(col < _cols)
# return _array[row + col*_rows]
#
# func get_flag(row: int, col: int, value: int) -> bool:
# return bool(_array[row + col*_rows] & value)
#
# func set_flag(row: int, col: int, value: int):
# _array.set(row + col*_rows, _array[row + col*_rows] | value)
#
# func clear_flag(row: int, col: int, value: int):
# _array.set(row + col*_rows, _array[row + col*_rows]&(value^XORMASK))

182
scripts/GameField.gd Normal file
View File

@ -0,0 +1,182 @@
extends ColorRect
export var rows: int = 44
export var cols: int = 63
export var h_margin: int = 2
export var v_margin: int = 2
export var grid_color: Color = Color.black
var READY := false
const ByteArray2D = Common.ByteArray2D
const IntArray2D = Common.IntArray2D
onready var cell_numbers: ByteArray2D
const NUMBER_NONE := 255
onready var cell_colors: ByteArray2D
onready var corner_marks: IntArray2D
enum CornerMark {
L_RIGHT=1, L_DOWN=2, X_RIGHT=4, X_DOWN=8,
DARC_1=16, DARC_2=32, DARC_3=64, DARC_4=128,
SARC_1=256, SARC_2=512, SARC_3=1024, SARC_4=2048
}
func _ready():
# load_puzzle('res://slither_blank.txt')
load_puzzle('res://slither-202005192059.txt')
func draw_string_centered(font, position, string, color := Color.white):
draw_string(font, Vector2(position.x - font.get_string_size(string).x/2.0, position.y + font.get_ascent()), string, color)
const font := preload('res://dynamicfont.tres')
const COLORS = [null, Color.lightgreen, Color.lightyellow, Color.lightblue, Color.lightpink]
var h0 := 0.0
var v0 := 0.0
var h_space := 1.0
var v_space := 1.0
func update_grid_spacing() -> void:
h_space = rect_size.x / (h_margin * 2 + cols)
v_space = rect_size.y / (v_margin * 2 + rows)
if h_space > v_space:
h_space = v_space
else:
v_space = h_space
h0 = h_space * h_margin
v0 = v_space * v_margin
func grid_corner(row, col) -> Vector2:
return Vector2(h0+col*h_space, v0+row*v_space)
func _draw() -> void:
if not READY:
return
update_grid_spacing()
font.set_size(v_space-5)
# Colors
for row in rows:
for col in cols:
var color = COLORS[cell_colors.get_cell(row, col)]
if color != null:
draw_rect(Rect2(Vector2(h0+col*h_space, v0+row*v_space), Vector2(h_space, v_space)), color, true)
# Lines
for row in rows:
for col in cols:
if corner_marks.get_flag(row, col, CornerMark.L_RIGHT):
draw_line(Vector2(h0+col*h_space, v0+row*v_space), Vector2(h0+(col+1)*h_space, v0+row*v_space), Color.blue)
elif corner_marks.get_flag(row, col, CornerMark.X_RIGHT):
draw_line(Vector2(h0+(col+0.4)*h_space, v0+row*v_space), Vector2(h0+(col+0.6)*h_space, v0+row*v_space), Color.red)
else:
draw_line(Vector2(h0+col*h_space, v0+row*v_space), Vector2(h0+(col+1)*h_space, v0+row*v_space), Color.white)
if corner_marks.get_flag(row, col, CornerMark.L_DOWN):
draw_line(Vector2(h0+col*h_space, v0+row*v_space), Vector2(h0+col*h_space, v0+(row+1)*v_space), Color.blue)
elif corner_marks.get_flag(row, col, CornerMark.X_DOWN):
draw_line(Vector2(h0+col*h_space, v0+(row+0.4)*v_space), Vector2(h0+col*h_space, v0+(row+0.6)*v_space), Color.red)
else:
draw_line(Vector2(h0+col*h_space, v0+row*v_space), Vector2(h0+col*h_space, v0+(row+1)*v_space), Color.white)
for col in cols:
if corner_marks.get_flag(rows, col, CornerMark.L_RIGHT):
draw_line(Vector2(h0+col*h_space, v0+rows*v_space), Vector2(h0+(col+1)*h_space, v0+rows*v_space), Color.blue)
elif corner_marks.get_flag(rows, col, CornerMark.X_RIGHT):
draw_line(Vector2(h0+(col+0.4)*h_space, v0+rows*v_space), Vector2(h0+(col+0.6)*h_space, v0+rows*v_space), Color.red)
else:
draw_line(Vector2(h0+col*h_space, v0+rows*v_space), Vector2(h0+(col+1)*h_space, v0+rows*v_space), Color.white)
for row in rows:
if corner_marks.get_flag(row, cols, CornerMark.L_DOWN):
draw_line(Vector2(h0+cols*h_space, v0+row*v_space), Vector2(h0+cols*h_space, v0+(row+1)*v_space), Color.blue)
elif corner_marks.get_flag(row, cols, CornerMark.X_DOWN):
draw_line(Vector2(h0+cols*h_space, v0+(row+0.4)*v_space), Vector2(h0+cols*h_space, v0+(row+0.6)*v_space), Color.red)
else:
draw_line(Vector2(h0+cols*h_space, v0+row*v_space), Vector2(h0+cols*h_space, v0+(row+1)*v_space), Color.white)
# Numbers
for row in rows:
for col in cols:
var num = cell_numbers.get_cell(row, col)
if num < 4:
draw_string_centered(font, Vector2(h0+(col+0.5)*h_space, v0+row*v_space), str(num), Color.black)
# COORDS
for row in rows:
draw_string_centered(font, Vector2(h0/2, v0+row*v_space), '%02d'%row, Color.black)
for col in cols:
draw_string_centered(font, Vector2(h0+(col+0.5)*h_space, v0/4), num2alpha(col), Color.black)
func num2alpha(num: int, uppercase:=false):
var c = ord('A' if uppercase else 'a')
if num >= 26:
return char(c+(num/26)-1) + char(c+(num%26))
else:
return char(c+num)
func _process(delta: float) -> void:
update()
const num_dict := {'.': NUMBER_NONE, '0': 0, '1': 1, '2': 2, '3': 3}
const colornum_dict := {'0': 0, '1': 1, '2': 2}
func load_puzzle(filename: String):
var file := File.new()
var error = file.open(filename, File.READ)
if file.get_line() != 'pzprv3.1':
return
if file.get_line() != 'slither':
return
rows = int(file.get_line())
cols = int(file.get_line())
cell_numbers = ByteArray2D.new(rows, cols)
cell_colors = ByteArray2D.new(rows, cols)
corner_marks = IntArray2D.new(rows+1, cols+1, 0)
var row = 0
var stage = 0
var until = [rows, rows, rows, rows+1, 0]
while not file.eof_reached():
if row >= until[stage]:
stage += 1
row = 0
match stage:
0: # Puzzle definition numbers
var line = file.get_csv_line(' ')
var col = 0
for numstr in line:
if col < cols:
cell_numbers.set_cell(row, col, num_dict.get(numstr, NUMBER_NONE))
col += 1
1: # cell colors
var line = file.get_csv_line(' ')
var col = 0
for numstr in line:
if col < cols:
cell_colors.set_cell(row, col, colornum_dict.get(numstr, 0))
col += 1
2: # vert lines
var line = file.get_csv_line(' ')
var col = 0
for numstr in line:
if col < cols+1:
match int(numstr):
1:
corner_marks.set_flag(row, col, CornerMark.L_DOWN)
-1:
corner_marks.set_flag(row, col, CornerMark.X_DOWN)
col += 1
3: # hor lines
var line = file.get_csv_line(' ')
var col = 0
for numstr in line:
if col < cols+1:
match int(numstr):
1:
corner_marks.set_flag(row, col, CornerMark.L_RIGHT)
-1:
corner_marks.set_flag(row, col, CornerMark.X_RIGHT)
col += 1
4:
break
row += 1
file.close()
READY = true

181
slither-202005192059.txt Normal file
View File

@ -0,0 +1,181 @@
pzprv3.1
slither
44
63
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 0 3 2 2 3 2 2 1 0 3 1 2 0 3 2 3 3 3 2 . . 1 3 2 0 1 1 1 3 1 2 0 2 1 1 2 3 1 0 2 . . 3 3 3 1 1 1 1 1 1 0 2 3 3 3 3 3 3 2 3 .
. 3 . . . . . . . . . . . . . . . . . 0 . . 1 . . . . . . . . . . . . . . . . . 3 . . 0 . . . . . . . . . . . . . . . . . 1 .
. 2 . 3 1 0 . . 3 . . . 2 1 . 3 . 3 . 3 . . 1 . 0 . 3 . . 3 . . 3 2 . . 1 3 . . 1 . . 3 . 3 2 3 . . 3 . . . 3 3 . 1 . 3 . 0 .
. 1 . 1 . . . 1 . 3 . 3 . . . 2 . 3 . 2 . . 1 . 1 . 2 . 2 . 1 . 2 . 2 . 1 . 0 . 2 . . 1 . 1 . . . 3 . 1 . 3 . . . 2 . 3 . 2 .
. 1 . 1 3 2 . 3 2 3 . . 0 . . . 3 . . 2 . . 1 . 3 2 2 . 1 2 2 . 0 1 . . 2 . 3 . 0 . . 1 . 1 3 2 . 1 3 2 . . 0 . . . 3 . . 3 .
. 1 . 3 . . . 3 . 1 . . . 1 . . 1 . . 0 . . 1 . 1 . 1 . 3 . 1 . 2 . 3 . 2 . 2 . 2 . . 3 . 3 . . . 3 . 1 . . . 3 . . 1 . . 3 .
. 1 . 1 3 2 . 3 . 2 . 2 2 . . . 0 . . 3 . . 3 . 2 . 1 . 1 . 1 . 3 . 1 . 2 2 . . 2 . . 3 . 2 2 3 . 2 . 3 . 3 0 . . . 3 . . 1 .
. 1 . . . . . . . . . . . . . . . . . 1 . . 3 . . . . . . . . . . . . . . . . . 3 . . 3 . . . . . . . . . . . . . . . . . 3 .
. 1 1 0 1 1 0 1 1 2 3 1 1 3 1 0 3 1 2 3 . . 1 2 2 2 0 2 1 1 2 2 0 2 3 3 2 1 1 1 3 . . 2 3 2 3 3 3 3 3 2 1 1 1 2 3 1 1 1 0 2 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 2 2 0 2 2 0 2 2 2 1 1 1 0 2 2 0 2 3 2 . . 2 3 0 1 0 1 3 0 3 1 2 0 2 3 3 3 3 1 3 . . 0 2 3 2 3 3 3 3 3 2 2 3 2 3 1 2 3 1 1 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 0 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 2 .
. 2 . 1 . 3 . . 1 . . 1 1 . . 2 1 . . 1 . . 2 . 2 0 3 . . 3 . . . 3 2 . 3 . 0 . 0 . . 1 . 1 . 2 . . 1 . . 3 1 . . 0 2 . . 1 .
. 2 . 1 . 0 . 1 . 2 . 1 . 2 . 3 . 2 . 1 . . 2 . 3 . . . 1 . 2 . 3 . . . 2 . 1 . 3 . . 1 . 0 . 2 . 0 . 2 . 3 . 2 . 2 . 1 . 2 .
. 0 . 2 2 2 . 1 1 3 . 2 1 . . 1 . 3 . 2 . . 3 . 2 0 3 . 3 1 1 . . 3 . . . 3 . . 2 . . 1 . 1 3 3 . 2 2 0 . 2 2 . . 0 . 3 . 2 .
. 1 . 2 . 2 . 1 . 1 . 3 . 1 . 2 . 1 . 3 . . 1 . 3 . . . 3 . 1 . . . 1 . . 0 . . 3 . . 3 . 2 . 2 . 3 . 2 . 2 . 0 . 3 . 2 . 2 .
. 1 . 2 . 0 . 2 . 3 . 1 . 3 . 2 3 . . 2 . . 3 . 2 0 1 . 1 . 3 . 1 0 . . . 1 . . 3 . . 1 . 1 . 3 . 1 . 1 . 2 . 2 . 2 2 . . 2 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 3 .
. 2 0 2 2 0 2 2 0 1 1 0 3 1 3 1 2 3 2 3 . . 3 1 0 2 2 0 3 1 0 2 0 1 0 2 0 2 3 2 3 . . 0 1 2 3 0 1 1 0 2 2 0 2 3 1 0 1 1 0 3 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3 3 3 2 3 1 0 1 3 2 2 3 0 2 2 1 3 0 3 . . 0 1 1 0 2 2 0 1 1 1 0 2 2 0 2 3 1 2 3 . . 3 1 3 2 2 1 2 1 1 1 1 1 1 0 1 1 3 3 3 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 1 . . 2 . . . . . . . . . . . . . . . . . 1 .
. 3 . 1 3 3 . . 2 . . . 0 3 . 2 . 0 . 0 . . 2 . 3 . 1 . . 2 . . 2 1 . . 2 3 . . 1 . . 2 . 3 3 2 . . 1 . . . 3 3 . 3 . 1 . 3 .
. 1 . 3 . . . 2 . 2 . 3 . . . 3 . 3 . 1 . . 1 . 1 . 2 . 2 . 1 . 2 . 3 . 1 . 1 . 0 . . 1 . 0 . . . 3 . 3 . 3 . . . 1 . 1 . 1 .
. 3 . 1 2 3 . 1 3 1 . . 3 . . . 0 . . 1 . . 1 . 1 1 2 . 3 1 3 . 2 2 . . 3 . 3 . 1 . . 3 . 2 2 2 . 3 0 2 . . 3 . . . 3 . . 3 .
. 0 . 3 . . . 0 . 0 . . . 1 . . 2 . . 2 . . 3 . 3 . 2 . 2 . 1 . 1 . 3 . 1 . 2 . 2 . . 3 . 3 . . . 3 . 1 . . . 0 . . 0 . . 0 .
. 2 . 1 1 3 . 1 . 2 . 2 0 . . . 0 . . 3 . . 2 . 1 . 0 . 3 . 1 . 3 . 2 . 3 2 . . 2 . . 3 . 2 3 1 . 1 . 0 . 1 3 . . . 3 . . 3 .
. 1 . . . . . . . . . . . . . . . . . 1 . . 2 . . . . . . . . . . . . . . . . . 3 . . 3 . . . . . . . . . . . . . . . . . 2 .
. 2 1 3 3 3 3 3 1 3 1 1 2 3 0 3 1 0 2 3 . . 0 1 1 3 1 2 3 1 2 2 1 1 0 2 1 2 2 2 3 . . 2 3 3 3 2 0 1 0 1 2 1 0 2 0 1 1 1 2 1 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3 2 1 1 1 1 3 1 2 3 1 1 2 0 1 3 1 2 1 . . 0 3 1 3 1 0 2 0 3 1 3 2 2 0 1 1 3 0 3 . . 1 2 3 2 2 3 2 0 1 2 3 1 1 2 1 0 2 1 2 .
. 0 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 2 . . 3 . . . . . . . . . . . . . . . . . 1 .
. 1 . 3 . 0 . . 3 . . 2 1 . . 1 2 . . 0 . . 0 . 1 2 1 . . 1 . . . 2 1 . 3 . 3 . 2 . . 2 . 2 . 1 . . 3 . . 2 3 . . 1 2 . . 1 .
. 3 . 1 . 1 . 2 . 2 . 1 . 2 . 3 . 2 . 1 . . 2 . 1 . . . 0 . 3 . 3 . . . 3 . 1 . 2 . . 1 . 1 . 2 . 1 . 2 . 2 . 2 . 3 . 1 . 3 .
. 1 . 1 1 3 . 3 1 2 . 1 3 . . 2 . 2 . 2 . . 0 . 3 2 1 . 2 3 1 . . 1 . . . 3 . . 1 . . 2 . 2 1 3 . 1 2 1 . 3 1 . . 3 . 2 . 2 .
. 2 . 2 . 2 . 3 . 0 . 2 . 1 . 1 . 1 . 1 . . 2 . 1 . . . 0 . 2 . . . 0 . . 3 . . 3 . . 2 . 1 . 2 . 3 . 3 . 1 . 2 . 1 . 2 . 2 .
. 0 . 1 . 2 . 2 . 1 . 2 . 3 . 2 3 . . 1 . . 1 . 2 3 0 . 3 . 3 . 0 3 . . . 3 . . 2 . . 2 . 2 . 2 . 2 . 2 . 1 . 3 . 2 2 . . 3 .
. 2 . . . . . . . . . . . . . . . . . 0 . . 2 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 1 .
. 3 1 3 0 2 2 0 2 2 3 2 1 1 1 1 3 2 2 3 . . 3 3 3 2 0 2 2 1 0 2 2 2 3 2 3 0 2 2 3 . . 3 3 2 1 2 0 1 1 1 2 2 3 1 2 1 3 0 2 3 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 1 1 2 1 1 2 2 2 1 1 2 1 2 2 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2
2 2 2 1 2 2 1 2 2 2 2 1 1 1 1 2 1 2 1 2 2 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 2 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2
1 2 1 1 1 1 1 1 1 2 1 1 2 1 2 2 2 2 2 2 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 1
1 1 1 2 1 1 1 1 2 2 2 1 2 1 1 1 2 1 1 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 2 1 2 1 1 1 2 2 2 1 2 1 2 2 1 1 1 1
2 2 2 2 1 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 1 2 1 1 1 2 2 2 1 1 2
1 2 2 2 2 1 2 2 1 2 2 2 2 2 1 2 1 1 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 2 1 1 2 2
1 2 2 1 1 1 2 1 1 1 1 1 2 2 1 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 1 2 2 2 1 2 2 2 2 1 2 2 1 1 1 1 1 2
1 2 2 2 2 1 2 2 1 1 2 1 1 2 1 2 2 2 1 2 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 2 2 2 1 2 2 2 1 2 1 1 1 2 2 1 2 2 2 2
1 2 2 2 1 1 2 1 1 2 2 2 1 1 1 1 2 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 2 2 1 1 1 1 1 1 1 2 2 1 2 2 2 2 2 1 2 1
1 2 2 2 2 2 2 2 2 2 1 2 2 2 1 1 1 2 2 1 2 0 0 0 0 0 0 0 0 0 0 2 2 2 1 2 1 0 0 0 0 0 1 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1 1 1
1 2 1 2 2 2 2 2 2 1 1 2 2 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 2 1 1 1 1 2 2 2 2 2 2 1 1 1 2 2 1 1 1 1 2 1
1 1 1 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1 1 1 1 1 2 1 1 2 1 2 2 2 2 2 2 1 1 1 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 1
2 1 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 1 1 1 1 2 2 2 1 1 1 1 2 1 2 1 2 2 1 2 2 2 2 1 2 1 2 1 2 1 1 2 1 1 2 2 1 2 2 1
1 1 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 1 2 1 1 1 2 1 1 2 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1
2 1 2 2 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 2 2 1 1 2 1 2 2 2 1 2 2 1 1 1 1 1 1 2 2 2 2 1 1 1 1 2 1 2 2 2 2 2 2 1 1 1 1
2 1 2 2 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 1 1 1 1 1 2 1 1 1 2 1 1 1 2 1 2 1 2 2 2 2 2 1 1 1 2 1 1 2 1 1 2 1 1 1 1 2
1 1 1 1 1 2 2 1 1 2 0 0 0 0 0 0 0 0 0 1 0 1 2 2 2 2 2 1 2 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 1 2 1 1 2 2 2 2 2 1 2 2 2 2 1 2 2
1 1 2 2 1 1 2 1 1 1 1 0 0 0 0 1 0 0 0 2 0 1 1 1 1 2 1 1 1 2 2 2 1 1 1 2 2 2 2 2 1 1 2 1 2 2 1 1 1 2 2 2 1 1 1 1 1 2 1 1 1 2 1
1 1 1 2 1 1 1 1 2 1 2 2 0 0 2 0 1 2 0 1 0 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 1 1 1 1 2 2 2 1
2 2 2 2 2 1 2 2 2 2 2 2 1 1 2 2 2 2 2 1 1 2 2 2 1 2 2 1 2 2 2 1 2 1 2 1 2 2 2 2 1 1 1 2 2 1 1 2 1 1 2 1 1 2 2 2 2 2 2 2 2 1 1
1 2 2 2 1 1 1 2 2 2 2 2 2 1 1 2 2 1 2 2 1 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1
1 1 2 1 1 1 1 1 2 1 1 2 1 1 2 2 1 1 1 1 1 2 2 1 1 2 2 1 2 2 2 1 2 2 2 1 2 1 1 1 1 1 1 2 2 1 1 2 2 2 2 1 1 2 1 1 2 2 1 1 2 1 1
1 1 1 1 1 2 2 2 2 1 1 2 2 1 2 2 2 2 1 2 2 2 0 0 0 0 0 0 0 0 0 1 1 2 2 1 0 0 0 0 0 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1
1 2 1 2 1 1 2 2 2 2 1 2 1 1 1 2 2 1 1 1 2 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 2 2 1 2 2 2 1 1 1 1 1 1 1 1 1 1 2 1 2 1
2 2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 1 2 2 0 0 0 0 0 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0 1 1 2 2 2 1 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2
2 1 2 2 1 2 1 2 2 1 2 2 2 2 1 2 2 2 2 2 2 0 2 0 2 0 2 0 1 0 0 0 0 2 0 0 0 0 0 0 0 2 2 1 2 1 2 1 2 1 1 1 2 2 1 2 1 2 2 2 2 1 2
1 1 1 2 1 1 1 1 2 1 2 1 2 1 1 2 1 2 1 2 2 2 2 1 1 1 2 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1
1 2 1 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1 1 2 2 2 2 1 1 1 2 1 2 2 1 0 0 0 0 0 0 0 0 0 0 0 2 2 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 1 1 2 1
2 2 2 1 2 2 1 1 1 1 1 1 1 1 2 2 1 2 2 2 1 1 2 1 2 1 2 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 2 2 1 2 2 1 1 2 1 1 1 1 2 2 2 2 2 2
1 2 2 2 2 1 1 1 1 1 2 1 1 1 2 1 1 1 2 1 1 1 1 1 2 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 2 0 2 2 1 1 2 1 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1
1 1 1 2 2 2 2 2 1 2 2 2 1 1 2 1 1 1 2 2 2 2 2 1 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 1 0 2 1 1 1 1 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1
2 1 1 2 1 2 1 2 1 1 2 2 1 2 2 2 1 1 1 2 1 2 2 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 1 1 1 1 1 1 1 2 2 2 1 1 2 1 1 1 1 1 1 2 2 2 2 0 0 0 2 0 0 0 0 0 0 0 1 0 0 1 1 1 1 2 2 2 2 2 2 2 2 2 1 2 2 1 2 2 2 2 1 2 0
2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 1 1 2 2 2 1 2 2 1 1 1 2 1 2 2 1 1 2 2 1 2 2 1 2 2 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0
2 1 2 2 2 2 2 1 1 1 1 2 2 2 2 2 1 1 2 2 2 1 1 1 2 2 1 1 1 1 1 2 2 1 2 2 2 2 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 2 2 2 2 2 2 1 1 2 2 2 1 2 1 2 2 1 2 2 1 1 1 2 1 2 2 1 1 1 2 2 2 2 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 2 2 2 2 1 1 1 2 1 1 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 2 2 1 1 1 1 2 2 2 2 2 2 1 2 1 1 1 2 2 1 2 2 2 1 2 2 2 1 2 1 2 1 1 2 2 2 2 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 2 2 2 1 2 2 1 1 2 2 1 1 2 2 2 2 1 1 2 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 1 2 2 2 1 1 1 1 2 2 1 1 1 1 2 2 2 2 2 1 2 2 2 1 2 2 2 2 2 2 1 1 1 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 2 1 1 1 2 2 2 1 1 1 2 1 2 1 2 2 2 2 1 1 1 1 2 1 1 1 2 1 1 2 2 2 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 1 1 2 1 1 1 2 1 1 1 2 2 2 1 1 1 2 2 2 1 2 2 2 2 1 1 1 1 2 2 2 1 1 1 1 2 2 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 2 2 2 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 1 2 1 2 1 1 1 2 2 2 2 1 1 2 1 2 2 2 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 1 1 2 2 2 1 2 2 2 2 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 2 2 1 1 2 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 -1 -1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 -1 -1 -1 -1 -1 1 0 0 0
0 -1 -1 1 1 -1 1 1 -1 -1 -1 1 -1 -1 0 1 1 1 1 1 -1 1 -1 1 0 -1 -1 0 0 0 0 0 -1 -1 0 0 0 0 0 -1 -1 0 0 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 1 0
1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 -1 -1 -1 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 0 1 -1 1
1 -1 -1 1 1 -1 -1 0 1 0 0 1 1 1 -1 0 1 1 0 1 1 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 -1 0 1 -1 0 1 1 1 1 -1 1 0 -1 -1 1
0 -1 -1 -1 1 0 0 -1 -1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 1 0 0 -1 -1 -1 -1 -1 -1 1 -1 -1 1 1 1 -1 0 1 0 0 1 -1 1 0
1 1 0 0 0 1 1 0 1 1 0 0 -1 -1 1 1 1 0 0 1 -1 0 0 0 1 0 0 0 0 0 0 0 -1 -1 0 0 0 0 1 1 -1 -1 0 -1 -1 -1 1 1 -1 -1 -1 1 1 0 -1 -1 0 0 1 1 0 1 -1 0
1 1 -1 1 0 0 1 1 0 -1 -1 -1 1 -1 1 1 -1 -1 0 -1 -1 0 -1 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 -1 -1 1 0 1 0 1 1 -1 -1 1 1 -1 -1 0 1 1 0 1 -1 -1 0 -1 1 0
1 1 -1 -1 -1 1 1 0 1 0 1 1 -1 1 1 1 -1 -1 1 1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 -1 -1 0 0 1 -1 -1 1 1 0 -1 1 1 1 -1 -1 1 0 1 1 -1 -1 -1 0
1 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 1 -1 1 -1 -1 -1 -1 -1 -1 1 0 1 1 -1 -1 -1 -1 1 1 1 1
1 1 -1 -1 -1 -1 -1 -1 -1 0 1 1 -1 -1 1 -1 -1 1 -1 1 1 0 -1 -1 0 0 -1 -1 0 0 0 0 -1 -1 1 1 1 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1
1 1 1 1 -1 -1 -1 -1 -1 1 0 1 0 1 0 0 1 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 0 0 1 0 1 0 0 0 1 1 1
1 0 0 1 -1 -1 1 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 -1 1 -1 -1 -1 -1 1 1 -1 1 1 1 -1 -1 -1 -1 -1 1 -1 -1 1 1 -1 0 1 -1 -1 -1 -1 0 0 -1 0 0 0 1 0 1 0 1 1
0 1 1 -1 -1 1 -1 -1 0 0 0 0 0 -1 -1 1 -1 -1 0 1 0 0 1 1 0 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 1 1 1 1 -1 1 1 -1 -1 0 1 1 1 1 1 1 1 -1 1 1 0 1 0 1 1 0 1 1
1 -1 1 0 1 -1 -1 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 -1 -1 1 1 1 -1 -1 1 1 -1 1 1 -1 -1 -1 -1 -1 1 1 -1 0 1 1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 0 1 0 -1 0 0 0 1 1
0 1 1 -1 1 1 1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 -1 -1 0 1 -1 1 1 1 -1 -1 1 1 -1 1 -1 -1 -1 -1 0 1 0 0 -1 1 -1 0 -1 1 1 1 -1 -1 -1 -1 -1 1 0 0 0 1
0 1 1 0 0 -1 -1 1 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 -1 1 1 -1 -1 -1 -1 1 1 0 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 -1 1 1 -1 1 1 -1 1 1 0 -1 0 1 0
1 -1 -1 0 0 1 0 1 -1 1 0 0 -1 -1 0 0 0 0 0 0 0 0 1 -1 -1 -1 0 1 1 0 -1 -1 -1 -1 1 1 1 1 1 1 -1 -1 0 -1 -1 -1 1 1 1 -1 1 -1 -1 0 -1 1 1 -1 -1 0 1 1 0 0
1 0 1 0 1 0 1 1 -1 -1 -1 0 1 -1 -1 0 0 0 0 0 0 0 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 -1 1 1 1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1
1 0 0 1 1 -1 -1 0 1 1 1 -1 0 1 0 0 0 1 0 0 0 0 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 0 -1 -1 -1 -1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 1 1
0 0 -1 -1 -1 1 1 -1 0 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 1 -1 -1 1 1 1 1 1 1 -1 -1 -1 1 -1 0 1 -1 1 0 1 1 0 1 1 0 1 0 -1 -1 0 -1 -1 -1 1 -1 1
1 1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 0 1 -1 1 1 -1 1 1 1 -1 -1 -1 -1 -1 0 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 1 1 -1 -1 1 1 0 -1 0 -1 -1 0 -1 -1 1 1 -1 -1 -1 -1 -1 1 1
1 -1 1 1 -1 -1 0 -1 1 1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 -1 -1 0 1 -1 1 0 1 -1 0 0 1 0 1 1 0 1 0 1 0 1 1 -1 1
1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 -1 0 0 0 0 0 0 0 0 0 0 -1 1 0 1 0 -1 0 0 -1 0 1 -1 1 1 0 0 1 1 -1 -1 -1 -1 -1 -1 -1 1 1 0 0 -1 -1 1
1 1 1 1 1 -1 1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 -1 -1 1 0 -1 -1 0 -1 -1 0 -1 -1 0 0 -1 -1 0 -1 -1 0 1 -1 0 1 0 1 0 1 1 0 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1
-1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 -1 0 0 -1 0 0 -1 1 -1 -1 1 1 0 -1 0 0 0 -1 -1 1 -1 -1 1 -1 -1 -1 -1
-1 1 1 -1 1 1 1 1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 -1 -1 1 -1 1 1 1 1 0 -1 -1 1 1 -1
1 -1 -1 1 1 -1 -1 -1 1 1 1 1 1 1 -1 1 1 1 1 1 -1 0 0 1 0 -1 1 1 -1 1 0 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 1 -1 1 1 -1 1 0 -1 -1 -1 -1 -1 -1 -1 -1 1
1 1 1 -1 -1 1 1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 0 1 -1 0 0 1 -1 -1 1 1 1 -1 1 0 0 0 0 0 0 1 0 0 0 0 0 -1 1 -1 1 -1 -1 1 -1 -1 1 -1 0 1 -1 -1 1 1 -1 1 1 1
-1 -1 -1 1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 1 -1 -1 1 0 1 1 1 1 1 1 -1 1 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 -1 1 -1 1 1 -1 1 -1 1 1 0 -1 -1 1 -1 -1 0 -1 -1 -1
1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 0 -1 -1 1 0 -1 -1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 1 1 -1 -1 -1 -1 -1 -1 1 1 0 -1 1 1 0 1 1 1
1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 -1 -1 -1 -1 1 1 0 0 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 -1 -1 -1 1 1 1 1 0 0 1 1 1 1 0 0 0 -1 -1 1
-1 1 -1 1 1 1 1 1 1 -1 1 -1 1 1 -1 0 1 -1 -1 1 1 1 -1 -1 -1 1 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 0 0 0 0 -1 1 1 1 1 -1 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 0 -1 -1 -1
-1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 1 1 -1 -1 -1 -1 -1 1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 -1 1 1 0 0 0 1 1 0 0
0 -1 -1 0 0 0 0 0 1 1 -1 0 0 1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 -1 -1 1 1 1 -1 1 -1 1 -1 1 1 -1 1 1 -1 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 -1 -1 -1 -1 1 -1 -1 0 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 0 1 0 1 -1 0 0 0 1 -1 1 1 -1 -1 -1 1 0 0 1 0 0 0 0 0 0 1 0 -1 -1 0 0 0 0 0 0 -1 -1 0 0 0 0
1 -1 -1 0 0 0 1 0 0 0 -1 0 1 0 1 0 0 1 1 1 1 0 1 1 -1 1 -1 -1 1 1 1 -1 1 -1 0 1 -1 -1 -1 1 1 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 -1 0 1 -1 1 -1 1 -1 -1 -1 0 0 1 -1 -1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0
1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 1 -1 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 -1 -1 1 1 0 1 -1 1 -1 1 0 1 0 0 -1 1 -1 1 1 -1 -1 0 1 1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0
1 1 1 -1 1 -1 0 1 0 -1 -1 1 0 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 0 0 -1 1 -1 -1 -1 1 -1 -1 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 -1 0 0 0 0 0
0 -1 -1 1 -1 -1 1 -1 -1 1 -1 0 1 1 1 1 1 0 0 -1 1 0 -1 -1 1 1 0 -1 1 1 0 1 -1 0 1 -1 -1 -1 1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0
0 -1 1 -1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 -1 -1 1 1 -1 0 0 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0
0 1 -1 1 -1 -1 1 -1 -1 0 1 1 -1 -1 -1 -1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 1 -1 -1 -1 1 -1 1 1 1 0 -1 1 1 -1 0 1 1 1 0 0 -1 -1 0 0 0 0 0 0 0 -1 1 -1 -1 0 1 0
0 -1 1 -1 1 0 0 1 1 0 0 0 1 0 0 0 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 0 1 -1 1 -1 1 1 -1 -1 -1 -1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0
0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 -1 1 0 -1 1 0 -1 -1 -1 1 -1 1 -1 1 0 0 1 0 1 1 0 -1 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 0 0 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 0 1 0 1 0 1 0 -1 1 0
1 -1 1 0 1 1 0 1 1 -1 1 -1 1 -1 1 0 1 0 1 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 -1 0 0 0 0 0 0 -1 1 0 1 -1 1 -1 -1 1 1 1 1 1 -1 1 0 1 0 1 0 1 0 -1 1
0 1 0 1 -1 -1 0 0 1 0 1 -1 0 -1 1 1 -1 1 1 -1 1 0 -1 -1 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 -1 1 -1 -1 -1 1 1 1 0 1 0 1 -1 1 0 0 1 1 -1 0
1 1 1 -1 -1 -1 0 -1 1 1 0 0 0 -1 0 1 -1 1 0 1 0 0 0 0 -1 0 0 0 0 0 0 -1 0 -1 0 0 0 1 -1 0 0 0 -1 1 -1 1 -1 1 -1 1 1 0 1 -1 -1 1 0 -1 -1 1 -1 -1 1
1 -1 0 -1 1 0 1 1 -1 1 -1 1 -1 1 -1 -1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 -1 1 -1 0 -1 0 -1 -1 1 -1 -1 1 1 -1 0 1 -1 0 0 1 0 1 -1 1 -1
0 -1 0 1 1 0 -1 1 -1 1 1 1 -1 -1 -1 0 1 1 1 -1 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 1 1 -1 1 1 0 1 0 -1 1 -1
0 -1 0 1 1 0 -1 1 -1 -1 1 0 1 -1 0 0 -1 0 1 -1 1 0 1 0 0 0 0 0 0 0 0 -1 0 -1 0 0 0 0 1 1 1 -1 -1 1 -1 1 -1 1 0 1 -1 1 -1 1 -1 1 0 1 -1 1 1 1 -1
0 0 0 -1 1 0 0 1 0 1 0 1 -1 1 0 1 -1 0 0 1 0 -1 1 -1 0 0 0 0 0 0 0 0 1 0 -1 -1 0 0 0 0 1 0 -1 1 -1 1 1 -1 1 1 1 -1 -1 1 -1 1 0 -1 1 -1 1 -1 1
0 0 0 -1 1 1 -1 1 1 0 1 -1 1 1 0 -1 1 -1 1 -1 1 0 1 0 0 0 -1 0 0 0 0 0 -1 0 0 0 0 0 0 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 1 1 -1 1 0
0 -1 1 -1 -1 -1 -1 -1 -1 1 0 -1 -1 1 0 -1 1 -1 -1 1 -1 0 -1 0 0 0 -1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 0
0 1 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 1 -1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0
1 0 1 -1 -1 1 -1 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 -1 0
1 0 0 -1 1 -1 -1 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 1 -1 1 0 1 0 1 0 0 1 0 1 0 0 1 0 -1 0
1 0 0 0 -1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 0 0 1 1 1 -1 -1 -1 -1 1 -1 1 1 1 0 -1 -1 1 1 1 0
0 0 0 -1 1 0 1 -1 -1 0 0 -1 0 0 0 0 0 0 0 0 0 -1 1 1 1 -1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 0 1 0 -1 0 -1 0 1 -1 -1 -1 -1 -1 1 -1 1 1 -1 1 -1 0 0 1
1 -1 1 1 1 -1 0 0 -1 0 1 0 1 0 0 0 0 0 0 0 0 -1 1 1 1 -1 1 -1 1 1 1 -1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1 1 -1 -1 1 -1 1 1 -1 1 0
0 -1 1 1 0 1 0 0 0 1 0 1 -1 -1 0 0 0 0 0 1 0 -1 1 1 1 -1 1 -1 1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 1 0 1 1 -1 0 1
0 -1 1 0 0 -1 1 0 1 -1 1 0 -1 1 0 0 0 0 -1 1 -1 1 0 1 1 -1 1 1 1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 1 1 1 -1 1 1 -1 -1 1 -1 1 1 0 0
1 1 1 0 1 -1 1 1 -1 1 -1 -1 0 0 -1 0 1 -1 0 -1 0 -1 1 -1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 0 1 1 -1 0 0 0 -1 1 -1 0 -1 -1 1 1 1 1 -1 -1 1 0
1 -1 -1 -1 1 -1 1 0 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 1 1 -1 1 1 -1 0 1 -1 -1 -1 -1 -1 1 -1
-1 1 -1 1 -1 -1 0 1 -1 1 1 -1 1 -1 1 -1 1 0 1 1 -1 -1 1 -1 -1 1 1 0 1 -1 -1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 0 -1 1 1 -1 1 0 -1 -1 1 1 -1 1 -1
-1 -1 1 -1 -1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 1 1 -1 1 1 -1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 -1 0 0 1 -1 1 1 0 0 1 0 0 1 -1 0 0 1 0 0
-1 1 -1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 -1 1 1 -1 0 0 -1 0 0 0 -1 1 0 0 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1
1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 0 -1 0 0 -1 0 0 -1 0 0 0 -1 1 1 -1 0 0 -1 0 0 0 -1 1 0 1 0 1 0 1 1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1
-1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 -1 1 -1 -1 -1 1 1 1 0 -1 1 -1 -1 1 1 -1 -1 1 -1
1 -1 1 0 -1 1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 0 1 -1 -1 0 -1 0 1 0 0 0 -1 0 -1 0 0 0 0 0 0 0 0 0 -1 0 1 -1 1 -1 1 0 -1 1 -1 1 -1 1 0 1 -1 1 1 1 1 0 1
-1 1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 0 0 0 -1 -1 -1 -1 1 -1 0 0 0 0 0 0 0 0 0 0 -1 0 1 1 -1 -1 1 1 -1 1 -1 1 -1 1 1 -1 -1 -1 1 -1 -1 1 0
1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1 1 -1 1 1 -1 1 1 0 -1 1 -1 0 -1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 1 -1 1 -1 1 -1 -1 -1 1 1 -1 0 1 0 1 1 0 1
1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 0 1 -1 1 -1 -1 1 0 -1 1 -1 1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 -1 -1 1 0 1 1 0 1
-1 1 1 -1 -1 1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 0 -1 -1 1 -1 0 0 0 0 0 0 0 0 0 0 1 0 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 0 0 1 0 1 0 0 1 -1
1 -1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 0 1 0 0 1 0 0 0 0 0 -1 0 0 0 0 -1 1 -1 0 1 -1 1 -1 1 -1 1 -1 1 1 1 -1 1 -1 1 1 1 1 1 1
-1 1 -1 1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 -1 0 0 0 0 1 -1 0 0 0 0 -1 0 0 0 0 0 1 0 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 0 0 0 1 -1 0
0 0 1 1 1 1 1 1 0 0 0 0 1 0 -1 1 1 -1 -1 1 1 -1 1 -1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 -1 1 1 -1 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 -1 0 0
-1 1 -1 0 0 -1 0 1 0 1 1 -1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 1 0 1 -1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0
1 -1 1 1 1 1 0 1 1 1 1 -1 1 1 -1 -1 1 -1 -1 1 0 1 -1 1 0 1 -1 -1 1 -1 1 0 1 -1 1 -1 -1 -1 1 0 1 -1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0
0 -1 0 1 0 -1 1 0 1 -1 1 1 -1 0 1 1 1 -1 1 -1 1 1 0 1 -1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 1 -1 1 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
0 1 0 0 1 -1 0 1 0 -1 1 1 1 1 1 0 1 -1 -1 -1 1 1 -1 1 -1 -1 0 1 -1 -1 1 -1 1 0 -1 -1 1 -1 1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 1 -1 -1 0 1 1 -1 1 -1 -1 1 1 0 1 0 1 -1 -1 -1 1 0 1 1 -1 -1 1 -1 1 -1 1 0 1 -1 -1 1 1 -1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 -1 1 -1 0 0 0 0
0 -1 1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 1 1 -1 1 1 -1 1 -1 1 1 -1 -1 1 -1 1 1 1 1 -1 -1 -1 -1 1 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 -1 1 -1 1 1 -1 1 1 -1 0 1 0 0 1 -1 1 -1 -1 -1 1 1 -1 1 -1 1 -1 1 0 1 1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 -1 1 0 0 0 0
-1 -1 1 0 1 -1 1 1 0 -1 0 -1 0 1 -1 -1 1 1 0 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 1 0 0 0
-1 1 -1 1 -1 1 0 -1 1 -1 1 0 1 1 1 -1 1 0 1 -1 1 -1 -1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 -1 0 1 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0
-1 1 -1 1 -1 0 1 -1 1 1 0 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0
0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

181
slither_blank.txt Normal file
View File

@ -0,0 +1,181 @@
pzprv3.1
slither
44
63
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 0 3 2 2 3 2 2 1 0 3 1 2 0 3 2 3 3 3 2 . . 1 3 2 0 1 1 1 3 1 2 0 2 1 1 2 3 1 0 2 . . 3 3 3 1 1 1 1 1 1 0 2 3 3 3 3 3 3 2 3 .
. 3 . . . . . . . . . . . . . . . . . 0 . . 1 . . . . . . . . . . . . . . . . . 3 . . 0 . . . . . . . . . . . . . . . . . 1 .
. 2 . 3 1 0 . . 3 . . . 2 1 . 3 . 3 . 3 . . 1 . 0 . 3 . . 3 . . 3 2 . . 1 3 . . 1 . . 3 . 3 2 3 . . 3 . . . 3 3 . 1 . 3 . 0 .
. 1 . 1 . . . 1 . 3 . 3 . . . 2 . 3 . 2 . . 1 . 1 . 2 . 2 . 1 . 2 . 2 . 1 . 0 . 2 . . 1 . 1 . . . 3 . 1 . 3 . . . 2 . 3 . 2 .
. 1 . 1 3 2 . 3 2 3 . . 0 . . . 3 . . 2 . . 1 . 3 2 2 . 1 2 2 . 0 1 . . 2 . 3 . 0 . . 1 . 1 3 2 . 1 3 2 . . 0 . . . 3 . . 3 .
. 1 . 3 . . . 3 . 1 . . . 1 . . 1 . . 0 . . 1 . 1 . 1 . 3 . 1 . 2 . 3 . 2 . 2 . 2 . . 3 . 3 . . . 3 . 1 . . . 3 . . 1 . . 3 .
. 1 . 1 3 2 . 3 . 2 . 2 2 . . . 0 . . 3 . . 3 . 2 . 1 . 1 . 1 . 3 . 1 . 2 2 . . 2 . . 3 . 2 2 3 . 2 . 3 . 3 0 . . . 3 . . 1 .
. 1 . . . . . . . . . . . . . . . . . 1 . . 3 . . . . . . . . . . . . . . . . . 3 . . 3 . . . . . . . . . . . . . . . . . 3 .
. 1 1 0 1 1 0 1 1 2 3 1 1 3 1 0 3 1 2 3 . . 1 2 2 2 0 2 1 1 2 2 0 2 3 3 2 1 1 1 3 . . 2 3 2 3 3 3 3 3 2 1 1 1 2 3 1 1 1 0 2 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 2 2 0 2 2 0 2 2 2 1 1 1 0 2 2 0 2 3 2 . . 2 3 0 1 0 1 3 0 3 1 2 0 2 3 3 3 3 1 3 . . 0 2 3 2 3 3 3 3 3 2 2 3 2 3 1 2 3 1 1 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 0 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 2 .
. 2 . 1 . 3 . . 1 . . 1 1 . . 2 1 . . 1 . . 2 . 2 0 3 . . 3 . . . 3 2 . 3 . 0 . 0 . . 1 . 1 . 2 . . 1 . . 3 1 . . 0 2 . . 1 .
. 2 . 1 . 0 . 1 . 2 . 1 . 2 . 3 . 2 . 1 . . 2 . 3 . . . 1 . 2 . 3 . . . 2 . 1 . 3 . . 1 . 0 . 2 . 0 . 2 . 3 . 2 . 2 . 1 . 2 .
. 0 . 2 2 2 . 1 1 3 . 2 1 . . 1 . 3 . 2 . . 3 . 2 0 3 . 3 1 1 . . 3 . . . 3 . . 2 . . 1 . 1 3 3 . 2 2 0 . 2 2 . . 0 . 3 . 2 .
. 1 . 2 . 2 . 1 . 1 . 3 . 1 . 2 . 1 . 3 . . 1 . 3 . . . 3 . 1 . . . 1 . . 0 . . 3 . . 3 . 2 . 2 . 3 . 2 . 2 . 0 . 3 . 2 . 2 .
. 1 . 2 . 0 . 2 . 3 . 1 . 3 . 2 3 . . 2 . . 3 . 2 0 1 . 1 . 3 . 1 0 . . . 1 . . 3 . . 1 . 1 . 3 . 1 . 1 . 2 . 2 . 2 2 . . 2 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 3 .
. 2 0 2 2 0 2 2 0 1 1 0 3 1 3 1 2 3 2 3 . . 3 1 0 2 2 0 3 1 0 2 0 1 0 2 0 2 3 2 3 . . 0 1 2 3 0 1 1 0 2 2 0 2 3 1 0 1 1 0 3 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3 3 3 2 3 1 0 1 3 2 2 3 0 2 2 1 3 0 3 . . 0 1 1 0 2 2 0 1 1 1 0 2 2 0 2 3 1 2 3 . . 3 1 3 2 2 1 2 1 1 1 1 1 1 0 1 1 3 3 3 .
. 1 . . . . . . . . . . . . . . . . . 2 . . 2 . . . . . . . . . . . . . . . . . 1 . . 2 . . . . . . . . . . . . . . . . . 1 .
. 3 . 1 3 3 . . 2 . . . 0 3 . 2 . 0 . 0 . . 2 . 3 . 1 . . 2 . . 2 1 . . 2 3 . . 1 . . 2 . 3 3 2 . . 1 . . . 3 3 . 3 . 1 . 3 .
. 1 . 3 . . . 2 . 2 . 3 . . . 3 . 3 . 1 . . 1 . 1 . 2 . 2 . 1 . 2 . 3 . 1 . 1 . 0 . . 1 . 0 . . . 3 . 3 . 3 . . . 1 . 1 . 1 .
. 3 . 1 2 3 . 1 3 1 . . 3 . . . 0 . . 1 . . 1 . 1 1 2 . 3 1 3 . 2 2 . . 3 . 3 . 1 . . 3 . 2 2 2 . 3 0 2 . . 3 . . . 3 . . 3 .
. 0 . 3 . . . 0 . 0 . . . 1 . . 2 . . 2 . . 3 . 3 . 2 . 2 . 1 . 1 . 3 . 1 . 2 . 2 . . 3 . 3 . . . 3 . 1 . . . 0 . . 0 . . 0 .
. 2 . 1 1 3 . 1 . 2 . 2 0 . . . 0 . . 3 . . 2 . 1 . 0 . 3 . 1 . 3 . 2 . 3 2 . . 2 . . 3 . 2 3 1 . 1 . 0 . 1 3 . . . 3 . . 3 .
. 1 . . . . . . . . . . . . . . . . . 1 . . 2 . . . . . . . . . . . . . . . . . 3 . . 3 . . . . . . . . . . . . . . . . . 2 .
. 2 1 3 3 3 3 3 1 3 1 1 2 3 0 3 1 0 2 3 . . 0 1 1 3 1 2 3 1 2 2 1 1 0 2 1 2 2 2 3 . . 2 3 3 3 2 0 1 0 1 2 1 0 2 0 1 1 1 2 1 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 3 2 1 1 1 1 3 1 2 3 1 1 2 0 1 3 1 2 1 . . 0 3 1 3 1 0 2 0 3 1 3 2 2 0 1 1 3 0 3 . . 1 2 3 2 2 3 2 0 1 2 3 1 1 2 1 0 2 1 2 .
. 0 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 2 . . 3 . . . . . . . . . . . . . . . . . 1 .
. 1 . 3 . 0 . . 3 . . 2 1 . . 1 2 . . 0 . . 0 . 1 2 1 . . 1 . . . 2 1 . 3 . 3 . 2 . . 2 . 2 . 1 . . 3 . . 2 3 . . 1 2 . . 1 .
. 3 . 1 . 1 . 2 . 2 . 1 . 2 . 3 . 2 . 1 . . 2 . 1 . . . 0 . 3 . 3 . . . 3 . 1 . 2 . . 1 . 1 . 2 . 1 . 2 . 2 . 2 . 3 . 1 . 3 .
. 1 . 1 1 3 . 3 1 2 . 1 3 . . 2 . 2 . 2 . . 0 . 3 2 1 . 2 3 1 . . 1 . . . 3 . . 1 . . 2 . 2 1 3 . 1 2 1 . 3 1 . . 3 . 2 . 2 .
. 2 . 2 . 2 . 3 . 0 . 2 . 1 . 1 . 1 . 1 . . 2 . 1 . . . 0 . 2 . . . 0 . . 3 . . 3 . . 2 . 1 . 2 . 3 . 3 . 1 . 2 . 1 . 2 . 2 .
. 0 . 1 . 2 . 2 . 1 . 2 . 3 . 2 3 . . 1 . . 1 . 2 3 0 . 3 . 3 . 0 3 . . . 3 . . 2 . . 2 . 2 . 2 . 2 . 2 . 1 . 3 . 2 2 . . 3 .
. 2 . . . . . . . . . . . . . . . . . 0 . . 2 . . . . . . . . . . . . . . . . . 3 . . 2 . . . . . . . . . . . . . . . . . 1 .
. 3 1 3 0 2 2 0 2 2 3 2 1 1 1 1 3 2 2 3 . . 3 3 3 2 0 2 2 1 0 2 2 2 3 2 3 0 2 2 3 . . 3 3 2 1 2 0 1 1 1 2 2 3 1 2 1 3 0 2 3 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0