Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
SparseConvNet
Commits
f9552033
"lib/engines/mistralrs/Cargo.toml" did not exist on "03b0101e4d4013874e33f8144c9793567e762c9f"
Commit
f9552033
authored
Jul 16, 2017
by
Benjamin Thomas Graham
Browse files
initial commit
parents
Changes
168
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1931 additions
and
0 deletions
+1931
-0
examples/Chinese_handwriting/ResNet-C-VSC.lua
examples/Chinese_handwriting/ResNet-C-VSC.lua
+51
-0
examples/Chinese_handwriting/ResNet-D-VSC.lua
examples/Chinese_handwriting/ResNet-D-VSC.lua
+41
-0
examples/Chinese_handwriting/VGG-A-VSC.lua
examples/Chinese_handwriting/VGG-A-VSC.lua
+37
-0
examples/Chinese_handwriting/VGG-B-VSC.lua
examples/Chinese_handwriting/VGG-B-VSC.lua
+37
-0
examples/Chinese_handwriting/VGG-C.lua
examples/Chinese_handwriting/VGG-C.lua
+37
-0
examples/Chinese_handwriting/VGG-C.py
examples/Chinese_handwriting/VGG-C.py
+39
-0
examples/Chinese_handwriting/VGG-Cplus.lua
examples/Chinese_handwriting/VGG-Cplus.lua
+37
-0
examples/Chinese_handwriting/VGG-Cplus.py
examples/Chinese_handwriting/VGG-Cplus.py
+39
-0
examples/Chinese_handwriting/VGG-D.lua
examples/Chinese_handwriting/VGG-D.lua
+37
-0
examples/Chinese_handwriting/VGG-Dplus.lua
examples/Chinese_handwriting/VGG-Dplus.lua
+37
-0
examples/Chinese_handwriting/data.lua
examples/Chinese_handwriting/data.lua
+130
-0
examples/Chinese_handwriting/data.py
examples/Chinese_handwriting/data.py
+118
-0
examples/Chinese_handwriting/process.lua
examples/Chinese_handwriting/process.lua
+36
-0
examples/Chinese_handwriting/readPotFiles.py
examples/Chinese_handwriting/readPotFiles.py
+476
-0
examples/Chinese_handwriting/readPotFiles2.py
examples/Chinese_handwriting/readPotFiles2.py
+478
-0
examples/ModelNet40/VGG-A-VSC.lua
examples/ModelNet40/VGG-A-VSC.lua
+37
-0
examples/ModelNet40/VGG-B-VSC.lua
examples/ModelNet40/VGG-B-VSC.lua
+37
-0
examples/ModelNet40/VGGplus.lua
examples/ModelNet40/VGGplus.lua
+37
-0
examples/ModelNet40/data.lua
examples/ModelNet40/data.lua
+86
-0
examples/ModelNet40/process.lua
examples/ModelNet40/process.lua
+104
-0
No files found.
examples/Chinese_handwriting/ResNet-C-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
if
tensortype
==
'torch.CudaTensor'
then
cutorch
.
setDevice
(
1
)
print
(
cutorch
.
getDeviceCount
()
..
" GPU device(s)"
)
print
(
" . . . . free memory . . memory"
)
for
i
=
1
,
cutorch
.
getDeviceCount
()
do
io.write
(
i
==
cutorch
.
getDevice
()
and
" * "
or
" . "
)
print
(
'('
..
i
..
') '
,
cutorch
.
getMemoryUsage
(
i
))
end
end
-- two-dimensional SparseConvNet
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
local
model
=
nn
.
Sequential
():
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
ValidConvolution
(
2
,
3
,
16
,
3
,
false
))
:
add
(
sparseconvnet
.
MaxPooling
(
2
,
2
,
2
))
:
add
(
sparseconvnet
.
SparseResNet
(
2
,
16
,{
{
'b'
,
16
,
2
,
1
},
{
'b'
,
32
,
2
,
2
},
{
'b'
,
64
,
2
,
2
},
{
'b'
,
128
,
2
,
2
},
{
'b'
,
256
,
2
,
2
},}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
256
,
512
,
2
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
512
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
512
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
512
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
64
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/ResNet-D-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
local
model
=
nn
.
Sequential
():
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
ValidConvolution
(
2
,
3
,
16
,
3
,
false
))
:
add
(
sparseconvnet
.
SparseResNet
(
2
,
16
,{
{
'b'
,
16
,
2
,
1
},
{
'b'
,
32
,
2
,
2
},
{
'b'
,
48
,
2
,
2
},
{
'b'
,
64
,
2
,
2
},
{
'b'
,
128
,
2
,
2
},
{
'b'
,
256
,
2
,
2
},}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
256
,
512
,
2
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
512
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
512
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
512
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
64
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-A-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
2
,
3
,{
{
'C'
,
16
},
{
'C'
,
16
},
{
'MP'
,
2
,
2
},
{
'C'
,
32
},
{
'C'
,
32
},
{
'MP'
,
2
,
2
},
{
'C'
,
48
},
{
'C'
,
48
},
{
'MP'
,
2
,
2
},
{
'C'
,
64
},
{
'C'
,
64
},
{
'MP'
,
2
,
2
},
{
'C'
,
96
},
{
'C'
,
96
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
96
,
128
,
4
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
128
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
128
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
128
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
64
,
2
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-B-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
2
,
3
,{
{
'C'
,
16
},
{
'C'
,
16
},
{
'MP'
,
2
,
2
},
{
'C'
,
32
},
{
'C'
,
32
},
{
'MP'
,
2
,
2
},
{
'C'
,
64
},
{
'C'
,
64
},
{
'MP'
,
2
,
2
},
{
'C'
,
128
},
{
'C'
,
128
},
{
'MP'
,
2
,
2
},
{
'C'
,
256
},
{
'C'
,
256
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
256
,
512
,
4
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
512
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
512
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
512
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
63
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-C.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
2
,
3
,{
{
'C'
,
16
,},
{
'C'
,
16
},
'MP'
,
{
'C'
,
32
},
{
'C'
,
32
},
'MP'
,
{
'C'
,
48
},
{
'C'
,
48
},
'MP'
,
{
'C'
,
64
},
{
'C'
,
64
},
'MP'
,
{
'C'
,
96
},
{
'C'
,
96
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
96
,
128
,
3
,
2
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
128
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
128
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
128
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
63
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-C.py
0 → 100644
View file @
f9552033
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
import
torch
import
torch.legacy.nn
as
nn
import
sparseconvnet.legacy
as
scn
from
data
import
getIterators
# Use the GPU if there is one, otherwise CPU
dtype
=
'torch.cuda.FloatTensor'
if
torch
.
cuda
.
is_available
()
else
'torch.FloatTensor'
# two-dimensional SparseConvNet
model
=
nn
.
Sequential
()
sparseModel
=
scn
.
Sequential
()
denseModel
=
nn
.
Sequential
()
model
.
add
(
sparseModel
).
add
(
denseModel
)
sparseModel
.
add
(
scn
.
SparseVggNet
(
2
,
3
,
[
[
'C'
,
16
],
[
'C'
,
16
],
'MP'
,
[
'C'
,
32
],
[
'C'
,
32
],
'MP'
,
[
'C'
,
48
],
[
'C'
,
48
],
'MP'
,
[
'C'
,
64
],
[
'C'
,
64
],
'MP'
,
[
'C'
,
96
],
[
'C'
,
96
]]))
sparseModel
.
add
(
scn
.
Convolution
(
2
,
96
,
128
,
3
,
2
,
False
))
sparseModel
.
add
(
scn
.
BatchNormReLU
(
128
))
sparseModel
.
add
(
scn
.
SparseToDense
(
2
))
denseModel
.
add
(
nn
.
View
(
-
1
,
128
))
denseModel
.
add
(
nn
.
Linear
(
128
,
3755
))
model
.
type
(
dtype
)
print
(
model
)
spatial_size
=
sparseModel
.
suggestInputSize
(
torch
.
LongTensor
([
1
,
1
]))
print
(
'input spatial size'
,
spatial_size
)
dataset
=
getIterators
(
spatial_size
,
63
,
3
)
scn
.
ClassificationTrainValidate
(
model
,
dataset
,
{
'nEpochs'
:
100
,
'initial_LR'
:
0.1
,
'LR_decay'
:
0.05
,
'weightDecay'
:
1e-4
})
examples/Chinese_handwriting/VGG-Cplus.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
2
,
3
,{
{
'C'
,
16
,
8
,},
{
'C'
,
16
,
8
},
'MP'
,
{
'C'
,
32
,
8
},
{
'C'
,
32
,
8
},
'MP'
,
{
'C'
,
48
,
16
},
{
'C'
,
48
,
16
},
'MP'
,
{
'C'
,
64
,
16
},
{
'C'
,
64
,
16
},
'MP'
,
{
'C'
,
96
,
16
},
{
'C'
,
96
,
16
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
96
+
16
,
128
,
3
,
2
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
128
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
128
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
128
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
63
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-Cplus.py
0 → 100644
View file @
f9552033
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
import
torch
import
torch.legacy.nn
as
nn
import
sparseconvnet.legacy
as
scn
from
data
import
getIterators
# Use the GPU if there is one, otherwise CPU
dtype
=
'torch.cuda.FloatTensor'
if
torch
.
cuda
.
is_available
()
else
'torch.FloatTensor'
# two-dimensional SparseConvNet
model
=
nn
.
Sequential
()
sparseModel
=
scn
.
Sequential
()
denseModel
=
nn
.
Sequential
()
model
.
add
(
sparseModel
).
add
(
denseModel
)
sparseModel
.
add
(
scn
.
SparseVggNet
(
2
,
3
,
[
[
'C'
,
16
,
8
],
[
'C'
,
16
,
8
],
'MP'
,
[
'C'
,
32
,
8
],
[
'C'
,
32
,
8
],
'MP'
,
[
'C'
,
48
,
16
],
[
'C'
,
48
,
16
],
'MP'
,
[
'C'
,
64
,
16
],
[
'C'
,
64
,
16
],
'MP'
,
[
'C'
,
96
,
16
],
[
'C'
,
96
,
16
]]))
sparseModel
.
add
(
scn
.
Convolution
(
2
,
96
+
16
,
128
,
3
,
2
,
False
))
sparseModel
.
add
(
scn
.
BatchNormReLU
(
128
))
sparseModel
.
add
(
scn
.
SparseToDense
(
2
))
denseModel
.
add
(
nn
.
View
(
-
1
,
128
))
denseModel
.
add
(
nn
.
Linear
(
128
,
3755
))
model
.
type
(
dtype
)
print
(
model
)
spatial_size
=
sparseModel
.
suggestInputSize
(
torch
.
LongTensor
([
1
,
1
]))
print
(
'input spatial size'
,
spatial_size
)
dataset
=
getIterators
(
spatial_size
,
63
,
3
)
scn
.
ClassificationTrainValidate
(
model
,
dataset
,
{
'nEpochs'
:
100
,
'initial_LR'
:
0.1
,
'LR_decay'
:
0.05
,
'weightDecay'
:
1e-4
})
examples/Chinese_handwriting/VGG-D.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNetPlus
(
2
,
3
,{
{
'C'
,
16
},
{
'C'
,
16
},
'MP'
,
{
'C'
,
32
},
{
'C'
,
32
},
'MP'
,
{
'C'
,
64
},
{
'C'
,
64
},
'MP'
,
{
'C'
,
128
},
{
'C'
,
128
},
'MP'
,
{
'C'
,
256
},
{
'C'
,
256
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
256
,
512
,
3
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
512
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
512
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
512
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
63
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/VGG-Dplus.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
2
,
3
,{
{
'C'
,
16
,
8
},
{
'C'
,
16
,
8
},
'MP'
,
{
'C'
,
32
,
8
},
{
'C'
,
32
,
8
},
'MP'
,
{
'C'
,
64
,
16
},
{
'C'
,
64
,
16
},
'MP'
,
{
'C'
,
96
,
16
},
{
'C'
,
96
,
16
},
'MP'
,
{
'C'
,
256
,
32
},
{
'C'
,
256
,
32
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
2
,
256
+
32
,
512
,
3
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
512
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
2
))
denseModel
:
add
(
nn
.
View
(
512
):
setNumInputDims
(
3
))
denseModel
:
add
(
nn
.
Linear
(
512
,
3755
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
63
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
100
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
05
,
weightDecay
=
1e-4
})
examples/Chinese_handwriting/data.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
-- CASIA-OLHWDB1.1 dataset, 3755 character classes
-- 898573 training samples (240 writers), 224559 test samples (60 writers)
--data from http://www.nlpr.ia.ac.cn/databases/handwriting/Home.html
-- Consider moving the data folder to a ramdisk, i.e.
-- mkdir /ramdisk
-- mount -t tmpfs -o size=5g tmpfs /ramdisk
-- rsync -r t7/ /ramdisk/t7/
-- change t7/ to /ramdisk/t7/ below (twice)
tnt
=
require
'torchnet'
scn
=
require
'sparseconvnet'
require
'paths'
if
not
paths
.
dirp
(
't7/'
)
then
if
not
paths
.
filep
(
'OLHWDB1.1trn_pot.zip'
)
then
print
(
'Downloading data ...'
)
os.execute
(
'wget http://www.nlpr.ia.ac.cn/databases/download/feature_data/OLHWDB1.1trn_pot.zip'
)
os.execute
(
'wget http://www.nlpr.ia.ac.cn/databases/download/feature_data/OLHWDB1.1tst_pot.zip'
)
os.execute
(
'mkdir -p t7/train/ t7/test/ POT/'
)
os.execute
(
'unzip OLHWDB1.1trn_pot.zip -d POT/'
)
os.execute
(
'unzip OLHWDB1.1tst_pot.zip -d POT/'
)
end
print
(
'Preprocessing data ...'
)
os.execute
(
'python3 readPotFiles.py'
)
dofile
(
'process.lua'
)
end
function
train
(
spatialSize
,
Scale
,
precomputeStride
)
local
d
=
{}
for
x
=
1
,
898573
do
d
[
x
]
=
x
end
d
=
tnt
.
ListDataset
(
d
,
function
(
x
)
return
torch
.
load
(
't7/train/'
..
x
..
'.t7'
)
end
):
shuffle
()
function
d
:
manualSeed
(
seed
)
torch
.
manualSeed
(
seed
)
end
d
=
tnt
.
BatchDataset
(
d
,
100
,
function
(
idx
,
size
)
return
idx
end
,
function
(
tbl
)
input
=
scn
.
InputBatch
(
2
,
spatialSize
)
local
center
=
spatialSize
:
float
():
view
(
1
,
2
)
/
2
local
p
=
torch
.
LongTensor
(
2
)
local
v
=
torch
.
FloatTensor
({
1
,
0
,
0
})
for
_
,
char
in
ipairs
(
tbl
.
input
)
do
input
:
addSample
()
for
_
,
stroke
in
ipairs
(
char
)
do
stroke
=
stroke
:
float
()
/
255
-
0
.
5
stroke
=
center
:
expandAs
(
stroke
)
+
stroke
*
(
Scale
-
0
.
01
)
--------------------------------------------------------------
-- Draw pen stroke:
scn
.
C
.
dimensionFn
(
2
,
'drawCurve'
)(
input
.
metadata
.
ffi
,
input
.
features
:
cdata
(),
stroke
:
cdata
())
--------------------------------------------------------------
-- Above is equivalent to :
-- local x1,x2,y1,y2,l=0,stroke[1][1],0,stroke[1][2],0
-- for i=2,stroke:size(1) do
-- x1=x2
-- y1=y2
-- x2=stroke[i][1]
-- y2=stroke[i][2]
-- l=1e-10+((x2-x1)^2+(y2-y1)^2)^0.5
-- v[2]=(x2-x1)/l
-- v[3]=(y2-y1)/l
-- l=math.max(x2-x1,y2-y1,x1-x2,y1-y2,0.9)
-- for j=0,1,1/l do
-- p[1]=math.floor(x1*j+x2*(1-j))
-- p[2]=math.floor(y1*j+y2*(1-j))
-- input:setLocation(p,v,false)
-- end
-- end
--------------------------------------------------------------
end
end
input
:
precomputeMetadata
(
precomputeStride
)
return
{
input
=
input
,
target
=
torch
.
LongTensor
(
tbl
.
target
)}
end
)
d
=
tnt
.
ParallelDatasetIterator
({
init
=
function
()
require
'torchnet'
;
scn
=
require
'sparseconvnet'
end
,
nthread
=
10
,
closure
=
function
()
return
d
end
,
ordered
=
true
})
return
function
(
epoch
)
d
:
exec
(
'manualSeed'
,
epoch
)
d
:
exec
(
'resample'
)
return
d
()
end
end
function
val
(
spatialSize
,
Scale
,
precomputeStride
)
local
d
=
{}
for
x
=
1
,
224559
do
d
[
x
]
=
x
end
d
=
tnt
.
ListDataset
(
d
,
function
(
x
)
return
torch
.
load
(
't7/test/'
..
x
..
'.t7'
)
end
)
d
=
tnt
.
BatchDataset
(
d
,
100
,
function
(
idx
,
size
)
return
idx
end
,
function
(
tbl
)
input
=
scn
.
InputBatch
(
2
,
spatialSize
)
local
center
=
spatialSize
:
float
():
view
(
1
,
2
)
/
2
local
p
=
torch
.
LongTensor
(
2
)
local
v
=
torch
.
FloatTensor
({
1
,
0
,
0
})
for
_
,
char
in
ipairs
(
tbl
.
input
)
do
input
:
addSample
()
for
_
,
stroke
in
ipairs
(
char
)
do
stroke
=
stroke
:
float
()
/
255
-
0
.
5
stroke
=
center
:
expandAs
(
stroke
)
+
stroke
*
(
Scale
-
0
.
01
)
scn
.
C
.
dimensionFn
(
2
,
'drawCurve'
)(
input
.
metadata
.
ffi
,
input
.
features
:
cdata
(),
stroke
:
cdata
())
end
end
input
:
precomputeMetadata
(
precomputeStride
)
return
{
input
=
input
,
target
=
torch
.
LongTensor
(
tbl
.
target
)}
end
)
d
=
tnt
.
ParallelDatasetIterator
({
init
=
function
()
require
'torchnet'
;
scn
=
require
'sparseconvnet'
end
,
nthread
=
10
,
closure
=
function
()
return
d
end
,
ordered
=
true
})
return
function
()
return
d
()
end
end
return
function
(
...
)
return
{
train
=
train
(
...
),
val
=
val
(
...
)}
end
examples/Chinese_handwriting/data.py
0 → 100644
View file @
f9552033
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
import
torch
import
torchnet
import
sparseconvnet.legacy
as
scn
import
pickle
import
math
import
random
import
numpy
import
os
if
not
os
.
path
.
exists
(
'pickle/'
):
print
(
'Downloading and preprocessing data ...'
)
os
.
system
(
'wget http://www.nlpr.ia.ac.cn/databases/download/feature_data/OLHWDB1.1trn_pot.zip'
)
os
.
system
(
'wget http://www.nlpr.ia.ac.cn/databases/download/feature_data/OLHWDB1.1tst_pot.zip'
)
os
.
system
(
'mkdir -p t7/train/ t7/test/ POT/ pickle/'
)
os
.
system
(
'unzip OLHWDB1.1trn_pot.zip -d POT/'
)
os
.
system
(
'unzip OLHWDB1.1tst_pot.zip -d POT/'
)
os
.
system
(
'python3 readPotFiles2.py'
)
def
train
(
spatial_size
,
Scale
,
precomputeStride
):
d
=
pickle
.
load
(
open
(
'pickle/train.pickle'
,
'rb'
))
d
=
torchnet
.
dataset
.
ListDataset
(
d
)
randperm
=
torch
.
randperm
(
len
(
d
))
def
perm
(
idx
,
size
):
return
randperm
[
idx
]
def
merge
(
tbl
):
inp
=
scn
.
InputBatch
(
2
,
spatial_size
)
center
=
spatial_size
.
float
().
view
(
1
,
2
)
/
2
p
=
torch
.
LongTensor
(
2
)
v
=
torch
.
FloatTensor
([
1
,
0
,
0
])
for
char
in
tbl
[
'input'
]:
inp
.
addSample
()
for
stroke
in
char
:
stroke
=
stroke
.
float
()
*
(
Scale
-
0.01
)
/
255
-
0.5
*
(
Scale
-
0.01
)
stroke
+=
center
.
expand_as
(
stroke
)
###############################################################
# To avoid GIL problems use a helper function:
scn
.
dim_fn
(
2
,
'drawCurve'
)(
inp
.
metadata
.
ffi
,
inp
.
features
,
stroke
)
###############################################################
# Above is equivalent to :
# x1,x2,y1,y2,l=0,stroke[0][0],0,stroke[0][1],0
# for i in range(1,stroke.size(0)):
# x1=x2
# y1=y2
# x2=stroke[i][0]
# y2=stroke[i][1]
# l=1e-10+((x2-x1)**2+(y2-y1)**2)**0.5
# v[1]=(x2-x1)/l
# v[2]=(y2-y1)/l
# l=max(x2-x1,y2-y1,x1-x2,y1-y2,0.9)
# for j in numpy.arange(0,1,1/l):
# p[0]=math.floor(x1*j+x2*(1-j))
# p[1]=math.floor(y1*j+y2*(1-j))
# inp.setLocation(p,v,False)
###############################################################
inp
.
precomputeMetadata
(
precomputeStride
)
return
{
'input'
:
inp
,
'target'
:
torch
.
LongTensor
(
tbl
[
'target'
])}
bd
=
torchnet
.
dataset
.
BatchDataset
(
d
,
100
,
perm
=
perm
,
merge
=
merge
)
tdi
=
scn
.
threadDatasetIterator
(
bd
)
def
iter
():
randperm
=
torch
.
randperm
(
len
(
d
))
return
tdi
()
return
iter
def
val
(
spatial_size
,
Scale
,
precomputeStride
):
d
=
pickle
.
load
(
open
(
'pickle/test.pickle'
,
'rb'
))
d
=
torchnet
.
dataset
.
ListDataset
(
d
)
randperm
=
torch
.
randperm
(
len
(
d
))
def
perm
(
idx
,
size
):
return
randperm
[
idx
]
def
merge
(
tbl
):
inp
=
scn
.
InputBatch
(
2
,
spatial_size
)
center
=
spatial_size
.
float
().
view
(
1
,
2
)
/
2
p
=
torch
.
LongTensor
(
2
)
v
=
torch
.
FloatTensor
([
1
,
0
,
0
])
for
char
in
tbl
[
'input'
]:
inp
.
addSample
()
for
stroke
in
char
:
stroke
=
stroke
.
float
()
*
(
Scale
-
0.01
)
/
255
-
0.5
*
(
Scale
-
0.01
)
stroke
+=
center
.
expand_as
(
stroke
)
scn
.
dim_fn
(
2
,
'drawCurve'
)(
inp
.
metadata
.
ffi
,
inp
.
features
,
stroke
)
inp
.
precomputeMetadata
(
precomputeStride
)
return
{
'input'
:
inp
,
'target'
:
torch
.
LongTensor
(
tbl
[
'target'
])}
bd
=
torchnet
.
dataset
.
BatchDataset
(
d
,
100
,
perm
=
perm
,
merge
=
merge
)
tdi
=
scn
.
threadDatasetIterator
(
bd
)
def
iter
():
randperm
=
torch
.
randperm
(
len
(
d
))
return
tdi
()
return
iter
def
getIterators
(
*
args
):
return
{
'train'
:
train
(
*
args
),
'val'
:
val
(
*
args
)}
examples/Chinese_handwriting/process.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
threads
=
require
'threads'
t
=
threads
.
Threads
(
30
)
for
j
=
1
,
30
do
t
:
addjob
(
function
()
function
rescaleCharacter
(
c
)
local
cc
=
torch
.
cat
(
c
,
1
)
local
m
=
cc
:
min
(
1
)
local
s
=
(
cc
:
max
(
1
)
-
m
):
float
()
for
i
=
1
,
#
c
do
c
[
i
]
=
(
torch
.
cdiv
((
c
[
i
]
-
m
:
expandAs
(
c
[
i
])):
float
(),
s
:
expandAs
(
c
[
i
]))
*
255
.
99
):
byte
()
end
end
for
i
=
j
,
898573
,
30
do
ch
=
dofile
(
't7/train/'
..
i
..
'.lua'
)
os.remove
(
't7/train/'
..
i
..
'.lua'
)
rescaleCharacter
(
ch
.
input
)
torch
.
save
(
't7/train/'
..
i
..
'.t7'
,
ch
)
end
for
i
=
j
,
224559
,
30
do
ch
=
dofile
(
't7/test/'
..
i
..
'.lua'
)
os.remove
(
't7/test/'
..
i
..
'.lua'
)
rescaleCharacter
(
ch
.
input
)
torch
.
save
(
't7/test/'
..
i
..
'.t7'
,
ch
)
end
end
)
end
for
i
=
1
,
30
do
t
:
dojob
()
end
examples/Chinese_handwriting/readPotFiles.py
0 → 100644
View file @
f9552033
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
import
os
import
sys
import
array
import
pickle
c3755
=
[
0xa1b0
,
0xa2b0
,
0xa3b0
,
0xa4b0
,
0xa5b0
,
0xa6b0
,
0xa7b0
,
0xa8b0
,
0xa9b0
,
0xaab0
,
0xabb0
,
0xacb0
,
0xadb0
,
0xaeb0
,
0xafb0
,
0xb0b0
,
0xb1b0
,
0xb2b0
,
0xb3b0
,
0xb4b0
,
0xb5b0
,
0xb6b0
,
0xb7b0
,
0xb8b0
,
0xb9b0
,
0xbab0
,
0xbbb0
,
0xbcb0
,
0xbdb0
,
0xbeb0
,
0xbfb0
,
0xc0b0
,
0xc1b0
,
0xc2b0
,
0xc3b0
,
0xc4b0
,
0xc5b0
,
0xc6b0
,
0xc7b0
,
0xc8b0
,
0xc9b0
,
0xcab0
,
0xcbb0
,
0xccb0
,
0xcdb0
,
0xceb0
,
0xcfb0
,
0xd0b0
,
0xd1b0
,
0xd2b0
,
0xd3b0
,
0xd4b0
,
0xd5b0
,
0xd6b0
,
0xd7b0
,
0xd8b0
,
0xd9b0
,
0xdab0
,
0xdbb0
,
0xdcb0
,
0xddb0
,
0xdeb0
,
0xdfb0
,
0xe0b0
,
0xe1b0
,
0xe2b0
,
0xe3b0
,
0xe4b0
,
0xe5b0
,
0xe6b0
,
0xe7b0
,
0xe8b0
,
0xe9b0
,
0xeab0
,
0xebb0
,
0xecb0
,
0xedb0
,
0xeeb0
,
0xefb0
,
0xf0b0
,
0xf1b0
,
0xf2b0
,
0xf3b0
,
0xf4b0
,
0xf5b0
,
0xf6b0
,
0xf7b0
,
0xf8b0
,
0xf9b0
,
0xfab0
,
0xfbb0
,
0xfcb0
,
0xfdb0
,
0xfeb0
,
0xa1b1
,
0xa2b1
,
0xa3b1
,
0xa4b1
,
0xa5b1
,
0xa6b1
,
0xa7b1
,
0xa8b1
,
0xa9b1
,
0xaab1
,
0xabb1
,
0xacb1
,
0xadb1
,
0xaeb1
,
0xafb1
,
0xb0b1
,
0xb1b1
,
0xb2b1
,
0xb3b1
,
0xb4b1
,
0xb5b1
,
0xb6b1
,
0xb7b1
,
0xb8b1
,
0xb9b1
,
0xbab1
,
0xbbb1
,
0xbcb1
,
0xbdb1
,
0xbeb1
,
0xbfb1
,
0xc0b1
,
0xc1b1
,
0xc2b1
,
0xc3b1
,
0xc4b1
,
0xc5b1
,
0xc6b1
,
0xc7b1
,
0xc8b1
,
0xc9b1
,
0xcab1
,
0xcbb1
,
0xccb1
,
0xcdb1
,
0xceb1
,
0xcfb1
,
0xd0b1
,
0xd1b1
,
0xd2b1
,
0xd3b1
,
0xd4b1
,
0xd5b1
,
0xd6b1
,
0xd7b1
,
0xd8b1
,
0xd9b1
,
0xdab1
,
0xdbb1
,
0xdcb1
,
0xddb1
,
0xdeb1
,
0xdfb1
,
0xe0b1
,
0xe1b1
,
0xe2b1
,
0xe3b1
,
0xe4b1
,
0xe5b1
,
0xe6b1
,
0xe7b1
,
0xe8b1
,
0xe9b1
,
0xeab1
,
0xebb1
,
0xecb1
,
0xedb1
,
0xeeb1
,
0xefb1
,
0xf0b1
,
0xf1b1
,
0xf2b1
,
0xf3b1
,
0xf4b1
,
0xf5b1
,
0xf6b1
,
0xf7b1
,
0xf8b1
,
0xf9b1
,
0xfab1
,
0xfbb1
,
0xfcb1
,
0xfdb1
,
0xfeb1
,
0xa1b2
,
0xa2b2
,
0xa3b2
,
0xa4b2
,
0xa5b2
,
0xa6b2
,
0xa7b2
,
0xa8b2
,
0xa9b2
,
0xaab2
,
0xabb2
,
0xacb2
,
0xadb2
,
0xaeb2
,
0xafb2
,
0xb0b2
,
0xb1b2
,
0xb2b2
,
0xb3b2
,
0xb4b2
,
0xb5b2
,
0xb6b2
,
0xb7b2
,
0xb8b2
,
0xb9b2
,
0xbab2
,
0xbbb2
,
0xbcb2
,
0xbdb2
,
0xbeb2
,
0xbfb2
,
0xc0b2
,
0xc1b2
,
0xc2b2
,
0xc3b2
,
0xc4b2
,
0xc5b2
,
0xc6b2
,
0xc7b2
,
0xc8b2
,
0xc9b2
,
0xcab2
,
0xcbb2
,
0xccb2
,
0xcdb2
,
0xceb2
,
0xcfb2
,
0xd0b2
,
0xd1b2
,
0xd2b2
,
0xd3b2
,
0xd4b2
,
0xd5b2
,
0xd6b2
,
0xd7b2
,
0xd8b2
,
0xd9b2
,
0xdab2
,
0xdbb2
,
0xdcb2
,
0xddb2
,
0xdeb2
,
0xdfb2
,
0xe0b2
,
0xe1b2
,
0xe2b2
,
0xe3b2
,
0xe4b2
,
0xe5b2
,
0xe6b2
,
0xe7b2
,
0xe8b2
,
0xe9b2
,
0xeab2
,
0xebb2
,
0xecb2
,
0xedb2
,
0xeeb2
,
0xefb2
,
0xf0b2
,
0xf1b2
,
0xf2b2
,
0xf3b2
,
0xf4b2
,
0xf5b2
,
0xf6b2
,
0xf7b2
,
0xf8b2
,
0xf9b2
,
0xfab2
,
0xfbb2
,
0xfcb2
,
0xfdb2
,
0xfeb2
,
0xa1b3
,
0xa2b3
,
0xa3b3
,
0xa4b3
,
0xa5b3
,
0xa6b3
,
0xa7b3
,
0xa8b3
,
0xa9b3
,
0xaab3
,
0xabb3
,
0xacb3
,
0xadb3
,
0xaeb3
,
0xafb3
,
0xb0b3
,
0xb1b3
,
0xb2b3
,
0xb3b3
,
0xb4b3
,
0xb5b3
,
0xb6b3
,
0xb7b3
,
0xb8b3
,
0xb9b3
,
0xbab3
,
0xbbb3
,
0xbcb3
,
0xbdb3
,
0xbeb3
,
0xbfb3
,
0xc0b3
,
0xc1b3
,
0xc2b3
,
0xc3b3
,
0xc4b3
,
0xc5b3
,
0xc6b3
,
0xc7b3
,
0xc8b3
,
0xc9b3
,
0xcab3
,
0xcbb3
,
0xccb3
,
0xcdb3
,
0xceb3
,
0xcfb3
,
0xd0b3
,
0xd1b3
,
0xd2b3
,
0xd3b3
,
0xd4b3
,
0xd5b3
,
0xd6b3
,
0xd7b3
,
0xd8b3
,
0xd9b3
,
0xdab3
,
0xdbb3
,
0xdcb3
,
0xddb3
,
0xdeb3
,
0xdfb3
,
0xe0b3
,
0xe1b3
,
0xe2b3
,
0xe3b3
,
0xe4b3
,
0xe5b3
,
0xe6b3
,
0xe7b3
,
0xe8b3
,
0xe9b3
,
0xeab3
,
0xebb3
,
0xecb3
,
0xedb3
,
0xeeb3
,
0xefb3
,
0xf0b3
,
0xf1b3
,
0xf2b3
,
0xf3b3
,
0xf4b3
,
0xf5b3
,
0xf6b3
,
0xf7b3
,
0xf8b3
,
0xf9b3
,
0xfab3
,
0xfbb3
,
0xfcb3
,
0xfdb3
,
0xfeb3
,
0xa1b4
,
0xa2b4
,
0xa3b4
,
0xa4b4
,
0xa5b4
,
0xa6b4
,
0xa7b4
,
0xa8b4
,
0xa9b4
,
0xaab4
,
0xabb4
,
0xacb4
,
0xadb4
,
0xaeb4
,
0xafb4
,
0xb0b4
,
0xb1b4
,
0xb2b4
,
0xb3b4
,
0xb4b4
,
0xb5b4
,
0xb6b4
,
0xb7b4
,
0xb8b4
,
0xb9b4
,
0xbab4
,
0xbbb4
,
0xbcb4
,
0xbdb4
,
0xbeb4
,
0xbfb4
,
0xc0b4
,
0xc1b4
,
0xc2b4
,
0xc3b4
,
0xc4b4
,
0xc5b4
,
0xc6b4
,
0xc7b4
,
0xc8b4
,
0xc9b4
,
0xcab4
,
0xcbb4
,
0xccb4
,
0xcdb4
,
0xceb4
,
0xcfb4
,
0xd0b4
,
0xd1b4
,
0xd2b4
,
0xd3b4
,
0xd4b4
,
0xd5b4
,
0xd6b4
,
0xd7b4
,
0xd8b4
,
0xd9b4
,
0xdab4
,
0xdbb4
,
0xdcb4
,
0xddb4
,
0xdeb4
,
0xdfb4
,
0xe0b4
,
0xe1b4
,
0xe2b4
,
0xe3b4
,
0xe4b4
,
0xe5b4
,
0xe6b4
,
0xe7b4
,
0xe8b4
,
0xe9b4
,
0xeab4
,
0xebb4
,
0xecb4
,
0xedb4
,
0xeeb4
,
0xefb4
,
0xf0b4
,
0xf1b4
,
0xf2b4
,
0xf3b4
,
0xf4b4
,
0xf5b4
,
0xf6b4
,
0xf7b4
,
0xf8b4
,
0xf9b4
,
0xfab4
,
0xfbb4
,
0xfcb4
,
0xfdb4
,
0xfeb4
,
0xa1b5
,
0xa2b5
,
0xa3b5
,
0xa4b5
,
0xa5b5
,
0xa6b5
,
0xa7b5
,
0xa8b5
,
0xa9b5
,
0xaab5
,
0xabb5
,
0xacb5
,
0xadb5
,
0xaeb5
,
0xafb5
,
0xb0b5
,
0xb1b5
,
0xb2b5
,
0xb3b5
,
0xb4b5
,
0xb5b5
,
0xb6b5
,
0xb7b5
,
0xb8b5
,
0xb9b5
,
0xbab5
,
0xbbb5
,
0xbcb5
,
0xbdb5
,
0xbeb5
,
0xbfb5
,
0xc0b5
,
0xc1b5
,
0xc2b5
,
0xc3b5
,
0xc4b5
,
0xc5b5
,
0xc6b5
,
0xc7b5
,
0xc8b5
,
0xc9b5
,
0xcab5
,
0xcbb5
,
0xccb5
,
0xcdb5
,
0xceb5
,
0xcfb5
,
0xd0b5
,
0xd1b5
,
0xd2b5
,
0xd3b5
,
0xd4b5
,
0xd5b5
,
0xd6b5
,
0xd7b5
,
0xd8b5
,
0xd9b5
,
0xdab5
,
0xdbb5
,
0xdcb5
,
0xddb5
,
0xdeb5
,
0xdfb5
,
0xe0b5
,
0xe1b5
,
0xe2b5
,
0xe3b5
,
0xe4b5
,
0xe5b5
,
0xe6b5
,
0xe7b5
,
0xe8b5
,
0xe9b5
,
0xeab5
,
0xebb5
,
0xecb5
,
0xedb5
,
0xeeb5
,
0xefb5
,
0xf0b5
,
0xf1b5
,
0xf2b5
,
0xf3b5
,
0xf4b5
,
0xf5b5
,
0xf6b5
,
0xf7b5
,
0xf8b5
,
0xf9b5
,
0xfab5
,
0xfbb5
,
0xfcb5
,
0xfdb5
,
0xfeb5
,
0xa1b6
,
0xa2b6
,
0xa3b6
,
0xa4b6
,
0xa5b6
,
0xa6b6
,
0xa7b6
,
0xa8b6
,
0xa9b6
,
0xaab6
,
0xabb6
,
0xacb6
,
0xadb6
,
0xaeb6
,
0xafb6
,
0xb0b6
,
0xb1b6
,
0xb2b6
,
0xb3b6
,
0xb4b6
,
0xb5b6
,
0xb6b6
,
0xb7b6
,
0xb8b6
,
0xb9b6
,
0xbab6
,
0xbbb6
,
0xbcb6
,
0xbdb6
,
0xbeb6
,
0xbfb6
,
0xc0b6
,
0xc1b6
,
0xc2b6
,
0xc3b6
,
0xc4b6
,
0xc5b6
,
0xc6b6
,
0xc7b6
,
0xc8b6
,
0xc9b6
,
0xcab6
,
0xcbb6
,
0xccb6
,
0xcdb6
,
0xceb6
,
0xcfb6
,
0xd0b6
,
0xd1b6
,
0xd2b6
,
0xd3b6
,
0xd4b6
,
0xd5b6
,
0xd6b6
,
0xd7b6
,
0xd8b6
,
0xd9b6
,
0xdab6
,
0xdbb6
,
0xdcb6
,
0xddb6
,
0xdeb6
,
0xdfb6
,
0xe0b6
,
0xe1b6
,
0xe2b6
,
0xe3b6
,
0xe4b6
,
0xe5b6
,
0xe6b6
,
0xe7b6
,
0xe8b6
,
0xe9b6
,
0xeab6
,
0xebb6
,
0xecb6
,
0xedb6
,
0xeeb6
,
0xefb6
,
0xf0b6
,
0xf1b6
,
0xf2b6
,
0xf3b6
,
0xf4b6
,
0xf5b6
,
0xf6b6
,
0xf7b6
,
0xf8b6
,
0xf9b6
,
0xfab6
,
0xfbb6
,
0xfcb6
,
0xfdb6
,
0xfeb6
,
0xa1b7
,
0xa2b7
,
0xa3b7
,
0xa4b7
,
0xa5b7
,
0xa6b7
,
0xa7b7
,
0xa8b7
,
0xa9b7
,
0xaab7
,
0xabb7
,
0xacb7
,
0xadb7
,
0xaeb7
,
0xafb7
,
0xb0b7
,
0xb1b7
,
0xb2b7
,
0xb3b7
,
0xb4b7
,
0xb5b7
,
0xb6b7
,
0xb7b7
,
0xb8b7
,
0xb9b7
,
0xbab7
,
0xbbb7
,
0xbcb7
,
0xbdb7
,
0xbeb7
,
0xbfb7
,
0xc0b7
,
0xc1b7
,
0xc2b7
,
0xc3b7
,
0xc4b7
,
0xc5b7
,
0xc6b7
,
0xc7b7
,
0xc8b7
,
0xc9b7
,
0xcab7
,
0xcbb7
,
0xccb7
,
0xcdb7
,
0xceb7
,
0xcfb7
,
0xd0b7
,
0xd1b7
,
0xd2b7
,
0xd3b7
,
0xd4b7
,
0xd5b7
,
0xd6b7
,
0xd7b7
,
0xd8b7
,
0xd9b7
,
0xdab7
,
0xdbb7
,
0xdcb7
,
0xddb7
,
0xdeb7
,
0xdfb7
,
0xe0b7
,
0xe1b7
,
0xe2b7
,
0xe3b7
,
0xe4b7
,
0xe5b7
,
0xe6b7
,
0xe7b7
,
0xe8b7
,
0xe9b7
,
0xeab7
,
0xebb7
,
0xecb7
,
0xedb7
,
0xeeb7
,
0xefb7
,
0xf0b7
,
0xf1b7
,
0xf2b7
,
0xf3b7
,
0xf4b7
,
0xf5b7
,
0xf6b7
,
0xf7b7
,
0xf8b7
,
0xf9b7
,
0xfab7
,
0xfbb7
,
0xfcb7
,
0xfdb7
,
0xfeb7
,
0xa1b8
,
0xa2b8
,
0xa3b8
,
0xa4b8
,
0xa5b8
,
0xa6b8
,
0xa7b8
,
0xa8b8
,
0xa9b8
,
0xaab8
,
0xabb8
,
0xacb8
,
0xadb8
,
0xaeb8
,
0xafb8
,
0xb0b8
,
0xb1b8
,
0xb2b8
,
0xb3b8
,
0xb4b8
,
0xb5b8
,
0xb6b8
,
0xb7b8
,
0xb8b8
,
0xb9b8
,
0xbab8
,
0xbbb8
,
0xbcb8
,
0xbdb8
,
0xbeb8
,
0xbfb8
,
0xc0b8
,
0xc1b8
,
0xc2b8
,
0xc3b8
,
0xc4b8
,
0xc5b8
,
0xc6b8
,
0xc7b8
,
0xc8b8
,
0xc9b8
,
0xcab8
,
0xcbb8
,
0xccb8
,
0xcdb8
,
0xceb8
,
0xcfb8
,
0xd0b8
,
0xd1b8
,
0xd2b8
,
0xd3b8
,
0xd4b8
,
0xd5b8
,
0xd6b8
,
0xd7b8
,
0xd8b8
,
0xd9b8
,
0xdab8
,
0xdbb8
,
0xdcb8
,
0xddb8
,
0xdeb8
,
0xdfb8
,
0xe0b8
,
0xe1b8
,
0xe2b8
,
0xe3b8
,
0xe4b8
,
0xe5b8
,
0xe6b8
,
0xe7b8
,
0xe8b8
,
0xe9b8
,
0xeab8
,
0xebb8
,
0xecb8
,
0xedb8
,
0xeeb8
,
0xefb8
,
0xf0b8
,
0xf1b8
,
0xf2b8
,
0xf3b8
,
0xf4b8
,
0xf5b8
,
0xf6b8
,
0xf7b8
,
0xf8b8
,
0xf9b8
,
0xfab8
,
0xfbb8
,
0xfcb8
,
0xfdb8
,
0xfeb8
,
0xa1b9
,
0xa2b9
,
0xa3b9
,
0xa4b9
,
0xa5b9
,
0xa6b9
,
0xa7b9
,
0xa8b9
,
0xa9b9
,
0xaab9
,
0xabb9
,
0xacb9
,
0xadb9
,
0xaeb9
,
0xafb9
,
0xb0b9
,
0xb1b9
,
0xb2b9
,
0xb3b9
,
0xb4b9
,
0xb5b9
,
0xb6b9
,
0xb7b9
,
0xb8b9
,
0xb9b9
,
0xbab9
,
0xbbb9
,
0xbcb9
,
0xbdb9
,
0xbeb9
,
0xbfb9
,
0xc0b9
,
0xc1b9
,
0xc2b9
,
0xc3b9
,
0xc4b9
,
0xc5b9
,
0xc6b9
,
0xc7b9
,
0xc8b9
,
0xc9b9
,
0xcab9
,
0xcbb9
,
0xccb9
,
0xcdb9
,
0xceb9
,
0xcfb9
,
0xd0b9
,
0xd1b9
,
0xd2b9
,
0xd3b9
,
0xd4b9
,
0xd5b9
,
0xd6b9
,
0xd7b9
,
0xd8b9
,
0xd9b9
,
0xdab9
,
0xdbb9
,
0xdcb9
,
0xddb9
,
0xdeb9
,
0xdfb9
,
0xe0b9
,
0xe1b9
,
0xe2b9
,
0xe3b9
,
0xe4b9
,
0xe5b9
,
0xe6b9
,
0xe7b9
,
0xe8b9
,
0xe9b9
,
0xeab9
,
0xebb9
,
0xecb9
,
0xedb9
,
0xeeb9
,
0xefb9
,
0xf0b9
,
0xf1b9
,
0xf2b9
,
0xf3b9
,
0xf4b9
,
0xf5b9
,
0xf6b9
,
0xf7b9
,
0xf8b9
,
0xf9b9
,
0xfab9
,
0xfbb9
,
0xfcb9
,
0xfdb9
,
0xfeb9
,
0xa1ba
,
0xa2ba
,
0xa3ba
,
0xa4ba
,
0xa5ba
,
0xa6ba
,
0xa7ba
,
0xa8ba
,
0xa9ba
,
0xaaba
,
0xabba
,
0xacba
,
0xadba
,
0xaeba
,
0xafba
,
0xb0ba
,
0xb1ba
,
0xb2ba
,
0xb3ba
,
0xb4ba
,
0xb5ba
,
0xb6ba
,
0xb7ba
,
0xb8ba
,
0xb9ba
,
0xbaba
,
0xbbba
,
0xbcba
,
0xbdba
,
0xbeba
,
0xbfba
,
0xc0ba
,
0xc1ba
,
0xc2ba
,
0xc3ba
,
0xc4ba
,
0xc5ba
,
0xc6ba
,
0xc7ba
,
0xc8ba
,
0xc9ba
,
0xcaba
,
0xcbba
,
0xccba
,
0xcdba
,
0xceba
,
0xcfba
,
0xd0ba
,
0xd1ba
,
0xd2ba
,
0xd3ba
,
0xd4ba
,
0xd5ba
,
0xd6ba
,
0xd7ba
,
0xd8ba
,
0xd9ba
,
0xdaba
,
0xdbba
,
0xdcba
,
0xddba
,
0xdeba
,
0xdfba
,
0xe0ba
,
0xe1ba
,
0xe2ba
,
0xe3ba
,
0xe4ba
,
0xe5ba
,
0xe6ba
,
0xe7ba
,
0xe8ba
,
0xe9ba
,
0xeaba
,
0xebba
,
0xecba
,
0xedba
,
0xeeba
,
0xefba
,
0xf0ba
,
0xf1ba
,
0xf2ba
,
0xf3ba
,
0xf4ba
,
0xf5ba
,
0xf6ba
,
0xf7ba
,
0xf8ba
,
0xf9ba
,
0xfaba
,
0xfbba
,
0xfcba
,
0xfdba
,
0xfeba
,
0xa1bb
,
0xa2bb
,
0xa3bb
,
0xa4bb
,
0xa5bb
,
0xa6bb
,
0xa7bb
,
0xa8bb
,
0xa9bb
,
0xaabb
,
0xabbb
,
0xacbb
,
0xadbb
,
0xaebb
,
0xafbb
,
0xb0bb
,
0xb1bb
,
0xb2bb
,
0xb3bb
,
0xb4bb
,
0xb5bb
,
0xb6bb
,
0xb7bb
,
0xb8bb
,
0xb9bb
,
0xbabb
,
0xbbbb
,
0xbcbb
,
0xbdbb
,
0xbebb
,
0xbfbb
,
0xc0bb
,
0xc1bb
,
0xc2bb
,
0xc3bb
,
0xc4bb
,
0xc5bb
,
0xc6bb
,
0xc7bb
,
0xc8bb
,
0xc9bb
,
0xcabb
,
0xcbbb
,
0xccbb
,
0xcdbb
,
0xcebb
,
0xcfbb
,
0xd0bb
,
0xd1bb
,
0xd2bb
,
0xd3bb
,
0xd4bb
,
0xd5bb
,
0xd6bb
,
0xd7bb
,
0xd8bb
,
0xd9bb
,
0xdabb
,
0xdbbb
,
0xdcbb
,
0xddbb
,
0xdebb
,
0xdfbb
,
0xe0bb
,
0xe1bb
,
0xe2bb
,
0xe3bb
,
0xe4bb
,
0xe5bb
,
0xe6bb
,
0xe7bb
,
0xe8bb
,
0xe9bb
,
0xeabb
,
0xebbb
,
0xecbb
,
0xedbb
,
0xeebb
,
0xefbb
,
0xf0bb
,
0xf1bb
,
0xf2bb
,
0xf3bb
,
0xf4bb
,
0xf5bb
,
0xf6bb
,
0xf7bb
,
0xf8bb
,
0xf9bb
,
0xfabb
,
0xfbbb
,
0xfcbb
,
0xfdbb
,
0xfebb
,
0xa1bc
,
0xa2bc
,
0xa3bc
,
0xa4bc
,
0xa5bc
,
0xa6bc
,
0xa7bc
,
0xa8bc
,
0xa9bc
,
0xaabc
,
0xabbc
,
0xacbc
,
0xadbc
,
0xaebc
,
0xafbc
,
0xb0bc
,
0xb1bc
,
0xb2bc
,
0xb3bc
,
0xb4bc
,
0xb5bc
,
0xb6bc
,
0xb7bc
,
0xb8bc
,
0xb9bc
,
0xbabc
,
0xbbbc
,
0xbcbc
,
0xbdbc
,
0xbebc
,
0xbfbc
,
0xc0bc
,
0xc1bc
,
0xc2bc
,
0xc3bc
,
0xc4bc
,
0xc5bc
,
0xc6bc
,
0xc7bc
,
0xc8bc
,
0xc9bc
,
0xcabc
,
0xcbbc
,
0xccbc
,
0xcdbc
,
0xcebc
,
0xcfbc
,
0xd0bc
,
0xd1bc
,
0xd2bc
,
0xd3bc
,
0xd4bc
,
0xd5bc
,
0xd6bc
,
0xd7bc
,
0xd8bc
,
0xd9bc
,
0xdabc
,
0xdbbc
,
0xdcbc
,
0xddbc
,
0xdebc
,
0xdfbc
,
0xe0bc
,
0xe1bc
,
0xe2bc
,
0xe3bc
,
0xe4bc
,
0xe5bc
,
0xe6bc
,
0xe7bc
,
0xe8bc
,
0xe9bc
,
0xeabc
,
0xebbc
,
0xecbc
,
0xedbc
,
0xeebc
,
0xefbc
,
0xf0bc
,
0xf1bc
,
0xf2bc
,
0xf3bc
,
0xf4bc
,
0xf5bc
,
0xf6bc
,
0xf7bc
,
0xf8bc
,
0xf9bc
,
0xfabc
,
0xfbbc
,
0xfcbc
,
0xfdbc
,
0xfebc
,
0xa1bd
,
0xa2bd
,
0xa3bd
,
0xa4bd
,
0xa5bd
,
0xa6bd
,
0xa7bd
,
0xa8bd
,
0xa9bd
,
0xaabd
,
0xabbd
,
0xacbd
,
0xadbd
,
0xaebd
,
0xafbd
,
0xb0bd
,
0xb1bd
,
0xb2bd
,
0xb3bd
,
0xb4bd
,
0xb5bd
,
0xb6bd
,
0xb7bd
,
0xb8bd
,
0xb9bd
,
0xbabd
,
0xbbbd
,
0xbcbd
,
0xbdbd
,
0xbebd
,
0xbfbd
,
0xc0bd
,
0xc1bd
,
0xc2bd
,
0xc3bd
,
0xc4bd
,
0xc5bd
,
0xc6bd
,
0xc7bd
,
0xc8bd
,
0xc9bd
,
0xcabd
,
0xcbbd
,
0xccbd
,
0xcdbd
,
0xcebd
,
0xcfbd
,
0xd0bd
,
0xd1bd
,
0xd2bd
,
0xd3bd
,
0xd4bd
,
0xd5bd
,
0xd6bd
,
0xd7bd
,
0xd8bd
,
0xd9bd
,
0xdabd
,
0xdbbd
,
0xdcbd
,
0xddbd
,
0xdebd
,
0xdfbd
,
0xe0bd
,
0xe1bd
,
0xe2bd
,
0xe3bd
,
0xe4bd
,
0xe5bd
,
0xe6bd
,
0xe7bd
,
0xe8bd
,
0xe9bd
,
0xeabd
,
0xebbd
,
0xecbd
,
0xedbd
,
0xeebd
,
0xefbd
,
0xf0bd
,
0xf1bd
,
0xf2bd
,
0xf3bd
,
0xf4bd
,
0xf5bd
,
0xf6bd
,
0xf7bd
,
0xf8bd
,
0xf9bd
,
0xfabd
,
0xfbbd
,
0xfcbd
,
0xfdbd
,
0xfebd
,
0xa1be
,
0xa2be
,
0xa3be
,
0xa4be
,
0xa5be
,
0xa6be
,
0xa7be
,
0xa8be
,
0xa9be
,
0xaabe
,
0xabbe
,
0xacbe
,
0xadbe
,
0xaebe
,
0xafbe
,
0xb0be
,
0xb1be
,
0xb2be
,
0xb3be
,
0xb4be
,
0xb5be
,
0xb6be
,
0xb7be
,
0xb8be
,
0xb9be
,
0xbabe
,
0xbbbe
,
0xbcbe
,
0xbdbe
,
0xbebe
,
0xbfbe
,
0xc0be
,
0xc1be
,
0xc2be
,
0xc3be
,
0xc4be
,
0xc5be
,
0xc6be
,
0xc7be
,
0xc8be
,
0xc9be
,
0xcabe
,
0xcbbe
,
0xccbe
,
0xcdbe
,
0xcebe
,
0xcfbe
,
0xd0be
,
0xd1be
,
0xd2be
,
0xd3be
,
0xd4be
,
0xd5be
,
0xd6be
,
0xd7be
,
0xd8be
,
0xd9be
,
0xdabe
,
0xdbbe
,
0xdcbe
,
0xddbe
,
0xdebe
,
0xdfbe
,
0xe0be
,
0xe1be
,
0xe2be
,
0xe3be
,
0xe4be
,
0xe5be
,
0xe6be
,
0xe7be
,
0xe8be
,
0xe9be
,
0xeabe
,
0xebbe
,
0xecbe
,
0xedbe
,
0xeebe
,
0xefbe
,
0xf0be
,
0xf1be
,
0xf2be
,
0xf3be
,
0xf4be
,
0xf5be
,
0xf6be
,
0xf7be
,
0xf8be
,
0xf9be
,
0xfabe
,
0xfbbe
,
0xfcbe
,
0xfdbe
,
0xfebe
,
0xa1bf
,
0xa2bf
,
0xa3bf
,
0xa4bf
,
0xa5bf
,
0xa6bf
,
0xa7bf
,
0xa8bf
,
0xa9bf
,
0xaabf
,
0xabbf
,
0xacbf
,
0xadbf
,
0xaebf
,
0xafbf
,
0xb0bf
,
0xb1bf
,
0xb2bf
,
0xb3bf
,
0xb4bf
,
0xb5bf
,
0xb6bf
,
0xb7bf
,
0xb8bf
,
0xb9bf
,
0xbabf
,
0xbbbf
,
0xbcbf
,
0xbdbf
,
0xbebf
,
0xbfbf
,
0xc0bf
,
0xc1bf
,
0xc2bf
,
0xc3bf
,
0xc4bf
,
0xc5bf
,
0xc6bf
,
0xc7bf
,
0xc8bf
,
0xc9bf
,
0xcabf
,
0xcbbf
,
0xccbf
,
0xcdbf
,
0xcebf
,
0xcfbf
,
0xd0bf
,
0xd1bf
,
0xd2bf
,
0xd3bf
,
0xd4bf
,
0xd5bf
,
0xd6bf
,
0xd7bf
,
0xd8bf
,
0xd9bf
,
0xdabf
,
0xdbbf
,
0xdcbf
,
0xddbf
,
0xdebf
,
0xdfbf
,
0xe0bf
,
0xe1bf
,
0xe2bf
,
0xe3bf
,
0xe4bf
,
0xe5bf
,
0xe6bf
,
0xe7bf
,
0xe8bf
,
0xe9bf
,
0xeabf
,
0xebbf
,
0xecbf
,
0xedbf
,
0xeebf
,
0xefbf
,
0xf0bf
,
0xf1bf
,
0xf2bf
,
0xf3bf
,
0xf4bf
,
0xf5bf
,
0xf6bf
,
0xf7bf
,
0xf8bf
,
0xf9bf
,
0xfabf
,
0xfbbf
,
0xfcbf
,
0xfdbf
,
0xfebf
,
0xa1c0
,
0xa2c0
,
0xa3c0
,
0xa4c0
,
0xa5c0
,
0xa6c0
,
0xa7c0
,
0xa8c0
,
0xa9c0
,
0xaac0
,
0xabc0
,
0xacc0
,
0xadc0
,
0xaec0
,
0xafc0
,
0xb0c0
,
0xb1c0
,
0xb2c0
,
0xb3c0
,
0xb4c0
,
0xb5c0
,
0xb6c0
,
0xb7c0
,
0xb8c0
,
0xb9c0
,
0xbac0
,
0xbbc0
,
0xbcc0
,
0xbdc0
,
0xbec0
,
0xbfc0
,
0xc0c0
,
0xc1c0
,
0xc2c0
,
0xc3c0
,
0xc4c0
,
0xc5c0
,
0xc6c0
,
0xc7c0
,
0xc8c0
,
0xc9c0
,
0xcac0
,
0xcbc0
,
0xccc0
,
0xcdc0
,
0xcec0
,
0xcfc0
,
0xd0c0
,
0xd1c0
,
0xd2c0
,
0xd3c0
,
0xd4c0
,
0xd5c0
,
0xd6c0
,
0xd7c0
,
0xd8c0
,
0xd9c0
,
0xdac0
,
0xdbc0
,
0xdcc0
,
0xddc0
,
0xdec0
,
0xdfc0
,
0xe0c0
,
0xe1c0
,
0xe2c0
,
0xe3c0
,
0xe4c0
,
0xe5c0
,
0xe6c0
,
0xe7c0
,
0xe8c0
,
0xe9c0
,
0xeac0
,
0xebc0
,
0xecc0
,
0xedc0
,
0xeec0
,
0xefc0
,
0xf0c0
,
0xf1c0
,
0xf2c0
,
0xf3c0
,
0xf4c0
,
0xf5c0
,
0xf6c0
,
0xf7c0
,
0xf8c0
,
0xf9c0
,
0xfac0
,
0xfbc0
,
0xfcc0
,
0xfdc0
,
0xfec0
,
0xa1c1
,
0xa2c1
,
0xa3c1
,
0xa4c1
,
0xa5c1
,
0xa6c1
,
0xa7c1
,
0xa8c1
,
0xa9c1
,
0xaac1
,
0xabc1
,
0xacc1
,
0xadc1
,
0xaec1
,
0xafc1
,
0xb0c1
,
0xb1c1
,
0xb2c1
,
0xb3c1
,
0xb4c1
,
0xb5c1
,
0xb6c1
,
0xb7c1
,
0xb8c1
,
0xb9c1
,
0xbac1
,
0xbbc1
,
0xbcc1
,
0xbdc1
,
0xbec1
,
0xbfc1
,
0xc0c1
,
0xc1c1
,
0xc2c1
,
0xc3c1
,
0xc4c1
,
0xc5c1
,
0xc6c1
,
0xc7c1
,
0xc8c1
,
0xc9c1
,
0xcac1
,
0xcbc1
,
0xccc1
,
0xcdc1
,
0xcec1
,
0xcfc1
,
0xd0c1
,
0xd1c1
,
0xd2c1
,
0xd3c1
,
0xd4c1
,
0xd5c1
,
0xd6c1
,
0xd7c1
,
0xd8c1
,
0xd9c1
,
0xdac1
,
0xdbc1
,
0xdcc1
,
0xddc1
,
0xdec1
,
0xdfc1
,
0xe0c1
,
0xe1c1
,
0xe2c1
,
0xe3c1
,
0xe4c1
,
0xe5c1
,
0xe6c1
,
0xe7c1
,
0xe8c1
,
0xe9c1
,
0xeac1
,
0xebc1
,
0xecc1
,
0xedc1
,
0xeec1
,
0xefc1
,
0xf0c1
,
0xf1c1
,
0xf2c1
,
0xf3c1
,
0xf4c1
,
0xf5c1
,
0xf6c1
,
0xf7c1
,
0xf8c1
,
0xf9c1
,
0xfac1
,
0xfbc1
,
0xfcc1
,
0xfdc1
,
0xfec1
,
0xa1c2
,
0xa2c2
,
0xa3c2
,
0xa4c2
,
0xa5c2
,
0xa6c2
,
0xa7c2
,
0xa8c2
,
0xa9c2
,
0xaac2
,
0xabc2
,
0xacc2
,
0xadc2
,
0xaec2
,
0xafc2
,
0xb0c2
,
0xb1c2
,
0xb2c2
,
0xb3c2
,
0xb4c2
,
0xb5c2
,
0xb6c2
,
0xb7c2
,
0xb8c2
,
0xb9c2
,
0xbac2
,
0xbbc2
,
0xbcc2
,
0xbdc2
,
0xbec2
,
0xbfc2
,
0xc0c2
,
0xc1c2
,
0xc2c2
,
0xc3c2
,
0xc4c2
,
0xc5c2
,
0xc6c2
,
0xc7c2
,
0xc8c2
,
0xc9c2
,
0xcac2
,
0xcbc2
,
0xccc2
,
0xcdc2
,
0xcec2
,
0xcfc2
,
0xd0c2
,
0xd1c2
,
0xd2c2
,
0xd3c2
,
0xd4c2
,
0xd5c2
,
0xd6c2
,
0xd7c2
,
0xd8c2
,
0xd9c2
,
0xdac2
,
0xdbc2
,
0xdcc2
,
0xddc2
,
0xdec2
,
0xdfc2
,
0xe0c2
,
0xe1c2
,
0xe2c2
,
0xe3c2
,
0xe4c2
,
0xe5c2
,
0xe6c2
,
0xe7c2
,
0xe8c2
,
0xe9c2
,
0xeac2
,
0xebc2
,
0xecc2
,
0xedc2
,
0xeec2
,
0xefc2
,
0xf0c2
,
0xf1c2
,
0xf2c2
,
0xf3c2
,
0xf4c2
,
0xf5c2
,
0xf6c2
,
0xf7c2
,
0xf8c2
,
0xf9c2
,
0xfac2
,
0xfbc2
,
0xfcc2
,
0xfdc2
,
0xfec2
,
0xa1c3
,
0xa2c3
,
0xa3c3
,
0xa4c3
,
0xa5c3
,
0xa6c3
,
0xa7c3
,
0xa8c3
,
0xa9c3
,
0xaac3
,
0xabc3
,
0xacc3
,
0xadc3
,
0xaec3
,
0xafc3
,
0xb0c3
,
0xb1c3
,
0xb2c3
,
0xb3c3
,
0xb4c3
,
0xb5c3
,
0xb6c3
,
0xb7c3
,
0xb8c3
,
0xb9c3
,
0xbac3
,
0xbbc3
,
0xbcc3
,
0xbdc3
,
0xbec3
,
0xbfc3
,
0xc0c3
,
0xc1c3
,
0xc2c3
,
0xc3c3
,
0xc4c3
,
0xc5c3
,
0xc6c3
,
0xc7c3
,
0xc8c3
,
0xc9c3
,
0xcac3
,
0xcbc3
,
0xccc3
,
0xcdc3
,
0xcec3
,
0xcfc3
,
0xd0c3
,
0xd1c3
,
0xd2c3
,
0xd3c3
,
0xd4c3
,
0xd5c3
,
0xd6c3
,
0xd7c3
,
0xd8c3
,
0xd9c3
,
0xdac3
,
0xdbc3
,
0xdcc3
,
0xddc3
,
0xdec3
,
0xdfc3
,
0xe0c3
,
0xe1c3
,
0xe2c3
,
0xe3c3
,
0xe4c3
,
0xe5c3
,
0xe6c3
,
0xe7c3
,
0xe8c3
,
0xe9c3
,
0xeac3
,
0xebc3
,
0xecc3
,
0xedc3
,
0xeec3
,
0xefc3
,
0xf0c3
,
0xf1c3
,
0xf2c3
,
0xf3c3
,
0xf4c3
,
0xf5c3
,
0xf6c3
,
0xf7c3
,
0xf8c3
,
0xf9c3
,
0xfac3
,
0xfbc3
,
0xfcc3
,
0xfdc3
,
0xfec3
,
0xa1c4
,
0xa2c4
,
0xa3c4
,
0xa4c4
,
0xa5c4
,
0xa6c4
,
0xa7c4
,
0xa8c4
,
0xa9c4
,
0xaac4
,
0xabc4
,
0xacc4
,
0xadc4
,
0xaec4
,
0xafc4
,
0xb0c4
,
0xb1c4
,
0xb2c4
,
0xb3c4
,
0xb4c4
,
0xb5c4
,
0xb6c4
,
0xb7c4
,
0xb8c4
,
0xb9c4
,
0xbac4
,
0xbbc4
,
0xbcc4
,
0xbdc4
,
0xbec4
,
0xbfc4
,
0xc0c4
,
0xc1c4
,
0xc2c4
,
0xc3c4
,
0xc4c4
,
0xc5c4
,
0xc6c4
,
0xc7c4
,
0xc8c4
,
0xc9c4
,
0xcac4
,
0xcbc4
,
0xccc4
,
0xcdc4
,
0xcec4
,
0xcfc4
,
0xd0c4
,
0xd1c4
,
0xd2c4
,
0xd3c4
,
0xd4c4
,
0xd5c4
,
0xd6c4
,
0xd7c4
,
0xd8c4
,
0xd9c4
,
0xdac4
,
0xdbc4
,
0xdcc4
,
0xddc4
,
0xdec4
,
0xdfc4
,
0xe0c4
,
0xe1c4
,
0xe2c4
,
0xe3c4
,
0xe4c4
,
0xe5c4
,
0xe6c4
,
0xe7c4
,
0xe8c4
,
0xe9c4
,
0xeac4
,
0xebc4
,
0xecc4
,
0xedc4
,
0xeec4
,
0xefc4
,
0xf0c4
,
0xf1c4
,
0xf2c4
,
0xf3c4
,
0xf4c4
,
0xf5c4
,
0xf6c4
,
0xf7c4
,
0xf8c4
,
0xf9c4
,
0xfac4
,
0xfbc4
,
0xfcc4
,
0xfdc4
,
0xfec4
,
0xa1c5
,
0xa2c5
,
0xa3c5
,
0xa4c5
,
0xa5c5
,
0xa6c5
,
0xa7c5
,
0xa8c5
,
0xa9c5
,
0xaac5
,
0xabc5
,
0xacc5
,
0xadc5
,
0xaec5
,
0xafc5
,
0xb0c5
,
0xb1c5
,
0xb2c5
,
0xb3c5
,
0xb4c5
,
0xb5c5
,
0xb6c5
,
0xb7c5
,
0xb8c5
,
0xb9c5
,
0xbac5
,
0xbbc5
,
0xbcc5
,
0xbdc5
,
0xbec5
,
0xbfc5
,
0xc0c5
,
0xc1c5
,
0xc2c5
,
0xc3c5
,
0xc4c5
,
0xc5c5
,
0xc6c5
,
0xc7c5
,
0xc8c5
,
0xc9c5
,
0xcac5
,
0xcbc5
,
0xccc5
,
0xcdc5
,
0xcec5
,
0xcfc5
,
0xd0c5
,
0xd1c5
,
0xd2c5
,
0xd3c5
,
0xd4c5
,
0xd5c5
,
0xd6c5
,
0xd7c5
,
0xd8c5
,
0xd9c5
,
0xdac5
,
0xdbc5
,
0xdcc5
,
0xddc5
,
0xdec5
,
0xdfc5
,
0xe0c5
,
0xe1c5
,
0xe2c5
,
0xe3c5
,
0xe4c5
,
0xe5c5
,
0xe6c5
,
0xe7c5
,
0xe8c5
,
0xe9c5
,
0xeac5
,
0xebc5
,
0xecc5
,
0xedc5
,
0xeec5
,
0xefc5
,
0xf0c5
,
0xf1c5
,
0xf2c5
,
0xf3c5
,
0xf4c5
,
0xf5c5
,
0xf6c5
,
0xf7c5
,
0xf8c5
,
0xf9c5
,
0xfac5
,
0xfbc5
,
0xfcc5
,
0xfdc5
,
0xfec5
,
0xa1c6
,
0xa2c6
,
0xa3c6
,
0xa4c6
,
0xa5c6
,
0xa6c6
,
0xa7c6
,
0xa8c6
,
0xa9c6
,
0xaac6
,
0xabc6
,
0xacc6
,
0xadc6
,
0xaec6
,
0xafc6
,
0xb0c6
,
0xb1c6
,
0xb2c6
,
0xb3c6
,
0xb4c6
,
0xb5c6
,
0xb6c6
,
0xb7c6
,
0xb8c6
,
0xb9c6
,
0xbac6
,
0xbbc6
,
0xbcc6
,
0xbdc6
,
0xbec6
,
0xbfc6
,
0xc0c6
,
0xc1c6
,
0xc2c6
,
0xc3c6
,
0xc4c6
,
0xc5c6
,
0xc6c6
,
0xc7c6
,
0xc8c6
,
0xc9c6
,
0xcac6
,
0xcbc6
,
0xccc6
,
0xcdc6
,
0xcec6
,
0xcfc6
,
0xd0c6
,
0xd1c6
,
0xd2c6
,
0xd3c6
,
0xd4c6
,
0xd5c6
,
0xd6c6
,
0xd7c6
,
0xd8c6
,
0xd9c6
,
0xdac6
,
0xdbc6
,
0xdcc6
,
0xddc6
,
0xdec6
,
0xdfc6
,
0xe0c6
,
0xe1c6
,
0xe2c6
,
0xe3c6
,
0xe4c6
,
0xe5c6
,
0xe6c6
,
0xe7c6
,
0xe8c6
,
0xe9c6
,
0xeac6
,
0xebc6
,
0xecc6
,
0xedc6
,
0xeec6
,
0xefc6
,
0xf0c6
,
0xf1c6
,
0xf2c6
,
0xf3c6
,
0xf4c6
,
0xf5c6
,
0xf6c6
,
0xf7c6
,
0xf8c6
,
0xf9c6
,
0xfac6
,
0xfbc6
,
0xfcc6
,
0xfdc6
,
0xfec6
,
0xa1c7
,
0xa2c7
,
0xa3c7
,
0xa4c7
,
0xa5c7
,
0xa6c7
,
0xa7c7
,
0xa8c7
,
0xa9c7
,
0xaac7
,
0xabc7
,
0xacc7
,
0xadc7
,
0xaec7
,
0xafc7
,
0xb0c7
,
0xb1c7
,
0xb2c7
,
0xb3c7
,
0xb4c7
,
0xb5c7
,
0xb6c7
,
0xb7c7
,
0xb8c7
,
0xb9c7
,
0xbac7
,
0xbbc7
,
0xbcc7
,
0xbdc7
,
0xbec7
,
0xbfc7
,
0xc0c7
,
0xc1c7
,
0xc2c7
,
0xc3c7
,
0xc4c7
,
0xc5c7
,
0xc6c7
,
0xc7c7
,
0xc8c7
,
0xc9c7
,
0xcac7
,
0xcbc7
,
0xccc7
,
0xcdc7
,
0xcec7
,
0xcfc7
,
0xd0c7
,
0xd1c7
,
0xd2c7
,
0xd3c7
,
0xd4c7
,
0xd5c7
,
0xd6c7
,
0xd7c7
,
0xd8c7
,
0xd9c7
,
0xdac7
,
0xdbc7
,
0xdcc7
,
0xddc7
,
0xdec7
,
0xdfc7
,
0xe0c7
,
0xe1c7
,
0xe2c7
,
0xe3c7
,
0xe4c7
,
0xe5c7
,
0xe6c7
,
0xe7c7
,
0xe8c7
,
0xe9c7
,
0xeac7
,
0xebc7
,
0xecc7
,
0xedc7
,
0xeec7
,
0xefc7
,
0xf0c7
,
0xf1c7
,
0xf2c7
,
0xf3c7
,
0xf4c7
,
0xf5c7
,
0xf6c7
,
0xf7c7
,
0xf8c7
,
0xf9c7
,
0xfac7
,
0xfbc7
,
0xfcc7
,
0xfdc7
,
0xfec7
,
0xa1c8
,
0xa2c8
,
0xa3c8
,
0xa4c8
,
0xa5c8
,
0xa6c8
,
0xa7c8
,
0xa8c8
,
0xa9c8
,
0xaac8
,
0xabc8
,
0xacc8
,
0xadc8
,
0xaec8
,
0xafc8
,
0xb0c8
,
0xb1c8
,
0xb2c8
,
0xb3c8
,
0xb4c8
,
0xb5c8
,
0xb6c8
,
0xb7c8
,
0xb8c8
,
0xb9c8
,
0xbac8
,
0xbbc8
,
0xbcc8
,
0xbdc8
,
0xbec8
,
0xbfc8
,
0xc0c8
,
0xc1c8
,
0xc2c8
,
0xc3c8
,
0xc4c8
,
0xc5c8
,
0xc6c8
,
0xc7c8
,
0xc8c8
,
0xc9c8
,
0xcac8
,
0xcbc8
,
0xccc8
,
0xcdc8
,
0xcec8
,
0xcfc8
,
0xd0c8
,
0xd1c8
,
0xd2c8
,
0xd3c8
,
0xd4c8
,
0xd5c8
,
0xd6c8
,
0xd7c8
,
0xd8c8
,
0xd9c8
,
0xdac8
,
0xdbc8
,
0xdcc8
,
0xddc8
,
0xdec8
,
0xdfc8
,
0xe0c8
,
0xe1c8
,
0xe2c8
,
0xe3c8
,
0xe4c8
,
0xe5c8
,
0xe6c8
,
0xe7c8
,
0xe8c8
,
0xe9c8
,
0xeac8
,
0xebc8
,
0xecc8
,
0xedc8
,
0xeec8
,
0xefc8
,
0xf0c8
,
0xf1c8
,
0xf2c8
,
0xf3c8
,
0xf4c8
,
0xf5c8
,
0xf6c8
,
0xf7c8
,
0xf8c8
,
0xf9c8
,
0xfac8
,
0xfbc8
,
0xfcc8
,
0xfdc8
,
0xfec8
,
0xa1c9
,
0xa2c9
,
0xa3c9
,
0xa4c9
,
0xa5c9
,
0xa6c9
,
0xa7c9
,
0xa8c9
,
0xa9c9
,
0xaac9
,
0xabc9
,
0xacc9
,
0xadc9
,
0xaec9
,
0xafc9
,
0xb0c9
,
0xb1c9
,
0xb2c9
,
0xb3c9
,
0xb4c9
,
0xb5c9
,
0xb6c9
,
0xb7c9
,
0xb8c9
,
0xb9c9
,
0xbac9
,
0xbbc9
,
0xbcc9
,
0xbdc9
,
0xbec9
,
0xbfc9
,
0xc0c9
,
0xc1c9
,
0xc2c9
,
0xc3c9
,
0xc4c9
,
0xc5c9
,
0xc6c9
,
0xc7c9
,
0xc8c9
,
0xc9c9
,
0xcac9
,
0xcbc9
,
0xccc9
,
0xcdc9
,
0xcec9
,
0xcfc9
,
0xd0c9
,
0xd1c9
,
0xd2c9
,
0xd3c9
,
0xd4c9
,
0xd5c9
,
0xd6c9
,
0xd7c9
,
0xd8c9
,
0xd9c9
,
0xdac9
,
0xdbc9
,
0xdcc9
,
0xddc9
,
0xdec9
,
0xdfc9
,
0xe0c9
,
0xe1c9
,
0xe2c9
,
0xe3c9
,
0xe4c9
,
0xe5c9
,
0xe6c9
,
0xe7c9
,
0xe8c9
,
0xe9c9
,
0xeac9
,
0xebc9
,
0xecc9
,
0xedc9
,
0xeec9
,
0xefc9
,
0xf0c9
,
0xf1c9
,
0xf2c9
,
0xf3c9
,
0xf4c9
,
0xf5c9
,
0xf6c9
,
0xf7c9
,
0xf8c9
,
0xf9c9
,
0xfac9
,
0xfbc9
,
0xfcc9
,
0xfdc9
,
0xfec9
,
0xa1ca
,
0xa2ca
,
0xa3ca
,
0xa4ca
,
0xa5ca
,
0xa6ca
,
0xa7ca
,
0xa8ca
,
0xa9ca
,
0xaaca
,
0xabca
,
0xacca
,
0xadca
,
0xaeca
,
0xafca
,
0xb0ca
,
0xb1ca
,
0xb2ca
,
0xb3ca
,
0xb4ca
,
0xb5ca
,
0xb6ca
,
0xb7ca
,
0xb8ca
,
0xb9ca
,
0xbaca
,
0xbbca
,
0xbcca
,
0xbdca
,
0xbeca
,
0xbfca
,
0xc0ca
,
0xc1ca
,
0xc2ca
,
0xc3ca
,
0xc4ca
,
0xc5ca
,
0xc6ca
,
0xc7ca
,
0xc8ca
,
0xc9ca
,
0xcaca
,
0xcbca
,
0xccca
,
0xcdca
,
0xceca
,
0xcfca
,
0xd0ca
,
0xd1ca
,
0xd2ca
,
0xd3ca
,
0xd4ca
,
0xd5ca
,
0xd6ca
,
0xd7ca
,
0xd8ca
,
0xd9ca
,
0xdaca
,
0xdbca
,
0xdcca
,
0xddca
,
0xdeca
,
0xdfca
,
0xe0ca
,
0xe1ca
,
0xe2ca
,
0xe3ca
,
0xe4ca
,
0xe5ca
,
0xe6ca
,
0xe7ca
,
0xe8ca
,
0xe9ca
,
0xeaca
,
0xebca
,
0xecca
,
0xedca
,
0xeeca
,
0xefca
,
0xf0ca
,
0xf1ca
,
0xf2ca
,
0xf3ca
,
0xf4ca
,
0xf5ca
,
0xf6ca
,
0xf7ca
,
0xf8ca
,
0xf9ca
,
0xfaca
,
0xfbca
,
0xfcca
,
0xfdca
,
0xfeca
,
0xa1cb
,
0xa2cb
,
0xa3cb
,
0xa4cb
,
0xa5cb
,
0xa6cb
,
0xa7cb
,
0xa8cb
,
0xa9cb
,
0xaacb
,
0xabcb
,
0xaccb
,
0xadcb
,
0xaecb
,
0xafcb
,
0xb0cb
,
0xb1cb
,
0xb2cb
,
0xb3cb
,
0xb4cb
,
0xb5cb
,
0xb6cb
,
0xb7cb
,
0xb8cb
,
0xb9cb
,
0xbacb
,
0xbbcb
,
0xbccb
,
0xbdcb
,
0xbecb
,
0xbfcb
,
0xc0cb
,
0xc1cb
,
0xc2cb
,
0xc3cb
,
0xc4cb
,
0xc5cb
,
0xc6cb
,
0xc7cb
,
0xc8cb
,
0xc9cb
,
0xcacb
,
0xcbcb
,
0xcccb
,
0xcdcb
,
0xcecb
,
0xcfcb
,
0xd0cb
,
0xd1cb
,
0xd2cb
,
0xd3cb
,
0xd4cb
,
0xd5cb
,
0xd6cb
,
0xd7cb
,
0xd8cb
,
0xd9cb
,
0xdacb
,
0xdbcb
,
0xdccb
,
0xddcb
,
0xdecb
,
0xdfcb
,
0xe0cb
,
0xe1cb
,
0xe2cb
,
0xe3cb
,
0xe4cb
,
0xe5cb
,
0xe6cb
,
0xe7cb
,
0xe8cb
,
0xe9cb
,
0xeacb
,
0xebcb
,
0xeccb
,
0xedcb
,
0xeecb
,
0xefcb
,
0xf0cb
,
0xf1cb
,
0xf2cb
,
0xf3cb
,
0xf4cb
,
0xf5cb
,
0xf6cb
,
0xf7cb
,
0xf8cb
,
0xf9cb
,
0xfacb
,
0xfbcb
,
0xfccb
,
0xfdcb
,
0xfecb
,
0xa1cc
,
0xa2cc
,
0xa3cc
,
0xa4cc
,
0xa5cc
,
0xa6cc
,
0xa7cc
,
0xa8cc
,
0xa9cc
,
0xaacc
,
0xabcc
,
0xaccc
,
0xadcc
,
0xaecc
,
0xafcc
,
0xb0cc
,
0xb1cc
,
0xb2cc
,
0xb3cc
,
0xb4cc
,
0xb5cc
,
0xb6cc
,
0xb7cc
,
0xb8cc
,
0xb9cc
,
0xbacc
,
0xbbcc
,
0xbccc
,
0xbdcc
,
0xbecc
,
0xbfcc
,
0xc0cc
,
0xc1cc
,
0xc2cc
,
0xc3cc
,
0xc4cc
,
0xc5cc
,
0xc6cc
,
0xc7cc
,
0xc8cc
,
0xc9cc
,
0xcacc
,
0xcbcc
,
0xcccc
,
0xcdcc
,
0xcecc
,
0xcfcc
,
0xd0cc
,
0xd1cc
,
0xd2cc
,
0xd3cc
,
0xd4cc
,
0xd5cc
,
0xd6cc
,
0xd7cc
,
0xd8cc
,
0xd9cc
,
0xdacc
,
0xdbcc
,
0xdccc
,
0xddcc
,
0xdecc
,
0xdfcc
,
0xe0cc
,
0xe1cc
,
0xe2cc
,
0xe3cc
,
0xe4cc
,
0xe5cc
,
0xe6cc
,
0xe7cc
,
0xe8cc
,
0xe9cc
,
0xeacc
,
0xebcc
,
0xeccc
,
0xedcc
,
0xeecc
,
0xefcc
,
0xf0cc
,
0xf1cc
,
0xf2cc
,
0xf3cc
,
0xf4cc
,
0xf5cc
,
0xf6cc
,
0xf7cc
,
0xf8cc
,
0xf9cc
,
0xfacc
,
0xfbcc
,
0xfccc
,
0xfdcc
,
0xfecc
,
0xa1cd
,
0xa2cd
,
0xa3cd
,
0xa4cd
,
0xa5cd
,
0xa6cd
,
0xa7cd
,
0xa8cd
,
0xa9cd
,
0xaacd
,
0xabcd
,
0xaccd
,
0xadcd
,
0xaecd
,
0xafcd
,
0xb0cd
,
0xb1cd
,
0xb2cd
,
0xb3cd
,
0xb4cd
,
0xb5cd
,
0xb6cd
,
0xb7cd
,
0xb8cd
,
0xb9cd
,
0xbacd
,
0xbbcd
,
0xbccd
,
0xbdcd
,
0xbecd
,
0xbfcd
,
0xc0cd
,
0xc1cd
,
0xc2cd
,
0xc3cd
,
0xc4cd
,
0xc5cd
,
0xc6cd
,
0xc7cd
,
0xc8cd
,
0xc9cd
,
0xcacd
,
0xcbcd
,
0xcccd
,
0xcdcd
,
0xcecd
,
0xcfcd
,
0xd0cd
,
0xd1cd
,
0xd2cd
,
0xd3cd
,
0xd4cd
,
0xd5cd
,
0xd6cd
,
0xd7cd
,
0xd8cd
,
0xd9cd
,
0xdacd
,
0xdbcd
,
0xdccd
,
0xddcd
,
0xdecd
,
0xdfcd
,
0xe0cd
,
0xe1cd
,
0xe2cd
,
0xe3cd
,
0xe4cd
,
0xe5cd
,
0xe6cd
,
0xe7cd
,
0xe8cd
,
0xe9cd
,
0xeacd
,
0xebcd
,
0xeccd
,
0xedcd
,
0xeecd
,
0xefcd
,
0xf0cd
,
0xf1cd
,
0xf2cd
,
0xf3cd
,
0xf4cd
,
0xf5cd
,
0xf6cd
,
0xf7cd
,
0xf8cd
,
0xf9cd
,
0xfacd
,
0xfbcd
,
0xfccd
,
0xfdcd
,
0xfecd
,
0xa1ce
,
0xa2ce
,
0xa3ce
,
0xa4ce
,
0xa5ce
,
0xa6ce
,
0xa7ce
,
0xa8ce
,
0xa9ce
,
0xaace
,
0xabce
,
0xacce
,
0xadce
,
0xaece
,
0xafce
,
0xb0ce
,
0xb1ce
,
0xb2ce
,
0xb3ce
,
0xb4ce
,
0xb5ce
,
0xb6ce
,
0xb7ce
,
0xb8ce
,
0xb9ce
,
0xbace
,
0xbbce
,
0xbcce
,
0xbdce
,
0xbece
,
0xbfce
,
0xc0ce
,
0xc1ce
,
0xc2ce
,
0xc3ce
,
0xc4ce
,
0xc5ce
,
0xc6ce
,
0xc7ce
,
0xc8ce
,
0xc9ce
,
0xcace
,
0xcbce
,
0xccce
,
0xcdce
,
0xcece
,
0xcfce
,
0xd0ce
,
0xd1ce
,
0xd2ce
,
0xd3ce
,
0xd4ce
,
0xd5ce
,
0xd6ce
,
0xd7ce
,
0xd8ce
,
0xd9ce
,
0xdace
,
0xdbce
,
0xdcce
,
0xddce
,
0xdece
,
0xdfce
,
0xe0ce
,
0xe1ce
,
0xe2ce
,
0xe3ce
,
0xe4ce
,
0xe5ce
,
0xe6ce
,
0xe7ce
,
0xe8ce
,
0xe9ce
,
0xeace
,
0xebce
,
0xecce
,
0xedce
,
0xeece
,
0xefce
,
0xf0ce
,
0xf1ce
,
0xf2ce
,
0xf3ce
,
0xf4ce
,
0xf5ce
,
0xf6ce
,
0xf7ce
,
0xf8ce
,
0xf9ce
,
0xface
,
0xfbce
,
0xfcce
,
0xfdce
,
0xfece
,
0xa1cf
,
0xa2cf
,
0xa3cf
,
0xa4cf
,
0xa5cf
,
0xa6cf
,
0xa7cf
,
0xa8cf
,
0xa9cf
,
0xaacf
,
0xabcf
,
0xaccf
,
0xadcf
,
0xaecf
,
0xafcf
,
0xb0cf
,
0xb1cf
,
0xb2cf
,
0xb3cf
,
0xb4cf
,
0xb5cf
,
0xb6cf
,
0xb7cf
,
0xb8cf
,
0xb9cf
,
0xbacf
,
0xbbcf
,
0xbccf
,
0xbdcf
,
0xbecf
,
0xbfcf
,
0xc0cf
,
0xc1cf
,
0xc2cf
,
0xc3cf
,
0xc4cf
,
0xc5cf
,
0xc6cf
,
0xc7cf
,
0xc8cf
,
0xc9cf
,
0xcacf
,
0xcbcf
,
0xcccf
,
0xcdcf
,
0xcecf
,
0xcfcf
,
0xd0cf
,
0xd1cf
,
0xd2cf
,
0xd3cf
,
0xd4cf
,
0xd5cf
,
0xd6cf
,
0xd7cf
,
0xd8cf
,
0xd9cf
,
0xdacf
,
0xdbcf
,
0xdccf
,
0xddcf
,
0xdecf
,
0xdfcf
,
0xe0cf
,
0xe1cf
,
0xe2cf
,
0xe3cf
,
0xe4cf
,
0xe5cf
,
0xe6cf
,
0xe7cf
,
0xe8cf
,
0xe9cf
,
0xeacf
,
0xebcf
,
0xeccf
,
0xedcf
,
0xeecf
,
0xefcf
,
0xf0cf
,
0xf1cf
,
0xf2cf
,
0xf3cf
,
0xf4cf
,
0xf5cf
,
0xf6cf
,
0xf7cf
,
0xf8cf
,
0xf9cf
,
0xfacf
,
0xfbcf
,
0xfccf
,
0xfdcf
,
0xfecf
,
0xa1d0
,
0xa2d0
,
0xa3d0
,
0xa4d0
,
0xa5d0
,
0xa6d0
,
0xa7d0
,
0xa8d0
,
0xa9d0
,
0xaad0
,
0xabd0
,
0xacd0
,
0xadd0
,
0xaed0
,
0xafd0
,
0xb0d0
,
0xb1d0
,
0xb2d0
,
0xb3d0
,
0xb4d0
,
0xb5d0
,
0xb6d0
,
0xb7d0
,
0xb8d0
,
0xb9d0
,
0xbad0
,
0xbbd0
,
0xbcd0
,
0xbdd0
,
0xbed0
,
0xbfd0
,
0xc0d0
,
0xc1d0
,
0xc2d0
,
0xc3d0
,
0xc4d0
,
0xc5d0
,
0xc6d0
,
0xc7d0
,
0xc8d0
,
0xc9d0
,
0xcad0
,
0xcbd0
,
0xccd0
,
0xcdd0
,
0xced0
,
0xcfd0
,
0xd0d0
,
0xd1d0
,
0xd2d0
,
0xd3d0
,
0xd4d0
,
0xd5d0
,
0xd6d0
,
0xd7d0
,
0xd8d0
,
0xd9d0
,
0xdad0
,
0xdbd0
,
0xdcd0
,
0xddd0
,
0xded0
,
0xdfd0
,
0xe0d0
,
0xe1d0
,
0xe2d0
,
0xe3d0
,
0xe4d0
,
0xe5d0
,
0xe6d0
,
0xe7d0
,
0xe8d0
,
0xe9d0
,
0xead0
,
0xebd0
,
0xecd0
,
0xedd0
,
0xeed0
,
0xefd0
,
0xf0d0
,
0xf1d0
,
0xf2d0
,
0xf3d0
,
0xf4d0
,
0xf5d0
,
0xf6d0
,
0xf7d0
,
0xf8d0
,
0xf9d0
,
0xfad0
,
0xfbd0
,
0xfcd0
,
0xfdd0
,
0xfed0
,
0xa1d1
,
0xa2d1
,
0xa3d1
,
0xa4d1
,
0xa5d1
,
0xa6d1
,
0xa7d1
,
0xa8d1
,
0xa9d1
,
0xaad1
,
0xabd1
,
0xacd1
,
0xadd1
,
0xaed1
,
0xafd1
,
0xb0d1
,
0xb1d1
,
0xb2d1
,
0xb3d1
,
0xb4d1
,
0xb5d1
,
0xb6d1
,
0xb7d1
,
0xb8d1
,
0xb9d1
,
0xbad1
,
0xbbd1
,
0xbcd1
,
0xbdd1
,
0xbed1
,
0xbfd1
,
0xc0d1
,
0xc1d1
,
0xc2d1
,
0xc3d1
,
0xc4d1
,
0xc5d1
,
0xc6d1
,
0xc7d1
,
0xc8d1
,
0xc9d1
,
0xcad1
,
0xcbd1
,
0xccd1
,
0xcdd1
,
0xced1
,
0xcfd1
,
0xd0d1
,
0xd1d1
,
0xd2d1
,
0xd3d1
,
0xd4d1
,
0xd5d1
,
0xd6d1
,
0xd7d1
,
0xd8d1
,
0xd9d1
,
0xdad1
,
0xdbd1
,
0xdcd1
,
0xddd1
,
0xded1
,
0xdfd1
,
0xe0d1
,
0xe1d1
,
0xe2d1
,
0xe3d1
,
0xe4d1
,
0xe5d1
,
0xe6d1
,
0xe7d1
,
0xe8d1
,
0xe9d1
,
0xead1
,
0xebd1
,
0xecd1
,
0xedd1
,
0xeed1
,
0xefd1
,
0xf0d1
,
0xf1d1
,
0xf2d1
,
0xf3d1
,
0xf4d1
,
0xf5d1
,
0xf6d1
,
0xf7d1
,
0xf8d1
,
0xf9d1
,
0xfad1
,
0xfbd1
,
0xfcd1
,
0xfdd1
,
0xfed1
,
0xa1d2
,
0xa2d2
,
0xa3d2
,
0xa4d2
,
0xa5d2
,
0xa6d2
,
0xa7d2
,
0xa8d2
,
0xa9d2
,
0xaad2
,
0xabd2
,
0xacd2
,
0xadd2
,
0xaed2
,
0xafd2
,
0xb0d2
,
0xb1d2
,
0xb2d2
,
0xb3d2
,
0xb4d2
,
0xb5d2
,
0xb6d2
,
0xb7d2
,
0xb8d2
,
0xb9d2
,
0xbad2
,
0xbbd2
,
0xbcd2
,
0xbdd2
,
0xbed2
,
0xbfd2
,
0xc0d2
,
0xc1d2
,
0xc2d2
,
0xc3d2
,
0xc4d2
,
0xc5d2
,
0xc6d2
,
0xc7d2
,
0xc8d2
,
0xc9d2
,
0xcad2
,
0xcbd2
,
0xccd2
,
0xcdd2
,
0xced2
,
0xcfd2
,
0xd0d2
,
0xd1d2
,
0xd2d2
,
0xd3d2
,
0xd4d2
,
0xd5d2
,
0xd6d2
,
0xd7d2
,
0xd8d2
,
0xd9d2
,
0xdad2
,
0xdbd2
,
0xdcd2
,
0xddd2
,
0xded2
,
0xdfd2
,
0xe0d2
,
0xe1d2
,
0xe2d2
,
0xe3d2
,
0xe4d2
,
0xe5d2
,
0xe6d2
,
0xe7d2
,
0xe8d2
,
0xe9d2
,
0xead2
,
0xebd2
,
0xecd2
,
0xedd2
,
0xeed2
,
0xefd2
,
0xf0d2
,
0xf1d2
,
0xf2d2
,
0xf3d2
,
0xf4d2
,
0xf5d2
,
0xf6d2
,
0xf7d2
,
0xf8d2
,
0xf9d2
,
0xfad2
,
0xfbd2
,
0xfcd2
,
0xfdd2
,
0xfed2
,
0xa1d3
,
0xa2d3
,
0xa3d3
,
0xa4d3
,
0xa5d3
,
0xa6d3
,
0xa7d3
,
0xa8d3
,
0xa9d3
,
0xaad3
,
0xabd3
,
0xacd3
,
0xadd3
,
0xaed3
,
0xafd3
,
0xb0d3
,
0xb1d3
,
0xb2d3
,
0xb3d3
,
0xb4d3
,
0xb5d3
,
0xb6d3
,
0xb7d3
,
0xb8d3
,
0xb9d3
,
0xbad3
,
0xbbd3
,
0xbcd3
,
0xbdd3
,
0xbed3
,
0xbfd3
,
0xc0d3
,
0xc1d3
,
0xc2d3
,
0xc3d3
,
0xc4d3
,
0xc5d3
,
0xc6d3
,
0xc7d3
,
0xc8d3
,
0xc9d3
,
0xcad3
,
0xcbd3
,
0xccd3
,
0xcdd3
,
0xced3
,
0xcfd3
,
0xd0d3
,
0xd1d3
,
0xd2d3
,
0xd3d3
,
0xd4d3
,
0xd5d3
,
0xd6d3
,
0xd7d3
,
0xd8d3
,
0xd9d3
,
0xdad3
,
0xdbd3
,
0xdcd3
,
0xddd3
,
0xded3
,
0xdfd3
,
0xe0d3
,
0xe1d3
,
0xe2d3
,
0xe3d3
,
0xe4d3
,
0xe5d3
,
0xe6d3
,
0xe7d3
,
0xe8d3
,
0xe9d3
,
0xead3
,
0xebd3
,
0xecd3
,
0xedd3
,
0xeed3
,
0xefd3
,
0xf0d3
,
0xf1d3
,
0xf2d3
,
0xf3d3
,
0xf4d3
,
0xf5d3
,
0xf6d3
,
0xf7d3
,
0xf8d3
,
0xf9d3
,
0xfad3
,
0xfbd3
,
0xfcd3
,
0xfdd3
,
0xfed3
,
0xa1d4
,
0xa2d4
,
0xa3d4
,
0xa4d4
,
0xa5d4
,
0xa6d4
,
0xa7d4
,
0xa8d4
,
0xa9d4
,
0xaad4
,
0xabd4
,
0xacd4
,
0xadd4
,
0xaed4
,
0xafd4
,
0xb0d4
,
0xb1d4
,
0xb2d4
,
0xb3d4
,
0xb4d4
,
0xb5d4
,
0xb6d4
,
0xb7d4
,
0xb8d4
,
0xb9d4
,
0xbad4
,
0xbbd4
,
0xbcd4
,
0xbdd4
,
0xbed4
,
0xbfd4
,
0xc0d4
,
0xc1d4
,
0xc2d4
,
0xc3d4
,
0xc4d4
,
0xc5d4
,
0xc6d4
,
0xc7d4
,
0xc8d4
,
0xc9d4
,
0xcad4
,
0xcbd4
,
0xccd4
,
0xcdd4
,
0xced4
,
0xcfd4
,
0xd0d4
,
0xd1d4
,
0xd2d4
,
0xd3d4
,
0xd4d4
,
0xd5d4
,
0xd6d4
,
0xd7d4
,
0xd8d4
,
0xd9d4
,
0xdad4
,
0xdbd4
,
0xdcd4
,
0xddd4
,
0xded4
,
0xdfd4
,
0xe0d4
,
0xe1d4
,
0xe2d4
,
0xe3d4
,
0xe4d4
,
0xe5d4
,
0xe6d4
,
0xe7d4
,
0xe8d4
,
0xe9d4
,
0xead4
,
0xebd4
,
0xecd4
,
0xedd4
,
0xeed4
,
0xefd4
,
0xf0d4
,
0xf1d4
,
0xf2d4
,
0xf3d4
,
0xf4d4
,
0xf5d4
,
0xf6d4
,
0xf7d4
,
0xf8d4
,
0xf9d4
,
0xfad4
,
0xfbd4
,
0xfcd4
,
0xfdd4
,
0xfed4
,
0xa1d5
,
0xa2d5
,
0xa3d5
,
0xa4d5
,
0xa5d5
,
0xa6d5
,
0xa7d5
,
0xa8d5
,
0xa9d5
,
0xaad5
,
0xabd5
,
0xacd5
,
0xadd5
,
0xaed5
,
0xafd5
,
0xb0d5
,
0xb1d5
,
0xb2d5
,
0xb3d5
,
0xb4d5
,
0xb5d5
,
0xb6d5
,
0xb7d5
,
0xb8d5
,
0xb9d5
,
0xbad5
,
0xbbd5
,
0xbcd5
,
0xbdd5
,
0xbed5
,
0xbfd5
,
0xc0d5
,
0xc1d5
,
0xc2d5
,
0xc3d5
,
0xc4d5
,
0xc5d5
,
0xc6d5
,
0xc7d5
,
0xc8d5
,
0xc9d5
,
0xcad5
,
0xcbd5
,
0xccd5
,
0xcdd5
,
0xced5
,
0xcfd5
,
0xd0d5
,
0xd1d5
,
0xd2d5
,
0xd3d5
,
0xd4d5
,
0xd5d5
,
0xd6d5
,
0xd7d5
,
0xd8d5
,
0xd9d5
,
0xdad5
,
0xdbd5
,
0xdcd5
,
0xddd5
,
0xded5
,
0xdfd5
,
0xe0d5
,
0xe1d5
,
0xe2d5
,
0xe3d5
,
0xe4d5
,
0xe5d5
,
0xe6d5
,
0xe7d5
,
0xe8d5
,
0xe9d5
,
0xead5
,
0xebd5
,
0xecd5
,
0xedd5
,
0xeed5
,
0xefd5
,
0xf0d5
,
0xf1d5
,
0xf2d5
,
0xf3d5
,
0xf4d5
,
0xf5d5
,
0xf6d5
,
0xf7d5
,
0xf8d5
,
0xf9d5
,
0xfad5
,
0xfbd5
,
0xfcd5
,
0xfdd5
,
0xfed5
,
0xa1d6
,
0xa2d6
,
0xa3d6
,
0xa4d6
,
0xa5d6
,
0xa6d6
,
0xa7d6
,
0xa8d6
,
0xa9d6
,
0xaad6
,
0xabd6
,
0xacd6
,
0xadd6
,
0xaed6
,
0xafd6
,
0xb0d6
,
0xb1d6
,
0xb2d6
,
0xb3d6
,
0xb4d6
,
0xb5d6
,
0xb6d6
,
0xb7d6
,
0xb8d6
,
0xb9d6
,
0xbad6
,
0xbbd6
,
0xbcd6
,
0xbdd6
,
0xbed6
,
0xbfd6
,
0xc0d6
,
0xc1d6
,
0xc2d6
,
0xc3d6
,
0xc4d6
,
0xc5d6
,
0xc6d6
,
0xc7d6
,
0xc8d6
,
0xc9d6
,
0xcad6
,
0xcbd6
,
0xccd6
,
0xcdd6
,
0xced6
,
0xcfd6
,
0xd0d6
,
0xd1d6
,
0xd2d6
,
0xd3d6
,
0xd4d6
,
0xd5d6
,
0xd6d6
,
0xd7d6
,
0xd8d6
,
0xd9d6
,
0xdad6
,
0xdbd6
,
0xdcd6
,
0xddd6
,
0xded6
,
0xdfd6
,
0xe0d6
,
0xe1d6
,
0xe2d6
,
0xe3d6
,
0xe4d6
,
0xe5d6
,
0xe6d6
,
0xe7d6
,
0xe8d6
,
0xe9d6
,
0xead6
,
0xebd6
,
0xecd6
,
0xedd6
,
0xeed6
,
0xefd6
,
0xf0d6
,
0xf1d6
,
0xf2d6
,
0xf3d6
,
0xf4d6
,
0xf5d6
,
0xf6d6
,
0xf7d6
,
0xf8d6
,
0xf9d6
,
0xfad6
,
0xfbd6
,
0xfcd6
,
0xfdd6
,
0xfed6
,
0xa1d7
,
0xa2d7
,
0xa3d7
,
0xa4d7
,
0xa5d7
,
0xa6d7
,
0xa7d7
,
0xa8d7
,
0xa9d7
,
0xaad7
,
0xabd7
,
0xacd7
,
0xadd7
,
0xaed7
,
0xafd7
,
0xb0d7
,
0xb1d7
,
0xb2d7
,
0xb3d7
,
0xb4d7
,
0xb5d7
,
0xb6d7
,
0xb7d7
,
0xb8d7
,
0xb9d7
,
0xbad7
,
0xbbd7
,
0xbcd7
,
0xbdd7
,
0xbed7
,
0xbfd7
,
0xc0d7
,
0xc1d7
,
0xc2d7
,
0xc3d7
,
0xc4d7
,
0xc5d7
,
0xc6d7
,
0xc7d7
,
0xc8d7
,
0xc9d7
,
0xcad7
,
0xcbd7
,
0xccd7
,
0xcdd7
,
0xced7
,
0xcfd7
,
0xd0d7
,
0xd1d7
,
0xd2d7
,
0xd3d7
,
0xd4d7
,
0xd5d7
,
0xd6d7
,
0xd7d7
,
0xd8d7
,
0xd9d7
,
0xdad7
,
0xdbd7
,
0xdcd7
,
0xddd7
,
0xded7
,
0xdfd7
,
0xe0d7
,
0xe1d7
,
0xe2d7
,
0xe3d7
,
0xe4d7
,
0xe5d7
,
0xe6d7
,
0xe7d7
,
0xe8d7
,
0xe9d7
,
0xead7
,
0xebd7
,
0xecd7
,
0xedd7
,
0xeed7
,
0xefd7
,
0xf0d7
,
0xf1d7
,
0xf2d7
,
0xf3d7
,
0xf4d7
,
0xf5d7
,
0xf6d7
,
0xf7d7
,
0xf8d7
,
0xf9d7
]
def
readPOTfile
(
name
,
clist
):
filename
=
'POT/'
+
name
+
'-c.pot'
a
=
array
.
array
(
'H'
)
# unsigned shorts
a
.
fromfile
(
open
(
filename
,
'rb'
),
os
.
path
.
getsize
(
filename
)
//
a
.
itemsize
)
a
.
reverse
()
characters
=
[]
labels
=
[]
while
len
(
a
)
>
0
:
sample_size
=
a
.
pop
()
label
=
a
.
pop
()
+
a
.
pop
()
*
65536
label
=
(
label
%
256
)
*
256
+
label
//
256
if
label
in
clist
:
label
=
clist
.
index
(
label
)
labels
.
append
(
label
)
numStrokes
=
a
.
pop
()
strokes
=
[]
for
i
in
range
(
numStrokes
):
stroke
=
[]
point
=
[
a
.
pop
(),
a
.
pop
()]
while
point
!=
[
65535
,
0
]:
stroke
.
append
(
point
)
point
=
[
a
.
pop
(),
a
.
pop
()]
strokes
.
append
(
stroke
)
[
a
.
pop
(),
a
.
pop
()]
# End of character
characters
.
append
(
strokes
)
return
[
characters
,
labels
]
for
dataset
,
f1
,
f2
in
[(
'train'
,
1001
,
1240
),
(
'test'
,
1241
,
1300
)]:
c
=
[]
l
=
[]
for
f
in
range
(
f1
,
f2
+
1
):
[
characters
,
labels
]
=
readPOTfile
(
str
(
f
),
c3755
)
c
.
extend
(
characters
)
l
.
extend
(
labels
)
print
(
len
(
c
),
len
(
l
))
for
i
,
(
x
,
lbl
)
in
enumerate
(
zip
(
c
,
l
)):
with
open
(
't7/'
+
dataset
+
'/'
+
str
(
i
+
1
)
+
'.lua'
,
'w'
)
as
output
:
print
(
'return {input={'
,
file
=
output
)
for
y
in
x
:
print
(
' torch.LongTensor({'
,
file
=
output
)
for
z
in
y
:
print
(
' {'
,
z
[
0
],
','
,
z
[
1
],
'},'
,
file
=
output
)
print
(
' }),'
,
file
=
output
)
print
(
'},target='
+
str
(
lbl
+
1
)
+
'}'
,
file
=
output
)
examples/Chinese_handwriting/readPotFiles2.py
0 → 100644
View file @
f9552033
# Copyright 2016-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
import
os
import
sys
import
array
import
pickle
import
torch
c3755
=
[
0xa1b0
,
0xa2b0
,
0xa3b0
,
0xa4b0
,
0xa5b0
,
0xa6b0
,
0xa7b0
,
0xa8b0
,
0xa9b0
,
0xaab0
,
0xabb0
,
0xacb0
,
0xadb0
,
0xaeb0
,
0xafb0
,
0xb0b0
,
0xb1b0
,
0xb2b0
,
0xb3b0
,
0xb4b0
,
0xb5b0
,
0xb6b0
,
0xb7b0
,
0xb8b0
,
0xb9b0
,
0xbab0
,
0xbbb0
,
0xbcb0
,
0xbdb0
,
0xbeb0
,
0xbfb0
,
0xc0b0
,
0xc1b0
,
0xc2b0
,
0xc3b0
,
0xc4b0
,
0xc5b0
,
0xc6b0
,
0xc7b0
,
0xc8b0
,
0xc9b0
,
0xcab0
,
0xcbb0
,
0xccb0
,
0xcdb0
,
0xceb0
,
0xcfb0
,
0xd0b0
,
0xd1b0
,
0xd2b0
,
0xd3b0
,
0xd4b0
,
0xd5b0
,
0xd6b0
,
0xd7b0
,
0xd8b0
,
0xd9b0
,
0xdab0
,
0xdbb0
,
0xdcb0
,
0xddb0
,
0xdeb0
,
0xdfb0
,
0xe0b0
,
0xe1b0
,
0xe2b0
,
0xe3b0
,
0xe4b0
,
0xe5b0
,
0xe6b0
,
0xe7b0
,
0xe8b0
,
0xe9b0
,
0xeab0
,
0xebb0
,
0xecb0
,
0xedb0
,
0xeeb0
,
0xefb0
,
0xf0b0
,
0xf1b0
,
0xf2b0
,
0xf3b0
,
0xf4b0
,
0xf5b0
,
0xf6b0
,
0xf7b0
,
0xf8b0
,
0xf9b0
,
0xfab0
,
0xfbb0
,
0xfcb0
,
0xfdb0
,
0xfeb0
,
0xa1b1
,
0xa2b1
,
0xa3b1
,
0xa4b1
,
0xa5b1
,
0xa6b1
,
0xa7b1
,
0xa8b1
,
0xa9b1
,
0xaab1
,
0xabb1
,
0xacb1
,
0xadb1
,
0xaeb1
,
0xafb1
,
0xb0b1
,
0xb1b1
,
0xb2b1
,
0xb3b1
,
0xb4b1
,
0xb5b1
,
0xb6b1
,
0xb7b1
,
0xb8b1
,
0xb9b1
,
0xbab1
,
0xbbb1
,
0xbcb1
,
0xbdb1
,
0xbeb1
,
0xbfb1
,
0xc0b1
,
0xc1b1
,
0xc2b1
,
0xc3b1
,
0xc4b1
,
0xc5b1
,
0xc6b1
,
0xc7b1
,
0xc8b1
,
0xc9b1
,
0xcab1
,
0xcbb1
,
0xccb1
,
0xcdb1
,
0xceb1
,
0xcfb1
,
0xd0b1
,
0xd1b1
,
0xd2b1
,
0xd3b1
,
0xd4b1
,
0xd5b1
,
0xd6b1
,
0xd7b1
,
0xd8b1
,
0xd9b1
,
0xdab1
,
0xdbb1
,
0xdcb1
,
0xddb1
,
0xdeb1
,
0xdfb1
,
0xe0b1
,
0xe1b1
,
0xe2b1
,
0xe3b1
,
0xe4b1
,
0xe5b1
,
0xe6b1
,
0xe7b1
,
0xe8b1
,
0xe9b1
,
0xeab1
,
0xebb1
,
0xecb1
,
0xedb1
,
0xeeb1
,
0xefb1
,
0xf0b1
,
0xf1b1
,
0xf2b1
,
0xf3b1
,
0xf4b1
,
0xf5b1
,
0xf6b1
,
0xf7b1
,
0xf8b1
,
0xf9b1
,
0xfab1
,
0xfbb1
,
0xfcb1
,
0xfdb1
,
0xfeb1
,
0xa1b2
,
0xa2b2
,
0xa3b2
,
0xa4b2
,
0xa5b2
,
0xa6b2
,
0xa7b2
,
0xa8b2
,
0xa9b2
,
0xaab2
,
0xabb2
,
0xacb2
,
0xadb2
,
0xaeb2
,
0xafb2
,
0xb0b2
,
0xb1b2
,
0xb2b2
,
0xb3b2
,
0xb4b2
,
0xb5b2
,
0xb6b2
,
0xb7b2
,
0xb8b2
,
0xb9b2
,
0xbab2
,
0xbbb2
,
0xbcb2
,
0xbdb2
,
0xbeb2
,
0xbfb2
,
0xc0b2
,
0xc1b2
,
0xc2b2
,
0xc3b2
,
0xc4b2
,
0xc5b2
,
0xc6b2
,
0xc7b2
,
0xc8b2
,
0xc9b2
,
0xcab2
,
0xcbb2
,
0xccb2
,
0xcdb2
,
0xceb2
,
0xcfb2
,
0xd0b2
,
0xd1b2
,
0xd2b2
,
0xd3b2
,
0xd4b2
,
0xd5b2
,
0xd6b2
,
0xd7b2
,
0xd8b2
,
0xd9b2
,
0xdab2
,
0xdbb2
,
0xdcb2
,
0xddb2
,
0xdeb2
,
0xdfb2
,
0xe0b2
,
0xe1b2
,
0xe2b2
,
0xe3b2
,
0xe4b2
,
0xe5b2
,
0xe6b2
,
0xe7b2
,
0xe8b2
,
0xe9b2
,
0xeab2
,
0xebb2
,
0xecb2
,
0xedb2
,
0xeeb2
,
0xefb2
,
0xf0b2
,
0xf1b2
,
0xf2b2
,
0xf3b2
,
0xf4b2
,
0xf5b2
,
0xf6b2
,
0xf7b2
,
0xf8b2
,
0xf9b2
,
0xfab2
,
0xfbb2
,
0xfcb2
,
0xfdb2
,
0xfeb2
,
0xa1b3
,
0xa2b3
,
0xa3b3
,
0xa4b3
,
0xa5b3
,
0xa6b3
,
0xa7b3
,
0xa8b3
,
0xa9b3
,
0xaab3
,
0xabb3
,
0xacb3
,
0xadb3
,
0xaeb3
,
0xafb3
,
0xb0b3
,
0xb1b3
,
0xb2b3
,
0xb3b3
,
0xb4b3
,
0xb5b3
,
0xb6b3
,
0xb7b3
,
0xb8b3
,
0xb9b3
,
0xbab3
,
0xbbb3
,
0xbcb3
,
0xbdb3
,
0xbeb3
,
0xbfb3
,
0xc0b3
,
0xc1b3
,
0xc2b3
,
0xc3b3
,
0xc4b3
,
0xc5b3
,
0xc6b3
,
0xc7b3
,
0xc8b3
,
0xc9b3
,
0xcab3
,
0xcbb3
,
0xccb3
,
0xcdb3
,
0xceb3
,
0xcfb3
,
0xd0b3
,
0xd1b3
,
0xd2b3
,
0xd3b3
,
0xd4b3
,
0xd5b3
,
0xd6b3
,
0xd7b3
,
0xd8b3
,
0xd9b3
,
0xdab3
,
0xdbb3
,
0xdcb3
,
0xddb3
,
0xdeb3
,
0xdfb3
,
0xe0b3
,
0xe1b3
,
0xe2b3
,
0xe3b3
,
0xe4b3
,
0xe5b3
,
0xe6b3
,
0xe7b3
,
0xe8b3
,
0xe9b3
,
0xeab3
,
0xebb3
,
0xecb3
,
0xedb3
,
0xeeb3
,
0xefb3
,
0xf0b3
,
0xf1b3
,
0xf2b3
,
0xf3b3
,
0xf4b3
,
0xf5b3
,
0xf6b3
,
0xf7b3
,
0xf8b3
,
0xf9b3
,
0xfab3
,
0xfbb3
,
0xfcb3
,
0xfdb3
,
0xfeb3
,
0xa1b4
,
0xa2b4
,
0xa3b4
,
0xa4b4
,
0xa5b4
,
0xa6b4
,
0xa7b4
,
0xa8b4
,
0xa9b4
,
0xaab4
,
0xabb4
,
0xacb4
,
0xadb4
,
0xaeb4
,
0xafb4
,
0xb0b4
,
0xb1b4
,
0xb2b4
,
0xb3b4
,
0xb4b4
,
0xb5b4
,
0xb6b4
,
0xb7b4
,
0xb8b4
,
0xb9b4
,
0xbab4
,
0xbbb4
,
0xbcb4
,
0xbdb4
,
0xbeb4
,
0xbfb4
,
0xc0b4
,
0xc1b4
,
0xc2b4
,
0xc3b4
,
0xc4b4
,
0xc5b4
,
0xc6b4
,
0xc7b4
,
0xc8b4
,
0xc9b4
,
0xcab4
,
0xcbb4
,
0xccb4
,
0xcdb4
,
0xceb4
,
0xcfb4
,
0xd0b4
,
0xd1b4
,
0xd2b4
,
0xd3b4
,
0xd4b4
,
0xd5b4
,
0xd6b4
,
0xd7b4
,
0xd8b4
,
0xd9b4
,
0xdab4
,
0xdbb4
,
0xdcb4
,
0xddb4
,
0xdeb4
,
0xdfb4
,
0xe0b4
,
0xe1b4
,
0xe2b4
,
0xe3b4
,
0xe4b4
,
0xe5b4
,
0xe6b4
,
0xe7b4
,
0xe8b4
,
0xe9b4
,
0xeab4
,
0xebb4
,
0xecb4
,
0xedb4
,
0xeeb4
,
0xefb4
,
0xf0b4
,
0xf1b4
,
0xf2b4
,
0xf3b4
,
0xf4b4
,
0xf5b4
,
0xf6b4
,
0xf7b4
,
0xf8b4
,
0xf9b4
,
0xfab4
,
0xfbb4
,
0xfcb4
,
0xfdb4
,
0xfeb4
,
0xa1b5
,
0xa2b5
,
0xa3b5
,
0xa4b5
,
0xa5b5
,
0xa6b5
,
0xa7b5
,
0xa8b5
,
0xa9b5
,
0xaab5
,
0xabb5
,
0xacb5
,
0xadb5
,
0xaeb5
,
0xafb5
,
0xb0b5
,
0xb1b5
,
0xb2b5
,
0xb3b5
,
0xb4b5
,
0xb5b5
,
0xb6b5
,
0xb7b5
,
0xb8b5
,
0xb9b5
,
0xbab5
,
0xbbb5
,
0xbcb5
,
0xbdb5
,
0xbeb5
,
0xbfb5
,
0xc0b5
,
0xc1b5
,
0xc2b5
,
0xc3b5
,
0xc4b5
,
0xc5b5
,
0xc6b5
,
0xc7b5
,
0xc8b5
,
0xc9b5
,
0xcab5
,
0xcbb5
,
0xccb5
,
0xcdb5
,
0xceb5
,
0xcfb5
,
0xd0b5
,
0xd1b5
,
0xd2b5
,
0xd3b5
,
0xd4b5
,
0xd5b5
,
0xd6b5
,
0xd7b5
,
0xd8b5
,
0xd9b5
,
0xdab5
,
0xdbb5
,
0xdcb5
,
0xddb5
,
0xdeb5
,
0xdfb5
,
0xe0b5
,
0xe1b5
,
0xe2b5
,
0xe3b5
,
0xe4b5
,
0xe5b5
,
0xe6b5
,
0xe7b5
,
0xe8b5
,
0xe9b5
,
0xeab5
,
0xebb5
,
0xecb5
,
0xedb5
,
0xeeb5
,
0xefb5
,
0xf0b5
,
0xf1b5
,
0xf2b5
,
0xf3b5
,
0xf4b5
,
0xf5b5
,
0xf6b5
,
0xf7b5
,
0xf8b5
,
0xf9b5
,
0xfab5
,
0xfbb5
,
0xfcb5
,
0xfdb5
,
0xfeb5
,
0xa1b6
,
0xa2b6
,
0xa3b6
,
0xa4b6
,
0xa5b6
,
0xa6b6
,
0xa7b6
,
0xa8b6
,
0xa9b6
,
0xaab6
,
0xabb6
,
0xacb6
,
0xadb6
,
0xaeb6
,
0xafb6
,
0xb0b6
,
0xb1b6
,
0xb2b6
,
0xb3b6
,
0xb4b6
,
0xb5b6
,
0xb6b6
,
0xb7b6
,
0xb8b6
,
0xb9b6
,
0xbab6
,
0xbbb6
,
0xbcb6
,
0xbdb6
,
0xbeb6
,
0xbfb6
,
0xc0b6
,
0xc1b6
,
0xc2b6
,
0xc3b6
,
0xc4b6
,
0xc5b6
,
0xc6b6
,
0xc7b6
,
0xc8b6
,
0xc9b6
,
0xcab6
,
0xcbb6
,
0xccb6
,
0xcdb6
,
0xceb6
,
0xcfb6
,
0xd0b6
,
0xd1b6
,
0xd2b6
,
0xd3b6
,
0xd4b6
,
0xd5b6
,
0xd6b6
,
0xd7b6
,
0xd8b6
,
0xd9b6
,
0xdab6
,
0xdbb6
,
0xdcb6
,
0xddb6
,
0xdeb6
,
0xdfb6
,
0xe0b6
,
0xe1b6
,
0xe2b6
,
0xe3b6
,
0xe4b6
,
0xe5b6
,
0xe6b6
,
0xe7b6
,
0xe8b6
,
0xe9b6
,
0xeab6
,
0xebb6
,
0xecb6
,
0xedb6
,
0xeeb6
,
0xefb6
,
0xf0b6
,
0xf1b6
,
0xf2b6
,
0xf3b6
,
0xf4b6
,
0xf5b6
,
0xf6b6
,
0xf7b6
,
0xf8b6
,
0xf9b6
,
0xfab6
,
0xfbb6
,
0xfcb6
,
0xfdb6
,
0xfeb6
,
0xa1b7
,
0xa2b7
,
0xa3b7
,
0xa4b7
,
0xa5b7
,
0xa6b7
,
0xa7b7
,
0xa8b7
,
0xa9b7
,
0xaab7
,
0xabb7
,
0xacb7
,
0xadb7
,
0xaeb7
,
0xafb7
,
0xb0b7
,
0xb1b7
,
0xb2b7
,
0xb3b7
,
0xb4b7
,
0xb5b7
,
0xb6b7
,
0xb7b7
,
0xb8b7
,
0xb9b7
,
0xbab7
,
0xbbb7
,
0xbcb7
,
0xbdb7
,
0xbeb7
,
0xbfb7
,
0xc0b7
,
0xc1b7
,
0xc2b7
,
0xc3b7
,
0xc4b7
,
0xc5b7
,
0xc6b7
,
0xc7b7
,
0xc8b7
,
0xc9b7
,
0xcab7
,
0xcbb7
,
0xccb7
,
0xcdb7
,
0xceb7
,
0xcfb7
,
0xd0b7
,
0xd1b7
,
0xd2b7
,
0xd3b7
,
0xd4b7
,
0xd5b7
,
0xd6b7
,
0xd7b7
,
0xd8b7
,
0xd9b7
,
0xdab7
,
0xdbb7
,
0xdcb7
,
0xddb7
,
0xdeb7
,
0xdfb7
,
0xe0b7
,
0xe1b7
,
0xe2b7
,
0xe3b7
,
0xe4b7
,
0xe5b7
,
0xe6b7
,
0xe7b7
,
0xe8b7
,
0xe9b7
,
0xeab7
,
0xebb7
,
0xecb7
,
0xedb7
,
0xeeb7
,
0xefb7
,
0xf0b7
,
0xf1b7
,
0xf2b7
,
0xf3b7
,
0xf4b7
,
0xf5b7
,
0xf6b7
,
0xf7b7
,
0xf8b7
,
0xf9b7
,
0xfab7
,
0xfbb7
,
0xfcb7
,
0xfdb7
,
0xfeb7
,
0xa1b8
,
0xa2b8
,
0xa3b8
,
0xa4b8
,
0xa5b8
,
0xa6b8
,
0xa7b8
,
0xa8b8
,
0xa9b8
,
0xaab8
,
0xabb8
,
0xacb8
,
0xadb8
,
0xaeb8
,
0xafb8
,
0xb0b8
,
0xb1b8
,
0xb2b8
,
0xb3b8
,
0xb4b8
,
0xb5b8
,
0xb6b8
,
0xb7b8
,
0xb8b8
,
0xb9b8
,
0xbab8
,
0xbbb8
,
0xbcb8
,
0xbdb8
,
0xbeb8
,
0xbfb8
,
0xc0b8
,
0xc1b8
,
0xc2b8
,
0xc3b8
,
0xc4b8
,
0xc5b8
,
0xc6b8
,
0xc7b8
,
0xc8b8
,
0xc9b8
,
0xcab8
,
0xcbb8
,
0xccb8
,
0xcdb8
,
0xceb8
,
0xcfb8
,
0xd0b8
,
0xd1b8
,
0xd2b8
,
0xd3b8
,
0xd4b8
,
0xd5b8
,
0xd6b8
,
0xd7b8
,
0xd8b8
,
0xd9b8
,
0xdab8
,
0xdbb8
,
0xdcb8
,
0xddb8
,
0xdeb8
,
0xdfb8
,
0xe0b8
,
0xe1b8
,
0xe2b8
,
0xe3b8
,
0xe4b8
,
0xe5b8
,
0xe6b8
,
0xe7b8
,
0xe8b8
,
0xe9b8
,
0xeab8
,
0xebb8
,
0xecb8
,
0xedb8
,
0xeeb8
,
0xefb8
,
0xf0b8
,
0xf1b8
,
0xf2b8
,
0xf3b8
,
0xf4b8
,
0xf5b8
,
0xf6b8
,
0xf7b8
,
0xf8b8
,
0xf9b8
,
0xfab8
,
0xfbb8
,
0xfcb8
,
0xfdb8
,
0xfeb8
,
0xa1b9
,
0xa2b9
,
0xa3b9
,
0xa4b9
,
0xa5b9
,
0xa6b9
,
0xa7b9
,
0xa8b9
,
0xa9b9
,
0xaab9
,
0xabb9
,
0xacb9
,
0xadb9
,
0xaeb9
,
0xafb9
,
0xb0b9
,
0xb1b9
,
0xb2b9
,
0xb3b9
,
0xb4b9
,
0xb5b9
,
0xb6b9
,
0xb7b9
,
0xb8b9
,
0xb9b9
,
0xbab9
,
0xbbb9
,
0xbcb9
,
0xbdb9
,
0xbeb9
,
0xbfb9
,
0xc0b9
,
0xc1b9
,
0xc2b9
,
0xc3b9
,
0xc4b9
,
0xc5b9
,
0xc6b9
,
0xc7b9
,
0xc8b9
,
0xc9b9
,
0xcab9
,
0xcbb9
,
0xccb9
,
0xcdb9
,
0xceb9
,
0xcfb9
,
0xd0b9
,
0xd1b9
,
0xd2b9
,
0xd3b9
,
0xd4b9
,
0xd5b9
,
0xd6b9
,
0xd7b9
,
0xd8b9
,
0xd9b9
,
0xdab9
,
0xdbb9
,
0xdcb9
,
0xddb9
,
0xdeb9
,
0xdfb9
,
0xe0b9
,
0xe1b9
,
0xe2b9
,
0xe3b9
,
0xe4b9
,
0xe5b9
,
0xe6b9
,
0xe7b9
,
0xe8b9
,
0xe9b9
,
0xeab9
,
0xebb9
,
0xecb9
,
0xedb9
,
0xeeb9
,
0xefb9
,
0xf0b9
,
0xf1b9
,
0xf2b9
,
0xf3b9
,
0xf4b9
,
0xf5b9
,
0xf6b9
,
0xf7b9
,
0xf8b9
,
0xf9b9
,
0xfab9
,
0xfbb9
,
0xfcb9
,
0xfdb9
,
0xfeb9
,
0xa1ba
,
0xa2ba
,
0xa3ba
,
0xa4ba
,
0xa5ba
,
0xa6ba
,
0xa7ba
,
0xa8ba
,
0xa9ba
,
0xaaba
,
0xabba
,
0xacba
,
0xadba
,
0xaeba
,
0xafba
,
0xb0ba
,
0xb1ba
,
0xb2ba
,
0xb3ba
,
0xb4ba
,
0xb5ba
,
0xb6ba
,
0xb7ba
,
0xb8ba
,
0xb9ba
,
0xbaba
,
0xbbba
,
0xbcba
,
0xbdba
,
0xbeba
,
0xbfba
,
0xc0ba
,
0xc1ba
,
0xc2ba
,
0xc3ba
,
0xc4ba
,
0xc5ba
,
0xc6ba
,
0xc7ba
,
0xc8ba
,
0xc9ba
,
0xcaba
,
0xcbba
,
0xccba
,
0xcdba
,
0xceba
,
0xcfba
,
0xd0ba
,
0xd1ba
,
0xd2ba
,
0xd3ba
,
0xd4ba
,
0xd5ba
,
0xd6ba
,
0xd7ba
,
0xd8ba
,
0xd9ba
,
0xdaba
,
0xdbba
,
0xdcba
,
0xddba
,
0xdeba
,
0xdfba
,
0xe0ba
,
0xe1ba
,
0xe2ba
,
0xe3ba
,
0xe4ba
,
0xe5ba
,
0xe6ba
,
0xe7ba
,
0xe8ba
,
0xe9ba
,
0xeaba
,
0xebba
,
0xecba
,
0xedba
,
0xeeba
,
0xefba
,
0xf0ba
,
0xf1ba
,
0xf2ba
,
0xf3ba
,
0xf4ba
,
0xf5ba
,
0xf6ba
,
0xf7ba
,
0xf8ba
,
0xf9ba
,
0xfaba
,
0xfbba
,
0xfcba
,
0xfdba
,
0xfeba
,
0xa1bb
,
0xa2bb
,
0xa3bb
,
0xa4bb
,
0xa5bb
,
0xa6bb
,
0xa7bb
,
0xa8bb
,
0xa9bb
,
0xaabb
,
0xabbb
,
0xacbb
,
0xadbb
,
0xaebb
,
0xafbb
,
0xb0bb
,
0xb1bb
,
0xb2bb
,
0xb3bb
,
0xb4bb
,
0xb5bb
,
0xb6bb
,
0xb7bb
,
0xb8bb
,
0xb9bb
,
0xbabb
,
0xbbbb
,
0xbcbb
,
0xbdbb
,
0xbebb
,
0xbfbb
,
0xc0bb
,
0xc1bb
,
0xc2bb
,
0xc3bb
,
0xc4bb
,
0xc5bb
,
0xc6bb
,
0xc7bb
,
0xc8bb
,
0xc9bb
,
0xcabb
,
0xcbbb
,
0xccbb
,
0xcdbb
,
0xcebb
,
0xcfbb
,
0xd0bb
,
0xd1bb
,
0xd2bb
,
0xd3bb
,
0xd4bb
,
0xd5bb
,
0xd6bb
,
0xd7bb
,
0xd8bb
,
0xd9bb
,
0xdabb
,
0xdbbb
,
0xdcbb
,
0xddbb
,
0xdebb
,
0xdfbb
,
0xe0bb
,
0xe1bb
,
0xe2bb
,
0xe3bb
,
0xe4bb
,
0xe5bb
,
0xe6bb
,
0xe7bb
,
0xe8bb
,
0xe9bb
,
0xeabb
,
0xebbb
,
0xecbb
,
0xedbb
,
0xeebb
,
0xefbb
,
0xf0bb
,
0xf1bb
,
0xf2bb
,
0xf3bb
,
0xf4bb
,
0xf5bb
,
0xf6bb
,
0xf7bb
,
0xf8bb
,
0xf9bb
,
0xfabb
,
0xfbbb
,
0xfcbb
,
0xfdbb
,
0xfebb
,
0xa1bc
,
0xa2bc
,
0xa3bc
,
0xa4bc
,
0xa5bc
,
0xa6bc
,
0xa7bc
,
0xa8bc
,
0xa9bc
,
0xaabc
,
0xabbc
,
0xacbc
,
0xadbc
,
0xaebc
,
0xafbc
,
0xb0bc
,
0xb1bc
,
0xb2bc
,
0xb3bc
,
0xb4bc
,
0xb5bc
,
0xb6bc
,
0xb7bc
,
0xb8bc
,
0xb9bc
,
0xbabc
,
0xbbbc
,
0xbcbc
,
0xbdbc
,
0xbebc
,
0xbfbc
,
0xc0bc
,
0xc1bc
,
0xc2bc
,
0xc3bc
,
0xc4bc
,
0xc5bc
,
0xc6bc
,
0xc7bc
,
0xc8bc
,
0xc9bc
,
0xcabc
,
0xcbbc
,
0xccbc
,
0xcdbc
,
0xcebc
,
0xcfbc
,
0xd0bc
,
0xd1bc
,
0xd2bc
,
0xd3bc
,
0xd4bc
,
0xd5bc
,
0xd6bc
,
0xd7bc
,
0xd8bc
,
0xd9bc
,
0xdabc
,
0xdbbc
,
0xdcbc
,
0xddbc
,
0xdebc
,
0xdfbc
,
0xe0bc
,
0xe1bc
,
0xe2bc
,
0xe3bc
,
0xe4bc
,
0xe5bc
,
0xe6bc
,
0xe7bc
,
0xe8bc
,
0xe9bc
,
0xeabc
,
0xebbc
,
0xecbc
,
0xedbc
,
0xeebc
,
0xefbc
,
0xf0bc
,
0xf1bc
,
0xf2bc
,
0xf3bc
,
0xf4bc
,
0xf5bc
,
0xf6bc
,
0xf7bc
,
0xf8bc
,
0xf9bc
,
0xfabc
,
0xfbbc
,
0xfcbc
,
0xfdbc
,
0xfebc
,
0xa1bd
,
0xa2bd
,
0xa3bd
,
0xa4bd
,
0xa5bd
,
0xa6bd
,
0xa7bd
,
0xa8bd
,
0xa9bd
,
0xaabd
,
0xabbd
,
0xacbd
,
0xadbd
,
0xaebd
,
0xafbd
,
0xb0bd
,
0xb1bd
,
0xb2bd
,
0xb3bd
,
0xb4bd
,
0xb5bd
,
0xb6bd
,
0xb7bd
,
0xb8bd
,
0xb9bd
,
0xbabd
,
0xbbbd
,
0xbcbd
,
0xbdbd
,
0xbebd
,
0xbfbd
,
0xc0bd
,
0xc1bd
,
0xc2bd
,
0xc3bd
,
0xc4bd
,
0xc5bd
,
0xc6bd
,
0xc7bd
,
0xc8bd
,
0xc9bd
,
0xcabd
,
0xcbbd
,
0xccbd
,
0xcdbd
,
0xcebd
,
0xcfbd
,
0xd0bd
,
0xd1bd
,
0xd2bd
,
0xd3bd
,
0xd4bd
,
0xd5bd
,
0xd6bd
,
0xd7bd
,
0xd8bd
,
0xd9bd
,
0xdabd
,
0xdbbd
,
0xdcbd
,
0xddbd
,
0xdebd
,
0xdfbd
,
0xe0bd
,
0xe1bd
,
0xe2bd
,
0xe3bd
,
0xe4bd
,
0xe5bd
,
0xe6bd
,
0xe7bd
,
0xe8bd
,
0xe9bd
,
0xeabd
,
0xebbd
,
0xecbd
,
0xedbd
,
0xeebd
,
0xefbd
,
0xf0bd
,
0xf1bd
,
0xf2bd
,
0xf3bd
,
0xf4bd
,
0xf5bd
,
0xf6bd
,
0xf7bd
,
0xf8bd
,
0xf9bd
,
0xfabd
,
0xfbbd
,
0xfcbd
,
0xfdbd
,
0xfebd
,
0xa1be
,
0xa2be
,
0xa3be
,
0xa4be
,
0xa5be
,
0xa6be
,
0xa7be
,
0xa8be
,
0xa9be
,
0xaabe
,
0xabbe
,
0xacbe
,
0xadbe
,
0xaebe
,
0xafbe
,
0xb0be
,
0xb1be
,
0xb2be
,
0xb3be
,
0xb4be
,
0xb5be
,
0xb6be
,
0xb7be
,
0xb8be
,
0xb9be
,
0xbabe
,
0xbbbe
,
0xbcbe
,
0xbdbe
,
0xbebe
,
0xbfbe
,
0xc0be
,
0xc1be
,
0xc2be
,
0xc3be
,
0xc4be
,
0xc5be
,
0xc6be
,
0xc7be
,
0xc8be
,
0xc9be
,
0xcabe
,
0xcbbe
,
0xccbe
,
0xcdbe
,
0xcebe
,
0xcfbe
,
0xd0be
,
0xd1be
,
0xd2be
,
0xd3be
,
0xd4be
,
0xd5be
,
0xd6be
,
0xd7be
,
0xd8be
,
0xd9be
,
0xdabe
,
0xdbbe
,
0xdcbe
,
0xddbe
,
0xdebe
,
0xdfbe
,
0xe0be
,
0xe1be
,
0xe2be
,
0xe3be
,
0xe4be
,
0xe5be
,
0xe6be
,
0xe7be
,
0xe8be
,
0xe9be
,
0xeabe
,
0xebbe
,
0xecbe
,
0xedbe
,
0xeebe
,
0xefbe
,
0xf0be
,
0xf1be
,
0xf2be
,
0xf3be
,
0xf4be
,
0xf5be
,
0xf6be
,
0xf7be
,
0xf8be
,
0xf9be
,
0xfabe
,
0xfbbe
,
0xfcbe
,
0xfdbe
,
0xfebe
,
0xa1bf
,
0xa2bf
,
0xa3bf
,
0xa4bf
,
0xa5bf
,
0xa6bf
,
0xa7bf
,
0xa8bf
,
0xa9bf
,
0xaabf
,
0xabbf
,
0xacbf
,
0xadbf
,
0xaebf
,
0xafbf
,
0xb0bf
,
0xb1bf
,
0xb2bf
,
0xb3bf
,
0xb4bf
,
0xb5bf
,
0xb6bf
,
0xb7bf
,
0xb8bf
,
0xb9bf
,
0xbabf
,
0xbbbf
,
0xbcbf
,
0xbdbf
,
0xbebf
,
0xbfbf
,
0xc0bf
,
0xc1bf
,
0xc2bf
,
0xc3bf
,
0xc4bf
,
0xc5bf
,
0xc6bf
,
0xc7bf
,
0xc8bf
,
0xc9bf
,
0xcabf
,
0xcbbf
,
0xccbf
,
0xcdbf
,
0xcebf
,
0xcfbf
,
0xd0bf
,
0xd1bf
,
0xd2bf
,
0xd3bf
,
0xd4bf
,
0xd5bf
,
0xd6bf
,
0xd7bf
,
0xd8bf
,
0xd9bf
,
0xdabf
,
0xdbbf
,
0xdcbf
,
0xddbf
,
0xdebf
,
0xdfbf
,
0xe0bf
,
0xe1bf
,
0xe2bf
,
0xe3bf
,
0xe4bf
,
0xe5bf
,
0xe6bf
,
0xe7bf
,
0xe8bf
,
0xe9bf
,
0xeabf
,
0xebbf
,
0xecbf
,
0xedbf
,
0xeebf
,
0xefbf
,
0xf0bf
,
0xf1bf
,
0xf2bf
,
0xf3bf
,
0xf4bf
,
0xf5bf
,
0xf6bf
,
0xf7bf
,
0xf8bf
,
0xf9bf
,
0xfabf
,
0xfbbf
,
0xfcbf
,
0xfdbf
,
0xfebf
,
0xa1c0
,
0xa2c0
,
0xa3c0
,
0xa4c0
,
0xa5c0
,
0xa6c0
,
0xa7c0
,
0xa8c0
,
0xa9c0
,
0xaac0
,
0xabc0
,
0xacc0
,
0xadc0
,
0xaec0
,
0xafc0
,
0xb0c0
,
0xb1c0
,
0xb2c0
,
0xb3c0
,
0xb4c0
,
0xb5c0
,
0xb6c0
,
0xb7c0
,
0xb8c0
,
0xb9c0
,
0xbac0
,
0xbbc0
,
0xbcc0
,
0xbdc0
,
0xbec0
,
0xbfc0
,
0xc0c0
,
0xc1c0
,
0xc2c0
,
0xc3c0
,
0xc4c0
,
0xc5c0
,
0xc6c0
,
0xc7c0
,
0xc8c0
,
0xc9c0
,
0xcac0
,
0xcbc0
,
0xccc0
,
0xcdc0
,
0xcec0
,
0xcfc0
,
0xd0c0
,
0xd1c0
,
0xd2c0
,
0xd3c0
,
0xd4c0
,
0xd5c0
,
0xd6c0
,
0xd7c0
,
0xd8c0
,
0xd9c0
,
0xdac0
,
0xdbc0
,
0xdcc0
,
0xddc0
,
0xdec0
,
0xdfc0
,
0xe0c0
,
0xe1c0
,
0xe2c0
,
0xe3c0
,
0xe4c0
,
0xe5c0
,
0xe6c0
,
0xe7c0
,
0xe8c0
,
0xe9c0
,
0xeac0
,
0xebc0
,
0xecc0
,
0xedc0
,
0xeec0
,
0xefc0
,
0xf0c0
,
0xf1c0
,
0xf2c0
,
0xf3c0
,
0xf4c0
,
0xf5c0
,
0xf6c0
,
0xf7c0
,
0xf8c0
,
0xf9c0
,
0xfac0
,
0xfbc0
,
0xfcc0
,
0xfdc0
,
0xfec0
,
0xa1c1
,
0xa2c1
,
0xa3c1
,
0xa4c1
,
0xa5c1
,
0xa6c1
,
0xa7c1
,
0xa8c1
,
0xa9c1
,
0xaac1
,
0xabc1
,
0xacc1
,
0xadc1
,
0xaec1
,
0xafc1
,
0xb0c1
,
0xb1c1
,
0xb2c1
,
0xb3c1
,
0xb4c1
,
0xb5c1
,
0xb6c1
,
0xb7c1
,
0xb8c1
,
0xb9c1
,
0xbac1
,
0xbbc1
,
0xbcc1
,
0xbdc1
,
0xbec1
,
0xbfc1
,
0xc0c1
,
0xc1c1
,
0xc2c1
,
0xc3c1
,
0xc4c1
,
0xc5c1
,
0xc6c1
,
0xc7c1
,
0xc8c1
,
0xc9c1
,
0xcac1
,
0xcbc1
,
0xccc1
,
0xcdc1
,
0xcec1
,
0xcfc1
,
0xd0c1
,
0xd1c1
,
0xd2c1
,
0xd3c1
,
0xd4c1
,
0xd5c1
,
0xd6c1
,
0xd7c1
,
0xd8c1
,
0xd9c1
,
0xdac1
,
0xdbc1
,
0xdcc1
,
0xddc1
,
0xdec1
,
0xdfc1
,
0xe0c1
,
0xe1c1
,
0xe2c1
,
0xe3c1
,
0xe4c1
,
0xe5c1
,
0xe6c1
,
0xe7c1
,
0xe8c1
,
0xe9c1
,
0xeac1
,
0xebc1
,
0xecc1
,
0xedc1
,
0xeec1
,
0xefc1
,
0xf0c1
,
0xf1c1
,
0xf2c1
,
0xf3c1
,
0xf4c1
,
0xf5c1
,
0xf6c1
,
0xf7c1
,
0xf8c1
,
0xf9c1
,
0xfac1
,
0xfbc1
,
0xfcc1
,
0xfdc1
,
0xfec1
,
0xa1c2
,
0xa2c2
,
0xa3c2
,
0xa4c2
,
0xa5c2
,
0xa6c2
,
0xa7c2
,
0xa8c2
,
0xa9c2
,
0xaac2
,
0xabc2
,
0xacc2
,
0xadc2
,
0xaec2
,
0xafc2
,
0xb0c2
,
0xb1c2
,
0xb2c2
,
0xb3c2
,
0xb4c2
,
0xb5c2
,
0xb6c2
,
0xb7c2
,
0xb8c2
,
0xb9c2
,
0xbac2
,
0xbbc2
,
0xbcc2
,
0xbdc2
,
0xbec2
,
0xbfc2
,
0xc0c2
,
0xc1c2
,
0xc2c2
,
0xc3c2
,
0xc4c2
,
0xc5c2
,
0xc6c2
,
0xc7c2
,
0xc8c2
,
0xc9c2
,
0xcac2
,
0xcbc2
,
0xccc2
,
0xcdc2
,
0xcec2
,
0xcfc2
,
0xd0c2
,
0xd1c2
,
0xd2c2
,
0xd3c2
,
0xd4c2
,
0xd5c2
,
0xd6c2
,
0xd7c2
,
0xd8c2
,
0xd9c2
,
0xdac2
,
0xdbc2
,
0xdcc2
,
0xddc2
,
0xdec2
,
0xdfc2
,
0xe0c2
,
0xe1c2
,
0xe2c2
,
0xe3c2
,
0xe4c2
,
0xe5c2
,
0xe6c2
,
0xe7c2
,
0xe8c2
,
0xe9c2
,
0xeac2
,
0xebc2
,
0xecc2
,
0xedc2
,
0xeec2
,
0xefc2
,
0xf0c2
,
0xf1c2
,
0xf2c2
,
0xf3c2
,
0xf4c2
,
0xf5c2
,
0xf6c2
,
0xf7c2
,
0xf8c2
,
0xf9c2
,
0xfac2
,
0xfbc2
,
0xfcc2
,
0xfdc2
,
0xfec2
,
0xa1c3
,
0xa2c3
,
0xa3c3
,
0xa4c3
,
0xa5c3
,
0xa6c3
,
0xa7c3
,
0xa8c3
,
0xa9c3
,
0xaac3
,
0xabc3
,
0xacc3
,
0xadc3
,
0xaec3
,
0xafc3
,
0xb0c3
,
0xb1c3
,
0xb2c3
,
0xb3c3
,
0xb4c3
,
0xb5c3
,
0xb6c3
,
0xb7c3
,
0xb8c3
,
0xb9c3
,
0xbac3
,
0xbbc3
,
0xbcc3
,
0xbdc3
,
0xbec3
,
0xbfc3
,
0xc0c3
,
0xc1c3
,
0xc2c3
,
0xc3c3
,
0xc4c3
,
0xc5c3
,
0xc6c3
,
0xc7c3
,
0xc8c3
,
0xc9c3
,
0xcac3
,
0xcbc3
,
0xccc3
,
0xcdc3
,
0xcec3
,
0xcfc3
,
0xd0c3
,
0xd1c3
,
0xd2c3
,
0xd3c3
,
0xd4c3
,
0xd5c3
,
0xd6c3
,
0xd7c3
,
0xd8c3
,
0xd9c3
,
0xdac3
,
0xdbc3
,
0xdcc3
,
0xddc3
,
0xdec3
,
0xdfc3
,
0xe0c3
,
0xe1c3
,
0xe2c3
,
0xe3c3
,
0xe4c3
,
0xe5c3
,
0xe6c3
,
0xe7c3
,
0xe8c3
,
0xe9c3
,
0xeac3
,
0xebc3
,
0xecc3
,
0xedc3
,
0xeec3
,
0xefc3
,
0xf0c3
,
0xf1c3
,
0xf2c3
,
0xf3c3
,
0xf4c3
,
0xf5c3
,
0xf6c3
,
0xf7c3
,
0xf8c3
,
0xf9c3
,
0xfac3
,
0xfbc3
,
0xfcc3
,
0xfdc3
,
0xfec3
,
0xa1c4
,
0xa2c4
,
0xa3c4
,
0xa4c4
,
0xa5c4
,
0xa6c4
,
0xa7c4
,
0xa8c4
,
0xa9c4
,
0xaac4
,
0xabc4
,
0xacc4
,
0xadc4
,
0xaec4
,
0xafc4
,
0xb0c4
,
0xb1c4
,
0xb2c4
,
0xb3c4
,
0xb4c4
,
0xb5c4
,
0xb6c4
,
0xb7c4
,
0xb8c4
,
0xb9c4
,
0xbac4
,
0xbbc4
,
0xbcc4
,
0xbdc4
,
0xbec4
,
0xbfc4
,
0xc0c4
,
0xc1c4
,
0xc2c4
,
0xc3c4
,
0xc4c4
,
0xc5c4
,
0xc6c4
,
0xc7c4
,
0xc8c4
,
0xc9c4
,
0xcac4
,
0xcbc4
,
0xccc4
,
0xcdc4
,
0xcec4
,
0xcfc4
,
0xd0c4
,
0xd1c4
,
0xd2c4
,
0xd3c4
,
0xd4c4
,
0xd5c4
,
0xd6c4
,
0xd7c4
,
0xd8c4
,
0xd9c4
,
0xdac4
,
0xdbc4
,
0xdcc4
,
0xddc4
,
0xdec4
,
0xdfc4
,
0xe0c4
,
0xe1c4
,
0xe2c4
,
0xe3c4
,
0xe4c4
,
0xe5c4
,
0xe6c4
,
0xe7c4
,
0xe8c4
,
0xe9c4
,
0xeac4
,
0xebc4
,
0xecc4
,
0xedc4
,
0xeec4
,
0xefc4
,
0xf0c4
,
0xf1c4
,
0xf2c4
,
0xf3c4
,
0xf4c4
,
0xf5c4
,
0xf6c4
,
0xf7c4
,
0xf8c4
,
0xf9c4
,
0xfac4
,
0xfbc4
,
0xfcc4
,
0xfdc4
,
0xfec4
,
0xa1c5
,
0xa2c5
,
0xa3c5
,
0xa4c5
,
0xa5c5
,
0xa6c5
,
0xa7c5
,
0xa8c5
,
0xa9c5
,
0xaac5
,
0xabc5
,
0xacc5
,
0xadc5
,
0xaec5
,
0xafc5
,
0xb0c5
,
0xb1c5
,
0xb2c5
,
0xb3c5
,
0xb4c5
,
0xb5c5
,
0xb6c5
,
0xb7c5
,
0xb8c5
,
0xb9c5
,
0xbac5
,
0xbbc5
,
0xbcc5
,
0xbdc5
,
0xbec5
,
0xbfc5
,
0xc0c5
,
0xc1c5
,
0xc2c5
,
0xc3c5
,
0xc4c5
,
0xc5c5
,
0xc6c5
,
0xc7c5
,
0xc8c5
,
0xc9c5
,
0xcac5
,
0xcbc5
,
0xccc5
,
0xcdc5
,
0xcec5
,
0xcfc5
,
0xd0c5
,
0xd1c5
,
0xd2c5
,
0xd3c5
,
0xd4c5
,
0xd5c5
,
0xd6c5
,
0xd7c5
,
0xd8c5
,
0xd9c5
,
0xdac5
,
0xdbc5
,
0xdcc5
,
0xddc5
,
0xdec5
,
0xdfc5
,
0xe0c5
,
0xe1c5
,
0xe2c5
,
0xe3c5
,
0xe4c5
,
0xe5c5
,
0xe6c5
,
0xe7c5
,
0xe8c5
,
0xe9c5
,
0xeac5
,
0xebc5
,
0xecc5
,
0xedc5
,
0xeec5
,
0xefc5
,
0xf0c5
,
0xf1c5
,
0xf2c5
,
0xf3c5
,
0xf4c5
,
0xf5c5
,
0xf6c5
,
0xf7c5
,
0xf8c5
,
0xf9c5
,
0xfac5
,
0xfbc5
,
0xfcc5
,
0xfdc5
,
0xfec5
,
0xa1c6
,
0xa2c6
,
0xa3c6
,
0xa4c6
,
0xa5c6
,
0xa6c6
,
0xa7c6
,
0xa8c6
,
0xa9c6
,
0xaac6
,
0xabc6
,
0xacc6
,
0xadc6
,
0xaec6
,
0xafc6
,
0xb0c6
,
0xb1c6
,
0xb2c6
,
0xb3c6
,
0xb4c6
,
0xb5c6
,
0xb6c6
,
0xb7c6
,
0xb8c6
,
0xb9c6
,
0xbac6
,
0xbbc6
,
0xbcc6
,
0xbdc6
,
0xbec6
,
0xbfc6
,
0xc0c6
,
0xc1c6
,
0xc2c6
,
0xc3c6
,
0xc4c6
,
0xc5c6
,
0xc6c6
,
0xc7c6
,
0xc8c6
,
0xc9c6
,
0xcac6
,
0xcbc6
,
0xccc6
,
0xcdc6
,
0xcec6
,
0xcfc6
,
0xd0c6
,
0xd1c6
,
0xd2c6
,
0xd3c6
,
0xd4c6
,
0xd5c6
,
0xd6c6
,
0xd7c6
,
0xd8c6
,
0xd9c6
,
0xdac6
,
0xdbc6
,
0xdcc6
,
0xddc6
,
0xdec6
,
0xdfc6
,
0xe0c6
,
0xe1c6
,
0xe2c6
,
0xe3c6
,
0xe4c6
,
0xe5c6
,
0xe6c6
,
0xe7c6
,
0xe8c6
,
0xe9c6
,
0xeac6
,
0xebc6
,
0xecc6
,
0xedc6
,
0xeec6
,
0xefc6
,
0xf0c6
,
0xf1c6
,
0xf2c6
,
0xf3c6
,
0xf4c6
,
0xf5c6
,
0xf6c6
,
0xf7c6
,
0xf8c6
,
0xf9c6
,
0xfac6
,
0xfbc6
,
0xfcc6
,
0xfdc6
,
0xfec6
,
0xa1c7
,
0xa2c7
,
0xa3c7
,
0xa4c7
,
0xa5c7
,
0xa6c7
,
0xa7c7
,
0xa8c7
,
0xa9c7
,
0xaac7
,
0xabc7
,
0xacc7
,
0xadc7
,
0xaec7
,
0xafc7
,
0xb0c7
,
0xb1c7
,
0xb2c7
,
0xb3c7
,
0xb4c7
,
0xb5c7
,
0xb6c7
,
0xb7c7
,
0xb8c7
,
0xb9c7
,
0xbac7
,
0xbbc7
,
0xbcc7
,
0xbdc7
,
0xbec7
,
0xbfc7
,
0xc0c7
,
0xc1c7
,
0xc2c7
,
0xc3c7
,
0xc4c7
,
0xc5c7
,
0xc6c7
,
0xc7c7
,
0xc8c7
,
0xc9c7
,
0xcac7
,
0xcbc7
,
0xccc7
,
0xcdc7
,
0xcec7
,
0xcfc7
,
0xd0c7
,
0xd1c7
,
0xd2c7
,
0xd3c7
,
0xd4c7
,
0xd5c7
,
0xd6c7
,
0xd7c7
,
0xd8c7
,
0xd9c7
,
0xdac7
,
0xdbc7
,
0xdcc7
,
0xddc7
,
0xdec7
,
0xdfc7
,
0xe0c7
,
0xe1c7
,
0xe2c7
,
0xe3c7
,
0xe4c7
,
0xe5c7
,
0xe6c7
,
0xe7c7
,
0xe8c7
,
0xe9c7
,
0xeac7
,
0xebc7
,
0xecc7
,
0xedc7
,
0xeec7
,
0xefc7
,
0xf0c7
,
0xf1c7
,
0xf2c7
,
0xf3c7
,
0xf4c7
,
0xf5c7
,
0xf6c7
,
0xf7c7
,
0xf8c7
,
0xf9c7
,
0xfac7
,
0xfbc7
,
0xfcc7
,
0xfdc7
,
0xfec7
,
0xa1c8
,
0xa2c8
,
0xa3c8
,
0xa4c8
,
0xa5c8
,
0xa6c8
,
0xa7c8
,
0xa8c8
,
0xa9c8
,
0xaac8
,
0xabc8
,
0xacc8
,
0xadc8
,
0xaec8
,
0xafc8
,
0xb0c8
,
0xb1c8
,
0xb2c8
,
0xb3c8
,
0xb4c8
,
0xb5c8
,
0xb6c8
,
0xb7c8
,
0xb8c8
,
0xb9c8
,
0xbac8
,
0xbbc8
,
0xbcc8
,
0xbdc8
,
0xbec8
,
0xbfc8
,
0xc0c8
,
0xc1c8
,
0xc2c8
,
0xc3c8
,
0xc4c8
,
0xc5c8
,
0xc6c8
,
0xc7c8
,
0xc8c8
,
0xc9c8
,
0xcac8
,
0xcbc8
,
0xccc8
,
0xcdc8
,
0xcec8
,
0xcfc8
,
0xd0c8
,
0xd1c8
,
0xd2c8
,
0xd3c8
,
0xd4c8
,
0xd5c8
,
0xd6c8
,
0xd7c8
,
0xd8c8
,
0xd9c8
,
0xdac8
,
0xdbc8
,
0xdcc8
,
0xddc8
,
0xdec8
,
0xdfc8
,
0xe0c8
,
0xe1c8
,
0xe2c8
,
0xe3c8
,
0xe4c8
,
0xe5c8
,
0xe6c8
,
0xe7c8
,
0xe8c8
,
0xe9c8
,
0xeac8
,
0xebc8
,
0xecc8
,
0xedc8
,
0xeec8
,
0xefc8
,
0xf0c8
,
0xf1c8
,
0xf2c8
,
0xf3c8
,
0xf4c8
,
0xf5c8
,
0xf6c8
,
0xf7c8
,
0xf8c8
,
0xf9c8
,
0xfac8
,
0xfbc8
,
0xfcc8
,
0xfdc8
,
0xfec8
,
0xa1c9
,
0xa2c9
,
0xa3c9
,
0xa4c9
,
0xa5c9
,
0xa6c9
,
0xa7c9
,
0xa8c9
,
0xa9c9
,
0xaac9
,
0xabc9
,
0xacc9
,
0xadc9
,
0xaec9
,
0xafc9
,
0xb0c9
,
0xb1c9
,
0xb2c9
,
0xb3c9
,
0xb4c9
,
0xb5c9
,
0xb6c9
,
0xb7c9
,
0xb8c9
,
0xb9c9
,
0xbac9
,
0xbbc9
,
0xbcc9
,
0xbdc9
,
0xbec9
,
0xbfc9
,
0xc0c9
,
0xc1c9
,
0xc2c9
,
0xc3c9
,
0xc4c9
,
0xc5c9
,
0xc6c9
,
0xc7c9
,
0xc8c9
,
0xc9c9
,
0xcac9
,
0xcbc9
,
0xccc9
,
0xcdc9
,
0xcec9
,
0xcfc9
,
0xd0c9
,
0xd1c9
,
0xd2c9
,
0xd3c9
,
0xd4c9
,
0xd5c9
,
0xd6c9
,
0xd7c9
,
0xd8c9
,
0xd9c9
,
0xdac9
,
0xdbc9
,
0xdcc9
,
0xddc9
,
0xdec9
,
0xdfc9
,
0xe0c9
,
0xe1c9
,
0xe2c9
,
0xe3c9
,
0xe4c9
,
0xe5c9
,
0xe6c9
,
0xe7c9
,
0xe8c9
,
0xe9c9
,
0xeac9
,
0xebc9
,
0xecc9
,
0xedc9
,
0xeec9
,
0xefc9
,
0xf0c9
,
0xf1c9
,
0xf2c9
,
0xf3c9
,
0xf4c9
,
0xf5c9
,
0xf6c9
,
0xf7c9
,
0xf8c9
,
0xf9c9
,
0xfac9
,
0xfbc9
,
0xfcc9
,
0xfdc9
,
0xfec9
,
0xa1ca
,
0xa2ca
,
0xa3ca
,
0xa4ca
,
0xa5ca
,
0xa6ca
,
0xa7ca
,
0xa8ca
,
0xa9ca
,
0xaaca
,
0xabca
,
0xacca
,
0xadca
,
0xaeca
,
0xafca
,
0xb0ca
,
0xb1ca
,
0xb2ca
,
0xb3ca
,
0xb4ca
,
0xb5ca
,
0xb6ca
,
0xb7ca
,
0xb8ca
,
0xb9ca
,
0xbaca
,
0xbbca
,
0xbcca
,
0xbdca
,
0xbeca
,
0xbfca
,
0xc0ca
,
0xc1ca
,
0xc2ca
,
0xc3ca
,
0xc4ca
,
0xc5ca
,
0xc6ca
,
0xc7ca
,
0xc8ca
,
0xc9ca
,
0xcaca
,
0xcbca
,
0xccca
,
0xcdca
,
0xceca
,
0xcfca
,
0xd0ca
,
0xd1ca
,
0xd2ca
,
0xd3ca
,
0xd4ca
,
0xd5ca
,
0xd6ca
,
0xd7ca
,
0xd8ca
,
0xd9ca
,
0xdaca
,
0xdbca
,
0xdcca
,
0xddca
,
0xdeca
,
0xdfca
,
0xe0ca
,
0xe1ca
,
0xe2ca
,
0xe3ca
,
0xe4ca
,
0xe5ca
,
0xe6ca
,
0xe7ca
,
0xe8ca
,
0xe9ca
,
0xeaca
,
0xebca
,
0xecca
,
0xedca
,
0xeeca
,
0xefca
,
0xf0ca
,
0xf1ca
,
0xf2ca
,
0xf3ca
,
0xf4ca
,
0xf5ca
,
0xf6ca
,
0xf7ca
,
0xf8ca
,
0xf9ca
,
0xfaca
,
0xfbca
,
0xfcca
,
0xfdca
,
0xfeca
,
0xa1cb
,
0xa2cb
,
0xa3cb
,
0xa4cb
,
0xa5cb
,
0xa6cb
,
0xa7cb
,
0xa8cb
,
0xa9cb
,
0xaacb
,
0xabcb
,
0xaccb
,
0xadcb
,
0xaecb
,
0xafcb
,
0xb0cb
,
0xb1cb
,
0xb2cb
,
0xb3cb
,
0xb4cb
,
0xb5cb
,
0xb6cb
,
0xb7cb
,
0xb8cb
,
0xb9cb
,
0xbacb
,
0xbbcb
,
0xbccb
,
0xbdcb
,
0xbecb
,
0xbfcb
,
0xc0cb
,
0xc1cb
,
0xc2cb
,
0xc3cb
,
0xc4cb
,
0xc5cb
,
0xc6cb
,
0xc7cb
,
0xc8cb
,
0xc9cb
,
0xcacb
,
0xcbcb
,
0xcccb
,
0xcdcb
,
0xcecb
,
0xcfcb
,
0xd0cb
,
0xd1cb
,
0xd2cb
,
0xd3cb
,
0xd4cb
,
0xd5cb
,
0xd6cb
,
0xd7cb
,
0xd8cb
,
0xd9cb
,
0xdacb
,
0xdbcb
,
0xdccb
,
0xddcb
,
0xdecb
,
0xdfcb
,
0xe0cb
,
0xe1cb
,
0xe2cb
,
0xe3cb
,
0xe4cb
,
0xe5cb
,
0xe6cb
,
0xe7cb
,
0xe8cb
,
0xe9cb
,
0xeacb
,
0xebcb
,
0xeccb
,
0xedcb
,
0xeecb
,
0xefcb
,
0xf0cb
,
0xf1cb
,
0xf2cb
,
0xf3cb
,
0xf4cb
,
0xf5cb
,
0xf6cb
,
0xf7cb
,
0xf8cb
,
0xf9cb
,
0xfacb
,
0xfbcb
,
0xfccb
,
0xfdcb
,
0xfecb
,
0xa1cc
,
0xa2cc
,
0xa3cc
,
0xa4cc
,
0xa5cc
,
0xa6cc
,
0xa7cc
,
0xa8cc
,
0xa9cc
,
0xaacc
,
0xabcc
,
0xaccc
,
0xadcc
,
0xaecc
,
0xafcc
,
0xb0cc
,
0xb1cc
,
0xb2cc
,
0xb3cc
,
0xb4cc
,
0xb5cc
,
0xb6cc
,
0xb7cc
,
0xb8cc
,
0xb9cc
,
0xbacc
,
0xbbcc
,
0xbccc
,
0xbdcc
,
0xbecc
,
0xbfcc
,
0xc0cc
,
0xc1cc
,
0xc2cc
,
0xc3cc
,
0xc4cc
,
0xc5cc
,
0xc6cc
,
0xc7cc
,
0xc8cc
,
0xc9cc
,
0xcacc
,
0xcbcc
,
0xcccc
,
0xcdcc
,
0xcecc
,
0xcfcc
,
0xd0cc
,
0xd1cc
,
0xd2cc
,
0xd3cc
,
0xd4cc
,
0xd5cc
,
0xd6cc
,
0xd7cc
,
0xd8cc
,
0xd9cc
,
0xdacc
,
0xdbcc
,
0xdccc
,
0xddcc
,
0xdecc
,
0xdfcc
,
0xe0cc
,
0xe1cc
,
0xe2cc
,
0xe3cc
,
0xe4cc
,
0xe5cc
,
0xe6cc
,
0xe7cc
,
0xe8cc
,
0xe9cc
,
0xeacc
,
0xebcc
,
0xeccc
,
0xedcc
,
0xeecc
,
0xefcc
,
0xf0cc
,
0xf1cc
,
0xf2cc
,
0xf3cc
,
0xf4cc
,
0xf5cc
,
0xf6cc
,
0xf7cc
,
0xf8cc
,
0xf9cc
,
0xfacc
,
0xfbcc
,
0xfccc
,
0xfdcc
,
0xfecc
,
0xa1cd
,
0xa2cd
,
0xa3cd
,
0xa4cd
,
0xa5cd
,
0xa6cd
,
0xa7cd
,
0xa8cd
,
0xa9cd
,
0xaacd
,
0xabcd
,
0xaccd
,
0xadcd
,
0xaecd
,
0xafcd
,
0xb0cd
,
0xb1cd
,
0xb2cd
,
0xb3cd
,
0xb4cd
,
0xb5cd
,
0xb6cd
,
0xb7cd
,
0xb8cd
,
0xb9cd
,
0xbacd
,
0xbbcd
,
0xbccd
,
0xbdcd
,
0xbecd
,
0xbfcd
,
0xc0cd
,
0xc1cd
,
0xc2cd
,
0xc3cd
,
0xc4cd
,
0xc5cd
,
0xc6cd
,
0xc7cd
,
0xc8cd
,
0xc9cd
,
0xcacd
,
0xcbcd
,
0xcccd
,
0xcdcd
,
0xcecd
,
0xcfcd
,
0xd0cd
,
0xd1cd
,
0xd2cd
,
0xd3cd
,
0xd4cd
,
0xd5cd
,
0xd6cd
,
0xd7cd
,
0xd8cd
,
0xd9cd
,
0xdacd
,
0xdbcd
,
0xdccd
,
0xddcd
,
0xdecd
,
0xdfcd
,
0xe0cd
,
0xe1cd
,
0xe2cd
,
0xe3cd
,
0xe4cd
,
0xe5cd
,
0xe6cd
,
0xe7cd
,
0xe8cd
,
0xe9cd
,
0xeacd
,
0xebcd
,
0xeccd
,
0xedcd
,
0xeecd
,
0xefcd
,
0xf0cd
,
0xf1cd
,
0xf2cd
,
0xf3cd
,
0xf4cd
,
0xf5cd
,
0xf6cd
,
0xf7cd
,
0xf8cd
,
0xf9cd
,
0xfacd
,
0xfbcd
,
0xfccd
,
0xfdcd
,
0xfecd
,
0xa1ce
,
0xa2ce
,
0xa3ce
,
0xa4ce
,
0xa5ce
,
0xa6ce
,
0xa7ce
,
0xa8ce
,
0xa9ce
,
0xaace
,
0xabce
,
0xacce
,
0xadce
,
0xaece
,
0xafce
,
0xb0ce
,
0xb1ce
,
0xb2ce
,
0xb3ce
,
0xb4ce
,
0xb5ce
,
0xb6ce
,
0xb7ce
,
0xb8ce
,
0xb9ce
,
0xbace
,
0xbbce
,
0xbcce
,
0xbdce
,
0xbece
,
0xbfce
,
0xc0ce
,
0xc1ce
,
0xc2ce
,
0xc3ce
,
0xc4ce
,
0xc5ce
,
0xc6ce
,
0xc7ce
,
0xc8ce
,
0xc9ce
,
0xcace
,
0xcbce
,
0xccce
,
0xcdce
,
0xcece
,
0xcfce
,
0xd0ce
,
0xd1ce
,
0xd2ce
,
0xd3ce
,
0xd4ce
,
0xd5ce
,
0xd6ce
,
0xd7ce
,
0xd8ce
,
0xd9ce
,
0xdace
,
0xdbce
,
0xdcce
,
0xddce
,
0xdece
,
0xdfce
,
0xe0ce
,
0xe1ce
,
0xe2ce
,
0xe3ce
,
0xe4ce
,
0xe5ce
,
0xe6ce
,
0xe7ce
,
0xe8ce
,
0xe9ce
,
0xeace
,
0xebce
,
0xecce
,
0xedce
,
0xeece
,
0xefce
,
0xf0ce
,
0xf1ce
,
0xf2ce
,
0xf3ce
,
0xf4ce
,
0xf5ce
,
0xf6ce
,
0xf7ce
,
0xf8ce
,
0xf9ce
,
0xface
,
0xfbce
,
0xfcce
,
0xfdce
,
0xfece
,
0xa1cf
,
0xa2cf
,
0xa3cf
,
0xa4cf
,
0xa5cf
,
0xa6cf
,
0xa7cf
,
0xa8cf
,
0xa9cf
,
0xaacf
,
0xabcf
,
0xaccf
,
0xadcf
,
0xaecf
,
0xafcf
,
0xb0cf
,
0xb1cf
,
0xb2cf
,
0xb3cf
,
0xb4cf
,
0xb5cf
,
0xb6cf
,
0xb7cf
,
0xb8cf
,
0xb9cf
,
0xbacf
,
0xbbcf
,
0xbccf
,
0xbdcf
,
0xbecf
,
0xbfcf
,
0xc0cf
,
0xc1cf
,
0xc2cf
,
0xc3cf
,
0xc4cf
,
0xc5cf
,
0xc6cf
,
0xc7cf
,
0xc8cf
,
0xc9cf
,
0xcacf
,
0xcbcf
,
0xcccf
,
0xcdcf
,
0xcecf
,
0xcfcf
,
0xd0cf
,
0xd1cf
,
0xd2cf
,
0xd3cf
,
0xd4cf
,
0xd5cf
,
0xd6cf
,
0xd7cf
,
0xd8cf
,
0xd9cf
,
0xdacf
,
0xdbcf
,
0xdccf
,
0xddcf
,
0xdecf
,
0xdfcf
,
0xe0cf
,
0xe1cf
,
0xe2cf
,
0xe3cf
,
0xe4cf
,
0xe5cf
,
0xe6cf
,
0xe7cf
,
0xe8cf
,
0xe9cf
,
0xeacf
,
0xebcf
,
0xeccf
,
0xedcf
,
0xeecf
,
0xefcf
,
0xf0cf
,
0xf1cf
,
0xf2cf
,
0xf3cf
,
0xf4cf
,
0xf5cf
,
0xf6cf
,
0xf7cf
,
0xf8cf
,
0xf9cf
,
0xfacf
,
0xfbcf
,
0xfccf
,
0xfdcf
,
0xfecf
,
0xa1d0
,
0xa2d0
,
0xa3d0
,
0xa4d0
,
0xa5d0
,
0xa6d0
,
0xa7d0
,
0xa8d0
,
0xa9d0
,
0xaad0
,
0xabd0
,
0xacd0
,
0xadd0
,
0xaed0
,
0xafd0
,
0xb0d0
,
0xb1d0
,
0xb2d0
,
0xb3d0
,
0xb4d0
,
0xb5d0
,
0xb6d0
,
0xb7d0
,
0xb8d0
,
0xb9d0
,
0xbad0
,
0xbbd0
,
0xbcd0
,
0xbdd0
,
0xbed0
,
0xbfd0
,
0xc0d0
,
0xc1d0
,
0xc2d0
,
0xc3d0
,
0xc4d0
,
0xc5d0
,
0xc6d0
,
0xc7d0
,
0xc8d0
,
0xc9d0
,
0xcad0
,
0xcbd0
,
0xccd0
,
0xcdd0
,
0xced0
,
0xcfd0
,
0xd0d0
,
0xd1d0
,
0xd2d0
,
0xd3d0
,
0xd4d0
,
0xd5d0
,
0xd6d0
,
0xd7d0
,
0xd8d0
,
0xd9d0
,
0xdad0
,
0xdbd0
,
0xdcd0
,
0xddd0
,
0xded0
,
0xdfd0
,
0xe0d0
,
0xe1d0
,
0xe2d0
,
0xe3d0
,
0xe4d0
,
0xe5d0
,
0xe6d0
,
0xe7d0
,
0xe8d0
,
0xe9d0
,
0xead0
,
0xebd0
,
0xecd0
,
0xedd0
,
0xeed0
,
0xefd0
,
0xf0d0
,
0xf1d0
,
0xf2d0
,
0xf3d0
,
0xf4d0
,
0xf5d0
,
0xf6d0
,
0xf7d0
,
0xf8d0
,
0xf9d0
,
0xfad0
,
0xfbd0
,
0xfcd0
,
0xfdd0
,
0xfed0
,
0xa1d1
,
0xa2d1
,
0xa3d1
,
0xa4d1
,
0xa5d1
,
0xa6d1
,
0xa7d1
,
0xa8d1
,
0xa9d1
,
0xaad1
,
0xabd1
,
0xacd1
,
0xadd1
,
0xaed1
,
0xafd1
,
0xb0d1
,
0xb1d1
,
0xb2d1
,
0xb3d1
,
0xb4d1
,
0xb5d1
,
0xb6d1
,
0xb7d1
,
0xb8d1
,
0xb9d1
,
0xbad1
,
0xbbd1
,
0xbcd1
,
0xbdd1
,
0xbed1
,
0xbfd1
,
0xc0d1
,
0xc1d1
,
0xc2d1
,
0xc3d1
,
0xc4d1
,
0xc5d1
,
0xc6d1
,
0xc7d1
,
0xc8d1
,
0xc9d1
,
0xcad1
,
0xcbd1
,
0xccd1
,
0xcdd1
,
0xced1
,
0xcfd1
,
0xd0d1
,
0xd1d1
,
0xd2d1
,
0xd3d1
,
0xd4d1
,
0xd5d1
,
0xd6d1
,
0xd7d1
,
0xd8d1
,
0xd9d1
,
0xdad1
,
0xdbd1
,
0xdcd1
,
0xddd1
,
0xded1
,
0xdfd1
,
0xe0d1
,
0xe1d1
,
0xe2d1
,
0xe3d1
,
0xe4d1
,
0xe5d1
,
0xe6d1
,
0xe7d1
,
0xe8d1
,
0xe9d1
,
0xead1
,
0xebd1
,
0xecd1
,
0xedd1
,
0xeed1
,
0xefd1
,
0xf0d1
,
0xf1d1
,
0xf2d1
,
0xf3d1
,
0xf4d1
,
0xf5d1
,
0xf6d1
,
0xf7d1
,
0xf8d1
,
0xf9d1
,
0xfad1
,
0xfbd1
,
0xfcd1
,
0xfdd1
,
0xfed1
,
0xa1d2
,
0xa2d2
,
0xa3d2
,
0xa4d2
,
0xa5d2
,
0xa6d2
,
0xa7d2
,
0xa8d2
,
0xa9d2
,
0xaad2
,
0xabd2
,
0xacd2
,
0xadd2
,
0xaed2
,
0xafd2
,
0xb0d2
,
0xb1d2
,
0xb2d2
,
0xb3d2
,
0xb4d2
,
0xb5d2
,
0xb6d2
,
0xb7d2
,
0xb8d2
,
0xb9d2
,
0xbad2
,
0xbbd2
,
0xbcd2
,
0xbdd2
,
0xbed2
,
0xbfd2
,
0xc0d2
,
0xc1d2
,
0xc2d2
,
0xc3d2
,
0xc4d2
,
0xc5d2
,
0xc6d2
,
0xc7d2
,
0xc8d2
,
0xc9d2
,
0xcad2
,
0xcbd2
,
0xccd2
,
0xcdd2
,
0xced2
,
0xcfd2
,
0xd0d2
,
0xd1d2
,
0xd2d2
,
0xd3d2
,
0xd4d2
,
0xd5d2
,
0xd6d2
,
0xd7d2
,
0xd8d2
,
0xd9d2
,
0xdad2
,
0xdbd2
,
0xdcd2
,
0xddd2
,
0xded2
,
0xdfd2
,
0xe0d2
,
0xe1d2
,
0xe2d2
,
0xe3d2
,
0xe4d2
,
0xe5d2
,
0xe6d2
,
0xe7d2
,
0xe8d2
,
0xe9d2
,
0xead2
,
0xebd2
,
0xecd2
,
0xedd2
,
0xeed2
,
0xefd2
,
0xf0d2
,
0xf1d2
,
0xf2d2
,
0xf3d2
,
0xf4d2
,
0xf5d2
,
0xf6d2
,
0xf7d2
,
0xf8d2
,
0xf9d2
,
0xfad2
,
0xfbd2
,
0xfcd2
,
0xfdd2
,
0xfed2
,
0xa1d3
,
0xa2d3
,
0xa3d3
,
0xa4d3
,
0xa5d3
,
0xa6d3
,
0xa7d3
,
0xa8d3
,
0xa9d3
,
0xaad3
,
0xabd3
,
0xacd3
,
0xadd3
,
0xaed3
,
0xafd3
,
0xb0d3
,
0xb1d3
,
0xb2d3
,
0xb3d3
,
0xb4d3
,
0xb5d3
,
0xb6d3
,
0xb7d3
,
0xb8d3
,
0xb9d3
,
0xbad3
,
0xbbd3
,
0xbcd3
,
0xbdd3
,
0xbed3
,
0xbfd3
,
0xc0d3
,
0xc1d3
,
0xc2d3
,
0xc3d3
,
0xc4d3
,
0xc5d3
,
0xc6d3
,
0xc7d3
,
0xc8d3
,
0xc9d3
,
0xcad3
,
0xcbd3
,
0xccd3
,
0xcdd3
,
0xced3
,
0xcfd3
,
0xd0d3
,
0xd1d3
,
0xd2d3
,
0xd3d3
,
0xd4d3
,
0xd5d3
,
0xd6d3
,
0xd7d3
,
0xd8d3
,
0xd9d3
,
0xdad3
,
0xdbd3
,
0xdcd3
,
0xddd3
,
0xded3
,
0xdfd3
,
0xe0d3
,
0xe1d3
,
0xe2d3
,
0xe3d3
,
0xe4d3
,
0xe5d3
,
0xe6d3
,
0xe7d3
,
0xe8d3
,
0xe9d3
,
0xead3
,
0xebd3
,
0xecd3
,
0xedd3
,
0xeed3
,
0xefd3
,
0xf0d3
,
0xf1d3
,
0xf2d3
,
0xf3d3
,
0xf4d3
,
0xf5d3
,
0xf6d3
,
0xf7d3
,
0xf8d3
,
0xf9d3
,
0xfad3
,
0xfbd3
,
0xfcd3
,
0xfdd3
,
0xfed3
,
0xa1d4
,
0xa2d4
,
0xa3d4
,
0xa4d4
,
0xa5d4
,
0xa6d4
,
0xa7d4
,
0xa8d4
,
0xa9d4
,
0xaad4
,
0xabd4
,
0xacd4
,
0xadd4
,
0xaed4
,
0xafd4
,
0xb0d4
,
0xb1d4
,
0xb2d4
,
0xb3d4
,
0xb4d4
,
0xb5d4
,
0xb6d4
,
0xb7d4
,
0xb8d4
,
0xb9d4
,
0xbad4
,
0xbbd4
,
0xbcd4
,
0xbdd4
,
0xbed4
,
0xbfd4
,
0xc0d4
,
0xc1d4
,
0xc2d4
,
0xc3d4
,
0xc4d4
,
0xc5d4
,
0xc6d4
,
0xc7d4
,
0xc8d4
,
0xc9d4
,
0xcad4
,
0xcbd4
,
0xccd4
,
0xcdd4
,
0xced4
,
0xcfd4
,
0xd0d4
,
0xd1d4
,
0xd2d4
,
0xd3d4
,
0xd4d4
,
0xd5d4
,
0xd6d4
,
0xd7d4
,
0xd8d4
,
0xd9d4
,
0xdad4
,
0xdbd4
,
0xdcd4
,
0xddd4
,
0xded4
,
0xdfd4
,
0xe0d4
,
0xe1d4
,
0xe2d4
,
0xe3d4
,
0xe4d4
,
0xe5d4
,
0xe6d4
,
0xe7d4
,
0xe8d4
,
0xe9d4
,
0xead4
,
0xebd4
,
0xecd4
,
0xedd4
,
0xeed4
,
0xefd4
,
0xf0d4
,
0xf1d4
,
0xf2d4
,
0xf3d4
,
0xf4d4
,
0xf5d4
,
0xf6d4
,
0xf7d4
,
0xf8d4
,
0xf9d4
,
0xfad4
,
0xfbd4
,
0xfcd4
,
0xfdd4
,
0xfed4
,
0xa1d5
,
0xa2d5
,
0xa3d5
,
0xa4d5
,
0xa5d5
,
0xa6d5
,
0xa7d5
,
0xa8d5
,
0xa9d5
,
0xaad5
,
0xabd5
,
0xacd5
,
0xadd5
,
0xaed5
,
0xafd5
,
0xb0d5
,
0xb1d5
,
0xb2d5
,
0xb3d5
,
0xb4d5
,
0xb5d5
,
0xb6d5
,
0xb7d5
,
0xb8d5
,
0xb9d5
,
0xbad5
,
0xbbd5
,
0xbcd5
,
0xbdd5
,
0xbed5
,
0xbfd5
,
0xc0d5
,
0xc1d5
,
0xc2d5
,
0xc3d5
,
0xc4d5
,
0xc5d5
,
0xc6d5
,
0xc7d5
,
0xc8d5
,
0xc9d5
,
0xcad5
,
0xcbd5
,
0xccd5
,
0xcdd5
,
0xced5
,
0xcfd5
,
0xd0d5
,
0xd1d5
,
0xd2d5
,
0xd3d5
,
0xd4d5
,
0xd5d5
,
0xd6d5
,
0xd7d5
,
0xd8d5
,
0xd9d5
,
0xdad5
,
0xdbd5
,
0xdcd5
,
0xddd5
,
0xded5
,
0xdfd5
,
0xe0d5
,
0xe1d5
,
0xe2d5
,
0xe3d5
,
0xe4d5
,
0xe5d5
,
0xe6d5
,
0xe7d5
,
0xe8d5
,
0xe9d5
,
0xead5
,
0xebd5
,
0xecd5
,
0xedd5
,
0xeed5
,
0xefd5
,
0xf0d5
,
0xf1d5
,
0xf2d5
,
0xf3d5
,
0xf4d5
,
0xf5d5
,
0xf6d5
,
0xf7d5
,
0xf8d5
,
0xf9d5
,
0xfad5
,
0xfbd5
,
0xfcd5
,
0xfdd5
,
0xfed5
,
0xa1d6
,
0xa2d6
,
0xa3d6
,
0xa4d6
,
0xa5d6
,
0xa6d6
,
0xa7d6
,
0xa8d6
,
0xa9d6
,
0xaad6
,
0xabd6
,
0xacd6
,
0xadd6
,
0xaed6
,
0xafd6
,
0xb0d6
,
0xb1d6
,
0xb2d6
,
0xb3d6
,
0xb4d6
,
0xb5d6
,
0xb6d6
,
0xb7d6
,
0xb8d6
,
0xb9d6
,
0xbad6
,
0xbbd6
,
0xbcd6
,
0xbdd6
,
0xbed6
,
0xbfd6
,
0xc0d6
,
0xc1d6
,
0xc2d6
,
0xc3d6
,
0xc4d6
,
0xc5d6
,
0xc6d6
,
0xc7d6
,
0xc8d6
,
0xc9d6
,
0xcad6
,
0xcbd6
,
0xccd6
,
0xcdd6
,
0xced6
,
0xcfd6
,
0xd0d6
,
0xd1d6
,
0xd2d6
,
0xd3d6
,
0xd4d6
,
0xd5d6
,
0xd6d6
,
0xd7d6
,
0xd8d6
,
0xd9d6
,
0xdad6
,
0xdbd6
,
0xdcd6
,
0xddd6
,
0xded6
,
0xdfd6
,
0xe0d6
,
0xe1d6
,
0xe2d6
,
0xe3d6
,
0xe4d6
,
0xe5d6
,
0xe6d6
,
0xe7d6
,
0xe8d6
,
0xe9d6
,
0xead6
,
0xebd6
,
0xecd6
,
0xedd6
,
0xeed6
,
0xefd6
,
0xf0d6
,
0xf1d6
,
0xf2d6
,
0xf3d6
,
0xf4d6
,
0xf5d6
,
0xf6d6
,
0xf7d6
,
0xf8d6
,
0xf9d6
,
0xfad6
,
0xfbd6
,
0xfcd6
,
0xfdd6
,
0xfed6
,
0xa1d7
,
0xa2d7
,
0xa3d7
,
0xa4d7
,
0xa5d7
,
0xa6d7
,
0xa7d7
,
0xa8d7
,
0xa9d7
,
0xaad7
,
0xabd7
,
0xacd7
,
0xadd7
,
0xaed7
,
0xafd7
,
0xb0d7
,
0xb1d7
,
0xb2d7
,
0xb3d7
,
0xb4d7
,
0xb5d7
,
0xb6d7
,
0xb7d7
,
0xb8d7
,
0xb9d7
,
0xbad7
,
0xbbd7
,
0xbcd7
,
0xbdd7
,
0xbed7
,
0xbfd7
,
0xc0d7
,
0xc1d7
,
0xc2d7
,
0xc3d7
,
0xc4d7
,
0xc5d7
,
0xc6d7
,
0xc7d7
,
0xc8d7
,
0xc9d7
,
0xcad7
,
0xcbd7
,
0xccd7
,
0xcdd7
,
0xced7
,
0xcfd7
,
0xd0d7
,
0xd1d7
,
0xd2d7
,
0xd3d7
,
0xd4d7
,
0xd5d7
,
0xd6d7
,
0xd7d7
,
0xd8d7
,
0xd9d7
,
0xdad7
,
0xdbd7
,
0xdcd7
,
0xddd7
,
0xded7
,
0xdfd7
,
0xe0d7
,
0xe1d7
,
0xe2d7
,
0xe3d7
,
0xe4d7
,
0xe5d7
,
0xe6d7
,
0xe7d7
,
0xe8d7
,
0xe9d7
,
0xead7
,
0xebd7
,
0xecd7
,
0xedd7
,
0xeed7
,
0xefd7
,
0xf0d7
,
0xf1d7
,
0xf2d7
,
0xf3d7
,
0xf4d7
,
0xf5d7
,
0xf6d7
,
0xf7d7
,
0xf8d7
,
0xf9d7
]
def
readPOTfile
(
name
,
clist
):
filename
=
'POT/'
+
name
+
'-c.pot'
a
=
array
.
array
(
'H'
)
# unsigned shorts
a
.
fromfile
(
open
(
filename
,
'rb'
),
os
.
path
.
getsize
(
filename
)
//
a
.
itemsize
)
a
.
reverse
()
characters
=
[]
labels
=
[]
while
len
(
a
)
>
0
:
sample_size
=
a
.
pop
()
label
=
a
.
pop
()
+
a
.
pop
()
*
65536
label
=
(
label
%
256
)
*
256
+
label
//
256
if
label
in
clist
:
label
=
clist
.
index
(
label
)
labels
.
append
(
label
)
numStrokes
=
a
.
pop
()
strokes
=
[]
for
i
in
range
(
numStrokes
):
stroke
=
[]
point
=
[
a
.
pop
(),
a
.
pop
()]
while
point
!=
[
65535
,
0
]:
stroke
.
append
(
point
)
point
=
[
a
.
pop
(),
a
.
pop
()]
strokes
.
append
(
stroke
)
[
a
.
pop
(),
a
.
pop
()]
# End of character
characters
.
append
([
torch
.
FloatTensor
(
stroke
)
for
stroke
in
strokes
])
return
[
characters
,
labels
]
for
dataset
,
f1
,
f2
in
[(
'train'
,
1001
,
1240
),
(
'test'
,
1241
,
1300
)]:
chars
=
[]
labels
=
[]
for
f
in
range
(
f1
,
f2
+
1
):
[
chars_
,
labels_
]
=
readPOTfile
(
str
(
f
),
c3755
)
chars
.
extend
(
chars_
)
labels
.
extend
(
labels_
)
print
(
len
(
chars
),
len
(
labels
))
for
c
in
chars
:
cc
=
torch
.
cat
(
c
,
0
)
m
=
cc
.
min
(
0
)[
0
]
s
=
(
cc
.
max
(
0
)[
0
]
-
m
).
float
()
for
i
,
stroke
in
enumerate
(
c
):
c
[
i
]
=
((
stroke
-
m
.
expand_as
(
stroke
))
/
s
.
expand_as
(
stroke
)
*
255.59
).
byte
()
pickle
.
dump
([{
'input'
:
c
,
'target'
:
l
}
for
c
,
l
in
zip
(
chars
,
labels
)],
open
(
'pickle/'
+
dataset
+
'.pickle'
,
'wb'
),
protocol
=
pickle
.
HIGHEST_PROTOCOL
)
examples/ModelNet40/VGG-A-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- three-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
3
,
1
,{
{
'C'
,
8
},
{
'C'
,
8
},
{
'C'
,
8
},
{
'MP'
,
2
,
2
},
{
'C'
,
16
},
{
'C'
,
16
},
{
'C'
,
16
},
{
'MP'
,
2
,
2
},
{
'C'
,
24
},
{
'C'
,
24
},
{
'C'
,
24
},
{
'MP'
,
2
,
2
},
{
'C'
,
32
},
{
'C'
,
32
},
{
'C'
,
32
},
}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
3
,
32
,
32
,
4
,
1
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
32
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
3
))
denseModel
:
add
(
nn
.
View
(
32
):
setNumInputDims
(
4
))
denseModel
:
add
(
nn
.
Linear
(
32
,
40
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
2
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
200
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
025
,
weightDecay
=
1e-4
})
examples/ModelNet40/VGG-B-VSC.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- three-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
3
,
1
,{
{
'C'
,
16
},
{
'C'
,
16
},
{
'MP'
,
2
,
2
},
{
'C'
,
32
},
{
'C'
,
32
},
{
'MP'
,
2
,
2
},
{
'C'
,
64
},
{
'C'
,
64
},
{
'MP'
,
2
,
2
},
{
'C'
,
128
},
{
'C'
,
128
}}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
3
,
128
,
128
,
4
+
1
,
1
,
false
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
128
))
local
nOut
=
128
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
3
))
denseModel
:
add
(
nn
.
View
(
nOut
):
setNumInputDims
(
4
))
denseModel
:
add
(
nn
.
Linear
(
nOut
,
40
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
2
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
200
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
025
,
weightDecay
=
1e-4
})
examples/ModelNet40/VGGplus.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
local
sparseconvnet
=
require
'sparseconvnet'
local
tensortype
=
sparseconvnet
.
cutorch
and
'torch.CudaTensor'
or
'torch.FloatTensor'
-- two-dimensional SparseConvNet
local
model
=
nn
.
Sequential
()
local
sparseModel
=
sparseconvnet
.
Sequential
()
local
denseModel
=
nn
.
Sequential
()
model
:
add
(
sparseModel
):
add
(
denseModel
)
sparseModel
:
add
(
sparseconvnet
.
SparseVggNet
(
3
,
1
,{
{
'C'
,
8
},
{
'C'
,
8
},
{
'MP'
,
3
,
2
},
{
'C'
,
8
,
8
},
{
'C'
,
8
,
8
},
{
'MP'
,
3
,
2
},
{
'C'
,
16
,
8
},
{
'C'
,
16
,
8
},
{
'MP'
,
3
,
2
},
{
'C'
,
16
,
16
},
{
'C'
,
16
,
16
},
}))
sparseModel
:
add
(
sparseconvnet
.
Convolution
(
3
,
32
,
32
,
3
,
1
,
false
))
sparseModel
:
add
(
sparseconvnet
.
BatchNormReLU
(
32
))
sparseModel
:
add
(
sparseconvnet
.
SparseToDense
(
3
))
denseModel
:
add
(
nn
.
View
(
32
):
setNumInputDims
(
4
))
denseModel
:
add
(
nn
.
Linear
(
32
,
40
))
sparseconvnet
.
initializeDenseModel
(
denseModel
)
model
:
type
(
tensortype
)
print
(
model
)
inputSpatialSize
=
sparseModel
:
suggestInputSize
(
torch
.
LongTensor
{
1
,
1
,
1
})
print
(
"inputSpatialSize"
,
inputSpatialSize
)
local
dataset
=
dofile
(
'data.lua'
)(
inputSpatialSize
,
3
)
sparseconvnet
.
ClassificationTrainValidate
(
model
,
dataset
,
{
nEpochs
=
200
,
initial_LR
=
0
.
1
,
LR_decay
=
0
.
025
,
weightDecay
=
1e-4
})
examples/ModelNet40/data.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
-- ModelNet-40 data - https://github.com/charlesq34/3dcnn.torch
-- input is a list of active coordinates in a box [0,29]^3
tnt
=
require
'torchnet'
scn
=
require
'sparseconvnet'
require
'paths'
if
not
paths
.
dirp
(
't7'
)
then
print
(
'Downloading and preprocessing data ...'
)
dofile
(
'process.lua'
)
end
function
train
(
spatialSize
,
precomputeStride
)
local
d
=
{}
for
x
=
1
,
590580
do
d
[
x
]
=
x
end
d
=
tnt
.
ListDataset
(
d
,
function
(
x
)
return
torch
.
load
(
't7/train/'
..
x
..
'.t7'
)
end
):
shuffle
()
function
d
:
manualSeed
(
seed
)
torch
.
manualSeed
(
seed
)
end
d
=
tnt
.
BatchDataset
(
d
,
100
,
function
(
idx
,
size
)
return
idx
end
,
function
(
tbl
)
input
=
scn
.
InputBatch
(
3
,
spatialSize
)
local
offset
=
spatialSize
/
2
-
15
local
v
=
torch
.
FloatTensor
({
1
})
for
_
,
obj
in
ipairs
(
tbl
.
input
)
do
input
:
addSample
()
obj
=
obj
:
type
(
'torch.LongTensor'
):
add
((
offset
+
torch
.
LongTensor
(
3
):
random
(
-
2
,
2
)):
view
(
1
,
3
):
expandAs
(
obj
))
for
i
=
1
,
obj
:
size
(
1
)
do
local
p
=
obj
[
i
]
input
:
setLocation
(
obj
[
i
],
v
,
0
)
end
end
input
:
precomputeMetadata
(
precomputeStride
)
return
{
input
=
input
,
target
=
torch
.
LongTensor
(
tbl
.
target
)}
end
)
d
=
tnt
.
ParallelDatasetIterator
({
init
=
function
()
require
'torchnet'
;
scn
=
require
'sparseconvnet'
end
,
nthread
=
10
,
closure
=
function
()
return
d
end
,
ordered
=
true
})
return
function
(
epoch
)
d
:
exec
(
'manualSeed'
,
epoch
)
d
:
exec
(
'resample'
)
return
d
()
end
end
function
val
(
spatialSize
,
precomputeStride
)
local
d
=
{}
for
x
=
1
,
148080
do
d
[
x
]
=
x
end
d
=
tnt
.
ListDataset
(
d
,
function
(
x
)
return
torch
.
load
(
't7/test/'
..
x
..
'.t7'
)
end
)
d
=
tnt
.
BatchDataset
(
d
,
100
,
function
(
idx
,
size
)
return
idx
end
,
function
(
tbl
)
input
=
scn
.
InputBatch
(
3
,
spatialSize
)
local
v
=
torch
.
FloatTensor
({
1
})
local
offset
=
(
spatialSize
/
2
-
15
):
view
(
1
,
3
)
for
_
,
obj
in
ipairs
(
tbl
.
input
)
do
input
:
addSample
()
obj
=
obj
:
type
(
'torch.LongTensor'
):
add
(
offset
:
view
(
1
,
3
):
expandAs
(
obj
))
for
i
=
1
,
obj
:
size
(
1
)
do
input
:
setLocation
(
obj
[
i
],
v
,
0
)
end
end
input
:
precomputeMetadata
(
precomputeStride
)
return
{
input
=
input
,
target
=
torch
.
LongTensor
(
tbl
.
target
)}
end
)
d
=
tnt
.
ParallelDatasetIterator
({
init
=
function
()
require
'torchnet'
;
scn
=
require
'sparseconvnet'
end
,
nthread
=
10
,
closure
=
function
()
return
d
end
,
ordered
=
true
})
return
function
()
return
d
()
end
end
return
function
(
...
)
return
{
train
=
train
(
...
),
val
=
val
(
...
)}
end
examples/ModelNet40/process.lua
0 → 100644
View file @
f9552033
-- Copyright 2016-present, Facebook, Inc.
-- All rights reserved.
--
-- This source code is licensed under the license found in the
-- LICENSE file in the root directory of this source tree.
-- Borrow code (lines 37-67) from https://github.com/charlesq34/3dcnn.torch/blob/master/provider.lua
--[[
3dcnn.torch (Volumetric ConvNets)
Copyright (c) 2016, Geometric Computation Group of Stanford University
The MIT License (MIT)
Copyright (c) 2016 Charles R. Qi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
]]
require
'paths'
require
'hdf5'
-- data from https://github.com/charlesq34/3dcnn.torch
-- download dataset 60x azimuth+elevation augmented
if
not
paths
.
dirp
(
'data/modelnet40_60x'
)
then
local
www
=
'https://shapenet.cs.stanford.edu/media/modelnet40_h5.tar'
local
tar
=
paths
.
basename
(
www
)
os.execute
(
'mkdir data'
)
os.execute
(
'wget '
..
www
..
'; '
..
'tar xvf '
..
tar
)
os.execute
(
'mv modelnet40_* data'
)
end
function
getDataFiles
(
input_file
)
local
train_files
=
{}
for
line
in
io.lines
(
input_file
)
do
train_files
[
#
train_files
+
1
]
=
line
end
return
train_files
end
-- load h5 file data into memory
function
loadDataFile
(
file_name
)
print
(
paths
.
filep
(
file_name
))
local
current_file
=
hdf5
.
open
(
file_name
,
'r'
)
local
current_data
=
current_file
:
read
(
'data'
):
all
():
float
()
current_data
[
current_data
:
eq
(
2
)]
=
1
--convert to binary occupancy
local
current_label
=
torch
.
squeeze
(
current_file
:
read
(
'label'
):
all
():
add
(
1
))
current_file
:
close
()
return
current_data
,
current_label
end
--[[
Copyright 2016-present, Facebook, Inc.
All rights reserved.
This source code is licensed under the license found in the
LICENSE file in the root directory of this source tree.
]]
os.execute
(
'mkdir -p t7/train/'
)
train_files
=
getDataFiles
(
'data/modelnet40_60x/train_data.txt'
)
n
=
1
for
fn
=
1
,
#
train_files
do
current_data
,
current_label
=
loadDataFile
(
train_files
[
fn
])
print
(
current_data
:
size
(),
current_label
:
size
())
current_data
:
resize
(
current_data
:
size
(
1
),
30
,
30
,
30
)
for
j
=
1
,
current_data
:
size
(
1
)
do
nz
=
current_data
[
j
]:
nonzero
():
csub
(
1
):
type
(
'torch.ByteTensor'
)
torch
.
save
(
't7/train/'
..
n
..
'.t7'
,{
input
=
nz
,
target
=
current_label
[
j
]})
n
=
n
+
1
end
end
os.execute
(
'mkdir -p t7/test/'
)
test_files
=
getDataFiles
(
'data/modelnet40_60x/test_data.txt'
)
n
=
1
for
fn
=
1
,
#
test_files
do
current_data
,
current_label
=
loadDataFile
(
test_files
[
fn
])
print
(
current_data
:
size
(),
current_label
:
size
())
current_data
:
resize
(
current_data
:
size
(
1
),
30
,
30
,
30
)
for
j
=
1
,
current_data
:
size
(
1
)
do
nz
=
current_data
[
j
]:
nonzero
():
csub
(
1
):
type
(
'torch.ByteTensor'
)
torch
.
save
(
't7/test/'
..
n
..
'.t7'
,{
input
=
nz
,
target
=
current_label
[
j
]})
n
=
n
+
1
end
end
Prev
1
…
4
5
6
7
8
9
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment