#iut##1#Inuktitut Uncontracted#
# liblouis: Inuktitut Braille Table
#
# Copyright (C) 2012, maintained by Greg Kearney, gkearney@gmail.com
#
# This file is part of liblouis.
#
# liblouis is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 2.1 of
# the License, or (at your option) any later version.
#
# liblouis is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with liblouis. If not, see
# <http://www.gnu.org/licenses/>.

#include text_nabcc.dis All display opcodes

include en-ueb-g1.ctb

letsign 456 ink letter sign

# The Vowels

letter		\x1401		56-1		CANADIAN SYLLABICS E
letter		\x1403		45-1		CANADIAN SYLLABICS I
letter		\x1404		45-16		CANADIAN SYLLABICS II
letter		\x1405		135-1		CANADIAN SYLLABICS O
letter		\x1406		135-16		CANADIAN SYLLABICS OO
letter		\x140A		246-1		CANADIAN SYLLABICS A
letter		\x140B		246-16		CANADIAN SYLLABICS AA

# The Consonants
# P

letter		\x142F		56-1234		CANADIAN SYLLABICS PE
letter		\x1431		45-1234		CANADIAN SYLLABICS PI
letter		\x1432		45-12346		CANADIAN SYLLABICS PII
letter		\x1433		135-1234		CANADIAN SYLLABICS PO
letter		\x1434		135-12346		CANADIAN SYLLABICS POO
letter		\x1438		246-1234		CANADIAN SYLLABICS PA
letter		\x1439		246-12346		CANADIAN SYLLABICS PAA
letter		\x1449		1234			CANADIAN SYLLABICS P

# T

letter		\x144C		56-2345		CANADIAN SYLLABICS TE
letter		\x144E		45-2345		CANADIAN SYLLABICS TI
letter		\x144F		45-23456		CANADIAN SYLLABICS TII
letter		\x1450		135-2345		CANADIAN SYLLABICS TO
letter		\x1451		135-23456		CANADIAN SYLLABICS TOO
letter		\x1455		246-2345		CANADIAN SYLLABICS TA
letter		\x1456		246-23456		CANADIAN SYLLABICS TAA
letter		\x1466		2345			CANADIAN SYLLABICS T

# K

letter		\x146B		56-13		CANADIAN SYLLABICS KE
letter		\x146D		45-13		CANADIAN SYLLABICS KI
letter		\x146E		45-136		CANADIAN SYLLABICS KII
letter		\x146F		135-13		CANADIAN SYLLABICS KO
letter		\x1470		135-136	CANADIAN SYLLABICS KOO
letter		\x1472		246-13		CANADIAN SYLLABICS KA
letter		\x1473		246-136	CANADIAN SYLLABICS KAA
letter		\x1483		13			CANADIAN SYLLABICS K

# G (C)

letter		\x1489		56-1245		CANADIAN SYLLABICS CE
letter		\x148B		45-1245		CANADIAN SYLLABICS CI
letter		\x148C		45-12456		CANADIAN SYLLABICS CII
letter		\x148D		135-1245		CANADIAN SYLLABICS CO
letter		\x148E		135-12456		CANADIAN SYLLABICS COO
letter		\x1490		246-1245		CANADIAN SYLLABICS CA
letter		\x1491		246-12456		CANADIAN SYLLABICS CAA
letter		\x14A1		1245			CANADIAN SYLLABICS C

# M

letter		\x14A3		56-134			CANADIAN SYLLABICS ME
letter		\x14A5		45-134			CANADIAN SYLLABICS MI
letter		\x14A6		45-1346		CANADIAN SYLLABICS MII
letter		\x14A7		135-134		CANADIAN SYLLABICS MO
letter		\x14A8		135-1346		CANADIAN SYLLABICS MOO
letter		\x14AA		246-134		CANADIAN SYLLABICS MA
letter		\x14AB		246-1346		CANADIAN SYLLABICS MAA
letter		\x14BB		134				CANADIAN SYLLABICS M

# N

letter		\x14C0		56-1345			CANADIAN SYLLABICS NE
letter		\x14C2		45-1345			CANADIAN SYLLABICS NI
letter		\x14C3		45-13456			CANADIAN SYLLABICS NII
letter		\x14C4		135-1345			CANADIAN SYLLABICS NO
letter		\x14C5		135-13456			CANADIAN SYLLABICS NOO
letter		\x14C7		246-1345			CANADIAN SYLLABICS NA
letter		\x14C8		246-13456			CANADIAN SYLLABICS NAA
letter		\x14D0		1345				CANADIAN SYLLABICS N

# L

letter		\x14D3		56-123				CANADIAN SYLLABICS LE
letter		\x14D5		45-123				CANADIAN SYLLABICS LI
letter		\x14D6		45-1236			CANADIAN SYLLABICS LII
letter		\x14D7		135-123			CANADIAN SYLLABICS LO
letter		\x14D8		135-1236			CANADIAN SYLLABICS LOO
letter		\x14DA		246-123			CANADIAN SYLLABICS LA
letter		\x14DB		246-1236			CANADIAN SYLLABICS LAA
letter		\x14EA		123					CANADIAN SYLLABICS L

# S

