URL
https://opencores.org/ocsvn/product_code_iterative_decoder/product_code_iterative_decoder/trunk
Subversion Repositories product_code_iterative_decoder
[/] [product_code_iterative_decoder/] [tags/] [INITIAL/] [data/] [senddata.txt] - Rev 3
Go to most recent revision | Compare with Previous | Blame | View Log
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
Go to most recent revision | Compare with Previous | Blame | View Log