letter		\x14ED		56-234				CANADIAN SYLLABICS SE
letter		\x14EF		45-234				CANADIAN SYLLABICS SI
letter		\x14F0		45-2346			CANADIAN SYLLABICS SII
letter		\x14F1		135-234			CANADIAN SYLLABICS SO
letter		\x14F2		135-2346			CANADIAN SYLLABICS SOO
letter		\x14F4		246-234			CANADIAN SYLLABICS SA
letter		\x14F5		246-2346			CANADIAN SYLLABICS SAA
letter		\x1505		234					CANADIAN SYLLABICS S

# J (Y)

letter		\x1526		56-245				CANADIAN SYLLABICS YE
letter		\x1528		45-245				CANADIAN SYLLABICS YI
letter		\x1529		45-2456			CANADIAN SYLLABICS YII
letter		\x152A		135-245			CANADIAN SYLLABICS YO
letter		\x152B		135-2456			CANADIAN SYLLABICS YOO
letter		\x152D		246-245			CANADIAN SYLLABICS YA
letter		\x152E		246-2456			CANADIAN SYLLABICS YAA
letter		\x153E		245					CANADIAN SYLLABICS Y

# R

letter		\x1542		56-1235			CANADIAN SYLLABICS RE
letter		\x1546		45-1235			CANADIAN SYLLABICS RI
letter		\x1547		45-12356			CANADIAN SYLLABICS RII
letter		\x1548		135-1235			CANADIAN SYLLABICS RO
letter		\x1549		135-12356			CANADIAN SYLLABICS ROO
letter		\x154B		246-1235			CANADIAN SYLLABICS RA
letter		\x154C		246-12356			CANADIAN SYLLABICS RAA
letter		\x1550		1235				CANADIAN SYLLABICS r


# V (F)

letter		\x1553		56-124				CANADIAN SYLLABICS FE
letter		\x1555		45-124				CANADIAN SYLLABICS FI
letter		\x1556		45-1246			CANADIAN SYLLABICS FII
letter		\x1557		135-124			CANADIAN SYLLABICS FO
letter		\x1558		135-1246			CANADIAN SYLLABICS FOO
letter		\x1559		246-124			CANADIAN SYLLABICS FA
letter		\x155A		246-1246			CANADIAN SYLLABICS FAA
letter		\x155D		124					CANADIAN SYLLABICS F

# Q

letter		\x166F		56-12345		CANADIAN SYLLABICS QE
letter		\x157F		45-12345			CANADIAN SYLLABICS QI
letter		\x1580		45-123456			CANADIAN SYLLABICS QII
letter		\x1581		135-12345			CANADIAN SYLLABICS QO
letter		\x1582		135-123456			CANADIAN SYLLABICS QOO
letter		\x1583		246-12345			CANADIAN SYLLABICS QA
letter		\x1584		246-123456			CANADIAN SYLLABICS QAA
letter		\x1585		12345				CANADIAN SYLLABICS Q

# NG

letter		\x1553		56-15		CANADIAN SYLLABICS NGE
letter		\x158F		45-15			CANADIAN SYLLABICS NGI
letter		\x1590		45-156			CANADIAN SYLLABICS NGII
letter		\x1591		135-15			CANADIAN SYLLABICS NGO
letter		\x1592		135-156		CANADIAN SYLLABICS NGOO
letter		\x1593		246-15			CANADIAN SYLLABICS NGA
letter		\x1594		246-156		CANADIAN SYLLABICS NGAA
letter		\x1595		15				CANADIAN SYLLABICS NG

# NNG

#letter		\x1553		56-145		CANADIAN SYLLABICS NNGE
letter		\x1671		45-145			CANADIAN SYLLABICS NNGI
letter		\x1672		45-1456		CANADIAN SYLLABICS NNGII
letter		\x1673		135-145		CANADIAN SYLLABICS NNGO
letter		\x1674		135-1456		CANADIAN SYLLABICS NNGOO
letter		\x1675		246-145		CANADIAN SYLLABICS NNGA
letter		\x1676		246-1456		CANADIAN SYLLABICS NNGAA
letter		\x1596		145				CANADIAN SYLLABICS NNNG

# Belted L

#letter		\x1553		56-24			CANADIAN SYLLABICS LHE
letter		\x15A0		45-24			CANADIAN SYLLABICS LHI
letter		\x15A1		45-246		CANADIAN SYLLABICS LHII
letter		\x15A2		135-24		CANADIAN SYLLABICS LHO
letter		\x15A3		135-246		CANADIAN SYLLABICS LHOO
letter		\x15A4		246-24		CANADIAN SYLLABICS LHA
letter		\x15A5		246-246		CANADIAN SYLLABICS LHAA
letter		\x15A6		24				CANADIAN SYLLABICS LH

# H

letter		\x157C				125				CANADIAN SYLLABICS H
always		\x157C\x1403		45-125-1		CANADIAN SYLLABICS HI
always		\x157C\x1404		45-125-16		CANADIAN SYLLABICS HII
always		\x157C\x1405		135-125-1		CANADIAN SYLLABICS HO
always		\x157C\x1406		135-125-16		CANADIAN SYLLABICS HOO
always		\x157C\x140A		246-125-1		CANADIAN SYLLABICS HA
always		\x157C\x140B		246-125-16		CANADIAN SYLLABICS HAA
letter		'					125				CANADIAN SYLLABICS H
